/* Insite Health Check — ported design tokens (colors/typography/spacing/effects
 * from the export _ds/tokens) + self-hosted fonts + component styles. Fonts load
 * via the /asset/ route so the production CSP (font-src 'self') is satisfied. */

/* ---- Fonts ---- */
@font-face { font-family:'Poppins'; font-weight:400; font-display:swap; src:url('/asset/poppins-400.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-weight:500; font-display:swap; src:url('/asset/poppins-500.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-weight:600; font-display:swap; src:url('/asset/poppins-600.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-weight:700; font-display:swap; src:url('/asset/poppins-700.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-weight:800; font-display:swap; src:url('/asset/poppins-800.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-weight:900; font-display:swap; src:url('/asset/poppins-900.woff2') format('woff2'); }
@font-face { font-family:'DM Mono'; font-weight:400; font-display:swap; src:url('/asset/dmmono-400.woff2') format('woff2'); }
@font-face { font-family:'DM Mono'; font-weight:500; font-display:swap; src:url('/asset/dmmono-500.woff2') format('woff2'); }

:root {
  /* brand + neutrals */
  --orange-600:#C8431A; --orange-500:#F05828; --orange-400:#FF5E2B; --orange-300:#FB8A63;
  --orange-200:#FBC2AC; --orange-100:#FCE4DA; --orange-050:#FDF1EC;
  --ink-900:#2B2B2B; --ink-800:#3D3D3D; --ink-700:#525252; --ink-600:#686868; --ink-500:#8A8A8A;
  --ink-400:#ABABAB; --ink-300:#CFCFCF; --ink-200:#E4E2E0; --ink-100:#EFEDEB; --paper:#F9F7F6; --white:#FFFFFF;
  --success:#2E9E6B; --warning:#E8A53A; --danger:#D8442C; --info:#3E7CB1;
  --text-strong:var(--ink-900); --text-body:var(--ink-700); --text-muted:var(--ink-500);
  --surface-page:var(--paper); --surface-card:var(--white); --surface-brand-soft:var(--orange-050);
  --border-subtle:var(--ink-200); --border-default:var(--ink-300);
  /* type */
  --font-text:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-display:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'DM Mono',ui-monospace,Menlo,monospace;
  --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-extrabold:800; --fw-black:900;
  --fs-display-md:2.75rem; --fs-h2:1.75rem; --fs-h3:1.375rem; --fs-h4:1.125rem;
  --fs-body-lg:1.125rem; --fs-body:1rem; --fs-body-sm:0.875rem; --fs-caption:0.75rem;
  --lh-tight:0.98; --lh-body:1.6; --ls-tight:-0.02em; --ls-label:0.04em;
  /* spacing */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem;
  --space-6:2rem; --space-7:3rem; --space-8:4rem; --space-9:6rem;
  --container-max:1200px; --container-narrow:760px;
  /* effects */
  --radius-sm:8px; --radius-md:12px; --radius-lg:18px; --radius-xl:28px; --radius-pill:999px; --radius-card:18px;
  --shadow-xs:0 1px 2px rgba(43,43,43,.06); --shadow-sm:0 2px 6px rgba(43,43,43,.08);
  --shadow-md:0 8px 20px rgba(43,43,43,.10); --shadow-brand:0 12px 28px rgba(240,88,40,.30);
  --shadow-focus:0 0 0 3px rgba(255,94,43,.35);
  --dur-fast:120ms; --dur-base:200ms; --ease-out:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;}
body{margin:0;min-height:100vh;background:var(--surface-page);font-family:var(--font-text);color:var(--text-body);line-height:var(--lh-body);}
h1,h2,h3,h4{color:var(--ink-900);line-height:1.2;margin:0;}
p{margin:0;}
a{color:var(--orange-500);}
@keyframes hc-fade-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.hc-anim{animation:hc-fade-in .32s var(--ease-out);}
.eyebrow{font-size:var(--fs-caption);font-weight:var(--fw-semibold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--orange-500);}

/* header */
.hc-header{display:flex;align-items:center;justify-content:space-between;max-width:var(--container-max);margin:0 auto;padding:var(--space-5) var(--space-5) 0;}
.hc-header img{height:64px;width:auto;display:block;}
.hc-admin-link{background:none;border:none;color:var(--text-muted);font-size:var(--fs-body-sm);cursor:pointer;font-family:var(--font-text);text-decoration:none;}
.hc-admin-link:hover{text-decoration:underline;}

/* buttons */
.hc-btn-primary{background:var(--orange-500);color:var(--white);border:none;border-radius:var(--radius-pill);padding:var(--space-4) var(--space-7);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);cursor:pointer;box-shadow:var(--shadow-brand);font-family:var(--font-text);transition:background var(--dur-fast) var(--ease-out);}
.hc-btn-primary:hover{background:var(--orange-600);}
.hc-btn-primary:active{transform:translateY(1px);box-shadow:var(--shadow-xs) !important;}
.hc-btn-secondary{background:var(--white);color:var(--orange-500);border:1px solid var(--orange-400);border-radius:var(--radius-pill);padding:var(--space-4) var(--space-7);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);cursor:pointer;font-family:var(--font-text);}
.hc-btn-secondary:hover{background:var(--orange-050);}

/* layout blocks */
.hc-narrow{max-width:var(--container-narrow);margin:0 auto;}
.hc-wide{max-width:var(--container-max);margin:0 auto;}
.hc-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:var(--space-6);}

/* landing */
.hc-hero{padding:var(--space-8) var(--space-5) var(--space-9);}
.hc-hero h1{font-size:var(--fs-display-md);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);font-weight:var(--fw-extrabold);margin:var(--space-4) 0 var(--space-5);}
.hc-hero .lede{font-size:var(--fs-body-lg);color:var(--text-body);margin-bottom:var(--space-6);}
.hc-section-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin:var(--space-6) 0 var(--space-7);}
.hc-chip{background:var(--surface-brand-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);color:var(--ink-800);text-align:center;}
.hc-note{margin-top:var(--space-3);color:var(--text-muted);font-size:var(--fs-body-sm);}

/* gate form */
.hc-gate .lab{display:block;font-size:var(--fs-body-sm);font-weight:var(--fw-medium);margin-bottom:var(--space-2);color:var(--ink-800);}
.hc-gate .fld{margin-bottom:var(--space-4);}
.hc-gate input[type=text],.hc-gate input[type=email]{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--fs-body);font-family:var(--font-text);background:var(--white);}
.hc-gate input:focus{outline:none;box-shadow:var(--shadow-focus);border-color:var(--orange-400);}
.hc-consent{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);cursor:pointer;}
.hc-consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--orange-500);flex-shrink:0;}
.hc-consent span{font-size:var(--fs-body-sm);color:var(--ink-800);}
.hc-fineprint{color:var(--text-muted);font-size:var(--fs-caption);margin:var(--space-4) 0;}
.hc-error{color:var(--danger);font-size:var(--fs-body-sm);margin-bottom:var(--space-4);}

/* assessment */
.hc-assess{padding:var(--space-6) var(--space-5) var(--space-9);}
.hc-progress-row{display:flex;justify-content:space-between;font-size:var(--fs-body-sm);color:var(--text-muted);margin-bottom:var(--space-2);}
.hc-progress-track{height:8px;background:var(--ink-100);border-radius:var(--radius-pill);overflow:hidden;margin-bottom:var(--space-6);}
.hc-progress-fill{height:100%;background:var(--orange-500);border-radius:var(--radius-pill);transition:width var(--dur-base) var(--ease-out);width:0;}
.hc-q h2{font-size:var(--fs-h2);margin-bottom:var(--space-6);}
.hc-opts{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-7);}
.hc-opt{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);cursor:pointer;background:var(--white);border:1px solid var(--border-default);transition:border-color var(--dur-fast) var(--ease-out);}
.hc-opt:hover{border-color:var(--orange-400);box-shadow:var(--shadow-sm);}
.hc-opt input{position:absolute;opacity:0;width:0;height:0;}
.hc-opt .num{width:32px;height:32px;flex-shrink:0;border-radius:999px;background:var(--surface-brand-soft);color:var(--orange-500);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-family:var(--font-display);}
.hc-opt .txt{font-size:var(--fs-body);color:var(--ink-900);font-weight:var(--fw-medium);}
.hc-opt:has(input:checked){border-color:var(--orange-500);box-shadow:var(--shadow-sm);}
.hc-back{background:none;border:1px solid var(--border-default);color:var(--ink-800);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-6);font-size:var(--fs-body);cursor:pointer;font-family:var(--font-text);}
.hc-back:disabled{opacity:.4;cursor:default;}
/* JS one-at-a-time: hide the fallback submit; no-JS shows all questions + submit */
form.js .hc-fallback-submit{display:none;}

/* result */
.hc-result{padding:var(--space-6) var(--space-5) var(--space-9);}
.hc-score-card{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);align-items:center;box-shadow:var(--shadow-md);margin-bottom:var(--space-6);}
.hc-ring{width:128px;height:128px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hc-ring-inner{width:100px;height:100px;border-radius:50%;background:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.hc-ring-num{font-family:var(--font-display);font-weight:var(--fw-black);font-size:1.75rem;color:var(--ink-900);line-height:1;}
.hc-ring-den{font-size:var(--fs-caption);color:var(--text-muted);}
.hc-cat-pill{display:inline-block;font-weight:var(--fw-semibold);font-size:var(--fs-body-sm);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);margin-bottom:var(--space-3);}
.hc-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6);}
.hc-strong-card{background:var(--surface-brand-soft);border-radius:var(--radius-md);padding:var(--space-5);}
.hc-weak-card{background:var(--ink-100);border-radius:var(--radius-md);padding:var(--space-5);}
.hc-weak-label{font-weight:var(--fw-semibold);font-size:var(--fs-caption);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-600);margin-bottom:var(--space-2);}
.hc-section-name{font-weight:var(--fw-bold);font-size:var(--fs-h4);color:var(--ink-900);}
.hc-actions{display:flex;flex-direction:column;gap:var(--space-3);}
.hc-action{display:flex;gap:var(--space-3);align-items:flex-start;}
.hc-action .n{width:26px;height:26px;border-radius:999px;background:var(--orange-500);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:var(--fs-body-sm);font-weight:var(--fw-bold);flex-shrink:0;font-family:var(--font-display);}

/* 90-day plan (dark) */
.hc-plan{background:var(--ink-900);border-radius:var(--radius-xl);padding:var(--space-7) var(--space-6);}
.hc-plan .eyebrow{color:var(--orange-300);}
.hc-plan h2{color:var(--white);margin-bottom:var(--space-2);}
.hc-plan .prepared{color:var(--ink-300,#CFCFCF);margin-bottom:var(--space-6);}
.hc-plan-inner{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5);}
.hc-topic-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5);}
.hc-topic{background:var(--surface-brand-soft);color:var(--orange-500);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);}
.hc-rhythm{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-5);}
.hc-rhythm .cell{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);}
.hc-check{display:flex;flex-direction:column;gap:var(--space-2);}
.hc-check .row{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--fs-body-sm);}
.hc-check .box{color:var(--orange-500);flex-shrink:0;}
.hc-plan .softcta{color:#CFCFCF;font-size:var(--fs-body-sm);}
.hc-cta-row{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;margin-top:var(--space-8);}

/* thank you */
.hc-thanks{padding:var(--space-8) var(--space-5) var(--space-9);text-align:center;}
.hc-check-badge{width:72px;height:72px;border-radius:50%;background:var(--surface-brand-soft);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5);color:var(--orange-500);font-size:2rem;}
.hc-next{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6);text-align:left;margin-bottom:var(--space-7);}
.hc-next .step{color:var(--text-body);font-size:var(--fs-body-sm);margin-bottom:var(--space-3);}

@media(max-width:640px){
  .hc-score-card,.hc-two{grid-template-columns:1fr;}
  .hc-hero h1{font-size:2rem;}
}
