
:root{
  --bg:#08090b;--panel:#111318;--panel2:#171a20;--paper:#f5f5f3;--paper-dim:#b7bac1;
  --line:#313640;--red:#d62828;--red2:#9e1f25;--gold:#d6a449;--green:#70c48f;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--paper);scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 50% -10%,rgba(214,40,40,.11),transparent 35%),var(--bg);color:var(--paper);font-family:Inter,Montserrat,Arial,sans-serif;line-height:1.55}
a{color:inherit}
img{max-width:100%;height:auto}
.wrap{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:30px 0 64px}
.dx-nav{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:rgba(8,9,11,.94);backdrop-filter:blur(12px)}
.dx-nav-inner{width:min(1180px,calc(100% - 32px));min-height:66px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}
.dx-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.dx-brand img{width:45px;height:45px;object-fit:contain}
.dx-back{font:700 11px "IBM Plex Mono",monospace;text-decoration:none;color:var(--paper-dim);border:1px solid var(--line);padding:8px 10px;border-radius:6px}
.dx-back:hover,.dx-crosslink:hover,.dx-hub-card:hover{border-color:var(--red);color:#fff}
.dx-breadcrumb{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.05em;color:var(--paper-dim);text-transform:uppercase;margin:4px 0 16px}
.dx-breadcrumb a{text-decoration:none}
.dx-hero{padding:26px 0 24px;border-bottom:1px solid var(--line);margin-bottom:24px}
.dx-tag{display:inline-block;font:700 10px "IBM Plex Mono",monospace;letter-spacing:.13em;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.dx-hero h1{font-family:Oswald,Arial,sans-serif;font-size:clamp(34px,5vw,58px);line-height:1.02;text-transform:uppercase;margin:0 0 10px;letter-spacing:-.02em}
.dx-sub{font-size:16px;color:var(--paper-dim);max-width:78ch;margin:0}
.dx-compat{margin-top:14px;font:600 10px "IBM Plex Mono",monospace;letter-spacing:.05em;color:#d8d9dd;border-left:3px solid var(--red);padding:9px 11px;background:rgba(214,40,40,.06)}
h2,h3{font-family:Oswald,Arial,sans-serif;text-transform:uppercase;letter-spacing:.01em}
h2{font-size:27px;margin:34px 0 12px}
h3{font-size:19px}
p{max-width:80ch}
.dx-rule,.dx-warn{display:grid;grid-template-columns:150px 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:20px 0;background:var(--panel)}
.dx-rule-label,.dx-warn-label{padding:14px;font:800 10px "IBM Plex Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--gold);border-right:1px solid var(--line)}
.dx-rule-text,.dx-warn-text{padding:14px;color:#e3e4e7}
.dx-warn{border-color:rgba(214,40,40,.5)}
.dx-warn-label{color:#fff;background:rgba(214,40,40,.12)}
.dx-source{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--paper-dim);max-width:88ch}
.dx-footer{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);color:var(--paper-dim);font-size:12px}
.dx-crosslink{display:inline-block;margin:5px 7px 5px 0;padding:9px 11px;border:1px solid var(--line);border-radius:7px;text-decoration:none;font:700 10.5px "IBM Plex Mono",monospace;text-transform:uppercase;background:rgba(255,255,255,.025)}
.dx-crosslink-arrow{color:var(--gold)}
.dx-hub-grid,.refgrid,.toolgrid,.topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:18px 0}
.dx-hub-card,.refcard,.toolcard,.topic-card,.dx-card{display:block;border:1px solid var(--line);border-radius:11px;padding:17px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018));text-decoration:none}
.dx-hub-card-title,.dx-card-title{font:800 15px Oswald,Arial,sans-serif;text-transform:uppercase}
.dx-hub-card-desc,.dx-card-copy{font-size:12.5px;color:var(--paper-dim);margin-top:6px}
.dx-card-tag,.year,.yearline{font:700 9.5px "IBM Plex Mono",monospace;color:var(--gold);letter-spacing:.08em;text-transform:uppercase}
.dx-path{border-left:1px solid var(--line);margin:18px 0;padding-left:18px}
.dx-path-title{font-family:Oswald,sans-serif;font-size:22px;text-transform:uppercase;margin-bottom:10px}
.dx-path-step{position:relative;margin:0 0 10px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.dx-path-arrow{font:800 10px "IBM Plex Mono",monospace;color:var(--gold);margin:4px 0 9px}
.dx-split{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;margin:18px 0}
.dx-split-item{border:1px solid var(--line);border-radius:10px;padding:15px;background:var(--panel)}
.dx-split-or{align-self:center;font:800 10px "IBM Plex Mono",monospace;color:var(--gold)}
.fp-toolbox,.fpv-toolbox{border:1px solid rgba(214,164,73,.35);border-radius:11px;padding:17px;margin:22px 0;background:rgba(214,164,73,.045)}
.tool-kicker{font:800 9px "IBM Plex Mono",monospace;color:var(--gold);letter-spacing:.12em;text-transform:uppercase}
.tool-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.wizard-result-btn,.dx-button,.dx-cta-btn{display:inline-block;border:1px solid var(--red);border-radius:7px;padding:10px 13px;background:linear-gradient(180deg,var(--red),var(--red2));color:#fff;text-decoration:none;font:800 11px Montserrat,Arial,sans-serif;text-transform:uppercase;cursor:pointer}
table{border-collapse:collapse}
th,td{border-bottom:1px solid var(--line)}
th{color:#fff}
.ref-jump,.ref-filter{display:flex;gap:8px;flex-wrap:wrap}
.ref-jump a,.ref-filter button{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--panel);color:var(--paper);text-decoration:none}
.ref-filter button.active{border-color:var(--red)}
input,select{font:inherit}
@media(min-width:1180px){
  .wrap,.dx-nav-inner{width:calc(100% - 48px);max-width:1540px}
  .dx-sub,.dx-source{max-width:78ch}
}
@media(max-width:700px){
  .wrap,.dx-nav-inner{width:calc(100% - 24px)}
  .dx-brand span{display:none}
  .dx-rule,.dx-warn{grid-template-columns:1fr}
  .dx-rule-label,.dx-warn-label{border-right:0;border-bottom:1px solid var(--line)}
  .dx-split{grid-template-columns:1fr}
  .dx-split-or{text-align:center}
  .dx-hero{padding-top:18px}
}
@media print{
  .dx-nav,.dx-back,.no-print,.tool-actions{display:none!important}
  body{background:#fff;color:#000}
  .wrap{width:100%;max-width:none;padding:0}
  .dx-rule,.dx-warn,.dx-hub-card,.refcard,.topic-card{background:#fff;color:#000;border-color:#bbb}
}


.fpv-symptom-group,.fpv-test,.fpv-diag-card,.fpv-diag-intro,.fpv-verify{scroll-margin-top:86px}
.fpv-symptom-group>h2,.fpv-test>h2{line-height:1.12}
.fpv-symptom-group p,.fpv-test p,.fpv-diag-card p{line-height:1.62}
@media(max-width:700px){
  body{font-size:16px;line-height:1.62}
  .wrap{width:calc(100% - 28px);padding-top:20px}
  .dx-nav-inner{min-height:58px}
  .dx-brand img{width:40px;height:40px}
  .dx-breadcrumb{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:12px}
  .dx-hero{padding:16px 0 18px;margin-bottom:18px}
  .dx-hero h1{font-size:clamp(31px,10.5vw,44px);line-height:1.02}
  .dx-sub{font-size:16px;line-height:1.55}
  .dx-compat{font-size:10px;line-height:1.55;padding:11px 12px}
  h2{font-size:24px;line-height:1.12;margin-top:30px}
  h3{font-size:19px;line-height:1.2}
  .fpv-diag-grid,.dx-hub-grid,.fpv-quicknav{gap:10px}
  .fpv-diag-card,.dx-hub-card,.fpv-test,.fpv-diag-intro,.fpv-verify,.fpv-toolbox,.fp-toolbox{padding:16px;border-radius:10px}
  .fpv-test{margin:18px 0}
  .fpv-result{padding:13px 14px;line-height:1.55}
  .wizard-result-btn,.dx-button,.dx-cta-btn{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px 14px;line-height:1.25}
  .dx-crosslink{display:block;width:100%;margin:8px 0;padding:12px 13px;line-height:1.35}
  .fpv-toolbox h2,.fp-toolbox h2{font-size:22px;margin-top:8px}
  .affiliate-note{font-size:12px}
  .dx-footer{font-size:12px;line-height:1.55}
}


@media(max-width:980px){
  label.fpv-step-complete{min-height:44px;box-sizing:border-box}
}


@media(max-width:980px){
  .fpv-modified-check summary,
  .fpv-workbench-actions button,
  .fpv-focus-actions button{
    min-height:44px!important;
    box-sizing:border-box;
  }
  .fpv-modified-check summary{
    display:flex;
    align-items:center;
  }
}
