:root { --brand:#1f3a5f; --line:#dee2e6; --muted:#6c757d; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 -apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:#212529; background:#f6f7f9; }
header { background:var(--brand); color:#fff; padding:14px 24px; display:flex; gap:16px; align-items:baseline; flex-wrap:wrap; }
header b { font-size:20px; } header .muted { color:#cfd8e3; }
main { max-width:1100px; margin:22px auto; padding:0 16px; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 20px; margin-bottom:16px; }
h2 { margin:0 0 8px; font-size:17px; } h3 { font-size:14px; margin:16px 0 6px; } .muted { color:var(--muted); } .small { font-size:13px; } .hidden { display:none !important; }
.row { display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin:10px 0; }
.btn { background:var(--brand); color:#fff; border:1px solid var(--brand); border-radius:6px; padding:8px 14px; cursor:pointer; font:inherit; display:inline-block; text-decoration:none; }
.btn.secondary { background:#fff; color:var(--brand); } .btn.file input { display:none; }
.chip { display:inline-block; padding:4px 10px; border:1px solid var(--brand); color:var(--brand); border-radius:14px; cursor:pointer; font-size:13px; background:#fff; }
label { font-size:14px; } label.inline { margin-right:6px; } input[type=text], select { font:inherit; padding:5px 8px; border:1px solid #ced4da; border-radius:6px; }
.info { min-height:1.4em; } .info.err { color:#b02a37; } .info.ok { color:#0f5132; }
.file { margin:10px 0; } .file b { display:block; margin-bottom:4px; }
table { border-collapse:collapse; width:100%; font-size:13px; } th { text-align:left; background:#f1f3f5; padding:5px 8px; border-bottom:1px solid var(--line); } td { padding:4px 8px; border-bottom:1px solid #f0f1f3; vertical-align:top; }
.tbl { overflow:auto; max-height:320px; border:1px solid var(--line); border-radius:6px; }
.stats { display:flex; gap:10px; flex-wrap:wrap; margin:8px 0 12px; } .stat { border:1px solid var(--line); border-radius:8px; padding:8px 14px; min-width:130px; } .stat b { display:block; font-size:20px; }
code { background:#f1f3f5; padding:1px 5px; border-radius:4px; } pre { background:#f1f3f5; padding:12px; border-radius:8px; overflow:auto; font-size:12.5px; }
footer { text-align:center; padding:20px; font-size:13px; }
