/* LoftFit shared styles */
:root{
  --bg:#EDF0F2; --panel:#FFFFFF; --ink:#18222E; --muted:#5B6773; --line:#D5DBE1;
  --accent:#2C7A74; --accent-ink:#FFFFFF; --mark:#E0862B; --soft:#DCEBE9;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Figtree",ui-sans-serif,system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#12181F; --panel:#1A222B; --ink:#E6ECF1; --muted:#97A3AE; --line:#2C3743;
  --accent:#4FB3AA; --accent-ink:#0E1A19; --mark:#F0A04B; --soft:#1F3533; color-scheme:dark}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}
a{color:var(--accent)}
img{max-width:100%}
.shell{max-width:1120px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}

/* Site header / footer */
.site-head{border-bottom:1px solid var(--line);background:var(--panel)}
.site-head .shell{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px;flex-wrap:wrap}
.brand{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.brand span{color:var(--accent)}
.nav{display:flex;gap:18px;flex-wrap:wrap}
.nav a{color:var(--muted);text-decoration:none;font-weight:500}
.nav a:hover{color:var(--ink)}
.site-foot{border-top:1px solid var(--line);margin-top:56px}
.site-foot .shell{padding-block:24px;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-size:14px;color:var(--muted)}
.site-foot a{color:var(--muted)}
.disclose{font-size:13px;color:var(--muted)}

/* Tool page */
.hero{padding-block:32px 8px}
.hero h1{font-family:var(--display);font-weight:700;font-size:clamp(28px,4.4vw,44px);line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.01em}
.hero p{margin:10px 0 0;color:var(--muted);max-width:62ch}
.grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start;margin-top:20px}
@media (max-width:820px){.grid{grid-template-columns:1fr}}
.pane{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.label{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
button,.btn{font:inherit;font-size:15px;font-weight:600;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:8px 13px;cursor:pointer}
button:hover,.btn:hover{border-color:var(--accent)}
.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button:focus-visible,.btn:focus-within,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--mark);outline-offset:2px}
input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.stage{position:relative;background:var(--bg);border-radius:10px;overflow:hidden;touch-action:none}
canvas{display:block;width:100%;height:auto;cursor:crosshair}
.step{display:flex;gap:10px;align-items:center;background:var(--soft);border-radius:10px;padding:10px 12px;font-size:15px}
.step .dot{width:12px;height:12px;border-radius:50%;background:var(--mark);flex:none}
.step b{font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12.5px;padding:3px 9px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}
.chip.done{border-color:var(--accent);color:var(--accent)}
.controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.field{display:flex;flex-direction:column;gap:5px}
select,input[type=number]{font:inherit;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink);width:100%}
.readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.m{border-top:2px solid var(--line);padding-top:8px}
.m .v{font-family:var(--mono);font-size:22px;font-variant-numeric:tabular-nums}
.m .v small{font-size:13px;color:var(--muted)}
.m .k{font-size:12.5px;color:var(--muted)}
.verdict{border-radius:12px;background:var(--soft);padding:16px;display:flex;flex-direction:column;gap:6px}
.verdict .cat{font-family:var(--display);font-weight:700;font-size:28px;line-height:1.1}
.verdict .loft{font-family:var(--mono);font-size:14px}
.gauge{position:relative;height:30px;margin-top:6px}
.gauge .bands{display:flex;height:10px;border-radius:5px;overflow:hidden}
.gauge .bands span{flex:1;border-right:2px solid var(--panel)}
.gauge .bands span:last-child{border-right:0}
.gauge .needle{position:absolute;top:-3px;width:3px;height:16px;background:var(--mark);border-radius:2px;transform:translateX(-50%);transition:left .3s}
.gauge .ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:4px}
.picks{display:flex;flex-direction:column;gap:8px}
.pick{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}
.pick:hover{border-color:var(--accent)}
.pick .t{font-weight:600}
.pick .d{font-size:13px;color:var(--muted)}
.pick .go{font-family:var(--mono);font-size:12px;color:var(--accent);white-space:nowrap}
.note{font-size:13.5px;color:var(--muted);max-width:65ch;margin:0}
.pending{color:var(--muted);font-size:14px}
.status{font-size:13.5px;color:var(--muted)}
.guides-teaser{margin-top:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.guides-teaser a{display:block;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.guides-teaser a:hover{border-color:var(--accent)}
.guides-teaser .t{font-weight:600;display:block}
.guides-teaser .d{font-size:14px;color:var(--muted)}
.section-title{font-family:var(--display);font-weight:700;font-size:24px;margin:40px 0 0}

/* Articles */
.article{max-width:68ch;margin:0 auto;padding-block:36px 0}
.article .eyebrow{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);font-weight:600}
.article h1{font-family:var(--display);font-weight:700;font-size:clamp(28px,4vw,40px);line-height:1.12;margin:6px 0 10px;text-wrap:balance;letter-spacing:-.01em}
.article h2{font-family:var(--display);font-weight:700;font-size:23px;line-height:1.2;margin:34px 0 8px;text-wrap:balance}
.article p,.article li{font-size:17px}
.article .lede{font-size:19px;color:var(--muted)}
.article table{border-collapse:collapse;width:100%;font-size:15px;font-variant-numeric:tabular-nums}
.article th,.article td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.article th{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.table-wrap{overflow-x:auto}
.cta{margin:32px 0;padding:20px;border-radius:12px;background:var(--soft);display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.cta strong{font-family:var(--display);font-size:20px}
.cta a{background:var(--accent);color:var(--accent-ink);text-decoration:none;font-weight:600;padding:9px 15px;border-radius:9px}
.caution{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:36px}
@media (prefers-reduced-motion:reduce){.gauge .needle{transition:none}}
