/* BankPulse Theme v4 — "Light Editorial / Presentation System v1" (23 Aug 2026)
   v3 fixed the colors; v4 fixes HOW information is presented, per the
   founder's 23 Aug order and PRESENTATION_SYSTEM.md:
   - Display serif for headlines ONLY; system sans for body, data, labels
     (PRODUCT_CHARTER §24 finally executed: "serif for headlines, highly
     legible sans for body and data").
   - Real type scale: kicker 11 / meta 12.5 / body 14.5 / card head 17.5 /
     feature 21 / page title 24. Uppercase only on short labels.
   - Section headers become quiet sans labels; cards carry exactly one
     metadata line. No pills inside cards.
   Inlined into pages by apply_chrome.py (comments stripped there).
   Custom property names kept from Direction C for inline var() fallbacks. */

:root{
  --bg:#f6f3eb; --bg2:#efece2; --panel:#ffffff; --panel2:#f3f0e7;
  --line:#e3ded2; --line2:#d3ccba;
  --ink:#1d222b; --dim:#5a6472; --faint:#5f6a7a;
  --navy:#101c33; --gold:#8a6d2f; --gold2:#8a6d2f;
  --warn:#7a5a10; --link:#2e6e62; --good:#1b6e3c; --bad:#a3271f;
  --must:#8a1f11;
  --radius:10px; --radius-sm:7px; --radius-badge:4px; --radius-pill:999px; --radius-lg:12px;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Charter,Georgia,serif;
}

html{scroll-behavior:smooth}
body{
  background:var(--bg) !important;
  color:var(--ink) !important;
  font-family:var(--sans) !important;
  font-size:14.5px;
  -webkit-font-smoothing:antialiased;
  letter-spacing:0;
  line-height:1.55;
}
.wrap{max-width:720px}

/* ---------- page top: plain title band, no second masthead ---------- */
header{
  background:transparent !important;
  border-bottom:1px solid var(--line2);
  border-radius:0;
  margin:0 0 14px !important;
  padding:18px 0 12px !important;
}
h1{color:var(--navy) !important;font-weight:700 !important;letter-spacing:0;font-family:var(--serif) !important;font-size:1.65em !important}
header .tag{color:var(--dim) !important}
header .tag a{color:var(--link) !important}
header p{color:var(--dim) !important;font-family:var(--sans)}
#langtoggle{background:transparent !important;color:var(--navy) !important;border:1px solid var(--line2) !important}

/* ---------- headings: quiet sans section labels ---------- */
h2{
  color:var(--dim) !important;
  border-bottom:1px solid var(--line2) !important;
  font-weight:600 !important;
  font-family:var(--sans) !important;
  font-size:.85em !important;
  text-transform:uppercase;
  letter-spacing:.09em;
  padding-bottom:5px !important;
}
footer.bp-foot h2,.bp-foot h2{color:#cfd8e6 !important;border-bottom:1px solid rgba(207,216,230,.3) !important}
/* Rule pages, 3 Sep 2026: the RBI chapter a run of points sits under. A
   little darker and larger than a section label, so a reader scrolling a
   long rulebook can see where one chapter ends and the next begins. The
   weight line under it (Must know / Do it / Background) is the quieter of
   the two. */
h2.chap{color:var(--navy) !important;font-size:.95em !important;
  border-bottom:2px solid var(--line2) !important;margin-top:34px}
h3.wgt{font-family:var(--sans) !important;color:var(--warn) !important;font-size:.74em;
  letter-spacing:.14em;text-transform:uppercase;margin:18px 0 0}
h3{color:var(--navy) !important;font-weight:700;font-family:var(--serif)}
.tag{color:var(--dim) !important}
a{color:var(--link)}
nav a{color:var(--gold2) !important;font-weight:normal;border-radius:6px;padding:6px 8px !important;font-family:var(--sans)}
nav a:hover{background:var(--panel2)}
nav a.navactive{color:var(--navy) !important;font-weight:bold}

/* ---------- cards: the four-line atomic unit ---------- */
.card,.item,.yearcard{
  background:var(--panel) !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  box-shadow:none !important;
  transition:none;
}
.card:hover,.item:hover{border-color:var(--line2) !important;transform:none}
.card{padding:13px 16px !important}
.ti{
  color:var(--ink) !important;font-weight:700 !important;
  font-family:var(--serif) !important;
  font-size:1.2em !important;line-height:1.35 !important;
  margin:2px 0 4px;
}
.item a{color:var(--navy) !important;font-family:var(--serif);font-size:1.08em}
.why{color:var(--ink) !important;font-style:normal !important;font-size:.98em !important;line-height:1.5}
.why b,.why .lead{font-weight:600;color:var(--navy)}
.kicker{
  font-family:var(--sans);font-size:.85em;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;color:var(--dim);
  margin-bottom:2px;
}
.card-must-read .kicker{color:var(--must)}
/* Per-card time stamp (founder's order, 24 Aug 2026). Sits inside .src so it
   inherits the colour that already passes contrast on both the dark brief and
   the light library. The "x min ago" half is written by the browser from
   data-ts, never baked into the HTML, so it cannot go stale. */
.bp-when{display:block;margin-top:2px;font-size:.94em;font-variant-numeric:tabular-nums}
.card.fyi-line .bp-when{display:inline;margin-top:0;margin-left:6px}
.bp-when .bp-ago{font-weight:600;border-radius:4px;padding:0 4px;margin-left:-4px}
/* Recently added: the age is the news, so it carries the accent and moves.
   #14653F on white is 7.1:1, and 6.0:1 at the brightest point of the
   highlight, so the text stays readable through the whole animation. */
.bp-fresh .bp-ago{color:#14653F;font-weight:700}
.bp-justin .bp-ago{color:#0F5132}
/* The page freshness line sits on the navy masthead, where the dark green
   above measures 2.2:1. These lighter greens measure 10.2:1 on that navy and
   stay above 5:1 through the brightest frame of the highlight. */
.bp-when-head.bp-fresh .bp-ago{color:#8FE0B8}
.bp-when-head.bp-justin .bp-ago{color:#B6EED2}
.bp-when-head.bp-fresh::before{background:#6FD3A3}
.bp-fresh::before{content:"";display:inline-block;width:6px;height:6px;
  border-radius:50%;background:#2E9E6B;margin-right:5px;vertical-align:middle}
@media (prefers-reduced-motion:no-preference){
  .bp-fresh::before{animation:bp-pulse 2.4s ease-in-out infinite}
  .bp-justin::before{animation-duration:1.2s}
  .bp-fresh .bp-ago{animation:bp-breathe 3.2s ease-in-out infinite}
  .bp-justin .bp-ago{animation-duration:1.8s}
  /* Declared last so it wins over the breathing rule at equal specificity:
     the flash fires the moment the count actually changes. */
  .bp-when .bp-ago.bp-tick{animation:bp-tickflash 1s ease-out 1}
}
@keyframes bp-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes bp-breathe{0%,100%{background:rgba(46,158,107,0)}
  50%{background:rgba(46,158,107,.16)}}
@keyframes bp-tickflash{0%{background:rgba(46,158,107,.42)}
  100%{background:rgba(46,158,107,0)}}
@media print{.bp-fresh::before{display:none}
  .bp-fresh .bp-ago,.bp-justin .bp-ago{color:inherit;background:none}}
.src{color:var(--dim) !important;font-family:var(--sans);font-size:.86em !important;margin-top:7px !important}
.src a{color:var(--link) !important;text-decoration:none;border-bottom:1px solid var(--line2)}
footer{color:var(--dim) !important;border-top:1px solid var(--line2) !important;font-family:var(--sans)}

/* status accents */
.card-must-read{border-left:3px solid var(--must) !important}
.card-good-to-know{border-left:3px solid var(--warn) !important}
.card-fyi{border-left:3px solid var(--line2) !important}
.item.repealed,.card.repealed{opacity:.6;filter:saturate(.6)}
.repealed-badge{background:var(--panel2) !important;color:var(--dim) !important;border:1px solid var(--line2)}
.imp{border-radius:var(--radius-badge) !important;letter-spacing:.06em;font-weight:700 !important;font-family:var(--sans);text-transform:uppercase;font-size:.84em !important}
.badge{background:var(--navy) !important;color:#fff !important;font-weight:600}
.cat{display:none !important}     /* duplicate of the why-line: banned (PRESENTATION_SYSTEM §3) */
.chip,.rolechip{font-family:var(--sans)}
.card .chip{display:none !important} /* pills never appear inside cards */

/* ---------- trust band: one quiet line ---------- */
.trust{
  background:transparent !important;
  border:none !important;
  border-left:3px solid var(--line2) !important;
  color:var(--dim) !important;
  border-radius:0 !important;
  padding:2px 12px !important;
  font-size:.86em !important;
  font-family:var(--sans);
}
.trust b{color:var(--navy) !important}

/* ---------- FYI digest fold ---------- */
details.fyifold{margin:8px 0}
details.fyifold>summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;
  color:var(--dim);font-weight:600;font-size:.85em;
  text-transform:uppercase;letter-spacing:.09em;
  border-bottom:1px solid var(--line2);padding:6px 0;font-family:var(--sans);
}
details.fyifold>summary::-webkit-details-marker{display:none}
details.fyifold>summary::after{content:"▸";color:var(--gold2);font-size:1em;transition:transform .15s ease}
details.fyifold[open]>summary::after{transform:rotate(90deg)}
details.fyifold>summary .foldnote{color:var(--faint);font-weight:normal;text-transform:none;letter-spacing:0;font-size:.95em;margin-left:auto}
.card.fyi-line{
  padding:8px 12px !important;margin:6px 0 !important;
  border-left:3px solid var(--line2) !important;
  font-size:.95em;
}
.card.fyi-line .ti{font-weight:normal !important;display:inline;font-family:var(--sans) !important;font-size:1em !important}
.card.fyi-line .src{display:inline;margin-left:6px;margin-top:0 !important}

/* ---------- filter bar / inputs / buttons ---------- */
#filterbar{
  background:var(--panel) !important;border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;box-shadow:none !important;
  position:static !important;
}
.findlabel{color:var(--navy) !important;font-family:var(--sans) !important;font-weight:600 !important;font-size:.92em !important}
.rolelabel{color:var(--dim);font-family:var(--sans);font-size:.85em}
#searchbox, input[type=email], input[type=text], textarea{
  background:#fff !important;color:var(--ink) !important;
  border:1px solid var(--line2) !important;border-radius:var(--radius-sm) !important;
  font-family:var(--sans) !important;
}
#searchbox::placeholder, input::placeholder{color:var(--faint)}
.chip,.rolechip{
  background:var(--panel2) !important;color:var(--dim) !important;
  border:1px solid var(--line) !important;border-radius:var(--radius-pill) !important;
}
.rolechip::before{content:none}
.rolechip.active{background:var(--navy) !important;color:#fff !important;border-color:var(--navy) !important;font-weight:600}
.chip-inst{color:var(--navy) !important;border-color:var(--line2) !important;background:#eef2f7 !important;font-weight:600 !important}
#subscribeCard button, #signinCard button, button.send, .send{
  background:var(--navy) !important;
  color:#fff !important;font-weight:600 !important;
  border:none !important;border-radius:var(--radius-sm) !important;
  font-family:var(--sans) !important;
  box-shadow:none !important;
}
#subscribeCard button:hover, #signinCard button:hover{background:#1a2c4e !important;filter:none}
#filtercount{color:var(--dim) !important;font-family:var(--sans)}
#subMsg.ok{color:var(--good) !important} #subMsg.err{color:var(--bad) !important}
details.signfold>summary{cursor:pointer;color:var(--navy);font-weight:600;font-family:var(--sans);padding:4px 0}

/* ---------- meter (road to launch) ---------- */
.meter,.meterwrap,#meter{background:var(--panel) !important;border-color:var(--line) !important}
.meterbar,.meter-bar{background:var(--panel2) !important}
.meterfill,.meter-fill{background:var(--navy) !important}
#meterbadge{background:var(--panel2) !important;border:1px solid var(--line2) !important;color:var(--dim) !important}
#meterbadge b{color:var(--navy) !important}
#meterbadge .dot{background:var(--gold) !important;box-shadow:none}

/* ---------- feature card (lead story) ---------- */
.card-feature{
  background:var(--panel) !important;
  border:1px solid var(--line2) !important;
  border-left:4px solid var(--must) !important;
  padding:16px 18px !important;
}
.card-feature .imp{background:#f7e5e2 !important;color:var(--must) !important}
.card-feature .ti{font-size:1.45em !important;line-height:1.3 !important}

/* ---------- live/movements pages ---------- */
.mast{background:var(--navy) !important}
.mast .t{color:#e8c987 !important;font-weight:bold;font-family:var(--serif)}
.mast .s{color:#9aa7bd !important;font-family:var(--sans)}
.nav{border-bottom:1px solid var(--line2) !important}
.nav a{color:var(--gold2) !important;font-weight:normal;font-family:var(--sans)}
.item .m{color:var(--faint) !important;font-family:var(--sans);font-size:.85em !important}
.note{color:var(--dim) !important;font-family:var(--sans)}

/* ---------- tables (library groups) ---------- */
table{border-color:var(--line) !important;font-family:var(--sans)}
th{background:var(--panel2) !important;color:var(--navy) !important;border-color:var(--line) !important}
td{border-color:var(--line) !important}
.month-sub{color:var(--dim) !important;border-bottom:1px solid var(--line)}

/* ---------- dark-era slate text hard-coded in library CSS ---------- */
.bm-disclosure{color:var(--dim) !important}
#datefilter label{color:var(--dim) !important}

/* ---------- quiet the loud green WhatsApp buttons ---------- */
[style*="background:#25D366"]{
  background:#eef2f7 !important;
  color:#101c33 !important;
  border:1px solid #c3cede !important;
}

/* ---------- hindi font ---------- */
[lang="hi"]{font-family:"Noto Sans Devanagari",var(--sans) !important}

/* ---------- mobile polish ---------- */
@media(max-width:600px){
  .wrap{padding:12px}
  h1{font-size:1.45em !important}
  .card{padding:12px 13px !important}
}

/* ---------- i18n toggle (W6 Hindi; shared here for Library page) ---------- */
.i18n-hi{display:none}
.lang-hi .i18n-en{display:none}
.lang-hi .i18n-hi{display:inline}

/* Card v2 (founder-selected style B, 23 Aug 2026): labels first, short
   headline, full official title beneath. Shared by home + library. */
.bp-labels{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 7px;align-items:center}
.bp-pill,.bp-chip,.bp-cat{display:inline-block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;font-size:.84em;font-weight:700;letter-spacing:.5px;padding:2px 8px;white-space:nowrap;line-height:1.5}
.bp-pill{color:#fff;border-radius:4px;text-transform:uppercase}
.bp-pill-mr{background:#8a1f11}
.bp-pill-gk{background:#FBF6E8;color:#6b4e0d;border:1.5px solid #B99A45}
.bp-pill-fyi{background:#F0F2F5;color:#44506A;border:1.5px solid #9AA3B5}
.bp-chip{border-radius:999px}
.bp-chip-compliance{background:#E3EDF9;color:#1B4E8A}
.bp-chip-treasury{background:#DFF0EC;color:#155E50}
.bp-chip-forex{background:#ECE6F8;color:#4E3A8C}
.bp-chip-board{background:#E6E9F1;color:#101C33}
.bp-chip-branch{background:#E4F1E0;color:#1D5E2A}
.bp-chip-it{background:#F7E8D6;color:#7A4A10}
.bp-chip-credit{background:#F6E7E0;color:#7A3A1E}
.bp-chip-audit{background:#F6E2EE;color:#7A2355}
.bp-chip-general{background:#ECEBE4;color:#4A4E42}
.bp-cat{background:#fff;border:1.5px solid #9AA3B5;color:#33405A;border-radius:999px}
.bp-hl{font-weight:bold;color:#101C33;font-size:1.04em;line-height:1.35;margin:0 0 3px}
.bp-full{color:#5C6779;font-size:.83em;line-height:1.45;display:block;margin:0 0 4px;font-weight:normal}

/* Card boundary + whole-card click (founder, 23 Aug 2026). The primary
   source link stretches over its card; other controls sit above it. */
.card,.item{border:1.5px solid #C6C0B0!important;position:relative}
.card:hover,.item:hover{border-color:#8A94A8!important;box-shadow:0 1px 6px rgba(16,28,51,.10)}
a.bp-cardlink::after{content:"";position:absolute;inset:0;border-radius:inherit}
.bm-star{position:relative;z-index:2}

.card .src a:not(.bp-cardlink),.item .src a:not(.bp-cardlink){position:relative;z-index:2}

@media print{
.bp-nav,.bp-foot,#langtoggle,#wabtn,#briefpackbtn,.bm-star,#filterbar,#findrules,button{display:none!important}
body{background:#fff!important;color:#000!important}
.card,.item{border:1pt solid #000!important;box-shadow:none!important;break-inside:avoid}
a{color:#000!important;text-decoration:underline}
.src a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em;color:#333}
}

/* LEGIBILITY FLOOR — 25 August 2026.
   Lighthouse counts any text under 12px as illegible, which on this 14.5px
   base is anything below .83em. Three rules sat under it and failed the
   library page at best-practices 96. Two of them are stamped by the site
   chrome, which is never edited, so they are raised here instead.
   A banker reads this standing up in a branch. Nothing goes below .83em. */
/* em sizes compound: .bp-full sits inside a 13px block, so .83em there is
   10.83px and still illegible. The legibility floor is set in pixels, which
   no parent can shrink. */
.bp-full{font-size:12.5px !important}
.roles{font-size:12.5px !important}
/* The chrome stamps its own style block after this file, so an equal
   selector loses on order even with !important. These carry two extra
   element selectors so they win on specificity instead. */
html body .bp-nav .bp-tag{font-size:.83em !important}
html body .bp-nav .bp-sub{font-size:.83em !important}
/* 4 Sep 2026: on a 390px phone the nav tagline and the ticker masthead
   pushed the page wider than the screen on /tools, /movements and /live.
   The tagline may wrap; the scrolling link row may not spill out. */
html body .bp-nav .bp-tag{white-space:normal;max-width:100%;overflow-wrap:anywhere}
html body .bp-nav .bp-in{overflow:hidden}
html body .bp-nav{overflow-x:hidden}
@media(max-width:600px){.mast{margin-left:-12px !important;margin-right:-12px !important}}
