/* =====================================================================
   v5.css — the current PUBLIC design (design-build-brief.md). See SETUP.md §3.
   ---------------------------------------------------------------------
   Loaded AFTER app.css, ONLY on public pages. EVERY rule is scoped under
   `body.v5` (the public base layout sets <body class="v5">). The admin layout
   has no `.v5` class, so nothing here touches admin — admin is styled by
   app.css alone. Colours/fonts come from the tokens defined in app.css :root;
   don't hard-code hex here — use var(--token).
   Because this file loads last and its selectors carry the extra `body.v5`
   class, its rules win over app.css for the same public element.
   ===================================================================== */
body.v5{font-family:var(--font-body);font-size:15px;line-height:1.55;background:var(--paper);color:var(--ink);overflow-x:clip}
body.v5 .wrap{max-width:1200px;margin:0 auto;padding:0 26px}
body.v5 h1,body.v5 h2,body.v5 h3{font-family:var(--font-display)}

/* ---- Header: two stacked bars replicating crcgs.academy (brand-alignment-brief §C) ---- */
body.v5 .cp-head{position:sticky;top:0;z-index:40}

/* 1. Utility bar (cream): org name · search · login/register */
body.v5 .cp-util{background:var(--cream);border-bottom:1px solid var(--border)}
body.v5 .cp-util .wrap{display:flex;align-items:center;gap:16px;min-height:46px}
body.v5 .cp-util-org{font-family:var(--font-display);font-weight:600;font-size:16.5px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
body.v5 .cp-util-org:hover{color:var(--navy-2)}
body.v5 .cp-util-right{margin-left:auto;display:flex;align-items:center;gap:12px}
body.v5 .cp-util .srch{position:relative;width:min(300px,40vw)}
body.v5 .cp-util .srch input{width:100%;background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 14px 7px 34px;color:var(--ink);font:400 13px var(--font-body)}
body.v5 .cp-util .srch input::placeholder{color:var(--dim)}
body.v5 .cp-util .srch input:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
body.v5 .cp-util .srch .sico{position:absolute;left:12px;top:50%;transform:translateY(-50%);stroke:var(--dim);pointer-events:none}
body.v5 .cp-login{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-label);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--navy);border:1px solid var(--navy);border-radius:6px;padding:6px 12px;white-space:nowrap;text-decoration:none;transition:var(--dur)}
body.v5 .cp-login:hover{background:var(--navy);color:#fff}
body.v5 .cp-register{font-family:var(--font-label);font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--navy);white-space:nowrap;text-decoration:none}
body.v5 .cp-register:hover{color:var(--navy-2);text-decoration:underline}

/* 2. Nav bar (navy with thin gold underline): seal + wordmark + reciprocal nav */
body.v5 .cp-nav{background:var(--navy);border-bottom:3px solid var(--gold)}
body.v5 .cp-nav .wrap{display:flex;align-items:center;gap:20px;min-height:60px}
body.v5 .cp-brand{display:flex;align-items:center;gap:11px;text-decoration:none}
body.v5 .cp-word{display:flex;flex-direction:column;line-height:1;font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.02em;color:#fff}
body.v5 .cp-word small{font-family:var(--font-label);font-size:8.5px;font-weight:400;letter-spacing:.34em;color:var(--gold);margin-top:3px}
body.v5 img.cp-seal{width:40px;height:40px;flex:0 0 auto;display:block}
body.v5 .cp-nav .nav{margin-left:auto;display:flex;gap:2px;align-items:center}
body.v5 .cp-nav .nav a{font-family:var(--font-label);font-size:12.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#e7ecf5;padding:9px 12px;border-radius:5px;border-bottom:2px solid transparent;text-decoration:none;transition:var(--dur)}
body.v5 .cp-nav .nav a:hover{color:#fff;background:rgba(255,255,255,.09)}
body.v5 .cp-nav .nav a.active{color:var(--gold);border-bottom-color:var(--gold)}
body.v5 .cp-caret{font-size:9px;opacity:.85}
body.v5 .burger{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.28);border-radius:6px;padding:6px 9px;cursor:pointer}
body.v5 .burger svg{stroke:#fff;display:block}
body.v5 .drawer-close{display:none}

/* ---- Hero (white) ---- */
body.v5 .hero{background:var(--paper);padding:30px 0 4px}
body.v5 .htop{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
body.v5 .flagbox{width:60px;height:40px;border-radius:5px;overflow:hidden;border:1px solid var(--line-2);flex:0 0 auto;box-shadow:0 1px 3px rgba(15,42,82,.1);background:#fff}
body.v5 .flagbox img,body.v5 .flagbox svg{width:100%;height:100%;object-fit:cover;display:block}
body.v5 .flag-fallback{display:inline-grid;place-items:center;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--navy);background:var(--tint)}
/* Search-autocomplete result flag */
body.v5 .search-suggest .ss-item{display:flex;align-items:center;gap:10px}
body.v5 .ss-flag{flex:0 0 auto;width:20px;height:14px;border-radius:2px;overflow:hidden;border:1px solid var(--line-2)}
body.v5 .ss-flag img{width:100%;height:100%;object-fit:cover;display:block}
body.v5 .ss-text{min-width:0}

/* SVG flag in other contexts (index cards, sub-page header, inline lists) */
body.v5 .country-flag{display:inline-block;width:30px;height:20px;border-radius:3px;overflow:hidden;border:1px solid var(--line-2);vertical-align:middle;flex:0 0 auto}
body.v5 .country-flag img,body.v5 .country-header-flag img,body.v5 .inline-flag img{width:100%;height:100%;object-fit:cover;display:block}
body.v5 .country-header-flag{display:inline-block;width:46px;height:31px;border-radius:4px;overflow:hidden;border:1px solid var(--line-2);box-shadow:0 1px 3px rgba(15,42,82,.1);vertical-align:middle}
body.v5 .inline-flag{display:inline-block;width:20px;height:14px;border-radius:2px;overflow:hidden;border:1px solid var(--line-2);vertical-align:middle}
body.v5 .country-flag.flag-fallback,body.v5 .country-header-flag.flag-fallback,body.v5 .inline-flag.flag-fallback{font-size:9px}
body.v5 .hero h1{font-family:var(--font-display);font-weight:700;font-size:54px;line-height:1;letter-spacing:-.025em;color:var(--ink);margin:0}
body.v5 .facts{margin-top:12px;font-family:var(--font-mono);font-size:13px;color:var(--dim);display:flex;flex-wrap:wrap;gap:9px;align-items:center}
body.v5 .facts b{color:var(--navy);font-weight:600;font-size:14px}
body.v5 .facts s{width:3px;height:3px;border-radius:50%;background:var(--line-2);display:inline-block}

/* ---- Hero row: text left, photo slider right (§A1/§A2) ---- */
body.v5 .hero-row{display:flex;gap:30px;align-items:flex-start;justify-content:space-between}
body.v5 .hero-left{flex:1 1 auto;min-width:0;padding-top:6px}
body.v5 .hero-media{flex:0 0 auto;width:min(44%,440px)}
body.v5 .cslider{position:relative;border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:0 6px 22px rgba(15,42,82,.12);background:var(--wash)}
body.v5 .cframe{position:relative;aspect-ratio:14/9}
body.v5 .cslide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .8s ease}
body.v5 .cslide.on{opacity:1}
body.v5 .cslide img{width:100%;height:100%;object-fit:cover;display:block}
body.v5 .cslide figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 12px 8px;font-size:11.5px;color:#fff;background:linear-gradient(transparent,rgba(10,30,60,.72))}
body.v5 .cdots{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:2}
body.v5 .cdot{width:8px;height:8px;padding:0;border-radius:50%;border:0;background:rgba(255,255,255,.55);cursor:pointer;transition:background var(--dur),transform var(--dur)}
body.v5 .cdot:hover{transform:scale(1.2)}
body.v5 .cdot.on{background:#fff}
@media(max-width:880px){
  body.v5 .hero-row{flex-direction:column;gap:18px}
  body.v5 .hero-media{width:100%;max-width:520px}
}

/* ---- Pulse (dark rounded block) ---- */
body.v5 .sec .pulsebox{margin-top:0}
body.v5 .pulsebox{margin-top:20px;background:var(--navy-deep);border-radius:var(--radius-lg);padding:18px 22px 14px}
body.v5 .ph{display:flex;align-items:center;gap:12px;margin-bottom:10px}
body.v5 .ph .ph-title{margin:0;font-family:var(--font-label);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#A9BCD8;font-weight:600}
body.v5 .leg{margin-left:auto;display:flex;gap:14px;font-family:var(--font-label);font-size:10.5px;letter-spacing:.04em;color:#8FA6C6}
body.v5 .leg span{display:flex;align-items:center;gap:5px}
body.v5 .leg i{width:7px;height:7px;border-radius:1px}
body.v5 #pulse{width:100%;height:66px;display:block;cursor:crosshair;overflow:visible}
body.v5 #pulse rect.tick{transform-box:fill-box;transform-origin:center bottom;transition:transform .12s ease}
body.v5 #pulse rect.tick:hover{transform:scaleX(2.6)}
body.v5 .pax{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;color:#7A90B2;margin-top:7px}
body.v5 .ptip{position:fixed;pointer-events:none;background:#fff;color:var(--ink);border:1px solid var(--line-2);padding:7px 10px;border-radius:6px;font-size:11.5px;opacity:0;transition:opacity .12s;z-index:60;box-shadow:0 10px 30px rgba(15,42,82,.2);max-width:250px}
body.v5 .ptip b{font-family:var(--font-mono);color:var(--navy)}

/* ---- Stat blocks under the graph ---- */
body.v5 .changed{margin-top:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
body.v5 .chg{background:var(--tint);border:1px solid var(--tint-2);border-radius:var(--radius);padding:14px 16px;text-align:center;transition:var(--dur);color:var(--ink);display:block}
body.v5 a.chg:hover{background:var(--tint-2);transform:translateY(-2px);box-shadow:0 5px 16px rgba(15,42,82,.09)}
body.v5 .chg .n{font-family:var(--font-mono);font-size:26px;font-weight:600;line-height:1;color:var(--navy)}
body.v5 .chg .n.warn{color:var(--orange-text)}
body.v5 .chg .n.due{color:#A9761B}
body.v5 .chg .l{font-size:11.5px;color:var(--dim);margin-top:5px}

/* ---- Tabs ---- */
body.v5 .ptabs{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:106px;z-index:30;margin-top:22px;margin-bottom:26px}
body.v5 .ptabs .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
body.v5 .ptabs .wrap::-webkit-scrollbar{display:none}
body.v5 .ptab{padding:12px 16px;font-size:16px;color:var(--dim);white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-1px;border-radius:7px 7px 0 0;transition:var(--dur)}
body.v5 .ptab:first-child{padding-left:0} /* first tab label aligns with the header flag + filter panel left edge */
body.v5 .ptab:hover{color:var(--ink);background:rgba(15,42,82,.04)}
body.v5 .ptab.on{color:var(--navy);font-weight:600;border-bottom-color:var(--navy);background:var(--wash)}
body.v5 .ptab.on:first-child{padding-left:10px} /* when the first tab is active, give its tint a little breathing room */
body.v5 .ptab em{font-style:normal;font-family:var(--font-mono);font-size:12px;font-weight:400;color:var(--dim2);margin-left:6px}

/* ---- Two-column body ---- */
body.v5 .body{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:44px;padding:30px 0 60px;align-items:start}
body.v5 .col-main{min-width:0}
body.v5 .sec{margin-bottom:34px}
body.v5 .sh{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--navy);padding-bottom:7px;margin-bottom:16px}
body.v5 .sh h2{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
body.v5 .sh .sub{font-family:var(--font-label);font-size:11px;color:var(--dim2);letter-spacing:.08em;text-transform:uppercase}
body.v5 .sh .more{margin-left:auto;font-size:13px;color:var(--navy);font-weight:500}
body.v5 .sh .more:hover{text-decoration:underline}
body.v5 .prose{font-size:15.5px;line-height:1.7}
body.v5 .prose p{margin-bottom:12px}
body.v5 .clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
body.v5 .rm{margin-top:10px;background:var(--wash);border:1px solid var(--line-2);border-radius:6px;color:var(--navy);font:600 13px var(--font-body);padding:7px 15px;cursor:pointer;transition:var(--dur)}
body.v5 .rm:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---- Who regulates what ---- */
body.v5 .regs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
body.v5 .rc{border:1px solid var(--line);border-radius:var(--radius);padding:11px 6px;text-align:center;background:var(--paper);transition:var(--dur);color:var(--ink)}
body.v5 .rc:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(15,42,82,.1);transform:translateY(-2px)}
body.v5 .rc .lg{width:52px;height:52px;margin:0 auto 7px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:var(--wash);border:1px solid var(--line);font-family:var(--font-mono);font-weight:600;font-size:13px;color:var(--navy)}
body.v5 .rc .lg img{width:100%;height:100%;object-fit:contain}
body.v5 .rc .ac{font-size:12.5px;font-weight:600}

/* ---- Dark accent panel (enforcement) ---- */
body.v5 .dark{background:var(--navy-deep);border-radius:var(--radius);padding:18px 20px;color:#fff}
body.v5 .dark .sh{border-bottom-color:rgba(255,255,255,.25)}
body.v5 .dark .sh h2{color:#fff}
body.v5 .dark .sh .sub{color:#8FA6C6}
body.v5 .dark .sh .more{color:#F0C862}
body.v5 .dark table{width:100%;border-collapse:collapse}
body.v5 .dark th{font-family:var(--font-label);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#8FA6C6;text-align:left;padding:0 10px 8px 0;font-weight:600}
body.v5 .dark th.rn{text-align:right;padding-right:0}
body.v5 .dark td{padding:10px 10px 10px 0;border-top:1px solid rgba(255,255,255,.1);font-size:13.5px;vertical-align:top}
body.v5 .dark tr:hover td{background:rgba(255,255,255,.05)}
body.v5 .dark td.d{font-family:var(--font-mono);font-size:11px;color:#A9BCD8;white-space:nowrap}
body.v5 .dark td.e b{font-weight:600}
body.v5 .dark td.e small{display:block;color:#8FA6C6;font-size:11.5px;font-weight:400}
body.v5 .dark td.l{font-family:var(--font-mono);font-size:10.5px;color:#A9BCD8}
body.v5 .dark td.rn{text-align:right;padding-right:0;font-family:var(--font-mono);color:#FF9A6A;font-weight:600;white-space:nowrap}
body.v5 .dark td.rn span{display:block;font-size:10px;color:#8FA6C6;font-weight:400}
body.v5 .rest{font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#FF9A6A;border:1px solid rgba(255,154,106,.4);border-radius:3px;padding:2px 6px;display:inline-block}
body.v5 .dark a{color:#F0C862}

/* ---- Right rail ---- */
body.v5 .rail{position:sticky;top:122px}
body.v5 .rail .card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;background:var(--paper)}
body.v5 .rail .card h3,body.v5 .rail .card h2{font-family:var(--font-display);font-size:15.5px;font-weight:600;margin:0 0 12px;padding-bottom:7px;border-bottom:1px solid var(--line);color:var(--navy)}
/* At-a-Glance: EXISTING markup (.glance-card/.glance-list/dt/dd) — container restyle only */
body.v5 .glance-list{margin:0}
body.v5 .glance-list dt{display:flex;gap:11px;align-items:center;font-family:var(--font-label);font-weight:600;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);padding:9px 0 0}
body.v5 .glance-list dt .glance-icon{flex:0 0 28px;height:28px;box-sizing:border-box;border-radius:7px;padding:6px;background:var(--tint);border:1px solid var(--tint-2);stroke:var(--navy)}
body.v5 .glance-list dd{font-size:13px;font-weight:500;margin:1px 0 9px 39px;border-bottom:1px solid var(--line);padding-bottom:9px}
body.v5 .glance-list dd:last-child{border-bottom:0}
/* Next deadlines */
body.v5 .dl a{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);align-items:center;transition:var(--dur);color:var(--ink)}
body.v5 .dl a:last-child{border-bottom:0}
body.v5 .dl a:hover{padding-left:4px}
body.v5 .dl .dd{flex:0 0 40px;text-align:center;background:var(--tint);border:1px solid var(--tint-2);border-radius:5px;padding:3px 0}
body.v5 .dl .dd b{display:block;font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--navy);line-height:1.1}
body.v5 .dl .dd span{font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim2)}
body.v5 .dl .dt2{font-size:12.5px;font-weight:500}
body.v5 .dl .dt2 em{font-style:normal;display:block;font-size:11px;color:var(--dim);font-weight:400}
/* Verify / trust card */
body.v5 .verif{background:var(--tint);border-color:var(--tint-2)}
body.v5 .verif p{font-size:11.5px;color:var(--dim);line-height:1.5}
body.v5 .verif b{display:block;font-family:var(--font-mono);font-size:11px;color:var(--navy);margin-bottom:4px}
body.v5 .verif a{color:var(--navy);font-weight:600;text-decoration:underline;padding:1px 3px;border-radius:3px;transition:var(--dur)}
body.v5 .verif a:hover{background:var(--navy);color:#fff;text-decoration:none}

/* ---- Navy 4-col footer ---- */
body.v5 footer.site-footer{background:var(--navy-deep);color:#c9d3e4;padding:0 0 22px;margin-top:84px;position:relative}
body.v5 .f-seal{display:flex;justify-content:center}
/* Seal medallion straddling the boundary, as on the main site (crcgs.academy
   .crcgs-hp-footer-logo-bridge img): 120px, no backing disc, and a drop-shadow that
   follows the seal's round edge. The seal's own rim keeps it legible on navy-deep. */
body.v5 .f-seal-img{margin-top:-60px;width:120px;height:120px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 4px 16px rgba(17,31,61,.25))}
body.v5 footer.site-footer .wrap{padding-top:20px}
body.v5 .f-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:28px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.14)}
body.v5 .f-brand .n{font-family:var(--font-display);font-size:19px;color:#fff;font-weight:600;line-height:1.2;max-width:330px}
body.v5 .f-crcgs{font-family:var(--font-label);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:5px 0 10px}
body.v5 .f-brand p{font-size:12.5px;line-height:1.6;max-width:330px;color:#aab6cc}
body.v5 .f-social{display:flex;gap:9px;margin-top:14px}
body.v5 .f-social a{width:32px;height:32px;border-radius:50%;border:1px solid rgba(212,168,74,.55);color:var(--gold);display:grid;place-items:center;transition:var(--dur)}
body.v5 .f-social a:hover{background:var(--gold);color:var(--navy-deep)}
body.v5 .f-col h3{color:var(--gold);font-family:var(--font-label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin:0 0 12px}
body.v5 footer.site-footer ul{list-style:none;margin:0;padding:0}
body.v5 footer.site-footer li{margin-bottom:8px}
body.v5 footer.site-footer li a{font-size:12.5px;transition:var(--dur);color:#aab6cc;text-decoration:none}
body.v5 footer.site-footer li a:hover{color:#fff;text-decoration:underline}
body.v5 .f-disclaimer{font-size:11.5px;line-height:1.6;color:#96a2ba;max-width:760px;padding:16px 0 0}
body.v5 .f-bot{padding-top:14px;margin-top:14px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;align-items:center}
body.v5 .f-copy{font-family:var(--font-label);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:#96a2ba;margin:0}
body.v5 .f-legal{display:flex;gap:18px;flex-wrap:wrap}
body.v5 .f-legal a{font-family:var(--font-label);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:#aab6cc;text-decoration:none}
body.v5 .f-legal a:hover{color:var(--gold)}

/* ---- Focus + motion (AA: navy ring >=3:1, not gold) ---- */
body.v5 :focus-visible{outline:3px solid var(--navy);outline-offset:2px;border-radius:3px}
body.v5 .cp-nav :focus-visible,body.v5 .dark :focus-visible,body.v5 footer.site-footer :focus-visible{outline-color:#F0C862}

/* ---- Off-canvas drawer + responsive ---- */
@media(max-width:1040px){
  body.v5 .body{grid-template-columns:1fr;gap:0}
  body.v5 .rail{position:static;margin-top:26px}
  body.v5 .regs{grid-template-columns:repeat(3,1fr)}
  body.v5 .f-top{grid-template-columns:1fr 1fr}
  body.v5 .cp-util-org{display:none}          /* free room for search + login on tablet */
  body.v5 .ptabs{top:106px}
}
/* Nav collapses to the off-canvas drawer on tablet + mobile (the 6-item reciprocal
   nav is wider than the old 4-item nav, so it hamburgers earlier — no overflow). */
@media(max-width:860px){
  body.v5 .cp-nav .nav{position:fixed;top:0;right:0;bottom:0;width:min(82vw,320px);background:var(--navy);flex-direction:column;gap:2px;align-items:stretch;padding:64px 16px 16px;transform:translateX(100%);transition:transform .2s ease;z-index:70;margin-left:0;box-shadow:-12px 0 40px rgba(0,0,0,.35)}
  body.v5 .cp-nav .nav.open{transform:translateX(0)}
  body.v5 .cp-nav .nav a{font-size:15px;padding:12px;border-bottom:0}
  body.v5 .cp-nav .nav a.active{background:rgba(255,255,255,.08);border-radius:6px}
  body.v5 .burger{display:inline-flex}
  body.v5 .drawer-close{display:inline-flex;position:absolute;top:14px;right:14px;background:none;border:0;cursor:pointer}
  body.v5 .drawer-close svg{stroke:#fff}
  body.v5 .drawer-backdrop.show{display:block;position:fixed;inset:0;background:rgba(10,30,60,.5);z-index:65}
}
@media(max-width:680px){
  body.v5 .wrap{padding:0 18px}
  body.v5 .hero h1{font-size:36px}
  body.v5 .cp-util .srch{width:auto;flex:1 1 auto;min-width:0}
  body.v5 .cp-util .wrap{gap:10px}
  body.v5 .regs{grid-template-columns:repeat(2,1fr)}
  body.v5 .changed{grid-template-columns:1fr}
  body.v5 .dark{padding:16px 14px}
  body.v5 .dark table,body.v5 .dark tbody,body.v5 .dark tr,body.v5 .dark td{display:block;width:100%}
  body.v5 .dark thead{display:none}
  body.v5 .dark tr{display:flex;flex-wrap:wrap;gap:3px 12px;padding:13px 0;border-top:1px solid rgba(255,255,255,.14)}
  body.v5 .dark tr:first-child{border-top:0;padding-top:2px}
  body.v5 .dark tr:hover td{background:transparent}
  body.v5 .dark td{border:0;padding:0}
  body.v5 .dark td.e{flex:1 1 100%;order:1;font-size:15px}
  body.v5 .dark td.e small{margin-top:2px}
  body.v5 .dark td.d{order:2}
  body.v5 .dark td.l{order:3}
  body.v5 .dark td.rn{flex:1 1 100%;order:4;text-align:left;margin-top:5px;font-size:15px}
  body.v5 .dark td.rn span{display:inline;margin-left:7px;font-size:11px}
  body.v5 .f-top{grid-template-columns:1fr}
  body.v5 .f-bot{justify-content:flex-start}
}
@media(max-width:480px){
  body.v5 .cp-register{display:none}   /* login remains; register reachable from the login page */
  body.v5 .cp-word{font-size:19px}
  body.v5 img.cp-seal{width:36px;height:36px}
}
@media(prefers-reduced-motion:reduce){body.v5 *{transition:none!important;animation:none!important}}

/* =====================================================================
   §B2 — v5 body treatment for the remaining inner pages (STYLING ONLY;
   restyles existing markup classes: regulator, law, obligations,
   enforcement, calendar, news). No view/markup rebuild.
   ===================================================================== */
body.v5 .breadcrumb{color:var(--dim);font-size:.9rem;margin:16px 0 10px}
body.v5 .breadcrumb a{color:var(--dim)}
body.v5 .breadcrumb a:hover{color:var(--navy)}
body.v5 .page-intro{color:var(--dim);max-width:52rem}

/* Country sub-page header (partials/country_header) */
body.v5 .country-header{display:flex;align-items:center;gap:16px;margin:18px 0 6px}
body.v5 .country-header h1{font-family:var(--font-display);font-weight:700;font-size:38px;letter-spacing:-.02em;color:var(--ink);margin:0}
body.v5 .country-meta{color:var(--dim);font-family:var(--font-mono);font-size:12px;margin:4px 0 0}
body.v5 .country-subnav{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);margin:14px 0 24px;scrollbar-width:none}
body.v5 .country-subnav::-webkit-scrollbar{display:none}
body.v5 .country-subnav a{padding:11px 14px;font-size:13.5px;color:var(--dim);white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:var(--dur)}
body.v5 .country-subnav a:hover{color:var(--ink)}
body.v5 .country-subnav a.active{color:var(--navy);font-weight:600;border-bottom-color:var(--navy)}

/* Section headings for existing .module blocks -> match v5 .sh */
body.v5 .module{margin-bottom:32px}
body.v5 .module > h2{font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--navy);letter-spacing:-.01em;border-bottom:2px solid var(--navy);padding-bottom:7px;margin:0 0 16px}
body.v5 h1{font-family:var(--font-display);color:var(--ink)}

/* Tables (enforcement tracker, data tables) — v5 light treatment + row hover */
body.v5 .table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;background:#fff}
body.v5 table.enforcement-table,body.v5 table.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
body.v5 .enforcement-table thead th,body.v5 .data-table thead th{background:var(--wash);text-align:left;font-family:var(--font-label);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);font-weight:600;padding:.7rem 1rem;border-bottom:1px solid var(--line)}
body.v5 .enforcement-table td,body.v5 .data-table td{padding:.7rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
body.v5 .enforcement-table tbody tr:last-child td,body.v5 .data-table tbody tr:last-child td{border-bottom:0}
body.v5 .enforcement-table tbody tr{transition:background var(--dur)}
@media(hover:hover){body.v5 .enforcement-table tbody tr:hover td{background:var(--wash)}} /* mouse only */
body.v5 .penalty{color:var(--orange-text);font-weight:600;font-family:var(--font-mono)}
body.v5 .status-badge{color:var(--orange-text)}
body.v5 .status-badge.is-unknown{color:var(--dim2);font-style:italic} /* NULL status: not recorded, never assumed in force (S22) */

/* Instrument / obligation / deadline lists as tidy cards */
body.v5 .instrument-list,body.v5 .obligation-strip,body.v5 .deadline-list,body.v5 .plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
body.v5 .instrument-item,body.v5 .obligation-strip .card,body.v5 .deadline-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius);padding:11px 14px;background:#fff;box-shadow:none;transition:border-color var(--dur),box-shadow var(--dur)}
body.v5 .instrument-item:hover,body.v5 .deadline-item:hover{border-color:var(--line-2);box-shadow:0 3px 10px rgba(15,42,82,.07)}
body.v5 .type-badge{font-family:var(--font-label);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.18rem .55rem;border-radius:999px;background:var(--navy);color:#fff}
body.v5 .type-badge.type-direction,body.v5 .type-badge.type-guideline{background:var(--gold);color:var(--navy)}
body.v5 .type-badge.type-circular,body.v5 .type-badge.type-notification{background:var(--orange-text);color:#fff}
body.v5 .deadline-date{color:var(--orange-text);font-weight:600;font-family:var(--font-mono)}
body.v5 .tag{display:inline-block;font-family:var(--font-label);font-size:11px;letter-spacing:.03em;background:var(--tint);border:1px solid var(--tint-2);border-radius:999px;padding:.12rem .6rem;color:var(--navy)}
/* State chips on public pages (review S39): app.css's .tag.developing loses to body.v5 .tag, so the
   warning colour for unconfirmed news is defined here, after the base rule. */
body.v5 .tag.developing{background:#FEF3E7;border-color:#c4572d;color:#a5431f}
body.v5 .quicklinks li,body.v5 .plain-list li{padding:9px 0;border-bottom:1px solid var(--line)}
body.v5 .industry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
body.v5 .industry-card{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:#fff;text-align:center;transition:border-color var(--dur),transform var(--dur)}
body.v5 .industry-card:hover{border-color:var(--navy);transform:translateY(-2px)}

/* =====================================================================
   §D — Homepage (crcgs-homepage-v2 layout in the white/navy token system)
   ===================================================================== */
body.v5 .hp-hero{background:var(--navy-deep);color:#fff;padding:56px 0 44px;position:relative;overflow:hidden}
body.v5 .hp-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 82% -14%,rgba(22,56,107,.85),transparent 60%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 88px)}
body.v5 .hp-hero .wrap{position:relative}
body.v5 .hp-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.85fr);gap:clamp(28px,5vw,64px);align-items:start}
body.v5 .hp-eyebrow{font-family:var(--font-label);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0}
body.v5 .hp-h1{font-family:var(--font-display);font-weight:700;font-size:clamp(34px,5vw,58px);line-height:1.04;letter-spacing:-.03em;color:#fff;margin:14px 0 0;max-width:16ch}
body.v5 .hp-h1 em{font-style:italic;color:var(--gold)}
body.v5 .hp-lede{margin:16px 0 0;font-size:16.5px;color:#BCC7DC;max-width:52ch}
body.v5 .hp-console{display:flex;align-items:center;gap:10px;background:#fff;border-radius:8px;padding:0 8px 0 14px;margin:24px 0 0;max-width:620px;box-shadow:0 14px 34px -18px rgba(0,0,0,.7);border:1px solid transparent}
body.v5 .hp-console:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,74,.3)}
body.v5 .hp-console svg{color:var(--dim);flex:0 0 auto}
body.v5 .hp-console input{flex:1;border:0;outline:0;background:none;padding:15px 0;font-size:16px;color:var(--ink);min-width:0}
body.v5 .hp-console-go{flex:0 0 auto;border:0;background:var(--navy);color:#fff;font:600 11.5px var(--font-label);text-transform:uppercase;letter-spacing:.07em;padding:11px 17px;border-radius:6px;cursor:pointer;transition:background var(--dur)}
body.v5 .hp-console-go:hover{background:var(--navy-2)}
body.v5 .hp-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
body.v5 .hp-btn{display:inline-block;font:600 12.5px/1.1 var(--font-label);text-transform:uppercase;letter-spacing:.08em;padding:13px 22px;border-radius:8px;transition:var(--dur)}
body.v5 .hp-btn-gold{background:var(--gold);color:var(--navy)}
body.v5 .hp-btn-gold:hover{background:#c2963a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(17,31,61,.2)}
body.v5 .hp-btn-ghost{border:1px solid rgba(255,255,255,.3);color:#fff}
body.v5 .hp-btn-ghost:hover{background:rgba(255,255,255,.1)}
body.v5 .hp-cov{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:18px 20px}
body.v5 .hp-cov-row{display:flex;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1)}
body.v5 .hp-cov-n{font-family:var(--font-mono);font-size:28px;font-weight:600;color:#fff;line-height:1}
body.v5 .hp-cov-n small{font-size:10px;letter-spacing:.12em;color:var(--gold);margin-left:4px}
body.v5 .hp-cov-l{font-size:12.5px;color:#9FB3D1}
body.v5 .hp-cov-note{font-size:11.5px;color:#8FA6C6;line-height:1.55;margin:12px 0 0}
body.v5 .hp-cov-note a{color:var(--gold)}

body.v5 .hp-trust{background:var(--wash);border-bottom:1px solid var(--line)}
body.v5 .hp-trust .wrap{display:flex;flex-wrap:wrap;gap:10px 26px;padding:13px 26px}
body.v5 .hp-trust i{font-style:normal;font-size:12.5px;color:var(--dim);display:flex;align-items:center;gap:6px}
body.v5 .hp-trust i span{color:var(--green);font-weight:700}

body.v5 .hp-sec{padding:46px 0}
body.v5 .hp-sec-tint{background:var(--wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body.v5 .hp-sec-head{margin-bottom:22px;max-width:60ch}
/* Enforcement-themes intro: let the standfirst flow the full content width. */
body.v5 .hp-sec-head-wide{max-width:none}
body.v5 .hp-sec-head h2{font-family:var(--font-display);font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:-.02em;color:var(--navy)}
body.v5 .hp-sec-head p{color:var(--dim);margin:8px 0 0}
body.v5 .hp-more{display:inline-block;margin-top:16px;font-weight:600;color:var(--navy)}
body.v5 .hp-more:hover{text-decoration:underline}

body.v5 .hp-themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
body.v5 .hp-th{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff;transition:var(--dur);color:var(--ink)}
body.v5 .hp-th:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,42,82,.08)}
body.v5 .hp-tn{font-family:var(--font-mono);font-size:26px;font-weight:600;color:var(--navy)}
/* Card now leads with the topic name, then plain-English enforcement stats. */
body.v5 .hp-tl{font-weight:600;font-size:16px;color:var(--navy);margin:0 0 10px}
body.v5 .hp-tstat{font-size:14px;line-height:1.45;color:var(--ink);margin:0 0 4px}
body.v5 .hp-tstat strong{font-family:var(--font-mono);font-weight:600;color:var(--navy)}
body.v5 .hp-tstat-pen{color:var(--dim)}
body.v5 .hp-th .hp-bar{margin-top:12px}
body.v5 .hp-bar{height:6px;background:var(--tint);border-radius:3px;overflow:hidden}
body.v5 .hp-bar i{display:block;height:100%;background:var(--gold)}

/* ===== Cross-country hubs (topics + industries): tabs + one shared country filter ===== */
body.v5 .cc-tabs{margin-top:18px}
body.v5 .cc-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* One country filter that scopes every tab (review RC-03) */
body.v5 .cc-filterbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--wash);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:16px}
body.v5 .cc-filterbar label{font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--dim2,#5c6474);margin:0}
body.v5 .cc-filterbar select{min-width:15rem;padding:.5rem .7rem;border:1px solid var(--line);
  border-radius:8px;background:#fff;color:var(--ink);font-size:14px}
body.v5 .cc-clear-btn{background:none;border:0;color:var(--navy);font-weight:600;font-size:13px;cursor:pointer;text-decoration:underline}

/* Tab strip with count badges (review CC-02) */
body.v5 .cc-list{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--navy);margin-bottom:18px}
body.v5 .cc-tab{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--dim);
  padding:9px 16px;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;
  margin-bottom:-2px;cursor:pointer;transition:var(--dur);white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
body.v5 .cc-tab:hover{color:var(--navy);background:var(--tint)}
body.v5 .cc-count{font-family:var(--font-mono);font-style:normal;font-size:11px;font-weight:600;
  color:var(--dim2,#5c6474);background:var(--tint);border-radius:100px;padding:1px 7px;min-width:20px;text-align:center}
body.v5 .cc-panel{display:none}
/* active tab + its panel (static rules over the fixed section vocabulary) */
body.v5 #cc-regulators:checked ~ .cc-list label[for="cc-regulators"],
body.v5 #cc-laws:checked ~ .cc-list label[for="cc-laws"],
body.v5 #cc-obligations:checked ~ .cc-list label[for="cc-obligations"],
body.v5 #cc-enforcement:checked ~ .cc-list label[for="cc-enforcement"],
body.v5 #cc-news:checked ~ .cc-list label[for="cc-news"]{color:var(--navy);border-color:var(--navy);border-bottom-color:#fff;background:#fff}
body.v5 #cc-regulators:checked ~ .cc-panels #pnl-regulators,
body.v5 #cc-laws:checked ~ .cc-panels #pnl-laws,
body.v5 #cc-obligations:checked ~ .cc-panels #pnl-obligations,
body.v5 #cc-enforcement:checked ~ .cc-panels #pnl-enforcement,
body.v5 #cc-news:checked ~ .cc-panels #pnl-news{display:block}
body.v5 #cc-regulators:checked ~ .cc-list label[for="cc-regulators"] .cc-count,
body.v5 #cc-laws:checked ~ .cc-list label[for="cc-laws"] .cc-count,
body.v5 #cc-obligations:checked ~ .cc-list label[for="cc-obligations"] .cc-count,
body.v5 #cc-enforcement:checked ~ .cc-list label[for="cc-enforcement"] .cc-count,
body.v5 #cc-news:checked ~ .cc-list label[for="cc-news"] .cc-count{background:var(--gold);color:#26200e}
/* keyboard focus ring on the tab whose radio is focused */
body.v5 #cc-regulators:focus-visible ~ .cc-list label[for="cc-regulators"],
body.v5 #cc-laws:focus-visible ~ .cc-list label[for="cc-laws"],
body.v5 #cc-obligations:focus-visible ~ .cc-list label[for="cc-obligations"],
body.v5 #cc-enforcement:focus-visible ~ .cc-list label[for="cc-enforcement"],
body.v5 #cc-news:focus-visible ~ .cc-list label[for="cc-news"]{outline:2px solid var(--gold);outline-offset:2px}
/* provenance + cap notices */
body.v5 .cc-cap{font-size:13px;color:var(--dim2,#5c6474);background:var(--gold-pale,#f5e8c4);
  border-left:3px solid var(--gold);border-radius:0 6px 6px 0;padding:.5rem .8rem;margin:0 0 12px}
body.v5 .cc-showing{font-size:13px;color:var(--dim2,#5c6474);margin:0 0 10px}
body.v5 .cc-unver{font-family:var(--font-label);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:#8a6d1f;background:rgba(212,168,74,.16);border-radius:100px;padding:1px 7px}

/* "View →" action on the Obligations table — a navigation link styled as the .ob-toggle pill */
body.v5 a.tt-view{display:inline-block;font-family:var(--font-label);font-size:11px;font-weight:600;
  letter-spacing:.03em;text-transform:uppercase;color:var(--navy);background:var(--wash);
  border:1px solid var(--line);border-radius:6px;padding:.28rem .6rem;text-decoration:none;
  white-space:nowrap;transition:background var(--dur),border-color var(--dur),color var(--dur)}
body.v5 a.tt-view:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* /compare while switched off — friendly "in preparation" page (review BS-03/CRO-03) */
body.v5 .cmp-soon{max-width:640px;margin:26px auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 30px}
body.v5 .cmp-soon .eyebrow-sm{font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 8px}
body.v5 .cmp-soon h1{font-family:var(--font-display);font-size:clamp(22px,3vw,30px);color:var(--navy);margin:0 0 14px}
body.v5 .cmp-soon p{color:var(--ink);margin:0 0 12px;line-height:1.6}
body.v5 .cmp-soon .cmp-soon-cta{display:inline-block;margin-top:4px;font-weight:600;color:var(--navy)}
body.v5 .cmp-soon-rev{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
body.v5 .cmp-soon-rev .lbl{font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2,#5c6474);margin:0 0 8px}
body.v5 .cmp-soon-rev .hp-bar{margin:0 0 10px}
/* Right-align the Penalty column in the light topic enforcement table (the .rn rule
   in v5.css is scoped to the dark overview panel only). */
body.v5 .data-table th.rn,body.v5 .data-table td.rn{text-align:right;white-space:nowrap}
body.v5 .data-table td.rn{font-family:var(--font-mono)}
@media(max-width:768px){body.v5 .data-table td.rn{text-align:left}}
/* Deep-linked obligation row flash (review RC-04) — fades back out. */
body.v5 .data-table tr.row-target td{background:var(--gold-pale,#f5e8c4);transition:background 1.2s ease}
@media(prefers-reduced-motion:reduce){body.v5 .data-table tr.row-target td{transition:none}}

body.v5 .hp-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
body.v5 .hp-feat{border:1px solid var(--line);border-radius:14px;padding:20px;background:#fff;transition:var(--dur);color:var(--ink)}
body.v5 .hp-feat:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,42,82,.09)}
body.v5 .hp-feat-ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:11px;background:var(--tint);border:1px solid var(--tint-2);color:var(--navy);margin-bottom:12px}
body.v5 .hp-feat h3{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--navy);margin:0 0 5px}
body.v5 .hp-feat p{font-size:13.5px;color:var(--dim);margin:0}

/* minmax(0,1fr) lets the column shrink below its widest button so the hero never
   overflows narrow phones (testing feedback FB1 #20). */
@media(max-width:860px){body.v5 .hp-hero-grid{grid-template-columns:minmax(0,1fr)}}

/* =====================================================================
   Admin homepage preview (admin-only; never shown to the public).
   Text-bearing surfaces use --orange-text (#a5431f, white passes AA);
   the dashed panel outline uses the brighter --orange (decorative).
   ===================================================================== */
body.v5 .preview-bar{background:var(--navy-deep);color:#fff;border-bottom:3px solid var(--gold)}
body.v5 .preview-bar.is-on{background:var(--orange-text);border-bottom-color:#fff}
body.v5 .preview-bar .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
body.v5 .preview-bar-tag{font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:5px;white-space:nowrap}
body.v5 .preview-bar-txt{font-size:13px;color:#fff;flex:1 1 320px;min-width:0}
body.v5 .preview-bar-btn{font-family:var(--font-label);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--gold);color:var(--navy-deep);padding:8px 16px;border-radius:6px;white-space:nowrap;text-decoration:none;transition:var(--dur)}
body.v5 .preview-bar-btn:hover{background:var(--gold-light)}

body.v5 .hp-preview{position:relative;outline:2px dashed var(--orange);outline-offset:-8px}
body.v5 .preview-flag{display:inline-flex;align-items:center;gap:8px;background:var(--orange-text);color:#fff;font-family:var(--font-label);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:6px 14px;border-radius:6px;margin:0 0 16px}
body.v5 .preview-flag-mark{font-weight:800;letter-spacing:.12em}
body.v5 .preview-flag em{font-style:italic;text-transform:none;letter-spacing:0;font-weight:400;font-family:var(--font-body);opacity:.95}
body.v5 .preview-inline{opacity:.9}
body.v5 .preview-inline em{font-family:var(--font-label);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-text);background:#fff;border:1px solid var(--orange);border-radius:4px;padding:1px 5px;margin-left:4px;font-style:normal}
body.v5 .hp-more-dead{display:inline-block;margin-top:16px;font-family:var(--font-label);font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);cursor:default}
body.v5 .hp-preview code{font-family:var(--font-mono);font-size:.85em;background:var(--wash);padding:1px 5px;border-radius:4px;color:var(--navy)}

/* =====================================================================
   Coverage & freshness — region cards + freshness filter + legend + ISO wall
   (crcgs-homepage-v2 structure, brand-tokenised for the light homepage).
   Freshness bands use the brand gold at decreasing opacity; the deep-profile
   ring uses the enforcement orange. The wall is flex-wrap so it reflows on
   mobile rather than overflowing.
   ===================================================================== */
/* 1. Region summary cards */
body.v5 .hp-regions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
body.v5 .hp-reg{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;
  text-decoration:none;display:block;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur)}
body.v5 a.hp-reg:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(15,42,82,.09);transform:translateY(-2px)}
body.v5 .hp-reg .hp-rn{display:block;font-family:var(--font-label);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim2)}
body.v5 .hp-reg .hp-rc{display:block;font-family:var(--font-display);font-size:29px;font-weight:600;color:var(--navy);line-height:1.1;margin-top:5px}
body.v5 .hp-reg .hp-rl{display:block;font-size:12.5px;color:var(--dim);margin-top:3px}

/* 2. Freshness filter */
body.v5 .hp-filters{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-top:22px;
  padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
body.v5 .hp-filters .fl{font-family:var(--font-label);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim2);padding:0}
body.v5 .hp-radio{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:13.5px;color:var(--ink)}
body.v5 .hp-radio input{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:1.5px solid var(--line-2);
  border-radius:50%;position:relative;cursor:pointer;margin:0;flex:0 0 auto}
body.v5 .hp-radio input:checked{border-color:var(--gold)}
body.v5 .hp-radio input:checked::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold)}
body.v5 .hp-radio input:checked+span{font-weight:600;color:var(--navy)}
body.v5 .hp-radio input:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
body.v5 .hp-filter-count{margin-left:auto;font-family:var(--font-mono);font-size:12px;letter-spacing:.03em;color:var(--navy);font-weight:600}

/* 3. Legend */
body.v5 .hp-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:14px;
  font-family:var(--font-label);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2)}
body.v5 .hp-legend i{font-style:normal;display:inline-flex;align-items:center;gap:7px}
body.v5 .hp-legend .sw{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid var(--line-2)}
body.v5 .hp-legend .sw-cold{background:var(--off-white)}
body.v5 .hp-legend .sw-deep{background:transparent;box-shadow:inset 0 0 0 2px var(--orange)}

/* 4. ISO wall — reflows on wrap, never overflows */
body.v5 .grid-iso{display:flex;flex-wrap:wrap;gap:5px;margin-top:16px}
body.v5 .iso-t{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;padding:4px 6px;
  min-width:34px;text-align:center;border:1px solid var(--line);border-radius:4px;background:var(--off-white);
  color:var(--dim2);text-decoration:none;transition:var(--dur)}
body.v5 a.iso-t:hover{border-color:var(--navy);color:var(--navy);background:#fff}
body.v5 .iso-t.h1{background:rgba(212,168,74,.92);border-color:var(--gold);color:var(--navy);font-weight:700}
body.v5 .iso-t.h2{background:rgba(212,168,74,.45);border-color:rgba(212,168,74,.6);color:var(--navy)}
body.v5 .iso-t.h3{background:rgba(212,168,74,.18);border-color:rgba(212,168,74,.38);color:var(--navy)}
body.v5 .iso-t.deep{box-shadow:inset 0 0 0 2px var(--orange)}
body.v5 .iso-t.dim{opacity:.26}
@media(max-width:880px){ body.v5 .hp-regions{grid-template-columns:repeat(2,1fr)} }

body.v5 .hp-fresh{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
body.v5 .hp-fresh-stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;text-align:center}
body.v5 .hp-fresh-n{display:block;font-family:var(--font-mono);font-size:23px;font-weight:600;color:var(--navy);line-height:1.1}
body.v5 .hp-fresh-l{display:block;font-size:12.5px;color:var(--dim);margin-top:6px}

/* =====================================================================
   Coverage & freshness — DARK treatment (navy-deep, matching the hero).
   Applied via .hp-cov-dark on the section; inverts text/cards/tiles for a
   dark ground. Freshness gold bands stay; base tiles become faint-on-dark.
   ===================================================================== */
body.v5 .hp-cov-dark{background:var(--navy-deep)}
body.v5 .hp-cov-dark .hp-sec-head h2{color:#fff}
body.v5 .hp-cov-dark .hp-sec-head p{color:#BCC7DC}
/* region cards */
body.v5 .hp-cov-dark .hp-reg{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
body.v5 .hp-cov-dark a.hp-reg:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.32);box-shadow:none}
body.v5 .hp-cov-dark .hp-reg .hp-rn{color:var(--gold)}
body.v5 .hp-cov-dark .hp-reg .hp-rc{color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px 6px;margin-top:8px}
body.v5 .hp-cov-dark .hp-reg .hp-rl{color:#9FB3D1}
/* freshness filter */
body.v5 .hp-cov-dark .hp-filters{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16)}
body.v5 .hp-cov-dark .hp-filters .fl{color:#9FB3D1}
body.v5 .hp-cov-dark .hp-radio{color:#C6D4E8}
body.v5 .hp-cov-dark .hp-radio input{border-color:#6C7FA3}
body.v5 .hp-cov-dark .hp-radio input:checked{border-color:var(--gold)}
body.v5 .hp-cov-dark .hp-radio input:checked+span{color:#fff}
body.v5 .hp-cov-dark .hp-filter-count{color:var(--gold)}
/* legend */
body.v5 .hp-cov-dark .hp-legend{color:#9FB3D1}
body.v5 .hp-cov-dark .hp-legend .sw{border-color:rgba(255,255,255,.28)}
body.v5 .hp-cov-dark .hp-legend .sw-cold{background:rgba(255,255,255,.13)}
/* ISO wall */
body.v5 .hp-cov-dark .iso-t{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#C6D4E8}
body.v5 .hp-cov-dark a.iso-t:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.5);color:#fff}
body.v5 .hp-cov-dark .iso-t.h1{background:rgba(212,168,74,.95);border-color:var(--gold);color:var(--navy-deep)}
body.v5 .hp-cov-dark .iso-t.h2{background:rgba(212,168,74,.5);border-color:rgba(212,168,74,.6);color:#fff}
body.v5 .hp-cov-dark .iso-t.h3{background:rgba(212,168,74,.22);border-color:rgba(212,168,74,.4);color:#F0E0BE}
body.v5 .hp-cov-dark .iso-t.deep{box-shadow:inset 0 0 0 2px var(--orange)}
/* footer link + focus ring on dark */
body.v5 .hp-cov-dark .hp-more{color:var(--gold)}
body.v5 .hp-cov-dark :focus-visible{outline-color:#F0C862}

/* ── External-link indicator (refinement §1.2) ──────────────────────────────
   Small "opens in a new tab" glyph after any off-site link. Inherits colour,
   sits on the text baseline, and is nudged down 1px for optical alignment.
   Muted so it never competes with the link text; buttons keep it legible. */
body.v5 .ext-ico{display:inline-block;width:.72em;height:.72em;margin-left:.28em;vertical-align:baseline;transform:translateY(.06em);opacity:.7;flex:none}
body.v5 a:hover .ext-ico{opacity:1}
body.v5 .btn .ext-ico{opacity:.9;margin-left:.4em}

/* =====================================================================
   §R — Shared entity tables (refinement §2/§3/§4): enforcement · obligations
   · deadlines. ONE look across country tab, regulator, instrument, indexes.
   ===================================================================== */
@media(hover:hover){body.v5 .data-table tbody tr:hover td{background:var(--wash)}} /* mouse only — no sticky tap-recolour on touch */
body.v5 .data-table td.nowrap,body.v5 .nowrap{white-space:nowrap}

/* Enforcement: action-type badge (orange = enforcement) + penalty + USD line */
body.v5 .act-badge{display:inline-block;font-family:var(--font-label);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;background:#fbede6;color:var(--orange-text);border:1px solid #f0d3c4;white-space:nowrap}
body.v5 .penalty-usd{display:block;font-family:var(--font-mono);font-size:11px;color:var(--dim2);margin-top:2px}

/* Group header rows (industry on obligations, month on the global calendar) */
body.v5 .data-table tr.group-head th{background:var(--tint);color:var(--navy);font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.5rem 1rem;border-bottom:1px solid var(--line)}

/* Obligations: title, expand/collapse detail, right-aligned detail column */
body.v5 .obligation-table .ob-title{font-weight:600}
body.v5 .data-table .col-detail{text-align:right;white-space:nowrap}
body.v5 .ob-toggle{font-family:var(--font-label);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--navy);background:var(--wash);border:1px solid var(--line);border-radius:6px;padding:.28rem .6rem;cursor:pointer;transition:background var(--dur),border-color var(--dur),color var(--dur)}
body.v5 .ob-toggle:hover{background:#fff;border-color:var(--navy)}
body.v5 .ob-toggle[aria-expanded="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
body.v5 .data-table .ob-detail td{background:var(--wash)}
/* TEXT-MEASURE RULE (do NOT reintroduce a ch cap on the blocks below). Long-form
   PROSE keeps a ~52-66ch measure for readability (.hp-lede, .cch-lead, .hp-sec-head,
   country overviews) — leave those. But text inside a FULL-WIDTH PANEL — expanded
   table-detail rows, page-intro paragraphs, footnotes — must NOT carry a narrow ch
   measure: on small fonts a ch cap renders at ~half the container and reads as broken.
   These fill their (full-width) container instead. */
body.v5 .data-table .ob-detail .rich-text{font-size:13.5px;max-width:none;margin:0;line-height:1.6}

/* Deadlines: rule note under the filing name */
body.v5 .deadline-table .rule-note{display:block;font-size:12px;margin-top:2px}

/* Obligations filter bar (refinement §3) */
body.v5 .ob-filters{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 16px;padding:14px 16px;background:var(--wash);border:1px solid var(--line);border-radius:var(--radius)}
body.v5 .ob-filter{display:flex;flex-direction:column;gap:4px}
body.v5 .ob-filter label{font-family:var(--font-label);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);font-weight:600}
body.v5 .ob-filter select{font-size:13px;padding:.42rem .6rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);min-width:150px}
body.v5 .ob-filter-count{margin-left:auto;align-self:center;font-size:12.5px}
body.v5 .ob-filter-reset{align-self:center}

/* Remove justified alignment site-wide (refinement §3) — kill only justify,
   leave deliberate left/right/center intact. Overrides inline style. */
body.v5 [style*="text-align: justify"],body.v5 [style*="text-align:justify"]{text-align:left !important}

/* Mobile: shared tables collapse to stacked cards (parity with enforcement) */
@media (max-width:767px){
  body.v5 .data-table thead{display:none}
  body.v5 .data-table,body.v5 .data-table tbody,body.v5 .data-table tr,body.v5 .data-table td{display:block;width:100%}
  body.v5 .data-table tr[hidden],body.v5 .data-table td[hidden]{display:none}
  body.v5 .data-table tbody tr{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.6rem;padding:.55rem .85rem}
  body.v5 .data-table td{border:0;padding:.18rem 0}
  body.v5 .data-table td[data-label]::before{content:attr(data-label);display:block;font-family:var(--font-label);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2);margin-bottom:1px}
  body.v5 .data-table .col-detail{text-align:left}
  body.v5 .data-table tr.group-head{background:none;border:0;padding:0;margin:.5rem 0 .2rem}
  body.v5 .data-table tr.group-head th{display:block;border-radius:6px}
  body.v5 .data-table tr.ob-detail{border:0;background:none;padding:0;margin:-.4rem 0 .6rem}
  body.v5 .data-table tr.ob-detail td{background:var(--wash);border-radius:var(--radius);padding:.5rem .7rem}
  body.v5 .ob-filter select{min-width:0;width:100%}
  body.v5 .ob-filter{flex:1 1 45%}
  body.v5 .ob-filter-count{margin-left:0}
}

/* Laws & Regulations tab — consistent row hierarchy (refinement §2.1) */
body.v5 .law-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
body.v5 .law-item{display:block;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:#fff;transition:border-color var(--dur),box-shadow var(--dur)}
body.v5 .law-item:hover{border-color:var(--line-2);box-shadow:0 3px 10px rgba(15,42,82,.07)}
body.v5 .law-title{font-family:var(--font-display);font-weight:600;font-size:17px;line-height:1.3;color:var(--navy);display:block}
body.v5 .law-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
body.v5 .law-year{font-size:12.5px}
body.v5 .law-summary{margin:9px 0 0;font-size:13.5px;line-height:1.55;max-width:82ch}

/* =====================================================================
   §5 — Regulator identity box as a navigation hub (refinement §5)
   ===================================================================== */
body.v5 .reg-identity{position:relative;padding:20px 22px}
body.v5 .reg-identity h2{margin:0 120px 6px 0;font-family:var(--font-display);font-size:24px;color:var(--navy);line-height:1.15}
body.v5 .reg-identity .reg-meta{margin-top:6px}
body.v5 .reg-identity-logo{position:absolute;top:20px;right:22px;max-width:96px;max-height:56px;width:auto;height:auto;object-fit:contain}

/* Live count chips */
body.v5 .reg-chips{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 4px}
body.v5 .reg-chip{display:flex;flex-direction:column;align-items:center;min-width:88px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--wash);transition:border-color var(--dur),transform var(--dur),box-shadow var(--dur)}
body.v5 .reg-chip:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:0 4px 12px rgba(15,42,82,.08)}
body.v5 .reg-chip b{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--navy);line-height:1}
body.v5 .reg-chip span{font-family:var(--font-label);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim2);margin-top:4px}

/* Supervised sectors + source pages: label + inline chips/links */
body.v5 .reg-sectors,body.v5 .reg-sources{margin-top:16px}
body.v5 .reg-line-l{display:block;font-family:var(--font-label);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);font-weight:600;margin-bottom:7px}
body.v5 .reg-sectors{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
body.v5 .reg-sectors .reg-line-l{width:100%}
body.v5 .reg-sources ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
body.v5 .reg-sources a{font-size:13.5px}

/* Mini activity pulse — same ticks as the country pulse, compact */
body.v5 .reg-pulse{margin-top:18px;background:var(--navy-deep);border-radius:12px;padding:14px 16px 10px}
body.v5 .reg-pulse-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
body.v5 .reg-pulse-title{font-family:var(--font-label);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:#BCC7DC;font-weight:600}
body.v5 .reg-pulse .leg{display:flex;gap:12px;flex-wrap:wrap}
body.v5 .reg-pulse .leg span{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#9FB3D1}
body.v5 .reg-pulse .leg i{width:9px;height:9px;border-radius:2px;display:inline-block}
body.v5 .reg-pulse-svg{width:100%;height:40px;display:block;overflow:visible}
body.v5 .reg-pulse-svg rect.tick{transform-box:fill-box;transform-origin:center bottom;transition:transform .12s ease}
body.v5 .reg-pulse-svg rect.tick:hover{transform:scaleX(2.4)}

@media (max-width:600px){
  body.v5 .reg-identity h2{margin-right:0}
  body.v5 .reg-identity-logo{position:static;display:block;margin:0 0 10px}
  body.v5 .reg-chip{flex:1 1 40%}
}

/* =====================================================================
   §6 — Enforcement analytics charts (refinement §6). Server-rendered SVG.
   ===================================================================== */
body.v5 .ef-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;margin:0 0 22px}
body.v5 .ef-chart{padding:16px 18px}
body.v5 .ef-chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
body.v5 .ef-chart-head h2{font-family:var(--font-display);font-size:17px;color:var(--navy);margin:0}
body.v5 .ef-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
body.v5 .ef-tab{font-family:var(--font-label);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim2);background:#fff;border:0;padding:.4rem .7rem;cursor:pointer;transition:background var(--dur),color var(--dur)}
body.v5 .ef-tab+.ef-tab{border-left:1px solid var(--line)}
body.v5 .ef-tab.on{background:var(--navy);color:#fff}
body.v5 .ef-donut-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
body.v5 .ef-donut-wrap[hidden]{display:none}
body.v5 .chart-donut{width:170px;height:170px;flex:0 0 auto}
body.v5 .chart-donut-num{font-family:var(--font-mono);font-size:26px;font-weight:600;fill:var(--navy)}
body.v5 .chart-donut-cap{font-family:var(--font-label);font-size:9px;letter-spacing:.1em;text-transform:uppercase;fill:var(--dim2)}
body.v5 .chart-donut circle{transition:opacity var(--dur)}
body.v5 .chart-donut:hover circle{opacity:.55}
body.v5 .chart-donut circle:hover{opacity:1}
body.v5 .chart-legend{list-style:none;margin:0;padding:0;flex:1 1 150px;min-width:150px;display:flex;flex-direction:column;gap:5px}
body.v5 .chart-legend li{display:flex;align-items:center;gap:8px;font-size:12.5px}
body.v5 .chart-legend i{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
body.v5 .chart-legend span{flex:1;color:var(--ink)}
body.v5 .chart-legend b{font-family:var(--font-mono);color:var(--navy)}
body.v5 .chart-cols{width:100%;height:auto;display:block}
body.v5 .chart-val{font-family:var(--font-mono);font-size:11px;fill:var(--dim2)}
body.v5 .chart-xlab{font-family:var(--font-label);font-size:11px;fill:var(--navy)}
body.v5 .ef-chart-data{grid-column:1/-1;margin-top:-6px}
body.v5 .ef-chart-data summary{font-family:var(--font-label);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim2);cursor:pointer}
@media (prefers-reduced-motion:reduce){
  body.v5 .chart-donut circle,body.v5 .chart-donut:hover circle{transition:none}
}
@media (max-width:820px){
  body.v5 .ef-charts{grid-template-columns:1fr}
}

/* Obligation timing cell — per-row nature label (migration 022). Compact single line
   (item 6.1): "Label: value" inline so each collapsed row stays to one/two lines. */
body.v5 .ob-timing .ob-nat-label{font-family:var(--font-label);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--dim2);margin-right:5px}
body.v5 .ob-timing .ob-nat-label::after{content:":"}
body.v5 .ob-timing .ob-nat-val{font-size:13px;line-height:1.4}
body.v5 a.ob-compare-link{text-decoration:none}
/* On mobile the stacked card already prints the nature via the data-label ::before,
   so suppress the inline label to avoid showing it twice. */
@media (max-width:767px){
  body.v5 .ob-timing .ob-nat-label{display:none}
}

/* Hero search typeahead (combined-brief §1): reuse the header .search-suggest,
   anchored to the console. The hero clips its decorative background, so allow the
   dropdown to overhang by letting the hero overflow (the ::before is inset:0, so
   nothing bleeds) and giving the console a positioning context. */
body.v5 .hp-hero{overflow:visible}
body.v5 .hp-console{position:relative}
body.v5 .hp-console .search-suggest{text-align:left}

/* COUNTRY PROFILES nav dropdown (combined-brief §4). Desktop: opens on hover and
   on keyboard focus-within (fully keyboard-reachable); parent links to the subdomain
   root. Mobile drawer: items render expanded + indented (see the 860px block below). */
body.v5 .cp-nav .nav .nav-item.has-dd{position:relative;display:inline-flex;align-items:center}
body.v5 .cp-nav .nav .nav-item.has-dd>a{display:inline-flex;align-items:center;gap:5px}
body.v5 .nav-dd{position:absolute;top:100%;left:0;min-width:230px;background:var(--navy);border:1px solid rgba(255,255,255,.16);border-radius:7px;box-shadow:0 14px 32px rgba(0,0,0,.42);padding:6px;display:none;z-index:75}
body.v5 .nav-item.has-dd:hover .nav-dd,body.v5 .nav-item.has-dd:focus-within .nav-dd{display:block}
body.v5 .cp-nav .nav .nav-dd a{display:block;white-space:nowrap;border-bottom:0;border-radius:5px;font-size:11.5px;padding:9px 12px}
body.v5 .cp-nav .nav .nav-dd a:hover{background:rgba(255,255,255,.1);color:#fff}

@media(max-width:860px){
  /* In the drawer the dropdown is always expanded and indented — no hover needed. */
  body.v5 .cp-nav .nav .nav-item.has-dd{display:block;position:static;width:100%}
  body.v5 .cp-nav .nav .nav-item.has-dd>a{display:block}
  body.v5 .nav-dd{position:static;display:block;background:none;border:0;box-shadow:none;padding:0 0 6px 14px}
  body.v5 .cp-nav .nav .nav-dd a{font-size:13.5px;color:#cdd6e6;padding:10px 12px}
}

/* =====================================================================
   §6 — Unified country header (one header on every tab)
   ===================================================================== */
body.v5 .cp-country-head{display:flex;gap:30px;align-items:center;justify-content:space-between;padding:6px 0 16px}
body.v5 .cch-media .cframe{aspect-ratio:16/9}
body.v5 .cch-text{flex:1 1 auto;min-width:0}
body.v5 .cch-idline{display:flex;align-items:center;gap:14px}
body.v5 .cch-idline h1{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,3.6vw,40px);letter-spacing:-.02em;color:var(--ink);margin:0;line-height:1.05}
body.v5 .cch-meta{color:var(--dim);font-family:var(--font-mono);font-size:12.5px;margin:14px 0 0}
body.v5 .cch-counts{margin:7px 0 0;font-size:14.5px;color:var(--navy);font-weight:600}
body.v5 .cch-lead{margin:13px 0 0;font-size:15px;line-height:1.55;color:var(--dim);max-width:62ch}
body.v5 .cch-media{flex:0 0 auto;width:min(40%,420px)}
/* .cslider/.cframe already constrain the image to a consistent 14/9 ratio — the
   dead-space fix: the lead fills the text column and the image can't run tall. */
body.v5 .breadcrumb{margin-top:14px}

@media(max-width:900px){
  body.v5 .cp-country-head{flex-direction:column;align-items:flex-start;gap:16px} /* left-align the stacked header so the flag shares the page's left edge */
  body.v5 .cch-media{width:100%;max-width:520px}
}

/* =====================================================================
   §9 — Navy filter bars + navy table headers (contrast) + sticky headers
   ===================================================================== */
body.v5 .filter-bar{margin:0 0 16px;padding:14px 16px;background:var(--navy);border-radius:var(--radius)}
body.v5 .fb-body{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}
body.v5 .fb-apply{display:none} /* desktop: no Apply (filters are live); shown only in the mobile collapse */
body.v5 .fb-toggle{display:none} /* desktop: fields inline, no toggle needed */
body.v5 .fb-field{display:flex;flex-direction:column;gap:5px}
body.v5 .fb-field label{font-family:var(--font-label);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#cbd6e8;font-weight:600}
body.v5 .fb-field select,body.v5 .fb-field input{font-size:13px;padding:.46rem .6rem;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:#fff;color:var(--ink);min-width:152px}
body.v5 .fb-field input::placeholder{color:var(--dim)}
body.v5 .fb-search input{min-width:196px}
body.v5 .fb-field select:focus-visible,body.v5 .fb-field input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
body.v5 .fb-count{margin-left:auto;align-self:center;color:#d3ddee;font-size:12.5px}
body.v5 .fb-reset{align-self:center}
body.v5 .btn-ghost-cream{background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff}
body.v5 .btn-ghost-cream:hover{background:rgba(255,255,255,.13)}

/* Navy header row on every shared table. Uppercase, letterspaced, small, white (AA). */
body.v5 .data-table thead th{background:var(--navy);color:#fff;border-bottom:1px solid var(--navy)}
body.v5 .data-table tr.group-head th{background:var(--tint);color:var(--navy)} /* group dividers stay light */

/* Sticky header: the table scrolls inside its own region on desktop, so column
   labels stay visible without fighting the page's sticky header/tab bar. */
@media(min-width:768px){
  /* Page-level sticky table header: the column labels pin just below the sticky
     site header + tab bar while the whole page scrolls a long table, instead of
     scrolling away. .table-wrap must NOT be its own scroll container for this, so
     overflow is visible here (desktop tables fit the width — no horizontal scroll
     is lost). The navy thead is opaque so rows can't bleed through. */
  body.v5 .table-wrap{overflow:visible}
  body.v5 .data-table thead th{position:sticky;top:110px;z-index:6}   /* below the site header (index pages) */
  body.v5 .ptabs ~ .wrap .data-table thead th{top:155px}          /* below header + tab bar (country tabs) */
}

/* =====================================================================
   §11 — Badge discipline: badges only for categories; values are plain text
   ===================================================================== */
/* Enforcement action-type badge — toned down: smaller, softer fill, not shouting. */
body.v5 .act-badge{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;padding:.16rem .5rem;background:#f7ece4;color:var(--orange-text);border:1px solid #eed9cb}
/* Regulator as a plain text link (not a pill). */
body.v5 .reg-link{color:var(--navy);font-weight:500;text-decoration:none}
body.v5 .reg-link:hover{text-decoration:underline}
/* Plain value styles for frequency / timing / industry cells. */
body.v5 .val-plain{color:var(--ink)}
body.v5 .val-label{display:block;font-family:var(--font-label);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--dim2);margin-bottom:2px}
/* Calendar "source pending" — a clearly muted warning state, not body text. */
body.v5 .src-pending{color:var(--orange-text);font-style:italic;font-size:12px;opacity:.9}

/* Regulators + laws table extras (combined-brief §7/§8) */
body.v5 .reg-primary{font-family:var(--font-label);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-left:6px}
body.v5 .instrument-table .col-summary{max-width:34ch}
body.v5 .instrument-table .law-sum-x{color:var(--dim)}
body.v5 .regulator-table td[data-label="Supervises"]{color:var(--ink);font-size:13px;max-width:26ch}

/* Ensure hidden filter controls stay hidden (.btn display overrides [hidden]). */
body.v5 .filter-bar [hidden]{display:none}

/* Neutral "verification in progress" trust panel (no tick, no date) — shown when
   content_verified_at is NULL so no false verification claim is ever made. */
body.v5 .verif-pending{background:var(--wash);border-color:var(--line)}
body.v5 .verif-pending b{color:var(--dim2)}

/* Mobile filter collapse (refinement §4): below 768px the fields hide behind a
   compact "Filters (N)" toggle; tapping expands them (stacked), Apply collapses. */
@media(max-width:767px){
  body.v5 .filter-bar{padding:10px 12px}
  body.v5 .fb-toggle{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:center;
    font-family:var(--font-label);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
    color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.30);border-radius:7px;padding:11px 14px;cursor:pointer}
  body.v5 .fb-toggle svg{stroke:#fff;flex:none}
  body.v5 .fb-body{display:none}
  body.v5 .filter-bar.open .fb-body{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:12px}
  body.v5 .filter-bar .fb-field{width:100%}
  body.v5 .filter-bar .fb-field select,body.v5 .filter-bar .fb-field input{width:100%;min-width:0}
  body.v5 .fb-count{margin-left:0;order:98}
  body.v5 .fb-reset{order:99;align-self:stretch}
  body.v5 .fb-apply{display:block;width:100%;order:100}
}

/* =========================================================================
   §Comparison engine (brief C1) — public /compare matrix + homepage teaser.
   Deliberately NOT the responsive-card .data-table: a comparison is wide, so on
   small screens .cmp-scroll scrolls horizontally rather than collapsing columns.
   ========================================================================= */
body.v5 .cmp-page{padding-top:26px;padding-bottom:48px}
body.v5 .cmp-preview-badge{background:var(--navy-deep);color:#fff;border-radius:var(--radius);padding:10px 14px;margin-bottom:18px;font-size:13px}
body.v5 .cmp-preview-badge code{color:var(--gold-light)}
body.v5 .cmp-head{margin-bottom:16px}
body.v5 .cmp-head .eyebrow{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--gold);font-weight:700;margin:0 0 4px}
body.v5 .cmp-head h1{margin:0 0 8px}
body.v5 .cmp-head .lede{max-width:66rem;color:var(--dim);margin:0}  /* full-width intro, not a half-width ch measure */

body.v5 .cmp-legal{border:1px solid var(--orange);border-left-width:4px;background:#fdf3ee;color:var(--ink);border-radius:var(--radius);padding:12px 16px;margin:0 0 20px;font-size:14px;line-height:1.5}
body.v5 .cmp-legal strong{color:var(--orange-text)}

body.v5 .cmp-controls{background:var(--navy);border-radius:var(--radius);padding:14px 16px;margin:0 0 18px}
body.v5 .cmp-picker{color:#fff;margin-bottom:12px}
body.v5 .cmp-picker>summary{cursor:pointer;font-family:var(--font-label);font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:700}
body.v5 .cmp-picker .muted{color:var(--gold-light)}
/* Compact picker toolbar: select all / clear / reset / selected-only */
body.v5 .cmp-picker-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
body.v5 .cmp-tool-btn{font-family:var(--font-label);font-size:11px;letter-spacing:.03em;text-transform:uppercase;font-weight:600;color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.28);border-radius:6px;padding:.28rem .6rem;cursor:pointer}
body.v5 .cmp-tool-btn:hover{background:rgba(255,255,255,.20)}
body.v5 .cmp-tool-btn[aria-pressed="true"]{background:var(--gold);color:var(--navy);border-color:var(--gold)}
/* Compact one-line-per-country list, multi-column */
body.v5 .cmp-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 18px;margin-top:10px;max-height:210px;overflow:auto;padding:2px 2px 2px 0}
body.v5 .cmp-check{display:flex;align-items:center;gap:7px;color:#fff;font-size:13px;line-height:1.2;padding:3px 2px;border-radius:4px;cursor:pointer;min-width:0}
body.v5 .cmp-check:hover{background:rgba(255,255,255,.08)}
body.v5 .cmp-check input{accent-color:var(--gold);flex:0 0 auto;margin:0}
body.v5 .cmp-check .cmp-cname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.v5 .cmp-check[hidden]{display:none}
/* Inline flag at text height — no card frame (used in the picker + entry links) */
body.v5 .flag-inline{display:inline-flex;align-items:center;flex:0 0 auto;line-height:0}
body.v5 .flag-inline img{height:14px;width:auto;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.18)}
body.v5 .flag-inline.flag-fallback{display:inline-flex;align-items:center;justify-content:center;height:14px;min-width:20px;padding:0 3px;font-family:var(--font-label);font-size:8.5px;font-weight:700;color:var(--navy);background:var(--gold-pale);border-radius:2px}
body.v5 .cmp-controls-row{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-top:6px}
body.v5 .cmp-field label{display:block;color:var(--gold-light);font-family:var(--font-label);font-size:10px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px}
body.v5 .cmp-field select{min-width:180px}

body.v5 .cmp-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
body.v5 table.cmp-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px;min-width:640px}
body.v5 .cmp-table thead th{background:var(--navy);color:#fff;text-align:left;padding:.6rem .8rem;vertical-align:bottom;font-size:12.5px;position:sticky;top:0;z-index:5}
body.v5 .cmp-table thead .cmp-colhead{text-align:center;min-width:120px}
body.v5 .cmp-table thead .cmp-colhead a{color:#fff;text-decoration:none}
body.v5 .cmp-table thead .cmp-colhead a:hover{text-decoration:underline}
body.v5 .cmp-table th.cmp-rowhead{position:sticky;left:0;z-index:6;background:var(--navy)}
body.v5 .cmp-table td,body.v5 .cmp-table tbody th{border-bottom:1px solid var(--line);vertical-align:top;padding:.55rem .8rem}
body.v5 .cmp-table tbody th.cmp-rowhead{position:sticky;left:0;background:#fff;text-align:left;z-index:2;min-width:210px;max-width:260px}
body.v5 .cmp-type-name{display:block;font-weight:600;color:var(--navy)}
body.v5 .cmp-type-domain{display:block;font-family:var(--font-label);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim2);margin-top:2px}
body.v5 .cmp-coverage{display:block;font-size:11px;color:var(--dim);margin-top:4px}
body.v5 .cmp-table tbody tr:last-child td,body.v5 .cmp-table tbody tr:last-child th{border-bottom:0}

body.v5 .cmp-cell-td{text-align:center}
body.v5 .cmp-cell-td.cmp-strict{background:rgba(212,168,74,.14);box-shadow:inset 0 0 0 2px var(--gold)}
body.v5 details.cmp-cell{display:inline-block}
body.v5 details.cmp-cell>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;justify-content:center;font-family:var(--font-mono,monospace);font-size:13.5px;color:var(--ink);padding:2px 4px;border-radius:5px}
body.v5 details.cmp-cell>summary::-webkit-details-marker{display:none}
body.v5 details.cmp-cell[open]>summary{background:var(--wash)}
body.v5 .cmp-val{font-weight:600}
body.v5 .cmp-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 auto}
body.v5 .cmp-dot-fresh{background:var(--green)}
body.v5 .cmp-dot-ageing{background:#c99a2a}
body.v5 .cmp-strict-tag{display:inline-block;font-family:var(--font-label);font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);background:var(--gold);border-radius:999px;padding:.05rem .4rem}
body.v5 .cmp-prov{text-align:left;margin-top:8px;padding:10px;background:var(--wash);border-radius:6px;min-width:220px;max-width:300px;font-size:13px;line-height:1.5}
body.v5 .cmp-prov-note{margin:0 0 6px}
body.v5 .cmp-prov-meta{margin:0 0 6px;color:var(--dim);font-size:12px}
body.v5 .cmp-prov-src{font-weight:600}
body.v5 .cmp-empty{text-align:center}
body.v5 .cmp-tbu{display:inline-block;font-size:12px;color:var(--dim2);font-style:italic}
body.v5 details.cmp-propose{margin-top:6px}
body.v5 details.cmp-propose>summary{cursor:pointer;font-size:11px;color:var(--navy);text-decoration:underline}
body.v5 .cmp-propose-form{text-align:left;margin-top:8px;padding:10px;background:var(--wash);border-radius:6px;min-width:220px}
body.v5 .cmp-propose-l{display:block;font-size:12px;margin-bottom:6px}
body.v5 .cmp-propose-l input{display:block;width:100%;margin-top:2px}
body.v5 .cmp-propose-help{font-size:11px;margin:.3rem 0 .5rem}
body.v5 .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
body.v5 .btn-xs{padding:.25rem .6rem;font-size:12px}

body.v5 .cmp-foot{margin-top:18px;font-size:13px;color:var(--dim);line-height:1.6;max-width:none}  /* footnote fills the panel, not a half-width ch measure */
body.v5 .cmp-foot .cmp-dot{margin:0 2px}

body.v5 .hp-compare{background:var(--navy-deep);color:#fff;padding:40px 0;margin:40px 0}
body.v5 .hp-compare .eyebrow{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--gold-light);font-weight:700;margin:0 0 6px}
body.v5 .hp-compare h2{color:#fff;margin:0 0 10px}
body.v5 .hp-compare-lede{max-width:66ch;color:rgba(255,255,255,.85);margin:0 0 18px}
body.v5 .hp-compare-lede strong{color:var(--gold-light)}
/* Homepage comparison teaser: a real mini-matrix on the navy band, in a white card
   for depth/contrast (item 6). Reuses the /compare .cmp-table treatments. */
body.v5 .hp-cmp-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.28)}
body.v5 .hp-cmp-card .cmp-scroll{border:0;border-radius:0}
body.v5 .hp-cmp-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin-top:16px}
body.v5 .hp-cmp-note{font-size:12.5px;color:rgba(255,255,255,.72);margin:0}
body.v5 .hp-cmp-note .cmp-dot{margin:0 2px}
body.v5 a.hp-cmp-cta{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-label);font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--navy);background:var(--gold);border-radius:8px;padding:.6rem 1.1rem;text-decoration:none}
body.v5 a.hp-cmp-cta:hover{background:var(--gold-light)}
/* Comparison entry points (item 5): country-page link + per-row obligation link */
body.v5 .cmp-entry{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-weight:600;font-size:14px;color:var(--navy);text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:1px}
body.v5 .cmp-entry:hover{color:var(--navy-deep)}
body.v5 a.ob-compare-link{display:inline-block;margin-left:6px;font-size:13px;color:var(--gold);text-decoration:none;vertical-align:baseline}
body.v5 a.ob-compare-link:hover{color:var(--navy)}

@media(max-width:768px){
  body.v5 .cmp-field select{min-width:0;width:100%}
  body.v5 .cmp-controls-row{flex-direction:column;align-items:stretch}
}

/* =========================================================================
   §Comparison — attribute model + frozen matrix (migration 025 batch).
   ========================================================================= */
/* Frozen header row + first column: make .cmp-scroll a scroll container in both
   axes so the sticky thead (top) and sticky first column (left) pin, and the corner
   (thead .cmp-corner) stays put at their intersection. */
body.v5 .cmp-scroll{overflow:auto;max-height:72vh}
body.v5 .cmp-table thead th.cmp-corner{position:sticky;left:0;top:0;z-index:8}
/* Section headings that group rows by attribute kind. */
body.v5 .cmp-table tr.cmp-group-head th{position:sticky;left:0;background:var(--tint);color:var(--navy);
  font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  padding:.5rem 1rem;border-bottom:1px solid var(--line);z-index:3}
/* Trim + cap messages. */
body.v5 .cmp-trim{background:var(--gold-pale);border:1px solid var(--gold);border-radius:var(--radius);
  padding:10px 14px;margin:0 0 16px;font-size:13.5px;color:var(--navy)}
body.v5 .cmp-cap-msg{margin:10px 0 0;color:var(--gold-light);font-size:12.5px}
/* Cap: disabled (over-limit) jurisdiction rows read as unavailable, not broken. */
body.v5 .cmp-check input:disabled{opacity:.5}
body.v5 .cmp-check input:disabled ~ .cmp-cname{opacity:.45}
@media(max-width:768px){
  body.v5 .cmp-scroll{max-height:70vh}
}

/* Collapsible domain sections on /compare (item 4) */
body.v5 .cmp-group-toggle{all:unset;cursor:pointer;display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--navy)}
body.v5 .cmp-group-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
body.v5 .cmp-group-pm{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;border:1px solid var(--navy);border-radius:4px;font-size:13px;line-height:1;flex:0 0 auto}
body.v5 .cmp-group-n{margin-left:auto;color:var(--dim2);font-weight:600}

/* Enforcement tracker: collapsed navy filter panel (item 5) */
body.v5 .ef-filter{background:var(--navy);border-radius:var(--radius);margin:0 0 20px;color:#fff;overflow:hidden}
body.v5 .ef-filter>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:12px 16px;font-family:var(--font-label);font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:700}
body.v5 .ef-filter>summary::-webkit-details-marker{display:none}
body.v5 .ef-filter-n{background:var(--gold);color:var(--navy);border-radius:999px;padding:.05rem .5rem;font-size:11px;letter-spacing:0}
body.v5 .ef-filter-body{padding:0 16px 16px}
body.v5 .ef-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}
body.v5 .ef-filter .filter-field label{display:block;color:var(--gold-light);font-family:var(--font-label);font-size:10px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px}
body.v5 .ef-filter .filter-field select,body.v5 .ef-filter .filter-field input{width:100%;box-sizing:border-box}
body.v5 .ef-filter .ef-field-wide{grid-column:span 2}
body.v5 .ef-filter .filter-actions{display:flex;gap:10px;margin-top:14px}
@media(max-width:768px){body.v5 .ef-filter .ef-field-wide{grid-column:span 1}}

/* ---- Sector (industry) hub: index grid, intro, homepage cards, amount-involved (2026-09-20) ---- */
body.v5 .sector-grid{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
body.v5 .sector-card{display:flex;flex-direction:column;gap:6px;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;text-decoration:none;color:var(--ink);transition:var(--dur)}
body.v5 .sector-card:hover{border-color:var(--gold);box-shadow:0 4px 14px rgba(17,31,61,.08)}
body.v5 .sector-head{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--navy)}
body.v5 .sector-ico{font-size:20px;line-height:1}
body.v5 .sector-counts{font-size:13px;color:var(--dim)}
body.v5 .sector-intro{margin:12px 0 0;font-size:16px;color:var(--ink);max-width:70ch}
body.v5 .sector-intro-empty{margin:12px 0 0;font-size:13.5px}
body.v5 a.hp-feat-link{text-decoration:none;color:inherit}
body.v5 a.hp-feat-link:hover{border-color:var(--gold)}
body.v5 .hp-sec-foot{margin:16px 0 0}
/* Enforcement money that is an amount involved (prosecution/attachment), not a fine */
body.v5 .amount-involved{display:block;color:var(--dim);font-weight:600}
body.v5 .amount-involved-tag{display:block;font-size:11px;color:var(--dim);font-style:italic;letter-spacing:.01em}

/* ---- Feedback & corrections channel (trust-layer-brief A4.1, 2026-09-20) ----
   Prefix fbk- (was fb-, which the public filter bar also uses: its .fb-field label rule turned the
   filter labels navy-on-navy, and the shared ids bound the widget to the filter bar — review S84/S85). */
/* Floating launcher — deliberately quiet: a reference-platform corrections control, not a chat bubble. */
body.v5 .fbk-launch{position:fixed;right:20px;bottom:20px;z-index:60;display:inline-flex;align-items:center;gap:8px;padding:.55rem .9rem;background:#fff;color:var(--navy);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);font-family:var(--font-label);font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:border-color .15s,box-shadow .15s}
body.v5 .fbk-launch:hover{border-color:var(--gold);box-shadow:0 6px 18px rgba(17,31,61,.16)}
body.v5 .fbk-launch-ico{color:var(--gold-text);flex:none}
/* Modal */
html.fbk-open{overflow:hidden}
body.v5 .fbk-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px}
body.v5 .fbk-modal[hidden]{display:none}
body.v5 .fbk-backdrop{position:absolute;inset:0;background:rgba(17,31,61,.55)}
body.v5 .fbk-panel{position:relative;width:100%;max-width:520px;max-height:88vh;overflow:auto;background:#fff;border-radius:var(--radius-lg);box-shadow:0 18px 50px rgba(17,31,61,.35);padding:22px 22px 20px}
body.v5 .fbk-x{position:absolute;top:10px;right:12px;background:none;border:0;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 6px}
body.v5 .fbk-x:hover{color:var(--navy)}
body.v5 .fbk-heading{margin:0 34px .4rem 0;font-size:20px;color:var(--navy)}
body.v5 .fbk-lede{margin:0 0 14px;font-size:13.5px;color:var(--muted);line-height:1.5}
body.v5 .fbk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
body.v5 .fbk-field{margin:0 0 13px}
body.v5 .fbk-field label{display:block;font-family:var(--font-label);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:4px}
body.v5 .fbk-field .fbk-optional{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:400}
body.v5 .fbk-field select,body.v5 .fbk-field input,body.v5 .fbk-field textarea{width:100%;box-sizing:border-box}
body.v5 .fbk-hint{margin:.3rem 0 0;font-size:12px;color:var(--muted)}
body.v5 .fbk-hint-strong{color:var(--gold-text);font-weight:600}
body.v5 .fbk-field-emphasis input{border-color:var(--gold)}
/* Confirmed context (pre-filled) */
body.v5 .fbk-context{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin:0 0 13px}
body.v5 .fbk-context-label{display:block;font-family:var(--font-label);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
body.v5 .fbk-context-val{margin:2px 0 6px;font-weight:600;color:var(--navy)}
body.v5 .fbk-context-change{background:none;border:0;padding:0;color:var(--navy);font-size:12px;text-decoration:underline;cursor:pointer}
body.v5 .fbk-context-change:hover{color:var(--gold-text)}
body.v5 .fbk-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
@media(max-width:520px){
  body.v5 .fbk-launch-txt{position:absolute;left:-9999px}
  body.v5 .fbk-launch{padding:.7rem;gap:0}
  body.v5 .fbk-modal{padding:0}
  body.v5 .fbk-panel{max-width:none;max-height:100vh;height:100vh;border-radius:0}
}
/* In-modal confirmation + inline error (submit-in-place, 2026-09-20) */
body.v5 .fbk-error{margin:0 0 10px;padding:8px 11px;background:#fbeceb;border:1px solid #e3b7b3;border-radius:8px;color:#8a2b22;font-size:13px}
body.v5 .fbk-done{text-align:center;padding:12px 6px 4px}
body.v5 .fbk-done-ico{color:var(--gold-text);margin:4px auto 8px;display:block}
body.v5 .fbk-done .fbk-heading{margin:0 0 8px}
body.v5 .fbk-done p{margin:0 auto 16px;max-width:42ch;color:var(--muted);font-size:14px;line-height:1.5}
body.v5 .fbk-done .fbk-actions{justify-content:center}

/* ---- Trust-layer public pages: /reviewers, /changelog, /coverage (2026-09-20) ---- */
/* Reviewers */
body.v5 .reviewer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:18px 0 0}
body.v5 .reviewer-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
body.v5 .rv-name{font-size:19px;margin:0 0 2px;color:var(--navy)}
body.v5 .rv-title{margin:0 0 4px;font-weight:600;color:var(--ink)}
body.v5 .rv-creds{margin:0 0 8px;font-family:var(--font-label);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-text)}
body.v5 .rv-bio{font-size:14.5px;color:var(--ink);margin:0 0 10px}
body.v5 .rv-juris-label{display:block;font-family:var(--font-label);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
body.v5 .rv-juris-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
body.v5 .rv-juris-list a{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12.5px;text-decoration:none;color:var(--navy)}
body.v5 .rv-juris-list a:hover{border-color:var(--gold)}
/* Changelog */
body.v5 .cl-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
body.v5 .cl-rss{display:inline-flex;align-items:center;gap:5px;color:var(--gold-text);text-decoration:none;font-family:var(--font-label);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
body.v5 .cl-rss:hover{text-decoration:underline}
body.v5 .cl-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:16px 0}
body.v5 .cl-filters select{min-width:180px}
body.v5 .sr-lbl{position:absolute;left:-9999px}
body.v5 .cl-table{margin-top:14px}
body.v5 .cl-table td{vertical-align:middle}
body.v5 .cl-kind{display:inline-block;font-family:var(--font-label);font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:2px 9px;border-radius:999px;background:var(--paper);border:1px solid var(--border);color:var(--navy);white-space:nowrap}
body.v5 .cl-kind-publish{background:var(--gold);border-color:var(--gold);color:var(--navy)}
body.v5 .cl-kind-verify{background:#e8f0e6;border-color:#bcd3b4;color:#2f5527}
body.v5 .cl-link{font-weight:600;text-decoration:none;color:var(--navy)}
body.v5 .cl-link:hover{text-decoration:underline;color:var(--gold-text)}
body.v5 .cl-table .cl-type-cell{color:var(--dim)}
body.v5 .cl-table td.rn time{font-size:13px;color:var(--dim)}
body.v5 .cl-pager{display:flex;align-items:center;gap:16px;margin:20px 0 0}
/* Coverage */
body.v5 .cov-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
body.v5 .cov-stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;text-align:center}
body.v5 .cov-stat strong{display:block;font-family:var(--font-display);font-size:28px;color:var(--navy);line-height:1.1}
body.v5 .cov-stat span{font-size:12.5px;color:var(--muted)}
body.v5 .cov-road{margin:8px 0 0;padding-left:18px}
body.v5 .cov-road li{margin:0 0 8px}
body.v5 .cov-request .cov-req-form{display:flex;flex-direction:column;gap:6px;max-width:520px;margin-top:8px}
body.v5 .cov-request .cov-req-form label{font-family:var(--font-label);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-top:6px}
body.v5 .cov-request .cov-req-form .muted{text-transform:none;letter-spacing:0}
body.v5 .cov-request .cov-req-form select,body.v5 .cov-request .cov-req-form input,body.v5 .cov-request .cov-req-form textarea{width:100%;box-sizing:border-box}
body.v5 .cov-request .cov-req-form button{align-self:flex-start;margin-top:12px}

/* Coverage page: align the dark band heading with the .module headings above/below (2026-09-20) */
body.v5 .cov-band .hp-sec-head h2{font-size:21px;letter-spacing:-.01em}
/* Changelog pager: visible prev/next controls (btn-ghost was white-on-light = invisible) */
body.v5 .cl-pager{display:flex;align-items:center;gap:14px;margin:22px 0 0;flex-wrap:wrap}
body.v5 .cl-pg-btn{display:inline-block;padding:.4rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--navy);font-weight:600;font-size:14px;text-decoration:none}
body.v5 a.cl-pg-btn:hover{border-color:var(--gold);color:var(--navy)}
body.v5 .cl-pg-btn.is-disabled{color:var(--muted);background:var(--paper);border-color:var(--line);cursor:default}
body.v5 .cl-pg-now{color:var(--muted);font-size:13.5px}

/* Reviewer cards: photo + meta (trust-layer profile workflow, 2026-09-20) */
body.v5 .rv-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}
body.v5 .rv-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--border)}
body.v5 .rv-photo-fallback{display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-family:var(--font-display);font-size:24px;font-weight:600}
body.v5 .rv-head .rv-name{margin:0}
body.v5 .rv-head .rv-title{margin:2px 0 0}
body.v5 .rv-meta{display:flex;align-items:center;gap:14px;margin:10px 0 0;font-size:13px}
body.v5 .rv-linkedin{color:var(--navy);text-decoration:none;font-weight:600}
body.v5 .rv-linkedin:hover{color:var(--gold-text)}

/* Trust-layer pages now use the standard .container width (matches topics/industries);
   keep lone prose paragraphs to a readable measure like .page-intro (2026-09-20) */
body.v5 .module > p{max-width:52rem}
