/* Shared newspaper components. Loaded after page-specific layout styles.
   Brand colors/fonts remain in each page's config-transformable :root. */
:root {
  --np-width:1120px;
  --np-gutter:clamp(18px,4vw,48px);
  --np-radius:16px;
  --np-card-padding:22px;
  --np-section-gap:48px;
  --np-shadow:0 10px 28px -22px rgba(111,11,18,.35);
}
.header-main {
  height:52px;padding-left:max(var(--np-gutter),calc((100vw - var(--np-width))/2));
  padding-right:max(var(--np-gutter),calc((100vw - var(--np-width))/2));
  gap:12px;max-width:none;display:flex;justify-content:space-between;align-items:center;
}
.header-main .brand {
  font:800 18px var(--serif);gap:9px;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;
}
.identity-inner {max-width:var(--np-width);padding:18px var(--np-gutter) 16px;gap:14px 28px;}
.identity-zone .page-title {
  display:block;font:800 clamp(27px,3vw,38px)/1.02 var(--serif);
  margin:0;text-align:left;letter-spacing:-.4px;
}
.switcher {flex-shrink:0;}
.switcher .switcher-button {
  min-height:44px;max-width:none;padding:0 14px;gap:9px;
  border:1px solid #d5c4ae;border-radius:11px;
  background:linear-gradient(180deg,#fffdf9,#fbf4ea);
  color:var(--ink);font:600 13px var(--sans);box-shadow:0 1px 2px rgba(31,38,41,.08);
}
.switcher-menu {border:1px solid var(--line);border-radius:14px;background:var(--card);}
.switcher-menu a {min-height:44px;font:600 13px var(--sans);}
.header-meta .source-pill {
  padding:2px 9px;border-radius:999px;font:700 11.5px/1.55 var(--sans);
}
.source-pill.pending {background:var(--amber-bg);color:var(--amber);}
.source-pill.blocked {background:var(--bad-bg);color:var(--bad);}
.source-pill.loading {background:#eee7db;color:var(--muted);}
/* Default source status is successful; pending/draft must declare its state. */
.source-pill:not(.pending):not(.blocked):not(.loading) {background:var(--good-bg);color:var(--good);}
.verdict {display:inline-flex;align-items:center;gap:8px;background:var(--good-bg);color:var(--good);font:700 12.5px/1.55 var(--sans);padding:6px 12px;border-radius:999px;border:1px solid #bfe3cd;}
.verdict.pending,.verdict.watch {background:var(--amber-bg);color:var(--amber);border-color:#ead6aa;}
.kpi > .chg {align-self:flex-start;}
.wrap {max-width:var(--np-width);margin:auto;padding:48px var(--np-gutter) 64px;}
.kicker {font:700 11px/1.55 var(--sans);letter-spacing:.16em;}
.hero .headline {font:800 clamp(34px,4vw,42px)/1.05 var(--serif);max-width:760px;letter-spacing:-.4px;}
.section h2 {font:800 28px/1.15 var(--serif);}
/* Section headings already authored at 24px remain compact; hero hierarchy is distinct. */
.kpis {gap:16px;}
.kpis .kpi {
  min-width:0;min-height:150px;padding:var(--np-card-padding);border:1px solid var(--line);
  border-radius:var(--np-radius);background:var(--card);box-shadow:var(--np-shadow);
  display:flex;flex-direction:column;animation:none;
}
.kpi :is(.lab,.label) {font:700 10.5px/1.55 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.kpi :is(.val,.value) {font:800 30px/1.12 var(--serif);font-variant-numeric:tabular-nums;margin-top:10px;overflow-wrap:anywhere;}
.kpi :is(.sub,.cap) {font:400 12px/1.55 var(--sans);color:var(--muted);margin:8px 0 0;}
:is(.card,.tcard,.report-card) {border-radius:var(--np-radius);border-color:var(--line);}
:is(.scroller,.table-wrap) {max-width:100%;overflow-x:auto;border-radius:var(--np-radius);}
.wrap table {font-variant-numeric:tabular-nums;}
.wrap table :is(th,td) {padding:11px 13px;vertical-align:top;border-bottom:1px solid var(--line);}
.wrap table thead th {font:700 10.5px/1.55 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f3eadf;}
.wrap table tbody th {font:600 13px/1.55 var(--sans);letter-spacing:normal;text-transform:none;color:var(--ink);background:var(--card);}
.wrap table caption {font:400 12px/1.55 var(--sans);color:var(--muted);text-align:left;padding:0 0 10px;}
.foot {margin:0;padding:24px var(--np-gutter) 30px;border-top:3px double var(--ink);font:400 12px/1.55 var(--sans);text-align:center;color:var(--muted);}
.foot :is(.lg,strong) {font:700 14px/1.55 var(--serif);letter-spacing:.16em;color:var(--xo-red);}
:where(a,button,summary,[tabindex]):focus-visible {outline:2px solid var(--xo-red);outline-offset:3px;}
.window-button {min-height:44px;}
/* Legend lines use both labels and color; no global svg sizing (icons remain icons). */
.newspaper-chart {padding:var(--np-card-padding);border:1px solid var(--line);border-radius:var(--np-radius);background:var(--card);box-shadow:var(--np-shadow);}
.newspaper-chart svg {display:block;width:100%;height:auto;}
.newspaper-chart .legend {display:flex;flex-wrap:wrap;gap:18px;font:400 13px/1.55 var(--sans);}
.newspaper-chart .legend span::before {content:'';display:inline-block;background:var(--c);width:16px;height:3px;margin-right:6px;vertical-align:middle;}
.newspaper-chart summary {min-height:44px;padding:12px 0;cursor:pointer;font-weight:600;}
@media(max-width:768px) {
  :root {--np-card-padding:18px;--np-section-gap:38px;}
  .wrap {padding-top:40px;}
  .identity-inner {padding-top:15px;}
  .kpis {gap:12px;}
  .kpis .kpi {min-height:140px;}
  .kpi :is(.val,.value) {font-size:26px;}
}
@media(max-width:390px) {
  .header-main {padding-left:12px;padding-right:12px;gap:6px;}
  .header-main .brand {font-size:14px;gap:6px;}
  .switcher .switcher-button {font-size:11px;padding:0 8px;gap:5px;}
  .header-meta .source-pill {font-size:10.5px;}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
