:root {
  --background: #f5f2ea;
  --surface: #ffffff;
  --text: #1b2b25;
  --muted: #5c6b65;
  --brand: #176b4a;
  --border: #d9ded9;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--background);
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
.site-header, .site-footer { padding: 1rem max(1rem, calc((100% - 68rem) / 2)); }
.site-header { background: var(--surface); border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; }
.site-footer { margin-top: auto; color: var(--muted); }
.brand { color: var(--brand); font-weight: 750; text-decoration: none; }
.page { width: min(68rem, calc(100% - 2rem)); margin: 3rem auto; }
.card { max-width: 48rem; padding: clamp(1.5rem, 4vw, 3rem); background: var(--surface); border: 1px solid var(--border); border-radius: 1rem; box-shadow: 0 1rem 2.5rem rgb(27 43 37 / 8%); }
h1 { margin: 0 0 1rem; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.05; }
p { line-height: 1.65; }
.eyebrow { color: var(--brand); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.muted { color: var(--muted); }
.narrow { max-width: 36rem; }
.wide { max-width: none; }
form { display: grid; gap: 1rem; }
label { display: grid; gap: .4rem; font-weight: 650; }
input, textarea, select, button, .button { font: inherit; padding: .7rem .8rem; border: 1px solid var(--border); border-radius: .45rem; }
button, .button { background: var(--brand); color: white; border: 0; cursor: pointer; text-decoration: none; font-weight: 700; }
.secondary { background: #52605b; }
.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.full { grid-column: 1 / -1; }
.check { display: inline-flex; align-items: center; margin-right: 1rem; font-weight: 500; }
.toolbar, .actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.actions form { display: block; }
.table-wrap { overflow-x: auto; }
.filter-bar { display: flex; align-items: end; gap: 1rem; margin: 1rem 0; flex-wrap: wrap; }
.inline-form { display: grid; gap: .4rem; min-width: 11rem; }
.task-card { margin-bottom: 1rem; }
.compact { padding-top: .5rem; border-top: 1px solid var(--border); }
.badge { display: inline-block; padding: .25rem .5rem; border-radius: 999px; background: #e5f3ec; font-weight: 700; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .8rem; border-bottom: 1px solid var(--border); text-align: left; }
.error { padding: 1rem; margin-bottom: 1rem; background: #fff1f0; border: 1px solid #c83d36; border-radius: .5rem; }
.notice { padding: 1rem; margin-bottom: 1rem; background: #edf8f2; border: 1px solid #5b9e7e; border-radius: .5rem; }
.danger-link { color: #a12621; font-weight: 700; }
.participant-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: .75rem; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
dl { display: grid; grid-template-columns: max-content 1fr; gap: .5rem 1rem; }
dt { font-weight: 700; }
dd { margin: 0; }
@media (max-width: 700px) { .form-grid, .participant-row { grid-template-columns: 1fr; } .toolbar { align-items: flex-start; flex-direction: column; } }
