:root{color-scheme:light dark;--bg: #f6f8fa;--panel: #ffffff;--border: #d0d7de;--text: #1f2328;--muted: #57606a;--accent: #0969da;--good: #1a7f37;--bad: #cf222e;--pending: #bf8700;--code-bg: #f0f3f6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0d1117;--panel: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--good: #3fb950;--bad: #f85149;--pending: #d29922;--code-bg: #1f242c}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-size:13px;line-height:1.5}.container{padding:12px;max-width:100%}header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}header h1{font-size:16px;margin:0;color:var(--accent)}.version{color:var(--muted);font-size:11px}.status{font-size:11px;padding:4px 8px;border-radius:4px;margin-bottom:8px;display:inline-block}.status.checking{background:var(--code-bg);color:var(--muted)}.status.ok{background:#3fb95026;color:var(--good)}.status.down{background:#f8514926;color:var(--bad)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:10px;margin-bottom:10px}.panel.waiting{color:var(--muted)}.panel.pending{border-left:3px solid var(--pending)}.panel.ready{border-left:3px solid var(--good)}.panel.error{border-left:3px solid var(--bad)}.panel.error .title{color:var(--bad);font-weight:600;margin-bottom:6px}.panel.error .detail{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;background:var(--code-bg);padding:6px;border-radius:4px;white-space:pre-wrap;word-break:break-all;margin:6px 0}.row{display:flex;align-items:baseline;gap:8px;padding:3px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row-label{flex-shrink:0;width:120px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.row-value{flex:1;word-break:break-word}.user{font-weight:600}.muted{color:var(--muted);font-size:11px}code{font-family:ui-monospace,SFMono-Regular,monospace;background:var(--code-bg);padding:1px 4px;border-radius:3px;font-size:11px}.truncate{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.context{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.call-strip{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;margin-bottom:8px;font-size:12px}.call-strip-number{font-family:ui-monospace,SFMono-Regular,monospace;font-weight:600;flex:1}.call-strip code{font-size:12px;background:transparent;padding:0}.panel.user-panel{border-radius:0 0 6px 6px;border-top:none;margin-top:0}.tabs{display:flex;gap:0;margin-bottom:0;border-bottom:1px solid var(--border)}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:8px 14px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.panel.match-panel{border-radius:0 0 6px 6px;border-top:none;margin-top:0}.panel.match-panel.empty{text-align:center;padding:24px 12px}.match-status{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 0}.match-status.no-match,.match-status.error{color:var(--bad)}.match-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.contact-card{display:block;padding:8px 10px;background:var(--code-bg);border:1px solid var(--border);border-left:3px solid var(--good);border-radius:4px;text-decoration:none;color:var(--text);cursor:pointer;transition:background .1s}.contact-card:hover{background:var(--panel);border-left-color:var(--accent)}.contact-name{font-weight:600;font-size:13px;margin-bottom:2px}.contact-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted)}.contact-meta .contact-id{font-family:ui-monospace,SFMono-Regular,monospace}.contact-open{font-size:11px;color:var(--accent);margin-top:4px;font-weight:600}.panel.dialer-panel{border-radius:0 0 6px 6px;border-top:none;margin-top:0;padding:8px}.dialer-display{position:relative;margin-bottom:6px}.dialer-display input{display:block;width:100%;background:var(--code-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 30px 7px 12px;font-size:15px;font-family:ui-monospace,SFMono-Regular,monospace;font-weight:600;letter-spacing:.04em;text-align:center}.dialer-display input:focus{outline:none;border-color:var(--accent)}.dialer-display input:disabled{opacity:.5;cursor:not-allowed}.dialer-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--muted);font-size:18px;font-weight:600;cursor:pointer;width:22px;height:22px;border-radius:50%;line-height:1}.dialer-clear:hover{background:var(--border);color:var(--text)}.dialer-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:6px}.dialer-key{background:var(--code-bg);border:1px solid var(--border);border-radius:5px;padding:6px 0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:background .05s,border-color .05s;-webkit-user-select:none;user-select:none}.dialer-key:hover:not(:disabled){background:var(--panel);border-color:var(--accent)}.dialer-key:active:not(:disabled){background:var(--accent);color:#fff}.dialer-key:active:not(:disabled) .dialer-key-sub{color:#ffffffd9}.dialer-key:disabled{opacity:.4;cursor:not-allowed}.dialer-key-digit{font-size:16px;font-weight:700;font-family:ui-monospace,SFMono-Regular,monospace;line-height:1}.dialer-key-sub{font-size:8px;font-weight:600;color:var(--muted);letter-spacing:.1em;line-height:1}.dialer-actions{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:4px}.dialer-action{border:1px solid var(--border);border-radius:5px;padding:8px 0;font-size:13px;font-weight:700;cursor:pointer;transition:filter .05s,opacity .1s;background:var(--code-bg);color:var(--text)}.dialer-action:disabled{opacity:.35;cursor:not-allowed}.dialer-action:hover:not(:disabled){filter:brightness(1.1)}.dialer-backspace{font-size:14px}.dialer-call{background:var(--good);color:#fff;border-color:var(--good)}.dialer-hangup{background:var(--bad);color:#fff;border-color:var(--bad)}.btn-full{display:block;width:100%}.panel.controls{display:flex;gap:6px;align-items:center}.btn-primary,.btn-good,.btn-bad{border:none;border-radius:4px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;color:#fff;white-space:nowrap}.btn-primary{background:var(--accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-good{background:var(--good)}.btn-good:hover{filter:brightness(1.1)}.btn-bad{background:var(--bad)}.btn-bad:hover{filter:brightness(1.1)}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.state-idle{background:var(--code-bg);color:var(--muted)}.state-ringing{background:#cf860033;color:var(--pending);animation:pulse 1.2s infinite}.state-incoming{background:#0969da33;color:var(--accent);animation:pulse .8s infinite}.state-connected{background:#3fb95033;color:var(--good)}.state-hold{background:#cf860033;color:var(--pending)}.state-ended{background:var(--code-bg);color:var(--muted)}.state-failed{background:#f8514933;color:var(--bad)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
