*{box-sizing:border-box}
:root{--bg:#fbf7f2;--paper:#fffdf9;--brown:#765846;--ink:#4d3c32;--muted:#8c7667;--line:#e7d9ce;--tan:#c99a74;--green:#31b94e}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}
header{display:flex;justify-content:space-between;align-items:center;padding:14px 5%;background:var(--paper);border-bottom:1px solid var(--line)}
.brand{text-decoration:none;color:var(--brown);font:30px Georgia,serif}.brand span{display:block;font:9px Arial,sans-serif;letter-spacing:.18em}
.back{text-decoration:none;color:var(--brown);font-size:13px}
main{max-width:900px;margin:auto;padding:0 20px 80px}.hero{text-align:center;padding:55px 0 25px}.eyebrow{font-size:11px;letter-spacing:.2em;color:var(--tan)}
h1{font:500 40px "Yu Mincho",serif;color:var(--brown);margin:5px 0}h2{font:500 22px "Yu Mincho",serif;color:var(--brown)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:24px;margin-top:18px}.disabled{opacity:.45;pointer-events:none}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cat,.course,.date,.time{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;cursor:pointer;color:var(--ink)}
.cat{font-weight:700;color:var(--brown)}.cat span{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:4px}
.active{border-color:var(--tan);background:#fffaf5;box-shadow:0 0 0 2px rgba(201,154,116,.14)}
.course{display:block;width:100%;text-align:left;margin:8px 0}.course strong{display:block;color:var(--brown)}.course small{color:var(--muted)}
.dates{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:12px 0}.date{padding:10px 4px}.date strong{display:block}.date.closed{background:#f1efed;color:#b6aaa2;cursor:not-allowed}
.times{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.time{padding:10px 5px}
.time.occupied{background:#ece8e4;color:#aaa09a;cursor:not-allowed;text-decoration:line-through}
label{display:block;margin:12px 0;color:var(--brown);font-size:13px}input,textarea{width:100%;margin-top:5px;padding:11px;border:1px solid var(--line);border-radius:10px;font:inherit}
.summary{background:#faf5ef;padding:16px;border-radius:12px;line-height:1.8}.submit{display:block;margin:20px auto 0;background:var(--green);color:#fff;border:0;border-radius:999px;padding:14px 28px;font-weight:700;cursor:pointer}
.note{font-size:12px;color:var(--muted)}
@media(max-width:700px){.grid3{grid-template-columns:1fr}.dates{grid-template-columns:repeat(4,1fr)}.times{grid-template-columns:repeat(3,1fr)}}
