/* ADAFP Think Tank - compiled stylesheet. Self-contained: no Tailwind CDN,
   no third-party font host. Fonts are served from /assets/fonts. */
:root{
  /* --- palette --- */
  --ink:#0F2A22;          /* deep green-black: body text, ADAFP emerald lineage */
  --ink-soft:#40544C;
  --ink-faint:#7C8C85;
  --paper:#FFFFFF;
  --paper-2:#F4F6F4;      /* cool off-white, not cream */
  --rule:#DCE2DE;
  --gold:#B07D22;         /* ADAFP gold, deepened to pass AA on white */
  --gold-soft:#F5EBD8;

  /* --- research cluster accents --- */
  --c-gov:#B07D22;        /* Democratic governance */
  --c-eco:#166F6A;        /* Economic & corporate governance */
  --c-soc:#9B3A2F;        /* Security, social justice & peace */
  --c-cli:#2E3F73;        /* Climate change */

  --display:'Fraunces',Georgia,serif;
  --body:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --ui:'Inter',system-ui,sans-serif;

  --measure:68ch;
  --pad:clamp(1.1rem,4vw,3.5rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.62;
  font-variation-settings:"opsz" 14;
}
html[dir="rtl"] body{font-family:'Noto Naskh Arabic',var(--body)}
a{color:inherit}
img{max-width:100%}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2.5px solid var(--gold);outline-offset:2px;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- shared ---------- */
.wrap{max-width:1180px;margin:0 auto;padding-inline:var(--pad)}
.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 .5rem;
}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;margin:0;
  font-variation-settings:"opsz" 60;letter-spacing:-.015em}
.rule{height:1px;background:var(--rule);border:0;margin:0}

/* ---------- public header ---------- */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper)}
.masthead .wrap{display:flex;align-items:center;gap:1.4rem;min-height:74px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:.6rem;text-decoration:none;margin-inline-end:auto}
.brand .mark{
  font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.18em;
  color:#fff;background:var(--ink);padding:.34rem .5rem;border-radius:2px;
}
.brand .name{font-family:var(--display);font-size:1.12rem;font-weight:600}
.brand .name span{color:var(--ink-faint);font-weight:400}
nav.main{display:flex;gap:1.35rem;flex-wrap:wrap}
nav.main a{
  font-family:var(--ui);font-size:14px;text-decoration:none;color:var(--ink-soft);
  padding:.35rem 0;border-bottom:2px solid transparent;
}
nav.main a:hover{color:var(--ink);border-bottom-color:var(--gold)}
nav.main a[aria-current]{color:var(--ink);border-bottom-color:var(--gold);font-weight:500}
.lang{display:flex;gap:.15rem}
.lang button{
  background:none;border:0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  color:var(--ink-faint);padding:.3rem .38rem;border-radius:2px;text-transform:uppercase;
}
.lang button[aria-pressed="true"]{color:var(--ink);background:var(--paper-2);font-weight:600}

/* ---------- hero: the latest publication IS the homepage ---------- */
.lead{border-bottom:1px solid var(--rule);background:
  linear-gradient(180deg,var(--paper-2) 0%,var(--paper) 100%)}
.lead .wrap{padding-block:clamp(2rem,5vw,3.6rem)}
.lead-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.2rem)}
.lead h1{font-size:clamp(1.85rem,4.4vw,3.05rem);margin:.55rem 0 .9rem;max-width:19ch}
.lead .dek{font-size:1.06rem;color:var(--ink-soft);max-width:52ch;margin:0 0 1.4rem}
.byline{font-family:var(--mono);font-size:12px;color:var(--ink-faint);margin:0 0 1.5rem}
.byline a{color:var(--ink);text-decoration-color:var(--rule);text-underline-offset:3px}
.cta-row{display:flex;gap:.6rem;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;
  font-family:var(--ui);font-size:14px;font-weight:500;
  padding:.62rem 1.05rem;border-radius:2px;border:1px solid var(--ink);
}
.btn-solid{background:var(--ink);color:#fff}
.btn-solid:hover{background:#173C31}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--paper-2)}

/* ---------- the signature: provenance record ---------- */
.record{
  font-family:var(--mono);font-size:11.5px;line-height:1.75;
  border:1px solid var(--rule);border-top:3px solid var(--ink);
  background:var(--paper);padding:1rem 1.1rem;border-radius:2px;
}
.record h4{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 .75rem;font-weight:600;
}
.record dl{display:grid;grid-template-columns:auto 1fr;gap:.34rem .9rem;margin:0}
.record dt{color:var(--ink-faint);white-space:nowrap}
.record dd{margin:0;color:var(--ink)}
.tick{color:#1E6B4F;font-weight:600}
.record .doi{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule)}
.seal{
  margin-top:.9rem;padding-top:.8rem;border-top:1px dashed var(--rule);
  display:flex;gap:.55rem;align-items:flex-start;color:var(--ink-soft);
}
.seal svg{flex:none;margin-top:2px}

/* ---------- clusters ---------- */
.clusters{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border-block:1px solid var(--rule)}
.cluster{background:var(--paper);padding:1.5rem 1.3rem;text-decoration:none;display:block;
  border-top:3px solid var(--k);transition:background .15s}
.cluster:hover{background:var(--paper-2)}
.cluster .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--k);font-weight:600}
.cluster h3{font-size:1.16rem;margin:.5rem 0 .45rem}
.cluster p{margin:0;font-size:.87rem;color:var(--ink-soft);line-height:1.5}
.cluster .cnt{font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin-top:.85rem;display:block}

/* ---------- publication list ---------- */
.section{padding-block:clamp(2.2rem,5vw,3.6rem)}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;margin-bottom:1.5rem}
.sec-head h2{font-size:clamp(1.4rem,2.6vw,1.85rem)}
.sec-head a{font-family:var(--ui);font-size:13.5px;color:var(--ink-soft);text-decoration:none;
  border-bottom:1px solid var(--gold);padding-bottom:2px}
.pubs{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.pub{border-bottom:1px solid var(--rule)}
.pub a{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.15rem;align-items:start;
  padding:1.15rem 0 1.15rem 1.05rem;text-decoration:none;position:relative;
}
.pub a::before{content:"";position:absolute;inset-inline-start:0;top:1.15rem;bottom:1.15rem;
  width:3px;background:var(--k);border-radius:2px}
.pub a:hover{background:var(--paper-2)}
.pub .date{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);white-space:nowrap;padding-top:.28rem}
.pub h3{font-size:1.13rem;margin:0 0 .3rem;font-variation-settings:"opsz" 30}
.pub .meta{font-family:var(--mono);font-size:11px;color:var(--ink-faint)}
.pub .meta em{font-style:normal;color:var(--k);font-weight:500}
.langs{display:flex;gap:.25rem;padding-top:.3rem}
.langs span{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--rule);color:var(--ink-faint);padding:.15rem .3rem;border-radius:2px;
}
.langs span.on{border-color:var(--ink);color:var(--ink);font-weight:500}

/* ---------- publication class badge ---------- */
.klass{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--gold);color:#7A5510;background:var(--gold-soft);
  padding:.18rem .45rem;border-radius:2px;font-weight:600;
}
.klass.tt{border-color:var(--rule);background:var(--paper-2);color:var(--ink-soft)}
.notice{
  border:1px solid var(--gold);background:var(--gold-soft);border-radius:2px;
  padding:.85rem 1rem;font-size:13.5px;line-height:1.55;color:#5E4210;margin:0 0 1.4rem;
}
.notice b{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;margin-bottom:.3rem}

/* ---------- filters ---------- */
.filters{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.4rem}
.chip{
  font-family:var(--mono);font-size:11px;letter-spacing:.05em;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);
  padding:.34rem .65rem;border-radius:99px;
}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* ---------- article page ---------- */
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(1.6rem,4vw,3.2rem);
  padding-block:clamp(1.8rem,4vw,3rem);align-items:start}
.article .body{max-width:var(--measure)}
.article .body h1{font-size:clamp(1.7rem,3.6vw,2.5rem);margin:.5rem 0 1rem}
.article .body p{margin:0 0 1.1rem}
.article .body h2{font-size:1.3rem;margin:2rem 0 .7rem}
.abstract{font-size:1.06rem;color:var(--ink-soft);border-inline-start:3px solid var(--gold);
  padding-inline-start:1.1rem;margin:0 0 1.8rem}
aside.rail{position:sticky;top:96px;display:grid;gap:1rem}
.cite{border:1px solid var(--rule);border-radius:2px;padding:1rem 1.1rem;background:var(--paper-2)}
.cite h4{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 .6rem;font-weight:600}
.cite p{font-family:var(--mono);font-size:11.5px;line-height:1.65;margin:0 0 .7rem;color:var(--ink)}
.copy{font-family:var(--mono);font-size:11px;background:var(--ink);color:#fff;border:0;
  padding:.4rem .7rem;border-radius:2px}
.copy.done{background:#1E6B4F}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule)}
.person{background:var(--paper);padding:1.3rem}
.person .av{
  width:46px;height:46px;border-radius:50%;background:var(--paper-2);border:1px solid var(--rule);
  display:grid;place-items:center;font-family:var(--display);font-size:1rem;color:var(--ink-soft);
  margin-bottom:.75rem;
}
.person h3{font-size:1.02rem;margin:0 0 .2rem}
.person .role{font-family:var(--mono);font-size:11px;color:var(--ink-faint);line-height:1.5}

/* ---------- provisions ---------- */
.provisions{counter-reset:p;max-width:var(--measure)}
.provision{counter-increment:p;display:grid;grid-template-columns:auto 1fr;gap:1rem;
  padding:1.1rem 0;border-bottom:1px solid var(--rule)}
.provision::before{
  content:counter(p,decimal-leading-zero);font-family:var(--mono);font-size:12px;
  color:var(--gold);font-weight:600;padding-top:.28rem;
}
.provision h3{font-size:1.05rem;margin:0 0 .3rem}
.provision p{margin:0;font-size:.95rem;color:var(--ink-soft)}

/* ---------- footer ---------- */
footer.site{background:var(--ink);color:#C8D6CE;margin-top:3rem;padding-block:2.6rem 2rem}
footer.site .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2rem}
footer.site h4{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);margin:0 0 .8rem;font-weight:600}
footer.site a{display:block;color:#C8D6CE;text-decoration:none;font-size:.9rem;padding:.18rem 0}
footer.site a:hover{color:#fff}
footer.site .fine{grid-column:1/-1;border-top:1px solid #2A4238;padding-top:1.2rem;
  font-family:var(--mono);font-size:11px;color:#8CA398;line-height:1.7}

/* ---------- ADMIN ---------- */
#admin{font-family:var(--ui);font-size:14px;color:#16221E}
.adm{display:grid;grid-template-columns:236px 1fr;min-height:calc(100vh - 34px)}
.adm-side{background:var(--ink);color:#B9CCC2;padding:1.2rem 0}
.adm-side .who{padding:0 1.2rem 1.1rem;border-bottom:1px solid #234337;margin-bottom:.9rem}
.adm-side .who b{display:block;color:#fff;font-family:var(--display);font-size:1.02rem}
.adm-side .who span{font-family:var(--mono);font-size:10.5px;color:#7E978B;letter-spacing:.05em}
.adm-side a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;
  padding:.52rem 1.2rem;color:#B9CCC2;text-decoration:none;font-size:13.5px;border-inline-start:3px solid transparent}
.adm-side a:hover{background:#16382C;color:#fff}
.adm-side a[aria-current]{background:#16382C;color:#fff;border-inline-start-color:var(--gold);font-weight:500}
.adm-side .grp{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:#5F7A6E;padding:1.1rem 1.2rem .4rem}
.pill{font-family:var(--mono);font-size:10px;background:#2A4A3C;color:#CDE3D7;padding:.1rem .38rem;border-radius:99px}
.pill.warn{background:var(--gold);color:#1A1206;font-weight:600}
.adm-main{background:#F7F9F7;padding:1.5rem clamp(1rem,3vw,2.2rem)}
.adm-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.adm-bar h1{font-size:1.5rem}
.adm-bar .sp{flex:1}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;margin-bottom:1.5rem}
.stat{background:#fff;border:1px solid #E1E7E3;border-radius:3px;padding:1rem}
.stat b{display:block;font-family:var(--display);font-size:1.85rem;line-height:1;margin-bottom:.3rem}
.stat span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#6E8078}
.card{background:#fff;border:1px solid #E1E7E3;border-radius:3px;margin-bottom:1.3rem}
.card > h2{font-size:1rem;font-family:var(--ui);font-weight:600;padding:.85rem 1.1rem;
  border-bottom:1px solid #E1E7E3;display:flex;align-items:center;gap:.6rem}
.card .in{padding:1.1rem}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:start;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:#6E8078;font-weight:600;padding:.6rem 1.1rem;border-bottom:1px solid #E1E7E3;background:#FBFCFB}
td{padding:.72rem 1.1rem;border-bottom:1px solid #EDF1EE;vertical-align:top}
tr:last-child td{border-bottom:0}
.tag{font-family:var(--mono);font-size:10px;padding:.14rem .42rem;border-radius:2px;white-space:nowrap}
.t-live{background:#DCF0E5;color:#14563C}
.t-draft{background:#EFEFEC;color:#5C5C55}
.t-review{background:var(--gold-soft);color:#7A5510}
.miss{font-family:var(--mono);font-size:10px;color:#B4483A}
.lbl{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:#6E8078;margin-bottom:.35rem}
input[type=text],input[type=date],select,textarea{
  width:100%;font-family:var(--ui);font-size:13.5px;color:#16221E;background:#fff;
  border:1px solid #D3DBD6;border-radius:3px;padding:.5rem .6rem;
}
textarea{min-height:96px;resize:vertical;font-family:var(--body);font-size:15px;line-height:1.6}
.field{margin-bottom:1rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.tabs{display:flex;gap:.25rem;border-bottom:1px solid #E1E7E3;padding:0 1.1rem;background:#FBFCFB}
.tabs button{
  background:none;border:0;border-bottom:2px solid transparent;padding:.65rem .8rem;
  font-size:13px;color:#6E8078;display:flex;align-items:center;gap:.4rem;
}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold);font-weight:600}
.dot{width:6px;height:6px;border-radius:50%;background:#C9D3CD}
.dot.ok{background:#2E9367}
.dot.no{background:#D9A441}
.btn-a{font-family:var(--ui);font-size:13px;font-weight:500;border-radius:3px;padding:.5rem .85rem;border:1px solid transparent}
.b-pri{background:var(--ink);color:#fff}
.b-sec{background:#fff;border-color:#D3DBD6;color:#16221E}
.b-gold{background:var(--gold);color:#1A1206;font-weight:600}
.note{font-size:12px;color:#6E8078;margin:.4rem 0 0;line-height:1.5}
fieldset{border:1px solid #E1E7E3;border-radius:3px;padding:1rem;margin:0 0 1rem}
legend{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#6E8078;padding:0 .4rem}
.check{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.55rem;font-size:13.5px}
.queue{display:flex;align-items:center;gap:.7rem;padding:.6rem 0;border-bottom:1px solid #EDF1EE;font-size:13.5px}
.queue:last-child{border-bottom:0}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .lead-grid{grid-template-columns:1fr}
  .clusters{grid-template-columns:1fr 1fr}
  .article{grid-template-columns:1fr}
  aside.rail{position:static}
  .adm{grid-template-columns:1fr}
  .adm-side{display:flex;overflow-x:auto;padding:.5rem;gap:.3rem}
  .adm-side .who,.adm-side .grp{display:none}
  .adm-side a{white-space:nowrap;border-inline-start:0;border-bottom:3px solid transparent;border-radius:3px}
  .adm-side a[aria-current]{border-inline-start:0;border-bottom-color:var(--gold)}
}
@media (max-width:640px){
  .clusters{grid-template-columns:1fr}
  .pub a{grid-template-columns:1fr;gap:.5rem}
  .pub .date{padding-top:0}
  .two{grid-template-columns:1fr}
  nav.main{gap:.9rem;font-size:13px}
}
[hidden]{display:none!important}
