:root{--bg:#0b1020;--bg-elev:#131a33;--bg-elev-2:#1c2447;--border:#2a3258;--text:#e7ecff;--muted:#8b94c0;--primary:#4f7cff;--primary-hover:#6a92ff;--danger:#ff5c7a;--danger-hover:#ff7d97;--good:#38d39f;--warn:#f0b54a;--bad:#ff5c7a;--neutral:#6f7aa3;--radius:12px;--shadow:0 8px 30px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 800px at 10% -10%, #1a2350 0%, transparent 60%), radial-gradient(900px 700px at 110% 110%, #2a1a4a 0%, transparent 55%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app{max-width:1100px;margin:0 auto;padding:32px 24px 64px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.app-header h1{letter-spacing:-.01em;margin:0;font-size:22px}.muted{color:var(--muted);margin:4px 0 0}.small{font-size:12px}.grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px;display:grid}.card{background:linear-gradient(180deg, #ffffff08, #fff0), var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card-header h2{letter-spacing:-.01em;margin:0;font-size:16px}.form{flex-direction:column;gap:12px;margin-top:14px;display:flex}.field{flex-direction:column;gap:6px;font-size:13px;display:flex}.field span{color:var(--muted)}.field input[type=text],.field input[type=url],.field input[type=password]{background:var(--bg-elev-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f7cff40}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.checkbox{color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.actions{gap:8px;margin-top:8px;display:flex}.actions.wrap{flex-wrap:wrap}.btn{appearance:none;border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text);cursor:pointer;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,transform 50ms}.btn:hover:not(:disabled){border-color:#3b4581}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.btn.ghost{background:0 0}.btn.active{border-color:var(--primary);color:var(--text);background:#4f7cff2e}.btn.small{padding:6px 10px;font-size:12px}.status-badge{background:var(--bg-elev);border:1px solid var(--border);text-transform:capitalize;border-radius:999px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:inline-flex}.status-badge .dot{background:var(--neutral);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #ffffff0a}.status-badge.tone-good .dot{background:var(--good);box-shadow:0 0 0 4px #38d39f26}.status-badge.tone-warn .dot{background:var(--warn);animation:1.2s ease-in-out infinite pulse}.status-badge.tone-bad .dot{background:var(--bad)}.status-badge .sep{color:var(--muted);margin:0 6px}.error-banner{color:#ffd1da;background:#ff5c7a1a;border:1px solid #ff5c7a66;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;display:flex}.dialer{flex-direction:column;gap:12px;margin-top:14px;display:flex}.dial-input{background:var(--bg-elev-2);border:1px solid var(--border);width:100%;color:var(--text);font-feature-settings:"tnum" 1;border-radius:10px;outline:none;padding:12px 14px;font-size:16px}.dial-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f7cff40}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.key{appearance:none;border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text);cursor:pointer;border-radius:10px;padding:14px 0;font-size:18px;font-weight:600;transition:background .15s,transform 50ms}.key:hover:not(:disabled){background:#243067}.key:active:not(:disabled){transform:translateY(1px)}.key:disabled{opacity:.4;cursor:not-allowed}.call-card .call-body{justify-content:space-between;align-items:center;gap:16px;margin:14px 0;display:flex}.remote{align-items:center;gap:12px;min-width:0;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#4f7cff,#b35fff);border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:grid}.remote-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.timer{font-variant-numeric:tabular-nums;color:var(--good);font-size:22px;font-weight:600}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#020617b3;place-items:center;animation:.18s ease-out fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--border);text-align:center;width:min(380px,92vw);box-shadow:var(--shadow);border-radius:16px;padding:32px;position:relative}.modal h3{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:12px 0 6px;font-size:14px}.modal .remote-name{font-size:22px}.modal .actions{justify-content:center;margin-top:20px}.ringing-pulse{background:var(--primary);border-radius:50%;width:60px;height:60px;margin:0 auto;animation:1.4s ease-out infinite pulse-ring;position:relative}.ringing-pulse:after{content:"";border:2px solid var(--primary);opacity:.5;border-radius:50%;animation:1.4s ease-out infinite pulse-halo;position:absolute;inset:-6px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulse-ring{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes pulse-halo{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}
