html,body{height:100%}:root{--bg-primary:#16171b;--bg-secondary:#0f1013;--bg-tertiary:#0a0a0c;--bg-floating:#050506;--bg-elevated:#1c1e24;--bg-input:#0c0d10;--brand:#5865f2;--brand-2:#7289ff;--brand-hover:#4752c4;--brand-glow:#5865f273;--green:#23c56a;--green-hover:#1ea85a;--green-glow:#23c56a8c;--red:#f23f45;--red-hover:#da373c;--text-normal:#e6e7eb;--text-muted:#8a8d9c;--text-faint:#55586a;--divider:#ffffff0f;--radius-lg:18px;--radius-md:12px;--radius-sm:8px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}body{background:var(--bg-tertiary);color:var(--text-normal);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}button{font-family:inherit}button:focus{outline:none}button:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px}.home-shell{background:radial-gradient(50% 40% at 18% 10%, #5865f229, transparent), radial-gradient(40% 35% at 88% 85%, #23c56a1a, transparent), var(--bg-tertiary);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.home-card{background:var(--bg-primary);border:1px solid var(--divider);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:2rem 2rem 1.75rem;box-shadow:0 24px 80px #0009}.home-wordmark{justify-content:center;align-items:center;gap:.6rem;margin:0 0 1.5rem;display:flex}.home-wordmark .dot{background:var(--brand);width:10px;height:10px;box-shadow:0 0 16px var(--brand-glow);border-radius:50%}.home-wordmark h1{letter-spacing:-.02em;color:#fff;margin:0;font-size:1.5rem;font-weight:800}.tabs{background:var(--bg-tertiary);border-radius:var(--radius-md);gap:.25rem;margin-bottom:1.25rem;padding:.25rem;display:flex}.tabs button{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.tabs button.active{background:var(--brand);color:#fff;box-shadow:0 4px 16px var(--brand-glow)}.tabs button:not(.active):hover{color:var(--text-normal)}.form{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.4rem;display:flex}.field label{text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);font-size:.68rem;font-weight:700}.field input{border-radius:var(--radius-sm);border:1px solid var(--divider);background:var(--bg-input);color:var(--text-normal);outline:none;padding:.62rem .7rem;font-size:.95rem;transition:border-color .15s}.field input:focus{border-color:var(--brand)}.field input::placeholder{color:var(--text-faint)}.btn-primary{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--brand-2), var(--brand));color:#fff;cursor:pointer;border:none;padding:.7rem;font-size:.95rem;font-weight:600;transition:filter .15s,transform .1s}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{border-radius:var(--radius-sm);border:1px solid var(--divider);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;padding:.6rem;font-size:.88rem;font-weight:600;transition:background .15s,color .15s}.btn-secondary:hover:not(:disabled){color:var(--text-normal);background:#ffffff0d}.invite-room-name{text-align:center;color:var(--text-muted);margin:-.5rem 0 1.25rem;font-size:.9rem}.error-banner{color:#ff8085;border-radius:var(--radius-sm);background:#f23f431f;border:1px solid #f23f4366;margin-bottom:1rem;padding:.6rem .75rem;font-size:.85rem}.created-info{border-radius:var(--radius-md);background:#23c56a14;border:1px solid #23c56a4d;margin-top:1.25rem;padding:1rem;font-size:.85rem;line-height:1.6}.created-info .credential{justify-content:space-between;align-items:center;margin-top:.3rem;display:flex}.created-info code{background:var(--bg-tertiary);color:#fff;border-radius:4px;padding:.15rem .5rem;font-size:.85rem}.created-info .btn-primary{width:100%;margin-top:.85rem}.created-info .btn-secondary{margin-top:.6rem}.room{background:var(--bg-primary);height:100vh;display:flex}.room-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.room-header{background:var(--bg-primary);border-bottom:1px solid var(--divider);flex:none;justify-content:space-between;align-items:center;height:52px;padding:0 1rem;display:flex}.room-title{align-items:center;gap:.4rem;min-width:0;display:flex}.room-title svg{color:var(--text-faint);flex:none}.room-title strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.room-title .muted{color:var(--text-faint);font-size:.8rem}.room-actions{flex:none;gap:.4rem;display:flex}.icon-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:.4rem .65rem;font-size:.82rem;font-weight:500;transition:background .15s,color .15s;display:flex}.icon-btn:hover{color:var(--text-normal);background:#ffffff0f}.icon-btn:disabled{opacity:.5;cursor:default}.icon-btn.primary{background:linear-gradient(135deg, var(--brand-2), var(--brand));color:#fff}.icon-btn.primary:hover:not(:disabled){filter:brightness(1.08)}.icon-btn.danger{color:var(--red)}.icon-btn.danger:hover{color:#ff8085;background:#f23f4324}.room-member-count{align-items:center;display:inline-flex}.stage{background:radial-gradient(60% 60% at 50% 0%, #5865f20f, transparent), var(--bg-floating);flex:1;justify-content:center;align-items:center;min-height:0;padding:1.5rem;display:flex;position:relative;overflow:auto}.stage-empty{color:var(--text-muted);flex-direction:column;align-items:center;gap:.9rem;display:flex}.stage-empty-icon{background:var(--bg-elevated);width:64px;height:64px;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;display:flex}.stage-empty p{margin:0;font-size:.95rem}.stage-empty .icon-btn{padding:.6rem 1.1rem}.voice-grid{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1.75rem 2rem;width:100%;max-width:980px;display:flex}.voice-tile{flex-direction:column;flex:none;align-items:center;gap:.6rem;width:132px;display:flex}.voice-tile-avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;font-size:1.6rem;font-weight:700;transition:box-shadow .15s,transform .15s;display:flex;box-shadow:0 8px 24px #0006}.voice-tile.speaking .voice-tile-avatar{box-shadow:0 0 0 4px var(--green), 0 0 26px 4px var(--green-glow);animation:1.4s ease-in-out infinite speaking-pulse}@keyframes speaking-pulse{0%,to{box-shadow:0 0 0 4px var(--green), 0 0 22px 2px var(--green-glow)}50%{box-shadow:0 0 0 4px var(--green), 0 0 32px 8px var(--green-glow)}}.voice-tile-label{max-width:100%;color:var(--text-muted);background:#00000059;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.82rem;display:flex}.voice-tile.speaking .voice-tile-label{color:var(--green)}.voice-tile-label span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mic-off-badge{width:13px;height:13px;color:var(--red);flex:none}.stage-focus{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.stage-video-tile{border-radius:var(--radius-md);background:#000;max-width:min(100%,960px);max-height:100%;position:relative;overflow:hidden;box-shadow:0 20px 60px #0000008c}.stage-video-tile video{object-fit:contain;background:#000;width:100%;height:100%;max-height:60vh;display:block}:is(.stage-video-tile.fullscreen,.stage-video-tile:fullscreen){border-radius:0;width:100vw;max-width:none;height:100vh;max-height:none}:is(.stage-video-tile.fullscreen video,.stage-video-tile:fullscreen video){height:100vh;max-height:none}.stage-video-overlay{opacity:0;background:linear-gradient(#000000a6,#0000);justify-content:space-between;align-items:center;gap:.5rem;padding:.7rem .8rem;transition:opacity .15s;display:flex;position:absolute;inset:0 0 auto}:is(.stage-video-tile:hover .stage-video-overlay,.stage-video-tile:fullscreen .stage-video-overlay){opacity:1}.stage-video-stats{border-radius:var(--radius-sm);color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;background:#0000008c;padding:.2rem .5rem;font-size:.72rem;position:absolute;bottom:.6rem;left:.6rem}.stage-video-label{color:#fff;text-shadow:0 1px 4px #0009;font-size:.82rem;font-weight:600}.stage-video-overlay-actions{flex:none;align-items:center;gap:.4rem;display:flex}.expand-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:#00000080;border:none;flex:none;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s;display:flex}.expand-btn:hover{background:#000000bf}.quality-select{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:#00000080;border:none;flex:none;height:32px;padding:0 .5rem;font-family:inherit;font-size:.78rem}.quality-select:hover{background:#000000bf}.demo-picker{flex-direction:column;align-items:center;gap:1rem;display:flex}.demo-picker-title{color:var(--text-muted);margin:0;font-size:.9rem}.demo-picker-list{flex-direction:column;gap:.5rem;width:100%;max-width:360px;display:flex}.demo-picker-item{border-radius:var(--radius-md);border:1px solid var(--divider);background:var(--bg-elevated);color:var(--text-normal);cursor:pointer;align-items:center;gap:.7rem;padding:.6rem .8rem;font-size:.9rem;transition:background .15s,border-color .15s;display:flex}.demo-picker-item:hover{border-color:var(--brand);background:#ffffff0f}.demo-picker-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.demo-picker-avatar{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.demo-picker-icon{color:var(--text-faint);flex:none}.voice-strip .voice-tile.speaking .voice-tile-avatar{box-shadow:0 0 0 3px var(--green), 0 0 16px 2px var(--green-glow)}.voice-roster{flex-wrap:wrap;justify-content:center;gap:.6rem;max-width:360px;display:flex}.voice-roster-item{background:var(--bg-elevated);color:var(--text-normal);border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .75rem .3rem .3rem;font-size:.85rem;display:flex}.dock-resize-handle{cursor:row-resize;touch-action:none;z-index:1;flex:none;justify-content:center;align-items:center;height:10px;margin-top:-5px;display:flex;position:relative}.dock-resize-grip{background:var(--divider);border-radius:999px;width:36px;height:4px;transition:background .15s}.dock-resize-handle:hover .dock-resize-grip,.dock-resize-handle:active .dock-resize-grip{background:var(--brand)}.chat-dock{background:var(--bg-secondary);border-top:1px solid var(--divider);flex-direction:column;flex:none;min-height:0;display:flex}.messages{flex-direction:column;flex:1;min-height:0;padding:.75rem 1rem;display:flex;overflow-y:auto}.msg-group{border-radius:var(--radius-sm);gap:.9rem;margin-top:1rem;padding:.15rem .4rem;display:flex;position:relative}.msg-group.grouped{margin-top:.05rem}.msg-group:hover{background:#ffffff08}.avatar{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:.95rem;font-weight:700;display:flex}.avatar-spacer{flex:none;width:40px}.msg-body{flex:1;min-width:0}.msg-head{align-items:baseline;gap:.5rem;display:flex}.msg-head .nick{color:#fff;font-size:.95rem;font-weight:600}.msg-head .time{color:var(--text-faint);font-size:.68rem}.msg-text{color:var(--text-normal);word-break:break-word;white-space:pre-wrap;font-size:.94rem;line-height:1.45}.msg-edited-badge{color:var(--text-faint);margin-left:.35rem;font-size:.72rem}.msg-actions{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--divider);gap:.15rem;padding:.15rem;display:none;position:absolute;top:-.9rem;right:.6rem;box-shadow:0 4px 12px #00000059}.msg-group:hover .msg-actions{display:flex}.msg-action-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.msg-action-btn:hover{color:var(--text-normal);background:#ffffff14}.msg-action-btn.danger:hover{color:var(--red);background:#f23f4324}.msg-edit-form{flex-direction:column;gap:.4rem;max-width:480px;display:flex}.msg-edit-form textarea{resize:none;border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text-normal);outline:none;padding:.5rem .6rem;font-family:inherit;font-size:.94rem;line-height:1.45}.msg-edit-actions{gap:.4rem;display:flex}.msg-edit-btn{border-radius:var(--radius-sm);background:var(--bg-elevated);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex}.msg-edit-btn:hover{color:var(--text-normal);background:#ffffff14}.attachment{margin-top:.3rem;display:block}.attachment-image{border-radius:var(--radius-md);border:1px solid var(--divider);max-width:320px;display:inline-block;overflow:hidden}.attachment-image img{object-fit:contain;background:var(--bg-tertiary);max-width:100%;max-height:320px;display:block}.attachment-video{border-radius:var(--radius-md);background:#000;max-width:360px;max-height:320px}.attachment-file,.attachment-broken{border-radius:var(--radius-md);border:1px solid var(--divider);background:var(--bg-elevated);max-width:320px;color:var(--text-normal);align-items:center;gap:.6rem;padding:.6rem .8rem;text-decoration:none;display:flex}.attachment-file:hover{border-color:var(--brand)}.attachment-file svg{color:var(--text-faint);flex:none}.attachment-file-info{flex-direction:column;min-width:0;display:flex}.attachment-file-name{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.attachment-file-size{color:var(--text-faint);font-size:.72rem}.attachment-broken{color:var(--text-faint);font-size:.85rem;font-style:italic}.msg-group.grouped .msg-time-inline{color:var(--text-faint);margin-right:.5rem;font-size:.65rem;display:none}.msg-group.grouped:hover .msg-time-inline{display:inline}.presence-line{color:var(--text-faint);margin-top:.35rem;padding:.2rem .4rem;font-size:.78rem;font-style:italic}.composer-wrap{flex:none;justify-content:center;padding:0 1rem 1rem;display:flex}.composer{background:var(--bg-elevated);border:1px solid var(--divider);border-radius:var(--radius-md);align-items:flex-end;gap:.5rem;width:100%;max-width:640px;padding:.4rem .4rem .4rem .9rem;display:flex}.composer textarea{min-width:0;color:var(--text-normal);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:160px;padding:.25rem 0;font-family:inherit;font-size:.95rem;line-height:1.4;overflow-y:auto}.composer textarea::placeholder{color:var(--text-faint)}.composer button{background:linear-gradient(135deg, var(--brand-2), var(--brand));color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;flex:none;padding:.55rem .9rem;font-size:.85rem;font-weight:600;transition:filter .15s}.composer .composer-attach-btn{width:36px;height:36px;color:var(--text-muted);background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.composer .composer-attach-btn:hover:not(:disabled){color:var(--text-normal);filter:none}.composer .composer-attach-btn:disabled{opacity:.5;cursor:default}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.composer button:hover:not(:disabled){filter:brightness(1.08)}.composer button:disabled{opacity:.5;cursor:default}.call-bar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--divider);background:#0a0a0cb8;border-radius:999px;align-items:center;gap:.6rem;padding:.55rem;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000080}.icon-btn.round{background:#ffffff0f;border-radius:50%;justify-content:center;width:44px;height:44px;padding:0}.icon-btn.round:hover{background:#ffffff1f}.icon-btn.round.danger{background:#f23f4329}.icon-btn.round.danger:hover{background:#f23f4342}.status{color:var(--text-faint);margin-left:.5rem;font-size:.72rem}.status.ok{color:var(--green)}.messages::-webkit-scrollbar{width:8px}.stage::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-thumb{background:var(--bg-floating);border-radius:4px}.stage::-webkit-scrollbar-thumb{background:var(--bg-floating);border-radius:4px}
