:root { --bg:#f6f5f1; --fg:#222; --muted:#777; --line:#ddd; --accent:#2f5d3a; --danger:#a33; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.45 system-ui, sans-serif; background:var(--bg); color:var(--fg); }
nav { display:flex; flex-wrap:wrap; gap:.25rem 1rem; align-items:center; padding:.6rem 1rem; background:var(--accent); }
nav a, nav button.link { color:#fff; text-decoration:none; background:none; border:0; font:inherit; cursor:pointer; padding:0; }
nav .brand { font-weight:700; }
nav .sep { width:1px; height:1.2em; background:#fff5; }
nav .grow { flex:1; }
main { max-width:64rem; margin:0 auto; padding:1rem; }
h1 { margin:.5rem 0 1rem; font-size:1.6rem; } h2 { margin:1.5rem 0 .5rem; font-size:1.2rem; }
a { color:var(--accent); }
table { width:100%; border-collapse:collapse; background:#fff; margin:.75rem 0; }
th, td { text-align:left; padding:.45rem .6rem; border-bottom:1px solid var(--line); vertical-align:top; }
th { background:#eee; font-size:.85rem; }
.nowrap { white-space:nowrap; } .muted { color:var(--muted); } small { color:var(--muted); }
.actions { text-align:right; white-space:nowrap; }
.head { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(20rem, 1fr)); gap:1.5rem; align-items:start; }
.card { background:#fff; border:1px solid var(--line); padding:1rem; border-radius:6px; display:flex; flex-direction:column; gap:.8rem; }
.card.narrow { max-width:32rem; }
.card h3 { margin:0; }
label { display:flex; flex-direction:column; gap:.2rem; font-weight:600; }
label small { font-weight:400; } label.check { flex-direction:row; align-items:center; gap:.5rem; font-weight:400; }
input, select, textarea { font:inherit; padding:.4rem; border:1px solid #bbb; border-radius:4px; }
button, .btn { font:inherit; padding:.35rem .8rem; border:1px solid #bbb; border-radius:4px; background:#fff; cursor:pointer; text-decoration:none; color:var(--fg); display:inline-block; }
.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.danger { color:var(--danger); border-color:var(--danger); }
form.inline { display:inline; }
.filter { display:flex; gap:.5rem; flex-wrap:wrap; margin:.5rem 0; }
.flash { padding:.6rem .9rem; border-radius:4px; background:#e3f1e5; margin-bottom:.75rem; }
.flash.error { background:#f8dcdc; }
tr.done td { color:var(--muted); text-decoration:line-through; } tr.done td.actions { text-decoration:none; }
tr.overdue td:first-child { color:var(--danger); font-weight:600; }
tr.off td { color:var(--muted); text-decoration:line-through; } tr.off td.actions { text-decoration:none; }
ol.agenda li { margin:.5rem 0; font-size:1.1rem; }
@media print { nav, .noprint { display:none; } body { background:#fff; } }
@media (max-width: 40rem) { .actions { white-space:normal; } }
.months { display:grid; grid-template-columns:repeat(auto-fill, minmax(8rem, 1fr)); gap:.3rem; } fieldset { border:1px solid var(--line); border-radius:4px; }
.pre { white-space:pre-wrap; }
.topic { break-inside:avoid; margin-bottom:1rem; } .topic h2 { margin-bottom:.3rem; }
.decision { border-left:3px solid var(--accent); padding-left:.6rem; }
.signature { margin-top:3rem; border-top:1px solid #000; width:16rem; padding-top:.3rem; }
@page { margin:2cm; }
.datefield { position:relative; display:inline-flex; gap:.3rem; align-items:center; }
.datepopup { position:absolute; top:100%; left:0; z-index:10; margin-top:.25rem; padding:.5rem; background:#fff;
  border:1px solid #bbb; border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,.15); width:15rem; }
.datehead { display:flex; justify-content:space-between; align-items:center; margin-bottom:.4rem; }
.dategrid { display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; text-align:center; }
.dategrid .dow { font-size:.8rem; color:#666; }
.dategrid button, .datehead button { padding:.25rem 0; min-width:0; }
.datehead button { padding:.1rem .6rem; }
.dategrid .today { border-color:#666; }
.dategrid .selected { background:#333; color:#fff; }
footer.version { text-align:center; font-size:.75rem; color:#888; padding:1.5rem 0 1rem; }
@media print { footer.version { display:none; } }
