/* ============================================================================
   REOP — Monthly Business Report  ·  print-ready stylesheet
   Built on colors_and_type.css brand tokens. Letter portrait, 9 pages.
   ============================================================================ */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
  font-family: var(--font-sans);
  color: var(--reop-dark-blue);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  -webkit-font-smoothing: antialiased;
}

/* ── SCREEN SHELL ─────────────────────────────────────────────────────────── */
.screen-bg { background: hsl(205 16% 88%); padding: 30px 16px 72px; min-height: 100vh; }
.doc { width: 8.5in; margin: 0 auto; }

.toolbar {
  width: 8.5in; margin: 0 auto 22px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px;
}
.toolbar .t-label {
  font-size: 12px; font-weight: 600; letter-spacing: 0.04em;
  color: hsl(205 12% 38%); text-transform: uppercase;
}
.print-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--reop-dark-blue); color: #fff; border: none;
  font-family: inherit; font-size: 13px; font-weight: 600;
  padding: 9px 16px; border-radius: 8px; cursor: pointer;
  box-shadow: var(--shadow); transition: background .2s ease;
}
.print-btn:hover { background: var(--reop-dark-blue-2); }
.print-btn .lucide { width: 15px; height: 15px; }

/* ── PAGE ─────────────────────────────────────────────────────────────────── */
.page {
  width: 8.5in; min-height: 11in; height: 11in;
  background: #fff; position: relative; overflow: hidden;
  padding: 0.6in 0.66in 0.5in;
  display: flex; flex-direction: column;
}
.page:not(.cover) { background: hsl(200 24% 95.5%); }
@media screen {
  .page { box-shadow: 0 12px 34px rgba(15,23,42,.16); margin-bottom: 26px; border-radius: 3px; }
}

/* ── RUNNING HEADER / FOOTER ──────────────────────────────────────────────── */
.run-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 11px; margin-bottom: 22px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.run-head .rh-left {
  display: flex; align-items: center; gap: 9px; white-space: nowrap;
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--reop-dark-blue);
}
.run-head .rh-mark {
  width: 16px; height: 16px; border-radius: 3px;
  background: var(--reop-dark-blue); position: relative; flex-shrink: 0;
}
.run-head .rh-mark::after {
  content: "!"; position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 800; font-size: 11px; line-height: 1;
}
.run-head .rh-right {
  font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--muted-foreground);
}

.run-foot {
  margin-top: auto; padding-top: 12px;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  flex-shrink: 0;
}
.run-foot img { height: 17px; width: auto; opacity: .92; }
.run-foot .rf-mid { font-size: 9.5px; color: var(--muted-foreground); letter-spacing: 0.04em; }
.run-foot .rf-page {
  font-size: 10px; font-weight: 700; color: var(--reop-dark-blue);
  letter-spacing: 0.06em;
}
.run-foot .rf-page b { color: var(--primary); }

.page-body { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
.page-body > * { flex-shrink: 0; }

/* ── SECTION HEADER ───────────────────────────────────────────────────────── */
/* ── SECTION HEADER — branded dark band (anchors each page) ─────────────────── */
.sec-head {
  display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: center;
  margin-bottom: 18px; padding: 18px 24px; border-radius: 14px;
  background: linear-gradient(150deg, #074d5b 0%, var(--reop-dark-blue) 52%, #06303a 100%);
  position: relative; overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,61,71,.20);
}
.sec-head::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 520px 320px at 112% -30%, hsl(184 100% 50% / .22), transparent 60%),
    radial-gradient(ellipse 320px 260px at -8% 150%, hsl(74 61% 52% / .15), transparent 60%);
}
.sec-head::after { /* faint grid texture */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .4;
  background-image:
    linear-gradient(hsl(184 60% 70% / .06) 1px, transparent 1px),
    linear-gradient(90deg, hsl(184 60% 70% / .06) 1px, transparent 1px);
  background-size: 28px 28px;
}
.sec-head > * { position: relative; z-index: 1; }
.sec-index {
  font-size: 56px; font-weight: 800; line-height: 0.82;
  letter-spacing: -0.04em; color: hsl(184 82% 70%); opacity: .92;
  position: relative; top: -1px;
}
.eyebrow-lab {
  font-size: 11px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--primary); margin-bottom: 7px;
}
.sec-head .eyebrow-lab { color: hsl(184 72% 68%); }
.sec-title {
  font-size: 26px; font-weight: 600; letter-spacing: -0.03em;
  line-height: 1.08; color: #fff; margin: 0 0 7px;
}
.sec-lede {
  font-size: 12.5px; line-height: 1.5; color: hsl(205 32% 84%);
  font-style: italic; margin: 0; max-width: 60ch;
}

/* ── KPI STRIP ────────────────────────────────────────────────────────────── */
.kpi-strip {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border: 1px solid hsl(200 20% 88%); border-radius: 12px; overflow: hidden;
  background: #fff; margin-bottom: 16px; flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(15,23,42,.05), 0 3px 12px rgba(15,23,42,.05);
}
.kpi { padding: 15px 18px 14px; border-right: 1px solid var(--border); position: relative; }
.kpi:last-child { border-right: none; }
.kpi::before { content: ""; position: absolute; top: 0; left: 0; width: 26px; height: 3px; background: var(--primary); }
.kpi.accent::before { background: var(--reop-green); }
.kpi.muted::before  { background: hsl(210 15% 80%); }
.kpi .k-num {
  font-size: 31px; font-weight: 600; letter-spacing: -0.03em;
  line-height: 1; color: var(--primary); margin-bottom: 6px;
}
.kpi.muted .k-num { color: hsl(210 14% 66%); }
.kpi .k-num small { font-size: 16px; font-weight: 600; }
.kpi .k-lab {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted-foreground); line-height: 1.3;
}

/* ── PROSE ────────────────────────────────────────────────────────────────── */
.prose { font-size: 12.3px; line-height: 1.65; color: var(--reop-dark-gray); }
.prose p { font-size: 12.3px; line-height: 1.65; margin: 0 0 10px; }
.prose p:last-child { margin-bottom: 0; }
.prose strong { color: var(--reop-dark-blue); font-weight: 700; }
.prose em { font-style: italic; }
.tm { font-size: 0.7em; vertical-align: super; font-weight: 600; }

.lead-line {
  font-size: 14px; line-height: 1.5; font-weight: 500; color: var(--reop-dark-blue);
  margin: 0 0 12px; letter-spacing: -0.01em;
}

/* ── PANELS / SUB-CARDS ───────────────────────────────────────────────────── */
.panel {
  border: 1px solid hsl(200 20% 88%); border-radius: 12px; padding: 16px 18px;
  background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 3px 12px rgba(15,23,42,.05);
}
.panel-h {
  display: flex; align-items: center; gap: 8px; margin-bottom: 12px;
  padding-bottom: 10px; border-bottom: 1px solid hsl(200 20% 91%);
}
.panel-h .ph-ico {
  width: 26px; height: 26px; border-radius: 7px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--reop-teal-soft); color: var(--primary);
}
.panel-h .ph-ico .lucide { width: 14px; height: 14px; }
.panel-h h3 {
  margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--reop-dark-blue);
}
.panel-h .ph-tag {
  margin-left: auto; font-size: 10px; font-weight: 600;
  color: var(--muted-foreground);
}

/* tone variants for ph-ico */
.ph-ico.green { background: hsl(74 61% 90%); color: hsl(80 50% 30%); }
.ph-ico.amber { background: hsl(35 100% 92%); color: hsl(33 80% 40%); }
.ph-ico.slate { background: hsl(210 18% 93%); color: var(--reop-dark-blue); }

/* ── PRIORITY / REASON LIST ───────────────────────────────────────────────── */
.reason-list { display: flex; flex-direction: column; }
.reason-row {
  display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: baseline;
  padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 12.2px;
}
.reason-row:last-child { border-bottom: none; }
.reason-row .r-rank {
  font-size: 11px; font-weight: 700; color: var(--primary);
  background: var(--reop-teal-soft); border-radius: 5px; text-align: center;
  width: 22px; height: 22px; line-height: 22px;
}
.reason-row .r-name { font-weight: 700; color: var(--reop-dark-blue); }
.reason-row .r-why { color: var(--reop-dark-gray); }
.reason-row .r-why::before { content: "— "; color: var(--muted-foreground); }

/* ── NEXT STEP CALLOUT ────────────────────────────────────────────────────── */
.next-step {
  display: flex; align-items: center; gap: 14px;
  background: linear-gradient(180deg, var(--reop-teal-soft) 0%, hsl(184 60% 95%) 100%);
  border: 1px solid hsl(184 50% 78%); border-left: 3px solid var(--primary);
  border-radius: 11px; padding: 14px 16px; flex-shrink: 0;
}
.next-step .ns-ico {
  width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0;
  background: var(--reop-dark-blue); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.next-step .ns-ico .lucide { width: 17px; height: 17px; }
.next-step .ns-body { flex: 1; }
.next-step .ns-lab {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--primary); margin-bottom: 3px;
}
.next-step .ns-txt { font-size: 12px; line-height: 1.45; color: var(--reop-dark-blue); font-weight: 500; }
.next-step .ns-txt b { font-weight: 700; }

/* ── CHARTS ───────────────────────────────────────────────────────────────── */
/* segmented bar (touch breakdown) */
.seg-bar { display: flex; height: 22px; border-radius: 6px; overflow: hidden; margin-bottom: 12px; }
.seg-bar span { display: block; height: 100%; }
.seg-legend { display: flex; flex-wrap: wrap; gap: 14px 20px; }
.seg-key { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--reop-dark-gray); }
.seg-key .dot { width: 9px; height: 9px; border-radius: 2px; flex-shrink: 0; }
.seg-key b { color: var(--reop-dark-blue); font-weight: 700; }

/* dot pace (X of Y) */
.dot-pace { display: flex; align-items: center; gap: 14px; }

/* combined compact duo panel (reached-out + productivity) */
.duo { display: grid; grid-template-columns: 1.25fr 1px 1fr; gap: 20px; align-items: center; }
.duo-div { width: 1px; height: 100%; background: hsl(200 20% 90%); }
.duo-lab {
  display: flex; align-items: center; gap: 7px; margin-bottom: 11px;
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--reop-dark-blue);
}
.duo-lab .lucide { width: 14px; height: 14px; color: var(--primary); }
.duo-lab .muted { margin-left: auto; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--muted-foreground); }
.dot-row { display: flex; gap: 6px; }
.dot-row i {
  width: 17px; height: 17px; border-radius: 50%; display: block;
  border: 1.6px solid var(--primary);
}
.dot-row i.fill { background: var(--primary); }
.dot-pace .dp-cap { font-size: 11.5px; color: var(--reop-dark-gray); line-height: 1.4; }
.dot-pace .dp-cap b { color: var(--reop-dark-blue); }

/* funnel (events / pipeline) */
.funnel { display: flex; flex-direction: column; gap: 7px; }
.fn-row { display: grid; grid-template-columns: 132px 1fr 38px; gap: 10px; align-items: center; }
.fn-lab { font-size: 11px; font-weight: 600; color: var(--reop-dark-gray); }
.fn-track { height: 24px; background: hsl(210 16% 94%); border-radius: 6px; overflow: hidden; }
.fn-fill {
  height: 100%; border-radius: 6px; display: flex; align-items: center;
  padding-left: 10px; color: #fff; font-size: 11px; font-weight: 700;
  background: var(--primary); min-width: 4px;
}
.fn-fill.g2 { background: var(--reop-dark-blue); }
.fn-fill.g3 { background: var(--reop-green); }
.fn-fill.empty { background: hsl(210 14% 82%); }
.fn-val { font-size: 12px; font-weight: 700; color: var(--reop-dark-blue); text-align: right; }
.fn-val.muted { color: hsl(210 14% 66%); }

/* scoreboard table + pace bars */
.score-table { width: 100%; border-collapse: collapse; }
.score-table th {
  text-align: left; font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted-foreground);
  padding: 0 10px 9px; border-bottom: 1.5px solid var(--border);
}
.score-table th.num, .score-table td.num { text-align: right; }
.score-table td {
  padding: 11px 10px; border-bottom: 1px solid var(--border); font-size: 12.5px;
  vertical-align: middle;
}
.score-table tr:last-child td { border-bottom: none; }
.score-table .st-metric { font-weight: 700; color: var(--reop-dark-blue); }
.score-table .st-val { font-weight: 600; color: var(--reop-dark-blue); }
.score-table .st-goal { color: var(--muted-foreground); }
.pace-cell { display: flex; align-items: center; gap: 9px; min-width: 150px; }
.pace-track {
  flex: 1; height: 7px; background: hsl(210 16% 92%); border-radius: 99px;
  position: relative; overflow: visible;
}
.pace-track span { display: block; height: 100%; border-radius: 99px; background: var(--primary); }
.pace-track.warn span { background: hsl(35 90% 52%); }
.pace-track.good span { background: var(--reop-green); }
.pace-track::after { /* 40% target marker */
  content: ""; position: absolute; top: -3px; bottom: -3px; left: 40%;
  width: 1.5px; background: var(--reop-dark-blue); opacity: .5;
}
.pace-track.no-marker::after { display: none; }
.pace-pct { font-size: 11.5px; font-weight: 700; color: var(--reop-dark-blue); width: 34px; text-align: right; }
.pace-pct.full { color: var(--reop-green); }

/* two-tone working / attention cards */
.split-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tone-card { border-radius: 12px; padding: 15px 16px; border: 1px solid;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 3px 12px rgba(15,23,42,.04); }
.tone-card.good { background: hsl(120 40% 97.5%); border-color: hsl(110 35% 84%); }
.tone-card.attn { background: hsl(35 100% 97.5%); border-color: hsl(35 80% 85%); }
.tone-card .tc-h {
  display: flex; align-items: center; gap: 7px; margin-bottom: 9px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
}
.tone-card.good .tc-h { color: hsl(135 50% 28%); }
.tone-card.attn .tc-h { color: hsl(30 75% 38%); }
.tone-card .tc-h .lucide { width: 15px; height: 15px; }
.tone-card p { font-size: 11.8px; line-height: 1.55; margin: 0 0 8px; color: var(--reop-dark-gray); }
.tone-card p:last-child { margin-bottom: 0; }
.tone-card strong { color: var(--reop-dark-blue); font-weight: 700; }

/* game plan moves */
.move { display: grid; grid-template-columns: 46px 1fr; gap: 16px; align-items: start;
  padding: 14px 0; border-bottom: 1px solid var(--border); }
.move:last-child { border-bottom: none; }
.move .m-num {
  font-size: 30px; font-weight: 700; letter-spacing: -0.03em; line-height: 1;
  color: var(--reop-teal-soft); -webkit-text-stroke: 1.3px var(--primary);
}
.move .m-tag {
  display: inline-block; font-size: 9.5px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--primary); background: var(--reop-teal-soft);
  padding: 3px 9px; border-radius: 99px; margin-bottom: 6px;
}
.move .m-body { font-size: 12.8px; line-height: 1.5; color: var(--reop-dark-gray); }
.move .m-body b { color: var(--reop-dark-blue); font-weight: 700; }

/* REOP score pillar grid */
.pillar-grid { display: flex; flex-direction: column; gap: 10px; }
.pillar {
  display: grid; grid-template-columns: 54px 1fr; gap: 16px; align-items: center;
  border: 1px solid hsl(200 20% 88%); border-radius: 12px; padding: 13px 16px; background: #fff;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 3px 12px rgba(15,23,42,.05);
}
.grade {
  width: 54px; height: 54px; border-radius: 13px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; flex-shrink: 0;
}
.grade .g-letter { font-size: 22px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
.grade .g-letter.sm { font-size: 12px; font-weight: 700; letter-spacing: 0.02em; text-align: center; }
.grade.a    { background: hsl(120 42% 93%); color: hsl(135 55% 28%); }
.grade.ok   { background: var(--reop-teal-soft); color: var(--primary); }
.grade.behind { background: hsl(35 100% 92%); color: hsl(30 80% 40%); }
.grade.work { background: hsl(0 80% 95%); color: hsl(0 65% 45%); }
.pillar .p-name { font-size: 13.5px; font-weight: 700; color: var(--reop-dark-blue); margin-bottom: 3px; }
.pillar .p-why { font-size: 11.8px; line-height: 1.45; color: var(--reop-dark-gray); }
.pillar .p-status {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  margin-left: 8px; padding: 2px 8px; border-radius: 99px; white-space: nowrap;
}
.p-status.a { background: hsl(120 42% 93%); color: hsl(135 55% 28%); }
.p-status.ok { background: var(--reop-teal-soft); color: var(--primary); }
.p-status.behind { background: hsl(35 100% 92%); color: hsl(30 80% 40%); }
.p-status.work { background: hsl(0 80% 95%); color: hsl(0 65% 45%); }

/* bottom line band */
.bottom-line {
  background: var(--reop-dark-blue); color: #fff; border-radius: 13px;
  padding: 18px 20px; position: relative; overflow: hidden; flex-shrink: 0;
}
.bottom-line::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse 420px 300px at 110% -20%, hsl(184 100% 50% / .18), transparent 60%),
              radial-gradient(ellipse 300px 240px at -10% 130%, hsl(74 61% 52% / .14), transparent 60%);
}
.bottom-line > * { position: relative; z-index: 1; }
.bottom-line .bl-lab {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: hsl(184 70% 72%); margin-bottom: 8px;
}
.bottom-line p { font-size: 12.5px; line-height: 1.6; margin: 0; color: hsl(205 30% 88%); }
.bottom-line p strong { color: #fff; font-weight: 700; }

/* generic spacing helpers */
.mt-auto { margin-top: auto; }
.gap-block { display: flex; flex-direction: column; gap: 16px; }
.block-h {
  font-size: 13px; font-weight: 700; letter-spacing: 0.02em; color: var(--reop-dark-blue);
  margin: 0 0 11px; display: flex; align-items: center; gap: 8px;
}
.block-h .lucide { width: 15px; height: 15px; color: var(--primary); }

/* ── COVER (page 1) ───────────────────────────────────────────────────────── */
.cover {
  padding: 0; background: var(--reop-slate-900); color: #fff;
  justify-content: stretch;
}
.cover-inner {
  position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column;
  padding: 0.72in 0.7in 0.6in;
}
.cover::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    radial-gradient(ellipse 760px 540px at 118% -8%, hsl(184 100% 45% / .28) 0%, transparent 58%),
    radial-gradient(ellipse 520px 460px at -12% 116%, hsl(74 61% 52% / .18) 0%, transparent 58%),
    linear-gradient(160deg, #0f172a 0%, #0b2733 55%, #04303a 100%);
}
.cover::after { /* cosmic grid */
  content: ""; position: absolute; inset: 0; z-index: 1; opacity: .5;
  background-image:
    linear-gradient(hsl(184 60% 70% / .07) 1px, transparent 1px),
    linear-gradient(90deg, hsl(184 60% 70% / .07) 1px, transparent 1px);
  background-size: 34px 34px;
}
.cv-top { display: flex; align-items: center; justify-content: space-between; }
.cv-top img { height: 34px; width: auto; }
.cv-top .cv-date {
  font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: hsl(184 55% 72%);
}
.cv-eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: hsl(184 60% 74%); margin-bottom: 16px;
}
.cv-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--reop-green); }
.cv-title {
  font-size: 46px; font-weight: 600; letter-spacing: -0.04em; line-height: 1.02;
  color: #fff; margin: 0;
}
.cv-month { color: hsl(184 85% 62%); font-weight: 500; }
.cv-hero-num {
  display: flex; align-items: flex-end; gap: 18px; margin: 6px 0 4px;
}
.cv-hero-num .hn {
  font-size: 92px; font-weight: 600; letter-spacing: -0.05em; line-height: 0.85;
  color: #fff; background: linear-gradient(180deg, #fff 30%, hsl(184 80% 78%));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.cv-hero-num .hn-cap { font-size: 13px; line-height: 1.45; color: hsl(205 28% 76%); max-width: 24ch; padding-bottom: 12px; }
.cv-kpis {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: hsl(188 60% 22% / .5); border: 1px solid hsl(184 50% 40% / .3);
  border-radius: 14px; overflow: hidden; margin-top: 4px;
}
.cv-kpi { padding: 18px 20px; background: hsl(192 70% 9% / .72); }
.cv-kpi .ck-num {
  font-size: 32px; font-weight: 600; letter-spacing: -0.03em; line-height: 1;
  color: hsl(184 85% 68%); margin-bottom: 7px;
}
.cv-kpi.green .ck-num { color: var(--reop-green); }
.cv-kpi .ck-lab { font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; color: hsl(205 24% 74%); line-height: 1.35; }
.cv-prepared {
  margin-top: auto; padding-top: 26px; display: flex; align-items: flex-end; justify-content: space-between;
  border-top: 1px solid hsl(184 40% 40% / .25);
}
.cv-prepared .cp-lab {
  font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: hsl(184 50% 64%); margin-bottom: 8px;
}
.cv-prepared .cp-name { font-size: 25px; font-weight: 600; letter-spacing: -0.02em; color: #fff; line-height: 1.05; }
.cv-prepared .cp-org { font-size: 13px; color: hsl(205 26% 76%); margin-top: 4px; }
.cv-prepared .cp-meta { text-align: right; font-size: 10.5px; color: hsl(205 22% 66%); line-height: 1.6; }
.cv-avatar {
  width: 56px; height: 56px; border-radius: 14px; background: hsl(184 100% 34% / .2);
  border: 1px solid hsl(184 60% 50% / .4); display: flex; align-items: center; justify-content: center;
  font-size: 19px; font-weight: 700; color: hsl(184 85% 72%); flex-shrink: 0;
}
.cp-id { display: flex; align-items: center; gap: 14px; }

/* ── CONTENTS (page 2) ────────────────────────────────────────────────────── */
.toc-head { margin-bottom: 30px; }
.toc-head .eyebrow-lab { margin-bottom: 10px; }
.toc-head h1 { font-size: 32px; font-weight: 600; letter-spacing: -0.03em; color: var(--reop-dark-blue); margin: 0; }
.toc-list { display: flex; flex-direction: column;
  background: #fff; border: 1px solid hsl(200 20% 88%); border-radius: 14px;
  padding: 4px 18px; box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 3px 14px rgba(15,23,42,.05); }
.toc-row {
  display: grid; grid-template-columns: 40px 1fr auto; gap: 18px; align-items: center;
  padding: 16px 6px; border-bottom: 1px solid var(--border); text-decoration: none;
}
.toc-row:hover .toc-name { color: var(--primary); }
.toc-row .toc-no {
  font-size: 15px; font-weight: 700; color: var(--primary); letter-spacing: -0.02em;
}
.toc-name { font-size: 17px; font-weight: 600; color: var(--reop-dark-blue); letter-spacing: -0.01em; transition: color .15s; }
.toc-desc { font-size: 11.5px; color: var(--muted-foreground); margin-top: 2px; }
.toc-page {
  font-size: 12px; font-weight: 700; color: var(--reop-dark-blue);
  width: 30px; height: 30px; border-radius: 8px; background: hsl(210 18% 95%);
  display: flex; align-items: center; justify-content: center;
}
.toc-note {
  margin-top: 26px; display: flex; align-items: center; gap: 12px;
  background: var(--reop-teal-soft); border-radius: 11px; padding: 14px 16px;
  font-size: 12px; line-height: 1.5; color: var(--reop-dark-blue);
}
.toc-note .lucide { width: 18px; height: 18px; color: var(--primary); flex-shrink: 0; }

/* ── DENSE PAGE (SphereSync) TIGHTENING ───────────────────────────────────── */
#sec1 .sec-head  { margin-bottom: 14px; }
#sec1 .kpi-strip { margin-bottom: 10px; }
#sec1 .lead-line { margin-bottom: 8px; }
#sec1 .panel     { padding-top: 13px; padding-bottom: 13px; }
#sec1 .reason-row { padding: 5px 0; }
#sec1 .r-rank { width: 19px; height: 19px; line-height: 19px; }
#sec1 .next-step { padding-top: 11px; padding-bottom: 11px; }
#sec1 .prose p   { line-height: 1.55; }

/* ── PRINT ────────────────────────────────────────────────────────────────── */
@page { size: Letter portrait; margin: 0; }
@media print {
  .screen-bg { background: #fff; padding: 0; }
  .no-print { display: none !important; }
  .doc { width: auto; }
  .page {
    box-shadow: none; margin: 0; border-radius: 0;
    break-after: page; page-break-after: always;
  }
  .page:last-child { break-after: auto; page-break-after: auto; }
}
