:root { --bg:#faf8f6; --fg:#2b2020; --muted:#7a6a6a; --line:#e6dede; --accent:#7b1e3a; --bad:#b3261e; --warn:#a15c00; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.55 system-ui, -apple-system, "Segoe UI", sans-serif; background:var(--bg); color:var(--fg); }
header { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; padding:12px 16px; background:var(--accent); color:#fff; }
header nav a { color:#fff; margin-left:14px; text-decoration:none; }
main { max-width:1000px; margin:0 auto; padding:16px; }
a { color:var(--accent); }
table { width:100%; border-collapse:collapse; margin:12px 0; background:#fff; display:block; overflow-x:auto; }
th, td { border:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
th { background:#f1ebeb; }
tr.bad td { background:#fdecea; }
.alert { padding:10px 12px; border-radius:6px; margin:12px 0; }
.alert.bad { background:#fdecea; color:var(--bad); }
.alert.warn { background:#fff4e0; color:var(--warn); }
.warn-t { color:var(--warn); font-weight:600; }
.report h1 { font-size:1.5em; } .report h2 { border-bottom:2px solid var(--line); padding-bottom:4px; margin-top:28px; }
.report blockquote { margin:0; padding:8px 12px; background:#fff4e0; border-left:4px solid var(--warn); }
.report code { background:#f1ebeb; padding:1px 4px; border-radius:3px; }
body.login { display:flex; min-height:100vh; align-items:center; justify-content:center; padding:16px; }
body.login form { background:#fff; padding:24px; border-radius:10px; border:1px solid var(--line); width:100%; max-width:340px; }
label { display:block; margin:10px 0; } input { width:100%; padding:8px; margin-top:4px; border:1px solid var(--line); border-radius:6px; font:inherit; }
button { width:100%; padding:10px; background:var(--accent); color:#fff; border:0; border-radius:6px; font:inherit; cursor:pointer; margin-top:8px; }
