/* Oxavion — shared stylesheet for programmatic tool pages (lean, brand-consistent). */
:root{
  --bg:#f3f6fa;--ink:#0f1a2b;--muted:#586675;--faint:#8a97a6;--line:#dde5ee;
  --surface:#fff;--surface-2:#f6f9fc;
  --accent:#1d4a7a;--accent-2:#17345c;--accent-deep:#0b1b33;--accent-wash:#e7eff6;
  --night:#0b1b33;--night-line:#22385c;--night-ink:#eaf1f8;--night-muted:#8ba4c4;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent-2)}
.wrap{max-width:760px;margin:0 auto;padding:0 clamp(1.1rem,4vw,1.6rem)}
.nav{background:var(--night);border-bottom:1px solid var(--night-line)}
.nav .wrap{max-width:960px;display:flex;align-items:center;justify-content:space-between;height:56px}
.brand{display:flex;align-items:center;gap:.5rem;color:var(--night-ink);font-weight:700;text-decoration:none;letter-spacing:-.01em}
.brand .dot{width:.66rem;height:.66rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(29,74,122,.25)}
.brand .logo{height:18px;width:auto;display:block}
.brand small{display:block;font-family:var(--mono);font-weight:500;font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--night-muted);margin-top:1px}
.nav .cta{color:#fff;background:var(--accent);text-decoration:none;font-weight:600;font-size:.86rem;
  padding:.45rem .9rem;border-radius:9px}
.crumb{font-size:.8rem;color:var(--muted);padding:1rem 0 0}
.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--accent-2)}
header.hd{padding:.4rem 0 1.4rem;border-bottom:1px solid var(--line)}
.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);font-weight:600}
h1{font-size:clamp(1.6rem,4.2vw,2.15rem);letter-spacing:-.02em;line-height:1.1;margin:.5rem 0 .1rem;text-wrap:balance}
.sub{color:var(--muted);margin:.5rem 0 0}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.tag{font-family:var(--mono);font-size:.72rem;background:var(--surface);border:1px solid var(--line);
  border-radius:999px;padding:.2rem .6rem;color:var(--muted)}
.cat{display:inline-block;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;
  font-weight:600;color:var(--accent-deep);background:var(--accent-wash);border-radius:6px;padding:.2rem .5rem}
main section{padding:1.6rem 0;border-bottom:1px solid var(--line)}
h2{font-size:1.15rem;letter-spacing:-.01em;margin:0 0 .5rem}
p{margin:.5rem 0}
.callout{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:10px;padding:1.1rem 1.2rem;margin:1.2rem 0}
.callout h2{margin-top:0}
.note{font-size:.88rem;color:var(--muted);margin:.2rem 0 .8rem}
.signals{list-style:none;padding:0;margin:.6rem 0;display:grid;gap:.55rem}
.sig{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;background:var(--surface);
  border:1px solid var(--line);border-radius:9px;padding:.6rem .8rem}
.sig .i{flex:none;width:1.35rem;height:1.35rem;border-radius:50%;display:grid;place-items:center;
  font-size:.78rem;font-weight:700;margin-top:.05rem}
.sig.ok .i{background:#e6f1ea;color:#2f7d5b}
.sig.warn .i{background:#f5ecd9;color:#a9741a}
.sig.unknown .i{background:var(--surface-2);color:var(--faint);border:1px solid var(--line)}
.sig b{font-weight:640}
.assess{border-radius:12px;padding:1.15rem 1.3rem;margin:1.5rem 0}
.assess.open{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent)}
.assess.clean{background:#e9f4ee;border:1px solid #bfe0cd;border-left:4px solid #2f7d5b}
.assess h2{margin:0 0 .45rem;font-size:1.12rem}
.checklist{margin:.6rem 0;padding-left:1.25rem;display:grid;gap:.55rem;font-size:.92rem}
.checklist li b{font-weight:640}
.toolscan{display:flex;gap:.5rem;margin:.9rem 0 .3rem;flex-wrap:wrap}
.toolscan input{flex:1;min-width:200px;border:1px solid var(--line);border-radius:9px;
  padding:.65rem .8rem;font-size:.95rem;font-family:inherit;background:var(--surface);color:var(--ink)}
.toolscan input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.toolscan button{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:.65rem 1.1rem;
  font-weight:600;font-size:.95rem;cursor:pointer;white-space:nowrap}
.toolscan button:hover{background:var(--accent-2)}
.toolscan button:disabled{opacity:.6;cursor:default}
.toolscan-ok{display:none;color:#2f7d5b;font-weight:600;margin:.6rem 0 .2rem}
.ts-note{font-size:.8rem;color:var(--faint);margin:.4rem 0 0}
.hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:#fff;text-decoration:none;
  font-weight:600;font-size:.94rem;padding:.7rem 1.2rem;border-radius:10px;margin-top:.6rem}
.btn:hover{background:var(--accent-2)}
.meta-row{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:.85rem;color:var(--muted);margin-top:.8rem}
.meta-row b{color:var(--ink);font-weight:600}
.related{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.8rem}
@media(max-width:520px){.related{grid-template-columns:1fr}}
.related a{display:block;background:var(--surface);border:1px solid var(--line);border-radius:9px;
  padding:.6rem .8rem;text-decoration:none;color:var(--ink);font-size:.9rem}
.related a:hover{border-color:var(--accent)}
.related a span{display:block;font-size:.76rem;color:var(--faint);font-family:var(--mono);margin-top:.15rem}
.faq dt{font-weight:640;margin-top:.9rem}
.faq dd{margin:.3rem 0 0;color:var(--muted)}
footer{background:var(--night);color:var(--night-muted);font-size:.82rem;padding:2rem 0 2.4rem;margin-top:.5rem}
footer .wrap{max-width:960px}
footer .brand{color:var(--night-ink)}
footer .std{font-family:var(--mono);font-size:.7rem;line-height:1.9;margin-top:.8rem}
footer .legal{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--night-line);font-size:.74rem}
/* hub index */
.hub-cat{margin-top:1.8rem}
.hub-cat h2{font-size:1rem;color:var(--accent-deep);font-family:var(--mono);letter-spacing:.04em;
  text-transform:uppercase;font-size:.8rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}
.hub-list{columns:2;column-gap:1.6rem;margin-top:.7rem}
@media(max-width:560px){.hub-list{columns:1}}
.hub-list a{display:block;text-decoration:none;color:var(--ink);font-size:.9rem;padding:.2rem 0;
  break-inside:avoid;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hub-list a:hover{color:var(--accent-2)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
