:root{
  --bg:#EEF3F1; --card:#FFFFFF; --ink:#14231F; --muted:#51635D;
  --brand:#0F5C4D; --brand-ink:#FFFFFF; --line:#C9D6D1; --err:#B3261E; --ok:#1B6B3A;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#0E1815; --card:#16241F; --ink:#E8F0ED; --muted:#9DB0A9; --brand:#3FAE93; --brand-ink:#06201A; --line:#2B3F38; --err:#FF8A80; --ok:#7BD99B; }
}
*{box-sizing:border-box}
html{font-size:18px}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);
  font-family:"Noto Sans Bengali","Hind Siliguri","Kalpurush","SolaimanLipi",system-ui,-apple-system,"Segoe UI",sans-serif;
  line-height:1.6;display:flex;align-items:center;justify-content:center;padding:16px}
main{width:100%;max-width:26rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px}
h1{font-size:1.5rem;margin:0 0 4px}
p.sub{margin:0 0 20px;color:var(--muted)}
label{display:block;font-weight:600;margin:14px 0 6px}
input{width:100%;font:inherit;padding:14px;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
input:focus-visible,button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
button{width:100%;margin-top:20px;font:inherit;font-weight:700;padding:15px;border:0;border-radius:10px;background:var(--brand);color:var(--brand-ink);cursor:pointer}
button.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);margin-top:12px}
button:disabled{opacity:.6;cursor:wait}
.msg{min-height:1.6em;margin-top:14px;font-weight:600}
.msg.err{color:var(--err)} .msg.ok{color:var(--ok)}
.hidden{display:none}
.role{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:.85rem}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
