:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d10;--surface:#14171c;--surface-2:#1c2027;--surface-3:#262b34;--border:#2a3039;--text:#e9ecf1;--muted:#98a2b0;--accent:#ff6a1a;--accent-2:#ff8a45;--ok:#22c55e;--danger:#ef4444;--radius:14px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;font-size:clamp(15px,.35vw + 12px,26px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit;color:inherit}.hidden{display:none!important}.icon{flex:none;width:1.25em;height:1.25em}.logo{letter-spacing:.02em;-webkit-user-select:none;user-select:none;align-items:center;gap:.55em;font-size:1.35rem;display:flex}.logo-mark{background:linear-gradient(90deg, transparent 0 18%, #fff 18% 82%, transparent 82%) center / 100% .18em no-repeat, linear-gradient(135deg, var(--accent), #ff3d3d);border-radius:.35em;width:1.4em;height:1.4em;box-shadow:0 0 .9em #ff6a1a59}.logo-text{font-weight:400}.logo-text b{color:var(--accent);font-weight:800}label{color:var(--muted);gap:.35rem;font-size:.9rem;display:grid}input,select{border:1px solid var(--border);background:var(--bg);border-radius:10px;outline:none;width:100%;padding:.7rem .85rem;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent)}.btn{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:10px;padding:.75rem 1.1rem;font-weight:600;transition:background .15s,transform 50ms}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#160800}.btn-primary:hover{background:var(--accent-2)}.btn-quiet{color:var(--muted);background:0 0;border-color:#0000}.btn-small{padding:.45rem .8rem;font-size:.9rem}.icon-btn{width:2.4rem;height:2.4rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.form-error{color:#ff8b8b;min-height:1.2em;margin:0;font-size:.9rem}.form-note{color:var(--muted);margin:0;font-size:.85rem}.login{background:radial-gradient(60rem 30rem at 50% -10%,#ff6a1a1f,#0000 70%);place-items:center;min-height:100%;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1.1rem;width:min(24rem,100%);padding:2rem;display:grid;box-shadow:0 20px 60px #00000073}.login-card .logo{justify-content:center;margin-bottom:.4rem;font-size:1.8rem}.version{text-align:center;font-variant-numeric:tabular-nums}.get-app{justify-items:start;gap:.4rem;display:grid}.get-app[hidden]{display:none}.get-app .btn{color:inherit;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.login-card .get-app{text-align:center;border-top:1px solid var(--border);justify-items:center;padding-top:1rem}.home-main .get-app{max-width:40rem;margin-top:2.2rem}.home{flex-direction:column;min-height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:2;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem max(16px,2vw);display:flex;position:sticky;top:0}.brand{flex:none;align-items:center;gap:.75rem;display:flex}.version-tag{border:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}@media (max-width:560px){.version-tag{display:none}}.me{align-items:center;gap:.6rem;min-width:0;display:flex}.me-who{cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.6rem;min-width:0;padding:.2rem .6rem .2rem .2rem;display:flex}.me-who:hover{background:var(--surface-2)}.me-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.conn-dot{background:#d97706;border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 3px #d9770633}.conn-dot.up{background:var(--ok);box-shadow:0 0 0 3px #22c55e33}.home-main{width:100%;max-width:120rem;margin:0 auto;padding:1.6rem max(16px,2vw) 3rem}.home-main h1{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 1rem;font-size:1.15rem;font-weight:600}.notice{border-radius:var(--radius);background:#ff6a1a14;border:1px solid #ff6a1a4d;flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1.4rem;padding:.8rem 1rem;display:flex}.notice span{flex:14rem}.notice-actions{gap:.5rem;margin-left:auto;display:flex}.contacts{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:.9rem;display:grid}.empty{color:var(--muted)}.recent{margin-top:2.2rem}.recent-list{gap:.4rem;max-width:40rem;display:grid}.recent-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.8rem;padding:.55rem .8rem;display:flex}.recent-dir{color:var(--muted);display:grid}.recent-row.missed .recent-dir,.recent-row.missed .contact-status{color:#ff8b8b}.recent-text{flex:1;min-width:0}.recent-who{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.contact{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);align-items:center;gap:.9rem;padding:.9rem 1rem;transition:border-color .15s;display:flex}.contact.online:hover{border-color:#3a4250}.contact.offline{opacity:.55}.contact-avatar{position:relative}.presence{border:3px solid var(--surface);background:#4b5563;border-radius:50%;width:.8rem;height:.8rem;position:absolute;bottom:-1px;right:-1px}.online .presence{background:var(--ok)}.busy .presence{background:var(--accent)}.contact-text{flex:1;min-width:0}.contact-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.contact-status{color:var(--muted);font-size:.85rem}.call-btn{background:var(--ok);color:#04130a;cursor:pointer;border:none;border-radius:50%;place-items:center;width:2.8rem;height:2.8rem;transition:transform .1s,background .15s;display:grid}.call-btn:hover:not(:disabled){transform:scale(1.06)}.call-btn:disabled{background:var(--surface-3);color:var(--muted);cursor:default}.avatar{--hue:20;background:hsl(var(--hue) 55% 38%);width:2.8rem;height:2.8rem;color:hsl(var(--hue) 90% 92%);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.avatar-sm{width:2rem;height:2rem;font-size:.8rem}.avatar-xl{width:clamp(6rem,14vmin,16rem);height:clamp(6rem,14vmin,16rem);font-size:clamp(2rem,5vmin,6rem)}.incoming{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#050608d1;place-items:center;padding:16px;animation:.2s ease-out fade-in;display:grid;position:fixed;inset:0}.incoming-card{text-align:center;justify-items:center;gap:.4rem;display:grid}.ring-pulse{border-radius:50%;margin-bottom:1rem;animation:1.6s ease-out infinite pulse}.incoming-name{font-size:2rem;font-weight:700}.incoming-sub{color:var(--muted);margin-bottom:2rem}.incoming-actions{gap:3rem;display:flex}.audio-only{margin-top:1.2rem}.round-btn{cursor:pointer;border:none;border-radius:50%;place-items:center;width:4.5rem;height:4.5rem;transition:transform .1s;display:grid}.round-btn .icon{width:1.8rem;height:1.8rem}.round-btn:hover{transform:scale(1.07)}.round-btn.accept{background:var(--ok);color:#04130a}.round-btn.decline{background:var(--danger);color:#fff}.round-btn.decline .icon,.ctl-hangup .icon{transform:rotate(135deg)}@keyframes pulse{0%{box-shadow:0 0 #22c55e8c}to{box-shadow:0 0 0 2.5rem #22c55e00}}@keyframes fade-in{0%{opacity:0}}.call{z-index:20;background:#000;position:fixed;inset:0;overflow:hidden}.stage{display:flex;position:absolute;inset:0}.main{display:none}.stage.focus .main{flex:1;min-width:0;display:block;position:relative}.grid{flex-wrap:wrap;flex:1;place-content:center;gap:8px;min-width:0;padding:max(4.5rem,7vh) max(16px,1.5vw) max(6rem,10vh);display:flex}.grid .tile{width:var(--tile-w,320px);height:var(--tile-h,180px)}.grid.solo{padding:0}.grid.solo .tile{background:#000;border-radius:0;width:100%;height:100%}.grid.solo .tile video,.main .tile video{object-fit:contain}.grid.solo .tile-label{top:max(4.2rem,6.5vh);bottom:auto;left:max(16px,2vw)}.grid.solo .tile-name{display:none}.grid.solo .tile-label:has(.tile-muted.hidden){display:none}.stage.focus .grid{flex-flow:column;flex:0 0 clamp(10rem,18vw,30rem);place-content:stretch flex-start;padding:max(4.5rem,7vh) 12px calc(clamp(9rem,18vw,32rem)/1.77778 + max(6rem,9vh) + 16px);overflow-y:auto}.stage.focus .grid .tile{aspect-ratio:16/9;flex:none;width:100%;height:auto}.main .tile{background:#000;border-radius:0;width:100%;height:100%}.main .tile-label{bottom:max(6rem,10vh);left:max(16px,2vw)}@media (orientation:portrait){.stage.focus{flex-direction:column}.stage.focus .grid{flex-direction:row;flex:0 0 26vh;padding:8px 8px 7rem;overflow:auto hidden}.stage.focus .grid .tile{width:auto;height:100%}}.tile{background:#111318;border-radius:12px;position:relative;overflow:hidden}.tile.speaking:after{content:"";border:3px solid var(--ok);border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 18px #22c55e59}.tile video{object-fit:cover;background:#000;width:100%;height:100%;display:block}.tile-placeholder{background:radial-gradient(circle at 50% 40%,#1c2027,#0d0f13 70%);place-items:center;display:grid;position:absolute;inset:0}.avatar-tile{aspect-ratio:1;width:clamp(3rem,22%,14rem);height:auto;font-size:clamp(1rem,4.5vmin,5rem)}.tile-label{background:#0000008c;border-radius:8px;align-items:center;gap:.35rem;max-width:calc(100% - 16px);padding:.25rem .6rem;font-size:.85rem;font-weight:600;display:flex;position:absolute;bottom:8px;left:8px}.tile-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tile-muted{color:#ff8b8b;display:grid}.tile-muted .icon{width:1em;height:1em}.tile-status{color:#ffffffd9;letter-spacing:.02em;background:#00000059;place-items:end center;padding-bottom:18%;font-weight:600;display:grid;position:absolute;inset:0}.pip{aspect-ratio:16/9;object-fit:cover;background:#111;border:1px solid #ffffff1f;border-radius:12px;width:clamp(9rem,18vw,32rem);position:absolute;box-shadow:0 10px 30px #00000080}.pip-local{z-index:3;transition:bottom .25s;bottom:max(6rem,9vh);right:max(16px,1.5vw)}.mirrored{transform:scaleX(-1)}.call-top{pointer-events:none;background:linear-gradient(#0009,#0000);align-items:baseline;gap:1rem;padding:max(16px,1.5vw) max(16px,2vw) 2.5rem;transition:opacity .3s;display:flex;position:absolute;top:0;left:0;right:0}.call-peer{align-items:center;gap:.5rem;font-size:1.2rem;font-weight:600;display:flex}.call-status{color:#ffffffbf;font-variant-numeric:tabular-nums}.banner{color:#1a0d00;z-index:4;background:#d97706e6;border-radius:999px;padding:.55rem 1rem;font-weight:600;position:absolute;top:max(4.5rem,7vh);left:50%;transform:translate(-50%)}.stats{z-index:4;max-width:calc(100% - 32px);font:.78rem/1.55 var(--mono);color:#d6f5df;white-space:pre;background:#000000b8;border-radius:10px;margin:0;padding:.8rem 1rem;position:absolute;top:max(4.5rem,7vh);left:max(16px,1.5vw);overflow-x:auto}.controls{left:50%;bottom:max(16px, 2.5vh, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;background:#14171cd1;border:1px solid #ffffff14;border-radius:999px;gap:.6rem;max-width:calc(100% - 24px);padding:.6rem;transition:opacity .3s,transform .3s;display:flex;position:absolute;overflow-x:auto;transform:translate(-50%)}.ctl{background:var(--surface-3);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;width:3.2rem;height:3.2rem;transition:background .15s;display:grid}.ctl:hover{background:#343b47}.ctl.off{color:#111;background:#f1f3f6}.ctl.active{background:var(--accent);color:#160800}.ctl-hangup{background:var(--danger);color:#fff;border-radius:999px;width:4rem;position:sticky;right:0}.ctl-hangup:hover{background:#f05a5a}.call.idle{cursor:none}.call.idle .controls{opacity:0;pointer-events:none;transform:translate(-50%,1rem)}.call.idle .call-top{opacity:0}.call.idle .pip-local{bottom:max(16px,1.5vw)}@media (max-width:640px){.controls{gap:.35rem;padding:.45rem}.ctl{width:2.7rem;height:2.7rem}.ctl-hangup{width:3.4rem}.pip{aspect-ratio:3/4;width:30vw}.pip-local{bottom:5.5rem}.incoming-actions{gap:2rem}}@media (orientation:portrait){.call:has(.stage.focus) .pip-local{width:26vw;top:max(3.5rem,6vh);bottom:auto}}.preview{align-items:center;gap:.9rem;display:flex}.preview-video{aspect-ratio:16/9;object-fit:cover;background:#000;border-radius:10px;width:55%;transform:scaleX(-1)}.preview-side{flex:1;gap:.6rem;display:grid}.mic-meter{background:var(--surface-3);border-radius:999px;height:.5rem;overflow:hidden}.mic-bar{background:var(--ok);width:0;height:100%;transition:width 80ms linear}dialog.admin{width:min(46rem,100% - 32px)}.add-user{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:center;gap:.6rem;display:grid}.check{color:var(--text);align-items:center;gap:.5rem;display:flex}.check input{width:auto}.admin-list{gap:.5rem;display:grid}.admin-row{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .7rem;display:flex}.admin-who{flex:1;min-width:10rem}.admin-name{align-items:center;gap:.5rem;font-weight:600;display:flex}.admin-actions{flex-wrap:wrap;gap:.4rem;display:flex}.badge{color:var(--accent-2);background:#ff6a1a2e;border-radius:999px;padding:.05rem .45rem;font-size:.75rem;font-weight:600}.btn-danger:not(:disabled):hover{border-color:var(--danger);background:#4a1d1f}.secret{background:#22c55e1a;border:1px solid #22c55e80;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.4rem 0 .8rem;padding:.8rem 1rem;display:flex}.secret code{font:1rem var(--mono);-webkit-user-select:all;user-select:all}.invite-row{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.6rem .7rem;display:flex}.invite-row:hover:not(:disabled){border-color:var(--ok)}.invite-row:disabled{opacity:.5;cursor:default}.invite-name{flex:1;font-weight:600}.invite-status{color:var(--muted);font-size:.85rem}.toasts{z-index:50;pointer-events:none;gap:.5rem;width:min(30rem,100% - 32px);display:grid;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.toast{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;transition:opacity .3s;animation:.2s ease-out fade-in;box-shadow:0 10px 30px #0006}.toast-error{background:#2a1517;border-color:#ef444499}.toast.leaving{opacity:0}dialog.settings{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:min(34rem,100% - 32px);max-height:calc(100% - 32px);color:var(--text);padding:0 1.4rem 1.4rem;box-shadow:0 30px 80px #0009}dialog.settings::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}.settings-head{background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;padding:1rem 0 .5rem;display:flex;position:sticky;top:0}.settings-head h2{margin:0;font-size:1.3rem}.tabs{flex-basis:100%;gap:.4rem;padding-top:.6rem;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem .9rem;font-weight:600}.tab:hover{background:var(--surface-2);color:var(--text)}.tab[aria-selected=true]{background:var(--accent);color:#160800}dialog.settings section{border-top:1px solid var(--border);gap:.8rem;padding:1rem 0;display:grid}dialog.settings h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:.85rem}dialog.account{width:min(26rem,100% - 32px)}.account-who{align-items:center;gap:.8rem;padding:.5rem 0 1rem;display:flex}.account-who>div{min-width:0;display:grid}.pw-form{gap:.8rem;display:grid}.pw-form .btn,.notify-settings .btn{justify-self:start}
