:root{--bg:#f4f6fb;--surface:#fff;--surface-2:#eef2f8;--border:#e1e6ef;--text:#121826;--muted:#5c6678;--primary:#1f5eff;--primary-hover:#184ad1;--primary-soft:#e7eeff;--danger:#d12c1f;--danger-soft:#fdecea;--success:#0f9d58;--success-soft:#e3f6ec;--warn-bg:#fff5dc;--warn-text:#6f4a00;--radius:14px;--shadow:0 1px 2px #1018280f, 0 4px 16px #1018280f;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--inset-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--inset-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0e1220;--surface:#161b2c;--surface-2:#1d2337;--border:#2a3149;--text:#e8ecf5;--muted:#98a2b8;--primary:#4b7dff;--primary-hover:#6a93ff;--primary-soft:#1d2a52;--danger:#ff6b5e;--danger-soft:#3a1c1c;--success:#34c77b;--success-soft:#133325;--warn-bg:#3a2f12;--warn-text:#ffd58a;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;line-height:1.25}a{color:var(--primary);text-decoration:none}code,.mono{font-family:var(--mono)}code{background:var(--surface-2);border-radius:6px;padding:1px 6px;font-size:.9em}.muted{color:var(--muted)}.small{font-size:13px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{height:40px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:not(:disabled):hover{background:var(--surface-2)}.btn-ghost{color:var(--muted);background:0 0}.btn-ghost:not(:disabled):hover{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-sm{gap:6px;height:34px;padding:0 12px;font-size:13px}.btn-block{width:100%}.btn-icon{width:36px;height:36px;color:var(--muted);background:0 0;padding:0}.btn-icon:not(:disabled):hover{background:var(--surface-2);color:var(--text)}.btn-primary.btn-icon{background:var(--primary);color:#fff}.btn-google{background:var(--surface);border-color:var(--border);width:100%;height:48px;color:var(--text);font-size:15px}.btn-google:not(:disabled):hover{background:var(--surface-2)}input,textarea{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}textarea{resize:vertical}.field{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field small{font-weight:400}.form-error{color:var(--danger);margin:0;font-size:13px}.form-actions{justify-content:flex-end;gap:8px;display:flex}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.avatar-fallback{background:var(--primary-soft);color:var(--primary);font-weight:700}.chip{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.chip-live{background:var(--danger-soft);color:var(--danger)}.chip-live .dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.6s infinite pulse}.chip-open{background:var(--success-soft);color:var(--success)}.chip-muted{background:var(--surface-2);color:var(--muted)}.count{background:var(--surface-2);min-width:22px;color:var(--muted);text-align:center;border-radius:999px;margin-left:6px;padding:0 7px;font-size:12px;display:inline-block}.banner{border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:14px}.banner-warn{background:var(--warn-bg);color:var(--warn-text)}.banner-error{background:var(--danger-soft);color:var(--danger)}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.toast{left:50%;bottom:calc(24px + var(--inset-bottom));color:#fff;z-index:50;background:#121826;border-radius:12px;max-width:calc(100vw - 32px);padding:12px 18px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #00000040}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}.brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-size:18px;font-weight:800;display:inline-flex}.brand-mark{background:var(--primary);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.brand-large{font-size:24px}.brand-large .brand-mark{border-radius:14px;width:48px;height:48px}.app-header{z-index:10;padding-top:var(--inset-top);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-inner{align-items:center;gap:24px;max-width:1200px;height:60px;margin:0 auto;padding:0 16px;display:flex}.app-nav{flex:1;gap:4px;display:flex}.app-nav a{color:var(--muted);border-radius:8px;padding:6px 12px;font-size:14px;font-weight:600}.app-nav a:hover{background:var(--surface-2);color:var(--text)}.app-nav a.active{background:var(--primary-soft);color:var(--primary)}.app-user{align-items:center;gap:8px;min-width:0;display:flex}.app-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:14px;font-weight:600;overflow:hidden}.fullscreen{min-height:100dvh;padding:calc(24px + var(--inset-top)) 16px calc(24px + var(--inset-bottom));flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.message-card,.setup-card{text-align:center;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:440px;padding:32px 28px;display:flex}.message-card h1,.setup-card h1{font-size:20px}.message-icon{background:var(--primary-soft);width:56px;height:56px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;display:flex}.message-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.setup-card{text-align:left;align-items:flex-start}.setup-list{gap:4px;margin:0;padding-left:20px;display:grid}.login{min-height:100dvh;padding:calc(24px + var(--inset-top)) 16px calc(24px + var(--inset-bottom));background:radial-gradient(circle at 15% 10%, #1f5eff2e, transparent 45%), radial-gradient(circle at 85% 90%, #0f9d581f, transparent 45%), var(--bg);justify-content:center;align-items:center;display:flex}.login-card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:420px;padding:36px 28px;display:flex}.login-card h1{margin-top:8px;font-size:22px}.login-card>p{margin:0 0 8px}.login-steps{border-top:1px solid var(--border);counter-reset:step;text-align:left;width:100%;color:var(--muted);gap:10px;margin:12px 0 0;padding:16px 0 0;font-size:14px;list-style:none;display:grid}.login-steps li{counter-increment:step;align-items:center;gap:10px;display:flex}.login-steps li:before{content:counter(step);background:var(--primary-soft);width:24px;height:24px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.login-steps strong{color:var(--text)}.page{max-width:1200px;padding:28px 16px calc(48px + var(--inset-bottom));margin:0 auto}.lobby{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.lobby-hero{margin-bottom:24px}.lobby-hero h1{letter-spacing:-.02em;font-size:26px}.lobby-hero p{margin:6px 0 0}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-head h2{font-size:17px}.room-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.room-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:18px;transition:transform .15s,border-color .15s;display:flex}.room-card:not(.is-disabled):not(.skeleton):hover{border-color:var(--primary);transform:translateY(-2px)}.room-card.skeleton{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);background-size:200% 100%;height:180px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.room-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.room-card h3{font-size:16px}.room-card-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;display:-webkit-box;overflow:hidden}.room-card-meta{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:13px;display:flex}.room-card-meta span{align-items:center;gap:5px;display:inline-flex}.room-card .btn{margin-top:auto}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:40px 24px;display:flex}.empty h3{color:var(--text);font-size:16px}.empty p{margin:0}.lobby-side{flex-direction:column;gap:16px;display:flex;position:sticky;top:84px}.side-panel{padding:16px}.panel-title{margin-bottom:12px;font-size:15px}.online-list{gap:8px;max-height:200px;margin:0;padding:0;font-size:14px;list-style:none;display:grid;overflow-y:auto}.online-list li{align-items:center;gap:10px;min-width:0;display:flex}.online-avatar{display:inline-flex;position:relative}.online-dot{background:var(--success);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;bottom:-1px;right:-1px}.chat-panel{flex-direction:column;display:flex}.chat-list{flex-direction:column;gap:12px;height:320px;margin-bottom:12px;padding-right:4px;display:flex;overflow-y:auto}.chat-msg{align-items:flex-start;gap:8px;display:flex}.chat-bubble{flex:1;min-width:0}.chat-meta{color:var(--muted);align-items:baseline;gap:8px;font-size:12px;display:flex}.chat-meta strong{color:var(--text);font-size:13px}.chat-bubble p{overflow-wrap:anywhere;margin:2px 0 0;font-size:14px}.chat-msg.is-mine .chat-meta strong{color:var(--primary)}.chat-form{gap:8px;display:flex}.chat-form .btn-icon{flex-shrink:0;width:40px;height:40px}.admin{flex-direction:column;gap:20px;display:flex}.admin .lobby-hero{margin-bottom:4px}.panel{padding:20px}.room-form{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.field-wide{grid-column:1/-1}.admin-room-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.admin-room{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.admin-room-main{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.admin-room-info{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.admin-room-info p{margin:0}.admin-room-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-room-title h3{font-size:16px}.code-box{background:var(--surface-2);border-radius:10px;align-self:flex-start;align-items:center;gap:4px;padding:6px 6px 6px 14px;display:flex}.code-label{color:var(--muted);margin-right:6px;font-size:12px}.code-value{letter-spacing:.12em;min-width:90px;font-size:17px;font-weight:700}.admin-room-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-room-edit{border-top:1px dashed var(--border);padding-top:14px}.gate{min-height:100dvh;padding:calc(24px + var(--inset-top)) 16px calc(24px + var(--inset-bottom));flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.back-link{color:var(--muted);align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.back-link:hover{color:var(--text)}.gate>.back-link{width:100%;max-width:420px}.gate-card{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:420px;padding:32px 28px;display:flex}.gate-card h1{font-size:22px}.gate-card>p{margin:0}.gate-icon{background:var(--primary-soft);width:60px;height:60px;color:var(--primary);border-radius:18px;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.gate-meta{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:inline-flex}.gate-form{text-align:left;flex-direction:column;gap:10px;width:100%;margin-top:12px;display:flex}.gate-form label{font-size:13px;font-weight:600}.code-input{text-align:center;letter-spacing:.3em;height:56px;font-size:24px;font-weight:700}.code-input::placeholder{letter-spacing:.3em;color:var(--border)}.gate-card .banner{width:100%;margin:12px 0 0}.prejoin-screen{min-height:100dvh;padding:calc(24px + var(--inset-top)) 16px calc(24px + var(--inset-bottom));color:#e8ecf5;background:#0b0f19;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.prejoin-head{flex-direction:column;gap:6px;width:100%;max-width:520px;display:flex}.prejoin-head .back-link{color:#98a2b8;margin-bottom:8px}.prejoin-head h1{font-size:22px}.prejoin-head p{color:#98a2b8;margin:0}.prejoin-screen .lk-prejoin{width:100%;max-width:520px;padding:0}.meeting{height:100dvh;padding:var(--inset-top) 0 var(--inset-bottom);color:#e8ecf5;background:#0b0f19;flex-direction:column;display:flex}.meeting-bar{border-bottom:1px solid #1d2337;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;padding:6px 16px;font-size:14px;display:flex}.meeting-title{font-weight:700}.meeting-warning{color:#ffd58a;background:#3a2f12;border-radius:8px;align-items:center;gap:8px;margin-left:auto;padding:4px 6px 4px 12px;font-size:13px;display:inline-flex}.meeting-warning button{color:inherit;cursor:pointer;background:0 0;border:0;font-size:18px;line-height:1}.meeting-stage{flex:1;min-height:0}.meeting-stage .lk-video-conference{height:100%}@media (width<=900px){.lobby{grid-template-columns:minmax(0,1fr)}.lobby-side{position:static}}@media (width<=600px){.app-header-inner{gap:12px}.app-user-name{display:none}.app-nav a{padding:6px 8px}.lobby-hero h1{font-size:22px}.room-form{grid-template-columns:minmax(0,1fr)}.code-box{width:100%}.code-value{flex:1}.admin-room-actions .btn{flex:auto}}@media (width<=420px){.app-header .brand-name{display:none}}
