:root{--bg:#f3f5f6;--surface:#fff;--fg:#172026;--muted:#5b6770;--line:#d9dfe3;--accent:#0f6c74;--accent-fg:#fff;--ok:#1d7a46;--ok-soft:#e3f3e9;--warn:#9a6200;--warn-soft:#fbf0dc;--danger:#c23b32;--danger-soft:#fbe6e4;--ring:#0f6c74;--font:"IBM Plex Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1417;--surface:#172025;--fg:#e3e9ec;--muted:#93a1aa;--line:#27333a;--accent:#4fb5bd;--accent-fg:#061214;--ok:#5cc98a;--ok-soft:#12291c;--warn:#e3ae55;--warn-soft:#2b2212;--danger:#ef7d74;--danger-soft:#2f1715;--ring:#4fb5bd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1417;--surface:#172025;--fg:#e3e9ec;--muted:#93a1aa;--line:#27333a;--accent:#4fb5bd;--accent-fg:#061214;--ok:#5cc98a;--ok-soft:#12291c;--warn:#e3ae55;--warn-soft:#2b2212;--danger:#ef7d74;--danger-soft:#2f1715;--ring:#4fb5bd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font:15px/1.6 var(--font);margin:0}.shell{gap:14px;max-width:760px;margin:0 auto;padding-block:24px 48px;padding-inline:16px;display:grid}h1{text-wrap:balance;margin:0 0 6px;font-size:22px;font-weight:700}h2{margin:0 0 10px;font-size:15px;font-weight:600}p{margin:0 0 10px}.muted{color:var(--muted);font-weight:400}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;padding:18px}.card.center{text-align:center;justify-items:center;gap:4px;padding:40px 18px;display:grid}button,select{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:8px 14px}button:hover{border-color:var(--muted)}button:focus-visible,select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}button[aria-pressed=true]{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger);font-weight:600}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.big{flex:1;padding:14px 28px;font-size:17px}.bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.who{margin-right:auto;line-height:1.3;display:grid}.badge{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:13px}.badge.registered{color:var(--ok);background:var(--ok-soft);border-color:#0000}.badge.failed{color:var(--danger);background:var(--danger-soft);border-color:#0000}.status{border-radius:999px;font-weight:600}.status.on,.status.on[aria-pressed=true]{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.status.off{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.alert{background:var(--danger-soft);color:var(--danger);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.call{gap:8px;padding:26px 22px;display:grid}.call .state{color:var(--muted);margin:0;font-weight:500}.call.idle{text-align:center;padding:36px 22px}.call.ringing{border:2px solid var(--accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 12%, transparent)}.call.ringing .state{color:var(--accent);font-weight:600}.call.talking .state{color:var(--ok);font-weight:600}.caller{letter-spacing:.01em;margin:0;font-size:30px;font-weight:500}.meta{grid-template-columns:max-content 1fr;gap:2px 14px;margin:4px 0 8px;display:grid}.meta dt{color:var(--muted);font-size:13px}.meta dd{margin:0}.actions{flex-wrap:wrap;gap:8px;display:flex}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;max-width:280px;margin-top:6px;display:grid}.keypad button{font-family:var(--mono);padding:12px 0;font-size:18px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row label{color:var(--muted);font-size:14px}.row select{flex:1;min-width:0}.table{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:480px;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:7px 6px}th{color:var(--muted);font-size:13px;font-weight:500}@media (prefers-reduced-motion:no-preference){.call.ringing{animation:1.6s ease-in-out infinite ring}@keyframes ring{50%{box-shadow:0 0 0 10px color-mix(in srgb, var(--accent) 6%, transparent)}}}
