/* ============================================================
     ONSPIRE GROWTH REPORT — brand design system (matches homepage)
     Plus Jakarta Sans + JetBrains Mono, green/charcoal palette.
     Class names unchanged so the app JS/HTML keep working.
     ============================================================ */
  :root{
    --green:#98C43C;          /* brand accent / decorative */
    --green-text:#4E6B19;     /* green text on white (AA) */
    --green-deep:#3F5614;
    --green-on-dark:#B5DA64;
    --green-soft:#EAF3D6;
    --green-mist:#F5F9EA;
    --charcoal:#1A1A1A;
    --charcoal-2:#2A2A2A;
    --ink-700:#3A3A3A;
    --ink-600:#4A4A4A;
    --line:#E8EAEA;
    --line-strong:#D9DBDB;
    --hairline:#EEF0F0;
    --white:#FFFFFF;
    --off:#FAFAFA;
    --sans:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
    --radius:8px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{
    font-family:var(--sans);background:var(--off);color:var(--charcoal);
    -webkit-font-smoothing:antialiased;line-height:1.6;
    font-feature-settings:"ss01","ss02";
  }
  .wrap{max-width:1080px;margin:0 auto;position:relative;z-index:1;padding:0 clamp(20px,4vw,40px)}

  /* ---------- HERO (light, editorial) ---------- */
  .hero{background:var(--white);color:var(--charcoal);padding:36px 0 56px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
  .hero::before,.hero::after{display:none !important}
  .topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;flex-wrap:wrap;gap:16px}
  .onspire-mark{display:flex;flex-direction:column;line-height:1}
  .onspire-mark .word{font-weight:800;font-size:28px;letter-spacing:-0.03em;color:var(--charcoal)}
  .onspire-mark .word i{font-style:normal;color:var(--green);font-size:22px;vertical-align:top;margin-left:2px}
  .onspire-mark .desc{font-size:9.5px;letter-spacing:.34em;color:var(--ink-600);font-weight:700;margin-top:6px;text-transform:uppercase}
  .event-tag{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-text);border:1px solid var(--green);padding:8px 16px;border-radius:4px;background:var(--green-mist)}
  .hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
  .hero h1{font-size:clamp(34px,5.2vw,62px);font-weight:700;line-height:1.03;letter-spacing:-0.028em;color:var(--charcoal)}
  .hero h1 em{font-style:italic;font-weight:500;color:var(--green-text)}
  .hero p.lead{margin-top:22px;max-width:none;color:var(--ink-700);font-size:clamp(17px,1.6vw,20px);font-weight:400;line-height:1.55}
  .value-tag{display:inline-flex;align-items:center;gap:8px;margin-top:24px;background:var(--green-mist);border:1px solid var(--green);color:var(--green-deep);font-weight:700;font-size:15px;padding:9px 16px;border-radius:4px}
  .includes{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:30px}
  .includes span{font-size:12px;font-weight:700;color:var(--charcoal-2);display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.08em}
  .includes span::before{content:"";flex:none;width:7px;height:7px;background:var(--green);border-radius:0}
  .badge-col{display:none !important}

  /* ---------- FORM CARD ---------- */
  .form-card{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--green);border-radius:var(--radius);max-width:1080px;margin:-24px auto 64px;padding:clamp(26px,4vw,40px);position:relative;z-index:2;box-shadow:0 24px 60px -32px rgba(26,26,26,.22)}
  .form-card h2{font-size:clamp(21px,2.4vw,28px);font-weight:700;letter-spacing:-0.022em;margin-bottom:6px;color:var(--charcoal)}
  .form-card .sub{color:var(--ink-600);font-size:14px;margin-bottom:26px}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .field{display:flex;flex-direction:column;gap:6px}
  .field.full{grid-column:1/-1}
  label{font-size:12px;font-weight:700;color:var(--charcoal-2);text-transform:uppercase;letter-spacing:.07em}
  label .opt{font-weight:500;color:var(--ink-600);text-transform:none;letter-spacing:0}
  input,textarea,select{font-family:inherit;font-size:15px;color:var(--charcoal);border:1.5px solid var(--line-strong);border-radius:4px;padding:12px 14px;background:var(--white);outline:none;transition:border-color .15s,box-shadow .15s}
  input::placeholder,textarea::placeholder{color:#9aa0a0}
  input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(152,196,60,.25)}
  textarea{resize:vertical;min-height:74px}
  select{width:100%;cursor:pointer}

  /* ---------- BUTTONS ---------- */
  .btn{font-family:inherit;cursor:pointer;border:0;background:var(--green);color:var(--charcoal);font-weight:700;font-size:14px;letter-spacing:-0.003em;padding:16px 24px 17px;border-radius:4px;transition:transform .2s,background .2s,color .2s,border-color .2s;display:inline-flex;align-items:center;gap:10px}
  .btn:hover{background:var(--charcoal);color:#fff;transform:translateY(-1px)}
  .btn:disabled{opacity:.55;cursor:wait;transform:none}
  .btn.secondary{background:transparent;color:var(--charcoal);border:1.5px solid var(--line-strong)}
  .btn.secondary:hover{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
  .form-foot{display:flex;align-items:center;justify-content:space-between;margin-top:26px;flex-wrap:wrap;gap:14px}
  .form-foot small{color:var(--ink-600);max-width:470px;font-size:12.5px;line-height:1.5}

  /* ---------- LOADING ---------- */
  .loading{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:20px;background:rgba(26,26,26,.72);backdrop-filter:blur(4px)}
  .loading-card{max-width:560px;width:100%;text-align:center;background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:var(--radius);padding:52px 30px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
  .pulse{width:52px;height:52px;border-radius:50%;margin:0 auto 20px;border:4px solid var(--line);border-top-color:var(--green);animation:spin .9s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  .loading h3{font-size:22px;font-weight:700;margin-bottom:6px;letter-spacing:-0.02em;color:var(--charcoal)}
  .loading p{color:var(--ink-600);font-size:14px}
  .steps{margin-top:22px;display:inline-flex;flex-direction:column;gap:8px;text-align:left;font-size:14px;color:var(--ink-600)}
  .steps div{opacity:.4;transition:opacity .4s}
  .steps div.on{opacity:1;font-weight:600;color:var(--charcoal)}
  .steps div.on::before{content:"→ ";color:var(--green-text);font-weight:800}

  /* ---------- ERROR ---------- */
  .error-box{display:none;max-width:1080px;margin:0 auto 60px;background:#fff;border:1px solid var(--line-strong);border-left:3px solid var(--charcoal);border-radius:var(--radius);padding:22px 26px;color:var(--ink-700);font-size:15px}

  /* ---------- REPORT ---------- */
  #report{display:none;max-width:1080px;margin:0 auto 80px;padding:0 16px}
  .report-sheet{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(28px,4vw,52px);box-shadow:0 24px 60px -32px rgba(26,26,26,.20);position:relative;overflow:hidden}
  .report-sheet::before{content:"";position:absolute;top:-70px;right:-70px;width:230px;height:230px;background:linear-gradient(135deg,rgba(152,196,60,.14) 0 50%,transparent 50%);clip-path:polygon(40% 0,100% 0,100% 60%,75% 60%,75% 100%,40% 100%,40% 35%,0 35%,0 0);transform:rotate(180deg);pointer-events:none}
  .rep-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--charcoal);padding-bottom:22px;margin-bottom:34px;gap:20px;flex-wrap:wrap;position:relative}
  .rep-head h2{font-size:clamp(24px,3vw,32px);font-weight:700;line-height:1.1;letter-spacing:-0.022em;color:var(--charcoal)}
  .rep-head .sub{color:var(--ink-600);font-size:14px;margin-top:6px}
  .rep-brand{text-align:right}
  .rep-brand .word{font-weight:800;font-size:22px;letter-spacing:-0.03em;color:var(--charcoal);line-height:1}
  .rep-brand .word i{font-style:normal;color:var(--green);font-size:15px;vertical-align:top;margin-left:2px}
  .rep-brand .desc{font-size:8px;letter-spacing:.38em;color:var(--ink-600);font-weight:700;margin-top:5px;text-transform:uppercase}
  .rep-brand .val{font-size:11px;font-weight:700;color:var(--green-text);margin-top:8px}

  .sec{margin-bottom:44px;position:relative;page-break-inside:avoid}
  .sec h3{font-size:clamp(18px,2vw,22px);font-weight:700;color:var(--charcoal);display:flex;align-items:center;gap:12px;margin-bottom:18px;letter-spacing:-0.02em}
  .sec h3 .num{font-size:12px;font-weight:700;color:var(--charcoal);background:var(--green);width:27px;height:27px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex:none}

  .score-row{display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:center}
  .dial{width:172px;height:172px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .dial svg{position:absolute;inset:0;transform:rotate(-90deg)}
  .dial b{position:relative;font-size:46px;font-weight:700;color:var(--charcoal);letter-spacing:-0.03em}
  .dial span{position:relative;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-600);font-weight:700}
  .subscores{display:grid;gap:13px}
  .subscore label{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;margin-bottom:5px;color:var(--charcoal);text-transform:none;letter-spacing:0}
  .bar{height:9px;background:var(--hairline);border-radius:99px;overflow:hidden}
  .bar i{display:block;height:100%;background:var(--green);border-radius:99px}

  table{width:100%;border-collapse:collapse;font-size:14px}
  th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal-2);font-weight:700;padding:12px;border-bottom:2px solid var(--charcoal)}
  td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-700)}
  tr.you td{background:var(--green-mist);font-weight:600;color:var(--charcoal)}
  tr.you td:first-child{border-left:3px solid var(--green)}

  .grades{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:14px}
  .grade-card{border:1px solid var(--line);border-radius:6px;padding:16px;background:#fff}
  .grade-card .g{font-size:34px;font-weight:800;line-height:1;letter-spacing:-0.02em}
  .g.A{color:var(--green-text)} .g.B{color:#5E8626} .g.C{color:var(--ink-600)} .g.D{color:var(--charcoal-2)} .g.F{color:#b03a3a}
  .grade-card h4{font-size:13px;margin:8px 0 4px;color:var(--charcoal);text-transform:uppercase;letter-spacing:.05em}
  .grade-card p{font-size:12.5px;color:var(--ink-600)}

  /* Revenue leak/opportunity — charcoal callout with green figure (brand dark block) */
  .leak{background:var(--charcoal);color:#fff;border:0;border-radius:var(--radius);padding:28px 30px;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;position:relative;overflow:hidden}
  .leak::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 80% at 100% 0%,rgba(152,196,60,.12),transparent 60%)}
  .leak .amount{font-size:clamp(30px,4vw,40px);font-weight:700;color:var(--green-on-dark);white-space:nowrap;letter-spacing:-0.03em;position:relative}
  .leak .amount small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.65);font-weight:700;margin-top:4px}
  .leak ul{list-style:none;display:grid;gap:8px;font-size:14px;color:rgba(255,255,255,.9);position:relative}
  .leak li::before{content:"\25B8 ";color:var(--green-on-dark);font-weight:800}

  .recs{display:grid;gap:14px}
  .rec{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:6px;padding:16px 18px;display:grid;grid-template-columns:1fr auto;gap:14px;background:#fff}
  .rec h4{font-size:15px;margin-bottom:4px;color:var(--charcoal);letter-spacing:-0.01em}
  .rec p{font-size:13.5px;color:var(--ink-600)}
  .pill{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:4px;height:fit-content;white-space:nowrap}
  .pill.high{background:var(--charcoal);color:#fff}
  .pill.med{background:var(--hairline);color:var(--charcoal-2)}
  .pill.quick{background:var(--green);color:var(--charcoal)}

  .cta-foot{margin-top:46px;background:var(--charcoal);color:#fff;border-radius:var(--radius);padding:32px 34px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;position:relative;overflow:hidden}
  .cta-foot::before{content:"";position:absolute;right:0;top:0;bottom:0;width:6px;background:var(--green)}
  .cta-foot::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(50% 70% at 50% 0%,rgba(152,196,60,.12),transparent 70%)}
  .cta-foot .badge-sm{display:none}
  .cta-foot h4{font-size:20px;font-weight:700;letter-spacing:-0.02em;position:relative}
  .cta-foot p{color:rgba(255,255,255,.78);font-size:14px;margin-top:5px;max-width:460px;position:relative}
  .cta-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap;position:relative}
  .cta-foot .btn{position:relative}

  .report-actions{display:flex;gap:12px;margin:22px 0;justify-content:flex-end}
  .report-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:28px 0 8px;padding:28px 32px;background:var(--green-mist,#f2f8e4);border:1px solid var(--line);border-radius:10px}
  .report-cta-copy h3{margin:0 0 6px;font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--charcoal);line-height:1.2}
  .report-cta-copy p{margin:0;font-size:15px;color:var(--ink-700);line-height:1.5;max-width:62ch}
  .report-cta .btn{white-space:nowrap;text-decoration:none}
  .disclaimer{font-size:11.5px;color:var(--ink-600);margin-top:26px;border-top:1px solid var(--line);padding-top:14px}

  @media(max-width:760px){
    .form-grid{grid-template-columns:1fr}
    .hero-grid{grid-template-columns:1fr}
    .score-row{grid-template-columns:1fr;justify-items:center}
    .report-sheet{padding:28px 22px}
    .leak{grid-template-columns:1fr}
    .rec{grid-template-columns:1fr}
  }
  @media print{
    body{background:#fff}
    .hero,.form-card,.report-actions,.report-cta,.loading,.error-box{display:none !important}
    #report{display:block !important;margin:0;padding:0;max-width:100%}
    .report-sheet{box-shadow:none;border:none;padding:0}
    .leak,.cta-foot{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  }
