:root{font-family:system-ui,sans-serif;color:#142820;background:#f3f6f1;--ink: #102c22;--muted: #4b6458;--line: #d9e4da;--accent: #b9f66b}*{box-sizing:border-box}body{margin:0}header{background:#101e19;color:#fff}.bar,main{width:min(100%,1170px);margin:auto;padding:18px clamp(16px,4vw,34px)}.bar,nav,.actions,.slots{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bar{justify-content:space-between}header nav{gap:6px}h1{font-size:clamp(2.1rem,5.8vw,4.5rem);letter-spacing:-.065em;line-height:.98;margin:.28em 0 .38em}h2{margin:.35em 0;letter-spacing:-.025em}p{line-height:1.5}button,input{font:inherit;border-radius:10px}button{padding:10px 15px;border:1px solid var(--line);background:#fff;color:inherit;cursor:pointer;font-weight:650}button:hover:not(:disabled){border-color:#72a481}button:focus-visible,input:focus-visible{outline:3px solid #55aa66;outline-offset:3px}button:disabled{opacity:.5;cursor:default}header button{background:transparent;color:#fff;border-color:transparent}header nav button:hover{background:#243930}.brand{font-size:1.35rem;font-weight:850;letter-spacing:-.055em;border:0;padding-left:0}.brand:before{content:"";display:inline-block;width:.58em;height:.58em;border-radius:2px;margin-right:.4em;background:var(--accent);transform:skew(-14deg)}.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.intro{position:relative;isolation:isolate;overflow:hidden;padding:clamp(32px,6vw,78px);margin:10px 0 28px;border-radius:26px;background:linear-gradient(125deg,#102e22 32%,#1b5739);color:#fff}.intro:after{content:"";position:absolute;z-index:-1;width:400px;aspect-ratio:1;right:-115px;bottom:-260px;border:1px solid #b9f66b80;border-radius:50%;box-shadow:0 0 0 30px #b9f66b20,0 0 0 65px #b9f66b15,0 0 0 100px #b9f66b10}.intro h1{max-width:700px}.intro p:last-child{color:#e1ebdf;max-width:480px}.eyebrow{letter-spacing:.12em;font-size:.76rem;font-weight:800;color:#32614a}.intro .eyebrow{color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px;margin:20px 0}article,.panel{padding:clamp(18px,3vw,26px);background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 7px 20px #143c3008}.court-card{overflow:hidden}.court-art{position:relative;display:grid;place-items:center;overflow:hidden;height:130px;border-radius:12px;background:repeating-linear-gradient(90deg,#286945 0 15%,#2e7450 15% 30%)}.court-card:nth-child(2n) .court-art{background:repeating-linear-gradient(90deg,#28606a 0 15%,#2d6c74 15% 30%)}.court-art span{position:relative;width:76%;height:69%;border:1px solid #ffffff99}.court-art span:before,.court-art span:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.court-art span:before{width:34px;height:34px;border:1px solid #ffffff99;border-radius:50%}.court-art span:after{height:100%;border-left:1px solid #ffffff99}.panel,.slots{margin-top:18px}.panel img{display:block;width:min(100%,235px);height:auto}.form{max-width:520px}form,label{display:grid;gap:8px}form{gap:14px;margin:14px 0}input{padding:10px;border:1px solid #a9bdb0;width:100%;background:#fff;color:inherit}.status{display:flex;align-items:center;gap:10px;background:#e5f4dc;border:1px solid #c8e4ba;padding:12px 15px;border-radius:12px}.spinner{flex:0 0 16px;height:16px;border:2px solid #96bd85;border-top-color:#245835;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.badge{display:inline-block;margin:0;padding:4px 8px;border-radius:20px;color:var(--muted);background:#edf0ea;font-size:.7rem;font-weight:800;letter-spacing:.06em}.badge.confirmed{background:#dff5d2;color:#23583a}.page-content{min-height:100vh;min-height:100svh}.schedule-heading{padding-top:12px}.schedule-heading h1{margin-bottom:.18em}.schedule-heading>p:last-child,.slot-legend{color:var(--muted)}.schedule-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(235px,1fr);gap:18px;align-items:start;margin-bottom:24px}.date-calendar{width:min(100%,370px);margin:16px 0 20px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#f6faf5}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.calendar-heading strong{text-transform:capitalize;font-size:.95rem}.calendar-heading button{width:38px;height:38px;padding:0;font-size:1.45rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.weekday{color:var(--muted);font-size:.7rem;font-weight:700;padding:5px 0}.calendar-day{min-height:36px;padding:0;border-color:transparent;font-size:.85rem;background:transparent}.calendar-day.today{border-color:#6da57a}.calendar-day.chosen{background:var(--ink);color:#fff}.calendar-day:disabled{opacity:.4}.schedule-slots .slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr))}.schedule-summary{border-top:4px solid #63aa67}.schedule-summary button{width:100%}.slots .chosen{background:#c8f29c;border-color:#387449;color:var(--ink)}.toast{position:fixed;z-index:5;inset:auto 20px 18px auto;max-width:min(410px,calc(100% - 40px));margin:0;box-shadow:0 8px 28px #102c2230}dialog{width:min(440px,calc(100vw - 32px));padding:25px;border:1px solid var(--line);border-radius:20px;color:var(--ink);box-shadow:0 20px 75px #102c2250}dialog::backdrop{background:#0c221ab0}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:18px}.danger{background:#8c3030;color:#fff;border-color:#8c3030}.site-footer{background:#101e19;color:#eff7ef}.footer-inner{width:min(100%,1170px);margin:auto;display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:26px;padding:36px clamp(16px,4vw,34px)}.footer-brand{font-size:1.6rem;font-weight:850;margin:0}.footer-inner h2{font-size:1.02rem}.footer-note{color:#bfd1c4;font-size:.88rem}.footer-map iframe{width:100%;min-height:155px;border:0;border-radius:12px;display:block;margin:10px 0}.footer-inner a{color:#d5f4ae}@media(max-width:720px){.schedule-layout,.footer-inner{grid-template-columns:1fr}.schedule-layout{gap:0}}.preview-action{display:inline-block;padding:10px 15px;border-radius:10px;font-weight:650;text-decoration:none}
