:root{
  --bg:#F2F2EF; --surface:#FFFFFF; --ink:#000000; --muted:#646464; --line:#E0E0DC; --soft:#EAEAE6;
  --pass:#2E9E5B; --partial:#E8B21A; --fail:#D3402F; --na:#7A7A7A;
  --pass-t:#E6F2EA; --partial-t:#FBF2D9; --fail-t:#F9E4E1;
  color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
:root[data-theme="dark"]{--bg:#000;--surface:#161616;--ink:#FFF;--muted:#A3A3A3;--line:#2C2C2C;--soft:#242424;--pass-t:#0F2A1A;--partial-t:#2E2508;--fail-t:#311210;color-scheme:dark}
.theme-btn{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0}
.theme-btn svg{width:17px;height:17px}
.guide-btn{color:var(--ink);text-decoration:none;font-weight:900;font-size:17px;line-height:1}
.guide-ov{position:fixed;inset:0;z-index:50;background:var(--surface);padding-top:env(safe-area-inset-top,0px)}
.guide-ov iframe{display:block;width:100%;height:100%;border:0;background:var(--bg)}
html.ov-open,html.ov-open body{overflow:hidden}
.top-right{display:flex;align-items:center;gap:8px}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 96px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Neue Haas","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.4;-webkit-text-size-adjust:100%}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}
button,select,textarea,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.wrap{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line);padding:12px 16px}
.top-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.top-title{font-weight:800;font-size:16px;line-height:1.1;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.top-sub{font-size:12px;color:var(--muted);font-weight:500}
.pill{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px;padding:6px 11px;border-radius:999px;background:var(--soft);white-space:nowrap}
.pill i{width:9px;height:9px;border-radius:50%;background:var(--na)}
.pill.green{background:var(--pass-t)} .pill.green i{background:var(--pass)}
.pill.yellow{background:var(--partial-t)} .pill.yellow i{background:var(--partial)}
.pill.red{background:var(--fail-t)} .pill.red i{background:var(--fail)}
.prog{display:flex;gap:3px;margin-top:11px}
.prog button{flex:1;height:5px;border-radius:3px;background:var(--soft);border:0;padding:0;cursor:pointer}
.prog button.done{background:var(--ink)} .prog button.cur{background:var(--ink);opacity:.45}
.prog button:disabled{cursor:default}
main{flex:1}
.pad{padding:20px 16px}
h1{font-size:22px;line-height:1.15;font-weight:800;text-transform:uppercase;margin:0 0 6px}
.muted{color:var(--muted)} .small{font-size:13px}
.sec-n{font-size:13px;color:var(--muted);font-weight:600;margin:0 0 4px}
.started{margin:6px 0 0}
.field{margin-top:22px}
.field > label,.field > .lbl{display:block;font-weight:700;font-size:14px;margin-bottom:8px}
select,.txt{width:100%;padding:13px 12px;border-radius:10px;border:1.5px solid var(--line);background-color:var(--surface);font-size:15px}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.txt{margin-top:10px}
.linkbtn{background:none;border:0;padding:0;color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:13px}
.stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;width:max-content;background:var(--surface);overflow:hidden}
.stepper button{width:48px;height:46px;border:0;background:transparent;font-size:20px;font-weight:600;cursor:pointer}
.stepper output{min-width:44px;text-align:center;font-weight:700;font-size:17px}
.info{margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:13px}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.seg button{padding:12px 0;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);font-weight:600;font-size:14px;cursor:pointer}
.seg button.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.seg button.on[data-v="pass"]{background:var(--pass);border-color:var(--pass);color:#fff}
.seg button.on[data-v="partial"]{background:var(--partial);border-color:var(--partial);color:#000}
.seg button.on[data-v="fail"]{background:var(--fail);border-color:var(--fail);color:#fff}
.seg button.on[data-v="na"]{background:var(--na);border-color:var(--na);color:#fff}
.list{border-top:1px solid var(--line)}
.cp{background:var(--surface);padding:16px 16px 18px;border-bottom:1px solid var(--line);box-shadow:inset 4px 0 0 transparent}
.cp[data-state="pass"]{box-shadow:inset 4px 0 0 var(--pass)}
.cp[data-state="partial"]{box-shadow:inset 4px 0 0 var(--partial)}
.cp[data-state="fail"]{box-shadow:inset 4px 0 0 var(--fail)}
.cp[data-state="na"]{box-shadow:inset 4px 0 0 var(--na)}
.cp.err{background:var(--fail-t)}
.cp-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.cp h3{margin:0;font-size:16px;font-weight:700;line-height:1.3}
.code{font-weight:700;font-size:12px;color:var(--muted);margin-right:6px}
.wt{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}
.prio{display:inline-block;margin-left:6px;font-size:.9em;line-height:1;color:var(--ink)}
.star-keep{white-space:nowrap}  /* last word + ★ wrap together */
.cp-toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit}
.cp-toggle .chev{flex-shrink:0;width:20px;height:20px;color:var(--muted);transition:transform .15s;margin-top:1px}
.cp-toggle[aria-expanded="true"] .chev{transform:rotate(180deg)}
.desc{margin:8px 0 0;font-size:13px;color:var(--muted)}
.cp-text{margin:0;font-size:16px;line-height:1.4;font-weight:400;color:var(--ink)}
.cp-text b{font-weight:700}
@media (prefers-reduced-motion: reduce){.cp-toggle .chev{transition:none}}
.last{margin-top:8px;font-size:12px;line-height:1.4;font-weight:400;color:var(--muted)}
.last .dot{display:inline-block;width:6px;height:6px;border-radius:50%;opacity:.7;margin-right:6px;vertical-align:.1em}
.cp .seg{margin-top:12px}
.tags-lbl{font-size:12.5px;font-weight:700;margin-top:14px}
.rule-note{margin:8px 0 0;font-size:12.5px;color:var(--muted)}
.rule-note.hit{color:var(--fail);font-weight:700}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.chip{border:1.5px solid var(--line);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:500;background:transparent;cursor:pointer}
.chip.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.near{margin-top:10px}
.near .tags{margin-top:6px}
.near-note{margin:8px 0 0;font-size:13px;color:var(--muted)}
.far{margin-top:10px;padding:10px 14px;border-radius:10px;background:var(--partial-t);border:1px solid var(--partial);font-size:13px}
textarea{width:100%;min-height:76px;margin-top:12px;padding:11px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);resize:vertical;font-size:14px;line-height:1.4}
.cp-tools{display:flex;gap:16px;align-items:center;margin-top:12px;flex-wrap:wrap}
.addph{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;cursor:pointer;padding:8px 12px;border-radius:999px;border:1.5px dashed var(--line);position:relative}
.addph input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.thumbs figure{margin:0;position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--soft)}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.thumbs button{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:14px;line-height:22px;padding:0;cursor:pointer}
.errmsg{color:var(--fail);font-size:13px;font-weight:700;margin-top:10px}
.skip{padding:14px 16px;font-size:13px;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line)}
.secph{padding:18px 16px 24px}
.secph .lbl{font-weight:700;font-size:14px;margin-bottom:4px}
.banner{margin:14px 16px 0;padding:12px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:13px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.banner.bad{border-color:var(--fail);background:var(--fail-t)}
.nav{position:sticky;bottom:0;z-index:4;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:10px}
.btn{flex:1;border:0;border-radius:12px;padding:15px 16px;font-weight:700;font-size:15px;background:var(--ink);color:var(--surface);cursor:pointer}
.btn.ghost{flex:0 0 auto;background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn:disabled{opacity:.5}
.center{min-height:70vh;display:flex;flex-direction:column;justify-content:center;padding:24px 20px}
.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--soft);border-top-color:var(--ink);animation:spin .9s linear infinite;margin-bottom:18px}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.spinner{animation-duration:3s}}
.bar{height:8px;border-radius:4px;background:var(--soft);overflow:hidden;margin-top:14px}
.bar span{display:block;height:100%;background:var(--ink)}
.hero{padding:26px 16px 22px;background:var(--surface);border-bottom:1px solid var(--line)}
.ok{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--pass);margin-bottom:14px}
.score{font-size:84px;font-weight:800;line-height:.95;letter-spacing:-.02em}
.zone{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-weight:800;font-size:15px;padding:7px 13px;border-radius:999px}
.zone.green{background:var(--pass-t)} .zone.yellow{background:var(--partial-t)} .zone.red{background:var(--fail-t)}
.zone i{width:10px;height:10px;border-radius:50%}
.zone.green i{background:var(--pass)} .zone.yellow i{background:var(--partial)} .zone.red i{background:var(--fail)}
.cap{margin-top:12px;font-size:13px;font-weight:600;color:var(--fail)}
.block{padding:22px 16px 6px}
.block h2{font-size:15px;font-weight:800;text-transform:uppercase;margin:0 0 12px}
.issue{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:8px}
.issue-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.issue h4{margin:0;font-size:14px;font-weight:700}
.badges{display:flex;gap:6px;flex-shrink:0}
.badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.badge.partial{background:var(--partial);color:#000} .badge.fail{background:var(--fail);color:#fff} .badge.rep{background:var(--ink);color:var(--surface)}
.badge.crit{background:var(--fail);color:#fff}
.rep-box{margin:0 16px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface)}
.rep-box.crit{border-color:var(--fail);background:var(--fail-t)}
.rep-box{font-size:14px;line-height:1.4}
.rep-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.rep-row:first-of-type{border-top:0}
.rep-row b{font-weight:700}
.issue p{margin:6px 0 0;font-size:13px}
.hist{margin-top:28px}
.hist-row{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:2px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
.hist-row .small{grid-column:1 / -1}
.nw{white-space:nowrap}
.chk{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--ink)}
.lpick{position:relative}
.lpick-list{position:absolute;z-index:15;left:0;right:0;top:calc(100% + 4px);max-height:min(360px,55vh);overflow-y:auto;background:var(--surface);border:1px solid var(--ink);box-shadow:0 8px 24px rgba(20,20,20,.15)}
.lpick-c{padding:8px 14px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--soft)}
.lpick-o{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:11px 14px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.lpick-o span{font-size:13px;color:var(--muted)}
.lpick-o i{font-style:normal;font-weight:400;color:var(--muted)}
.lpick-o:hover,.lpick-o:focus-visible{background:var(--soft)}
.lpick-o.on{box-shadow:inset 4px 0 0 var(--accent)}
.lpick-none{margin:0;padding:12px 14px;font-size:14px;color:var(--muted)}
.typepick{max-width:420px;margin:0 auto}
.typecard{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 12px;width:100%;text-align:left;padding:18px;margin:0 0 10px;background:var(--surface);border:1px solid var(--ink);color:var(--ink);font:inherit;cursor:pointer}
.typecard b{font-size:20px;font-weight:900;text-transform:uppercase}
.typecard span{color:var(--muted);font-size:14px;grid-column:1}
.typecard em{grid-column:1;font-style:normal;font-size:12px;font-weight:700;color:var(--accent)}
.typecard .arw{grid-column:2;grid-row:1 / span 3;align-self:center;width:16px;height:13px}
.sec-h2{font-size:22px;font-weight:900;text-transform:uppercase;line-height:1;margin:6px 0 0}
.btn.google{background:var(--surface);color:var(--ink);border:1px solid var(--ink);flex:0 0 auto;width:100%}
.who{margin-top:4px;font-size:13px;color:var(--muted)}
.guest{margin-top:8px;padding:10px 12px;background:var(--partial-t);border:1px solid var(--partial);font-size:13px}
/* ===== v1.9 brand layer: The Miners brand book 2026 + theminers.eu ===== */
:root{
  --bg:#F7F7F7; --surface:#FFFFFF; --ink:#141414; --muted:#6B6B6B; --line:#D9D9D9; --soft:#EDEDED;
  --accent:#FE5000;
  --pass:#BDFF00; --partial:#FEDD00; --fail:#E73C3E; --na:#BFBFBF;
  --pass-t:#F1FFCC; --partial-t:#FFF7C2; --fail-t:#FCE3E3;
  --on-pass:#141414; --on-partial:#141414; --on-fail:#FFFFFF; --on-na:#141414;
}
:root[data-theme="dark"]{
  --bg:#141414; --surface:#1E1E1E; --ink:#F7F7F7; --muted:#A6A6A6; --line:#363636; --soft:#2A2A2A;
  --pass-t:#263000; --partial-t:#332C00; --fail-t:#3A1718;
}
/* square corners everywhere, like theminers.eu */
.theme-btn,.pill,.prog button,select,.txt,.stepper,.info,.seg button,.chip,.far,textarea,.addph,.thumbs figure,
.banner,.btn,.bar,.zone,.issue,.badge,.rep-box{border-radius:0}
/* type */
h1{font-size:32px;line-height:.95;font-weight:900;letter-spacing:-.01em;margin:0 0 10px}
.top-title{font-weight:900;text-transform:uppercase;letter-spacing:-.005em}
.sec-n,.top-sub,.desc,.last,.small{font-weight:400}
.field > label,.field > .lbl,.tags-lbl,.secph .lbl{font-weight:700}
.block h2{font-size:20px;font-weight:900;line-height:1}
.score{font-size:96px;font-weight:900;letter-spacing:-.03em}
/* fields: thin black frame like the site */
select,.txt,textarea,.stepper{border:1px solid var(--ink);background-color:var(--surface)}
.seg button,.chip{border:1px solid var(--line);font-weight:700}
.chip{font-weight:400}
.chip.on{font-weight:700}
.theme-btn{border:1px solid var(--line)}
.addph{border:1px dashed var(--ink)}
.info,.banner,.issue,.rep-box{border:1px solid var(--line)}
/* answers and zones in brand colours */
.seg button.on[data-v="pass"]{background:var(--pass);border-color:var(--pass);color:var(--on-pass)}
.seg button.on[data-v="partial"]{background:var(--partial);border-color:var(--partial);color:var(--on-partial)}
.seg button.on[data-v="fail"]{background:var(--fail);border-color:var(--fail);color:var(--on-fail)}
.seg button.on[data-v="na"]{background:var(--na);border-color:var(--na);color:var(--on-na)}
.cp{box-shadow:inset 6px 0 0 transparent}
.cp[data-state="pass"]{box-shadow:inset 6px 0 0 var(--pass)}
.cp[data-state="partial"]{box-shadow:inset 6px 0 0 var(--partial)}
.cp[data-state="fail"]{box-shadow:inset 6px 0 0 var(--fail)}
.cp[data-state="na"]{box-shadow:inset 6px 0 0 var(--na)}
.pill i,.zone i{display:none}
.pill{background:var(--soft);color:var(--ink)}
.pill.green,.zone.green{background:var(--pass);color:var(--on-pass)}
.pill.yellow,.zone.yellow{background:var(--partial);color:var(--on-partial)}
.pill.red,.zone.red{background:var(--fail);color:var(--on-fail)}
.zone{font-weight:900;text-transform:uppercase;font-size:16px;padding:8px 14px}
.badge.partial{background:var(--partial);color:var(--on-partial)}
.badge.fail,.badge.crit{background:var(--fail);color:var(--on-fail)}
.ok{color:var(--ink)}
/* progress: done = ink, current = accent */
.prog{gap:2px}
.prog button{height:4px}
.prog button.cur{background:var(--accent);opacity:1}
/* buttons: black, bold, brand arrow */
.btn{font-weight:700;font-size:16px;padding:16px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px}
.btn.ghost{border:1px solid var(--ink)}
.btn.ghost[data-act="back"]{min-width:58px;padding:16px}
.arw{width:14px;height:11px;fill:currentColor;flex-shrink:0}
.arw-right{transform:rotate(90deg)}
.arw-left{transform:rotate(-90deg)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* back to the top of the page, like theminers.eu */
.totop{position:fixed;right:16px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:6;width:48px;height:48px;border-radius:50%;border:0;
  background:var(--ink);color:var(--surface);display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 4px 14px rgba(20,20,20,.25);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .15s,transform .15s}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop svg{width:18px;height:15px;fill:currentColor}
@media (min-width:600px){.totop{right:calc(50% - 280px + 16px)}}
@media (prefers-reduced-motion: reduce){.totop{transition:none}}
/* Small one-purpose classes that replace style="..." in the form's HTML templates (the CSP blocks inline styles).
   !important keeps them as strong as the inline styles they replace. */
.u-m0{margin:0!important} .u-mb8{margin:0 0 8px!important} .u-mb10{margin:0 0 10px!important}
.u-mb18{margin:0 0 18px!important} .u-mb22{margin:0 0 22px!important}
.u-mt8{margin-top:8px!important} .u-mt14{margin-top:14px!important} .u-mt16{margin-top:16px!important} .u-mt18{margin-top:18px!important}
.u-mt22{margin-top:22px!important} .u-mt24{margin-top:24px!important} .u-mt28{margin-top:28px!important}
.u-pb0{padding-bottom:0!important} .u-pb6{padding-bottom:6px!important} .u-pb16{padding-bottom:16px!important}
.u-w100{width:100%!important} .u-minw0{min-width:0!important}
.u-fw600{font-weight:600!important} .u-lbl14{font-weight:700!important;font-size:14px!important} .u-ink{color:var(--ink)!important}
.seg.seg-1{grid-template-columns:1fr} .seg.seg-2{grid-template-columns:repeat(2,1fr)} .seg.seg-3{grid-template-columns:repeat(3,1fr)} .seg.seg-4{grid-template-columns:repeat(4,1fr)}
.last .dot.pass{background:var(--pass)} .last .dot.partial{background:var(--partial)} .last .dot.fail{background:var(--fail)} .last .dot.na{background:var(--na)}
