:root{--bg:#f6f7f9;--surface:#fff;--text:#17202a;--muted:#4b5866;--border:#c9d1da;--brand:#0b4f6c;--on-brand:#fff;--danger:#9b2020;--focus:#0b63ce;--found-bg:#e3e8fb;--found-text:#232d85;--notfound-bg:#e4e9ed;--notfound-text:#2b3640;--lack-bg:#fcefd0;--lack-text:#613f00;--warn-border:#b36b00;--info-border:#7f8b97;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0e1318;--surface:#161c23;--text:#e8edf2;--muted:#a9b4bf;--border:#2f3a45;--brand:#6cbfe0;--on-brand:#06222f;--danger:#ff8f8f;--focus:#7db7ff;--found-bg:#232a55;--found-text:#cdd5ff;--notfound-bg:#26303a;--notfound-text:#d3dbe2;--lack-bg:#3d3010;--lack-text:#ffdfa0;--warn-border:#e0a040;--info-border:#6b7783}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.55}main,.site-header,.site-footer{width:100%;max-width:46rem;margin:0 auto;padding-left:1rem;padding-right:1rem}.site-header{padding-top:1rem;padding-bottom:.5rem}.brand{color:var(--brand);letter-spacing:.01em;font-size:1.15rem;font-weight:700}main{min-height:70vh;padding-top:.5rem;padding-bottom:2rem}.site-footer{color:var(--muted);padding-top:1rem;padding-bottom:2rem;font-size:.9rem}h1{margin:1rem 0 .75rem;font-size:1.75rem;line-height:1.25}h1:focus{outline:none}h2{margin:2rem 0 .75rem;font-size:1.25rem}h3{margin:0;font-size:1.1rem}.lead{color:var(--text);font-size:1.1rem}.meta,.help{color:var(--muted);margin:.4rem 0;font-size:.92rem}.habits{padding-left:1.2rem}.habits li{margin:.25rem 0}.button{border:2px solid var(--brand);background:var(--brand);color:var(--on-brand);font:inherit;cursor:pointer;text-align:center;border-radius:10px;min-height:44px;padding:.7rem 1.1rem;font-weight:600;display:inline-block}.button.secondary{color:var(--brand);background:0 0}.button.danger{border-color:var(--danger);color:var(--danger);background:0 0}.button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--surface);color:var(--text);z-index:10;border-radius:8px;padding:.5rem .75rem;position:absolute;top:-4rem;left:.5rem}.skip-link:focus{top:.5rem}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;margin:1.25rem 0 1rem;padding:1.5rem 1rem}.dropzone.dragging{border-color:var(--brand);background:var(--found-bg)}.dropzone input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}.file-name{overflow-wrap:anywhere;margin:.75rem 0 0}.field{margin:1rem 0}.field label{margin-bottom:.3rem;font-weight:600;display:block}.field input{width:100%;max-width:22rem;min-height:44px;font:inherit;color:var(--text);background:var(--surface);border:2px solid var(--muted);border-radius:8px;padding:.65rem .75rem}.link{color:var(--brand);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.error{color:var(--danger);margin:.75rem 0;font-weight:600}.notice{border-left:4px solid var(--brand);background:var(--surface);border-radius:6px;padding:.6rem .9rem}.privacy,.how-to{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:1.5rem;padding:.9rem 1rem}.privacy h2{margin:0 0 .25rem;font-size:1.05rem}.privacy p{margin:0}.how-to summary{cursor:pointer;font-weight:600}.steps{margin:1.5rem 0;padding:0;list-style:none}.step{color:var(--muted);align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.step.current{color:var(--text);font-weight:600}.step.done{color:var(--text)}.step-mark{border:2px solid var(--border);border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.9rem;line-height:1;display:inline-flex}.step.done .step-mark{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.step.done .step-mark:after{content:"✓"}.step.current .step-mark{border-color:var(--brand);border-top-color:#0000;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.step.current .step-mark{border-top-color:var(--brand);animation:none}}.cards{gap:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.4rem;display:flex}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .65rem;font-size:.85rem;font-weight:700;display:inline-block}.badge.detected{background:var(--found-bg);color:var(--found-text)}.badge.not_detected{background:var(--notfound-bg);color:var(--notfound-text)}.badge.insufficient_data{background:var(--lack-bg);color:var(--lack-text)}.explanation{white-space:pre-line;margin:.75rem 0 .25rem}.metrics{gap:.35rem;margin:.75rem 0;display:grid}.metrics div{border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding-bottom:.3rem;display:flex}.metrics dt{color:var(--muted)}.metrics dd{text-align:right;margin:0;font-weight:700}.evidence summary{cursor:pointer;margin-top:.5rem;font-weight:600}.evidence ul{color:var(--muted);margin:.5rem 0 0;padding-left:1.2rem;font-size:.92rem}.data-notes ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.data-notes li{background:var(--surface);border:1px solid var(--border);border-left-width:4px;border-radius:8px;padding:.6rem .8rem;font-size:.95rem}.data-notes li.warning{border-left-color:var(--warn-border)}.data-notes li.info{border-left-color:var(--info-border)}.disclaimer{margin-top:1.5rem;font-weight:600}.actions,.confirm{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.confirm{background:var(--surface);border:1px solid var(--danger);border-radius:var(--radius);align-items:center;padding:.9rem 1rem}.confirm p{flex-basis:100%;margin:0}@media (width<=30rem){h1{font-size:1.5rem}.actions .button,.confirm .button{flex:100%}}
