:root{--red:#e30613;--bg:#f5f5f5;--card:#fff;--text:#1a1a1a;--muted:#666;--ok:#1f8a3a;--warn:#c77700;--radius:12px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#121212;--card:#1e1e1e;--text:#f0f0f0;--muted:#a0a0a0}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}#app{gap:12px;max-width:480px;margin:0 auto;padding:16px;display:grid}h1{color:var(--red);margin:0 0 8px;font-size:1.5rem}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px #00000026}label{gap:4px;margin-bottom:12px;display:grid}label.check{align-items:center;gap:8px;display:flex}input:not([type=checkbox]){border:1px solid var(--muted);color:inherit;background:0 0;border-radius:8px;width:100%;padding:10px;font-size:1.1rem}button{border:1px solid var(--muted);color:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:10px 14px;font-size:1rem}button.primary{background:var(--red);border-color:var(--red);color:#fff;width:100%;margin-top:8px}button.ok{background:var(--ok);border-color:var(--ok);color:#fff}button.danger{background:var(--red);border-color:var(--red);color:#fff}button.active{outline:2px solid var(--red)}button.link{border:none;padding:4px;text-decoration:underline}button.tab{text-align:left;border:none;width:100%;font-weight:600}.topbar{justify-content:space-between;align-items:center;display:flex}.dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.muted{color:var(--muted)}.small{font-size:.8rem}.alert{color:var(--red);min-height:1.2em;margin:8px 0 0}.message{color:var(--warn);min-height:1.2em;margin:0}.callbar .who{font-size:1.4rem;font-weight:600}.callbar .status{color:var(--muted);margin-bottom:12px}.actions{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;display:grid}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.keypad button{padding:14px;font-size:1.3rem}.badge:not(:empty){background:var(--red);color:#fff;border-radius:999px;margin-left:6px;padding:0 8px;font-size:.85rem}.calllog{margin:8px 0 0;padding:0;list-style:none}.calllog li{border-top:1px solid #7f7f7f33;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.calllog li[data-result=missed] .who{color:var(--red)}
