/* =====================================================================
   MoBrief — Policy Intelligence · Mauritius
   Palette: the four bands of the Mauritian flag
   red #EA2839 · blue #1A206D · yellow #FFD500 · green #00A551
   Dark theme is the default; light theme is opt-in via data-theme.
   ===================================================================== */
:root{
  --mu-red:#EA2839;--mu-blue:#1A206D;--mu-yellow:#FFD500;--mu-green:#00A551;
  /* dark (default) */
  --bg:#070B1F;--bg2:#0B1029;--surface:#0F1535;--card:#121A42;--card2:#18215180;
  --border:#232C5E;--border2:#1A2250;
  --ink:#EEF1FB;--ink2:#C9CFEA;--muted:#949CC4;--muted2:#6E77A3;
  --accent:#FFD500;--on-accent:#0A0F2C;--link:#8FA8FF;--link-h:#B9C8FF;
  --blue-l:#5B7BFF;--pos:#22C36B;--neg:#FF4D5E;--warn:#FFB020;
  --pos-bg:rgba(34,195,107,.12);--neg-bg:rgba(255,77,94,.12);--accent-bg:rgba(255,213,0,.10);--blue-bg:rgba(91,123,255,.12);
  --sh1:0 1px 3px rgba(0,0,0,.4);--sh2:0 8px 24px rgba(0,0,0,.35);--sh3:0 24px 60px rgba(0,0,0,.55);
  --grid:rgba(255,255,255,.07);--axis:#7E87B5;
  --hero-grad:radial-gradient(1200px 500px at 85% -10%,rgba(91,123,255,.28),transparent 60%),radial-gradient(900px 400px at -10% 110%,rgba(234,40,57,.18),transparent 60%),linear-gradient(180deg,#0B1236,#070B1F);
  --r6:6px;--r10:10px;--r14:14px;--r20:20px;--r999:999px;
  --nav-h:64px;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --disp:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  --ease:.2s ease;
  --map-sea:#0a1638;--map-land:#17204a;--map-park:#16392f;--map-water:#1d4f8f;--map-label:#e6eaff;--map-halo:rgba(7,11,31,.9);--map-dot:#5B7BFF;
  --map-r0:#ffd84d;--map-r1:#e7c46a;--map-r2:#aab2d8;--map-r3:#8189b6;--map-r4:#5f689a;--map-r5:#4a5285;
  color-scheme:dark;
}
html[data-theme="light"]{
  --bg:#F6F7FC;--bg2:#EEF0F8;--surface:#FFFFFF;--card:#FFFFFF;--card2:#F4F6FD;
  --border:#DDE1EF;--border2:#E9ECF6;
  --ink:#0F1438;--ink2:#2B3260;--muted:#5D658C;--muted2:#8A91B3;
  --accent:#1A206D;--on-accent:#FFFFFF;--link:#2436B8;--link-h:#1A206D;
  --blue-l:#2F48D6;--pos:#0A8F47;--neg:#D41E31;--warn:#B76E00;
  --pos-bg:rgba(0,165,81,.10);--neg-bg:rgba(234,40,57,.09);--accent-bg:rgba(26,32,109,.07);--blue-bg:rgba(47,72,214,.08);
  --sh1:0 1px 3px rgba(15,20,56,.08);--sh2:0 8px 24px rgba(15,20,56,.09);--sh3:0 24px 60px rgba(15,20,56,.18);
  --grid:rgba(15,20,56,.08);--axis:#6B7397;
  --hero-grad:radial-gradient(1200px 500px at 85% -10%,rgba(47,72,214,.14),transparent 60%),radial-gradient(900px 400px at -10% 110%,rgba(234,40,57,.10),transparent 60%),linear-gradient(180deg,#FFFFFF,#F2F4FB);
  --map-sea:#a9d3f2;--map-land:#f4f1e8;--map-park:#cfe8c6;--map-water:#8cc4ee;--map-label:#1b2150;--map-halo:rgba(255,255,255,.92);--map-dot:#2F48D6;
  --map-r0:#f2a33a;--map-r1:#f6c35c;--map-r2:#ffffff;--map-r3:#ffffff;--map-r4:#ffffff;--map-r5:#ffffff;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .25s,color .25s}
img,svg{max-width:100%;display:block}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-h);text-decoration:underline}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none}
input,select,textarea{font:inherit;color:var(--ink);background:var(--bg2);border:1px solid var(--border);border-radius:var(--r10);padding:.65rem .8rem;width:100%;transition:border-color var(--ease)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue-l);box-shadow:0 0 0 3px var(--blue-bg)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
ul,ol{padding-left:1.2rem}
h1,h2,h3,h4{font-family:var(--disp);line-height:1.2;letter-spacing:-.01em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;z-index:9999;background:var(--accent);color:var(--on-accent);padding:.6rem 1rem;font-weight:700}
.skip:focus{left:0}
::selection{background:var(--accent);color:var(--on-accent)}

/* ── flag stripe ── */
.flag{display:flex;height:4px}
.flag i{flex:1}
.flag i:nth-child(1){background:var(--mu-red)}.flag i:nth-child(2){background:var(--mu-blue)}
.flag i:nth-child(3){background:var(--mu-yellow)}.flag i:nth-child(4){background:var(--mu-green)}
html:not([data-theme="light"]) .flag i:nth-child(2){background:#3A44C9}

/* ── header ── */
.hdr{position:sticky;top:0;z-index:500;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border2)}
.hdr__in{max-width:1240px;margin:0 auto;height:var(--nav-h);display:flex;align-items:center;gap:1rem;padding:0 16px}
.logo{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.logo img{height:40px;width:auto}
.lg-dark{display:block}.lg-light{display:none}
html[data-theme="light"] .lg-dark{display:none}
html[data-theme="light"] .lg-light{display:block}
.logo .dodo{height:40px;margin-left:.1rem}
.nav{display:flex;gap:.15rem;margin-left:.5rem}
.nav a{padding:.45rem .75rem;border-radius:var(--r999);font-size:.9rem;font-weight:600;color:var(--ink2);white-space:nowrap}
.nav a:hover{background:var(--card);color:var(--ink);text-decoration:none}
.nav a.on{background:var(--accent-bg);color:var(--accent)}
html[data-theme="light"] .nav a.on{color:var(--mu-blue)}
.hdr__r{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.search{position:relative;width:240px}
.search input{padding:.5rem .8rem .5rem 2.1rem;border-radius:var(--r999);font-size:.88rem;background:var(--card)}
.search svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.sres{position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:300px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r14);box-shadow:var(--sh3);padding:.4rem;max-height:60vh;overflow:auto;display:none;z-index:600}
.sres.open{display:block}
.sres button{display:block;width:100%;text-align:left;padding:.55rem .7rem;border-radius:var(--r10);font-size:.88rem}
.sres button:hover,.sres button.act{background:var(--card)}
.sres .k{display:block;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
html[data-theme="light"] .sres .k{color:var(--mu-blue)}
.sres .none{padding:.7rem;color:var(--muted);font-size:.85rem}
.ibtn{width:40px;height:40px;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);display:grid;place-items:center;color:var(--ink2);transition:all var(--ease);flex-shrink:0}
.ibtn:hover{border-color:var(--accent);color:var(--accent)}
.burger{display:none}
.mnav{display:none}

/* ── buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.65rem 1.1rem;border-radius:var(--r999);font-weight:700;font-size:.9rem;background:var(--accent);color:var(--on-accent);border:1px solid transparent;transition:transform var(--ease),filter var(--ease),background var(--ease);white-space:nowrap;text-decoration:none!important}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px);color:var(--on-accent)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--border)}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn--sm{padding:.42rem .8rem;font-size:.8rem}
.btn--red{background:var(--mu-red);color:#fff}.btn--red:hover{color:#fff}
.btn--block{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ── layout ── */
main{min-height:70vh}
.wrap{max-width:1240px;margin:0 auto;padding:0 16px}
.narrow{max-width:820px;margin:0 auto}
.page{display:none;padding-bottom:4rem;animation:fade .35s ease}
.page.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.crumb{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;font-size:.8rem;color:var(--muted);padding:1.2rem 0 .4rem}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--ink)}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
html[data-theme="light"] .eyebrow{color:var(--mu-red)}
.eyebrow::before{content:'';width:18px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--mu-red) 25%,#3A44C9 25% 50%,var(--mu-yellow) 50% 75%,var(--mu-green) 75%)}
.h1{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:800;margin:.4rem 0 .6rem}
.lead{font-size:1.06rem;color:var(--ink2);max-width:70ch}
.sec{margin-top:2.6rem}
.sec__hd{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.sec__t{font-size:1.35rem;font-weight:800}
.sec__s{font-size:.9rem;color:var(--muted);margin-top:.2rem}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r20);box-shadow:var(--sh1)}
.pad{padding:1.4rem}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .65rem;border-radius:var(--r999);font-size:.72rem;font-weight:700;background:var(--accent-bg);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
html[data-theme="light"] .chip{color:var(--mu-blue)}
.chip--g{background:var(--pos-bg);color:var(--pos);border-color:transparent}
.chip--r{background:var(--neg-bg);color:var(--neg);border-color:transparent}
.chip--b{background:var(--blue-bg);color:var(--link);border-color:transparent}
.muted{color:var(--muted)}
.notice{display:flex;gap:.7rem;align-items:flex-start;padding:.9rem 1rem;border-radius:var(--r14);background:var(--blue-bg);border:1px solid color-mix(in srgb,var(--blue-l) 30%,transparent);font-size:.86rem;color:var(--ink2);margin:1.2rem 0}

/* ── hero ── */
.hero{background:var(--hero-grad);border-bottom:1px solid var(--border2);position:relative;overflow:hidden}
.hero__in{max-width:1240px;margin:0 auto;padding:3.2rem 16px 3rem;display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:center}
.hero h1{font-size:clamp(2.1rem,5vw,3.5rem);font-weight:800;letter-spacing:-.02em;margin:.7rem 0 1rem}
.hero h1 .hl{background:linear-gradient(90deg,var(--mu-red),var(--mu-yellow) 55%,var(--mu-green));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:1.1rem;color:var(--ink2);max-width:58ch}
.hero__cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem}
.hero__art{position:relative;display:flex;justify-content:center}
.hero__art img{max-height:360px;width:auto;filter:drop-shadow(0 20px 40px rgba(0,0,0,.35));animation:bob 6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-10px)}}
.hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:2rem}
.hstat{padding:.9rem 1rem;border-radius:var(--r14);background:color-mix(in srgb,var(--card) 70%,transparent);border:1px solid var(--border);cursor:pointer;text-align:left;transition:border-color var(--ease),transform var(--ease)}
.hstat:hover{border-color:var(--accent);transform:translateY(-2px)}
.hstat .v{font-family:var(--disp);font-size:1.5rem;font-weight:800}
.hstat .l{font-size:.75rem;color:var(--muted);line-height:1.35}

/* ── tiles / cards ── */
.tile{display:flex;flex-direction:column;gap:.6rem;padding:1.3rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);text-align:left;transition:border-color var(--ease),transform var(--ease),box-shadow var(--ease);position:relative;overflow:hidden}
.tile:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--sh2)}
.tile__ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.35rem;background:var(--accent-bg)}
.tile h3{font-size:1.1rem}
.tile p{font-size:.88rem;color:var(--muted)}
.tile .go{margin-top:auto;font-weight:700;font-size:.85rem;color:var(--accent)}
html[data-theme="light"] .tile .go{color:var(--mu-blue)}
.tile::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--mu-red) 25%,#3A44C9 25% 50%,var(--mu-yellow) 50% 75%,var(--mu-green) 75%);opacity:0;transition:opacity var(--ease)}
.tile:hover::after{opacity:1}

/* brief cards */
.bcard{display:grid;grid-template-columns:150px 1fr;gap:1.1rem;padding:1rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);text-align:left;transition:all var(--ease);width:100%}
.bcard:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--sh2)}
.bcard__art{border-radius:var(--r14);aspect-ratio:1/1;display:grid;place-items:center;font-size:2.6rem;position:relative;overflow:hidden}
.bcard__art::after{content:'';position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--mu-red) 25%,#3A44C9 25% 50%,var(--mu-yellow) 50% 75%,var(--mu-green) 75%)}
.bcard h3{font-size:1.12rem;margin:.35rem 0 .3rem}
.bcard p{font-size:.88rem;color:var(--muted)}
.bcard__m{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;font-size:.75rem;color:var(--muted2);margin-top:.6rem}
.blist{display:grid;gap:1rem}
.bgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.filters{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;margin:1rem 0 1.2rem}
.fchip{padding:.42rem .9rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);font-size:.82rem;font-weight:600;color:var(--ink2)}
.fchip:hover{border-color:var(--accent)}
.fchip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

/* ── KPI ── */
.ribbon{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.8rem}
.kpi{position:relative;display:flex;flex-direction:column;gap:.35rem;padding:1rem 1rem .9rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border);text-align:left;transition:all var(--ease);min-width:0}
.kpi:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--sh2)}
.kpi__l{font-size:.78rem;font-weight:700;color:var(--ink2);line-height:1.3}
.kpi__v{font-family:var(--disp);font-size:1.6rem;font-weight:800;line-height:1.1}
.kpi__v small{font-size:.75rem;font-weight:700;color:var(--muted);margin-left:.15rem}
.kpi__p{font-size:.7rem;color:var(--muted)}
.kpi__sp{height:30px;margin:.15rem 0}
.kpi__sp svg{width:100%;height:30px}
.kpi__f{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:auto}
.delta{font-size:.72rem;font-weight:800;padding:.12rem .45rem;border-radius:var(--r999)}
.delta.good{background:var(--pos-bg);color:var(--pos)}
.delta.bad{background:var(--neg-bg);color:var(--neg)}
.delta.flat{background:var(--card2);color:var(--muted)}
.kpi__src{font-size:.66rem;color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi__x{position:absolute;top:.6rem;right:.6rem;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2);opacity:0;transition:opacity var(--ease)}
.kpi:hover .kpi__x{opacity:1;color:var(--accent)}
.kgroup{margin-top:2.4rem;scroll-margin-top:calc(var(--nav-h) + 70px)}
.kgroup__hd{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:1rem}
.kgroup__n{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;flex-shrink:0;background:var(--accent-bg)}
.kgroup__t{font-size:1.25rem;font-weight:800}
.kgroup__d{font-size:.9rem;color:var(--muted);max-width:80ch}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem}
.gnav{position:sticky;top:calc(var(--nav-h) + 4px);z-index:40;display:flex;gap:.4rem;overflow-x:auto;padding:.6rem 0;background:var(--bg);margin-top:1.2rem;scrollbar-width:none}
.gnav::-webkit-scrollbar{display:none}
.gnav button{padding:.45rem .85rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);font-size:.8rem;font-weight:700;white-space:nowrap;color:var(--ink2)}
.gnav button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.toolbar{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:1.4rem}
.toolbar input{max-width:360px;border-radius:var(--r999);background:var(--card)}

/* ── charts ── */
.chart{position:relative;width:100%}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .gl{stroke:var(--grid)}
.chart .ax{fill:var(--axis);font-size:11px;font-family:var(--sans)}
.chart .axt{fill:var(--muted);font-size:11px;font-weight:600;font-family:var(--sans)}
.chart .vl{font-size:11px;font-weight:700;font-family:var(--sans)}
.ctip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--sh2);border-radius:10px;padding:.45rem .6rem;font-size:.78rem;opacity:0;transition:opacity .12s;white-space:nowrap;z-index:5}
.ctip b{display:block;font-size:.72rem;color:var(--muted);font-weight:700}
.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:var(--ink2);margin-top:.5rem}
.legend span{display:inline-flex;align-items:center;gap:.4rem}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legend i.ln{height:3px;border-radius:2px}
.cbox{padding:1.2rem 1.2rem 1rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);margin:1.4rem 0;position:relative}
.cbox__hd{display:flex;gap:.8rem;align-items:flex-start;justify-content:space-between;margin-bottom:.6rem}
.cbox h4{font-size:1rem}
.cbox .cs{font-size:.8rem;color:var(--muted);margin-top:.15rem}
.xbtn{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .75rem;border-radius:var(--r999);font-size:.75rem;font-weight:800;background:var(--accent-bg);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);white-space:nowrap;flex-shrink:0}
html[data-theme="light"] .xbtn{color:var(--mu-blue)}
.xbtn:hover{background:var(--accent);color:var(--on-accent)}

/* ── modal ── */
.ov{position:fixed;inset:0;z-index:900;background:rgba(3,5,18,.66);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto}
.ov.open{display:flex}
.modal{width:100%;max-width:760px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r20);box-shadow:var(--sh3);overflow:hidden;animation:pop .22s ease}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.modal__hd{display:flex;gap:.9rem;align-items:flex-start;padding:1.3rem 1.4rem 1rem;border-bottom:1px solid var(--border2);position:relative}
.modal__hd .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;background:var(--accent-bg);flex-shrink:0}
.modal__kd{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.modal__hd h3{font-size:1.25rem;margin-top:.15rem}
.modal__x{margin-left:auto;width:36px;height:36px;border-radius:var(--r999);border:1px solid var(--border);display:grid;place-items:center;flex-shrink:0}
.modal__x:hover{border-color:var(--accent)}
.modal__bd{padding:1.2rem 1.4rem 1.4rem}
.modal__ft{padding:.9rem 1.4rem;border-top:1px solid var(--border2);font-size:.75rem;color:var(--muted);display:flex;gap:.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.xs{margin-top:1.3rem}
.xs:first-child{margin-top:0}
.xs h4{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.55rem}
.xs h4 .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:var(--accent);color:var(--on-accent);letter-spacing:0}
.xs p{color:var(--ink2);font-size:.95rem}
.simple{padding:1rem 1.1rem;border-radius:var(--r14);background:var(--accent-bg);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-size:1.02rem;color:var(--ink)}
.bigv{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin:.2rem 0 .7rem}
.bigv .v{font-family:var(--disp);font-size:2.1rem;font-weight:800}
.ytl{display:grid;gap:.5rem}
.yrow{display:grid;grid-template-columns:76px 72px 1fr;gap:.7rem;align-items:start;padding:.6rem .75rem;border-radius:var(--r10);background:var(--card);border:1px solid var(--border2)}
.yrow .y{font-weight:800;font-size:.85rem}
.yrow .val{font-family:var(--disp);font-weight:800;font-size:.9rem}
.yrow .t{font-size:.88rem;color:var(--ink2)}
.yrow .up{color:var(--pos)}.yrow .dn{color:var(--neg)}
.meanbox{padding:1rem 1.1rem;border-radius:var(--r14);background:linear-gradient(135deg,var(--pos-bg),var(--blue-bg));border:1px solid var(--border)}
.meanbox p+p{margin-top:.6rem}
.srcbtn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .95rem;border-radius:var(--r999);background:var(--mu-green);color:#fff!important;font-weight:700;font-size:.82rem;text-decoration:none!important}
.srcbtn:hover{filter:brightness(1.1)}
.srcline{font-size:.78rem;color:var(--muted)}

/* ── brief / article ── */
.art{max-width:820px;margin:0 auto}
.art__t{font-size:clamp(1.7rem,4vw,2.5rem);font-weight:800;margin:.7rem 0 .7rem;letter-spacing:-.02em}
.art__dek{font-size:1.1rem;color:var(--ink2)}
.art__meta{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin:1rem 0 1.4rem}
.art__meta .av{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--accent)}
.tldr{padding:1.2rem 1.3rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);border-left:5px solid var(--accent)}
.tldr h4{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.55rem}
.tldr ul{display:grid;gap:.45rem}
.tldr li{color:var(--ink)}
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin:1.2rem 0}
.fig{padding:.9rem 1rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border)}
.fig .v{font-family:var(--disp);font-size:1.4rem;font-weight:800}
.fig .l{font-size:.76rem;color:var(--muted);line-height:1.4;margin-top:.15rem}
.abody h2{font-size:1.35rem;margin:2rem 0 .6rem}
.abody p{margin:.6rem 0;color:var(--ink2)}
.abody ul{margin:.6rem 0;display:grid;gap:.4rem;color:var(--ink2)}
.abody strong{color:var(--ink)}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}
.cmpc{padding:1.2rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);position:relative;overflow:hidden}
.cmpc::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.cmpc.hist::before{background:var(--mu-yellow)}.cmpc.now::before{background:var(--mu-green)}
.cmpc__k{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cmpc h3{font-size:1.08rem;margin:.3rem 0 .15rem}
.cmpc .when{font-size:.78rem;color:var(--muted);margin-bottom:.6rem}
.cmpc dl{display:grid;gap:.55rem}
.cmpc dt{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted2)}
.cmpc dd{font-size:.9rem;color:var(--ink2)}
.cmpc .lesson{margin-top:.8rem;padding:.7rem .8rem;border-radius:var(--r10);background:var(--accent-bg);font-size:.88rem;color:var(--ink)}
.cmpt{width:100%;border-collapse:collapse;font-size:.86rem;margin:.6rem 0 1rem}
.cmpt th,.cmpt td{padding:.6rem .7rem;border-bottom:1px solid var(--border2);text-align:left;vertical-align:top}
.cmpt th{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cmpt td:first-child{font-weight:700;color:var(--ink)}
.cmpt td{color:var(--ink2)}
.tblw{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r14);background:var(--card)}
.you{padding:1.2rem 1.3rem;border-radius:var(--r20);background:linear-gradient(135deg,var(--pos-bg),transparent 70%),var(--card);border:1px solid var(--border);margin:1.6rem 0}
.you h4{font-size:1rem;margin-bottom:.5rem}
.you ul{display:grid;gap:.45rem;color:var(--ink2)}
.srcs{font-size:.8rem;color:var(--muted);margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border2)}
.srcs h4{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem}
.srcs ol{display:grid;gap:.25rem}
.bib ol{gap:.55rem;padding-left:1.4rem;list-style:decimal}
.bib li{line-height:1.5;padding-left:.2rem}
.bib cite{font-style:italic;color:var(--text)}
.bib .bib-pub{font-weight:600;color:var(--text)}
.bib a{word-break:break-all;color:var(--blue-l)}
.bib .bib-acc{white-space:nowrap}
.bib-note{margin:.1rem 0 .7rem;font-size:.8rem}

/* ── infographic ── */
.info{padding:1.4rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);margin:1.6rem 0;position:relative;overflow:hidden}
.info::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--mu-red) 25%,#3A44C9 25% 50%,var(--mu-yellow) 50% 75%,var(--mu-green) 75%)}
.info__hd{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}
.info__t{font-size:1.15rem;font-weight:800}
.info__s{font-size:.82rem;color:var(--muted)}
.ib{margin-top:1.3rem}
.ib:first-of-type{margin-top:.4rem}
.ib__t{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}
.flow{display:flex;gap:.5rem;align-items:stretch;overflow-x:auto;padding-bottom:.3rem}
.flow__s{flex:1;min-width:120px;padding:.8rem;border-radius:var(--r14);background:var(--bg2);border:1px solid var(--border);position:relative}
.flow__s.hl{border-color:var(--accent);background:var(--accent-bg)}
.flow__s.bad{border-color:color-mix(in srgb,var(--neg) 50%,transparent);background:var(--neg-bg)}
.flow__s .i{font-size:1.4rem}
.flow__s .l{font-weight:800;font-size:.86rem;margin:.3rem 0 .15rem}
.flow__s .n{font-size:.76rem;color:var(--muted);line-height:1.4}
.flow__a{display:grid;place-items:center;color:var(--muted2);font-size:1.2rem;flex-shrink:0}
.istats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.istat{padding:.8rem;border-radius:var(--r14);background:var(--bg2);border:1px solid var(--border);text-align:center}
.istat .v{font-family:var(--disp);font-size:1.45rem;font-weight:800}
.istat .l{font-size:.74rem;color:var(--muted);line-height:1.35}
.imp{display:grid;gap:.55rem}
.imp__r{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:.3rem .9rem;align-items:center}
.imp__w{font-weight:700;font-size:.86rem;display:flex;gap:.4rem;align-items:center}
.imp__tr{position:relative;height:14px;border-radius:7px;background:var(--bg2);border:1px solid var(--border2)}
.imp__tr::after{content:'';position:absolute;left:50%;top:-3px;bottom:-3px;width:2px;background:var(--muted2)}
.imp__f{position:absolute;top:1px;bottom:1px;border-radius:6px;width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.imp__f.pos{left:50%;background:linear-gradient(90deg,var(--pos),color-mix(in srgb,var(--pos) 70%,#fff))}
.imp__f.neg{right:50%;background:linear-gradient(270deg,var(--neg),color-mix(in srgb,var(--neg) 70%,#fff))}
.imp__n{grid-column:2;font-size:.76rem;color:var(--muted);margin-top:-.15rem}
.imp__sc{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted2);margin-top:.3rem;padding-left:calc(min(190px,40%) + .9rem)}
.tline{position:relative;display:grid;gap:.7rem;padding-left:1.4rem}
.tline::before{content:'';position:absolute;left:.4rem;top:.3rem;bottom:.3rem;width:2px;background:var(--border)}
.tl{position:relative}
.tl::before{content:'';position:absolute;left:-1.25rem;top:.35rem;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--card)}
.tl.r::before{background:var(--mu-red)}.tl.g::before{background:var(--mu-green)}
.tl .d{font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.tl .t{font-weight:700;font-size:.92rem}
.tl .x{font-size:.82rem;color:var(--muted)}
.vs{display:grid;grid-template-columns:1fr auto 1fr;gap:.8rem;align-items:stretch}
.vs__c{padding:1rem;border-radius:var(--r14);background:var(--bg2);border:1px solid var(--border)}
.vs__c h5{font-size:.9rem;margin-bottom:.4rem}
.vs__c ul{font-size:.82rem;color:var(--ink2);display:grid;gap:.3rem}
.vs__m{display:grid;place-items:center;font-weight:800;color:var(--muted)}
.bars{display:grid;gap:.5rem}
.bar__r{display:grid;grid-template-columns:minmax(110px,170px) 1fr 70px;gap:.7rem;align-items:center;font-size:.84rem}
.bar__t{height:16px;border-radius:8px;background:var(--bg2);overflow:hidden;border:1px solid var(--border2)}
.bar__f{height:100%;border-radius:8px;width:0;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.bar__v{font-weight:800;text-align:right;font-family:var(--disp)}

/* ── poll ── */
.poll{padding:1.3rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);margin:2rem 0}
.poll h4{font-size:1.08rem;margin:.3rem 0 .9rem}
.poll__o{display:grid;gap:.55rem}
.popt{position:relative;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;border-radius:var(--r14);border:1px solid var(--border);background:var(--bg2);text-align:left;overflow:hidden;font-weight:600;font-size:.92rem;width:100%}
.popt:hover:not([disabled]){border-color:var(--accent)}
.popt .fillbar{position:absolute;left:0;top:0;bottom:0;background:var(--accent-bg);width:0;transition:width .8s ease;z-index:0}
.popt.mine{border-color:var(--accent)}
.popt.mine .fillbar{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.popt span{position:relative;z-index:1}
.popt .pc{font-family:var(--disp);font-weight:800}
.popt[disabled]{cursor:default}
.poll__f{font-size:.76rem;color:var(--muted);margin-top:.7rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ── forms ── */
.fld{display:grid;gap:.35rem;margin-bottom:.95rem}
.fld label{font-size:.82rem;font-weight:700;color:var(--ink2)}
.fld .hint{font-size:.75rem;color:var(--muted)}
.fld.err input,.fld.err textarea,.fld.err select{border-color:var(--neg)}
.fld .msg{display:none;font-size:.75rem;color:var(--neg)}
.fld.err .msg{display:block}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.okbox{padding:1rem;border-radius:var(--r14);background:var(--pos-bg);color:var(--ink);border:1px solid color-mix(in srgb,var(--pos) 40%,transparent);font-size:.9rem}
.rng{display:grid;gap:.3rem;margin-bottom:1rem}
.rng__h{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700}
.rng__h output{font-family:var(--disp);color:var(--accent)}
input[type=range]{padding:0;border:none;background:transparent;accent-color:var(--mu-yellow)}
html[data-theme="light"] input[type=range]{accent-color:var(--mu-blue)}
.scorebars{display:grid;gap:.8rem}

/* ── industry ── */
.indpick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.indc{display:flex;gap:.9rem;align-items:center;padding:1rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);text-align:left;transition:all var(--ease)}
.indc:hover{border-color:var(--accent);transform:translateY(-2px)}
.indc.on{border-color:var(--accent);background:var(--accent-bg)}
.indc .ic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:1.6rem;flex-shrink:0;background:var(--bg2)}
.indc .t{font-weight:800;font-size:.98rem}
.indc .m{font-size:.76rem;color:var(--muted);line-height:1.35}
.indtabs{display:flex;gap:.4rem;margin:1.6rem 0 0;border-bottom:1px solid var(--border);overflow-x:auto}
.indtabs button{padding:.7rem 1rem;font-weight:700;font-size:.9rem;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.indtabs button.on{color:var(--ink);border-bottom-color:var(--accent)}
.indpane{display:none;padding-top:1.2rem}
.indpane.on{display:block}

/* ── suggestion / about ── */
.about{display:grid;grid-template-columns:300px 1fr;gap:2rem;align-items:start}
.about__ph{border-radius:var(--r20);overflow:hidden;border:1px solid var(--border);box-shadow:var(--sh2);position:relative}
.about__ph img{width:100%;height:auto}
.about__ph::after{content:'';position:absolute;inset:auto 0 0 0;height:6px;background:linear-gradient(90deg,var(--mu-red) 25%,#3A44C9 25% 50%,var(--mu-yellow) 50% 75%,var(--mu-green) 75%)}
.about__nm{font-family:var(--disp);font-size:1.3rem;font-weight:800;margin-top:1rem}
.about__rl{font-size:.88rem;color:var(--muted)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1.4rem}
.pillar{padding:1rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border)}
.pillar .i{font-size:1.4rem}
.pillar h4{font-size:.95rem;margin:.4rem 0 .2rem}
.pillar p{font-size:.82rem;color:var(--muted)}
.sugg-cta{display:flex;gap:1.2rem;align-items:center;padding:1.4rem;border-radius:var(--r20);background:linear-gradient(120deg,var(--accent-bg),transparent 60%),var(--card);border:1px solid var(--border)}
.sugg-cta img{height:110px;width:auto;flex-shrink:0}

/* ── foryou ── */
.tpick{display:flex;gap:.45rem;flex-wrap:wrap}

/* ── footer ── */
.ftr{border-top:1px solid var(--border2);background:var(--bg2);margin-top:3rem}
.ftr__in{max-width:1240px;margin:0 auto;padding:2.4rem 16px 1.6rem;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:1.6rem}
.ftr img{height:46px;width:auto;margin-bottom:.7rem}
.ftr h5{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}
.ftr ul{list-style:none;padding:0;display:grid;gap:.35rem}
.ftr li a,.ftr li button{font-size:.88rem;color:var(--ink2)}
.ftr li a:hover,.ftr li button:hover{color:var(--accent)}
.ftr p{font-size:.85rem;color:var(--muted)}
.ftr__b{max-width:1240px;margin:0 auto;padding:1rem 16px 2rem;border-top:1px solid var(--border2);font-size:.76rem;color:var(--muted2);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ── misc ── */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--surface);color:var(--ink);border:1px solid var(--border);box-shadow:var(--sh3);padding:.75rem 1.1rem;border-radius:var(--r999);font-size:.88rem;font-weight:600;opacity:0;pointer-events:none;transition:all .25s;z-index:1000;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translateX(-50%)}
.totop{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:800;display:grid;place-items:center;box-shadow:var(--sh2);opacity:0;pointer-events:none;transition:opacity .2s;z-index:400}
.totop.show{opacity:1;pointer-events:auto}
.prog{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--mu-red),var(--mu-yellow),var(--mu-green));z-index:600;width:0}
.rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
.empty{padding:2rem;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--r20)}

/* ── responsive ── */
@media screen and (max-width:1100px){
  .nav a{padding:.45rem .55rem;font-size:.85rem}
  .search{width:190px}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:960px){
  .nav,.search{display:none}
  .burger{display:grid}
  .mnav{position:fixed;inset:var(--nav-h) 0 0 0;z-index:490;background:var(--bg);padding:1rem 16px 2rem;overflow-y:auto;flex-direction:column;gap:.3rem}
  .mnav.open{display:flex}
  .mnav a{padding:.85rem 1rem;border-radius:var(--r14);font-weight:700;color:var(--ink);background:var(--card);border:1px solid var(--border)}
  .mnav .search{display:block;width:100%;margin-bottom:.6rem}
  .hero__in{grid-template-columns:1fr}
  .hero__art{display:none}
  .hero__stats{grid-template-columns:repeat(2,1fr)}
  .g3,.indpick,.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about{grid-template-columns:1fr}
  .about__ph{max-width:280px}
  .ftr__in{grid-template-columns:1fr 1fr}
  .bgrid{grid-template-columns:1fr}
}
@media screen and (max-width:640px){
  .logo img{height:30px}.logo .dodo{height:32px}
  .g2,.g3,.g4,.indpick,.pillars,.cmp,.row2{grid-template-columns:1fr}
  .bcard{grid-template-columns:76px 1fr;gap:.8rem}
  .bcard__art{font-size:1.8rem}
  .hero__in{padding:2.2rem 16px 2rem}
  .yrow{grid-template-columns:56px 1fr;}
  .yrow .t{grid-column:1/-1}
  .vs{grid-template-columns:1fr}.vs__m{padding:.2rem}
  .imp__r{grid-template-columns:1fr}
  .imp__n{grid-column:1}
  .imp__sc{padding-left:0}
  .bar__r{grid-template-columns:1fr 60px}
  .bar__r .bar__t{grid-column:1/-1;grid-row:2}
  .ftr__in{grid-template-columns:1fr}
  .sugg-cta{flex-direction:column;text-align:center}
  .modal__bd,.modal__hd{padding-left:1rem;padding-right:1rem}
  .kgrid,.ribbon{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .kpi{padding:.8rem .75rem .7rem}
  .kpi__src{display:none}
  .kpi__v{font-size:1.3rem}
  .hdr__r .hide-sm{display:none}
}
@media screen and (max-width:340px){.kgrid,.ribbon{grid-template-columns:1fr}}


/* ═════════ v2 components ═════════ */
.sub-btn{padding:.5rem .85rem}
.srclist{display:flex;flex-direction:column;gap:.15rem;margin-top:.3rem}
.srclist a{font-size:.78rem}
.yrow--now{border-color:var(--accent);background:var(--accent-bg)}
.yrow--now .y{color:var(--accent)}
html[data-theme="light"] .yrow--now .y{color:var(--mu-blue)}

/* article sections */
.asec{margin-top:.4rem}
.asec+.asec{margin-top:1.6rem}
.abody .asec h2{margin-top:1.8rem}
.tnote{font-size:.76rem;color:var(--muted);margin:-.4rem 0 1.2rem}

/* measures / data tables */
.tblw{margin:1rem 0}
.mtable{width:100%;border-collapse:collapse;font-size:.86rem}
.mtable th{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--border);background:var(--card2);position:sticky;top:0}
.mtable td{padding:.65rem .75rem;border-bottom:1px solid var(--border2);vertical-align:top;color:var(--ink2)}
.mtable td:first-child{color:var(--ink);font-weight:600}
.mtable tr:last-child td{border-bottom:none}
.mtable tr:hover td{background:var(--card2)}

/* people / "who pays" cards */
.ppl{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;margin:1rem 0}
.pcard{padding:1rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border);border-top:4px solid var(--muted2)}
.pcard.pos{border-top-color:var(--pos)}.pcard.neg{border-top-color:var(--neg)}.pcard.mix{border-top-color:var(--mu-yellow)}
.pcard__hd{display:flex;gap:.6rem;align-items:flex-start}
.pcard__i{font-size:1.5rem;line-height:1}
.pcard__w{font-weight:800;font-size:.9rem;line-height:1.3}
.pcard__d{font-size:.74rem;color:var(--muted)}
.pcard__e{margin:.6rem 0 .35rem;font-family:var(--disp);font-weight:800;font-size:1rem}
.pcard.pos .pcard__e{color:var(--pos)}.pcard.neg .pcard__e{color:var(--neg)}.pcard.mix .pcard__e{color:var(--warn)}
.pcard p{font-size:.82rem;color:var(--ink2);margin:0}

/* stacked composition bar */
.stack{display:flex;height:30px;border-radius:9px;overflow:hidden;border:1px solid var(--border2)}
.stack__s{display:block;height:100%;min-width:3px;transition:filter .2s}
.stack__s:hover{filter:brightness(1.15)}
.stack__lg{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.35rem .9rem;margin-top:.6rem;font-size:.8rem}
.stack__lg>span{display:flex;align-items:center;gap:.45rem}
.stack__lg i{width:11px;height:11px;border-radius:3px;flex-shrink:0}
.stack__lg .sl{color:var(--ink2);flex:1}
.stack__lg b{font-family:var(--disp)}
.stack__lg em{font-style:normal;color:var(--muted);font-size:.72rem;min-width:2.4em;text-align:right}
.stack__note{font-size:.75rem;color:var(--muted);margin-top:.4rem}

/* tabs inside a brief (Budget) */
.btabs{position:sticky;top:calc(var(--nav-h) + 4px);z-index:30;display:flex;gap:.35rem;overflow-x:auto;padding:.6rem 0;margin:1.6rem 0 .4rem;background:var(--bg);scrollbar-width:thin}
.btabs button{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .9rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);font-weight:700;font-size:.82rem;white-space:nowrap;color:var(--ink2)}
.btabs button:hover{border-color:var(--accent)}
.btabs button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btab{display:none}
.btab.on{display:block;animation:fade .3s ease}

/* polls: select, submit, change */
.popt{cursor:pointer}
.popt .pdot{position:relative;z-index:1;width:16px;height:16px;border-radius:50%;border:2px solid var(--muted2);flex-shrink:0;margin-right:.1rem}
.popt.sel{border-color:var(--accent);background:var(--accent-bg)}
.popt.sel .pdot{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 45%,transparent 50%)}
.popt.mine .pdot,.poll .popt[role=presentation] .pdot{display:none}
.popt .plabel{flex:1;text-align:left}
.popt[role=presentation]{cursor:default}
.poll__f{align-items:center}
.poll__act{display:flex;gap:.5rem}
.popt[disabled]{opacity:.75}

/* newsletter box */
.subbox{display:flex;gap:1rem;align-items:center;padding:1.2rem 1.3rem;border-radius:var(--r20);background:linear-gradient(120deg,var(--accent-bg),transparent 65%),var(--card);border:1px solid var(--border);margin:1.6rem 0;flex-wrap:wrap}
.subbox img{height:76px;width:auto;flex-shrink:0}
.subbox__t{flex:1;min-width:200px}
.subbox__t h4{font-size:1.05rem}
.subbox__t p{font-size:.84rem;color:var(--muted)}
.subform{display:flex;gap:.5rem;flex-wrap:wrap;flex:1 1 300px}
.subform input{flex:1;min-width:180px;border-radius:var(--r999)}
.submsg{flex-basis:100%;font-size:.82rem;min-height:1.1em}
.submsg.ok{color:var(--pos)}.submsg.err{color:var(--neg)}
.subbox--modal{margin:0}

/* about page */
.about{grid-template-columns:220px 1fr;gap:2.4rem;margin-top:1rem}
.about__side{position:sticky;top:calc(var(--nav-h) + 20px);align-self:start}
.about__ph{max-width:220px}
.about__nm{font-size:1.15rem}
.about__h{font-size:1.25rem;margin:2rem 0 .6rem}
.about__p{color:var(--ink2);max-width:72ch}
.about__list{display:grid;gap:.55rem;color:var(--ink2);max-width:72ch}
.pillars--4{grid-template-columns:repeat(2,minmax(0,1fr))}

@media screen and (max-width:960px){
  .about{grid-template-columns:1fr}
  .about__side{position:static;display:grid;grid-template-columns:120px 1fr;gap:.2rem 1rem;align-items:center}
  .about__ph{max-width:120px;grid-row:span 3}
  .about__nm{margin-top:0}
  .about__side .btn{justify-self:start}
}
@media screen and (max-width:640px){
  .pillars--4{grid-template-columns:1fr}
  .mtable thead{display:none}
  .mtable tr{display:block;padding:.6rem .2rem;border-bottom:1px solid var(--border)}
  .mtable td{display:block;border:none;padding:.2rem .6rem}
  .mtable td::before{content:attr(data-l);display:block;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2)}
  .cmpt thead{display:none}
  .cmpt tr{display:block;padding:.5rem 0;border-bottom:1px solid var(--border)}
  .cmpt td{display:block;border:none;padding:.15rem .6rem}
  .cmpt td[data-l]:not([data-l=""])::before{content:attr(data-l) ': ';font-weight:700;color:var(--muted)}
  .subbox img{display:none}
  .sub-btn{padding:.5rem .6rem}
}

@media screen and (max-width:1240px){.search{width:150px}.hdr__in{gap:.6rem}.nav{margin-left:.2rem}.nav a{padding:.45rem .5rem;font-size:.84rem}}
@media screen and (max-width:1100px){.sub-btn .lbl{display:none}}
@media screen and (max-width:960px){.sub-btn .lbl{display:inline}}
@media screen and (max-width:420px){.sub-btn .lbl{display:none}}
/* ── print ── */
/* ═════════ BUS PLANNER ═════════ */
.bplan{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:end;margin-top:1.4rem}
.bfield label{display:flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;color:var(--ink2);margin-bottom:.35rem}
.bin{position:relative}
.bin .sres{min-width:0}
.bdot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font-size:.7rem;font-weight:800;color:#fff}
.bdot.a{background:#00A551}.bdot.b{background:#EA2839}
.bactions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}
.bswap{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--card2);color:var(--ink);font-size:1.1rem;margin-bottom:2.6rem;transition:all var(--ease)}
.bswap:hover{border-color:var(--accent);color:var(--accent)}
.bgridx{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1.2rem;margin-top:1.2rem;align-items:start}
.bmapwrap{position:sticky;top:84px}
#busMap{height:600px}
#busMap.picking canvas{cursor:crosshair}
.bpin{display:grid;place-items:center;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:translate(-50%,-115%) rotate(-45deg);color:#fff;font-weight:800;font-size:.78rem;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.bpin.a{background:#00A551}.bpin.b{background:#EA2839}
.bpin>b{transform:rotate(45deg)}
.bitin__badges{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}
.bbadge.walk{background:#00A551;border-left-color:#C9CFEA}
.bbadge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .55rem;border-radius:var(--r6);background:#1A206D;color:#fff;font-weight:800;font-size:.82rem;border-left:4px solid #FFD500}
.barrow{color:var(--muted)}
.bsteps{list-style:none;margin:0;padding:0 1rem .4rem}
.bstep{display:grid;grid-template-columns:30px 1fr;gap:.6rem;padding:.7rem 0;border-top:1px solid var(--border2);position:relative}
.bstep__ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:.95rem;background:var(--bg2)}
.bstep.bus .bstep__ic{background:var(--blue-bg)}
.bstep.walk .bstep__ic{background:var(--pos-bg)}
.bstep__t{font-size:.9rem;line-height:1.45}
.bstep__m{font-size:.8rem;color:var(--muted);margin-top:.2rem}
.bstops{margin-top:.35rem;font-size:.8rem}
.bstops summary{cursor:pointer;color:var(--link)}
.bstops ol{margin:.35rem 0 0 1.1rem;color:var(--ink2)}
.approx{font-size:.68rem;font-weight:700;padding:0 .35rem;border-radius:var(--r6);background:var(--accent-bg);color:var(--warn);white-space:nowrap}
.bnote{font-size:.76rem;color:var(--muted);padding:.2rem 1rem .9rem;margin:0}
.bmapwrap .bnote{padding:.5rem .2rem 0}
.broutes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.5rem;margin-top:.6rem;max-height:520px;overflow:auto;padding-right:.2rem}
.broute{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;text-align:left;padding:.6rem .7rem;border:1px solid var(--border);border-radius:var(--r10);background:var(--card);color:inherit;transition:border-color var(--ease)}
.broute:hover{border-color:var(--accent)}
.broute__t{flex:1 1 100%;font-size:.86rem;font-weight:600}
.broute__o{font-size:.74rem;color:var(--muted)}
.rstops{columns:2;column-gap:1.4rem;font-size:.84rem;margin:.6rem 0 0 1.1rem}
button.lk{background:none;border:0;padding:0;color:var(--link);font:inherit;cursor:pointer;text-decoration:underline}
@media screen and (max-width:900px){
  .bplan{grid-template-columns:1fr}
  .bswap{margin:0 auto;transform:rotate(0)}
  .bgridx{grid-template-columns:1fr}
  .bmapwrap{position:static;order:-1}
  #busMap{height:380px}
  .rstops{columns:1}
}

/* ═════════ PROCEDURES ═════════ */
.psearch{max-width:560px;margin-top:1.2rem}
.psearch input{border-radius:var(--r999);padding:.75rem 1.1rem;background:var(--card)}
.pcats{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem;margin-top:.8rem}
.pcat{display:flex;align-items:center;gap:.6rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--r14);background:var(--card);color:var(--ink);font-weight:600;font-size:.9rem;text-decoration:none!important;transition:border-color var(--ease),transform var(--ease)}
.pcat:hover{border-color:var(--accent);transform:translateY(-1px)}
.pcat.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.pcat__ic{font-size:1.3rem}
.pcat__n{margin-left:auto;font-size:.72rem;font-weight:800;color:var(--muted);background:var(--bg2);border-radius:var(--r999);padding:.1rem .5rem}
.ptiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.8rem}
.ptile{display:flex;gap:.85rem;padding:1rem;border:1px solid var(--border);border-radius:var(--r14);background:var(--card);color:var(--ink);text-decoration:none!important;transition:border-color var(--ease)}
.ptile:hover{border-color:var(--accent)}
.ptile__ic{font-size:1.6rem;line-height:1}
.ptile__b{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.ptile__b strong{font-size:.95rem;line-height:1.35}
.ptile__m{font-size:.78rem;color:var(--muted)}
.ptile__tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.2rem}
.ptag{font-size:.72rem;font-weight:600;padding:.12rem .5rem;border-radius:var(--r999);background:var(--bg2);color:var(--ink2)}
.ptag.pos{background:var(--pos-bg);color:var(--pos)}
.pareas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.45rem}
.parea{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .8rem;border:1px solid var(--border);border-radius:var(--r10);background:var(--card);color:var(--ink);font-size:.86rem;text-align:left;text-decoration:none!important}
.parea b{font-size:.72rem;color:var(--accent)}
.parea:hover{border-color:var(--accent)}
.parea.off{opacity:.55;border-style:dashed}
.parea.off b{color:var(--muted);font-weight:600}
.ptiers{list-style:none;margin:.4rem 0 .6rem;padding:0;font-size:.86rem;display:grid;gap:.25rem}
.pladder{margin:.4rem 0 0 1.1rem;font-size:.84rem;display:grid;gap:.25rem}
.phd{display:flex;gap:1rem;align-items:flex-start;margin-top:.6rem}
.phd__ic{font-size:2.6rem;line-height:1;padding:.5rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border)}
.phd__chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.8rem}
.phd__chips a.chip{text-decoration:none}
.pfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:1.4rem}
.pfact{padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--r14);background:var(--card);display:flex;flex-direction:column;gap:.2rem;border-top:3px solid var(--border)}
.pfact.pos{border-top-color:var(--pos)}.pfact.neg{border-top-color:var(--neg)}.pfact.mid{border-top-color:var(--warn)}
.pfact__l{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pfact__v{font-size:.86rem;line-height:1.4}
.pnot{font-size:.86rem;color:var(--ink2);margin:.8rem 0 0}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.2rem;margin-top:1.2rem;align-items:start}
.pgrid aside{display:grid;gap:1rem}
.psec{padding:1.1rem 1.2rem;border:1px solid var(--border);border-radius:var(--r20);background:var(--card);margin-bottom:1rem}
.pgrid aside .psec{margin-bottom:0}
.psec h2{font-size:1.02rem;margin:0 0 .6rem}
.psec ul{margin:.2rem 0 0 1.1rem;font-size:.88rem;display:grid;gap:.3rem}
.psec__hd{display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.pprog{font-size:.75rem;font-weight:800;color:var(--pos);background:var(--pos-bg);border-radius:var(--r999);padding:.15rem .6rem}
ul.pcheck{list-style:none;margin:.4rem 0;padding:0;gap:.2rem}
.pcheck label{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem .5rem;border-radius:var(--r10);cursor:pointer;font-size:.9rem}
.pcheck label:hover{background:var(--bg2)}
.pcheck input{width:18px;height:18px;margin-top:.15rem;flex-shrink:0;accent-color:#00A551}
.pcheck input:checked+span{color:var(--muted);text-decoration:line-through}
.pbtns{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}
.pmini{font-size:.8rem;color:var(--muted);margin:.6rem 0 0}
.psteps{counter-reset:ps;list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.psteps li{counter-increment:ps;position:relative;padding:.1rem 0 .1rem 2.4rem;font-size:.9rem;min-height:1.8rem}
.psteps li::before{content:counter(ps);position:absolute;left:0;top:0;width:1.75rem;height:1.75rem;border-radius:50%;display:grid;place-items:center;background:#1A206D;color:#FFD500;font-weight:800;font-size:.8rem}
.psteps li:not(:last-child)::after{content:'';position:absolute;left:.85rem;top:1.85rem;bottom:-.55rem;width:2px;background:var(--border)}
.pdl{display:grid;grid-template-columns:140px 1fr;gap:.4rem .8rem;font-size:.86rem;margin:.8rem 0 0}
.pdl dt{font-weight:700;color:var(--muted)}
.pdl dd{margin:0}
.pduo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.preal{display:grid;gap:.45rem;padding:.75rem;border-radius:var(--r14);background:var(--bg2);font-size:.86rem;margin-top:.5rem}
.preal__l{display:inline-block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-right:.45rem;padding:.08rem .45rem;border-radius:var(--r6);background:var(--blue-bg);color:var(--blue-l)}
.preal__n .preal__l{background:var(--accent-bg);color:var(--accent)}
.preal__n em{color:var(--muted);font-size:.78rem}
.pwrong{border-color:color-mix(in srgb,var(--neg) 45%,var(--border));background:linear-gradient(0deg,var(--neg-bg),var(--neg-bg)),var(--card)}
.punclear{border-style:dashed}
.poffice{padding:.6rem 0;border-top:1px solid var(--border2);font-size:.84rem}
.poffice:first-of-type{border-top:0;padding-top:0}
.poffice h4{font-size:.9rem;margin:0 0 .3rem}
.poffice p{margin:.15rem 0}
ul.psrc{list-style:none;margin:0;padding:0;font-size:.84rem;gap:.45rem}
.prel{display:grid;gap:.35rem;font-size:.86rem}
@media screen and (max-width:1000px){.pgrid{grid-template-columns:1fr}.pgrid aside{position:static}.pfacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media screen and (max-width:640px){.pduo{grid-template-columns:1fr}.pdl{grid-template-columns:1fr}.pdl dd{margin-bottom:.4rem}.ptiles{grid-template-columns:1fr}.phd__ic{font-size:2rem}}
@media print{#procView .pbtns,#procView .pcats,#procView .psearch{display:none!important}.pgrid{grid-template-columns:1fr}.pgrid aside{position:static}}


/* ═════════ MOBRIEF MAP (own canvas map) ═════════ */
.mumap{position:relative;border-radius:var(--r20);border:1px solid var(--border);overflow:hidden;background:var(--map-sea);touch-action:none;user-select:none;-webkit-user-select:none;z-index:1}
.mumap canvas{display:block;cursor:grab}
.mumap canvas:active{cursor:grabbing}
.mumap__ov{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mumap__pin{position:absolute;left:0;top:0;pointer-events:auto;will-change:transform}
.mumap__ctl{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:4px;z-index:3}
.mumap__ctl button{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:1.1rem;font-weight:700;box-shadow:var(--sh1)}
.mumap__ctl button:hover{border-color:var(--accent);color:var(--accent)}
.mumap__hint{position:absolute;inset:auto 0 40%;margin:auto;width:max-content;max-width:90%;padding:.45rem .8rem;border-radius:var(--r999);background:rgba(7,11,31,.82);color:#fff;font-size:.8rem;opacity:0;transition:opacity .25s;pointer-events:none;z-index:4}
.mumap.hint .mumap__hint{opacity:1}
.mumap__attr{position:absolute;right:6px;bottom:4px;font-size:.66rem;color:var(--muted);background:color-mix(in srgb,var(--surface) 75%,transparent);padding:1px 6px;border-radius:6px;z-index:3}
.mumap__load{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.9rem}
.mumap__pop{position:absolute;left:0;top:0;pointer-events:auto;z-index:5}
.mumap__popin{position:relative;transform:translate(-50%,calc(-100% - 14px));min-width:180px;max-width:260px;padding:.7rem .85rem;border-radius:var(--r14);background:var(--surface);color:var(--ink);border:1px solid var(--border);box-shadow:var(--sh2);font-size:.83rem;line-height:1.5}
.mumap__popin::after{content:'';position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:translateX(-50%) rotate(45deg)}
.mumap__x{position:absolute;top:2px;right:6px;background:none;border:0;color:var(--muted);font-size:1.1rem}
.mumap__acts{display:flex;gap:.9rem;margin-top:.35rem}

/* bus results: every option */
.bres__hd{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.5rem}
.bsort{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:.4rem}
.bsort select{width:auto;padding:.35rem .6rem;font-size:.82rem;border-radius:var(--r999)}
.bfilt{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.8rem}
.bfilt button{padding:.3rem .7rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);color:var(--ink2);font-size:.8rem;font-weight:600}
.bfilt button b{color:var(--muted);font-weight:700;margin-left:.15rem}
.bfilt button.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.bopt{border:1px solid var(--border);border-radius:var(--r14);background:var(--card);margin-bottom:.55rem;overflow:hidden}
.bopt.rec{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}
.bopt.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.bopt__hd{display:grid;grid-template-columns:28px 1fr auto;gap:.6rem;align-items:center;width:100%;text-align:left;padding:.7rem .85rem;background:none;border:0;color:inherit}
.bopt__n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--bg2);font-size:.75rem;font-weight:800;color:var(--muted)}
.bopt.rec .bopt__n{background:var(--accent);color:var(--on-accent)}
.bopt__main{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.bopt__tags{display:flex;gap:.3rem;flex-wrap:wrap}
.btag{font-size:.68rem;font-weight:800;padding:.08rem .45rem;border-radius:var(--r999);background:var(--bg2);color:var(--ink2)}
.btag.rec{background:var(--accent);color:var(--on-accent)}
.btag.warn{background:var(--neg-bg);color:var(--neg)}
.bopt__time{display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-size:.75rem;color:var(--muted);white-space:nowrap}
.bopt__time strong{font-size:1rem;color:var(--ink)}
.bopt:not(.on) .bopt__body{display:none}
.bopt__body .bsteps{padding:0 .9rem .3rem}
.bopt__body .bnote{padding:.2rem .9rem .9rem}
.bstep.bus .bstep__ic{box-shadow:inset 0 0 0 2px var(--leg,#FFD500)}
.bstep.xfer .bstep__ic{background:var(--accent-bg)}
.bmore{width:100%;margin:.3rem 0 .6rem}

/* ═════════ PLACES ═════════ */
.plcats{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1.3rem}
.plcats .pcat{font:inherit;font-weight:600;font-size:.86rem;padding:.55rem .8rem}
.plbar{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}
.plbar input{flex:1 1 240px;border-radius:var(--r999)}
.plbar select{width:auto;border-radius:var(--r999)}
.plgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem;align-items:start}
.plmapwrap{position:sticky;top:84px}
#plMap{height:640px}
.pllist{display:grid;gap:.6rem}
.plc{border:1px solid var(--border);border-left:4px solid var(--pc);border-radius:var(--r14);background:var(--card);overflow:hidden}
.plc.open{box-shadow:0 0 0 3px var(--accent-bg);border-color:var(--accent);border-left-color:var(--pc)}
.plc__hd{display:flex;gap:.75rem;width:100%;text-align:left;padding:.8rem .9rem;background:none;border:0;color:inherit;align-items:flex-start}
.plc__ic{font-size:1.5rem;line-height:1}
.plc__b{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.plc__b strong{font-size:.98rem}
.plc__m{font-size:.78rem;color:var(--muted)}
.plc__m b{color:var(--pos)}
.plc__r{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;font-size:.78rem}
.plc__rv{font-weight:700;color:var(--ink2)}
.plc__vis{color:var(--muted)}
.stars{display:inline-flex;gap:1px;font-size:.95rem;line-height:1}
.stars .st,.plc__rate .st{color:var(--border)}
.stars .st.f{color:#FFB020}
.stars .st.h{background:linear-gradient(90deg,#FFB020 50%,var(--border) 50%);-webkit-background-clip:text;background-clip:text;color:transparent}
.plc__body{display:none;padding:0 1rem 1rem 3.1rem;font-size:.9rem}
.plc.open .plc__body{display:block}
.plc__body>p{margin:.2rem 0 .6rem}
.plc__try h4{font-size:.85rem;margin:.4rem 0 .2rem}
.plc__try ul{margin:0 0 .5rem 1.1rem;display:grid;gap:.15rem}
.plc__tip{font-size:.84rem;color:var(--ink2);margin:.3rem 0}
.plc__acts{display:flex;gap:.45rem;flex-wrap:wrap;margin:.7rem 0 .5rem}
.plc__rate{display:flex;align-items:center;gap:.15rem;font-size:.8rem;color:var(--muted);flex-wrap:wrap}
.plc__rate span{margin-right:.4rem}
.plc__rate .st{background:none;border:0;font-size:1.35rem;line-height:1;padding:0 .05rem;cursor:pointer;transition:transform .1s}
.plc__rate .st:hover{transform:scale(1.15)}
.plc__rate .st.f{color:#FFB020}
.ppin{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface);border:2px solid var(--pc);box-shadow:0 2px 6px rgba(0,0,0,.35);font-size:.95rem;transform:translate(-50%,-50%);cursor:pointer}
.ppin:hover{transform:translate(-50%,-50%) scale(1.15)}
.mepin{display:block;width:16px;height:16px;border-radius:50%;background:#3b82f6;border:3px solid #fff;box-shadow:0 0 0 6px rgba(59,130,246,.25);transform:translate(-50%,-50%)}
@media screen and (max-width:900px){.plgrid{grid-template-columns:1fr}.plmapwrap{position:static;order:-1}#plMap{height:380px}#busMap{height:400px}.plc__body{padding-left:1rem}.bopt__hd{grid-template-columns:24px 1fr}.bopt__time{grid-column:2;align-items:flex-start;text-align:left}}


.balt{margin-top:.25rem;line-height:1.9}
.bbadge.sm{font-size:.72rem;padding:.05rem .4rem;border-left-width:3px}
.bbadge.metro{background:#b91c1c;border-left-color:#fff}
.broute.metro{border-color:color-mix(in srgb,#ef4444 55%,var(--border))}
/* ═════════ INTERNATIONAL COMPARISON ═════════ */
.pchips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.3rem 0 .6rem}
.pchip{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .65rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);color:var(--ink2);font-size:.78rem;font-weight:600;transition:all var(--ease)}
.pchip i{width:10px;height:10px;border-radius:50%;background:var(--pc);opacity:.35}
.pchip.on{border-color:var(--pc);background:color-mix(in srgb,var(--pc) 14%,var(--card));color:var(--ink)}
.pchip.on i{opacity:1}
.pchip:disabled{opacity:.35;cursor:not-allowed}
.pchart{min-height:260px}
.prank{font-size:.85rem;margin:.4rem 0;color:var(--ink2)}
.prank b{color:var(--accent)}
.pnone{font-size:.86rem;color:var(--ink2);padding:.7rem .9rem;border-radius:var(--r14);background:var(--bg2)}
.dtabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}
.dtab{padding:.45rem .85rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);color:var(--ink2);font-weight:600;font-size:.85rem}
.dtab.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.deep{border:1px solid var(--border);border-radius:var(--r20);background:var(--card);padding:1.3rem 1.4rem;box-shadow:var(--sh1)}
.deep__hd{display:flex;justify-content:space-between;gap:1.2rem;align-items:flex-start;flex-wrap:wrap;border-bottom:1px solid var(--border2);padding-bottom:1rem;margin-bottom:1rem}
.deep__t{font-family:var(--disp);font-size:1.5rem;margin:.2rem 0 .3rem}
.deep__simple{color:var(--ink2);max-width:62ch;margin:0}
.deep__now{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;text-align:right}
.deep__now .v{font-family:var(--disp);font-size:2rem;font-weight:800;color:var(--accent);line-height:1}
.deep__now .l{font-size:.8rem;color:var(--muted)}
.deep__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.4rem}
.deep h4{font-size:.95rem;margin:.2rem 0 .4rem}
.deep__txt p{font-size:.9rem;margin:0 0 .7rem}
.deep__txt h4{margin-top:1rem}
.deep__moves{margin:0 0 .6rem 1.1rem;font-size:.86rem;display:grid;gap:.3rem}
.deep__nav{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border2)}
@media screen and (max-width:900px){.deep__grid{grid-template-columns:1fr}.deep__now{align-items:flex-start;text-align:left}.deep{padding:1rem}}
/* ═════════ ADMINISTRATIVE (redesign) ═════════ */
.ahero{position:relative;padding:1.4rem 1.6rem 1.6rem;border-radius:var(--r20);background:radial-gradient(700px 260px at 90% -20%,rgba(255,213,0,.16),transparent 60%),radial-gradient(600px 260px at -10% 120%,rgba(0,165,81,.16),transparent 60%),var(--card);border:1px solid var(--border);margin-top:.4rem}
.ahero--cat{background:radial-gradient(700px 260px at 90% -20%,color-mix(in srgb,var(--cc) 28%,transparent),transparent 60%),var(--card)}
.ahero .h1{margin:.3rem 0 .4rem}
.asearch{display:flex;align-items:center;gap:.6rem;margin-top:1.1rem;max-width:720px;padding:.35rem .4rem .35rem 1rem;border-radius:var(--r999);background:var(--surface);border:2px solid var(--border);box-shadow:var(--sh2);transition:border-color var(--ease)}
.asearch:focus-within{border-color:var(--accent)}
.asearch input{border:0;background:none;padding:.7rem .3rem;font-size:1rem;box-shadow:none!important}
.ahits{display:none;max-width:720px;margin-top:.5rem;border-radius:var(--r14);background:var(--surface);border:1px solid var(--border);box-shadow:var(--sh2);overflow:hidden}
.ahits.on{display:block}
.ahits a{display:grid;grid-template-columns:28px 1fr;gap:.1rem .6rem;padding:.6rem .9rem;color:var(--ink);text-decoration:none!important;border-top:1px solid var(--border2)}
.ahits a:first-child{border-top:0}
.ahits a:hover{background:var(--card)}
.ahits a span{grid-row:span 2;font-size:1.2rem}
.ahits a em{font-style:normal;font-size:.78rem;color:var(--muted)}
.ahits .none{padding:.8rem 1rem;font-size:.88rem;color:var(--muted)}
.apop{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:1rem;font-size:.82rem}
.apop a{padding:.3rem .7rem;border-radius:var(--r999);background:var(--bg2);border:1px solid var(--border);color:var(--ink2);font-weight:600;text-decoration:none!important;transition:all var(--ease)}
.apop a:hover{border-color:var(--accent);color:var(--accent)}
.acats{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;margin-top:.8rem}
.acat{position:relative;display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.05rem 1.1rem;border-radius:var(--r20);background:linear-gradient(160deg,color-mix(in srgb,var(--cc) 16%,var(--card)),var(--card) 70%);border:1px solid color-mix(in srgb,var(--cc) 35%,var(--border));color:var(--ink);text-decoration:none!important;transition:transform var(--ease),box-shadow var(--ease)}
.acat:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.acat__ic{font-size:1.8rem;width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--cc) 22%,transparent)}
.acat__t{font-family:var(--disp);font-weight:800;font-size:1.05rem;line-height:1.25}
.acat__l{font-size:.78rem;color:var(--muted);line-height:1.4}
.acat__n{margin-top:auto;font-size:.78rem;font-weight:800;color:var(--cc)}
html[data-theme="light"] .acat__n{filter:brightness(.7)}
.ahow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1.6rem}
.ahow__c{padding:1rem 1.1rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border)}
.ahow__c>span{font-size:1.5rem}
.ahow__c h4{margin:.3rem 0}
.ahow__c p{font-size:.86rem;color:var(--ink2);margin:0}
.atiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:.7rem;margin-top:.8rem}
.atile{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.85rem 1rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border);border-left:4px solid var(--cc);color:var(--ink);text-decoration:none!important;transition:all var(--ease)}
.atile:hover{border-color:var(--cc);transform:translateX(2px)}
.atile__ic{font-size:1.6rem}
.atile__b{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.atile__b strong{font-size:.95rem;line-height:1.3}
.atile__m{font-size:.76rem;color:var(--muted)}
.atile__tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.2rem}
.atag{font-size:.7rem;font-weight:600;padding:.1rem .5rem;border-radius:var(--r999);background:var(--bg2);color:var(--ink2)}
.atag.on{background:var(--pos-bg);color:var(--pos)}
.atile__go{font-size:1.4rem;color:var(--muted)}
.acard__hd{display:flex;gap:1.1rem;align-items:flex-start;padding:1.4rem 1.5rem;border-radius:var(--r20);background:radial-gradient(800px 300px at 100% -30%,color-mix(in srgb,var(--cc) 25%,transparent),transparent 60%),var(--card);border:1px solid var(--border);margin-top:.4rem}
.acard__hd .h1{margin:.25rem 0 .4rem;font-size:clamp(1.5rem,3vw,2.2rem)}
.acard__hd .lead{margin:0}
.acard__ic{font-size:2.4rem;width:72px;height:72px;flex-shrink:0;display:grid;place-items:center;border-radius:20px;background:color-mix(in srgb,var(--cc) 22%,var(--bg2))}
.acard__chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.8rem}
.acard__chips a.chip{text-decoration:none}
.aglance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-top:1rem}
.aglance__i{display:grid;grid-template-columns:auto 1fr;gap:.1rem .55rem;padding:.75rem .85rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border)}
.aglance__ic{grid-row:span 2;font-size:1.3rem;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--bg2)}
.aglance__l{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.aglance__v{font-size:.84rem;line-height:1.4}
.anot{margin:.8rem 0 0;font-size:.88rem;padding:.6rem .9rem;border-radius:var(--r14);background:var(--neg-bg);color:var(--ink2)}
.ajourney{margin-top:1.2rem;padding:1.2rem 1.3rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border)}
.ajourney h2{font-size:1.1rem;margin:0 0 .9rem}
.ajourney ol{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);gap:.7rem;overflow-x:auto;padding-bottom:.4rem;scroll-snap-type:x proximity}
.ajourney li{position:relative;scroll-snap-align:start;padding:.9rem .9rem 1rem;border-radius:var(--r14);background:var(--bg2);border:1px solid var(--border2);font-size:.86rem;line-height:1.45}
.ajourney li:not(:last-child)::after{content:'→';position:absolute;right:-.62rem;top:50%;transform:translateY(-50%);color:var(--cc);font-weight:800;z-index:1}
.ajourney__n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--cc);color:#0A0F2C;font-weight:800;margin-bottom:.5rem}
.agrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.1rem;margin-top:1.1rem;align-items:start}
.agrid aside{display:grid;gap:1rem}
.abox{padding:1.1rem 1.2rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);margin-bottom:1rem}
.agrid aside .abox{margin-bottom:0}
.abox h2{font-size:1.02rem;margin:0 0 .6rem}
.abox ul{margin:.2rem 0 0 1.1rem;font-size:.88rem;display:grid;gap:.3rem}
.abox__hd{display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.aprog{font-size:.75rem;font-weight:800;color:var(--pos);background:var(--pos-bg);border-radius:var(--r999);padding:.15rem .6rem}
.abar{height:8px;border-radius:99px;background:var(--bg2);overflow:hidden;margin:.2rem 0 .6rem}
.abar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#00A551,#FFD500);transition:width .3s ease}
.aacc{border-radius:var(--r20);background:var(--card);border:1px solid var(--border);margin-bottom:1rem;overflow:hidden}
.aacc summary{display:flex;align-items:center;gap:.6rem;padding:1rem 1.2rem;cursor:pointer;font-weight:700;list-style:none}
.aacc summary::-webkit-details-marker{display:none}
.aacc summary i{margin-left:auto;font-style:normal;transition:transform var(--ease);color:var(--muted)}
.aacc[open] summary i{transform:rotate(180deg)}
.aacc__b{padding:0 1.2rem 1.1rem;font-size:.9rem}
.aacc__b h4{font-size:.9rem;margin:.2rem 0}
.aacc__b ul{margin:.2rem 0 0 1.1rem;display:grid;gap:.3rem}
.awrong{border-color:color-mix(in srgb,var(--neg) 45%,var(--border));background:linear-gradient(0deg,var(--neg-bg),var(--neg-bg)),var(--card)}
.awrong__g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.awrong__g>div{padding:.8rem;border-radius:var(--r14);background:var(--card)}
.awrong__g span{font-size:1.3rem}
.awrong__g h4{margin:.2rem 0;font-size:.9rem}
.awrong__g p{margin:0;font-size:.84rem;color:var(--ink2)}
.aoffice{padding:.6rem 0;border-top:1px solid var(--border2);font-size:.84rem}
.aoffice:first-of-type{border-top:0;padding-top:0}
.aoffice h4{font-size:.9rem;margin:0 0 .3rem}
.aoffice p{margin:.15rem 0}
.aunclear{border-style:dashed}
@media screen and (max-width:1000px){.agrid{grid-template-columns:1fr}.aglance{grid-template-columns:repeat(2,minmax(0,1fr))}.ahow{grid-template-columns:1fr}}
@media screen and (max-width:640px){.awrong__g{grid-template-columns:1fr}.atiles{grid-template-columns:1fr}.acard__hd{flex-direction:column}.aglance{grid-template-columns:1fr}.ahero{padding:1.1rem}}
@media print{.ajourney ol{grid-auto-flow:row}.asearch,.apop,.pbtns{display:none!important}.agrid{grid-template-columns:1fr}}
.aglance__i{align-items:center;align-content:start;gap:.45rem .55rem}
.aglance__ic{grid-row:auto;width:32px;height:32px;font-size:1.05rem}
.aglance__v{grid-column:1/-1}
.bopt.rec{border-color:var(--border)}
.bopt.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg),var(--sh2);background:linear-gradient(0deg,var(--accent-bg),var(--accent-bg)),var(--card)}
.bopt.on .bopt__n{background:var(--accent);color:var(--on-accent)}
.bmapcap{position:absolute;left:52px;top:10px;right:10px;z-index:4;max-width:max-content;padding:.45rem .75rem;border-radius:var(--r14);background:var(--surface);border:1px solid var(--accent);box-shadow:var(--sh2);font-size:.82rem;pointer-events:none}
.bmapcap:empty{display:none}
.bmapcap span{display:block;font-size:.7rem;color:var(--muted)}
.bmapcap.flash{animation:capflash .6s ease}
@keyframes capflash{0%{transform:scale(.96);box-shadow:0 0 0 6px var(--accent-bg)}100%{transform:none}}
.indkpis{margin:1.4rem 0 1.6rem;padding:1.1rem 1.2rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border)}
.indsec__t{font-family:var(--disp);font-size:1.15rem;margin:0}
.indone .tldr{margin-top:0}
/* ═════════ NOTIFICATIONS, ACCOUNT, READER TOOLS ═════════ */
html.fs-s{font-size:93.75%}html.fs-m{font-size:100%}html.fs-l{font-size:112.5%}
html.fs-s body{font-size:15px}html.fs-l body{font-size:18px}
html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.hwrap{position:relative}
#notifBtn{position:relative}
.nbadge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#EA2839;color:#fff;font-size:.66rem;font-weight:800;display:grid;place-items:center;border:2px solid var(--bg)}
.nbadge[hidden]{display:none}
.acct-btn .avatar{width:28px;height:28px;font-size:.8rem}
.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#FFD500,#00A551);color:#0A0F2C;font-weight:800}
.avatar.lg{width:42px;height:42px;font-size:1.1rem}
.hpanel{position:absolute;right:0;top:calc(100% + 10px);width:min(380px,92vw);max-height:min(76vh,620px);overflow:auto;z-index:700;background:var(--surface);border:1px solid var(--border);border-radius:var(--r20);box-shadow:var(--sh3);padding:.9rem}
.hpanel[hidden]{display:none}
.hpanel__hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.hpanel__list{display:grid;gap:.2rem}
.nitem{display:grid;grid-template-columns:34px 1fr;gap:.6rem;align-items:start;padding:.55rem .5rem;border-radius:var(--r10);color:var(--ink);text-decoration:none!important;position:relative}
.nitem:hover{background:var(--card)}
.nitem__e{font-size:1.3rem;text-align:center}
.nitem b{display:block;font-size:.84rem;line-height:1.35;font-weight:600}
.nitem em{font-style:normal;font-size:.72rem;color:var(--muted)}
.nitem.new b{font-weight:800}
.nitem.new::after{content:'';position:absolute;right:.5rem;top:.8rem;width:8px;height:8px;border-radius:50%;background:#EA2839}
.hpanel__sub{margin-top:.7rem;padding-top:.8rem;border-top:1px solid var(--border2)}
.hpanel__sub h4{font-size:.9rem;margin:0 0 .2rem}
.hpanel__sub p{font-size:.8rem;color:var(--muted);margin:0 0 .5rem}
.nform{display:flex;gap:.4rem}
.nform input{border-radius:var(--r999);padding:.5rem .8rem;font-size:.85rem}
.hpanel__me{display:flex;gap:.7rem;align-items:center;padding:.2rem .2rem .8rem;border-bottom:1px solid var(--border2)}
.hpanel__me b{display:block}.hpanel__me em{font-style:normal;font-size:.78rem;color:var(--muted)}
.hpanel__guest p{font-size:.85rem;color:var(--ink2);margin:0 0 .6rem}
.hpanel__btns{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}
.hpanel__nav{display:grid;gap:.15rem;margin-top:.5rem}
.hpanel__nav a,.hpanel__nav button{display:flex;justify-content:space-between;align-items:center;padding:.55rem .6rem;border-radius:var(--r10);color:var(--ink);font-size:.9rem;text-decoration:none!important;text-align:left;width:100%}
.hpanel__nav a:hover{background:var(--card)}
.hpanel__nav b{font-size:.75rem;color:var(--accent)}
/* account page */
.achead{margin:.4rem 0 1rem}
.actabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.2rem}
.actabs a{padding:.5rem .9rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--card);color:var(--ink2);font-weight:600;font-size:.88rem;text-decoration:none!important}
.actabs a.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.actitle{font-size:1rem;margin:1rem 0 .6rem}
.aclist{display:grid;gap:.6rem}
.acitem{position:relative;display:grid;grid-template-columns:56px 1fr;gap:.85rem;align-items:center;padding:.75rem 2.4rem .75rem .75rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border);color:var(--ink);text-decoration:none!important}
.acitem:hover{border-color:var(--accent)}
.acitem__art{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-size:1.6rem}
.acitem__b{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.acitem__b b{font-size:.95rem;line-height:1.3}
.acitem__b em{font-style:normal;font-size:.76rem;color:var(--muted)}
.acx{position:absolute;right:.7rem;top:.7rem;font-size:.9rem;text-decoration:none!important;color:var(--muted)}
.pbar{display:block;height:6px;border-radius:99px;background:var(--bg2);overflow:hidden;max-width:320px}
.pbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#00A551,#FFD500)}
.pbar.sm{height:4px;max-width:200px;margin-top:.5rem}
.pbar__l{font-size:.72rem;color:var(--muted)}
.bcard__u{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.3rem}
.bcard__u .pbar.sm{margin-top:0;flex:0 0 120px}
.authcard{max-width:440px;margin:1rem auto 2rem;padding:1.6rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);box-shadow:var(--sh2)}
.authcard h2{font-family:var(--disp);margin:0 0 .3rem}
.authcard form{display:grid;gap:.8rem;margin-top:1rem}
.authcard label{display:grid;gap:.3rem;font-size:.85rem;font-weight:600}
.authmsg{font-size:.85rem;color:var(--neg);min-height:1.1em}
.authmsg.ok{color:var(--pos)}
.authalt{font-size:.85rem;margin-top:1rem;text-align:center}
.setgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.setbox{padding:1.1rem 1.2rem;border-radius:var(--r20);background:var(--card);border:1px solid var(--border);display:grid;gap:.7rem;align-content:start}
.setbox h3{font-size:1rem;margin:0}
.setbox p{margin:0;font-size:.9rem}
.setrow{display:flex;gap:.5rem}
.setline{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.9rem}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r999);overflow:hidden}
.seg__o input{position:absolute;opacity:0;pointer-events:none}
.seg__o span{display:block;padding:.35rem .8rem;font-size:.82rem;cursor:pointer;color:var(--ink2)}
.seg__o input:checked+span{background:var(--accent);color:var(--on-accent);font-weight:700}
.setcheck{display:flex;gap:.5rem;align-items:center;font-size:.9rem;cursor:pointer}
.setcheck input{width:18px;height:18px;accent-color:#00A551}
.setacc summary{cursor:pointer;font-size:.88rem;font-weight:600}
.setacc form{display:grid;gap:.5rem;margin-top:.6rem}
.setacc.danger summary{color:var(--neg)}
.btn.danger{background:var(--neg);color:#fff}
.fchips{display:flex;flex-wrap:wrap;gap:.35rem}
label.fchip{cursor:pointer}
/* reader tools */
.rtools{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 1.4rem;padding:.55rem .7rem;border-radius:var(--r14);background:var(--card);border:1px solid var(--border)}
.rbtn{padding:.4rem .8rem;border-radius:var(--r999);border:1px solid var(--border);background:var(--surface);color:var(--ink);font-weight:600;font-size:.84rem}
.rbtn:hover{border-color:var(--accent);color:var(--accent)}
.rbtn[aria-pressed="true"]{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}
.rprog{display:flex;align-items:center;gap:.5rem;margin-left:auto;min-width:160px}
.rprog .pbar{flex:1;min-width:90px}
.rprog__l{font-size:.75rem;color:var(--muted);white-space:nowrap}
.hbm{margin-left:.5rem;border:0;background:none;font-size:.9rem;opacity:.35;vertical-align:middle;cursor:pointer;transition:opacity var(--ease)}
h2:hover>.hbm,.hbm.on,.hbm:focus-visible{opacity:1}
.rtoast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:800;display:flex;gap:.8rem;align-items:center;padding:.7rem 1rem;border-radius:var(--r999);background:var(--surface);border:1px solid var(--accent);box-shadow:var(--sh3);font-size:.88rem;max-width:94vw}
.rtoast[hidden]{display:none}
@media screen and (max-width:700px){.setgrid{grid-template-columns:1fr}.rprog{margin-left:0;width:100%}.hpanel{position:fixed;left:4vw;right:4vw;width:auto;top:70px}}
@media print{.rtools,.hbm,.rtoast{display:none!important}}
@media screen and (max-width:1120px) and (min-width:961px){.search{width:112px}.nav a{padding:.4rem .42rem;font-size:.8rem}.hdr__in{gap:.45rem}.hdr__r{gap:.35rem}}
.srcverify{font-size:.8rem;color:var(--ink2);margin:.4rem 0 0;padding:.55rem .7rem;border-radius:var(--r10);background:var(--bg2);line-height:1.6}
.kdata{margin-top:.5rem;font-size:.82rem}
.kdata summary{cursor:pointer;color:var(--link)}
.kdata table{margin-top:.4rem;border-collapse:collapse;min-width:220px}
.kdata td,.kdata th{padding:.25rem .7rem;border-bottom:1px solid var(--border2);text-align:left}
.pdata{overflow-x:auto}
.pdata table{font-size:.78rem;white-space:nowrap}

/* settings dropdown */
.setpanel{width:min(320px,92vw)}
.setrow{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem .2rem;border-bottom:1px solid var(--border2)}
.setrow b{display:block;font-size:.9rem}.setrow em{display:block;font-style:normal;font-size:.78rem;color:var(--muted)}
.setrow--col{flex-direction:column;align-items:stretch}
.themesw{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .75rem .3rem .3rem;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--ink);font-weight:600;font-size:.85rem;cursor:pointer;transition:background .2s}
.themesw__k{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent)}
.themesw.light .themesw__k{background:#FFD500;color:#0A0F2C}
.themesw:hover{background:var(--surface)}
.langseg{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:.5rem;padding:.25rem;border-radius:12px;background:var(--card);border:1px solid var(--border2)}
.langseg button{padding:.5rem .4rem;border-radius:9px;font-weight:600;font-size:.86rem;color:var(--ink2);cursor:pointer}
.langseg button.on{background:var(--accent);color:var(--on-accent)}
.langseg button:not(.on):hover{background:var(--surface)}

/* ───────── events calendar ───────── */
.evsrcnote{font-size:.8rem;margin-top:-.2rem}
.evtools{display:grid;gap:.8rem;margin:1.2rem 0 1rem}
.evcats{gap:.35rem}
.evnav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.evnav__m{font-size:1.3rem;margin:0 .3rem;min-width:11ch;text-align:center;text-transform:capitalize}
.evnav .ibtn{font-size:1.3rem;line-height:1}
.evnav .ibtn[disabled]{opacity:.35;cursor:default}
.evview{margin-left:auto}
.evview button{padding:.38rem .85rem;font-size:.82rem;color:var(--ink2);font-weight:600}
.evview button.on{background:var(--accent);color:var(--on-accent)}
.evcal{border:1px solid var(--border);border-radius:var(--r20);overflow:hidden;background:var(--surface)}
.evcal__dow{display:grid;grid-template-columns:repeat(7,1fr);background:var(--card);border-bottom:1px solid var(--border)}
.evcal__dow span{padding:.5rem .4rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center}
.evcal__days{display:grid;grid-template-columns:repeat(7,1fr)}
.evday{min-height:108px;padding:.35rem .3rem .4rem;border-right:1px solid var(--border2);border-bottom:1px solid var(--border2);display:flex;flex-direction:column;gap:.2rem;min-width:0;cursor:default;transition:background .15s}
.evday:nth-child(7n){border-right:0}
.evday.out{background:repeating-linear-gradient(135deg,transparent 0 8px,var(--card) 8px 9px)}
.evday.has{cursor:pointer}.evday.has:hover{background:var(--card)}
.evday.past .evday__n{opacity:.45}
.evday.hol{background:color-mix(in srgb,#8FA8FF 9%,transparent)}
.evday.sel{outline:2px solid var(--accent);outline-offset:-2px}
.evday__n{font-size:.8rem;font-weight:700;color:var(--ink2);width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:50%}
.evday.today .evday__n{background:var(--mu-red);color:#fff}
.evday__ev{display:grid;gap:.18rem;min-width:0}
.evday__dots{display:none;gap:3px;justify-content:center}
.evday__dots i{width:6px;height:6px;border-radius:50%}
.evchip{display:flex;align-items:center;gap:.25rem;width:100%;min-width:0;padding:.18rem .35rem;border-radius:6px;font-size:.7rem;font-weight:600;text-align:left;color:var(--ink);background:color-mix(in srgb,var(--c) 18%,transparent);border-left:3px solid var(--c);cursor:pointer}
.evchip:hover{background:color-mix(in srgb,var(--c) 30%,transparent)}
.evchip__t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evmore{font-size:.68rem;font-weight:700;color:var(--link);text-align:left;padding:0 .3rem}
.evagenda{margin-top:1.5rem}
.evagenda h3{font-size:1.1rem;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;text-transform:none}
.evlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.7rem;margin-top:.7rem}
.evcard{display:flex;gap:.8rem;align-items:center;text-align:left;padding:.8rem;border-radius:var(--r16,16px);border:1px solid var(--border);background:var(--surface);border-left:4px solid var(--c);color:var(--ink);cursor:pointer;transition:transform .15s,box-shadow .15s}
.evcard:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.evcard.past{opacity:.6}
.evcard__date{flex:0 0 52px;height:56px;border-radius:12px;background:color-mix(in srgb,var(--c) 18%,transparent);display:grid;place-items:center;align-content:center;line-height:1}
.evcard__date b{font-size:1.35rem}.evcard__date em{font-style:normal;font-size:.7rem;text-transform:uppercase;font-weight:700;color:var(--ink2);margin-top:.15rem}
.evcard__body{display:grid;gap:.15rem;min-width:0;flex:1}
.evcard__body strong{font-size:.95rem;line-height:1.3}
.evcard__cat{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.evcard__cat .tbc{color:var(--neg)}
.evcard__meta{font-size:.8rem;color:var(--ink2);overflow:hidden;text-overflow:ellipsis}
.evcard__go{font-size:1.4rem;color:var(--muted)}
.evprev__band{display:flex;gap:.8rem;align-items:center;padding:.8rem 1rem;border-radius:14px;background:color-mix(in srgb,var(--c) 16%,transparent);border-left:4px solid var(--c);margin-bottom:1rem}
.evprev__band b{display:block;font-size:1rem}.evprev__band span{font-size:.85rem;color:var(--ink2)}
.evprev__ic{font-size:1.8rem}
.evprev__dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem .9rem;margin:0 0 .9rem;font-size:.9rem}
.evprev__dl dt{font-weight:700;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding-top:.15rem}
.evprev__dl dd{margin:0}
.evprev__warn{background:var(--neg-bg);padding:.6rem .8rem;border-radius:10px;font-size:.85rem}
.evprev__src{font-size:.78rem;color:var(--muted)}
@media screen and (max-width:760px){
  .evday{min-height:56px;padding:.25rem .1rem;align-items:center}
  .evday__ev{display:none}.evday__dots{display:flex}
  .evnav__m{font-size:1.05rem;min-width:0}
  .evview{margin-left:0}
  .evlist{grid-template-columns:1fr}
}

/* ═════════ PRINT — newspaper-style article ═════════
   The print button (and Ctrl/Cmd+P) switches to print mode first (see app.js): light colours, every tab and
   collapsible opened, every chart drawn, paragraphs set in two columns. Figures, tables and cards never split
   across two pages; nothing is clipped (no fixed heights, no horizontal scroll areas). */
.pmast,.pend{display:none}
@page{size:A4;margin:15mm 14mm 17mm;
  @bottom-left{content:"MoBrief — Mauritius' economy and policy, explained";font:7.5pt Georgia,serif;color:#666}
  @bottom-right{content:counter(page) " / " counter(pages);font:7.5pt Georgia,serif;color:#666}}
@media print{
  :root,html[data-theme]{--bg:#fff;--bg2:#f3f4f8;--surface:#fff;--card:#fafafa;--ink:#111;--ink2:#333;--muted:#555;--border:#c9ccd6;--border2:#dde0e8;--accent:#1A206D;--on-accent:#fff;--link:#1A206D;--sh1:none;--sh2:none;--sh3:none}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;animation:none!important;transition:none!important}
  html,body{background:#fff!important;color:#111!important}
  body{font:10.3pt/1.5 Georgia,'Times New Roman',serif}
  /* chrome and interactive bits */
  .hdr,.flag,.ftr,.mnav,.totop,.prog,.skip,.toast,.rtoast,#resumeToast,.rtools,.hbm,.poll,.subbox,.btabs,.xbtn,.crumb,#shareBtn,.hpanel,
  .art>.sec,.evtools,.pbtns,.pcats,.psearch,.asearch,.apop,.plcats,.dtabs,.deep__nav,.pchips,.kpi__more,.cardx,.mumap__ctl,.mumap__hint,
  .filters,.toolbar,.gnav,.btn,button.ibtn,.fchips,.evmore,.evcard__go,.bmapcap+button{display:none!important}
  .page{display:none!important}.page.on{display:block!important}
  main,.wrap,.wrap.narrow{max-width:none!important;width:auto!important;padding:0!important;margin:0!important}
  .rv{opacity:1!important;transform:none!important}
  .btab{display:block!important}
  details>*{display:block}
  /* masthead */
  .pmast{display:block;margin:0 0 5mm;padding-bottom:2.2mm;border-bottom:2.4pt double #111}
  .pmast__row{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm}
  .pmast img{height:12mm!important;width:auto!important;max-width:60%!important}
  .pmast__t{font:italic 9pt Georgia,serif;color:#333;text-align:right;line-height:1.35}
  .pmast__bar{display:flex;justify-content:space-between;margin-top:2mm;padding-top:1.4mm;border-top:.6pt solid #111;font:700 7.5pt/1 Inter,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
  .pend{display:block;margin-top:6mm;padding-top:2mm;border-top:.6pt solid #111;font:italic 8pt Georgia,serif;color:#444;text-align:center}
  /* headline block */
  .chip{border:0!important;background:none!important;padding:0!important;font:700 8pt Inter,Arial,sans-serif!important;letter-spacing:.14em;text-transform:uppercase;color:#b3121f!important}
  .art__t,.h1{font:700 25pt/1.08 Georgia,'Times New Roman',serif!important;letter-spacing:-.01em;margin:1.5mm 0 2.5mm!important;color:#111!important}
  .art__dek,.lead{font:italic 12.5pt/1.4 Georgia,serif!important;color:#333!important;max-width:none!important;margin-bottom:3mm}
  .art__meta{display:flex;gap:2.5mm;align-items:center;flex-wrap:wrap;border-top:.8pt solid #111;border-bottom:.8pt solid #111;padding:1.8mm 0;margin-bottom:5mm;font:8.5pt Inter,Arial,sans-serif;color:#333}
  .art__meta .av{width:8mm;height:8mm}
  /* body copy */
  .abody,.art{font-family:Georgia,'Times New Roman',serif}
  .pcols{columns:2;column-gap:7mm;column-rule:.4pt solid #c9ccd6;margin:0 0 3.5mm}
  .pcols p,.abody p{text-align:justify;hyphens:auto;-webkit-hyphens:auto;margin:0 0 2.4mm;orphans:3;widows:3;font-size:10.3pt;line-height:1.5;color:#111}
  .abody>.asec:first-child .pcols>p:first-child::first-letter,.abody .btab>.asec:first-of-type .pcols>p:first-child::first-letter{float:left;font:700 34pt/.82 Georgia,serif;padding:1mm 1.6mm 0 0;color:#1A206D}
  .asec{margin:0 0 4mm!important;padding:0!important;border:0!important}
  h2,h3,h4,.asec h2,.ptabh{break-after:avoid;page-break-after:avoid;color:#111!important}
  .asec h2,.ptabh{font:700 14.5pt/1.2 Georgia,serif!important;border-top:1.6pt solid #111;padding-top:1.8mm!important;margin:5mm 0 2.5mm!important}
  .ptabh{font-size:17pt!important;border-top-width:3pt;column-span:all}
  .ptabh::before{content:'Part — ';font:700 8pt Inter,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#b3121f;display:block;margin-bottom:1mm}
  html[lang="fr"] .ptabh::before{content:'Partie — '}
  /* boxes that must never be cut in two */
  .tldr,.figs,.fig,.cbox,.info,.tblw,.pcard,.cmpc,.cmp,.you,.lesson,.kcard,.kpi,.card,.tile,.deep,.peerbox,.evcard,.evprev,.evcal,
  .pl,.plc,.pcardp,.proc,.pstep,.bopt,.broute,.setbox,.acard,.tnote,.figure,figure,table,tr,img,svg,canvas,.mumap,.chart,.srcverify,.kdata,blockquote,li{break-inside:avoid;page-break-inside:avoid}
  .tldr{border:1pt solid #111!important;background:#f6f6f2!important;border-radius:0!important;padding:3mm 4mm!important;margin:0 0 4mm!important}
  .tldr h4{font:700 8pt Inter,Arial,sans-serif!important;letter-spacing:.14em;text-transform:uppercase;color:#b3121f!important}
  .tldr li{font-size:10pt;margin-bottom:1mm}
  .figs{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:2.5mm!important;margin:0 0 4mm!important}
  .fig{border:.6pt solid #999!important;border-radius:0!important;background:#fff!important;padding:2mm!important}
  .fig .v{font:700 15pt Georgia,serif!important;color:#1A206D!important}
  .fig .l{font:8pt Inter,Arial,sans-serif!important;color:#333!important}
  .cbox,.info{border:.6pt solid #999!important;border-radius:0!important;background:#fff!important;padding:3mm!important;margin:3mm 0!important;box-shadow:none!important}
  .cbox h4,.info__t{font:700 10.5pt Georgia,serif!important}
  .cbox .cs,.info__s,.tnote{font:8pt Inter,Arial,sans-serif!important;color:#444!important}
  .chart svg,svg{max-width:100%!important;height:auto}
  img,canvas{max-width:100%!important;height:auto!important}
  .tblw{overflow:visible!important;margin:3mm 0!important;border:0!important}
  table{width:100%!important;border-collapse:collapse!important;font:8.4pt/1.35 Inter,Arial,sans-serif!important;table-layout:auto!important}
  th,td{padding:1.2mm 1.6mm!important;border:.5pt solid #bbb!important;overflow-wrap:anywhere;vertical-align:top;background:#fff!important;color:#111!important}
  th{background:#eef0f6!important;font-weight:700}
  thead{display:table-header-group}
  .ppl{display:grid!important;grid-template-columns:1fr 1fr!important;gap:2.5mm!important}
  .pcard,.cmpc{border:.6pt solid #999!important;border-radius:0!important;background:#fff!important;padding:2.5mm!important;box-shadow:none!important}
  .cmp{display:grid!important;grid-template-columns:1fr 1fr!important;gap:3mm!important}
  .grid,.bgrid,.blist,.kgrid,.evlist,.plgrid{grid-template-columns:repeat(2,1fr)!important;gap:3mm!important}
  a{color:#111!important;text-decoration:none!important}
  .abody a[href^="http"]::after{content:" ↗";font-size:.8em;color:#666}
  /* bibliography */
  .srcs,.bib{border-top:1.6pt solid #111!important;margin-top:6mm!important;padding-top:2mm!important;font:8pt/1.45 Georgia,serif!important;color:#222!important}
  .bib h4{font:700 11pt Georgia,serif!important;letter-spacing:0!important;text-transform:none!important;color:#111!important}
  .bib ol{columns:2;column-gap:6mm;display:block!important}
  .bib li{margin-bottom:1.4mm}
  .bib a{color:#1A206D!important;word-break:break-all}
  /* events calendar */
  .evday{min-height:20mm!important}.evday__ev{display:grid!important}.evday__dots{display:none!important}
  .evchip{font-size:6.5pt!important;padding:.3mm .8mm!important}
  .evchip__t{white-space:normal!important}
  /* printing an open pop-up: print only the pop-up */
  html.print-modal body>*:not(.ov):not(.pmast){display:none!important}
  html.print-modal .ov{position:static!important;display:block!important;background:none!important;padding:0!important;opacity:1!important;visibility:visible!important;overflow:visible!important;inset:auto!important}
  html.print-modal .modal{position:static!important;max-width:none!important;max-height:none!important;width:auto!important;box-shadow:none!important;border:0!important;transform:none!important;overflow:visible!important;background:#fff!important}
  html.print-modal .modal__bd{max-height:none!important;overflow:visible!important}
  html.print-modal .modal__x,html.print-modal .modal__ft{display:none!important}
  html.print-modal .modal__hd h3{font:700 22pt/1.1 Georgia,serif!important}
}

/* ═════════ CINEMATIC HOME ═════════ */
.cine{--mx:0;--my:0;--sy:0;position:relative;min-height:calc(100svh - 70px);display:flex;flex-direction:column;justify-content:center;overflow:hidden;isolation:isolate;
  background:radial-gradient(120% 90% at 70% 40%,#0d1446 0%,#060a24 45%,#03050f 100%);color:#fff}
.cine__bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.aur{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;mix-blend-mode:screen;will-change:transform}
.aur.a1{width:52vw;height:52vw;left:-14vw;top:-18vw;background:radial-gradient(circle,#EA2839 0%,transparent 65%);animation:aur1 18s ease-in-out infinite alternate}
.aur.a2{width:48vw;height:48vw;right:-10vw;top:-12vw;background:radial-gradient(circle,#1A3BD6 0%,transparent 65%);animation:aur2 22s ease-in-out infinite alternate}
.aur.a3{width:44vw;height:44vw;left:18vw;bottom:-26vw;background:radial-gradient(circle,#FFD500 0%,transparent 62%);opacity:.38;animation:aur3 20s ease-in-out infinite alternate}
.aur.a4{width:40vw;height:40vw;right:4vw;bottom:-22vw;background:radial-gradient(circle,#00A551 0%,transparent 62%);opacity:.42;animation:aur4 24s ease-in-out infinite alternate}
@keyframes aur1{to{transform:translate(9vw,7vw) scale(1.15)}}
@keyframes aur2{to{transform:translate(-8vw,9vw) scale(1.1)}}
@keyframes aur3{to{transform:translate(10vw,-6vw) scale(1.2)}}
@keyframes aur4{to{transform:translate(-9vw,-8vw) scale(1.12)}}
.cine__grid{position:absolute;inset:-2px;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 25%,transparent 80%);mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 25%,transparent 80%);
  transform:perspective(900px) rotateX(calc(18deg + var(--my)*-6deg)) translateY(calc(var(--sy)*60px));transform-origin:50% 100%}
.cine__grain{position:absolute;inset:0;opacity:.13;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.cine__dust{position:absolute;inset:0;width:100%;height:100%}
.cine__in{width:min(1240px,100%);margin:0 auto;padding:clamp(2rem,6vh,4.5rem) 24px clamp(5.5rem,10vh,7rem);display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;
  transform:translateY(calc(var(--sy)*-40px));opacity:calc(1 - var(--sy)*.9)}
.cine__eye{color:#FFD500!important}
.cine__h{font:800 clamp(2.5rem,6.2vw,5.4rem)/1.02 'Plus Jakarta Sans',Inter,sans-serif;letter-spacing:-.035em;margin:.8rem 0 1.2rem;color:#fff}
.cine__h .ln{display:block;overflow:hidden;padding-bottom:.08em}
.cine__h .ln>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.cine__h .ln.hl>span{background:linear-gradient(100deg,#EA2839 0%,#FF6A3D 22%,#FFD500 45%,#00C267 70%,#5B7BFF 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hlsweep 8s ease-in-out infinite alternate;transition-delay:.12s}
@keyframes hlsweep{to{background-position:100% 0}}
.cine.go .cine__h .ln>span{transform:none}
.cine__p{font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.65;color:rgba(232,236,255,.82);max-width:58ch;opacity:0;transform:translateY(18px);transition:all 1s .35s cubic-bezier(.16,1,.3,1)}
.cine__cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem;opacity:0;transform:translateY(18px);transition:all 1s .5s cubic-bezier(.16,1,.3,1)}
.cine__eye{opacity:0;transition:opacity 1s .05s}
.cine.go .cine__p,.cine.go .cine__cta,.cine.go .cine__eye{opacity:1;transform:none}
.cine__btn{background:linear-gradient(135deg,#FFD500,#FFB020)!important;color:#0A0F2C!important;box-shadow:0 10px 40px -8px rgba(255,213,0,.55);border:0}
.cine__btn:hover{transform:translateY(-2px);box-shadow:0 16px 50px -8px rgba(255,213,0,.7)}
.cine__ghost{color:#fff!important;border-color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.06)!important;backdrop-filter:blur(8px)}
.cine__ghost:hover{background:rgba(255,255,255,.14)!important}
.cine__art{position:relative;display:grid;place-items:center;min-height:420px}
.cine__dodo{position:relative;width:min(100%,430px);height:auto;filter:drop-shadow(0 40px 60px rgba(0,0,0,.55));
  animation:dodoIn 1.4s .2s cubic-bezier(.16,1,.3,1) both}
@keyframes dodoIn{from{opacity:0;transform:translateY(60px) scale(.92)}to{opacity:1}}
@keyframes dodoFloat{50%{translate:0 -14px}}
/* ── home hero, photographic version: the dodo on a rock above Le Morne; he winks now and then ── */
.cine{min-height:clamp(560px,47vw,calc(100svh - 70px));background:#0a1222;justify-content:center}
.cine__bg{overflow:hidden}
.cine__blur{position:absolute;inset:-80px;width:calc(100% + 160px);height:calc(100% + 160px);object-fit:cover;object-position:20% 40%;filter:blur(42px) brightness(.42) saturate(1.25)}
.cine__scene{position:absolute;top:0;left:max(40%,calc(50% - 110px));height:100%;aspect-ratio:960/674;z-index:0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 13%);mask-image:linear-gradient(90deg,transparent 0,#000 13%);animation:sceneIn 1.6s cubic-bezier(.16,1,.3,1) both}
@keyframes sceneIn{from{opacity:0;transform:scale(1.04)}to{opacity:1}}
.cine__scene img,.cine__scene svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.cine__shade{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(6,12,26,.82) 0%,rgba(6,12,26,.5) 34%,rgba(6,12,26,0) 52%),linear-gradient(0deg,#03050f 0%,rgba(3,5,15,.7) 10%,rgba(3,5,15,0) 34%),linear-gradient(180deg,rgba(6,10,22,.45) 0%,rgba(6,10,22,0) 14%)}
.cine__in{position:relative;z-index:1;grid-template-columns:minmax(0,660px) 1fr;padding:clamp(2rem,5vh,3.5rem) 24px clamp(8.5rem,14vh,10rem)}
.cine__eye{display:inline-flex;align-items:center;gap:.9rem;font:500 .8rem/1.2 Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.9)!important}
.cine__eye i{flex:none;width:34px;height:3px;border-radius:2px;background:linear-gradient(90deg,#EA2839,#FFD500 50%,#5B7BFF)}
.cine__h{font-size:clamp(2.5rem,4.4vw,5.1rem);line-height:.98;letter-spacing:-.04em;margin:1.1rem 0 1.4rem;text-shadow:0 6px 34px rgba(0,0,0,.35)}
.cine__h em{padding:0 .04em .14em 0;margin-bottom:-.14em}
.cine__h .ln.hl>span{background:none;animation:none;color:inherit}
.cine__h em{font-style:normal;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.cine__h .g1{white-space:nowrap;display:block;width:fit-content;background-image:linear-gradient(90deg,#FF7A1A 0%,#FFB21A 32%,#FFD400 58%,#B8E04A 82%,#3DDC84 100%)}
.cine__h .g2{display:block;width:fit-content;background-image:linear-gradient(90deg,#4F7DFF 0%,#29B6F6 45%,#2FD47E 100%)}
.cine__p{color:rgba(240,243,255,.88);text-shadow:0 2px 14px rgba(0,0,0,.4)}
.cine__btn,.cine__ghost{border-radius:999px!important;padding:.95rem 1.6rem!important;font-weight:700}
.cine__ghost{display:inline-flex;align-items:center;gap:.6rem;background:rgba(8,14,30,.4)!important;border-color:rgba(255,255,255,.4)!important}
/* the KPI bar along the bottom of the hero */
.cine__bar{position:absolute;z-index:2;left:50%;bottom:clamp(14px,2.4vh,26px);transform:translateX(-50%);width:min(1192px,calc(100% - 48px));display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  background:rgba(8,14,30,.58);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(255,255,255,.13);border-radius:18px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.kb{display:flex;align-items:center;gap:.85rem;padding:1rem 1.15rem;color:#fff;text-decoration:none;min-width:0;position:relative}
.kb+.kb::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:rgba(255,255,255,.16)}
.kb svg{flex:none;width:30px;height:30px;color:var(--c)}
.kb span{display:grid;gap:.2rem;min-width:0}
.kb small{font-size:.74rem;line-height:1.25;color:rgba(255,255,255,.75)}
.kb b{font:800 1.28rem/1.1 'Plus Jakarta Sans',Inter,sans-serif;letter-spacing:-.01em}
.kb:hover{background:rgba(255,255,255,.06);border-radius:16px}
html.reduce-motion .cine__scene{animation:none!important}
@media (prefers-reduced-motion:reduce){.cine__scene{animation:none!important}}
@media screen and (max-width:1100px){.cine__bar{grid-template-columns:repeat(3,minmax(0,1fr))}.kb:nth-child(4)::before{display:none}}
@media screen and (max-width:960px){
  .cine{display:block;min-height:0}
  .cine__scene{position:relative;left:auto;width:100%;height:auto;-webkit-mask-image:linear-gradient(0deg,transparent 0,#000 22%);mask-image:linear-gradient(0deg,transparent 0,#000 22%)}
  .cine__shade{background:none}
  .cine__in{margin-top:-3.5rem;padding:0 16px 1.5rem}
  .cine__bar{position:relative;left:auto;bottom:auto;transform:none;width:auto;margin:0 16px 1.6rem}
}
@media screen and (max-width:560px){.cine__bar{grid-template-columns:repeat(2,minmax(0,1fr))}.kb:nth-child(odd)::before{display:none}.kb:nth-child(4)::before{display:block}.kb{padding:.85rem .8rem;gap:.6rem}.kb svg{width:24px;height:24px}.kb b{font-size:1.1rem}}
@media print{.cine__scene,.cine__shade,.cine__bar{display:none}}
.cine__halo{position:absolute;width:115%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(91,123,255,.5) 0%,rgba(255,213,0,.18) 35%,transparent 65%);filter:blur(10px);
  transform:translate(calc(var(--mx)*-18px),calc(var(--my)*-14px));animation:haloPulse 7s ease-in-out infinite}
@keyframes haloPulse{50%{opacity:.7;scale:1.06}}
.cine__ring{position:absolute;width:88%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.14);
  background:conic-gradient(from 0deg,transparent 0 70%,rgba(255,213,0,.55) 78%,rgba(234,40,57,.5) 84%,rgba(91,123,255,.5) 90%,rgba(0,165,81,.5) 96%,transparent);
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));mask:radial-gradient(closest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));animation:spin 16s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
.cine__ticker{position:absolute;left:0;right:0;bottom:0;border-top:1px solid rgba(255,255,255,.1);background:rgba(3,5,15,.55);backdrop-filter:blur(10px);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.cine__track{display:flex;width:max-content;animation:tick 48s linear infinite}
.cine__ticker:hover .cine__track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.cine__row{display:flex;align-items:center;gap:1.4rem;padding:.85rem .7rem;white-space:nowrap}
.tk{display:inline-flex;gap:.55rem;align-items:baseline;color:rgba(232,236,255,.72)!important;text-decoration:none!important;font-size:.85rem}
.tk b{font-weight:600}.tk span{font:700 1rem 'Plus Jakarta Sans',Inter,sans-serif;color:#fff}
.tk:hover span{color:#FFD500}
.tk__sep{font-style:normal;color:rgba(255,213,0,.5);font-size:.6rem}
.cine__scroll{position:absolute;left:50%;bottom:4.6rem;width:26px;height:42px;margin-left:-13px;border:2px solid rgba(255,255,255,.4);border-radius:14px}
.cine__scroll span{position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#FFD500;animation:scrl 1.8s ease-in-out infinite}
@keyframes scrl{60%{transform:translateY(12px);opacity:0}100%{opacity:0}}
/* headline figures */
.cstats{position:relative;background:linear-gradient(180deg,#03050f 0%,#0a0f2e 100%);padding:clamp(3.5rem,8vw,6rem) 0 clamp(4rem,8vw,6rem)}
.cstats::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:70px;background:linear-gradient(180deg,transparent,var(--bg))}
.cstats__in{width:min(1240px,100%);margin:0 auto;padding:0 24px}
.cstats__hd{text-align:center;margin-bottom:2.2rem}
.cstats__hd h2{font:800 clamp(1.6rem,3.4vw,2.6rem)/1.15 'Plus Jakarta Sans',Inter,sans-serif;color:#fff;margin:.6rem auto 0;max-width:24ch;letter-spacing:-.02em}
.cstats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.cstat{position:relative;text-align:left;padding:1.6rem 1.4rem 1.3rem;border-radius:22px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));backdrop-filter:blur(12px);color:#fff;cursor:pointer;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .3s;transition-delay:var(--d)}
.cstat::before{content:'';position:absolute;inset:auto -30% -60% -30%;height:120%;background:radial-gradient(closest-side,rgba(255,213,0,.22),transparent);opacity:0;transition:opacity .4s}
.cstat:hover{transform:translateY(-6px);border-color:rgba(255,213,0,.45)}.cstat:hover::before{opacity:1}
.cstat__v{display:block;font:800 clamp(2.4rem,4.6vw,3.6rem)/1 'Plus Jakarta Sans',Inter,sans-serif;letter-spacing:-.03em;background:linear-gradient(180deg,#fff,#c9d2ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.cstat__n{display:block;margin-top:.8rem;font-weight:700;font-size:1rem}
.cstat__l{display:block;font-size:.8rem;color:rgba(232,236,255,.62);margin-top:.2rem}
.cstat__go{display:block;margin-top:1rem;font-size:.78rem;color:#FFD500;opacity:.85}
/* briefs rail + events */
.home-tiles{grid-template-columns:repeat(4,1fr)!important}
@media screen and (max-width:1100px){.home-tiles{grid-template-columns:repeat(2,1fr)!important}}
@media screen and (max-width:640px){.home-tiles{grid-template-columns:1fr!important}}
.hrail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.3rem .2rem 1rem;scrollbar-width:thin}
.hrail>*{scroll-snap-align:start}
.hevents{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.hev{display:flex;gap:.8rem;align-items:center;padding:.9rem;border-radius:18px;border:1px solid var(--border);background:var(--surface);color:var(--ink)!important;text-decoration:none!important;border-left:4px solid var(--c);transition:transform .25s,box-shadow .25s}
.hev:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.hev__d{flex:0 0 50px;height:54px;border-radius:12px;display:grid;place-items:center;align-content:center;line-height:1;background:color-mix(in srgb,var(--c) 18%,transparent)}
.hev__d b{font-size:1.3rem}.hev__d em{font-style:normal;font-size:.68rem;font-weight:700;text-transform:uppercase;color:var(--ink2)}
.hev__b{display:grid;gap:.12rem;min-width:0}.hev__b strong{font-size:.9rem;line-height:1.25}
.hev__c{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.hev__v{font-size:.76rem;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media screen and (max-width:960px){
  .cine__in{grid-template-columns:1fr;text-align:left}
  .cine__art{order:-1;min-height:0}.cine__dodo{width:min(62vw,300px)}
  .cstats__grid,.hevents{grid-template-columns:repeat(2,1fr)}
  .cine__scroll{display:none}
}
@media screen and (max-width:560px){.cstats__grid,.hevents{grid-template-columns:1fr}.hrail{grid-auto-columns:85%}}
html.reduce-motion .aur,html.reduce-motion .cine__track,html.reduce-motion .cine__ring,html.reduce-motion .cine__dodo,html.reduce-motion .cine__halo{animation:none!important}
@media (prefers-reduced-motion:reduce){.aur,.cine__track,.cine__ring,.cine__dodo,.cine__halo,.cine__h .ln.hl>span{animation:none!important}}
@media print{.cine{min-height:0;background:#fff;color:#111}.cine__bg,.cine__ticker,.cine__scroll,.cine__art{display:none}.cine__h,.cine__p{color:#111}.cine__h .ln>span{transform:none}.cstats{background:#fff}.cstat{color:#111;border-color:#ccc}.cstats__hd h2{color:#111}}
/* home: brief cards in the carousel are stacked (banner on top, text full width) so they stay readable */
.hrail{grid-auto-columns:minmax(300px,360px)}
.hrail .bcard{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:.9rem;padding:0;overflow:hidden;align-content:start}
.hrail .bcard__art{aspect-ratio:auto;height:120px;border-radius:0;font-size:3rem}
.hrail .bcard>*:not(.bcard__art){padding:0 1.1rem}
.hrail .bcard>*:last-child{padding-bottom:1.1rem}
.hrail .bcard h3{font-size:1.08rem;line-height:1.3}
.hrail .bcard p{font-size:.88rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
@media screen and (max-width:560px){.hrail{grid-auto-columns:86%}}
.hrail .bcard>span:last-child{display:block}
@media screen and (max-width:560px){.cine__eye{letter-spacing:.16em;font-size:.72rem}}
/* account menu = account + quick settings */
.hpanel__set{margin-top:.6rem;padding-top:.7rem;border-top:1px solid var(--border2)}
.hpanel__sethd{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 .2rem .1rem}
.hpanel__set .setrow:last-child{border-bottom:0}
/* Kaya quote + song, top right of the home hero */
.kaya{position:absolute;z-index:2;top:clamp(14px,2.6vh,28px);right:clamp(16px,2vw,32px);width:min(268px,22vw);padding:.85rem .95rem;color:#fff;
  background:rgba(8,14,30,.5);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(255,255,255,.14);border-radius:18px;box-shadow:0 18px 40px -18px rgba(0,0,0,.6)}
.kaya__q{margin:0}
.kaya blockquote{margin:0;position:relative;padding-left:.15rem}
.kaya__kr{margin:0;font:600 .82rem/1.42 'Plus Jakarta Sans',Inter,sans-serif;letter-spacing:-.005em}
.kaya__tr{margin:.35rem 0 0;font-size:.72rem;line-height:1.4;color:rgba(255,255,255,.72);font-style:italic}
.kaya__hd{display:block;margin-bottom:.45rem;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#FFD500}
.kaya figcaption{margin-top:.45rem;font-size:.76rem;color:rgba(255,255,255,.75)}.kaya figcaption b{color:#fff}
html[lang=fr] .kaya__tr{display:none}
.kaya__song{display:flex;align-items:center;gap:.7rem;margin-top:.8rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none}
.kaya__play{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#FF0033;color:#fff;box-shadow:0 6px 18px -4px rgba(255,0,51,.6);transition:transform .2s}
.kaya__song:hover .kaya__play{transform:scale(1.08)}
.kaya__st{display:grid;gap:.1rem;min-width:0}
.kaya__st b{font-size:.88rem}
.kaya__st em{font-style:normal;font-size:.74rem;color:rgba(255,255,255,.7)}
.kaya__song:hover em{color:#fff}
@media screen and (max-width:960px){.kaya{position:relative;top:auto;right:auto;width:auto;margin:0 16px 1rem}}
@media print{.kaya{display:none}}
