:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1220;--panel:#141d2f;--line:#243049;--text:#e7ecf5;--dim:#8fa0bb;--accent:#3b82f6;--danger:#dc2626;--ok:#16a34a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.screen{min-height:100%;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 16px)}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.dim{color:var(--dim)}.small{font-size:.85em}.err{color:#f87171;margin:0}h1{margin:0 0 4px;font-size:1.4em}.steps{text-align:left;margin:0;padding-left:1.4em}input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:10px;width:min(320px,88vw);padding:12px;font-size:1.05em}input.pin{letter-spacing:.4em;text-align:center;font-size:1.4em}input.code{text-align:center;letter-spacing:.25em;text-transform:uppercase;font-size:1.3em}.baselabel{text-align:left;flex-direction:column;gap:6px;width:min(320px,88vw);display:flex}button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:10px;padding:10px 14px}button.primary{background:var(--accent);border-color:var(--accent);font-weight:600}button:disabled{opacity:.5}.viewer{height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.statusbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;display:flex}.statustext{flex:1;font-size:.9em}.framemeta{white-space:nowrap}.dot{background:var(--dim);border-radius:50%;width:10px;height:10px}.dot.online{background:var(--ok)}.dot.connecting{background:#f59e0b}.kill{background:var(--danger);border-color:var(--danger);padding:8px 16px;font-weight:700}.stage{background:#000;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}img.frame{touch-action:none;-webkit-user-select:none;user-select:none;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.placeholder{text-align:center;padding:24px}.lastresult{pointer-events:none;background:#141d2fd9;border-radius:8px;padding:6px 10px;font-size:.85em;animation:.35s ease-out 5s forwards hintFade;position:absolute;bottom:8px;left:8px}.lastresult.ok{border:1px solid var(--ok)}.lastresult.bad{border:1px solid var(--danger);color:#fca5a5}.controls{background:var(--panel);border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:8px;display:flex}.textbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.textinput{flex:160px;width:auto;min-width:0;padding:10px;font-size:1em}.sendtext{background:var(--accent);border-color:var(--accent)}.keychips{flex-wrap:wrap;gap:6px;width:100%;display:flex}.chip{padding:8px 10px;font-size:.85em}.controlrow{flex-wrap:wrap;gap:8px;display:flex}.ghost{color:var(--dim);background:0 0}.confirm-overlay{z-index:30;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.confirm-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;width:min(340px,90vw);padding:18px;display:flex}.confirm-box h2{margin:0;font-size:1.1em}.confirm-desc{margin:0;font-size:1.05em;line-height:1.4}.confirm-buttons{gap:10px;margin-top:6px;display:flex}.confirm-buttons button{flex:1;padding:14px;font-weight:600}.confirm-buttons .reject{background:0 0}.confirm-buttons .approve{background:var(--danger);border-color:var(--danger)}.toasts{left:50%;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:40;flex-direction:column;gap:6px;width:min(420px,92vw);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.9em}.toast.error{border-color:var(--danger);color:#fca5a5}.panelnav{overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;background:var(--panel);border-top:1px solid var(--line);flex-wrap:nowrap;gap:6px;padding:8px;display:flex;overflow-x:auto}.panelnav::-webkit-scrollbar{display:none}.navbtn{color:var(--dim);white-space:nowrap;text-align:center;touch-action:manipulation;flex:1 0 auto;padding:10px 8px;font-size:.85em}.navbtn.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.rec-badge{background:var(--danger);border-color:var(--danger);color:#fff;white-space:nowrap;padding:6px 10px;font-size:.8em;font-weight:700}.panel-overlay{flex:1;min-height:0;display:flex;position:relative}.panel-sheet{background:var(--bg);flex-direction:column;flex:1;min-height:0;display:flex}.panel-head{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.panel-head h2{margin:0;font-size:1.05em}.panel-body{-webkit-overflow-scrolling:touch;min-height:0;padding:12px;padding-bottom:calc(env(safe-area-inset-bottom) + 16px);flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.panel-body h3{color:var(--dim);margin:6px 0 0;font-size:.95em}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.btn{background:var(--accent);border-color:var(--accent);color:#fff;padding:10px 12px;font-size:.9em;font-weight:600}.btn.small{padding:7px 9px;font-size:.8em}.btn.warn{color:#f59e0b;background:0 0;border-color:#f59e0b}.btnrow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btnrow.wrap{flex-wrap:wrap}textarea.field{background:var(--panel);border:1px solid var(--line);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:10px;padding:10px;font-size:.95em}textarea.field.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}select{background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:10px;padding:10px;font-size:.9em}input[type=datetime-local]{flex:1;width:auto;min-width:0;padding:8px;font-size:.85em}.badge{border:1px solid var(--line);color:var(--dim);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:.7em;font-weight:600;display:inline-block}.badge.ok{border-color:var(--ok);color:var(--ok)}.badge.bad{border-color:var(--danger);color:#fca5a5}.badge.high{background:var(--danger);border-color:var(--danger);color:#fff}.badge.rec{background:var(--danger);border-color:var(--danger);color:#fff;letter-spacing:.06em}.winlist,.auditlist{flex-direction:column;gap:8px;display:flex}.winrow,.auditrow,.macrorow{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.macrorow{background:0 0;border:0;padding:0}.wintext{flex:1;min-width:0}.rowtitle{overflow-wrap:anywhere;font-size:.95em}.rowsub{overflow-wrap:anywhere}.winbtns{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.steplist{flex-direction:column;gap:4px;margin:0;padding-left:1.4em;display:flex}.steplist li{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:8px;display:flex}.scriptline{overflow-wrap:anywhere;min-width:0;color:var(--dim);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.scriptblock{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;max-height:40vh;color:var(--text);border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82em;line-height:1.6;overflow-y:auto}.reccmdline{border:1px solid var(--line);background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;color:var(--text);text-align:left;border-radius:8px;flex:100%;padding:7px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8em;line-height:1.55}.recfloatcmd{pointer-events:auto;flex:none;width:min(560px,100vw - 24px);box-shadow:0 4px 16px #00000059}.scriptedit{background:var(--bg);border:1px solid var(--line);width:100%;min-height:150px;color:var(--text);resize:vertical;-moz-tab-size:2;tab-size:2;border-radius:8px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82em;line-height:1.6}.scripterrors{color:var(--danger);margin:6px 0 0;padding-left:18px;font-size:.8em}.editbox{border-top:1px dashed var(--line);flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;display:flex}.progress{background:var(--bg);border:1px solid var(--line);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .15s ease-out}.dangerzone{border:1px solid var(--danger);border-radius:12px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.dangerzone .btn.danger{align-self:flex-start}textarea.aitext{resize:vertical;width:100%;min-height:72px}.textinput.narrow{flex:0 120px}.aiout{border:1px solid var(--line);background:var(--panel);border-radius:10px;margin-top:8px;padding:10px}.aiout.ok{border-color:var(--ok)}.aiout.bad{border-color:var(--danger)}.aiout .aianswer{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px}.loophead{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.dim.small.ok{color:var(--ok)}.dim.small.bad{color:var(--danger)}.loopshots{gap:6px;margin-top:6px;display:flex}.loopshots img{border:1px solid var(--line);background:#000;border-radius:8px;width:calc(50% - 3px)}.viewer{position:relative}.viewer:-webkit-full-screen{background:#000;width:100%;height:100%}.viewer:fullscreen{background:#000;width:100%;height:100%}.viewer.chrome-hidden .statusbar,.viewer.chrome-hidden .controls,.viewer.chrome-hidden .panelnav{display:none}.stage.zoomed{display:block;overflow:auto}img.frame.zoomed{max-width:none;max-height:none}.floatbar{top:calc(env(safe-area-inset-top,0px) + 8px);z-index:30;pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:calc(100% - 16px);display:flex;position:absolute;right:8px}.floatbar button{pointer-events:auto;width:34px;height:34px;color:var(--text);-webkit-backdrop-filter:blur(6px);touch-action:manipulation;background:#141d2fc7;border-radius:9px;justify-content:center;align-items:center;padding:0;font-size:1em;line-height:1;animation:.16s ease-out both railIn;display:inline-flex}.floatbar button.pct{width:auto;min-width:40px;padding:0 6px;font-size:.78em}.floatbar button:active{transform:scale(.94)}@keyframes railIn{0%{opacity:0;transform:translate(8px)}}.zoomhint{z-index:20;pointer-events:none;background:#141d2fd9;border-radius:8px;padding:4px 8px;font-size:.8em;position:absolute;top:8px;left:8px}.zoomhint:not(.stale){animation:.35s ease-out 3s forwards hintFade}@keyframes hintFade{to{opacity:0;visibility:hidden}}.kboverlay{z-index:40;border-top:1px solid var(--line);background:#141d2ff2;align-items:center;gap:8px;padding:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.kboverlay .textbar{flex:1}.recbar{padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recbar .badge{background:var(--danger);color:#fff;margin-left:0}.recbar .recinput{flex:150px;min-width:120px}.recbar .micbtn{padding:8px}.micbtn.on{color:var(--danger);animation:1s ease-in-out infinite micPulse}@keyframes micPulse{50%{opacity:.5}}.recfloat{left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:25;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;max-width:calc(100% - 16px);display:flex;position:absolute;transform:translate(-50%)}.recfloatrow{pointer-events:auto;align-items:center;gap:6px;width:min(560px,100vw - 24px);display:flex}.recfloatrow .recquick{flex:90px;min-width:72px}.recquicksend{padding:8px 10px}.recbusy{border:1px solid var(--danger);color:var(--danger);white-space:nowrap;text-overflow:ellipsis;background:#dc26261a;border-radius:999px;flex:0 auto;align-items:center;gap:6px;max-width:42vw;padding:6px 11px;font-size:.75em;font-weight:700;display:inline-flex;overflow:hidden}.recbusy .dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.recquicksend.stop{color:var(--danger);border-color:var(--danger);font-weight:700}.recquickundo{flex:none;padding:8px}.recpill.busy{border-color:var(--danger)}.recpill.busy .dot{animation-duration:.5s}.recpill{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:9px 15px;font-size:.8em;font-weight:700;display:inline-flex;box-shadow:0 4px 16px #00000059}.recpill .dot{background:var(--danger);border-radius:50%;width:9px;height:9px;animation:1.1s ease-in-out infinite recBlink}@keyframes recBlink{50%{opacity:.25}}.micpill{border:1px solid var(--line);background:var(--panel);width:40px;height:40px;color:var(--text);cursor:pointer;pointer-events:auto;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 4px 16px #00000059}.micpill:disabled{opacity:.5}.micpill.on{color:var(--danger);animation:1s ease-in-out infinite micPulse}.recfloatcard{border:1px solid var(--line);background:var(--panel);pointer-events:auto;border-radius:12px;flex-direction:column;gap:6px;width:min(560px,100vw - 24px);padding:8px;animation:.18s ease-out railIn;display:flex;box-shadow:0 8px 28px #00000073}.recfloathead{justify-content:space-between;align-items:center;gap:8px;display:flex}.recfloathead .badge{background:var(--danger);color:#fff;margin-left:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0f18;--panel:#111a27;--panel-raised:#182335;--line:#27364a;--text:#eef3fb;--dim:#9aabc1;--accent:#4f8cff;--accent-pressed:#2f6fe0;--danger:#c84752;--ok:#47b581;--warning:#d99b39;--radius:13px}html,body,#root{width:100%;min-width:0;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);overscroll-behavior:none}button,input,select,textarea{font-family:inherit}button{background:var(--panel-raised);border-color:var(--line);touch-action:manipulation;border-radius:11px;min-width:44px;min-height:44px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{border-color:var(--line);min-height:44px;color:var(--text);background:#0e1724;border-radius:11px}.viewer{width:100%;height:100vh;height:-webkit-fill-available;height:var(--app-height,100vh);min-height:0;padding:env(safe-area-inset-top,0px) 0 0;background:var(--bg);flex-direction:column;display:flex;position:relative;overflow:hidden}.viewer:-webkit-full-screen{width:100%;height:100%;padding:0}.viewer:fullscreen{width:100%;height:100%;padding:0}.statusbar{z-index:24;border:0;border-bottom:1px solid var(--line);background:#0e1622;flex:0 0 54px;gap:10px;min-height:54px;padding:5px 10px 5px 13px;position:relative}.connection-copy{flex-direction:column;flex:auto;justify-content:center;min-width:0;line-height:1.15;display:flex}.connection-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.91rem;font-weight:650;overflow:hidden}.connection-state{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.dot{flex:none;width:9px;height:9px}.dot.pc-ready,.dot.online{background:var(--ok);box-shadow:0 0 0 3px #47b58126}.dot.connecting,.dot.offline{background:var(--warning)}.dot.fatal{background:var(--danger)}.e2e-status{border:1px solid var(--line);max-width:96px;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:0 auto;padding:5px 7px;font-size:.66rem;overflow:hidden}.e2e-status.active{color:#9ce2bd;border-color:#47b58173}.header-icon{color:var(--dim);background:0 0;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:inline-flex}.header-icon svg,.remote-actions svg,.keyboard-panel-head svg,.more-menu svg{width:18px;height:18px}.header-icon.selected{color:var(--text);background:var(--panel-raised)}.header-rec{flex:none;min-height:34px;margin:0}.more-menu{z-index:41;top:calc(env(safe-area-inset-top,0px) + 58px);border:1px solid var(--line);background:#121c2a;border-radius:15px;flex-direction:column;gap:4px;width:min(330px,100vw - 20px);padding:10px;display:flex;position:absolute;right:10px;box-shadow:0 18px 42px #00000073}.more-menu button{text-align:left;align-items:center;gap:10px;padding:8px 10px;display:flex}.more-menu-status{flex-direction:column;gap:3px;padding:8px 8px 10px;display:flex}.more-menu-status span,.more-menu p{color:var(--dim);margin:0;font-size:.78rem;line-height:1.4}.more-menu p{padding:5px 8px}.more-menu .danger-item{color:#ffc4c8}.stage.remote-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:#05070a;border:0;flex:1 1 0;justify-content:center;align-items:center;width:100%;min-width:0;min-height:72px;display:flex;position:relative;overflow:hidden}.stage.remote-stage.mode-direct{cursor:crosshair}.stage.remote-stage.mode-navigate{cursor:grab}.stage.remote-stage.mode-navigate:active{cursor:grabbing}img.frame{object-fit:contain;object-position:center;transform-origin:50%;will-change:transform;pointer-events:none;-webkit-user-select:none;user-select:none;border:0;flex:none;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.screen-placeholder{max-width:330px;color:var(--dim);text-align:center;flex-direction:column;gap:8px;padding:24px;display:flex}.screen-placeholder strong{color:var(--text);font-size:1rem}.frame-state{color:#f2c474;text-align:center;pointer-events:none;background:#0e1622e8;border:1px solid #d99b398c;border-radius:999px;max-width:calc(100% - 24px);padding:6px 10px;font-size:.73rem;position:absolute;top:10px;left:50%;transform:translate(-50%)}.lastresult{background:#111a27ed;border-radius:10px;max-width:calc(100% - 18px);font-size:.76rem;bottom:9px;left:9px}.view-zoom-badge{border:1px solid var(--line);color:var(--text);pointer-events:none;background:#0e1622e0;border-radius:9px;padding:6px 9px;font-size:.72rem;position:absolute;top:10px;left:10px}.precision-card{z-index:18;border:1px solid var(--line);background:#111a27f5;border-radius:14px;align-items:center;gap:9px;padding:9px;display:flex;position:absolute;bottom:10px;left:10px;right:10px;box-shadow:0 10px 28px #00000073}.precision-lens{border:1px solid var(--line);background-color:#000;background-repeat:no-repeat;border-radius:10px;flex:0 0 80px;width:80px;height:72px;position:relative;overflow:hidden}.precision-lens:before,.precision-lens:after{z-index:1;content:"";pointer-events:none;background:#ff636d;display:block;position:absolute;top:50%;left:50%}.precision-lens:before{width:1px;height:100%}.precision-lens:after{width:100%;height:1px}.precision-card>div:nth-child(2){flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.precision-card small{color:var(--dim)}.precision-card button{flex:none;padding:6px 9px;font-size:.78rem}.precision-card button:first-of-type{background:var(--accent);border-color:var(--accent)}.control-dock{z-index:4;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch;background:#0e1622;flex-direction:column;flex:none;gap:6px;max-height:48vh;padding:7px 9px 8px;display:flex;overflow-y:auto}.mode-switch{flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.mode-switch button{min-height:44px;color:var(--dim);white-space:normal;background:0 0;border-color:#0000;padding:5px 4px;font-size:.75rem;line-height:1.1}.mode-switch button.active{color:#cfe0ff;background:#4f8cff29;border-color:#4f8cff73;font-weight:650}.trackpad-surface{touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(#3a598324,#0000 70%),#121e2c;border:1px solid #31445c;border-radius:12px;flex:0 0 82px;justify-content:center;align-items:center;min-height:82px;display:flex;position:relative;overflow:hidden}.trackpad-surface:before{content:"";pointer-events:none;background-image:radial-gradient(#b1c6e221 .7px,#0000 .7px);background-size:15px 15px;position:absolute;top:0;bottom:0;left:0;right:0}.trackpad-surface.disabled{opacity:.56}.trackpad-help,.trackpad-status{z-index:1;color:#b4c1d2;pointer-events:none;font-size:.7rem;position:absolute;left:10px}.trackpad-help{top:7px}.trackpad-status{color:var(--dim);font-size:.66rem;bottom:6px}.trackpad-target{z-index:2;background:var(--accent);pointer-events:none;border:2px solid #dbe9ff;border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #4f8cff33}.trackpad-target.pending{background:var(--warning);border-color:#fff0c2}.trackpad-target.failed{background:var(--danger);border-color:#ffd0d3}.mode-hint{color:var(--dim);flex:none;margin:0;padding:6px 3px;font-size:.72rem;line-height:1.25}.remote-actions{flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.remote-actions button{white-space:nowrap;background:#172335;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:44px;padding:5px 4px;font-size:.69rem;display:flex}.remote-actions button:disabled{opacity:.43}.remote-actions button:last-child{color:#cfe0ff}.action-glyph{color:#a9c9ff;justify-content:center;align-items:center;min-width:18px;font-weight:700;display:inline-flex}.view-actions{flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:38px;display:flex}.zoom-controls{align-items:center;gap:3px;display:flex}.zoom-controls button{min-width:44px;min-height:44px;color:var(--dim);background:0 0;border-color:#0000;padding:3px 8px}.zoom-controls span{min-width:42px;color:var(--text);text-align:center;font-size:.75rem}.sensitivity-control{color:var(--dim);align-items:center;gap:6px;font-size:.7rem;display:flex}.sensitivity-control select{min-width:84px;min-height:44px;padding:4px 8px;font-size:.75rem}.ai-entry{flex:none;gap:6px;min-width:0;display:flex}.ai-entry input{flex:auto;width:auto;min-width:0;min-height:44px;padding:8px 11px;font-size:.82rem}.ai-entry button{border-color:var(--accent);background:var(--accent);flex:none;min-height:44px;padding:6px 12px;font-size:.78rem;font-weight:650}.recording-dock{border-top:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:5px;padding-top:5px;display:flex}.recording-dock .recinput{flex:160px}.recording-dock button{min-height:38px;padding:5px 8px;font-size:.72rem}.keyboard-panel{z-index:32;max-height:54%;padding:8px 9px calc(env(safe-area-inset-bottom,0px) + 8px);border-top:1px solid var(--line);-webkit-overflow-scrolling:touch;background:#111b29;border-radius:16px 16px 0 0;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 26px #00000052}.keyboard-panel-head{justify-content:space-between;align-items:center;display:flex}.keyboard-panel-head button{min-height:44px;padding:4px 10px}.keyboard-panel .textbar{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.keyboard-panel .textinput{width:100%;min-width:0;min-height:44px;padding:8px 10px;font-size:16px}.keyboard-panel .sendtext{min-height:44px;padding:6px 13px}.keyboard-tools{flex-direction:column;grid-column:1/-1;gap:5px;min-width:0;display:flex}.modifier-row,.keychips{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:5px;width:100%;padding:1px 0 4px;display:flex;overflow-x:auto}.modifier-row::-webkit-scrollbar{display:none}.keychips::-webkit-scrollbar{display:none}.chip{background:#1a283b;border-radius:9px;flex:none;min-width:44px;min-height:44px;padding:5px 9px;font-size:.75rem}.chip.modifier{color:#bdc9d9}.chip.modifier.selected{border-color:var(--accent);color:#d5e4ff;background:#4f8cff36}.viewer.keyboard-open .control-dock,.viewer.keyboard-open .primary-nav{display:none}.tools-top{z-index:3;border-bottom:1px solid var(--line);background:#0e1622;flex-direction:column;flex:none;gap:5px;padding:5px 8px 0;display:flex}.mini-preview{border-color:var(--line);text-align:left;background:#121d2b;align-items:center;gap:9px;width:100%;min-height:48px;padding:4px 7px;display:flex;overflow:hidden}.mini-preview img{object-fit:contain;background:#000;border-radius:5px;flex:none;width:72px;height:40px}.mini-preview>span:last-child{flex-direction:column;gap:2px;display:flex}.mini-preview small{color:var(--dim);font-size:.68rem}.mini-preview-empty{height:40px;color:var(--dim);background:#05070a;border-radius:5px;flex:0 0 72px;justify-content:center;align-items:center;font-size:.65rem;display:inline-flex}.tool-nav{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:5px;padding:0 0 6px;display:flex;overflow-x:auto}.tool-nav::-webkit-scrollbar{display:none}.tool-nav button{min-height:44px;color:var(--dim);background:0 0;border-color:#0000;flex:none;padding:5px 12px;font-size:.76rem}.tool-nav button.active{color:#cfe0ff;background:#4f8cff26;border-color:#4f8cff73}.tool-pane{flex:1 1 0;min-height:0;display:flex}.tool-pane[hidden],.ai-sheet-wrap[hidden]{display:none!important}.panel-overlay{flex:1 1 0;min-width:0;min-height:0;display:flex;position:relative}.panel-sheet{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panel-head{border-color:var(--line);background:#111b29;flex:none;min-height:50px;padding:5px 10px 5px 13px}.panel-head h2{font-size:.98rem}.panel-head button{min-height:44px;padding:5px 10px;font-size:.75rem}.panel-body{padding:10px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 18px);gap:9px}.card{border-color:var(--line);border-radius:var(--radius);background:#111a27;gap:8px;padding:11px}.card h3,.panel-body h3{color:#bdcadd;margin:3px 0 0;font-size:.82rem}.btnrow{gap:6px}.btn,.btn.small{min-height:42px;padding:7px 11px;font-size:.78rem}.btn.warn{border-color:var(--warning);color:#f2c474}.btn.danger{background:var(--danger);border-color:var(--danger)}.field,.scriptedit,.textinput{width:100%;min-width:0;font-size:16px}.panel-body .textinput.narrow{width:min(120px,35vw)}.winrow,.auditrow{align-items:flex-start;padding:9px}.winbtns{flex:none;gap:4px}.dangerzone{background:#c847520f;border-color:#c84752a6}.primary-nav{z-index:12;min-height:58px;padding:5px 9px calc(env(safe-area-inset-bottom,0px) + 5px);border-top:1px solid var(--line);background:#0e1622;flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.primary-nav button{min-height:46px;color:var(--dim);background:0 0;border-color:#0000;font-size:.81rem;font-weight:600}.primary-nav button.active{color:#d5e4ff;background:#4f8cff24;border-color:#4f8cff61}.ai-entry:focus-within input{border-color:var(--accent)}.ai-sheet-wrap{z-index:20;top:54px;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));pointer-events:none;justify-content:center;align-items:flex-end;display:flex;position:absolute;left:0}.ai-sheet-wrap>.panel-overlay{pointer-events:none;flex:none;align-items:flex-end;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.ai-sheet-wrap .panel-sheet{border:1px solid var(--line);pointer-events:auto;border-bottom:0;border-radius:18px 18px 0 0;width:100%;height:59%;min-height:min(250px,42vh);max-height:640px;box-shadow:0 -12px 38px #00000073}.ai-sheet-wrap.expanded .panel-sheet{border-radius:16px 16px 0 0;height:100%;max-height:none}.ai-sheet-wrap.collapsed{align-items:flex-end}.ai-sheet-wrap.collapsed .panel-sheet{border-radius:14px 14px 0 0;height:58px;min-height:58px;max-height:58px}.ai-sheet-wrap.collapsed .panel-body,.ai-sheet-wrap.collapsed .sheet-return{display:none}.ai-sheet-progress{color:#cfe0ff;flex:none;font-size:.7rem}.stop-task{color:#ffd0d3}.ai-sheet-wrap .panel-head{border-radius:17px 17px 0 0}.ai-sheet-wrap .panel-head .btnrow{flex-wrap:nowrap;gap:4px}.ai-sheet-wrap .panel-head button{white-space:nowrap;flex:none;padding-left:7px;padding-right:7px}.ai-sheet-wrap .panel-body{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 12px)}.ai-sheet-wrap .panel-body .card{background:#121d2b}.ai-running-chip{z-index:22;top:calc(env(safe-area-inset-top,0px) + 60px);background:#111a27f2;border:1px solid #4f8cff61;border-radius:12px;align-items:center;gap:8px;min-height:44px;padding:5px 7px 5px 12px;font-size:.78rem;display:flex;position:absolute;left:10px;right:10px;box-shadow:0 6px 18px #00000047}.ai-running-chip span:nth-child(2){flex:auto}.ai-running-chip button{color:#ffd0d3;min-height:34px;padding:4px 9px;font-size:.72rem}.toasts{z-index:50;bottom:calc(66px + env(safe-area-inset-bottom,0px));width:min(460px,100vw - 20px)}.toast{border-color:var(--line);background:#182335;box-shadow:0 5px 18px #00000047}.toast.error{border-color:var(--danger)}.confirm-overlay{z-index:60;padding:12px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 12px);background:#000000a8}.confirm-box{border-color:var(--line);background:#151f2e;width:min(390px,100vw - 24px);box-shadow:0 20px 56px #0000007a}.confirm-buttons button{min-height:48px}@media (orientation:landscape) and (max-height:600px){.viewer{grid-template-rows:48px minmax(0,1fr) 50px;grid-template-columns:minmax(0,1fr) minmax(205px,30vw);display:grid}.statusbar{flex-basis:48px;grid-area:1/1/auto/-1;min-height:48px}.stage.remote-stage{grid-area:2/1/4;min-height:0}.control-dock{border-top:0;border-left:1px solid var(--line);grid-area:2/2;gap:4px;max-height:none;padding:4px 6px}.mode-switch button{font-size:.67rem}.trackpad-surface{flex-basis:78px;min-height:78px}.remote-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.view-actions{flex-wrap:wrap}.ai-entry input{min-height:44px;font-size:16px}.ai-entry button{min-height:44px;padding:4px 8px}.primary-nav{min-height:50px;padding:2px 5px calc(env(safe-area-inset-bottom,0px) + 2px);border-top:0;border-left:1px solid var(--line);grid-area:3/2}.primary-nav button{min-height:42px;padding:4px;font-size:.73rem}.tools-top,.tool-pane{grid-column:1}.tools-top{grid-row:2;min-height:92px}.tool-pane{grid-row:3}.viewer.tools-layout{grid-template-rows:48px 92px minmax(0,1fr)}.mini-preview{min-height:40px}.mini-preview img,.mini-preview-empty{height:32px}.tool-nav button{min-height:34px}.ai-sheet-wrap{top:48px;bottom:0;left:0;right:30vw}.ai-sheet-wrap .panel-sheet{width:100%;height:80%;max-height:none}.ai-sheet-wrap.expanded .panel-sheet{height:100%}}@media (max-width:360px){.e2e-status{max-width:75px}.ai-sheet-wrap:not(.collapsed) .panel-head .btnrow{flex-wrap:wrap;justify-content:flex-end}.mode-switch button{font-size:.68rem}.remote-actions button{font-size:.63rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.recfloatcard .controlrow{flex-wrap:wrap}.zoomhint.stale{border:1px solid var(--danger);animation:none;top:auto;bottom:8px;left:auto;right:8px}
