*{box-sizing:border-box}html,body,.main-demo{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#e8edf2;color:#15202b}body{user-select:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}canvas{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}.main-demo{position:relative}
.hud{position:fixed;top:58px;left:18px;width:226px;padding:12px 14px;border:1px solid rgba(30,43,55,.16);border-radius:12px;background:rgba(251,253,255,.84);backdrop-filter:blur(16px);box-shadow:0 8px 28px rgba(32,44,56,.10);pointer-events:none}.brand{font-size:12px;font-weight:850;letter-spacing:.08em;margin-bottom:10px}.brand span{font-weight:650;color:#778390}.hud-grid{display:grid;grid-template-columns:58px 1fr;gap:4px 8px;font-size:10px;line-height:1.45}.hud-grid span{color:#75808b}.hud-grid b{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.demo-mode-control{position:fixed;right:18px;top:170px;z-index:6;padding:10px;border-radius:10px;background:#fffffff0;font-size:11px;display:grid;gap:8px}.simple-only{display:grid;gap:6px}html[data-demo-mode=bridge] .simple-only{display:none}html[data-demo-mode=simple] [data-bridge-hud],html[data-demo-mode=simple] [data-bridge-controls],html[data-demo-mode=simple] [data-endpoint-settings]{display:none!important}
html[data-demo-mode=train] .simple-only,html[data-demo-mode=simple] .bridge-only{display:none}
.bridge-only{display:grid;gap:5px;max-width:300px;font-size:10px;line-height:1.4}.bridge-only .human-side{color:#1d78b8}.bridge-only .agent-side{color:#9b6618}
.bridge-hud{position:fixed;top:58px;right:18px;z-index:4;display:grid;gap:3px;min-width:228px;padding:10px 12px;border:1px solid rgba(48,159,196,.34);border-radius:12px;background:rgba(231,250,255,.86);backdrop-filter:blur(16px);box-shadow:0 8px 28px rgba(32,86,104,.12);pointer-events:none}.bridge-hud b{color:#0d607b;font-size:10px;letter-spacing:.12em}.bridge-hud span{color:#244c5b;font:750 9px ui-monospace,monospace}.bridge-hud small{max-width:260px;overflow:hidden;text-overflow:ellipsis;color:#5c7984;font:650 8px ui-monospace,monospace;white-space:nowrap}.bridge-hud[data-state=failed]{border-color:#fecaca;background:rgba(255,245,245,.9)}.bridge-hud[data-state=failed] b{color:#b91c1c}
.help-card{position:fixed;left:50%;top:24px;transform:translateX(-50%);display:grid;gap:3px;max-width:min(620px,70vw);padding:9px 13px;border-radius:10px;background:rgba(251,253,255,.9);border:1px solid rgba(30,43,55,.13);box-shadow:0 7px 24px rgba(35,44,53,.08);text-align:center;pointer-events:none}.help-card b{font-size:10px;letter-spacing:.12em}.help-card span{font-size:10px;color:#697580}.pointer-locked .help-card{opacity:0;transition:opacity .18s}
.panel{position:fixed;right:16px;top:16px;bottom:58px;width:min(390px,calc(100vw - 32px));overflow:auto;overflow-x:hidden;border:1px solid rgba(29,42,54,.14);border-radius:15px;background:rgba(250,252,254,.94);box-shadow:0 16px 48px rgba(28,39,49,.18);backdrop-filter:blur(20px);z-index:5;transition:transform .18s ease,opacity .18s ease}.panel.closed{transform:translateX(calc(100% + 28px));opacity:0;pointer-events:none}.panel>header,.perf-panel>header,.debug-panel>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;background:rgba(250,252,254,.96);border-bottom:1px solid rgba(29,42,54,.09)}.panel h1{font-size:16px;margin:2px 0 0}.panel small{font-size:9px;letter-spacing:.15em;color:#87929d;font-weight:800}.panel header button,.perf-panel header button,.debug-panel header button{border:0;background:transparent;font-size:21px;color:#6d7882;cursor:pointer}.panel-actions{display:flex;gap:7px;padding:10px 12px}.panel-actions button,.bottom-bar button,.settings-panel button,.file-button{border:1px solid #ced5dc;border-radius:8px;background:#fff;padding:7px 9px;font-size:10px;font-weight:750;color:#26333f;cursor:pointer}.panel-actions button:hover,.bottom-bar button:hover,.settings-panel button:hover,.file-button:hover{background:#f2f5f8}.panel-actions .active{background:#263746;color:#fff;border-color:#263746}.panel-actions.stack{display:grid;grid-template-columns:1fr 1fr;padding-bottom:20px}.panel-actions .danger{color:#a53a36;border-color:#e5b9b6}
.settings-search{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:0 12px 8px;color:#87929d;font-size:9px;font-weight:800;letter-spacing:.1em}.settings-search input,.setting-row input:not([type=checkbox]),.setting-row select,.move-form input{width:100%;min-width:0;padding:5px;border:1px solid #d4dae0;border-radius:6px;background:#fff;font-size:10px;font-variant-numeric:tabular-nums}.settings-group{border-top:1px solid rgba(29,42,54,.09)}.settings-group summary{padding:10px 13px;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.03em}.settings-group-body,.settings-body{display:grid;gap:6px;padding:0 12px 10px}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:7px 10px;min-height:33px;font-size:10px;color:#66727d}.setting-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setting-row input[type=checkbox]{justify-self:end}.setting-row input[type=color]{height:27px;padding:2px}.setting-row[hidden],.settings-group[hidden]{display:none}.robot-controls .settings-group-body{gap:9px}.mode-actions,.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.settings-panel button{min-height:31px}.settings-panel button.primary{background:#263746;color:#fff;border-color:#263746}.button-grid .wide,.move-form button{grid-column:1/-1}.robot-metrics{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:9px;border-radius:8px;background:#f2f5f8;color:#738095;font:650 8px ui-monospace,monospace}.robot-metrics strong{max-width:220px;overflow:hidden;text-overflow:ellipsis;color:#263448;text-align:right;white-space:nowrap}.move-form{display:grid;grid-template-columns:1fr 1fr;gap:6px}.move-form label{display:grid;gap:4px;color:#738095;font-size:8px;font-weight:700}.tool-list{display:flex;flex-wrap:wrap;gap:5px}.tool-list span{padding:5px 7px;border:1px solid #dbe3ec;border-radius:999px;background:#f8fafc;color:#718096;font:650 8px ui-monospace,monospace}.tool-list span[data-status=discovered],.tool-list span[data-status=succeeded]{border-color:#bbf7d0;background:#ecfdf5;color:#15803d}.tool-list span[data-status=executing]{border-color:#bae6fd;background:#f0f9ff;color:#0369a1}.tool-list span[data-status=rejected]{border-color:#fecaca;background:#fff5f5;color:#b91c1c}.event-log{max-height:116px;overflow:auto;padding:7px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.event-log p{display:grid;grid-template-columns:48px 1fr;gap:5px;margin:0;padding:4px 0;border-bottom:1px solid #e8edf3;color:#64748b;font:500 8px ui-monospace,monospace}.event-log time{color:#94a3b8}.event-log .ok{color:#15803d}.event-log .bad{color:#b91c1c}.file-controls{grid-template-columns:1fr}.file-button{display:grid;place-items:center;min-height:31px}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.toggle-line{display:flex;align-items:center;gap:7px;color:#59677a;font-size:10px}
.fast-placement-panel{display:grid;gap:8px;padding:9px;border:1px solid #bae6fd;border-radius:9px;background:#f0faff}.fast-placement-heading{display:flex;justify-content:space-between;gap:8px;color:#165b79;font-size:9px;letter-spacing:.08em}.fast-placement-heading span{color:#64748b;font:700 8px ui-monospace,monospace}.fast-placement-panel select{width:100%;min-width:0;padding:5px;border:1px solid #d4dae0;border-radius:6px;background:#fff;font-size:10px}.ghost-nudge{display:grid;grid-template-columns:repeat(4,1fr) 2fr;gap:4px}.ghost-nudge button{min-height:27px}.fast-slider{display:grid;gap:4px;color:#52606d;font-size:9px}.fast-slider span{display:flex;justify-content:space-between}.fast-slider output{color:#0369a1;font-weight:800}.fast-placement-panel small{color:#64748b;font-size:8px;line-height:1.4}
#crosshair{position:fixed;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);pointer-events:none;z-index:3;filter:drop-shadow(0 1px 1px rgba(255,255,255,.9))}#crosshair i,#crosshair b{position:absolute;background:#14212d;border-radius:1px}#crosshair i{width:1px;height:14px;left:8.5px;top:2px}#crosshair b{height:1px;width:14px;left:2px;top:8.5px}#crosshair.target i,#crosshair.target b{background:#18a16a}#angle-pill,#reticle-status{position:fixed;left:50%;top:auto;transform:translateX(-50%);pointer-events:none;z-index:4;background:#000;color:#fff;border-radius:999px;white-space:nowrap;font-size:10px;font-weight:850;letter-spacing:.08em;line-height:14px;padding:5px 11px;box-shadow:0 2px 8px rgba(0,0,0,.18)}#angle-pill{bottom:calc(78px + env(safe-area-inset-bottom));min-width:76px;text-align:center}#reticle-status{bottom:calc(46px + env(safe-area-inset-bottom));opacity:0;transition:opacity .12s}#reticle-status:not(:empty){opacity:1}
.bottom-bar{position:fixed;left:18px;bottom:16px;display:flex;align-items:center;gap:7px;z-index:6}.bottom-bar button{background:rgba(251,253,255,.9);backdrop-filter:blur(12px);box-shadow:0 5px 16px rgba(28,39,49,.08)}.bottom-bar button:disabled{opacity:.42;cursor:not-allowed}#seed-label{font-size:9px;color:#6f7c88;margin-left:5px;text-shadow:0 1px 0 #fff}
.perf-panel,.debug-panel{position:fixed;left:18px;bottom:62px;width:286px;max-height:55vh;overflow:auto;z-index:7;border:1px solid rgba(29,42,54,.15);border-radius:12px;background:rgba(250,252,254,.95);box-shadow:0 10px 34px rgba(28,39,49,.15)}.perf-panel>header,.debug-panel>header{padding:9px 11px}.perf-panel header b,.debug-panel header b{font-size:10px;letter-spacing:.08em}#perf-content{padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:10px}.debug-panel{left:316px;width:300px}.debug-panel #debug-controls{padding:8px 11px;display:grid;gap:7px;font-size:10px;color:#596773}.camera-debug-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.camera-debug-buttons button{border:1px solid #ced5dc;border-radius:7px;background:#fff;padding:6px 4px;font-size:9px;font-weight:800;color:#26333f;cursor:pointer}.camera-debug-buttons button:hover{background:#f2f5f8}.debug-panel [data-camera-preview]{display:none;width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid #d6dde3;border-radius:8px;background:#e8edf1}.debug-panel [data-camera-preview][src]{display:block}.debug-panel [data-camera-preview-status]{font-size:8px;line-height:1.4;color:#7a8792}.hidden{display:none!important}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,15px);padding:8px 12px;border-radius:8px;background:#1f2c38;color:#fff;font-size:10px;font-weight:700;opacity:0;pointer-events:none;transition:.18s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}.fatal{position:fixed;inset:20px;z-index:30;padding:20px;border-radius:14px;background:#281e1e;color:#ffd1ce;white-space:pre-wrap;font:12px/1.5 ui-monospace,monospace;overflow:auto}
.pointer-locked #scene,.player-look-fallback #scene{cursor:none}.player-look-fallback::after{content:'STANDARD FPS LOOK · EXPONENTIAL EDGE ASSIST IN LAST 50 PX · ESC FOR UI';position:fixed;left:50%;bottom:18px;z-index:18;transform:translateX(-50%);padding:7px 11px;border:1px solid rgba(50,70,90,.18);border-radius:999px;background:rgba(255,255,255,.86);box-shadow:0 5px 18px rgba(30,45,60,.12);color:#354151;font:800 9px/1.1 system-ui,sans-serif;letter-spacing:.08em;white-space:nowrap;pointer-events:none;opacity:.7;transition:opacity .16s,background .16s}.player-look-fallback.player-look-edge::after{content:'EDGE ASSIST ACTIVE · MOVE INWARD TO RELEASE · ESC FOR UI';background:rgba(212,243,255,.94);opacity:1}.pointer-locked .help-card,.player-look-fallback .help-card{opacity:0;transition:opacity .18s}.pointer-locked .panel,.pointer-locked .bottom-bar,.pointer-locked .perf-panel,.pointer-locked .debug-panel,.player-look-fallback .panel,.player-look-fallback .bottom-bar,.player-look-fallback .perf-panel,.player-look-fallback .debug-panel{opacity:.16;pointer-events:none}.pointer-locked #settings-panel,.player-look-fallback #settings-panel{transform:translateX(calc(100% + 28px))}.pointer-locked .bottom-bar,.player-look-fallback .bottom-bar{opacity:0}.fps-profiler{position:fixed;top:12px;left:12px;z-index:11;display:flex;align-items:baseline;gap:7px;padding:7px 11px;border-radius:999px;background:rgba(0,0,0,.82);color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.16);pointer-events:none;font-variant-numeric:tabular-nums;backdrop-filter:blur(8px)}.fps-profiler span{font-size:8px;font-weight:850;letter-spacing:.11em;opacity:.7}.fps-profiler b{font-size:14px;line-height:1}.fps-profiler small{font-size:9px;opacity:.72}.mobile-help,.mobile-dpad,.mobile-rotate{display:none}
.player-look-fallback::after{content:'STANDARD FPS LOOK · FAST FLICK ASSIST IN LAST 100 PX · ESC FOR UI'}
.mobile-dpad{position:fixed;left:14px;bottom:18px;width:118px;height:118px;z-index:8;pointer-events:none}.mobile-dpad button{position:absolute;width:38px;height:38px;border:1px solid rgba(33,45,55,.18);border-radius:10px;background:rgba(250,252,254,.82);box-shadow:0 4px 14px rgba(22,33,44,.12);color:#23313e;font-size:15px;font-weight:900;pointer-events:auto;touch-action:none}.mobile-dpad .up{left:40px;top:0}.mobile-dpad .down{left:40px;bottom:0}.mobile-dpad .left{left:0;top:40px}.mobile-dpad .right{right:0;top:40px}.mobile-rotate{position:fixed;top:50%;width:116px;height:116px;align-items:center;justify-content:center;border:1px solid rgba(20,30,38,.12);border-radius:50%;background:rgba(250,252,254,.78);font-size:44px;z-index:12;touch-action:none}.mobile-rotate-left{left:12px;transform:translateY(-50%)}.mobile-rotate-right{right:12px;transform:translateY(-50%)}.mobile-mode .mobile-dpad{display:block}.mobile-mode .desktop-help{display:none}.mobile-mode .mobile-help{display:block}.mobile-mode .bottom-bar{left:auto;right:10px;bottom:10px}.mobile-mode .hud{display:none}.mobile-mode #crosshair{opacity:.7}.mobile-mode .help-card{top:12px;bottom:auto}.mobile-mode .panel{bottom:8px}.mobile-mode #seed-label{display:none}.mobile-mode.mobile-carry .mobile-rotate{display:flex}
@media(max-width:760px){.hud{top:52px;left:10px;transform:scale(.92);transform-origin:top left}.panel{right:8px;top:8px;bottom:52px}.debug-panel,.perf-panel{left:10px}.bottom-bar{left:10px}.help-card{top:auto;bottom:62px;max-width:92vw}.mobile-mode .help-card{top:12px;bottom:auto;max-width:78vw}.fps-profiler{top:10px;left:10px}}
.fast-queue{display:grid;gap:4px;margin:0;padding:0;list-style:none}.fast-queue li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:6px;align-items:center;padding:5px 6px;border-radius:6px;background:rgba(255,255,255,.76);color:#52606d;font:700 8px ui-monospace,monospace}.fast-queue b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#dff7ff;color:#0369a1}.fast-queue em{font-style:normal;color:#15803d}.fast-queue .invalid{color:#b91c1c}.fast-queue .reassigned{color:#b45309}
.setting-row.scene-layout-row{grid-template-columns:1fr;gap:3px;padding:5px 0}.scene-layout-inputs{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:8px;align-items:center}.scene-layout-inputs input[type=range]{padding:0;cursor:pointer}[data-scene-layout-status]{white-space:normal;line-height:1.5;color:#59677a}
