html{background-color:#0f0b18;text-align:center;color:#fff}body{margin:0;color:#fff;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local(""),url(/assets/nunito-v16-latin-regular.06f3af3f.woff2) format("woff2")}#app{height:100vh;text-align:center}:root{--bg: #0f0b18;--bg-elevated: #151021;--surface: #1b1429;--surface-raised: #241a37;--surface-hover: #2c2142;--primary: #7c3aed;--primary-hover: #6d28d9;--primary-soft: rgba(139, 92, 246, .35);--primary-glow: rgba(139, 92, 246, .45);--accent: #c4b5fd;--text: #ece6f7;--text-muted: rgba(236, 230, 247, .62);--border: rgba(196, 181, 253, .14);--border-strong: rgba(196, 181, 253, .26);--danger: #e5484d;--danger-soft: rgba(229, 72, 77, .16);--success: #3fb950;--warning: #f5a524;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .55);--font: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Inter", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}#App{height:100vh;color:var(--text);font-family:var(--font);display:flex;flex-direction:column;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}.error-banner{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:2000;max-width:min(640px,calc(100vw - 32px));background:rgba(60,18,26,.96);border:1px solid rgba(229,72,77,.5);color:#ffd7d9;padding:10px 16px;border-radius:var(--radius);box-shadow:var(--shadow);font-size:14px;cursor:pointer;animation:pop-in .18s ease-out}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-6px)}}.screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px}.home-actions,.actions{display:flex;gap:12px}.create-lobby-screen{justify-content:flex-start;overflow-y:auto;max-height:100%;width:min(420px,100%);align-self:center}.settings-accordion{width:100%;border-top:1px solid rgba(255,255,255,.08)}.settings-accordion:first-of-type{border-top:none}.settings-accordion summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;font-size:14px}.settings-accordion summary::-webkit-details-marker{display:none}.settings-accordion summary::marker{content:""}.accordion-title{display:inline-flex;align-items:center}.accordion-title:before{content:"\25b8";display:inline-block;margin-right:8px;opacity:.6;transition:transform .15s ease}.settings-accordion[open] .accordion-title:before{transform:rotate(90deg)}.accordion-state{font-size:12px;opacity:.55;white-space:nowrap}.accordion-state.on{opacity:.9;color:#7fd08a}.settings-accordion-body{display:flex;flex-direction:column;gap:10px;padding:0 2px 14px}.connecting-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:#fffc;border-radius:50%;animation:connecting-spin .8s linear infinite}@keyframes connecting-spin{to{transform:rotate(360deg)}}input,textarea,select{font-family:inherit}input,textarea{background:rgba(255,255,255,.05);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:inherit;padding:10px 13px;width:320px;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input::placeholder,textarea::placeholder{color:#ece6f766}input:focus,textarea:focus{outline:none;border-color:var(--accent);background:rgba(255,255,255,.07);box-shadow:0 0 0 3px #8b5cf640}select{background:rgba(255,255,255,.06);color:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px}select option{background:var(--surface)}input[type=range]{accent-color:var(--accent);padding:0;border:none;background:transparent;box-shadow:none}input[type=checkbox]{width:auto;accent-color:var(--primary)}textarea{height:80px;resize:vertical}button{border:none;border-radius:var(--radius-sm);padding:9px 18px;cursor:pointer;background:linear-gradient(180deg,#8b5cf6,var(--primary));color:#fff;font-family:inherit;font-size:14px;font-weight:600;box-shadow:0 1px #ffffff1f inset,0 4px 14px #7c3aed40;transition:filter .15s ease,transform .08s ease,background .15s ease,box-shadow .15s ease}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.5;cursor:default}.error{color:#ff8080}.hint{color:var(--text-muted);font-size:13px}.address-inputs{display:flex;gap:8px}.address-inputs input:first-child{flex:2;width:auto}.address-inputs input:last-child{flex:1;width:auto}.leave-button{background:var(--danger);box-shadow:none}.settings-button{background:rgba(255,255,255,.07);border:1px solid var(--border);box-shadow:none;font-weight:500}.settings-button:hover:not(:disabled){background:rgba(255,255,255,.11);filter:none}.icon-button{background:transparent;box-shadow:none;padding:6px;border-radius:var(--radius-sm);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center}.icon-button:hover:not(:disabled){background:rgba(255,255,255,.08);color:var(--text);filter:none}.join-mode-tabs{display:flex;gap:4px;padding:3px;border-radius:var(--radius-sm);background:rgba(255,255,255,.05)}.join-mode-tabs button{flex:1;background:transparent;box-shadow:none;color:var(--text-muted);font-weight:500}.join-mode-tabs button.active{background:var(--primary);color:#fff}.settings-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);padding:20px;width:min(480px,90vw);max-height:85vh;overflow-y:auto}.settings-section{padding:14px 0;border-top:1px solid rgba(255,255,255,.08)}.settings-section:first-of-type{border-top:none;padding-top:4px}.settings-subgroup{display:flex;flex-direction:column;gap:12px;margin-top:14px;padding-left:2px;transition:opacity .15s ease}.settings-subgroup.disabled{opacity:.4;pointer-events:none}.settings-subgroup-input{margin-top:10px;width:100%;padding:6px 10px;font-size:13px;background:rgba(255,255,255,.06)}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field.row{flex-direction:row;align-items:center;justify-content:space-between}.settings-field-label{font-size:12px;opacity:.75}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.switch-row.disabled{opacity:.5;pointer-events:none}.switch-label{font-size:14px}.switch{position:relative;display:inline-flex;flex-shrink:0}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:40px;height:22px;border-radius:999px;background:rgba(255,255,255,.18);display:inline-block;position:relative;transition:background .15s ease}.switch input:checked+.switch-track{background:var(--primary)}.switch input:focus-visible+.switch-track{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:white;transition:transform .15s ease}.switch input:checked+.switch-track .switch-thumb{transform:translate(18px)}.segmented-control{display:flex;background:rgba(255,255,255,.06);border-radius:8px;padding:3px;gap:2px}.segmented-control.disabled{pointer-events:none}.segmented-option{flex:1;background:transparent;color:#ffffffb3;font-size:12px;padding:6px 8px;border-radius:6px}.segmented-option:hover{background:rgba(255,255,255,.08)}.segmented-option.active{background:var(--primary);color:#fff}.stepper{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border-radius:8px;padding:4px}.stepper-button{background:rgba(255,255,255,.1);width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;border-radius:6px}.stepper-value{min-width:72px;text-align:center;font-size:13px}.error-boundary-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100vh;padding:24px;text-align:center}.screen-watchers-badge{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.65);color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;z-index:5;pointer-events:none}.modal-backdrop{position:fixed;inset:0;background:rgba(6,4,12,.62);backdrop-filter:blur(4px);animation:fade-in .15s ease-out;display:flex;align-items:center;justify-content:center;z-index:100}@keyframes fade-in{0%{opacity:0}}.share-picker{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);padding:20px;width:min(600px,90vw);max-height:80vh;overflow-y:auto}.share-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.share-picker-settings{display:flex;gap:16px;margin-bottom:10px}.share-picker-settings label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.8}.active-share-controls{display:flex;flex-direction:column;gap:6px}.share-live-settings{display:flex;gap:6px}.share-live-settings select{flex:1;font-size:12px;padding:4px 6px}.modal-close{background:transparent;padding:4px 8px}.share-source-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:12px}.share-source-card{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:rgba(255,255,255,.06);padding:6px;border-radius:6px;text-align:left;font-size:12px}.share-source-card:hover{background:rgba(255,255,255,.14)}.share-source-card img,.share-source-placeholder{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:4px;background:rgba(0,0,0,.3)}.share-source-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-share-frame video.mirrored{transform:scaleX(-1)}.ptt-popover{padding:10px;gap:10px;min-width:220px}.ptt-key-button{background:rgba(255,255,255,.1);font-size:13px;padding:8px 10px;border-radius:6px}.ptt-key-button.recording{background:var(--primary-soft)}.ptt-hint{margin:0;font-size:11px}.room-list{list-style:none;padding:0;margin:0;width:min(420px,90vw);display:flex;flex-direction:column;gap:8px}.room-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.06);border-radius:6px;padding:10px 14px}.room-list-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.room-list-host{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-list-participants{font-size:12px;opacity:.7}.quick-join-modal{display:flex;flex-direction:column;gap:12px;width:min(360px,90vw)}.quick-join-modal input{width:100%}.voice-device-dropdown{min-width:200px;background:var(--surface);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px;box-shadow:0 4px 16px #0006;z-index:1000;display:flex;flex-direction:column;gap:2px}.voice-device-option{background:transparent;text-align:left;padding:6px 8px;border-radius:4px;font-size:13px;color:inherit}.voice-device-option:hover{background:rgba(255,255,255,.1)}.voice-device-option.selected{background:var(--primary-soft);font-weight:700}.voice-device-empty{padding:6px 8px;font-size:13px;opacity:.6}.stream-stats-overlay{position:absolute;top:10px;right:10px;z-index:5;pointer-events:none;min-width:224px;padding:8px 10px;border-radius:6px;background:rgba(0,0,0,.62);border:1px solid rgba(255,255,255,.12);color:#e7e7ea;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:11px;line-height:1.5;text-shadow:0 1px 2px rgba(0,0,0,.9)}.stream-stats-title{font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;opacity:.65;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stream-stats-row{display:flex;justify-content:space-between;gap:14px;white-space:nowrap}.stream-stats-label{opacity:.6}.stream-stats-value{font-variant-numeric:tabular-nums}.stream-stats-row.warn .stream-stats-value{color:#fc6}.stream-stats-row.bad .stream-stats-value{color:#ff7b72;font-weight:600}.stream-stats-sep{height:1px;margin:5px 0;background:rgba(255,255,255,.14)}.app-version{position:absolute;bottom:12px;right:16px;font-size:11px;font-variant-numeric:tabular-nums;opacity:.45;letter-spacing:.03em}.home-screen{position:relative}.app-settings-screen{justify-content:flex-start;overflow-y:auto;max-height:100%;width:min(480px,100%);align-self:center}.settings-accordion-group>.settings-accordion-body{display:flex;flex-direction:column;gap:10px}.settings-accordion-group>.settings-accordion-body input[type=text],.settings-accordion-group>.settings-accordion-body input:not([type]){width:100%}.app-settings-screen .settings-accordion-body{align-items:center;gap:12px;padding:0 2px 18px}.app-settings-screen .settings-accordion:first-of-type{border-top:1px solid rgba(255,255,255,.08)}.app-settings-screen .settings-field.row{width:min(320px,100%);gap:12px}.app-settings-screen input[type=range]{flex:1;width:auto;padding:0;accent-color:var(--accent)}.app-settings-screen .settings-field.row .settings-field-label{min-width:34px;font-variant-numeric:tabular-nums}.toast{position:fixed;right:18px;bottom:18px;z-index:50;padding:9px 14px;border-radius:6px;background:rgba(27,20,41,.96);border:1px solid rgba(255,255,255,.16);color:var(--text);font-size:12px;box-shadow:0 6px 18px #0006;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease}.toast.visible{opacity:1;transform:translateY(0)}.available-rooms-screen{justify-content:flex-start;overflow-y:auto;max-height:100%;width:min(480px,100%);align-self:center}.rooms-section-title{margin:6px 0 0;font-size:14px}.available-rooms-screen .room-list,.manual-join{width:min(420px,100%)}.manual-join textarea{width:100%;min-height:70px}.manual-join .address-inputs input{min-width:0}.create-lobby-screen,.available-rooms-screen,.app-settings-screen{justify-content:safe center}.personal-settings-modal{background:var(--surface);border-radius:8px;width:min(560px,92vw);max-height:88vh;display:flex;overflow:hidden}.personal-settings-modal .screen{max-height:88vh;width:100%}.share-picker-audio{display:flex;flex-direction:row;align-items:center;gap:.4rem}.login-screen{justify-content:safe center;overflow-y:auto;max-height:100%;width:min(360px,100%);align-self:center;padding-block:32px}.login-screen input,.login-screen .switch-row{width:100%}.login-screen .actions{width:100%;margin-top:4px}.login-screen .actions button{flex:1}.download-corner{position:fixed;top:12px;right:16px;z-index:20;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);color:var(--accent);text-decoration:none;font-size:12px;opacity:.7;transition:opacity .15s ease,background .15s ease}.download-corner:hover{opacity:1;background:var(--primary-soft)}.brand{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:8px}.brand{position:relative;isolation:isolate}.brand:before{content:"";position:absolute;left:50%;top:40%;width:260px;height:200px;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(139,92,246,.22),rgba(139,92,246,0));pointer-events:none;z-index:-1}.brand-name{margin:0;font-size:34px;font-weight:800;letter-spacing:.3em;padding-left:.3em;background:linear-gradient(180deg,#f3edff 0%,var(--accent) 60%,#a78bfa 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.login-brand .brand-name{font-size:26px}.changelog-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;width:min(520px,92vw);max-height:84vh;display:flex;flex-direction:column;gap:12px;text-align:left;box-shadow:0 16px 48px #00000080}.changelog-header{display:flex;align-items:center;gap:12px}.changelog-header h3{flex:1;margin:0;font-size:18px}.changelog-body{overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px}.changelog-entry{padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.03)}.changelog-entry.latest{background:var(--surface-raised);border:1px solid var(--primary-soft)}.changelog-entry-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:14px}.changelog-version{font-size:12px;font-variant-numeric:tabular-nums;color:var(--accent)}.changelog-date{margin-left:auto;font-size:11px;opacity:.5}.changelog-entry ul{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.55}.changelog-entry li+li{margin-top:3px}.changelog-modal .actions{justify-content:flex-end}.easter-egg{position:absolute;bottom:12px;left:16px;margin:0;font-size:11px;font-style:italic;color:#15101f;cursor:default;transition:color 1.2s ease .4s,text-shadow 1.2s ease .4s}.easter-egg:hover{color:#a78bfa;text-shadow:0 0 12px rgba(139,92,246,.6)}.easter-egg::selection{color:#f3edff;background:var(--primary)}.admin-app{min-height:100vh;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;text-align:left;display:flex;flex-direction:column}.admin-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:10px 24px;background:rgba(17,12,27,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.admin-brand{display:flex;align-items:center;gap:10px}.admin-brand .brand-name{font-size:18px;letter-spacing:.2em;padding-left:0}.admin-brand-sub{font-size:13px;opacity:.6}.admin-tabs{display:flex;gap:4px;flex:1}.admin-tab{background:transparent;color:#ffffffb3;padding:8px 14px;border-radius:6px}.admin-tab:hover{background:rgba(255,255,255,.06)}.admin-tab.active{background:var(--primary-soft);color:#fff}.admin-main{width:min(1100px,100%);margin:0 auto;padding:24px}.admin-section{display:flex;flex-direction:column;gap:14px}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-section-head h2{margin:0;font-size:20px}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px}.admin-form h3{margin:0 0 12px;font-size:15px}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}.admin-field{display:flex;flex-direction:column;gap:5px;font-size:12px}.admin-field span{opacity:.7}.admin-field input{width:100%}.admin-form .actions,.admin-dialog .actions{justify-content:flex-end}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;font-weight:600;font-size:12px;opacity:.6;padding:10px 12px;background:var(--surface);white-space:nowrap}.admin-table td{padding:10px 12px;border-top:1px solid var(--border);vertical-align:middle}.admin-table tr.blocked td:not(.admin-row-actions){opacity:.55}.admin-table .num{font-variant-numeric:tabular-nums;white-space:nowrap}.admin-table code{font-size:13px;color:var(--accent)}.admin-row-actions{text-align:right;white-space:nowrap}.admin-row-actions button{margin-left:6px;padding:5px 10px;font-size:13px}.admin-danger-text{color:#ff9a9a}.admin-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.08);white-space:nowrap}.admin-badge.ok{background:rgba(63,185,80,.16);color:#7fd08a}.admin-badge.danger{background:rgba(224,82,82,.18);color:#ff9a9a}.admin-flags{display:flex;gap:6px;align-items:center}.admin-dialog{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;width:min(440px,92vw);text-align:left;display:flex;flex-direction:column;gap:12px;box-shadow:0 16px 48px #00000080}.admin-dialog h3,.admin-dialog p{margin:0}.admin-dialog p{font-size:14px;line-height:1.5;opacity:.85}.admin-log-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-log-controls input:not([type="checkbox"]){width:240px}.admin-log-controls select{padding:7px 8px;background:rgba(255,255,255,.08);color:inherit;border:1px solid rgba(255,255,255,.2);border-radius:4px;font-size:14px}.admin-log-controls option{background:var(--surface)}.admin-follow{display:flex;align-items:center;gap:6px;font-size:13px}.admin-follow input{width:auto}.admin-log-output{margin:0;height:calc(100vh - 220px);min-height:300px;overflow:auto;background:#0b0812;border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre}.modal-close,.segmented-option,.stepper-button,.voice-device-option,.ptt-key-button,.share-source-card,.screen-share-placeholder,.tile-icon-button,.participant-row.clickable,.control-button,.control-chevron,.chat-send,.admin-tab,.copy-code-button{box-shadow:none}.modal-close{background:transparent;color:var(--text-muted);padding:6px 8px}.modal-close:hover:not(:disabled){background:rgba(255,255,255,.08);color:var(--text);filter:none}.segmented-control{background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:var(--radius-sm)}.segmented-option{font-weight:500;color:var(--text-muted)}.segmented-option.active{background:var(--primary);box-shadow:0 2px 10px #7c3aed59}.stepper-button{background:rgba(255,255,255,.08);font-weight:500}.switch input:checked+.switch-track{background:var(--primary);box-shadow:0 0 0 1px #c4b5fd4d inset}.share-source-card{background:rgba(255,255,255,.04);border:1px solid var(--border);color:inherit;font-weight:500;padding:8px;border-radius:var(--radius)}.share-source-card:hover:not(:disabled){background:var(--surface-hover);border-color:var(--primary-soft);filter:none}.share-source-card img,.share-source-placeholder{border-radius:var(--radius-sm)}.voice-device-dropdown,.popover{background:rgba(27,20,41,.98);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);backdrop-filter:blur(12px);padding:6px}.voice-device-option{font-weight:400;border-radius:var(--radius-sm);padding:8px 10px}.voice-device-option.selected{background:var(--primary-soft);font-weight:600}.popover{position:fixed;z-index:1000;min-width:200px;display:flex;flex-direction:column;gap:10px;padding:12px;text-align:left;animation:fade-in .12s ease-out}.popover-field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-muted)}.popover-field select{color:var(--text)}.personal-settings-modal{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.toast{border-radius:var(--radius);background:rgba(27,20,41,.97);border-color:var(--border-strong)}.settings-accordion{border-top-color:var(--border)}.settings-accordion summary{border-radius:var(--radius-sm);padding:12px 8px;font-weight:600}.settings-accordion summary:hover{background:rgba(255,255,255,.03)}.create-lobby-screen,.available-rooms-screen,.app-settings-screen:not(.personal-settings-modal .app-settings-screen){flex:0 1 auto;margin:auto;max-height:calc(100% - 48px);background:linear-gradient(180deg,rgba(36,26,55,.72),rgba(27,20,41,.72));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:28px 32px}.create-lobby-screen h2,.available-rooms-screen h2,.app-settings-screen h2{margin:0 0 6px;font-size:22px;letter-spacing:-.01em}.room-list-item{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;transition:border-color .15s ease,background .15s ease}.room-list-item:hover{background:rgba(255,255,255,.06);border-color:var(--primary-soft)}#App:has(.home-screen){background:radial-gradient(ellipse 60% 50% at 50% 38%,rgba(124,58,237,.16),transparent 70%)}.home-actions button{min-width:170px;padding:11px 20px}.connecting-spinner{border-color:#c4b5fd33;border-top-color:var(--accent)}.lobby-screen{flex:1;display:grid;grid-template-columns:272px minmax(0,1fr);min-height:0;height:100%;text-align:left}.lobby-screen.chat-open{grid-template-columns:272px minmax(0,1fr) 320px}.lobby-sidebar{background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:14px;padding:18px 14px;min-height:0;overflow-y:auto}.room-header{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:0 4px}.lobby-room-name{margin:0;font-size:17px;font-weight:700;overflow-wrap:anywhere;letter-spacing:-.01em}.room-kind-badge{font-size:11px;font-weight:600;letter-spacing:.02em;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--border);color:var(--text-muted)}.room-kind-badge.relay{color:var(--accent);border-color:var(--primary-soft)}.version-mismatch{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid rgba(245,165,36,.4);background:rgba(245,165,36,.08);font-size:12px;line-height:1.5}.version-mismatch strong{display:block;color:var(--warning)}.lobby-code-box{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:var(--radius);background:rgba(124,58,237,.08);border:1px solid var(--primary-soft)}.lobby-code-box .hint,.lobby-port{margin:0;font-size:12px}.lobby-port{color:var(--text-muted)}.copy-code-button{width:100%;background:var(--primary)}.sidebar-section-title{display:flex;align-items:center;gap:6px;padding:4px 6px 0;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.sidebar-section-title .count{margin-left:auto;font-variant-numeric:tabular-nums}.participant-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.participant{border-radius:var(--radius-sm)}.participant-row{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border-radius:var(--radius-sm);background:transparent;color:inherit;font-weight:500;text-align:left}.participant-row.clickable:hover:not(:disabled),.participant.expanded .participant-row{background:rgba(255,255,255,.05);filter:none}.participant-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.participant-you{margin-left:6px;font-size:11px;color:var(--text-muted);font-weight:500}.participant-host{margin-left:6px;color:var(--warning);vertical-align:-1px}.status-badges{display:inline-flex;gap:4px;color:var(--text-muted)}.status-badge{display:inline-flex}.status-badge.off{color:#ff8c8f}.status-badge.sharing{color:var(--accent)}.latency-badge{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.participant-options{display:flex;flex-direction:column;gap:6px;padding:6px 10px 10px 50px}.participant-volume{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted)}.participant-volume-value{font-variant-numeric:tabular-nums}.volume-slider{width:100%}.host-controls{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.host-control-button{flex:1;padding:5px 8px;font-size:12px;font-weight:500;background:rgba(255,255,255,.07);border:1px solid var(--border);box-shadow:none}.host-control-button.remove{color:#ff9a9d;border-color:#e5484d59;background:var(--danger-soft)}.avatar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.25);box-shadow:0 0 0 2px transparent;transition:box-shadow .15s ease;user-select:none}.avatar.speaking{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--success),0 0 14px #3fb9508c}.lobby-main{display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px 12px 0;gap:0}.stage{position:relative;flex:1;min-height:0;border-radius:var(--radius-lg);background:radial-gradient(ellipse 70% 60% at 50% 45%,rgba(124,58,237,.07),transparent 70%),rgba(255,255,255,.015);border:1px solid rgba(196,181,253,.06);overflow:hidden}.stage-flow{overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:12px}.stage-empty{display:flex;align-items:center;justify-content:center;overflow-y:auto}.stage-people{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:16px;padding:24px;max-width:960px}.person-card{position:relative;width:168px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:var(--radius-lg);background:rgba(255,255,255,.035);border:1px solid var(--border);transition:border-color .15s ease,background .15s ease}.person-card.speaking{border-color:#3fb9508c;background:rgba(63,185,80,.05)}.person-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.person-muted{position:absolute;top:10px;right:10px;display:inline-flex;padding:4px;border-radius:50%;background:var(--danger-soft);color:#ff8c8f}.stage-tile{position:absolute;display:flex;flex-direction:column;background:#07050c;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:left .22s cubic-bezier(.2,.8,.2,1),top .22s cubic-bezier(.2,.8,.2,1),width .22s cubic-bezier(.2,.8,.2,1),height .22s cubic-bezier(.2,.8,.2,1),border-color .15s ease,box-shadow .15s ease}.stage-live .stage-tile{transition:border-color .15s ease,box-shadow .15s ease}.stage-tile.active{border-color:var(--primary-soft);box-shadow:var(--shadow),0 0 0 1px #8b5cf640}.stage-flow .stage-tile{position:relative;width:100%;min-height:240px;aspect-ratio:16 / 10;flex-shrink:0}.screen-share-tile-header{flex-shrink:0;height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 6px 0 10px;background:linear-gradient(180deg,rgba(36,26,55,.95),rgba(27,20,41,.95));border-bottom:1px solid var(--border);user-select:none}.screen-share-tile-header.movable{cursor:grab}body.stage-dragging,body.stage-dragging *{cursor:grabbing!important}body.stage-dragging,body.stage-resizing{user-select:none}.tile-title{display:flex;align-items:center;gap:8px;min-width:0}.tile-name{font-size:13px;font-weight:600;white-space:nowrap}.tile-subtitle{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.screen-share-tile-actions{display:flex;gap:2px;flex-shrink:0}.tile-icon-button{background:transparent;color:var(--text-muted);padding:6px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center}.tile-icon-button:hover:not(:disabled){background:rgba(255,255,255,.08);color:var(--text);filter:none}.tile-icon-button.off{color:#ff8c8f}.screen-share-frame{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}.screen-share-frame img,.screen-share-frame video,.screen-share-frame canvas{width:100%;height:100%;object-fit:contain;display:block}.screen-share-placeholder{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:0;background:radial-gradient(ellipse at 50% 40%,rgba(124,58,237,.14),transparent 70%),#0b0812;color:var(--text);font-weight:500;padding:16px}.screen-share-placeholder:hover:not(:disabled){filter:none;background:radial-gradient(ellipse at 50% 40%,rgba(124,58,237,.24),transparent 70%),#0d0a16}.placeholder-title{font-size:14px;text-align:center}.placeholder-action{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--primary);color:#fff;font-size:13px;font-weight:600;box-shadow:0 4px 14px #7c3aed59}.tile-audio-panel{display:flex;align-items:center;gap:8px;padding:6px 10px;background:rgba(27,20,41,.95);border-bottom:1px solid var(--border)}.tile-audio-panel input[type=range]{flex:1;width:auto}.tile-audio-value{font-size:12px;color:var(--text-muted);min-width:38px;text-align:right;font-variant-numeric:tabular-nums}.tile-audio-mode{margin:0;padding:5px 10px;font-size:12px;color:var(--text-muted);background:rgba(27,20,41,.9)}.tile-audio-mode.warn{color:var(--warning)}.screen-watchers-badge{left:10px;bottom:10px;background:rgba(15,11,24,.8);border:1px solid var(--border);border-radius:999px;padding:5px 12px;backdrop-filter:blur(6px)}.resize-handle{position:absolute;z-index:4}.resize-n,.resize-s{left:12px;right:12px;height:8px;cursor:ns-resize}.resize-n{top:-3px}.resize-s{bottom:-3px}.resize-e,.resize-w{top:12px;bottom:12px;width:8px;cursor:ew-resize}.resize-e{right:-3px}.resize-w{left:-3px}.resize-ne,.resize-nw,.resize-se,.resize-sw{width:16px;height:16px}.resize-ne{top:-3px;right:-3px;cursor:nesw-resize}.resize-sw{bottom:-3px;left:-3px;cursor:nesw-resize}.resize-nw{top:-3px;left:-3px;cursor:nwse-resize}.resize-se{bottom:-3px;right:-3px;cursor:nwse-resize}.resize-se:after{content:"";position:absolute;right:6px;bottom:6px;width:8px;height:8px;border-right:2px solid rgba(196,181,253,.45);border-bottom:2px solid rgba(196,181,253,.45);border-bottom-right-radius:2px;opacity:0;transition:opacity .15s ease}.stage-tile:hover .resize-se:after{opacity:1}.stage-tile.maximized{border-radius:0;border-color:transparent}.screen-share-tile.fullscreen,.screen-share-tile:fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;border:none;border-radius:0;background:black}.screen-share-tile.fullscreen .screen-share-tile-header{position:absolute;top:0;left:0;right:0;z-index:6;border-bottom:none;background:linear-gradient(rgba(0,0,0,.65),rgba(0,0,0,0));opacity:0;transition:opacity .2s ease}.screen-share-tile.fullscreen:hover .screen-share-tile-header{opacity:1}.screen-share-tile.fullscreen .screen-share-frame{position:absolute;inset:0}.control-bar{flex-shrink:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:12px 8px 14px}.control-divider{width:1px;height:28px;background:var(--border);margin:0 4px}.control-button{position:relative;width:46px;height:46px;padding:0;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.07);border:1px solid var(--border);color:var(--text)}.control-button:hover:not(:disabled){background:rgba(255,255,255,.12);filter:none}.control-button.toggled{background:var(--primary-soft);border-color:#c4b5fd66}.control-button.active-share{background:rgba(124,58,237,.9);border-color:transparent;color:#fff;box-shadow:0 0 0 3px #8b5cf640}.control-button.leave{width:62px;background:var(--danger);border-color:transparent;color:#fff}.control-button.leave:hover:not(:disabled){background:#f2555a}.control-badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:19px;text-align:center;box-shadow:0 0 0 2px var(--bg)}.voice-controls{display:flex;gap:8px}.voice-control-group,.control-group{position:relative;display:flex;align-items:stretch;height:46px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid var(--border);overflow:hidden}.control-group .control-button{border:none;border-radius:0}.voice-icon-button,.voice-chevron-button,.control-chevron{background:transparent;box-shadow:none;border-radius:0;color:var(--text);display:flex;align-items:center;justify-content:center}.voice-icon-button{width:46px;padding:0}.voice-chevron-button,.control-chevron{width:24px;padding:0;color:var(--text-muted);border-left:1px solid var(--border)}.voice-icon-button:hover:not(:disabled),.voice-chevron-button:hover:not(:disabled),.control-chevron:hover:not(:disabled){background:rgba(255,255,255,.08);filter:none}.voice-icon-button.muted{background:var(--danger-soft);color:#ff8c8f}.voice-icon-button.locked{cursor:not-allowed}.voice-icon-button.ptt-active{color:var(--accent)}.voice-icon-button:disabled{opacity:1}.chat-panel{display:flex;flex-direction:column;min-height:0;background:var(--bg-elevated);border-left:1px solid var(--border);animation:slide-in .18s ease-out}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 10px 18px;font-weight:700;font-size:15px;border-bottom:1px solid var(--border)}.chat-message-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:12px 14px}.chat-message-list.empty{align-items:center;justify-content:center}.chat-message{display:flex;gap:10px;padding:6px 4px 2px}.chat-message.grouped{padding-top:0}.chat-avatar-spacer{width:30px;flex-shrink:0}.chat-message-body{min-width:0;flex:1}.chat-message-meta{display:flex;align-items:baseline;gap:8px}.chat-message-author{font-size:13px;font-weight:700}.chat-message.self .chat-message-author{color:var(--accent)}.chat-message-time{font-size:11px;color:var(--text-muted)}.chat-message-text{font-size:14px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-input input{flex:1;width:auto;border-radius:999px;padding:10px 16px}.chat-send{width:40px;height:40px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}@media (max-width: 1100px){.lobby-screen,.lobby-screen.chat-open{grid-template-columns:232px minmax(0,1fr)}.chat-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,100vw);z-index:700;box-shadow:var(--shadow-lg)}}@media (max-width: 760px){.lobby-screen,.lobby-screen.chat-open{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.lobby-sidebar{max-height:34vh;border-right:none;border-bottom:1px solid var(--border)}.control-button,.voice-icon-button{width:42px}.control-button,.voice-control-group,.control-group{height:42px}}.subserver-pill{margin-top:6px;padding:4px 12px;border-radius:999px;border:1px solid var(--primary-soft);background:rgba(124,58,237,.1);color:var(--accent);font-size:13px;font-weight:600}.link-button{background:transparent;box-shadow:none;color:var(--text-muted);font-weight:500;font-size:13px;padding:6px 10px;text-decoration:underline;text-underline-offset:3px}.link-button:hover:not(:disabled){color:var(--text);filter:none}.login-notice{margin:0;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid rgba(245,165,36,.4);background:rgba(245,165,36,.08);color:#ffd99a;font-size:13px}.lobby-code-box{align-items:stretch}.lobby-code-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.lobby-short-id{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:19px;font-weight:700;letter-spacing:.08em;color:var(--text);text-align:center;padding:4px 0;user-select:all}.lobby-code-actions{display:flex;gap:6px}.lobby-code-actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;font-size:13px}.lobby-code-box .link-button{align-self:center;padding:2px 6px;font-size:12px}.lobby-screen.sidebar-closed{grid-template-columns:minmax(0,1fr)}.lobby-screen.sidebar-closed.chat-open{grid-template-columns:minmax(0,1fr) 320px}@media (max-width: 1100px){.lobby-screen.sidebar-closed,.lobby-screen.sidebar-closed.chat-open{grid-template-columns:minmax(0,1fr)}}@media (max-width: 760px){.lobby-screen.sidebar-closed,.lobby-screen.sidebar-closed.chat-open{grid-template-rows:minmax(0,1fr)}}.guest-room-card{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 16px;border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(36,26,55,.8),rgba(27,20,41,.8));border:1px solid var(--border)}.guest-invite{font-size:12px;color:var(--text-muted)}.guest-room-name{font-size:20px;letter-spacing:-.01em;overflow-wrap:anywhere}.guest-room-meta{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.guest-dot{opacity:.6}.guest-short-id{margin-top:4px;font-size:13px;letter-spacing:.08em;color:var(--accent)}.manual-join{display:flex;flex-direction:column;gap:10px}.manual-join-row{display:flex;gap:8px}.manual-join-row input{flex:1;width:auto}.short-id-input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.short-id-input::placeholder{letter-spacing:.08em}
