:root{
  --bg:#F2F0EC; --card:#FFFFFF; --raised:#F8F6F3;
  --line:#DFDBD5; --line-soft:#EBE7E2;
  --ink:#1C1A17; --muted:#6A645C; --faint:#978F85;
  --accent:#3B4E9E; --accent-ink:#FFFFFF; --accent-wash:#E7EAF7;
  --over:#B5443A; --over-wash:#F7E5E2;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1A1917; --card:#242220; --raised:#2C2A27;
    --line:#39352F; --line-soft:#2F2C29;
    --ink:#EDEAE5; --muted:#A09A92; --faint:#77716A;
    --accent:#8496E4; --accent-ink:#12162B; --accent-wash:#242942;
    --over:#DE6A5E; --over-wash:#301C19;
  }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%;
  min-height:100dvh;display:flex;flex-direction:column}
.disp{font-family:"PT Sans Narrow","Arial Narrow",sans-serif;font-weight:700;letter-spacing:.01em;margin:0}
.num{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}
.shell{max-width:460px;margin:auto;padding:28px 18px;width:100%}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
input[type=password]{font:inherit;color:inherit;width:100%;padding:12px 13px;
  background:var(--raised);border:1px solid var(--line);border-radius:9px}
input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{font:inherit;font-weight:600;cursor:pointer;border:none;width:100%;padding:13px;
  border-radius:9px;background:var(--accent);color:var(--accent-ink)}
.err{margin-top:12px;padding:10px 12px;border-radius:8px;
  background:var(--over-wash);color:var(--over);font-size:13.5px}
.tile{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:17px 18px}
.tile:hover,.tile:focus-visible{border-color:var(--accent)}
.foot{text-align:center;padding:16px;font-size:12px;color:var(--faint)}
.foot a{color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
