/* Approved RealPulse identity, October 5, 2026.
   National 2 and Pitch Sans are intended families. Until licensed web files
   are supplied, the existing DM Sans and system monospace fallbacks render. */
:root {
  --rp-pine:#183B32; --rp-ivory:#F4F1E9; --rp-ink:#202D28;
  --rp-muted:#59675E; --rp-sage:#E0E8DD; --rp-rule:#CFD5CB;
  --rp-slate:#47677A; --rp-ochre:#92601C; --rp-brick:#A34B3F;
  --rp-body:'National 2','DM Sans',sans-serif;
  --rp-data:'Pitch Sans','SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --paper:var(--rp-ivory); --ink:var(--rp-ink);
  --paper-muted:var(--rp-muted); --paper-line:var(--rp-rule);
  --sans:var(--rp-body); --serif:var(--rp-body); --mono:var(--rp-data);
  --green:var(--rp-pine);
}
body { background:var(--rp-ivory); color:var(--rp-ink); font-family:var(--rp-body); }
.brand { display:flex; align-items:center; flex:none; padding:0; letter-spacing:0; text-decoration:none; }
.brand-wordmark { display:block; width:240px; height:auto; margin-block:-14px; }
.masthead, .view-nav { background:var(--rp-ivory); }
.masthead { border-color:var(--rp-rule); }
.hero { padding-block:32px 28px; }
.hero h1 { font:700 clamp(38px,4.3vw,60px)/1.08 var(--rp-body); letter-spacing:-.045em; }
.hero h1 em { color:var(--rp-pine); font-style:normal; }
.hero p, .hero .eyebrow, .mast-right, .end { color:var(--rp-muted); }
.hero p { font-size:16px; }
.eyebrow,.group-label,.tag { font-family:var(--rp-body); }
.hero .eyebrow { letter-spacing:.08em; }
.mast-right button, .utility-menu summary { color:var(--rp-pine); border-color:var(--rp-rule); border-radius:6px; }
.utility-menu summary:hover, .mast-right button:hover { background:var(--rp-sage); }
.status { background:var(--rp-pine); }
.view-tabs { background:var(--rp-sage); border-color:var(--rp-rule); border-radius:6px; }
.view-tabs button { border-radius:4px; box-shadow:none; }
.view-tabs button[aria-pressed=true] { background:var(--rp-pine); color:var(--rp-ivory); box-shadow:none; }
.view-tabs button[aria-pressed=false] { color:var(--rp-muted); }
.workspace { border-color:var(--rp-rule); border-radius:6px; }
.sidebar, .card, .utility-panel, #methodology { background:var(--rp-ivory); }
.sidebar { border-color:var(--rp-rule); }
.sidebar .eyebrow, .card-head h3, .compare-controls h2, .source h3 { color:var(--rp-pine); }
.group-label,.quick-picks label,.side-footer,.compare-controls p,
.compare-controls .term-tools label,.search-empty,.card-unit,.card-foot { color:var(--rp-muted); }
.search,.quick-picks select,.compare-controls select,.sidebar .focus-select { color:var(--rp-ink); background:#FAF8F2; border-color:var(--rp-rule); border-radius:6px; }
.factor { color:var(--rp-ink); border-radius:6px; }
.factor:has(input:checked) { background:var(--rp-sage); border-color:var(--rp-rule); }
.factor input { accent-color:var(--rp-pine); }
.sidebar .side-footer { border-color:var(--rp-rule); }
.main { --muted:#C1CDC8; --text:var(--rp-ivory); --line:#45685A; background:var(--rp-pine); color:var(--rp-ivory); }
.title-stack h2,.compare h2,.scorecard-intro h3,.chart-empty h3 { font-family:var(--rp-body); font-weight:600; letter-spacing:-.025em; }
.title-stack h2 { font-size:28px; line-height:1.2; }
.segmented,.segmented button,.periods button,.focus-select,.chart-settings summary,
.term-range-label select,.chart-footer button,.legend button,.presidents button { border-radius:6px; }
.segmented { background:#122E26; border-color:#5D7B6B; }
.segmented button[aria-pressed=true],.periods button[aria-pressed=true],
.term-range-label select[data-active=true] { background:var(--rp-sage); border-color:var(--rp-sage); color:var(--rp-pine); }
.chart-guide,.term-guide,.compare,.tip { background:#143228; }
.chart-guide,.term-guide,.compare,.tip,.president-profile { border-color:#50705F; }
.compare { border-radius:6px; }
.compare-table thead,.compare-table thead th { background:var(--rp-pine); }
.president-profile,.comparison-rules { background:#214438; border-radius:6px; }
.president-profile h4 { font-family:var(--rp-body); font-weight:600; font-size:26px; letter-spacing:-.025em; }
.president-profile .profile-role { font-family:var(--rp-body); letter-spacing:.065em; }
.compare .comparison-group th { background:#214438; }
.compare td,.card-value,.tip-row strong,.tip-date,.range-readout,.chart text,.term-chart text { font-family:var(--rp-data); font-variant-numeric:tabular-nums; }
.compare td:first-child,.compare td small,.compare td:last-child,.direction-badge { font-family:var(--rp-body); }
.card-value { color:var(--rp-pine); font-size:32px; letter-spacing:-.04em; }
.card { border-color:var(--rp-rule); border-radius:6px; box-shadow:none; }
.card:hover { border-color:var(--rp-muted); }
.card-head .tag { background:var(--rp-sage); color:var(--rp-muted); border-radius:3px; }
.section-head h2 { font-family:var(--rp-body); font-weight:600; font-size:30px; letter-spacing:-.035em; }
.section-head button,.sidebar #show-factors { background:var(--rp-pine); color:var(--rp-ivory); border-radius:6px; }
.card .inspect,.end a,#methodology a,.source a { color:var(--rp-pine); text-underline-offset:4px; }
.end { border-color:var(--rp-rule); }
.utility-panel { border-color:var(--rp-rule); border-radius:6px; box-shadow:0 4px 14px #202D2810; }
.utility-panel button,.utility-panel a { color:var(--rp-pine); }
.utility-panel a:hover { background:var(--rp-sage); }
.preview-status { background:var(--rp-sage); border-color:var(--rp-rule); color:var(--rp-muted); border-radius:6px; }
.preview-status a { color:var(--rp-pine); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--rp-pine); outline-offset:3px; }
.main button:focus-visible,.main a:focus-visible,.main input:focus-visible,.main select:focus-visible,.main summary:focus-visible { outline-color:var(--rp-ivory); }
/* Information pages share the identity without the chart's dark surface. */
.page { --muted:var(--rp-muted); --rule:var(--rp-rule); }
.page h1,.page h2 { font-family:var(--rp-body); font-weight:600; letter-spacing:-.035em; }
.page h1 { font-size:clamp(38px,6vw,60px); }
.page h2 { font-size:30px; }
.page .back,.page button,.page .contents a { border-radius:6px; }
.page .back { background:var(--rp-pine); color:var(--rp-ivory); }
.page nav { align-items:center; }
@media(max-width:680px) {
  .compare tr { background:#214438; border-color:#50705F; border-radius:6px; }
  .compare .comparison-group,.compare .comparison-group th { background:transparent; }
  .page header { flex-wrap:wrap; }
}
@media(max-width:480px) {
  .brand-wordmark { width:184px; margin-block:-11px; }
  .masthead { gap:8px; flex-wrap:wrap; }
  .mast-right { display:flex; flex-wrap:nowrap; gap:6px; }
  .mast-right #share,.utility-menu summary { font-size:13px; padding:8px; }
  .share-detail { display:none; }
  .hero { padding-block:24px 20px; }
  .hero h1 { font-size:38px; }
  .hero p { font-size:15px; }
  .title-stack h2 { font-size:25px; }
  .president-profile h4 { font-size:22px; }
  .card-value { font-size:28px; }
  .page nav { font-size:14px; }
}
