[hidden] { display: none !important; }
.booking-page { background: #f5f5f3; color: #222; }
.booking-page header { position: static; }
.booking-page nav { gap: 1rem; }
.club-logo { width: 44px; height: 44px; object-fit: contain; }
.header-link, .booking-page footer a { color: white; }
.booking-page .logo-link { font-size: 1.2rem; font-weight: bold; }
.booking-container { max-width: 780px; margin: 0 auto; padding: 3rem 1.25rem 5rem; min-height: 75vh; }
.admin-container { max-width: 1200px; margin: 0 auto; padding: 3rem 1.25rem 5rem; min-height: 75vh; }
.booking-page h1 { font-size: clamp(1.9rem, 5vw, 2.8rem); line-height: 1.2; margin-bottom: 1.5rem; }
.booking-page h2 { font-size: 1.45rem; text-align: left; margin-bottom: 1rem; }
.booking-page h3 { font-size: 1.15rem; margin-bottom: .75rem; }
.booking-page p { margin-bottom: .8rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; font-weight: bold; color: #555; }
.panel { background: white; border: 1px solid #ddd; border-radius: 10px; padding: 1.6rem; margin: 1.25rem 0; }
.session-summary { border-left: 5px solid #222; }
.session-date { font-size: 1.15rem; font-weight: bold; }
.preserve-lines, dd { white-space: pre-wrap; overflow-wrap: anywhere; }
.form-intro, .help, .optional { color: #555; font-size: .93rem; font-weight: normal; }
.help { display: block; margin-top: .35rem; }
.booking-page label { display: block; font-weight: bold; margin: 0 0 1.2rem; }
.booking-page input:not([type=checkbox]), .booking-page select, .booking-page textarea { display: block; width: 100%; font: inherit; color: #222; background: #fff; padding: .7rem .8rem; border: 1px solid #888; border-radius: 5px; margin-top: .4rem; min-width: 0; }
.booking-page textarea { resize: vertical; }
.booking-page input[readonly] { background: #f5f5f3; font-size: .9rem; }
.booking-page fieldset { border: 0; padding: 0; margin: .5rem 0; min-width: 0; }
.booking-page legend { font-size: 1.2rem; font-weight: bold; margin-bottom: 1rem; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.check-label { display: flex !important; gap: .8rem; align-items: flex-start; font-weight: normal !important; }
.check-label input { flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin-top: .2rem; accent-color: #111; }
.privacy-note { font-size: .9rem; background: #f5f5f3; padding: 1rem; border-radius: 5px; margin-bottom: 1rem; overflow-wrap: anywhere; }
.booking-page a { color: inherit; }
.button { display: inline-block; border: 2px solid #111; border-radius: 5px; background: #111; color: white; font: inherit; font-weight: bold; padding: .7rem 1.1rem; cursor: pointer; }
.button.secondary { background: white; color: #222; border-color: #bbb; }
.button.danger { background: white; color: #8b1717; border-color: #8b1717; }
.button.danger:hover { background: #8b1717; color: white; }
.button:hover { background: #333; color: white; }
.button:disabled { cursor: wait; opacity: .55; }
.booking-page :focus-visible { outline: 3px solid #0865c4; outline-offset: 3px; }
.actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.status { background: #eaeae6; border-radius: 5px; padding: .9rem 1rem; margin: 1rem 0; overflow-wrap: anywhere; }
.error { background: #fff0f0; color: #8b1717; }
.confirmation { border: 2px solid #276641; }
.confirmation h2 { color: #215936; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.auth-panel { max-width: 480px; }
.admin-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.session-list { margin-top: 1.5rem; display: grid; gap: .6rem; }
.session-group { display: grid; gap: .6rem; }
.session-group + .session-group { border-top: 1px solid #ddd; padding-top: 1.25rem; margin-top: .75rem; }
.session-choice { display: grid; gap: .25rem; width: 100%; text-align: left; border: 1px solid #ccc; border-radius: 5px; background: #fafaf9; padding: 1rem; cursor: pointer; color: #222; font: inherit; overflow-wrap: anywhere; }
.session-choice:hover { border-color: #111; }
.session-choice span { font-size: .85rem; }
.booking-card { border-top: 1px solid #ddd; padding: 1.3rem 0; }
.person-card { border-top: 1px solid #ddd; padding: 1.3rem 0; overflow-wrap: anywhere; }
.person-role-form { max-width: 36rem; }
.booking-page fieldset:disabled { opacity: .65; }
.booking-card dl { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: .4rem 1rem; margin-bottom: 1rem; }
.booking-card dt { font-weight: bold; }
.booking-card dd { margin: 0; }
@media (max-width: 800px) { .admin-layout { grid-template-columns: 1fr; gap: 0; } }
@media (max-width: 540px) {
  .field-grid { grid-template-columns: 1fr; gap: 0; }
  .panel { padding: 1.15rem; }
  .booking-page nav { align-items: flex-start; }
  .booking-card dl { grid-template-columns: 1fr; gap: .2rem; }
  .booking-card dd { margin-bottom: .6rem; }
  .booking-container, .admin-container { padding-top: 2rem; }
}
