:root{--gold:#b5973a;--gold-d:#957b2c;--gold-l:#f6f0dc;--ink:#2f3337;--muted:#6b7280;--line:#e3e3e3;--teal:#3fa39f;--slate:#2c3e50}
*{box-sizing:border-box}body{margin:0;font-family:"Open Sans","Hind Siliguri","Noto Sans Bengali","Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:#fff;font-size:14px}
a{color:var(--gold-d)}
.footer{background:#000;color:#fff;text-align:center;padding:22px;font-size:12.5px;font-weight:600;margin-top:40px}
.lang{position:absolute;top:18px;right:22px;font-size:13px;z-index:5}.lang a{color:var(--gold);text-decoration:none;margin-left:10px}.lang a.on{font-weight:700;text-decoration:underline}
.flash{padding:10px 12px;border-radius:3px;margin:0 auto 14px;max-width:1200px}.flash.ok{background:#e7f4ec;color:#145232;border:1px solid #b9dcc6}.flash.error{background:#fbeaea;color:#8a1f1a;border:1px solid #efc2bf}
/* auth */
.auth{min-height:calc(100vh - 100px);display:flex;flex-direction:column;align-items:center;padding:60px 16px}
.auth .logo{width:92px;height:92px}.auth h1{font-size:32px;font-weight:800;margin:12px 0 4px;text-align:center}
.auth .sub{color:var(--gold);margin-bottom:30px}.auth form{width:100%;max-width:340px}
.auth input[type=text],.auth input[type=password],.auth input[type=email]{width:100%;padding:9px 10px;border:1px solid #ddd;margin-bottom:11px;font-size:14px}
.auth input::placeholder{color:var(--gold)}.auth .chk{color:var(--muted);margin:8px 0 14px;display:flex;gap:8px;align-items:center}
.auth .links{display:flex;justify-content:space-between;margin-top:14px}.auth .links a{color:var(--gold)}
/* buttons */
.btn{display:inline-block;background:var(--gold);color:#fff;border:0;padding:8px 15px;border-radius:3px;cursor:pointer;font-size:13.5px;text-decoration:none;font-family:inherit;line-height:1.2}
.btn:hover{background:var(--gold-d)}.btn.full{width:100%;padding:11px}.btn.ghost{background:#f4f4f4;color:var(--ink);border:1px solid #ccc}.btn.ghost:hover{background:#e9e9e9}
.btn.green{background:#2e9d4f}.btn.blue{background:#1f7ae0}.btn.red{background:#c0392b}.btn.dark{background:var(--slate)}.btn.sm{padding:4px 9px;font-size:12px}
/* header + drawer */
.hamb{position:absolute;left:44px;top:58px;background:none;border:0;cursor:pointer;padding:6px;z-index:6}.hamb span{display:block;width:20px;height:2px;background:var(--gold);margin:4px 0}
.site-head{text-align:center;padding:34px 16px 6px}.site-head .row{display:inline-flex;align-items:center;gap:14px}.site-head img{width:66px;height:66px}
.site-head .name{font-size:34px;font-weight:800;letter-spacing:.3px;color:#2f2f2f}
.page-title{text-align:center;font-size:24px;font-weight:700;text-decoration:underline;text-underline-offset:5px;margin:14px 0 26px}
.drawer{position:fixed;inset:0 auto 0 0;width:290px;background:#fff;box-shadow:2px 0 18px rgba(0,0,0,.18);transform:translateX(-105%);transition:transform .22s;z-index:50;overflow-y:auto;padding:18px 0}
.drawer.open{transform:none}.shade{position:fixed;inset:0;background:rgba(0,0,0,.25);display:none;z-index:40}.shade.open{display:block}
.drawer .who{padding:0 22px 12px;border-bottom:1px solid #eee;color:var(--muted);font-size:12.5px}
.drawer a{display:block;padding:9px 22px;color:var(--ink);text-decoration:none}.drawer a:hover{background:var(--gold-l)}.drawer a.on{color:var(--gold-d);font-weight:700;border-left:3px solid var(--gold)}
.drawer .grp{padding:14px 22px 4px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gold-d);font-weight:700}.drawer a.sub{padding-left:36px;font-size:13.5px}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}.wrap.wide{max-width:1600px}
/* forms */
label{display:block;font-size:13px;margin-bottom:5px;color:#333}
input,select,textarea{width:100%;padding:8px 9px;border:1px solid #9aa1a8;border-radius:3px;font-size:14px;font-family:inherit;background:#fff}
input[type=radio],input[type=checkbox]{width:auto}input[readonly]{background:#f6f6f6}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(181,151,58,.35);border-color:var(--gold)}
.form{max-width:900px;margin:0 auto}.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 16px}
.field{margin-bottom:18px}.radios{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 14px}.radios label{display:flex;gap:8px;align-items:center;font-size:13px;margin:0;color:#444}
.radios.inline{display:flex;flex-wrap:wrap}.sec{border:1px solid #e6dcc0;background:#fffdf7;border-radius:4px;padding:16px;margin-bottom:18px}
.sec h4{margin:0 0 12px;color:var(--gold-d);font-size:14px;text-transform:uppercase;letter-spacing:.5px}
.calc{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:#f7f7f7;border:1px solid #e3e3e3;padding:14px;border-radius:4px;margin-bottom:18px}
.calc b{display:block;font-size:17px;margin-top:3px}.req{color:#c0392b}details.sec summary{cursor:pointer;color:var(--gold-d);font-weight:600}
/* tables */
table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{padding:8px;border:1px solid #e1e1e1;text-align:left;vertical-align:middle}
th{font-weight:700}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}td.c,th.c{text-align:center}
table.dt th{background:#fff;border-bottom:2px solid #ccc}table.dt tr:nth-child(even) td{background:#fafafa}
table.teal th{background:var(--teal);color:#fff;text-align:center}table.slate th{background:var(--slate);color:#fff;text-align:center}
tr.tot td{font-weight:700;background:var(--gold-l)}tr.prev td{font-style:italic;background:#fbfbf3}
.tablewrap{overflow-x:auto}.muted{color:var(--muted)}.inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.filters{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end;margin-bottom:14px}.filters>div{min-width:170px}.filters input,.filters select{padding:5px 7px;font-size:13px}
.note-bn{background:#fff6cc;border:1px solid #f0e2a0;padding:10px 12px;margin:10px 0 14px;font-size:13px}
.boxes{display:flex;justify-content:center;margin:10px auto 26px;flex-wrap:wrap}.boxes div{background:var(--gold);color:#fff;text-align:center;min-width:120px;border:1px solid #fff}
.boxes b{display:block;padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.6);font-size:14px}.boxes span{display:block;padding:9px 14px;font-weight:700;font-size:15px}
.rep-head{text-align:center;line-height:1.7}.rep-head .t{font-size:20px;font-weight:700;text-decoration:underline}.rep-head .sess{font-weight:700}.rep-head .ag{font-size:18px;font-weight:600}
.demo{background:#fff1c2;color:#7a5a00;font-size:10px;padding:1px 6px;border-radius:8px;margin-left:4px;font-weight:700}
.pager{display:flex;gap:4px;justify-content:flex-end;margin-top:10px}.pager a,.pager span{padding:5px 10px;border:1px solid #ddd;text-decoration:none;color:var(--ink)}.pager span.on{background:var(--gold);color:#fff;border-color:var(--gold)}
.tabs{display:flex;gap:6px;margin:12px 0 0;border-bottom:1px solid #ddd;padding-bottom:0}.tabs a{padding:9px 16px;border:1px solid #ccc;border-bottom:0;border-radius:3px 3px 0 0;text-decoration:none;color:var(--ink);background:#f3f3f3}.tabs a.on{background:var(--slate);color:#fff;border-color:var(--slate)}
td.due{background:#fff3cd}td.adv{background:#dbeafe}
/* dashboard */
.dash{background:#f5f6fa;border-radius:12px;padding:24px;max-width:1150px;margin:0 auto}.dash h2{text-align:center;color:#8a6d1e;font-size:26px;margin:4px 0 16px}
.pills{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.pills a{padding:10px 24px;border-radius:24px;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.08);text-decoration:none;color:var(--ink);font-weight:600}.pills a.on{background:linear-gradient(90deg,#b5973a,#8a6d1e);color:#fff}
.band{color:#fff;text-align:center;padding:9px;border-radius:6px;font-weight:600;margin:18px 0 12px;font-size:16px}
.b1{background:linear-gradient(90deg,#b5973a,#7d6420)}.b2{background:linear-gradient(90deg,#2e8b74,#1e5f50)}.b3{background:linear-gradient(90deg,#3d4f63,#24313f)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.06);border-top:3px solid var(--gold)}
.kpi .k{font-weight:700;color:#555;font-size:14px;text-transform:uppercase;display:flex;gap:8px;align-items:center}.kpi .v{font-size:24px;font-weight:700;margin-top:10px}
.c1{border-color:#3498db}.c1 .v{color:#3498db}.c2{border-color:#27ae60}.c2 .v{color:#27ae60}.c3{border-color:#e74c3c}.c3 .v{color:#e74c3c}.c4{border-color:#8e44ad}.c4 .v{color:#8e44ad}
.colmenu{position:relative;display:inline-block}.colmenu .pop{display:none;position:absolute;background:#fff;border:1px solid #ccc;padding:8px;z-index:9;min-width:220px;max-height:320px;overflow:auto}.colmenu.open .pop{display:block}.colmenu .pop label{display:flex;gap:6px;font-size:12.5px}
.printonly{display:none}
@media print{.noprint,.hamb,.lang,.footer,.drawer,.filters,.pager,.note-bn{display:none!important}.printonly{display:block}.site-head{padding-top:0}body{font-size:11px}table{font-size:10.5px}th,td{padding:4px}.wrap{max-width:none}
  table.teal th,table.slate th,.boxes div{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media(max-width:800px){.g2,.g3,.calc,.kpis{grid-template-columns:1fr}.radios{grid-template-columns:1fr 1fr}.site-head .name{font-size:22px}.hamb{left:12px;top:20px}}
.typegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;border:1px solid #e6dcc0;background:#fffdf7;padding:12px;border-radius:4px}
.subtot{margin-top:10px;font-size:13px}
@media(max-width:800px){.typegrid{grid-template-columns:1fr}}
