:root{font-family:Inter,system-ui,sans-serif;color-scheme:dark;--bg:#08101d;--panel:#111c2d;--text:#f4f7fb;--muted:#91a0b5;--border:#25344a;--green:#2a9a63}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#15243a,var(--bg) 45%);color:var(--text)}
.shell{width:min(560px,100%);margin:auto;padding:20px}.card{background:rgba(17,28,45,.97);border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:0 20px 70px rgba(0,0,0,.28)}
#login{margin-top:12vh}.brand{letter-spacing:.18em;font-weight:800;font-size:.88rem}.muted{color:var(--muted)}.hidden{display:none!important}
input,button{font:inherit}input{width:100%;padding:14px;border-radius:12px;border:1px solid var(--border);background:#0d1726;color:var(--text);margin:8px 0 12px}
button{border:0;border-radius:12px;padding:13px 16px;font-weight:750;cursor:pointer;background:#e7eef9;color:#08101d}.secondary{background:#172438;color:var(--text);border:1px solid var(--border)}
header{display:flex;justify-content:space-between;align-items:center;margin:8px 0 18px}.status{color:var(--muted);margin-top:5px}.number{text-align:center;font-size:1.7rem}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:330px;margin:8px auto 16px}.key{aspect-ratio:1.2;background:#16243a;color:white;border:1px solid var(--border);font-size:1.5rem}
.call{width:100%;background:var(--green);color:#fff;min-height:52px}.call:disabled{opacity:.45;cursor:not-allowed}.center{text-align:center}#error{color:#ff8a8a;min-height:1.2em}