:root{--bg:#0f1419;--panel:#1a2332;--text:#e7ecf3;--muted:#8b9bb4;--accent:#3d9cf0;--ok:#3ecf8e;--bad:#f07178;--border:#2a3548;--warn:#e6c07b}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--accent)}h1{font-size:1.25rem;font-weight:600;margin:0 0 4px}.sub{color:var(--muted);font-size:.875rem;margin-bottom:20px}.row{flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}.row,label{display:flex}label{flex-direction:column;gap:6px;font-size:.75rem;color:var(--muted)}input{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px;min-width:180px}button,input{font-size:.9rem}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:9px 16px;cursor:pointer;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--panel);border:1px solid var(--border)}button.danger{background:#c44}#status{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;white-space:pre-wrap;min-height:120px;line-height:1.45;margin-bottom:16px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--muted)}.dot.ok{background:var(--ok)}.dot.bad{background:var(--bad)}.dot.run{background:var(--warn)}#videos{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.tile{position:relative;width:320px;flex:0 0 auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tile.resizing{border-color:var(--accent);z-index:2}.tile video{width:100%;aspect-ratio:16/9;background:#000;display:block;object-fit:contain;pointer-events:none}.tile.audio audio{display:none}.tile .audio-body{width:100%;aspect-ratio:16/9;background:#0c1118;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border-bottom:1px solid var(--border)}.tile .audio-icon{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2a3a52,#151c28);border:1px solid var(--border);position:relative}.tile .audio-icon:before{content:"";position:absolute;inset:12px 14px 12px 16px;background:var(--muted);-webkit-clip-path:polygon(0 30%,40% 30%,75% 0,75% 100%,40% 70%,0 70%);clip-path:polygon(0 30%,40% 30%,75% 0,75% 100%,40% 70%,0 70%);opacity:.85}.tile .audio-play{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 18px;font-size:.85rem;font-weight:600;cursor:pointer;min-width:88px}.tile .audio-play.on{background:var(--panel);border:1px solid var(--border);color:var(--text)}.tile .audio-play:disabled{opacity:.45;cursor:not-allowed}.tile .resize-handle{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;z-index:3;touch-action:none}.tile .resize-handle:after,.tile .resize-handle:before{content:"";position:absolute;right:3px;bottom:3px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);pointer-events:none}.tile .resize-handle:before{width:10px;height:10px;opacity:.55}.tile .resize-handle:after{width:5px;height:5px;opacity:.9}.tile.resizing .resize-handle:after,.tile.resizing .resize-handle:before,.tile:hover .resize-handle:after,.tile:hover .resize-handle:before{border-color:var(--accent)}.tile .cap{padding:8px 10px;font-size:.75rem;color:var(--muted);line-height:1.45}.tile .cap .lat{color:var(--ok);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tile .cap .lat.warn{color:var(--warn)}.tile .cap .lat.bad{color:var(--bad)}#latencyBar{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:12px;color:var(--muted);line-height:1.5;min-height:2.6em}#latencyBar .ok{color:var(--ok)}#latencyBar .warn{color:var(--warn)}#latencyBar .bad{color:var(--bad)}.main{display:grid;grid-template-columns:1fr minmax(280px,360px);grid-gap:16px;gap:16px;align-items:start}@media (max-width:860px){.main{grid-template-columns:1fr}}#chat{background:var(--panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;min-height:320px;max-height:520px}#chat h2{margin:0;font-weight:600;border-bottom:1px solid var(--border);color:var(--muted)}#chat h2,#chatLog{padding:10px 12px;font-size:.85rem}#chatLog{flex:1 1;overflow-y:auto;line-height:1.4}.chat-msg{margin-bottom:8px;word-break:break-word}.chat-msg .who{color:var(--accent);font-weight:600;margin-right:6px}.chat-msg.me .who{color:var(--ok)}.chat-msg .when{color:var(--muted);font-size:.7rem;margin-left:6px}.chat-sys{color:var(--muted);font-size:.75rem;margin-bottom:8px}#chatForm{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border)}#chatInput{flex:1 1;min-width:0}.login-page,.page{padding:24px;min-height:100vh}.login-page{display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,#1a2a44 0,var(--bg) 55%)}.login-box{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:28px 24px 22px}.login-box h1{margin-bottom:6px}.login-box .sub{margin-bottom:18px}.login-box label{width:100%;margin-bottom:12px}.login-box input{width:100%;min-width:0}.login-box button{width:100%;margin-top:6px}.login-error{color:var(--bad);font-size:.8rem;min-height:1.2em;margin:0 0 8px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.topbar .titles{flex:1 1;min-width:0}.topbar .titles .sub{margin-bottom:0}.topbar-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}a.btn-link{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:9px 16px;font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer}a.btn-link.secondary{background:var(--panel);border:1px solid var(--border);color:var(--text)}.home-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#1a2a44 0,var(--bg) 55%)}.home-card{width:100%;max-width:640px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:28px 24px 24px}.home-actions{display:grid;grid-gap:12px;gap:12px;margin-top:20px}.home-action{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:10px;border:1px solid var(--border);background:#121a26;text-decoration:none;color:var(--text);transition:border-color .15s ease,background .15s ease}.home-action:hover{border-color:var(--accent);background:#152033}.home-action.primary{border-color:rgba(61,156,240,.55);background:linear-gradient(180deg,#17324d,#121a26)}.home-action-title{font-size:1.05rem;font-weight:650}.home-action-desc{font-size:.85rem;color:var(--muted)}.console-form,.token-panel{margin-top:16px}.token-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:14px}.token-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:.9rem}.muted,.token-meta .muted{color:var(--muted);margin-right:6px}.token-field{width:100%}.token-row{display:flex;gap:8px;align-items:flex-start;margin-top:6px}.token-row input,.token-row textarea{flex:1 1;min-width:0;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.4;resize:vertical}.hint{color:var(--muted);font-size:.8rem;margin-top:12px}.hint code{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:4px;background:#0c1118;border:1px solid var(--border);color:var(--ok);font-size:.75rem}