:root{--bg: #0f141d;--surface: #161d29;--surface-hi: #1d2532;--line: #262f3f;--line-soft: #1e2635;--ink: #dce2ec;--ink-dim: #8a96a9;--ink-faint: #5d697c;--amber: #d8a03d;--amber-hi: #e8b559;--amber-ink: #1a1408;--danger: #c4604f;--r: 6px;--gap: 12px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Saba,Segoe UI,Tahoma,sans-serif;font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface-hi);border-radius:var(--r);padding:7px 14px;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#232c3c;border-color:#33405473}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--amber);border-color:var(--amber);color:var(--amber-ink);font-weight:700}button.primary:hover:not(:disabled){background:var(--amber-hi);border-color:var(--amber-hi)}button.ghost{background:transparent}button.danger{color:var(--danger);border-color:#3a2b2b}button.danger:hover:not(:disabled){background:#241a1a}input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;outline:none}input:focus{border-color:var(--amber)}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}.auth{height:100%;display:grid;place-items:center;padding:24px}.auth-card{width:360px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:28px}.auth-mark{width:34px;height:34px;border:1px solid var(--amber);border-radius:var(--r);display:grid;place-items:center;color:var(--amber);margin-bottom:18px}.auth h1{font-size:26px;font-weight:300;margin:0 0 24px;line-height:1.45;letter-spacing:-.01em}.field{margin-bottom:14px}.field label{display:block;color:var(--ink-dim);margin-bottom:6px;font-size:13px}.auth button.primary{width:100%;margin-top:6px}.auth-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft);text-align:center}.error{border:1px solid #3f2b2b;background:#221819;color:#e0a79c;border-radius:var(--r);padding:8px 12px;margin-bottom:14px;font-size:13px}.rooms{max-width:620px;margin:0 auto;padding:56px 24px}.rooms-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:20px}.rooms-head h1{font-size:19px;margin:0}.rooms-actions{display:flex;gap:8px;margin-bottom:20px}.room-row{display:flex;align-items:center;gap:12px;width:100%;text-align:right;border:1px solid var(--line-soft);background:var(--surface);border-radius:var(--r);padding:12px 14px;margin-bottom:8px}.room-row:hover{border-color:var(--line);background:var(--surface-hi)}.room-row .code{margin-inline-start:auto;color:var(--ink-faint);font-size:12px;letter-spacing:1px}.empty{color:var(--ink-faint);border:1px dashed var(--line);border-radius:var(--r);padding:28px;text-align:center}.shell{height:100%;display:grid;grid-template-columns:68px minmax(360px,1fr) 340px}.rail{border-inline-start:1px solid var(--line);background:#0c1018;display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px}.rail-item{width:42px;height:42px;border-radius:var(--r);border:1px solid var(--line-soft);background:var(--surface);display:grid;place-items:center;font-weight:700;padding:0}.rail-item.on{border-color:var(--amber);color:var(--amber)}.rail-spacer{flex:1}.stage{display:flex;flex-direction:column;min-width:0}.stage-head,.chat-head{height:46px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line);flex:none}.stage-head h2{font-size:15px;margin:0;font-weight:700}.stage-head .code{color:var(--ink-faint);font-size:12px;letter-spacing:1px;margin-inline-start:auto}.section-title{color:var(--ink-dim);font-size:13px;padding:14px 16px 10px}.grid{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:var(--gap);padding:0 16px 16px;min-height:0}.seat{border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:140px}.seat.speaking{border-color:var(--amber)}.seat.empty-seat{border-style:dashed;background:transparent}.avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:700;color:var(--amber-ink);border:2px solid transparent}.seat.speaking .avatar{border-color:var(--amber);box-shadow:0 0 0 3px #0f141d,0 0 0 4px var(--amber)}.seat .name{font-size:13px}.seat .tag{color:var(--ink-faint);font-size:12px}.stage-empty{flex:1;display:grid;place-items:center;color:var(--ink-faint)}.controls{border-top:1px solid var(--line);padding:10px 16px;display:flex;gap:8px;align-items:center;flex:none}.controls .spacer{flex:1}.status{font-size:12px;color:var(--ink-faint)}.status.warn{color:var(--amber)}.chat{border-inline-end:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.chat-head h2{font-size:14px;margin:0;font-weight:700;color:var(--ink-dim)}.chat-log{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.msg{padding:3px 0}.msg.grouped{margin-top:-2px}.msg-head{display:flex;align-items:baseline;gap:8px;margin-top:10px}.msg-head .who{font-weight:400;font-size:13px}.msg-head .when{color:var(--ink-faint);font-size:11px}.msg-body{white-space:pre-wrap;overflow-wrap:anywhere}.notice{color:var(--ink-faint);font-size:12px;padding:4px 0}.chat-form{border-top:1px solid var(--line);padding:10px 12px;display:flex;gap:8px;flex:none}.chat-empty{margin:auto;color:var(--ink-faint)}.veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#060911cc;display:grid;place-items:center;z-index:20;padding:24px}.modal{width:340px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px}.modal h3{margin:0 0 16px;font-size:16px;font-weight:700}.modal-actions{display:flex;gap:8px;margin-top:18px}.modal-actions button{flex:1}.menu{position:absolute;bottom:62px;inset-inline-start:12px;width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;z-index:30}.menu select{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:7px 10px;color:inherit;font:inherit;margin-bottom:12px}.menu .who{border-bottom:1px solid var(--line-soft);padding-bottom:10px;margin-bottom:12px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:#222c3c;border-radius:6px;border:3px solid var(--bg)}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
