:root { --bg:#fbfaf7; --fg:#1d1d1f; --muted:#5b5b63; --card:#ffffff; --line:#e6e3dc; --accent:#3b5bdb; --accent-fg:#fff; --warn:#b35c00; --warn-bg:#fff4e5; --code:#f3f1ec; }
@media (prefers-color-scheme: dark) { :root { --bg:#141416; --fg:#f2f2f3; --muted:#a3a3ad; --card:#1d1d21; --line:#2c2c33; --accent:#6f8cff; --accent-fg:#0d1020; --warn:#ffb15c; --warn-bg:#2a2116; --code:#25252b; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
.wrap { max-width:1040px; margin:0 auto; padding:0 16px; }
header { padding:20px 0; display:flex; justify-content:space-between; align-items:center; }
a { color:var(--accent); }
.brand { font-weight:700; letter-spacing:-.01em; color:var(--fg); text-decoration:none; }
.quiet { color:var(--muted); font-size:14px; }
.hero { padding:40px 0 16px; }
.eyebrow { color:var(--accent); font-weight:600; font-size:14px; text-transform:uppercase; letter-spacing:.06em; }
h1 { font-size:clamp(30px,5vw,46px); line-height:1.1; letter-spacing:-.02em; margin:12px 0 16px; max-width:20ch; }
h2 { font-size:22px; margin:40px 0 14px; letter-spacing:-.01em; }
h3 { font-size:17px; margin:0 0 8px; }
.sub { font-size:19px; color:var(--muted); max-width:60ch; margin:0 0 24px; }
.muted { color:var(--muted); font-weight:400; font-size:.8em; }
.fine { font-size:13px; color:var(--muted); }
.actions { display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; }
button, .button { display:inline-block; padding:11px 18px; border:1px solid var(--accent); border-radius:10px; background:var(--accent); color:var(--accent-fg); font:600 15px/1.2 inherit; font-family:inherit; cursor:pointer; text-decoration:none; }
button.secondary, .button.secondary { background:transparent; color:var(--accent); }
button.link { background:none; border:0; padding:0; color:var(--accent); text-decoration:underline; font-weight:600; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:16px; }
.grid.two { grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr)); }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px; min-width:0; }
.card p { margin:0 0 10px; }
.tag { display:inline-block; font-size:12px; font-weight:500; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:1px 8px; margin-left:4px; vertical-align:middle; }
pre { background:var(--code); border-radius:8px; padding:10px 12px; overflow-x:auto; font-size:12.5px; margin:0 0 10px; }
code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.92em; }
.drop { display:block; position:relative; border:2px dashed var(--line); border-radius:14px; padding:36px 20px; text-align:center; background:var(--card); cursor:pointer; color:var(--muted); }
.drop.over, .drop:focus-within { border-color:var(--accent); color:var(--fg); }
.drop input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.filelist { list-style:none; padding:0; margin:12px 0 0; }
.filelist li { display:flex; gap:10px; align-items:baseline; padding:6px 0; border-bottom:1px solid var(--line); font-size:14px; flex-wrap:wrap; }
.filelist .kind { font-weight:600; }
.filelist .err { color:var(--warn); }
.filelist button { margin-left:auto; padding:2px 8px; font-size:13px; background:transparent; color:var(--muted); border-color:var(--line); }
.banner { background:var(--warn-bg); color:var(--fg); border:1px solid var(--warn); border-radius:10px; padding:10px 14px; margin:24px 0 0; font-size:14px; }
.tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.tile { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 16px; }
.tile .v { font-size:28px; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.tile .l { color:var(--muted); font-size:13px; }
.findings { padding-left:20px; margin:20px 0; }
.findings li { margin:6px 0; }
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr)); gap:24px; margin:12px 0 24px; }
.scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:14px; font-variant-numeric:tabular-nums; }
th, td { text-align:right; padding:7px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
th:first-child, td:first-child { text-align:left; white-space:normal; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:600; }
th.t, td.t { text-align:left; white-space:normal; }
td .email { display:block; color:var(--muted); font-size:12.5px; }
td.flags { text-align:left; color:var(--warn); font-size:13px; white-space:normal; }
tr.sum td { font-weight:700; }
td.empty { text-align:left; color:var(--muted); }
details { margin:24px 0; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 16px; }
summary { cursor:pointer; font-weight:600; }
.form { display:flex; flex-wrap:wrap; gap:12px 20px; margin:8px 0 16px; }
.form label { display:flex; flex-direction:column; font-size:13px; color:var(--muted); gap:4px; }
input[type=number], input[type=email] { font:inherit; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--fg); width:150px; }
input[type=email] { width:240px; }
.method { color:var(--muted); font-size:14px; margin-top:24px; }
.method ul { padding-left:20px; }
.cta { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:16px; margin:40px 0; }
footer { padding:24px 0 48px; color:var(--muted); font-size:13px; border-top:1px solid var(--line); }
.printonly { display:none; }
@media print {
  :root { --bg:#fff; --fg:#000; --card:#fff; --line:#ccc; --muted:#444; }
  .no-print, header, .hero, #files, #files + section, footer, .banner { display:none !important; }
  .printonly { display:block; font-size:12px; color:#444; margin-top:24px; }
  h2 { margin-top:0; }
}
