:root{--bg:#fff;--surface:#f3f5f7;--fg:#1b1f24;--muted:#59636e;--border:#d5dae0;--accent:#1f6feb;--accent-fg:#fff;--mine-bg:#1f6feb;--mine-fg:#fff;--mine-sub:#fffc;--theirs-bg:#eef1f4;--error:#c62828;--ok:#1a7f37;--radius:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1117;--surface:#161b22;--fg:#e6edf3;--muted:#9198a1;--border:#30363d;--accent:#4493f8;--accent-fg:#0d1117;--mine-bg:#1f4f99;--mine-fg:#f0f6fc;--mine-sub:#f0f6fcbf;--theirs-bg:#1c2128;--error:#ff7b72;--ok:#3fb950}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0}body{-webkit-tap-highlight-color:transparent;min-height:100dvh}h1{margin:0 0 .25rem;font-size:1.5rem;line-height:1.2}h2{margin:1rem 0 0;font-size:1.1rem}p{margin:.25rem 0}.muted,.hint{color:var(--muted)}.hint{font-size:.9rem}.error{color:var(--error)}button,input,textarea{font:inherit;color:inherit;font-size:1rem}button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;touch-action:manipulation;min-height:44px;padding:.6rem 1rem}button:disabled{opacity:.5;cursor:default}button.primary{border-color:var(--accent);background:var(--accent);width:100%;color:var(--accent-fg);font-weight:600}button.ghost{color:var(--accent);background:0 0;border-color:#0000}button.icon{min-width:44px;color:var(--accent);background:0 0;border-color:#0000;place-items:center;padding:0;display:inline-grid}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=text],input[type=email],input[type=password]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;min-height:44px;padding:.6rem .75rem}input[aria-invalid=true]{border-color:var(--error)}.page{max-width:32rem;padding:calc(1.5rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(2rem + var(--safe-bottom)) calc(1rem + var(--safe-left));gap:1rem;margin:0 auto;display:grid}.page.center{text-align:center;align-content:center;min-height:100dvh}.page-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.stack{gap:1rem;display:grid}.field{border:0;gap:.35rem;min-width:0;margin:0;padding:0;display:grid}.field>label,.field>legend{margin-bottom:.35rem;padding:0;font-weight:600}.field:disabled{opacity:.6}.choice{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:.75rem;min-height:44px;padding:.5rem .75rem;display:flex}.choice:has(input:checked){border-color:var(--accent)}.choice input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none;margin:0}.choice-row{flex-wrap:wrap;gap:.5rem;display:flex}.choice-row .choice{flex:8rem}.cost{color:var(--muted);font-size:.85rem;display:block}.tag{background:var(--surface);color:var(--muted);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.75rem;font-weight:500}.inline-input{gap:.5rem;display:flex}.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}.inline-input input{flex:1;min-width:0}.inline-input button{flex:none}.row-actions{flex-wrap:wrap;gap:.5rem;display:flex}input.code-input{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.5rem}.ok{color:var(--ok)}button.danger{border-color:var(--error);background:var(--error);color:var(--bg);font-weight:600}.contacts{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}button.contact{text-align:left;gap:.15rem;width:100%;padding:.75rem 1rem;display:grid}.contact-name{font-weight:600}.contact-meta,.contact-note{color:var(--muted);font-size:.85rem}.contact-note{color:var(--error)}.invite,.account{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.confirm{gap:.5rem;display:grid}.clone{margin-top:.5rem}.enrol h2{margin-bottom:0;font-size:1rem}.enrol p{margin-top:0}.passage{border-radius:var(--radius);background:var(--surface);margin:0;padding:.75rem 1rem;font-size:1.1rem;line-height:1.5}.recording-status{align-items:center;gap:.75rem;display:flex}.timer{font-variant-numeric:tabular-nums;min-width:3.5rem;font-size:1.25rem}.level{background:var(--surface);border:1px solid var(--border);border-radius:.3rem;flex:1;height:.6rem;overflow:hidden}.level-bar{background:var(--ok);height:100%;transition:width .15s linear}.enrol audio{width:100%}.sticky-actions{padding:.75rem 0 var(--safe-bottom);background:var(--bg);position:sticky;bottom:0}.room{left:0;right:0;top:var(--vv-top,0px);height:var(--vvh,100dvh);flex-direction:column;max-width:40rem;margin:0 auto;display:flex;position:fixed}.room-bar{padding:calc(.25rem + var(--safe-top)) calc(.25rem + var(--safe-right)) .25rem calc(.25rem + var(--safe-left));border-bottom:1px solid var(--border);align-items:center;gap:.25rem;display:flex}.room-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.presence{margin:0;padding:0;font-weight:500;list-style:none}.presence li{text-overflow:ellipsis;align-items:center;gap:.5rem;display:flex;overflow:hidden}.dot{background:var(--muted);border-radius:50%;flex:none;width:.6rem;height:.6rem}.online .dot{background:var(--ok)}.offline{color:var(--muted)}.banner{background:var(--surface);color:var(--muted);text-align:center;margin:0;padding:.5rem 1rem;font-size:.9rem}.banner.ok{color:var(--ok)}.banner input{margin-top:.35rem}.messages{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:.75rem calc(.75rem + var(--safe-right)) .75rem calc(.75rem + var(--safe-left));flex:1;overflow-y:auto}.waiting{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;gap:.5rem;max-width:22rem;margin:1rem auto;padding:1rem;display:grid}.waiting-title{font-weight:600}.empty{text-align:center;margin:2rem 1rem}.msg-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.msg{overflow-wrap:anywhere;white-space:pre-wrap;border-radius:18px;max-width:85%;padding:.5rem .8rem}.msg p{margin:0}.msg.theirs{background:var(--theirs-bg);border-bottom-left-radius:6px;align-self:flex-start}.msg.mine{background:var(--mine-bg);color:var(--mine-fg);border-bottom-right-radius:6px;align-self:flex-end}.msg-sub{color:var(--muted);font-size:.82rem;margin-top:.2rem!important}.msg.mine .msg-sub,.msg.mine .msg-note{color:var(--mine-sub)}.msg-note{color:var(--muted);font-size:.8rem;font-style:italic}.msg-note.failed{font-style:normal}.jump{border-radius:999px;align-self:center;margin-bottom:.25rem;padding:.3rem 1rem;font-size:.9rem}.composer{border-top:1px solid var(--border);padding:.5rem calc(.5rem + var(--safe-right)) calc(.5rem + var(--safe-bottom)) calc(.5rem + var(--safe-left));background:var(--bg)}.composer-status{justify-content:space-between;gap:.5rem;padding:0 .25rem .35rem;font-size:.85rem;display:flex}.counter{color:var(--muted);margin-left:auto}.composer-row{align-items:flex-end;gap:.5rem;display:flex}.composer textarea{border:1px solid var(--border);background:var(--surface);resize:none;border-radius:22px;flex:1;min-height:44px;max-height:160px;padding:.6rem .9rem;line-height:1.35}.composer textarea[aria-invalid=true]{border-color:var(--error)}button.send{border-color:var(--accent);background:var(--accent);width:44px;height:44px;color:var(--accent-fg);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}button.mic{border:2px solid var(--accent);background:var(--bg);width:56px;height:56px;color:var(--accent);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}button.mic.active{background:var(--error);border-color:var(--error);color:#fff}button.mic.starting{opacity:.7}@media (prefers-reduced-motion:no-preference){button.mic.active:not(.starting){animation:1.2s ease-in-out infinite mic-pulse}}@keyframes mic-pulse{50%{box-shadow:0 0 0 8px #c6282833}}button.hands-free{border:2px solid var(--border);background:var(--bg);width:44px;height:44px;color:var(--muted);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}button.hands-free.on{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}button.hands-free.on.paused{opacity:.6}.voice-status{padding:.4rem calc(1rem + var(--safe-right)) .4rem calc(1rem + var(--safe-left));border-top:1px solid var(--border);color:var(--muted);overflow-wrap:anywhere;margin:0;font-style:italic}.voice-status.error{color:var(--error);font-style:normal}button.icon.toggle{color:var(--muted)}button.icon.toggle.on{color:var(--accent)}.banner.notice{justify-content:center;align-items:center;gap:.5rem;display:flex}.banner.notice button{min-height:36px;padding:.2rem .6rem}.tag{margin-left:.4rem}.latency-panel{border-bottom:1px solid var(--border);background:var(--surface);font-size:.75rem}.latency-panel button{min-height:28px;padding:.1rem .75rem;font-size:.75rem}.latency-scroll{max-height:30vh;padding:0 .5rem .5rem;overflow:auto}.read-aloud-log{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;padding:0;list-style:none}.latency-scroll table{border-collapse:collapse;font-variant-numeric:tabular-nums}.latency-scroll th,.latency-scroll td{text-align:right;white-space:nowrap;padding:.1rem .4rem}.call{z-index:20;color:#fff;touch-action:manipulation;background:#000;position:fixed;inset:0;overflow:hidden}.call-remote{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0}@media (orientation:landscape){.call-remote{object-fit:contain}}.call-hidden{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.call-placeholder{background:radial-gradient(circle at 50% 40%,#2b3440,#0d1117 70%);place-items:center;display:grid;position:absolute;inset:0}.call-placeholder span{background:#1f6feb;border-radius:50%;place-items:center;width:7rem;height:7rem;font-size:3rem;font-weight:600;display:grid}.call-self{top:calc(var(--safe-top) + 5.5rem);right:calc(var(--safe-right) + .75rem);aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius);background:#222;width:min(28vw,9rem);position:absolute;box-shadow:0 2px 10px #00000080}.call-self.mirrored{transform:scaleX(-1)}@media (orientation:landscape){.call-self{top:calc(var(--safe-top) + .75rem);aspect-ratio:4/3;width:min(22vh,8rem)}}.call-top{padding:calc(var(--safe-top) + 1rem) calc(var(--safe-right) + 1rem) 1.5rem calc(var(--safe-left) + 1rem);text-align:center;text-shadow:0 1px 3px #0009;background:linear-gradient(#0000008c,#0000);position:absolute;top:0;left:0;right:0}.call-top h2{overflow-wrap:anywhere;margin:0;font-size:1.3rem}.call-status,.call-note{font-variant-numeric:tabular-nums;opacity:.9;margin:.2rem 0 0}.call-note{font-size:.9rem}.call-sound{color:#000;background:#ffffffe6;border:0;border-radius:999px;min-height:44px;padding:.6rem 1.2rem;font-weight:600;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.call-debug{top:calc(env(safe-area-inset-top) + 7rem);color:#fff;background:#0000008c;border-radius:8px;max-width:32rem;font-size:.7rem;position:absolute;left:.5rem;right:.5rem}.call-debug button{color:#fff;min-height:28px;padding:.1rem .75rem;font-size:.75rem}@media (width<=400px){.call-controls{gap:.6rem}.call-controls .call-button{width:52px;height:52px;min-height:52px}}.call-subtitles{left:calc(var(--safe-left) + .75rem);right:calc(var(--safe-right) + .75rem);bottom:calc(var(--safe-bottom) + 6.5rem);pointer-events:none;flex-direction:column;align-items:center;gap:.35rem;max-width:40rem;margin:0 auto;padding:0;list-style:none;display:flex;position:absolute}.call-subtitles li{text-align:center;overflow-wrap:anywhere;background:#0009;border-radius:10px;max-width:100%;padding:.3rem .7rem;font-size:1.15rem;line-height:1.35}.call-subtitles li.mine{opacity:.75;font-size:.95rem}.call-subtitles li.partial{opacity:.85}.call-controls{padding:1rem calc(var(--safe-right) + 1rem) calc(var(--safe-bottom) + 1.25rem) calc(var(--safe-left) + 1rem);background:linear-gradient(#0000,#0000008c);justify-content:center;align-items:flex-start;gap:1rem;display:flex;position:absolute;bottom:0;left:0;right:0}.call-button{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border:0;border-radius:50%;place-items:center;width:56px;height:56px;min-height:56px;padding:0;display:grid}.call-button.off{color:#000;background:#fff}.call-button.hang-up{background:#d93025}.call-button.answer{background:#1a7f37}.call-button:disabled{opacity:.5}.call.ringing .call-controls{padding-bottom:calc(var(--safe-bottom) + 3rem);gap:5rem}.call-choice{flex-direction:column;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.call-choice .call-button{width:68px;height:68px}.call.ringing .call-top{background:0 0;top:20%}.call.ringing .call-top h2{font-size:1.6rem}.call-ended{padding:1.5rem calc(var(--safe-right) + 1.5rem) calc(var(--safe-bottom) + 2rem) calc(var(--safe-left) + 1.5rem);text-align:center;background:linear-gradient(#0000,#000000b3);flex-direction:column;align-items:center;gap:.75rem;display:flex;position:absolute;bottom:0;left:0;right:0}.call-ended p{margin:0;font-size:1.1rem}.call-ended button{min-width:8rem}.call-waiting{z-index:30;top:calc(var(--safe-top) + .5rem);left:calc(var(--safe-left) + .75rem);right:calc(var(--safe-right) + .75rem);border-radius:var(--radius);color:#fff;background:#1e2228eb;justify-content:space-between;align-items:center;gap:.5rem;max-width:30rem;margin:0 auto;padding:.4rem .5rem .4rem 1rem;display:flex;position:fixed;box-shadow:0 2px 10px #0006}.call-waiting button{color:#ff8a80;min-height:40px}
