:root{--g:#16A34A;--dg:#14532D;--lg:#DCFCE7;--bg:#F8FAFC;--c:#fff;--t:#0F172A;--m:#475569;--b:#CBD5E1;--red:#991B1B}
@media(prefers-color-scheme:dark){:root{--bg:#0B1210;--c:#16211C;--t:#F1F5F9;--m:#B4C3BA;--b:#2F4038}}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--t);font-family:'Noto Sans Bengali',system-ui,sans-serif;font-size:15px;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
header{background:linear-gradient(135deg,#14532D,#16A34A);color:#fff;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
header button,header a{background:rgba(255,255,255,.2);color:#fff;border:0;border-radius:10px;padding:8px 12px;font:inherit;min-height:40px;text-decoration:none}
main{max-width:1000px;margin:0 auto;padding:14px}
.card{background:var(--c);border-radius:16px;padding:16px;box-shadow:0 2px 8px rgba(20,83,45,.1);margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.grid a{display:block;background:var(--c);color:var(--t);text-decoration:none;border-radius:16px;padding:18px 14px;font-weight:800;box-shadow:0 2px 8px rgba(20,83,45,.1)}
.grid a small{display:block;font-weight:400;color:var(--m);margin-top:4px}
input,select{width:100%;font:inherit;font-size:16px;min-height:46px;padding:8px 12px;border:1px solid var(--b);border-radius:10px;background:var(--c);color:var(--t)}
label{display:block;font-size:13px;color:var(--m);margin:12px 0 4px}
.btn{width:100%;border:0;border-radius:12px;background:var(--dg);color:#fff;font:inherit;font-weight:800;padding:13px;min-height:48px;margin-top:16px}
.err{color:var(--red);font-size:14px;min-height:20px;margin-top:10px}
.login{max-width:420px;margin:8vh auto 0}
