:root { --fg:#1c1c1e; --muted:#6b6b70; --line:#e3e3e6; --bg:#fafafa; --card:#fff; --accent:#c4620a; --high:#b3261e; --medium:#a15c00; --info:#3a5a8c; --ok:#2e7d32; }
* { box-sizing: border-box; }
html, body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.wrap { max-width: 960px; margin: 0 auto; padding: 0 16px; }
header.top { background:#fff; border-bottom:1px solid var(--line); padding:12px 0; margin-bottom:20px; }
footer { margin:32px auto; }
h1 { font-size:26px; margin:0 0 8px; } h2 { font-size:18px; margin:0 0 12px; }
.muted { color:var(--muted); } .small { font-size:13px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:18px 20px; margin:16px 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:18px; }
.grid > div { display:flex; flex-direction:column; gap:8px; }
.field-title { font-weight:600; } .req, .opt { font-weight:400; font-size:12px; color:var(--muted); }
select, input[type=number] { font:inherit; padding:4px 6px; border:1px solid var(--line); border-radius:6px; margin-left:4px; }
.year { width:90px; }
button { font:inherit; padding:7px 14px; border:1px solid var(--line); background:#fff; border-radius:7px; cursor:pointer; }
button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
button:disabled { opacity:.5; cursor:default; }
button.link { border:none; background:none; color:var(--info); padding:0 4px; text-decoration:underline; }
.actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:14px; }
.files { list-style:none; padding:0; margin:14px 0 0; } .files li { padding:3px 0; }
.tag { display:inline-block; font-size:11px; text-transform:uppercase; letter-spacing:.04em; background:#f0f0f2; border-radius:4px; padding:1px 6px; margin-right:4px; }
.badge.provisional { background:#fff3e0; color:var(--medium); border:1px solid #f3c98b; border-radius:4px; font-size:11px; padding:0 6px; margin-left:6px; }
.privacy { display:flex; align-items:center; gap:8px; color:var(--muted); }
.dot { width:9px; height:9px; border-radius:50%; background:#bbb; display:inline-block; } .dot.ok { background:var(--ok); }
details.parsed { border-top:1px solid var(--line); padding:8px 0; } details.parsed summary { cursor:pointer; }
table { border-collapse:collapse; } td, th { text-align:left; padding:3px 12px 3px 0; vertical-align:top; }
.mapping { margin:8px 0 4px; } .mapping th { color:var(--muted); font-weight:500; }
.kv td:last-child { text-align:right; font-variant-numeric:tabular-nums; } .kv tr.hl td { color:var(--high); font-weight:600; }
.stats { display:flex; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.stat { flex:1; min-width:140px; border-radius:8px; padding:10px 14px; border:1px solid var(--line); }
.stat b { display:block; font-size:24px; } .stat span { font-size:13px; color:var(--muted); }
.stat.high b { color:var(--high); } .stat.medium b { color:var(--medium); } .stat.info b { color:var(--info); }
.filters { margin-bottom:10px; } .chip { padding:2px 10px; border-radius:999px; font-size:13px; margin-left:4px; } .chip.on { background:var(--fg); color:#fff; border-color:var(--fg); }
.issue { border:1px solid var(--line); border-left:4px solid var(--info); border-radius:8px; padding:10px 14px; margin:10px 0; }
.issue.high { border-left-color:var(--high); } .issue.medium { border-left-color:var(--medium); }
.issue header { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.issue .sev { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.issue.high .sev { color:var(--high); } .issue.medium .sev { color:var(--medium); } .issue.info .sev { color:var(--info); }
.issue .title { font-weight:600; flex:1; } .issue .amt { font-variant-numeric:tabular-nums; }
.issue p { margin:6px 0; } .fix { background:#f6f6f8; padding:6px 10px; border-radius:6px; }
.warn { color:var(--medium); margin:4px 0; } .error { color:var(--high); }
.booting { padding:40px; text-align:center; color:var(--muted); }
#blazor-error-ui { background:#fff3cd; bottom:0; display:none; left:0; padding:10px 16px; position:fixed; width:100%; z-index:1000; }
code { font-size:12px; background:#f0f0f2; padding:0 3px; border-radius:3px; }
