:root{--bg: #f5f6f8;--surface: #ffffff;--text: #16202a;--muted: #5b6875;--border: #d6dbe1;--brand: #0b6b4f;--brand-contrast: #ffffff;--danger: #b3261e;--danger-bg: #fdecea;--ok-bg: #e6f4ec;--warn-bg: #fff4dc;--radius: 10px;--tap: 48px}@media(prefers-color-scheme:dark){:root{--bg: #11161b;--surface: #1a2128;--text: #e8edf2;--muted: #9aa8b5;--border: #2d3843;--brand: #3fb98a;--brand-contrast: #06231a;--danger: #ff8a80;--danger-bg: #3a1c1a;--ok-bg: #173225;--warn-bg: #3a2f14}}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Noto Sans Bengali,sans-serif}h1{font-size:1.4rem;margin:0 0 12px}h2{font-size:1.1rem;margin:0 0 8px}a{color:var(--brand)}button,input,select{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;min-height:var(--tap);padding:0 18px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--brand);color:var(--brand-contrast);border-color:var(--brand);font-weight:600}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.small{min-height:40px;padding:0 12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.field label{font-weight:600;font-size:.92rem}.field input,.field select{min-height:var(--tap);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%}.field input:focus-visible,.btn:focus-visible,select:focus-visible{outline:3px solid var(--brand);outline-offset:1px}.field .err{color:var(--danger);font-size:.85rem}.field.invalid input{border-color:var(--danger)}.alert{padding:10px 14px;border-radius:var(--radius);margin-bottom:12px}.alert.error{background:var(--danger-bg);color:var(--danger)}.alert.ok{background:var(--ok-bg)}.alert.warn{background:var(--warn-bg)}.muted{color:var(--muted)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.spacer{flex:1}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;background:var(--ok-bg)}.badge.off{background:var(--danger-bg);color:var(--danger)}
