/* ============================================================== *
 *  DarkSub - the cyber skill in upskill. Self-contained: no
 *  external fonts, no CDN, no trackers. Security console identity:
 *  near-black ground, amber "signal/alert" accent, red for threats.
 *  Dark default (it is DarkSub), light toggle. Aligned to the
 *  UpLinkd / upskill design language (radhr/themetanker family).
 * ============================================================== */

/* Self-hosted IBM Plex Mono (SIL OFL 1.1, see assets/fonts/LICENSE).
   Vendored woff2, no Google Fonts / CDN. Estate-standard mono. */
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-600.woff2") format("woff2");
}

:root {
  --amber: #F5A623; --amber-2: #F0A81E; --red: #E5605B; --green: #3CC98A; --cyan: #58C6DC;
  --bg: #0A0F16; --paper: #0E141E; --panel: #121B27; --console: #080D14;
  --ink: #E8EDF3; --ink-2: #9FACBC; --ink-3: #6B7888;
  --line: rgba(255,255,255,.08); --line-2: rgba(255,255,255,.14);
  --accent: var(--amber); --accent-soft: rgba(245,166,35,.13); --accent-line: rgba(245,166,35,.36);
  --on-accent: #0A0F16;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 18px 40px rgba(0,0,0,.45);
  /* Wave A - Uplinkd Group shared typography tokens (system stack, no CDN). */
  --font-ui: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --sans: var(--font-ui);
  --mono: var(--font-mono);
  --wrap: 1120px; --radius: 14px; --logo-h: 42px;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg: #FFFFFF; --paper: #F5F7FA; --panel: #FFFFFF;
  --ink: #111C29; --ink-2: #46586B; --ink-3: #7A8798;
  --line: #E6EBF1; --line-2: #D5DEE8;
  --accent: #9A6608; --accent-soft: rgba(245,166,35,.14); --accent-line: rgba(214,141,20,.5);
  --shadow: 0 1px 2px rgba(16,28,41,.05), 0 14px 30px rgba(16,28,41,.09);
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font-ui); line-height: 1.55;
  -webkit-font-smoothing: antialiased; transition: background .2s, color .2s; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.mono { font-family: var(--mono); }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.eyebrow { display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.eyebrow::before { content:""; width:22px; height:2px; background:var(--accent); }
h1,h2,h3 { font-family:var(--font-ui); font-weight:700; letter-spacing:-.02em; line-height:1.1; margin:0; }

/* nav */
.nav { position:sticky; top:0; z-index:40; border-bottom:1px solid var(--line);
  background:color-mix(in srgb, var(--bg) 84%, transparent); backdrop-filter:blur(10px) saturate(1.3); }
.nav-in { display:flex; align-items:center; gap:16px; height:64px; }
.brand { display:inline-flex; align-items:center; margin-right:auto; }
.brand img { height:var(--logo-h); width:auto; display:block; filter:invert(1); }
:root[data-theme="light"] .brand img { filter:none; }
.nav-links { display:flex; gap:4px; list-style:none; margin:0; padding:0; }
.nav-links a { padding:8px 13px; border-radius:9px; font-size:.92rem; color:var(--ink-2); }
.nav-links a:hover { color:var(--ink); background:var(--paper); }
/* Wave A - standard icon theme toggle. Dark is DarkSub's default, so the base
   state shows the sun (switch to light); [data-theme="light"] flips to the moon. */
.theme-toggle { display:inline-grid; place-items:center; background:transparent; color:var(--ink-2);
  border:1px solid var(--line); border-radius:6px; padding:.4rem; cursor:pointer; line-height:0; }
.theme-toggle:hover { color:var(--ink); }
.theme-toggle svg { width:18px; height:18px; }
.theme-toggle .ico-sun { display:inline; } .theme-toggle .ico-moon { display:none; }
:root[data-theme="light"] .theme-toggle .ico-sun { display:none; }
:root[data-theme="light"] .theme-toggle .ico-moon { display:inline; }
.ghost-link { font-size:.9rem; color:var(--ink-2); padding:8px 10px; border-radius:9px; }
.ghost-link:hover { color:var(--red); }
.cta { display:inline-flex; align-items:center; gap:8px; padding:10px 17px; border-radius:10px; font-weight:700; font-size:.92rem;
  color:var(--on-accent); background:var(--amber); box-shadow:0 1px 0 rgba(0,0,0,.15), 0 8px 20px rgba(245,166,35,.28); }
.cta:hover { transform:translateY(-1px); }
@media (max-width:820px){ .nav-links, .ghost-link{ display:none; } }
@media (max-width:520px){ :root{ --logo-h:32px; } }

/* hero */
.hero { padding:clamp(48px,8vw,92px) 0 clamp(40px,6vw,72px); }
.hero-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(28px,5vw,58px); align-items:center; }
.hero h1 { margin-top:18px; font-size:clamp(2.3rem,5vw,3.7rem); letter-spacing:-.025em; }
.hero .sub { margin:20px 0 0; max-width:44ch; font-size:clamp(1.05rem,1.5vw,1.2rem); color:var(--ink-2); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.btn-ghost { display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border-radius:11px; font-weight:650;
  border:1px solid var(--line-2); color:var(--ink); background:var(--panel); }
.btn-ghost:hover { border-color:var(--ink-3); }
.hero-note { margin-top:20px; font-family:var(--mono); font-size:.78rem; color:var(--ink-3); }
.hero-note b { color:var(--amber); }

/* scan console visual */
.console { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-2); background:var(--console);
  box-shadow:var(--shadow); }
.console-bar { display:flex; align-items:center; gap:7px; padding:11px 15px; border-bottom:1px solid rgba(255,255,255,.08); }
.console-bar .d { width:10px; height:10px; border-radius:50%; background:#26313f; }
.console-bar .t { margin-left:8px; font-family:var(--mono); font-size:.72rem; color:#6b7888; }
.console-bar .live { margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-family:var(--mono);
  font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.console-bar .live::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--green);
  box-shadow:0 0 0 0 rgba(60,201,138,.6); animation:ds-pulse 2.4s ease-out infinite; }
@keyframes ds-pulse { 0%{ box-shadow:0 0 0 0 rgba(60,201,138,.5);} 70%{ box-shadow:0 0 0 8px rgba(60,201,138,0);} 100%{ box-shadow:0 0 0 0 rgba(60,201,138,0);} }
.console-body { padding:16px 18px; font-family:var(--mono); font-size:.8rem; line-height:1.95; color:#c7d2df; overflow-x:auto; white-space:pre-wrap; }
.console-body .mut { color:#5f6c7b; } .console-body .ok { color:#3CC98A; } .console-body .al { color:var(--amber); }
.console-body .th { color:#E8756F; } .console-body .src { color:#c7d2df; }
.alert-row { display:block; margin:6px -8px; padding:6px 8px; border-radius:7px; background:rgba(245,166,35,.09);
  border-left:2px solid var(--amber); }

/* sections */
.section { padding:clamp(48px,7vw,84px) 0; }
.section--paper { background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.head { max-width:64ch; }
.head h2 { margin-top:12px; font-size:clamp(1.8rem,3.4vw,2.6rem); letter-spacing:-.02em; }
.head p { margin-top:14px; color:var(--ink-2); font-size:1.05rem; }

/* capability cards */
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.card .ic { width:40px; height:40px; border-radius:11px; display:grid; place-items:center; background:var(--accent-soft);
  border:1px solid var(--accent-line); color:var(--amber); margin-bottom:16px; }
.card .ic svg { width:20px; height:20px; }
.card h3 { font-size:1.22rem; }
.card p { margin-top:8px; color:var(--ink-2); font-size:.95rem; }

/* steps + ruleset */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px; }
.step { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.step .n { font-family:var(--mono); font-size:.8rem; font-weight:600; color:var(--amber); }
.step h3 { margin:10px 0 8px; font-size:1.2rem; }
.step p { color:var(--ink-2); font-size:.95rem; }
.step .tag { display:inline-block; margin-top:12px; font-family:var(--mono); font-size:.64rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-3); border:1px solid var(--line-2); border-radius:999px; padding:3px 9px; }
.ruleset { margin-top:30px; background:var(--panel); border:1px solid var(--line-2); border-radius:var(--radius);
  padding:22px; max-width:440px; box-shadow:var(--shadow); }
.ruleset .rl-h { font-family:var(--font-ui); font-weight:700; font-size:1.1rem; margin-bottom:14px; }
.ruleset .fld { border:1px solid var(--line-2); border-radius:9px; padding:11px 13px; color:var(--ink-3);
  font-size:.86rem; margin-bottom:10px; background:var(--bg); }
.ruleset .toggles { display:flex; gap:22px; margin-top:6px; }
.ruleset .tg { display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:.78rem; color:var(--ink-2); }
.ruleset .sw { width:34px; height:19px; border-radius:999px; background:var(--amber); position:relative; flex:0 0 auto; }
.ruleset .sw::after { content:""; position:absolute; top:2px; right:2px; width:15px; height:15px; border-radius:50%; background:#fff; }

/* sources pills */
.pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.pill { display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:.82rem; color:var(--ink);
  background:var(--panel); border:1px solid var(--line-2); border-radius:999px; padding:8px 15px; }
.pill .d { width:7px; height:7px; border-radius:50%; background:var(--amber); flex:0 0 auto; }
.pill.hot .d { background:var(--red); }

/* tier badges (free / pro) beside card headings */
.tier { display:inline-block; vertical-align:middle; margin-left:8px; font-family:var(--mono); font-size:.58rem;
  font-weight:600; letter-spacing:.09em; text-transform:uppercase; border-radius:999px; padding:2px 8px; }
.tier--free { color:var(--green); background:rgba(60,201,138,.12); border:1px solid rgba(60,201,138,.4); }
.tier--pro { color:var(--on-accent); background:var(--amber); border:1px solid var(--amber); }
:root[data-theme="light"] .tier--pro { color:#3a2704; }

/* pricing - standard .tiers block. Scoped as .tiers .tier because the bare
   .tier class is already the small free/pro pill beside card headings. */
.tiers { display:grid; gap:18px; margin-top:32px; align-items:start; }
.tiers--two { grid-template-columns:1fr 1fr; max-width:820px; }
.tiers .tier { display:flex; flex-direction:column; vertical-align:baseline; margin-left:0;
  font-family:var(--font-ui); font-size:1rem; font-weight:400; letter-spacing:normal; text-transform:none;
  background:var(--panel); border:1px solid var(--line-2); border-radius:var(--radius); padding:28px; }
.tiers .tier.pop { border-color:var(--accent-line); box-shadow:0 0 0 1px var(--accent-line), 0 18px 40px rgba(245,166,35,.12); }
.tiers .badge-pop { align-self:flex-start; display:inline-block; font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--amber); background:var(--accent-soft); border:1px solid var(--accent-line); border-radius:999px; padding:3px 10px; margin-bottom:14px; }
.tiers .name { font-family:var(--font-ui); font-weight:700; font-size:1.3rem; }
.tiers .price { margin-top:10px; font-family:var(--font-ui); font-weight:700; font-size:2.4rem; letter-spacing:-.02em; }
.tiers .price span { font-family:var(--mono); font-size:.9rem; color:var(--ink-3); font-weight:400; }
.tiers .desc { margin:8px 0 0; color:var(--ink-2); font-size:.92rem; }
.tiers ul { list-style:none; margin:18px 0 0; padding:0; display:grid; gap:9px; }
.tiers ul li { font-size:.92rem; color:var(--ink-2); padding-left:22px; position:relative; }
.tiers ul li::before { content:"+"; position:absolute; left:0; color:var(--amber); font-weight:700; }
.tiers .tier-cta { margin-top:22px; width:100%; justify-content:center; text-align:center; }
.tiers .tier-cta + .tier-cta { margin-top:10px; }
.tiers .bsv-note { margin:10px 0 0; font-family:var(--mono); font-size:.68rem; color:var(--ink-3); text-align:center; }
.bundle-note { margin-top:24px; font-family:var(--mono); font-size:.8rem; color:var(--ink-3); }
.bundle-note a { color:var(--amber); font-weight:600; }
/* install section: heading + standard install terminal */
#install h2 { margin-top:12px; font-size:clamp(1.8rem,3.4vw,2.6rem); letter-spacing:-.02em; }
#install .sub { margin:14px 0 0; font-size:1.05rem; color:var(--ink-2); }
#install .sub a { color:var(--amber); font-weight:600; }
.term { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-2); background:var(--console); box-shadow:var(--shadow); }
.term-bar { display:flex; align-items:center; gap:7px; padding:11px 15px; border-bottom:1px solid rgba(255,255,255,.08); }
.term-bar .d { width:10px; height:10px; border-radius:50%; background:#26313f; }
.term-bar .t { margin-left:8px; font-family:var(--mono); font-size:.72rem; color:#6b7888; }
.term-body { padding:15px 17px; font-family:var(--mono); font-size:.8rem; line-height:1.8; color:#c7d2df; overflow-x:auto; white-space:pre-wrap; }
.term-body .c { color:#5f6c7b; } .term-body .p { color:var(--amber); }

/* install / member-capture form */
.signup { max-width:560px; margin-top:28px; }
.signup .fields { display:grid; gap:14px; }
.signup .f { display:grid; gap:6px; }
.signup .f span { font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-2); }
.signup .f input { width:100%; background:var(--bg); color:var(--ink); border:1px solid var(--line-2); border-radius:9px;
  padding:11px 13px; font:inherit; font-size:.95rem; }
.signup .f input:focus-visible { outline:none; border-color:var(--amber); box-shadow:0 0 0 3px var(--accent-soft); }
.signup .cta { margin-top:18px; }
.signup .fine { margin-top:12px; font-family:var(--mono); font-size:.7rem; color:var(--ink-3); }
.signup .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* faq */
.faq details { border-top:1px solid var(--line); padding:18px 0; }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { font-family:var(--font-ui); font-weight:700; font-size:1.05rem; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq p { margin:12px 0 0; color:var(--ink-2); }

/* part of UpLinkd strip */
.family-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px; }
.family-card { display:flex; flex-direction:column; gap:5px; padding:20px; background:var(--panel);
  border:1px solid var(--line); border-radius:var(--radius); transition:border-color .15s ease, transform .15s ease; }
.family-card:hover { border-color:var(--amber); transform:translateY(-2px); }
.family-card b { font-family:var(--font-ui); font-weight:700; font-size:1.1rem; }
.family-card span { font-family:var(--mono); font-size:.72rem; color:var(--ink-3); }
@media (max-width:760px){ .family-grid{ grid-template-columns:1fr; } }

/* footer */
.footer { border-top:1px solid var(--line); background:var(--paper); padding:34px 0; }
.footer-in { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.footer .fb { display:flex; align-items:center; gap:10px; color:var(--ink-3); font-size:.86rem; }
.footer .fb img { height:18px; width:auto; filter:invert(1); opacity:.8; }
:root[data-theme="light"] .footer .fb img { filter:none; }
.footer .fb svg { width:20px; height:20px; color:var(--amber); flex:0 0 auto; }
.footer nav { display:flex; flex-wrap:wrap; gap:18px; }
.footer a { color:var(--ink-2); font-size:.9rem; } .footer a:hover { color:var(--amber); }

/* works-with pill row (supported systems the scan reads) */
.stacks { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.stack-pill { display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:.82rem; color:var(--ink);
  background:var(--panel); border:1px solid var(--line-2); border-radius:999px; padding:8px 15px; }
.stack-pill .d { width:7px; height:7px; border-radius:50%; background:var(--green); flex:0 0 auto; }

/* sample scan report: terminal + printable findings checklist */
.audit { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-2); background:var(--console); box-shadow:var(--shadow); margin-top:30px; }
.audit-actions { display:flex; align-items:center; gap:14px; margin-top:20px; flex-wrap:wrap; }
.audit-actions .btn-ghost { padding:10px 16px; }
.audit-actions-note { font-family:var(--mono); font-size:.72rem; color:var(--ink-3); }
.audit-bar { display:flex; align-items:center; gap:7px; padding:11px 15px; border-bottom:1px solid rgba(255,255,255,.08); }
.audit-bar .d { width:10px; height:10px; border-radius:50%; background:#26313f; }
.audit-bar .t { margin-left:8px; font-family:var(--mono); font-size:.72rem; color:#6b7888; }
.audit-body { padding:14px 16px; font-family:var(--mono); font-size:.8rem; line-height:1.7; color:#c7d2df; overflow-x:auto; white-space:pre-wrap; }
.audit-body .h { color:#3CC98A; } .audit-body .g { color:var(--amber); } .audit-body .r { color:#E8756F; } .audit-body .m { color:#5f6c7b; }

/* print-only report chrome (logo header + footer, hidden on screen) */
.audit-print-head { display:flex; align-items:center; gap:12px; padding:12px 16px 11px; border-bottom:1px solid rgba(255,255,255,.09); color:#c7d2df; }
.audit-print-head .aph-brand { display:flex; align-items:center; gap:8px; }
.audit-print-head .aph-brand img { height:26px; width:auto; display:block; filter:invert(1); }
:root[data-theme="light"] .audit-print-head .aph-brand img { filter:invert(1); }
.audit-print-head .aph-meta { margin-left:auto; text-align:right; }
.audit-print-head .aph-title { font-family:var(--font-ui); font-weight:700; font-size:.86rem; }
.audit-print-head .aph-sub { font-family:var(--mono); font-size:.66rem; color:var(--ink-3); margin-top:2px; }
.audit-print-foot { display:none; }

/* printable findings checklist (print only) */
.audit-checklist { display:none; }
.audit-checklist .cl-head { font-family:var(--mono); font-size:.72rem; color:var(--ink-3); margin-bottom:12px; }
.audit-checklist .cl-head b { color:#c7d2df; }
.chk-table { width:100%; border-collapse:collapse; font-size:.74rem; }
.chk-table th, .chk-table td { text-align:left; padding:7px 9px; border-bottom:1px solid rgba(255,255,255,.08); vertical-align:top; }
.chk-table th { font-family:var(--mono); font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); font-weight:600; }
.chk-table td { color:#c7d2df; }
.chk-table .num { color:var(--ink-3); font-family:var(--mono); text-align:right; }
.chk-table .mono { font-family:var(--mono); font-size:.68rem; color:var(--ink-3); }
.chk-table .pri { font-family:var(--mono); font-size:.58rem; font-weight:700; letter-spacing:.04em; }
.chk-table .pri.hi { color:#E8756F; } .chk-table .pri.me { color:var(--amber); } .chk-table .pri.lo { color:#7f8c84; }
.chk-table .why { display:block; margin-top:3px; color:var(--ink-3); font-weight:400; font-size:.7rem; line-height:1.45; }
.chk-table tr.done td { color:#8fa697; }
.chk-table tr.done .why { color:#6f8578; }
.chk-table .notes { min-width:64px; }
.chk-table .ck { display:inline-block; width:14px; height:14px; border:1.5px solid #4a5560; border-radius:3px; position:relative; }
.chk-table .ck.on { background:#22A264; border-color:#22A264; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.chk-table .ck.on::after { content:""; position:absolute; left:4px; top:1px; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }

/* upskill suite strip (sibling sites + hub) */
.suite-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:14px; margin-top:28px; }
.suite-card { display:flex; flex-direction:column; gap:5px; padding:20px; background:var(--panel);
  border:1px solid var(--line); border-radius:var(--radius); transition:border-color .15s ease, transform .15s ease;
  text-decoration:none; }
.suite-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.suite-card:hover b { color:var(--accent); }
.suite-card b { font-family:var(--font-ui); font-weight:700; font-size:1.1rem; }
.suite-card span { font-family:var(--mono); font-size:.72rem; color:var(--ink-3); }
.suite-card b, .suite-card span { text-decoration:none; }
.suite-card:hover span { color:var(--ink-3); }
.suite-card[aria-current] { border-color:var(--amber); background:var(--accent-soft); }
.suite-hub { margin-top:22px; text-align:center; font-family:var(--mono); font-size:.8rem; }
.suite-hub a { color:var(--amber); }
@media (max-width:760px){ .suite-grid{ grid-template-columns:repeat(2,1fr); } }

/* incident-reporting (security) page */
.prose { max-width:72ch; margin-top:20px; }
.prose h3 { margin-top:28px; font-size:1.2rem; }
.prose > p { margin-top:12px; color:var(--ink-2); }
.prose ul, .prose ol { margin:12px 0 0; padding-left:22px; color:var(--ink-2); }
.prose li { margin:6px 0; }
.prose li b, .prose li strong { color:var(--ink); }
.callout { margin-top:28px; border-left:3px solid var(--amber); background:var(--accent-soft); border-radius:10px; padding:18px 22px; }
.callout .q { font-family:var(--font-ui); font-weight:700; font-size:1.18rem; line-height:1.32; }
.callout .cite { margin-top:8px; font-family:var(--mono); font-size:.72rem; color:var(--ink-3); }
.chan-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:26px; }
.chan { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
.chan h3 { font-size:1.15rem; }
.chan .agency { margin-top:16px; font-family:var(--mono); font-size:.7rem; color:var(--amber); text-transform:uppercase; letter-spacing:.06em; }
.chan ul { list-style:none; margin:7px 0 0; padding:0; display:grid; gap:5px; }
.chan li { font-size:.9rem; color:var(--ink-2); }
.chan li b { color:var(--ink); font-weight:600; }
.chan a { color:var(--amber); } .chan a:hover { text-decoration:underline; }

@media (max-width:860px){ .hero-grid, .tiers--two{ grid-template-columns:1fr; } .cards, .steps, .chan-grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ .console-bar .live::before{ animation:none !important; } * { transition:none !important; scroll-behavior:auto !important; } }

/* ============================================================== *
 *  Print: "Download PDF" of the sample scan report (window.print()).
 *  Self-contained, no external PDF service. The Download PDF button
 *  adds .print-audit to <body>, which isolates + restyles #audit as
 *  a clean light report; afterprint removes it. Mechanics copied
 *  from radhr.io (the @page margin:0 + #audit padding fix + the
 *  print-color-adjust on the green ticks), colours adapted.
 * ============================================================== */
@media print {
  @page { margin: 0; }
  .no-print { display:none !important; }
  body.print-audit { background:#fff; color:#16202B; color-scheme:light; }
  body.print-audit > header.nav,
  body.print-audit > section,
  body.print-audit > .footer { display:none !important; }
  body.print-audit main > section:not(#audit) { display:none !important; }
  body.print-audit #audit { padding:15mm 14mm !important; background:#fff !important; border:0 !important; }
  body.print-audit #audit .wrap { padding:0 !important; max-width:none !important; }
  body.print-audit #audit .head .eyebrow,
  body.print-audit #audit .head h2,
  body.print-audit #audit .head p,
  body.print-audit #audit .audit-actions,
  body.print-audit #audit .audit-bar { display:none !important; }
  body.print-audit #audit .audit-print-head { display:flex !important; align-items:center; gap:14px;
    padding:0 0 11px !important; margin-bottom:14px; border-bottom:1px solid #16202B !important; }
  body.print-audit #audit .aph-brand { display:flex; align-items:center; gap:9px; }
  body.print-audit #audit .aph-brand img { height:28px; width:auto; filter:none !important; }
  body.print-audit #audit .aph-meta { margin-left:auto; text-align:right; }
  body.print-audit #audit .aph-title { font-family:var(--font-ui); font-size:1.15rem; color:#16202B !important; }
  body.print-audit #audit .aph-sub { font-family:var(--mono); font-size:.7rem; color:#55606A !important; }
  body.print-audit #audit .audit { display:block; background:#fff !important; border:0 !important;
    box-shadow:none !important; margin:0 !important; overflow:visible !important; }
  body.print-audit #audit .audit-body { display:none !important; }
  body.print-audit #audit .audit-checklist { display:block !important; padding:0 !important; border-top:0 !important; }
  body.print-audit #audit .audit-checklist .cl-head { color:#55606A !important; }
  body.print-audit #audit .audit-checklist .cl-head b { color:#16202B !important; }
  body.print-audit #audit .chk-table { font-size:9.5px; }
  body.print-audit #audit .chk-table th { color:#55606A !important; border-bottom:1px solid #bbb !important; }
  body.print-audit #audit .chk-table td { color:#16202B !important; border-bottom:1px solid #e2e2e2 !important; }
  body.print-audit #audit .chk-table .mono { color:#55606A !important; }
  body.print-audit #audit .chk-table .why { color:#55606A !important; line-height:1.5; }
  body.print-audit #audit .chk-table tr.done td { color:#5b6b60 !important; }
  body.print-audit #audit .chk-table tr.done .why { color:#7a8a7f !important; }
  body.print-audit #audit .chk-table .ck { border-color:#333 !important; }
  body.print-audit #audit .chk-table .ck.on { background:#22A264 !important; border-color:#22A264 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.print-audit #audit .chk-table tr { break-inside:avoid; page-break-inside:avoid; }
  body.print-audit #audit .chk-table thead { display:table-header-group; }
  body.print-audit #audit .chk-table th, body.print-audit #audit .chk-table td { padding:7px 9px !important; }
  body.print-audit #audit .chk-table .notes { min-width:96px; }
  body.print-audit #audit .audit-print-foot { display:block !important; margin-top:16px; padding-top:10px;
    border-top:1px solid #C9D3CC; font-family:var(--mono); font-size:.66rem; color:#55606A !important; }
  body.print-audit * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
