:root{--ink:#0b0f14;--surface:#141a22;--surface-2:#1c232d;--glass:rgba(20,26,34,.7);--hairline:#262e38;--text:#f4f7fb;--text-dim:#9aa5b1;--text-mute:#5c6672;--teal:#2dd4bf;--teal-strong:#14b8a6;--coral:#fb6f63;--danger:#f43f5e;--success:#34d399;--warning:#fbbf24;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--ink);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh}button{font-family:inherit}.stage{min-height:100vh;align-items:center;justify-content:center;padding:24px;gap:24px}.card,.stage{display:flex;flex-direction:column}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:0 2px 8px rgba(0,0,0,.3);padding:32px;width:100%;max-width:420px;gap:16px}.title{font-size:24px;font-weight:600;margin:0}.subtitle{color:var(--text-dim);margin:0;font-size:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--text-dim)}.field input{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:10px 14px;color:var(--text);font-size:15px}.field input:focus-visible,button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.btn{border:none;border-radius:var(--r-pill);padding:12px 20px;font-size:14px;font-weight:500;cursor:pointer;min-height:44px}.btn-primary{background:var(--teal);color:var(--ink)}.btn-primary:hover{background:var(--teal-strong)}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--hairline)}.error-banner{background:var(--surface-2);border:1px solid var(--danger);color:var(--text);border-radius:var(--r-md);padding:10px 14px;font-size:13px}.status-banner{position:fixed;top:16px;left:50%;transform:translateX(-50%);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:8px 18px;font-size:13px;display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--warning)}.ring-avatar{width:140px;height:140px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:600;border:2px solid var(--hairline)}.ring-avatar.outgoing{border-color:var(--teal);animation:breathe 1.4s ease-in-out infinite}.ring-avatar.incoming{border-color:var(--coral);box-shadow:0 0 0 8px hsla(5,95%,69%,.15)}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.ring-avatar.outgoing{animation:none}}.call-actions{gap:24px}.call-actions,.call-stage{display:flex;justify-content:center}.call-stage{position:relative;width:100%;min-height:100vh;background:var(--ink);align-items:center}.remote-video{width:100%;height:100vh;object-fit:cover;background:var(--surface)}.self-view{position:absolute;top:24px;right:24px;width:160px;height:120px;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.45);border:1px solid var(--hairline)}.self-view video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.top-bar{position:absolute;top:16px;left:24px;display:flex;align-items:center;gap:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:13px}.dock{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);gap:16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:12px 16px;box-shadow:0 8px 32px rgba(0,0,0,.45)}.dock,.dock-btn{display:flex;background:var(--glass)}.dock-btn{width:56px;height:56px;border-radius:50%;border:1px solid var(--hairline);color:var(--text);font-size:20px;align-items:center;justify-content:center;cursor:pointer}.dock-btn.active{border-color:var(--teal);color:var(--teal)}.dock-btn.off{background:var(--surface-2);color:var(--danger)}.dock-btn.end{background:var(--danger);color:#fff;border:none}