:root {
  --diag-bg:#f5f7fa; --diag-surface:#fff; --diag-text:#0d1f3c;
  --diag-muted:#526276; --diag-line:#dce3eb; --diag-accent:#0e7473;
  --diag-soft:#eaf5f4; --diag-warn:#855019; --diag-warn-bg:#fff6e8;
  --diag-error:#a12b38; --diag-error-bg:#fff0f1;
}
[data-theme="dark"] {
  --diag-bg:#111c2a; --diag-surface:#1b293b; --diag-text:#edf2f7;
  --diag-muted:#b7c3d2; --diag-line:#3d4e63; --diag-accent:#70d0c8;
  --diag-soft:#203c44; --diag-warn:#f2c282; --diag-warn-bg:#3a3022;
  --diag-error:#ffa9b2; --diag-error-bg:#40262f;
}
body{padding-top:72px;background:var(--diag-bg);color:var(--diag-text)}
.diagnostic-wrap{max-width:1200px;margin:auto;padding-inline:var(--space-6)}
.skip-link{position:absolute;top:-100px;left:16px;z-index:500;background:white;color:#0d1f3c;padding:12px}
.skip-link:focus{top:8px}
.diagnostic-hero{background:#0d1f3c;color:#fff;padding:var(--space-8) 0 var(--space-10)}
.back-link{font-size:var(--text-xs);color:#bac9d9;display:inline-block;margin-bottom:var(--space-6)}
.hero-row{display:grid;grid-template-columns:1fr 310px;align-items:center;gap:var(--space-16)}
.diagnostic-hero .eyebrow{color:#79ceca;margin-bottom:var(--space-3);font-size:var(--text-xs)}
.diagnostic-hero h1{font-size:clamp(2rem,3.3vw,2.65rem);color:#fff;line-height:1.12;margin-bottom:var(--space-4)}
.hero-description{font-size:var(--text-base);max-width:660px;color:#c6d3e0;line-height:1.6}
.hero-method{border-top:1px solid #526379;padding-top:var(--space-5)}
.hero-method p{font-size:var(--text-xs);letter-spacing:.1em;color:#8eadc4;margin-bottom:var(--space-4)}
.hero-method span{display:block;font-size:var(--text-sm);color:#e5edf5;margin:var(--space-2) 0}
.toolbar{background:var(--diag-surface);border-bottom:1px solid var(--diag-line)}
.toolbar-inner{display:flex;justify-content:space-between;align-items:center;padding-block:var(--space-3);gap:var(--space-4);flex-wrap:wrap}
.unit-control{display:flex;background:var(--diag-bg);border:1px solid var(--diag-line);border-radius:6px;padding:var(--space-1)}
.unit-control button,.toolbar-actions button{min-height:44px;padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:600;color:var(--diag-muted);border-radius:4px}
.unit-control button[aria-pressed="true"]{background:#0d1f3c;color:white}
.toolbar-actions{display:flex;gap:var(--space-2)}
.toolbar-actions button:hover{background:var(--diag-soft);color:var(--diag-accent)}
.workspace{display:grid;grid-template-columns:246px minmax(0,1fr);gap:var(--space-10);padding-top:var(--space-8);padding-bottom:var(--space-8);scroll-margin-top:88px}
.workflow-sidebar{align-self:start;position:sticky;top:96px}
.workflow-sidebar>.eyebrow{font-size:var(--text-xs);color:var(--diag-muted);margin-bottom:var(--space-4)}
#steps{display:grid;gap:var(--space-1)}
.step-link{display:grid;grid-template-columns:30px 1fr;gap:var(--space-3);width:100%;text-align:left;color:var(--diag-muted);padding:var(--space-3);border-radius:6px}
.step-link .step-number{font-size:var(--text-sm);font-variant-numeric:tabular-nums;border:1px solid var(--diag-line);border-radius:50%;width:28px;height:28px;text-align:center;line-height:26px}
.step-link strong{display:block;font-size:var(--text-sm);line-height:1.4}
.step-link small{font-size:var(--text-xs);display:block;margin-top:var(--space-1);font-weight:400}
.step-link[aria-current="step"]{background:var(--diag-soft);color:var(--diag-accent)}
.step-link[aria-current="step"] .step-number{background:var(--diag-accent);color:var(--diag-surface);border-color:var(--diag-accent)}
.step-link:hover{background:var(--diag-soft)}
.sidebar-note{border-top:1px solid var(--diag-line);margin-top:var(--space-6);padding:var(--space-5) var(--space-3) 0;font-size:var(--text-xs);color:var(--diag-muted)}
.sidebar-note strong{color:var(--diag-text);display:block;margin-bottom:var(--space-2)}
.related-link{display:block;font-size:var(--text-xs);color:var(--diag-accent);padding:var(--space-4) var(--space-3)}
.workflow-main{min-width:0}
.panel{background:var(--diag-surface);border:1px solid var(--diag-line);border-radius:8px;padding:var(--space-8)}
.panel .eyebrow{color:var(--diag-accent);font-size:var(--text-xs);margin-bottom:var(--space-2)}
.panel h2{font-size:var(--text-xl);color:var(--diag-text);margin-bottom:var(--space-3)}
.panel-description{font-size:var(--text-sm);line-height:1.65;color:var(--diag-muted);max-width:700px;margin-bottom:var(--space-6)}
.field-group{border:0;margin:var(--space-6) 0 0;padding:0;min-width:0}
.field-group legend,.group-title{font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;color:var(--diag-text);padding-bottom:var(--space-3);width:100%;border-bottom:1px solid var(--diag-line);margin-bottom:var(--space-4)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-6)}
.field{min-width:0}
.field label{display:block;font-size:var(--text-xs);font-weight:600;margin-bottom:var(--space-2);color:var(--diag-text)}
.field input,.field select,.field textarea{width:100%;min-width:0;min-height:46px;border:1px solid var(--diag-line);border-radius:5px;background:var(--diag-bg);padding:var(--space-3);font-family:var(--font-body);font-size:16px;color:var(--diag-text);font-variant-numeric:tabular-nums}
.field textarea{resize:vertical;min-height:90px}
.field input::placeholder{color:var(--diag-muted);opacity:.75}
.field small{display:block;font-size:12px;color:var(--diag-muted);line-height:1.45;margin-top:var(--space-2)}
.field.full{grid-column:1/-1}
.field [aria-invalid="true"]{border-color:var(--diag-error)}
:focus-visible{outline:3px solid var(--diag-accent);outline-offset:3px}
.tip,.callout{border-radius:5px;padding:var(--space-4);background:var(--diag-soft);color:var(--diag-text);font-size:var(--text-sm);line-height:1.6;margin-top:var(--space-5)}
.callout h3{font-family:var(--font-body);color:inherit;font-size:var(--text-base);margin-bottom:var(--space-2)}
.callout.hold{background:var(--diag-warn-bg);color:var(--diag-warn)}
.callout.fail{background:var(--diag-error-bg);color:var(--diag-error)}
.callout ul{list-style:disc;padding-left:var(--space-5);margin-top:var(--space-3)}
.callout li+li{margin-top:var(--space-2)}
.callout.pass{background:var(--diag-soft);color:var(--diag-accent)}
details{margin-top:var(--space-5);border:1px solid var(--diag-line);border-radius:6px;background:var(--diag-surface)}
summary{cursor:pointer;padding:var(--space-4);min-height:48px;font-size:var(--text-sm);font-weight:600;color:var(--diag-text)}
.details-body{padding:0 var(--space-5) var(--space-5)}
.details-body .field-group{margin-top:var(--space-3)}
.step-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-6)}
.primary,.secondary,.text-button{padding:var(--space-3) var(--space-5);min-height:46px;border-radius:5px;font-size:var(--text-sm);font-weight:600}
.primary{background:#0e7473;color:white;border:1px solid #0e7473}
.primary:hover{background:#095b5a}
.secondary{color:var(--diag-text);border:1px solid var(--diag-line);background:var(--diag-surface)}
.secondary:hover{background:var(--diag-soft)}
button:disabled{opacity:.5;cursor:not-allowed}
#step-counter{font-size:var(--text-xs);color:var(--diag-muted)}
.privacy-note{font-size:var(--text-xs);color:var(--diag-muted);line-height:1.6}
#notice:not(:empty){background:var(--diag-soft);padding:var(--space-4);border-radius:5px;margin-bottom:var(--space-4);font-size:var(--text-sm)}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-5)}
.metric{padding:var(--space-4);background:var(--diag-bg);border-radius:4px}
.metric dt{font-size:var(--text-xs);color:var(--diag-muted);line-height:1.4}
.metric dd{font-size:var(--text-lg);font-weight:700;color:var(--diag-text);margin-top:var(--space-2);font-variant-numeric:tabular-nums;line-height:1.2}
.metric dd small{font-size:var(--text-xs);font-weight:400}
.branch{padding-block:var(--space-5);border-bottom:1px solid var(--diag-line)}
.branch:last-child{border-bottom:0}
.branch .branch-tree{font-size:var(--text-xs);color:var(--diag-accent);font-weight:600;margin-bottom:var(--space-2)}
.branch h3{font-size:var(--text-base);font-family:var(--font-body);color:var(--diag-text);margin-bottom:var(--space-2)}
.branch p{font-size:var(--text-sm);color:var(--diag-muted);line-height:1.65}
.branch .next-test{color:var(--diag-text);margin-top:var(--space-3)}
.result-panel{margin-top:var(--space-5)}
.report-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
.report-list{list-style:decimal;padding-left:var(--space-5);font-size:var(--text-sm);color:var(--diag-muted)}
.report-list li{padding-bottom:var(--space-3)}
.report-meta{font-size:var(--text-xs);color:var(--diag-muted);margin-bottom:var(--space-5)}
.data-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}
.data-table th,.data-table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--diag-line);overflow-wrap:anywhere}
.data-table th{color:var(--diag-muted)}
.methodology{padding-bottom:var(--space-10)}
.method-content{padding:var(--space-2) var(--space-6) var(--space-6);font-size:var(--text-sm);color:var(--diag-muted);line-height:1.75}
.method-content h2{font-size:var(--text-lg);font-family:var(--font-body);color:var(--diag-text)}
.method-content h3{font-size:var(--text-base);font-family:var(--font-body);color:var(--diag-text);margin-top:var(--space-5)}
.method-content p,.method-content ul{margin-top:var(--space-4)}
.method-content ul{list-style:disc;padding-left:var(--space-5)}
.method-content li{margin-top:var(--space-2)}
#print-report{display:none}
@media(max-width:900px){.hero-row{grid-template-columns:1fr;gap:var(--space-6)}.hero-method{display:none}.workspace{grid-template-columns:1fr;gap:var(--space-5)}.workflow-sidebar{position:static}.workflow-sidebar>.eyebrow,.sidebar-note,.related-link{display:none}#steps{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-1)}.step-link{display:flex;align-items:center;flex-direction:column;gap:var(--space-2);text-align:center;padding:var(--space-2)}.step-link strong{font-size:12px}.step-link small{display:none}.hero-description{max-width:660px}}
@media(max-width:600px){.diagnostic-wrap{padding-inline:var(--space-4)}.diagnostic-hero{padding-block:var(--space-6)}.diagnostic-hero h1{font-size:2rem}.back-link{margin-bottom:var(--space-4)}.panel{padding:var(--space-5)}.field-grid{grid-template-columns:1fr;gap:var(--space-4)}.metric-grid{grid-template-columns:1fr 1fr}.toolbar-inner{gap:var(--space-1)}.toolbar-actions{gap:0}.toolbar-actions button{padding:var(--space-2) var(--space-3)}.unit-control button{padding:var(--space-2) var(--space-3)}.step-navigation{flex-wrap:wrap;gap:var(--space-3)}.step-navigation .primary{flex:1}.step-link strong{font-weight:500}.step-link{padding-inline:0}.panel h2{font-size:1.6rem}.report-actions>*{width:100%;text-align:center}}
@media(max-width:600px){#steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.step-link{flex-direction:column;align-items:center;text-align:center;padding:var(--space-2)}.step-link .step-number{flex-shrink:0}.step-link strong{overflow-wrap:normal}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{
  body{background:white!important;color:#000!important;padding:0}
  body>*:not(#print-report){display:none!important}
  #print-report{display:block!important;font:10pt/1.5 sans-serif;color:#111}
  #print-report h1{font:700 23pt/1.2 Georgia,serif;margin:0 0 12pt;color:#0d1f3c}
  #print-report h2{font:700 15pt/1.3 sans-serif;margin:18pt 0 8pt;color:#0d1f3c}
  #print-report h3{font:700 11pt/1.4 sans-serif;margin:12pt 0 4pt}
  #print-report .panel{border:0;padding:0;background:white}
  #print-report .branch{break-inside:avoid;border-bottom:1px solid #ccc;padding:10pt 0}
  #print-report .branch p,#print-report .branch h3,#print-report .branch-tree{color:#111;font-size:10pt}
  #print-report .metric-grid{display:grid;grid-template-columns:repeat(3,1fr)}
  #print-report .metric{background:#f4f5f6;padding:8pt;break-inside:avoid}
  #print-report .metric dt,#print-report .metric dd{color:#111}
  #print-report .callout{border:1px solid #aaa;background:white;color:#111;break-inside:avoid}
  #print-report details{border:0}#print-report summary{display:none}
  #print-report .data-table{font-size:9pt}
  #print-report table{break-inside:auto}#print-report tr{break-inside:avoid}
  #print-report .report-actions{display:none}
  #print-report .report-list{color:#111}
  @page{margin:16mm}
}
