:root { --ink:#17203a; --muted:#4c5872; --accent:#0a5830; --accent2:#ecbd49; --bg:#f7f8fa; --card:#fff; --line:#dfe3ea; --bad:#9c2b2b; --ok:#0a5830; }
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color:var(--ink); background:var(--bg); font-size:17px; line-height:1.55; }
.wrap { max-width: 860px; margin: 0 auto; padding: 0 20px 64px; }
header.top { display:flex; justify-content:space-between; align-items:center; padding:18px 0; }
.logo { font-weight:800; font-size:20px; color:var(--ink); text-decoration:none; }
.logo span { color:var(--accent); }
nav a { color:var(--muted); text-decoration:none; margin-left:18px; font-size:15px; }
h1 { font-size:34px; line-height:1.2; margin:14px 0 10px; }
h2 { font-size:23px; margin:34px 0 10px; }
p.lede { font-size:19px; color:var(--muted); }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:24px; margin-top:22px; }
#drop { border:2px dashed #b9c2d4; border-radius:12px; padding:38px 20px; text-align:center; cursor:pointer; background:#fbfcfe; }
#drop.drag { border-color:var(--accent); background:#eef7f1; }
#drop p { margin:6px 0; }
.btn { display:inline-block; background:var(--accent); color:#fff; border:none; border-radius:8px; padding:12px 22px; font-size:16px; font-weight:700; cursor:pointer; text-decoration:none; }
.btn.secondary { background:#fff; color:var(--accent); border:2px solid var(--accent); }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.chip { display:inline-block; padding:5px 12px; border-radius:999px; font-weight:700; font-size:14px; }
.chip.ok { background:#e3f2e8; color:var(--ok); }
.chip.warn { background:#fdf0e2; color:#8a5a00; }
.chip.bad { background:#fbe7e7; color:var(--bad); }
table { border-collapse:collapse; width:100%; font-size:15px; }
th, td { border-bottom:1px solid var(--line); padding:7px 8px; text-align:left; }
td.num, th.num { text-align:right; font-variant-numeric: tabular-nums; }
.small { font-size:14px; color:var(--muted); }
.credits { font-weight:700; }
.hidden { display:none; }
footer { margin-top:48px; border-top:1px solid var(--line); padding-top:18px; font-size:14px; color:var(--muted); }
footer a { color:var(--muted); }
ul.tight li { margin-bottom:6px; }
