:root{--bg:#0e1116;--panel:#171b22;--panel-2:#1e232c;--border:#2a303b;--text:#e8eaed;--muted:#9aa0a6;--teal:#3b8f86;--teal-soft:rgba(59,143,134,0.35);--danger:#d9534f;--navy:#0b2545}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,select{font:inherit}.app{height:100vh;height:100dvh;flex-direction:column;overflow:hidden}.app,.bar{display:flex}.bar{align-items:center;gap:16px;padding:8px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.bar .title{font-weight:600;flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar .status{color:var(--muted);font-size:14px;display:flex;align-items:center;gap:8px}.dot{width:9px;height:9px;border-radius:50%;background:#5f6368}.dot.live{background:#34a853}.timer{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;min-width:52px;text-align:right}.timer.late{color:#f4b400}.room{flex:1 1;justify-content:center;gap:16px;padding:12px 20px;container-type:size}.room,.stage{min-height:0;display:flex}.stage{flex:none;width:min(calc(100cqw - 276px),calc((100cqh - 38px) * 16 / 9));flex-direction:column}.slidebox{flex:1 1;min-height:0;container-type:size;display:grid;place-items:center}.slide{position:relative;width:min(100cqw,calc(100cqh * 16 / 9));aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;border:1px solid var(--border)}.slide img{width:100%;height:100%;object-fit:contain;display:block}.nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(14,17,22,.7);color:#fff;font-size:22px;cursor:pointer;opacity:0;transition:opacity .15s}.nav:focus-visible,.slide:hover .nav{opacity:1}.nav:disabled{display:none}.nav.prev{left:10px}.nav.next{right:10px}.caption{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;justify-content:space-between;gap:12px}.caption,.hint{margin-top:8px;color:var(--muted);font-size:14px}.hint{padding:8px 14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.side{flex:1 1;min-width:260px;max-width:520px;display:flex;flex-direction:column;gap:10px;min-height:0}.tile{position:relative;flex:none;aspect-ratio:4/3;max-height:30cqh;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;overflow:hidden}.tile img,.tile video{width:100%;height:100%;object-fit:cover;display:block}.tile video{transform:scaleX(-1)}.tile .name{position:absolute;left:8px;bottom:8px;padding:3px 8px;border-radius:6px;background:rgba(14,17,22,.75);font-size:12px}.tile .off{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:14px;text-align:center;padding:12px}.tile.dana.speaking{border-color:var(--teal);animation:glow 1.4s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 0 2px var(--teal-soft)}50%{box-shadow:0 0 0 6px var(--teal-soft)}}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:8px;gap:8px;flex:1 1;min-height:0;overflow-y:auto;align-content:start;padding-right:2px}.thumb{position:relative;padding:0;border:2px solid transparent;border-radius:6px;background:#000;cursor:pointer;overflow:hidden;aspect-ratio:16/9}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb[aria-current=true]{border-color:var(--teal)}.thumb span{position:absolute;left:4px;top:4px;font-size:11px;padding:1px 5px;border-radius:4px;background:rgba(14,17,22,.8)}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:10px 18px;border-radius:999px;cursor:pointer}.btn:hover:not(:disabled){background:#272e3a}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--teal);border-color:var(--teal)}.btn.danger,.btn.primary{color:#fff;font-weight:600}.btn.danger{background:var(--danger)}.btn.active,.btn.danger{border-color:var(--danger)}.btn.active{background:#5f2a29}.alert{padding:10px 14px;border-radius:8px;background:#3a1d1c;border:1px solid #6b2f2d;color:#f6b3b0}.alert,.ended{margin:12px 20px 0}.ended{padding:12px 14px;border-radius:8px;background:var(--panel);border:1px solid var(--border)}@media (max-width:900px){.app{height:auto;min-height:100vh;overflow:visible}.bar{flex-wrap:wrap}.slidebox{display:block}.slide{width:100%}.room{display:block;container-type:normal;padding:12px}.stage{width:auto}.tile{max-height:none}.side{max-width:none;display:grid;grid-template-columns:1fr 1fr}.thumbs{grid-column:1/-1;grid-template-columns:repeat(4,1fr);max-height:24vh}.nav{opacity:1}}.tile.dana img{object-position:center 18%}.bar .brand{display:flex;align-items:center;gap:12px;flex:1 1;min-width:0}.bar .brand .title{flex:0 1 auto}.bar .logo{height:22px;width:auto;display:block}.bar .wordmark{font-weight:700;letter-spacing:.12em;font-size:15px}.bar .sep{width:1px;height:18px;background:var(--border)}.bar .logo{height:24px}.bar .actions{display:flex;align-items:center;gap:10px}.bar .actions label{color:var(--muted);font-size:14px}.bar .actions select{margin-left:6px;padding:6px 8px;border-radius:8px;background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.btn.small{padding:6px 12px;font-size:13px}.bar .btn{padding:7px 16px}.bar .btn.small{padding:6px 12px}.bar .btn.leave{margin-left:14px}.transcript{position:fixed;right:16px;bottom:16px;width:min(420px,calc(100vw - 32px));max-height:55vh;overflow-y:auto;padding:12px 14px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.5);color:var(--muted);font-size:14px;z-index:10}.transcript .thead{display:flex;justify-content:space-between;align-items:center;gap:8px}.transcript ul{list-style:none;padding:0;margin:10px 0 0}.transcript li{margin:6px 0;color:var(--text)}.transcript strong.dana{color:#8ab4f8}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--panel);border:1px solid var(--border);border-radius:14px}.login-card .wordmark{font-weight:700;letter-spacing:.12em}.login-card h1{margin:0;font-size:24px}.login-card p{margin:0;color:var(--muted)}.login-card input{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit}.login-card .alert{margin:0}