* { box-sizing:border-box; margin:0; padding:0 }
body { font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; background:#f3f4f6; color:#1f2933; }
.top { background:#0b3d6b; color:#fff; padding:18px 48px; display:flex; justify-content:space-between; align-items:center; }
.top .logo { font-weight:800; letter-spacing:0.08em; font-size:20px; }
.top .logo span { font-weight:400; opacity:.8; margin-left:14px; font-size:15px; letter-spacing:0; }
.top nav { font-size:15px; opacity:.9 } .top nav span { margin-left:26px; }
.crumb { padding:14px 48px; font-size:14px; color:#5b6670; background:#fff; border-bottom:1px solid #e3e6ea }
main { padding:34px 48px 40px; display:grid; grid-template-columns: minmax(0,1fr) 340px; gap:36px; max-width:1240px; margin:0 auto }
@media (max-width: 900px) { main { grid-template-columns: 1fr; padding:20px 16px } .top, .crumb { padding-left:16px; padding-right:16px } .top nav { display:none } }
h1 { font-size:30px; margin-bottom:8px; color:#0b3d6b }
h2 { font-size:19px; margin:22px 0 6px; color:#0b3d6b }
.lead { color:#4a5560; font-size:16px; line-height:1.5; margin-bottom:22px; max-width:720px }
.card { background:#fff; border:1px solid #e3e6ea; border-radius:8px; padding:24px 26px; margin-bottom:22px }
.card.error { border-color:#b3261e; background:#fff6f5; color:#6b1a14 }
.source { border:0; display:flex; gap:22px; flex-wrap:wrap; margin-bottom:16px; font-size:15px }
.source label { display:flex; gap:8px; align-items:center }
.drop { border:2px dashed #b9c2cc; border-radius:8px; padding:16px 18px; display:flex; gap:16px; align-items:center; margin-bottom:12px; background:#fafbfc }
.drop .ic { width:42px; height:42px; border-radius:8px; background:#e8eef5; display:flex; align-items:center; justify-content:center; font-size:20px; color:#0b3d6b; flex:none }
.drop > div:nth-child(2) { flex:1; min-width:0 }
.drop b { display:block; font-size:16px } .drop small { display:block; color:#5b6670; font-size:13px; margin-bottom:6px }
.drop input[type=file] { font-size:14px; max-width:100% }
.drop .use { font-size:13px; color:#5b6670; white-space:nowrap; display:flex; gap:6px; align-items:center }
.row { display:flex; gap:18px; margin:18px 0; flex-wrap:wrap }
.field { flex:1; min-width:180px } .field label { display:block; font-size:12px; color:#5b6670; margin-bottom:6px; text-transform:uppercase; letter-spacing:.06em }
.field select { width:100%; border:1px solid #c5ccd3; border-radius:6px; padding:10px 12px; font-size:15px; background:#fff }
.btn { display:inline-block; background:#0b3d6b; color:#fff; font-weight:700; padding:12px 24px; border-radius:6px; font-size:16px; border:0; cursor:pointer; text-decoration:none }
.btn.ghost { background:#fff; color:#0b3d6b; border:1px solid #0b3d6b; font-weight:600; font-size:14px; padding:8px 14px }
.consent { font-size:13px; color:#5b6670; line-height:1.5; margin-top:14px } .consent a { color:#0b3d6b }
.samples { font-size:13px; color:#5b6670; line-height:1.6; margin-top:10px } .samples a { color:#0b3d6b }
aside .card h3 { font-size:16px; margin-bottom:8px; color:#0b3d6b }
aside .card p { font-size:14px; color:#4a5560; line-height:1.5 }
.verdict { display:flex; align-items:center; gap:16px; margin-bottom:14px; flex-wrap:wrap }
.badge { font-weight:800; font-size:18px; padding:9px 16px; border-radius:6px; color:#fff; letter-spacing:.03em; background:#5b6670; white-space:nowrap }
.badge.fail { background:#b3261e } .badge.pass { background:#2e7d32 } .badge.pass-with-warnings, .badge.warning { background:#b7791f }
.verdict .what { font-size:14px; color:#4a5560; line-height:1.4 } .verdict .what b { color:#1f2933; display:block; font-size:16px }
table { width:100%; border-collapse:collapse; font-size:14px; margin-top:6px }
th { text-align:left; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:#5b6670; padding:8px 6px; border-bottom:2px solid #e3e6ea }
td { padding:8px 6px; border-bottom:1px solid #eef0f2; vertical-align:top }
td.sev { font-weight:700; white-space:nowrap } td.num { white-space:nowrap } .Major, .Critical { color:#b3261e } .Minor { color:#b7791f } .Warning { color:#8a6d00 } .Info { color:#5b6670 }
td small { display:block; color:#5b6670; font-size:12.5px; line-height:1.4; margin-top:3px }
.none, .muted { color:#5b6670; font-size:14px; line-height:1.5; margin-top:10px }
.section { border-top:1px solid #e3e6ea; margin-top:20px; padding-top:16px }
.foot { margin-top:20px; font-size:13px; color:#5b6670; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap }
.chips span { display:inline-block; background:#eef2f6; border-radius:999px; padding:5px 11px; font-size:13px; margin:4px 6px 0 0; color:#36414b }
/* Without JavaScript: the sample switches show only for sample runs, the
   file fields only for the visitor's own files. */
form:has(input[name=source][value=own]:checked) .drop .use { display:none }
form:has(input[name=source]:not([value=own]):checked) .drop input[type=file] { display:none }
