:root{--accent:#2563EB;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc;--card:#fff;--bad:#b91c1c;--good:#15803d}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--card);border-bottom:3px solid var(--accent)}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--ink);text-decoration:none}
.logo{height:36px;width:auto}
nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
nav a{color:var(--ink);text-decoration:none}nav a:hover{color:var(--accent)}
main{max-width:960px;margin:1.5rem auto;padding:0 1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1rem}
.narrow{max-width:440px;margin:2rem auto}
h1{font-size:1.5rem;margin:0 0 1rem}h2{font-size:1.15rem}
label{display:block;margin:.75rem 0;font-weight:600;font-size:.95rem}
input{display:block;width:100%;margin-top:.3rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;font:inherit}
button,.button{display:inline-block;margin-top:.75rem;padding:.6rem 1.1rem;border:0;border-radius:8px;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
button.link{background:none;color:var(--muted);padding:0;margin:0;font-weight:400}
form.inline{display:inline;margin:0}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.85rem;color:var(--muted);font-weight:600}
.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Consolas,monospace;word-break:break-all}
.errors{background:#fef2f2;border:1px solid #fecaca;color:var(--bad);border-radius:8px;padding:.5rem 1rem;margin-bottom:1rem}
.ok{color:var(--good);font-weight:600}
dl{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem}dt{color:var(--muted)}dd{margin:0}
footer{max-width:960px;margin:2rem auto;padding:0 1rem 2rem;color:var(--muted);font-size:.8rem}
@media (max-width:600px){table{font-size:.9rem}th,td{padding:.5rem}}
select{display:block;width:100%;margin-top:.3rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}
label.check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400}
label.check input{width:auto;margin-top:.35rem}
.notice{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.6rem 1rem;margin-bottom:1rem}
.bad{color:var(--bad)}
.tally{display:flex;gap:.5rem;flex-wrap:wrap}
.pill{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}
.pill.FAIL{background:#fee2e2;color:#991b1b}.pill.WARN{background:#fef3c7;color:#92400e}
.pill.PASS{background:#dcfce7;color:#166534}.pill.UNKNOWN{background:#e2e8f0;color:#334155}
ul.findings{list-style:none;padding:0;margin:0}
.finding{border-top:1px solid var(--line);padding:.85rem 0}
.finding p{margin:.35rem 0}.fix{background:var(--bg);border-radius:6px;padding:.4rem .6rem}
ul.steps{padding-left:1.1rem}ul.steps li{margin:.35rem 0}
body.print{max-width:900px;margin:1.5rem auto;padding:0 1rem;background:#fff}
.printhead{display:flex;gap:.75rem;align-items:center;border-bottom:3px solid var(--accent);padding-bottom:.6rem;margin-bottom:1rem}
@media print{.pill{border:1px solid #999}a{color:inherit;text-decoration:none}}
button.danger{background:#fff;color:var(--bad);border:1px solid #fecaca}
