/* Distilled v1 — CSS lifted from the 3 locked mockups (homepage v5, industries v2, terminal v2).
   Per mockup-class-names-are-contract: same vars, class names, selectors as the mockups. */

:root{
  --paper:#f4efe3;
  --paper-deep:#ece5d3;
  --ink:#2b2a24;
  --ink-soft:#5d5a4e;
  --rule:#c9c0a8;
  --green:#4e7a27;
  --green-deep:#3c5e1e;
  --amber:#c08a1e;
  --rust:#b5371f;
  --card:#fbf8f0;
  --narrow-bg:#f7e8e2;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Archivo', sans-serif;
  padding:0 0 56px;
}
.sheet{max-width:1060px;margin:0 auto;}

/* ============ MASTHEAD ============ */
.masthead{
  background:var(--green-deep);
  color:#f6f2e4;
  padding:22px 36px 20px;
  display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;
}
.masthead h1{
  font-family:'Playfair Display', serif;
  font-size:30px;letter-spacing:.4px;font-weight:800;
}
.masthead h1 span{font-weight:600;opacity:.85;}
.masthead .dateline{
  font-size:12.5px;letter-spacing:2.4px;text-transform:uppercase;opacity:.9;font-weight:600;
  font-family:'Archivo', sans-serif;
}
.masthead .crumb{
  font-family:'Archivo', sans-serif;
  font-size:12.5px;letter-spacing:1.8px;text-transform:uppercase;
}
.masthead .crumb a{color:#cfe0b4;text-decoration:none;}
.masthead .crumb a:hover{text-decoration:underline;}
.masthead .crumb span{opacity:.65;margin:0 8px;}

/* ============ KICKER ============ */
.section{padding:0 36px;}
.kicker{
  font-family:'Archivo', sans-serif;
  font-size:12.5px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;
  color:var(--green);
  margin:32px 0 14px;
  display:flex;align-items:center;gap:14px;
}
.kicker.serif{
  font-family:'Playfair Display', serif;
  font-size:19px;font-weight:700;letter-spacing:.3px;text-transform:none;
  color:var(--green-deep);
}
.kicker::after{content:'';flex:1;height:1px;background:var(--rule);align-self:center;}
.kicker .note{
  font-family:'Source Serif 4', serif;font-style:italic;
  font-weight:500;letter-spacing:.4px;text-transform:none;
  color:var(--ink-soft);font-size:13px;
}
.kicker.serif .note{font-family:'Archivo',sans-serif;font-weight:500;font-style:italic;}

/* ============ MACRO STRIP ============ */
.macro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.macro-card{
  background:var(--card);
  border:1.5px solid var(--rule);
  border-radius:10px;
  padding:13px 16px 11px;
  text-align:center;
}
.macro-card .label{
  font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--ink);
}
.macro-card .ratio{
  font-size:10.5px;font-weight:600;letter-spacing:1px;color:var(--ink-soft);
  margin-top:1px;
}
.macro-card .state{
  font-size:17px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  margin:6px 0 3px;
}
.macro-card .sub{font-size:12.5px;color:var(--ink-soft);font-weight:500;}
.macro-card.on .state{color:var(--green);}
.macro-card.off .state{color:var(--rust);}
.macro-card.neutral .state{color:var(--amber);}

.regime-line{
  margin-top:14px;
  background:var(--card);
  border:1.5px solid var(--rule);
  border-left:5px solid var(--green);
  border-radius:8px;
  padding:12px 18px;
  font-size:14.5px;line-height:1.55;font-weight:400;
}
.regime-line b{font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--green);margin-right:10px;font-weight:700;}

/* ============ WHAT CHANGED ============ */
.changed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.changed-card{
  background:var(--card);
  border:1.5px solid var(--rule);
  border-radius:10px;
  overflow:hidden;
}
.changed-card .head{
  font-size:11.5px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;
  color:#f6f2e4;background:var(--green);
  padding:7px 14px;
}
.changed-card.warn .head{background:var(--amber);}
.changed-card.alert .head{background:var(--rust);}
.changed-card .body{padding:12px 14px;font-size:13.5px;line-height:1.5;font-weight:400;}
.changed-card .body div{margin-bottom:4px;}
.changed-card .body b{font-weight:700;}
.muted-it{color:var(--ink-soft);font-style:italic;font-size:12.5px;}

/* ============ SECTOR / INDUSTRY HERO ============ */
.sector-hero, .hero{
  margin-top:24px;
  background:var(--card);
  border:1.5px solid var(--rule);
  border-left:6px solid var(--green);
  border-radius:12px;
  padding:24px 30px 22px;
}
.hero{padding:18px 26px 16px;}
.hero-top{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;}
.hero-top h1{
  font-family:'Playfair Display', serif;
  font-size:34px;font-weight:800;letter-spacing:.2px;
}
.hero .hero-top h1{font-size:28px;}
.hero-top .tkr, .hero-top .parent{
  font-family:'Archivo',sans-serif;font-size:15px;font-weight:600;color:var(--ink-soft);
}
.hero-top .ranktag{
  margin-left:auto;
  font-family:'Playfair Display',serif;
  font-size:21px;font-weight:700;color:var(--green-deep);
}
.hero-stats{
  display:flex;gap:34px;flex-wrap:wrap;
  margin:14px 0 14px;
  padding:12px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.hero-stats.compact{gap:24px;margin:10px 0;padding:10px 0;}
.stat .lb{
  font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-soft);
}
.stat .vl{
  font-family:'Playfair Display',serif;font-size:19px;font-weight:700;margin-top:2px;
}
.stat .vl.pos{color:var(--green);}
.stat .vl.neg{color:var(--rust);}
.stat .vl.rs.confirmed{color:var(--green-deep);}
.stat .vl.rs.improve{color:#8a6312;}
.stat .vl.rs.notyet{color:var(--ink-soft);}
.stat .vl.rs.na{color:var(--ink-soft);font-style:italic;}
.stat .vl.health-stat{display:flex;align-items:center;gap:8px;font-size:17px;font-family:'Archivo',sans-serif;font-weight:600;}
.hero-line{
  font-family:'Source Serif 4', serif;
  font-size:16px;line-height:1.55;margin-top:8px;
}

/* ============ BOARD TABLE ============ */
.board{
  background:var(--card);
  border:1.5px solid var(--rule);
  border-radius:12px;
  overflow:hidden;
}
table{width:100%;border-collapse:collapse;}
thead th{
  font-family:'Archivo',sans-serif;
  font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--ink-soft);
  text-align:center;
  padding:12px 14px 10px;
  border-bottom:2px solid var(--ink);
  background:var(--paper-deep);
  white-space:nowrap;
}
thead th.lft{text-align:left;}
thead tr.groups th{
  border-bottom:1px solid var(--rule);
  padding:8px 14px 6px;
  font-size:10px;letter-spacing:2px;
  background:var(--card);
}
thead tr.groups th.rankgrp{
  color:var(--green-deep);
  border-bottom:2px solid var(--green);
}
thead tr.groups th.descgrp{
  color:var(--ink-soft);
  font-weight:600;
}
td.rankedcol, thead th.rankedcol{background:#f3efdf;}
tbody tr:hover td.rankedcol{background:#efe9d2;}
tr.flagged td.rankedcol{background:#f2e3d8;}
tbody td{
  padding:11px 14px;
  border-bottom:1px solid var(--rule);
  font-size:14px;
  vertical-align:middle;
  text-align:center;
  font-variant-numeric:tabular-nums;
  font-weight:400;
  font-family:'Archivo',sans-serif;
}
tbody tr:last-child td{border-bottom:none;}
tbody tr{cursor:pointer;transition:background .12s;}
tbody tr:hover td{background:#f5f0e0;}
td.rank{
  font-family:'Playfair Display',serif;
  font-weight:700;font-size:17px;width:40px;color:var(--ink-soft);
}
td.sector, td.ind, td.nm{text-align:left;}
td.sector b, td.ind b{font-weight:700;font-size:14px;letter-spacing:.2px;}
td.sector .tkr, td.ind .tkr{color:var(--ink-soft);font-size:12.5px;margin-left:7px;}
td.tkr{font-family:'Archivo',sans-serif;font-weight:700;font-size:14px;color:var(--green-deep);width:64px;text-align:left;}
td.num .delta{display:block;font-size:11.5px;color:var(--ink-soft);font-weight:400;}
.pos{color:var(--green);font-weight:600;}
.neg{color:var(--rust);font-weight:600;}
td.num.pos, td.num.neg{font-weight:600;}
td.rs{font-size:14.5px;}
td.rs.confirmed{color:var(--green-deep);font-weight:600;}
td.rs.improve{color:#8a6312;font-weight:600;}
td.rs.notyet{color:var(--ink-soft);}
td.rs.na{color:var(--ink-soft);font-style:italic;}

.health{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;letter-spacing:.4px;
  white-space:nowrap;
}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.health.broad .dot{background:var(--green);}
.health.stable .dot{background:var(--amber);}
.health.narrow .dot{background:var(--rust);}
.health.na .dot{background:var(--ink-soft);}
.health.broad{color:var(--green-deep);}
.health.stable{color:#8a6312;}
.health.narrow{color:var(--rust);}
.health.na{color:var(--ink-soft);font-style:italic;}

tr.flagged{background:var(--narrow-bg);}
tr.flagged:hover td{background:#f3e0d8;}

td.go{
  text-align:right;color:var(--ink-soft);
  font-family:'Archivo',sans-serif;font-size:13px;width:46px;
}

.board-foot{
  padding:10px 16px;
  font-size:12.5px;color:var(--ink-soft);font-style:italic;
  border-top:1px solid var(--rule);
  background:var(--paper-deep);
  text-align:left;
}

.hint{
  margin-top:20px;
  text-align:center;
  font-size:14.5px;font-style:italic;color:var(--ink-soft);
  font-family:'Source Serif 4',serif;
}

/* Chart placeholder (where the eval panel will live) */
.evalwrap-placeholder{
  margin-top:18px;
  background:#fdfcf7;
  border:1.5px dashed var(--rule);
  border-radius:12px;
  padding:32px 24px;
  text-align:center;
}
.placeholder-label{
  font-family:'Source Serif 4', serif;font-style:italic;font-size:13.5px;color:var(--ink-soft);
}

/* ============ FOOTER ============ */
.footer{
  text-align:center;
  margin-top:36px;
  font-family:'Archivo',sans-serif;
  font-size:12px;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--ink-soft);font-weight:600;
}
.footer .rail{
  display:block;margin-top:6px;
  font-family:'Source Serif 4',serif;font-style:italic;font-size:12.5px;
  letter-spacing:.3px;text-transform:none;font-weight:400;
}
