:root {
  --chart-ink: #171918;
  --chart-paper: #faf7ef;
  --chart-green: #a8b63f;
  --chart-green-dark: #68711f;
  --chart-red: #c93237;
  --chart-neutral: #8b8d83;
  --chart-grid: #d2ccc1;
  --chart-muted: #6e716d;
  --chart-font: Arial, Helvetica, sans-serif;
}

/* One visual grammar for line, column and horizontal-bar charts. */
.svg-chart,
#country-chart,
.home-hero-chart,
.rank-list,
.macro-grid {
  font-family: var(--chart-font);
}

.svg-chart {
  min-height: 0;
  padding: 12px 14px 0;
}

.svg-chart svg,
#country-chart svg {
  display: block;
  width: 100%;
  height: auto;
  font-family: var(--chart-font);
  overflow: visible;
}

.svg-chart::after,
.chart-source {
  display: block;
  margin: 0;
  padding: 9px 4px 11px;
  border-top: 1px solid var(--chart-grid);
  color: var(--chart-muted);
  font: 9px/1.35 var(--chart-font);
  letter-spacing: .01em;
}

.svg-chart::after {
  content: attr(data-source);
}

.svg-chart[data-source=""]::after {
  display: none;
}

.dark-chart::after {
  border-top-color: #ffffff24;
  color: #b6b6ac;
}

.home-hero-chart .chart-source {
  margin-top: 12px;
  padding-inline: 0;
  border-top-color: #ffffff24;
  color: #b6b6ac;
}

.ranking-panel > .chart-source,
.comparison-panel > .chart-source {
  margin: 0 18px;
}

.chart-grid,
.grid-line {
  stroke: var(--chart-grid);
  stroke-width: 1;
  shape-rendering: crispEdges;
}

.dark-chart .chart-grid {
  stroke: #ffffff20;
}

.chart-axis,
.axis-label,
.chart-axis-title,
.chart-end-label {
  fill: var(--chart-muted);
  font-family: var(--chart-font);
}

.chart-axis,
.axis-label {
  font-size: 10px;
  font-weight: 400;
}

.chart-axis-title {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.chart-end-label {
  font-size: 10px;
  font-weight: 700;
  paint-order: stroke;
  stroke: var(--chart-paper);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.dark-chart .chart-axis,
.dark-chart .chart-axis-title,
.dark-chart .chart-end-label {
  fill: #c2c2b8;
  stroke: transparent;
}

.svg-chart path[fill="none"],
.detail-line {
  stroke-linecap: round;
  stroke-linejoin: round;
}

.svg-chart rect {
  shape-rendering: crispEdges;
}

.chart-year-guide {
  stroke: var(--chart-ink);
  stroke-width: 1;
  stroke-dasharray: 3 3;
}

.dark-chart .chart-year-guide {
  stroke: #ffffffaa;
}

.chart-legend,
.stack-legend {
  min-height: 38px;
  padding: 9px 14px 4px;
  gap: 12px;
  font-family: var(--chart-font);
}

.chart-legend span,
.stack-legend span {
  color: var(--chart-muted);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.chart-legend i,
.stack-legend i {
  width: 13px;
  height: 5px;
  border-radius: 0;
}

.panel-head,
.model-panel > header,
.country-chart-panel .chart-tabs {
  border-top: 4px solid var(--chart-green);
}

.panel-head h3,
.model-panel header h3 {
  font-family: var(--chart-font);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.panel-index,
.model-panel header span {
  border-radius: 0;
}

/* Horizontal bars use the same thickness, track and value alignment. */
.hero-bar,
.rank-row {
  font-family: var(--chart-font);
}

.hero-bar {
  min-height: 34px;
}

.hero-bar > i,
.rank-track,
.macro-grid i {
  height: 8px;
  background: #ffffff13;
}

.rank-track,
.macro-grid i {
  background: #e2ddd3;
}

.home-hero-chart .hero-bar > i b,
.rank-track i,
.macro-grid i b {
  display: block;
  height: 100%;
  background: var(--chart-green);
}

.hero-bar[data-country="CZE"] > i b {
  background: var(--chart-red);
}

.hero-bar strong,
.hero-bar em,
.rank-row strong,
.rank-value {
  font-family: var(--chart-font);
  font-variant-numeric: tabular-nums;
}

.rank-row {
  min-height: 48px;
}

.rank-row.active .rank-track i {
  background: var(--chart-red);
}

.macro-grid article {
  min-height: 165px;
}

.macro-grid strong {
  font-variant-numeric: tabular-nums;
}

/* Country time series: clean line, no decorative area fill. */
.detail-area {
  display: none;
}

.detail-line {
  stroke: var(--chart-green);
  stroke-width: 3;
}

#country-chart circle {
  fill: var(--chart-paper);
  stroke: var(--chart-green);
  stroke-width: 2;
}

#country-chart .chart-source {
  margin: 0 18px;
}

#country-chart .chart-current {
  top: 22px;
  right: 28px;
}

.chart-tooltip {
  font-family: var(--chart-font);
  font-variant-numeric: tabular-nums;
}

.country-chart-panel {
  box-shadow: none;
}

.chart-tabs button.active {
  background: var(--chart-green);
  color: var(--chart-ink);
}

@media (max-width: 720px) {
  .chart-axis,
  .axis-label,
  .chart-end-label {
    font-size: 9px;
  }

  .svg-chart {
    padding-inline: 5px;
  }
}

/* Editorial chart layouts: two analytical panels per row, direct labels, visible sources. */
.country-chart-grid,
.home-macro-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.country-chart-panel {
  min-width: 0;
  padding: 0 18px 10px;
  border: 0;
  border-top: 4px solid var(--chart-ink);
  background: var(--chart-paper);
}

.country-chart-panel:nth-child(even) { border-top-color: var(--chart-red); }
.country-chart-panel h3 { margin: 14px 0 0; font: 600 20px/1.1 Georgia, serif; }
.country-chart-panel > div[id$="chart"] { padding: 10px 0 0; }
.country-chart-panel svg { display:block; width:100%; height:auto; overflow:visible; }
.country-chart-panel .chart-source { margin-top: 2px; padding-inline: 0; }
.country-chart-panel .chart-tabs { margin-inline: -18px; padding-inline: 0; border-top: 0; }
.chart-label { display:flex; justify-content:space-between; padding-top:12px; color:var(--chart-muted); font:700 8px/1 monospace; letter-spacing:.08em; }
.zero-line { stroke:var(--chart-ink); stroke-width:1.2; }
.fiscal-view-control { width:max-content; margin:0 0 18px auto; border:1px solid var(--line); background:var(--chart-paper); }
.country-chart-panel > div[id$="chart"] { position:relative; }
.country-chart-hit { fill:transparent; stroke:transparent; stroke-width:2; cursor:crosshair; outline:none; }
.country-chart-hit:hover,.country-chart-hit:focus,.country-chart-hit.active { fill:var(--chart-paper); stroke:var(--chart-ink); }
.country-chart-tooltip { position:absolute; z-index:4; min-width:112px; padding:8px 10px; pointer-events:none; opacity:0; transform:translate(-50%,calc(-100% - 12px)); border:1px solid #ffffff38; background:#171918f3; color:#fff; box-shadow:5px 5px 0 #17191824; font:10px/1.25 var(--chart-font); transition:opacity .12s ease; }
.country-chart-tooltip.visible { opacity:1; }
.country-chart-tooltip strong,.country-chart-tooltip span,.country-chart-tooltip b { display:block; }
.country-chart-tooltip strong { margin-bottom:3px; color:var(--chart-green); }
.country-chart-tooltip span { max-width:180px; color:#c8c5bd; }
.country-chart-tooltip b { margin-top:3px; font-size:11px; font-variant-numeric:tabular-nums; }

.currency-toggle { display:flex; align-items:center; width:max-content; gap:0; margin-top:14px; border:1px solid var(--line); background:var(--white); }
.currency-toggle > span { padding:0 11px; color:var(--muted); font:700 7px/1 monospace; text-transform:uppercase; }
.currency-toggle button { min-width:62px; padding:9px 12px; border:0; border-left:1px solid var(--line); background:transparent; color:var(--ink); font:700 8px/1 monospace; }
.currency-toggle button.active { background:var(--chart-ink); color:#fff; }
#snapshot small { color:#aaa9a1; font:8px/1.2 monospace; }
.country-kpis { grid-template-columns:repeat(4,1fr); }
.specific-grid a { display:inline-block; margin-top:18px; color:var(--chart-green); font:700 9px/1.2 Arial,sans-serif; }

.ministry-source-card { margin-top:14px; padding:24px; display:flex; justify-content:space-between; align-items:center; gap:24px; border-top:4px solid var(--chart-red); background:var(--chart-ink); color:#fff; text-decoration:none; }
.ministry-source-card span { color:#aaa9a1; font:700 8px/1 monospace; }
.ministry-source-card h3 { margin:10px 0 7px; font:500 27px/1 Georgia,serif; }
.ministry-source-card p { margin:0; color:#aaa9a1; font:9px/1.4 monospace; }
.ministry-source-card strong { color:var(--chart-green); font:700 9px/1.2 Arial,sans-serif; }

.model-grid .model-panel.model-wide { grid-column:auto; }
.budget-header-tools { justify-self:end; display:flex; align-items:center; gap:14px; }
.budget-header-tools .lang-switch { display:flex; }

.home-macro-section { padding:80px 4vw 90px; border-bottom:1px solid var(--line); background:var(--paper); }
.home-macro-panel { min-width:0; padding:18px; border-top:4px solid var(--chart-ink); background:var(--white); }
.home-macro-panel:nth-child(2),.home-macro-panel:nth-child(4){ border-top-color:var(--chart-red); }
.home-macro-panel header { display:flex; justify-content:space-between; gap:12px; }
.home-macro-panel header span { color:var(--muted); font:700 8px/1 monospace; text-transform:uppercase; }
.home-macro-panel h3 { margin:12px 0 4px; font:500 23px/1.05 Georgia,serif; }
.home-macro-panel p { margin:0 0 12px; color:var(--muted); font-size:9px; line-height:1.45; }
.home-macro-chart .macro-row { display:grid; grid-template-columns:38px 1fr 76px; gap:9px; align-items:center; min-height:31px; border-top:1px solid var(--chart-grid); color:var(--chart-ink); font:8px/1 monospace; text-decoration:none; transition:background-color .15s; }
.home-macro-chart .macro-row:hover { background:#a8b63f14; }
.home-macro-chart .macro-row:focus-visible { outline:2px solid var(--chart-red); outline-offset:-2px; }
.home-macro-chart .macro-row i { height:7px; background:#e2ddd3; }
.home-macro-chart .macro-row i b { display:block; height:100%; background:var(--chart-green); }
.home-macro-panel:nth-child(even) .macro-row i b { background:var(--chart-red); }
.home-macro-chart .macro-row strong { text-align:right; font-variant-numeric:tabular-nums; }

@media (max-width: 820px) {
  .country-chart-grid,.home-macro-grid { grid-template-columns:1fr; }
  .country-kpis { grid-template-columns:1fr 1fr; }
  .ministry-source-card { align-items:flex-start; flex-direction:column; }
}

/* Canonical global navigation. */
.site-header.has-global-nav { overflow:visible; }
.site-header .global-nav { display:flex; align-items:stretch; align-self:stretch; gap:0; }
.site-header .global-nav > a,
.site-header .global-nav summary { min-width:102px; height:100%; padding:0 16px; display:flex; align-items:center; justify-content:center; gap:7px; border-left:1px solid var(--line); color:var(--ink); text-decoration:none; list-style:none; cursor:pointer; font:700 10px/1 Arial,sans-serif; letter-spacing:.07em; text-transform:uppercase; }
.site-header .global-nav > a:last-child { border-right:1px solid var(--line); }
.site-header .global-nav > a.capitals-nav-icon { min-width:54px; padding-inline:14px; }
.site-header .capitals-nav-icon svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.site-header .global-nav > a:hover,
.site-header .global-nav > a.active,
.site-header .global-nav details.active summary,
.site-header .global-nav details[open] summary { background:var(--chart-ink); color:#fff; }
.site-header .global-nav summary::-webkit-details-marker { display:none; }
.site-header .country-menu,.site-header .deep-dive-menu { position:relative; align-self:stretch; }
.site-header .country-menu-panel { position:absolute; z-index:30; top:calc(100% + 1px); left:0; width:420px; padding:10px; display:grid; grid-template-columns:1fr 1fr; gap:1px; border:1px solid var(--chart-ink); background:var(--chart-ink); box-shadow:8px 8px 0 #17191822; }
.site-header .country-menu:not([open]) .country-menu-panel { display:none; }
.site-header .country-menu-panel > a { min-height:46px; padding:9px 11px; display:grid; grid-template-columns:30px 34px 1fr; align-items:center; background:var(--chart-paper); color:var(--chart-ink); text-decoration:none; }
.site-header .country-menu-panel > a img { width:22px; height:16px; object-fit:cover; border:1px solid #17191828; box-shadow:2px 2px 0 #17191814; }
.site-header .country-menu-panel > a:hover { background:#f0efc9; }
.site-header .country-menu-panel > a b { font:700 8px/1 monospace; color:var(--chart-red); }
.site-header .country-menu-panel > a span { font:600 11px/1.2 Arial,sans-serif; }
.site-header .country-menu-panel > a.capital-menu-feature { grid-column:1/-1; min-height:52px; grid-template-columns:40px 1fr; background:var(--chart-green); }
.site-header .country-menu-panel > a.capital-menu-feature:hover { background:#f0efc9; }
.site-header .country-menu-panel > a.capital-menu-feature b { color:var(--chart-ink); }
.site-header .country-menu-head { grid-column:1/-1; min-height:42px; padding:6px 10px; display:flex; align-items:center; justify-content:space-between; background:var(--chart-ink); color:#fff; }
.site-header .country-menu-head span { color:#aaa9a1; font:700 8px/1 monospace; text-transform:uppercase; }
.site-header .country-menu-head a { color:var(--chart-green); font:700 9px/1 Arial,sans-serif; text-decoration:none; }
.site-header .deep-dive-menu-panel { position:absolute; z-index:30; top:calc(100% + 1px); left:0; width:370px; padding:10px; display:grid; gap:1px; border:1px solid var(--chart-ink); background:var(--chart-ink); box-shadow:8px 8px 0 #17191822; }
.site-header .deep-dive-menu:not([open]) .deep-dive-menu-panel { display:none; }
.site-header .deep-dive-menu-panel>a { min-height:64px; padding:11px 13px; display:grid; grid-template-columns:38px 1fr; align-items:center; background:var(--chart-paper); color:var(--chart-ink); text-decoration:none; }
.site-header .deep-dive-menu-panel>a:hover { background:#f0efc9; }
.site-header .deep-dive-menu-panel>a>b { color:var(--chart-red); font:700 9px/1 monospace; }
.site-header .deep-dive-menu-panel>a span,.site-header .deep-dive-menu-panel>a strong,.site-header .deep-dive-menu-panel>a small { display:block; }
.site-header .deep-dive-menu-panel>a strong { font:600 12px/1.2 Arial,sans-serif; }
.site-header .deep-dive-menu-panel>a small { margin-top:5px; color:#777970; font:8px/1.3 monospace; }
.site-header .deep-dive-menu-panel>a.coming { background:#e8e4da; }

/* Czech budget as an advanced workspace rather than a second homepage. */
.budget-workspace-page .budget-hero-compact { min-height:310px; padding:38px 4vw 34px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr); grid-template-rows:auto auto auto auto; column-gap:4vw; align-items:start; background:var(--paper); }
.budget-workspace-page .budget-hero-compact::after { display:none; }
.budget-workspace-page .budget-hero-compact > :not(.hero-budget-card) { grid-column:1; }
.budget-workspace-page .budget-hero-compact .eyebrow { margin-top:4px; }
.budget-workspace-page .budget-hero-compact h1 { margin:18px 0 12px; font-size:clamp(48px,6vw,82px); line-height:.92; }
.budget-workspace-page .budget-hero-compact .hero-copy { max-width:720px; margin:0; font-size:13px; line-height:1.5; }
.budget-workspace-page .budget-hero-compact .hero-actions { margin-top:18px; }
.budget-workspace-page .budget-hero-compact .hero-budget-card { position:static; grid-column:2; grid-row:1/5; width:auto; min-height:235px; padding:20px 22px; box-shadow:none; }
.budget-workspace-page .budget-hero-compact .hero-budget-card > p,
.budget-workspace-page .budget-hero-compact .hero-budget-card > small { display:none; }
.budget-workspace-page .budget-hero-compact .hero-flow { padding:12px 0 8px; }
.budget-workspace-page .budget-hero-compact .hero-deficit { padding:13px 0 0; }
.budget-workspace-page .budget-hero-compact .hero-flow strong { font-size:20px; }
.budget-workspace-page .budget-hero-compact .hero-deficit strong { font-size:28px; }

.budget-workspace { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:start; }
.budget-workspace-content { min-width:0; }
.budget-side-nav { position:sticky; z-index:6; top:72px; height:calc(100vh - 72px); align-self:start; overflow:auto; background:var(--chart-ink); color:#fff; }
.budget-side-label { min-height:78px; padding:16px 18px; display:flex; flex-direction:column; justify-content:center; gap:7px; border-bottom:1px solid #ffffff26; }
.budget-side-label span { color:var(--chart-green); font:700 9px/1 monospace; letter-spacing:.12em; }
.budget-side-label b { font:500 22px/1 Georgia,serif; }
.budget-side-nav nav { display:block; }
.budget-side-nav nav a { min-height:72px; padding:12px 14px; display:grid; grid-template-columns:28px 1fr; grid-template-rows:1fr 1fr; align-items:end; border-bottom:1px solid #ffffff1d; color:#fff; text-decoration:none; }
.budget-side-nav nav a > span { grid-row:1/-1; align-self:center; color:#777d78; font:700 8px/1 monospace; }
.budget-side-nav nav a > b { font:700 10px/1.2 Arial,sans-serif; text-transform:uppercase; letter-spacing:.055em; }
.budget-side-nav nav a > small { align-self:start; color:#92968f; font:8px/1.2 monospace; }
.budget-side-nav nav a:hover,
.budget-side-nav nav a.active { background:var(--chart-green); color:var(--chart-ink); }
.budget-side-nav nav a.active > span,
.budget-side-nav nav a.active > small { color:#505626; }
.budget-workspace-content > section { scroll-margin-top:84px; }
.budget-hero-compact { scroll-margin-top:84px; }
.budget-compact-metrics article { min-height:118px; padding:20px 2vw; }
.budget-compact-metrics strong { font-size:clamp(27px,3vw,42px); }

@media (max-width: 1080px) {
  .site-header .global-nav > a,.site-header .global-nav summary { min-width:88px; padding-inline:11px; font-size:9px; }
  .budget-workspace { grid-template-columns:172px minmax(0,1fr); }
  .budget-side-nav nav a { padding-inline:10px; }
}

@media (max-width: 780px) {
  .site-header.has-global-nav { height:auto; min-height:70px; padding:8px 4vw 0; grid-template-columns:1fr auto; grid-template-rows:54px 42px; }
  .site-header.has-global-nav .global-nav { grid-column:1/-1; grid-row:2; width:calc(100% + 8vw); margin-left:-4vw; overflow-x:auto; overflow-y:visible; justify-content:flex-start; border-top:1px solid var(--line); scrollbar-width:none; }
  .site-header.has-global-nav .global-nav::-webkit-scrollbar { display:none; }
  .site-header.has-global-nav .global-nav > a,.site-header.has-global-nav .global-nav summary { min-width:max-content; flex:0 0 auto; padding-inline:14px; border-left:0; border-right:1px solid var(--line); font-size:8px; }
  .site-header .country-menu,.site-header .deep-dive-menu { flex:0 0 auto; }
  .site-header .country-menu summary,.site-header .deep-dive-menu summary { width:100%; }
  .site-header .country-menu-panel,.site-header .deep-dive-menu-panel { position:fixed; top:112px; left:4vw; right:4vw; width:auto; }
  .budget-workspace-page .budget-hero-compact { min-height:0; padding:28px 4vw; grid-template-columns:1fr; }
  .budget-workspace-page .budget-hero-compact .hero-budget-card { grid-column:1; grid-row:auto; margin-top:24px; min-height:220px; }
  .budget-workspace { display:block; }
  .budget-side-nav { top:112px; height:auto; overflow-x:auto; overflow-y:hidden; }
  .budget-side-label { display:none; }
  .budget-side-nav nav { width:max-content; display:flex; }
  .budget-side-nav nav a { width:138px; min-height:58px; grid-template-columns:24px 1fr; padding:9px 10px; border-right:1px solid #ffffff1d; }
  .budget-workspace-content > section { scroll-margin-top:180px; }
  .budget-hero-compact { scroll-margin-top:180px; }
}
