:root { --bg:#fbfaf7; --fg:#1d1c1a; --muted:#6b675f; --line:#e3dfd6; --panel:#fff; --accent:#2f5d50; --warn:#9a5b00; --bad:#a3271f; --good:#2c6e2f; }
@media (prefers-color-scheme: dark) { :root { --bg:#161614; --fg:#ece9e2; --muted:#a29d93; --line:#34322d; --panel:#1f1e1b; --accent:#7fb8a6; --warn:#e0a54a; --bad:#ee7a70; --good:#86c98a; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; }
main { max-width: 1040px; margin: 0 auto; padding: 24px 16px 64px; }
h1 { font-size: 1.6rem; margin: 0 0 4px; } h2 { font-size: 1.15rem; margin: 28px 0 8px; }
p.lede { color: var(--muted); margin: 0 0 16px; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin: 12px 0; }
label { display: block; font-size: .85rem; color: var(--muted); margin: 8px 0 4px; }
input, select, textarea { font: inherit; color: inherit; background: var(--bg); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; width: 100%; }
textarea { min-height: 140px; font-family: ui-monospace, Menlo, monospace; font-size: 13px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 14px; }
button { font: inherit; border: 1px solid var(--accent); background: var(--accent); color: #fff; border-radius: 6px; padding: 7px 14px; cursor: pointer; margin: 10px 8px 0 0; }
button.ghost { background: transparent; color: var(--accent); }
.tw { overflow-x: auto; } table { border-collapse: collapse; width: 100%; font-size: 13.5px; }
th, td { border-bottom: 1px solid var(--line); padding: 6px 8px; text-align: left; white-space: nowrap; }
th { color: var(--muted); font-weight: 600; }
tr.bad td { color: var(--bad); } tr.warn td { color: var(--warn); } tr.total td { font-weight: 700; }
ul.flags { padding-left: 18px; } ul.flags li.bad { color: var(--bad); } ul.flags li.warn { color: var(--warn); } ul.flags li.info { color: var(--muted); }
.ok { color: var(--good); }
.stats { display: flex; flex-wrap: wrap; gap: 12px; } .stat { flex: 1 1 160px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: var(--panel); }
.stat b { display: block; font-size: 1.25rem; } .stat span { color: var(--muted); font-size: .85rem; }
.disclaimer { font-size: .85rem; color: var(--muted); border-top: 1px solid var(--line); margin-top: 32px; padding-top: 12px; }
a { color: var(--accent); }
@media print { button, .noprint { display: none; } body { background: #fff; color: #000; } }
