/* Shared styles for the migrated content pages (blog, glossary, demos) — built by
   tools/build-hub-content.mjs. Same tokens as public/faq/index.html so the pages
   read as one site; --phos is injected on <html> by the edge middleware. */
:root { --bg:#F1F6FF; --surface:#FFFFFF; --ink:#0C2139; --muted:#566E92; --line:#D6E3F7; --accent:#0057E2; --accent2:#0044B5; --accent-soft:#E2EDFF; --phos:#1FB80A; --phos-bright:#66FF50; --dark:#0C2139; --on-dark:#E7F1FF; --on-dark-muted:#9DB6DC; --amber:#B8791C; --red:#B23B3B; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"IBM Plex Sans",system-ui,sans-serif; font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; }
a { color:var(--accent); }
.wrap { max-width:880px; margin:0 auto; padding-inline:clamp(1.25rem,4vw,2rem); }
.wide { max-width:1100px; }
h1 { font-size:clamp(2rem,5vw,3.2rem); letter-spacing:-0.035em; margin:0; line-height:1.08; }
.lead { color:var(--muted); font-size:1.12rem; }
code { font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace; font-size:0.9em; }
.logo { display:inline-flex; align-items:center; gap:0.6rem; text-decoration:none; }
.lmark { width:38px; height:38px; } .lmark rect { fill:var(--accent); } .lmark path { stroke:#fff; }
html[data-tick="green"] .lmark path { stroke:var(--phos-bright,#66FF50); }
.logo__wm { font-weight:700; font-size:1.5rem; letter-spacing:-0.02em; color:var(--ink); } .logo__wm b { color:var(--phos); }
.hdr { position:sticky; top:0; z-index:30; background:color-mix(in srgb,var(--bg) 90%,transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.hdr__row { display:flex; align-items:center; justify-content:space-between; min-height:70px; gap:1rem; }
.back { text-decoration:none; color:var(--muted); font-weight:500; font-size:0.95rem; } .back:hover { color:var(--ink); }
.btn { display:inline-flex; align-items:center; gap:0.5rem; font:inherit; font-weight:600; padding:0.6rem 1.2rem; border-radius:11px; background:var(--accent); color:#fff; text-decoration:none; cursor:pointer; border:0; }
.btn--phos { background:var(--phos); color:#042816; }
.hero { padding:clamp(2.5rem,6vw,4.5rem) 0 1.5rem; }
.pill { display:inline-flex; align-items:center; gap:0.5rem; background:var(--accent-soft); color:var(--accent2); border:1px solid color-mix(in srgb,var(--accent) 25%,transparent); font-size:0.78rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; padding:0.35rem 0.8rem; border-radius:999px; }
.hero h1 { margin:1rem 0 0.9rem; }
.cta { margin:4rem 0 0; background:var(--dark); color:var(--on-dark); border-radius:22px; padding:clamp(2rem,4vw,3rem); text-align:center; }
.cta h2 { color:#fff; letter-spacing:-0.02em; font-size:1.6rem; margin:0; }
.cta p { color:var(--on-dark-muted); margin:0.6rem auto 1.5rem; max-width:48ch; }
footer { padding:2.5rem 0 3.5rem; color:var(--muted); font-size:0.82rem; }
.foot-nav { display:flex; flex-wrap:wrap; gap:1.1rem; margin-bottom:0.9rem; font-size:0.9rem; } .foot-nav a { color:var(--muted); font-weight:600; text-decoration:none; } .foot-nav a:hover { color:var(--ink); }
/* posts */
.post-list { display:grid; gap:1rem; margin-top:1rem; }
.post-card { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:1.4rem 1.5rem; }
.post-card h2 { font-size:1.35rem; letter-spacing:-0.02em; margin:0.3rem 0 0.5rem; line-height:1.25; } .post-card h2 a { color:var(--ink); text-decoration:none; } .post-card h2 a:hover { color:var(--accent); }
.post-card p { margin:0 0 0.8rem; color:var(--muted); }
.post-meta { font-size:0.85rem; color:var(--muted); }
.tags { display:flex; flex-wrap:wrap; gap:0.4rem; } .tags span { font-size:0.75rem; font-weight:600; padding:0.2rem 0.65rem; border-radius:999px; background:var(--accent-soft); color:var(--accent2); }
.post-head { padding:clamp(2rem,5vw,3.5rem) 0 1.5rem; } .post-head h1 { margin:0.6rem 0 0.9rem; } .post-head .tags { margin-top:0.5rem; }
.crumb { display:inline-block; text-decoration:none; color:var(--muted); font-weight:500; font-size:0.9rem; margin-bottom:0.8rem; }
.prose { font-size:1.06rem; } .prose h2 { font-size:1.35rem; letter-spacing:-0.02em; margin:2rem 0 0.6rem; } .prose h3 { font-size:1.12rem; margin:1.5rem 0 0.4rem; }
.prose p, .prose ul, .prose ol { margin:0 0 1rem; } .prose li { margin:0.3rem 0; }
.prose blockquote { margin:1.5rem 0; padding:0.9rem 1.2rem; border-left:3px solid var(--phos); background:var(--surface); border-radius:0 12px 12px 0; color:var(--ink); font-size:1.05rem; }
.prose table { width:100%; border-collapse:collapse; margin:1rem 0 1.4rem; font-size:0.95rem; background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.prose th, .prose td { text-align:left; padding:0.6rem 0.8rem; border-bottom:1px solid var(--line); vertical-align:top; } .prose th { font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted); background:var(--bg); } .prose tr:last-child td { border-bottom:0; }
.prose strong { color:var(--ink); }
.related { margin-top:3rem; } .related h2 { font-size:1.2rem; margin:0 0 1rem; letter-spacing:-0.01em; }
.related-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0.9rem; }
.related-grid a { display:flex; flex-direction:column; gap:0.35rem; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1rem 1.1rem; text-decoration:none; color:var(--ink); }
.related-grid a:hover { border-color:var(--accent); } .related-grid a em { font-style:normal; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted); }
.related-grid a strong { font-size:1rem; line-height:1.3; } .related-grid a span { font-size:0.88rem; color:var(--muted); }
/* glossary */
.gloss { margin:1rem 0 0; display:grid; gap:0.7rem; } .gloss__item { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1rem 1.2rem; }
.gloss dt { font-weight:600; margin:0 0 0.25rem; } .gloss dd { margin:0; color:var(--muted); } .gloss__link { font-weight:600; text-decoration:none; white-space:nowrap; }
/* demos index */
.search { position:relative; margin-top:1.75rem; } .search input { width:100%; padding:0.95rem 1.1rem 0.95rem 3rem; border-radius:14px; border:1px solid var(--line); background:var(--surface); font:inherit; font-size:1rem; color:var(--ink); }
.search input:focus { outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent); outline-offset:1px; } .search svg { position:absolute; left:1rem; top:50%; transform:translateY(-50%); color:var(--muted); }
.chips { display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:1rem; }
.chip { font:inherit; font-size:0.85rem; font-weight:500; padding:0.4rem 0.9rem; border-radius:999px; border:1px solid var(--line); color:var(--ink); background:var(--surface); cursor:pointer; } .chip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.count { font-size:0.85rem; color:var(--muted); margin:0.8rem 0 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:1rem; margin-top:1rem; }
.tile { display:flex; flex-direction:column; gap:0.4rem; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:1.2rem 1.3rem; text-decoration:none; color:var(--ink); transition:transform .2s,border-color .2s; }
.tile:hover { transform:translateY(-3px); border-color:var(--accent); } .tile h3 { margin:0.3rem 0 0; font-size:1.08rem; line-height:1.3; letter-spacing:-0.01em; } .tile p { margin:0; font-size:0.92rem; color:var(--muted); flex:1; }
.tile__go { font-weight:600; font-size:0.9rem; color:var(--accent); margin-top:0.5rem; }
.tile__fmt { align-self:flex-start; font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; padding:0.2rem 0.6rem; border-radius:999px; background:var(--accent-soft); color:var(--accent2); }
.fmt-interactive { background:color-mix(in srgb,var(--phos) 16%,#fff); color:#145F0A; } .fmt-scenario { background:#FBF1DF; color:var(--amber); }
.nomatch { display:none; text-align:center; color:var(--muted); padding:2rem 0; }
/* demo page */
.demo .post-head .tile__fmt { display:inline-flex; margin-bottom:0.6rem; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:1.4rem 1.5rem; }
.note { margin:0 0 1.2rem; color:var(--muted); } .note a { font-weight:600; }
.caption { margin:1.2rem 0 0; font-size:0.9rem; color:var(--muted); }
.related-inline { margin:1rem 0 0; font-size:0.95rem; color:var(--muted); }
/* walkthrough */
.walk .step { display:grid; grid-template-columns:1.1fr 1fr; gap:1.2rem; align-items:start; padding:1.3rem 0; border-top:1px solid var(--line); }
.step__left { display:flex; gap:0.9rem; } .num { flex:none; width:32px; height:32px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; font-weight:700; font-size:0.9rem; }
.step h3 { margin:0.15rem 0 0.4rem; font-size:1.1rem; } .step p { margin:0; color:var(--muted); font-size:0.98rem; }
.screen { background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden; font-size:0.86rem; box-shadow:0 10px 30px -18px rgba(12,33,57,.35); }
.screen .bar { display:flex; gap:5px; padding:0.5rem 0.7rem; background:var(--bg); border-bottom:1px solid var(--line); } .screen .bar span { width:8px; height:8px; border-radius:50%; background:var(--line); }
.screen .body { padding:0.7rem 0.9rem; } .stitle { font-weight:600; margin-bottom:0.4rem; }
.screen .row { display:flex; justify-content:space-between; gap:0.8rem; padding:0.3rem 0; border-top:1px solid var(--line); } .screen .row span { color:var(--muted); } .screen .row strong { font-weight:600; text-align:right; }
@media (max-width:640px) { .walk .step { grid-template-columns:1fr; } }
/* interactive: sbom */
.sbom-summary { display:flex; flex-wrap:wrap; gap:1.2rem; align-items:center; margin-bottom:1rem; } .stat strong { display:block; font-size:1.6rem; line-height:1; letter-spacing:-0.02em; } .stat .open { color:var(--red); } .stat span { font-size:0.8rem; color:var(--muted); }
.toggle { margin-left:auto; font-size:0.9rem; color:var(--muted); display:flex; gap:0.4rem; align-items:center; }
.sbom-item { display:flex; flex-wrap:wrap; justify-content:space-between; gap:0.6rem; padding:0.7rem 0; border-top:1px solid var(--line); }
.sbom-item .meta { display:flex; flex-wrap:wrap; gap:0.6rem; align-items:center; } .comp { color:var(--muted); font-size:0.9rem; }
.sev { font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; padding:0.15rem 0.5rem; border-radius:6px; } .sev-critical { background:#FBE3E3; color:var(--red); } .sev-high { background:#FBF1DF; color:var(--amber); } .sev-medium { background:var(--accent-soft); color:var(--accent2); }
.vex { display:flex; gap:0.35rem; } .vex-btn { font:inherit; font-size:0.8rem; font-weight:500; padding:0.3rem 0.65rem; border-radius:8px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; }
.vex-btn.on { border-color:var(--accent); color:var(--accent); } .vex-btn.on.vex-not_affected { border-color:var(--phos); color:#145F0A; background:color-mix(in srgb,var(--phos) 14%,#fff); } .vex-btn.on.vex-affected { border-color:var(--red); color:var(--red); background:#FBE3E3; }
/* interactive: readiness */
.cra-top { display:flex; gap:1.3rem; align-items:center; margin-bottom:1rem; }
.gauge { --pct:0%; width:110px; height:110px; border-radius:50%; flex:none; background:conic-gradient(var(--g,var(--red)) var(--pct), var(--line) 0); display:grid; place-items:center; }
.gauge.mid { --g:var(--amber); } .gauge.ok { --g:var(--phos); }
.gauge__in { width:84px; height:84px; border-radius:50%; background:var(--surface); display:flex; align-items:baseline; justify-content:center; gap:2px; } .gauge__in strong { font-size:1.7rem; letter-spacing:-0.03em; } .gauge__in span { font-size:0.75rem; color:var(--muted); }
.badge { display:inline-block; font-size:0.78rem; font-weight:700; padding:0.2rem 0.7rem; border-radius:999px; background:#FBE3E3; color:var(--red); } .badge.mid { background:#FBF1DF; color:var(--amber); } .badge.ok { background:color-mix(in srgb,var(--phos) 16%,#fff); color:#145F0A; }
.cra-status p { margin:0.4rem 0 0; color:var(--muted); font-size:0.95rem; }
.cra-list { list-style:none; margin:0; padding:0; } .cra-list li { border-top:1px solid var(--line); }
.check { display:flex; align-items:center; gap:0.7rem; padding:0.65rem 0; cursor:pointer; } .check input { position:absolute; opacity:0; width:0; height:0; }
.check .box { width:22px; height:22px; border-radius:6px; border:1px solid var(--line); display:grid; place-items:center; font-size:0.8rem; color:transparent; flex:none; } .check.on .box { background:var(--phos); border-color:var(--phos); color:#042816; }
.check .w { margin-left:auto; font-size:0.8rem; color:var(--muted); font-family:"IBM Plex Mono",monospace; }
/* interactive: class finder */
.cf-item { padding:0.9rem 0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:0.8rem; align-items:center; } .cf-item p { margin:0; font-size:0.97rem; }
.cf-toggle { display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; } .cf-toggle button { font:inherit; font-size:0.85rem; font-weight:600; padding:0.4rem 0.9rem; border:0; background:var(--surface); color:var(--muted); cursor:pointer; } .cf-toggle button.on { background:var(--accent); color:#fff; }
.cf-result { margin-top:1.2rem; padding:1.2rem 1.3rem; border-radius:14px; background:var(--bg); border:1px solid var(--line); } .cf-result .eyebrow { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted); }
.cf-result .label { display:block; font-size:1.5rem; letter-spacing:-0.02em; margin:0.2rem 0 0.6rem; } .cf-result .route span { font-size:0.78rem; font-weight:600; color:var(--muted); } .cf-result .route p { margin:0.1rem 0 0.6rem; font-weight:600; } .rnote { margin:0; color:var(--muted); font-size:0.95rem; }
.cf-critical { border-color:var(--red); } .cf-classII { border-color:var(--amber); } .cf-classI { border-color:var(--accent); } .cf-default { border-color:var(--phos); }
@media (max-width:560px) { .cf-item { grid-template-columns:1fr; } }
/* interactive: support window */
.slider { display:grid; grid-template-columns:auto 1fr auto; gap:0.8rem; align-items:center; margin:0.5rem 0 1.2rem; } .slider label { font-size:0.9rem; font-weight:600; } .slider input { width:100%; accent-color:var(--accent); } .val { font-family:"IBM Plex Mono",monospace; font-size:0.9rem; }
.sw-timeline .track { position:relative; height:34px; background:var(--bg); border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.sw-timeline .fill { height:100%; background:var(--accent); border-radius:999px; display:flex; align-items:center; padding-left:0.8rem; color:#fff; font-size:0.8rem; font-weight:600; white-space:nowrap; transition:width .2s; }
.sw-timeline .floor { position:absolute; top:0; bottom:0; width:2px; background:var(--phos); }
.sw-timeline .scale { display:flex; justify-content:space-between; font-size:0.75rem; color:var(--muted); margin-top:0.35rem; }
.totals { display:grid; grid-template-columns:repeat(3,1fr); gap:0.6rem; margin-top:1.2rem; } .totals div { background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:0.7rem 0.9rem; } .totals span { display:block; font-size:0.75rem; color:var(--muted); } .totals strong { font-size:1.05rem; } .totals .hi { border-color:var(--accent); background:var(--accent-soft); }
@media (max-width:560px) { .totals { grid-template-columns:1fr; } .cra-top { flex-direction:column; align-items:flex-start; } }
