/* LinksForEveryone — HealthLink (uses tokens from /assets/lfe-theme.css) */
[hidden]{ display:none !important; }
:root{ --care:#E5486B; --care-soft:#FFEEF2; --care-ink:#B42350; --teal:#0EA5A4; --teal-soft:#E6F7F7; }

.tool-hero{ position:relative; overflow:hidden; padding-block:36px 72px; isolation:isolate; }
.tool-hero::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(520px 360px at 6% 0%,rgba(255,190,205,.45),transparent 70%),
             radial-gradient(520px 360px at 96% 6%,rgba(168,184,255,.45),transparent 70%),
             radial-gradient(460px 320px at 55% 95%,rgba(150,236,210,.30),transparent 70%); }
.tool-hero::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:linear-gradient(rgba(60,70,130,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(60,70,130,.06) 1px,transparent 1px);
  background-size:44px 44px; -webkit-mask-image:radial-gradient(ellipse 70% 55% at 50% 15%,#000 20%,transparent 75%); mask-image:radial-gradient(ellipse 70% 55% at 50% 15%,#000 20%,transparent 75%); }
.eyebrow.care .dot{ background:var(--care); box-shadow:0 0 0 3px rgba(229,72,107,.18); }
.chip.care{ color:var(--care-ink); background:var(--care-soft); border-color:rgba(229,72,107,.2); }

/* ---------- landing hero ---------- */
.hl-hero{ margin-top:22px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:40px; align-items:center; }
@media (max-width:980px){ .hl-hero{ grid-template-columns:1fr; gap:32px; } }
.hl-hero h1{ margin-top:16px; font-size:clamp(34px,4.8vw,56px); font-weight:800; letter-spacing:-.04em; line-height:1.04; }
.hl-hero .lede{ margin-top:16px; font-size:clamp(16.5px,1.5vw,18.5px); color:var(--ink-2); max-width:58ch; }
.hl-cta{ margin-top:24px; display:flex; flex-wrap:wrap; gap:10px; }
.intro-chips{ margin-top:18px; display:flex; flex-wrap:wrap; gap:8px; }

/* health card mock (dark) */
.hcard{ position:relative; background:linear-gradient(180deg,#121838 0%,#0A0F24 100%); color:var(--on-dark); border-radius:24px; padding:22px; border:1px solid rgba(10,15,36,.9);
  box-shadow:0 40px 80px -30px rgba(10,15,36,.5),0 12px 30px -12px rgba(10,15,36,.3),inset 0 1px 0 rgba(255,255,255,.06); }
.hcard-top{ display:flex; align-items:center; gap:12px; }
.hcard-top img{ width:42px; height:42px; border-radius:12px; }
.hcard-top b{ display:block; color:#fff; font:800 17px var(--f-display); }
.hcard-top small{ color:var(--on-dark-3); font-size:12.5px; }
.hcard-tag{ margin-left:auto; font:600 11.5px var(--f-mono); color:#7CE0AE; display:inline-flex; align-items:center; gap:6px; }
.hcard-tag::before{ content:""; width:7px; height:7px; border-radius:50%; background:#12B76A; box-shadow:0 0 0 3px rgba(18,183,106,.2); }
.hcard-conds{ margin-top:14px; display:flex; flex-wrap:wrap; gap:6px; }
.hcard-conds span{ font-size:12px; font-weight:600; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,.08); color:#E4E7F5; }
.hcard table{ margin-top:14px; width:100%; border-collapse:collapse; font-size:13px; }
.hcard th{ text-align:left; font:600 11px var(--f-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--on-dark-3); padding:6px 4px; border-bottom:1px solid var(--d-line); }
.hcard td{ padding:9px 4px; border-bottom:1px solid var(--d-line); color:#E4E7F5; vertical-align:middle; }
.hcard td small{ display:block; color:var(--on-dark-3); font-size:11.5px; }
.hcard .dot4{ display:inline-flex; gap:3px; }
.hcard .dot4 i{ width:18px; height:18px; border-radius:5px; display:grid; place-items:center; font:700 9.5px var(--f-mono); font-style:normal; background:rgba(255,255,255,.06); color:#5B6186; }
.hcard .dot4 i.on{ background:rgba(143,168,255,.22); color:#C7D3FF; }
.hcard-foot{ margin-top:14px; padding:10px 12px; border-radius:12px; background:rgba(253,186,140,.1); color:#FDD7B8; font-size:12.5px; display:flex; gap:8px; }

/* ---------- landing sections ---------- */
.prose{ max-width:760px; }
.prose p{ margin-top:14px; font-size:16.5px; color:var(--ink-2); line-height:1.75; }
.grid3{ margin-top:32px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.grid4{ margin-top:32px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.grid2{ margin-top:32px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
@media (max-width:1020px){ .grid4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px){ .grid3{ grid-template-columns:1fr; } }
@media (max-width:640px){ .grid4,.grid2{ grid-template-columns:1fr; } }
.icard{ padding:24px; }
.icard .ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; font-size:19px; margin-bottom:14px; }
.icard h3{ font-size:18px; font-weight:700; }
.icard p{ margin-top:8px; font-size:15px; color:var(--ink-2); line-height:1.65; }
.ic.blue{ background:var(--blue-soft); color:var(--blue); } .ic.violet{ background:var(--violet-soft); color:var(--violet); }
.ic.green{ background:var(--green-soft); color:var(--green-ink); } .ic.orange{ background:var(--orange-soft); color:var(--orange-ink); }
.ic.care{ background:var(--care-soft); color:var(--care); } .ic.teal{ background:var(--teal-soft); color:var(--teal); }
.stepcard{ padding:22px; position:relative; }
.stepcard .num{ font:800 13px var(--f-mono); color:var(--blue-ink); background:var(--blue-soft); width:32px; height:32px; border-radius:10px; display:grid; place-items:center; }
.stepcard h3{ margin-top:14px; font-size:17px; font-weight:700; }
.stepcard p{ margin-top:6px; font-size:14.5px; color:var(--ink-2); line-height:1.6; }
.two-col{ margin-top:36px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
@media (max-width:900px){ .two-col{ grid-template-columns:1fr; } }
.gpanel{ padding:26px; }
.gpanel h3{ font-size:19px; font-weight:700; }
.gpanel h3 + p{ margin-top:10px; }
.gpanel p{ margin-top:12px; font-size:15.5px; color:var(--ink-2); line-height:1.7; }
.checks{ margin-top:16px; display:grid; gap:11px; }
.checks li{ display:grid; grid-template-columns:20px 1fr; gap:8px; font-size:15px; color:var(--ink-2); line-height:1.6; }
.checks i{ color:var(--green); margin-top:5px; }
.cta-block{ margin-top:8px; border-radius:28px; padding:44px 28px; text-align:center; color:#fff; background:linear-gradient(135deg,#1B2A6B 0%,#2F5BFF 55%,#7C5CFF 100%); box-shadow:0 30px 60px -30px rgba(47,91,255,.6); }
.cta-block h2{ color:#fff; font-size:clamp(26px,3.2vw,36px); }
.cta-block p{ margin:12px auto 0; max-width:52ch; color:rgba(255,255,255,.86); font-size:17px; }
.cta-block .btn{ margin-top:22px; background:#fff; color:var(--navy,#0D1024); }
.notice{ margin-top:22px; display:flex; gap:12px; padding:16px 18px; border-radius:16px; background:var(--surface); border:1px solid var(--line); color:var(--ink-2); font-size:14px; line-height:1.6; }
.notice i{ color:var(--care); margin-top:3px; font-size:16px; }
.notice.emerg{ background:var(--care-soft); border-color:rgba(229,72,107,.25); color:#7A1A36; }

/* ---------- form page ---------- */
.f-intro{ margin-top:22px; max-width:760px; }
.f-intro h1{ margin-top:14px; font-size:clamp(30px,4.2vw,46px); font-weight:800; letter-spacing:-.035em; line-height:1.08; }
.f-intro .lede{ margin-top:12px; font-size:17px; color:var(--ink-2); max-width:62ch; }
.f-layout{ margin-top:28px; display:grid; grid-template-columns:230px minmax(0,1fr); gap:24px; align-items:start; }
@media (max-width:980px){ .f-layout{ grid-template-columns:1fr; } }
.f-nav{ position:sticky; top:88px; padding:14px; border-radius:20px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--sh-1); }
@media (max-width:980px){ .f-nav{ display:none; } }
.f-nav a{ display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:11px; font-size:14px; font-weight:600; color:var(--ink-2); }
.f-nav a:hover{ background:var(--bg-alt); color:var(--ink); }
.f-nav a .n{ width:24px; height:24px; border-radius:8px; display:grid; place-items:center; font:700 12px var(--f-mono); background:var(--bg-alt); color:var(--ink-3); flex:none; }
.f-nav a.done .n{ background:var(--green-soft); color:var(--green-ink); }
.f-nav a.on{ background:var(--blue-soft); color:var(--blue-ink); }
.f-nav a.on .n{ background:var(--blue); color:#fff; }
.f-nav .sv{ margin-top:10px; padding:10px; border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-3); display:flex; gap:7px; align-items:flex-start; line-height:1.45; }
.f-nav .sv i{ color:var(--green); margin-top:2px; }

.f-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:10px 12px; border-radius:16px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--sh-1); margin-bottom:16px; }
.f-bar .st{ font-size:13px; font-weight:600; color:var(--ink-3); display:inline-flex; align-items:center; gap:7px; margin-right:auto; }
.f-bar .st.ok{ color:var(--green-ink); }
.f-bar .ck{ font-size:13px; }
.banner{ display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-radius:14px; background:var(--blue-soft); border:1px solid rgba(47,91,255,.2); color:var(--blue-ink); font-size:14px; margin-bottom:16px; }
.banner i{ margin-top:3px; }
.banner .linkbtn{ color:var(--blue-ink); }

.f-card{ padding:24px; margin-bottom:16px; scroll-margin-top:96px; }
@media (max-width:560px){ .f-card{ padding:18px; } }
.f-card > header{ display:flex; align-items:flex-start; gap:12px; margin-bottom:6px; }
.f-card > header .n{ width:34px; height:34px; border-radius:11px; display:grid; place-items:center; font:800 14px var(--f-mono); background:var(--grad-primary); color:#fff; flex:none; }
.f-card > header h2{ font-size:20px; font-weight:800; letter-spacing:-.02em; }
.f-card > header p{ margin-top:2px; font-size:14px; color:var(--ink-3); }
.fg{ display:grid; gap:0 14px; margin-top:14px; }
.fg.c2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.fg.c3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.fg.c4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:760px){ .fg.c3,.fg.c4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px){ .fg.c2,.fg.c3,.fg.c4{ grid-template-columns:1fr; } }
.fg .s2c{ grid-column:span 2; }
@media (max-width:480px){ .fg .s2c{ grid-column:auto; } }
.fld{ display:block; margin-bottom:12px; min-width:0; }
.fld > span{ display:block; font-size:13px; font-weight:700; color:var(--ink-2); margin-bottom:6px; }
.fld > span em{ font-style:normal; color:var(--care); }
.fld > span small{ font-weight:500; color:var(--ink-3); }
.fld input,.fld select,.fld textarea{ width:100%; padding:11px 13px; border-radius:11px; border:1px solid var(--line-2); background:var(--surface); font-size:15px; color:var(--ink); font-family:inherit; transition:border-color .15s,box-shadow .15s; }
.fld textarea{ resize:vertical; min-height:96px; line-height:1.55; }
.fld input:focus,.fld select:focus,.fld textarea:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(47,91,255,.14); }
.fld input::placeholder,.fld textarea::placeholder{ color:#A7ABBF; }
.fld.bad input,.fld.bad select{ border-color:#E0694A; box-shadow:0 0 0 3px rgba(224,105,74,.14); }
.fld .msg{ display:none; margin-top:5px; font-size:12.5px; color:#B42318; font-weight:600; }
.fld.bad .msg{ display:block; }
@media (max-width:760px){ .fld input,.fld select,.fld textarea{ font-size:16px; } }
.bmi{ margin:-2px 0 12px; font-size:13.5px; color:var(--ink-2); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.bmi b{ font:700 13px var(--f-mono); padding:3px 9px; border-radius:8px; background:var(--bg-alt); color:var(--ink); }
.bmi .tag{ font-size:12px; font-weight:700; padding:3px 9px; border-radius:999px; }
.tag.g{ background:var(--green-soft); color:var(--green-ink); } .tag.o{ background:var(--orange-soft); color:var(--orange-ink); } .tag.r{ background:#FEF3F2; color:#B42318; } .tag.b{ background:var(--blue-soft); color:var(--blue-ink); }

.rows{ margin-top:14px; display:grid; gap:12px; }
.rowcard{ position:relative; border:1px solid var(--line); border-radius:16px; padding:14px 14px 2px; background:var(--bg); }
.rowcard .rh{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.rowcard .rh b{ font:700 12px var(--f-mono); color:var(--ink-3); text-transform:uppercase; letter-spacing:.05em; }
.rm{ border:0; background:none; color:var(--ink-3); font-size:13px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:6px; padding:4px 6px; border-radius:8px; font-family:inherit; }
.rm:hover{ color:#B42318; background:#FEF3F2; }
.addrow{ margin-top:12px; display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:11px; border:1.5px dashed #C3C9E6; background:transparent; color:var(--blue-ink); font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; }
.addrow:hover{ border-color:var(--blue); background:var(--blue-soft); }
.times{ display:flex; gap:6px; flex-wrap:wrap; }
.times label{ position:relative; cursor:pointer; }
.times input{ position:absolute; opacity:0; width:1px; height:1px; }
.times span{ display:inline-flex; align-items:center; gap:6px; padding:9px 11px; border-radius:10px; border:1px solid var(--line-2); background:var(--surface); font-size:13px; font-weight:700; color:var(--ink-2); user-select:none; }
.times span i{ font-size:12px; color:var(--ink-3); }
.times input:checked + span{ background:var(--blue-soft); border-color:rgba(47,91,255,.45); color:var(--blue-ink); }
.times input:checked + span i{ color:var(--blue); }
.times input:focus-visible + span{ outline:2px solid var(--blue); outline-offset:2px; }
.sev{ display:flex; gap:6px; }
.sev label{ flex:1; position:relative; cursor:pointer; }
.sev input{ position:absolute; opacity:0; }
.sev span{ display:block; text-align:center; padding:10px 6px; border-radius:10px; border:1px solid var(--line-2); background:var(--surface); font-size:13px; font-weight:700; color:var(--ink-2); }
.sev input:checked + span.m{ background:var(--green-soft); border-color:rgba(18,183,106,.4); color:var(--green-ink); }
.sev input:checked + span.o{ background:var(--orange-soft); border-color:rgba(244,118,42,.45); color:var(--orange-ink); }
.sev input:checked + span.s{ background:#FEF3F2; border-color:#FECDCA; color:#B42318; }
.sev input:focus-visible + span{ outline:2px solid var(--blue); outline-offset:2px; }

.ck{ display:inline-flex; align-items:flex-start; gap:9px; font-size:14px; font-weight:600; color:var(--ink-2); cursor:pointer; line-height:1.45; }
.ck input{ width:17px; height:17px; margin-top:1px; accent-color:var(--blue); flex:none; }
.consent{ margin-top:4px; padding:14px; border-radius:14px; background:var(--bg-alt); }
.consent.bad{ outline:2px solid rgba(224,105,74,.6); }
.linkbtn{ border:0; background:none; padding:0; font:inherit; font-weight:700; color:var(--blue-ink); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.f-actions{ margin-top:18px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.f-actions .btn-primary{ padding:15px 26px; font-size:16px; }
.f-actions .btn[disabled]{ opacity:.6; cursor:wait; transform:none; }
.f-err{ margin-top:14px; display:flex; gap:10px; padding:12px 14px; border-radius:14px; background:#FEF3F2; border:1px solid #FECDCA; color:#912018; font-size:14px; }
.f-err i{ margin-top:3px; }
.okcard{ padding:32px 26px; text-align:center; }
.okcard .big{ width:64px; height:64px; margin:0 auto; border-radius:20px; display:grid; place-items:center; background:var(--green-soft); color:var(--green-ink); font-size:28px; }
.okcard h2{ margin-top:16px; font-size:26px; }
.okcard p{ margin:10px auto 0; max-width:52ch; color:var(--ink-2); font-size:16px; }
.okcard .f-actions{ justify-content:center; }
.toast{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%) translateY(20px); opacity:0; z-index:200; padding:11px 18px; border-radius:12px; background:#0A0F24; color:#fff; font-size:14px; font-weight:600; box-shadow:0 14px 30px -10px rgba(0,0,0,.45); transition:opacity .2s,transform .2s; pointer-events:none; }
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------- printable health card ---------- */
#printCard{ display:none; }
@media print{
  @page{ size:A4; margin:14mm; }
  body{ background:#fff !important; }
  body > *:not(#printCard){ display:none !important; }
  #printCard{ display:block !important; color:#111; font:11pt/1.45 Arial,Helvetica,sans-serif; }
  #printCard h1{ font-size:20pt; margin:0; color:#1B2A6B; }
  #printCard .sub{ color:#555; font-size:9.5pt; margin-top:2pt; }
  #printCard h2{ font-size:12pt; margin:14pt 0 5pt; color:#1B2A6B; border-bottom:1.5pt solid #1B2A6B; padding-bottom:3pt; }
  #printCard table{ width:100%; border-collapse:collapse; font-size:10pt; }
  #printCard th{ background:#EEF1FA !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; text-align:left; padding:5pt 6pt; border:1pt solid #C9CFE3; font-size:9pt; }
  #printCard td{ padding:5pt 6pt; border:1pt solid #C9CFE3; vertical-align:top; }
  #printCard td.t{ text-align:center; font-weight:700; width:26pt; }
  #printCard .kv{ display:flex; flex-wrap:wrap; gap:4pt 18pt; margin-top:8pt; font-size:10.5pt; }
  #printCard .kv b{ color:#555; font-weight:normal; }
  #printCard .foot{ margin-top:16pt; font-size:8.5pt; color:#666; border-top:1pt solid #ddd; padding-top:6pt; }
  #printCard tr{ page-break-inside:avoid; }
}