:root{--bg: #0b0d12;--bg-elev: #10131b;--bg-face: #0b0d12;--surface: rgba(255, 255, 255, .045);--surface-2: rgba(255, 255, 255, .08);--stroke: rgba(255, 255, 255, .09);--text: #e9edf5;--text-dim: #8b93a7;--text-faint: #5b6377;--accent: #38d3ee;--accent-soft: rgba(56, 211, 238, .14);--eye-a: #b3f7ff;--eye-b: #2fc9e8;--brow: rgba(120, 220, 240, .75);--blush: #ff7d9c;--ok: #4ade80;--warn: #fbbf24;--err: #f87171;--r-sm: 12px;--r-md: 18px;--r-lg: 26px;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px);--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace}[data-theme=ivory]{--bg: #eceef2;--bg-elev: #f6f7fa;--bg-face: #10131b;--surface: rgba(15, 20, 34, .05);--surface-2: rgba(15, 20, 34, .09);--stroke: rgba(15, 20, 34, .12);--text: #171c28;--text-dim: #5a6275;--text-faint: #9aa1b2;--accent: #0ea5c6;--accent-soft: rgba(14, 165, 198, .12)}[data-theme=operator]{--bg: #0d0b07;--bg-elev: #14110a;--bg-face: #0d0b07;--accent: #ffb454;--accent-soft: rgba(255, 180, 84, .14);--eye-a: #ffe2b0;--eye-b: #ffab3d;--brow: rgba(255, 190, 110, .8);--stroke: rgba(255, 220, 160, .1)}[data-theme=rose]{--bg: #130b11;--bg-elev: #1b1018;--bg-face: #130b11;--accent: #ff8fb8;--accent-soft: rgba(255, 143, 184, .16);--eye-a: #ffd9e8;--eye-b: #ff7fb2;--brow: rgba(255, 175, 205, .8);--blush: #ffb3c9;--stroke: rgba(255, 195, 218, .1)}[data-theme=rose] body:before{background:radial-gradient(1200px 700px at 50% -10%,rgba(255,143,184,.06),transparent 60%),radial-gradient(900px 600px at 90% 110%,rgba(255,143,184,.05),transparent 60%)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(1200px 700px at 50% -10%,rgba(56,211,238,.05),transparent 60%),radial-gradient(900px 600px at 90% 110%,rgba(56,211,238,.04),transparent 60%);z-index:0}[data-theme=operator] body:before{background:radial-gradient(1200px 700px at 50% -10%,rgba(255,180,84,.05),transparent 60%),radial-gradient(900px 600px at 90% 110%,rgba(255,180,84,.04),transparent 60%)}.app{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:78px 1fr;padding-left:var(--sal);padding-right:var(--sar)}.app.compact{grid-template-columns:1fr;grid-template-rows:1fr auto}.app.immersive{grid-template-columns:1fr}.app.immersive .navrail{display:none}.screen{min-width:0;min-height:0;overflow:hidden auto;-webkit-overflow-scrolling:touch;padding:calc(var(--sat) + 14px) 18px calc(var(--sab) + 18px)}.screen.no-pad{padding:0;overflow:hidden}.navrail{display:flex;flex-direction:column;align-items:center;gap:6px;padding:calc(var(--sat) + 14px) 8px calc(var(--sab) + 14px);border-right:1px solid var(--stroke);background:var(--bg-elev)}.app.compact .navrail{flex-direction:row;justify-content:flex-start;border-right:none;border-top:1px solid var(--stroke);padding:8px 10px calc(var(--sab) + 8px);order:2;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.app.compact .navrail::-webkit-scrollbar{display:none}.app.compact .nav-btn{flex:none;min-width:62px}.nav-btn{width:56px;height:52px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--text-dim);font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:background .2s,color .2s,transform .15s}.nav-btn span.lbl{font-size:9.5px;letter-spacing:.03em}.nav-btn:active{transform:scale(.92)}.nav-btn.active{color:var(--accent);background:var(--accent-soft)}.nav-spacer{flex:1}.app.compact .nav-spacer{display:none}.stage{position:relative;height:100%;display:flex;flex-direction:column;background:var(--bg-face);border-radius:0;overflow:hidden}.stage-face{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.stage-face svg{max-width:min(92vw,150vh);max-height:100%}.stage-hud{position:absolute;top:calc(var(--sat) + 14px);left:18px;right:18px;display:flex;align-items:center;gap:10px;pointer-events:none}.stage-hud>*{pointer-events:auto}.stage-bottom{position:absolute;bottom:calc(var(--sab) + 18px);left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:14px;pointer-events:none}.stage-bottom>*{pointer-events:auto}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--stroke);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:13px;color:var(--text-dim);white-space:nowrap}.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--text-faint)}.pill.listening .dot{background:var(--accent);animation:pulse 1.4s infinite}.pill.thinking .dot{background:var(--warn);animation:pulse .9s infinite}.pill.speaking .dot{background:var(--ok);animation:pulse .7s infinite}.pill.acting .dot{background:var(--warn);animation:spin-dot 1s linear infinite}.pill.error .dot{background:var(--err)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}@keyframes spin-dot{0%{transform:scale(1)}50%{transform:scale(1.5)}to{transform:scale(1)}}.caption{max-width:min(680px,88vw);text-align:center;font-size:17px;line-height:1.45;color:var(--text);background:#0a0c128c;border:1px solid var(--stroke);border-radius:var(--r-md);padding:10px 18px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:rise .25s ease}.caption .who{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:2px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mic-row{display:flex;align-items:center;gap:18px}.mic-btn{width:76px;height:76px;border-radius:50%;border:1px solid var(--stroke);background:var(--surface-2);color:var(--text);font-size:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .15s,box-shadow .3s,background .3s}.mic-btn:active{transform:scale(.93)}.mic-btn.hot{background:var(--accent);color:#04222b;box-shadow:0 0 0 8px var(--accent-soft),0 0 40px var(--accent-soft)}.mic-btn.off{opacity:.85}.meter{display:flex;align-items:flex-end;gap:3px;height:30px}.meter i{width:4px;border-radius:2px;background:var(--accent);opacity:.85;transition:height .08s linear;min-height:3px}.panel{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--r-md);padding:16px;margin-bottom:14px}.panel h3{margin:0 0 12px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.h-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grow{flex:1;min-width:0}.btn{border:1px solid var(--stroke);background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:14.5px;font-weight:500;border-radius:var(--r-sm);padding:12px 16px;min-height:46px;cursor:pointer;transition:transform .12s,background .2s,border-color .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active{transform:scale(.96)}.btn.primary{background:var(--accent);border-color:transparent;color:#04222b;font-weight:600}.btn.ghost{background:transparent}.btn.danger{color:var(--err);border-color:#f8717159}.btn.sm{min-height:38px;padding:8px 12px;font-size:13px;border-radius:10px}.btn:disabled{opacity:.45;pointer-events:none}.input,.textarea,select.input{width:100%;background:var(--bg-elev);border:1px solid var(--stroke);color:var(--text);font-family:var(--font);font-size:15px;border-radius:var(--r-sm);padding:12px 14px;min-height:46px;outline:none;-webkit-user-select:text;user-select:text}.input:focus,.textarea:focus{border-color:var(--accent)}.textarea{font-family:var(--mono);font-size:12.5px;line-height:1.5;min-height:140px;resize:vertical}.field{margin-bottom:14px}.field>label{display:block;font-size:12.5px;color:var(--text-dim);margin-bottom:6px}.seg{display:inline-flex;background:var(--bg-elev);border:1px solid var(--stroke);border-radius:var(--r-sm);padding:3px;gap:2px;flex-wrap:wrap}.seg button{border:none;background:transparent;color:var(--text-dim);font-family:var(--font);font-size:13.5px;font-weight:500;padding:9px 14px;min-height:40px;border-radius:9px;cursor:pointer;transition:background .15s,color .15s}.seg button.on{background:var(--accent);color:#04222b;font-weight:600}.slider{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent}.slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:var(--surface-2)}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--accent);margin-top:-10px;border:none;box-shadow:0 2px 10px #0006}.toggle{position:relative;width:52px;height:32px;border-radius:999px;border:1px solid var(--stroke);background:var(--surface-2);cursor:pointer;transition:background .2s;flex:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--text-dim);transition:transform .2s,background .2s}.toggle.on{background:var(--accent-soft);border-color:var(--accent)}.toggle.on:after{transform:translate(20px);background:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:6px 11px;border-radius:999px;background:var(--surface-2);border:1px solid var(--stroke);color:var(--text-dim)}.chip.ok{color:var(--ok);border-color:#4ade804d}.chip.warn{color:var(--warn);border-color:#fbbf244d}.chip.err{color:var(--err);border-color:#f871714d}.chip.accent{color:var(--accent);border-color:var(--accent)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}.grid-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}.tile{border:1px solid var(--stroke);background:var(--surface);border-radius:var(--r-sm);padding:12px 8px;min-height:74px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text);font-family:var(--font);font-size:12.5px;cursor:pointer;transition:transform .12s,border-color .2s,background .2s}.tile:active{transform:scale(.94)}.tile.on{border-color:var(--accent);background:var(--accent-soft)}.tile .ico{font-size:21px;color:var(--accent);font-style:normal}.list-item{padding:13px 4px;border-bottom:1px solid var(--stroke);display:flex;gap:12px;align-items:baseline}.list-item:last-child{border-bottom:none}.mono{font-family:var(--mono);font-size:12px}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:12.5px}a{color:var(--accent);text-decoration:none}h1.screen-title{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:4px 0 16px}.loglist{font-family:var(--mono);font-size:11.8px;line-height:1.65;max-height:46vh;overflow-y:auto;-webkit-user-select:text;user-select:text}.loglist .t{color:var(--text-faint);margin-right:8px}.loglist .k-voice{color:var(--accent)}.loglist .k-tool{color:var(--warn)}.loglist .k-expr{color:#c084fc}.loglist .k-net{color:var(--ok)}.loglist .k-err{color:var(--err)}.loglist .k-app{color:var(--text-dim)}.overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:var(--bg)}.overlay.screensaver{background:#05060a;animation:fade-in 1.2s ease}.overlay.screensaver .drift{width:min(70vw,90vh);animation:drift 26s ease-in-out infinite alternate;opacity:.85}@keyframes drift{0%{transform:translate(-4%,-3%) scale(.92)}50%{transform:translate(3%,2%) scale(.85)}to{transform:translate(-2%,4%) scale(.95)}}.overlay .clock{position:absolute;bottom:calc(var(--sab) + 40px);font-size:15px;letter-spacing:.35em;color:var(--text-faint)}.wake{animation:fade-out .9s ease 1.5s forwards;pointer-events:none}.wake .logo{font-size:42px;font-weight:800;letter-spacing:.4em;padding-left:.4em;color:var(--text);animation:glow-pulse 1.6s ease infinite}@keyframes glow-pulse{0%,to{text-shadow:0 0 24px var(--accent-soft);opacity:.85}50%{text-shadow:0 0 60px var(--accent);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0;visibility:hidden}}.app.lowpower{filter:brightness(.82)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:4px}::-webkit-scrollbar-track{background:transparent}
