/* ============================================================
   DossierProof — Hendriks Housing brand system
   ============================================================ */
:root{
  --cream:#FAF6E9;
  --butter:#F6F0D7;
  --white:#ffffff;
  --ink:#131313;
  --ink-2:#4a4a45;
  --muted:#8c897c;
  --hair:#e7e2d0;
  --red:#D2483B;
  --amber:#D8941F;
  --green:#3C8C5A;
  --red-tint:#FBEEEC;
  --amber-tint:#FBF2E1;
  --green-tint:#EDF5EF;
  --shadow:0 10px 30px -12px rgba(40,35,15,.18), 0 2px 8px -3px rgba(40,35,15,.10);
  --radius:15px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{ -webkit-text-size-adjust:100%; }
body{
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  background:#ded8c4;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ---------- viewer (screen only) ---------- */
.viewer{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:34px;
  padding:48px 20px 80px;
}

/* ---------- page ---------- */
.page{
  width:210mm;
  min-height:297mm;
  background:var(--cream);
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.page-inner{
  position:absolute;
  inset:0;
  padding:17mm 16mm 13mm;
  display:flex;
  flex-direction:column;
}

/* ---------- header / footer system ---------- */
.pg-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:9px;
  border-bottom:1px solid var(--hair);
  margin-bottom:26px;
}
.pg-addr{
  font-size:9.5px;
  letter-spacing:.04em;
  font-weight:500;
  color:var(--ink-2);
}
.logo-sm{ height:18px; width:auto; display:block; }
.pg-body{ flex:1; }
.pg-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:9px;
  border-top:1px solid var(--hair);
  margin-top:18px;
  font-size:8.5px;
  letter-spacing:.06em;
  color:var(--muted);
}
.pg-foot span:last-child{ font-weight:600; color:var(--ink-2); letter-spacing:.1em; }

/* ---------- section headers ---------- */
.sec-eyebrow{
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
  margin-bottom:10px;
}
.sec-title{
  font-size:30px;
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1.05;
  margin-bottom:14px;
}
.sec-intro{
  font-size:12px;
  line-height:1.6;
  color:var(--ink-2);
  max-width:84%;
  margin-bottom:16px;
}
.grp-title{
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  margin:14px 0 8px;
  padding-top:10px;
  border-top:1px solid var(--hair);
}

/* ---------- dots ---------- */
.dot{ width:9px; height:9px; border-radius:50%; display:inline-block; flex:0 0 auto; }
.dot-red{ background:var(--red); }
.dot-amber{ background:var(--amber); }
.dot-green{ background:var(--green); }
.c-red{ color:var(--red); }
.c-amber{ color:var(--amber); }
.c-green{ color:var(--green); }

/* ============================================================
   COVER
   ============================================================ */
.cover .page-inner{ padding:24mm 18mm 16mm; }
.cover-top{ margin-bottom:auto; }
.logo-lg{ height:34px; width:auto; display:block; }

.cover-hero{ margin:0 0 auto; }
.eyebrow{
  font-size:12px;
  letter-spacing:.26em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
  margin-bottom:22px;
}
.address{
  font-size:60px;
  font-weight:700;
  letter-spacing:-.03em;
  line-height:.96;
  margin-bottom:30px;
}
.addr-city{
  display:block;
  font-size:30px;
  font-weight:400;
  letter-spacing:-.01em;
  color:var(--ink-2);
  margin-top:8px;
}

/* verdict badge */
.verdict-row{ display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.verdict{
  display:inline-flex;
  align-items:center;
  gap:11px;
  padding:12px 22px 12px 18px;
  border-radius:100px;
  font-weight:600;
}
.verdict-dot{ width:12px; height:12px; border-radius:50%; }
.verdict-label{ font-size:17px; letter-spacing:.01em; }
.verdict-red{ background:var(--red-tint); color:var(--red); }
.verdict-red .verdict-dot{ background:var(--red); }
.verdict-amber{ background:var(--amber-tint); color:var(--amber); }
.verdict-amber .verdict-dot{ background:var(--amber); }
.verdict-green{ background:var(--green-tint); color:var(--green); }
.verdict-green .verdict-dot{ background:var(--green); }
.verdict-note{ font-size:11.5px; color:var(--ink-2); line-height:1.5; max-width:340px; padding-left:2px; }

/* cover stats */
.cover-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  padding:30px 0;
  margin:46px 0 0;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.stat-num{
  font-size:56px;
  font-weight:700;
  letter-spacing:-.04em;
  line-height:1;
}
.stat-label{
  font-size:10.5px;
  letter-spacing:.04em;
  color:var(--ink-2);
  margin-top:8px;
  font-weight:500;
}
.cover-foot{
  display:flex;
  justify-content:space-between;
  margin-top:24px;
}
.cf-right{ text-align:right; }
.cf-label{
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
  margin-bottom:5px;
}
.cf-value{ font-size:13px; font-weight:600; }

/* ============================================================
   AGENT INTRODUCTION
   ============================================================ */
.agent-card{
  display:flex;
  gap:28px;
  align-items:flex-start;
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:32px 34px;
  margin-bottom:28px;
}
.agent-avatar{
  width:84px; height:84px;
  border-radius:50%;
  background:var(--butter);
  display:flex; align-items:center; justify-content:center;
  font-size:26px; font-weight:700; letter-spacing:-.02em;
  color:var(--ink);
  flex:0 0 auto;
}
.agent-photo{ width:92px; height:92px; border-radius:50%; object-fit:cover; display:block; }
.agent-id{ display:flex; flex-direction:column; align-items:center; text-align:center; width:112px; flex:0 0 auto; }
.agent-id .agent-name{ margin-top:13px; font-size:13px; font-weight:700; letter-spacing:-.005em; }
.agent-id .agent-title{ font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600; margin-top:4px; line-height:1.45; }
.agent-copy{ flex:1; }
.agent-note-tag{ font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--muted); font-style:italic; margin-bottom:12px; }
.agent-copy p{ font-size:13.5px; line-height:1.72; color:var(--ink-2); margin-bottom:14px; text-wrap:pretty; }
.agent-copy p:last-of-type{ margin-bottom:0; }

.roadmap{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.rm-item{
  background:var(--cream);
  border:1px solid var(--hair);
  border-radius:12px;
  padding:18px 16px;
}
.rm-num{ font-size:20px; font-weight:700; color:var(--muted); letter-spacing:-.02em; margin-bottom:10px; }
.rm-title{ font-size:12px; font-weight:600; margin-bottom:5px; letter-spacing:-.005em; }
.rm-text{ font-size:10.5px; color:var(--ink-2); line-height:1.5; }

/* ============================================================
   EXECUTIVE SUMMARY
   ============================================================ */
.lede{
  font-size:14.5px;
  line-height:1.72;
  color:var(--ink);
  font-weight:400;
  margin-bottom:30px;
  text-wrap:pretty;
}
.lede strong{ font-weight:600; }
.headline-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:34px;
}
.hcard{
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px 18px;
  border-top:3px solid var(--red);
}
.hc-tag{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
  margin-bottom:14px;
}
.hc-title{
  font-size:16px;
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.2;
  margin-bottom:9px;
}
.hc-text{ font-size:11.5px; line-height:1.55; color:var(--ink-2); }

.summary-strip{
  display:flex;
  align-items:center;
  gap:24px;
  background:var(--butter);
  border-radius:var(--radius);
  padding:24px 28px;
}
.ss-item{ display:flex; align-items:center; gap:14px; flex:1; }
.ss-num{ font-size:38px; font-weight:700; letter-spacing:-.04em; line-height:1; }
.ss-cap{ font-size:11px; line-height:1.4; color:var(--ink-2); font-weight:500; }
.ss-rule{ width:1px; align-self:stretch; background:var(--hair); }

/* ============================================================
   FINDING CARDS (full detail — reserved for the most material items)
   ============================================================ */
.finding{
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px 25px 24px;
  border-left:4px solid var(--hair);
  margin-bottom:16px;
}
.finding-red{ border-left-color:var(--red); }
.finding-amber{ border-left-color:var(--amber); }
.finding-green{ border-left-color:var(--green); position:relative; }
.finding-green::after{
  content:"Verified";
  position:absolute;
  top:20px; right:22px;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--green);
  background:var(--green-tint);
  padding:5px 12px;
  border-radius:100px;
}
.finding-green .f-head .dot{ box-shadow:0 0 0 4px var(--green-tint); }
.finding-green .f-title{ padding-right:78px; }
.finding-green .f-quote{ background:var(--green-tint); }
.finding-green .f-quote[lang]::before{ border-color:#d3e6d9; }
.finding-green .f-src{ background:var(--green-tint); color:#2c6b44; }
.f-tag{
  font-size:9.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  margin-bottom:7px;
}
.f-head{ display:flex; align-items:center; gap:11px; margin-bottom:11px; }
.f-head .dot{ width:11px; height:11px; }
.f-title{
  font-size:17px;
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.28;
}
.f-text{ font-size:12.5px; line-height:1.68; color:var(--ink-2); margin-bottom:15px; text-wrap:pretty; }
.f-text em{ color:var(--muted); font-style:italic; }
.f-next{
  font-size:11.5px;
  line-height:1.6;
  color:var(--muted);
  margin:-6px 0 15px;
  padding-top:9px;
  border-top:1px dashed var(--butter);
  text-wrap:pretty;
}
.f-next-label{ font-weight:600; color:var(--ink-2); }
.f-meta{ display:flex; align-items:center; gap:10px; margin-bottom:15px; }
.f-src{
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ink);
  background:var(--butter);
  padding:4px 9px;
  border-radius:6px;
}
.f-pg{ font-size:9.5px; color:var(--muted); font-weight:500; letter-spacing:.04em; }
.f-quote{
  font-size:12px;
  line-height:1.6;
  color:var(--ink-2);
  font-style:italic;
  background:var(--cream);
  border-radius:9px;
  padding:14px 17px;
  position:relative;
}
.f-quote[lang]::before{
  content:attr(lang);
  text-transform:uppercase;
  position:absolute;
  top:-7px;
  right:12px;
  font-size:7.5px;
  letter-spacing:.1em;
  font-weight:700;
  font-style:normal;
  color:var(--muted);
  background:var(--white);
  border:1px solid var(--hair);
  padding:1px 5px;
  border-radius:4px;
}

/* amber findings — full-width, roomier single column */
.amber-card{
  background:var(--white);
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:11px 16px;
  border-left:3px solid var(--amber);
  margin-bottom:6px;
}
.ac-head{ display:flex; align-items:center; gap:8px; margin-bottom:3px; }
.ac-title{ font-size:13px; font-weight:600; line-height:1.2; }
.ac-text{ font-size:11px; line-height:1.45; color:var(--ink-2); margin-bottom:5px; }
.ac-meta{ display:flex; align-items:center; gap:10px; }
.ac-src{
  font-size:9px;
  letter-spacing:.07em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ink);
  background:var(--butter);
  padding:3px 9px;
  border-radius:6px;
}
.ac-pg{ font-size:9.5px; color:var(--muted); font-weight:500; letter-spacing:.03em; }

/* ============================================================
   THE OPPORTUNITY — magazine pull-quote findings (green)
   ============================================================ */
.opp-item{
  position:relative;
  padding:24px 0 24px 56px;
  border-top:1px solid var(--hair);
}
.opp-item:first-child{ border-top:none; padding-top:0; }
.opp-item::before{
  content:"“";
  position:absolute;
  left:0; top:16px;
  font-size:52px;
  line-height:1;
  font-weight:700;
  color:var(--green);
}
.opp-tag{
  font-size:9.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--green);
  margin-bottom:8px;
}
.opp-quote{
  font-size:20px;
  font-weight:600;
  letter-spacing:-.015em;
  line-height:1.28;
  margin-bottom:9px;
}
.opp-text{ font-size:12px; line-height:1.62; color:var(--ink-2); max-width:94%; }

.favor-intro{ font-size:12px; line-height:1.6; color:var(--ink-2); margin-bottom:20px; max-width:90%; }
.favor-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 32px;
}
.favor-item{ padding:13px 0; border-top:1px solid var(--hair); }
.favor-item:nth-child(1), .favor-item:nth-child(2){ border-top:none; padding-top:0; }
.favor-lead{ font-size:12px; font-weight:700; margin-bottom:3px; letter-spacing:-.005em; }
.favor-sub{ font-size:10.5px; color:var(--ink-2); line-height:1.5; }

/* ============================================================
   DOCUMENT SCORECARD
   ============================================================ */
.score-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11px;
}
.score-card{
  background:var(--white);
  border-radius:11px;
  box-shadow:var(--shadow);
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sc-name{ font-size:12px; font-weight:500; letter-spacing:-.005em; }
.chip{
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.04em;
  padding:4px 11px;
  border-radius:100px;
  white-space:nowrap;
  flex:0 0 auto;
}
.chip-ok{ background:var(--green-tint); color:var(--green); }
.chip-attention{ background:var(--amber-tint); color:var(--amber); }
.chip-issue{ background:var(--red-tint); color:var(--red); }
.score-legend{
  display:flex;
  gap:26px;
  flex-wrap:wrap;
  margin-top:22px;
}
.lg-item{ font-size:10.5px; color:var(--ink-2); display:inline-flex; align-items:center; gap:8px; }

/* ============================================================
   INVESTMENT / FINANCIAL OVERVIEW
   ============================================================ */
.exposure-total{ margin-bottom:22px; }
.et-num{ font-size:54px; font-weight:700; letter-spacing:-.04em; line-height:1; }
.et-num.sm{ font-size:38px; }
.et-cap{ font-size:11.5px; color:var(--ink-2); margin-top:8px; letter-spacing:.02em; }

.cost-table{ display:flex; flex-direction:column; margin-bottom:6px; }
.cost-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  padding:12.5px 0;
  border-bottom:1px solid var(--hair);
  font-size:12.5px;
  color:var(--ink-2);
  font-weight:500;
}
.cost-row .cr-val{ font-weight:600; color:var(--ink); white-space:nowrap; }
.cost-row.cost-total{
  border-bottom:none;
  border-top:2px solid var(--ink);
  margin-top:2px;
  padding-top:16px;
  font-size:14px;
  color:var(--ink);
  font-weight:700;
}
.cost-row.cost-total .cr-val{ font-size:19px; }
.cost-foot{ font-size:10.5px; color:var(--muted); line-height:1.55; margin-top:16px; }

.stacked-bar{
  display:flex;
  height:20px;
  border-radius:7px;
  overflow:hidden;
  margin-bottom:28px;
}
.stacked-bar .seg{ height:100%; }
.exposure-rows{ display:flex; flex-direction:column; gap:19px; }
.exp-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.exp-name{ font-size:12px; font-weight:500; flex:1; }
.exp-val{ font-size:13.5px; font-weight:700; letter-spacing:-.02em; }
.exp-track{ height:7px; background:var(--butter); border-radius:100px; overflow:hidden; }
.exp-fill{ height:100%; border-radius:100px; }

.cta-note{
  background:var(--butter);
  border-radius:12px;
  padding:16px 20px;
  font-size:11.5px;
  line-height:1.6;
  color:var(--ink-2);
  margin-top:20px;
}
.cta-note strong{ color:var(--ink); font-weight:700; }

/* ============================================================
   COMPLETENESS
   ============================================================ */
.completeness-count{
  font-size:14px;
  color:var(--ink-2);
  font-weight:500;
  margin-bottom:24px;
}
.cc-num{ font-size:22px; font-weight:700; color:var(--ink); letter-spacing:-.03em; }
.pill-grid{ display:flex; flex-wrap:wrap; gap:11px; }
.pill{
  font-size:12px;
  font-weight:500;
  padding:10px 17px;
  border-radius:100px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.pill::before{ content:""; width:8px; height:8px; border-radius:50%; }
.pill-present{ background:var(--green-tint); color:#2c6b44; }
.pill-present::before{ background:var(--green); }
.pill-missing{ background:var(--amber-tint); color:#9a6a14; }
.pill-missing::before{ background:var(--amber); }
.pill-sm{ padding:6px 12px; font-size:10px; }
.pill-legend{ display:flex; gap:26px; margin-top:28px; align-items:center; }

/* ============================================================
   FINAL PURCHASE STRATEGY
   ============================================================ */
.strategy-list{ display:flex; flex-direction:column; margin:18px 0 22px; }
.strategy-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:13px 0;
  border-top:1px solid var(--hair);
  font-size:12.5px;
  line-height:1.6;
  color:var(--ink-2);
}
.strategy-item:first-child{ border-top:none; padding-top:0; }
.strategy-item .dot{ margin-top:6px; }

.rate-table{
  display:flex;
  flex-direction:column;
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  margin:20px 0 16px;
}
.rate-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  padding:13px 24px;
  border-bottom:1px solid var(--hair);
}
.rate-row:last-child{ border-bottom:none; }
.rate-row.rate-head{
  background:var(--butter);
  font-size:9.5px;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--ink-2);
  padding:12px 24px;
}
.rv-offer{ font-size:13.5px; font-weight:700; letter-spacing:-.01em; }
.rv-payment{ font-size:12.5px; color:var(--ink-2); font-weight:500; }

.resp-bubble{
  background:var(--butter);
  border-radius:var(--radius);
  padding:20px 24px;
  font-size:12px;
  line-height:1.65;
  color:var(--ink-2);
  margin-bottom:24px;
}
.resp-bubble strong{ color:var(--ink); font-weight:700; }

/* ============================================================
   METHODOLOGY
   ============================================================ */
.method-steps{ display:flex; flex-direction:column; gap:16px; margin-bottom:34px; }
.method-step{
  display:flex;
  gap:18px;
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px 22px;
  align-items:flex-start;
}
.ms-num{
  font-size:26px;
  font-weight:700;
  color:var(--ink);
  line-height:1;
  flex:0 0 auto;
  width:34px;
  letter-spacing:-.04em;
}
.ms-title{ font-size:15px; font-weight:600; margin-bottom:7px; letter-spacing:-.01em; }
.ms-text{ font-size:12px; line-height:1.6; color:var(--ink-2); }

.signoff{
  background:var(--ink);
  border-radius:var(--radius);
  padding:26px 28px;
  display:flex;
  gap:20px;
  align-items:stretch;
}
.signoff-bar{ width:4px; border-radius:100px; background:var(--amber); flex:0 0 auto; }
.signoff-text{
  font-size:13px;
  line-height:1.65;
  color:#f3efe2;
  font-weight:500;
  text-wrap:pretty;
}

/* ============================================================
   PRINT
   ============================================================ */
@page{ size:A4; margin:0; }
@media print{
  body{ background:var(--white); }
  .viewer{ display:block; padding:0; gap:0; }
  .page{
    width:210mm;
    height:297mm;
    min-height:297mm;
    box-shadow:none;
    break-after:page;
    page-break-after:always;
  }
  .page:last-child{ break-after:auto; page-break-after:auto; }
  .finding, .hcard, .score-card, .method-step, .compact-finding, .agent-card, .rm-item{
    break-inside:avoid;
  }
  /* Blurred box-shadow renders fine in desktop PDF viewers, but most mobile PDF
     readers (iOS Preview/Quick Look, Android's built-in viewer, Mail/Files
     previews) can't render a soft blurred shadow and fall back to painting a
     flat, opaque grey rectangle instead — showing up as an ugly grey box around
     every card. A thin hairline border gives the same visual separation from
     the cream page background without relying on a shadow effect at all.
     Only top/right/bottom are set here — .finding, .amber-card and .cs-card
     all carry a colour-coded border-left (red/amber/green accent) that must
     survive untouched, so the left edge is deliberately left alone. */
  .agent-card, .hcard, .finding, .amber-card, .score-card, .rate-table,
  .method-step, .cs-card, .cs-action{
    box-shadow:none;
    border-top:1px solid var(--hair);
    border-right:1px solid var(--hair);
    border-bottom:1px solid var(--hair);
  }
  .agent-card, .hcard, .score-card, .rate-table, .method-step, .cs-action{
    border-left:1px solid var(--hair);
  }
  *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}

/* ============================================================
   PRESERVED FROM DOSSIERPROOF PLATFORM
   (classes not in the design bundle but used by the report /
    client summary — kept so nothing downstream breaks)
   ============================================================ */

/* "+ N more findings" note on capped findings pages */
.f-note{
  font-size:11px;
  color:var(--muted);
  font-style:italic;
  letter-spacing:.01em;
  margin:-4px 0 18px 2px;
}

/* exposure footnote */
.exp-foot{ font-size:10.5px; color:var(--muted); line-height:1.55; margin-top:22px; }

/* green summary (legacy collapsed green list — retained for safety) */
.green-summary{
  background:var(--green-tint);
  border-radius:var(--radius);
  padding:22px 24px;
  margin-top:18px;
}
.gs-head{ display:flex; align-items:center; gap:10px; margin-bottom:5px; }
.gs-title{ font-size:15px; font-weight:600; color:var(--green); letter-spacing:-.01em; }
.gs-note{ font-size:11px; color:var(--ink-2); margin-bottom:16px; margin-left:20px; }
.gs-list{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:9px 28px; margin-left:20px; }
.gs-list li{ font-size:11.5px; color:var(--ink); font-weight:500; position:relative; padding-left:16px; }
.gs-list li::before{ content:""; position:absolute; left:0; top:6px; width:6px; height:6px; border-radius:50%; background:var(--green); }

/* ============================================================
   CLIENT SUMMARY (plain-language, buyer-facing)
   ============================================================ */
.cs-lead{ font-size:15px; line-height:1.72; color:var(--ink-2); margin-bottom:26px; max-width:92%; text-wrap:pretty; }
.cs-card{ background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); padding:22px 24px; margin-bottom:16px; border-left:4px solid var(--red); }
.cs-card-amber{ border-left-color:var(--amber); }
.cs-card-title{ font-size:16px; font-weight:600; letter-spacing:-.01em; line-height:1.3; margin-bottom:9px; }
.cs-card-text{ font-size:12.5px; line-height:1.6; color:var(--ink-2); }
.cs-next{ font-size:12px; line-height:1.55; color:var(--ink); background:var(--green-tint); border-radius:9px; padding:11px 14px; margin-top:13px; }
.cs-next b{ color:var(--green); text-transform:uppercase; font-size:9.5px; letter-spacing:.1em; display:block; margin-bottom:3px; }
.cs-clear{ background:var(--green-tint); border-radius:var(--radius); padding:26px 28px; display:flex; align-items:center; gap:16px; }
.cs-clear .dot{ width:13px; height:13px; }
.cs-clear-title{ font-size:16px; font-weight:600; color:var(--green); }
.cs-next-block{ background:var(--ink); border-radius:var(--radius); padding:24px 26px; color:#f3efe2; margin-top:8px; }
.cs-next-block h3{ font-size:15px; font-weight:600; margin-bottom:9px; color:#fff; }
.cs-next-block p{ font-size:12.5px; line-height:1.65; color:#e7e2d0; font-weight:400; }
.cs-signoff{ font-size:10.5px; line-height:1.55; color:var(--muted); margin-top:22px; font-style:italic; }
.cs-group-title{ font-size:13px; font-weight:600; letter-spacing:.02em; margin:22px 0 13px; padding-top:14px; border-top:1px solid var(--hair); }
.cs-group-title:first-child{ margin-top:0; padding-top:0; border-top:none; }
.cs-action{ display:flex; gap:16px; align-items:flex-start; background:var(--white); border-radius:12px; box-shadow:var(--shadow); padding:16px 18px; margin-bottom:12px; }
.cs-action-num{ flex:0 0 auto; width:26px; height:26px; border-radius:50%; background:var(--ink); color:var(--cream); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.cs-action-body{ flex:1; }
.cs-action-title{ font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:3px; }
.cs-action-text{ font-size:11.5px; line-height:1.5; color:var(--ink-2); }

@media print{
  .green-summary, .cs-card, .cs-clear, .cs-next-block, .cs-action, .opp-item{ break-inside:avoid; }
}
