:root { --navy:#0f1f3d; --blue:#2563eb; --white:#fff; --border:#e5e7eb; --muted:#526176; --bg:#fafafa; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:#1a1f2e; font:400 14px/1.6 Inter,system-ui,sans-serif; }
[hidden] { display:none !important; }
main { max-width:1200px; margin:auto; padding:32px 40px 64px; }
h1 { font:700 2rem/1.2 'Playfair Display',Georgia,serif; color:var(--navy); margin:0 0 12px; }
h2 { font-size:1.15rem; color:var(--navy); margin:0 0 16px; }
h3 { font-size:.88rem; margin:20px 0 8px; }
p { margin:8px 0 16px; }
.eyebrow { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:.75rem; margin-bottom:8px; }
.intro { max-width:850px; }
.privacy-note { border-left:3px solid var(--blue); padding:12px 16px; background:#eff6ff; }
.section { margin-top:28px; }
.source-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.card { border:1px solid var(--border); border-radius:6px; background:white; padding:22px; min-width:0; }
.file-info { overflow-wrap:anywhere; min-height:48px; }
label { display:block; font-weight:500; margin-bottom:6px; }
input,select,button { font:inherit; max-width:100%; }
input[type=file] { width:100%; padding:8px 0; }
input[type=file]::file-selector-button,button { border:1px solid #c3cbd6; border-radius:4px; background:white; color:var(--navy); padding:8px 14px; cursor:pointer; }
input[type=file]::file-selector-button { margin-right:10px; }
button.primary { background:var(--blue); color:white; border-color:var(--blue); }
button:disabled { cursor:not-allowed; opacity:.55; }
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,.table-wrap:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.options,.filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.filters { grid-template-columns:180px minmax(180px,1fr) minmax(240px,2fr); }
select,input[type=search] { width:100%; min-height:40px; padding:8px; border:1px solid #c3cbd6; border-radius:4px; background:white; }
.actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:20px; }
.subtle { color:var(--muted); font-size:.82rem; }
#status { margin:16px 0 8px; }
#error { border-left:3px solid #b42318; background:#fff1f0; padding:12px 16px; color:#7a271a; }
.source-facts { display:grid; grid-template-columns:135px minmax(0,1fr); gap:6px 12px; font-size:.82rem; }
dt { color:var(--muted); } dd { margin:0; overflow-wrap:anywhere; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border); border-radius:6px; background:white; margin-bottom:20px; }
.metrics div { padding:16px; } .metrics strong { display:block; color:var(--navy); font-size:1.6rem; }
.table-wrap { overflow:auto; border:1px solid var(--border); border-radius:6px; background:white; margin-top:16px; }
table { width:100%; min-width:800px; border-collapse:collapse; text-align:left; font-size:.85rem; }
caption { text-align:left; padding:12px 16px; color:var(--muted); }
th { background:#f1f5f9; color:var(--navy); font-weight:600; }
td,th { padding:14px; border-bottom:1px solid var(--border); vertical-align:top; overflow-wrap:anywhere; }
th:nth-child(1) { width:100px; } th:nth-child(2) { width:45%; }
td:nth-child(3) { max-width:210px; } td:nth-child(4) { max-width:220px; }
summary { cursor:pointer; font-weight:500; color:var(--navy); }
pre { white-space:pre-wrap; overflow-wrap:anywhere; max-height:320px; overflow:auto; background:#f8fafc; padding:12px; }
.severity { font-weight:600; border-left:3px solid currentColor; padding-left:8px; display:inline-block; }
.severity-critical { color:#a4262c; }
.severity-warning { color:#865600; }
.severity-info { color:#40566f; }
.finding-details > summary { line-height:1.5; }
.finding-details h3 { margin:10px 0 4px; font-size:.8rem; font-weight:600; }
.finding-details p { margin:6px 0 8px; }
.finding-evidence { display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,2fr); gap:3px 12px; margin:4px 0 8px; }
.finding-evidence dd { white-space:pre-wrap; }
.technical-details { border-top:1px solid var(--border); padding-top:10px; margin-top:12px; }
.technical-details > summary { color:var(--muted); font-size:.8rem; }
.technical-details pre { margin:8px 0 0; font-size:.78rem; }
.pagination { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:16px; }
.limitations { color:var(--muted); border-top:1px solid var(--border); margin-top:32px; padding-top:20px; }
@media(max-width:1024px) { main { padding-left:24px; padding-right:24px; } .options { grid-template-columns:1fr 1fr; } }
@media(max-width:700px) { .source-grid,.filters { grid-template-columns:1fr; } .metrics { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) { main { padding:24px 20px 48px; } .card { padding:16px; } .options { grid-template-columns:1fr; } .source-facts { grid-template-columns:1fr; } dd { margin-bottom:8px; } }
