/* Aurora v2 design system — extracted from Track A v2 (Claude Design handoff 2026-05-22).
   Shared across all NewLeaf fulfillment packet HTML files. */

:root{
    /* Brand */
    --cp-navy:#0E1E36;
    --cp-navy-mid:#1A2A47;
    --cp-blue:#2B5797;
    --cp-blue-dark:#1E3D6B;
    --cp-amber:#E8920A;
    --cp-amber-dark:#D4920F;
    --cp-amber-light:#FFF4DD;
    --cp-amber-pale:#FBF6EC;
    --cream:#F8F7F4;
    --cream-2:#F0ECE6;
    --paper:#FFFFFF;
    /* Tint bands */
    --tint-navy-1:#0E1E36;
    --tint-navy-2:#1B3257;
    --tint-navy-3:#264472;
    --tint-amber:#FBF1DB;
    --tint-amber-2:#F5E2B8;
    --tint-sage:#ECF1E8;
    --tint-sage-2:#D8E3D2;
    --tint-sage-border:#C5D3BC;
    --tint-blue:#EAF0F8;
    --tint-blue-2:#D6E2F1;
    --tint-blue-border:#B7C9E3;
    --tint-rose:#F8EDE8;
    --sage:#5F7A53;
    --sage-dark:#3F5638;
    /* Neutrals */
    --warm-border:#E5E1DB;
    --warm-muted:#6B6560;
    --warm-track:#B5B0A7;
    --slate-50:#F8FAFC;
    --slate-100:#F1F5F9;
    --slate-200:#E2E8F0;
    --slate-300:#CBD5E1;
    --slate-400:#94A3B8;
    --slate-500:#64748B;
    --slate-600:#475569;
    --slate-700:#334155;
    --slate-800:#1E293B;
    --slate-900:#0F172A;
    /* Status */
    --success:#047857;
    --success-bg:#ECFDF5;
    --success-border:#A7F3D0;
    --warning:#B45309;
    --warning-bg:#FFFBEB;
    --warning-border:#FCD34D;
    --info:#1E40AF;
    --info-bg:#EFF6FF;
    --info-border:#BFDBFE;
    /* Tokens */
    --radius:10px;
    --radius-sm:6px;
    --radius-md:8px;
    --radius-lg:10px;
    --radius-xl:14px;
    --radius-2xl:18px;
    --shadow-card:0 8px 32px -8px rgba(14,30,54,.08), 0 4px 16px -4px rgba(14,30,54,.04);
    --shadow-card-hover:0 12px 40px -8px rgba(14,30,54,.12), 0 6px 20px -4px rgba(14,30,54,.06);
    --shadow-sm:0 1px 2px rgba(14,30,54,.04), 0 1px 1px rgba(14,30,54,.03);
    --ring:1px solid rgba(14,30,54,.08);
    --ring-strong:1px solid rgba(14,30,54,.14);
    /* Type */
    --font-sans:"Geist","Inter","Helvetica Neue",system-ui,sans-serif;
    --font-display:"Fraunces","Geist",serif;
    --font-mono:"Geist Mono",ui-monospace,Menlo,monospace;
  }

  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    font-family:var(--font-sans);
    background:var(--cream);
    color:var(--slate-800);
    font-size:15px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    /* Subtle warm paper grain so cream sections don't feel sterile */
    background-image:
      radial-gradient(900px 500px at 100% -50px, rgba(232,146,10,.06), transparent 70%),
      radial-gradient(800px 600px at -10% 30%, rgba(43,87,151,.05), transparent 70%);
    background-attachment:fixed;
  }
  a{color:inherit}
  ::selection{background:var(--cp-amber-light);color:var(--cp-navy)}

  /* ===== Top bar ===== */
  .topbar{
    position:sticky; top:0; z-index:50;
    background:rgba(248,247,244,.85);
    backdrop-filter:saturate(140%) blur(10px);
    -webkit-backdrop-filter:saturate(140%) blur(10px);
    border-bottom:1px solid var(--warm-border);
  }
  .topbar-inner{
    max-width:1320px; margin:0 auto;
    display:flex; align-items:center; gap:20px;
    padding:14px 32px;
  }
  .brand{display:flex; align-items:center; gap:10px; min-width:0}
  .brand img{width:30px; height:30px; border-radius:50%; flex:none}
  .brand-text{display:flex; flex-direction:column; line-height:1.1; min-width:0}
  .brand-text .a{font-weight:600; color:var(--cp-navy); font-size:13.5px; letter-spacing:-.01em}
  .brand-text .b{font-size:11px; color:var(--warm-muted)}

  .topbar-meta{display:flex; align-items:center; gap:10px; margin-left:auto; flex-wrap:wrap}
  .chip{
    display:inline-flex; align-items:center; gap:6px;
    padding:5px 10px; font-size:11.5px; font-weight:500;
    border-radius:999px; background:var(--paper); border:1px solid var(--warm-border);
    color:var(--slate-700);
  }
  .chip svg{width:13px; height:13px}
  .chip.amber{background:var(--cp-amber-light); border-color:#F4D58D; color:#7B4E07}
  .chip.navy{background:var(--cp-navy); color:#fff; border-color:transparent}
  .chip.green{background:var(--success-bg); border-color:var(--success-border); color:var(--success)}
  .chip strong{font-weight:600}

  .countdown{font-variant-numeric:tabular-nums}

  /* ===== Layout ===== */
  .shell{
    max-width:1320px; margin:0 auto; padding:32px;
    display:grid; grid-template-columns:220px 1fr; gap:48px;
  }
  @media (max-width:980px){
    .shell{grid-template-columns:1fr; padding:20px; gap:0}
    .toc{display:none}
  }

  /* Left TOC */
  .toc{
    position:sticky; top:84px; align-self:start;
    max-height:calc(100vh - 100px); overflow:auto;
    padding-right:8px;
  }
  .toc-label{
    text-transform:uppercase; font-size:10.5px; letter-spacing:.08em;
    font-weight:600; color:var(--cp-amber-dark);
    margin-bottom:12px;
  }
  .toc ol{list-style:none; margin:0; padding:0; counter-reset:toc; display:flex; flex-direction:column; gap:2px}
  .toc li{counter-increment:toc}
  .toc a{
    display:flex; align-items:baseline; gap:8px;
    padding:7px 10px; border-radius:8px;
    font-size:13px; color:var(--slate-600);
    text-decoration:none; line-height:1.35;
    border-left:2px solid transparent;
    transition:background .15s, color .15s, border-color .15s;
  }
  .toc a:hover{background:rgba(14,30,54,.04); color:var(--cp-navy)}
  .toc a.active{color:var(--cp-navy); background:rgba(232,146,10,.08); border-left-color:var(--cp-amber)}
  .toc a::before{
    content:counter(toc,decimal-leading-zero);
    font-family:var(--font-mono); font-size:10.5px; color:var(--warm-track);
    flex:none; width:22px;
  }
  .toc a.active::before{color:var(--cp-amber-dark)}

  /* Main column */
  main{min-width:0; max-width:920px}

  /* ===== Section primitives ===== */
  section{padding:48px 0; border-bottom:1px solid var(--warm-border); position:relative}
  section:first-of-type{padding-top:24px}
  section:last-of-type{border-bottom:none}

  /* Tinted section bands — full-width within main column, slightly inset */
  section.band{
    margin:18px 0; padding:44px 36px;
    border:1px solid transparent; border-radius:24px;
    border-bottom:1px solid transparent;
  }
  section.band.amber{
    background:linear-gradient(180deg, var(--tint-amber) 0%, #FCE9C2 100%);
    border-color:#F0DCA0;
  }
  section.band.sage{
    background:linear-gradient(180deg, var(--tint-sage) 0%, #DCE7D5 100%);
    border-color:var(--tint-sage-border);
  }
  section.band.blue{
    background:linear-gradient(180deg, var(--tint-blue) 0%, #DBE6F4 100%);
    border-color:var(--tint-blue-border);
  }
  section.band.navy{
    background:
      radial-gradient(800px 400px at 80% 0%, rgba(232,146,10,.18), transparent 60%),
      linear-gradient(160deg, var(--tint-navy-1) 0%, var(--tint-navy-2) 60%, var(--tint-navy-3) 100%);
    color:#F5EEDC;
    border-color:transparent;
    box-shadow:0 24px 60px -28px rgba(14,30,54,.35);
  }
  section.band.navy h1, section.band.navy h2, section.band.navy h3, section.band.navy h4{color:#FFF}
  section.band.navy .lede{color:rgba(255,255,255,.78)}
  section.band.navy .section-intro{color:rgba(255,255,255,.7)}
  section.band.navy .eyebrow{color:#F3B254}
  section.band.navy .eyebrow .num{color:rgba(255,255,255,.4)}
  section.band + section{border-top:none}
  @media (max-width:720px){ section.band{padding:36px 20px; margin:12px 0} }

  .eyebrow{
    display:inline-flex; align-items:center; gap:6px;
    text-transform:uppercase; font-size:11px; letter-spacing:.08em;
    font-weight:600; color:var(--cp-amber-dark);
    margin-bottom:14px;
  }
  .eyebrow .num{
    font-family:var(--font-mono); font-size:10.5px;
    color:var(--warm-track); letter-spacing:0;
  }
  .eyebrow .num::before{content:"§"}
  h1,h2,h3,h4{margin:0; color:var(--cp-navy); letter-spacing:-.02em; font-weight:600}
  h1{font-family:var(--font-display); font-weight:500; font-size:44px; line-height:1.08; letter-spacing:-.015em}
  h2{font-size:28px; line-height:1.2; margin-bottom:8px}
  h3{font-size:18px; line-height:1.3}
  h4{font-size:14px; line-height:1.4}
  .lede{font-size:17px; color:var(--slate-600); line-height:1.55; max-width:62ch; margin-top:0}
  .section-intro{color:var(--slate-600); font-size:15px; max-width:64ch; margin:0 0 24px}

  /* ===== Hero ===== */
  .hero{padding:56px 36px 64px}
  .hero h1{margin-bottom:18px; max-width:18ch}
  .hero h1 em{font-style:italic; color:#F3B254; font-weight:500}
  .hero .lede{max-width:60ch}
  .hero-facts{
    margin-top:36px; display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr)); gap:0;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.14);
    border-radius:var(--radius-xl);
    overflow:hidden;
    backdrop-filter:blur(4px);
  }
  .hero-facts > div{padding:18px 20px; border-right:1px solid rgba(255,255,255,.12)}
  .hero-facts > div:last-child{border-right:none}
  .hero-facts .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:#F3B254; font-weight:600}
  .hero-facts .val{font-size:15px; color:#FFF; margin-top:4px; font-weight:500; line-height:1.3}
  .hero-facts .val span{color:rgba(255,255,255,.55) !important}
  @media (max-width:720px){
    .hero h1{font-size:34px}
    .hero-facts{grid-template-columns:repeat(2,1fr)}
    .hero-facts > div:nth-child(2){border-right:none}
    .hero-facts > div:nth-child(-n+2){border-bottom:1px solid var(--warm-border)}
  }

  .read-note{
    margin-top:28px; display:flex; gap:14px; align-items:flex-start;
    padding:16px 18px; border-radius:var(--radius-xl);
    background:rgba(232,146,10,.14);
    border:1px solid rgba(243,178,84,.45);
  }
  .read-note svg{flex:none; color:#F3B254; margin-top:2px}
  .read-note p{margin:0; color:rgba(255,255,255,.86); font-size:14px}
  .read-note b{color:#FFF}

  /* ===== Snapshot stats ===== */
  .stats{
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px;
  }
  .stat{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    padding:18px 18px 16px; box-shadow:var(--shadow-sm);
    position:relative; overflow:hidden;
  }
  .stat::before{
    content:""; position:absolute; left:0; top:0; right:0; height:3px;
    background:var(--accent, var(--cp-amber));
  }
  .stat.t-amber{--accent:var(--cp-amber)}
  .stat.t-blue{--accent:var(--cp-blue)}
  .stat.t-sage{--accent:var(--sage)}
  .stat.t-navy{--accent:var(--cp-navy)}
  .stat.t-rose{--accent:#B14A4A}
  .stat .k{font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent, var(--cp-amber-dark)); font-weight:600}
  .stat .v{font-family:var(--font-display); font-size:30px; color:var(--cp-navy); font-weight:500; line-height:1.05; margin-top:8px; letter-spacing:-.02em}
  .stat .v .unit{font-family:var(--font-sans); font-size:13px; color:var(--warm-muted); margin-left:6px; font-weight:400}
  .stat .s{font-size:12.5px; color:var(--slate-600); margin-top:6px; line-height:1.35}
  @media (max-width:720px){.stats{grid-template-columns:repeat(2,1fr)}}

  /* ===== Forecast table ===== */
  .forecast{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    overflow:hidden; box-shadow:var(--shadow-sm); margin-top:8px;
  }
  .forecast-row{
    display:grid; grid-template-columns:2fr 1fr;
    align-items:center; padding:14px 18px;
    border-top:1px solid var(--warm-border);
  }
  .forecast-row:first-child{border-top:none; background:var(--cream); padding:11px 18px}
  .forecast-row.head{font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--warm-muted); font-weight:600}
  .forecast-row .when{color:var(--cp-navy); font-weight:500; font-size:14px}
  .forecast-row .when small{display:block; color:var(--warm-muted); font-weight:400; font-size:12px; margin-top:2px}
  .forecast-row .num{font-family:var(--font-mono); font-size:14px; color:var(--slate-700)}
  .forecast-row .rev{color:var(--success); font-weight:500; font-family:var(--font-mono); font-size:13.5px}
  @media (max-width:720px){.forecast-row{grid-template-columns:1fr; gap:6px}.forecast-row.head{display:none}}

  /* ===== Two-col locked / flexible ===== */
  .twocol{display:grid; grid-template-columns:1fr 1fr; gap:18px}
  @media (max-width:780px){.twocol{grid-template-columns:1fr}}
  .col-card{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    padding:22px 22px 18px; box-shadow:var(--shadow-sm);
  }
  .col-card.locked{border-left:3px solid var(--cp-blue)}
  .col-card.flex{border-left:3px solid var(--cp-amber)}
  .col-head{
    display:flex; align-items:center; gap:10px; margin-bottom:6px;
  }
  .col-head h3{flex:1}
  .pill{
    font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:600;
    padding:3px 8px; border-radius:999px;
  }
  .pill.blue{background:#E6EEFB; color:var(--cp-blue-dark)}
  .pill.amber{background:var(--cp-amber-light); color:#7B4E07}
  .col-card .hint{color:var(--warm-muted); font-size:12.5px; margin:0 0 14px}
  .col-card ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px}
  .col-card li{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--slate-700); line-height:1.5}
  .col-card li .ic{flex:none; width:16px; height:16px; margin-top:2px}
  .col-card.locked li .ic{color:var(--cp-blue)}
  .col-card.flex li .ic{color:var(--cp-amber-dark)}
  .col-card li b{color:var(--cp-navy); font-weight:600}

  /* ===== Phase header ===== */
  .phase-header{
    display:flex; align-items:flex-end; justify-content:space-between; gap:18px;
    margin:8px 0 18px;
  }
  .phase-header h3{font-family:var(--font-display); font-weight:500; font-size:24px}
  .phase-meta{
    display:flex; flex-direction:column; align-items:flex-end; gap:4px;
  }
  .phase-meta .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--warm-muted); font-weight:600}
  .phase-meta .val{font-family:var(--font-mono); font-size:13px; color:var(--cp-navy)}

  /* ===== Page cards ===== */
  .pages{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px}
  .page-card{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-lg);
    padding:16px 16px 14px; box-shadow:var(--shadow-sm);
    display:flex; flex-direction:column; gap:8px;
    transition:transform .2s, box-shadow .2s;
    border-left:3px solid var(--card-accent, transparent);
  }
  .page-card.urgent{
    --card-accent: var(--cp-amber);
    background:linear-gradient(180deg, #FFFBEF 0%, #FFF 70%);
  }
  .page-card.service{ --card-accent: var(--cp-blue); }
  .page-card.location{ --card-accent: var(--sage); }
  .page-card.parent{ --card-accent: var(--warm-track); }
  .page-card.info{ --card-accent: #8B5CF6; }
  .page-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-card)}
  .page-card .pc-top{display:flex; align-items:baseline; gap:10px}
  .page-card .pc-num{
    font-family:var(--font-mono); font-size:11px; color:var(--warm-track);
    padding:2px 7px; border-radius:5px; background:var(--cream);
  }
  .page-card.urgent .pc-num{background:var(--cp-amber-light); color:#8B5A0A}
  .page-card .pc-title{font-weight:600; color:var(--cp-navy); font-size:14.5px; line-height:1.3; flex:1}
  .page-card .pc-desc{color:var(--slate-600); font-size:12.5px; line-height:1.45; margin:0}
  .page-card .pc-tag{
    align-self:flex-start; margin-top:2px;
    font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:600;
    color:var(--card-accent, var(--cp-amber-dark));
  }

  /* CMS chip grid */
  .cms-block{
    background:linear-gradient(180deg, var(--tint-sage), #E0EBDA);
    border:1px solid var(--tint-sage-border);
    border-radius:var(--radius-xl);
    padding:24px; box-shadow:var(--shadow-sm); margin-top:14px;
    position:relative; overflow:hidden;
  }
  .cms-block::before{
    content:""; position:absolute; right:-40px; top:-40px;
    width:180px; height:180px; border-radius:50%;
    background:radial-gradient(circle, rgba(95,122,83,.18), transparent 70%);
    pointer-events:none;
  }
  .cms-head{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:6px; position:relative}
  .cms-head h4{font-size:14.5px; color:var(--sage-dark)}
  .cms-head .mono{font-family:var(--font-mono); font-size:12px; color:var(--sage-dark); background:rgba(255,255,255,.7); padding:3px 8px; border-radius:6px; border:1px solid rgba(95,122,83,.2)}
  .cms-desc{color:var(--slate-700); font-size:13px; margin:0 0 14px; max-width:64ch; position:relative}
  .cms-cities{display:flex; flex-wrap:wrap; gap:6px; position:relative}
  .city-chip{
    display:inline-flex; align-items:center; gap:6px;
    padding:6px 11px; font-size:12.5px; color:var(--sage-dark);
    background:rgba(255,255,255,.85); border:1px solid rgba(95,122,83,.25); border-radius:999px;
    font-weight:500;
  }
  .city-chip .dot{width:5px; height:5px; border-radius:50%; background:var(--sage)}

  /* Compliance list */
  .compliance{
    background:linear-gradient(180deg, var(--tint-blue), #DCE7F4);
    border:1px solid var(--tint-blue-border);
    border-radius:var(--radius-xl);
    padding:24px; box-shadow:var(--shadow-sm); margin-top:14px;
  }
  .compliance-head{display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:14px}
  .compliance-head h4{font-size:14.5px; color:var(--cp-blue-dark)}
  .compliance-head .note{color:var(--cp-blue-dark); opacity:.7; font-size:12px; max-width:38ch; text-align:right}
  .clist{display:grid; grid-template-columns:1fr 1fr; gap:8px}
  @media (max-width:640px){.clist{grid-template-columns:1fr}}
  .clist > div{
    display:flex; gap:10px; align-items:center;
    padding:10px 12px; background:rgba(255,255,255,.85); border:1px solid rgba(43,87,151,.18); border-radius:8px;
    font-size:13px; color:var(--cp-blue-dark);
  }
  .clist > div svg{flex:none; color:var(--cp-blue); width:15px; height:15px}

  /* ===== Components table ===== */
  .comp-table{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    overflow:hidden; box-shadow:var(--shadow-sm);
  }
  .comp-row{
    display:grid; grid-template-columns:200px 1fr;
    border-top:1px solid var(--warm-border);
  }
  .comp-row:first-child{border-top:none}
  .comp-row > div{padding:14px 18px}
  .comp-row .cell-name{
    background:var(--cream); display:flex; align-items:center; gap:10px;
    font-weight:600; color:var(--cp-navy); font-size:13.5px;
    border-right:1px solid var(--warm-border);
  }
  .comp-row .cell-name svg{color:var(--cp-blue); width:16px; height:16px; flex:none}
  .comp-row .cell-spec{color:var(--slate-700); font-size:13.5px; line-height:1.5}
  .comp-row .cell-spec b{color:var(--cp-navy); font-weight:600}
  .comp-row .cell-spec .embed-tag{
    display:inline-block; font-family:var(--font-mono); font-size:11px;
    padding:1px 6px; border-radius:4px; background:var(--info-bg); color:var(--info);
    margin-right:6px;
  }
  @media (max-width:720px){.comp-row{grid-template-columns:1fr}.comp-row .cell-name{border-right:none; border-bottom:1px solid var(--warm-border)}}

  /* ===== Requirements blocks ===== */
  .req-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
  @media (max-width:780px){.req-grid{grid-template-columns:1fr}}
  .req-card{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    padding:20px 22px; box-shadow:var(--shadow-sm);
  }
  .req-card h4{display:flex; align-items:center; gap:8px; margin-bottom:12px; font-size:13.5px}
  .req-card h4 svg{color:var(--cp-amber-dark); width:16px; height:16px}
  .req-card ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px}
  .req-card li{display:flex; gap:9px; align-items:flex-start; font-size:13px; color:var(--slate-700); line-height:1.5}
  .req-card li::before{content:""; flex:none; width:5px; height:5px; border-radius:50%; background:var(--cp-amber); margin-top:9px}
  .req-card li b{color:var(--cp-navy); font-weight:600}
  .req-card .metric{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--font-mono); font-size:12px;
    padding:4px 9px; border-radius:6px;
    background:var(--cream); color:var(--cp-navy);
    margin:2px 4px 2px 0;
  }
  .req-card .metric b{color:var(--cp-amber-dark); font-weight:600}

  /* ===== Add-ons ===== */
  .addons{display:grid; grid-template-columns:1fr 1fr; gap:14px}
  @media (max-width:780px){.addons{grid-template-columns:1fr}}
  .addon{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    padding:18px 20px; box-shadow:var(--shadow-sm);
    display:flex; flex-direction:column; gap:8px;
    position:relative; overflow:hidden;
  }
  .addon.rec{
    border-left:3px solid var(--cp-amber);
    background:linear-gradient(180deg, #FFFBF1 0%, #FFF 60%);
  }
  .addon.strong{
    border-left:3px solid var(--success);
    background:linear-gradient(180deg, #F0FAF4 0%, #FFF 60%);
  }
  .addon.skip{border-left:3px solid var(--warm-track); opacity:.85; background:var(--cream)}
  .addon.cond{border-left:3px solid var(--cp-blue); background:linear-gradient(180deg, #F4F8FE 0%, #FFF 60%)}
  .addon-top{display:flex; align-items:center; gap:10px}
  .addon-num{
    font-family:var(--font-mono); font-size:11px; color:var(--warm-track);
    width:22px; flex:none;
  }
  .addon h4{flex:1; font-size:14.5px; color:var(--cp-navy)}
  .addon .badge{
    font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:600;
    padding:3px 8px; border-radius:999px; white-space:nowrap;
  }
  .badge.go{background:var(--success-bg); color:var(--success); border:1px solid var(--success-border)}
  .badge.strong{background:#D1FAE5; color:#065F46; border:1px solid #6EE7B7}
  .badge.maybe{background:var(--cp-amber-light); color:#7B4E07; border:1px solid #F0DCA0}
  .badge.cond{background:var(--info-bg); color:var(--info); border:1px solid var(--info-border)}
  .badge.skip{background:var(--cream-2); color:var(--warm-muted); border:1px solid var(--warm-border)}
  .addon p{margin:0; color:var(--slate-600); font-size:13px; line-height:1.5}
  .addon .effort{
    margin-top:auto; padding-top:10px; border-top:1px dashed rgba(14,30,54,.1);
    display:flex; justify-content:space-between; align-items:center;
    font-family:var(--font-mono); font-size:11.5px; color:var(--warm-muted);
  }
  .addon .effort b{color:var(--cp-navy); font-weight:600}

  /* ===== Risks ===== */
  .risks{display:flex; flex-direction:column; gap:12px}
  .risk{
    display:grid; grid-template-columns:36px 1fr;
    gap:14px; padding:18px 20px;
    background:rgba(255,255,255,.7);
    border:1px solid rgba(180,83,9,.18);
    border-radius:var(--radius-xl);
    box-shadow:var(--shadow-sm);
    border-left:3px solid var(--cp-amber);
  }
  .risk .icon{
    width:32px; height:32px; border-radius:8px;
    background:linear-gradient(135deg, var(--cp-amber) 0%, var(--cp-amber-dark) 100%);
    color:#FFF;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 12px -4px rgba(232,146,10,.45);
  }
  .risk .icon svg{width:16px; height:16px}
  .risk h4{font-size:14.5px; color:var(--cp-navy); margin-bottom:4px}
  .risk p{margin:0; color:var(--slate-700); font-size:13.5px; line-height:1.55}
  .risk p b{color:var(--cp-navy); font-weight:600}

  /* ===== Handoffs ===== */
  .handoff{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    box-shadow:var(--shadow-sm); overflow:hidden;
  }
  .ho-row{
    display:grid; grid-template-columns:1fr 1.4fr 1.4fr;
    border-top:1px solid var(--warm-border);
  }
  .ho-row:first-child{border-top:none}
  .ho-row > div{padding:16px 18px}
  .ho-row.head{background:var(--cream); font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--warm-muted); font-weight:600; padding:0}
  .ho-row.head > div{padding:11px 18px}
  .ho-from{display:flex; flex-direction:column; gap:4px; border-right:1px solid var(--warm-border)}
  .ho-from .name{font-weight:600; color:var(--cp-navy); font-size:13.5px}
  .ho-from .sub{font-size:11.5px; color:var(--warm-muted)}
  .ho-mid, .ho-end{font-size:13px; color:var(--slate-700); line-height:1.5}
  .ho-mid{border-right:1px solid var(--warm-border)}
  .ho-mid b, .ho-end b{color:var(--cp-navy); font-weight:600}
  @media (max-width:760px){
    .ho-row{grid-template-columns:1fr}
    .ho-row.head{display:none}
    .ho-from, .ho-mid{border-right:none; border-bottom:1px solid var(--warm-border)}
    .ho-from{background:var(--cream)}
  }

  /* ===== Outstanding items ===== */
  .outstanding{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    padding:22px; box-shadow:var(--shadow-sm);
  }
  .outstanding-head{display:flex; align-items:center; gap:10px; margin-bottom:14px}
  .outstanding-head h4{font-size:14.5px}
  .out-list{display:grid; grid-template-columns:1fr 1fr; gap:10px 18px}
  @media (max-width:640px){.out-list{grid-template-columns:1fr}}
  .out-list > div{display:flex; gap:10px; align-items:flex-start; padding:8px 0; border-top:1px dashed var(--warm-border); font-size:13px}
  .out-list > div:nth-child(-n+2){border-top:none}
  @media (max-width:640px){.out-list > div:nth-child(2){border-top:1px dashed var(--warm-border)}}
  .out-list .ic{flex:none; width:16px; height:16px; color:var(--warm-track); margin-top:2px}
  .out-list b{color:var(--cp-navy); font-weight:600; display:block; line-height:1.35}
  .out-list span{color:var(--warm-muted); font-size:12px; line-height:1.45}

  /* ===== Acceptance criteria ===== */
  .accept-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px}
  @media (max-width:900px){.accept-grid{grid-template-columns:1fr}}
  .accept-card{
    background:var(--paper); border:var(--ring); border-radius:var(--radius-xl);
    padding:20px 22px; box-shadow:var(--shadow-sm);
    border-top:3px solid var(--cp-blue);
  }
  .accept-card.perf{border-top-color:var(--success)}
  .accept-card.perf h4{color:var(--success)}
  .accept-card.hand{border-top-color:var(--cp-amber)}
  .accept-card.hand h4{color:#7B4E07}
  .accept-card h4{font-size:13.5px; margin-bottom:12px; color:var(--cp-blue-dark)}
  .accept-card ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px}
  .accept-card li{display:flex; gap:9px; align-items:flex-start; font-size:12.5px; color:var(--slate-700); line-height:1.45}
  .accept-card li svg{flex:none; width:14px; height:14px; color:var(--success); margin-top:2px}
  .accept-card.hand li svg{color:var(--cp-amber-dark)}
  .accept-card li svg{color:var(--cp-blue)}
  .accept-card.perf li svg{color:var(--success)}
  .accept-card.hand li svg{color:var(--cp-amber-dark)}

  /* ===== Footer ===== */
  footer{
    margin-top:0; padding:36px 0 0;
  }
  section.band.navy footer{padding-top:36px; border-top:1px solid rgba(255,255,255,.12)}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:24px}
  @media (max-width:780px){.foot-grid{grid-template-columns:1fr; gap:14px}}
  .foot-block .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:#F3B254; font-weight:600; margin-bottom:8px}
  .foot-block .val{color:#FFF; font-weight:500; font-size:14.5px; line-height:1.4}
  .foot-block .sub{color:rgba(255,255,255,.6); font-size:12.5px; margin-top:3px}
  .foot-block a{color:#F3B254; text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s}
  .foot-block a:hover{border-bottom-color:#F3B254}

  .foot-meta{
    margin-top:36px; padding-top:18px; border-top:1px dashed rgba(255,255,255,.18);
    display:flex; justify-content:space-between; align-items:center; gap:14px;
    font-size:11.5px; color:rgba(255,255,255,.55);
  }
  .foot-meta b{color:rgba(255,255,255,.85); font-weight:600}

  /* utilities */
  .mono{font-family:var(--font-mono)}
  .nb{white-space:nowrap}
  hr.soft{border:none; border-top:1px dashed var(--warm-border); margin:24px 0}

/* ════════════════════════════════════════════════════════════════════════════
   PRINT BUTTON (visible on screen, hidden in print)
   ════════════════════════════════════════════════════════════════════════════ */
.print-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px; font-size:11.5px; font-weight:600;
  border-radius:999px; background:var(--cp-navy); color:#FFF;
  border:1px solid var(--cp-navy); cursor:pointer;
  font-family:var(--font-sans); letter-spacing:0;
  transition:background .15s, transform .15s;
}
.print-btn:hover{ background:var(--cp-navy-mid); transform:translateY(-1px); }
.print-btn svg{ width:13px; height:13px; }

/* ════════════════════════════════════════════════════════════════════════════
   PRINT STYLESHEET — clean PDF output
   ════════════════════════════════════════════════════════════════════════════ */
@media print {
  /* Page setup */
  @page { margin: 0.6in; }

  html, body {
    background: #FFF !important;
    color: var(--slate-800) !important;
    font-size: 11pt;
    line-height: 1.45;
  }
  body { background-image: none !important; }

  /* Hide chrome */
  .topbar, .toc, .print-btn { display: none !important; }

  /* Reflow shell to single column */
  .shell {
    display: block !important;
    max-width: 100% !important;
    padding: 0 !important;
    gap: 0 !important;
  }
  main { max-width: 100% !important; }

  /* Section spacing for print */
  section {
    padding: 16pt 0 !important;
    border-bottom: 1px solid var(--warm-border) !important;
    page-break-inside: auto;
  }
  section.band {
    margin: 12pt 0 !important;
    padding: 18pt 14pt !important;
    border-radius: 6pt !important;
    box-shadow: none !important;
    page-break-inside: avoid;
  }

  /* Force navy + amber bands to retain their fill in print (with WebKit color adjust) */
  section.band, .stat, .col-card, .req-card, .addon, .risk, .accept-card,
  .compliance, .cms-block, .handoff, .comp-table, .forecast, .review-callout,
  .read-note, .signature-block, .decision-request, .action-callout,
  .pricing-tiers, .testimonial-card, footer .foot-grid {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  section.band.navy { box-shadow: none !important; }
  .contact-footer, .ho-row.head, footer { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

  /* Type sizing */
  h1 { font-size: 22pt; page-break-after: avoid; }
  h2 { font-size: 15pt; page-break-after: avoid; }
  h3 { font-size: 12pt; page-break-after: avoid; }
  h4 { font-size: 10.5pt; page-break-after: avoid; }
  .eyebrow { page-break-after: avoid; }
  .lede, .section-intro { font-size: 10.5pt; }

  /* Cards: keep together */
  .stat, .col-card, .req-card, .addon, .risk, .accept-card,
  .signature-block, .decision-request, .action-callout,
  .review-callout, .read-note, .compliance, .cms-block,
  .page-card { page-break-inside: avoid !important; }

  /* Tables: keep rows together */
  table { page-break-inside: auto; }
  tr { page-break-inside: avoid; page-break-after: auto; }
  thead { display: table-header-group; }

  /* Hero pages — let it span naturally; avoid orphan H1 */
  .hero { page-break-after: auto; }

  /* Stats grid: 3-up in print to fit page width */
  .stats { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8pt !important; }
  .pages { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8pt !important; }
  .twocol, .addons, .req-grid, .accept-grid { grid-template-columns: 1fr 1fr !important; gap: 8pt !important; }

  /* Avoid orphan section markers */
  .section-marker, .phase-header { page-break-after: avoid; }

  /* Link styling — keep amber accents */
  a { color: var(--cp-navy); text-decoration: underline; }
  .review-callout a, .read-note a, .contact-footer a { color: var(--cp-amber-dark); }

  /* Final footer band */
  section.band.navy footer { padding-top: 14pt !important; }
}
