
:root{
  --whtc-orange:#fe4d01;--whtc-navy:#1f2937;--whtc-red:#D32F2F;--whtc-green:#16a34a;
  --gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-700:#374151;--gray-900:#111827;
  --sev1:#eab308;--sev2:#f97316;--sev3:#dc2626;
  --display:'Anton',sans-serif;--ui:'Montserrat',sans-serif;--body:'Inter',sans-serif;--mono:ui-monospace,'SFMono-Regular',Menlo,monospace;
  --ease:cubic-bezier(0.25,1,0.5,1);--dur:300ms;--border:2px solid var(--whtc-navy);--hair:1px solid var(--gray-200);
}
*{box-sizing:border-box;margin:0;padding:0;border-radius:0}
html,body{height:100%}
body{font-family:var(--body);color:var(--gray-900);background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit} button,input{font:inherit;color:inherit}
.kicker{font-family:var(--ui);font-weight:900;text-transform:uppercase;font-size:10px;letter-spacing:.2em;color:var(--whtc-orange)}
.lbl{font-family:var(--ui);font-weight:900;text-transform:uppercase;font-size:9.5px;letter-spacing:.1em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--ui);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.1em;padding:12px 14px;border:2px solid var(--whtc-navy);background:var(--whtc-navy);color:#fff;text-decoration:none;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}
.btn:hover{background:var(--whtc-orange);border-color:var(--whtc-orange)}
.btn.outline{background:#fff;color:var(--whtc-navy)}
.btn.outline:hover{background:var(--whtc-navy);color:#fff;border-color:var(--whtc-navy)}
.btn.accent{background:var(--whtc-orange);border-color:var(--whtc-orange)}
.btn.accent:hover{background:var(--whtc-navy);border-color:var(--whtc-navy)}
.btn:disabled{opacity:.4;cursor:default;pointer-events:none}

/* ===== full-height simulator ===== */
.sim{height:100svh;min-height:640px;display:grid;grid-template-columns:430px minmax(0,1fr)}
.panel{display:flex;flex-direction:column;gap:9px;padding:14px 18px;border-right:var(--border);background:#fff;min-height:0;overflow-y:auto}
.brand{display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand img{height:26px;display:block}
h1{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(22px,2vw,28px);line-height:1;color:var(--whtc-navy);margin-top:3px}
h1 span{color:var(--whtc-orange)}
.scn{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:var(--border)}
.scn button{border:0;border-right:var(--hair);border-bottom:var(--hair);background:#fff;padding:7px 8px;cursor:pointer;text-align:left;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.scn button:nth-child(4n){border-right:0}
.scn button:nth-child(n+5){border-bottom:0}
.scn button b{display:block;font-family:var(--ui);font-weight:900;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.scn button small{display:block;font-size:10px;color:var(--gray-500);margin-top:1px;line-height:1.2}
.scn button:hover{background:var(--gray-100)}
.scn button.on{background:var(--whtc-orange);color:#fff}
.scn button.on small{color:#ffe4d6}
.setup{border:var(--border)}
.srow{display:grid;grid-template-columns:82px 1fr;align-items:center;gap:8px;padding:6px 10px;border-bottom:var(--hair)}
.srow[hidden]{display:none}
.srow .lbl{line-height:1.2}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border:var(--border)}
.seg button{border:0;border-right:var(--border);background:#fff;padding:6px 3px;font-family:var(--ui);font-weight:800;font-size:9.5px;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;line-height:1.15;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.seg button:last-child{border-right:0}
.seg button small{display:block;font-family:var(--mono);font-weight:600;font-size:8.5px;text-transform:none;color:var(--gray-500);margin-top:1px}
.seg button:hover:not(:disabled){background:var(--gray-100)}
.seg button.on{background:var(--whtc-navy);color:#fff}
.seg button.on small{color:var(--gray-300)}
.seg button.on.danger{background:var(--whtc-red)}
.seg button:disabled{color:var(--gray-300);cursor:not-allowed;background:repeating-linear-gradient(135deg,#fff 0 5px,var(--gray-50) 5px 10px)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stepper{display:grid;grid-template-columns:30px 1fr 30px;border:var(--border)}
.stepper button{border:0;background:#fff;font-size:17px;font-weight:700;cursor:pointer;height:28px}
.stepper button:hover{background:var(--gray-100)}
.stepper div{border-left:var(--border);border-right:var(--border);display:grid;place-items:center;font-family:var(--display);font-size:16px}
details.adv{border-bottom:var(--hair)}
details.adv summary{list-style:none;cursor:pointer;padding:7px 10px;font-family:var(--ui);font-weight:900;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);display:flex;justify-content:space-between}
details.adv summary::-webkit-details-marker{display:none}
details.adv summary::after{content:'+';font-size:13px;line-height:1}
details.adv[open] summary::after{content:'-'}
details.adv summary:hover{color:var(--whtc-navy)}
details.adv .srow:last-child{border-bottom:0}
.actions{display:grid;grid-template-columns:1.3fr 1fr .9fr}
.actions .btn{border:0;padding:12px;font-size:12px}
.actions .btn+.btn{border-left:var(--border)}
.actions .btn.outline{background:#fff;color:var(--whtc-navy)}
.actions .btn.outline:hover{background:var(--whtc-navy);color:#fff}
.res{display:grid;grid-template-columns:1fr 1fr 1.1fr;border:var(--border)}
.res>div{padding:6px 10px;border-right:var(--hair)}
.res>div:nth-child(3){border-right:0}
.res span{display:block;font-family:var(--ui);font-weight:900;text-transform:uppercase;font-size:8px;letter-spacing:.12em;color:var(--gray-500)}
.res b{font-family:var(--mono);font-size:16px}
.res b.ok{color:var(--whtc-green)} .res b.bad{color:var(--whtc-red)} .res b.warn{color:#c2410c}
.res .score b{font-family:var(--display);font-weight:400;font-size:23px;line-height:1}
.res .verdict{grid-column:1/-1;border-top:var(--border);border-right:0;font-size:12px;line-height:1.35;font-weight:600;display:flex;gap:8px;align-items:center}
.verdict i{font-style:normal;font-family:var(--ui);font-weight:900;font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:3px 6px;color:#fff;flex:none}
.verdict.ok i{background:var(--whtc-green)} .verdict.bad i{background:var(--whtc-red)} .verdict.warn i{background:#c2410c}

.tabs3{border:var(--border);display:flex;flex-direction:column;min-height:130px;flex:1}
.tabs3 nav{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:var(--border)}
.rlist.log td{font-size:11px;padding:4px}.rlist.log td:first-child{font-family:var(--mono);white-space:nowrap;color:var(--gray-500);width:58px}.rlist.log td:last-child{font-family:var(--body);font-weight:500;text-align:left;white-space:normal}
.tabs3 nav button{border:0;border-right:var(--border);background:#fff;padding:8px 4px;font-family:var(--ui);font-weight:900;font-size:10px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.tabs3 nav button:last-child{border-right:0}
.tabs3 nav button.on{background:var(--whtc-navy);color:#fff}
.tabs3 nav button em{font-style:normal;display:inline-block;min-width:16px;padding:0 4px;margin-left:4px;background:var(--whtc-orange);color:#fff;font-size:9px}
.tabs3 nav button em:empty{display:none}
.tpane{display:none;overflow-y:auto;min-height:0;flex:1;padding:8px 10px}
.tpane.on{display:block}
.rlist{width:100%;border-collapse:collapse;font-size:12px}
.rlist td{padding:5px 4px;border-bottom:var(--hair);vertical-align:middle}
.rlist td:last-child{font-family:var(--mono);font-weight:700;text-align:right;white-space:nowrap}
.rlist .sev{display:inline-block;font-family:var(--ui);font-weight:900;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;padding:2px 5px;color:#1f2937}
.sev.s1{background:#fde68a}.sev.s2{background:#fdba74}.sev.s3{background:#fca5a5}.sev.s0{background:#bbf7d0}.sev.sd{background:#1f2937;color:#fff}
.rlist tr.tot td{border-top:var(--border);font-weight:800}
.muted{font-size:12px;color:var(--gray-500);padding:10px 0;text-align:center}
.stack{display:flex;flex-direction:column;gap:3px}
.srow2{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;font-size:11.5px;font-weight:600}
.srow2 i{height:5px;display:block;grid-column:1/-1}
.srow2 b{font-family:var(--mono);font-size:11.5px}
.srow2.tot{border-top:var(--border);padding-top:4px;margin-top:2px;font-weight:900}
.warns{list-style:none;margin-top:8px;display:flex;flex-direction:column;gap:3px}
.warns li{font-size:11.5px;line-height:1.35;padding-left:10px;border-left:3px solid var(--gray-300)}
.warns li.deny{border-color:var(--whtc-red)} .warns li.must{border-color:#c2410c} .warns li.final{border-color:var(--whtc-green)}
.eq{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.eq span{font-family:var(--ui);font-weight:900;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);margin-right:2px}
.eq a{font-family:var(--ui);font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border:1px solid var(--whtc-navy);padding:5px 8px}
.eq a:hover{background:var(--whtc-navy);color:#fff}

.stagebox{position:relative;background:#20242a;overflow:hidden}
#stage{position:absolute;inset:0}
#stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
#labels{position:absolute;inset:0;pointer-events:none}
.vign{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 160px rgba(0,0,0,.35)}
.hud{position:absolute;left:14px;top:14px;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none;max-width:calc(100% - 200px);z-index:2}
.chip{background:rgba(17,17,17,.9);color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;padding:6px 9px}
.chip b{color:var(--whtc-orange)}
.rec{position:absolute;left:14px;top:48px;display:none;align-items:center;gap:6px;background:rgba(17,17,17,.9);color:#fff;font-family:var(--mono);font-size:10.5px;font-weight:700;padding:4px 8px;z-index:2;pointer-events:none}
.rec.on{display:flex}
.rec::before{content:'';width:8px;height:8px;border-radius:50%;background:#ef4444}
.legend{position:absolute;right:14px;top:14px;background:rgba(17,17,17,.9);color:#fff;padding:8px 10px;font-family:var(--ui);font-weight:800;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;display:flex;flex-direction:column;gap:4px;z-index:2;pointer-events:none}
.legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.objs{position:absolute;right:14px;bottom:14px;background:rgba(17,17,17,.92);color:#fff;padding:10px 12px;z-index:2;width:240px}
.objs h4{font-family:var(--ui);font-weight:900;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--whtc-orange);margin-bottom:6px}
.objs label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;padding:3px 0;cursor:pointer}
.objs input{accent-color:var(--whtc-orange);width:15px;height:15px;flex:none}
.objs label em{font-style:normal;font-family:var(--mono);font-size:9.5px;color:#86efac;margin-left:auto}
.objs .dice{margin-top:8px;width:100%;border:1px solid #fff;background:transparent;color:#fff;font-family:var(--ui);font-weight:900;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:7px;cursor:pointer}
.objs .dice:hover{background:var(--whtc-orange);border-color:var(--whtc-orange)}
.say{display:none!important;font-family:var(--body);font-size:11px;font-weight:600;background:#fff;color:#1f2937;padding:4px 8px;border:1px solid #1f2937;white-space:nowrap;transform:translate(10px,-34px)}
.views{position:absolute;left:14px;bottom:14px;display:flex;border:2px solid #fff;background:var(--whtc-navy);z-index:2}
.views button{border:0;border-right:1px solid #444;background:var(--whtc-navy);color:#fff;padding:10px 12px;font-family:var(--ui);font-weight:900;font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--dur) var(--ease)}
.views button:last-child{border-right:0}
.views button:hover{background:#2a2a2a}
.views button.on{background:var(--whtc-orange)}
.views .sep{width:5px;background:#fff}
.banner{position:absolute;left:50%;top:56px;transform:translateX(-50%);width:max-content;max-width:min(560px,calc(100% - 28px));background:rgba(17,17,17,.94);color:#fff;border-left:6px solid #4ade80;padding:10px 16px;display:none;pointer-events:none;z-index:2}
.banner.show{display:block}
.banner.bad{border-left-color:#f87171} .banner.warn{border-left-color:#fb923c}
.banner strong{display:block;font-family:var(--display);font-weight:400;font-size:22px;text-transform:uppercase}
.banner.ok strong{color:#4ade80} .banner.bad strong{color:#f87171} .banner.warn strong{color:#fb923c}
.bchips{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-family:var(--mono);font-size:11.5px;font-weight:700;color:#d1d5db}
.bchips span.s2{color:#fdba74}.bchips span.s3{color:#fca5a5}.bchips span.good{color:#86efac}
.flash{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 0 var(--whtc-red);transition:box-shadow .25s;z-index:2}
.flash.on{box-shadow:inset 0 0 0 8px var(--whtc-red)}
.loading{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-family:var(--ui);font-weight:900;text-transform:uppercase;letter-spacing:.2em;font-size:12px;background:#20242a;z-index:4}
.loading.gone{display:none}
.inj{font-family:var(--ui);font-weight:900;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;white-space:nowrap;color:#1f2937;box-shadow:0 2px 8px rgba(0,0,0,.4);transform:translate(20px,-16px)}
.inj.s1{background:var(--sev1)} .inj.s2{background:var(--sev2)} .inj.s3{background:var(--sev3);color:#fff}
.inj.dead{background:#1f2937;color:#fff;border:2px solid var(--sev3)}
.rl{font-family:var(--mono);font-size:10px;font-weight:700;padding:3px 6px;white-space:nowrap;transform:translateX(58%);color:#1f2937}
.gl{font-family:var(--mono);font-size:10px;font-weight:700;color:#e5e7eb;background:rgba(17,17,17,.85);padding:2px 6px;white-space:nowrap}
.tip{position:absolute;pointer-events:none;background:var(--whtc-navy);color:#fff;font-family:var(--ui);font-weight:800;font-size:11px;padding:5px 8px;display:none;z-index:4;white-space:nowrap}

/* ===== report ===== */
.report{position:fixed;inset:0;z-index:100;background:rgba(17,17,17,.72);display:none;flex-direction:column}
.report.open{display:flex}
.report .bar{display:flex;gap:8px;align-items:center;padding:10px 16px;background:var(--whtc-navy);color:#fff;flex-wrap:wrap}
.report .bar b{font-family:var(--ui);font-weight:900;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-right:auto}
:is(.report .bar,.export-dock) .btn{padding:8px 12px;font-size:10px;border-color:#fff}
:is(.report .bar,.export-dock) .btn.outline{background:transparent;color:#fff}
:is(.report .bar,.export-dock) .btn.outline:hover{background:#fff;color:var(--whtc-navy)}
.report .scroll{flex:1;overflow:auto;padding:24px 12px;background:#3f4349}
.report .busy{color:#fff;font-family:var(--ui);font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:60px 0}
.doc{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.page{background:#fff;color:#1f2937;padding:44px 52px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-family:var(--body);font-size:12.5px;line-height:1.5;min-height:calc(min(820px,100vw - 24px)*1.414);display:flex;flex-direction:column}
.page .foot{margin-top:auto!important}
.page h2{font-family:var(--ui);font-weight:900;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:22px 0 8px;padding-bottom:4px;border-bottom:2px solid #1f2937}
.page h2:first-of-type{margin-top:6px}
.page p{margin:4px 0}
.page .hdr{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:4px solid var(--whtc-orange);padding-bottom:14px}
.page .hdr img{height:30px}
.page .hdr .meta{text-align:right;font-size:11px;color:#444;line-height:1.5}
.page .title{font-family:var(--display);font-weight:400;font-size:30px;text-transform:uppercase;line-height:1.05;margin:18px 0 4px}
.page .sub{color:#555;font-size:12px}
.page table{width:100%;border-collapse:collapse;margin:4px 0}
.page th,.page td{border:1px solid #c9c9c9;padding:5px 8px;text-align:left;vertical-align:top}
.page th{background:#f3f4f6;font-weight:700;width:38%}
.page table.grid th{width:auto;background:#1f2937;color:#fff;font-family:var(--ui);font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-color:#1f2937}
.page table.grid tr:nth-child(even) td{background:#fafafa}
.page td.s1{background:#fef9c3!important}.page td.s2{background:#ffedd5!important}.page td.s3{background:#fee2e2!important}
.page .kf{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 4px}
.page .kf div{border:1px solid #c9c9c9;border-top:3px solid #1f2937;padding:8px 10px}
.page .kf span{display:block;font-family:var(--ui);font-weight:800;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#666}
.page .kf b{display:block;font-family:var(--display);font-weight:400;font-size:22px;line-height:1.1;margin-top:2px}
.page .strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:6px 0}
.page .strip figure{margin:0}.page .strip figcaption{font-size:10px}
.page video{width:100%;display:block;border:1px solid #bbb;background:#1f2937}
.page .note{font-size:11px;color:#555}
.page{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.page .cover{background:#1f2937;margin:-44px -52px 0;padding:20px 52px;display:flex;justify-content:space-between;align-items:center;border-bottom:6px solid #fe4d01}
.page .cover img{height:30px;display:block}
.page .cover .meta{font-size:11px;color:#d1d5db;text-align:right;line-height:1.5}
.page .kick{font-family:var(--ui);font-weight:900;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#fe4d01;margin-top:22px}
.page .title span{color:#fe4d01}
.page .phdr{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #fe4d01;padding-bottom:8px;margin-bottom:4px;font-family:var(--ui);font-weight:800;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#555}
.page .phdr img{height:18px;display:block}
.page h2{display:flex;align-items:center;gap:9px;border-bottom:2px solid #1f2937}
.page h2 i{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 4px;background:#fe4d01;color:#fff;font-style:normal;font-size:11px}
.page .hero{margin:14px 0 10px}
.page .hero img{border:0;border-bottom:4px solid #fe4d01}
.page .print-only{display:none}
.page figcaption b{font-family:var(--ui);font-weight:800}
.page .cta{background:#1f2937;color:#fff;padding:12px 16px;margin:16px 0 4px;border-left:6px solid #fe4d01;display:flex;flex-direction:column;gap:3px;font-size:12px}
.page .cta b{font-family:var(--ui);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.page .cta a{color:#fe4d01}
.page .foot{display:flex;justify-content:space-between;border-top:2px solid #1f2937!important;font-family:var(--ui);font-weight:700;letter-spacing:.04em}
.page .kf div{border-top-color:#fe4d01}
.page .cmp{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
.page .cmp img{width:100%;display:block;margin:6px 0;border:1px solid #bbb}
.page .cmp th{width:auto}.page .cmp th,.page .cmp td{font-size:10.5px;padding:3px 5px}
.page .cmph{font-family:var(--ui);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.08em;padding:6px 8px;color:#fff;background:#1f2937;border-left:5px solid #16a34a}
.page .cmph.warn{border-left-color:#ea580c}.page .cmph.bad{border-left-color:#dc2626}
.page td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.page .verdictbox{border:2px solid #1f2937;padding:10px 14px;margin:8px 0;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
.page .verdictbox .tag{font-family:var(--ui);font-weight:900;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;color:#fff}
.tag.ok{background:#15803d}.tag.warn{background:#c2410c}.tag.bad{background:#b91c1c}
.page .verdictbox .sc{font-family:var(--display);font-size:30px;line-height:1}
.page figure{margin:6px 0 10px}
.page figure img{width:100%;display:block;border:1px solid #bbb}
.page figcaption{font-size:11px;color:#444;margin-top:4px}
.page .figs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.page ol,.page ul{padding-left:18px}
.page li{margin:2px 0}
.page .foot{margin-top:18px;padding-top:8px;border-top:1px solid #ccc;font-size:10px;color:#666}
.page a{color:#1f2937}
@media print{
  body.printing>*:not(#report){display:none!important}
  body.printing .report{position:static;background:none;display:block}
  body.printing .report .bar{display:none}
  body.printing .report .scroll{overflow:visible;padding:0}
  body.printing .doc{max-width:none;gap:0}
  body.printing .page{box-shadow:none;padding:0 4mm;break-after:page}
  body.printing .page:last-child{break-after:auto}
  body.printing .page{min-height:0;display:block}
  body.printing .page tr,body.printing .page figure{break-inside:avoid}
  body.printing .page h2{break-after:avoid}
  body.printing .screen-only{display:none!important}
  body.printing .page .print-only{display:block!important}
  body.printing .page .cover{margin:0 0 0;padding:14px 18px}
  @page{size:A4;margin:14mm}
}

@media (max-width:1300px) and (min-width:1001px){.objs{width:210px}.views button{padding:9px 8px;font-size:9px}.sim{grid-template-columns:400px minmax(0,1fr)}}
@media (max-width:1000px){
  .sim{height:auto;min-height:0;display:flex;flex-direction:column}
  .panel{display:contents}
  .top{order:1;padding:14px 14px 0;display:flex;flex-direction:column;gap:8px}
  .stagebox{order:2;height:72svh;min-height:430px;margin-top:10px;border-top:var(--border);border-bottom:var(--border)}
  .controls{order:3;padding:12px 14px 20px;display:flex;flex-direction:column;gap:9px}
  .tabs3{min-height:200px}
}
@media (max-width:720px){
  .views{bottom:auto;top:44px;left:10px;right:10px}
  .views button{padding:8px 4px;font-size:8.5px;letter-spacing:.02em;flex:1}
  .views .sep{display:none}
  .legend,.rec{display:none!important}
  .objs{left:10px;right:10px;width:auto;bottom:10px;padding:8px 10px;max-height:34%;overflow:auto}
  .banner{top:92px;padding:8px 12px}.banner strong{font-size:18px}
  .objs label{display:inline-flex;width:49%;font-size:11px;vertical-align:top}
  .objs label em{display:none}
  .hud{max-width:calc(100% - 20px);left:10px;top:10px}
  .say{display:none}
  .rl,.gl{font-size:9px}
  .srow{grid-template-columns:1fr;gap:5px}
  .page{padding:22px 18px}
  .page .figs{grid-template-columns:1fr}
}
/* ===== cleaner controls: light surfaces, thin dividers, rounded chips ===== */


.hud{top:80px}.rec{top:114px}
@media (max-width:760px){.hud{top:10px}}
.scn button:not(.on):hover,.seg button:not(.on):not(:disabled):hover,.stepper button:hover,.tabs3 nav button:not(.on):hover,.rnd:hover,.eq a:hover,.actions .btn.outline:hover{background:#1f2937!important;color:#fff!important;border-color:#1f2937!important}
.scn button:not(.on):hover small,.seg button:not(.on):hover small{color:#cfcfcf!important}
.sel:hover{border-color:#1f2937!important}
/* scenario icons, tool row, switches */
.scn button svg{width:22px;height:22px;display:block;margin-bottom:5px;color:var(--gray-700)}
.scn button.on svg{color:#fff}
.scn button:not(.on):hover svg{color:#fff}
.selwrap{position:relative;display:block}
.selwrap .sel{padding-left:36px}
.tico{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--gray-700);pointer-events:none}
.tico.warn{color:var(--whtc-red)}
.tico svg{width:20px;height:20px;display:block}
.sw{display:inline-flex;align-items:center;gap:9px;border:0;background:none;padding:2px 0;cursor:pointer;font-family:var(--ui);font-weight:800;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-500);justify-self:start}
.sw i{width:34px;height:20px;border-radius:999px;background:var(--gray-300);position:relative;transition:background var(--dur) var(--ease);flex:none}
.sw i::after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform var(--dur) var(--ease)}
.sw.on i{background:var(--whtc-orange)}.sw.on i::after{transform:translateX(14px)}
.sw.on{color:var(--whtc-navy)}
.sw:hover i{background:#1f2937}.sw.on:hover i{background:#d94000}
.sw:focus-visible{outline:2px solid var(--whtc-orange);outline-offset:3px;border-radius:4px}
details.adv summary::after{content:'';width:7px;height:7px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(45deg);margin:2px 3px 0 0;transition:transform var(--dur) var(--ease)}
details.adv[open] summary::after{transform:rotate(-135deg);margin-top:6px}
/* overlays on the 3D view: same light cards as the panel */
.chip,.rec,.legend,.objs,.banner{background:rgba(255,255,255,.94);color:var(--whtc-navy);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.chip{font-family:var(--ui);font-weight:800;font-size:10.5px;letter-spacing:.06em;padding:7px 11px}
.rec{padding:5px 10px;font-family:var(--ui);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.legend{padding:9px 12px;gap:5px}
.legend i{border-radius:3px}
.objs{padding:12px 14px}
.objs label{color:var(--gray-900)}
.objs label em{color:#15803d}
.objs .dice{border:1px solid var(--gray-200);border-radius:6px;background:#fff;color:var(--whtc-navy)}
.objs .dice:hover{background:#1f2937;border-color:#1f2937;color:#fff}
.views{border:0;background:rgba(255,255,255,.94);border-radius:10px;padding:4px;gap:2px;box-shadow:0 6px 20px rgba(0,0,0,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.views button{border:0;border-radius:7px;background:transparent;color:var(--gray-700);padding:8px 11px}
.views button:hover{background:#1f2937;color:#fff}
.views button.on{background:var(--whtc-orange);color:#fff}
.views .sep{width:1px;margin:6px 4px;background:var(--gray-200)}
.banner{border-left:5px solid #16a34a;padding:11px 18px}
.banner.bad{border-left-color:#dc2626}.banner.warn{border-left-color:#ea580c}
.banner.ok strong{color:#15803d}.banner.bad strong{color:#b91c1c}.banner.warn strong{color:#c2410c}
.bchips{color:var(--gray-700)}
.bchips span.s2{color:#c2410c}.bchips span.s3{color:#b91c1c}.bchips span.good{color:#15803d}
.vign{box-shadow:inset 0 0 120px rgba(0,0,0,.18)}
.shead{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 2px}
.shead span{font-family:var(--ui);font-weight:900;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500)}
.rnd{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--gray-200);background:#fff;border-radius:6px;padding:5px 9px;font-family:var(--ui);font-weight:800;font-size:10px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.rnd:hover{border-color:var(--whtc-orange);color:var(--whtc-orange)}
.rnd svg{width:16px;height:16px}
.sel{width:100%;appearance:none;-webkit-appearance:none;border:1px solid var(--gray-200);border-radius:6px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23111' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 11px center/11px;padding:8px 30px 8px 10px;font-family:var(--body);font-size:13px;font-weight:600;color:var(--gray-900);cursor:pointer;line-height:1.3}
.sel:hover{border-color:var(--gray-400)}
.sel:focus-visible,.stepper.kg input:focus-visible{outline:2px solid var(--whtc-orange);outline-offset:1px}
.sel.danger{border-color:#fca5a5;background-color:#fef2f2;color:#991b1b}
.stepper{max-width:190px}
.stepper.kg div{display:flex;align-items:center;justify-content:center;gap:3px}
.stepper.kg input{width:48px;border:0;text-align:right;font-family:var(--display);font-size:16px;background:transparent;color:var(--gray-900);-moz-appearance:textfield;padding:0}
.stepper.kg input::-webkit-inner-spin-button,.stepper.kg input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.stepper.kg span{font-family:var(--ui);font-weight:800;font-size:11px;color:var(--gray-500)}
.lbl{font-size:10.5px;letter-spacing:.08em}
.srow{grid-template-columns:96px 1fr}
.seg button{font-size:10.5px}
.panel{gap:10px;background:#fbfbfa}
.scn{border:0;gap:6px}
.scn button{border:1px solid var(--gray-200)!important;border-radius:8px;padding:8px 9px;background:#fff}
.scn button:hover{border-color:var(--gray-400)!important;background:#fff}
.scn button.on{background:var(--whtc-orange);border-color:var(--whtc-orange)!important}
.setup{border:0;background:#fff;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px var(--gray-200)}
.srow{border-bottom:0;padding:6px 12px}
.seg{border:0;gap:4px}
.seg button{border:1px solid var(--gray-200)!important;border-radius:6px;padding:6px 4px;font-weight:700;background:#fff}
.seg button.on{background:var(--whtc-navy);border-color:var(--whtc-navy)!important}
.seg button.on.danger{background:var(--whtc-red);border-color:var(--whtc-red)!important}
#segF{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}
.stepper{border:1px solid var(--gray-200);border-radius:6px;overflow:hidden}
.stepper div{border-left:1px solid var(--gray-200);border-right:1px solid var(--gray-200)}
details.adv{border-bottom:0;border-top:1px solid var(--gray-100);margin-top:2px}
details.adv summary{padding:8px 12px}
.btn.mini{padding:7px 10px;font-size:9.5px;border-width:1px;border-radius:6px;width:100%}
.actions{display:flex;gap:6px;padding:6px 12px 12px}
.actions .btn{flex:1;border-radius:8px;border:0!important}
.actions .btn+.btn{border-left:0}
#repBtn{border:1px solid var(--whtc-navy)!important}
#repBtn:disabled{display:none}
.res{border:0;background:#fff;border-radius:10px;box-shadow:0 0 0 1px var(--gray-200)}
.res>div{border-right:0}
.res .verdict{border-top:1px solid var(--gray-100)}
.tabs3{border:0;border-radius:10px;overflow:hidden;box-shadow:0 0 0 1px var(--gray-200);background:#fff}
.tabs3 nav{border-bottom:1px solid var(--gray-100);background:var(--gray-50)}
.tabs3 nav button{border-right:0;background:transparent;color:var(--gray-500)}
.tabs3 nav button.on{background:#fff;color:var(--whtc-navy);box-shadow:inset 0 -2px 0 var(--whtc-orange)}
.srow2.tot,.rlist tr.tot td{border-top:1px solid var(--gray-200)}
.eq a{border:1px solid var(--gray-200);border-radius:6px;background:#fff}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.model-note{font:11px/1.45 var(--body);color:#555}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #fe4d01;outline-offset:3px}#seedIn{width:100%;min-width:0;border:0;background:transparent;text-align:center;font-family:var(--display);font-size:16px;appearance:textfield}#seedIn::-webkit-inner-spin-button,#seedIn::-webkit-outer-spin-button{appearance:none}.seed-control div{min-width:0}.export-status{font:11px/1.4 var(--body);width:100%;color:#fff}body.busy .setup select,body.busy .setup input{opacity:.65}.report .bar{flex-wrap:wrap}.page table{overflow-wrap:anywhere}@media(max-width:600px){.report .bar{gap:6px}.report .bar b{width:100%}:is(.report .bar,.export-dock) .btn{font-size:10px;min-height:40px}.page{max-width:100%;padding:18px}.objs{max-height:28vh;overflow:auto}}

.multi-option{display:flex;align-items:center;gap:8px;font-size:11px;line-height:1.4}.multi-option input{accent-color:var(--whtc-orange);flex:none}#segCamera{min-width:0}#segCamera button{padding-left:5px;padding-right:5px}

/* Branded boot and a single entrance sequence on each page load. */
.loading{position:fixed;inset:0;z-index:1000;background:var(--whtc-navy);transition:opacity .35s ease,visibility .35s;letter-spacing:normal;text-transform:none}
.loading-brand{width:min(300px,70vw);display:flex;flex-direction:column;align-items:center;gap:26px}.loading-brand img{width:100%;height:auto}.loading-track{width:72%;height:3px;background:#ffffff24;overflow:hidden}.loading-track i{display:block;width:5%;height:100%;background:white;transition:width .25s ease}.loading.gone{display:grid;opacity:0;visibility:hidden;pointer-events:none}.loading.failed #loadStatus{position:static;width:auto;height:auto;clip-path:none;white-space:normal;text-align:center;font:13px/1.5 var(--body)}#loadRetry{border:1px solid #ffffff70;background:transparent;color:white;padding:10px 20px;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.booting .sim{visibility:hidden}.booting{overflow:hidden}
.ready .panel{animation:panel-in .65s var(--ease) both}.ready .stagebox{animation:scene-in .8s var(--ease) both}.ready .views,.ready .objs{animation:ui-in .6s var(--ease) .25s both}.ready .objs{animation-delay:.4s}.ready .setup,.ready .res,.ready .tabs3,.ready .eq{animation:ui-in .6s var(--ease) .15s both}
@keyframes panel-in{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}@keyframes scene-in{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:none}}@keyframes ui-in{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
.scn button svg{width:27px;height:27px;margin-bottom:7px;stroke-width:1.6}.scn button:not(.on):hover svg{color:var(--whtc-orange)}.btn svg,.page h2>svg,.page .cta svg{width:19px;height:19px;flex:none;vertical-align:middle}.page h2>svg{margin-right:8px}.page .cta b,.page .cta a{display:inline-flex;align-items:center;gap:8px}.page .cta a{color:white;text-underline-offset:3px}.inj{display:none!important}
@media(prefers-reduced-motion:reduce){.ready .panel,.ready .stagebox,.ready .views,.ready .objs,.ready .setup,.ready .res,.ready .tabs3,.ready .eq{animation:none}.loading,.loading-track i{transition:none}}

.seed-hint{font:10px/1.4 var(--body);color:var(--gray-500);padding:0 12px 8px 108px}.info{display:inline-block;position:relative}.info button{border:1px solid currentColor;border-radius:50%;width:17px;height:17px;background:transparent;font:700 11px Georgia;cursor:help}.info-tip{display:none;position:absolute;z-index:20;left:-70px;top:24px;width:240px;padding:12px;background:var(--whtc-navy);color:#fff;border-radius:8px;font:12px/1.5 var(--body);letter-spacing:normal;text-transform:none;box-shadow:0 4px 16px #1f293726}.info:hover .info-tip,.info:focus-within .info-tip{display:block}
.page .view-card{padding:16px;border:1px solid #dbe1e8;border-radius:12px;background:#f8fafc}.page .view-heading{display:flex;gap:12px;align-items:center;margin-bottom:12px}.page .view-heading h2{margin:0;border:0;padding:0;font-size:18px}.page .view-number{font:32px var(--display);color:#fe4d01}.page .view-card figure{margin:12px 0}.page .view-card figure img{width:100%;border-radius:8px}.page .clip-download{display:inline-flex;align-items:center;gap:8px;color:#1f2937;font-weight:700;margin:8px 0}.page .clip-download svg{width:18px;height:18px}.page .view-card .note{line-height:1.5}

.page .view-card figure img{max-width:560px;margin-inline:auto;display:block}.page .view-card figure img.print-only{display:none}@media print{.page .view-card figure img.screen-only{display:none}.page .view-card figure img.print-only{display:block}}

.multi-control{display:flex;align-items:center;gap:9px}.multi-control .info{flex:none}.multi-control .info-tip{left:auto;right:0;width:min(240px,70vw)}

.page .cover img{height:48px;max-width:48%;object-fit:contain}.page .phdr img{height:30px;max-width:42%;object-fit:contain}.page h2>i{background:#fe4d01;color:#fff}.video-quality{display:flex;align-items:center;gap:8px;color:white;font:600 11px var(--body);white-space:nowrap}.video-quality select{padding:9px 10px;border:1px solid #ffffff70;background:#1f2937;color:white;font:700 11px var(--body);border-radius:5px}.video-quality select:focus-visible{outline:2px solid #fe4d01;outline-offset:2px}

/* Safety Academy controls and scene results */
*{scrollbar-width:thin;scrollbar-color:#fe4d01 #e6e9ed}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:#e6e9ed}::-webkit-scrollbar-thumb{background:#fe4d01;border-radius:9px;border:2px solid #e6e9ed}
#eqLinks{display:none}.booting .sim{visibility:visible}.ready .panel,.ready .stagebox,.ready .views,.ready .objs,.ready .setup,.ready .res,.ready .tabs3{animation:none}
.results-overlay{position:absolute;top:14px;right:16px;width:min(300px,calc(100% - 32px));z-index:6;background:#ffffffed;border:1px solid #ffffffa0;border-radius:14px;box-shadow:0 8px 32px #1f293720;backdrop-filter:blur(12px);overflow:hidden;color:#1f2937}
.results-overlay>summary{cursor:pointer;padding:9px 48px 9px 10px;font:700 11px var(--body);list-style-position:inside}.results-overlay .res{border-radius:0;box-shadow:none;background:transparent}.results-overlay .tabs3{box-shadow:none;border-radius:0;min-height:0}.results-overlay .tpane{max-height:min(20vh,160px);overflow:auto;padding:6px 9px;overscroll-behavior:contain}.results-overlay .res>div{padding:5px 9px}.results-overlay .res b{font-size:15px}.results-overlay .res .score b{font-size:20px}.results-overlay .tabs3 nav button{padding:7px 4px;font-size:9px}.results-overlay .res .verdict{font-size:10px;padding:6px 9px}.results-overlay .res span{font-size:8px}.results-overlay .score{background:#1f2937;color:#fff}.results-overlay .score span{color:#ffffffb3}.results-overlay .score b{color:#fff!important}
.rec,.rec.on{top:20px;right:24px;left:auto;z-index:7;gap:5px;padding:3px 5px;border-radius:6px;background:var(--whtc-navy);color:white;box-shadow:none;pointer-events:none}.rec svg{width:16px;height:16px}.rec::before{width:5px;height:5px}
.adv{border:1px solid #dce1e7;border-radius:10px;overflow:visible;background:#f6f7f9}.adv>summary{color:#1f2937;font-weight:700;padding:12px}.adv .srow{padding:10px 12px;border-top:1px solid #e3e7ec;min-height:48px}.adv .lbl{line-height:1.4;font-size:11px}.multi-control{align-items:center;gap:8px}.info{line-height:1;color:#87919e;vertical-align:middle}.info button{display:grid;place-items:center;color:#87919e;border-color:#b8c0c9;background:#f1f3f5;font:600 11px var(--body);width:18px;height:18px;padding:0}.info button:hover,.info button:focus-visible{color:#1f2937;border-color:#1f2937}.info-tip{pointer-events:none}.seed-control{min-width:114px}.seed-hint{padding:0 12px 10px;color:#667383}.sw{white-space:nowrap}.report-loading{min-height:65vh;background:#1f2937;color:white;display:grid;place-items:center;text-align:center}.report-loading p{font:500 13px var(--body)}.report-loading .loading-track i{width:10%}
.page .protection-scores{width:100%;border-collapse:collapse;margin:18px 0}.page .protection-scores th{background:#1f2937;color:#fff;text-align:left}.page .protection-scores td,.page .protection-scores th{padding:10px;border-bottom:1px solid #e3e7eb;font-size:11px}.page .rating{display:inline-flex;gap:3px;color:#fe4d01}.page .rating svg{width:16px;height:16px;fill:currentColor}.page .rating .empty{color:#dce1e7}.page .compare-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.page .compare-summary>div{border-top:3px solid #fe4d01;background:#f5f6f8;padding:14px}.page .compare-summary strong{display:block;font:700 24px var(--body);margin:8px 0}.page .compare-summary p{font-size:11px}.page .cover{border-bottom:4px solid #fe4d01}
@media(max-width:700px){.rec.on{display:flex!important}.results-overlay{top:14px;right:10px;width:min(260px,calc(100% - 20px))}.rec,.rec.on{right:18px}.results-overlay .tpane{max-height:min(18vh,120px)}.results-overlay .res .verdict{display:none}.results-overlay .res>div{padding:6px}.results-overlay>summary{padding:9px 48px 9px 10px}.report .bar{flex-wrap:wrap}}

.compare-builder{padding:12px;border-top:1px solid #dce1e7;display:grid;gap:10px}.compare-builder p{font:600 11px var(--body)}#variantList{list-style:none;display:grid;gap:6px}#variantList li{display:flex;align-items:center;gap:8px;padding:8px;background:white;border-radius:6px;font:600 10px/1.4 var(--body)}#variantList span{flex:1}#variantList small{display:block;font-weight:400;color:#667383}#variantList button{border:0;background:#f0f2f5;border-radius:50%;width:24px;height:24px;cursor:pointer}.report .scroll{background:#34373c}.page{background:white}.media-viewer{border:0;background:#1f2937;padding:16px;width:min(96vw,1400px);max-width:96vw}.media-viewer img{width:100%;max-height:85vh;object-fit:contain}.media-viewer button{display:block;margin:0 0 12px auto;padding:8px 16px;cursor:pointer}.media-viewer::backdrop{background:#1f2937e6}.page figure img{cursor:zoom-in}

.edge-note{font:10px/1.5 var(--body);padding:8px 12px;color:#667383}.adv[open]{padding-bottom:8px}[hidden]{display:none!important}

/* Comparison columns must not inherit the 38% label width of key/value tables. */
.page .comparison-table{width:100%;overflow-x:auto;margin:16px 0}
.page .protection-scores{table-layout:fixed;margin:0;min-width:520px}
.page .protection-scores th{width:auto;letter-spacing:normal}
.page .protection-scores th:nth-child(1){width:7%}
.page .protection-scores th:nth-child(2){width:35%}
.page .protection-scores th:nth-child(3){width:14%}
.page .protection-scores th:nth-child(4){width:12%}.page .protection-scores th:nth-child(5){width:32%}
.page .protection-scores th,.page .protection-scores td{padding:9px 10px;overflow-wrap:normal;word-break:normal;line-height:1.45}
.page .protection-scores td:nth-child(3),.page .protection-scores td:nth-child(4){white-space:nowrap}
.page .protection-scores tr:nth-child(even){background:#f5f7fa}
.page .compare-summary>div{min-width:0}
.page figure video{aspect-ratio:16/9;object-fit:contain;height:auto}
@media(max-width:600px){.page{padding:18px;min-width:0}.page .compare-summary,.page .cmp{grid-template-columns:1fr}.page .comparison-table{max-width:100%}.page .hdr{gap:10px}.page .hdr .meta{font-size:9px}}
@media print{.page .comparison-table{overflow:visible}.page .protection-scores{min-width:0}.page .protection-scores thead{display:table-header-group}}

.report .bar{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px 18px;flex:none;box-shadow:0 3px 16px #0002;z-index:2}
.report-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
:is(.report .bar,.export-dock) .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border-width:1px;border-radius:6px;white-space:nowrap;letter-spacing:.02em}
:is(.report .bar,.export-dock) .btn svg{width:16px;height:16px}:is(.report .bar,.export-dock) .btn:disabled{opacity:.45;cursor:wait}
.export-tools{display:flex;flex-wrap:wrap;gap:10px}.export-group{display:flex;align-items:end;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid #ffffff26;border-radius:9px}
.export-group .video-quality{display:flex;flex-direction:column;align-items:stretch;gap:4px;font-size:10px}.export-group select{min-height:36px;padding:6px 9px;border-color:#ffffff50;border-radius:6px}
.report .export-status:empty{display:none}.report-loading{position:absolute;inset:0;z-index:30;min-height:0}.report-loading .loading-brand{margin:auto}
.page .recommendation{padding:14px 16px;margin:10px 0;border-left:3px solid #fe4d01;background:#f5f7fa;break-inside:avoid}.page .recommendation h3{font-size:12px;margin-bottom:6px}.page .recommendation a{display:inline-block;color:#1f2937;font-weight:700;text-decoration:underline;text-underline-offset:3px;margin:6px 12px 0 0}
.page .protection-scores small{display:block;color:#627082;font-size:10px;margin-top:4px}
@media(max-width:600px){.report .bar{padding:8px;max-height:42dvh;overflow:auto}:is(.report .bar,.export-dock) .btn{min-height:36px}.report .bar b{width:auto}.export-tools{gap:6px}.export-group{padding:6px;flex:1}.export-group .video-quality{flex:1}.report .scroll{padding:12px 6px}}
@media(max-width:600px){.page .cover{margin:-18px -18px 18px;padding:18px}.page .kf{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Export actions stay beside the report, outside its top navigation. */
.export-dock{position:absolute;right:22px;bottom:20px;z-index:12;color:white}
.export-dock>summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;background:var(--whtc-orange);padding:13px 18px;border-radius:9px;font:800 12px var(--body);box-shadow:0 5px 20px #0003}
.export-dock>summary::-webkit-details-marker{display:none}.export-dock>summary svg{width:19px;height:19px}
.export-dock[open]>summary{background:var(--whtc-navy);outline:1px solid #ffffff50}
.export-dock .export-tools{position:absolute;right:0;bottom:calc(100% + 10px);width:min(410px,calc(100vw - 28px));max-height:calc(100dvh - 155px);overflow:auto;display:flex;flex-direction:column;gap:10px;background:var(--whtc-navy);padding:12px;border:1px solid #ffffff30;border-radius:12px;box-shadow:0 10px 36px #0005}
.export-dock .export-group{flex:none;align-items:end}.export-dock .export-group .video-quality{flex:1}.export-dock .btn.outline{color:white;background:transparent}.export-dock .btn.outline:hover{background:#ffffff18}.export-dock .export-status{line-height:1.5}
.report .scroll{padding-bottom:90px}.page .view-card figure img{max-width:100%}
@media(max-width:600px){.export-dock{right:14px;bottom:14px}.export-dock .export-group{gap:6px}}
@media print{body.printing .export-dock{display:none}}

/* Report access: native modal, keyboard focus and optional consent. */
.report-launcher{position:fixed!important;right:22px;bottom:76px;z-index:35;background:#fe4d01!important;color:white!important;box-shadow:0 8px 28px #11182733;padding:13px 22px!important;border-radius:12px!important}
.report-launcher:disabled{display:none!important}
.report-access{position:fixed;inset:0;margin:auto;border:1px solid #e5e7eb;border-radius:22px;width:min(490px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:32px;background:white;color:#1f2937;box-shadow:0 24px 100px #11182755;font:14px/1.55 var(--body,Arial,sans-serif)}
.report-access::backdrop{background:#182335bb;backdrop-filter:blur(5px)}
.report-access form{display:flex;flex-direction:column;gap:13px}.report-access .access-logo{width:208px;max-width:80%;height:auto;margin:0 0 10px}.report-access h2{font:700 29px/1.15 var(--ui,Arial,sans-serif);margin:0}.report-access p{margin:0}.report-access .access-eyebrow{color:#e44908;font-size:10px;font-weight:800;letter-spacing:.14em}.access-close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:#64748b;font:28px Arial;cursor:pointer;padding:5px 10px}.access-field{display:grid;gap:6px;font-weight:600}.access-field input{width:100%;box-sizing:border-box;padding:13px 14px;border:1px solid #cbd5e1;border-radius:9px;font:inherit;color:#1f2937;background:#f8fafc}.report-access :focus-visible{outline:3px solid #fe4d01;outline-offset:3px}.access-staff{align-self:flex-start;background:transparent;border:0;color:#475569;text-decoration:underline;cursor:pointer;font:inherit;padding:0}.report-access .access-small{font-size:11px;line-height:1.5;color:#64748b}.access-small a{color:inherit}.access-news{display:flex;gap:10px;padding:12px;background:#f1f5f9;border-radius:9px;font-size:12px;align-items:flex-start}.access-news[hidden]{display:none}.access-news input{margin-top:4px;accent-color:#fe4d01;width:17px;height:17px;flex:none}.access-news small{display:block;color:#64748b;margin-top:3px}.access-captcha{padding:12px;border:1px solid #dce3ea;border-radius:8px;color:#475569;min-height:44px;font-size:12px}.access-error{font-size:12px;color:#b42318}.access-error:empty{display:none}.access-submit{display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border:0;border-radius:9px;background:#fe4d01;color:white;font:700 14px var(--ui,Arial,sans-serif);cursor:pointer}.access-submit:disabled{opacity:.6;cursor:wait}.archive-pdf{color:#fe4d01;text-decoration:underline;white-space:nowrap}@media(max-width:540px){.report-access{padding:25px 22px}.report-access h2{font-size:25px}.report-launcher{right:12px;bottom:68px}}@media print{.report-launcher,.report-access{display:none!important}}

#reportDelivery{font-size:11px;font-weight:400;line-height:1.4;color:#64748b;max-width:640px;margin-left:auto}#reportDelivery:empty{display:none}@media(max-width:700px){.report-heading{flex-wrap:wrap}#reportDelivery{order:3;flex-basis:100%;margin:0}}

.scenario-picker{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:10px 12px;background:var(--whtc-navy,#202c3b);color:white;border-radius:8px;font-size:12px}.scenario-picker select{min-width:0;width:100%;padding:9px;border:1px solid #536174;border-radius:5px;background:#263549;color:white;font:inherit;font-weight:650}.scenario-picker select:focus-visible{outline:2px solid #fe4d01;outline-offset:2px}#trainSettings{border-top:1px solid #cbd5e1;margin-top:8px;padding-top:6px}#trainReach{line-height:1.5}#trainReach[data-reachable="false"]{color:#a93200}#trainAccess{max-width:120px}[hidden]{display:none!important}

#trainSettings input.sel{background-image:none;padding-right:10px;max-width:120px}

/* Scenario chooser: native dialog supplies focus trapping and Escape dismissal. */
button.scenario-picker{width:100%;grid-template-columns:34px 1fr 20px;border:1px solid #35465b;text-align:left;cursor:pointer;padding:15px 14px;gap:12px}button.scenario-picker>svg:first-child{width:32px;height:32px;color:#fe4d01}button.scenario-picker>svg:last-child{width:18px}button.scenario-picker small{display:block;color:#bdc8d7;font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px}button.scenario-picker strong{font-size:15px;line-height:1.3}button.scenario-picker:hover{background:#2c4057}button.scenario-picker:focus-visible,.scenario-dialog button:focus-visible{outline:3px solid #fe4d01;outline-offset:3px}.scenario-dialog{box-sizing:border-box;width:min(920px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:26px;border:0;border-radius:16px;color:#202c3b;background:#f5f7fa;box-shadow:0 24px 80px #0b162755;font-family:var(--ui);overflow:auto}.scenario-dialog::backdrop{background:#152438b8;backdrop-filter:blur(4px)}.scenario-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.scenario-eyebrow{font-size:10px;letter-spacing:.14em;color:#b43c00;font-weight:800}.scenario-dialog h2{font-size:27px;margin:7px 0}.scenario-dialog p{font-size:13px;color:#556275;line-height:1.5;margin:0}.scenario-dialog header>button{border:1px solid #d5dce5;background:white;color:#202c3b;border-radius:8px;width:40px;height:40px;flex:none;font-size:26px;cursor:pointer}.scenario-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenario-cards button{display:flex;flex-direction:column;align-items:flex-start;gap:14px;text-align:left;background:white;color:#202c3b;border:1px solid #d5dce5;border-radius:12px;padding:18px;cursor:pointer;font:inherit;transition:border-color .15s,background .15s}.scenario-cards button>svg{width:32px;height:32px;color:#d94500}.scenario-cards strong{display:block;font-size:14px;margin-bottom:8px}.scenario-cards small{display:block;font-size:12px;line-height:1.55;color:#556275}.scenario-cards button:hover{border-color:#fe4d01;background:#fff9f5}.scenario-cards button[aria-pressed="true"]{border:2px solid #fe4d01;padding:17px;background:#fff4ed}@media(max-width:700px){.scenario-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-dialog{padding:18px}}@media(max-width:440px){.scenario-cards{grid-template-columns:1fr}.scenario-cards button{flex-direction:row}.scenario-cards button>svg{flex:none}}

.scenario-dialog{margin:auto!important}.scenario-cards small{font-family:Inter,Arial,sans-serif;font-weight:400}.scenario-cards button{min-height:145px}

/* Report CTA and access drawer share the right-hand edge of the simulation. */
.report-launcher{top:50%;bottom:auto!important;right:20px;transform:translateY(-50%);display:flex;align-items:center;gap:12px;text-align:left;padding:17px 18px!important;max-width:calc(100vw - 32px);border-radius:14px 0 0 14px!important;right:0;box-shadow:0 8px 26px #17263c26}.report-launcher>svg:first-child{width:25px;height:25px}.report-launcher>svg:last-child{width:18px;height:18px}.report-launcher span{display:grid;gap:5px}.report-launcher strong{font-size:13px;font-weight:800;text-transform:none;letter-spacing:0}.report-launcher small{font:400 11px/1.4 Inter,Arial,sans-serif;text-transform:none;letter-spacing:0;color:#fff}.report-launcher:focus-visible{outline:3px solid #202c3b;outline-offset:3px}
.report-access{box-sizing:border-box;inset:0 18px 0 auto;margin:auto 0!important;width:min(450px,calc(100vw - 32px));max-height:calc(100dvh - 36px);padding:30px;border-radius:20px;overflow-y:auto;font-family:Inter,Arial,sans-serif}.report-access[open]{animation:report-drawer-in .22s ease-out}.report-access::backdrop{background:#18233570;backdrop-filter:blur(2px)}.report-access h2{font-size:27px;letter-spacing:-.6px}.report-access .access-logo{width:185px;margin-bottom:4px}.report-access form{gap:12px}.report-access .access-close{width:38px;height:38px;padding:0;border-radius:9px;display:grid;place-items:center;background:#eef2f6;color:#202c3b;top:14px;right:14px}.report-access .access-close:hover{background:#e1e7ef}.report-access .access-field{margin-top:4px}.report-access .access-submit{min-height:48px}.report-access .access-news{align-items:center}.report-access .access-news input{margin:0;appearance:none;width:34px;height:20px;border-radius:20px;background:#8793a2;position:relative;cursor:pointer;transition:background .15s}.report-access .access-news input:before{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:white;transition:transform .15s}.report-access .access-news input:checked{background:#fe4d01}.report-access .access-news input:checked:before{transform:translateX(14px)}
@keyframes report-drawer-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.report-launcher{padding:12px 13px!important;gap:8px;top:50%;right:0}.report-launcher small{display:none}.report-launcher strong{font-size:12px}.report-launcher>svg:last-child{display:none}.report-access{inset:0 12px 0 auto;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:25px 22px}}
@media(prefers-reduced-motion:reduce){.report-access[open]{animation:none}.report-access .access-news input,.report-access .access-news input:before{transition:none}}

/* R18: railway main settings in a compact grid (3 + 2 per row) so "Simulează" stays above the fold at 1366×768; secondary railway settings live in "Setări avansate" (#trainAdvanced). */
#trainSettings:not([hidden]){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:var(--hair)}
#trainSettings>.srow{grid-template-columns:1fr;gap:3px;padding:5px 6px;border-bottom:0;grid-column:span 2;min-width:0}
#trainSettings>.srow:has(#trainMotion),#trainSettings>.srow:has(#trainWalk){grid-column:span 3}
#trainSettings>.srow:has(#trainMotion):has(+ .srow[hidden]){grid-column:span 6}
#trainSettings>.srow[hidden]{display:none}
#trainSettings>.srow .lbl{font-size:9px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#trainSettings>.srow .sel{min-width:0;width:100%}

/* R22 rescue epilogue HUD (step, accelerated-time badge, estimated real time) */
.rescue-hud{position:absolute;left:12px;top:12px;z-index:6;max-width:min(360px,calc(100% - 24px));display:flex;flex-direction:column;gap:3px;padding:9px 12px 9px 14px;background:rgba(31,41,55,.88);color:#fff;border-left:4px solid #fe4d01;border-radius:6px;font:500 12px/1.35 Inter,Arial,sans-serif;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.rescue-hud b{font-weight:800;font-size:12.5px}
.rescue-hud i{font-style:normal;font-weight:800;color:#fe4d01}
.rescue-hud em{font-style:normal;color:#d1d5db;font-variant-numeric:tabular-nums}
.rescue-hud[hidden]{display:none}
@media (max-width:600px){.rescue-hud{left:8px;right:8px;top:8px;max-width:none;font-size:11px}}
.rescue-hud small{display:block;margin-top:2px;font-size:10.5px;color:#cbd5e1;font-style:italic}
