:root{color-scheme:dark;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#0b0e14;color:#e7edf7;--bg: #0b0e14;--panel: #121722;--panel-2: #171e2b;--line: #263041;--muted: #8e9bb0;--accent: #58a6ff;--accent-2: #2dd4bf;--danger: #ff6b6b;--ok: #3ddc97;--warn: #f6c453}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden;overscroll-behavior:none;background:radial-gradient(circle at 10% 0%,rgba(88,166,255,.14),transparent 32rem),radial-gradient(circle at 95% 100%,rgba(45,212,191,.08),transparent 30rem),var(--bg)}button,input{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.login-shell{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);padding:32px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(160deg,#171e2bf5,#0c1018f5);box-shadow:0 24px 80px #00000073}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#06121f;font-weight:900;letter-spacing:-.04em;margin-bottom:20px}.login-card h1{margin:0 0 8px;font-size:28px;letter-spacing:-.03em}.login-card .muted{margin:0 0 24px;line-height:1.6}.field{display:grid;gap:8px;margin-bottom:16px}.field span{color:var(--muted);font-size:13px}.field input,.text-input{width:100%;border:1px solid var(--line);border-radius:12px;background:#0b1018;color:var(--text, #e7edf7);padding:12px 14px;outline:none}.field input:focus,.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #58a6ff29}.primary-button,.send-button{border:0;border-radius:12px;padding:12px 18px;background:linear-gradient(135deg,var(--accent),#3b82f6);color:#06121f;font-weight:800}.primary-button:disabled{opacity:.6;cursor:wait}.primary-button.compact{padding:9px 14px;font-size:13px}.form-error{margin:0 0 12px;color:var(--danger);font-size:13px}.hint{margin:18px 0 0;color:#67758a;font-size:12px;word-break:break-all}.app-shell{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;background:#070a0f}.topbar{display:flex;align-items:center;gap:16px;padding:10px 14px;border-bottom:1px solid var(--line);background:#0b0e14eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:8px;min-width:0}.brand strong{font-size:14px;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:#5b6678;flex:0 0 auto}.status-dot.connecting{background:var(--warn);animation:blink 1s infinite}.status-dot.waiting{background:var(--warn)}.status-dot.connected{background:var(--ok);box-shadow:0 0 12px #3ddc97cc}.status-dot.error{background:var(--danger)}.status-label{color:var(--muted);font-size:12px;white-space:nowrap}.mode-badge{border:1px solid #2b3b4f;border-radius:999px;padding:2px 7px;color:#9fb4cf;font-size:10px;letter-spacing:.02em;white-space:nowrap}.mode-badge.webrtc{color:#8ff0c8;border-color:#2dd4bf66;background:#2dd4bf14}.status-detail{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metrics{display:flex;gap:12px;margin-left:auto;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.top-actions{display:flex;gap:6px}.ghost-button{border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);padding:7px 10px;font-size:12px}.ghost-button:hover{color:var(--text, #fff);border-color:#3b4a60}.ghost-button.danger{color:#ff9b9b}.screen-stage{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0;background:radial-gradient(circle at 50% 40%,rgba(30,41,59,.7),transparent 60%),#05070b}.screen-viewport{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8px}.screen-transform{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:center center;will-change:transform}.zoom-hud{position:absolute;right:12px;bottom:12px;z-index:5;display:flex;align-items:center;gap:2px;padding:4px;border:1px solid rgba(120,145,175,.28);border-radius:12px;background:#0c1018d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #00000059}.zoom-hud button{min-width:32px;height:30px;border:0;border-radius:8px;background:transparent;color:#d6e2f2;font-size:16px;line-height:1}.zoom-hud button:hover{background:#58a6ff24}.zoom-hud .zoom-value{min-width:48px;color:#9fb4cf;font-size:11px;font-variant-numeric:tabular-nums}.zoom-tip{position:absolute;left:12px;bottom:14px;z-index:5;color:#8fa4bf;font-size:11px;padding:5px 8px;border-radius:8px;background:#0c1018ad;pointer-events:none}.screen-media{display:block;max-width:100%;max-height:100%;width:auto;height:auto;background:#000;border-radius:10px;box-shadow:0 0 0 1px #1c2635,0 18px 60px #00000080;touch-action:none;user-select:none;-webkit-user-select:none}.screen-media.is-hidden{display:none}.screen-canvas{background:#000}.stage-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at center,#090d14d1,#05070bf0)}.overlay-card{max-width:440px;text-align:center}.overlay-card h2{margin:18px 0 8px;font-size:20px}.overlay-card p{margin:0 0 20px;color:var(--muted);line-height:1.65;font-size:14px}.pulse-ring{width:54px;height:54px;margin:0 auto;border-radius:50%;border:2px solid rgba(88,166,255,.7);box-shadow:0 0 #58a6ff59;animation:pulse 1.8s infinite}.control-dock{padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0b0e14f5}.keyboard-row{display:flex;gap:8px;margin-bottom:8px}.text-input{flex:1;min-width:0;padding:10px 12px;font-size:14px}.toolbar-scroll{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.toolbar-scroll::-webkit-scrollbar{display:none}.toolbar-group{display:flex;gap:6px;flex:0 0 auto}.key-button{min-width:42px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:#c9d4e4;font-size:12px;white-space:nowrap;touch-action:manipulation}.key-button:hover{border-color:#3b4a60;background:var(--panel-2)}.key-button.active{border-color:var(--accent);background:#58a6ff29;color:#cfe6ff}.key-button.danger{color:#ffb1b1}.power-wrap{position:relative}.power-menu{position:absolute;right:0;bottom:calc(100% + 8px);width:140px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 16px 40px #00000080;z-index:20}.power-menu button{width:100%;border:0;border-radius:8px;background:transparent;color:#dbe6f5;padding:9px 10px;text-align:left;font-size:13px}.power-menu button:hover{background:var(--panel-2)}.power-menu button:disabled{color:#5e6b7e;cursor:not-allowed;background:transparent}.power-menu .wake-button{color:#8ff0c8}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes pulse{0%{box-shadow:0 0 #58a6ff59}70%{box-shadow:0 0 0 18px #58a6ff00}to{box-shadow:0 0 #58a6ff00}}@media (max-width: 720px){.topbar{gap:8px;padding:8px 10px}.brand strong{font-size:13px}.status-label,.metrics span:nth-child(3),.metrics span:nth-child(4){display:none}.metrics{gap:8px}.top-actions .ghost-button:first-child{display:none}.screen-stage,.screen-viewport{padding:0}.screen-media{border-radius:0}.control-dock{padding-left:8px;padding-right:8px}.key-button{height:34px;min-width:38px}}@media (max-height: 520px) and (orientation: landscape){.topbar{padding:4px 10px}.control-dock{padding-top:4px}.keyboard-row{display:none}}
