/* OneHouse — ledger / book aesthetic. Paper, ink, one deep green accent. */
:root { --paper:#faf7f0; --paper2:#f1ece1; --ink:#1c1a16; --muted:#6b645a; --rule:#d8d0bf; --green:#1e5631; --green2:#e7efe9; --red:#8a2f2f; --amber:#7a5b12; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Georgia,'Times New Roman',serif; line-height:1.55; }
body, input, select, textarea, button { font-family:Georgia,'Times New Roman',serif; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 22px; border-bottom:2px solid var(--ink); background:var(--paper); position:sticky; top:0; z-index:10; }
.brand { display:flex; gap:12px; align-items:center; }
.brandmark { display:grid; place-items:center; width:44px; height:44px; background:var(--green); color:#fff; font-family:Arial,Helvetica,sans-serif; font-weight:800; letter-spacing:.05em; border-radius:2px; }
.brand strong { font-size:22px; letter-spacing:.01em; }
.brand small { display:block; color:var(--muted); font-size:13px; }
nav { display:flex; gap:6px; flex-wrap:wrap; }
nav button, .tabbtn { background:none; border:1px solid transparent; padding:8px 12px; cursor:pointer; font-size:15px; color:var(--ink); border-radius:2px; }
nav button:hover, .tabbtn:hover { border-color:var(--rule); background:var(--paper2); }
nav button.active { background:var(--green); color:#fff; }
main { max-width:1060px; margin:0 auto; padding:26px 18px 60px; }
h1 { font-size:34px; line-height:1.15; margin:0 0 8px; font-weight:700; }
h2 { font-size:24px; margin:28px 0 10px; padding-bottom:6px; border-bottom:1px solid var(--rule); }
h3 { font-size:18px; margin:20px 0 6px; }
p { margin:8px 0; }
.lede { font-size:18px; color:#33302a; max-width:640px; }
.muted { color:var(--muted); font-size:14px; }
.card { background:#fff; border:1px solid var(--rule); border-radius:3px; padding:18px 20px; margin:14px 0; box-shadow:0 1px 0 rgba(0,0,0,.04); }
.rule { border:0; border-top:1px solid var(--rule); margin:18px 0; }
label { display:block; font-size:14px; color:var(--muted); margin:12px 0 4px; }
input, select, textarea { width:100%; padding:11px 12px; font-size:16px; border:1px solid var(--rule); border-radius:2px; background:#fff; color:var(--ink); }
textarea { min-height:90px; }
button, .btn { font-family:Arial,Helvetica,sans-serif; font-size:15px; font-weight:700; background:var(--green); color:#fff; border:0; border-radius:2px; padding:11px 18px; cursor:pointer; }
button.secondary, .btn.secondary { background:#fff; color:var(--ink); border:1px solid var(--rule); }
button.danger { background:var(--red); }
button:disabled { opacity:.5; cursor:default; }
.row { display:flex; gap:12px; flex-wrap:wrap; align-items:end; }
.row > * { flex:1 1 180px; }
table { width:100%; border-collapse:collapse; margin:12px 0; font-size:15px; }
th { text-align:left; font-family:Arial,Helvetica,sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); border-bottom:2px solid var(--ink); padding:8px 6px; }
td { padding:9px 6px; border-bottom:1px solid var(--rule); vertical-align:top; }
.stamp { display:inline-block; font-family:Arial,Helvetica,sans-serif; font-size:11px; font-weight:800; letter-spacing:.08em; padding:3px 8px; border:2px solid currentColor; border-radius:2px; text-transform:uppercase; }
.stamp.passed { color:var(--green); }
.stamp.failed { color:var(--red); }
.stamp.pending { color:var(--amber); }
.stamp.open { color:var(--muted); }
.kv { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:14px 0; }
.kv > div { border:1px solid var(--rule); padding:12px; background:#fff; }
.kv .big { font-size:26px; font-weight:700; }
.kv .lbl { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-family:Arial,Helvetica,sans-serif; }
.agenda { padding-left:0; list-style:none; }
.agenda li { padding:8px 0 8px 34px; border-bottom:1px solid var(--rule); position:relative; }
.agenda li .num { position:absolute; left:0; color:var(--muted); font-family:Arial,Helvetica,sans-serif; font-size:13px; }
.notice { background:var(--green2); border:1px solid var(--green); padding:12px 14px; border-radius:2px; margin:12px 0; }
/* In-page notices (replaces alert()). Same ledger look: paper card, ink rule. */
.flash { max-width:1060px; margin:0 auto; padding:12px 18px; display:flex; justify-content:space-between; gap:12px; align-items:center; background:#fff; border-bottom:2px solid var(--ink); font-size:15px; }
.flash.error { background:#fdf0f0; color:var(--red); border-bottom-color:var(--red); }
.flash.ok { background:var(--green2); color:var(--green); border-bottom-color:var(--green); }
.flash-x { background:none; color:inherit; padding:2px 8px; font-size:18px; line-height:1; }
.warn { background:#fdf3e7; border:1px solid var(--amber); padding:12px 14px; border-radius:2px; margin:12px 0; }
.err { color:var(--red); font-weight:700; }
.tabs { display:flex; gap:6px; flex-wrap:wrap; margin:16px 0; }
.foot { text-align:center; color:var(--muted); padding:20px; border-top:1px solid var(--rule); }
.demo-banner { background:#fff3c4; border:2px dashed var(--amber); padding:10px 14px; font-weight:700; text-align:center; margin:12px 0; }
@media (max-width:640px) { h1 { font-size:28px; } .topbar { padding:10px 12px; } main { padding:18px 12px 48px; } .row > * { flex:1 1 100%; } }
@media print { .topbar, nav, .foot, button, .no-print { display:none !important; } main { max-width:none; } }
