:root{color-scheme:dark;--bg: #080c11;--surface: #0d141c;--surface-raised: #121c26;--surface-inset: #070b10;--border: #263848;--border-bright: #3c566b;--text: #edf6fc;--muted: #8fa4b3;--dim: #5f7483;--accent: #68d7ff;--accent-strong: #00bced;--ok: #52e0a0;--warn: #ffba49;--danger: #ff3f4d;--danger-dark: #6e111b;--mode-observe: #748493;--mode-guide: #2797ff;--mode-autonomy: #a887ff;--mode-manual: #efa72c;--mode-estop: #e32034;--shadow: 0 20px 55px rgb(0 0 0 / 35%);--viewer-bg: #070c12;--viewer-grid: #1b3040;--viewer-text: #d8eaf4;--viewer-muted: #718997;--viewer-chassis: #4b7690;--viewer-wheel: #b8c6cf;--viewer-arm: #ffba49;--viewer-mast: #68d7ff;--viewer-reach: #3f6578;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}:root[data-theme=light]{color-scheme:light;--bg: #eaf0f4;--surface: #f8fbfd;--surface-raised: #ffffff;--surface-inset: #e5edf2;--border: #bac9d2;--border-bright: #8ea5b3;--text: #12232d;--muted: #526b7a;--dim: #738995;--accent: #007daf;--accent-strong: #00658f;--ok: #087c4c;--warn: #a66100;--danger: #c4142b;--danger-dark: #7d0c1b;--mode-observe: #65747e;--mode-guide: #087dcf;--mode-autonomy: #6840c4;--mode-manual: #c37400;--mode-estop: #c4142b;--shadow: 0 18px 45px rgb(28 53 68 / 15%);--viewer-bg: #eef4f7;--viewer-grid: #cedce4;--viewer-text: #172b36;--viewer-muted: #607985;--viewer-chassis: #477790;--viewer-wheel: #344b58;--viewer-arm: #bd6d00;--viewer-mast: #007dac;--viewer-reach: #8ca8b6}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0;background:var(--bg)}body{min-height:100vh;background-image:radial-gradient(circle at 12% -8%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 31rem),linear-gradient(135deg,transparent 0 49%,color-mix(in srgb,var(--border) 18%,transparent) 50%,transparent 51%);background-size:auto,28px 28px}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 65%,white);outline-offset:3px}.console-shell{width:min(1560px,100%);min-height:100vh;margin:0 auto;padding:22px 28px 124px}.console-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.brand{display:flex;align-items:center;gap:14px}.brand__mark{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--accent);color:var(--accent);font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;clip-path:polygon(15% 0,100% 0,100% 85%,85% 100%,0 100%,0 15%)}.brand h1,.brand p{margin:0}.brand h1{font-size:clamp(1.05rem,2vw,1.45rem);letter-spacing:.055em;text-transform:uppercase}.brand p{margin-top:3px;color:var(--muted);font:500 .7rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.header-tools{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.cockpit-tools{display:flex;align-items:center;gap:9px}.cockpit-pip-tool[hidden]{display:none}.build-label{color:var(--dim);font:700 .65rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase}.tool-button{min-height:38px;padding:0 14px;border:1px solid var(--border);border-radius:4px;background:var(--surface);cursor:pointer;font:700 .72rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.05em;text-transform:uppercase}.tool-button:hover{border-color:var(--accent)}.tool-button--gear{width:38px;padding:0;font-size:1rem;letter-spacing:0}.mode-banner{width:100%;margin:0 0 16px;padding:13px 20px;border:1px solid currentColor;border-left-width:8px;border-radius:4px;background:color-mix(in srgb,currentColor 12%,var(--surface));color:var(--mode-observe);font:900 clamp(1.05rem,2.2vw,1.6rem)/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em;text-align:center;text-transform:uppercase}.mode-banner.mode--guide,.mode--guide{color:var(--mode-guide)}.mode-banner.mode--manual,.mode--manual{color:var(--mode-manual)}.mode-banner.mode--observe,.mode--observe{color:var(--mode-observe)}.mode-banner.mode--e-stop,.mode--e-stop{color:var(--mode-estop)}.mode-banner.mode--e-stop{color:#fff;border-color:var(--mode-estop);background:var(--mode-estop);box-shadow:0 0 32px color-mix(in srgb,var(--mode-estop) 45%,transparent)}.mode-banner.mode-observe{color:var(--mode-observe)}.mode-banner.mode-guide{color:var(--mode-guide)}.mode-banner.mode-manual{color:var(--mode-manual)}.mode-banner.mode-autonomous-sim{color:var(--mode-autonomy);border-color:var(--mode-autonomy);background:color-mix(in srgb,var(--mode-autonomy) 14%,var(--surface));box-shadow:0 0 24px color-mix(in srgb,var(--mode-autonomy) 25%,transparent)}.mode-banner.mode-e-stop{color:#fff;border-color:var(--mode-estop);background:var(--mode-estop);box-shadow:0 0 32px color-mix(in srgb,var(--mode-estop) 45%,transparent)}.console-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:16px;align-items:start}.console-column{display:grid;gap:16px;min-width:0}.panel{min-width:0;border:1px solid var(--border);border-radius:5px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface-raised) 88%,transparent),var(--surface));box-shadow:var(--shadow);overflow:hidden}.panel__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin:0;padding:0 15px;border-bottom:1px solid var(--border);color:var(--text);font:800 .73rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.11em;text-transform:uppercase}.panel__heading:before{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px var(--accent);content:""}.viewer-host{padding:12px}.panel-fullscreen-button{display:inline-grid;flex:0 0 auto;width:30px;height:30px;padding:0;place-items:center;border:1px solid var(--border-bright);border-radius:5px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent);cursor:pointer;font:800 1rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0}.panel-fullscreen-button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 17%,var(--surface))}.viewer-heading-tools{display:inline-flex;align-items:center;gap:7px;margin-left:auto}.viewer-mode-toggle{display:inline-flex;overflow:hidden;border:1px solid var(--border-bright);border-radius:5px}.viewer-mode-button,.viewer-camera-preset{min-height:30px;border:0;background:var(--surface);color:var(--muted);font:800 .66rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}.viewer-mode-button{min-width:36px;cursor:pointer}.viewer-mode-button+.viewer-mode-button{border-left:1px solid var(--border-bright)}.viewer-mode-button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent)}.viewer-camera-preset{padding:0 8px;border:1px solid var(--border-bright);border-radius:5px}.viewer-camera-preset:disabled{opacity:.48}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.panel.is-maximized{position:fixed;inset:0;z-index:40;height:100dvh;border-radius:0;display:flex;flex-direction:column}.panel.is-maximized .viewer-host{flex:1;min-height:0}body.viewer-maximized{overflow:hidden}body.viewer-maximized:has(#touch-zones:not([hidden])) #touch-zones{position:fixed;z-index:44;right:max(18px,env(safe-area-inset-right));bottom:max(118px,calc(env(safe-area-inset-bottom) + 118px));left:max(18px,env(safe-area-inset-left));margin:0;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 48%,transparent);border-radius:14px;background:#05080c85;box-shadow:0 8px 30px #00000059;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.viewer-maximized:has(#touch-zones:not([hidden])) #mode-buttons{position:fixed;z-index:44;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));width:min(540px,calc(100vw - 32px));margin:0;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 48%,transparent);border-radius:10px;background:#05080c9e;box-shadow:0 8px 30px #00000059;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode{overflow:hidden;background:#03070b}body.cockpit-mode .console-shell{width:100%;min-height:100dvh;margin:0;padding:0}body.cockpit-mode #viewer-pane{position:fixed;inset:0;z-index:10;display:flex;height:100dvh;flex-direction:column;border:0;border-radius:0;background:var(--viewer-bg);box-shadow:none}body.cockpit-mode #viewer-pane>.panel__heading{display:none}body.cockpit-mode #viewer-pane .viewer-host{flex:1;min-height:0;padding:0}body.cockpit-mode #viewer-pane .teleop-viewer{height:100%}body.cockpit-mode #viewer-pane .teleop-viewer__panel{display:flex;min-height:0;flex-direction:column}body.cockpit-mode #viewer-pane .teleop-viewer__canvas{height:auto!important;min-height:0;flex:1}body.cockpit-mode #input-pane,body.cockpit-mode #telemetry-pane,body.cockpit-mode #mode-banner-root,body.cockpit-mode .cockpit-tools{z-index:44}body.cockpit-mode .phone-controller,body.cockpit-mode .connect-overlay,body.cockpit-mode .tour-overlay,body.cockpit-mode .tour-ring,body.cockpit-mode .tour-bubble{z-index:43}body.cockpit-mode .console-header .brand,body.cockpit-mode .header-tools>:not(.cockpit-tools),body.cockpit-mode .missions-panel,body.cockpit-mode .mission-toast{visibility:hidden;pointer-events:none}body.cockpit-mode .cockpit-tools{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;max-width:calc(100vw - 32px);flex-wrap:wrap;justify-content:flex-end;padding:6px;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);border-radius:10px;background:#05080cad;box-shadow:0 8px 30px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}body.cockpit-mode .cockpit-tools .tool-button{min-height:36px;background:#0d141cb8}body.cockpit-mode #mode-banner-root{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;width:min(280px,30vw);pointer-events:none;transform:translate(-50%)}body.cockpit-mode #mode-banner-root .mode-banner{margin:0;padding:10px 14px;box-shadow:0 8px 30px #0000004d;font-size:clamp(.8rem,1.7vw,1.15rem);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode #mode-banner-root .mode-banner:not(.mode-e-stop):not(.mode--e-stop){background-color:#05080ca3}body.cockpit-mode #mode-banner-root .mode-banner.mode-e-stop,body.cockpit-mode #mode-banner-root .mode-banner.mode--e-stop{background:color-mix(in srgb,var(--mode-estop) 88%,transparent)}body.cockpit-mode #input-pane{position:fixed;inset:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;pointer-events:none}body.cockpit-mode #input-pane>.panel__heading,body.cockpit-mode #input-pane>.input-strip{display:none}body.cockpit-mode #input-pane>.submode-line,body.cockpit-mode #input-pane>.mode-buttons,body.cockpit-mode #input-pane>.autonomy-controls,body.cockpit-mode #input-pane>.source-strip,body.cockpit-mode #input-pane>.touch-zones,body.cockpit-mode #input-pane>.roll-buttons{pointer-events:auto}body.cockpit-mode #mode-buttons{position:fixed;z-index:2;top:max(70px,calc(env(safe-area-inset-top) + 70px));left:max(16px,env(safe-area-inset-left));width:min(580px,54vw);margin:0;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:10px;background:#05080c94;box-shadow:0 8px 30px #00000052;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode #input-pane>.source-strip{position:fixed;top:max(132px,calc(env(safe-area-inset-top) + 132px));left:max(16px,env(safe-area-inset-left));width:min(580px,54vw);margin:0;padding:8px;border-radius:9px;background:#05080c85;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode #input-pane>.submode-line{position:fixed;top:max(186px,calc(env(safe-area-inset-top) + 186px));left:max(16px,env(safe-area-inset-left));margin:0;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border-bright) 55%,transparent);border-radius:8px;background:#05080c94;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode #input-pane>.autonomy-controls{position:fixed;z-index:1;top:max(230px,calc(env(safe-area-inset-top) + 230px));left:max(16px,env(safe-area-inset-left));width:min(580px,54vw);max-height:calc(100dvh - 370px);margin:0;overflow:auto;background:#05080cc7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}body.cockpit-mode #touch-zones{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(118px,calc(env(safe-area-inset-bottom) + 118px));left:max(18px,env(safe-area-inset-left));margin:0;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 48%,transparent);border-radius:14px;background:#05080c7a;box-shadow:0 8px 30px #00000059;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode #touch-zones .touch-zone{border-color:color-mix(in srgb,var(--accent) 54%,transparent);background:#080f1657}body.cockpit-mode #roll-buttons{position:fixed;bottom:max(54px,calc(env(safe-area-inset-bottom) + 54px));left:50%;width:min(320px,42vw);margin:0;transform:translate(-50%)}body.cockpit-mode #telemetry-pane{position:fixed;top:max(230px,calc(env(safe-area-inset-top) + 230px));bottom:max(300px,calc(env(safe-area-inset-bottom) + 300px));left:max(16px,env(safe-area-inset-left));width:min(340px,42vw);border-color:color-mix(in srgb,var(--border-bright) 60%,transparent);background:#05080c8f;box-shadow:0 8px 30px #00000052;overflow:auto;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body.cockpit-mode #fpv-pane{position:fixed;z-index:30;display:flex;width:min(360px,38vw);max-width:calc(100vw - 32px);max-height:calc(100dvh - 96px);flex-direction:column;border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:#05080cc2;box-shadow:0 12px 36px #0000007a;overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}body.cockpit-mode #fpv-pane[hidden],body.cockpit-mode #fpv-pane.is-cockpit-pip-hidden{display:none}body.cockpit-mode #fpv-pane[data-cockpit-corner=top-right]{top:max(76px,calc(env(safe-area-inset-top) + 76px));right:max(16px,env(safe-area-inset-right));bottom:auto;left:auto}body.cockpit-mode #fpv-pane[data-cockpit-corner=top-left]{top:max(230px,calc(env(safe-area-inset-top) + 230px));right:auto;bottom:auto;left:max(16px,env(safe-area-inset-left))}body.cockpit-mode:has(#fpv-pane[data-cockpit-corner=top-left]) #telemetry-pane{right:max(16px,env(safe-area-inset-right));left:auto}body.cockpit-mode #fpv-pane>.panel__heading{flex:0 0 auto;cursor:grab;touch-action:none}body.cockpit-mode #fpv-pane.is-dragging>.panel__heading{cursor:grabbing}body.cockpit-mode #fpv-fullscreen{display:none}body.cockpit-mode #fpv-pane .fpv-figure{flex:1;min-height:0}body.cockpit-mode #fpv-pane .fpv-figure img{width:100%;max-width:none;border:0;border-radius:0}body.cockpit-mode #fpv-pane .fpv-caption{padding:0 10px 8px}@media(max-width:760px),(max-height:620px){body.cockpit-mode #mode-banner-root,body.cockpit-mode #telemetry-pane{display:none}body.cockpit-mode #mode-buttons,body.cockpit-mode #input-pane>.source-strip{width:min(520px,calc(100vw - 32px))}body.cockpit-mode #fpv-pane{width:min(300px,42vw)}body.cockpit-mode #input-pane>.autonomy-controls{top:max(200px,calc(env(safe-area-inset-top) + 200px));right:max(16px,env(safe-area-inset-right));bottom:max(116px,calc(env(safe-area-inset-bottom) + 116px));left:max(16px,env(safe-area-inset-left));width:auto;max-height:none}}.teleop-viewer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teleop-viewer__panel{min-width:0;margin:0;border:1px solid var(--border);border-radius:3px;background:var(--viewer-bg);overflow:hidden}.teleop-viewer__title{display:block;padding:8px 11px;border-bottom:1px solid var(--border);color:var(--muted);font:700 .67rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase}.teleop-viewer__canvas{display:block;width:100%}.teleop-viewer--descriptor{display:block}.teleop-viewer__canvas--descriptor{min-height:260px}.viewer2d-status{margin:0;padding:8px 11px;color:var(--muted);font:700 .64rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}@media(max-width:760px){.viewer-heading-tools{gap:4px}.viewer-screenshot-button,.viewer-camera-preset{display:none}}.input-strip{display:grid;grid-template-columns:minmax(210px,1fr) minmax(240px,1.35fr);gap:18px;padding:16px}.sensitivity-control{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;align-items:center}.sensitivity-control label,.key-help__title{color:var(--muted);font:700 .68rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.sensitivity-control output{justify-self:end;color:var(--accent);font:800 .78rem/1 ui-monospace,SFMono-Regular,Consolas,monospace}.sensitivity-control input{grid-column:1 / -1;width:100%;accent-color:var(--accent)}.key-help{display:grid;align-content:center;gap:8px}.key-help p{margin:0;color:var(--muted);font:.72rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}kbd{display:inline-block;min-width:24px;padding:3px 5px;border:1px solid var(--border-bright);border-bottom-width:2px;border-radius:3px;background:var(--surface-inset);color:var(--text);font:inherit;text-align:center}.hud,.teleop-hud{display:grid;gap:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.teleop-hud .mode-banner{margin:0;border-width:0 0 1px 7px;border-radius:0}.hud-grid{display:grid}.hud-panel{min-width:0;padding:15px;border-bottom:1px solid var(--border)}.hud-panel:last-child{border-bottom:0}.hud-heading{margin:0 0 12px;color:var(--muted);font:800 .67rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.11em;text-transform:uppercase}.hud-row{display:grid;grid-template-columns:minmax(7rem,.75fr) minmax(0,1.25fr);gap:10px;align-items:baseline;padding:4px 0;font-size:.72rem}.hud-row-stacked{grid-template-columns:1fr;gap:6px;padding-top:10px}.hud-label{color:var(--dim);letter-spacing:.045em;text-transform:uppercase}.hud-value{min-width:0;color:var(--text);overflow-wrap:anywhere;text-align:right}.bridge-link,.deadman-indicator,.controller-connection{font-weight:800}.bridge-link:before,.deadman-indicator:before,.controller-connection:before{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor;content:""}.status-connected,.is-engaged{color:var(--ok)}.status-connecting,.status-stale{color:var(--warn)}.status-disconnected,.status-error,.is-released{color:var(--danger)}.raw-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.raw-axes{grid-template-columns:repeat(4,minmax(0,1fr))}.hud__section{padding:14px 15px;border-bottom:1px solid var(--border)}.hud__section:last-child{border-bottom:0}.hud__title{margin:0 0 11px;color:var(--muted);font:800 .67rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.11em;text-transform:uppercase}.hud__grid,.telemetry-grid{display:grid;grid-template-columns:minmax(7rem,auto) minmax(0,1fr);gap:7px 13px;margin:0;font-size:.75rem}.hud__grid dt,.telemetry-grid dt{color:var(--dim);text-transform:uppercase}.hud__grid dd,.telemetry-grid dd{min-width:0;margin:0;color:var(--text);overflow-wrap:anywhere}.status-pill{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font:800 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase}.status-pill:before{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;content:""}.status--online,.deadman--engaged{color:var(--ok)}.status--connecting,.status--stale{color:var(--warn)}.status--offline,.status--error,.deadman--released{color:var(--danger)}.raw-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.raw-row--axes{grid-template-columns:repeat(4,minmax(0,1fr))}.raw-value{padding:5px 2px;border:1px solid var(--border);border-radius:2px;background:var(--surface-inset);color:var(--muted);font-size:.65rem;text-align:center}.raw-value.is-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-inset))}.temps-table{width:100%;border-collapse:collapse;font-size:.74rem}.temps-table th,.temps-table td{padding:6px 4px;border-bottom:1px solid var(--border);text-align:left}.temps-table th:last-child,.temps-table td:last-child{text-align:right}.unavailable{color:var(--danger);font-weight:900}.fault-list,.faults-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.fault-list li,.faults-list li{padding:8px 10px;border-left:3px solid var(--danger);background:color-mix(in srgb,var(--danger) 9%,transparent);color:var(--danger);font-size:.72rem}.fault-list .fault-list__empty,.faults-list .fault-clear{border-color:var(--ok);background:transparent;color:var(--ok)}.estop-button{position:fixed;z-index:50;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));min-width:210px;min-height:82px;padding:10px 24px;border:4px solid #fff;border-radius:8px;background:var(--danger);color:#fff;box-shadow:0 0 0 5px var(--danger-dark),0 13px 35px #0000007f;cursor:pointer;font:950 1.35rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em;text-transform:uppercase}.estop-button:hover{filter:brightness(1.12)}.estop-button:active{transform:translateY(2px)}.estop-reset,.estop-reset-flow{position:fixed;z-index:45;inset:auto max(20px,env(safe-area-inset-right)) 124px auto;width:min(430px,calc(100vw - 40px));max-height:calc(100vh - 160px);padding:17px;border:2px solid var(--danger);border-radius:5px;background:var(--surface-raised);box-shadow:var(--shadow);overflow:auto}.estop-reset[hidden],.estop-reset-flow[hidden]{display:none}.estop-reset h2,.estop-reset p,.estop-reset-flow strong,.estop-reset-flow ol{margin:0}.estop-reset h2,.estop-reset-flow strong{color:var(--danger);font:900 .9rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.estop-reset p,.estop-reset-flow ol{margin-top:9px;color:var(--muted);font-size:.78rem;line-height:1.55}.estop-reset button,.estop-reset-flow button{width:100%;min-height:44px;margin-top:13px;border:1px solid var(--danger);border-radius:3px;background:color-mix(in srgb,var(--danger) 17%,var(--surface));color:var(--danger);cursor:pointer;font:800 .75rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase}.estop-arm-button{background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.fatal-error{max-width:740px;margin:15vh auto;padding:24px;border:1px solid var(--danger);background:var(--surface);color:var(--danger);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}@media(max-width:940px){.console-shell{padding-inline:16px}.console-grid{grid-template-columns:1fr}}@media(max-width:620px){.console-header,.input-strip{align-items:stretch;grid-template-columns:1fr}.console-header{display:grid}.header-tools{justify-content:space-between}.teleop-viewer{grid-template-columns:1fr}.estop-button{right:14px;bottom:14px;left:14px;width:calc(100% - 28px)}.estop-reset,.estop-reset-flow{right:14px;bottom:118px;left:14px;width:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] *:before,:root[data-reduced-motion=true] *:after{scroll-behavior:auto!important;transition:none!important}.source-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.source-strip__label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2, #888)}.source-button{font:inherit;padding:6px 14px;border-radius:6px;border:1px solid var(--edge, #444);background:transparent;color:inherit;cursor:pointer}.source-button.is-active{background:var(--accent, #2a78d6);border-color:var(--accent, #2a78d6);color:#fff}.tilt-arm{font:inherit;font-size:12px;padding:8px 12px;border-radius:6px;border:1px dashed var(--edge, #666);background:transparent;color:inherit;cursor:pointer}.touch-zones{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-bottom:10px}.touch-zone{touch-action:none;user-select:none;-webkit-user-select:none;border-radius:12px;border:1px solid var(--edge, #444);display:flex;align-items:center;justify-content:center}.touch-zone--stick{min-height:160px}.touch-zone--deadman{width:110px;height:110px;border-radius:50%;border-width:2px;text-align:center;font-size:12px;letter-spacing:.1em}@media(max-width:900px){.console-grid{grid-template-columns:1fr}.touch-zone--stick{min-height:130px}}.hud-value.is-warning{color:var(--warning, #fab219);font-weight:650}.hud-value.is-critical{color:var(--critical, #d03b3b);font-weight:650}.fpv-figure{margin:0;display:flex;flex-direction:column;gap:.4rem}.fpv-figure img{width:100%;max-width:480px;border-radius:6px;border:1px solid var(--panel-border, rgba(120, 160, 180, .35));background:#000;aspect-ratio:4 / 3;object-fit:cover}.fpv-panel.is-maximized .fpv-figure{flex:1;min-height:0}.fpv-panel.is-maximized .fpv-figure img{flex:1;min-height:0;max-width:none;object-fit:contain}.fpv-caption{font-size:.72rem;letter-spacing:.08em;opacity:.75}.submode-line{margin:0 0 .5rem;font-size:.82rem}.submode-line strong{color:var(--accent, #46d6e6);letter-spacing:.04em}.submode-hint{opacity:.6;font-size:.75rem}.robot-picker{margin:.1rem 0 0;font-size:.75rem;opacity:.85}.robot-picker a{color:inherit}.brain-panel{border-left:3px solid #b78add}.brain-disclaimer{margin:0 0 .6rem;font-size:.72rem;opacity:.7;font-style:italic}.brain-fields{margin:0;display:flex;flex-direction:column;gap:.35rem}.brain-fields div{display:grid;grid-template-columns:5.5rem 1fr;gap:.5rem}.brain-fields dt{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65}.brain-fields dd{margin:0;font-size:.85rem}.brain-meta{margin:.5rem 0 0;font-size:.7rem;opacity:.55}.mode-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .6rem}.mode-button{flex:1 1 auto;min-height:44px;padding:.45rem .7rem;border-radius:8px;border:1px solid rgba(120,160,180,.4);background:#46d6e614;color:inherit;font:inherit;font-size:.78rem;letter-spacing:.05em;cursor:pointer}.mode-button:disabled{opacity:.35;cursor:not-allowed}.mode-button--hold.is-holding{background:#46d6e659}.roll-buttons{display:flex;gap:.5rem;margin-top:.5rem}.roll-button{flex:1;min-height:44px;border-radius:8px;border:1px solid rgba(120,160,180,.4);background:#f2a5411a;color:inherit;font:inherit;font-size:.78rem;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.tour-overlay{pointer-events:none;position:fixed;inset:0;z-index:48;background:#05080c8c}.tour-ring{position:fixed;z-index:48;border:2px solid #46d6e6;border-radius:10px;box-shadow:0 0 18px #46d6e673;pointer-events:none}.tour-bubble{pointer-events:auto;position:fixed;z-index:49;width:min(320px,90vw);padding:14px 16px;border:1px solid #2a8a97;border-radius:12px;background:#111826;color:#edf6fc;box-shadow:var(--shadow)}.tour-bubble h3,.tour-bubble p{margin:0}.tour-bubble h3{margin-bottom:8px;color:#68d7ff;font-size:1rem}.tour-bubble>p:not(.tour-step-count){color:#b9c8d2;font-size:.82rem;line-height:1.5}.tour-step-count{margin-bottom:6px!important;color:#8fa4b3;font:700 .68rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}.tour-buttons{display:flex;align-items:center;gap:7px;margin-top:12px}.tour-spacer{flex:1}.tour-button{min-height:38px;padding:.4rem .7rem;border:1px solid rgba(120,160,180,.4);border-radius:8px;background:#46d6e614;color:inherit;cursor:pointer;font:inherit;font-size:.76rem;letter-spacing:.05em}.tour-button:hover:not(:disabled),.tour-button--primary{border-color:#46d6e6;background:#46d6e638}.tour-button:disabled{opacity:.35;cursor:not-allowed}.mode-button--hold,.roll-button,.mode-button{touch-action:none;-webkit-user-select:none;user-select:none}.autonomy-controls{display:grid;gap:11px;margin:0 0 12px;padding:13px;border:1px solid color-mix(in srgb,var(--mode-autonomy) 55%,var(--border));border-left-width:4px;border-radius:8px;background:color-mix(in srgb,var(--mode-autonomy) 8%,var(--surface-inset))}.autonomy-controls__heading,.autonomy-controls__actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.autonomy-controls__heading strong{font:900 .76rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.autonomy-controls__sim-badge{padding:4px 7px;border:1px solid var(--mode-autonomy);border-radius:999px;color:var(--mode-autonomy);font:900 .62rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em}.autonomy-controls__command-row{display:grid;gap:6px}.autonomy-controls__command-row label,.autonomy-controls__tier{color:var(--muted);font:700 .67rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.055em;text-transform:uppercase}.autonomy-controls__command-row input,.autonomy-controls__tier select{min-height:42px;padding:8px 10px;border:1px solid var(--border-bright);border-radius:6px;background:var(--surface-inset);color:var(--text)}.autonomy-controls__command-row input{width:100%}.autonomy-controls__tier{display:grid;flex:1 1 210px;gap:5px}.autonomy-controls__actions .mode-button{flex:1 1 120px;margin:0}.autonomy-controls .autonomy-enable{border-width:2px;border-color:var(--ok);color:var(--ok);touch-action:none;user-select:none;-webkit-user-select:none}.autonomy-controls .autonomy-enable.is-holding{background:color-mix(in srgb,var(--ok) 30%,var(--surface));box-shadow:0 0 18px color-mix(in srgb,var(--ok) 30%,transparent)}.autonomy-controls .autonomy-disarm{border-color:color-mix(in srgb,var(--danger) 65%,var(--border));color:var(--danger)}.autonomy-controls[data-tier=armed]{border-color:color-mix(in srgb,var(--warn) 70%,var(--border))}.autonomy-controls__status{margin:0;color:var(--muted);font:700 .68rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.035em}.autonomy-controls[data-active=true] .autonomy-controls__status{color:var(--mode-autonomy)}body.connect-screen-open{overflow:hidden}.connect-overlay{position:fixed;inset:0;z-index:47;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(110px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#03070bc7;overflow-y:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.connect-overlay[hidden]{display:none}.connect-panel{width:min(560px,100%);border-color:var(--border-bright)}.connect-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 17px;border-bottom:1px solid var(--border)}.connect-panel__header h2,.connect-eyebrow,.connect-introduction,.connect-status,.connect-inline-error{margin:0}.connect-panel__header h2{margin-top:5px;font-size:clamp(1.1rem,3vw,1.45rem);letter-spacing:.035em}.connect-eyebrow{color:var(--accent);font:800 .66rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}.connect-dismiss{display:grid;flex:0 0 auto;width:38px;height:38px;padding:0;place-items:center;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:1.45rem;line-height:1}.connect-dismiss:hover,.connect-token-toggle:hover{border-color:var(--accent);color:var(--accent)}.connect-introduction{padding:16px 22px 0;color:var(--muted);font-size:.82rem;line-height:1.5}.connect-form{display:grid;gap:16px;padding:20px 22px 22px}.connect-field{display:grid;gap:7px}.connect-field>label,.connect-remember{color:var(--muted);font:700 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.075em;text-transform:uppercase}.connect-field input{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--border-bright);border-radius:6px;background:var(--surface-inset);color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.connect-field input::placeholder{color:var(--dim)}.connect-token-row{display:grid;flex:1 1 260px;grid-template-columns:minmax(0,1fr) auto}.connect-token-controls{display:flex;gap:8px}.connect-token-row input{border-radius:6px 0 0 6px}.connect-token-toggle{min-width:88px;padding:0 11px;border:1px solid var(--border-bright);border-left:0;border-radius:0 6px 6px 0;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--muted);cursor:pointer;font:800 .66rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.connect-google-sign-in{flex:0 0 auto;min-height:46px;padding:0 13px;border:1px solid var(--border-bright);border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text);cursor:pointer;font:800 .66rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.025em}.connect-google-sign-in:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.connect-google-sign-in:disabled{cursor:wait;opacity:.55}.connect-preferences{display:flex;align-items:center;justify-content:space-between;gap:14px}.connect-remember{display:inline-flex;align-items:center;gap:9px;cursor:pointer}.connect-remember input{position:relative;width:40px;height:22px;margin:0;border:1px solid var(--border-bright);border-radius:999px;appearance:none;background:var(--surface-inset);cursor:pointer;transition:background .12s ease}.connect-remember input:before{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--muted);content:"";transition:transform .12s ease}.connect-remember input:checked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 35%,var(--surface))}.connect-remember input:checked:before{background:var(--accent);transform:translate(18px)}.connect-forget{padding:2px 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--muted);cursor:pointer;font-size:.72rem}.connect-forget:hover{color:var(--danger)}.connect-inline-error{padding:9px 11px;border-left:3px solid var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);font:800 .75rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace}.connect-inline-error[hidden]{display:none}.connect-status{min-height:1.35em;color:var(--muted);font:800 .72rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.045em}.connect-overlay[data-phase=preflight] .connect-status,.connect-overlay[data-phase=retry] .connect-status,.connect-overlay[data-phase=connecting] .connect-status{color:var(--warn)}.connect-overlay[data-phase=connected] .connect-status{color:var(--ok)}.connect-overlay[data-phase=error] .connect-status,.connect-overlay[data-phase=token-rejected] .connect-status{color:var(--danger)}.connect-submit.mode-button{width:100%;min-height:48px;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 19%,var(--surface));color:var(--text);font:900 .78rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}@media(max-width:520px){.connect-overlay{align-items:start;padding-inline:12px}.connect-panel__header,.connect-form,.connect-introduction{padding-inline:16px}.connect-preferences{align-items:flex-start;flex-direction:column}.connect-token-controls{align-items:stretch;flex-direction:column}}body.settings-screen-open{overflow:hidden}.settings-overlay{position:fixed;inset:0;z-index:44;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(110px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#03070bc7;overflow-y:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.settings-overlay[hidden]{display:none}.settings-panel{width:min(560px,100%);border-color:var(--border-bright)}.settings-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 17px;border-bottom:1px solid var(--border)}.settings-panel__header h2,.settings-eyebrow,.settings-status{margin:0}.settings-panel__header h2{margin-top:5px;font-size:clamp(1.1rem,3vw,1.45rem);letter-spacing:.035em}.settings-eyebrow{color:var(--accent);font:800 .66rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}.settings-dismiss{display:grid;flex:0 0 auto;width:38px;height:38px;padding:0;place-items:center;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:1.45rem;line-height:1}.settings-dismiss:hover{border-color:var(--accent);color:var(--accent)}.settings-form{display:grid;gap:15px;padding:20px 22px 22px}.settings-field{display:grid;gap:7px;color:var(--muted);font:700 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.075em;text-transform:uppercase}.settings-field select,.settings-field input[type=range]{width:100%}.settings-field select{min-height:44px;padding:9px 11px;border:1px solid var(--border-bright);border-radius:6px;background:var(--surface-inset);color:var(--text)}.settings-field output{float:right;color:var(--text)}.settings-check{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;cursor:pointer}.settings-check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}.settings-check span{display:grid;gap:4px}.settings-check strong{font-size:.82rem}.settings-check small{color:var(--muted);line-height:1.4}.settings-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.settings-actions .mode-button{min-height:42px;font-size:.69rem}.settings-actions .settings-forget{border-color:color-mix(in srgb,var(--danger) 65%,var(--border));color:var(--danger)}.settings-status{min-height:1.35em;color:var(--muted);font:700 .7rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}.settings-save.mode-button{width:100%;min-height:48px;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 19%,var(--surface))}@media(max-width:520px){.settings-overlay{align-items:start;padding-inline:12px}.settings-panel__header,.settings-form{padding-inline:16px}.settings-actions{grid-template-columns:1fr}}.missions-launcher{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));color:var(--accent)}.missions-launcher[aria-expanded=true]{background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:0 0 16px color-mix(in srgb,var(--accent) 18%,transparent)}.missions-panel{position:relative;z-index:42;width:min(680px,calc(100% - 240px));max-height:min(420px,calc(100dvh - 250px));margin:0 0 16px;border-color:color-mix(in srgb,var(--accent) 55%,var(--border));overflow:auto}.missions-panel[hidden],.mission-toast[hidden],.mission-lesson[hidden],.mission-checkpoint[hidden],.mission-clear[hidden]{display:none}.missions-panel__header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--accent) 7%,var(--surface-raised))}.missions-panel__header h2,.missions-panel__eyebrow,.missions-panel__body h3,.missions-panel__body p{margin:0}.missions-panel__header h2{margin-top:4px;font-size:.96rem;letter-spacing:.045em}.missions-panel__eyebrow{color:var(--accent);font:800 .63rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;text-transform:uppercase}.missions-progress{flex:0 0 auto;color:var(--warn);font:900 .78rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;white-space:pre}.missions-panel__body{display:grid;gap:9px;padding:14px 16px 16px}.missions-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font:750 .66rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.07em;text-transform:uppercase}.missions-meta span:last-child{color:var(--accent);text-align:right}.missions-panel__body h3{color:var(--text);font-size:1rem}.mission-objective{color:var(--text);font-size:.84rem;font-weight:700;line-height:1.45}.mission-lesson{border:1px solid color-mix(in srgb,var(--accent) 36%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--accent) 6%,var(--surface-inset))}.mission-lesson summary{min-height:38px;padding:11px 12px;color:var(--accent);cursor:pointer;font:800 .7rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase}.mission-lesson p{padding:0 12px 12px;color:var(--muted);font-size:.78rem;line-height:1.5}.mission-checkpoint,.mission-clear{padding-left:10px;border-left:3px solid var(--warn);color:var(--muted);font-size:.76rem;line-height:1.45}.mission-clear{border-color:var(--ok);color:var(--ok)}.mission-toast{position:fixed;z-index:42;top:max(16px,env(safe-area-inset-top));left:50%;width:min(520px,calc(100vw - 32px));padding:12px 16px;transform:translate(-50%);border:1px solid var(--ok);border-radius:9px;background:color-mix(in srgb,var(--ok) 13%,var(--surface-raised));color:var(--ok);box-shadow:var(--shadow);pointer-events:none;font:850 .76rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.045em;text-align:center}body.viewer-maximized .missions-panel,body.viewer-maximized .mission-toast{visibility:hidden;pointer-events:none}@media(max-width:620px){.header-tools{flex-wrap:wrap;justify-content:flex-start}.header-tools .build-label{flex-basis:100%}.missions-panel{width:100%;max-height:min(350px,calc(100dvh - 260px));margin-right:0}.missions-panel__header,.missions-meta{align-items:flex-start}.missions-panel__header{gap:10px}.missions-progress{font-size:.7rem}}
