:root{--bg: #f4f6f9;--surface: #ffffff;--surface-2: #eef1f6;--surface-3: #e6eaf1;--border: #e3e7ef;--border-strong: #cdd4e0;--text: #0f1722;--muted: #5c6675;--accent: #2556c9;--accent-hover: #1d47ab;--accent-fg: #ffffff;--accent-soft: #e8eefb;--brand: #e2891f;--call: #16a34a;--call-hover: #12833c;--ok: #157347;--ok-bg: #e6f4ec;--warn: #955500;--warn-bg: #fdf3e2;--danger: #d13c30;--danger-hover: #b42f24;--danger-bg: #fdecea;--shadow: 0 1px 2px rgba(16, 23, 34, .04), 0 10px 30px rgba(16, 23, 34, .08);--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Chivo", "Inter", system-ui, sans-serif;--radius: 14px;--radius-sm: 9px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #0b1018;--surface: #151b24;--surface-2: #1d2530;--surface-3: #26303c;--border: #29323d;--border-strong: #3a4553;--text: #e7ebf1;--muted: #94a0b0;--accent: #6a9bf4;--accent-hover: #85aef6;--accent-fg: #0b0f14;--accent-soft: #1c2b45;--brand: #f0a340;--call: #22c55e;--call-hover: #3dd475;--ok: #5fcf9b;--ok-bg: #16301f;--warn: #e0a458;--warn-bg: #33240f;--danger: #f0776c;--danger-hover: #f59188;--danger-bg: #331714;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 34px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.5 var(--font-sans);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:700;line-height:1.25;letter-spacing:-.01em}h1{font-size:18px}h2{font-size:15px}code,.mono{font-family:var(--mono);font-size:12.5px}.app{max-width:400px;margin:0 auto;padding:18px 14px 30px;min-height:100%;display:flex;flex-direction:column;gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card>*+*{margin-top:12px}.head{display:flex;align-items:center;gap:10px}.head .spacer{flex:1}.head h1{display:flex;align-items:center;gap:9px}.head h1:before{content:"";width:8px;height:22px;border-radius:3px;flex:none;background:linear-gradient(180deg,var(--brand),#c9760f)}.reg{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500}.dot{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.danger{background:var(--danger)}.dot.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.dot.pulse{animation:none}}.identity{font-family:var(--mono);font-size:12px;color:var(--muted);word-break:break-all}.call{text-align:center}.call .who{font-family:var(--font-display);font-size:26px;font-weight:700;word-break:break-all;letter-spacing:-.01em}.call .state{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.call .timer{font-family:var(--mono);font-size:30px;font-variant-numeric:tabular-nums;color:var(--text)}.ctl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.ctl{display:flex;flex-direction:column;align-items:center;gap:6px;background:transparent;border:none;padding:6px 2px;color:var(--text);font-size:11.5px;cursor:pointer}.ctl>span:first-child{width:54px;height:54px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);transition:background .12s ease,color .12s ease,border-color .12s ease}.ctl:hover:not(:disabled)>span:first-child{background:var(--surface-3)}.ctl.on>span:first-child{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.ctl:disabled{opacity:.4;cursor:not-allowed}.call-row{display:flex;justify-content:center;gap:48px;padding-top:4px}.fab{width:66px;height:66px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;color:#fff;box-shadow:0 6px 16px #0000002e;transition:transform .06s ease,filter .12s ease,background .12s ease}.fab:active{transform:scale(.94)}.fab:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.fab.call{background:var(--call)}.fab.call:hover:not(:disabled){background:var(--call-hover)}.fab.hangup{background:var(--danger)}.fab.hangup:hover:not(:disabled){background:var(--danger-hover)}.fab svg{color:#fff}.num-display{position:relative}.num{width:100%;text-align:center;font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:.01em;padding:12px 46px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text)}.num::placeholder{font-family:var(--font-sans);font-size:15px;font-weight:400}.num:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.num-back{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--muted);padding:8px;cursor:pointer}.num-back:hover{color:var(--text)}.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pad-key{aspect-ratio:1 / 1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--font-display);transition:background .1s ease,border-color .1s ease,transform .05s ease}.pad-key .d{font-size:26px;font-weight:700;line-height:1}.pad-key .l{font-size:9px;letter-spacing:.14em;color:var(--muted);height:10px;line-height:1}.pad-key:hover{background:var(--surface);border-color:var(--accent)}.pad-key:active{transform:scale(.95)}.pad.compact .pad-key{aspect-ratio:auto;padding:9px 0;border-radius:var(--radius-sm)}.pad.compact .pad-key .d{font-size:19px}button{font:inherit;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer}button svg{flex:none}button:hover:not(:disabled){background:var(--surface-2)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--brand);border-color:var(--brand);color:#201304}button.primary:hover:not(:disabled){background:#c9760f;border-color:#c9760f}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{border-color:transparent;background:transparent}button.ghost:hover:not(:disabled){background:var(--surface-2)}button.tiny{padding:5px 9px;font-size:12.5px;border-radius:7px}button.wide{width:100%}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>input{flex:1;min-width:0}input[type=text],input[type=tel],input[type=email],input[type=password]{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .12s ease,box-shadow .12s ease}input::placeholder{color:var(--muted);opacity:.7}input:hover:not(:focus){border-color:var(--accent)}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}label.field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500;color:var(--muted)}.note{padding:9px 11px;border-radius:var(--radius-sm);font-size:13px;border:1px solid transparent;display:flex;gap:8px;align-items:center}.note .spacer{flex:1}.note.error{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.note.warn{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}.note.ok{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.note.info{background:var(--surface-2);border-color:var(--border);color:var(--muted)}.muted{color:var(--muted);font-size:12.5px}.history{list-style:none;margin:0;padding:0}.history li{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:13px}.history li+li{border-top:1px solid var(--border)}.history .arrow{width:18px;display:inline-flex;justify-content:center;flex:none}.history .arrow.missed{color:var(--danger)}.history .arrow.out{color:var(--accent)}.history .arrow.in{color:var(--ok)}.history .who{flex:1;min-width:0;font-family:var(--mono);overflow-wrap:anywhere}.history .when{color:var(--muted);font-size:12px;white-space:nowrap}@media (max-width: 400px){.app{padding:14px 10px 24px}.card{padding:14px}.call .timer{font-size:26px}.ctl>span:first-child{width:50px;height:50px}.call-row{gap:36px}}
