:root { --ink:#1c2733; --soft:#52616f; --paper:#fbf9f4; --accent:#31597a; --gold:#b98a2f; --line:#e3ddd1; --ok:#2e6b46; --bad:#9c3232; }
* { box-sizing: border-box; }
body { margin:0; font-family: Georgia, 'Times New Roman', serif; background: var(--paper); color: var(--ink); line-height:1.6; }
.wrap { max-width: 920px; margin: 0 auto; padding: 0 20px; }
header.site { background: var(--ink); color: #f4efe6; padding: 28px 0 22px; }
header.site h1 { margin:0; font-size: 1.5rem; letter-spacing:.04em; }
header.site p { margin:.35rem 0 0; color:#c9bfa8; font-size:.95rem; }
h2 { font-size: 1.25rem; border-bottom: 2px solid var(--line); padding-bottom:.4rem; margin-top: 2.2rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px 20px; margin:14px 0; }
.card h3 { margin:.1rem 0 .3rem; font-size:1.1rem; }
.meta { color: var(--soft); font-size:.88rem; }
.tag { display:inline-block; font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; padding:2px 9px; border-radius:99px; border:1px solid var(--line); color:var(--soft); }
.tag.open { color: var(--ok); border-color: var(--ok); }
.tag.passed { color: var(--ok); border-color: var(--ok); background:#eef6f0; }
.tag.failed { color: var(--bad); border-color: var(--bad); background:#f9eeee; }
.tag.draft { color: var(--gold); border-color: var(--gold); }
button, .btn { font-family: inherit; background: var(--accent); color:#fff; border:0; border-radius:6px; padding:9px 18px; font-size:.95rem; cursor:pointer; }
button:hover { filter: brightness(1.1); }
button.ghost { background:transparent; color: var(--accent); border:1px solid var(--accent); }
button.against { background: var(--bad); }
button.abstain { background: var(--soft); }
input, textarea, select { font-family: inherit; font-size:.95rem; padding:8px 10px; border:1px solid var(--line); border-radius:6px; width:100%; background:#fff; }
label { display:block; margin:.7rem 0 .25rem; font-size:.9rem; color: var(--soft); }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.row > div { flex:1 1 180px; }
.msg { margin-top:.8rem; padding:10px 14px; border-radius:6px; font-size:.92rem; display:none; }
.msg.ok { display:block; background:#eef6f0; color: var(--ok); border:1px solid #cfe5d6; }
.msg.bad { display:block; background:#f9eeee; color: var(--bad); border:1px solid #ecd2d2; }
.msg.warn { display:block; background:#fdf6e7; color:#7a5a14; border:1px solid #eadfbe; }
code { background:#f1ede3; padding:2px 6px; border-radius:4px; font-size:.9em; word-break: break-all; }
.tally { display:flex; gap:18px; margin:.6rem 0; flex-wrap:wrap; }
.tally div { text-align:center; }
.tally b { display:block; font-size:1.4rem; }
.tally.for b { color: var(--ok); } .tally.against b { color: var(--bad); }
footer.site { margin-top:3rem; border-top:1px solid var(--line); padding:18px 0 30px; color: var(--soft); font-size:.85rem; }
.mono { font-family: ui-monospace, Menlo, monospace; }
table { width:100%; border-collapse: collapse; font-size:.9rem; }
th, td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); }
