/* Base layout (a light Bootstrap-like frame) */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:1rem;line-height:1.5;color:#212529;background:#fff;overflow-x:hidden}
h3,h4,h5,h6{margin:0 0 .5rem;font-weight:500;line-height:1.2}
h3{font-size:1.75rem}h4{font-size:1.5rem;margin-top:1rem}h5{font-size:1.25rem;margin-top:.8rem}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem}
a{color:#3d6fd6}
b,strong{font-weight:bolder}
table{border-collapse:collapse}
button{font:inherit}

/* Navbar */
.navbar{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem 1rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}
.navbar-brand{font-weight:700;font-size:1.25rem;color:#212529;text-decoration:none;margin-right:.5rem}
.navbar-nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;margin:.4rem 0;justify-content:center;padding:0;list-style:none}
/* Tabs: centred, each its own shade from the theme (Ranking/Uncertainty blue, Policy explorer yellow, Budget sage, Deaths red, Methodology slate), white bold text; the active tab is full strength */
.navbar{justify-content:center;position:relative}
@media (min-width:1200px){.navbar-brand{position:absolute;left:1rem;top:50%;transform:translateY(-50%)}}
.nav-link{--c:#2f5fae;display:block;border:1px solid var(--c);border-radius:6px;padding:.5rem 1.15rem;font:700 1.08rem system-ui,sans-serif;letter-spacing:.01em;color:#fff;background:var(--c);text-decoration:none;cursor:pointer;text-align:center;opacity:.86;transition:opacity .12s,box-shadow .12s;text-shadow:0 1px 1px rgba(0,0,0,.18)}
.nav-link[data-tab="ranking"]{--c:#1f4e9c}
.nav-link[data-tab="uncertainty"]{--c:#4a80cc}
.nav-link[data-tab="budget"]{--c:#6f9174}
.nav-link[data-tab="explorer"]{--c:#b8850d}
.nav-link[data-tab="deaths"]{--c:#a61c1c}
.nav-link[data-tab="methodology"]{--c:#5d7189}
.navaux{font:500 .85rem system-ui,sans-serif;color:#5d7189;text-decoration:underline;text-underline-offset:2px}
.navaux:hover{color:#2d3a4a}
@media (min-width:1200px){.navaux{position:absolute;right:1rem;top:50%;transform:translateY(-50%)}}
.nav-link:hover{opacity:.9}
.nav-link.active{opacity:1;box-shadow:inset 0 -3px 0 rgba(0,0,0,.28),0 0 0 2px #fff,0 0 0 4px var(--c)}
.nav-link:focus-visible{outline:2px solid var(--c);outline-offset:2px}
.page{padding:1rem 1.5rem 2rem}
.tab{display:none}
.tab.active{display:block}

/* Cards and value boxes */
.card{border:1px solid rgba(0,0,0,.175);border-radius:8px;background:#fff;margin-bottom:1rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);min-width:0}
.card-header{padding:.5rem 1rem;background:rgba(33,37,41,.03);border-bottom:1px solid rgba(0,0,0,.175);border-radius:8px 8px 0 0;font-size:1rem}
.card-body{padding:1rem;min-width:0}
.cols{display:grid;gap:1rem;margin-bottom:1rem;grid-template-columns:repeat(12,minmax(0,1fr))}
.cols>*{margin-bottom:0}
.c3{grid-column:span 3}.c6{grid-column:span 6}
.vbox{border-radius:8px;padding:1rem 1.25rem;min-height:7rem;display:flex;flex-direction:column;justify-content:center;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)}
.vbox .vt{font-size:1rem;margin-bottom:.25rem;opacity:.95}
.vbox .vv{font-size:1.6rem;line-height:1.2;font-weight:400}
.vb-blue{background:#5b8def;color:#fff}.vb-yellow{background:#f2c46d;color:#2d3a4a}
.vb-red{background:#e07a7a;color:#fff}.vb-green{background:#76bf94;color:#fff}.vb-grey{background:#eef1f6;color:#2d3a4a}

/* Sidebar layout on the Ranking tab */
.layout{display:grid;grid-template-columns:320px minmax(0,1fr);border:1px solid rgba(0,0,0,.175);border-radius:8px;overflow:hidden}
.sidebar{background:#f8f9fa;border-right:1px solid rgba(0,0,0,.175);padding:1rem 1.1rem}
.main{padding:1rem 1.5rem;min-width:0}
.sidebar h6{margin:.6rem 0 .5rem;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:#3d6fd6;font-family:system-ui,sans-serif;font-weight:600}
.ctl{margin-bottom:.4rem}
.ctl label.lab{display:block;font-weight:600;font-size:.95rem;margin-bottom:.1rem}
.help{font-size:.76rem;line-height:1.25;color:#667;margin:-.1rem 0 .9rem}
.help.top{margin:0 0 .8rem;font-style:italic}
.help.fixed{margin-top:.4rem;border-top:1px solid #ddd;padding-top:.6rem}
.ends{display:flex;justify-content:space-between;font:600 .7rem system-ui,sans-serif;color:#4a5566;margin:.1rem 0 .7rem}
.resetbtn{display:block;width:100%;background:#e07a7a;border:none;color:#fff;font:700 .85rem system-ui,sans-serif;letter-spacing:.12em;border-radius:6px;padding:.45rem;cursor:pointer}
.resetbtn:hover{background:#c75b5b}

/* Slider */
.sl{position:relative;padding-top:1.6rem}
.sl .bubble{position:absolute;top:0;transform:translateX(-50%);background:#5b8def;color:#fff;font:600 .72rem system-ui,sans-serif;padding:.1rem .35rem;border-radius:4px;white-space:nowrap;pointer-events:none}
.sl .mm{position:absolute;top:0;font:.68rem system-ui,sans-serif;color:#333;background:rgba(0,0,0,.1);padding:.1rem .3rem;border-radius:3px}
.sl .mm.mn{left:0}.sl .mm.mx{right:0}
.sl input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;margin:0;background:transparent;cursor:pointer;--pct:50%}
.sl input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:8px;background:linear-gradient(90deg,#8db0f3 var(--pct),#dedede var(--pct))}
.sl input[type=range]::-moz-range-track{height:8px;border-radius:8px;background:#dedede}
.sl input[type=range]::-moz-range-progress{height:8px;border-radius:8px;background:#8db0f3}
.sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-5px;border-radius:50%;background:#5b8def;border:1px solid #5b8def;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.sl input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#5b8def;border:1px solid #5b8def}
.sl input[type=range]:hover::-webkit-slider-thumb{background:#3d6fd6}
.sl input[type=range]:focus-visible{outline:2px solid #3d6fd6;outline-offset:2px}
.grid{position:relative;height:1.1rem;margin:0 9px;font:.68rem system-ui,sans-serif;color:#555}
.grid span{position:absolute;transform:translateX(-50%);top:.1rem}
.grid span:before{content:"";position:absolute;left:50%;top:-.25rem;height:.25rem;border-left:1px solid #bbb}

/* Filters */
.chips{display:flex;flex-wrap:wrap;gap:.3rem .7rem;margin:.1rem 0 .7rem;font:.85rem system-ui,sans-serif}
.chips label{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}
.chips input{accent-color:#3d6fd6}

/* Content styles shared with the original dashboard */
.gkey{border:1px solid #e3e6ea;border-radius:8px;background:#fbfcfe;padding:.7rem .9rem;margin:.2rem 0 .8rem}
.gkey-t{font:600 .9rem system-ui,sans-serif;color:#2d3a4a;margin-bottom:.45rem}
.gkey-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.45rem}
.gkey-row .gb{font-size:.95rem;padding:.15rem .5rem;min-width:2.6em}
.gkey-end{font:600 .78rem system-ui,sans-serif;color:#667;margin:0 .3rem}
.gkey-s{font-size:.82rem;color:#556;line-height:1.4;margin-top:.3rem}
.headline{text-align:center;padding:1.2rem .5rem .6rem}
.headline .k{font:600 .78rem system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#3d6fd6}
.headline .big{font-size:clamp(2.4rem,6vw,3.6rem);line-height:1.1;color:#2d3a4a;margin:.3rem 0}
.headline .sub{color:#556;max-width:760px;margin:0 auto;font-size:.92rem}
.tbl tr.hl td{background:#fdf6e3}
.odayears{display:flex;justify-content:center;gap:1.4rem;flex-wrap:wrap;margin:.8rem 0 .4rem}
.odayears div{text-align:center;font:500 .8rem system-ui,sans-serif;color:#556}
.odayears b{display:block;font:400 1.3rem Georgia,serif;color:#2d3a4a}
.odayears .cur b{color:#3d6fd6}
.charttitle{font-size:1rem;font-weight:700;color:#2d3a4a;margin:.6rem 0 0}
.fundhead{font-size:1.25rem;font-weight:700;color:#2d3a4a;background:linear-gradient(90deg,#e8f0fd,#fdf6e3);border-left:5px solid #5b8def}
.hlbar{background:#f2c46d !important}
.gb{display:inline-block;min-width:2.1em;text-align:center;color:#fff;border-radius:4px;padding:0 .3em;font:600 .75rem system-ui,sans-serif}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tbl{width:100%;border-collapse:collapse;font-size:.84rem}
.tbl th{position:sticky;top:0;background:#f4f6f8;text-align:left;font-family:system-ui,sans-serif;font-size:.74rem;text-transform:uppercase;letter-spacing:.03em;padding:.4rem;border-bottom:2px solid #ccd;white-space:nowrap}
.tbl td{padding:.35rem .4rem;border-bottom:1px solid #eee;vertical-align:top}
.tbl td.num,.tbl th.num{text-align:right;white-space:nowrap}
.tbl td.pn{min-width:260px}
#deaths_table .tbl th{white-space:normal;vertical-align:bottom;min-width:5.6rem}
.tbl tr:hover td{background:#fafbfd}
.barcell{width:35%;min-width:90px}.bar{height:12px;border-radius:6px;background:#a8c5f7}
.small-src{font-size:.72rem;color:#789}
.rubric{padding-left:1.2rem}.rubric li{margin:.35rem 0}
.bib{margin:.25rem 0 .5rem;padding-left:1.6em;text-indent:-1.6em;font-size:.88rem;overflow-wrap:anywhere}
.lead-sm{color:#555}
details.pol{border:1px solid #e3e6ea;border-radius:8px;margin:.45rem 0;background:#fff}
details.pol>summary{cursor:pointer;padding:.6rem .8rem;font-weight:600;list-style:none}
details.pol>summary::-webkit-details-marker{display:none}
details.pol>summary:before{content:'\25B8';display:inline-block;width:1.1em;transition:transform .15s}
details.pol[open]>summary:before{transform:rotate(90deg)}
details.pol[open]>summary{border-bottom:1px solid #eee;background:#f7f9fb}
details.sub{margin:.5rem .9rem .7rem 1.6rem}
details.sub>summary{cursor:pointer;color:#3d6fd6;font-weight:600}
.polbody{padding:.2rem .2rem .4rem;overflow-wrap:anywhere}
.kv{margin:.3rem 0}.kv b{font-family:system-ui,sans-serif;font-size:.78rem;text-transform:uppercase;color:#556;letter-spacing:.03em}
.meta{font-weight:400;color:#667;font-size:.85rem}
.srcli{margin:.35rem 0;font-size:.86rem}
.note{font-size:.85rem;color:#555}
.fitnote{background:#fdf6e3;border-left:3px solid #f2c46d;padding:.5rem .7rem;margin-bottom:.6rem}
.meth dt{margin-top:.8rem;color:#3d6fd6;font-family:system-ui,sans-serif;font-size:.9rem}
.meth dd{margin:.2rem 0 0 0;font-size:.93rem;line-height:1.45}
.paper table{border-collapse:collapse;margin:.5rem 0 1rem;font-size:.88rem}
.paper th,.paper td{border:1px solid #dde2e8;padding:.3rem .5rem;vertical-align:top}
.paper .tscroll{margin-bottom:1rem}
.paper h2{font-size:1.4rem;margin:1.2rem 0 .5rem}
hr{border:0;border-top:1px solid #ccc;margin:1.5rem 0}

/* Charts */
.chart{width:100%;position:relative}
.chart svg{display:block;width:100%;height:auto;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
.chart .empty{color:#a33;padding:1rem}
.loading{padding:2rem;text-align:center;color:#556;font:500 .95rem system-ui,sans-serif}

/* Narrow screens */
@media (max-width:991px){
  .c3{grid-column:span 6}
}
@media (max-width:767px){
  .layout{grid-template-columns:1fr}
  .sidebar{border-right:0;border-bottom:1px solid rgba(0,0,0,.175)}
  .main{padding:1rem .75rem}
  .page{padding:.75rem 1rem 2rem}
  .c3,.c6{grid-column:span 12}
  .navbar-nav{width:100%;gap:.4rem}
  .navbar-nav li{flex:1 1 auto}
  .nav-link{padding:.45rem .6rem;font-size:.98rem}
  .card-body{padding:.75rem}
  .tbl td.pn{min-width:200px}
  details.sub{margin:.5rem .4rem .7rem .8rem}
}
.essay-body p{margin:.45em 0;line-height:1.55}
.essay-body ul,.essay-body ol{margin:.35em 0 .35em 1.2em}
details.sub.essay>summary{font-weight:600}
.essay-result .kv{margin-bottom:.6em}
.seg{display:flex;flex-wrap:wrap;gap:4px;margin:.3rem 0 .4rem}
.seg button{flex:1 1 auto;border:1px solid #c9d3e3;background:#fff;color:#2d3a4a;border-radius:6px;padding:4px 6px;font-size:.8rem;cursor:pointer}
.seg button.on{background:#3d6fd6;border-color:#3d6fd6;color:#fff}
.seg.scen button{flex:1 1 45%}
.chk{display:flex;gap:6px;align-items:center;font-weight:600;font-size:.9rem}
/* Headline and the best-vs-worst chart share one card */
.hlcard .hl-row{display:flex;align-items:center;justify-content:center;gap:.4rem 1.6rem;flex-wrap:wrap;padding:.2rem 0 .7rem;border-bottom:1px solid #eceff3}
.hlcard .hl-num{text-align:center;flex:0 0 auto}
.hlcard .hl-k{font:600 .8rem system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#3d6fd6}
.hlcard .hl-v{font-size:2.6rem;font-weight:500;color:#1f2a3a;line-height:1.1;margin:.1rem 0 0}
.hlcard .hl-s{flex:1 1 280px;max-width:520px;font-size:1rem;color:#3b4656}
.hlcard .hl-ct{text-align:center;margin:.7rem 0 0}
@media (max-width:767px){
  .hlcard .hl-row{flex-direction:column;text-align:center}
  .hlcard .hl-s{flex:0 0 auto}
  .hlcard .hl-v{font-size:2.2rem}
}
/* Policy explorer: how the 40 policies were chosen */
.selgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:.4rem}
.selcol{--bg:#eef1f6;--hd:#dfe5ee;--bd:#c9d2df;border:1px solid var(--bd);border-radius:8px;background:var(--bg);overflow:hidden;color:#2d3a4a}
.selcol.g-climate{--bg:#eef7f1;--hd:#d4ecdc;--bd:#9fd1b2}
.selcol.g-freedom{--bg:#fdf7e6;--hd:#f9e7b5;--bd:#efd08a}
.selcol.g-health{--bg:#eef3fd;--hd:#d6e3fb;--bd:#a8c5f7}
.selcol.g-popular{--bg:#fcf0f0;--hd:#f7dada;--bd:#eca7a7}
.selhd{background:var(--hd);padding:.5rem .7rem;border-bottom:1px solid var(--bd)}
.selhd b{display:block;font:700 1rem system-ui,sans-serif}
.selhd span{display:block;font-size:.8rem;line-height:1.35;margin-top:.2rem}
.sellist{list-style:none;margin:0;padding:.25rem}
.selp{display:grid;grid-template-columns:2.4em minmax(0,1fr) auto;align-items:center;gap:.1rem .4rem;width:100%;text-align:left;background:transparent;border:0;border-radius:5px;padding:.3rem .35rem;color:#2d3a4a;cursor:pointer}
.selp:hover{background:rgba(255,255,255,.75)}
.selp:focus-visible{outline:2px solid #3d6fd6;outline-offset:1px}
.selp .rk{font:700 .8rem system-ui,sans-serif;color:#4a5566}
.selp .tt{font:600 .88rem system-ui,sans-serif;overflow-wrap:anywhere}
.selp .gb{font-size:.68rem}
.selp .sb{grid-column:2 / 4;font-size:.72rem;line-height:1.3;color:#556}
details.pol.flash>summary{animation:flash 1.4s ease-out}
@keyframes flash{from{background:#fdf0c4}to{background:#f7f9fb}}
@media (max-width:991px){.selgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.selgrid{grid-template-columns:1fr}}
.srccard{margin-top:1.25rem;scroll-margin-top:.5rem}
