/* The Med Club health tools v6: quiet, white-first, matches the main site. */
[hidden]{display:none!important}
:root{
  --bg:#FFFFFF; --soft:#F5F8FB; --tint:#EAF2FA; --surface:#FFFFFF;
  --ink:#10202F; --muted:#66727E; --line:#E6ECF1; --line2:#D5DEE7;
  --accent:#1F6FD1; --accent-soft:#DCEAF9; --on-accent:#FFFFFF;
  --good:#227A54; --good-soft:#E3F2EA; --warn:#94600A; --warn-soft:#FAF0DC; --bad:#B23F2C; --bad-soft:#F7E3DF;
  --z1:#9DBFE6; --z2:#5BAE86; --z3:#E2B04F; --z4:#DE8A63; --z5:#C65845;
  --f:"Geist","Helvetica Neue",Arial,sans-serif; --fm:"Geist Mono",ui-monospace,Menlo,monospace;
  --max:70rem; color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0A1118; --soft:#111A23; --tint:#14212D; --surface:#0F1821;
  --ink:#ECF1F6; --muted:#9AA6B2; --line:#1F2A35; --line2:#2A3846;
  --accent:#6FA8F0; --accent-soft:#16283B; --on-accent:#0A1118;
  --good:#6CCB9C; --good-soft:#12291F; --warn:#E8B95C; --warn-soft:#2A2213; --bad:#F08E7C; --bad-soft:#2E1915; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0A1118; --soft:#111A23; --tint:#14212D; --surface:#0F1821;
  --ink:#ECF1F6; --muted:#9AA6B2; --line:#1F2A35; --line2:#2A3846;
  --accent:#6FA8F0; --accent-soft:#16283B; --on-accent:#0A1118;
  --good:#6CCB9C; --good-soft:#12291F; --warn:#E8B95C; --warn-soft:#2A2213; --bad:#F08E7C; --bad-soft:#2E1915; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--f);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;font-weight:400;letter-spacing:-.025em;text-wrap:balance}
p{margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:16px}
@media(min-width:760px){.wrap{padding-inline:32px}}
.tnum{font-variant-numeric:tabular-nums}

/* header */
.tnav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.tnav .bar{display:flex;align-items:center;gap:20px;min-height:66px}
.brand img{height:36px;width:auto}
.logo-dark{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-light{display:none}:root:not([data-theme="light"]) .logo-dark{display:block}}
:root[data-theme="dark"] .logo-light{display:none}:root[data-theme="dark"] .logo-dark{display:block}
.tlinks{display:none;gap:24px;margin-left:auto;font-size:.9375rem;color:var(--muted)}
.tlinks a{text-decoration:none}.tlinks a:hover,.tlinks a[aria-current]{color:var(--ink)}
@media(min-width:920px){.tlinks{display:flex}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px;border:0;cursor:pointer;font-weight:500;font-size:.9375rem;line-height:1;text-decoration:none;background:var(--accent);color:var(--on-accent);white-space:nowrap}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line2)}
.btn.sm{min-height:40px;padding:0 18px;font-size:.875rem}
.tnav .btn{margin-left:auto}
@media(min-width:920px){.tnav .btn{margin-left:0}}

/* page head */
.phead{padding:28px 0 26px;display:grid;gap:14px;max-width:44rem}
.crumb{font-size:.8125rem;color:var(--muted)}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--ink);text-decoration:underline}
.phead h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05;font-weight:300}
.phead .lead{color:var(--muted);font-size:1.0625rem}
.byline{font-size:.8125rem;color:var(--muted)}
.byline b{color:var(--ink);font-weight:500}

/* calculator */
.calc{display:grid;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--surface)}
@media(min-width:960px){.calc{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}}
.inputs{padding:22px;display:grid;gap:18px;align-content:start}
@media(min-width:760px){.inputs{padding:30px}}
.ihead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ihead h2{font-size:1.0625rem;font-weight:500}
.need{font-size:.8125rem;color:var(--muted);margin-top:-8px}
.seg{display:inline-grid;grid-auto-flow:column;gap:0;border-radius:10px;box-shadow:inset 0 0 0 1px var(--line2);overflow:hidden}
.seg button{border:0;background:none;padding:7px 12px;cursor:pointer;font-size:.8125rem;color:var(--muted);min-height:34px}
.seg button+button{box-shadow:inset 1px 0 0 var(--line2)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.fields{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.fld{display:grid;gap:7px;min-width:0}
.fld.full,.fld:has(select),.fld:has(.choice){grid-column:1/-1}
.flabel{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.flabel label,.flabel .lbl,.fld>.lbl{font-size:.875rem;font-weight:500}
.fld small{color:var(--muted);font-size:.75rem}
.numrow{display:block}
.inp{position:relative;display:flex;align-items:center}
.inp input,.fld select{width:100%;min-height:50px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);padding:0 14px;font-size:1rem;-moz-appearance:textfield;appearance:none;font-variant-numeric:tabular-nums}
.inp input::-webkit-outer-spin-button,.inp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.inp input{padding-right:46px}
.inp input::placeholder{color:color-mix(in srgb,var(--muted) 55%,transparent)}
.inp .u{position:absolute;right:14px;color:var(--muted);font-size:.85rem;pointer-events:none}
.inp input:focus,.fld select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.fld select{font-size:.9375rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366727E' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rng{display:none}
.choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.choice.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.choice label{position:relative}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice span{display:grid;gap:1px;place-items:center;text-align:center;min-height:48px;padding:8px;border-radius:12px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line2);cursor:pointer;font-size:.9375rem}
.choice span svg{display:none}
.choice span small{font-size:.72rem;color:var(--muted)}
.choice input:checked+span{box-shadow:inset 0 0 0 2px var(--ink);font-weight:500}
.choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.privacy{font-size:.75rem;color:var(--muted)}
.privacy svg{display:none}
.fine{font-size:.78rem;color:var(--muted)}

.result{padding:22px;display:grid;gap:18px;align-content:start;background:var(--soft);border-top:1px solid var(--line)}
@media(min-width:760px){.result{padding:30px}}
@media(min-width:960px){.result{border-top:0;border-left:1px solid var(--line)}}
.rlabel{font-size:.8125rem;color:var(--muted)}
/* linear scale */
.scale{display:grid;gap:8px}
.scale .val{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.scale .val b{font-size:clamp(2.6rem,7vw,3.4rem);line-height:1;font-weight:300;letter-spacing:-.04em}
.scale .val small{color:var(--muted);font-size:.875rem}
.sbar{position:relative;display:flex;height:8px;margin-top:22px;border-radius:2px;overflow:visible}
.sbar i{display:block;height:100%}
.sbar i+i{margin-left:2px}
.sbar .mk{position:absolute;bottom:12px;transform:translateX(-50%);display:grid;justify-items:center;transition:left .5s cubic-bezier(.2,.8,.2,1)}
.sbar .mk::after{content:"";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--ink)}
.slab{position:relative;height:16px;font-size:.72rem;color:var(--muted)}
.slab span{position:absolute;top:0;white-space:nowrap}
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;font-size:.8125rem;font-weight:500;justify-self:start}
.tag.good{background:var(--good-soft);color:var(--good)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.bad{background:var(--bad-soft);color:var(--bad)}.tag.info{background:var(--accent-soft);color:var(--accent)}
.legend{display:grid;padding:0;margin:0;list-style:none;border-top:1px solid var(--line2)}
.legend li{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line);font-size:.875rem;color:var(--muted)}
.legend li i{width:10px;height:10px;border-radius:2px}
.legend li b{font-weight:400;font-variant-numeric:tabular-nums}
.legend li.on{color:var(--ink)}
.legend li.on span{font-weight:600}.legend li.on b{font-weight:600}
.legend li.on span::after{content:" ← you";font-weight:400;color:var(--muted);font-size:.8rem}
.rows{display:grid;border-top:1px solid var(--line2)}
.rows div{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line);font-size:.9rem}
.rows span{color:var(--muted);min-width:0}
.rows b{font-weight:600;text-align:right;flex:none;max-width:62%}
.rows div.hl span{color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.stat{padding:12px 2px;display:grid;gap:2px}
.stat+.stat{border-left:1px solid var(--line);padding-left:14px}
.stat span{font-size:.75rem;color:var(--muted)}
.stat b{font-size:1.25rem;font-weight:400;font-variant-numeric:tabular-nums}
.stat b small{font-size:.78rem;color:var(--muted);margin-left:3px}
.stat.hl b{font-weight:600}
.bigline{display:grid;gap:6px}
.bigline b{font-size:clamp(2.6rem,7vw,3.4rem);line-height:1;font-weight:300;letter-spacing:-.04em}
.bigline small{color:var(--muted);font-size:.875rem}
.bars{display:grid;gap:10px}
.bars .br{display:grid;gap:4px}
.bars .bl{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.bars .bl b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.bars .bt{height:6px;border-radius:2px;background:var(--line);overflow:hidden}
.bars .bt i{display:block;height:100%}
.chart svg{width:100%;height:auto;display:block}
.chart .ax{font:400 10.5px var(--f);fill:var(--muted)}
.donutrow{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:center}
.donut{position:relative}
.donut svg{width:100%;height:auto;transform:rotate(-90deg)}
.donut .dc{position:absolute;inset:0;display:grid;place-items:center;text-align:center;line-height:1.1}
.donut .dc b{font-size:1.25rem;font-weight:500}
.donut .dc small{display:block;font-size:.7rem;color:var(--muted)}
.keys{display:grid;gap:8px}
.keys div{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;font-size:.875rem;color:var(--muted)}
.keys i{width:10px;height:10px;border-radius:2px}
.keys b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.shape{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.shape svg{width:64px;height:auto}
.shape b{display:block;font-weight:600}
.shape p{font-size:.85rem;color:var(--muted)}
.shape+.rows,.legend+.shape,.legend+.rows{border-top:0}
.note{font-size:.85rem;color:var(--muted);padding-left:12px;border-left:2px solid var(--line2)}
.note.warn{border-left-color:var(--warn);color:var(--ink)}
.note b{color:var(--ink)}
.food{display:grid;gap:10px;padding:16px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.food h3{font-size:.9375rem;font-weight:600}
.food .meals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.food .meals div{display:grid;gap:1px}
.food .meals span{font-size:.75rem;color:var(--muted)}
.food .meals b{font-weight:600;font-variant-numeric:tabular-nums}
.food .meals small{font-size:.75rem;color:var(--muted)}
.food p{font-size:.8125rem;color:var(--muted)}
.disc{font-size:.75rem;color:var(--muted)}

/* result v5 */
.headline{font-size:1.125rem;line-height:1.45;color:var(--ink);font-weight:500;padding-left:14px;border-left:3px solid var(--accent)}
.headline.good{border-left-color:var(--z2)}.headline.warn{border-left-color:var(--z3)}.headline.bad{border-left-color:var(--z5)}
.three{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line2)}
.three li{display:grid;gap:2px;padding:11px 2px;border-bottom:1px solid var(--line)}
.three b{font-size:.75rem;font-weight:600;color:var(--muted)}
.three span{font-size:.9375rem;color:var(--ink)}
.whatif{display:grid;gap:8px;padding:16px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.whatif label{font-size:.9rem;font-weight:500}
.whatif label b{color:var(--accent);font-weight:600}
.wi-out{font-size:.9rem;color:var(--muted);min-height:1.4em}
.wi-out b{color:var(--ink)}
.rng2{width:100%;-webkit-appearance:none;appearance:none;height:28px;background:transparent;cursor:pointer;--p:30%}
.rng2::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) 0 var(--p),var(--line2) var(--p) 100%)}
.rng2::-moz-range-track{height:6px;border-radius:999px;background:var(--line2)}
.rng2::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}
.rng2::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;background:var(--bg);box-shadow:0 0 0 2px var(--accent),0 3px 8px -2px rgba(16,32,47,.35)}
.rng2::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--bg);border:0;box-shadow:0 0 0 2px var(--accent),0 3px 8px -2px rgba(16,32,47,.35)}
.savebox{display:grid;gap:4px}
.saved{font-size:.85rem;color:var(--muted)}.saved b{color:var(--ink)}
.linkbtn{all:unset;cursor:pointer;justify-self:start;font-size:.85rem;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.linkbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
details.more{border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
details.more summary{cursor:pointer;list-style:none;padding:12px 2px;font-size:.9rem;font-weight:500;display:flex;justify-content:space-between}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"+";color:var(--muted);font-weight:300;font-size:1.2rem;line-height:1}
details.more[open] summary::after{content:"\2212"}
.morein{display:grid;gap:16px;padding:4px 0 16px}
.nextstep{display:grid;gap:12px}
.nexttool{display:grid;gap:2px;padding:14px 16px;border-radius:14px;background:var(--accent-soft);text-decoration:none}
.nexttool span{font-weight:600;color:var(--accent)}
.nexttool small{font-size:.85rem;color:var(--ink)}
.svcline{font-size:.875rem;color:var(--muted)}
.svcline a{color:var(--accent)}
.nextstep .btn{justify-self:start}

/* v6: picture before the result, then an animated reveal */
.empty{display:grid;justify-items:center;align-content:center;gap:18px;min-height:340px;text-align:center;transition:opacity .2s,transform .2s}
.empty.leaving{opacity:0;transform:scale(.97)}
.eart{width:min(260px,80%);height:auto;overflow:visible}
.eart .s{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.eart .s2{fill:none;stroke:var(--muted);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.55}
.eart .f{fill:var(--accent-soft)}
.eart .bgc{fill:var(--surface);stroke:var(--line2);stroke-width:1.2}
.eart .z1{fill:var(--z1)}.eart .z2{fill:var(--z2)}.eart .z3{fill:var(--z3)}.eart .z5{fill:var(--z5)}
.eart .float{animation:eFloat 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.eart .needle{animation:eNeedle 3.2s ease-in-out infinite;transform-box:view-box}
.eart .steam{animation:eSteam 2.6s ease-in-out infinite}
.eart .steam.b{animation-delay:.6s}.eart .steam.c{animation-delay:1.2s}
.eart .dash{stroke-dasharray:4 6;animation:eDash 1.8s linear infinite}
.eart .grow{animation:eGrow 3.6s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom}
@keyframes eFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes eNeedle{0%,100%{transform:rotate(-34deg)}50%{transform:rotate(30deg)}}
@keyframes eSteam{0%{opacity:0;transform:translateY(4px)}40%{opacity:.8}100%{opacity:0;transform:translateY(-10px)}}
@keyframes eDash{to{stroke-dashoffset:-20}}
@keyframes eGrow{0%,100%{transform:scaleY(.86)}50%{transform:scaleY(1)}}
.ehint{font-size:.875rem;color:var(--muted);max-width:22rem}
.result.enter>*{animation:rIn .5s cubic-bezier(.2,.8,.2,1) both}
.result.enter>*:nth-child(2){animation-delay:.06s}.result.enter>*:nth-child(3){animation-delay:.12s}.result.enter>*:nth-child(4){animation-delay:.18s}.result.enter>*:nth-child(5){animation-delay:.24s}.result.enter>*:nth-child(6){animation-delay:.3s}.result.enter>*:nth-child(n+7){animation-delay:.36s}
@keyframes rIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.result.enter .sbar i{animation:segIn .6s cubic-bezier(.2,.8,.2,1) both;transform-origin:left}
.result.enter .sbar i:nth-child(2){animation-delay:.08s}.result.enter .sbar i:nth-child(3){animation-delay:.16s}.result.enter .sbar i:nth-child(4){animation-delay:.24s}.result.enter .sbar i:nth-child(5){animation-delay:.32s}
@keyframes segIn{from{transform:scaleX(0)}to{transform:none}}
.result.enter .sbar .mk{animation:mkIn .9s .35s cubic-bezier(.2,.9,.2,1.1) both}
@keyframes mkIn{from{left:0;opacity:0}20%{opacity:1}}
.result.enter .bars .bt i{animation:barIn .8s .3s cubic-bezier(.2,.8,.2,1) both;transform-origin:left}
@keyframes barIn{from{transform:scaleX(0)}to{transform:none}}

/* article */
.article{display:grid;gap:40px;padding:56px 0 8px}
@media(min-width:960px){.article{grid-template-columns:minmax(0,1fr) 300px;gap:56px}}
.prose{display:grid;gap:36px;max-width:44rem}
.prose section{display:grid;gap:12px}
.prose p,.prose li{color:var(--muted)}
.lh{font-size:1.5rem;font-weight:400;margin-bottom:6px}
.acc{border-top:1px solid var(--line2)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:1.1875rem;color:var(--ink)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:1.35rem;color:var(--muted);font-weight:300}
.acc details[open]>summary::after{content:"\2212"}
.acc .ab{display:grid;gap:12px;padding:0 0 20px}
.acc .ab p,.acc .ab li{color:var(--muted)}
.acc .ab ul,.acc .ab ol{margin:0;padding-left:20px;display:grid;gap:6px}
.acc .ab a{color:var(--accent)}
.acc .ab table{width:100%;border-collapse:collapse;font-size:.9rem}
.acc .ab th,.acc .ab td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
.acc .ab th{font-weight:600;color:var(--ink);font-size:.8rem;border-bottom-color:var(--line2)}
.acc .ab td{color:var(--muted)}
.acc .ab .f{font-family:var(--fm);font-size:.8rem;line-height:1.7;background:var(--soft);padding:14px 16px;border-radius:10px;color:var(--ink);overflow-x:auto}
.acc .ab details.faq{border-bottom:1px solid var(--line)}
.acc .ab details.faq summary{font-size:1rem;padding:14px 0}
.acc .ab details.faq p{padding-bottom:14px}
.refs{margin:0;padding-left:20px;display:grid;gap:8px}.refs li{font-size:.8125rem;color:var(--muted);line-height:1.55}.refs a{color:var(--accent);white-space:nowrap}
.aside{display:grid;gap:16px;align-content:start}
@media(min-width:960px){.aside{position:sticky;top:90px}}
.visit{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface)}
.visit img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.visit .vt{padding:18px;display:grid;gap:10px}
.visit h3{font-size:1.0625rem;font-weight:500;line-height:1.3}
.visit p{font-size:.875rem;color:var(--muted)}
.visit .btn{justify-self:start}
.visit .vl{font-size:.875rem}
.visit .vl a{color:var(--accent)}
.related{padding:48px 0 72px;display:grid;gap:14px}
.related h2{font-size:1.25rem;font-weight:400}
.tlist{display:grid;border-top:1px solid var(--line2)}
@media(min-width:760px){.tlist.two{grid-template-columns:1fr 1fr;column-gap:40px}}
.tlist a{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:18px 2px;border-bottom:1px solid var(--line);text-decoration:none}
.tlist b{font-weight:500;font-size:1.0625rem}
.tlist small{grid-column:1;color:var(--muted);font-size:.875rem}
.tlist .need2{grid-column:1;font-size:.75rem;color:var(--muted)}
.tlist .ar{grid-row:1/span 3;grid-column:2;align-self:center;color:var(--muted);font-size:1.2rem;transition:transform .2s}
.tlist a:hover b{color:var(--accent)}.tlist a:hover .ar{transform:translateX(3px);color:var(--accent)}
.hubtop{display:grid;gap:28px;padding:28px 0 8px}
@media(min-width:900px){.hubtop{grid-template-columns:1fr 380px;align-items:end;gap:48px}}
.hubtop img{border-radius:18px;aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}
.hubtop figcaption{font-size:.75rem;color:var(--muted);margin-top:8px}
.prose a{color:var(--accent)}
.peek{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:30;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:999px;background:var(--ink);color:var(--bg);text-decoration:none;font-size:.875rem;box-shadow:0 10px 30px -10px rgba(0,0,0,.45);white-space:nowrap;max-width:calc(100% - 32px)}
.peek b{background:var(--accent);color:#fff;padding:7px 12px;border-radius:999px;font-weight:500;font-size:.8rem}
.peek span{overflow:hidden;text-overflow:ellipsis}
@media(min-width:960px){.peek{display:none!important}}
.tfoot{border-top:1px solid var(--line);padding:32px 0 40px;font-size:.875rem;color:var(--muted)}
.tfoot .in{display:grid;gap:12px}
.tfoot nav{display:flex;flex-wrap:wrap;gap:8px 18px}
.tfoot a{text-decoration:none}.tfoot a:hover{color:var(--ink)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.eart *,.result.enter *,.result.enter>*{animation:none!important}}

/* v7: navy chart card (same background as the site's assistant panel) */
.result{gap:20px}
.viz{position:relative;isolation:isolate;overflow:hidden;border-radius:22px;padding:20px 20px 22px;color:#fff;display:grid;gap:14px;
  background:radial-gradient(120% 90% at 85% 0%,#2b5fd0 0%,rgba(43,95,208,0) 55%),radial-gradient(90% 80% at 0% 100%,#1c3a73 0%,rgba(28,58,115,0) 60%),linear-gradient(160deg,#0f2142,#0a1730);
  --c1:#86B6F2;--c2:#4FC08D;--c3:#F2B84B;--c4:#F29A6B;--c5:#EF6F57;box-shadow:0 24px 50px -30px rgba(10,23,48,.7)}
@media(min-width:760px){.viz{padding:24px 26px 26px}}
.viz::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.09) 1px,transparent 1px);background-size:16px 16px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%);z-index:-1}
.vring{position:absolute;width:220px;height:220px;right:-70px;top:-90px;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 28px rgba(255,255,255,.03),0 0 0 60px rgba(255,255,255,.02);z-index:-1}
.vchart{position:relative;width:min(400px,100%);margin:4px auto 0}
.vsvg{width:100%;height:auto;display:block;overflow:visible}
.vsvg .segs path{fill:none;stroke:rgba(255,255,255,.1);stroke-width:24;stroke-linecap:round;opacity:.42;transition:stroke .5s,opacity .5s,filter .5s}
.viz.idle .vsvg .segs path{opacity:1}
.vsvg .segs path.cur{opacity:1;filter:drop-shadow(0 0 10px rgba(255,255,255,.18))}
.vsvg .ticks text{font:500 11px var(--f);fill:rgba(255,255,255,.55)}
.vsvg .knob,.vsvg .ghost{transform-origin:160px 162px;transform-box:view-box;transition:transform .9s cubic-bezier(.2,.9,.25,1.08),opacity .3s}
.vsvg .knob .halo{fill:rgba(255,255,255,.14)}
.vsvg .knob .dot{fill:#fff;stroke:#fff;stroke-width:5;transition:stroke .4s}
.viz.idle .vsvg .knob{opacity:0}
.vsvg .ghost{opacity:0}.vsvg .ghost.on{opacity:1}
.vsvg .ghost circle{fill:rgba(255,255,255,.08);stroke:#fff;stroke-width:2;stroke-dasharray:3 3}
.vsvg .rtrack{fill:none;stroke:rgba(255,255,255,.1);stroke-width:22}
.vsvg .rseg{fill:none;stroke-width:22;stroke-linecap:round;transition:stroke-dasharray .9s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1)}
.vcenter{position:absolute;left:0;right:0;top:38%;display:grid;justify-items:center;gap:2px;text-align:center;pointer-events:none}
.viz.ring .vcenter{top:31%}.viz.ring .vnum{font-size:clamp(2.1rem,7vw,2.8rem)}.viz.ring .vcat{font-size:.8125rem;font-weight:500;color:rgba(255,255,255,.8)}.viz.ring .vlab{font-size:.75rem}
.vlab{font-size:.8125rem;color:rgba(255,255,255,.72)}
.vnum{font-size:clamp(2.6rem,9vw,3.4rem);font-weight:300;letter-spacing:-.04em;line-height:1.05}
.viz.idle .vnum{color:#F2B84B;font-weight:400}
.vcat{font-size:.9rem;font-weight:600;color:#fff;min-height:1.2em}
.vsub{text-align:center;font-size:.875rem;color:rgba(255,255,255,.72);margin-top:-6px;min-height:1.3em}
.vsub b{color:#fff;font-weight:600}
.vlegend{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid rgba(255,255,255,.12)}
.vlegend li{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.12);font-size:.9375rem;color:rgba(255,255,255,.62);transition:color .3s,background .3s}
.vlegend li i{width:10px;height:10px;border-radius:3px;opacity:.6}
.vlegend li b{font-weight:400;font-variant-numeric:tabular-nums}
.vlegend li.on{color:#fff;background:rgba(255,255,255,.06);border-radius:10px}
.vlegend li.on i{opacity:1;box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.vlegend li.on span{font-weight:600}.vlegend li.on b{font-weight:600}
.vlegend li.on span::after{content:"You";margin-left:8px;font-size:.68rem;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:#fff;color:#0f2142;vertical-align:1px}
.vtog{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.vtog button{border:0;background:none;color:rgba(255,255,255,.8);min-height:40px;border-radius:999px;cursor:pointer;font-size:.875rem;font-weight:500}
.vtog button[aria-pressed="true"]{background:#fff;color:#0f2142}
.vnote{font-size:.8125rem;color:rgba(255,255,255,.62);margin-top:-6px}
.rest:empty{display:none}
.rest{display:grid;gap:18px}
.rest.enter>*{animation:rIn .5s cubic-bezier(.2,.8,.2,1) both}
.rest.enter>*:nth-child(2){animation-delay:.07s}.rest.enter>*:nth-child(3){animation-delay:.14s}.rest.enter>*:nth-child(4){animation-delay:.21s}.rest.enter>*:nth-child(n+5){animation-delay:.28s}
@media (prefers-reduced-motion:reduce){.vsvg *,.rest.enter>*{transition:none!important;animation:none!important}}

/* v8: a chart that fits each tool */
.vtitle{text-align:center;font-size:1.0625rem;font-weight:500;color:#fff}
.vtitle.sm{font-size:.875rem;font-weight:500;color:rgba(255,255,255,.72);margin-top:4px}
.vhi{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:18px 20px;border-radius:18px;background:linear-gradient(135deg,#2E6BD6 0%,#4C8FEA 100%);box-shadow:0 14px 30px -18px rgba(46,107,214,.9),inset 0 1px 0 rgba(255,255,255,.25)}
.viz.idle .vhi{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.vhi .vlab{font-size:1rem;color:#fff;font-weight:500;max-width:9rem;line-height:1.3}
.vhn{display:grid;justify-items:end;line-height:1}
.vhn .vnum{font-size:clamp(2.4rem,8vw,3rem);color:#fff}
.viz.idle .vhn .vnum{color:#F2B84B}
.vhn small{font-size:.875rem;color:rgba(255,255,255,.85);margin-top:4px}
.vsplit{display:flex;height:10px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);gap:3px}
.vsplit i{display:block;height:100%;border-radius:999px;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.vsplit .a{background:var(--c1)}.vsplit .b{background:var(--c2)}
.viz.idle .vsplit i{background:rgba(255,255,255,.1)}
.vsplitl{display:flex;justify-content:space-between;gap:12px;font-size:.8125rem;color:rgba(255,255,255,.72);margin-top:-6px;flex-wrap:wrap}
.vsplitl i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.vsplitl .d1{background:var(--c1)}.vsplitl .d2{background:var(--c2)}
.vsplitl b{color:#fff;font-weight:600;margin-left:4px}
.viz.tdee .vlegend li b{color:#F2B84B}
.viz.idle.tdee .vlegend li b{color:rgba(255,255,255,.5)}
.vsvg .r3track{fill:none;stroke:rgba(255,255,255,.08);stroke-width:15}
.vsvg .r3seg{fill:none;stroke-width:15;stroke-linecap:round;transition:stroke-dasharray 1s cubic-bezier(.2,.8,.2,1)}
.vsvg .r3seg[data-i="1"]{transition-delay:.12s}.vsvg .r3seg[data-i="2"]{transition-delay:.24s}
.vchart.r3 .vcenter{top:37%}
.vchart.r3 .vnum{font-size:clamp(1.7rem,6vw,2.1rem)}
.vchart.r3 .vcat{font-size:.75rem}
.vchart.r3 .vlab{font-size:.72rem;color:#F2B84B}
.vstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vstats div{display:grid;gap:3px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.06)}
.vstats span{font-size:.75rem;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:6px;white-space:nowrap}
.vstats span i{width:8px;height:8px;border-radius:50%}
.vstats b{font-size:1.0625rem;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.vextra:empty{display:none}
.vextra{display:grid;gap:10px}
.vshape{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:#EAF2FA;color:#10202F}
.vshape .ic{width:34px;height:34px;border-radius:50%;background:#1F6FD1;color:#fff;display:grid;place-items:center}
.vshape .ic svg{width:18px;height:18px}
.vshape b{font-weight:600}
.vcards{display:grid;gap:8px}
.vcard{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.vcard div{display:grid;gap:2px}
.vcard b{font-weight:600;font-size:.9375rem}
.vcard small{font-size:.78rem;color:rgba(255,255,255,.65)}
.vcard em{font-style:normal;font-weight:600;font-size:.8125rem;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.1);white-space:nowrap}
.vcard.good em{background:rgba(79,192,141,.18);color:#7FDDB0}.vcard.warn em{background:rgba(242,184,75,.18);color:#F7CF7E}.vcard.bad em{background:rgba(239,111,87,.2);color:#F7A08E}
.vchart.r3 .vcat{display:none}
.vchart.r3 .vcenter{top:40%}
.vchart.r3 .vnum{font-size:clamp(1.6rem,5.5vw,1.9rem)}
.vsvg .r3track,.vsvg .r3seg{stroke-width:14}
.vlast{position:absolute;top:14px;right:14px;z-index:2;font-size:.75rem;color:rgba(255,255,255,.8);padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.vlast b{color:#fff}
/* inputs line up: labels on one line, hints under the box */
.fields{align-items:start}
.flabel{min-height:1.4em;flex-wrap:nowrap}
.fhint{font-size:.75rem;color:var(--muted);line-height:1.35}
/* continuous arc with rounded outer ends */
.vsvg .segs path{stroke-linecap:butt}
.vsvg .segs .cap{fill:rgba(255,255,255,.1);opacity:.42;transition:fill .5s,opacity .5s}
.viz.idle .vsvg .segs .cap{opacity:1}
.vsvg .segs .cap.cur{opacity:1}
.vsvg .segs path{stroke:#22365c;opacity:1}
.vsvg .segs .cap{fill:#22365c;opacity:1}
.vsvg .segs .cur{filter:drop-shadow(0 0 10px rgba(255,255,255,.16))}
/* footer */
.tfoot{border-top:1px solid var(--line);padding:0 0 32px;margin-top:24px;font-size:.875rem;color:var(--muted);background:var(--soft)}
.tfoot a{text-decoration:none;color:inherit}.tfoot a:hover{color:var(--accent)}
.fcta{display:grid;gap:16px;align-items:center;padding:24px;margin:-1px 0 36px;border-radius:0 0 22px 22px;background:var(--bg);box-shadow:inset 0 -1px 0 var(--line),inset 1px 0 0 var(--line),inset -1px 0 0 var(--line)}
@media(min-width:860px){.fcta{grid-template-columns:1fr auto;padding:26px 30px}}
.fcta b{display:block;font-size:1.125rem;font-weight:500;color:var(--ink)}
.fcta span{display:block;margin-top:4px}
.fcta-b{display:flex;flex-wrap:wrap;gap:10px}
.fcta-b .btn{color:var(--on-accent)}.fcta-b .btn.ghost{color:var(--ink)}
.fgrid{display:grid;gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:860px){.fgrid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.fbrand{grid-column:1/-1;display:grid;gap:10px;align-content:start}
@media(min-width:860px){.fbrand{grid-column:auto}}
.fbrand img{height:40px;width:auto}
.fgrid h4{margin:0 0 10px;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fnote{margin:28px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:.8125rem}
.flegal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;margin-top:12px;font-size:.8125rem}
.flegal nav{display:flex;gap:16px}
