/* ARC Scientometric Dashboard, design system adapted from ACSC Indonesia */
:root{
  --c-bg:#fafaf7; --c-surface:#ffffff; --c-border:#e5e3dd; --c-border-soft:#efece6;
  --c-text:#1a1a1a; --c-muted:#6b6962; --c-accent:#b13d2a; --c-accent-soft:#f4d9d3;
  --c-teal:#1b7f8c; --c-com:#c0392b; --c-mat:#e6843c; --c-ncd:#1b9e9e; --c-inj:#8e7cc3;
  --ff-sans:Arial,Helvetica,sans-serif; --ff-serif:Georgia,"Times New Roman",serif;
  --fs-xs:.78rem; --fs-sm:.88rem; --fs-base:1rem; --fs-md:1.15rem; --fs-lg:1.4rem; --fs-xl:2rem; --fs-xxl:2.6rem;
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem; --s-6:2rem; --s-7:3rem;
  --r-sm:4px; --r-md:8px; --r-lg:12px; --max-w:1200px;
  --shadow-1:0 1px 2px rgba(0,0,0,.04),0 2px 6px rgba(0,0,0,.05); --shadow-2:0 4px 14px rgba(0,0,0,.09);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--ff-sans);font-size:var(--fs-base);line-height:1.55;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--ff-serif);line-height:1.2;color:#15201b;margin:0 0 .4em}
a{color:var(--c-accent);text-decoration:none} a:hover{text-decoration:underline}
.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--s-5)}
.muted{color:var(--c-muted)}

/* header */
.nav{position:sticky;top:0;z-index:50;background:rgba(250,250,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--c-border)}
.nav-inner{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-5);flex-wrap:wrap}
.nav-brand{display:flex;align-items:center}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;height:42px;width:42px;border-radius:8px;background:#fff;padding:3px;box-shadow:var(--shadow-1);margin-right:12px}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.nav-brand-text{display:flex;flex-direction:column;line-height:1.2;font-weight:700}
.nav-brand-text small{font-weight:400;color:var(--c-muted);font-size:var(--fs-xs)}
.nav-links{display:flex;align-items:center;gap:var(--s-1);flex-wrap:wrap}
.nav-link{padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--c-text);white-space:nowrap}
.nav-link:hover{background:var(--c-accent-soft);text-decoration:none}
.nav-link.active{background:var(--c-accent);color:#fff}

/* hero */
.hero{padding:var(--s-7) 0 var(--s-6);border-bottom:1px solid var(--c-border)}
.hero h1{font-size:var(--fs-xxl);max-width:18ch}
.hero .lede{font-size:var(--fs-md);color:#33312c;max-width:62ch;margin-top:var(--s-3)}
.hero .eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:var(--fs-xs);color:var(--c-accent);font-weight:700;font-family:var(--ff-sans)}

/* kpi */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-3);margin:var(--s-5) 0}
.kpi{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-4);box-shadow:var(--shadow-1)}
.kpi .val{font-family:var(--ff-serif);font-size:var(--fs-xl);color:var(--c-accent);line-height:1}
.kpi .lab{font-size:var(--fs-xs);color:var(--c-muted);margin-top:var(--s-2)}

/* sections + panels */
.section{padding:var(--s-6) 0}
.section-head{margin-bottom:var(--s-4)}
.section-head h2{font-size:var(--fs-xl)}
.section-head p{color:var(--c-muted);max-width:70ch;margin:0}
.panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-1);margin-bottom:var(--s-5)}
.panel h3{font-size:var(--fs-md)}
.panel .sub{font-size:var(--fs-sm);color:var(--c-muted);margin:-.2em 0 var(--s-4)}
.cap{font-size:var(--fs-sm);font-weight:600;color:#33312c;margin-bottom:6px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
@media(max-width:880px){.grid-2{grid-template-columns:1fr}}

/* table */
.tbl-wrap{overflow-x:auto}
table.dt{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
table.dt th,table.dt td{padding:var(--s-2) var(--s-3);text-align:left;border-bottom:1px solid var(--c-border-soft);white-space:nowrap}
table.dt th{font-family:var(--ff-sans);font-weight:700;color:var(--c-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;user-select:none}
table.dt th:hover{color:var(--c-accent)}
table.dt tbody tr:hover{background:#faf7f2}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.bar-cell{position:relative}
.bar-cell .bar{position:absolute;left:0;top:0;bottom:0;background:var(--c-accent-soft);z-index:0;border-radius:2px}
.bar-cell span{position:relative;z-index:1}

/* tags */
.tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:700}
.tag.Communicable{background:#fae3df;color:#922} .tag.NCD{background:#dcf0f0;color:#0a5b63}
.tag.Maternal\/Neonatal\/Nutrition{background:#fbe7d4;color:#9a5316} .tag.Injuries{background:#e8e2f3;color:#5b3f8c}

/* controls */
.controls{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--s-4)}
.controls label{font-size:var(--fs-sm);color:var(--c-muted)}
select,button.btn{font-family:var(--ff-sans);font-size:var(--fs-sm);padding:var(--s-2) var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-sm);background:#fff;cursor:pointer}
button.btn:hover{border-color:var(--c-accent)}

/* map + network */
.viz-wrap{position:relative;width:100%}
#map svg,#net svg{width:100%;height:auto;display:block}
.prov{stroke:#fff;stroke-width:.5;cursor:pointer;transition:opacity .1s}
.prov:hover{opacity:.78;stroke:#333;stroke-width:1.2}
.node{cursor:pointer;stroke:#fff;stroke-width:.6}
.edge{stroke:#d9d9d9}
.netlabel{font-family:var(--ff-sans);font-size:9px;fill:#333;pointer-events:none}
.legend-row{display:flex;gap:var(--s-4);flex-wrap:wrap;font-size:var(--fs-xs);color:var(--c-muted);margin-top:var(--s-2)}
.legend-row i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.tooltip{position:fixed;pointer-events:none;background:#1a1a1a;color:#fff;padding:6px 10px;border-radius:6px;font-size:var(--fs-xs);line-height:1.4;box-shadow:var(--shadow-2);opacity:0;transition:opacity .08s;z-index:100;max-width:240px}
.chart-box{position:relative;height:340px}
.axis path,.axis line{stroke:#e6e9ee} .axis text{fill:#8a8a82;font-size:10px}
.slab{paint-order:stroke;stroke:#fafaf7;stroke-width:3.2px;stroke-linejoin:round}
.slab:hover{fill:var(--c-accent)}

/* in-page sub-nav (merged Landscape page) */
.subnav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:var(--s-4) 0 0}
.subnav span{color:var(--c-muted);font-size:var(--fs-sm)}
.subnav button{font-family:var(--ff-sans);font-size:var(--fs-sm);padding:5px 14px;border:1px solid var(--c-border);border-radius:999px;background:#fff;cursor:pointer;color:var(--c-text)}
.subnav button:hover{border-color:var(--c-accent);color:var(--c-accent)}

/* disease drill-down (GBD hierarchy) */
.crumb{font-size:var(--fs-sm);color:var(--c-muted);margin-bottom:var(--s-4)}
.crumb a{color:var(--c-accent)} .crumb .sep{margin:0 .4em;color:var(--c-border)}
.dbars{display:flex;flex-direction:column;gap:6px}
.dbar{display:grid;grid-template-columns:minmax(130px,30%) 1fr minmax(96px,auto);align-items:center;gap:var(--s-3);
  background:none;border:1px solid transparent;border-radius:var(--r-sm);padding:7px var(--s-3);cursor:pointer;text-align:left;font:inherit;width:100%}
.dbar:hover{background:#faf7f2;border-color:var(--c-border)}
.dbar-lab{font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}
.dbar-lab em{font-weight:400;color:var(--c-muted);font-style:normal;font-size:var(--fs-xs)}
.dbar-track{position:relative;height:16px;background:#f0eee9;border-radius:3px;overflow:hidden}
.dbar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px;min-width:2px}
.dbar-val{font-size:var(--fs-sm);color:var(--c-muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mstrip{display:flex;flex-wrap:wrap;gap:var(--s-5);background:#faf8f4;border:1px solid var(--c-border-soft);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4)}
.mstrip div{display:flex;flex-direction:column}
.mstrip b{font-family:var(--ff-serif);font-size:var(--fs-md);color:var(--c-accent);line-height:1.1}
.mstrip span{font-size:var(--fs-xs);color:var(--c-muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s-3)}
.chip{font:inherit;font-size:var(--fs-xs);padding:4px 10px;border:1px solid var(--c-border);border-radius:999px;background:#fff;cursor:pointer;color:var(--c-text)}
.chip:hover{border-color:var(--c-accent)} .chip.on{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}
.art-scroll{max-height:640px;overflow-y:auto;overflow-x:auto}
table.dt.art{table-layout:fixed;width:100%}
table.dt.art td{white-space:normal;vertical-align:top}
table.dt.art th:nth-child(1),table.dt.art td.ti{width:36%}
table.dt.art th:nth-child(2),table.dt.art td.au{width:22%}
table.dt.art th:nth-child(3),table.dt.art td.jo{width:20%}
table.dt.art th:nth-child(n+4),table.dt.art td.num{width:7.3%}
table.dt.art td.ti{font-weight:600} table.dt.art td.ti a{color:var(--c-text)} table.dt.art td.ti a:hover{color:var(--c-accent)}
table.dt.art td.au{color:var(--c-muted);font-size:var(--fs-xs)}
table.dt.art td.jo{color:var(--c-muted);font-size:var(--fs-xs);font-style:italic}
.ptag{display:inline-block;background:#fae3df;color:#a23;border-radius:999px;padding:0 7px;font-size:10px;font-weight:700;white-space:nowrap}
table.dt.art tr.par{background:#fdf6f4}
.scope-tag{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:1px 9px;border-radius:999px;background:var(--c-accent);color:#fff;vertical-align:middle}
.scope-tag.overall{background:#e8e6e0;color:#6b6962}
table.dt.hm td{font-variant-numeric:tabular-nums}
table.dt.hm .hm-g{font-weight:400;color:var(--c-muted);font-size:9px}
table.dt.hm .hm-name{cursor:pointer;font-weight:600;white-space:normal;min-width:150px}
table.dt.hm tr[data-i]{cursor:pointer}
table.dt.hm tr[data-i]:hover .hm-name{color:var(--c-accent)}

/* findings list */
.findings{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-3)}
.finding{background:var(--c-surface);border:1px solid var(--c-border);border-left:3px solid var(--c-accent);border-radius:var(--r-md);padding:var(--s-4)}
.finding b{font-family:var(--ff-serif);font-size:var(--fs-md);color:var(--c-accent)}

/* gaps */
.gap-card{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-4);margin-bottom:var(--s-3);background:#fff}
.gap-card h4{font-size:var(--fs-base);margin-bottom:.3em} .gap-card h4 .n{color:var(--c-accent)}
.gap-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);align-items:start;margin-bottom:var(--s-3)}
.gap-grid .gap-card.wide{grid-column:1 / -1}   /* full row, for gaps with bigger embedded visualisations */
@media(max-width:760px){
  .gap-grid{grid-template-columns:1fr}
  /* Tighter card padding + chart height on phones */
  .gap-card.wide{padding:var(--s-4)}
  .gap-card .chart-box.mini{height:280px;margin:.4em -.3em}
  /* CVD/TB callout mm-row stack vertical instead of side-by-side */
  .callout .mm{flex-direction:column;gap:var(--s-3)}
  .callout .mm-row{min-width:0}
  /* Exec summary already responsive, leave */
  /* PNPK ranked table: hide less-essential columns, leave Title / Year / Total / Domestic / % */
  .panel .dt th:nth-child(6),.panel .dt td:nth-child(6),
  .panel .dt th:nth-child(7),.panel .dt td:nth-child(7),
  .panel .dt th:nth-child(8),.panel .dt td:nth-child(8){display:none}
  /* Heatmap: smaller font + horizontal scroll */
  .dt.hm{font-size:.78rem}
  .dt.hm tbody td{padding:.35em .4em}
  /* Headlines & exec summary smaller */
  .hero h1{font-size:1.7rem}
  .exec-summary .exec-num{font-size:1.75rem}
  /* Two-col KPI grids inside Gap 11 stack to one column */
  .gap-card .kpi-grid{grid-template-columns:1fr 1fr !important}
}
.gap-grid .gap-card{margin-bottom:0;height:100%}
.gviz{margin:.55em 0 .6em}
/* Embedded chart-boxes inside gap cards, taller so labels and dots are legible at full-width */
.gap-card .chart-box.mini{height:340px;margin:.5em 0 .6em}
.gap-card.wide{padding:var(--s-5)}
.gap-card.wide h4{font-size:var(--fs-md);margin-bottom:.45em}
/* Gap heatmap column headers, keep the label & the "Gap N" tag on separate lines without forcing the column too wide */
.dt.hm thead th{vertical-align:bottom;padding-top:.6em;padding-bottom:.5em}
.dt.hm thead th .hm-g{display:block;font-size:.65rem;color:var(--c-muted);font-weight:600;letter-spacing:.06em;margin-top:.2em;text-transform:uppercase}
.dt.hm tbody td{padding:.45em .55em}
.dt.hm tbody td.hm-name{font-weight:600;font-size:.85rem}
.dt.hm tbody tr:hover td{filter:brightness(0.97)}
.meter{display:grid;grid-template-columns:minmax(120px,38%) 1fr auto;gap:10px;align-items:center;margin:5px 0}
.meter-lab{color:var(--c-muted);font-size:var(--fs-xs)}
.meter-track{position:relative;height:13px;background:#f0eee9;border-radius:3px;overflow:hidden}
.meter-fill{position:absolute;top:0;bottom:0;left:0;border-radius:3px}
.meter-val{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--fs-sm);white-space:nowrap}
.gnote{font-size:var(--fs-sm);color:var(--c-muted);margin:7px 0 3px;display:flex;align-items:baseline;gap:4px}
.gbig{font-family:var(--ff-serif);font-size:1.5rem;color:var(--c-accent);line-height:1}
.gap-find{font-size:.92rem;color:#2a2a28;margin:.3em 0 .35em;line-height:1.5}
.gap-why{font-size:.84rem;color:var(--c-muted);margin:0;line-height:1.5} .gap-why b{color:#5a5852;font-weight:700}
.statusrows{display:flex;flex-direction:column;gap:5px}
.srow{display:grid;grid-template-columns:12px minmax(130px,34%) 1fr;gap:9px;align-items:center;font-size:var(--fs-sm)}
.sdot{width:9px;height:9px;border-radius:50%}
.sdot.ok{background:#1b9e9e} .sdot.part{background:#e6843c} .sdot.no{background:#c0392b}
.slab{font-weight:600;font-size:var(--fs-xs)} .stext{color:var(--c-muted);font-size:var(--fs-xs)}
.layer-head{font-family:var(--ff-sans);text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-xs);color:var(--c-muted);font-weight:700;margin:var(--s-5) 0 var(--s-2)}

/* footer + loading */
.site-footer{border-top:1px solid var(--c-border);margin-top:var(--s-7);background:#fff}
.footer-inner{max-width:var(--max-w);margin:0 auto;padding:var(--s-5);display:flex;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;font-size:var(--fs-sm)}
.loading{padding:var(--s-7);text-align:center;color:var(--c-muted)}
.note{font-size:var(--fs-xs);color:var(--c-muted);margin-top:var(--s-3)}

/* PRISMA flow */
.prisma{display:flex;flex-direction:column;gap:6px;margin:var(--s-4) 0}
.pr-row{display:grid;grid-template-columns:1fr minmax(240px,440px) 1fr;align-items:center;gap:var(--s-3)}
.pr-box{grid-column:2;background:var(--c-surface);border:1px solid var(--c-border);border-left:3px solid var(--c-teal);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);box-shadow:var(--shadow-1);font-size:var(--fs-sm);color:#33312c}
.pr-box b{display:block;font-family:var(--ff-serif);font-size:var(--fs-lg);color:var(--c-text);margin-top:2px}
.pr-incl{border-left-color:var(--c-accent)} .pr-incl b{color:var(--c-accent)}
.pr-ex{grid-column:3;justify-self:start;align-self:center;background:#fbf6e9;border:1px solid #ecdca6;border-radius:var(--r-md);padding:var(--s-2) var(--s-3);font-size:var(--fs-xs);color:#6b5a1f;max-width:290px}
.pr-ex b{display:block;font-family:var(--ff-serif);font-size:var(--fs-md);margin-top:2px;color:#6b5a1f}
.pr-ex span{color:#8a7a3f}
.pr-arrow{text-align:center;color:var(--c-muted);font-size:1.1rem;line-height:1}
.pr-phase{font-family:var(--ff-sans);text-transform:uppercase;letter-spacing:.12em;font-size:var(--fs-xs);font-weight:700;color:var(--c-accent);text-align:center;margin-top:var(--s-2)}
@media(max-width:760px){.pr-row{grid-template-columns:1fr}.pr-box,.pr-ex{grid-column:1;max-width:100%;justify-self:stretch}}
.caveat{background:#fbf6e9;border:1px solid #ecdca6;border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:var(--fs-sm);color:#6b5a1f;margin:var(--s-4) 0}

/* Universal right-side drill panel, slide-in drawer that lists papers for any clicked category */
.drill-backdrop{position:fixed;inset:0;background:rgba(20,18,14,.32);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:90}
.drill-backdrop.open{opacity:1;pointer-events:auto}
.drill-panel{position:fixed;top:0;right:0;height:100vh;width:min(720px,92vw);background:#fff;box-shadow:-12px 0 32px rgba(20,18,14,.18);border-left:1px solid var(--c-border);transform:translateX(105%);transition:transform .26s cubic-bezier(.2,.7,.2,1);z-index:100;display:flex;flex-direction:column}
.drill-panel.open{transform:translateX(0)}
.dp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-3);padding:var(--s-4) var(--s-5) var(--s-3);border-bottom:1px solid var(--c-border);background:var(--c-surface)}
.dp-title h3{font-family:var(--ff-serif);font-size:var(--fs-lg);margin:0 0 .25em;color:var(--c-text);line-height:1.25}
.dp-title .sub{font-size:var(--fs-xs);color:var(--c-muted);margin:0;line-height:1.4}
.dp-close{background:none;border:1px solid var(--c-border);border-radius:50%;width:32px;height:32px;font-size:1.4rem;line-height:1;color:var(--c-muted);cursor:pointer;flex-shrink:0;transition:all .15s}
.dp-close:hover{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}
.dp-chips{padding:var(--s-3) var(--s-5) 0;display:flex;flex-wrap:wrap;gap:.4em}
.dp-chips:empty{padding:0}
.dp-body{flex:1;overflow-y:auto;padding:var(--s-3) var(--s-5) var(--s-5)}
.dp-body .dt{font-size:var(--fs-xs)}
.dp-body .dt th{position:sticky;top:0;background:#fff;z-index:2;border-bottom:2px solid var(--c-border)}
.dp-body .dt td.ti a{color:var(--c-text)} .dp-body .dt td.ti a:hover{color:var(--c-accent)}
.dp-body .dt tr.par{background:#fdf6ec}
/* Per-paper detail expansion in drill panel */
.dp-body .dt tr.row-collapsed{cursor:pointer;transition:background .15s ease}
.dp-body .dt tr.row-collapsed:hover{background:#f3f7f7}
.dp-body .dt tr.row-collapsed:hover.par{background:#fbf1e1}
.dp-body .dt tr.row-expanded{background:#eef2f2!important;font-weight:500}
.dp-body .dt .ti-expand{display:inline-block;color:var(--c-accent);font-size:.85em;margin-right:.25em;user-select:none;width:1em}
.dp-body .dt tr.detail-row td{padding:0!important;border-bottom:2px solid var(--c-accent);background:#fafaf7}
.paper-detail{padding:var(--s-4) var(--s-5)}
.paper-detail.loading{padding:var(--s-5);text-align:center;color:var(--c-muted)}
.paper-detail .pd-head{margin-bottom:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--c-border)}
.paper-detail .pd-title{font-family:var(--ff-serif);font-size:var(--fs-md);color:var(--c-text);font-weight:600;line-height:1.3;margin-bottom:.3em}
.paper-detail .pd-meta{font-size:var(--fs-xs);color:var(--c-muted)}
.paper-detail .pd-meta a{color:var(--c-accent2);text-decoration:none}
.paper-detail .pd-meta a:hover{text-decoration:underline}
.paper-detail .pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-bottom:var(--s-3)}
.paper-detail h5{font-family:var(--ff-sans);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--c-muted);font-weight:700;margin:var(--s-3) 0 .5em}
.paper-detail h5:first-child{margin-top:0}
.paper-detail .pd-pills{display:flex;flex-wrap:wrap;gap:.4em;font-size:var(--fs-xs);line-height:1.5}
.paper-detail .pd-pill{background:white;border:1px solid var(--c-border);border-radius:14px;padding:.25em .75em;color:#333;white-space:nowrap}
.paper-detail .pd-pill b{color:#666;font-weight:600;margin-right:.25em}
.paper-detail .pd-pill.accent{background:#fef6e9;border-color:#ecdca6;color:var(--c-accent)}
.paper-detail .pd-pill.accent b{color:var(--c-accent)}
.paper-detail .pd-pill.ok{background:#e9f4ec;border-color:#9ecfa9;color:#1c6c2e}
.paper-detail .pd-pill.ok b{color:#1c6c2e}
.paper-detail .pd-pill.warn{background:#fbe9e3;border-color:#e9a591;color:var(--c-accent)}
.paper-detail .pd-pill.warn b{color:var(--c-accent)}
.paper-detail .pd-pill.muted{color:var(--c-muted);font-style:italic}
.paper-detail .pd-au{list-style:none;padding:0;margin:0;font-size:var(--fs-xs);color:#333}
.paper-detail .pd-au li{padding:.4em 0;border-bottom:1px dashed #e6e6e3;line-height:1.45}
.paper-detail .pd-au li:last-child{border-bottom:none}
.paper-detail .pd-au .muted{font-size:.85em;color:var(--c-muted)}
.paper-detail .pd-abstract{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--c-border)}
.paper-detail .pd-abstract p{font-size:var(--fs-xs);line-height:1.5;color:#444;font-family:Georgia,serif;margin:0}
@media(max-width:760px){.paper-detail .pd-grid{grid-template-columns:1fr}}
.dp-empty{padding:var(--s-5);text-align:center;color:var(--c-muted);font-size:var(--fs-sm)}
@media(max-width:760px){.drill-panel{width:100vw;height:88vh;top:auto;bottom:0;border-radius:14px 14px 0 0;border-left:none;border-top:1px solid var(--c-border);transform:translateY(105%)}.drill-panel.open{transform:translateY(0)}}
/* clickable-bar affordance, any bar wrapped in .clickable shows pointer + subtle hover */
.dt tr.click,.dt td.click,.dbar.click{cursor:pointer;transition:background .12s}
.dt tr.click:hover{background:#f3f7f7} .dt td.click:hover{background:#e8f1f1}
/* Executive summary, three big findings, sits between the hero and the KPI strip */
.exec-summary{background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-5) var(--s-5) var(--s-4);margin:var(--s-4) 0;box-shadow:var(--shadow-1)}
.exec-summary h4{font-family:var(--ff-serif);font-size:var(--fs-md);margin:0 0 var(--s-3);color:var(--c-accent);letter-spacing:.01em}
.exec-summary .exec-row{display:grid;grid-template-columns:160px 1fr;gap:var(--s-4);align-items:center;padding:var(--s-3) 0;border-top:1px solid var(--c-border)}
.exec-summary .exec-row:first-of-type{border-top:none;padding-top:0}
.exec-summary .exec-num{font-family:var(--ff-serif);font-size:2.5rem;font-weight:600;color:var(--c-teal);line-height:1;text-align:right}
.exec-summary .exec-num.warn{color:var(--c-accent)}
.exec-summary .exec-num small{display:block;font-size:.7rem;color:var(--c-muted);font-weight:400;margin-top:.2em;font-family:var(--ff-sans);letter-spacing:.04em;text-transform:uppercase}
.exec-summary .exec-text{font-size:var(--fs-sm);line-height:1.55;color:#33312c}
.exec-summary .exec-text b{font-family:var(--ff-serif);color:var(--c-text)}
@media(max-width:760px){.exec-summary .exec-row{grid-template-columns:1fr;gap:var(--s-2);padding:var(--s-3) 0}.exec-summary .exec-num{text-align:left;font-size:2rem}}
/* CVD/TB callout, research-to-burden mismatch box */
.callout{background:linear-gradient(90deg,#fcefe9 0%,#fdf6ec 100%);border:1px solid #e9c4b3;border-left:4px solid var(--c-accent);border-radius:var(--r-md);padding:var(--s-4) var(--s-5);margin:var(--s-4) 0;font-size:var(--fs-sm);color:#5a2818}
.callout h4{font-family:var(--ff-serif);margin:0 0 .35em;font-size:var(--fs-md);color:var(--c-accent)}
.callout .mm{display:flex;gap:var(--s-5);flex-wrap:wrap;margin-top:var(--s-3)}
.callout .mm-row{flex:1;min-width:180px}
.callout .mm-row b{display:block;font-family:var(--ff-serif);font-size:1.05rem;color:var(--c-text);margin-bottom:.1em}
.callout .mm-row span{font-size:var(--fs-xs);color:#7a3818}

/* === Multi-axis classification panel (T0-T4, SDG, Sackett, HRCS HC) === */
.panel-grid{display:grid;gap:var(--s-5);margin-top:var(--s-3)}
.panel-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mx-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--rad);padding:var(--s-4)}
.mx-card h3{font-family:var(--ff-serif);font-size:var(--fs-md);margin:0 0 .25em;color:var(--c-text)}
.mx-card .mx-sub{color:var(--c-muted);font-size:var(--fs-xs);margin-bottom:var(--s-3);line-height:1.45}
.mx-card .chart-wrap{height:280px;position:relative}
.mx-card .pill.warn{background:#f7e4e0;color:#9c2415;border:1px solid #e2a99e;padding:.05em .35em;border-radius:3px;vertical-align:middle;margin-left:.3em;letter-spacing:.04em;text-transform:uppercase}
.mx-card .muted{color:var(--c-muted)}
@media(max-width:760px){
  .panel-grid-2{grid-template-columns:1fr}
  .mx-card .chart-wrap{height:240px}
}

/* === Emergent themes panel === */
#etPanel .et-wrap{margin-top:var(--s-3)}
#etPanel .et-wrap .chart-wrap{background:#fff;border:1px solid var(--c-border);border-radius:var(--rad);padding:.6em}


/* === Browse papers (public, wrapped) === */
.bp-controls{display:flex;gap:.6em;flex-wrap:wrap;margin:1em 0}
.bp-in,.bp-sel{font-family:inherit;font-size:.85rem;padding:.45em .6em;border:1px solid var(--c-border);border-radius:var(--r-md);background:#fff;color:var(--c-text)}
.bp-in{min-width:240px;flex:1}
.bp-info{font-size:.82rem;color:var(--c-muted);margin:.4em 0 .8em;font-style:italic}
/* fixed layout + wrapping so long titles do not overflow */
table.dt.bp-table{table-layout:fixed;width:100%}
table.dt.bp-table th,table.dt.bp-table td{white-space:normal;vertical-align:top;word-break:break-word;overflow-wrap:anywhere}
table.dt.bp-table th:nth-child(1),table.dt.bp-table td.bp-title{width:34%}
table.dt.bp-table th:nth-child(2),table.dt.bp-table td.bp-j{width:16%}
table.dt.bp-table th:nth-child(3),table.dt.bp-table td:nth-child(3){width:6%}
table.dt.bp-table th:nth-child(4),table.dt.bp-table td:nth-child(4){width:6%}
table.dt.bp-table th:nth-child(5),table.dt.bp-table td:nth-child(5){width:6%}
table.dt.bp-table th:nth-child(6),table.dt.bp-table td:nth-child(6){width:14%}
table.dt.bp-table th:nth-child(7),table.dt.bp-table td.bp-th{width:18%}
.bp-row{cursor:pointer}
.bp-row:hover{background:#faf7f2}
.bp-title{font-weight:500;line-height:1.35}
.bp-j{color:var(--c-muted);font-size:.8rem;line-height:1.3}
.bp-th{font-size:.8rem;color:#3a5b8c}
.bp-tag{display:inline-block;font-size:.7rem;background:#eef2f6;color:#33526e;padding:.1em .5em;border-radius:3px}
@media(max-width:760px){table.dt.bp-table th:nth-child(2),table.dt.bp-table td.bp-j{display:none}table.dt.bp-table th:nth-child(1),table.dt.bp-table td.bp-title{width:46%}}

/* === Paper detail panel, enhanced === */
.paper-detail .pd-flags{display:flex;flex-wrap:wrap;gap:.4em;margin:.7em 0}
.paper-detail .pd-flag{font-size:.72rem;padding:.25em .65em;border-radius:14px;background:#eef0ee;color:#444;border:1px solid #dfe1de}
.paper-detail .pd-flag.ok{background:#e9f4ec;border-color:#9ecfa9;color:#1c6c2e}
.paper-detail .pd-flag.warn{background:#fbe9e3;border-color:#e9a591;color:#b03a1f}
.paper-detail .pd-stats{display:flex;gap:1.4em;margin:.9em 0 1.1em;padding:.7em 0;border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border)}
.paper-detail .pd-stat{display:flex;flex-direction:column;align-items:flex-start}
.paper-detail .pd-stat-n{font-family:var(--ff-serif);font-size:1.35rem;font-weight:600;color:var(--c-text);line-height:1}
.paper-detail .pd-stat.good .pd-stat-n{color:#1c6c2e}
.paper-detail .pd-stat-l{font-size:.68rem;color:var(--c-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.2em}
.paper-detail .pd-h{font-family:var(--ff-sans);font-size:.74rem;font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:.06em;margin:1.1em 0 .5em}
.paper-detail .pd-h-note{font-weight:400;text-transform:none;letter-spacing:0;color:#b03a1f;font-style:italic}
.paper-detail .pd-themes{display:flex;flex-wrap:wrap;gap:.4em;margin-bottom:.4em}
.paper-detail .pd-theme{font-size:.8rem;background:#fbeceb;color:#9c2415;border:1px solid #e6b3ac;border-radius:14px;padding:.3em .8em;font-weight:500}
.paper-detail .pd-abstract{margin:1.1em 0;padding:1em 1.2em;background:#faf8f3;border-left:3px solid var(--c-accent);border-radius:var(--r-md)}
.paper-detail .pd-abstract p{font-size:.92rem;line-height:1.6;color:#333;font-family:Georgia,serif;margin:0}
.paper-detail .pd-au-c{color:var(--c-accent);font-weight:700}

/* === Eleven-gap framework (overview) === */
#gapFramework{margin-top:var(--s-4)}
.gap-fw-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:var(--s-4);margin-top:var(--s-3)}
.gap-fw-col ol{margin:.4em 0 0 1.1em;padding:0;font-size:.86rem;line-height:1.5;color:#333}
.gap-fw-col li{margin-bottom:.3em}
.gap-fw-h{font-family:var(--ff-serif);font-size:1.02rem;font-weight:600;padding-bottom:.3em;border-bottom:2px solid;color:var(--c-text)}
.gap-fw-h span{display:block;font-family:var(--ff-sans);font-size:.74rem;font-weight:400;color:var(--c-muted);font-style:italic;margin-top:.15em}
.gap-fw-h.agenda{border-color:#3d85c6}
.gap-fw-h.production{border-color:#c0392b}
.gap-fw-h.util{border-color:#1b9e9e}
@media(max-width:820px){.gap-fw-grid{grid-template-columns:1fr}}

/* === Research characteristics view === */
#chHost .panel{margin-bottom:var(--s-4)}
#chHost .panel h2{font-family:var(--ff-serif);font-size:1.2rem;color:var(--c-accent);border-bottom:1px solid var(--c-border);padding-bottom:.25em;margin-bottom:.3em}
.ch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin-top:var(--s-3)}
.ch-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-3)}
.ch-card h3{font-family:var(--ff-serif);font-size:1rem;margin-bottom:.2em;color:var(--c-text)}
.ch-card .ch-sub{font-size:.78rem;color:var(--c-muted);margin-bottom:.5em;line-height:1.4;min-height:2.4em}
.ch-loading{padding:2em;text-align:center;color:var(--c-muted)}
@media(max-width:900px){.ch-grid{grid-template-columns:1fr}}

/* ---- 11-gap legend (top of Gaps view) ---- */
.gap-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3) var(--s-5);margin-top:var(--s-2)}
.gl-item{display:flex;gap:var(--s-3);align-items:flex-start;padding:.55em 0;border-top:1px solid var(--c-border-soft)}
.gl-item:nth-child(1),.gl-item:nth-child(2){border-top:none}
.gl-n{flex:none;width:1.7em;height:1.7em;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;color:#fff}
.gl-agenda .gl-n{background:#2b6cb0}.gl-prod .gl-n{background:var(--c-accent)}.gl-util .gl-n{background:var(--c-teal)}
.gl-item b{font-size:.94rem}
.gl-layer{display:inline-block;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:.1em .5em;border-radius:10px;vertical-align:middle;margin-left:.3em}
.gl-agenda .gl-layer{background:#e1ecf7;color:#2b6cb0}.gl-prod .gl-layer{background:var(--c-accent-soft);color:var(--c-accent)}.gl-util .gl-layer{background:#d6eff2;color:var(--c-teal)}
.gl-d{font-size:.82rem;color:var(--c-muted);line-height:1.4}
@media(max-width:760px){.gap-legend{grid-template-columns:1fr}.gl-item:nth-child(2){border-top:1px solid var(--c-border-soft)}}

/* ---- classification axes cards (Landscape) ---- */
.axes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin:var(--s-4) 0}
.axis-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-4);display:flex;flex-direction:column;box-shadow:var(--shadow-1)}
.axis-card.axis-primary{border-color:var(--c-accent);background:#fff9f7;box-shadow:0 2px 10px rgba(177,61,42,.1)}
.axis-h{display:flex;align-items:center;gap:.4em;margin-bottom:.4em;flex-wrap:wrap}
.axis-h b{font-size:1rem}
.axis-star{color:var(--c-accent);font-size:1.05rem}
.axis-badge{margin-left:auto;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted);background:var(--c-bg);border:1px solid var(--c-border);padding:.12em .5em;border-radius:10px}
.axis-card p{font-size:.85rem;color:#333;line-height:1.5;margin:0 0 .7em}
.axis-link{font-size:.82rem;font-weight:600;margin-top:auto}
@media(max-width:900px){.axes-grid{grid-template-columns:1fr}}

/* ---- research domain (4-pillar) ---- */
.dom-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);margin-top:var(--s-2)}
.dom-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-3);box-shadow:var(--shadow-1)}
.dom-h{display:flex;align-items:baseline;justify-content:space-between;gap:.4em}
.dom-h b{font-size:.95rem;line-height:1.2}
.dom-pct{font-family:var(--ff-serif);font-size:1.35rem;font-weight:700}
.dom-sub{font-size:.72rem;color:var(--c-muted);line-height:1.4;margin-top:.35em}
.dom-subgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4);margin-top:var(--s-2)}
.dom-subh{font-family:var(--ff-serif);font-weight:700;font-size:.9rem;border-bottom:2px solid var(--c-border-soft);padding-bottom:.2em;margin-bottom:.4em}
.dom-subrow{display:grid;grid-template-columns:1fr 70px 42px;align-items:center;gap:.5em;width:100%;background:none;border:none;border-radius:var(--r-sm);padding:.35em .4em;cursor:pointer;text-align:left;font:inherit}
.dom-subrow:hover{background:#faf7f2}
.dsr-lab{font-size:.8rem;color:var(--c-text);line-height:1.25}
.dsr-bar{height:8px;background:#f0eee9;border-radius:3px;overflow:hidden}
.dsr-bar i{display:block;height:100%}
.dsr-n{font-size:.78rem;color:var(--c-muted);text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:900px){.dom-grid,.dom-subgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.dom-grid,.dom-subgrid{grid-template-columns:1fr}}

/* ---- callout box ---- */
.callout{border-radius:var(--r-md);padding:var(--s-4);font-size:.88rem;line-height:1.55;border:1px solid var(--c-border)}
.callout-warn{background:#fdf6ec;border-color:#f0d9b8;color:#5c4326}
.callout-warn b{color:#7a3818}
