@import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,600;6..72,800&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--ink:#16130f;--paper:#faf7f1;--card:#fff;--line:#e2dccf;--accent:#1a3d5c;--accent2:#0e6b4f;--gold:#b07d2b;--red:#b3402e;--dim:#6f6759}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'IBM Plex Sans',sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:880px;margin:0 auto;padding:0 22px}
.mono{font-family:'IBM Plex Mono',monospace}
a{color:var(--accent)}
header.top{border-bottom:2px solid var(--ink);background:var(--paper)}
.top .wrap{display:flex;justify-content:space-between;align-items:center;height:56px}
.brand{font-family:'Newsreader',serif;font-weight:800;font-size:21px;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
.brand b{color:var(--accent2)}
.tnav{display:flex;gap:18px;font-size:14px}.tnav a{color:var(--dim);text-decoration:none}.tnav a:hover{color:var(--ink)}
.crumb{font-size:12.5px;color:var(--dim);padding:14px 0 0;font-family:'IBM Plex Mono',monospace}
.crumb a{color:var(--accent);text-decoration:none}
.hero{padding:20px 0 22px}
.kick{font-family:'IBM Plex Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);margin-bottom:12px}
h1{font-family:'Newsreader',serif;font-weight:800;font-size:clamp(30px,5vw,46px);line-height:1.04;letter-spacing:-.02em;margin-bottom:14px}
.lede{font-size:18px;color:#3b362d;max-width:640px}.lede b{color:var(--accent)}
.meta{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--dim);display:flex;gap:18px;flex-wrap:wrap}.meta b{color:var(--ink)}
.dl{margin:26px 0;background:linear-gradient(135deg,#16302a,#0e3d2e);border-radius:12px;padding:24px 26px;color:#eaf3ee}
.dl h2{font-family:'Newsreader',serif;font-size:22px;font-weight:600;color:#fff;margin-bottom:6px}
.dl p{font-size:13.5px;color:#a9c4b8;margin-bottom:16px}
.dl-btns{display:flex;gap:12px;flex-wrap:wrap}
.dlb{display:flex;align-items:center;gap:11px;background:#fff;color:#16302a;text-decoration:none;padding:12px 18px;border-radius:8px;font-weight:600;font-size:14px;transition:.15s}
.dlb:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.dlb .ic{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;font-family:'IBM Plex Mono',monospace}
.dlb.xlsx .ic{background:#1d6f42}.dlb.csv .ic{background:#5b6470}
.dlb small{display:block;font-weight:400;font-size:11px;color:#6f6759}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:24px 0}
.st{background:var(--card);padding:16px 18px}
.st .v{font-family:'Newsreader',serif;font-weight:800;font-size:24px;color:var(--accent2);line-height:1}
.st .l{font-size:12px;color:var(--dim);margin-top:6px}
h2.sec{font-family:'Newsreader',serif;font-size:24px;font-weight:600;margin:30px 0 4px}
.sec-d{font-size:14px;color:var(--dim);margin-bottom:16px}
.tbox{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.tctl{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);gap:10px}
.srch{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:7px 12px;font-size:13px;font-family:'IBM Plex Mono',monospace;width:160px}
.srch:focus{outline:none;border-color:var(--accent2)}
.tscroll{max-height:520px;overflow-y:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
thead th{position:sticky;top:0;background:var(--ink);color:var(--paper);text-align:left;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:500;cursor:pointer;white-space:nowrap}
thead th.r{text-align:right}
thead th:hover{background:#23201a}
td{padding:10px 14px;border-bottom:1px solid var(--line)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:#f5f0e6}
.rk{font-family:'IBM Plex Mono',monospace;color:var(--dim);width:42px}
.cn{font-weight:600}.cn a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--dim)}
.iso{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--dim)}
.v,.vp,.g,.sh{text-align:right;font-family:'IBM Plex Mono',monospace}
.v{font-weight:600;color:var(--accent)}
.g.pos{color:var(--accent2)}.g.neg{color:var(--red)}
.sh{color:var(--gold)}
.tfoot{padding:10px 16px;font-size:12px;color:var(--dim);border-top:1px solid var(--line);font-family:'IBM Plex Mono',monospace}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px;text-decoration:none;color:var(--ink);transition:.15s}
.gcard:hover{border-color:var(--accent2);transform:translateY(-2px)}
.gcard .gn{font-family:'Newsreader',serif;font-weight:600;font-size:17px}
.gcard .gv{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--accent2);margin-top:4px}
.gcard .gs{font-size:11px;color:var(--dim);margin-top:2px}
.faq{border-bottom:1px solid var(--line)}
.faq summary{font-family:'Newsreader',serif;font-weight:600;font-size:17px;padding:14px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
.faq summary::after{content:'+';color:var(--accent);font-size:20px}
.faq[open] summary::after{content:'\2212'}
.faq p{padding:0 0 16px;color:#3b362d;font-size:15px}
.share-bar{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.sbrow{display:grid;grid-template-columns:130px 1fr 90px;align-items:center;gap:10px;font-size:13px}
.sbname{text-align:right;color:#403a32;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbtrack{background:#ece6da;border-radius:3px;height:22px;overflow:hidden}
.sbfill{height:100%;background:linear-gradient(90deg,var(--accent2),#2d8c6a);border-radius:3px}
.sbval{font-family:'IBM Plex Mono',monospace;color:var(--ink)}
.note{font-size:13.5px;color:var(--dim);line-height:1.7;max-width:640px;margin-top:10px}.note b{color:var(--ink)}
.gdp-chart{margin:16px 0}
.gdp-chart svg{width:100%;max-width:600px;height:auto}
.gdp-chart-val{font-family:'IBM Plex Mono',monospace;font-size:11px;fill:var(--dim)}
.gdp-chart-year{font-family:'IBM Plex Mono',monospace;font-size:12px;fill:var(--dim)}
.gdp-chart-year.active{fill:var(--accent2);font-weight:600}
.year-nav{display:flex;gap:8px;margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:13px}
.year-nav a{color:var(--accent);text-decoration:none;padding:4px 10px;border:1px solid var(--line);border-radius:6px;transition:.15s}
.year-nav a:hover{border-color:var(--accent2);background:var(--card)}
.year-nav-current{padding:4px 10px;border:1px solid var(--accent2);border-radius:6px;background:var(--accent2);color:#fff;font-weight:500}
/* Index hub — snapshot */
.snap{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:24px 0}
.snap-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.snap-h h2{font-family:'Newsreader',serif;font-size:21px;font-weight:600;margin:0}
.snap-h .sl{font-size:12px;color:var(--dim);font-family:'IBM Plex Mono',monospace}
.snap-h .sl b{color:var(--accent2)}
table.top10{width:100%;border-collapse:collapse;font-size:14px}
table.top10 td{padding:8px 6px;border-bottom:1px solid var(--line)}
table.top10 tr:last-child td{border-bottom:none}
table.top10 .rk{font-family:'IBM Plex Mono',monospace;color:var(--dim);width:30px}
table.top10 .cn{font-weight:600}
table.top10 .cn a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--dim)}
table.top10 .cn a:hover{color:var(--accent)}
table.top10 .v{text-align:right;font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--accent)}
table.top10 .sh{text-align:right;font-family:'IBM Plex Mono',monospace;color:var(--gold);width:70px}
.snap-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--dim);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.snap-foot a{font-weight:600;text-decoration:none}
/* Index hub — year table */
.years-tbl{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:8px 0}
table.years{width:100%;border-collapse:collapse;font-size:14px}
table.years thead th{background:var(--ink);color:var(--paper);text-align:left;padding:11px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:500}
table.years td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
table.years tr:last-child td{border-bottom:none}
table.years tr.latest{background:#f5f9f1}
table.years tr.pending{background:#fffdf7}
table.years tr:hover td{background:#f5f0e6}
table.years tr.latest:hover td{background:#eff5e8}
table.years tr.pending:hover td{background:#fff9eb}
table.years .yr{font-family:'Newsreader',serif;font-weight:800;font-size:20px;color:var(--ink);width:70px}
table.years .ynote{color:var(--dim);font-size:13px}
table.years .yact{text-align:right;width:200px}
table.years .yact a{text-decoration:none;font-weight:600;font-size:13px;font-family:'IBM Plex Mono',monospace}
.yb{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:4px;white-space:nowrap}
.yb.latest{background:var(--accent2);color:#fff}
.yb.actual{background:#e8e2d2;color:var(--ink)}
.yb.pending{background:var(--amber-bg);color:var(--amber-ink);border:1px solid var(--amber-line)}
/* Index hub — related cards */
.relcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:8px 0}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;text-decoration:none;color:var(--ink);transition:.15s}
.rcard:hover{border-color:var(--accent2);transform:translateY(-2px)}
.rcard .rt{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.07em}
.rcard .rn{font-family:'Newsreader',serif;font-weight:600;font-size:17px;margin-top:4px}
.rcard .rs{font-size:12.5px;color:var(--dim);margin-top:3px}
/* Index hub — download row */
.dlrow{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0}
.dlrow a{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);padding:9px 14px;border-radius:6px;text-decoration:none;color:var(--ink);font-size:13.5px;font-family:'IBM Plex Mono',monospace}
.dlrow a:hover{border-color:var(--accent2);color:var(--accent2)}
.dlrow .ic{width:24px;height:24px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:700;color:#fff;font-family:'IBM Plex Mono',monospace}
.dlrow .ic.xlsx{background:#1d6f42}.dlrow .ic.csv{background:#5b6470}
/* Notice page — status card */
.status-card{margin-top:28px;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.status-head{background:var(--amber-bg);border-bottom:1px solid var(--amber-line);padding:20px 26px;display:flex;gap:16px;align-items:center}
.status-head .ic{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--amber-line);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Newsreader',serif;font-size:22px}
.status-head .sh{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--amber-ink);font-weight:600;margin-bottom:2px}
.status-head h1{font-family:'Newsreader',serif;font-size:28px;font-weight:700;line-height:1.1;letter-spacing:-.015em;color:var(--ink);margin:0}
.status-body{padding:26px}
.status-body p{font-size:16px;color:#3b362d;line-height:1.65;margin-bottom:14px}
.status-body p:last-child{margin-bottom:0}
.status-body b{color:var(--ink)}
/* Notice page — action cards */
.actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0 8px}
.actcard{display:block;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);transition:.15s}
.actcard:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.06)}
.actcard.primary{background:linear-gradient(135deg,#16302a,#0e3d2e);color:#eaf3ee;border-color:transparent}
.actcard.primary:hover{box-shadow:0 8px 20px rgba(14,61,46,.3)}
.actcard .at{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin-bottom:4px}
.actcard .an{font-family:'Newsreader',serif;font-size:19px;font-weight:600;line-height:1.2}
.actcard .ad{font-size:13px;opacity:.8;margin-top:4px}
.actcard.primary .at{color:#86a397}
.actcard.primary .ad{color:#a9c4b8}
.actcard.secondary .at{color:var(--dim)}
.actcard.secondary .an{color:var(--accent)}
.actcard.secondary .ad{color:var(--dim)}
/* Notice page — other years */
.othery{margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.othery h3{font-family:'Newsreader',serif;font-size:17px;font-weight:600;margin-bottom:10px;color:var(--dim)}
.yrow{display:flex;gap:8px;flex-wrap:wrap}
.yrow a{font-family:'IBM Plex Mono',monospace;font-size:13px;padding:6px 13px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--accent);background:var(--card)}
.yrow a:hover{border-color:var(--accent);background:#fff}
.yrow a.latest{background:var(--accent2);color:#fff;border-color:var(--accent2);font-weight:600}
/* Amber vars */
:root{--amber-bg:#fff7e6;--amber-line:#e8c989;--amber-ink:#7a5418}

footer{border-top:2px solid var(--ink);margin-top:46px;padding:24px 0 50px;font-size:12.5px;color:var(--dim)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--accent2);color:#fff;padding:11px 22px;border-radius:8px;font-size:14px;transition:.3s;z-index:99}
.toast.show{transform:translateX(-50%) translateY(0)}
@media(max-width:680px){.stats{grid-template-columns:1fr}.tnav{display:none}.vp,td.vp,th.vp{display:none}.actions{grid-template-columns:1fr}.status-head{flex-direction:column;align-items:flex-start;gap:12px}table.years .ynote{display:none}table.years .yact{width:auto}}
