:root{--bg:#0b0c0f;--surface:#14161b;--surface-2:#1c1f26;--surface-3:#262a33;--line:#ffffff17;--text:#f3f4f6;--muted:#a0a6b2;--faint:#6f7682;--accent:#8fb4ff;--good:#36c97d;--warn:#f3b548;--bad:#f0565c;--radius:18px;--radius-small:12px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-size:16px;line-height:1.45}#root{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{width:100%;max-width:560px;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(20px + var(--safe-left));flex-direction:column;flex:1;gap:18px;margin:0 auto;display:flex}.screen--center{justify-content:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:12px;display:flex}.row--between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:.86rem}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.wordmark{letter-spacing:-.01em;font-size:1.05rem;font-weight:650}.title{letter-spacing:-.02em;font-size:1.6rem;font-weight:650}.btn{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:0 22px;font-weight:600;transition:background-color .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.45}.btn--primary{background:var(--text);color:#0b0c0f;border-color:#0000}.btn--primary:hover:not(:disabled){background:#fff}.btn--call{background:var(--good);color:#04210f;border-color:#0000;min-height:60px;font-size:1.08rem}.btn--call:hover:not(:disabled){background:#45d68b}.btn--danger{background:var(--bad);color:#2a0406;border-color:#0000}.btn--danger:hover:not(:disabled){background:#f46a70}.btn--ghost{background:0 0}.btn--block{width:100%}.btn--small{min-height:40px;padding:0 16px;font-size:.92rem}.icon-btn{width:44px;height:44px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}.field{flex-direction:column;gap:6px;display:flex}.field label,.label{color:var(--muted);font-size:.82rem;font-weight:550}.input,.select{border-radius:var(--radius-small);border:1px solid var(--line);background:var(--surface-2);width:100%;min-height:50px;padding:0 14px;font-size:16px}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 14px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:38px}.input:focus,.select:focus{border-color:var(--accent);outline:none}.alert{border-radius:var(--radius-small);color:#ffc9cb;background:#f0565c1f;border:1px solid #f0565c59;padding:12px 14px;font-size:.92rem}.alert--info{color:#d6e4ff;background:#8fb4ff1a;border-color:#8fb4ff4d}.alert--warn{color:#ffe2a8;background:#f3b5481a;border-color:#f3b54859}.alert strong{margin-bottom:2px;display:block}.dot{background:var(--faint);border-radius:50%;flex:none;width:10px;height:10px}.dot--good{background:var(--good)}.dot--warn{background:var(--warn)}.dot--bad{background:var(--bad)}.avatar{background:var(--surface-3);border-radius:50%;flex:none;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.4rem;font-weight:650;display:flex}.avatar--large{width:112px;height:112px;font-size:2.6rem}.chip{border:1px solid var(--line);white-space:nowrap;background:#14161bb8;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.chip--warn{color:#ffe2a8;border-color:#f3b54866}.toast{left:50%;bottom:calc(24px + var(--safe-bottom));z-index:60;width:min(520px,100% - 32px);position:fixed;transform:translate(-50%)}.login{gap:22px}.login-mark{border-radius:18px;width:64px;height:64px}.preview{aspect-ratio:4/3;border-radius:var(--radius);border:1px solid var(--line);background:#050506;position:relative;overflow:hidden}.preview video{object-fit:cover;width:100%;height:100%;display:block}.preview video.mirrored,.pip video.mirrored{transform:scaleX(-1)}.preview-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;position:absolute;inset:0}.preview-readout{flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:10px;left:10px}.meter{background:var(--surface-3);border-radius:3px;height:6px;overflow:hidden}.meter>span{background:var(--good);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.call{-webkit-user-select:none;user-select:none;background:#000;position:fixed;inset:0;overflow:hidden}.call video.remote{object-fit:contain;background:#000;width:100%;height:100%;position:absolute;inset:0}.call video.remote.fill{object-fit:cover}.call-overlay{text-align:center;background:#050506db;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.call-overlay--light{background:#05050680}.call-top{padding:calc(12px + var(--safe-top)) calc(14px + var(--safe-right)) 28px calc(14px + var(--safe-left));background:linear-gradient(#0000009e,#0000);justify-content:space-between;align-items:flex-start;gap:10px;transition:opacity .25s;display:flex;position:absolute;top:0;left:0;right:0}.call-top .name{text-shadow:0 1px 2px #0009;font-size:1.05rem;font-weight:650}.call-chips{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.call-banners{left:calc(12px + var(--safe-left));right:calc(12px + var(--safe-right));top:calc(84px + var(--safe-top));pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute}.call-banners>*{pointer-events:auto;-webkit-backdrop-filter:blur(10px)}.call-controls{padding:36px calc(12px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(12px + var(--safe-left));background:linear-gradient(#0000,#000000b3);flex-wrap:wrap;justify-content:center;gap:12px;transition:opacity .25s;display:flex;position:absolute;bottom:0;left:0;right:0}.call.chrome-hidden .call-top,.call.chrome-hidden .call-controls{opacity:0;pointer-events:none}.ctl{-webkit-backdrop-filter:blur(12px);width:56px;height:56px;color:var(--text);background:#262a33d1;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:inline-flex}.ctl:hover:not(:disabled){background:#3a3f4beb}.ctl:disabled{opacity:.4}.ctl--off{background:var(--text);color:#0b0c0f}.ctl--off:hover:not(:disabled){background:#fff}.ctl--end{background:var(--bad);color:#fff;width:68px}.ctl--end:hover:not(:disabled){background:#f46a70}.ctl--accept{background:var(--good);color:#04210f}.ctl--large{width:72px;height:72px}.pip{aspect-ratio:3/4;touch-action:none;cursor:grab;z-index:5;background:#111;border:1px solid #ffffff2e;border-radius:14px;width:clamp(92px,26vw,168px);transition:left .2s,top .2s;position:absolute;overflow:hidden;box-shadow:0 8px 28px #00000080}.pip.dragging{cursor:grabbing;transition:none}.pip.landscape{aspect-ratio:4/3;width:clamp(120px,30vw,220px)}.pip video{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.pip-off{color:var(--muted);background:var(--surface);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #36c97d73}50%{box-shadow:0 0 0 22px #36c97d00}}.incoming-actions{gap:56px;margin-top:28px;display:flex}.incoming-actions .col{color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:.86rem;display:flex}.sheet-backdrop{z-index:40;background:#0000008c;position:fixed;inset:0}.sheet{z-index:41;max-height:88vh;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-top-left-radius:22px;border-top-right-radius:22px;flex-direction:column;max-height:88dvh;animation:.22s sheet-in;display:flex;position:fixed;bottom:0;left:0;right:0}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 12px 10px 20px;display:flex}.sheet-head h2{font-size:1.05rem;font-weight:650}.sheet-body{-webkit-overflow-scrolling:touch;padding:16px calc(20px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(20px + var(--safe-left));flex-direction:column;gap:22px;display:flex;overflow-y:auto}.section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;font-size:.78rem;font-weight:650}.option{text-align:left;border-radius:var(--radius-small);border:1px solid var(--line);background:var(--surface-2);align-items:flex-start;gap:12px;width:100%;padding:12px 14px;display:flex}.option+.option{margin-top:8px}.option[aria-checked=true]{border-color:var(--accent);background:#8fb4ff14}.option .radio{border:2px solid var(--faint);border-radius:50%;flex:none;width:20px;height:20px;margin-top:2px}.option[aria-checked=true] .radio{border-color:var(--accent);background:radial-gradient(circle, var(--accent) 0 45%, transparent 50%)}.option .tag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:650}.option .tag--warn{color:#ffe2a8;border-color:#f3b54866}.switch-row{justify-content:space-between;align-items:flex-start;gap:14px;padding:6px 0;display:flex}.switch{background:var(--surface-3);border-radius:999px;flex:none;width:50px;height:30px;transition:background-color .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--good)}.switch[aria-checked=true]:after{transform:translate(20px)}.stat-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2px 14px;font-size:.88rem;display:grid}.stat-grid dt{color:var(--muted)}.stat-grid dd{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;margin:0}.stat-grid dd.na{color:var(--faint)}.compare{border-collapse:collapse;width:100%;font-size:.86rem}.compare th,.compare td{text-align:right;border-bottom:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;padding:5px 4px}.compare th{font-family:var(--font);color:var(--muted);font-size:.76rem;font-weight:600}.compare th:first-child,.compare td:first-child{text-align:left;font-family:var(--font);color:var(--muted)}.chart{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-small);padding:10px 12px}.chart+.chart{margin-top:8px}.chart-head{color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:.8rem;display:flex}.chart-head .mono{color:var(--text)}.chart canvas{width:100%;height:56px;display:block}.legend{align-items:center;gap:5px;margin-right:10px;display:inline-flex}.legend i{border-radius:2px;width:10px;height:3px;display:inline-block}.events{font-family:var(--mono);border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface-2);max-height:220px;margin:0;padding:0;font-size:.76rem;list-style:none;overflow-y:auto}.events li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:5px 10px}.events li:last-child{border-bottom:0}.events .warn{color:#ffe2a8}.events .error{color:#ffc9cb}@media (min-width:900px){.sheet{border:0;border-left:1px solid var(--line);border-radius:0;width:440px;max-height:none;animation:.2s panel-in;top:0;left:auto}@keyframes panel-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}}@media (orientation:landscape) and (max-height:520px){.call-controls{gap:10px;padding-top:18px}.ctl{width:48px;height:48px}.ctl--end{width:60px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
