@import url('./site.css');

/* ============================================================
   ELITEZ EVENTS — report.css
   Full-bleed compiled report. Uses tokens from site.css only.
   ============================================================ */

.pdf-root {
  font-family: var(--font-body);
  color: var(--ee-text);
  background: var(--ee-cream);
  padding: 32px 0;
}

.pdf-page {
  width: 210mm;
  height: 297mm;
  position: relative;
  overflow: hidden;
  page-break-after: always;
  margin: 0 auto var(--space-6);
  background: var(--ee-paper);
  box-shadow: var(--shadow-md);
  color: var(--ee-text);
  font-size: 10pt;
  line-height: 1.55;
}

/* ── Common: footer ──────────────────────────────────────────── */
.pdf-footer {
  position: absolute;
  bottom: 8mm;
  left: 16mm;
  right: 16mm;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 7pt;
  letter-spacing: 0.06em;
  color: var(--ee-muted2);
  border-top: 1px solid var(--ee-border);
  padding-top: 4mm;
}
.pdf-footer .foot-brand { color: var(--ee-orange); font-weight: 800; letter-spacing: 0.16em; }
.pdf-footer .foot-mid { letter-spacing: 0.04em; }
.pdf-fullbleed .pdf-footer {
  border-top-color: rgba(255,247,238,0.18);
  color: rgba(255,247,238,0.55);
}
.pdf-fullbleed .pdf-footer .foot-brand { color: var(--ee-amber); }

/* ── Common: eyebrow + section title ─────────────────────────── */
.rep-eyebrow {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 8pt;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ee-orange);
  margin-bottom: 6mm;
}
.rep-eyebrow.on-orange { color: var(--ee-black); }

.sec-title {
  font-family: var(--font-display);
  font-size: 28pt;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ee-text);
  margin: 0 0 6mm;
  line-height: 1.05;
}
.sec-opening {
  font-family: var(--font-serif);
  font-size: 11pt;
  font-style: italic;
  line-height: 1.55;
  color: var(--ee-charcoal);
  border-left: 3px solid var(--ee-orange);
  padding: 2mm 0 2mm 5mm;
  margin: 0 0 8mm;
  max-width: 165mm;
}
.sub {
  font-family: var(--font-display);
  font-size: 13pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-text);
  margin: 0 0 4mm;
  padding-bottom: 2mm;
  border-bottom: 2px solid var(--ee-orange);
  display: inline-block;
}
.sub.mt { margin-top: 8mm; }
.sub-blurb {
  font-size: 9pt;
  color: var(--ee-muted);
  margin: 0 0 4mm;
  max-width: 165mm;
}

/* ── Standard content padding ──────────────────────────────── */
.pdf-content {
  padding: 16mm 16mm 18mm;
}

/* ════════════════════════════════════════════════════════════
   COVER — full-bleed orange × black
   ════════════════════════════════════════════════════════════ */
.pdf-cover {
  background: var(--grad-deck);
  color: var(--ee-cream);
  padding: 0;
}
.pdf-cover::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 18% 22%, rgba(255,179,102,0.22), transparent 55%),
    radial-gradient(ellipse at 82% 80%, rgba(255,106,0,0.32), transparent 60%);
  pointer-events: none;
}
.cover-frame {
  position: relative;
  height: 100%;
  padding: 24mm 20mm 18mm;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 1;
}
.cover-mark {
  width: 22mm; height: 22mm;
  border-radius: 50%;
  background: var(--ee-orange);
  color: var(--ee-black);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18pt;
  letter-spacing: -0.02em;
  box-shadow: 0 0 32px rgba(255,106,0,0.45);
}
.cover-eyebrow {
  font-family: var(--font-mono);
  font-size: 9pt;
  letter-spacing: 0.32em;
  color: var(--ee-amber);
  margin-top: 14mm;
}
.cover-title {
  font-family: var(--font-display);
  font-size: 56pt;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 0.95;
  color: var(--ee-cream);
  margin: 6mm 0 4mm;
  max-width: 160mm;
}
.cover-sub {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14pt;
  color: rgba(255,247,238,0.86);
  max-width: 140mm;
  line-height: 1.4;
  margin: 0 0 12mm;
}
.cover-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8mm;
  padding: 8mm 0;
  border-top: 1px solid rgba(255,247,238,0.18);
  border-bottom: 1px solid rgba(255,247,238,0.18);
}
.cover-meta > div { display: flex; flex-direction: column; gap: 2mm; }
.cover-meta .k {
  font-family: var(--font-mono);
  font-size: 7pt;
  letter-spacing: 0.18em;
  color: var(--ee-amber);
  text-transform: uppercase;
}
.cover-meta .v {
  font-family: var(--font-display);
  font-size: 11pt;
  font-weight: 700;
  color: var(--ee-cream);
  letter-spacing: -0.01em;
}
.cover-foot {
  font-family: var(--font-mono);
  font-size: 8pt;
  letter-spacing: 0.06em;
  color: rgba(255,247,238,0.6);
  display: flex;
  flex-direction: column;
  gap: 2mm;
}

/* ════════════════════════════════════════════════════════════
   TOC
   ════════════════════════════════════════════════════════════ */
.pdf-toc { padding: 0; }
.toc-frame {
  height: 100%;
  padding: 24mm 20mm 22mm;
  background: var(--ee-paper);
  position: relative;
}
.toc-frame::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 4mm;
  background: var(--grad-orange);
}
.toc-title {
  font-family: var(--font-display);
  font-size: 38pt;
  font-weight: 800;
  letter-spacing: -0.025em;
  margin: 0 0 4mm;
  color: var(--ee-text);
}
.toc-blurb {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 11pt;
  color: var(--ee-muted);
  max-width: 140mm;
  margin-bottom: 14mm;
}
.toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--ee-border);
}
.toc-list li {
  display: flex;
  align-items: baseline;
  gap: 4mm;
  padding: 5mm 0;
  border-bottom: 1px solid var(--ee-border);
  font-size: 12pt;
}
.toc-num {
  font-family: var(--font-mono);
  font-weight: 700;
  color: var(--ee-orange);
  font-size: 10pt;
  letter-spacing: 0.04em;
  min-width: 12mm;
}
.toc-name {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--ee-text);
  letter-spacing: -0.01em;
}
.toc-dots {
  flex: 1;
  border-bottom: 1px dotted var(--ee-border2);
  height: 0; margin: 0 2mm 2mm;
}
.toc-page {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 11pt;
  color: var(--ee-orange-deep);
  min-width: 10mm;
  text-align: right;
}

/* ════════════════════════════════════════════════════════════
   EXECUTIVE SUMMARY
   ════════════════════════════════════════════════════════════ */
.pdf-exec { padding: 14mm 14mm 16mm; }
.exec-hero {
  background: var(--grad-onyx);
  color: var(--ee-cream);
  padding: 10mm 12mm;
  border-radius: 4mm;
  margin-bottom: 8mm;
  position: relative;
  overflow: hidden;
}
.exec-hero::after {
  content: '';
  position: absolute; right: -20mm; top: -20mm;
  width: 80mm; height: 80mm;
  background: radial-gradient(circle, rgba(255,106,0,0.40), transparent 70%);
  pointer-events: none;
}
.exec-hero .rep-eyebrow { color: var(--ee-amber); }
.exec-hero h2 {
  font-family: var(--font-display);
  font-size: 22pt;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ee-cream);
  line-height: 1.1;
  margin: 0 0 4mm;
  max-width: 160mm;
}
.exec-thesis {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 11pt;
  color: rgba(255,247,238,0.86);
  line-height: 1.55;
  max-width: 160mm;
  margin: 0;
}

.exec-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4mm;
}
.exec-card {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-top: 3px solid var(--ee-orange);
  border-radius: 3mm;
  padding: 5mm 6mm;
}
.exec-card.cat   { grid-column: span 3; }
.exec-card.wedge { grid-column: span 3; }
.exec-card.pers  { grid-column: span 4; }
.exec-card.attack { grid-column: span 2; }
.exec-card.road  { grid-column: span 6; border-top-color: var(--ee-charcoal); background: var(--ee-cream); }

.card-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 7pt;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ee-orange-deep);
  margin-bottom: 2mm;
}
.exec-card h3 {
  font-family: var(--font-display);
  font-size: 12pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-text);
  margin: 0 0 3mm;
}
.exec-card p, .exec-card li {
  font-size: 9pt;
  color: var(--ee-charcoal);
  line-height: 1.5;
  margin: 0;
}
.exec-card ul, .exec-card ol { margin: 0; padding-left: 5mm; }
.exec-card li { margin-bottom: 1.5mm; }
.exec-personas {
  font-family: var(--font-mono);
  font-size: 8pt;
  color: var(--ee-orange-deep);
  letter-spacing: 0.04em;
  margin-bottom: 3mm;
}
.tier-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2mm;
  margin-top: 2mm;
}
.tier-pill {
  background: var(--ee-charcoal);
  color: var(--ee-cream);
  padding: 3mm 3mm;
  border-radius: 2mm;
  display: flex; flex-direction: column; align-items: flex-start; gap: 1mm;
}
.tier-pill .tier-name {
  font-family: var(--font-display);
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.tier-pill .tier-price {
  font-family: var(--font-display);
  font-size: 11pt;
  font-weight: 800;
  color: var(--ee-orange);
  letter-spacing: -0.02em;
}

.road-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4mm; }
.road-list li { display: flex; flex-direction: column; gap: 1mm; padding: 3mm 4mm; background: var(--ee-paper); border-left: 3px solid var(--ee-orange); }
.road-list .q {
  font-family: var(--font-mono);
  font-size: 8pt;
  letter-spacing: 0.16em;
  color: var(--ee-orange-deep);
  text-transform: uppercase;
}

/* ════════════════════════════════════════════════════════════
   COMPETITIVE LANDSCAPE
   ════════════════════════════════════════════════════════════ */
.top5-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4mm;
  margin-bottom: 6mm;
}
.top5-tile {
  display: flex;
  gap: 4mm;
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-left: 4px solid var(--ee-orange);
  padding: 4mm 5mm;
  border-radius: 2mm;
}
.top5-tile:nth-child(1) { grid-column: span 2; border-left-color: var(--ee-orange-deep); background: linear-gradient(120deg, var(--ee-cream) 0%, var(--ee-paper) 100%); }
.top5-rank {
  font-family: var(--font-display);
  font-size: 22pt;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--ee-orange);
  min-width: 14mm;
  line-height: 1;
}
.top5-body h4 {
  font-family: var(--font-display);
  font-size: 12pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-text);
  margin: 0 0 1mm;
}
.top5-meta {
  font-family: var(--font-mono);
  font-size: 7pt;
  letter-spacing: 0.08em;
  color: var(--ee-muted);
  text-transform: uppercase;
  margin: 0 0 2mm;
}
.top5-rationale {
  font-size: 9pt;
  color: var(--ee-charcoal);
  margin: 0;
  line-height: 1.5;
}

/* Design pattern observations */
.pat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
}
.pat-card {
  background: var(--ee-onyx);
  color: var(--ee-cream);
  padding: 5mm 6mm;
  border-radius: 3mm;
  position: relative;
  overflow: hidden;
}
.pat-card::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 2mm;
  background: var(--grad-orange);
}
.pat-num {
  font-family: var(--font-display);
  font-size: 22pt;
  font-weight: 800;
  color: var(--ee-orange);
  letter-spacing: -0.04em;
  line-height: 1;
}
.pat-card h4 {
  font-family: var(--font-display);
  font-size: 11pt;
  font-weight: 800;
  color: var(--ee-cream);
  margin: 2mm 0 2mm;
  letter-spacing: -0.01em;
}
.pat-card p {
  font-size: 8.5pt;
  color: rgba(255,247,238,0.78);
  margin: 0;
  line-height: 1.5;
}

/* ════════════════════════════════════════════════════════════
   MARKET INTELLIGENCE
   ════════════════════════════════════════════════════════════ */
.mkt-rings {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-bottom: 4mm;
}
.ring-card {
  padding: 6mm 6mm;
  border-radius: 3mm;
  text-align: left;
  position: relative;
  overflow: hidden;
}
.ring-card.ring-tam { background: var(--ee-cream); border-left: 4px solid var(--ee-charcoal); }
.ring-card.ring-sam { background: var(--ee-paper); border-left: 4px solid var(--ee-orange); }
.ring-card.ring-som { background: var(--grad-onyx); color: var(--ee-cream); }
.ring-card .ring-tag {
  font-family: var(--font-mono);
  font-size: 8pt;
  letter-spacing: 0.18em;
  color: var(--ee-orange);
  text-transform: uppercase;
  margin-bottom: 2mm;
}
.ring-card.ring-tam .ring-tag { color: var(--ee-charcoal); }
.ring-card.ring-som .ring-tag { color: var(--ee-amber); }
.ring-card .ring-val {
  font-family: var(--font-display);
  font-size: 28pt;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1;
  color: var(--ee-orange-deep);
  margin-bottom: 3mm;
}
.ring-card.ring-som .ring-val { color: var(--ee-orange); }
.ring-card.ring-tam .ring-val { color: var(--ee-charcoal); }
.ring-card .ring-note {
  font-size: 8.5pt;
  line-height: 1.45;
  color: var(--ee-muted);
}
.ring-card.ring-som .ring-note { color: rgba(255,247,238,0.72); }

/* Wedges */
.wedge-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
}
.wedge-card {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  padding: 5mm 5mm;
  border-radius: 2mm;
  border-top: 3px solid var(--ee-orange);
}
.wedge-when {
  font-family: var(--font-mono);
  font-size: 8pt;
  letter-spacing: 0.18em;
  color: var(--ee-orange-deep);
  text-transform: uppercase;
  margin-bottom: 2mm;
}
.wedge-card h4 {
  font-family: var(--font-display);
  font-size: 11pt;
  font-weight: 800;
  color: var(--ee-text);
  margin: 0 0 2mm;
}
.wedge-card p { font-size: 8.5pt; color: var(--ee-charcoal); line-height: 1.5; margin: 0; }

/* Policy grid */
.policy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; margin-bottom: 4mm; }
.policy-row {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  padding: 3mm 4mm;
  border-radius: 2mm;
  border-left: 3px solid var(--ee-muted2);
}
.policy-row.pol-support { border-left-color: #2F7C30; }
.policy-row.pol-against { border-left-color: #B33232; }
.policy-row.pol-neutral { border-left-color: var(--ee-muted2); }
.pol-head { display: flex; gap: 3mm; align-items: baseline; margin-bottom: 1mm; }
.pol-badge {
  font-family: var(--font-mono);
  font-size: 6.5pt;
  font-weight: 800;
  letter-spacing: 0.14em;
  padding: 0.5mm 2mm;
  border-radius: 1mm;
}
.pol-badge.pol-support { background: rgba(47,124,48,0.16); color: #1F5A20; }
.pol-badge.pol-against { background: rgba(179,50,50,0.16); color: #802121; }
.pol-badge.pol-neutral { background: rgba(107,92,77,0.16); color: var(--ee-muted); }
.policy-row h4 { font-family: var(--font-display); font-size: 9.5pt; font-weight: 700; margin: 0; color: var(--ee-text); line-height: 1.3; }
.pol-imp { font-size: 8pt; color: var(--ee-charcoal); margin: 1mm 0 0; line-height: 1.45; }

.signal-list { list-style: none; padding: 0; margin: 0; }
.signal-list li {
  padding: 2mm 4mm;
  border-left: 2px solid var(--ee-orange);
  margin-bottom: 2mm;
  font-size: 9pt;
  color: var(--ee-text);
  line-height: 1.45;
  background: var(--ee-paper);
}
.signal-list .sig-imp { color: var(--ee-muted); }

/* ════════════════════════════════════════════════════════════
   PRICING STRATEGY
   ════════════════════════════════════════════════════════════ */
.persona-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4mm;
}
.persona-card {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-radius: 2mm;
  padding: 5mm 5mm;
  border-top: 3px solid var(--ee-orange);
}
.persona-head { display: flex; align-items: baseline; gap: 3mm; margin-bottom: 2mm; }
.persona-num {
  font-family: var(--font-display);
  font-size: 18pt;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--ee-orange);
  line-height: 1;
}
.persona-card h4 {
  font-family: var(--font-display);
  font-size: 12pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-text);
  margin: 0;
}
.persona-icp {
  font-size: 8.5pt;
  color: var(--ee-muted);
  margin: 0 0 3mm;
  line-height: 1.45;
}
.persona-wtp {
  display: flex;
  align-items: center;
  gap: 2mm;
  background: var(--ee-cream);
  padding: 2mm 4mm;
  border-radius: 1.5mm;
  margin-bottom: 3mm;
  font-family: var(--font-display);
  font-weight: 700;
}
.persona-wtp .wtp-low  { color: var(--ee-muted); font-size: 9pt; }
.persona-wtp .wtp-mid  { color: var(--ee-orange); font-size: 11pt; }
.persona-wtp .wtp-high { color: var(--ee-orange-deep); font-size: 9.5pt; }
.persona-wtp .wtp-arrow { color: var(--ee-orange); font-size: 9pt; }
.persona-nba {
  display: flex;
  gap: 2mm;
  font-size: 8pt;
  color: var(--ee-charcoal);
  line-height: 1.4;
}
.nba-label {
  font-family: var(--font-mono);
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--ee-orange-deep);
  font-size: 7pt;
  padding: 0.5mm 2mm;
  border: 1px solid var(--ee-orange);
  border-radius: 1mm;
  height: fit-content;
  flex-shrink: 0;
  margin-top: 0.5mm;
}

/* Tier ladder */
.tier-ladder { display: flex; flex-direction: column; gap: 3mm; }
.tier-rung {
  display: grid;
  grid-template-columns: 70mm 1fr;
  gap: 6mm;
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  padding: 4mm 5mm;
  border-radius: 2mm;
  position: relative;
}
.tier-rung::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--ee-orange);
}
.tier-rung.tier-0::before { width: 3px; opacity: 0.4; }
.tier-rung.tier-1::before { width: 4px; opacity: 0.6; }
.tier-rung.tier-2::before { width: 5px; opacity: 0.8; }
.tier-rung.tier-3::before { width: 6px; background: var(--ee-orange-deep); }

.tier-rung-head { display: flex; flex-direction: column; gap: 1mm; }
.tier-rung-name {
  font-family: var(--font-display);
  font-size: 12pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-text);
}
.tier-rung-price {
  font-family: var(--font-display);
  font-size: 22pt;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--ee-orange-deep);
  line-height: 1;
}
.tier-rung-after {
  font-family: var(--font-mono);
  font-size: 7.5pt;
  letter-spacing: 0.06em;
  color: var(--ee-muted);
}
.tier-rung-target {
  font-size: 9pt;
  color: var(--ee-charcoal);
  margin: 0 0 2mm;
  line-height: 1.45;
}
.tier-rung-in { margin: 0; padding-left: 5mm; }
.tier-rung-in li { font-size: 8.5pt; color: var(--ee-charcoal); line-height: 1.45; margin-bottom: 0.5mm; }

/* ════════════════════════════════════════════════════════════
   WHITESPACE — full-bleed thesis page
   ════════════════════════════════════════════════════════════ */
.pdf-fullbleed {
  background: var(--grad-orange);
  color: var(--ee-black);
  padding: 0;
}
.pdf-fullbleed .sec-title { color: var(--ee-black); }
.ws-thesis-frame {
  height: 100%;
  padding: 26mm 22mm 22mm;
  display: flex; flex-direction: column;
  position: relative;
}
.ws-thesis-title {
  font-family: var(--font-display);
  font-size: 38pt;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.0;
  color: var(--ee-black);
  margin: 0 0 8mm;
  max-width: 160mm;
}
.ws-thesis-body {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 13pt;
  line-height: 1.55;
  color: var(--ee-black);
  max-width: 160mm;
  margin: 0 0 14mm;
  opacity: 0.9;
}
.ws-thesis-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8mm;
  padding-top: 8mm;
  border-top: 2px solid var(--ee-black);
  margin-top: auto;
}
.ws-thesis-stats .big {
  font-family: var(--font-display);
  font-size: 60pt;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--ee-black);
}
.ws-thesis-stats .lbl {
  font-family: var(--font-mono);
  font-size: 8pt;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ee-black);
  margin-top: 2mm;
  opacity: 0.7;
}

/* Strategy canvas */
.canvas-wrap {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-radius: 2mm;
  padding: 5mm 6mm;
  margin-bottom: 6mm;
}
.canvas-legend {
  display: flex;
  gap: 4mm;
  margin-bottom: 4mm;
  font-family: var(--font-mono);
  font-size: 7.5pt;
  letter-spacing: 0.08em;
}
.canvas-legend .leg { display: inline-flex; align-items: center; gap: 1.5mm; }
.canvas-legend .leg::before {
  content: ''; width: 4mm; height: 2.5mm; border-radius: 0.5mm;
}
.canvas-legend .leg.us::before { background: var(--ee-orange); }
.canvas-legend .leg.c0::before { background: var(--ee-charcoal); }
.canvas-legend .leg.c1::before { background: var(--ee-amber); }
.canvas-legend .leg.c2::before { background: var(--ee-muted2); }

.canvas-grid { display: flex; flex-direction: column; gap: 2mm; }
.canvas-row {
  display: grid;
  grid-template-columns: 60mm 1fr;
  gap: 4mm;
  align-items: center;
}
.canvas-axis {
  font-family: var(--font-display);
  font-size: 9pt;
  font-weight: 700;
  color: var(--ee-text);
  letter-spacing: -0.005em;
}
.canvas-bars {
  display: flex; flex-direction: column; gap: 1mm;
}
.cbar {
  height: 3mm;
  display: flex; align-items: center; justify-content: flex-end;
  padding: 0 2mm;
  border-radius: 0.5mm;
  font-family: var(--font-mono);
  font-size: 7pt;
  font-weight: 700;
  color: var(--ee-cream);
  min-width: 6mm;
}
.cbar.bar-us { background: var(--ee-orange); height: 4mm; }
.cbar.bar-c0 { background: var(--ee-charcoal); }
.cbar.bar-c1 { background: var(--ee-amber); color: var(--ee-charcoal); }
.cbar.bar-c2 { background: var(--ee-muted2); }

/* Attack plan grid */
.attack-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3mm;
}
.attack-tile {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-left: 3px solid var(--ee-orange);
  padding: 4mm 5mm;
  border-radius: 2mm;
}
.attack-head { display: flex; align-items: baseline; gap: 3mm; margin-bottom: 2mm; }
.attack-rank {
  font-family: var(--font-display);
  font-size: 14pt;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ee-orange);
  line-height: 1;
}
.attack-tile h4 {
  font-family: var(--font-display);
  font-size: 10pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-text);
  margin: 0;
  line-height: 1.2;
}
.attack-tam {
  font-size: 8pt;
  color: var(--ee-muted);
  margin: 0 0 2mm;
  line-height: 1.4;
}
.attack-pitch {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 9pt;
  color: var(--ee-charcoal);
  background: var(--ee-cream);
  border-left: 2px solid var(--ee-orange);
  padding: 2mm 3mm;
  margin: 0;
  line-height: 1.4;
}

/* Heatmap */
.hm-wrap {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-radius: 2mm;
  padding: 4mm 4mm;
}
.hm-grid {
  display: grid;
  gap: 1.5mm;
}
.hm-corner {
  background: var(--ee-charcoal);
  color: var(--ee-cream);
  padding: 2mm 2mm;
  font-family: var(--font-mono);
  font-size: 7pt;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 1mm;
  display: flex; align-items: center;
}
.hm-need {
  background: var(--ee-onyx);
  color: var(--ee-cream);
  padding: 2mm 1mm;
  font-family: var(--font-mono);
  font-size: 6.5pt;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  border-radius: 1mm;
  display: flex; align-items: center; justify-content: center;
}
.hm-seg {
  background: var(--ee-cream);
  color: var(--ee-text);
  padding: 2mm 2mm;
  font-family: var(--font-display);
  font-size: 8pt;
  font-weight: 700;
  border-left: 2px solid var(--ee-orange);
  border-radius: 1mm;
  display: flex; align-items: center;
}
.hm-cell {
  padding: 2mm 1mm;
  border-radius: 1mm;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.5mm;
  text-align: center;
}
.hm-cell.hm-g { background: #D8F5C3; color: #1F3D0F; }
.hm-cell.hm-a { background: #FFE4A8; color: #6B4900; }
.hm-cell.hm-r { background: #FCD5D5; color: #6B1010; }
.hm-cell .hm-count {
  font-family: var(--font-display);
  font-size: 13pt;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.hm-cell .hm-our {
  font-family: var(--font-mono);
  font-size: 6pt;
  letter-spacing: 0.06em;
  opacity: 0.75;
}
.hm-legend {
  display: flex;
  gap: 6mm;
  margin-top: 3mm;
  font-family: var(--font-mono);
  font-size: 7.5pt;
  color: var(--ee-muted);
}
.hm-legend > span { display: inline-flex; align-items: center; gap: 1.5mm; }
.sw {
  display: inline-block;
  width: 4mm; height: 2.5mm;
  border-radius: 0.5mm;
}
.sw-g { background: #D8F5C3; }
.sw-a { background: #FFE4A8; }
.sw-r { background: #FCD5D5; }

/* Cell appendix */
.cell-appendix { display: flex; flex-direction: column; gap: 3mm; }
.cell-row {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-radius: 2mm;
  padding: 3mm 4mm;
}
.cell-row.cell-green { border-left: 3px solid #2F7C30; background: rgba(216,245,195,0.18); }
.cell-row.cell-red   { border-left: 3px solid #B33232; background: rgba(252,213,213,0.20); }
.cell-row-head {
  display: flex; align-items: baseline; gap: 3mm;
  margin-bottom: 2mm;
  flex-wrap: wrap;
}
.cell-verdict {
  font-family: var(--font-mono);
  font-size: 6.5pt;
  font-weight: 800;
  letter-spacing: 0.16em;
  padding: 0.8mm 2.5mm;
  border-radius: 1mm;
}
.cell-verdict-green { background: #2F7C30; color: #FFF7EE; }
.cell-verdict-red   { background: #B33232; color: #FFF7EE; }
.cell-row h4 {
  font-family: var(--font-display);
  font-size: 10pt;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: var(--ee-text);
  margin: 0;
}
.cell-stats {
  font-family: var(--font-mono);
  font-size: 7pt;
  color: var(--ee-muted);
  letter-spacing: 0.04em;
  margin-left: auto;
}
.cell-comps { margin: 0; padding-left: 5mm; }
.cell-comps li { font-size: 8pt; color: var(--ee-charcoal); margin-bottom: 1mm; line-height: 1.4; }
.cell-empty {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 9pt;
  color: var(--ee-orange-deep);
  margin: 1mm 0 0;
}

/* ════════════════════════════════════════════════════════════
   DESIGN AUDIT
   ════════════════════════════════════════════════════════════ */
.des-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3mm;
}
.des-tile {
  background: var(--ee-paper);
  border: 1px solid var(--ee-border);
  border-top: 3px solid var(--ee-orange);
  padding: 3mm 4mm;
  border-radius: 2mm;
  display: flex;
  gap: 3mm;
}
.des-tile.des-high { border-top-color: #2F7C30; background: rgba(216,245,195,0.12); }
.des-tile.des-mid  { border-top-color: var(--ee-amber); }
.des-tile.des-low  { border-top-color: #B33232; opacity: 0.92; }
.des-rank {
  font-family: var(--font-display);
  font-size: 14pt;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ee-orange);
  min-width: 8mm;
  line-height: 1;
}
.des-body { flex: 1; }
.des-name {
  font-family: var(--font-display);
  font-size: 10pt;
  font-weight: 800;
  color: var(--ee-text);
  margin-bottom: 0.5mm;
  letter-spacing: -0.005em;
}
.des-score {
  font-family: var(--font-mono);
  font-size: 8.5pt;
  font-weight: 800;
  color: var(--ee-orange-deep);
  letter-spacing: 0.04em;
  margin-bottom: 1.5mm;
}
.des-notes {
  font-size: 7.5pt;
  color: var(--ee-charcoal);
  margin: 0;
  line-height: 1.4;
}

/* ════════════════════════════════════════════════════════════
   APPENDIX TABLE
   ════════════════════════════════════════════════════════════ */
.pdf-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 8.5pt;
}
.pdf-table.compact { font-size: 8pt; }
.pdf-table th {
  background: var(--ee-black);
  color: var(--ee-cream);
  text-align: left;
  padding: 2mm 3mm;
  font-family: var(--font-mono);
  font-size: 7pt;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.pdf-table th:first-child { border-top-left-radius: 1mm; }
.pdf-table th:last-child { border-top-right-radius: 1mm; }
.pdf-table td {
  padding: 1.6mm 3mm;
  border-bottom: 1px solid var(--ee-border);
  vertical-align: top;
}
.pdf-table tbody tr:nth-child(even) { background: var(--ee-cream); }
.pdf-table .rank {
  font-family: var(--font-mono);
  color: var(--ee-orange-deep);
  font-weight: 700;
  width: 8mm;
}
.pdf-table .small { font-size: 7.5pt; color: var(--ee-muted); }
.pdf-table .mono { font-family: var(--font-mono); }

/* Pills */
.pill {
  display: inline-block;
  padding: 0.5mm 2.5mm;
  border-radius: 4mm;
  font-family: var(--font-mono);
  font-size: 7pt;
  font-weight: 800;
  letter-spacing: 0.04em;
  background: var(--ee-cream);
  color: var(--ee-text);
  border: 1px solid var(--ee-border2);
}
.pill.score { background: var(--ee-cream); color: var(--ee-orange-deep); }
.pill.thr-5 { background: var(--ee-orange); color: var(--ee-black); border-color: var(--ee-orange-deep); }
.pill.thr-4 { background: rgba(255,106,0,0.55); color: var(--ee-black); border-color: var(--ee-orange-deep); }
.pill.thr-3 { background: rgba(255,179,102,0.45); color: var(--ee-charcoal); border-color: var(--ee-amber); }
.pill.thr-2 { background: rgba(107,92,77,0.18); color: var(--ee-muted); }
.pill.thr-1 { background: rgba(107,92,77,0.10); color: var(--ee-muted); }
.pill.elast-low    { background: rgba(47,124,48,0.18); color: #1F5A20; }
.pill.elast-medium { background: rgba(245,158,11,0.20); color: #8A5A00; }
.pill.elast-high   { background: rgba(179,50,50,0.20); color: #802121; }

/* ════════════════════════════════════════════════════════════
   CLOSING — full-bleed roadmap + contact
   ════════════════════════════════════════════════════════════ */
.pdf-fullbleed.pdf-page:last-of-type,
.pdf-page.pdf-fullbleed:last-child { /* not strictly used; closing is full-bleed too */ }

.closing-frame {
  height: 100%;
  padding: 24mm 22mm 22mm;
  display: flex; flex-direction: column;
  background: var(--grad-deck);
  color: var(--ee-cream);
  position: relative;
  overflow: hidden;
}
.closing-frame::before {
  content: '';
  position: absolute; right: -30mm; bottom: -30mm;
  width: 120mm; height: 120mm;
  background: radial-gradient(circle, rgba(255,179,102,0.30), transparent 65%);
  pointer-events: none;
}
.closing-title {
  font-family: var(--font-display);
  font-size: 38pt;
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--ee-cream);
  line-height: 1.0;
  margin: 4mm 0 4mm;
  max-width: 150mm;
}
.closing-lede {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 12pt;
  line-height: 1.55;
  color: rgba(255,247,238,0.86);
  max-width: 160mm;
  margin: 0 0 12mm;
}
.closing-road {
  display: flex; flex-direction: column; gap: 4mm;
  margin-bottom: 12mm;
  position: relative;
}
.road-row {
  display: grid;
  grid-template-columns: 36mm 1fr;
  gap: 6mm;
  padding: 4mm 5mm;
  border-left: 3px solid var(--ee-orange);
  background: rgba(255,255,255,0.06);
  border-radius: 2mm;
}
.road-q {
  font-family: var(--font-mono);
  font-size: 10pt;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: var(--ee-amber);
  text-transform: uppercase;
  align-self: center;
}
.road-what h4 {
  font-family: var(--font-display);
  font-size: 11pt;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: var(--ee-cream);
  margin: 0 0 1mm;
}
.road-what p {
  font-size: 9pt;
  color: rgba(255,247,238,0.8);
  margin: 0;
  line-height: 1.45;
}

.closing-contact {
  margin-top: auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8mm;
  padding-top: 8mm;
  border-top: 1px solid rgba(255,247,238,0.18);
  position: relative;
  z-index: 1;
}
.cc-block { display: flex; flex-direction: column; gap: 1mm; }
.cc-name {
  font-family: var(--font-display);
  font-size: 12pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ee-orange);
}
.cc-role {
  font-family: var(--font-mono);
  font-size: 7.5pt;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ee-amber);
}
.cc-mail, .cc-phone, .cc-addr div {
  font-family: var(--font-mono);
  font-size: 8.5pt;
  color: var(--ee-cream);
  text-decoration: none;
  letter-spacing: 0.02em;
}
.cc-mail { color: var(--ee-cream); }
.cc-addr { display: flex; flex-direction: column; gap: 1mm; }
.cc-addr div:first-child {
  font-family: var(--font-display);
  font-size: 10pt;
  font-weight: 800;
  color: var(--ee-cream);
  letter-spacing: -0.005em;
}

/* ════════════════════════════════════════════════════════════
   PRINT — cleaner output
   ════════════════════════════════════════════════════════════ */
@media print {
  body { background: white; }
  .pdf-root { padding: 0; }
  .pdf-page { box-shadow: none; margin: 0; }
}
