:root {
  color-scheme: dark;
  --bg:#090c12; --panel:rgba(18,24,36,.91); --panel-dark:rgba(8,12,19,.68);
  --text:#e9edf6; --muted:#9aa6b9; --border:rgba(255,255,255,.09); --grid:rgba(255,255,255,.08);
  --accent:#57c3ff; --private:#57c3ff; --government:#f1a65a; --foreign:#c18cff;
  --household:#64d9b1; --business:#ef7aa9; --positive:#64d9b1; --negative:#ff7f96; --shadow:rgba(0,0,0,.42);
}
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; overflow-x:hidden; background:radial-gradient(circle at 45% -10%,#1d3049 0,#0d111a 43%,var(--bg) 75%); color:var(--text); font-family:"Space Grotesk",sans-serif; }
button { font:inherit; cursor:pointer; }
.glow { position:fixed; pointer-events:none; border-radius:50%; filter:blur(90px); opacity:.13; }
.glow-one { width:520px; height:520px; top:-180px; right:-120px; background:#3b9eff; }
.glow-two { width:430px; height:430px; bottom:2%; left:-190px; background:#c18cff; }
.shell { position:relative; z-index:1; width:min(1320px,94vw); margin:0 auto; padding:38px 0 64px; }
.hero { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:22px; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; color:var(--muted); font-size:.78rem; }
.breadcrumb a { color:var(--accent); text-decoration:none; }
.eyebrow,.section-kicker { margin:0 0 8px; color:var(--accent); font-size:.68rem; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(2.5rem,6vw,5rem); line-height:.95; letter-spacing:-.055em; }
h2,p { margin-top:0; }
.subhead { max-width:760px; margin:16px 0 0; color:var(--muted); font-size:1.03rem; line-height:1.55; }
.meta { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.meta-card { min-width:160px; padding:13px 16px; border:1px solid var(--border); border-radius:14px; background:rgba(10,14,22,.68); box-shadow:0 12px 30px var(--shadow); }
.meta-card span { display:block; margin-bottom:5px; color:var(--muted); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; }
.meta-card strong { font-size:.84rem; }
.identity-panel,.snapshot-panel,.chart-panel,.private-panel,.method-panel { margin-top:18px; padding:24px; border:1px solid var(--border); border-radius:24px; background:linear-gradient(145deg,rgba(25,33,49,.94),rgba(10,14,22,.91)); box-shadow:0 20px 55px var(--shadow); }
.identity-panel { display:grid; grid-template-columns:minmax(300px,1fr) auto; gap:28px; align-items:center; border-color:rgba(87,195,255,.24); }
.identity-panel h2,.section-heading h2,.method-panel h2 { margin-bottom:0; font-size:clamp(1.35rem,2.6vw,2rem); }
.identity-panel p:last-child,.section-heading p:not(.section-kicker),.method-panel p:last-child { max-width:720px; margin:9px 0 0; color:var(--muted); font-size:.82rem; line-height:1.6; }
.identity-equation { display:flex; align-items:center; gap:10px; padding:15px 18px; border:1px solid var(--border); border-radius:15px; background:var(--panel-dark); font-size:.72rem; white-space:nowrap; }
.identity-equation span,.legend span { display:flex; align-items:center; gap:7px; }
.identity-equation b { color:var(--muted); }
.private-dot,.government-dot,.foreign-dot,.household-dot,.business-dot { display:inline-block; width:9px; height:9px; border-radius:50%; }
.private-dot { background:var(--private); }.government-dot { background:var(--government); }.foreign-dot { background:var(--foreign); }.household-dot { background:var(--household); }.business-dot { background:var(--business); }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:20px; }
.section-heading.compact { align-items:center; }
.section-heading>p { max-width:540px; margin:0; text-align:right; }
.snapshot-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.snapshot-card { padding:17px; border:1px solid var(--border); border-radius:16px; background:var(--panel-dark); }
.snapshot-card span,.snapshot-card small { display:block; color:var(--muted); font-size:.66rem; }
.snapshot-card strong { display:block; margin:9px 0 5px; font-size:1.32rem; }
.snapshot-card.positive strong { color:var(--positive); }.snapshot-card.negative strong { color:var(--negative); }
.balance-read { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.read-card { padding:14px 16px; border-left:3px solid var(--accent); border-radius:9px; background:rgba(87,195,255,.055); }
.read-card strong,.read-card span { display:block; }
.read-card strong { margin-bottom:5px; font-size:.76rem; }.read-card span { color:var(--muted); font-size:.68rem; line-height:1.45; }
.range-toggle { display:flex; gap:4px; padding:4px; border:1px solid var(--border); border-radius:13px; background:rgba(8,12,19,.75); }
.range-toggle button { min-width:58px; padding:9px 14px; border:0; border-radius:9px; color:var(--muted); background:transparent; font-weight:700; }
.range-toggle button.active { color:var(--text); background:rgba(87,195,255,.18); }
.legend { display:flex; flex-wrap:wrap; gap:12px 18px; margin:0 0 14px; color:var(--muted); font-size:.68rem; }
.chart-scroll { overflow-x:auto; border:1px solid var(--border); border-radius:18px; background:rgba(7,10,17,.65); scrollbar-color:rgba(87,195,255,.42) transparent; }
.chart-scroll svg { display:block; width:100%; min-width:880px; height:auto; }
.chart-grid { stroke:var(--grid); stroke-width:1; }.chart-zero { stroke:rgba(255,255,255,.43); stroke-width:1.5; }
.axis-text { fill:#8f9aae; font-size:12px; }.date-text { fill:#8f9aae; font-size:11px; }
.quarter-hit { fill:transparent; cursor:crosshair; }.quarter-hit:hover { fill:rgba(255,255,255,.025); }
.selected-line { stroke:rgba(255,255,255,.72); stroke-width:1; stroke-dasharray:4 4; pointer-events:none; }
.selected-quarter { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-top:12px; }
.quarter-stat { padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--panel-dark); }
.quarter-stat span { display:block; min-height:28px; color:var(--muted); font-size:.6rem; }.quarter-stat strong { display:block; margin-top:6px; font-size:.86rem; }
.quarter-stat.positive strong { color:var(--positive); }.quarter-stat.negative strong { color:var(--negative); }
.private-chart-scroll svg { min-width:780px; }
.method-panel { display:grid; grid-template-columns:1.2fr .8fr; gap:24px; align-items:center; }
.source-links { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.source-links a { padding:11px 13px; border:1px solid rgba(87,195,255,.2); border-radius:11px; color:var(--accent); background:rgba(87,195,255,.05); font-size:.68rem; text-decoration:none; }
footer { display:flex; align-items:center; gap:12px; margin-top:22px; color:var(--muted); font-size:.72rem; }
footer button { padding:10px 17px; border:0; border-radius:999px; color:#07111b; background:var(--accent); font-weight:700; }
footer button.secondary { border:1px solid var(--border); color:var(--text); background:rgba(255,255,255,.05); }
footer button:disabled { opacity:.55; }
@media (max-width:900px) { .identity-panel,.method-panel { grid-template-columns:1fr; }.snapshot-grid { grid-template-columns:repeat(2,1fr); }.balance-read { grid-template-columns:1fr; }.selected-quarter { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px) {
  .shell { width:min(94vw,620px); padding-top:24px; }.hero,.section-heading,.section-heading.compact { align-items:flex-start; flex-direction:column; }.meta { width:100%; justify-content:flex-start; }.meta-card { flex:1; min-width:135px; }
  .identity-panel,.snapshot-panel,.chart-panel,.private-panel,.method-panel { padding:17px; border-radius:19px; }.identity-equation { width:100%; flex-wrap:wrap; white-space:normal; }.section-heading>p { text-align:left; }
  .range-toggle { width:100%; }.range-toggle button { flex:1; min-width:0; padding:9px 7px; }.snapshot-grid { grid-template-columns:1fr 1fr; }.selected-quarter { grid-template-columns:1fr 1fr; }.source-links { grid-template-columns:1fr; } footer { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
