:root{--bg:#fafaf7;--fg:#1d2433;--accent:#7a1f3d;--card:#fff;--line:#e2ded5}
@media (prefers-color-scheme:dark){:root{--bg:#161a23;--fg:#eceae4;--accent:#e58aa8;--card:#1f2430;--line:#323847}}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,sans-serif;background:var(--bg);color:var(--fg)}
.hero{padding:3rem 1rem;text-align:center;background:var(--accent);color:#fff}
.hero h1{margin:.2rem 0 .5rem;font-size:clamp(1.6rem,5vw,2.6rem)}
.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;opacity:.85}
main{max-width:960px;margin:0 auto;padding:1rem}
.filters{display:flex;flex-wrap:wrap;gap:.5rem}
button{font:inherit;padding:.5rem .9rem;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--fg);cursor:pointer}
button[aria-pressed=true],form button{background:var(--accent);color:#fff}
.week{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.day{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem}
.day h3{margin:0 0 .5rem;color:var(--accent)}
.event{padding:.5rem 0;border-top:1px solid var(--line)}
.event strong{display:block}
.event small{opacity:.75}
form{display:grid;gap:.8rem;max-width:480px}
label{display:grid;gap:.25rem}
input,select,textarea{font:inherit;padding:.5rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg)}
form button{justify-self:start;border-radius:8px}
footer{text-align:center;padding:2rem 1rem;opacity:.7}
