:root { color-scheme: light; --ink:#212022; --rust:#a33b16; --deep:#7e2b12; --paper:#fbf8f3;
  --line:#ded7cf; --muted:#625750; --green:#23643f; font:16px/1.55 system-ui,sans-serif; color:var(--ink); background:var(--paper); }
* {box-sizing:border-box}
body {margin:0}
.wrap {max-width:68rem; width:calc(100% - 2.5rem); margin-inline:auto}
header {background:#292420; color:white; border-bottom:4px solid #bc572c}
.mast {display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:4.75rem}
.brand {display:flex; align-items:center; gap:.75rem; color:inherit; text-decoration:none; font-weight:800}
.brand small {display:block; font-size:.78rem; font-weight:500; color:#ffe0ca}
.mark {display:grid; place-items:center; width:2.15rem; height:2.15rem; background:var(--rust); border:1px solid #dd8d67; border-radius:.35rem; font:700 1.5rem Georgia,serif}
nav,.actions {display:flex; gap:.7rem; align-items:center; flex-wrap:wrap}
nav a,.quiet {color:#fff0e5; font-size:.9rem}
.quiet {background:none; border:0; text-decoration:underline; padding:.3rem; cursor:pointer}
main {padding-block:2rem 3rem; min-height:65vh}
h1,h2,h3,p {margin-top:0; overflow-wrap:anywhere}
h1 {font-size:clamp(2rem,6vw,3.45rem); line-height:1.05; letter-spacing:-.04em; margin-bottom:.85rem}
h2 {font-size:1.45rem; line-height:1.2; margin-bottom:.85rem}
h3 {font-size:1.1rem; margin-bottom:.65rem}
p {margin-bottom:1rem}
a {color:var(--deep); text-underline-offset:.18em}
:focus-visible {outline:3px solid #11669f; outline-offset:3px}
.hero,.card {background:#fff; padding:clamp(1rem,4vw,2rem); border:1px solid var(--line); border-radius:.8rem; margin:0 0 1rem}
.hero {background:#fff3e7; border-color:#e4c3ae; margin-bottom:1.4rem}
.signin {max-width:49rem; margin-top:2rem; padding-block:2.75rem}
.kicker {color:var(--deep); letter-spacing:.09em; text-transform:uppercase; font-weight:750; font-size:.76rem; margin-bottom:.65rem}
.lead {max-width:43rem; color:#514238; font-size:1.08rem}
.hint {color:var(--muted); font-size:.9rem}
.signin .hint {margin-top:1rem; max-width:34rem}
.hero p:last-child,.card p:last-child {margin-bottom:0}
.description {white-space:pre-wrap}
.event-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:1rem}
.event-grid .card {margin:0}
.button {display:inline-block; border:1px solid var(--rust); border-radius:.42rem; padding:.58rem .84rem; background:var(--rust); color:#fff; font:inherit; font-weight:650; text-decoration:none; cursor:pointer}
.button:hover {background:var(--deep)}
.button.secondary {background:#fff; color:var(--deep); border-color:#c7a391}
.button.secondary:hover {background:#fff3e7}
button:disabled {opacity:.55; cursor:default}
.back {display:inline-block; margin-bottom:.9rem}
summary {font-weight:750; cursor:pointer}
details[open] summary {margin-bottom:1rem}
input,select,textarea {display:block; width:100%; border:1px solid #a69990; border-radius:.35rem; padding:.5rem; font:inherit; color:inherit; background:white}
input[type="checkbox"] {width:1.12rem; height:1.12rem; display:inline-block; vertical-align:middle; accent-color:var(--rust)}
label {display:block; font-weight:600; margin:0 0 .9rem; min-width:0}
.check {font-size:.93rem}
fieldset {margin:0 0 .75rem; border:1px solid var(--line); border-radius:.4rem; padding:.75rem}
legend {font-weight:700}
.form-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr)); gap:.65rem}
.form-grid label {margin-bottom:.35rem}
#add-window {margin-bottom:1rem}
table {width:100%; border-collapse:collapse; margin-bottom:1rem; font-size:.94rem}
th,td {text-align:left; vertical-align:middle; padding:.55rem .3rem; border-bottom:1px solid var(--line); overflow-wrap:anywhere}
thead th {color:var(--muted); font-size:.85rem}
.day table {margin-bottom:0}
.day th:first-child {min-width:6.6rem}
.day .button {font-size:.84rem}
.available {color:var(--green); font-weight:650}
.badge {display:inline-block; border-radius:.35rem; padding:.08rem .35rem; background:#e9f5ec; color:#205c39; font-size:.78rem}
.inline-book {display:flex; gap:.75rem; align-items:end; flex-wrap:wrap}
.inline-book label {margin:0; max-width:100%}
.actions {margin-bottom:1rem}
.notice {padding:.75rem 1rem; background:#e9f5ec; border-radius:.4rem; color:#205c39}
footer {border-top:1px solid var(--line); padding:1.2rem 0 2rem; display:flex; gap:.7rem; justify-content:space-between; flex-wrap:wrap; color:var(--muted); font-size:.85rem}
.skip {position:absolute; top:-8rem; background:#fff; padding:.5rem}
.skip:focus {top:.25rem; z-index:1}
@media (max-width:480px) {.wrap{width:calc(100% - 1.25rem)} .mast{gap:.35rem} nav{gap:.4rem} .brand{gap:.35rem;font-size:.86rem} .brand small{font-size:.7rem} .mark{width:1.65rem;height:1.65rem;font-size:1.13rem}}
