: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}.dot.fatal{background:var(--danger)}.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{background:#141d2fd9;border-radius:8px;padding:6px 10px;font-size:.85em;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{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{background:var(--panel);border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;padding:8px;display:flex}.navbtn{color:var(--dim);white-space:nowrap;flex:auto;padding:10px 6px;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}.btn.danger{background:var(--danger);border-color:var(--danger)}.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}.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)}
