:root { --maroon: #800000; --ink: #222; --muted: #666; --line: #ddd; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--ink); line-height: 1.5; }
header.site, footer.site, main { max-width: 900px; margin: 0 auto; padding: 1rem; }
header.site { display: flex; align-items: baseline; gap: 1rem; border-bottom: 3px solid var(--maroon); }
.brand { font-weight: 700; font-size: 1.25rem; color: var(--maroon); text-decoration: none; }
.tag { color: var(--muted); font-size: 0.9rem; }
footer.site { color: var(--muted); font-size: 0.85rem; border-top: 1px solid var(--line); margin-top: 2rem; }
h1 { margin-top: 0.5rem; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--line); }
button, .button { background: var(--maroon); color: #fff; border: 0; padding: 0.4rem 0.8rem; border-radius: 4px; cursor: pointer; }
.banner { padding: 0.6rem 1rem; border-radius: 4px; margin: 1rem 0; }
.banner.warn { background: #fff4c2; border: 1px solid #e0c200; }
.banner.ok { background: #e6f4ea; border: 1px solid #7bbf8e; }
.who { margin-left: auto; font-size: 0.9rem; }
.badge { background: var(--maroon); color: #fff; font-size: 0.75rem; padding: 0.1rem 0.4rem; border-radius: 3px; }
label { display: block; margin: 0.6rem 0; }
input[type=text], input[type=number] { width: 100%; padding: 0.4rem; border: 1px solid var(--line); border-radius: 4px; }
input[readonly] { background: #f4f4f4; }
button.secondary { background: #777; }
td.actions { white-space: nowrap; }
