:root{--color-ink:#1a1a1a;--color-muted:#5b6472;--color-border:#d7dbe0;--color-accent:#0b5fff;--color-available-border:#0b5fff;--color-selected-bg:#0b5fff;--color-selected-fg:#fff;--color-booked-bg:#eceff2;--color-booked-fg:#8a919b;--radius:.6rem}body{color:var(--color-ink);background:#f7f8fa;margin:0;padding:2rem;font-family:system-ui,sans-serif;line-height:1.6}main{max-width:42rem;margin:0 auto}nav[aria-label=site]{gap:1rem;max-width:42rem;margin:0 auto 1.5rem;display:flex}a{color:var(--color-accent)}h1{margin-bottom:.25rem;font-size:1.5rem}h2{margin-top:2rem;font-size:1.1rem}button{font:inherit;border-radius:var(--radius);border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;cursor:pointer;padding:.5rem 1.1rem}button:hover{filter:brightness(.92)}button:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.identity-bar{border-radius:var(--radius);border:1px solid var(--color-border);background:#fff;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.5rem .75rem;font-size:.9rem;display:flex}.identity-bar__status{color:var(--color-muted)}.identity-bar__button{padding:.3rem .7rem;font-size:.85rem}.banner{border-radius:var(--radius);margin-block:1rem;padding:.75rem 1rem}.banner--error{color:#8a1f1f;background:#fdecec;border:1px solid #e2a3a3}.banner--success{color:#17603a;background:#e8f6ec;border:1px solid #a3d9b5}.booking-controls{flex-wrap:wrap;align-items:end;gap:1rem;margin-block:1.5rem;display:flex}.booking-controls__field{flex-direction:column;gap:.3rem;display:flex}.booking-controls__field input,.booking-controls__field select{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);min-width:10rem;padding:.4rem .6rem}.hall-toggle{border:none;align-items:center;gap:1rem;margin:0;padding:0;display:flex}.hall-toggle legend{color:var(--color-muted);padding:0;font-size:.85rem}.hall-option{align-items:center;gap:.35rem;font-size:.95rem;display:flex}.hall-option input{width:auto}.free-hour-preview{border-radius:var(--radius);background:#eef4ff;border:1px solid #cbdcfb;width:fit-content;padding:.6rem .9rem}.court-map{margin-block:2rem}.court-map__caption{color:var(--color-muted);margin-top:0;font-size:.85rem;font-style:italic}.court-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;margin:0;display:grid}.court-tile{border-radius:var(--radius);min-height:4.5rem;font:inherit;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;padding:1rem .5rem;transition:background-color .15s,color .15s,border-color .15s,transform .1s;display:flex}.court-tile:active{transform:scale(.98)}.court-tile--available{border:2px solid var(--color-available-border);color:var(--color-ink);cursor:pointer;background:#fff}.court-tile--available:hover{background:#eef4ff}.court-tile--selected{background:var(--color-selected-bg);border:2px solid var(--color-selected-bg);color:var(--color-selected-fg);cursor:pointer}.court-tile--booked{background:var(--color-booked-bg);border:2px solid var(--color-booked-bg);color:var(--color-booked-fg);cursor:not-allowed}.court-tile__label{font-weight:600}.court-tile__status{text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.court-map__legend{color:var(--color-muted);gap:1rem;margin-top:1rem;padding:0;font-size:.8rem;display:flex}.legend-swatch:before{content:"";vertical-align:middle;border-radius:.2rem;width:.7rem;height:.7rem;margin-right:.35rem;display:inline-block}.legend-swatch--available:before{border:2px solid var(--color-available-border);background:#fff}.legend-swatch--selected:before{background:var(--color-selected-bg)}.legend-swatch--booked:before{background:var(--color-booked-bg);border:2px solid var(--color-booked-fg)}.booking-summary{border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;padding:1.25rem}.booking-summary__details{grid-template-columns:repeat(2,1fr);gap:.5rem 1rem;margin:0 0 1rem;display:grid}.booking-summary__details div{flex-direction:column;display:flex}.booking-summary__details dt{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.booking-summary__details dd{margin:0;font-weight:600}.pricing-status{align-items:baseline;gap:.5rem;font-size:1.05rem;display:flex}.booking-list{gap:1rem;padding:0;list-style:none;display:grid}.booking-card{border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;padding:1rem 1.25rem}.booking-card p{margin:.2rem 0}.booking-card__court{font-size:1.05rem;font-weight:600}.booking-card__pricing{color:var(--color-muted)}@media (width<=480px){body{padding:1.25rem}.court-grid{grid-template-columns:repeat(2,1fr)}.booking-summary__details{grid-template-columns:1fr}}
