/* ============================================================ *
 * DeshBook — the locked fusion surface (Spotify·Apple·Bloomberg·Meta)
 * Premium dark canvas, civic color alphabet, honesty grammar.
 * ============================================================ */
:root{
  --bg:#0a0c0f; --s1:#14181e; --s2:#1b222a; --line:#262f38; --line2:#323c46;
  --tx:#eef3ef; --tx2:#94a1aa; --tx3:#5f6a73;
  /* civic color alphabet */
  --green:#1ec98a;    /* delivered / spent / utilized */
  --amber:#ecb44e;    /* watch */
  --red:#ff5667;      /* fell / flagged (earned) */
  --slate:#8593a6;    /* awarded-only */
  /* per-source accent hues */
  --c-contract:#1ec98a; --c-aid:#37a8e6; --c-adp:#ecb44e;
  --indigo:#8a8dff; --orange:#f5a23c; --teal:#37a8e6; --cyan:#28c7c7;
  /* theme-able surfaces (so light mode inverts cleanly) */
  --glass:rgba(255,255,255,.05); --glass2:rgba(255,255,255,.03);
  --track:#222a32; --navbg:rgba(10,12,15,.92); --headbg:rgba(10,12,15,.93);
  --radius:18px;
}

/* ============================================================ *
 * LIGHT THEME — patriotic daylight canvas (paper white + civic ink)
 * Only the dark-hardcoded surfaces are overridden; everything else
 * rides the CSS variables and inverts for free.
 * ============================================================ */
:root[data-theme="light"]{
  --bg:#f4f6f5; --s1:#ffffff; --s2:#eef2f0; --line:#e4e9e6; --line2:#d4dcd8;
  --tx:#0f1a16; --tx2:#586b63; --tx3:#8a978f;
  --green:#0c9e68; --amber:#b07d16; --red:#e23a4c; --slate:#5f7088;
  --c-contract:#0c9e68; --c-aid:#1f86c4; --c-adp:#b07d16;
  --indigo:#5a5ef0; --orange:#d9781f; --teal:#1f86c4; --cyan:#0d9c9c;
  --glass:rgba(0,0,0,.04); --glass2:rgba(0,0,0,.025);
  --track:#e6ebe8; --navbg:rgba(255,255,255,.92); --headbg:rgba(255,255,255,.93);
}
[data-theme="light"] .wash{background:radial-gradient(120% 80% at 28% -12%,rgba(12,158,104,.12),transparent 62%)}
[data-theme="light"] .hero{background:linear-gradient(160deg,#e9faf1,#eef4f1 70%);border-color:#cbe9da}
[data-theme="light"] .hero::after{background:radial-gradient(circle,rgba(12,158,104,.14),transparent 70%)}
[data-theme="light"] .card-w,[data-theme="light"] .debofx{background:linear-gradient(160deg,#fdecee,#fbf3f4 75%);border-color:rgba(226,58,76,.3)}
[data-theme="light"] .card-w .ds,[data-theme="light"] .card-w .src,
[data-theme="light"] .debo-u,[data-theme="light"] .debo-sub{color:#9a5560}
[data-theme="light"] .crow.flag{background:linear-gradient(160deg,#fdecee,#ffffff 70%);border-color:rgba(226,58,76,.3)}
[data-theme="light"] .budget,[data-theme="light"] .card-off.lead{background:linear-gradient(160deg,#eaf1fb,#eef4f1);border-color:#cdddf2}
[data-theme="light"] .btn-pri{background:var(--tx);color:var(--bg)}
[data-theme="light"] .tg-seg.on{color:#ffffff}

/* ---------- header / nav glass + tracks ride variables now ----------
 * (`:root ` prefix lifts specificity above the original component rules
 *  further down the file, so these win regardless of source order.) */
:root .tape{background:var(--glass2)}
:root .chip{background:var(--glass)}
:root .followbtn{background:var(--glass)}
:root .nav{background:var(--navbg)}
:root .fs-head{background:var(--headbg)}
:root .card-p .ubar,:root .sbar .tr,:root .vi-bar,:root .delta .spark i{background:var(--track)}
:root .delta .spark i.h{background:var(--red)}

/* ---------- theme + language toggles (top bar) ---------- */
.tg-lang{display:flex;align-items:center;border:1px solid var(--line);border-radius:20px;overflow:hidden;height:27px}
.tg-seg{font-family:inherit;font-size:10.5px;font-weight:600;padding:0 9px;height:100%;
  background:transparent;border:none;color:var(--tx2);cursor:pointer;display:flex;align-items:center;line-height:1}
.tg-seg.on{background:var(--green);color:#04130c}
.tg-theme{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:transparent;
  color:var(--tx2);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.tg-theme svg{width:15px;height:15px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--tx);
  font-family:'Noto Sans Bengali',system-ui,sans-serif;font-size:15px;line-height:1.5}
.mono{font-family:'JetBrains Mono',monospace}
.boot{padding:40px;text-align:center;color:var(--tx2)}
#app{max-width:540px;margin:0 auto;min-height:100vh;padding-bottom:78px;position:relative}
.wash{position:absolute;inset:0 0 auto 0;height:240px;z-index:0;pointer-events:none;
  background:radial-gradient(120% 80% at 28% -12%,rgba(30,201,138,.18),transparent 62%)}

/* ---------- top bar ---------- */
.top{position:relative;z-index:2;display:flex;align-items:center;gap:11px;padding:20px 16px 10px}
.top .gr{font-size:11.5px;color:var(--tx2)}
.top .area{font-family:'Noto Serif Bengali',serif;font-size:22px;font-weight:700;line-height:1.05;
  display:flex;align-items:center;gap:7px;cursor:pointer}
.top .area .cv{font-size:13px;color:var(--tx2)}
.top .right{margin-left:auto;display:flex;align-items:center;gap:12px}
.top .bell{width:22px;height:22px;color:var(--tx2)}
.top .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#1ec98a,#0f7d57);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#04130c}

/* ---------- civic tape ---------- */
.tape{position:relative;z-index:2;display:flex;align-items:center;height:38px;margin:4px 0 6px;
  background:rgba(255,255,255,.03);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;font-size:12px}
.tape .stamp{flex:0 0 auto;z-index:3;background:var(--bg);height:100%;display:flex;align-items:center;
  padding:0 11px;color:var(--tx3);border-right:1px solid var(--line);font-size:10.5px;white-space:nowrap}
.tape .run{display:flex;white-space:nowrap;animation:mq 34s linear infinite}
.tape:hover .run{animation-play-state:paused}
.tape .it{display:inline-flex;align-items:center;gap:6px;padding:0 17px;border-right:1px solid #1b232b}
.tape .g{color:var(--green)} .tape .r{color:var(--red)} .tape .a{color:var(--amber)} .tape .b{color:var(--slate)}
.pulse{animation:pl 1.7s ease-in-out infinite}
@keyframes pl{50%{opacity:.45}}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- shelves ---------- */
.scroll{position:relative;z-index:1}
.sh{margin-top:20px}
.sh-h{display:flex;justify-content:space-between;align-items:baseline;padding:0 16px 9px}
.sh-h h3{font-size:16px;font-weight:700;margin:0}
.sh-h a{font-size:11.5px;color:var(--tx2);cursor:pointer}
.rail{display:flex;gap:11px;overflow-x:auto;padding:0 14px 3px;scroll-snap-type:x mandatory}
.rail::-webkit-scrollbar{height:0}
.rail.wrapcol{flex-direction:column;overflow:visible}

/* ---------- hero ---------- */
.hero{position:relative;z-index:1;margin:12px 14px 4px;border-radius:20px;padding:18px 17px 16px;
  background:linear-gradient(160deg,#16201b,#121820 70%);border:1px solid #243b30;overflow:hidden;cursor:pointer}
.hero::after{content:"";position:absolute;right:-44px;top:-44px;width:160px;height:160px;
  background:radial-gradient(circle,rgba(30,201,138,.16),transparent 70%)}
.hero .lbl{font-size:12px;color:var(--tx2);margin-bottom:3px}
.hero .big{font-family:'Noto Serif Bengali',serif;font-size:42px;font-weight:700;line-height:1.04;letter-spacing:-.5px}
.hero .big small{font-size:18px;color:var(--tx2);font-weight:600}
.split{display:flex;height:8px;border-radius:5px;overflow:hidden;margin-top:14px;gap:2px}
.split i{display:block;height:100%;border-radius:2px}
.split-l{display:flex;justify-content:space-between;font-size:10.5px;color:var(--tx3);margin-top:5px}
.open-row{margin-top:14px;display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--green);font-weight:600}

/* ---------- chips (honesty grammar) ---------- */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.chip{font-size:11px;padding:3px 9px;border-radius:20px;background:rgba(255,255,255,.05);
  border:1px solid var(--line);color:var(--tx2);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.chip .d{width:6px;height:6px;border-radius:50%}
.chip.dn{color:var(--red);border-color:rgba(255,86,103,.3);background:rgba(255,86,103,.08)}
.chip.ok{color:var(--green);border-color:rgba(30,201,138,.3);background:rgba(30,201,138,.08)}
.chip.warn{color:var(--amber);border-color:rgba(236,180,78,.3);background:rgba(236,180,78,.08)}
.chip.tier{color:var(--slate)}

/* ---------- recipient cards ---------- */
.card-r{flex:0 0 auto;width:170px;border-radius:16px;padding:13px;background:var(--s1);
  border:1px solid var(--line);scroll-snap-align:start;cursor:pointer;position:relative}
.card-r .rank{font-size:10px;color:var(--tx3)}
.card-r .nm{font-size:13.5px;font-weight:600;margin-top:2px;line-height:1.25;min-height:34px}
.card-r .amt{font-family:'Noto Serif Bengali',serif;font-size:21px;font-weight:700;margin-top:6px;color:var(--green)}
.card-r .wk{font-size:10.5px;color:var(--tx2);margin-top:2px}
.card-r .cc{font-size:9px;color:var(--tx3);margin-top:9px;border-top:1px solid var(--line);padding-top:7px;
  display:flex;justify-content:space-between;align-items:center}

/* ---------- department cards ---------- */
.dept-card{flex:0 0 auto;width:162px;border-radius:16px;padding:13px;background:var(--s1);
  border:1px solid var(--line);scroll-snap-align:start;cursor:pointer;position:relative;overflow:hidden}
.dc-bar{position:absolute;top:0;left:0;width:100%;height:3px}
.dc-code{font-size:11px;color:var(--tx2);font-weight:600;margin-top:3px}
.dc-lbl{font-size:11px;color:var(--tx3);margin-top:3px;min-height:28px;line-height:1.3}
.dc-amt{font-family:'Noto Serif Bengali',serif;font-size:19px;font-weight:700;margin-top:6px}
.dc-cnt{font-size:10.5px;color:var(--tx2);margin-top:2px}
.dotc{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}

/* ---------- area briefing: "যা জানা দরকার" signal cards ---------- */
.card-sig{flex:0 0 auto;width:280px;border-radius:16px;padding:14px;scroll-snap-align:start;
  background:linear-gradient(160deg,#241d10,#15171c 78%);border:1px solid rgba(236,180,78,.34)}
.card-sig.borrowed{opacity:.96;border-style:dashed}
.card-sig .sig-k{font-size:10.5px;color:var(--amber);font-weight:700;letter-spacing:.02em}
.card-sig .sig-h{font-size:14.5px;font-weight:700;margin-top:8px;line-height:1.35}
.card-sig .sig-sub{font-size:11.5px;color:var(--tx2);margin-top:6px;line-height:1.4}
.card-sig .sig-sub.dim{color:var(--tx3)}
.card-sig .sig-row{font-size:12px;color:var(--tx);margin-top:9px}
.card-sig .sig-row .dim{color:var(--tx2)}
.card-sig .sig-amt{font-family:'Noto Serif Bengali',serif;font-size:18px;font-weight:700;color:var(--amber);margin-top:7px}
.card-sig .chips{margin-top:10px}
.card-sig .sig-cav{font-size:10.5px;color:var(--tx2);margin-top:9px;line-height:1.5}
.card-sig .srcbtn{margin-top:10px}
.card-sig .sig-src{font-size:10px;color:var(--tx3);margin-top:9px}
[data-theme="light"] .card-sig{background:linear-gradient(160deg,#fbf2dd,#fbf6ef 78%);border-color:rgba(176,125,22,.4)}

/* ---------- ✦ Bhaista (the live source-bound explainer) ---------- */
.card-bh{border-radius:16px;padding:15px 16px;margin:0 16px;
  background:linear-gradient(160deg,#101a22,#15171c 80%);border:1px solid rgba(40,199,199,.34)}
.card-bh .bh-k{font-size:11px;color:var(--cyan);font-weight:700;letter-spacing:.02em}
.bh-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.bh-chip{font-size:11.5px;padding:5px 11px;border-radius:999px;cursor:pointer;
  color:var(--tx2);background:transparent;border:1px solid var(--line)}
.bh-chip.on{color:#04130c;background:var(--cyan);border-color:var(--cyan);font-weight:700}
.bh-body{margin-top:12px;min-height:38px}
.bh-text{font-size:14px;line-height:1.62;color:var(--tx);white-space:pre-wrap}
.bh-srcs{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.bh-foot{font-size:10.5px;color:var(--tx3);margin-top:11px;line-height:1.5}
.bh-load{font-size:13px;color:var(--cyan);opacity:.85}
.bh-err{font-size:12.5px;color:var(--tx2)}
[data-theme="light"] .card-bh{background:linear-gradient(160deg,#e7f6f6,#f4f6f5 80%);border-color:rgba(13,156,156,.4)}

/* ---------- watch cards ---------- */
.card-w{flex:0 0 auto;width:280px;border-radius:16px;padding:14px;scroll-snap-align:start;cursor:pointer;
  background:linear-gradient(160deg,#231116,#15171c 75%);border:1px solid rgba(255,86,103,.32)}
.card-w .wt{display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--red);font-weight:700;letter-spacing:.02em}
.card-w .nm{font-size:15px;font-weight:700;margin-top:8px;line-height:1.25}
.card-w .ds{font-size:11.5px;color:#d7b3b8;margin-top:5px;line-height:1.45}
.card-w .foot{display:flex;align-items:center;gap:8px;margin-top:11px}
.card-w .src{margin-left:auto;font-size:11px;color:#d7b3b8}

/* ---------- official debarment (national) ---------- */
.debofx{margin:0 14px;border-radius:16px;padding:15px;cursor:pointer;
  background:linear-gradient(160deg,#231116,#15171c 75%);border:1px solid rgba(255,86,103,.32)}
.debo-big{font-family:'Noto Serif Bengali',serif;font-size:30px;font-weight:700;color:var(--red);margin-top:8px;line-height:1.1}
.debo-u{font-family:'Noto Sans Bengali',sans-serif;font-size:12px;color:#d7b3b8;font-weight:400;margin-left:6px}
.debo-sub{font-size:11.5px;color:var(--tx2);margin-top:7px;line-height:1.5}

/* ---------- delta (whats changed) ---------- */
.delta{margin:0 14px;border-radius:16px;padding:15px;background:var(--s1);border:1px solid var(--line)}
.delta .big{font-size:16px;font-weight:700}
.delta .big b{color:var(--red)}
.delta .ex{font-size:11.5px;color:var(--tx2);margin-top:6px;line-height:1.5}
.delta .spark{display:flex;align-items:flex-end;gap:6px;height:36px;margin-top:12px}
.delta .spark i{flex:1;background:#2a323b;border-radius:2px;min-height:4px}
.delta .spark i.h{background:var(--red)}
.delta .why{margin-top:11px;font-size:12px;color:var(--green);font-weight:600;cursor:pointer}

/* ---------- project cards ---------- */
.card-p{flex:0 0 auto;width:296px;border-radius:16px;padding:14px;background:var(--s1);
  border:1px solid var(--line);scroll-snap-align:start;cursor:pointer}
.card-p .ag{font-size:10.5px;color:var(--teal);font-weight:600}
.card-p .tl{font-size:13px;font-weight:600;margin-top:5px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:54px}
.card-p .util{display:flex;align-items:center;gap:9px;margin-top:11px}
.card-p .ring{font-size:11px;color:var(--tx2)}
.card-p .ubar{flex:1;height:7px;border-radius:4px;background:#222a32;overflow:hidden}
.card-p .ubar i{display:block;height:100%;border-radius:4px}
.card-p .meta{display:flex;justify-content:space-between;font-size:10.5px;color:var(--tx3);margin-top:10px;
  border-top:1px solid var(--line);padding-top:8px}
.card-p .flagdot{color:var(--red);font-weight:600}

/* ---------- notable / receipt strip ---------- */
.notable{margin:0 14px;display:flex;flex-direction:column;gap:9px}
.note-c{border-radius:14px;padding:13px 14px;background:var(--s1);border:1px solid var(--line);font-size:13px;line-height:1.5}
.note-c .k{font-size:10px;color:var(--tx3);letter-spacing:.04em;margin-bottom:4px}

/* ---------- wrapped ---------- */
.wrap{margin:22px 14px 8px;border-radius:18px;padding:17px;cursor:pointer;
  background:linear-gradient(120deg,#1b6b4e,#0f3b6b 55%,#3a1d63);position:relative;overflow:hidden}
.wrap .k{font-size:11px;color:rgba(255,255,255,.72);letter-spacing:.05em}
.wrap .t{font-family:'Noto Serif Bengali',serif;font-size:19px;font-weight:700;margin-top:4px;color:#fff;line-height:1.4}
.wrap .go{margin-top:11px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#fff;
  background:rgba(255,255,255,.16);padding:6px 13px;border-radius:20px}

/* ---------- honest absence ---------- */
.absent{margin:10px 14px;border-radius:14px;padding:14px;border:1px dashed var(--line2);color:var(--tx2);font-size:13px}

/* ---------- bottom nav ---------- */
.nav{position:fixed;bottom:0;left:0;right:0;max-width:540px;margin:0 auto;display:flex;
  background:rgba(10,12,15,.92);border-top:1px solid var(--line);padding:8px 0 11px;backdrop-filter:blur(10px);z-index:5}
.nav a{flex:1;text-align:center;color:var(--tx3);font-size:9.5px;text-decoration:none;cursor:pointer}
.nav a.on{color:var(--green)}
.nav a .ni{display:block;margin:0 auto 3px;width:22px;height:22px}
.nav .tk{font-size:18px;font-weight:700;line-height:22px;height:22px;display:block;margin-bottom:3px}

/* ---------- drawer (the descent) ---------- */
.drawer{position:fixed;inset:0;z-index:50;display:none}
.drawer.open{display:block}
.drawer-scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
.drawer-sheet{position:absolute;left:0;right:0;bottom:0;max-width:540px;margin:0 auto;max-height:88vh;
  background:var(--bg);border-radius:20px 20px 0 0;border:1px solid var(--line);border-bottom:none;
  display:flex;flex-direction:column;animation:up .26s cubic-bezier(.2,.8,.2,1)}
@keyframes up{from{transform:translateY(100%)}to{transform:translateY(0)}}
.drawer-grip{width:40px;height:4px;border-radius:3px;background:var(--line2);margin:9px auto 2px}
.drawer-head{display:flex;align-items:center;gap:10px;padding:6px 16px 10px;border-bottom:1px solid var(--line)}
.drawer-head h2{font-size:16px;font-weight:700;margin:0;flex:1;line-height:1.3}
.drawer-x{background:none;border:none;color:var(--tx2);font-size:16px;cursor:pointer}
.drawer-body{overflow-y:auto;padding:14px 16px 30px}

/* drawer breadcrumb + rows */
.crumb{font-size:11px;color:var(--tx2);margin-bottom:12px}
.crumb b{color:var(--tx)}
.flowrow{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line)}
.flowrow .l{font-size:13px}
.flowrow .v{font-family:'Noto Serif Bengali',serif;font-size:15px;font-weight:600}
.flowrow .v.g{color:var(--green)} .flowrow .v.a{color:var(--amber)} .flowrow .v.s{color:var(--slate)}
.subhead{font-size:11px;color:var(--tx3);letter-spacing:.05em;margin:16px 0 8px;text-transform:uppercase}
.crow{border-radius:11px;padding:11px;background:var(--s1);border:1px solid var(--line);margin-bottom:8px}
.crow.flag{border-color:rgba(255,86,103,.34);background:linear-gradient(160deg,#1c1013,#14181e 70%)}
.crow .ctop{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.crow .cn{font-size:13px;font-weight:600}
.crow .ca{font-family:'Noto Serif Bengali',serif;font-size:14px;font-weight:600;white-space:nowrap}
.crow .cm{font-size:10.5px;color:var(--tx3);margin-top:5px;display:flex;gap:10px;flex-wrap:wrap}
.crow .badge{display:inline-block;font-size:9.5px;font-weight:700;color:var(--red);background:rgba(255,86,103,.12);
  border:1px solid rgba(255,86,103,.3);border-radius:5px;padding:1px 6px;margin-top:7px}
.srcbtn{display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:11.5px;color:var(--green);
  text-decoration:none;border:1px solid rgba(30,201,138,.3);background:rgba(30,201,138,.07);
  border-radius:8px;padding:5px 10px}
.split-bars{margin-top:6px}
.sbar{margin-bottom:11px;cursor:pointer}
.sbar .sl{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px}
.sbar .sl b{font-family:'Noto Serif Bengali',serif}
.sbar .tr{height:9px;border-radius:5px;background:#222a32;overflow:hidden}
.sbar .tr i{display:block;height:100%;border-radius:5px}
.followbtn{font-size:11.5px;padding:6px 13px;border-radius:20px;border:1px solid var(--line2);
  color:var(--tx);background:rgba(255,255,255,.05);cursor:pointer;font-family:inherit}
.followbtn.on{background:rgba(30,201,138,.16);color:var(--green);border-color:rgba(30,201,138,.4)}
.btn-pri{font-size:11.5px;padding:6px 13px;border-radius:20px;background:#fff;color:#111;border:none;
  font-weight:600;cursor:pointer;font-family:inherit}

/* ---------- full-screen overlays (profile · wrapped · switcher) ---------- */
.fs{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto;display:none}
.fs.open{display:block}
.fs-head{position:sticky;top:0;display:flex;align-items:center;gap:8px;padding:14px 14px 12px;
  background:rgba(10,12,15,.93);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:2;
  max-width:540px;margin:0 auto}
.fs-back{background:none;border:none;color:var(--tx);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.fs-title{font-size:15px;font-weight:600}
/* profile */
.prof{padding:16px 16px 40px;max-width:540px;margin:0 auto}
.prof-load{color:var(--tx2);padding:30px;text-align:center}
.prof-head .prof-name{font-family:'Noto Serif Bengali',serif;font-size:25px;font-weight:700;line-height:1.2}
.prof-note{font-size:12px;color:var(--amber);background:rgba(236,180,78,.08);
  border:1px solid rgba(236,180,78,.26);border-radius:10px;padding:9px 11px;margin:12px 0 0}
.prof-vi{font-size:13px;color:var(--tx);margin:2px 0 8px}
.prof-vi b{font-family:'Noto Serif Bengali',serif}
.vi-bar{position:relative;height:9px;border-radius:5px;background:#222a32;margin:4px 0 6px}
.vi-bar .lo{position:absolute;left:0;top:0;height:100%;background:var(--green);border-radius:5px;opacity:.5}
.vi-bar .pt{position:absolute;top:-3px;width:3px;height:15px;background:var(--green);border-radius:2px}
.prof-fine{font-size:10.5px;color:var(--tx3);margin-top:5px;line-height:1.5}
.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sig-cell{background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px}
.sig-cell.a{border-color:rgba(236,180,78,.35)}
.sig-cell .sv{font-family:'Noto Serif Bengali',serif;font-size:20px;font-weight:700}
.sig-cell.a .sv{color:var(--amber)}
.sig-cell .sl{font-size:11px;color:var(--tx2);margin-top:2px}
/* wrapped */
.fs.wrapped{background:#06070a}
.wf-x{position:fixed;top:14px;right:16px;z-index:5;background:rgba(255,255,255,.12);border:none;color:#fff;
  width:34px;height:34px;border-radius:50%;font-size:14px;cursor:pointer}
.wf-scroll{height:100vh;overflow-y:auto;scroll-snap-type:y mandatory;scroll-behavior:smooth}
.wf-scroll::-webkit-scrollbar{width:0}
.wf-frame{height:100vh;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;
  align-items:center;text-align:center;padding:34px;
  background:radial-gradient(120% 70% at 50% 22%,rgba(30,201,138,.13),transparent 60%)}
.wf-frame.wf-down{background:radial-gradient(120% 70% at 50% 22%,rgba(255,86,103,.15),transparent 60%)}
.wf-frame.wf-warn{background:radial-gradient(120% 70% at 50% 22%,rgba(236,180,78,.16),transparent 60%)}
.wf-frame.wf-intro,.wf-frame.wf-end{background:linear-gradient(150deg,#103b2c,#0c2c50 58%,#241447)}
.wf-k{font-size:13px;color:var(--tx2);letter-spacing:.05em;margin-bottom:16px}
.wf-big{font-family:'Noto Serif Bengali',serif;font-size:48px;font-weight:700;line-height:1.08}
.wf-frame.wf-intro .wf-k,.wf-frame.wf-end .wf-k{color:rgba(255,255,255,.72)}
.wf-frame.wf-intro .wf-big,.wf-frame.wf-end .wf-big{color:#fff}
.wf-sub{font-size:14px;color:var(--tx2);margin-top:16px;max-width:300px}
.wf-share{background:#06070a}
/* switcher */
.sw{padding:16px;max-width:540px;margin:0 auto}
.sw-input{width:100%;padding:12px 14px;border-radius:12px;background:var(--s1);border:1px solid var(--line2);
  color:var(--tx);font-family:inherit;font-size:15px;outline:none}
.sw-input:focus{border-color:var(--green)}
.sw-results{margin-top:12px}
.sw-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 4px;
  background:none;border:none;border-bottom:1px solid var(--line);color:var(--tx);font-family:inherit;
  font-size:15px;cursor:pointer;text-align:left}
.sw-tier{font-size:11px;color:var(--tx3)}

/* ============================================================ *
 * LANDING — "দেশের দুয়ার / The Country's Doorway" (the area picker)
 * The front door: a national pulse + an in-place descent through the
 * country. All on existing tokens, so it themes (light/dark) for free.
 * ============================================================ */
.ld-wrap{position:relative;z-index:1}
.ld-top{align-items:flex-start}
.ld-mark{font-family:'Noto Serif Bengali',serif;font-size:22px;font-weight:700;line-height:1.1}
.ld-flagline{width:40px;height:2px;border-radius:2px;background:var(--red);margin-top:6px;opacity:.9}
.ld-top .right{align-items:center}

/* returning-user ribbon */
.ld-resume{margin:6px 14px 0;display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;
  background:var(--s1);border:1px solid var(--line)}
.ld-resume-k{font-size:10.5px;color:var(--tx2)}
.ld-resume-nm{font-family:'Noto Serif Bengali',serif;font-size:16px;font-weight:700;line-height:1.25;margin-top:1px}
.ld-resume-go{margin-left:auto;font-family:inherit;font-size:12px;font-weight:600;color:var(--green);cursor:pointer;
  background:rgba(30,201,138,.1);border:1px solid rgba(30,201,138,.32);border-radius:20px;padding:8px 14px;white-space:nowrap}

/* viewport 1 — the held breath */
.ld-hero{min-height:60vh;display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;padding:30px 22px 26px;gap:2px}
.ld-kick{font-size:12px;color:var(--tx2);letter-spacing:.04em;margin-bottom:4px}
.ld-h1{font-family:'Noto Serif Bengali',serif;font-weight:700;font-size:clamp(28px,7.6vw,40px);
  line-height:1.22;letter-spacing:-.4px;margin-bottom:10px}
.ld-fig{font-family:'Noto Serif Bengali',serif;font-weight:700;color:var(--green);
  font-size:clamp(38px,12vw,60px);line-height:1.12;letter-spacing:-.5px}
.ld-cap{font-size:12.5px;color:var(--tx2);margin-top:4px;line-height:1.5;max-width:330px}
/* the honest four-source bar (proportions only, never summed) */
.ld-split{width:100%;max-width:380px;margin:18px auto 0}
.ld-bar{display:flex;gap:2px;height:11px;border-radius:6px;overflow:hidden}
.ld-seg{min-width:7px;border-radius:2px;display:block}
.ld-bar-l{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 12px;margin-top:9px;
  font-size:11px;color:var(--tx2)}
.ld-bar-l span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.ld-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.ld-basischip{margin-top:12px}
.ld-descend-cta{margin-top:22px;font-family:inherit;font-size:13px;font-weight:600;color:var(--green);
  background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.ld-bob{display:inline-block;animation:ld-bob 1.9s ease-in-out infinite}

/* viewport 2 — the descent */
.ld-descent{padding:8px 0 4px;scroll-margin-top:8px}
.ld-sub{padding:0 16px}
.ld-subline{font-size:12px;color:var(--tx2);padding:0 16px 4px;margin-top:-4px}
.ld-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 16px 12px;font-size:12.5px}
.ld-crumb-seg{font-family:inherit;font-size:12.5px;color:var(--tx2);background:none;border:none;cursor:pointer;padding:2px 2px}
.ld-crumb-seg.on{color:var(--tx);font-weight:700}
.ld-crumb-seg:disabled{cursor:default}
.ld-crumb-sep{color:var(--tx3);font-size:11px}
.ld-crumb-reset{margin-left:auto;font-family:inherit;font-size:11px;color:var(--tx2);cursor:pointer;
  background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:4px 10px}
.ld-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0 14px}

/* the pinned national tile */
.ld-pin{grid-column:1/-1;position:relative;overflow:hidden;border-radius:var(--radius);
  background:linear-gradient(150deg,var(--s2),var(--s1));border:1px solid var(--line2);
  cursor:pointer;font-family:inherit;text-align:left;padding:15px 16px}
.ld-pin-row{display:flex;align-items:center;gap:12px}
.ld-pin-go{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--green);white-space:nowrap}

/* an area tile */
.ld-tile{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--s1);
  border:1px solid var(--line);scroll-snap-align:start}
.ld-tile.soon{background:var(--glass2);border-style:dashed;border-color:var(--line2)}
.ld-tile-bar{position:absolute;top:0;left:0;right:0;height:3px;background:var(--green)}
.ld-tile.soon .ld-tile-bar{background:var(--line2)}
.ld-tile-main{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:inherit;color:var(--tx);padding:15px 13px 13px}
.ld-tile-nm{font-family:'Noto Serif Bengali',serif;font-size:17px;font-weight:700;line-height:1.3}
.ld-tile-sub{font-size:10.5px;color:var(--tx2);margin-top:3px;line-height:1.35}
.ld-tile-fig{font-family:'Noto Serif Bengali',serif;font-size:15px;font-weight:700;color:var(--green);margin-top:9px}
.ld-tile-fig.dim{color:var(--tx2);font-size:13.5px}
.ld-tile-n{font-size:10.5px;color:var(--tx3);margin-top:3px}
.ld-tile-go{font-size:11px;font-weight:600;color:var(--green);margin-top:11px}
.ld-tile.soon .ld-tile-go{color:var(--tx2)}
.ld-tile-commit{position:absolute;bottom:11px;right:11px;font-family:inherit;font-size:10.5px;font-weight:700;
  color:var(--green);background:rgba(30,201,138,.1);border:1px solid rgba(30,201,138,.3);
  border-radius:20px;padding:5px 10px;cursor:pointer}

.ld-or{display:block;margin:18px auto 4px;font-family:inherit;font-size:12.5px;color:var(--tx2);
  background:none;border:none;cursor:pointer}
.ld-foot{padding:22px 18px 30px;text-align:center}
.ld-foot-src{font-size:10.5px;color:var(--tx3);line-height:1.5;max-width:330px;margin:0 auto}
.ld-foot-tg{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:14px}

/* landing motion */
@keyframes ld-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ld-rise{animation:ld-rise .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes ld-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ld-in{animation:ld-in .42s cubic-bezier(.2,.8,.2,1) both}
@keyframes ld-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ---------- accessibility: respect reduced-motion ---------- */
@media (prefers-reduced-motion: reduce){
  .tape .run, .pulse, .drawer-sheet, .wf-scroll, .ld, .dot,
  .ld-rise, .ld-in, .ld-bob { animation: none !important; }
  html{scroll-behavior:auto}
}
/* ---------- touch targets (>=44px) ---------- */
.drawer-x{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.fs-back{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.wf-x{width:44px;height:44px}
.followbtn,.btn-pri,.ld-descend-cta,.ld-or,.ld-resume-go,.ld-tile-commit{min-height:40px}
.nav a{min-height:44px;display:flex;flex-direction:column;justify-content:center}
[inert]{pointer-events:none}

/* ---------- officials / candidates ---------- */
.card-off{flex:0 0 auto;width:192px;border-radius:16px;padding:13px;background:var(--s1);
  border:1px solid var(--line);scroll-snap-align:start;cursor:pointer}
.card-off.lead{width:224px;background:linear-gradient(160deg,#14202b,#121820);border-color:#21364a;cursor:default}
.off-k{font-size:10.5px;color:var(--teal);font-weight:600}
.off-pm{font-size:13px;font-weight:600;margin-top:9px}
.off-sub{font-size:11px;color:var(--tx2);margin-top:3px}
.off-pb{font-size:10.5px;color:var(--tx3);margin-top:9px;line-height:1.55}
.off-grp{font-size:9.5px;color:var(--tx3)}
.off-name{font-size:14px;font-weight:600;margin-top:3px;min-height:36px;line-height:1.25}
.off-con{font-size:10.5px;color:var(--tx2)}
.off-amt{font-family:'Noto Serif Bengali',serif;font-size:17px;font-weight:700;margin-top:7px;color:var(--amber)}
.card-off .chips{margin-top:9px}
/* ---------- national budget ---------- */
.budget{margin:0 14px;border-radius:16px;padding:15px;background:linear-gradient(160deg,#13203a,#121820);border:1px solid #21345a;cursor:pointer}
.bud-k{font-size:12px;color:var(--teal)}
.bud-row{display:flex;gap:28px;margin-top:9px}
.bud-v{font-family:'Noto Serif Bengali',serif;font-size:21px;font-weight:700}
.bud-v.g{color:var(--green)}
.bud-l{font-size:10.5px;color:var(--tx3);margin-top:2px}
.bud-note{font-size:11px;color:var(--tx2);margin-top:10px;line-height:1.55}
/* budget flow (national -> area) */
.bf{margin-top:11px}
.bf-step{position:relative;margin:0}
.bf-bar{height:32px;border-radius:8px;min-width:120px;
  background:linear-gradient(90deg,rgba(55,168,230,.55),rgba(55,168,230,.12))}
.bf-step.hl .bf-bar{background:linear-gradient(90deg,rgba(30,201,138,.62),rgba(30,201,138,.16))}
.bf-lab{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;gap:8px}
.bf-name{font-size:11.5px;color:var(--tx)}
.bf-val{font-family:'Noto Serif Bengali',serif;font-size:13.5px;font-weight:700;white-space:nowrap}
.bf-step.hl .bf-val{color:var(--green)}
.bf-arrow{font-size:9.5px;color:var(--tx3);padding:3px 0 3px 6px}
.lg-note{font-size:11.5px;color:var(--amber);background:rgba(236,180,78,.08);border:1px solid rgba(236,180,78,.22);
  border-radius:9px;padding:8px 11px;margin:0 14px 9px;line-height:1.55}
.sh .lg-note{margin-left:0;margin-right:0}
.off-cav{font-size:9.5px;color:var(--tx3);margin-top:9px;border-top:1px solid var(--line);padding-top:7px;line-height:1.4}
.nu-src{font-size:10px;color:var(--teal);margin-top:5px}

/* ---------- aid ---------- */
.card-aid{margin:0 14px;border-radius:16px;padding:15px;background:var(--s1);border:1px solid var(--line);cursor:pointer}
.aid-k{font-size:12px;color:var(--tx2)}
.aid-row{display:flex;gap:26px;margin-top:9px}
.aid-v{font-family:'Noto Serif Bengali',serif;font-size:20px;font-weight:700}
.aid-v.g{color:var(--green)}
.aid-l{font-size:10.5px;color:var(--tx3);margin-top:2px}
.card-aid .chips{margin-top:11px}
/* ---------- civic ---------- */
.card-civic{flex:0 0 auto;width:162px;border-radius:14px;padding:13px;background:var(--s1);
  border:1px solid var(--line);scroll-snap-align:start;cursor:pointer}
.cv-k{font-size:11px;color:var(--tx2)}
.cv-v{font-family:'Noto Serif Bengali',serif;font-size:24px;font-weight:700;margin-top:7px}
.cv-v.sm{font-size:15px}
.cv-l{font-size:10px;color:var(--tx3);margin-top:5px;line-height:1.45}
