:root{--bg:#0b0f17;--panel:#131a26;--panel2:#1a2333;--line:#25304a;--text:#e8eefc;--muted:#93a1bd;--accent:#3b82f6;--accent2:#f59e0b;--good:#22c55e;--bad:#ef4444;--warn:#facc15;--text-scale:1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:calc(15px * var(--text-scale)) / 1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;-webkit-tap-highlight-color:transparent;margin:0}#app{flex-direction:column;height:100%;display:flex}button,select,input,textarea{font:inherit;color:inherit}button{background:var(--panel2);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;border-radius:8px;min-height:38px;padding:8px 14px}button:hover:not(:disabled){background:#202b40;border-color:#4a5a80}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:#2f6fe0}button.danger{color:#fca5a5;border-color:#7f1d1d}button.on{border-color:var(--accent);background:#27406e}button.big{padding:16px 22px;font-size:1.15em;font-weight:600}select,input[type=text],input[type=number],input[type=password],input[type=email]{border:1px solid var(--line);background:#0e1420;border-radius:8px;min-height:38px;padding:8px 10px}input[type=range]{accent-color:var(--accent)}h1,h2,h3{margin:0 0 8px}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;display:flex}.topbar .title{letter-spacing:.04em;font-weight:700}.topbar .grow,.spacer{flex:1}.screen{flex-direction:column;flex:1;min-height:0;display:flex}.page{width:100%;max-width:980px;margin:0 auto;padding:18px;overflow:auto}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.end{justify-content:flex-end;margin-top:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.muted{color:var(--muted)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.menu{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:18px;display:grid}.hero{text-align:center;padding:28px 10px 6px}.hero h1{letter-spacing:.06em;background:linear-gradient(90deg, var(--accent), var(--accent2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:2.6em}.tag{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:1px 8px;font-size:.8em;display:inline-block}.toasts{z-index:100;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);background:#111827;border-radius:8px;padding:9px 14px;box-shadow:0 6px 20px #0008}.toast.error{border-color:var(--bad)}.toast.ok{border-color:var(--good)}.modal-back{z-index:90;background:#000a;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:520px;max-height:90vh;padding:18px;overflow:auto}.bar{background:#0b0f17;border:1px solid #1d2638;border-radius:4px;height:7px;overflow:hidden}.bar .fill{height:100%;transition:width .1s linear}.bar.hp .fill{background:var(--good)}.bar.fuel .fill{background:#eab308}.bar.batt .fill{background:#38bdf8}.bar.cost .fill{background:var(--accent)}.bar.cost.over .fill{background:var(--bad)}.workshop{flex:1;grid-template-columns:230px 1fr 280px;min-height:0;display:grid}.palette{background:var(--panel);border-right:1px solid var(--line);padding:8px;overflow:auto}.palette h4{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:10px 4px 4px;font-size:.72em}.pitem{text-align:left;touch-action:none;align-items:center;gap:8px;width:100%;min-height:44px;margin:2px 0;padding:4px 8px;display:flex}.pitem canvas{background:#0e131c;border-radius:4px;flex:none}.pitem .cost{color:var(--warn);font-variant-numeric:tabular-nums;margin-left:auto}.canvas-wrap{touch-action:none;background:#0e131c;min-width:0;min-height:0;position:relative}.canvas-wrap>div{position:absolute;inset:0}.side{background:var(--panel);border-left:1px solid var(--line);padding:12px;overflow:auto}.side .stat{font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;display:flex}.side ul{margin:6px 0;padding-left:18px}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.dragghost{pointer-events:none;z-index:80;opacity:.85;position:fixed;transform:translate(-50%,-50%)}.program{flex:1;grid-template-columns:1fr 440px;min-height:0;display:grid}.blockly-host{min-width:0;position:relative}.blockly-host>div{position:absolute;inset:0}.testpane{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;min-width:0;display:flex}.testpane .viewer{flex:1;min-height:260px}.watch{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;max-height:200px;padding:8px 10px;font-size:.85em;overflow:auto}.watch table{border-collapse:collapse;width:100%}.watch td{padding:1px 4px}.watch td:last-child{text-align:right;color:var(--accent2)}.errors{padding:6px 10px;font-size:.85em}.viewer{background:#0b0f17;flex-direction:column;min-height:0;display:flex;position:relative}.viewer .stage{flex:1;min-height:0;position:relative}.viewer .stage canvas{display:block}.hud{pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;top:6px;left:6px;right:6px}.hud-robot{border:1px solid var(--line);background:#0b0f17cc;border-radius:8px;width:min(32%,220px);padding:5px 8px}.hud-robot .name{white-space:nowrap;text-overflow:ellipsis;font-size:.85em;font-weight:700;overflow:hidden}.hud-robot .bars{gap:3px;margin-top:3px;display:grid}.timer{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#0b0f17cc;border-radius:8px;padding:4px 12px;font-weight:700}.ticker{pointer-events:none;flex-direction:column-reverse;gap:2px;max-width:70%;display:flex;position:absolute;bottom:56px;left:8px}.tick{background:#0b0f17cc;border-radius:6px;padding:2px 8px;font-size:.8em;transition:opacity 1s}.tick.old{opacity:.35}.controls{background:var(--panel);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.controls .scrub{flex:1;min-width:100px}.seg{display:flex}.seg button{border-radius:0;min-height:34px;padding:6px 8px}.seg button:first-child{border-radius:8px 0 0 8px}.seg button:last-child{border-radius:0 8px 8px 0}.result{z-index:5;background:#000b;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:0}.result .card{width:100%;max-width:640px;max-height:100%;overflow:auto}.result h2{margin:0;font-size:2em}.vs{grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;display:grid}.vs table{font-variant-numeric:tabular-nums;width:100%}.vs td:last-child{text-align:right}.cards .thumb{background:#0e131c;border-radius:8px;margin-bottom:8px;display:block}.field{gap:4px;margin:10px 0;display:grid}.code{letter-spacing:.3em;border:1px dashed var(--line);-webkit-user-select:all;user-select:all;background:#0e1420;border-radius:10px;padding:10px 14px;font:700 2em/1 ui-monospace,monospace}table.list{border-collapse:collapse;width:100%}table.list th,table.list td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}@media (max-width:900px){.workshop{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.palette{border-right:0;border-bottom:1px solid var(--line);order:-1;gap:4px;display:flex;overflow-x:auto}.palette h4{display:none}.pitem{flex-direction:column;flex:none;width:auto;min-width:78px;font-size:.75em}.pitem .cost{margin-left:0}.side{border-left:0;border-top:1px solid var(--line);max-height:36vh}.program{grid-template-rows:1fr 380px;grid-template-columns:1fr}.testpane{border-left:0;border-top:1px solid var(--line)}.hero h1{font-size:1.9em}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
