:root{color-scheme:light;--ink:#1a3935;--muted:#526a63;--green:#246351;--line:#d7e2dc}*{box-sizing:border-box}body{margin:0;background:#f4f6f0;color:var(--ink);font:16px/1.75 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}.wrap{max-width:1080px;margin:auto;padding:40px 24px 50px}a{color:var(--green);text-underline-offset:3px}.brand{font-size:15px;font-weight:700;letter-spacing:.08em;text-decoration:none}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted);margin-top:30px}h1{font-size:clamp(28px,4vw,44px);line-height:1.25;margin:12px 0}h2{font-size:30px;line-height:1.3}h3{font-size:20px;margin-top:0}.lead{max-width:700px;color:var(--muted);font-size:18px}.class-heading{padding:28px 32px;background:#e1ebe2;border:1px solid var(--line);border-radius:20px;margin:24px 0}.class-heading .eyebrow{margin-top:0}.dates{font-size:22px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);padding:28px;border-radius:16px}.button{display:inline-block;background:var(--green);color:white;border:0;border-radius:9px;padding:10px 15px;margin:6px 8px 4px 0;text-decoration:none;font:inherit;cursor:pointer}.secondary{background:#e4ece6;color:var(--ink)}.actions{margin:24px 0}.note,.muted,#card-status{font-size:14px;color:var(--muted)}.note{border-top:1px solid var(--line);padding-top:20px}footer{display:flex;flex-wrap:wrap;gap:22px;padding-top:24px}button:focus-visible,a:focus-visible{outline:3px solid #bf8e38;outline-offset:4px}@media(max-width:680px){.wrap{padding:24px 16px}.grid{grid-template-columns:1fr}.panel,.class-heading{padding:20px}.button{display:block;text-align:center;width:100%}}@media print{body{background:white}.wrap{padding:0}.button,footer{display:none}.panel,.class-heading{break-inside:avoid}}
.chooser{display:grid;gap:7px;color:var(--muted);max-width:430px}.chooser select{font:inherit;padding:10px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}

.directory-controls{display:flex;flex-wrap:wrap;gap:18px;padding:18px 0}.directory-controls label{display:grid;gap:7px;font-size:14px;color:var(--muted)}.directory-controls input,.directory-controls select{font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.directory-controls input{width:min(380px,75vw)}.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.directory-card{background:#fff;padding:23px;border:1px solid var(--line);border-radius:16px}.directory-card h2{font-size:23px;margin:15px 0 10px}.directory-card .button{font-size:14px;margin-top:12px}.directory-badge{display:inline-block;font-size:12px;background:#e6efe7;color:#346248;padding:4px 10px;border-radius:20px;margin:0}.directory-badge.past{background:#edf0f1;color:#637276}.directory-empty{grid-column:1/-1;padding:32px;border:1px dashed var(--line);border-radius:12px}.schedule-notice{padding:16px 20px;border-left:4px solid #7d9b83;background:#eaf0e7;border-radius:8px;font-size:14px}.schedule-notice.past{background:#f0eee7;border-color:#a48f61}input:focus-visible,select:focus-visible{outline:3px solid #bf8e38;outline-offset:3px}@media(max-width:900px){.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.directory-grid{grid-template-columns:1fr}.directory-controls label{width:100%}.directory-controls input,.directory-controls select{width:100%}.directory-card{padding:20px}}@media print{.directory-controls{display:none}}
