:root{
    --booking-blue:#163694;
    --booking-blue-2:#0d2d83;
    --booking-navy:#071b49;
    --booking-line:#dde3ec;
    --booking-soft:#f4f6fa;
    --booking-muted:#667085;
    --booking-text:#0a183b;
    --booking-teal:#1ca68d;
    --booking-purple:#7c3aed;
    --booking-amber:#f6c65b;
    --booking-red:#e55353;
}
.booking-board-page{background:#fff;color:var(--booking-text);padding-bottom:92px}
.booking-board-shell{max-width:1180px;margin:0 auto;padding:26px 22px 18px}
.booking-feature-note{display:flex;align-items:center;gap:12px;border:1px solid #cad3e4;background:#fff;border-radius:12px;padding:13px 16px;margin-bottom:18px}
.booking-feature-icon{font-size:19px;color:#e29a1e}
.booking-feature-note strong,.booking-feature-note span{display:block}
.booking-feature-note strong{font-size:13px;line-height:1.3}
.booking-feature-note span{font-size:10px;color:var(--booking-muted);margin-top:2px}
.booking-alert{border-radius:12px;padding:13px 16px;margin-bottom:16px;font-size:11px}
.booking-alert strong{display:block;margin-bottom:5px}
.booking-alert ul{margin:0;padding-left:18px}
.booking-alert-error{background:#fff4f4;border:1px solid #f4b7b7;color:#8d2929}
.booking-board-card{border:1px solid var(--booking-line);border-radius:14px;background:#fff;overflow:hidden}
.booking-date-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 16px 12px}
.booking-date-title{display:flex;align-items:center;gap:8px}.booking-date-title strong{font-size:16px;letter-spacing:-.02em}.booking-calendar-mark{color:var(--booking-blue);font-size:16px}
.booking-date-actions{display:flex;gap:6px;position:relative}.booking-date-actions input[type=date]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.booking-icon-btn{width:34px;height:32px;border:1px solid #d4dbe8;border-radius:7px;background:#fff;color:#334155;display:grid;place-items:center;font-size:18px;cursor:pointer}.booking-icon-btn:hover:not(:disabled){background:#f8fafc}.booking-icon-btn:disabled{opacity:.35;cursor:not-allowed}
.booking-court-tier-bar{padding:0 16px 14px}.booking-tier{border:1px solid #edf0f5;background:#f7f8fb;border-radius:9px;min-height:52px;display:grid;place-items:center;align-content:center;text-align:center}.booking-tier.active{background:#fff;box-shadow:0 1px 6px rgba(15,23,42,.05)}.booking-tier strong{font-size:10px;letter-spacing:.02em}.booking-tier span{font-size:9px;color:var(--booking-muted);margin-top:2px}.booking-tier span::first-letter{color:var(--booking-blue)}
.booking-board-scroll{overflow:auto;border-top:1px solid var(--booking-line)}
.booking-board-loading{padding:48px 20px;text-align:center;color:var(--booking-muted);font-size:11px}
.booking-schedule-table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;table-layout:fixed}
.booking-schedule-table th,.booking-schedule-table td{border-right:1px solid var(--booking-line);border-bottom:1px solid var(--booking-line)}
.booking-schedule-table th:last-child,.booking-schedule-table td:last-child{border-right:0}
.booking-schedule-table thead th{background:#f6f7fa;padding:12px 9px;text-align:center;font-size:9px;font-weight:800;position:sticky;top:0;z-index:2}.booking-schedule-table thead th:first-child{text-align:left;width:128px;left:0;z-index:4}.booking-court-head strong,.booking-court-head small{display:block}.booking-court-head strong{font-size:10px}.booking-court-head small{font-size:8px;color:#64748b;font-weight:500;margin-top:2px}
.booking-period-row td{padding:6px 10px;background:#e8ebf0;color:#667085;font-size:9px;font-weight:700;border-bottom:1px solid #d6dbe4}.booking-period-row td:first-child{position:sticky;left:0;z-index:1}
.booking-time-cell{width:128px;padding:10px 10px;background:#fbfcfe;font-size:9px;vertical-align:middle;position:sticky;left:0;z-index:1}.booking-time-cell strong{display:block;font-size:9px;font-weight:600;white-space:nowrap}.booking-time-cell small{display:block;color:var(--booking-blue);font-size:8px;font-weight:800;margin-top:2px}
.booking-slot-cell{padding:5px;background:#fff;height:54px}
.booking-slot-button{width:100%;height:44px;border-radius:7px;border:1px solid #e1e5ed;background:#f0f2f7;color:#667085;font-size:9px;font-weight:600;cursor:default;transition:.15s;display:flex;align-items:center;justify-content:center;gap:5px}.booking-slot-button.available{cursor:pointer}.booking-slot-button.available:hover{background:#e9eefc;border-color:#b8c7f5;color:var(--booking-blue)}.booking-slot-button.available .booking-slot-select-label{opacity:0}.booking-slot-button.available:hover .booking-slot-select-label{opacity:1}.booking-slot-button.selected{background:var(--booking-blue);border-color:var(--booking-blue);color:#fff;cursor:pointer}.booking-slot-button.selected::before{content:'✓';font-weight:900}.booking-slot-button.booked{background:#dfe5ec;border-color:#dfe5ec;color:#53657a}.booking-slot-button.open_play{background:#e5fbf6;border-color:#72dac7;color:#087766}.booking-slot-button.coaching{background:#f3eafe;border-color:#c7a6ff;color:#6d28d9}.booking-slot-button.pending{background:#fff2d3;border-color:#f4cf75;color:#c06d00}.booking-slot-button.unavailable{background:#fff0f0;border-color:#f4c6c6;color:#bd3b3b;opacity:.72}.booking-slot-button small{font-size:7px;font-weight:500;display:block}
.booking-legend{display:flex;align-items:center;justify-content:center;gap:11px 14px;flex-wrap:wrap;padding:15px;font-size:8px;color:#64748b}.booking-legend span{display:flex;align-items:center;gap:5px}.booking-legend i{width:9px;height:9px;border-radius:3px;border:1px solid #dbe1ea;background:#f0f2f7}.booking-legend i.selected{background:var(--booking-blue);border-color:var(--booking-blue)}.booking-legend i.booked{background:#dfe5ec}.booking-legend i.open_play{background:#e5fbf6;border-color:#72dac7}.booking-legend i.coaching{background:#f3eafe;border-color:#8b5cf6}.booking-legend i.pending{background:#fff2d3;border-color:#f4cf75}.booking-legend i.unavailable{background:#fff0f0;border-color:#e55353}
.booking-cart-bar{position:fixed;z-index:38;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--booking-line);padding:10px max(18px,calc((100vw - 1140px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 -8px 26px rgba(15,23,42,.05)}.booking-cart-copy{display:grid;gap:1px}.booking-cart-copy span{font-size:9px;color:#64748b}.booking-cart-copy strong{font-size:19px;color:var(--booking-blue);line-height:1.1}.booking-book-now{min-width:190px;border:0;border-radius:28px;background:var(--booking-blue);color:#fff;font-weight:800;font-size:12px;padding:13px 22px;cursor:pointer}.booking-book-now:disabled{background:#d7dce7;color:#8a93a5;cursor:not-allowed}
.booking-modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(4,15,37,.62);display:none;align-items:center;justify-content:center;padding:22px}.booking-modal-backdrop.open{display:flex}.booking-modal-dialog{width:min(100%,560px);height:min(92vh,760px);background:#fff;border-radius:14px;box-shadow:0 28px 80px rgba(0,0,0,.25);overflow:hidden;display:flex}.booking-modal-dialog form{width:100%;display:flex;flex-direction:column;min-height:0}.booking-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 20px 14px}.booking-step-label{display:block;font-size:8px;color:#4262aa;font-weight:800;letter-spacing:.1em}.booking-modal-header h2{font-size:18px;margin:3px 0 2px;letter-spacing:-.025em}.booking-modal-header p{font-size:9px;color:#6b7280;margin:0}.booking-modal-close{border:0;background:transparent;color:#64748b;font-size:21px;line-height:1;cursor:pointer;padding:1px 4px}.booking-modal-progress{height:3px;background:#edf1f7}.booking-modal-progress span{display:block;height:100%;background:var(--booking-blue);width:50%;transition:.2s}.booking-modal-body{padding:14px 20px 20px;overflow:auto;flex:1;background:#fff}.booking-checkout-step{display:grid;gap:14px}.booking-review-warning{display:flex;gap:9px;align-items:flex-start;border:1px solid #efc75e;background:#fff9e7;border-radius:8px;padding:10px 11px;color:#9a5b0d}.booking-review-warning span{font-size:13px}.booking-review-warning p{font-size:8px;line-height:1.45;margin:0}.booking-review-warning strong{font-weight:800}.booking-summary-card,.booking-info-card,.booking-payment-card,.booking-qr-details{border:1px solid #d7ddea;border-radius:9px;background:#fff;padding:14px}.booking-section-label{font-size:8px;color:#64748b;font-weight:800;letter-spacing:.05em}.booking-summary-club{display:flex;justify-content:space-between;gap:15px;padding:9px 0 10px;border-bottom:1px solid #e7ebf1;font-size:9px}.booking-summary-club span{color:#64748b}.booking-summary-lines{display:grid}.booking-summary-line{display:grid;grid-template-columns:1fr auto;gap:12px;padding:9px 0;border-bottom:1px solid #eef1f5}.booking-summary-line strong,.booking-summary-line small{display:block}.booking-summary-line strong{font-size:9px}.booking-summary-line small{font-size:8px;color:#64748b;margin-top:2px}.booking-summary-line b{font-size:9px;font-weight:600}.booking-summary-total{display:flex;justify-content:space-between;align-items:center;padding-top:12px}.booking-summary-total span{font-size:9px;font-weight:700}.booking-summary-total strong{font-size:17px;color:var(--booking-blue)}.booking-summary-card>small{display:block;margin-top:8px;color:#7b8494;font-size:7px;font-style:italic;line-height:1.5}.booking-info-card{padding:0;overflow:hidden}.booking-info-card-head{padding:11px 13px;border-bottom:1px solid #e4e8ef}.booking-info-card-head>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}.booking-info-card-head strong{font-size:9px}.booking-info-card-head small{grid-column:2;font-size:7px;color:#64748b}.booking-person-icon{grid-row:1/3;width:24px;height:24px;border-radius:50%;background:#eef3ff;color:var(--booking-blue);display:grid;place-items:center}.booking-player-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:13px}.booking-player-grid label,.booking-field-stack label,.booking-qr-details label{font-size:8px;color:#667085;font-weight:600}.booking-player-grid input,.booking-field-stack input,.booking-field-stack textarea,.booking-qr-details input{display:block;width:100%;border:1px solid #dfe4ed;border-radius:8px;background:#fff;padding:9px 10px;margin-top:4px;font-size:10px;color:#0f172a;outline:none}.booking-player-grid input:focus,.booking-field-stack input:focus,.booking-field-stack textarea:focus,.booking-qr-details input:focus{border-color:#8aa3eb;box-shadow:0 0 0 3px rgba(22,54,148,.08)}.booking-addon-section{display:grid;gap:8px}.booking-addon-section>p{font-size:8px;color:#64748b;margin:0}.booking-addon-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.booking-addon-card{display:flex;gap:9px;align-items:center;border:1px solid #dce2ec;border-radius:9px;padding:10px;cursor:pointer}.booking-addon-card:has(input:checked){border-color:#7f99df;background:#f6f8ff}.booking-addon-card input{width:auto}.booking-addon-card strong,.booking-addon-card small{display:block}.booking-addon-card strong{font-size:9px;color:#10204c}.booking-addon-card small{font-size:8px;color:#657086;margin-top:2px}.booking-field-stack{display:grid;gap:11px}.booking-inline-field{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:4px}.booking-inline-field input{margin:0}.booking-inline-field button{border:1px solid #dfe4ed;background:#f8fafc;color:#98a2b3;border-radius:8px;font-size:8px;padding:0 11px}.booking-payment-total-card{border:1px solid #c5d0e8;background:#eef2fb;border-radius:9px;padding:16px;text-align:center}.booking-payment-total-card span{font-size:8px;color:#64748b}.booking-payment-total-card strong{display:block;font-size:26px;color:var(--booking-blue);line-height:1.2;margin:2px 0}.booking-payment-total-card small{font-size:8px;color:#697386}.booking-payment-card>strong{font-size:9px}.booking-payment-options{display:grid;gap:8px;margin-top:10px}.booking-payment-option{position:relative;display:grid;grid-template-columns:18px 22px 1fr auto;align-items:center;gap:8px;border:1px solid #e0e5ed;border-radius:8px;padding:10px 11px;cursor:pointer}.booking-payment-option:has(input:checked){border-color:#8aa3eb;background:#f7f9ff}.booking-payment-option input{position:absolute;opacity:0}.booking-payment-radio{width:14px;height:14px;border:1px solid #b9c2d0;border-radius:50%;display:block}.booking-payment-option input:checked+.booking-payment-radio{border:4px solid var(--booking-blue)}.booking-payment-icon{width:21px;height:21px;border-radius:50%;background:#eef2ff;color:#214097;font-size:8px;font-weight:800;display:grid;place-items:center}.booking-payment-option b{font-size:9px}.booking-payment-option em{font-size:9px;color:#173788;font-style:normal;font-weight:800}.booking-qr-details{display:grid;gap:10px;background:#fbfcfe}.booking-qr-details>strong{font-size:9px}.booking-qr-details>p{font-size:8px;color:#667085;line-height:1.5;margin:0}.booking-qr-account{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:8px;padding:8px;background:#f3f5f9;border-radius:7px}.booking-qr-account span{color:#667085}.booking-qr-account b{text-align:right}.booking-qr-details label small{display:block;font-size:7px;color:#98a2b3;margin-top:3px}.booking-confirm-check{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:flex-start;border:1px solid #dfe4ed;border-radius:8px;padding:10px;font-size:8px;color:#4b5563;line-height:1.45}.booking-confirm-check input{margin-top:1px}.booking-terms-note{font-size:8px;color:#7a8495;line-height:1.55}.booking-modal-footer{border-top:1px solid #e3e7ee;padding:12px 20px;display:grid;grid-template-columns:1fr 1.05fr;gap:9px;background:#fff}.booking-modal-footer button{height:42px;border-radius:7px;font-size:9px;font-weight:800;cursor:pointer}.booking-footer-secondary{border:1px solid #d8dee8;background:#fff;color:#0f172a}.booking-footer-primary{border:1px solid var(--booking-blue);background:var(--booking-blue);color:#fff}.booking-footer-primary span{margin-left:8px;font-size:15px;vertical-align:-1px}
@media(max-width:760px){
    .booking-board-shell{padding:16px 15px 14px}.booking-feature-note{padding:11px 12px}.booking-feature-note span{font-size:9px}.booking-date-toolbar{padding:12px}.booking-date-title strong{font-size:14px}.booking-court-tier-bar{padding:0 12px 12px}.booking-board-card{border-radius:11px}.booking-schedule-table{min-width:690px}.booking-schedule-table thead th:first-child,.booking-time-cell{width:112px}.booking-legend{padding:13px 9px;gap:8px 10px}.booking-cart-bar{padding:9px 16px}.booking-book-now{min-width:164px}.booking-modal-backdrop{padding:0;align-items:stretch}.booking-modal-dialog{width:100%;height:100vh;max-height:none;border-radius:0}.booking-modal-header{padding:16px 18px 12px}.booking-modal-body{padding:12px 18px 18px}.booking-modal-footer{padding:10px 18px 12px}.booking-player-grid,.booking-addon-grid{grid-template-columns:1fr}.booking-player-grid{gap:9px}.booking-inline-field{grid-template-columns:1fr}.booking-inline-field button{height:34px}.public-nav{position:relative}
}
@media(max-width:460px){
    .booking-board-shell{padding-left:10px;padding-right:10px}.booking-feature-note{margin-bottom:12px}.booking-date-toolbar{padding-left:8px;padding-right:8px}.booking-court-tier-bar{padding-left:8px;padding-right:8px}.booking-cart-copy strong{font-size:17px}.booking-book-now{min-width:145px;padding-left:18px;padding-right:18px}.booking-modal-header,.booking-modal-body,.booking-modal-footer{padding-left:14px;padding-right:14px}
}


/* White-label accent action controls */
.booking-icon-btn:hover:not(:disabled){
    color:var(--brand-accent)!important;
    border-color:var(--brand-accent)!important;
    background:rgba(var(--brand-accent-rgb),.08)!important;
}
.booking-slot-button.selected{
    background:var(--brand-accent)!important;
    border-color:var(--brand-accent)!important;
}
.booking-slot-button.available:hover{
    color:var(--brand-accent-dark)!important;
    border-color:var(--brand-accent)!important;
    background:rgba(var(--brand-accent-rgb),.07)!important;
}

/* 2026-09-21: add-ons can be assigned per selected time slot */
.public-slot-addons-section{padding-top:14px}.public-slot-addon-list{display:grid;gap:8px;margin-top:10px}.public-slot-addon-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px;align-items:center;gap:8px;padding:10px;border:1px solid var(--booking-line,#dfe5ec);border-radius:10px;background:#fbfcfe}.public-slot-addon-row>div strong,.public-slot-addon-row>div small{display:block}.public-slot-addon-row>div strong{font-size:10px;color:var(--text,#101828)}.public-slot-addon-row>div small{font-size:8px;color:var(--muted,#667085);margin-top:2px}.public-slot-addon-toggle{position:relative;border:1px solid #dce3ec;border-radius:9px;background:#fff;padding:9px 10px;cursor:pointer;text-align:center}.public-slot-addon-toggle input{position:absolute;opacity:0;pointer-events:none}.public-slot-addon-toggle span{font-size:9px;font-weight:800}.public-slot-addon-toggle:hover{border-color:var(--brand-accent)}.public-slot-addon-toggle.active{border-color:var(--brand-accent);background:rgba(var(--brand-accent-rgb),.09);box-shadow:inset 0 0 0 1px var(--brand-accent)}
@media(max-width:760px){.public-slot-addon-row{grid-template-columns:1fr 1fr}.public-slot-addon-row>div{grid-column:1/-1}}


/* Public court booking: responsive heading and checkout dialog (2026-10-09).
   Keep these overrides page-scoped; colors follow the editable Accent setting. */
.booking-board-page .public-sport-hero h1{
    font-size:35px!important;
    line-height:1.14!important;
    letter-spacing:-.035em!important;
    overflow-wrap:break-word;
}
.booking-board-page .booking-modal-dialog{
    box-sizing:border-box;
    width:min(740px,100%);
    max-width:100%;
    min-width:0;
    height:min(780px,calc(100dvh - 36px));
    max-height:calc(100dvh - 36px);
}
.booking-board-page .booking-modal-dialog form{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    min-width:0;
    flex:1 1 auto;
}
.booking-board-page .booking-modal-body{
    box-sizing:border-box;
    min-width:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
}
.booking-board-page .booking-checkout-step{
    min-width:0;
    grid-template-columns:minmax(0,1fr);
}
.booking-board-page .booking-checkout-step > *,
.booking-board-page .booking-summary-card,
.booking-board-page .booking-info-card,
.booking-board-page .booking-payment-card,
.booking-board-page .booking-qr-details{
    box-sizing:border-box;
    min-width:0;
    max-width:100%;
}
.booking-board-page .booking-summary-club strong{
    min-width:0;
    text-align:right;
    overflow-wrap:anywhere;
}
.booking-board-page .booking-summary-line{
    grid-template-columns:minmax(0,1fr) max-content;
}
.booking-board-page .booking-summary-line strong,
.booking-board-page .booking-summary-line small{
    overflow-wrap:anywhere;
}
.booking-board-page .booking-player-grid,
.booking-board-page .booking-addon-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.booking-board-page .booking-player-grid label,
.booking-board-page .booking-field-stack label,
.booking-board-page .booking-payment-option{
    min-width:0;
}
.booking-board-page .booking-player-grid input,
.booking-board-page .booking-field-stack input,
.booking-board-page .booking-field-stack textarea,
.booking-board-page .booking-qr-details input{
    box-sizing:border-box;
    max-width:100%;
    min-width:0;
}
.booking-board-page .booking-inline-field{
    grid-template-columns:minmax(0,1fr) auto;
}
.booking-board-page .public-slot-addon-row{
    grid-template-columns:minmax(0,1fr) minmax(0,135px) minmax(0,135px);
}
.booking-board-page .public-slot-addon-row > *{
    min-width:0;
}
.booking-board-page .booking-modal-footer{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.booking-board-page .booking-modal-footer button{
    min-width:0;
    min-height:48px;
    font-size:12px;
}
/* Primary actions and progress respect the white-label Accent color. */
.booking-board-page .booking-book-now:not(:disabled),
.booking-board-page .booking-footer-primary:not(:disabled){
    background:var(--brand-accent,var(--booking-blue));
    border-color:var(--brand-accent,var(--booking-blue));
    color:var(--brand-on-accent,#fff);
}
.booking-board-page .booking-book-now:hover:not(:disabled),
.booking-board-page .booking-footer-primary:hover:not(:disabled){
    background:var(--brand-accent-dark,var(--brand-accent));
    border-color:var(--brand-accent-dark,var(--brand-accent));
    color:var(--brand-on-accent,#fff);
}
.booking-board-page .booking-footer-primary:disabled{
    background:var(--brand-accent,var(--booking-blue));
    border-color:var(--brand-accent,var(--booking-blue));
    color:var(--brand-on-accent,#fff);
    opacity:.5;
    cursor:not-allowed;
}
.booking-board-page .booking-footer-secondary{
    background:#fff;
    border-color:var(--brand-accent,var(--booking-blue));
    color:var(--brand-accent-dark,var(--booking-blue));
}
.booking-board-page .booking-footer-secondary:hover{
    background:rgba(var(--brand-accent-rgb),.08);
}
.booking-board-page .booking-modal-progress span{
    background:var(--brand-accent,var(--booking-blue));
}
.booking-board-page .booking-step-label{
    color:var(--brand-accent-dark,var(--booking-blue));
}
.booking-board-page .booking-modal-footer button:focus-visible,
.booking-board-page .booking-book-now:focus-visible{
    outline:3px solid rgba(var(--brand-accent-rgb),.35);
    outline-offset:2px;
}
@media(max-width:760px){
    .booking-board-page .public-sport-hero{
        padding:24px 20px;
        border-radius:16px;
    }
    .booking-board-page .public-sport-hero h1{
        font-size:clamp(27px,7vw,32px)!important;
        line-height:1.17!important;
    }
    .booking-board-page .public-sport-hero p{
        margin-top:12px;
        font-size:15px;
        line-height:1.5;
    }
    .booking-board-page .booking-modal-backdrop{
        padding:0;
    }
    .booking-board-page .booking-modal-dialog{
        width:100%;
        max-width:100%;
        height:100vh;
        height:100dvh;
        max-height:100vh;
        max-height:100dvh;
        border-radius:0;
    }
    .booking-board-page .booking-modal-footer{
        padding-bottom:max(12px,env(safe-area-inset-bottom));
    }
    .booking-board-page .booking-player-grid,
    .booking-board-page .booking-addon-grid{
        grid-template-columns:minmax(0,1fr);
    }
    .booking-board-page .booking-inline-field{
        grid-template-columns:minmax(0,1fr);
    }
    .booking-board-page .public-slot-addon-row{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .booking-board-page .public-slot-addon-row > div{
        grid-column:1/-1;
    }
}
@media(max-width:380px){
    .booking-board-page .public-sport-hero{
        padding:20px 16px;
    }
    .booking-board-page .public-sport-hero h1{
        font-size:27px!important;
    }
    .booking-board-page .booking-modal-header,
    .booking-board-page .booking-modal-body,
    .booking-board-page .booking-modal-footer{
        padding-left:12px;
        padding-right:12px;
    }
}


/* 30-minute add-on selector shared by public and staff calendar dialogs. */
.booking-machine-window{display:grid;gap:6px;min-width:0;width:100%;align-content:center;color:var(--brand-text,#111827);font-weight:700;font-size:11px}
.booking-machine-window span{font-size:10px;line-height:1.35}
.booking-machine-window select{display:block;width:100%;max-width:100%;min-width:0;padding:9px 10px;border-radius:9px;border:1px solid var(--booking-border,#d0d5dd);background:#fff;color:#111827;font-size:11px}
.public-slot-addon-row .booking-machine-window,.staff-slot-addon-options .booking-machine-window{min-width:0}
.staff-slot-addon-options{min-width:0}
@media(max-width:760px){.public-slot-addon-row .booking-machine-window{grid-column:1/-1}.staff-slot-addon-options .booking-machine-window{width:100%}}


/* Early-morning advance-booking notice (public court grid only). */
.public-sport-hero .public-morning-advance-note {
    display: inline-block;
    max-width: 760px;
    margin: 10px 0 0;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

/* Booking checkout: align consent checkboxes with their text.
   Global input sizing must not turn a checkbox into a full-width field. */
.booking-board-page label.booking-confirm-check{
    display:flex!important;
    align-items:center;
    gap:12px;
    min-height:50px;
    margin:0;
    padding:13px 15px;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
    cursor:pointer;
}
.booking-board-page label.booking-confirm-check>input[type="checkbox"]{
    appearance:auto;
    -webkit-appearance:checkbox;
    display:block!important;
    flex:0 0 18px;
    width:18px!important;
    min-width:18px;
    height:18px!important;
    min-height:18px;
    margin:0!important;
    padding:0!important;
    border-radius:4px;
    box-shadow:none;
    accent-color:var(--brand-accent,#617D7B);
}
.booking-board-page label.booking-confirm-check>span{
    display:block;
    flex:1 1 auto;
    min-width:0;
    margin:0;
    padding:0;
    overflow-wrap:anywhere;
}
@media(max-width:580px){
    .booking-board-page label.booking-confirm-check{
        font-size:12px;
        gap:11px;
        padding:12px;
    }
}

/* Booking dialog type scale: 12px details/labels, 13px primary copy.
   Avoid tiny 7–10px mixed with large 15px copy in the same checkout. */
.booking-board-page .booking-modal-body{
    --checkout-type:12px;--checkout-lead:13px;
}
.booking-board-page .booking-modal-body :is(
    .public-slot-addon-row>div strong,.public-slot-addon-row>div small,
    .booking-machine-window,.booking-machine-window span,
    .public-slot-addon-toggle span,
    .booking-field-stack>label,.booking-field-stack label,
    .booking-qr-details>label,.booking-qr-details label,
    .booking-qr-details>strong,.booking-qr-details>p,
    .booking-payment-card>strong,.booking-payment-option b,
    .booking-payment-option em,.booking-qr-account,
    .booking-payment-total-card span,.booking-payment-total-card small,
    .booking-terms-note,.booking-confirm-check,
    .booking-summary-line strong,.booking-summary-line small,
    .booking-review-warning p,
    .field-help
){
    font-size:var(--checkout-type)!important;
    line-height:1.5;
}
.booking-board-page .booking-modal-body :is(
    .booking-qr-details input,
    .booking-player-grid input,.booking-field-stack input,
    .booking-field-stack textarea,.booking-machine-window select
){font-size:var(--checkout-lead)!important;line-height:1.4}
.booking-board-page .booking-modal-body .booking-confirm-check{
    font-size:var(--checkout-lead)!important;
    line-height:1.5;align-items:center!important;
}
.booking-board-page .booking-modal-body .booking-confirm-check>span{
    font-size:var(--checkout-lead)!important;
    font-weight:500;line-height:1.5;
}
.booking-board-page .booking-modal-body .booking-payment-total-card strong{
    font-size:26px;
}
.booking-board-page .booking-modal-body .booking-payment-option{
    min-height:46px;
}
.booking-board-page .booking-modal-body .booking-qr-details label small{
    font-size:var(--checkout-type)!important;
}
/* Alerts in the court booking flow center the icon beside their message. */
.booking-board-page .booking-review-warning{
    align-items:center!important;
}
.booking-board-page .booking-review-warning>span{
    flex:0 0 auto;align-self:center;
}

/* 2026-10-16: member credits and simplified per-slot add-ons */
.booking-board-page .booking-modal-body [hidden],
.booking-board-page .booking-checkout-step [hidden]{display:none!important}
.booking-board-page .public-slot-addon-list{display:grid;gap:12px;margin-top:12px}
.booking-board-page .public-slot-addon-row{
    display:grid;grid-template-columns:minmax(0,1fr)!important;
    padding:16px;gap:14px;align-items:stretch;
    background:var(--brand-surface,#fff);border:1px solid #dae2e8;border-radius:14px
}
.booking-board-page .public-addon-slot-heading{min-width:0;display:flex;gap:4px;flex-direction:column;padding-bottom:11px;border-bottom:1px solid #e9edf0}
.booking-board-page .public-addon-slot-heading strong{font-size:13px!important;line-height:1.4}
.booking-board-page .public-addon-slot-heading small{font-size:11px!important;line-height:1.5}
.booking-board-page .public-addon-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
.booking-board-page .public-addon-control-grid>label{min-width:0!important;max-width:100%;box-sizing:border-box}
.booking-board-page .public-slot-addon-toggle{
    min-height:100px;display:flex;align-items:center;justify-content:flex-start;
    gap:10px;text-align:left;padding:14px;border-radius:10px
}
.booking-board-page .public-slot-addon-toggle span{display:grid;gap:6px;min-width:0;font-size:12px!important}
.booking-board-page .public-slot-addon-toggle span strong,
.booking-board-page .public-addon-field-title strong{font-size:13px!important;line-height:1.4;color:var(--text,#121827)}
.booking-board-page .public-slot-addon-toggle span small,
.booking-board-page .public-addon-field-title small{font-size:11px!important;font-weight:500;color:var(--muted,#667085)}
.booking-board-page .public-slot-addon-toggle:before{
    content:'+';font-size:18px;font-weight:700;flex:0 0 29px;height:29px;border-radius:50%;
    display:grid;place-items:center;background:#eef2f4;color:#526c69
}
.booking-board-page .public-slot-addon-toggle.active:before{content:'✓';background:var(--brand-accent,#64847e);color:#fff}
.booking-board-page .booking-machine-window{
    display:grid;align-content:center;gap:8px;padding:10px 12px;
    background:#f8fafb;border:1px solid #e0e6eb;border-radius:10px
}
.booking-board-page .public-addon-field-title{display:grid;gap:3px;min-width:0}
.booking-board-page .booking-machine-window select{width:100%;min-width:0;max-width:100%;font-size:12px!important;min-height:43px;white-space:normal}
.booking-board-page .booking-member-benefits{
    padding:18px;border:1px solid #d5e3dc;border-radius:14px;background:#f5faf7;
    display:grid;gap:14px;min-width:0
}
.booking-board-page .booking-benefits-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.booking-board-page .booking-benefits-heading h3{margin:5px 0 0;font-size:17px;line-height:1.3;font-weight:800}
.booking-board-page .booking-benefits-badge{font-size:11px;font-weight:700;white-space:nowrap;background:#def4e6;color:#17643c;padding:6px 10px;border-radius:20px}
.booking-board-page .booking-member-number{display:grid;gap:6px;font-size:12px;font-weight:700;min-width:0}
.booking-board-page .booking-member-number input{width:100%;min-width:0}
.booking-board-page .booking-benefits-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-board-page .booking-benefit-option{
    display:flex;align-items:flex-start;gap:12px;background:#fff;
    border:1px solid #d4e0d9;border-radius:12px;padding:14px;min-width:0;cursor:pointer
}
.booking-board-page .booking-benefit-option:has(input:checked){border-color:var(--brand-accent,#64847e);box-shadow:inset 0 0 0 1px var(--brand-accent,#64847e)}
.booking-board-page .booking-benefit-option input[type=checkbox]{
    margin:3px 0 0;flex:0 0 18px;width:18px;height:18px;accent-color:var(--brand-accent,#64847e)
}
.booking-board-page .booking-benefit-option-info{display:grid;gap:5px;min-width:0}
.booking-board-page .booking-benefit-option-info strong{font-size:13px!important;line-height:1.35}
.booking-board-page .booking-benefit-option-info small{font-size:11px!important;line-height:1.5;color:#63726d}
.booking-board-page .booking-benefit-option-info em{font-style:normal;font-size:11px!important;font-weight:700;color:#276947}
.booking-board-page .booking-benefits-help{margin:0;color:#587067;font-size:11px!important;line-height:1.55}
.booking-board-page .booking-credit-confirmation{
    padding:18px;display:flex;gap:14px;align-items:flex-start;border:1px solid #c9decf;
    background:#f1f8f2;border-radius:13px
}
.booking-board-page .booking-credit-confirmation-icon{
    flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;
    background:#d5eadb;color:#27613d;border-radius:50%;font-weight:800
}
.booking-board-page .booking-credit-confirmation strong{font-size:15px!important}
.booking-board-page .booking-credit-confirmation p{font-size:12px!important;line-height:1.6;margin:8px 0}
.booking-board-page .booking-pay-remainder{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:12px!important;line-height:1.5;font-weight:700}
.booking-board-page .booking-pay-remainder input{width:18px;height:18px;flex:0 0 18px;accent-color:var(--brand-accent,#64847e)}
.booking-board-page .booking-remaining-note{font-size:12px!important;color:#803f26;background:#fff3e7;border-radius:8px;padding:10px;margin-top:10px!important}
@media(max-width:600px){
    .booking-board-page .public-addon-control-grid,
    .booking-board-page .booking-benefits-options{grid-template-columns:minmax(0,1fr)}
    .booking-board-page .public-slot-addon-toggle{min-height:65px}
    .booking-board-page .booking-member-benefits{padding:14px}
}

/* Member credits: make off-peak eligibility visible before submission. */
.booking-board-page .booking-credit-schedule{
    display:grid;gap:4px;padding:13px 14px;border-radius:11px;
    background:#fff;border:1px solid #d6e4db;min-width:0
}
.booking-board-page .booking-credit-schedule strong{
    font-size:12px;font-weight:800;color:#284e38
}
.booking-board-page .booking-credit-schedule span{
    font-size:13px;font-weight:700;line-height:1.5;color:#244733;
    overflow-wrap:anywhere
}
.booking-board-page .booking-credit-schedule small{
    font-size:11px;line-height:1.5;color:#596e64
}
.booking-board-page .booking-credit-eligibility{
    margin:0;padding:12px 14px;border-radius:10px;
    font-size:12px!important;line-height:1.6!important;
    background:#fff3e7;color:#803e20;border:1px solid #eed1b3
}
.booking-board-page .booking-credit-eligibility[data-status="unknown"]{
    background:#f0f4f8;color:#465467;border-color:#d4dfe8
}

/* Keep server validation inside the dialog, immediately below its header. */
.booking-board-page .booking-modal-errors{
    flex:0 0 auto;
    min-height:0;
    margin:10px 18px 6px;
    padding:12px 15px;
    max-height:min(30dvh,180px);
    overflow-y:auto;
    border-radius:11px;
    font-size:12px!important;
    line-height:1.55;
    overscroll-behavior:contain
}
.booking-board-page .booking-modal-errors strong{
    font-size:12px!important;
    margin-bottom:5px;
    line-height:1.4
}
.booking-board-page .booking-modal-errors li{
    font-size:12px!important;
    line-height:1.5;
    margin:3px 0
}
@media(max-width:575.98px){
    .booking-board-page .booking-modal-errors{margin:8px 12px 4px;max-height:22dvh;padding:10px 12px}
}
