:root{--navy:#071a2d;--navy-2:#0b253e;--lime:#b9df20;--lime-dark:#6f9811;--ink:#102235;--muted:#687582;--line:#e1e6e3;--paper:#f7f8f5;--surface:#fff;--danger:#a43e3e;--shadow:0 18px 55px rgba(7,26,45,.09);font-family:"Manrope",Inter,system-ui,sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.eyebrow{display:block;color:var(--lime-dark);font-size:.68rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.site-header{position:sticky;top:0;z-index:30;height:72px;background:var(--navy);color:#fff;box-shadow:0 5px 24px rgba(4,17,29,.12)}.nav-shell{width:min(1320px,calc(100% - 64px));height:100%;margin:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center}.brand{display:flex;align-items:center;gap:10px}.brand-logo{width:43px;height:43px;object-fit:contain}.brand strong,.brand small{display:block}.brand strong{font-size:.82rem;letter-spacing:.02em}.brand small{margin-top:2px;color:var(--lime);font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.main-nav{height:100%;display:flex;justify-content:center;gap:36px}.main-nav a{position:relative;display:grid;place-items:center;color:#c5ced6;font-size:.82rem;font-weight:700}.main-nav a:hover,.main-nav a.active{color:#fff}.main-nav a.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--lime)}.account-menu-wrap{position:relative;justify-self:end}.account-button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#fff;font-size:.82rem;font-weight:700}.account-button svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.7}.account-menu{position:absolute;right:0;top:calc(100% + 17px);min-width:175px;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow)}.account-menu button{width:100%;padding:10px;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;font-size:.78rem;font-weight:700}.account-menu button:hover{background:var(--paper)}
.placeholder-page{min-height:calc(100vh - 72px - 110px);display:grid;place-items:center;text-align:center}.placeholder-page h1{margin:12px 0 8px;font-size:clamp(2.5rem,6vw,5rem)}.placeholder-page p{margin:0 0 24px;color:var(--muted)}.text-link{color:var(--navy);font-weight:800}.text-link span{color:var(--lime-dark)}
.booking-hero{height:300px;background:linear-gradient(90deg,rgba(4,18,31,.94) 0%,rgba(5,20,34,.73) 48%,rgba(6,23,37,.32) 100%),url("assets/landing-topspin.png") center 48%/cover;color:#fff}.hero-inner{width:min(1320px,calc(100% - 64px));height:100%;margin:auto;display:grid;grid-template-columns:1fr 350px;align-items:center;gap:70px}.hero-kicker{margin:0 0 10px;color:var(--lime);font-size:.69rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.hero-copy h1{margin:0;font-size:clamp(2.25rem,4.1vw,3.8rem);line-height:1.02;letter-spacing:-.045em}.hero-description{margin:14px 0 18px;color:#d8dfe5;font-size:.97rem;line-height:1.6}.hero-benefits{display:flex;gap:24px;margin:0;padding:0;list-style:none;color:#e3e8ec;font-size:.7rem;font-weight:600}.hero-benefits li{display:flex;align-items:center;gap:7px}.hero-benefits span{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(185,223,32,.12)}.how-card{align-self:center;padding:18px 20px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(7,26,45,.84);box-shadow:0 18px 50px rgba(0,0,0,.18);backdrop-filter:blur(8px)}.how-card>p{margin:0 0 12px;color:var(--lime);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.how-card ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.how-card li{display:grid;grid-template-columns:29px 1fr;align-items:center;gap:10px}.how-card li>span{display:grid;width:27px;height:27px;place-items:center;border:1px solid rgba(185,223,32,.45);border-radius:50%;color:var(--lime);font-size:.6rem;font-weight:800}.how-card strong,.how-card small{display:block}.how-card strong{font-size:.72rem}.how-card small{margin-top:1px;color:#9fadb9;font-size:.61rem}
.stepper-wrap{border-bottom:1px solid var(--line);background:#fff}.stepper{width:min(1320px,calc(100% - 64px));height:82px;margin:auto;padding:0;display:grid;grid-template-columns:repeat(4,1fr);list-style:none}.stepper li{position:relative;display:flex;align-items:center;gap:12px;color:#87919a}.stepper li:not(:last-child):after{content:"";position:absolute;right:22px;width:calc(100% - 138px);height:1px;background:#dfe4e1}.stepper li>span{z-index:1;display:grid;width:34px;height:34px;place-items:center;border:1px solid #dce2df;border-radius:50%;background:#fff;font-size:.72rem;font-weight:800}.stepper small,.stepper strong{display:block}.stepper small{font-size:.56rem;letter-spacing:.08em;text-transform:uppercase}.stepper strong{margin-top:2px;color:#53616c;font-size:.77rem}.stepper li.active>span,.stepper li.complete>span{border-color:var(--lime);background:var(--lime);color:var(--navy)}.stepper li.active strong,.stepper li.complete strong{color:var(--ink)}.stepper li.complete:not(:last-child):after{background:var(--lime)}
.booking-section{width:min(1320px,calc(100% - 64px));margin:0 auto;padding:50px 0 76px}.booking-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.booking-heading h2{margin:7px 0 0;font-size:1.65rem;letter-spacing:-.035em}.booking-heading p{max-width:420px;margin:0;color:var(--muted);font-size:.75rem;line-height:1.55}.booking-surface{display:grid;grid-template-columns:230px minmax(0,1fr) 275px;gap:0;min-height:580px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.calendar-panel,.selection-panel,.summary-card{padding:25px}.calendar-panel{border-right:1px solid var(--line);background:#fbfcfa}.selection-panel{min-width:0}.summary-card{align-self:stretch;border-left:1px solid var(--line);background:var(--navy);color:#fff}.panel-title,.summary-header{display:flex;align-items:center;gap:10px}.number-mark{display:grid;width:30px;height:30px;place-items:center;border:1px solid #dfe6df;border-radius:50%;color:var(--lime-dark);font-size:.62rem;font-weight:800}.panel-title small,.summary-header small{display:block;color:#8b969f;font-size:.59rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.panel-title h3,.summary-header h3{margin:1px 0 0;font-size:.95rem}.calendar-nav{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;margin:25px 0 17px}.calendar-nav strong{text-align:center;font-size:.76rem;text-transform:capitalize}.calendar-nav button{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.1rem}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-week{margin-bottom:7px;color:#9aa3aa;text-align:center;font-size:.54rem;font-weight:800}.calendar-day{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:.64rem}.calendar-day:not(:disabled):hover{background:#edf3e0}.calendar-day.selected{background:var(--lime);color:var(--navy);font-weight:800;box-shadow:0 5px 14px rgba(111,152,17,.22)}.calendar-day.today:not(.selected){border:1px solid var(--lime-dark);color:var(--lime-dark);font-weight:800}.calendar-day:disabled{cursor:not-allowed;color:#c6ccca}.calendar-day.empty{visibility:hidden}.calendar-today{display:block;margin:19px auto 0;border:0;background:transparent;color:var(--lime-dark);font-size:.62rem;font-weight:800}.court-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.court-card{position:relative;overflow:hidden;border:1.5px solid var(--line);border-radius:11px;background:#fff;transition:.18s ease}.court-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(7,26,45,.09)}.court-card.selected{border-color:#88ad16;box-shadow:0 0 0 3px rgba(185,223,32,.17)}.court-photo{height:122px;background-position:center;background-size:cover}.court-card[data-court="grass"] .court-photo{background-image:linear-gradient(180deg,transparent,rgba(7,26,45,.2)),url("assets/campo-erba.jpg");background-position:center 58%}.court-card[data-court="cement"] .court-photo{background-image:linear-gradient(180deg,transparent,rgba(7,26,45,.2)),url("assets/campo-cemento.webp")}.status-pill{position:absolute;top:10px;left:10px;padding:6px 8px;border-radius:5px;background:#fff;color:#4e7110;font-size:.53rem;font-weight:800;box-shadow:0 4px 14px rgba(0,0,0,.12)}.status-pill.busy{color:var(--danger)}.court-check{position:absolute;top:10px;right:10px;display:none;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--lime);color:var(--navy);font-weight:900}.court-card.selected .court-check{display:grid}.court-info{padding:14px}.court-info h4{margin:0;font-size:.88rem}.court-info>span{display:block;margin-top:2px;color:var(--muted);font-size:.62rem}.court-features{display:flex;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid #edf0ee;color:#576672;font-size:.56rem;font-weight:700}.court-features span{display:flex;align-items:center;gap:4px}.court-features i{width:6px;height:6px;border-radius:50%;background:var(--lime-dark)}.court-select{position:absolute;inset:0;border:0;background:transparent;font-size:0}.times-section{margin-top:28px;padding-top:23px;border-top:1px solid var(--line)}.times-heading{display:flex;align-items:center;justify-content:space-between}.availability-legend{display:flex;gap:12px;color:var(--muted);font-size:.55rem}.availability-legend span{display:flex;align-items:center;gap:5px}.availability-legend i{width:7px;height:7px;border-radius:50%}.availability-legend .available{background:var(--lime-dark)}.availability-legend .occupied{background:#c9cfcc}.time-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;margin-top:16px}.time-button{min-height:37px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:.65rem;font-weight:700}.time-button:not(:disabled):hover{border-color:#93b722;background:#f4f8e8}.time-button[aria-pressed="true"]{border-color:var(--lime);background:var(--lime);color:var(--navy);font-weight:800}.time-button:disabled{cursor:not-allowed;background:#f2f4f2;color:#aeb6b1;text-decoration:line-through}.time-empty{grid-column:1/-1;padding:25px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center;font-size:.7rem}.summary-header .number-mark{border-color:rgba(185,223,32,.35);color:var(--lime)}.summary-header small{color:#8394a3}.summary-header h3{font-size:1rem}.summary-date{margin-top:27px;padding:17px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.summary-date span,.summary-date strong{display:block}.summary-date span{color:#8495a4;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em}.summary-date strong{margin-top:5px;font-size:.78rem}.summary-list{margin:0}.summary-list div{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.09);font-size:.66rem}.summary-list dt{color:#8fa0ae}.summary-list dd{margin:0;text-align:right;font-weight:700}.summary-note{display:flex;gap:8px;margin-top:18px;padding:10px;border-radius:7px;background:rgba(255,255,255,.06);color:#aebbc5;font-size:.56rem;line-height:1.5}.summary-note>span{display:grid;flex:0 0 17px;height:17px;place-items:center;border:1px solid #7f909d;border-radius:50%;font-weight:800}.summary-note p{margin:0}.confirm-button{width:100%;min-height:46px;margin-top:18px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:7px;background:var(--lime);color:var(--navy);font-size:.7rem;font-weight:800}.confirm-button:disabled{cursor:not-allowed;background:#32465a;color:#718394}.secure-note{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:10px;color:#748797;font-size:.5rem}.secure-note svg{width:10px;fill:none;stroke:currentColor;stroke-width:1.8}
.my-bookings-section{width:min(1320px,calc(100% - 64px));margin:0 auto 70px;padding-top:35px;border-top:1px solid var(--line);display:grid;grid-template-columns:280px 1fr;gap:35px}.my-bookings-section h2{margin:7px 0 8px;font-size:1.35rem}.my-bookings-section p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.5}.booking-list{display:grid;gap:9px}.booking-empty,.booking-item,.player-card{padding:14px 16px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:.68rem}.booking-item,.player-card{display:flex;justify-content:space-between;align-items:center}.booking-item strong,.booking-item span,.player-card strong,.player-card span{display:block}.booking-item span,.player-card span{margin-top:3px;color:var(--muted)}.player-tags span{padding:6px 9px;border-radius:99px;background:#eef4dc;color:#5c7e10}.primary-button,.secondary-button{min-height:42px;padding:0 17px;border-radius:7px;font-weight:800}.primary-button{border:0;background:var(--navy);color:#fff}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.cancel-booking-button{color:var(--danger)}
.booking-item.is-pending{border-color:#e5c979;background:#fffdf5}
.site-footer{background:var(--navy);color:#9cabb7}.footer-shell{width:min(1320px,calc(100% - 64px));min-height:110px;margin:auto;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:35px;font-size:.65rem}.footer-brand{display:flex;align-items:center;gap:9px;color:#fff}.footer-brand img{object-fit:contain}.footer-brand strong,.footer-brand small{display:block}.footer-brand small{color:var(--lime);font-size:.55rem;text-transform:uppercase}.footer-links{display:flex;gap:20px;color:#d4dce2}
.modal{width:min(510px,calc(100% - 30px));padding:0;border:0;border-radius:12px;box-shadow:0 25px 80px rgba(4,18,31,.3)}.admin-modal{width:min(1040px,calc(100% - 30px))}.modal::backdrop{background:rgba(4,18,31,.68)}.modal-card{position:relative;display:grid;gap:16px;padding:28px;background:#fff}.modal h2{margin:0}.close-button{position:absolute;top:14px;right:14px}.icon-button{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff}.segmented-control{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:8px;background:#f1f3f1}.segment-button{min-height:36px;border:0;border-radius:6px;background:transparent;font-weight:800}.segment-button.active{background:#fff;box-shadow:0 3px 12px rgba(7,26,45,.08)}.auth-message{margin:0;color:var(--muted);font-size:.75rem}.auth-message.error{color:var(--danger)}.auth-message.success{color:var(--lime-dark)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal label,.admin-reserve-form label{display:grid;gap:6px;color:var(--muted);font-size:.7rem;font-weight:700}.modal input,.modal select{width:100%;min-height:43px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff}.modal-actions{display:flex;gap:8px}.google-auth-section{display:grid;gap:12px}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:var(--line)}.google-signin-button{min-height:40px;display:flex;justify-content:center}.google-signin-button>div{max-width:100%}.admin-card{max-height:88vh;overflow:auto}.admin-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-section{display:grid;align-content:start;gap:12px;padding:16px;border:1px solid var(--line);border-radius:9px;background:#fafbfa}.admin-section h3,.admin-section p{margin:0}.admin-section p{color:var(--muted);font-size:.7rem}.admin-section-heading,.admin-booking-row{display:flex;justify-content:space-between;gap:12px}.admin-list,.admin-reserve-form{display:grid;gap:10px}.admin-booking-row{padding:10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:.68rem}.date-control{display:grid;gap:5px;font-size:.65rem}.compact-date{min-width:150px}
@media(max-width:1050px){.booking-surface{grid-template-columns:210px 1fr}.summary-card{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.3fr;gap:0 25px}.summary-header,.summary-date{grid-column:1}.summary-list{grid-column:2;grid-row:1/4}.summary-note,.confirm-button,.secure-note{grid-column:1}.time-grid{grid-template-columns:repeat(6,1fr)}.hero-inner{grid-template-columns:1fr 320px;gap:35px}}
@media(max-width:760px){.site-header{height:auto}.nav-shell{width:calc(100% - 30px);min-height:66px;grid-template-columns:1fr auto}.main-nav{order:3;grid-column:1/-1;height:45px;justify-content:space-between;gap:0}.main-nav a{font-size:.7rem}.booking-hero{height:auto}.hero-inner{width:calc(100% - 30px);padding:42px 0;grid-template-columns:1fr}.how-card{display:none}.hero-benefits{flex-wrap:wrap;gap:10px 18px}.stepper{width:calc(100% - 30px);height:67px}.stepper li{gap:6px}.stepper li>span{width:27px;height:27px}.stepper li div small{display:none}.stepper li:not(:last-child):after{display:none}.booking-section{width:calc(100% - 30px);padding:35px 0 55px}.booking-heading{align-items:start;flex-direction:column;gap:10px}.booking-surface{grid-template-columns:1fr}.calendar-panel{border-right:0;border-bottom:1px solid var(--line)}.selection-panel{padding:22px 16px}.court-grid{grid-template-columns:1fr}.court-photo{height:150px}.time-grid{grid-template-columns:repeat(4,1fr)}.summary-card{grid-column:auto;display:block;border-top:0}.summary-list{margin-top:0}.confirm-button.enabled{position:sticky;bottom:12px;z-index:10;box-shadow:0 8px 30px rgba(0,0,0,.3)}.my-bookings-section{width:calc(100% - 30px);grid-template-columns:1fr}.footer-shell{width:calc(100% - 30px);padding:28px 0;grid-template-columns:1fr 1fr}.footer-shell>p{display:none}.footer-links{flex-direction:column;gap:8px}.admin-layout,.form-grid{grid-template-columns:1fr}}
@media(max-width:430px){.brand-logo{width:38px;height:38px}.brand strong{font-size:.72rem}.account-button span{font-size:0}.account-button span:after{content:"Accedi";font-size:.7rem}.hero-copy h1{font-size:2.35rem}.hero-benefits{display:grid}.stepper li div{display:none}.stepper li{justify-content:center}.booking-heading p{font-size:.68rem}.calendar-panel{padding:22px 18px}.times-heading{align-items:flex-start;gap:12px}.availability-legend{flex-direction:column;gap:4px}.time-grid{grid-template-columns:repeat(3,1fr)}.footer-shell{grid-template-columns:1fr}.footer-shell>span{text-align:left}.booking-item,.player-card{align-items:stretch;flex-direction:column;gap:10px}}
.calendar-nav button:disabled{cursor:not-allowed;opacity:.35}
@media(max-width:430px){.account-button span{font-size:inherit}.account-button span:after{content:none}.account-button{font-size:.68rem}}

/* Booking readability: larger type, controls and touch targets. */
.booking-page{font-size:16px}
.booking-page .hero-benefits{font-size:.8rem}
.booking-page .how-card{padding:23px 24px}
.booking-page .how-card>p{font-size:.75rem}
.booking-page .how-card strong{font-size:.82rem}
.booking-page .how-card small{font-size:.7rem}
.booking-page .stepper{height:96px}
.booking-page .stepper li{gap:14px}
.booking-page .stepper li>span{width:40px;height:40px;font-size:.8rem}
.booking-page .stepper small{font-size:.65rem}
.booking-page .stepper strong{font-size:.92rem}
.booking-page .booking-section{padding-top:64px}
.booking-page .booking-heading{margin-bottom:27px}
.booking-page .booking-heading h2{font-size:2rem}
.booking-page .booking-heading p{font-size:.88rem}
.booking-page .booking-pricing-note{display:block;margin-top:9px;color:var(--lime-dark);font-size:.78rem;font-weight:800}
.booking-page .booking-surface{grid-template-columns:270px minmax(0,1fr) 320px;min-height:650px}
.booking-page .calendar-panel,.booking-page .selection-panel,.booking-page .summary-card{padding:32px}
.booking-page .panel-title{gap:12px}
.booking-page .number-mark{width:36px;height:36px;font-size:.72rem}
.booking-page .panel-title small,.booking-page .summary-header small{font-size:.67rem}
.booking-page .panel-title h3,.booking-page .summary-header h3{font-size:1.12rem}
.booking-page .calendar-nav{margin:30px 0 22px}
.booking-page .calendar-nav button{width:34px;height:34px}
.booking-page .calendar-nav strong{font-size:.9rem}
.booking-page .calendar-week{font-size:.64rem}
.booking-page .calendar-grid{gap:6px}
.booking-page .calendar-day{font-size:.76rem}
.booking-page .calendar-today{font-size:.7rem}
.booking-page .court-grid{gap:16px;margin-top:24px}
.booking-page .court-photo{height:160px}
.booking-page .court-info{padding:18px}
.booking-page .court-info h4{font-size:1rem}
.booking-page .court-info>span{font-size:.74rem}
.booking-page .court-features{gap:12px;margin-top:13px;padding-top:11px;font-size:.66rem}
.booking-page .status-pill{font-size:.62rem}
.booking-page .times-section{margin-top:34px;padding-top:28px}
.booking-page .availability-legend{font-size:.65rem}
.booking-page .time-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-top:19px}
.booking-page .time-button{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.8rem}
.booking-page .time-button small{font-size:.62rem;font-weight:600}
.booking-page .summary-date{margin-top:32px;padding:21px 0}
.booking-page .summary-date span{font-size:.66rem}
.booking-page .summary-date strong{font-size:.9rem}
.booking-page .summary-list div{padding:17px 0;font-size:.76rem}
.booking-page .summary-note{font-size:.66rem}
.booking-page .confirm-button{min-height:52px;font-size:.8rem}
.booking-page .secure-note{font-size:.6rem}
.booking-page .price-total span{font-size:.75rem}
.booking-page .price-total strong{font-size:1.7rem}
.booking-page .my-bookings-section h2{font-size:1.6rem}
.booking-page .my-bookings-section p,.booking-page .booking-item,.booking-page .player-card{font-size:.8rem}
.booking-page .time-grid{display:block}
.range-instruction{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:15px}
.range-instruction strong{font-size:.82rem}
.range-instruction span{color:var(--muted);font-size:.68rem}
.range-time-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.range-time-button{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:.8rem;font-weight:800}
.range-time-button small{color:var(--muted);font-size:.58rem;font-weight:700}
.range-time-button:not(:disabled):hover{border-color:#93b722;background:#f4f8e8}
.range-time-button.is-start,.range-time-button.is-end{border-color:var(--lime-dark);background:var(--lime);color:var(--navy);box-shadow:0 5px 14px rgba(111,152,17,.18)}
.range-time-button.is-start small,.range-time-button.is-end small{color:var(--navy)}
.range-time-button.in-range{border-color:#c9dc8b;background:#eef5dc;color:var(--ink)}
.range-time-button:disabled{cursor:not-allowed;background:#f2f4f2;color:#aeb6b1;text-decoration:line-through}
.range-time-button:disabled small{color:#aeb6b1}
.time-range-picker{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:end;gap:12px}
.time-range-field{display:grid;gap:8px}
.time-range-field>span{color:var(--muted);font-size:.72rem;font-weight:800}
.time-range-field select{width:100%;min-height:54px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:.9rem;font-weight:800}
.time-range-field select:focus{outline:2px solid rgba(185,223,32,.55);outline-offset:2px;border-color:var(--lime-dark)}
.time-range-field select:disabled{cursor:not-allowed;background:#f2f4f2;color:#9aa49f}
.time-range-separator{padding-bottom:16px;color:var(--lime-dark);font-size:1.35rem;font-weight:800;text-align:center}
.time-range-help{margin:13px 0 0;color:var(--muted);font-size:.7rem;line-height:1.5}

@media(max-width:1050px){
  .booking-page .booking-surface{grid-template-columns:245px minmax(0,1fr) 300px}
  .booking-page .calendar-panel,.booking-page .selection-panel,.booking-page .summary-card{padding:27px}
  .booking-page .time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .range-time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:760px){
  .booking-page .booking-surface{grid-template-columns:1fr}
  .booking-page .calendar-panel{border-right:0;border-bottom:1px solid var(--line)}
  .booking-page .selection-panel{min-width:0;padding:24px 20px}
  .booking-page .court-grid{grid-template-columns:1fr}
  .booking-page .summary-card{grid-column:auto;display:block;border-left:0;border-top:1px solid var(--line)}
  .booking-page .summary-header,.booking-page .summary-date,.booking-page .summary-list,.booking-page .summary-note,.booking-page .confirm-button,.booking-page .secure-note{grid-column:auto;grid-row:auto}
  .booking-page .summary-list{margin-top:0}
  .booking-page .stepper{height:76px}
  .booking-page .stepper li>span{width:34px;height:34px}
  .booking-page .stepper strong{font-size:.78rem}
  .booking-page .booking-section{padding-top:44px}
  .booking-page .booking-heading h2{font-size:1.75rem}
  .booking-page .booking-heading p{font-size:.8rem}
  .booking-page .calendar-panel,.booking-page .selection-panel,.booking-page .summary-card{padding:24px 20px}
  .booking-page .court-photo{height:175px}
  .booking-page .time-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .range-time-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .booking-page .time-button{min-height:58px}
  .booking-page .summary-list div{padding:15px 0}
  .range-instruction{align-items:flex-start;flex-direction:column;gap:5px}
}

@media(max-width:430px){
  .booking-page .stepper li{gap:0}
  .booking-page .stepper li>span{width:32px;height:32px}
  .booking-page .time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .range-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.price-total{display:flex;align-items:flex-end;justify-content:space-between;padding:17px 0 4px}.price-total span{color:#91a1ae;font-size:.65rem;font-weight:700}.price-total strong{color:var(--lime);font-size:1.45rem;line-height:1}.calendar-day.closed{color:#c2c8c4;text-decoration:line-through}.calendar-day.closed:after{content:"";display:block;width:3px;height:3px;margin:1px auto 0;border-radius:50%;background:#c2c8c4}.closure-message{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:17px;border:1px solid #eadedb;border-radius:8px;background:#fff7f5;color:#8a4a3f;font-size:.68rem;line-height:1.45}.closure-message span{display:grid;flex:0 0 26px;height:26px;place-items:center;border-radius:50%;background:#f1ddd8;font-weight:800}
.time-button{display:grid;place-items:center;align-content:center;gap:1px}.time-button small{color:#8b969f;font-size:.48rem;font-weight:700}.time-button[aria-pressed="true"] small{color:#526b0a}

/* Mobile app installation */
.app-install{display:none;background:#eef4e3;border-bottom:1px solid #dce5cb}.app-install[hidden]{display:none}.app-install-inner{width:calc(100% - 30px);max-width:900px;margin:auto;padding:16px 0;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px 13px}.app-install-inner>img{width:48px;height:48px;border-radius:10px}.app-install-copy h2{margin:0;font-size:16px;line-height:1.35;letter-spacing:-.02em}.app-install-copy p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.app-install-actions{grid-column:1/-1;display:flex;gap:10px}.app-install-actions button{min-height:44px;padding:0 15px;border:0;border-radius:7px;font-size:13px;font-weight:800}.app-install-actions button:first-child{background:var(--navy);color:#fff}.app-install-actions button:last-child{background:transparent;color:var(--muted)}.app-install-actions button:focus-visible{outline:2px solid var(--lime-dark);outline-offset:3px}.app-install-actions button:disabled{opacity:.6;cursor:wait}.app-install-guide{grid-column:1/-1;margin:0;font-size:13px;line-height:1.6;color:var(--ink)}@media(max-width:950px){.app-install{display:block}}@media(min-width:600px){.app-install-inner{grid-template-columns:48px minmax(0,1fr) auto}.app-install-actions{grid-column:3}}

/* Contact page */
.contact-page{background:var(--paper)}.contact-hero{height:285px;background:linear-gradient(90deg,rgba(4,18,31,.95) 0%,rgba(5,20,34,.79) 49%,rgba(6,23,37,.37) 100%),url("assets/campo-erba.jpg") center 56%/cover;color:#fff}.contact-hero-inner{width:min(1320px,calc(100% - 64px));height:100%;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.contact-hero h1{margin:0;font-size:clamp(2.25rem,4vw,3.55rem);line-height:.98;letter-spacing:-.045em}.contact-hero p:not(.hero-kicker){margin:13px 0 18px;color:#d7e0e6;font-size:.84rem;line-height:1.55}.contact-hero-actions{display:flex;gap:9px}.lime-button,.outline-button{min-height:42px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:7px;font-size:.68rem;font-weight:800}.lime-button{background:var(--lime);color:var(--navy)}.lime-button:hover{background:#c8ec32}.outline-button{border-color:rgba(255,255,255,.34);color:#fff;background:rgba(7,26,45,.16)}.outline-button:hover{border-color:#fff;background:rgba(255,255,255,.08)}.lime-button svg{width:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.contact-section{width:min(1320px,calc(100% - 64px));margin:auto;padding:58px 0 66px}.contact-main{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(480px,1.18fr);grid-template-areas:"head map" "phone map" "location map" "instagram map" "facebook map";border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.contact-info-head{grid-area:head;padding:30px 30px 22px}.contact-info-head h2{margin:8px 0 10px;font-size:1.65rem;letter-spacing:-.035em}.contact-info-head p{max-width:460px;margin:0;color:var(--muted);font-size:.72rem;line-height:1.6}.contact-row{display:grid;grid-template-columns:40px 1fr;gap:13px;margin:0 30px;padding:19px 0;border-top:1px solid var(--line)}.contact-phone{grid-area:phone}.contact-location{grid-area:location}.contact-instagram{grid-area:instagram}.contact-facebook{grid-area:facebook}.contact-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#f0f5e4;color:#668b10}.contact-icon svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.65}.contact-icon svg .icon-fill{fill:currentColor;stroke:none}.contact-icon-letter{font-family:Arial,sans-serif;font-size:1.15rem;font-weight:800}.contact-row small,.contact-row h3,.contact-row p{display:block;margin:0}.contact-row small{color:var(--lime-dark);font-size:.54rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.contact-row h3{margin-top:4px;font-size:.82rem;line-height:1.45}.contact-row p{margin-top:3px;color:var(--muted);font-size:.62rem;line-height:1.5}.row-link{display:inline-flex;gap:7px;margin-top:8px;color:var(--navy);font-size:.6rem;font-weight:800}.row-link span{color:var(--lime-dark)}.contact-map{grid-area:map;position:relative;min-height:680px;background:#dbe1dc}.contact-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.8) contrast(.96)}.map-card{position:absolute;left:22px;right:22px;bottom:22px;padding:18px;border-radius:10px;background:rgba(7,26,45,.94);box-shadow:0 15px 35px rgba(7,26,45,.22);color:#fff;backdrop-filter:blur(10px)}.map-card strong{display:block;margin-top:6px;font-size:.88rem}.map-card p{margin:5px 0 12px;color:#b8c4cd;font-size:.65rem;line-height:1.5}.map-card a{color:var(--lime);font-size:.62rem;font-weight:800}.map-card .eyebrow{color:var(--lime)}
.needs-section{width:min(1320px,calc(100% - 64px));margin:auto;padding:0 0 72px}.needs-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.needs-heading h2{margin:7px 0 0;font-size:1.65rem;letter-spacing:-.035em}.needs-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.needs-grid article{min-width:0;padding:25px 25px 26px;border-right:1px solid var(--line)}.needs-grid article:last-child{border-right:0}.needs-grid article>span{color:var(--lime-dark);font-size:.56rem;font-weight:800}.needs-grid h3{margin:13px 0 8px;font-size:.83rem}.needs-grid p{min-height:42px;margin:0;color:var(--muted);font-size:.62rem;line-height:1.55}.needs-grid a{display:inline-block;margin-top:15px;color:var(--navy);font-size:.59rem;font-weight:800}.needs-grid a:hover{color:var(--lime-dark)}
.lesson-contacts{margin-top:15px}.lesson-contacts summary{display:inline-flex;align-items:center;gap:5px;min-height:32px;color:var(--navy);font-size:.59rem;font-weight:800;cursor:pointer;list-style:none}.lesson-contacts summary::-webkit-details-marker{display:none}.lesson-contacts summary:hover,.lesson-contacts summary:focus-visible{color:var(--lime-dark)}.lesson-contacts[open] summary span{transform:rotate(90deg)}.lesson-phone-list{margin-top:5px;border-top:1px solid var(--line)}.needs-grid .lesson-phone-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;margin:0;border-bottom:1px solid var(--line);font-size:.68rem;white-space:nowrap}.lesson-phone-list a span{color:var(--lime-dark)}
.social-section{width:min(1320px,calc(100% - 64px));margin:0 auto 72px;padding:45px 48px;display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center;border-radius:15px;background:#eef1ea}.social-copy h2{margin:8px 0 12px;font-size:2rem;line-height:1.04;letter-spacing:-.04em}.social-copy p{max-width:380px;margin:0;color:var(--muted);font-size:.68rem;line-height:1.6}.social-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.social-links>a{min-width:0;min-height:108px;padding:20px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;border:1px solid #d8ded7;border-radius:10px;background:#fff;transition:.18s ease}.social-links>a:hover{transform:translateY(-2px);border-color:#b5c58d;box-shadow:0 14px 30px rgba(7,26,45,.08)}.social-symbol{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:var(--navy);color:var(--lime);font-size:1.3rem}.social-f{font-family:Arial,sans-serif;font-weight:800}.social-links small,.social-links strong{display:block}.social-links small{color:var(--lime-dark);font-size:.54rem;font-weight:800;text-transform:uppercase}.social-links strong{overflow:hidden;margin-top:4px;font-size:.72rem;text-overflow:ellipsis}.social-links>a>span:last-child{color:var(--lime-dark);font-weight:800}
.contact-final-cta{width:min(1320px,calc(100% - 64px));min-height:190px;margin:0 auto 72px;padding:38px 42px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-radius:15px;background:linear-gradient(90deg,rgba(7,26,45,.98),rgba(7,26,45,.84)),url("assets/campo-cemento.webp") center/cover;color:#fff}.contact-final-cta h2{margin:7px 0 8px;font-size:1.75rem;letter-spacing:-.035em}.contact-final-cta p{max-width:620px;margin:0;color:#b9c5ce;font-size:.7rem;line-height:1.55}.contact-final-cta>div:last-child{display:flex;gap:9px;flex:0 0 auto}.mobile-contact-bar{display:none}
.contact-phone{scroll-margin-top:88px}.contact-phone-list{display:grid;margin-top:13px;border-top:1px solid var(--line)}.contact-phone-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.contact-phone-list a:hover,.contact-phone-list a:focus-visible{color:var(--lime-dark)}.contact-phone-list strong{font-size:.87rem;letter-spacing:.005em;white-space:nowrap}.contact-phone-list a>span{display:inline-flex;align-items:center;gap:4px;color:var(--lime-dark);font-size:.61rem;font-weight:800;white-space:nowrap}.contact-phone-list a>span span{font-size:.84rem}@media(max-width:760px){.contact-phone-list a{min-height:57px}.contact-phone-list strong{font-size:.93rem}.contact-phone-list a>span{font-size:.65rem}}
.site-footer{padding:0;background:var(--navy);color:#98a8b5}.footer-shell-rich{width:min(1320px,calc(100% - 64px));min-height:205px;margin:auto;padding:40px 0;display:grid;grid-template-columns:1.7fr repeat(3,1fr);align-items:start;gap:50px}.footer-intro p{margin:14px 0 0;font-size:.62rem}.footer-column{display:grid;align-content:start;gap:9px;font-size:.61rem;line-height:1.5}.footer-column>strong{margin-bottom:4px;color:#fff;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.footer-column a:hover{color:var(--lime)}.footer-bottom{width:min(1320px,calc(100% - 64px));margin:auto;padding:16px 0;display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);font-size:.54rem}
@media(max-width:950px){.contact-main{grid-template-columns:1fr 1fr}.needs-grid{grid-template-columns:1fr 1fr}.needs-grid article:nth-child(2){border-right:0}.needs-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}.social-section{grid-template-columns:1fr;gap:30px}.footer-shell-rich{grid-template-columns:1.5fr repeat(3,1fr);gap:25px}}
@media(max-width:760px){.contact-hero{height:auto;min-height:330px}.contact-hero-inner{width:calc(100% - 30px);padding:45px 0}.contact-hero h1{font-size:2.55rem}.contact-hero-actions{width:100%}.contact-hero-actions a{flex:1}.contact-section{width:calc(100% - 30px);padding:35px 0 50px}.contact-main{grid-template-columns:1fr;grid-template-areas:"head" "phone" "location" "map" "instagram" "facebook"}.contact-info-head{padding:25px 20px 18px}.contact-info-head h2{font-size:1.45rem}.contact-row{margin:0 20px;padding:20px 0}.contact-phone .row-link{min-height:42px;margin-top:12px;padding:0 14px;align-items:center;justify-content:center;border-radius:7px;background:var(--lime);color:var(--navy)}.contact-phone .row-link span{color:var(--navy)}.contact-map{min-height:430px;margin-top:4px}.map-card{left:14px;right:14px;bottom:14px}.needs-section{width:calc(100% - 30px);padding-bottom:50px}.needs-grid{grid-template-columns:1fr}.needs-grid article{border-right:0;border-bottom:1px solid var(--line);padding:22px 4px}.needs-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}.needs-grid article:last-child{border-bottom:0}.needs-grid p{min-height:0}.social-section{width:calc(100% - 30px);margin-bottom:50px;padding:30px 20px}.social-links{grid-template-columns:1fr}.social-links>a{min-height:92px}.contact-final-cta{width:calc(100% - 30px);margin-bottom:35px;padding:30px 22px;align-items:stretch;flex-direction:column}.contact-final-cta>div:last-child{display:grid;grid-template-columns:1fr 1fr}.mobile-contact-bar{position:fixed;z-index:25;left:12px;right:12px;bottom:10px;height:54px;padding:5px;display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(7,26,45,.96);box-shadow:0 12px 35px rgba(7,26,45,.25);backdrop-filter:blur(12px)}.mobile-contact-bar a{display:flex;align-items:center;justify-content:center;gap:7px;color:#fff;font-size:.68rem;font-weight:800}.mobile-contact-bar a:first-child{border-radius:7px;background:var(--lime);color:var(--navy)}.footer-shell-rich{width:calc(100% - 30px);padding:32px 0;grid-template-columns:1fr 1fr;gap:28px}.footer-intro{grid-column:1/-1}.footer-bottom{width:calc(100% - 30px);padding-bottom:82px;align-items:flex-start;flex-direction:column;gap:6px}}
@media(max-width:430px){.contact-hero-actions{flex-direction:column}.contact-hero-actions a{width:100%}.contact-row{grid-template-columns:36px 1fr;gap:11px}.contact-icon{width:34px;height:34px}.contact-map{min-height:390px}.social-copy h2{font-size:1.75rem}.contact-final-cta>div:last-child{grid-template-columns:1fr}.footer-shell-rich{grid-template-columns:1fr}.footer-intro{grid-column:auto}}

/* Home */
.home-page{overflow:hidden;background:var(--paper)}.home-hero{position:relative;min-height:510px;background:linear-gradient(90deg,rgba(4,18,31,.96) 0%,rgba(5,20,34,.73) 54%,rgba(6,23,37,.3) 100%),url("assets/landing-topspin.png") center 48%/cover;color:#fff}.home-hero:after{content:"";position:absolute;inset:auto 0 0;height:90px;background:linear-gradient(transparent,rgba(4,18,31,.32));pointer-events:none}.home-hero-inner{position:relative;z-index:1;width:min(1320px,calc(100% - 64px));min-height:510px;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.home-hero h1{max-width:800px;margin:0;font-size:clamp(3rem,5.7vw,5rem);line-height:.98;letter-spacing:-.052em}.home-hero p:not(.hero-kicker){margin:20px 0 25px;color:#d2dce4;font-size:.94rem;line-height:1.65}.home-hero-actions{display:flex;gap:9px}.home-hero-tag{position:absolute;z-index:2;right:max(32px,calc((100% - 1320px)/2));bottom:32px;display:flex;align-items:center;gap:11px;padding:12px 16px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(7,26,45,.72);backdrop-filter:blur(9px)}.home-hero-tag>span{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(185,223,32,.13)}.home-hero-tag small,.home-hero-tag strong{display:block}.home-hero-tag small{color:#8fa0ad;font-size:.5rem;text-transform:uppercase;letter-spacing:.09em}.home-hero-tag strong{margin-top:2px;font-size:.65rem}.home-quick-actions{width:min(1320px,calc(100% - 64px));margin:-1px auto 0;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);background:#fff}.home-quick-actions>a{display:grid;grid-template-columns:30px 1fr;gap:13px;padding:26px 25px;border-right:1px solid var(--line)}.home-quick-actions>a:last-child{border-right:0}.quick-number{padding-top:1px;color:var(--lime-dark);font-size:.55rem;font-weight:800}.home-quick-actions small,.home-quick-actions strong,.home-quick-actions p,.home-quick-actions b{display:block}.home-quick-actions small{color:var(--lime-dark);font-size:.54rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.home-quick-actions strong{margin-top:4px;font-size:.79rem}.home-quick-actions p{margin:5px 0 10px;color:var(--muted);font-size:.6rem;line-height:1.5}.home-quick-actions b{color:var(--navy);font-size:.57rem}.home-quick-actions>a:hover b{color:var(--lime-dark)}
.home-courts{width:min(1320px,calc(100% - 64px));margin:auto;padding:88px 0}.home-section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.home-section-heading h2,.home-booking-copy h2,.competition-content h2,.home-editorial-row h2,.home-social-copy h2,.home-location-copy h2,.home-final-cta h2{margin:8px 0 0;font-size:clamp(1.8rem,3.2vw,2.65rem);line-height:1.04;letter-spacing:-.045em}.home-section-heading>p{margin:0;color:var(--muted);font-size:.7rem}.home-court-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.home-court-card{position:relative;min-height:440px;overflow:hidden;border-radius:14px;background:var(--navy);box-shadow:0 18px 45px rgba(7,26,45,.12)}.home-court-image{position:absolute;inset:0;background-position:center;background-size:cover;transition:transform .6s ease}.home-court-card:hover .home-court-image{transform:scale(1.025)}.home-grass .home-court-image{background-image:linear-gradient(180deg,rgba(7,26,45,.02) 30%,rgba(7,26,45,.9)),url("assets/campo-erba.jpg");background-position:center 58%}.home-cement .home-court-image{background-image:linear-gradient(180deg,rgba(7,26,45,.02) 30%,rgba(7,26,45,.9)),url("assets/campo-cemento.webp")}.home-court-overlay{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:28px;display:grid;grid-template-columns:34px 1fr auto;align-items:end;gap:14px;color:#fff}.surface-index{align-self:start;padding-top:4px;color:var(--lime);font-size:.58rem;font-weight:800}.home-court-overlay small{color:#bac7cf;font-size:.57rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em}.home-court-overlay h3{margin:5px 0 10px;font-size:1.28rem}.home-court-overlay ul{display:flex;gap:15px;margin:0;padding:0;list-style:none;color:#c4ced5;font-size:.55rem}.home-court-overlay li:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:var(--lime)}.home-court-overlay>a{align-self:end;padding:10px 0;color:var(--lime);font-size:.6rem;font-weight:800}.home-court-overlay>a span{margin-left:6px}
.home-booking-story{width:min(1320px,calc(100% - 64px));margin:0 auto 88px;padding:52px 55px;display:grid;grid-template-columns:.82fr 1.18fr;gap:80px;align-items:center;border-radius:15px;background:#edf0e9}.home-booking-copy>p{max-width:420px;margin:16px 0 22px;color:var(--muted);font-size:.7rem;line-height:1.65}.dark-button{min-height:42px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:7px;background:var(--navy);color:#fff;font-size:.62rem;font-weight:800}.dark-button span{color:var(--lime)}.home-booking-steps{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none}.home-booking-steps li{min-height:125px;padding:20px;display:grid;grid-template-columns:30px 1fr;gap:9px;border-left:1px solid #d6dcd4;border-bottom:1px solid #d6dcd4}.home-booking-steps li:nth-child(even){border-right:1px solid #d6dcd4}.home-booking-steps li:nth-child(n+3){border-bottom:0}.home-booking-steps li>span{color:var(--lime-dark);font-size:.58rem;font-weight:800}.home-booking-steps strong{font-size:.75rem}.home-booking-steps p{margin:6px 0 0;color:var(--muted);font-size:.6rem;line-height:1.5}
.home-competition{width:min(1320px,calc(100% - 64px));margin:0 auto 88px;display:grid;grid-template-columns:1fr 1fr;min-height:570px;border-radius:15px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.competition-visual{position:relative;min-height:570px;background:linear-gradient(180deg,rgba(7,26,45,.04),rgba(7,26,45,.7)),url("assets/campo-cemento.webp") center/cover}.competition-ball{position:absolute;top:17%;right:15%;width:90px;height:90px;border-radius:50%;background:var(--lime);box-shadow:inset -12px -8px 20px rgba(102,132,8,.2),0 20px 40px rgba(7,26,45,.2)}.competition-ball:before,.competition-ball:after{content:"";position:absolute;width:75px;height:75px;border:2px solid rgba(255,255,255,.7);border-radius:50%}.competition-ball:before{left:-43px;top:6px}.competition-ball:after{right:-43px;bottom:6px}.competition-label{position:absolute;left:28px;right:28px;bottom:28px;padding:17px 19px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:rgba(7,26,45,.78);color:#fff;backdrop-filter:blur(8px)}.competition-label small,.competition-label strong{display:block}.competition-label small{color:var(--lime);font-size:.52rem;text-transform:uppercase;letter-spacing:.1em}.competition-label strong{margin-top:4px;font-size:.75rem}.competition-content{padding:58px 55px;display:flex;flex-direction:column;justify-content:center}.competition-content>p{max-width:470px;margin:17px 0 25px;color:var(--muted);font-size:.7rem;line-height:1.65}.competition-points{display:grid;gap:0;border-top:1px solid var(--line)}.competition-points>div{padding:15px 0;display:grid;grid-template-columns:28px 105px 1fr;gap:10px;border-bottom:1px solid var(--line)}.competition-points span{color:var(--lime-dark);font-size:.54rem;font-weight:800}.competition-points strong{font-size:.66rem;text-transform:uppercase}.competition-points p{margin:0;color:var(--muted);font-size:.6rem;line-height:1.45}.text-action{display:inline-flex;gap:7px;color:var(--navy);font-size:.62rem;font-weight:800}.text-action span{color:var(--lime-dark)}.competition-content>.text-action{align-self:flex-start;margin-top:23px}.coming-soon{margin-top:9px;color:#9aa49d;font-size:.5rem}
.home-editorial-row{width:min(1320px,calc(100% - 64px));margin:0 auto 88px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.home-editorial-row article{padding:55px}.home-training{border-right:1px solid var(--line);background:var(--navy);color:#fff}.home-training .eyebrow{color:var(--lime)}.home-club{background:#fff}.home-editorial-row p{max-width:480px;margin:17px 0 23px;color:var(--muted);font-size:.7rem;line-height:1.65}.home-training p{color:#aebbc5}.home-training .text-action{color:#fff}.home-club address{margin:-5px 0 23px;color:#65737e;font-size:.62rem;font-style:normal;line-height:1.6}
.home-social{width:min(1320px,calc(100% - 64px));margin:0 auto 88px;display:grid;grid-template-columns:.6fr 1.4fr;gap:70px;align-items:center}.home-social-copy p{margin:15px 0 0;color:var(--muted);font-size:.68rem}.home-social-links{display:grid;grid-template-columns:1fr 1fr;gap:14px}.home-social-links>a{min-width:0;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;grid-template-columns:43px 1fr;gap:13px;transition:.18s ease}.home-social-links>a:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(7,26,45,.07)}.home-social-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--navy);color:var(--lime);font-size:1.25rem}.home-social-links small,.home-social-links strong,.home-social-links p{display:block}.home-social-links small{color:var(--lime-dark);font-size:.52rem;font-weight:800;text-transform:uppercase}.home-social-links strong{overflow:hidden;margin-top:4px;font-size:.72rem;text-overflow:ellipsis}.home-social-links p{margin:6px 0 16px;color:var(--muted);font-size:.57rem;line-height:1.45}.home-social-links b{grid-column:2;color:var(--navy);font-size:.57rem}
.home-location{width:min(1320px,calc(100% - 64px));min-height:430px;margin:0 auto 88px;display:grid;grid-template-columns:1.25fr .75fr;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.home-location-map{position:relative;min-height:430px;background:#dce4dd}.home-location-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.82)}.home-location-copy{padding:48px;display:flex;flex-direction:column;justify-content:center}.home-location-copy>p{margin:16px 0;color:var(--muted);font-size:.68rem;line-height:1.6}.home-location-copy address{margin:0 0 23px;color:#5f6e79;font-size:.66rem;font-style:normal;line-height:1.6}.home-location-copy address strong{color:var(--ink)}.home-location-copy>div{display:flex;align-items:center;gap:17px}.home-final-cta{width:min(1320px,calc(100% - 64px));min-height:235px;margin:0 auto 88px;padding:45px 50px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-radius:15px;background:linear-gradient(90deg,rgba(7,26,45,.98),rgba(7,26,45,.75)),url("assets/campo-erba.jpg") center 58%/cover;color:#fff}.home-final-cta .eyebrow{color:var(--lime)}.home-final-cta p{margin:14px 0 0;color:#bac6cf;font-size:.7rem}.home-final-cta>div:last-child{display:flex;gap:9px}
@media(max-width:980px){.home-booking-story{gap:40px}.competition-content{padding:45px 35px}.home-social{grid-template-columns:1fr;gap:30px}.home-social-copy p{max-width:430px}.home-location{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.home-hero{min-height:520px}.home-hero-inner{width:calc(100% - 30px);min-height:520px;padding:45px 0 85px}.home-hero h1{font-size:2.7rem}.home-hero p:not(.hero-kicker){font-size:.8rem}.home-hero-tag{left:15px;right:auto;bottom:23px}.home-quick-actions{width:calc(100% - 30px);grid-template-columns:1fr}.home-quick-actions>a{padding:21px 4px;border-right:0;border-bottom:1px solid var(--line)}.home-quick-actions>a:last-child{border-bottom:0}.home-courts{width:calc(100% - 30px);padding:65px 0}.home-section-heading{align-items:flex-start;flex-direction:column;gap:10px}.home-court-grid{grid-template-columns:1fr}.home-court-card{min-height:410px}.home-court-overlay{grid-template-columns:28px 1fr;padding:23px}.home-court-overlay>a{grid-column:2}.home-booking-story{width:calc(100% - 30px);margin-bottom:65px;padding:35px 22px;grid-template-columns:1fr;gap:30px}.home-booking-steps{grid-template-columns:1fr}.home-booking-steps li,.home-booking-steps li:nth-child(even),.home-booking-steps li:nth-child(n+3){min-height:92px;border-right:0;border-left:0;border-bottom:1px solid #d6dcd4}.home-booking-steps li:last-child{border-bottom:0}.home-competition{width:calc(100% - 30px);margin-bottom:65px;grid-template-columns:1fr}.competition-visual{min-height:380px}.competition-content{padding:35px 22px}.competition-points>div{grid-template-columns:25px 85px 1fr}.home-editorial-row{width:calc(100% - 30px);margin-bottom:65px;grid-template-columns:1fr}.home-editorial-row article{padding:38px 23px}.home-training{border-right:0}.home-social{width:calc(100% - 30px);margin-bottom:65px;gap:25px}.home-social-links{grid-template-columns:1fr}.home-location{width:calc(100% - 30px);margin-bottom:65px;grid-template-columns:1fr}.home-location-map{min-height:360px}.home-location-copy{padding:35px 23px}.home-final-cta{width:calc(100% - 30px);margin-bottom:65px;padding:38px 23px;align-items:stretch;flex-direction:column}.home-final-cta>div:last-child{display:grid;grid-template-columns:1fr 1fr}.home-final-cta .lime-button,.home-final-cta .outline-button{width:100%}}
@media(max-width:430px){.home-hero h1{font-size:2.35rem}.home-hero-actions{width:100%;flex-direction:column}.home-hero-actions a{width:100%}.home-court-card{min-height:390px}.home-court-overlay ul{align-items:flex-start;flex-direction:column;gap:5px}.competition-points>div{grid-template-columns:24px 1fr}.competition-points p{grid-column:2}.home-social-links>a{padding:20px}.home-location-copy>div{align-items:stretch;flex-direction:column}.home-location-copy .dark-button{width:100%}.home-final-cta>div:last-child{grid-template-columns:1fr}}

.booking-occupant{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
.privacy-option{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 10px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(255,255,255,.045);cursor:pointer}
.privacy-option input{flex:0 0 auto;width:16px;height:16px;margin:1px 0 0;accent-color:var(--lime)}
.privacy-option strong,.privacy-option small{display:block}
.privacy-option strong{font-size:.68rem}
.privacy-option small{margin-top:3px;color:#8294a2;font-size:.55rem;line-height:1.45}
@media(max-width:1050px){.booking-page .privacy-option{grid-column:1}}
@media(max-width:760px){.booking-page .privacy-option{grid-column:auto}}

.booking-surface.is-loading> :not(.booking-loading){display:none}
.site-loading [data-page]:not(.hidden){position:relative;overflow:hidden}.site-loading [data-page]:not(.hidden)>:not(.page-loading-skeleton){visibility:hidden}.page-loading-skeleton{display:none;position:absolute;inset:0;z-index:20;min-height:100%;background:var(--paper);visibility:visible}.site-loading [data-page]:not(.hidden)>.page-loading-skeleton{display:block}.page-loading-skeleton .skeleton{display:block;position:relative;overflow:hidden;background:linear-gradient(100deg,#e6ece5 20%,#fbfdf9 38%,#e6ece5 58%);background-size:300% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.page-loading-skeleton .skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-100%);animation:skeleton-sweep 1.5s ease-in-out infinite}.loading-skeleton-home-hero,.loading-skeleton-contact-hero,.loading-skeleton-booking-hero,.loading-skeleton-admin-hero{display:grid;align-items:center;gap:60px;padding:70px max(32px,calc((100% - 1320px)/2));background:#e4e9e4}.loading-skeleton-home-hero{min-height:390px;grid-template-columns:1fr 350px;background:#dce4dc}.loading-skeleton-contact-hero{min-height:320px;background:#dfe7e1}.loading-skeleton-booking-hero{min-height:300px;grid-template-columns:1fr 350px;background:#dbe4dd}.loading-skeleton-admin-hero{min-height:215px;display:block;padding-top:55px;background:#dce4df}.loading-skeleton-hero-card,.loading-skeleton-booking-card{min-height:200px;padding:25px;border-radius:12px;background:#d0dbd2}.loading-skeleton-home-hero .skeleton,.loading-skeleton-contact-hero .skeleton,.loading-skeleton-booking-hero .skeleton,.loading-skeleton-admin-hero .skeleton{background:linear-gradient(100deg,#b9c8bd 20%,#e6eee6 38%,#b9c8bd 58%);background-size:300% 100%}.loading-skeleton-home-hero .skeleton:after,.loading-skeleton-contact-hero .skeleton:after,.loading-skeleton-booking-hero .skeleton:after,.loading-skeleton-admin-hero .skeleton:after{background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%)}.skeleton-line{height:12px;margin-bottom:11px;border-radius:99px}.skeleton-kicker{width:130px;height:8px}.skeleton-home-title{width:min(520px,80%);height:44px;margin-top:14px}.skeleton-home-title-short{width:min(400px,62%)}.skeleton-home-copy{width:300px;margin-top:21px}.skeleton-button{display:inline-block;width:150px;height:44px;margin:15px 8px 0 0;border-radius:7px}.skeleton-button-outline{width:120px}.skeleton-card-title{width:190px;height:18px}.skeleton-card-copy{width:100%;margin-top:22px}.skeleton-quick-card{min-height:120px;border-radius:0}.loading-skeleton-quick{display:grid;grid-template-columns:repeat(3,1fr);background:var(--line);gap:1px}.loading-skeleton-home-section{padding:60px max(32px,calc((100% - 1320px)/2))}.loading-skeleton-section-heading{margin-bottom:24px}.skeleton-section-title{width:260px;height:25px}.loading-skeleton-court-grid,.loading-skeleton-home-split{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.skeleton-court{height:260px;border-radius:12px}.loading-skeleton-home-split{padding:0 max(32px,calc((100% - 1320px)/2)) 65px}.skeleton-split-panel{height:260px;border-radius:12px}.loading-skeleton-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:30px max(32px,calc((100% - 1320px)/2));background:#fff}.skeleton-step{height:42px;border-radius:99px}.loading-skeleton-booking-body{display:grid;grid-template-columns:230px minmax(0,1fr) 275px;gap:1px;min-height:580px;background:var(--line)}.skeleton-booking-calendar,.skeleton-booking-selection,.skeleton-booking-summary{min-height:580px}.skeleton-booking-calendar{background:#eef2ed}.skeleton-booking-selection{background:#f8faf7}.skeleton-booking-summary{background:#cbd8d0}.loading-skeleton-admin-body{padding:38px max(32px,calc((100% - 1320px)/2)) 80px}.loading-skeleton-admin-toolbar{display:flex;justify-content:space-between;gap:18px;margin-bottom:18px}.skeleton-input{width:150px;height:42px;border-radius:7px}.loading-skeleton-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.skeleton-stat{height:126px;border-radius:12px}.loading-skeleton-admin-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:14px}.skeleton-admin-panel{height:410px;border-radius:12px}.loading-skeleton-contact-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:35px;width:min(1320px,calc(100% - 64px));margin:auto;padding:65px 0}.skeleton-contact-row{width:90%;height:74px;margin-top:18px;border-radius:9px}.skeleton-map{height:260px;margin-top:20px;border-radius:12px}.skeleton-contact-side{height:350px;border-radius:12px}.skeleton-contact-title{width:min(500px,80%);height:44px;margin-top:14px}.skeleton-contact-title-short{width:min(350px,58%)}.skeleton-contact-copy{width:300px;margin-top:22px}.skeleton-booking-title{width:min(460px,80%);height:42px;margin-top:14px}.skeleton-booking-copy{width:300px;margin-top:20px}.skeleton-booking-copy-short{width:230px;margin-top:9px}.skeleton-admin-title{width:430px;height:44px;margin-top:14px}.skeleton-admin-copy{width:280px;margin-top:20px}.site-loading .site-footer{visibility:hidden}
@media(max-width:1050px){.loading-skeleton-home-hero,.loading-skeleton-booking-hero{grid-template-columns:1fr 300px;gap:30px}.loading-skeleton-booking-body{grid-template-columns:210px 1fr}.skeleton-booking-summary{grid-column:1/-1;min-height:250px}.loading-skeleton-admin-grid{grid-template-columns:1fr}.skeleton-admin-panel{height:300px}}
@media(max-width:760px){.loading-skeleton-home-hero,.loading-skeleton-contact-hero,.loading-skeleton-booking-hero{grid-template-columns:1fr;gap:28px;padding:45px 20px}.loading-skeleton-home-hero{min-height:520px}.loading-skeleton-contact-hero{min-height:430px}.loading-skeleton-booking-hero{min-height:500px}.loading-skeleton-hero-card,.loading-skeleton-booking-card{min-height:145px}.loading-skeleton-quick{grid-template-columns:1fr}.loading-skeleton-home-section{padding:45px 20px}.loading-skeleton-court-grid,.loading-skeleton-home-split{grid-template-columns:1fr}.loading-skeleton-home-split{padding:0 20px 45px}.loading-skeleton-stepper{grid-template-columns:repeat(2,1fr);padding:24px 20px}.loading-skeleton-booking-body{grid-template-columns:1fr;min-height:700px}.skeleton-booking-calendar,.skeleton-booking-selection{min-height:220px}.skeleton-booking-summary{grid-column:auto;min-height:250px}.loading-skeleton-admin-body{padding:28px 20px 55px}.loading-skeleton-stat-grid{grid-template-columns:repeat(2,1fr)}.loading-skeleton-contact-body{grid-template-columns:1fr;width:calc(100% - 40px);padding:45px 0}.skeleton-contact-side{height:180px;grid-row:1}}
@media(max-width:430px){.loading-skeleton-stat-grid{grid-template-columns:1fr}.skeleton-home-title,.skeleton-contact-title,.skeleton-booking-title,.skeleton-admin-title{width:90%}}
.booking-loading{grid-column:1/-1;display:grid;grid-template-columns:inherit;min-height:inherit;background:#fff}
.booking-loading-column{min-width:0;padding:32px}
.booking-loading-calendar{border-right:1px solid var(--line);background:#fbfcfa}
.booking-loading-summary{border-left:1px solid var(--line);background:var(--navy)}
.skeleton{display:block;position:relative;overflow:hidden;background:linear-gradient(100deg,#edf1ed 20%,#fafcf9 38%,#edf1ed 58%);background-size:300% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}
.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.42) 50%,transparent 65%);transform:translateX(-100%);animation:skeleton-sweep 1.5s ease-in-out infinite}
@keyframes skeleton-shimmer{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@keyframes skeleton-sweep{100%{transform:translateX(100%)}}
.skeleton-heading{display:flex;align-items:center;gap:12px}
.skeleton-heading>div{flex:1}
.skeleton-circle{width:36px;height:36px;flex:0 0 36px;border-radius:50%}
.skeleton-small-circle{width:34px;height:34px;flex-basis:34px}
.skeleton-line{height:9px;border-radius:99px}
.skeleton-kicker{width:92px}
.skeleton-title{width:116px;margin-top:9px;height:16px}
.skeleton-title-wide{width:188px}
.skeleton-calendar-nav{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:12px;margin:30px 0 20px}
.skeleton-month{width:108px;height:10px;margin:auto}
.skeleton-calendar-week,.skeleton-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.skeleton-calendar-week{margin-bottom:9px}
.skeleton-dot{width:8px;height:8px;margin:auto;border-radius:50%}
.skeleton-calendar-day{aspect-ratio:1;border-radius:50%}
.booking-loading-status{display:grid;gap:8px;margin-top:22px;text-align:center}
.skeleton-loading-note{width:150px;height:10px;margin:0 auto;border-radius:99px}
.booking-loading-message{color:#9aa3aa;font-size:.62rem;line-height:1.4}
.skeleton-court-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:25px}
.skeleton-court-card{height:174px;border-radius:11px}
.skeleton-divider{height:1px;margin:30px 0 28px;background:var(--line)}
.skeleton-time-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-top:20px}
.skeleton-time{height:54px;border-radius:8px}
.booking-loading-summary .skeleton{background:linear-gradient(100deg,#22394d 20%,#2e4b62 38%,#22394d 58%);background-size:300% 100%}
.booking-loading-summary .skeleton:after{background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.1) 50%,transparent 65%)}
.skeleton-summary-date{width:80%;height:28px;margin-top:32px;padding:21px 0;border-radius:5px}
.skeleton-summary-list{display:grid;gap:18px;margin-top:26px}
.skeleton-summary-row{height:12px;border-radius:99px}
.skeleton-summary-row:nth-child(odd){width:92%}
.skeleton-summary-row:nth-child(even){width:72%}
.skeleton-summary-total{width:58%;height:28px;margin-top:28px;border-radius:5px}
.skeleton-summary-button{width:100%;height:52px;margin-top:20px;border-radius:7px}
@media(max-width:1050px){.booking-loading-summary{grid-column:1/-1;border-left:0;border-top:1px solid rgba(7,26,45,.12)}}
@media(max-width:760px){.booking-loading-column{padding:24px 20px}.booking-loading-calendar{border-right:0;border-bottom:1px solid var(--line)}.booking-loading-selection{padding-top:28px;padding-bottom:28px}.booking-loading-summary{grid-column:auto;border-top:1px solid rgba(255,255,255,.12)}.skeleton-court-grid{grid-template-columns:1fr}.skeleton-time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:430px){.skeleton-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.skeleton,.skeleton:after{animation:none}}

.payment-preview{margin-top:17px;padding-top:15px;border-top:1px solid rgba(255,255,255,.09)}
.payment-preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.payment-preview-heading small,.payment-preview-heading strong{display:block}
.payment-preview-heading small{color:#8394a3;font-size:.55rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.payment-preview-heading strong{margin-top:4px;font-size:.7rem}
.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.payment-method-wide{grid-column:1/-1}
.payment-method{min-width:0;min-height:53px;padding:8px;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.13);border-radius:7px;background:rgba(255,255,255,.045);color:#fff;text-align:left;transition:.16s ease}
.payment-method:hover{border-color:rgba(185,223,32,.52);background:rgba(255,255,255,.08)}
.payment-method.selected{border-color:var(--lime);background:rgba(185,223,32,.12);box-shadow:inset 0 0 0 1px rgba(185,223,32,.18)}
.payment-method-mark{display:grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border-radius:5px;background:#fff;color:var(--navy);font-family:Arial,sans-serif;font-size:.67rem;font-weight:900;letter-spacing:-.12em}
.payment-satispay-mark{background:#ff5b83;color:#fff;font-size:.72rem;letter-spacing:0}
.payment-club-mark{background:var(--lime);color:var(--navy);font-size:.95rem;letter-spacing:0}
.payment-method strong,.payment-method small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payment-method strong{font-size:.57rem}
.payment-method small{margin-top:3px;color:#8fa0ae;font-size:.47rem}
.payment-preview-note{margin:9px 0 0;color:#8294a2;font-size:.52rem;line-height:1.45}
.payment-return-message{margin:0 0 18px;padding:13px 16px;border:1px solid #d9e3c6;border-radius:9px;background:#f5f9ea;color:#4e6d13;font-size:.72rem;font-weight:700}.payment-return-message.error{border-color:#ecd3cf;background:#fff7f5;color:var(--danger)}.payment-return-message.pending{border-color:#dce4e8;background:#f6f9fb;color:#536b7b}
.payment-success-screen{min-height:580px;display:grid;place-items:center;padding:45px 20px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#f8fbf2,#fff);box-shadow:var(--shadow)}.payment-success-card{width:min(620px,100%);padding:46px 42px;border:1px solid #dfe8d3;border-radius:15px;background:#fff;text-align:center;box-shadow:0 18px 45px rgba(7,26,45,.08)}.payment-success-icon{display:grid;width:68px;height:68px;margin:0 auto 22px;place-items:center;border-radius:50%;background:var(--lime);color:var(--navy);font-size:2.1rem;font-weight:900;box-shadow:0 0 0 9px #edf5db}.payment-success-card h2{margin:10px 0 9px;color:var(--navy);font-size:clamp(1.8rem,4vw,2.65rem);letter-spacing:-.045em}.payment-success-lead{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5}.payment-success-details{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:30px 0;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;text-align:left}.payment-success-details div{min-height:72px;padding:14px 16px;background:#fbfcfa}.payment-success-details span,.payment-success-details strong{display:block}.payment-success-details span{color:var(--muted);font-size:.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.payment-success-details strong{margin-top:7px;color:var(--ink);font-size:.82rem}.payment-success-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-width:220px}.payment-success-button span{font-size:1rem}
@media(max-width:1050px){.booking-page .payment-preview{grid-column:1}}
@media(max-width:760px){.booking-page .payment-preview{grid-column:auto}}
@media(max-width:520px){.payment-success-screen{min-height:500px;padding:26px 14px}.payment-success-card{padding:34px 19px}.payment-success-details{grid-template-columns:1fr}.payment-success-details div{min-height:0}}

.admin-page{min-height:calc(100vh - 72px);background:#f1f4ef}.admin-hero{padding:54px max(32px,calc((100% - 1320px)/2)) 48px;display:flex;align-items:end;justify-content:space-between;gap:30px;background:var(--navy);color:#fff}.admin-hero h1{margin:0;font-size:clamp(2.2rem,4vw,3.8rem);letter-spacing:-.05em}.admin-hero p:last-child{margin:13px 0 0;color:#b5c1ca;font-size:.85rem}.admin-hero-badge{padding:8px 11px;border:1px solid rgba(185,223,32,.35);border-radius:99px;color:var(--lime);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.admin-page-shell{width:min(1320px,calc(100% - 64px));margin:auto;padding:38px 0 80px}.admin-access-card{display:flex;align-items:center;gap:16px;padding:22px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.admin-access-card .number-mark{flex:0 0 30px;color:var(--danger);border-color:#e5c8c4}.admin-access-card h2{margin:0;font-size:1rem}.admin-access-card p{margin:5px 0 0;color:var(--muted);font-size:.75rem}.admin-access-card .primary-button{margin-left:auto}.admin-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.admin-toolbar h2{margin:6px 0 0;font-size:1.45rem;letter-spacing:-.035em}.admin-month-control,.admin-availability-form label,.admin-reserve-form label{display:grid;gap:6px;color:var(--muted);font-size:.65rem;font-weight:800}.admin-month-control input,.admin-availability-form input,.admin-availability-form select,.admin-reserve-form input,.admin-reserve-form select{min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:.72rem;font-weight:600}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.admin-stat-card{min-height:126px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 25px rgba(7,26,45,.035)}.admin-stat-card>span,.admin-stat-card small{display:block}.admin-stat-card>span{color:var(--muted);font-size:.65rem;font-weight:800}.admin-stat-card strong{display:block;margin:16px 0 4px;font-size:1.65rem;letter-spacing:-.05em}.admin-stat-card small{color:#98a39c;font-size:.59rem}.admin-stat-card-accent{background:var(--navy);color:#fff}.admin-stat-card-accent>span,.admin-stat-card-accent small{color:#a6b5c0}.admin-stat-card-accent strong{color:var(--lime)}.admin-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:14px}.admin-panel{min-width:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 25px rgba(7,26,45,.035)}.admin-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:15px}.admin-panel-heading h2{margin:6px 0 0;font-size:1.1rem;letter-spacing:-.03em}.admin-panel-meta{color:var(--muted);font-size:.62rem;font-weight:700}.admin-panel-intro{margin:-4px 0 17px;color:var(--muted);font-size:.7rem;line-height:1.5}.admin-users-panel,.admin-availability-panel{min-height:410px}.admin-users-list,.admin-availability-list,.admin-bookings-list{display:grid;gap:7px}.admin-user-row{display:grid;grid-template-columns:34px minmax(130px,1.6fr) 90px minmax(110px,1fr) auto;align-items:center;gap:11px;padding:10px;border:1px solid #edf0ed;border-radius:9px;background:#fbfcfb}.admin-user-avatar{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#eaf2d5;color:var(--lime-dark);font-size:.67rem;font-weight:900}.admin-user-main strong,.admin-user-main span,.admin-user-bookings strong,.admin-user-bookings span,.admin-user-last strong,.admin-user-last span{display:block}.admin-user-main strong{font-size:.7rem}.admin-user-main span,.admin-user-last span{margin-top:3px;color:var(--muted);font-size:.58rem}.admin-user-bookings{text-align:center}.admin-user-bookings strong{font-size:.83rem}.admin-user-bookings span{margin-top:2px;color:var(--muted);font-size:.53rem}.admin-user-last strong{font-size:.59rem}.admin-role-pill,.admin-rule-pill{padding:5px 7px;border-radius:99px;background:#eff4e5;color:#5d7d15;font-size:.5rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.admin-role-pill.is-admin{background:#e9edf3;color:#29425b}.admin-availability-form{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.availability-label-field{grid-column:1/-1}.admin-availability-form .primary-button{min-height:42px;grid-column:1/-1;justify-self:start}.admin-availability-form .auth-message{grid-column:1/-1}.availability-rule-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border-top:1px solid #edf0ed;font-size:.65rem}.availability-rule-row:first-child{margin-top:14px}.availability-rule-row strong,.availability-rule-row span{display:block}.availability-rule-row span{margin-top:3px;color:var(--muted);font-size:.58rem}.availability-rule-actions{display:flex;align-items:center;gap:9px}.admin-rule-pill.is-reserved{background:#e9edf3;color:#36516a}.text-danger-button{padding:0;border:0;background:transparent;color:var(--danger);font-size:.57rem;font-weight:800}.admin-bookings-panel,.admin-reserve-panel{min-height:260px}.dashboard-booking-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #edf0ed}.dashboard-booking-row:first-child{border-top:0}.dashboard-booking-time strong,.dashboard-booking-time span,.dashboard-booking-main strong,.dashboard-booking-main span{display:block}.dashboard-booking-time strong{font-size:.82rem}.dashboard-booking-time span{margin-top:3px;color:var(--muted);font-size:.55rem}.dashboard-booking-main strong{font-size:.67rem}.dashboard-booking-main span{margin-top:3px;overflow:hidden;color:var(--muted);font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-booking-row .secondary-button{min-height:32px;padding:0 10px;font-size:.57rem}.admin-reserve-form{display:grid;gap:10px}.admin-reserve-form .primary-button{justify-self:start}.admin-empty{padding:20px 10px;border:1px dashed #d8dfd9;border-radius:8px;color:var(--muted);font-size:.68rem;text-align:center}.admin-panel .date-control{color:var(--muted);font-weight:800}.admin-panel .date-control input{min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:.65rem}.admin-panel .auth-message{font-size:.66rem}.admin-panel .primary-button:disabled,.admin-panel .secondary-button:disabled{opacity:.55;cursor:wait}
@media(max-width:1050px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-dashboard-grid{grid-template-columns:1fr}.admin-users-panel,.admin-availability-panel{min-height:0}}
@media(max-width:760px){.admin-hero{padding:40px 15px 34px;align-items:start;flex-direction:column}.admin-hero h1{font-size:2.5rem}.admin-page-shell{width:calc(100% - 30px);padding:24px 0 55px}.admin-toolbar{align-items:start;flex-direction:column}.admin-month-control{width:100%}.admin-month-control input{width:100%}.admin-user-row{grid-template-columns:30px minmax(0,1fr) auto;gap:8px}.admin-user-bookings{grid-column:2;text-align:left}.admin-user-last{grid-column:2}.admin-role-pill{grid-column:3;grid-row:1}.admin-availability-form{grid-template-columns:1fr 1fr}.availability-label-field,.admin-availability-form .primary-button,.admin-availability-form .auth-message{grid-column:1/-1}.availability-rule-row{align-items:start;flex-direction:column}.availability-rule-actions{width:100%;justify-content:space-between}.admin-access-card{align-items:start;flex-wrap:wrap}.admin-access-card .primary-button{margin-left:46px}}
@media(max-width:430px){.admin-stat-grid{grid-template-columns:1fr}.admin-panel{padding:16px}.admin-panel-heading{align-items:start;flex-direction:column;gap:10px}.admin-user-row{grid-template-columns:30px minmax(0,1fr);padding:10px}.admin-role-pill{grid-column:2;grid-row:auto;justify-self:start}.admin-user-bookings,.admin-user-last{grid-column:2}.admin-availability-form{grid-template-columns:1fr}.admin-availability-form label,.availability-label-field,.admin-availability-form .primary-button,.admin-availability-form .auth-message{grid-column:auto}.dashboard-booking-row{grid-template-columns:48px minmax(0,1fr)}.dashboard-booking-row .secondary-button{grid-column:2;justify-self:start}.admin-panel-heading .compact-date{width:100%}}
/* Mobile booking layout */
.mobile-menu-toggle{display:none;width:38px;height:38px;padding:8px;place-items:center;gap:4px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:transparent;color:#fff}.mobile-menu-toggle span{display:block;width:20px;height:2px;border-radius:99px;background:currentColor;transition:.18s ease}.site-header.mobile-nav-open .mobile-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.site-header.mobile-nav-open .mobile-menu-toggle span:nth-child(2){opacity:0}.site-header.mobile-nav-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:760px){
  .site-header{height:72px}
  .nav-shell{position:relative;width:calc(100% - 30px);min-height:72px;grid-template-columns:1fr auto auto;gap:10px}
  .brand-logo{width:42px;height:42px}.brand strong{font-size:.78rem}.brand small{font-size:.57rem}
  .main-nav{display:none;position:absolute;top:72px;left:-15px;right:-15px;height:auto;padding:13px 20px;grid-template-columns:repeat(3,1fr);gap:6px;border-top:1px solid rgba(255,255,255,.1);background:var(--navy);box-shadow:0 16px 25px rgba(4,17,29,.2)}
  .site-header.mobile-nav-open .main-nav{display:grid}.main-nav a{min-height:40px;font-size:.68rem}.main-nav a.active:after{bottom:2px}
  .account-button{padding:8px}.account-button span{display:none}.account-button svg{width:19px}
  .mobile-menu-toggle{display:grid}
  .booking-page .booking-hero{display:none}
  .booking-page .booking-section{width:100%;padding:20px 15px 110px}
  .booking-page .booking-heading{margin-bottom:17px;padding:0 2px}.booking-page .booking-heading .eyebrow,.booking-page .booking-heading>p{display:none}.booking-page .booking-heading h2{margin:0;font-size:1.85rem;letter-spacing:-.055em}
  .booking-page .stepper-wrap{border:0;background:transparent}.booking-page .stepper{width:100%;height:88px;padding:0 4px;grid-template-columns:repeat(4,1fr)}.booking-page .stepper li{flex-direction:column;justify-content:center;gap:7px;text-align:center}.booking-page .stepper li>span{width:35px;height:35px;background:#fff;font-size:.7rem}.booking-page .stepper li:not(:last-child):after{display:block;top:32px;right:-50%;left:50%;width:auto;height:2px;z-index:0}.booking-page .stepper li.active:not(:last-child):after,.booking-page .stepper li.complete:not(:last-child):after{background:var(--lime)}.booking-page .stepper li strong{font-size:.68rem}.booking-page .stepper li div small{display:none}
  .booking-page .booking-surface{display:grid;gap:9px;min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
  .booking-page .calendar-panel,.booking-page .selection-panel{border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 8px 25px rgba(7,26,45,.05)}
  .booking-page .calendar-panel{padding:18px 15px;border-bottom:1px solid var(--line)}.booking-page .calendar-nav{margin:17px 0 13px}.booking-page .calendar-month{font-size:.86rem}.booking-page .calendar-week{font-size:.61rem;gap:3px}.booking-page .calendar-grid{gap:3px}.booking-page .calendar-day{font-size:.8rem}.booking-page .calendar-today{margin-top:13px}
  .booking-page .selection-panel{padding:17px 15px}.booking-page .panel-title h3{font-size:.85rem}.booking-page .court-grid{gap:9px;margin-top:14px}.booking-page .court-card{display:grid;grid-template-columns:42% 58%;min-height:126px}.booking-page .court-photo{grid-column:1;grid-row:1;height:100%;min-height:126px}.booking-page .court-info{grid-column:2;grid-row:1;padding:17px 13px 10px}.booking-page .court-info h4{font-size:.82rem}.booking-page .court-info>span{font-size:.62rem}.booking-page .court-features{flex-wrap:wrap;gap:5px 9px;margin-top:9px;padding-top:8px;font-size:.53rem}.booking-page .court-check{top:9px;left:9px;right:auto;width:24px;height:24px}.booking-page .status-pill{top:9px;right:9px;left:auto;padding:5px 6px;font-size:.48rem}.booking-page .court-select{z-index:3}
  .booking-page .times-section{margin-top:0;padding:17px 0 0;border-top:1px solid var(--line)}.booking-page .times-heading{padding:0 1px}.booking-page .availability-legend{display:none}.booking-page .time-grid{margin-top:14px}.booking-page .range-instruction{margin-bottom:11px}.booking-page .range-instruction strong{font-size:.74rem}.booking-page .range-instruction span{font-size:.6rem}.booking-page .range-time-grid{gap:7px}.booking-page .range-time-button{min-height:54px;font-size:.72rem}.booking-page .range-time-button small{font-size:.5rem}
  .booking-page .summary-card{position:sticky;bottom:0;z-index:15;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"header header" "date private" "list payment" "total note" "confirm confirm" "secure secure";gap:0 15px;max-height:70vh;overflow:auto;margin:0 -15px;padding:25px 18px 13px;border:0;border-radius:20px 20px 0 0;background:linear-gradient(180deg,#0b253e,#071a2d);box-shadow:0 -12px 32px rgba(7,26,45,.22)}
  .booking-page .summary-card:before{content:"";position:absolute;top:8px;left:50%;width:38px;height:4px;transform:translateX(-50%);border-radius:99px;background:rgba(255,255,255,.38)}.booking-page .summary-header{grid-area:header}.booking-page .summary-date{grid-area:date;margin-top:20px;padding:14px 0}.booking-page .summary-list{grid-area:list}.booking-page .price-total{grid-area:total;padding:14px 0 3px}.booking-page .privacy-option{grid-area:private;margin-top:20px}.booking-page .payment-preview{grid-area:payment;margin-top:0;padding-top:14px}.booking-page .summary-note{grid-area:note;margin-top:14px}.booking-page .confirm-button{grid-area:confirm;position:static;margin-top:14px;box-shadow:none}.booking-page .secure-note{grid-area:secure;margin-top:8px}
}
@media(max-width:430px){.booking-page .stepper{padding:0}.booking-page .stepper li strong{font-size:.62rem}.booking-page .calendar-panel,.booking-page .selection-panel{border-radius:13px}.booking-page .court-card{grid-template-columns:40% 60%}.booking-page .summary-card{padding-left:15px;padding-right:15px;gap:0 11px}.booking-page .summary-list div{padding:11px 0;font-size:.69rem}.booking-page .payment-methods{gap:6px}.booking-page .payment-method{min-height:49px;padding:7px}.booking-page .payment-method strong{font-size:.54rem}.booking-page .payment-method small{font-size:.44rem}}
@media(max-width:760px){
  .booking-page .summary-card{max-height:min(560px,46vh);padding:20px 18px 10px;overscroll-behavior:contain;scrollbar-width:thin}
  .booking-page .summary-header h3{font-size:.9rem}.booking-page .summary-header small{font-size:.53rem}.booking-page .summary-date{margin-top:11px;padding:9px 0}.booking-page .summary-date span{font-size:.55rem}.booking-page .summary-date strong{font-size:.76rem}
  .booking-page .summary-list div{padding:8px 0;font-size:.68rem}.booking-page .summary-list div:nth-child(4){display:none}
  .booking-page .privacy-option{margin-top:10px;padding:8px 8px}.booking-page .privacy-option strong{font-size:.61rem}.booking-page .privacy-option small{font-size:.49rem;line-height:1.3}
  .booking-page .payment-preview{padding-top:8px}.booking-page .payment-preview-note{display:none}.booking-page .payment-methods{margin-top:7px}
  .booking-page .price-total{padding:9px 0 1px}.booking-page .price-total span{font-size:.67rem}.booking-page .price-total strong{font-size:1.5rem}.booking-page .summary-note{margin-top:8px;padding:8px;font-size:.56rem}.booking-page .confirm-button{min-height:46px;margin-top:8px}.booking-page .secure-note{margin-top:5px;font-size:.52rem}
  .booking-page .summary-card>*,.booking-page .summary-details>*{min-width:0;max-width:100%}.booking-page .summary-header>div{min-width:0}.booking-page .summary-header h3{overflow-wrap:anywhere}.booking-page .summary-list div{align-items:flex-start}.booking-page .summary-list dt{min-width:0;flex:1 1 40%}.booking-page .summary-list dd{min-width:0;max-width:60%;flex:0 1 60%;overflow-wrap:anywhere}.booking-page .privacy-option>span,.booking-page .privacy-option strong,.booking-page .privacy-option small,.booking-page .payment-preview,.booking-page .payment-preview-heading,.booking-page .payment-preview-heading>div,.booking-page .payment-method>span:last-child,.booking-page .summary-note p{min-width:0;overflow-wrap:anywhere}
}
.booking-page .summary-details{display:contents}.mobile-summary-meta,.mobile-summary-toggle{display:none}
@media(max-width:760px){
  .booking-page .selection-panel,.booking-page .times-section{scroll-margin-top:88px}
  .booking-page .summary-card{max-height:min(560px,68vh);transition:max-height .22s ease,padding .22s ease}
  .booking-page .summary-card.is-expanded{overflow:auto}
  .booking-page .summary-card.is-collapsed{max-height:88px;overflow:hidden;padding:14px 18px 12px}
  .booking-page .summary-card.is-collapsed .summary-details{display:none}
  .booking-page .summary-header{min-width:0;align-items:center}
  .booking-page .summary-header>div{flex:1 1 auto;min-width:0}
  .booking-page .mobile-summary-meta{display:block;max-width:100%;margin-top:4px;overflow:hidden;color:#aebbc5;font-size:.54rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
  .booking-page .mobile-summary-toggle{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font-size:1rem;line-height:1}
  .booking-page .mobile-summary-toggle:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
  .booking-page .summary-card.is-collapsed:before{top:5px}
}
@media(max-width:430px){
  .booking-page .summary-card.is-collapsed{padding-left:15px;padding-right:15px}
  .booking-page .summary-card.is-collapsed .summary-header h3{font-size:.84rem}
  .booking-page .summary-card.is-collapsed .mobile-summary-meta{font-size:.5rem}
}

.home-events-section{width:min(1320px,calc(100% - 64px));margin:0 auto 88px}.home-events-section .home-section-heading{margin-bottom:22px}.home-events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-event-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:15px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 8px 24px rgba(7,26,45,.045);transition:transform .18s ease,box-shadow .18s ease}.home-event-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(7,26,45,.09)}.home-event-date{display:flex;min-height:64px;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;background:var(--lime);color:var(--navy)}.home-event-date strong{font-size:1.45rem;line-height:1;letter-spacing:-.06em}.home-event-date span{margin-top:5px;font-size:.52rem;font-weight:900;letter-spacing:.08em}.home-event-body{min-width:0}.home-event-meta,.home-event-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-event-meta{min-height:18px}.home-event-category{color:var(--lime-dark);font-size:.5rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.home-event-details{overflow:hidden;color:var(--muted);font-size:.52rem;text-overflow:ellipsis;white-space:nowrap}.home-event-body h3{margin:8px 0 0;color:var(--navy);font-size:.76rem;line-height:1.2}.home-event-body p{display:-webkit-box;overflow:hidden;margin:6px 0 0;color:var(--muted);font-size:.57rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-event-footer{min-height:23px;margin-top:11px}.home-event-location{overflow:hidden;color:#6d7b84;font-size:.53rem;text-overflow:ellipsis;white-space:nowrap}.home-event-link{flex:0 0 auto;color:var(--navy);font-size:.55rem;font-weight:900;white-space:nowrap}.home-event-link span{margin-left:4px;color:var(--lime-dark)}
.admin-events-panel{grid-column:1/-1}.admin-events-layout{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);gap:20px;align-items:start}.admin-event-form{padding:15px;border:1px solid #e7ece8;border-radius:10px;background:#fbfcfb}.admin-event-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-event-form label{display:grid;gap:6px;color:var(--muted);font-size:.63rem;font-weight:800}.admin-event-form label small{font-weight:600}.admin-event-form input,.admin-event-form select,.admin-event-form textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:.68rem;font-weight:600}.admin-event-form textarea{min-height:68px;resize:vertical;line-height:1.4}.admin-event-wide{grid-column:1/-1}.admin-event-publish{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:8px;margin-top:13px;padding:10px;border:1px solid #e2e9d4;border-radius:8px;background:#f7faef;cursor:pointer}.admin-event-publish input{width:16px;height:16px;min-height:16px;flex:0 0 auto;margin:1px 0 0;accent-color:var(--lime-dark)}.admin-event-publish strong,.admin-event-publish small{display:block}.admin-event-publish strong{color:var(--ink);font-size:.64rem}.admin-event-publish small{margin-top:3px;color:var(--muted);font-size:.55rem;font-weight:500}.admin-event-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.admin-event-form-actions .primary-button,.admin-event-form-actions .secondary-button{min-height:38px;font-size:.58rem}.admin-event-form .auth-message{margin-top:10px;font-size:.62rem}.admin-events-list{display:grid;gap:7px;max-height:520px;overflow:auto;padding-right:2px}.admin-event-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px;border:1px solid #edf0ed;border-radius:9px;background:#fff}.admin-event-row-date{display:flex;min-height:52px;flex-direction:column;align-items:center;justify-content:center;border-radius:7px;background:#eef4dd;color:var(--lime-dark)}.admin-event-row-date strong{font-size:1.1rem;line-height:1;letter-spacing:-.05em}.admin-event-row-date span{margin-top:4px;font-size:.45rem;font-weight:900;letter-spacing:.07em}.admin-event-row-main{min-width:0}.admin-event-row-meta{display:flex;align-items:center;gap:6px;margin-bottom:5px}.admin-event-category,.admin-event-status{padding:4px 6px;border-radius:99px;font-size:.46rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.admin-event-category{background:#e9edf3;color:#36516a}.admin-event-status{background:#f0f1f0;color:#7a8580}.admin-event-status.is-published{background:#eff4e5;color:#5d7d15}.admin-event-row-main>strong,.admin-event-row-main>span{display:block}.admin-event-row-main>strong{overflow:hidden;color:var(--ink);font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.admin-event-row-main>span{margin-top:4px;overflow:hidden;color:var(--muted);font-size:.55rem;text-overflow:ellipsis;white-space:nowrap}.admin-event-row-actions{display:flex;align-items:center;gap:9px}.text-action-button{padding:0;border:0;background:transparent;color:var(--navy);font-size:.57rem;font-weight:900}.text-action-button:hover{color:var(--lime-dark)}.admin-events-empty{display:grid;gap:5px}.admin-events-empty strong{color:var(--ink);font-size:.67rem}.admin-events-empty span{font-size:.58rem}
@media(max-width:1050px){.home-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-events-layout{grid-template-columns:1fr}.admin-events-list{max-height:none}}
@media(max-width:760px){.home-events-section{width:calc(100% - 30px);margin-bottom:65px}.home-events-grid{grid-template-columns:1fr}.home-event-card{grid-template-columns:58px minmax(0,1fr);gap:12px}.home-event-date{min-height:58px}.home-event-date strong{font-size:1.3rem}.admin-events-layout{gap:14px}.admin-event-form-grid{grid-template-columns:1fr}.admin-event-wide{grid-column:auto}.admin-event-row{grid-template-columns:48px minmax(0,1fr);align-items:start}.admin-event-row-actions{grid-column:2;justify-content:flex-start}.admin-events-list{overflow:visible}}
@media(max-width:430px){.home-event-meta{align-items:flex-start;flex-direction:column;gap:3px}.home-event-footer{align-items:flex-start;flex-direction:column;gap:6px}.home-event-footer>span:empty{display:none}.admin-events-panel .admin-panel-heading{align-items:start}.admin-event-form-actions{display:grid;grid-template-columns:1fr}.admin-event-form-actions button{width:100%}}

/* Home visual refresh: compact club landing page aligned with the approved mockup. */
html,body{min-height:100%}
body{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}
body>main{width:100%;flex:1 0 auto}
.site-footer{flex:0 0 auto}
.account-button{min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:transparent;box-shadow:none;appearance:none;line-height:1}
.account-button:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:999px}
.account-button svg{display:block;flex:0 0 19px}
.site-header{height:64px}
.nav-shell{width:min(1360px,calc(100% - 96px))}
.home-page{overflow:hidden;background:#fff}
.home-hero{min-height:296px;background:linear-gradient(90deg,rgba(3,19,34,.94) 0%,rgba(5,23,38,.72) 52%,rgba(5,23,38,.24) 100%),url("assets/campo-cemento-hero.png") center 50%/cover}
.home-hero:after{height:60px;background:linear-gradient(transparent,rgba(3,19,34,.36))}
.home-hero-inner{width:min(1360px,calc(100% - 96px));min-height:296px;padding:18px 0 28px;justify-content:center}
.home-hero h1{max-width:780px;font-size:clamp(2.7rem,4.5vw,4.1rem);line-height:.98;letter-spacing:-.055em}
.home-hero p:not(.hero-kicker){margin:18px 0 20px;color:#e0e7eb;font-size:.78rem;line-height:1.65}
.home-hero-actions{gap:18px}
.home-page .lime-button,.home-page .outline-button{min-height:42px;padding:0 20px;border-radius:7px;font-size:.63rem}
.home-page .lime-button span{font-size:1rem;line-height:0}
.home-page .outline-button{border-color:rgba(255,255,255,.5);background:rgba(3,19,34,.22)}
.home-quick-actions{width:min(1320px,calc(100% - 96px));margin:16px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border:0;background:transparent}
.home-quick-actions>a.home-quick-card{min-height:68px;padding:14px 18px;display:grid;grid-template-columns:45px minmax(0,1fr) 20px;align-items:center;gap:13px;border:1px solid #e1e5e1;border-radius:8px;background:#fff;box-shadow:0 3px 14px rgba(7,26,45,.045);transition:transform .18s ease,box-shadow .18s ease}
.home-quick-card:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(7,26,45,.09)}
.home-quick-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;background:var(--lime);color:var(--navy)}
.home-quick-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.home-quick-copy{min-width:0}.home-quick-copy strong,.home-quick-copy small{display:block}.home-quick-copy strong{font-size:.78rem}.home-quick-copy small{margin-top:4px;color:var(--muted);font-size:.58rem;line-height:1.35}.home-quick-arrow{color:var(--lime-dark);font-size:1.4rem;font-weight:400;line-height:1}
.home-courts{width:min(1320px,calc(100% - 96px));padding:17px 0 0}
.home-section-heading{margin-bottom:10px;align-items:center}.home-section-heading h2,.home-benefits>h2{margin:0;color:var(--ink);font-size:1.08rem;letter-spacing:-.025em}.home-section-link{color:var(--ink);font-size:.59rem;font-weight:700}.home-section-link span{margin-left:4px;color:var(--lime-dark);font-size:1rem;vertical-align:-1px}
.home-court-grid{gap:16px}.home-court-card{min-height:160px;border-radius:8px;box-shadow:none}.home-court-overlay{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:15px 17px}.home-court-info h3{margin:0;font-size:1rem;line-height:1.1}.home-court-info p{margin:5px 0 0;color:#f2f5f5;font-size:.55rem}.home-court-info p span{margin:0 5px;color:var(--lime);font-weight:900}.home-court-overlay>a{padding:0;color:var(--lime);font-size:.56rem;white-space:nowrap}.home-court-overlay>a span{margin-left:5px;font-size:1rem;vertical-align:-1px}.home-court-image{background-position:center 48%}.home-grass .home-court-image{background-position:center 58%}
.home-benefits{width:min(1320px,calc(100% - 96px));margin:0 auto;padding:17px 0 18px}.home-benefits>h2{margin-bottom:10px}.home-benefit-grid{display:grid;grid-template-columns:repeat(3,1fr)}.home-benefit{min-width:0;padding:5px 28px 5px 0;display:flex;align-items:center;gap:13px}.home-benefit:not(:last-child){margin-right:28px;border-right:1px solid var(--line)}.home-benefit-icon{display:grid;width:57px;height:57px;flex:0 0 57px;place-items:center;border-radius:50%;background:var(--lime);color:var(--navy)}.home-benefit-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.home-benefit h3{margin:0;font-size:.76rem}.home-benefit p{margin:5px 0 0;color:var(--muted);font-size:.56rem;line-height:1.45}
.home-events-section{width:min(1320px,calc(100% - 96px));margin:0 auto 16px}.home-events-section .home-section-heading{margin-bottom:10px}.home-events-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.home-event-card{grid-template-columns:52px minmax(0,1fr);gap:12px;min-height:70px;padding:9px;border-radius:8px;box-shadow:0 3px 14px rgba(7,26,45,.045)}.home-event-date{min-height:52px;border-radius:7px}.home-event-date strong{font-size:1.25rem}.home-event-date span{margin-top:3px;font-size:.48rem}.home-event-meta{min-height:14px}.home-event-category{font-size:.45rem}.home-event-details{font-size:.49rem}.home-event-body h3{margin:4px 0 0;font-size:.65rem}.home-event-body p{margin:4px 0 0;font-size:.52rem}.home-event-footer{min-height:16px;margin-top:5px}.home-event-location,.home-event-link{font-size:.49rem}.home-events-empty{min-height:70px;grid-column:1/-1;display:grid;place-items:center;padding:16px;border:1px dashed #dce4d8;border-radius:8px;background:#fbfcf8;color:var(--muted);font-size:.62rem;text-align:center}
.home-final-cta{width:min(1320px,calc(100% - 96px));min-height:76px;margin:0 auto 10px;padding:14px 31px;border-radius:8px;background:linear-gradient(90deg,rgba(3,19,34,.97),rgba(3,19,34,.7)),url("assets/campo-erba.jpg") center 58%/cover}.home-final-cta h2{margin:0;font-size:1.18rem;line-height:1.08;letter-spacing:-.035em}.home-final-cta p{margin:4px 0 0;color:#d4dde2;font-size:.58rem}.home-final-cta .lime-button{min-height:38px;padding:0 17px}
.site-footer{padding:0}.footer-shell-rich{width:min(1320px,calc(100% - 96px));min-height:125px;padding:22px 0 16px;grid-template-columns:1.4fr repeat(3,1fr);gap:36px}.footer-intro p{margin-top:8px;font-size:.56rem}.footer-column{gap:5px;font-size:.57rem}.footer-column>strong{font-size:.58rem}.footer-social-links{display:flex;gap:8px;margin-top:4px}.footer-social-link{display:grid;width:27px;height:27px;place-items:center;border:1px solid rgba(255,255,255,.8);border-radius:50%;color:#fff;font-size:.85rem;font-weight:800}.footer-social-link:hover{border-color:var(--lime);color:var(--lime)}.footer-bottom{width:min(1320px,calc(100% - 96px));padding:10px 0;font-size:.5rem}
.account-chevron{display:block;width:12px!important;height:12px;flex:0 0 12px!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:#cbd6dc;transform:none}.account-button .account-name{font-size:inherit;line-height:1}
.booking-hero{background-image:linear-gradient(90deg,rgba(4,18,31,.94) 0%,rgba(5,20,34,.73) 48%,rgba(6,23,37,.32) 100%),url("assets/campo-cemento-hero.png");background-position:center 50%;background-size:cover}
.home-cement .home-court-image{background-image:linear-gradient(180deg,rgba(7,26,45,.02) 30%,rgba(7,26,45,.9)),url("assets/campo-cemento-hero.png")}

@media(max-width:1050px){.home-quick-actions,.home-courts,.home-benefits,.home-events-section,.home-final-cta{width:calc(100% - 48px)}.home-benefit{padding-right:16px}.home-benefit:not(:last-child){margin-right:16px}.home-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.site-header{height:auto}.nav-shell{width:calc(100% - 30px)}.home-hero{min-height:430px}.home-hero-inner{width:calc(100% - 30px);min-height:430px;padding:45px 0 65px}.home-hero h1{font-size:2.7rem}.home-hero p:not(.hero-kicker){font-size:.72rem}.desktop-only{display:none}.home-hero-actions{width:100%;gap:8px}.home-hero-actions a{flex:1}.home-quick-actions{width:calc(100% - 30px);grid-template-columns:1fr;gap:9px;margin-top:14px}.home-quick-actions>a.home-quick-card{min-height:64px;padding:11px 14px}.home-courts,.home-benefits,.home-events-section,.home-final-cta{width:calc(100% - 30px)}.home-courts{padding-top:38px}.home-section-heading{align-items:flex-start}.home-court-grid{grid-template-columns:1fr;gap:10px}.home-court-card{min-height:180px}.home-benefits{padding-top:35px}.home-benefit-grid{grid-template-columns:1fr;gap:0}.home-benefit{padding:13px 0}.home-benefit:not(:last-child){margin-right:0;border-right:0;border-bottom:1px solid var(--line)}.home-events-section{margin-bottom:14px}.home-events-grid{grid-template-columns:1fr}.home-final-cta{margin-bottom:0;padding:24px 20px;align-items:flex-start;flex-direction:column;gap:15px}.home-final-cta .lime-button{width:100%}.footer-shell-rich{width:calc(100% - 30px);grid-template-columns:1fr 1fr;gap:22px;padding:26px 0 18px}.footer-bottom{width:calc(100% - 30px);gap:12px;line-height:1.4}.footer-bottom span:last-child{text-align:right}}
@media(max-width:430px){.home-hero h1{font-size:2.3rem}.home-hero-actions{align-items:stretch;flex-direction:column}.home-hero-actions a{width:100%}.home-court-overlay{align-items:flex-start;flex-direction:column;gap:9px}.home-court-overlay>a{align-self:flex-start}.footer-shell-rich{grid-template-columns:1fr}.footer-bottom{align-items:flex-start;flex-direction:column}.footer-bottom span:last-child{text-align:left}}

/* Admin UX refresh: clearer hierarchy, faster navigation and calmer forms. */
.admin-dashboard-content{display:grid;gap:16px}.admin-toolbar{align-items:flex-end;margin-bottom:0;padding:4px 2px}.admin-toolbar>div:first-child p{margin:7px 0 0;color:var(--muted);font-size:.7rem}.admin-toolbar-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.admin-toolbar-actions>a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;font-size:.6rem}.admin-toolbar-actions .admin-month-control{min-width:158px}.admin-toolbar-actions .admin-month-control input{width:100%}
.admin-section-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px;border:1px solid #e0e7df;border-radius:14px;background:#eaf0e9}.admin-section-nav a{min-width:0;padding:12px 13px;border:1px solid transparent;border-radius:10px;color:var(--ink);background:rgba(255,255,255,.62);text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease}.admin-section-nav a:hover{border-color:#cddbbd;background:#fff;transform:translateY(-1px)}.admin-section-nav a span,.admin-section-nav a strong,.admin-section-nav a small{display:block}.admin-section-nav a span{color:var(--lime-dark);font-size:.52rem;font-weight:900;letter-spacing:.08em}.admin-section-nav a strong{margin-top:5px;font-size:.68rem}.admin-section-nav a small{margin-top:3px;color:var(--muted);font-size:.55rem}
.admin-panel{scroll-margin-top:24px;padding:24px;border-radius:16px;box-shadow:0 10px 28px rgba(7,26,45,.045)}.admin-primary-grid,.admin-secondary-grid{gap:16px}.admin-primary-grid{grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr)}.admin-secondary-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}.admin-primary-grid .admin-panel{min-height:100%}.admin-bookings-panel{min-height:285px}.admin-reserve-panel{min-height:285px}.admin-secondary-grid .admin-users-panel,.admin-secondary-grid .admin-availability-panel{min-height:0}.admin-panel-heading{align-items:flex-start;margin-bottom:12px}.admin-panel-heading h2{font-size:1.2rem}.admin-panel-intro{max-width:720px;margin:-2px 0 18px;line-height:1.55}
.admin-bookings-panel .admin-panel-heading .compact-date{min-width:142px}.admin-bookings-panel .admin-bookings-list{min-height:130px}.admin-reserve-form{grid-template-columns:1fr 1fr;align-items:end;gap:11px}.admin-reserve-form label:nth-of-type(3),.admin-reserve-form label:nth-of-type(4){grid-column:span 1}.admin-reserve-form .primary-button{grid-column:1/-1}.admin-reserve-form .auth-message{grid-column:1/-1;margin:0}
.admin-events-panel{padding:24px}.admin-events-layout{grid-template-columns:minmax(390px,.95fr) minmax(0,1.05fr);gap:22px}.admin-event-form{display:grid;gap:12px;padding:14px;border:1px solid #e2e9e1;border-radius:12px;background:#f8faf7}.admin-event-form-section{padding:14px;border:1px solid #e4eae3;border-radius:10px;background:#fff}.admin-form-section-heading{display:flex;align-items:flex-start;gap:9px;margin-bottom:12px}.admin-form-section-heading h3{margin:0;color:var(--ink);font-size:.72rem}.admin-form-section-heading p{margin:4px 0 0;color:var(--muted);font-size:.57rem;line-height:1.4}.admin-form-step{display:grid;width:22px;height:22px;flex:0 0 22px;place-items:center;border-radius:50%;background:var(--lime);color:var(--navy);font-size:.58rem;font-weight:900}.admin-event-form-grid{gap:11px}.admin-event-form label{font-size:.6rem}.admin-event-form input,.admin-event-form select,.admin-event-form textarea{min-height:42px;font-size:.66rem}.admin-event-form textarea{min-height:72px}.admin-event-publish{margin-top:0}.admin-event-form-actions{margin-top:0}.admin-events-list{max-height:590px}.admin-event-row{padding:12px;border-radius:10px}.admin-users-list{gap:8px}
.admin-availability-form{gap:11px}.admin-secondary-grid .admin-panel-intro{min-height:35px}.admin-secondary-grid .admin-users-list{max-height:430px;overflow:auto;padding-right:2px}.admin-secondary-grid .admin-availability-list{margin-top:3px}
.admin-availability-list-title{margin:18px 0 0;font-size:.78rem;letter-spacing:-.01em}.admin-availability-featured .admin-availability-list{margin:8px 0 22px}
.admin-week-mobile-courts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:12px}.admin-week-mobile-courts button{min-height:36px;padding:6px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:.59rem;font-weight:750}.admin-week-mobile-courts button.is-selected{border-color:#719a1d;background:#f0f6e7;color:#355b1c}.admin-week button:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.admin-week{margin:20px 0 28px;padding:15px;border:1px solid #dce4da;border-radius:11px;background:#fbfcfa}.admin-week-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-week-heading h3{margin:5px 0 0;font-size:1rem;letter-spacing:-.025em}.admin-week-heading p{margin:5px 0 0;color:var(--muted);font-size:.65rem;font-weight:700}.admin-week-controls{display:flex;gap:5px;flex:none}.admin-week-controls button{min-width:34px;min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:.62rem;font-weight:800}.admin-week-controls button:hover{border-color:var(--lime-dark)}.admin-week-legend{display:flex;flex-wrap:wrap;gap:12px;margin:15px 0 12px;color:var(--muted);font-size:.56rem;font-weight:700}.admin-week-legend span{display:flex;align-items:center;gap:5px}.admin-week-legend i{width:9px;height:9px;border-radius:2px}.admin-week-legend .is-free{background:#7db735}.admin-week-legend .is-busy{background:#cf625d}.admin-week-legend .is-elapsed{background:#aeb9b1}.admin-week-mobile-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.admin-week-day{display:grid;justify-items:center;gap:4px;min-width:0;padding:8px 1px;border:1px solid #e2e7e1;border-radius:7px;background:#fff;color:var(--ink)}.admin-week-day.is-selected{border-color:#719a1d;box-shadow:inset 0 0 0 1px #719a1d}.admin-week-day>span{color:var(--muted);font-size:.53rem;font-weight:700;text-transform:capitalize}.admin-week-day strong{font-size:.9rem;line-height:1}.admin-week-day i{display:flex;gap:2px;align-items:center;height:3px}.admin-week-day i b{width:10px;height:3px;border-radius:3px}.admin-week-day i .is-free{background:#7db735}.admin-week-day i .is-busy{background:#cf625d}.admin-week-mobile-detail{margin-top:16px}.admin-week-mobile-detail h4{margin:0 0 12px;font-size:.78rem}.admin-week-mobile-detail section+section{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.admin-week-mobile-detail h5{margin:0 0 9px;font-size:.68rem}.admin-week-mobile-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:5px}.admin-week-slot{display:grid;align-content:center;justify-items:center;gap:3px;min-width:0;min-height:47px;padding:5px 2px;border:1px solid transparent;border-radius:6px;text-align:center}.admin-week-slot span{font-size:.63rem;font-weight:800}.admin-week-slot small{font-size:.51rem;font-weight:700}.admin-week-slot.is-free{border-color:#a8c87e;background:#eff7e8;color:#345b1b}.admin-week-slot.is-booked,.admin-week-slot.is-reserved,.admin-week-slot.is-closed{border-color:#dfa5a1;background:#fbeceb;color:#922c28}.admin-week-slot.is-elapsed,.admin-week-slot.is-unscheduled{border-color:#e1e5e1;background:#f0f2ef;color:#77827b}.admin-week-slot.is-selected{outline:2px solid var(--navy);outline-offset:1px}.admin-week-selection{min-height:18px;margin:15px 0 0;color:var(--ink);font-size:.63rem;line-height:1.45}.admin-week-grid{display:none}
@media(min-width:761px){.admin-week{padding:18px}.admin-week-mobile-days,.admin-week-mobile-detail{display:none}.admin-week-grid{display:block;max-height:530px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.admin-week-table{display:grid;grid-template-columns:58px repeat(7,minmax(100px,1fr));gap:1px;min-width:800px;background:var(--line)}.admin-week-corner,.admin-week-date{position:sticky;top:0;z-index:2;display:grid;align-content:center;justify-items:center;min-height:48px;background:#f1f4ef}.admin-week-corner{font-size:.54rem;font-weight:800;color:var(--muted)}.admin-week-date strong{font-size:.61rem;text-transform:capitalize}.admin-week-date span{font-size:.55rem;color:var(--muted)}.admin-week-court-name{grid-column:1/-1;margin:0;padding:9px 12px;background:#e9efea;font-size:.65rem}.admin-week-time{display:grid;place-items:center;background:#fff;color:var(--muted);font-size:.58rem;font-weight:700}.admin-week-grid .admin-week-slot{min-height:34px;border-radius:0}.admin-week-grid .admin-week-slot span{display:none}.admin-week-grid .admin-week-slot small{font-size:.54rem}.admin-week-grid .admin-week-slot.is-unscheduled{display:grid;place-items:center}.admin-week-grid .admin-list-loading{padding:15px;background:#fff}}
@media(max-width:390px){.admin-week{padding:11px}.admin-week-heading{flex-wrap:wrap}.admin-week-controls{width:100%;justify-content:flex-end}.admin-week-day{padding:7px 0}.admin-week-day strong{font-size:.82rem}}
.admin-week-reservation{display:grid;gap:14px;margin-top:14px;padding:15px;border:1px solid #c8d7bb;border-radius:8px;background:#fff}.admin-week-reservation[hidden]{display:none}.admin-week-reservation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-week-reservation-heading>div{display:grid;gap:4px}.admin-week-reservation-heading strong{font-size:.78rem}.admin-week-reservation-heading span{color:var(--muted);font-size:.65rem;line-height:1.4}.admin-week-reservation-cancel{border:0;background:transparent;color:var(--muted);font-size:.64rem;font-weight:700;text-decoration:underline;cursor:pointer}.admin-week-reservation fieldset{min-width:0;margin:0;padding:0;border:0}.admin-week-reservation legend,.admin-week-reservation label{display:block;margin-bottom:7px;color:var(--ink);font-size:.65rem;font-weight:750}.admin-week-reservation label span{color:var(--muted);font-weight:500}.admin-week-end-options{display:flex;flex-wrap:wrap;gap:6px}.admin-week-end-options button{min-width:62px;min-height:39px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:.68rem;font-weight:750;cursor:pointer}.admin-week-end-options button.is-selected{border-color:var(--navy);background:var(--navy);color:#fff}.admin-week-reservation input{display:block;width:100%;min-height:44px;margin-top:7px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:.72rem}.admin-week-reservation>.primary-button{justify-self:start;min-width:112px}.admin-week-reservation>.primary-button:disabled{opacity:.5;cursor:not-allowed}#adminWeekReservationMessage:empty{display:none}@media(max-width:760px){.admin-week-reservation>.primary-button{width:100%}}
.admin-availability-featured .admin-availability-form{padding-bottom:20px;border-bottom:1px solid var(--line)}.admin-availability-featured .admin-booking-settings-form{margin:18px 0 22px}
.availability-slot-status{grid-column:1/-1;margin:0;color:var(--muted);font-size:.65rem}
.admin-week-slot.is-free.is-in-range{border-color:#5f8c27;background:#dceccf;color:#254a18}.admin-week-slot.is-free.is-selected{outline:2px solid var(--navy);outline-offset:-2px}.admin-week-reservation{gap:10px}.admin-day-availability{margin:0 0 18px;padding:11px 0;border-bottom:1px solid var(--line)}.admin-day-availability summary{width:max-content;max-width:100%;color:var(--ink);font-size:.68rem;font-weight:750;cursor:pointer}.admin-day-availability .admin-availability-form{margin-top:15px;padding-bottom:18px;border-bottom:0}.admin-day-availability .availability-label-field{grid-column:1/-1}@media(max-width:760px){.admin-week-slot.is-free.is-in-range{box-shadow:inset 0 0 0 1px #5f8c27}.admin-day-availability summary{min-height:42px;display:flex;align-items:center}.admin-day-availability .admin-availability-form{grid-template-columns:1fr}}
.booking-page .times-heading{gap:12px}.booking-page .availability-legend{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--ink);font-size:.72rem;font-weight:700}.booking-page .availability-legend span{gap:6px}.booking-page .availability-legend i{width:11px;height:11px;border-radius:3px}.booking-page .availability-legend .available{background:#548d32}.booking-page .availability-legend .occupied{background:#bd4642}.booking-page .range-time-button{min-height:64px;padding:6px 5px;text-decoration:none}.booking-page .range-time-button>span{font-size:.88rem}.booking-page .range-time-button small{font-size:.65rem;font-weight:800}.booking-page .range-time-button.is-free{border-color:#8bb878;background:#ebf6e8;color:#28561f}.booking-page .range-time-button.is-free small{color:#28561f}.booking-page .range-time-button.is-occupied{border-color:#d38c87;background:#f9e8e6;color:#8d2825}.booking-page .range-time-button.is-occupied small,.booking-page .range-time-button.is-occupied .booking-occupant{color:#8d2825}.booking-page .range-time-button.is-unavailable{border-color:#dce2dc;background:#f2f4f2;color:#6c7771}.booking-page .range-time-button.is-unavailable small{color:#6c7771}.booking-page .range-time-button:disabled{cursor:default;text-decoration:none;opacity:1}.booking-page .range-time-button.is-start,.booking-page .range-time-button.is-end{border-color:#284d20;background:#568e35;color:#fff;box-shadow:inset 0 0 0 1px #284d20}.booking-page .range-time-button.is-start small,.booking-page .range-time-button.is-end small{color:#fff}.booking-page .range-time-button.in-range{border-color:#659e4d;background:#dcf0d4;color:#28561f}.booking-page .range-time-button.in-range small{color:#28561f}.booking-page .booking-occupant{display:block;max-width:100%;font-size:.54rem;font-style:normal;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.booking-page .status-pill.available{color:#28561f}.booking-page .status-pill.busy{color:#8d2825}@media(max-width:760px){.booking-page .times-heading{align-items:flex-start;flex-direction:column}.booking-page .availability-legend{font-size:.7rem}.booking-page .range-time-button{min-height:68px}.booking-page .range-time-button>span{font-size:.9rem}.booking-page .range-time-button small{font-size:.68rem}}
.booking-page .range-time-button.is-occupied.is-end{border-color:#8d2825;background:#f9e8e6;color:#8d2825;box-shadow:inset 0 0 0 2px #8d2825}.booking-page .range-time-button.is-occupied.is-end small{color:#8d2825}.booking-page .status-pill{font-size:.68rem}@media(max-width:760px){.booking-page .status-pill{font-size:.62rem}}
.booking-page .range-time-button small{font-size:.72rem}.booking-page .booking-occupant{font-size:.62rem}@media(max-width:760px){.booking-page .range-time-button small{font-size:.72rem}}

@media(max-width:1050px){.admin-primary-grid,.admin-secondary-grid{grid-template-columns:1fr}.admin-events-layout{grid-template-columns:1fr}.admin-events-list{max-height:none}.admin-secondary-grid .admin-users-list{max-height:none}}
@media(max-width:760px){.admin-toolbar{align-items:flex-start;gap:15px;padding:0}.admin-toolbar-actions{width:100%;justify-content:flex-start;align-items:stretch}.admin-toolbar-actions>a{flex:1}.admin-toolbar-actions .admin-month-control{width:100%;min-width:100%;order:3}.admin-section-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding:6px}.admin-section-nav a{padding:11px}.admin-panel,.admin-events-panel{padding:17px;border-radius:13px}.admin-primary-grid,.admin-secondary-grid{gap:12px}.admin-reserve-form{grid-template-columns:1fr}.admin-reserve-form label:nth-of-type(3),.admin-reserve-form label:nth-of-type(4),.admin-reserve-form .primary-button,.admin-reserve-form .auth-message{grid-column:auto}.admin-events-layout{gap:14px}.admin-event-form-section{padding:12px}.admin-event-form-grid{grid-template-columns:1fr}.admin-event-wide{grid-column:auto}.admin-event-form-actions{display:flex}.admin-event-form-actions button{flex:1}.admin-panel-heading .compact-date{width:100%}}
@media(max-width:430px){.admin-section-nav{grid-template-columns:1fr}.admin-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.admin-toolbar-actions>a{width:100%;padding:0 8px}.admin-toolbar-actions .admin-month-control{grid-column:1/-1}.admin-panel-heading{gap:10px}.admin-event-form-actions{display:grid}.admin-event-form-actions button{width:100%}}

/* Admin availability first: one clear operational entry point, especially on mobile. */
.admin-primary-grid,.admin-secondary-grid{grid-template-columns:1fr}.admin-availability-featured{border-color:#d1dfb8;box-shadow:0 12px 32px rgba(73,102,24,.08)}.admin-availability-featured .admin-panel-heading{margin-bottom:10px}.admin-availability-featured .admin-panel-meta{padding:6px 9px;border-radius:999px;background:#eff6df;color:#5d7d15;font-size:.55rem}.admin-availability-featured .admin-panel-intro{max-width:680px}.admin-availability-featured .admin-availability-list{margin-top:18px}.admin-secondary-grid .admin-users-list{max-height:none;overflow:visible}
@media(max-width:760px){.admin-page-shell{width:calc(100% - 24px);padding:20px 0 48px}.admin-dashboard-content{gap:12px}.admin-toolbar-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}.admin-toolbar-actions>a{width:100%;min-height:44px}.admin-toolbar-actions .admin-month-control{grid-column:1/-1;min-width:0}.admin-section-nav{gap:6px}.admin-section-nav a{padding:10px}.admin-section-nav a strong{font-size:.65rem}.admin-section-nav a small{font-size:.52rem}.admin-availability-featured{padding:16px}.admin-availability-featured .admin-panel-heading{align-items:flex-start;flex-direction:row}.admin-availability-featured .admin-panel-meta{white-space:nowrap}.admin-availability-form{grid-template-columns:1fr;gap:10px}.admin-availability-form .availability-label-field,.admin-availability-form .primary-button,.admin-availability-form .auth-message{grid-column:1}.admin-availability-form input,.admin-availability-form select{min-height:46px}.admin-availability-featured .admin-availability-list{margin-top:14px}.admin-secondary-grid .admin-users-panel{padding:16px}}
@media(max-width:430px){.admin-toolbar-actions{grid-template-columns:1fr}.admin-toolbar-actions .admin-month-control{grid-column:auto}.admin-availability-featured .admin-panel-heading{align-items:flex-start;flex-direction:column}.admin-availability-featured .admin-panel-meta{align-self:flex-start}.admin-section-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-section-nav a{padding:10px 9px}}

/* Admin section navigation: one focused view at a time. */
.admin-section-view{display:grid;gap:16px;min-width:0}.admin-section-view[hidden]{display:none!important}.admin-section-nav{align-items:stretch}.admin-section-tab{min-width:0;padding:12px 13px;border:1px solid transparent;border-radius:10px;color:var(--ink);background:rgba(255,255,255,.62);font:inherit;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.admin-section-tab:hover{border-color:#cddbbd;background:#fff;transform:translateY(-1px)}.admin-section-tab:focus-visible{outline:2px solid var(--lime-dark);outline-offset:2px}.admin-section-tab.is-active{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:0 7px 18px rgba(7,26,45,.16)}.admin-section-tab span,.admin-section-tab strong,.admin-section-tab small{display:block}.admin-section-tab span{color:var(--lime-dark);font-size:.52rem;font-weight:900;letter-spacing:.08em}.admin-section-tab.is-active span{color:var(--lime)}.admin-section-tab strong{margin-top:5px;font-size:.68rem}.admin-section-tab small{margin-top:3px;color:var(--muted);font-size:.55rem}.admin-section-tab.is-active small{color:#b8c5cd}.admin-toolbar-actions>button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;font-size:.6rem}.admin-toolbar-actions>button:focus-visible{outline:2px solid var(--lime-dark);outline-offset:2px}
@media(max-width:760px){.admin-section-view{gap:12px}.admin-toolbar-actions>button{width:100%;min-height:44px}.admin-section-tab{padding:10px}.admin-section-tab strong{font-size:.65rem}.admin-section-tab small{font-size:.52rem}}
@media(max-width:430px){.admin-toolbar-actions>button{width:100%}.admin-section-tab{padding:10px 9px}}

/* Tournament hub: public results and admin operations share the same visual language. */
.tournaments-page{background:var(--paper);min-height:calc(100vh - 64px)}
.tournaments-hero{background:linear-gradient(100deg,rgba(3,19,34,.97),rgba(7,26,45,.73)),url("assets/campo-cemento-hero.png") center/cover;color:#fff}
.tournaments-hero-inner,.tournaments-page-shell{width:min(1180px,calc(100% - 64px));margin:0 auto}
.tournaments-hero-inner{padding:58px 0 54px}.tournaments-hero h1{max-width:720px;margin:10px 0 12px;font-size:clamp(2.5rem,5vw,4.6rem);line-height:.98;letter-spacing:-.055em}.tournaments-hero p{max-width:560px;margin:0;color:#d8e1e7;font-size:.88rem;line-height:1.65}.tournaments-page-shell{padding:42px 0 76px}.tournament-page-heading,.tournament-detail-header,.tournament-detail-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.tournament-page-heading h2,.tournament-detail-section-heading h2{margin:7px 0 0;font-size:1.7rem;letter-spacing:-.04em}.tournament-page-meta{color:var(--muted);font-size:.7rem}.tournament-list-filters{display:flex;gap:7px;margin:25px 0 15px;padding-bottom:10px;border-bottom:1px solid var(--line);overflow:auto}.tournament-filter,.tournament-detail-tab{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.68rem;font-weight:800;white-space:nowrap}.tournament-filter{padding:9px 15px}.tournament-filter:hover,.tournament-filter.active,.tournament-detail-tab:hover,.tournament-detail-tab.active{border-color:var(--navy);background:var(--navy);color:#fff}.tournament-list{display:grid;gap:10px}.tournament-list-card{display:grid;grid-template-columns:66px minmax(0,1fr) 30px;align-items:center;gap:18px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 6px 18px rgba(7,26,45,.035);transition:transform .18s ease,box-shadow .18s ease}.tournament-list-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(7,26,45,.09)}.tournament-list-card-date{display:grid;place-items:center;align-content:center;min-height:64px;border-radius:10px;background:var(--lime);color:var(--navy)}.tournament-list-card-date strong{font-size:1.35rem;line-height:1}.tournament-list-card-date span{margin-top:4px;font-size:.56rem;font-weight:900}.tournament-list-card-main{min-width:0}.tournament-list-card-top,.admin-tournament-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.tournament-list-card h3{margin:6px 0 4px;font-size:1rem}.tournament-list-card p,.tournament-list-card-progress{display:block;margin:0;color:var(--muted);font-size:.67rem}.tournament-list-card-progress{margin-top:7px;color:#83908b}.tournament-list-card-arrow{color:var(--lime-dark);font-size:1.5rem}.tournament-status{display:inline-flex;align-items:center;width:max-content;padding:5px 8px;border-radius:999px;background:#eef2f0;color:#68767b;font-size:.53rem;font-weight:900;white-space:nowrap}.tournament-status.is-open,.tournament-status.is-draw_ready{background:#edf5d9;color:#5b7c0d}.tournament-status.is-in_progress{background:#dcecf3;color:#1c6276}.tournament-status.is-completed{background:#e8ecf1;color:#3c5369}.tournament-status.is-cancelled{background:#f7e6e6;color:var(--danger)}.tournament-empty{display:grid;justify-items:center;gap:6px;padding:38px 20px;border:1px dashed #d6dfd5;border-radius:13px;background:#fbfcf9;color:var(--muted);text-align:center;font-size:.72rem}.tournament-empty strong{color:var(--ink);font-size:.85rem}.tournament-back-link{display:inline-block;margin-bottom:25px;color:var(--lime-dark);font-size:.72rem;font-weight:900}.tournament-detail-header{align-items:flex-start;padding-bottom:28px;border-bottom:1px solid var(--line)}.tournament-detail-header h1{margin:8px 0 10px;font-size:clamp(2.2rem,4.7vw,4.1rem);line-height:1;letter-spacing:-.055em}.tournament-detail-header p{max-width:620px;margin:0;color:var(--muted);font-size:.8rem;line-height:1.6}.tournament-detail-status{display:grid;justify-items:end;gap:8px;color:var(--muted);font-size:.68rem;text-align:right}.tournament-detail-status strong{color:var(--ink)}.tournament-detail-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:24px 0 35px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.tournament-detail-facts>div{display:grid;gap:5px;padding:14px 16px;background:#fff}.tournament-detail-facts span{color:var(--muted);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em}.tournament-detail-facts strong{font-size:.95rem}.tournament-detail-section{margin-top:34px}.tournament-detail-section-heading{align-items:center;margin-bottom:15px}.tournament-player-chip-list{display:flex;flex-wrap:wrap;gap:7px}.tournament-player-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.65rem}.tournament-player-chip b{color:var(--lime-dark)}.tournament-muted{color:var(--muted);font-size:.72rem}.tournament-detail-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:15px}.tournament-detail-tab{padding:9px 14px}.tournament-draw-head,.admin-draw-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:15px}.tournament-draw-head h3{margin:7px 0 0;font-size:1.05rem}.tournament-draw-lock{padding:6px 9px;border-radius:999px;background:#edf5d9;color:#5b7c0d;font-size:.57rem;font-weight:900}.tournament-rounds{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:11px;overflow:auto;padding:3px}.tournament-round{min-width:0}.tournament-round h4{margin:0 0 8px;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.tournament-match-card,.admin-tournament-match{display:grid;gap:6px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 4px 13px rgba(7,26,45,.035)}.tournament-match-card{margin-bottom:9px}.tournament-match-card-heading,.admin-tournament-match>header{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.55rem}.tournament-match-card-heading small,.admin-tournament-match>header small{font-weight:900}.tournament-match-player{display:flex;justify-content:space-between;gap:8px;padding-top:3px;font-size:.67rem}.tournament-match-player.is-winner{color:var(--lime-dark)}.tournament-match-player b{color:var(--lime-dark)}.tournament-match-score{padding-top:5px;border-top:1px solid var(--line);color:var(--ink);font-size:.62rem;font-weight:900}.tournament-groups-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.tournament-group-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.tournament-group-card>header,.admin-group-card>header{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.tournament-group-card>header strong{font-size:.88rem}.tournament-group-card>header>strong:last-child,.admin-group-card>header span{color:var(--muted);font-size:.62rem}.tournament-standing-table,.admin-standing-table{display:grid;gap:0}.tournament-standing-row,.admin-standing-row{display:grid;grid-template-columns:25px minmax(0,1fr) 25px 35px 35px 42px;align-items:center;gap:5px;padding:8px 4px;border-bottom:1px solid #edf0ed;font-size:.61rem}.tournament-standing-row strong,.admin-standing-row strong{font-size:.64rem}.tournament-standing-head,.admin-standing-head{color:var(--muted);font-size:.52rem;font-weight:800;text-transform:uppercase}.tournament-group-matches{margin-top:15px}.admin-tournament-toolbar{display:flex;align-items:center;gap:10px}.admin-tournament-list{display:grid;gap:8px}.admin-tournament-row{display:grid;grid-template-columns:60px minmax(0,1fr) 24px;align-items:center;gap:14px;width:100%;padding:12px;text-align:left;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);transition:border-color .18s ease,box-shadow .18s ease}.admin-tournament-row:hover,.admin-tournament-row.is-selected{border-color:#b8d36a;box-shadow:0 5px 16px rgba(7,26,45,.06)}.admin-tournament-row-date{display:grid;place-items:center;min-height:52px;border-radius:8px;background:#eef5d2;color:var(--navy)}.admin-tournament-row-date strong{font-size:1.1rem;line-height:1}.admin-tournament-row-date small{margin-top:4px;font-size:.5rem;font-weight:900}.admin-tournament-row-main{display:grid;gap:4px;min-width:0}.admin-tournament-row-main>small,.admin-tournament-row-main>span:last-child{color:var(--muted);font-size:.6rem}.admin-tournament-row-top>strong{font-size:.78rem}.admin-tournament-row-arrow{color:var(--lime-dark);font-size:1.25rem}.admin-tournament-form{display:grid;gap:14px;padding:18px;border:1px solid #dce7d0;border-radius:13px;background:#fbfdf8}.admin-tournament-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-tournament-form label,.admin-tournament-draw-tools label,.admin-match-edit-grid label,.admin-tournament-participant-row label{display:grid;gap:6px;color:var(--muted);font-size:.62rem;font-weight:800}.admin-tournament-form input,.admin-tournament-form select,.admin-tournament-form textarea,.admin-tournament-draw-tools select,.admin-match-edit-grid select,.admin-tournament-participant-row input{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:.68rem}.admin-tournament-form textarea{padding:10px;resize:vertical}.admin-tournament-wide{grid-column:1/-1}.admin-tournament-form .admin-event-publish{display:flex;align-items:center;gap:9px}.admin-tournament-form .admin-event-publish input{width:auto;min-height:auto}.admin-tournament-form .admin-event-publish span{display:grid;gap:3px}.admin-tournament-form .admin-event-publish small{font-weight:500}.admin-tournament-manager{display:grid;gap:15px}.admin-tournament-manager-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:18px;border-radius:13px;background:var(--navy);color:#fff}.admin-tournament-manager-header .eyebrow{color:var(--lime)}.admin-tournament-manager-header h3{margin:6px 0 4px;font-size:1.25rem}.admin-tournament-manager-header p{margin:0;color:#afbec9;font-size:.65rem}.admin-tournament-manager-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.admin-tournament-manager-actions .secondary-button{border-color:rgba(255,255,255,.28);background:transparent;color:#fff}.admin-tournament-manager-actions .text-danger-button{color:#ffb6b6}.admin-tournament-manager-grid{display:grid;grid-template-columns:minmax(300px,.76fr) minmax(0,1.24fr);gap:15px}.admin-tournament-subpanel{display:grid;align-content:start;gap:12px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}.admin-subpanel-heading h4{margin:0;font-size:.92rem}.admin-subpanel-heading p{margin:5px 0 0;color:var(--muted);font-size:.62rem;line-height:1.4}.admin-search-field{display:grid;gap:6px;color:var(--muted);font-size:.62rem;font-weight:800}.admin-search-field input{min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:#fbfcfa;font-size:.7rem}.admin-tournament-user-results{display:grid;gap:6px}.admin-tournament-user-result{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #e3eae0;border-radius:8px;background:#f8faf7;text-align:left}.admin-tournament-user-result span{display:grid;gap:3px;min-width:0}.admin-tournament-user-result strong{font-size:.65rem}.admin-tournament-user-result small{color:var(--muted);font-size:.55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-tournament-user-result b{color:var(--lime-dark);font-size:.56rem;white-space:nowrap}.admin-tournament-user-result:disabled{opacity:.6;cursor:default}.admin-search-hint{color:var(--muted);font-size:.62rem;line-height:1.5}.admin-tournament-participant-list{display:grid;gap:7px;max-height:510px;overflow:auto}.admin-tournament-participant-row{display:grid;grid-template-columns:minmax(0,1fr) 60px 60px;align-items:end;gap:7px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfa}.admin-tournament-participant-order{display:grid;gap:3px;min-width:0}.admin-tournament-participant-order span{color:var(--lime-dark);font-size:.55rem;font-weight:900}.admin-tournament-participant-order strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.65rem}.admin-tournament-participant-order small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.52rem}.admin-tournament-participant-row input{min-height:32px;padding:0 6px;font-size:.6rem}.admin-tournament-participant-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px}.text-action-button,.text-danger-button{border:0;background:transparent;font-size:.59rem;font-weight:900}.text-action-button{color:var(--lime-dark)}.text-danger-button{color:var(--danger)}.admin-tournament-draw-tools{display:flex;align-items:end;gap:9px}.admin-tournament-draw-tools label{flex:1}.admin-tournament-draw-tools .primary-button{min-height:40px;white-space:nowrap}.admin-draw-card{padding:15px;border:1px solid var(--line);border-radius:11px;background:#fbfcfa}.admin-draw-card-heading h4{margin:5px 0 0;font-size:.9rem}.admin-draw-card-heading>span{color:var(--muted);font-size:.6rem}.admin-draw-rounds{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;overflow:auto}.admin-draw-rounds>section>h5{margin:0 0 7px;color:var(--muted);font-size:.57rem;text-transform:uppercase;letter-spacing:.08em}.admin-tournament-match{margin-bottom:7px}.admin-tournament-match>header span{font-weight:800}.admin-tournament-match-players{display:grid;gap:4px;font-size:.63rem}.admin-tournament-match-players span{color:var(--muted);font-size:.55rem}.admin-match-edit-grid{display:grid;gap:7px}.admin-match-edit-grid .text-action-button{text-align:left}.admin-match-result-button{width:100%;min-height:32px;padding:0 8px;font-size:.57rem}.admin-groups-grid{display:grid;gap:12px}.admin-group-card{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.admin-group-card>header strong{font-size:.75rem}.admin-standing-row{grid-template-columns:22px minmax(0,1fr) 22px 45px 45px}.admin-group-match-list{margin-top:12px}.match-result-modal{width:min(480px,calc(100% - 30px))}.match-result-players{margin:0;padding:11px;border-radius:8px;background:#f0f5e5;color:var(--ink);font-size:.72rem;font-weight:800}.match-result-modal .modal-actions{align-items:stretch;flex-wrap:wrap}.match-result-modal .modal-actions button{flex:1;min-width:140px}
@media(max-width:1050px){.admin-section-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-tournament-manager-grid{grid-template-columns:1fr}}
@media(max-width:760px){.admin-section-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.tournaments-hero-inner,.tournaments-page-shell{width:calc(100% - 30px)}.tournaments-hero-inner{padding:42px 0}.tournaments-hero h1{font-size:2.65rem}.tournaments-hero p{font-size:.75rem}.tournaments-page-shell{padding:28px 0 52px}.tournament-page-heading,.tournament-detail-header{align-items:flex-start;flex-direction:column}.tournament-page-heading h2,.tournament-detail-section-heading h2{font-size:1.4rem}.tournament-list-card{grid-template-columns:52px minmax(0,1fr) 20px;gap:10px;padding:11px}.tournament-list-card-date{min-height:52px}.tournament-list-card-date strong{font-size:1.1rem}.tournament-list-card h3{font-size:.8rem}.tournament-list-card p,.tournament-list-card-progress{font-size:.58rem}.tournament-list-card-top{align-items:flex-start;flex-direction:column;gap:4px}.tournament-detail-header h1{font-size:2.45rem}.tournament-detail-header p{font-size:.72rem}.tournament-detail-status{justify-items:start;text-align:left}.tournament-detail-facts{grid-template-columns:repeat(2,1fr);margin-top:19px}.tournament-detail-facts>div{padding:12px}.tournament-detail-facts strong{font-size:.82rem}.tournament-rounds{display:flex;align-items:flex-start;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:8px}.tournament-round{flex:0 0 78vw;scroll-snap-align:start}.tournament-groups-grid{grid-template-columns:1fr}.tournament-standing-row{grid-template-columns:22px minmax(0,1fr) 22px 34px 34px 38px}.admin-tournament-toolbar{align-items:flex-start;flex-direction:column}.admin-tournament-toolbar .primary-button{width:100%}.admin-tournament-form-grid{grid-template-columns:1fr}.admin-tournament-wide{grid-column:auto}.admin-tournament-manager-header{flex-direction:column}.admin-tournament-manager-actions{justify-content:flex-start}.admin-tournament-manager-actions button{min-height:40px}.admin-tournament-draw-tools{align-items:stretch;flex-direction:column}.admin-tournament-draw-tools .primary-button{width:100%}.admin-tournament-participant-row{grid-template-columns:minmax(0,1fr) 55px 55px}.admin-tournament-participant-actions{justify-content:space-between}.admin-draw-rounds{display:flex;overflow-x:auto}.admin-draw-rounds>section{flex:0 0 78vw}.admin-draw-card-heading{align-items:flex-start;flex-direction:column;gap:5px}}
@media(max-width:430px){.admin-section-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-list-card{grid-template-columns:46px minmax(0,1fr) 15px}.tournament-list-card-date{min-height:46px}.tournament-list-card-date strong{font-size:1rem}.tournament-list-card-arrow{font-size:1.1rem}.tournament-status{font-size:.48rem}.admin-tournament-participant-row{grid-template-columns:minmax(0,1fr) 48px 48px}.match-result-modal .modal-actions{display:grid}.match-result-modal .modal-actions button{width:100%}}
.player-competition-summary{display:grid;gap:3px;min-width:220px;padding-left:18px;border-left:1px solid var(--line);font-size:.62rem}.player-competition-summary strong{font-size:.66rem}.player-competition-summary span:not(.eyebrow){color:var(--muted)}.player-competition-summary small{color:var(--lime-dark);font-size:.57rem;font-weight:800}
@media(max-width:760px){.player-competition-summary{width:100%;min-width:0;padding:10px 0 0;border-top:1px solid var(--line);border-left:0}}

/* Dedicated tournament administration page. */
.account-menu a{display:block;width:100%;padding:10px;border-radius:7px;color:var(--ink);font-size:.78rem;font-weight:700}.account-menu a:hover{background:var(--paper)}
.admin-hero-actions .secondary-button{display:inline-flex;align-items:center;justify-content:center;text-align:center}
.admin-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.admin-hero-actions .secondary-button{border-color:rgba(255,255,255,.3);background:transparent;color:#fff}.admin-tournament-page-shell{display:grid;gap:18px}.admin-tournament-page-content{display:grid;gap:16px}.admin-tournament-page-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:4px 2px}.admin-tournament-page-toolbar h2{margin:6px 0 0;font-size:1.45rem;letter-spacing:-.035em}.admin-tournament-page-toolbar p{margin:7px 0 0;color:var(--muted);font-size:.7rem}.admin-tournament-page-toolbar .secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;font-size:.62rem;font-weight:800}.admin-tournament-page .admin-tournaments-panel{min-height:580px}.admin-tournament-page .admin-tournament-list{max-height:330px;overflow:auto;padding-right:2px}.admin-tournament-page .admin-tournament-manager{scroll-margin-top:24px}
@media(max-width:760px){.admin-hero-actions{width:100%;justify-content:flex-start}.admin-hero-actions .secondary-button{min-height:42px}.admin-tournament-page-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.admin-tournament-page-toolbar .secondary-button{width:100%}.admin-tournament-page .admin-tournaments-panel{min-height:0}.admin-tournament-page .admin-tournament-list{max-height:none}}

/* Rifinitura UI: gerarchie più dirette e meno elementi puramente decorativi. */
.booking-page .booking-hero{height:270px}
.booking-page .hero-inner{display:flex;align-items:center}
.booking-page .hero-copy{max-width:720px}
.booking-page .hero-description{max-width:560px}
.booking-page .stepper{height:68px}
.booking-page .stepper li{gap:10px}
.booking-page .stepper li:not(:last-child):after{right:24px;width:calc(100% - 112px)}
.booking-page .stepper strong{margin-top:0;font-size:.72rem}
.booking-page .panel-title,.booking-page .summary-header{gap:0}
.booking-page .booking-surface{box-shadow:0 10px 34px rgba(7,26,45,.065)}
.admin-section-nav{padding:5px;gap:5px;border-radius:10px;background:#edf1ec}
.admin-section-tab{padding:11px 13px;border-radius:7px}
.admin-section-tab strong{margin-top:0;font-size:.7rem}
.admin-section-tab.is-active{box-shadow:none}
.admin-stat-card,.admin-panel{box-shadow:0 4px 16px rgba(7,26,45,.035)}
@media(max-width:760px){.booking-page .booking-hero{height:auto}.booking-page .hero-inner{padding:34px 0}.booking-page .stepper{height:62px}.booking-page .stepper li{gap:6px}.booking-page .stepper li:not(:last-child):after{display:block;right:8px;width:calc(100% - 68px)}.booking-page .stepper li>span{width:26px;height:26px}.admin-section-nav{padding:4px}.admin-section-tab{min-height:58px;padding:9px 10px}}
@media(max-width:430px){.booking-page .stepper li div{display:initial}.booking-page .stepper li strong{display:block;font-size:.58rem}.booking-page .stepper li:not(:last-child):after{right:2px;width:calc(100% - 70px)}}
.app-toast{position:fixed;right:24px;bottom:24px;z-index:1000;max-width:min(420px,calc(100vw - 32px));padding:13px 17px;border:1px solid rgba(7,26,45,.12);border-radius:10px;background:var(--navy);color:#fff;box-shadow:0 14px 34px rgba(7,26,45,.22);font-size:.78rem;font-weight:700;line-height:1.4}.app-toast.error{background:#8d2d2d;border-color:#b24a4a}@media(max-width:760px){.app-toast{right:16px;bottom:16px;left:16px;max-width:none;text-align:center}}

.admin-empty{display:grid;gap:6px}
.admin-empty strong,.admin-empty span{display:block}

/* Mobile layout hardening: stable widths, touch targets and scrollable dense areas. */
@media(max-width:760px){
  html{max-width:100%;overflow-x:hidden;scroll-padding-top:76px;-webkit-text-size-adjust:100%}
  body{max-width:100%;overflow-x:hidden}
  body>main{min-width:0;overflow-x:clip}
  .home-page,.tournaments-page,.booking-page,.contact-page,.admin-page{width:100%;min-width:0}

  .site-header{height:auto;min-height:64px;padding-top:env(safe-area-inset-top)}
  .nav-shell{width:100%;min-height:64px;padding:0 15px;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
  .brand{min-width:0;gap:8px}
  .brand>span{min-width:0}
  .brand strong{display:block;overflow:hidden;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}
  .brand small{font-size:.53rem}
  .account-menu-wrap{min-width:0}
  .account-button{min-height:44px;max-width:100%;padding:6px 3px;gap:5px}
  .account-button .account-name{display:block;max-width:72px;overflow:hidden;font-size:.68rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
  .account-button .account-chevron{width:12px!important;height:12px;flex:0 0 12px!important;display:block}
  .mobile-menu-toggle{width:40px;height:40px;min-width:40px}
  .main-nav{top:100%;left:0;right:0;padding:10px 15px 12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .main-nav a{min-height:44px;padding:0 8px;font-size:.7rem}
  .main-nav a.active:after{left:10%;right:10%;bottom:2px}
  .account-menu{top:calc(100% + 8px);max-width:calc(100vw - 30px);max-height:calc(100dvh - 90px);overflow:auto}
  .account-menu button,.account-menu a{min-height:44px;display:flex;align-items:center}

  a.primary-button,a.secondary-button,button.primary-button,button.secondary-button{min-height:44px}
  input,select,textarea{max-width:100%;font-size:16px}
  input[type=checkbox],input[type=radio]{font-size:inherit}
  .primary-button,.secondary-button,.lime-button,.outline-button,.dark-button{max-width:100%;white-space:normal;text-align:center}

  .home-hero-inner,.hero-inner,.contact-hero-inner,.tournaments-hero-inner,.tournaments-page-shell,.admin-page-shell{min-width:0;max-width:100%}
  .home-hero h1,.tournaments-hero h1,.admin-hero h1,.contact-hero h1{overflow-wrap:anywhere}
  .home-quick-actions>a,.home-court-card,.home-benefit,.home-event-card,.home-booking-story,.home-competition,.home-editorial-row,.home-social,.home-location,.home-final-cta,.tournament-list-card,.admin-panel,.admin-tournament-subpanel{min-width:0}
  .home-quick-copy,.home-benefit>div,.home-event-body,.home-booking-copy,.competition-content,.home-editorial-row article,.home-social-copy,.home-location-copy{min-width:0}

  .home-hero-actions,.contact-hero-actions{width:100%}
  .home-hero-actions a,.contact-hero-actions a{min-width:0}
  .home-court-overlay,.home-final-cta,.contact-final-cta{min-width:0}
  .home-court-info,.home-court-overlay>a,.home-event-footer,.home-event-location{min-width:0}
  .home-court-info h3,.home-event-body h3,.home-final-cta h2,.contact-final-cta h2{overflow-wrap:anywhere}

  .booking-page .booking-section{width:100%;min-width:0;box-sizing:border-box}
  .booking-page .booking-heading,.booking-page .booking-heading>div,.booking-page .booking-heading p{min-width:0}
  .booking-page .booking-heading h2{font-size:clamp(1.65rem,8vw,2rem);overflow-wrap:anywhere}
  .booking-page .booking-surface,.booking-page .calendar-panel,.booking-page .selection-panel{width:100%;min-width:0}
  .booking-page .court-card,.booking-page .court-info,.booking-page .court-features span{min-width:0}
  .booking-page .court-info h4,.booking-page .court-info>span{overflow-wrap:anywhere}
  .booking-page .range-instruction,.booking-page .range-instruction>*{min-width:0}
  .booking-page .range-instruction span,.booking-page .time-range-help{overflow-wrap:anywhere}
  .booking-page .range-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
  .booking-page .range-time-button{min-width:0;padding:0 4px}
  .booking-page .time-range-field select{font-size:16px}
  .booking-page .summary-card{width:calc(100% + 30px);max-width:calc(100% + 30px);margin-right:-15px;margin-left:-15px}
  .booking-page .summary-details,.booking-page .summary-header,.booking-page .summary-list,.booking-page .summary-list div,.booking-page .privacy-option,.booking-page .payment-preview{min-width:0}
  .booking-page .summary-list dd{overflow-wrap:anywhere}

  .tournament-page-heading,.tournament-detail-header,.tournament-detail-section-heading{min-width:0}
  .tournament-page-heading>*,.tournament-detail-header>*,.tournament-detail-section-heading>*{min-width:0;max-width:100%}
  .tournament-detail-header h1{font-size:clamp(2rem,10vw,2.75rem);overflow-wrap:anywhere}
  .tournament-detail-status{justify-items:start;text-align:left}
  .tournament-detail-facts>div,.tournament-player-chip{min-width:0}
  .tournament-detail-facts strong,.tournament-player-chip{overflow-wrap:anywhere}
  .tournament-rounds,.admin-draw-rounds{overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .tournament-round{flex-basis:min(78vw,300px)}

  .admin-hero,.admin-toolbar,.admin-panel-heading,.admin-tournament-manager-header,.admin-tournament-page-toolbar{min-width:0}
  .admin-hero>*,.admin-toolbar>*,.admin-panel-heading>*,.admin-tournament-manager-header>*,.admin-tournament-page-toolbar>*{min-width:0;max-width:100%}
  .admin-hero-actions,.admin-tournament-manager-actions{width:100%;justify-content:flex-start}
  .admin-tournament-manager-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .admin-tournament-manager-actions button{width:100%;min-height:44px}
  #adminTournamentManagerTitle,#adminTournamentManagerMeta{overflow-wrap:anywhere}
  .admin-tournament-user-result{min-width:0}
  .admin-tournament-user-result span{min-width:0}
  .admin-tournament-user-result small{overflow-wrap:anywhere;white-space:normal}
  .admin-tournament-user-result b{flex:0 0 auto}
  .admin-tournament-participant-row,.admin-tournament-participant-order{min-width:0}
  .admin-tournament-participant-order strong,.admin-tournament-participant-order small{max-width:100%}
  .admin-tournament-form-grid,.admin-event-form-grid{min-width:0}
  .admin-tournament-form label,.admin-event-form label,.admin-search-field{min-width:0}
  .admin-tournament-form input,.admin-tournament-form select,.admin-tournament-form textarea,.admin-event-form input,.admin-event-form select,.admin-event-form textarea{font-size:16px}
  .admin-month-control input,.admin-availability-form input,.admin-availability-form select,.admin-reserve-form input,.admin-reserve-form select,.modal input,.modal select{font-size:16px}
  .admin-tournament-draw-tools,.admin-draw-card,.admin-draw-rounds,.admin-draw-rounds>section{min-width:0}
  .admin-draw-rounds>section{flex-basis:min(78vw,300px)}
  .admin-match-result-modal .modal-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .admin-match-result-modal .modal-actions button{width:100%;min-width:0}

  .contact-row,.contact-row>div,.map-card,.needs-grid article,.social-links>a,.contact-final-cta>div{min-width:0}
  .contact-row h3,.contact-row p,.map-card strong,.map-card p{overflow-wrap:anywhere}
  .footer-shell-rich,.footer-bottom{min-width:0}
  .footer-shell-rich>*{min-width:0}
  .footer-bottom span{max-width:100%;overflow-wrap:anywhere}

  .modal,.admin-modal{width:min(510px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
  .modal-card{max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
  .modal-actions{flex-wrap:wrap}
}

@media(max-width:380px){
  .nav-shell{padding-right:12px;padding-left:12px;gap:5px}
  .brand strong{font-size:.7rem}
  .brand small{font-size:.49rem}
  .account-button .account-name{max-width:55px}
  .mobile-menu-toggle{width:38px;height:38px;min-width:38px}
  .home-hero h1{font-size:2.2rem}
  .booking-page .court-card{grid-template-columns:38% 62%}
  .booking-page .court-info{padding-right:10px;padding-left:11px}
  .admin-tournament-participant-row{grid-template-columns:minmax(0,1fr) 46px 46px}
}

@media(max-width:760px){
  .home-final-cta{margin-bottom:24px}
  .admin-tournament-page .admin-hero-actions{flex-direction:column;align-items:center;justify-content:center;text-align:center}
  .admin-tournament-page .admin-hero-actions .secondary-button{width:min(100%,280px)}
  .admin-tournament-page .admin-hero-actions .admin-hero-badge{align-self:center}
}

/* Shared tournament loading states. Keep these shapes close to the final layout to avoid layout shift. */
.loading-skeleton-tournaments-hero{display:grid;align-content:center;gap:0;min-height:250px;padding:52px max(32px,calc((100% - 1320px)/2));background:#dce4dc}
.loading-skeleton-tournaments-hero .skeleton{background:linear-gradient(100deg,#b9c8bd 20%,#e6eee6 38%,#b9c8bd 58%);background-size:300% 100%}
.skeleton-tournaments-title{width:min(520px,80%);height:44px;margin-top:14px}
.skeleton-tournaments-copy{width:320px;margin-top:20px}
.loading-skeleton-tournaments-shell{width:min(1320px,calc(100% - 64px));margin:auto;padding:42px 0 76px}
.loading-skeleton-tournaments-detail{display:none}
.tournaments-page.is-detail-route .loading-skeleton-tournaments-list{display:none}
.tournaments-page.is-detail-route .loading-skeleton-tournaments-detail{display:block}
.loading-skeleton-tournament-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}
.skeleton-meta{width:70px;height:12px;margin:0}
.loading-skeleton-tournament-filters{display:flex;gap:8px;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid #dce5dc}
.skeleton-pill{width:76px;height:34px;border-radius:99px}
.loading-skeleton-tournament-cards{display:grid;gap:10px}
.skeleton-tournament-card{height:98px;border-radius:13px}
.skeleton-back-link{width:150px;height:12px;margin-bottom:25px}
.loading-skeleton-tournament-detail-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;padding-bottom:28px;border-bottom:1px solid #dce5dc}
.skeleton-detail-title{width:min(550px,80%);height:48px;margin-top:14px}
.skeleton-detail-copy{width:460px;margin-top:20px}
.skeleton-detail-copy-short{width:310px;margin-top:9px}
.skeleton-detail-status{width:105px;height:28px;border-radius:99px}
.loading-skeleton-detail-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:24px 0 35px;background:#dce5dc}
.skeleton-detail-fact{height:78px}
.loading-skeleton-detail-chips{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 35px}
.skeleton-chip{width:112px;height:34px;border-radius:99px}
.loading-skeleton-detail-rounds{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:15px}
.skeleton-detail-round{height:245px;border-radius:12px}
@media(max-width:760px){
  .loading-skeleton-tournaments-hero{min-height:220px;padding:42px 20px}
  .loading-skeleton-tournaments-shell{width:calc(100% - 30px);padding:28px 0 52px}
  .loading-skeleton-tournament-heading{align-items:start;flex-direction:column;gap:8px;margin-bottom:20px}
  .loading-skeleton-tournament-filters{overflow:hidden}
  .loading-skeleton-tournament-cards{gap:9px}
  .skeleton-tournament-card{height:82px}
  .loading-skeleton-tournament-detail-heading{flex-direction:column;gap:18px}
  .skeleton-detail-title{width:90%;height:40px}
  .skeleton-detail-copy{width:90%}
  .skeleton-detail-copy-short{width:65%}
  .skeleton-detail-status{width:96px}
  .loading-skeleton-detail-facts{grid-template-columns:repeat(2,1fr);margin-top:19px}
  .skeleton-detail-fact{height:68px}
  .loading-skeleton-detail-rounds{display:flex;overflow:hidden}
  .skeleton-detail-round{flex:0 0 78vw;height:230px}
}

.tournament-inline-skeleton{display:grid;gap:10px}
.tournament-inline-skeleton .skeleton{background:linear-gradient(100deg,#e6ece5 20%,#fbfdf9 38%,#e6ece5 58%);background-size:300% 100%}
.tournament-inline-detail-skeleton{gap:0}
.tournament-inline-detail-skeleton .loading-skeleton-tournament-detail-heading{margin-bottom:0}
.admin-inline-skeleton{display:grid;gap:8px}
.admin-tournament-loading-row{height:78px;border-radius:11px}
.admin-tournament-participants-skeleton span{height:58px;border-radius:9px}
.admin-tournament-manager-skeleton{gap:10px;padding:7px 0}
.admin-manager-loading-title{width:min(380px,75%);height:27px}
.admin-manager-loading-meta{width:260px;height:10px}
.admin-manager-loading-panels{display:grid;grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);gap:15px;margin-top:10px}
.admin-manager-loading-panels .skeleton{height:310px;border-radius:13px}
@media(max-width:760px){
  .admin-manager-loading-panels{grid-template-columns:1fr}
  .admin-manager-loading-panels .skeleton{height:220px}
}

/* Tournament manager: make optional group settings and manual draw editing explicit. */
.admin-tournament-group-config{min-width:0;margin:0;padding:14px;border:1px solid #dce7d0;border-radius:10px;background:#f4f8ec}
.admin-tournament-group-config legend{padding:0 6px;color:var(--ink);font-size:.7rem;font-weight:900}
.admin-tournament-group-config>p{margin:0 0 11px;color:var(--muted);font-size:.62rem;line-height:1.45}
.admin-tournament-group-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-tournament-group-config-grid label{min-width:0}
.admin-tournament-group-config .admin-tournament-group-help{margin:12px 0 0;color:var(--muted);font-size:.65rem;line-height:1.5}
.admin-tournament-group-config .admin-tournament-group-preview{margin:14px 0 0;padding-top:12px;border-top:1px solid #dce7d0;color:#415044;font-size:.7rem;line-height:1.5}
.admin-exclusion-summary{margin:0 0 15px;padding:10px 12px;border-left:3px solid #739719;background:#f4f8ec;color:var(--ink);font-size:.72rem;line-height:1.5}
.admin-fifth-selection{min-width:0;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.admin-fifth-selection legend{padding:0 5px;font-size:.75rem;font-weight:800}.admin-fifth-selection>p{margin:0 0 12px;color:var(--muted);font-size:.68rem}.admin-fifth-selection>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-fifth-selection label{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.admin-fifth-selection input{flex:0 0 auto;width:18px;height:18px;margin:1px 0 0;accent-color:#527415}.admin-fifth-selection label span{display:grid;gap:3px}.admin-fifth-selection label strong{font-size:.72rem}.admin-fifth-selection label small,.admin-fifth-selection>small{color:var(--muted);font-size:.6rem;line-height:1.45}.admin-fifth-selection>small{display:block;margin-top:9px;font-weight:800}
.admin-tournament-draw-tools .secondary-button{min-height:40px;white-space:nowrap}
.admin-manual-draw-hint{margin:0;color:var(--muted);font-size:.62rem;line-height:1.5}
.admin-tournament-match.is-editing{border-color:#b8d36a;background:#fbfef3;box-shadow:0 0 0 2px rgba(185,223,32,.14)}
.admin-match-source-note{color:var(--muted);font-size:.54rem;line-height:1.35}
@media(max-width:760px){
  .admin-tournament-group-config-grid{grid-template-columns:1fr}
  .admin-fifth-selection>div{grid-template-columns:1fr}
  .admin-tournament-draw-tools .secondary-button{width:100%}
  .admin-manual-draw-hint{padding:2px 0}
}

/* Multi-set tennis result editor. The editor grows with the match and has no hard-coded set cap. */
.admin-match-score-field{display:grid;gap:8px}
.admin-match-score-label{color:var(--muted);font-size:.62rem;font-weight:800}
.admin-match-set-editor{display:grid;gap:7px}
.admin-match-set-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:7px}
.admin-match-set-row>span{color:var(--muted);font-size:.61rem;font-weight:800}
.admin-match-set-row input{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:.7rem}
.admin-match-set-row .text-danger-button{padding:8px 0;font-size:.56rem}
.admin-match-set-row .text-danger-button:disabled{visibility:hidden}
.admin-add-match-set-button{justify-self:start;min-height:36px;padding:0 11px;font-size:.59rem}
.admin-match-score-help{margin:0;color:var(--muted);font-size:.59rem;line-height:1.45}
.tournament-detail-notice{margin-bottom:18px;padding:11px 13px;border:1px solid #dce7d0;border-radius:8px;background:#f4f8ec;color:#5b701b;font-size:.64rem;line-height:1.45}
@media(max-width:430px){
  .admin-match-set-row{grid-template-columns:44px minmax(0,1fr) auto}
  .admin-match-set-row .text-danger-button{font-size:.52rem}
}

/* Tournament workspace: restrained hierarchy, readable controls, clear selection. */
.admin-tournament-page .admin-tournament-hero{padding-block:32px}
.admin-tournament-page .admin-tournament-hero h1{font-size:clamp(1.8rem,3vw,2.6rem)}
.admin-tournament-page-toolbar{display:none}
.tournament-list-controls{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;margin:20px 0 12px}
.tournament-list-controls label{display:grid;gap:7px;font-size:.8rem;font-weight:700;color:var(--ink)}
.tournament-list-controls input,.tournament-list-controls select{min-height:44px;width:100%;padding:10px 12px;border:1px solid #b8c4c0;border-radius:6px;background:#fff}
#adminTournamentNotice{margin:0;color:#325822;font-size:.85rem}
#adminTournamentNotice:empty{display:none}
.admin-tournament-page .admin-tournament-list{gap:0;border-block:1px solid var(--line);max-height:360px}
.admin-tournament-page .admin-tournament-row{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:18px 16px;background:#fff;box-shadow:none}
.admin-tournament-page .admin-tournament-row:last-child{border-bottom:0}
.admin-tournament-page .admin-tournament-row:hover{background:#f5f7f2}
.admin-tournament-page .admin-tournament-row.is-selected{background:#f0f5e5;box-shadow:inset 3px 0 #739719}
.admin-tournament-page .admin-tournament-row-main strong{font-size:1rem}
.admin-tournament-page .admin-tournament-row-main small,.admin-tournament-page .admin-tournament-row-main>span:last-child{font-size:.8rem;line-height:1.6}
.admin-tournament-page .admin-tournament-manager{margin-top:24px;scroll-margin-top:90px}
.admin-tournament-page .admin-tournament-manager-header{background:transparent;color:var(--ink);border-bottom:1px solid var(--line);border-radius:0;padding:0 0 20px}
.admin-tournament-page .admin-tournament-manager-header .eyebrow{color:#536549}
.admin-tournament-page .admin-tournament-manager-header h3{font-size:1.5rem;overflow-wrap:anywhere}
.admin-tournament-page .admin-tournament-manager-header p{color:#53616d;font-size:.85rem;line-height:1.6}
.admin-tournament-page .admin-tournament-manager-actions .secondary-button{border-color:#b8c4c0;color:var(--ink);min-height:44px;font-size:.8rem}
.admin-tournament-page .admin-tournament-manager-actions .text-danger-button{color:#943535;min-height:44px;padding:10px;font-size:.8rem}
.tournament-next-step{margin:0;padding:0 0 8px;font-size:.85rem;line-height:1.6;color:#53616d}
.tournament-participant-summary{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:.85rem}.tournament-participant-summary>span{color:var(--muted);width:24px}.tournament-participant-summary small{margin-left:auto;color:var(--muted)}
.admin-tournament-page .admin-subpanel-heading h4{font-size:1.05rem}
.admin-tournament-page .admin-subpanel-heading p,.admin-tournament-page .admin-search-hint,.admin-tournament-page .admin-search-field{font-size:.8rem;line-height:1.6}
.admin-tournament-page .admin-search-field input,.admin-tournament-page .admin-tournament-form input,.admin-tournament-page .admin-tournament-form select{min-height:44px;font-size:.85rem}
.admin-tournament-page .admin-tournament-form label{font-size:.8rem}
.admin-tournament-page .admin-tournament-participant-order strong,.admin-tournament-page .admin-tournament-match-players{font-size:.85rem}
.admin-tournament-page .admin-tournament-participant-order small{font-size:.75rem}
.admin-tournament-page .admin-tournament-participant-actions button,.admin-tournament-page .admin-match-result-button{min-height:40px;font-size:.78rem}
.admin-tournament-page :is(button,a,input,select,textarea):focus-visible,.tournament-delete-dialog button:focus-visible{outline:3px solid #527415;outline-offset:3px}
.admin-tournament-page button:disabled{cursor:not-allowed;opacity:.5}
.tournament-delete-dialog{width:min(520px,calc(100% - 32px));padding:28px;border:1px solid var(--line);border-radius:12px;color:var(--ink);box-shadow:0 24px 80px #071a2d33}
.tournament-delete-dialog::backdrop{background:#071a2d99}
.tournament-delete-dialog h2{margin:12px 0;font-size:1.5rem}
.tournament-delete-dialog p{font-size:.9rem;line-height:1.65;color:#53616d}
#deleteTournamentDescription{font-weight:800;color:var(--ink);overflow-wrap:anywhere}
#deleteTournamentError{color:var(--danger)}
.tournament-delete-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.tournament-delete-actions button{min-height:44px;font-size:.82rem}
#confirmDeleteTournamentButton{border:1px solid #943535;border-radius:6px;padding:10px 16px;background:#943535;color:white;font-weight:700}
#confirmDeleteTournamentButton:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.tournament-list-controls{grid-template-columns:1fr}.admin-tournament-page .admin-tournament-manager-header{flex-direction:column}.admin-tournament-page .admin-tournament-manager-actions{justify-content:flex-start}.admin-tournament-page .admin-tournament-draw-tools{flex-wrap:wrap}.admin-tournament-page .admin-tournament-row{padding:14px 10px}.admin-tournament-page .admin-tournament-row-main strong{font-size:.9rem}.admin-tournament-page .admin-tournament-row-main small{font-size:.75rem}.admin-tournament-page .admin-tournament-list{max-height:360px}.tournament-delete-actions button{flex:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.admin-booking-settings-form{display:grid;grid-template-columns:minmax(220px,1fr) 150px auto;align-items:end;gap:12px;margin:0 0 18px;padding:14px 0 18px;border-bottom:1px solid var(--line)}
.admin-booking-settings-form>div{align-self:center}.admin-booking-settings-form strong,.admin-booking-settings-form span{display:block}.admin-booking-settings-form strong{font-size:.75rem}.admin-booking-settings-form span{margin-top:4px;color:var(--muted);font-size:.62rem;line-height:1.45}
.admin-booking-settings-form label{display:grid;gap:6px;color:var(--muted);font-size:.65rem;font-weight:800}.admin-booking-settings-form input{min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:.72rem;font-weight:600}.admin-booking-settings-form .secondary-button{min-height:42px}.admin-booking-settings-form .auth-message{grid-column:1/-1;margin:0}
@media(max-width:760px){.admin-booking-settings-form{grid-template-columns:1fr 1fr}.admin-booking-settings-form>div,.admin-booking-settings-form .auth-message{grid-column:1/-1}.admin-booking-settings-form input{min-height:46px;font-size:16px}}

.ranking-page{background:var(--paper)}
.admin-list-loading{display:grid;gap:8px;width:100%}.admin-list-loading .skeleton{height:58px;border-radius:8px}
.loading-skeleton-ranking-hero{min-height:300px;display:grid;align-content:center;gap:15px;padding:45px max(32px,calc((100% - 1180px)/2));background:#dce4df}.loading-skeleton-ranking-hero .skeleton{background:#bac9c0}.skeleton-ranking-title{width:min(470px,75%);height:56px}.skeleton-ranking-copy{width:min(540px,90%);height:12px}.loading-skeleton-ranking-body{width:min(1180px,calc(100% - 64px));margin:auto;padding:50px 0 76px}.loading-skeleton-ranking-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.loading-skeleton-ranking-heading>div{display:grid;gap:12px}.loading-skeleton-ranking-heading .skeleton-input{width:160px}.loading-skeleton-ranking-search{width:min(360px,100%);margin:30px 0 15px}.loading-skeleton-ranking-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.loading-skeleton-ranking-podium .skeleton{height:75px;border-radius:10px}.loading-skeleton-ranking-rows{display:grid;gap:1px;padding:1px;border-radius:10px;background:var(--line);overflow:hidden}.loading-skeleton-ranking-rows .skeleton{height:55px;background:#e8ede7}
.ranking-loading-rows{display:grid;gap:1px;background:var(--line)}.ranking-loading-rows>div{display:grid;grid-template-columns:54px minmax(0,1fr) 105px;align-items:center;gap:18px;min-height:56px;padding:0 18px;background:#fff}.ranking-loading-rows .skeleton{height:12px;border-radius:6px}.ranking-loading-rows .skeleton:first-child{width:24px}.ranking-loading-rows .skeleton:last-child{width:70%;justify-self:end}.ranking-loading-podium,.ranking-loading-calendar,.ranking-loading-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-column:1/-1;gap:10px}.ranking-loading-podium .skeleton{height:76px;border-radius:10px}.ranking-loading-calendar .skeleton{height:86px;border-radius:9px}.ranking-loading-rules .skeleton{height:230px;border-radius:9px}.ranking-loading-audit{display:grid;gap:10px}.ranking-loading-audit .skeleton{height:42px;border-radius:6px}.ranking-profile-loading{display:grid;gap:24px}.ranking-profile-loading-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.ranking-profile-loading-heading>div{display:grid;gap:12px;width:min(380px,75%)}.ranking-profile-loading-heading>.skeleton{width:65px;height:55px;border-radius:9px}.ranking-profile-loading-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}.ranking-profile-loading-stats .skeleton{height:82px}.ranking-profile-loading-content{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:32px}.ranking-profile-loading-content .skeleton{height:230px;border-radius:9px}
@media(max-width:900px){.ranking-loading-podium,.ranking-loading-calendar,.ranking-loading-rules{grid-template-columns:1fr}}
@media(max-width:760px){.loading-skeleton-ranking-hero{min-height:260px;padding:42px 15px}.skeleton-ranking-title{height:43px}.loading-skeleton-ranking-body{width:calc(100% - 30px);padding:32px 0 55px}.loading-skeleton-ranking-heading{align-items:stretch;flex-direction:column}.loading-skeleton-ranking-heading .skeleton-input{width:100%}.loading-skeleton-ranking-podium{grid-template-columns:1fr}.ranking-loading-rows>div{grid-template-columns:30px minmax(0,1fr) 70px;gap:10px;padding:0 11px}.ranking-profile-loading-stats{grid-template-columns:repeat(2,1fr)}.ranking-profile-loading-content{grid-template-columns:1fr;gap:12px}.ranking-profile-loading-content .skeleton{height:170px}}
.ranking-hero{min-height:300px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(4,18,31,.96),rgba(5,20,34,.76) 58%,rgba(6,23,37,.35)),url("assets/campo-cemento-hero.png") center 54%/cover;color:#fff}
.ranking-hero-inner,.ranking-shell{width:min(1180px,calc(100% - 64px));margin:auto}.ranking-hero h1{margin:0;font-size:clamp(2.7rem,5vw,4.6rem);line-height:1;letter-spacing:-.055em}.ranking-hero p:last-child{max-width:590px;margin:15px 0 0;color:#d8e0e5;font-size:.88rem;line-height:1.6}
.ranking-shell{padding:50px 0 76px}.ranking-heading,.ranking-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.ranking-heading h2,.ranking-section-heading h2{margin:6px 0 0;font-size:1.65rem;letter-spacing:-.04em}.ranking-heading p{margin:7px 0 0;color:var(--muted);font-size:.72rem}.ranking-heading label,.ranking-search{display:grid;gap:6px;color:var(--muted);font-size:.62rem;font-weight:800}.ranking-heading select,.ranking-search input,.admin-ranking-season select{min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
.ranking-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:24px 0 15px}.ranking-search{width:min(360px,100%)}.ranking-toolbar>span{color:var(--muted);font-size:.65rem;font-weight:700}
.ranking-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.ranking-leader{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:17px;border:1px solid var(--line);border-radius:10px;background:#fff}.ranking-leader>span{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#eef4d9;color:#587610;font-weight:900}.ranking-leader strong,.ranking-leader small{display:block}.ranking-leader strong{font-size:.78rem}.ranking-leader small{margin-top:4px;color:var(--muted);font-size:.56rem}.ranking-leader>b{font-size:.82rem}.ranking-leader-1{border-color:#b7d638;background:#fbfdef}.ranking-leader-1>span{background:var(--lime);color:var(--navy)}
.ranking-table{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.ranking-row{display:grid;grid-template-columns:64px minmax(180px,1fr) 90px 90px 100px;align-items:center;gap:10px;min-height:56px;padding:0 18px;border-top:1px solid #edf0ed;font-size:.72rem}.ranking-row-head{min-height:42px;border-top:0;background:#f1f4f0;color:var(--muted);font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.ranking-player:first-of-type .ranking-row{border-top:0}.ranking-player summary{cursor:pointer;list-style:none}.ranking-player summary::-webkit-details-marker{display:none}.ranking-player summary>strong{display:flex;align-items:center;gap:8px}.ranking-player summary small{padding:4px 6px;border-radius:4px;background:#fff3d5;color:#8b6510;font-size:.5rem}.ranking-player summary>b{text-align:right}.ranking-results{display:grid;padding:6px 18px 14px 92px;background:#fafbf9}.ranking-results>div{display:grid;grid-template-columns:minmax(0,1fr) 160px 70px;gap:12px;padding:9px 0;border-top:1px solid #e9ede9;font-size:.62rem}.ranking-results small{color:var(--muted)}.ranking-results strong{text-align:right}.ranking-empty{display:grid;gap:5px;padding:32px;color:var(--muted);text-align:center;font-size:.7rem}.ranking-empty strong{color:var(--ink);font-size:.8rem}.ranking-empty.error{color:var(--danger)}
.ranking-circuit-section{margin-top:46px}.ranking-calendar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.ranking-calendar a{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:9px;background:#fff}.ranking-calendar span{color:var(--lime-dark);font-size:.54rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.ranking-calendar strong{font-size:.76rem}.ranking-calendar small{color:var(--muted);font-size:.58rem}.ranking-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.ranking-rules article{padding:16px;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:auto}.ranking-rules header{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.ranking-rules header strong{font-size:.8rem}.ranking-rules header small{color:var(--muted);font-size:.55rem}.ranking-rule-table{display:grid;grid-template-columns:minmax(120px,1fr) repeat(3,60px);font-size:.55rem}.ranking-rule-table>*{padding:7px 5px;border-top:1px solid #edf0ed}.ranking-rule-table>:nth-child(-n+4){border-top:0;color:var(--muted);font-weight:800}.ranking-rule-table span{text-align:right}
.admin-ranking-panel{min-height:0}.admin-ranking-season{display:grid;gap:6px;color:var(--muted);font-size:.62rem;font-weight:800}.admin-ranking-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:18px}.admin-ranking-table{border:1px solid var(--line);border-radius:9px;overflow:hidden}.admin-ranking-row{display:grid;grid-template-columns:34px minmax(0,1fr) 80px 70px;align-items:center;gap:9px;min-height:46px;padding:0 12px;border-top:1px solid #edf0ed;font-size:.65rem}.admin-ranking-row:first-child{border-top:0}.admin-ranking-row small{color:var(--muted)}.admin-ranking-row b{text-align:right}.admin-ranking-grid>aside{display:grid;gap:18px}.admin-ranking-audit{display:grid;gap:10px;padding:15px;border:1px solid var(--line);border-radius:9px;background:#fafbf9}.admin-ranking-audit h3{margin:0;font-size:.85rem}.admin-ranking-audit>div{display:grid;gap:3px;padding:9px 0;border-top:1px solid var(--line);font-size:.61rem}.admin-ranking-audit>div:first-of-type{border-top:0}.admin-ranking-audit span,.admin-ranking-audit small{color:var(--muted)}
@media(max-width:900px){.ranking-podium,.ranking-calendar,.ranking-rules{grid-template-columns:1fr}.admin-ranking-grid{grid-template-columns:1fr}}
@media(max-width:760px){.main-nav{overflow-x:auto;justify-content:flex-start;gap:24px}.ranking-hero{min-height:260px}.ranking-hero-inner,.ranking-shell{width:calc(100% - 30px)}.ranking-hero h1{font-size:2.8rem}.ranking-shell{padding:32px 0 55px}.ranking-heading{align-items:stretch;flex-direction:column}.ranking-heading select{width:100%;font-size:16px}.ranking-toolbar{align-items:stretch;flex-direction:column}.ranking-toolbar>span{align-self:flex-end}.ranking-row{grid-template-columns:40px minmax(0,1fr) 62px 72px;padding:0 11px}.ranking-row>:nth-child(4){display:none}.ranking-row-head>:nth-child(4){display:none}.ranking-results{padding:4px 11px 12px 51px}.ranking-results>div{grid-template-columns:1fr auto}.ranking-results small{grid-column:1}.ranking-leader{grid-template-columns:34px minmax(0,1fr) auto;padding:14px}.ranking-circuit-section{margin-top:36px}.ranking-rule-table{min-width:360px}.admin-ranking-row{grid-template-columns:28px minmax(0,1fr) 68px}.admin-ranking-row small{display:none}.admin-ranking-panel{padding:16px}.admin-ranking-panel .admin-panel-heading{align-items:flex-start;flex-direction:column}.admin-ranking-season,.admin-ranking-season select{width:100%}}
.admin-group-assignment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 16px;padding:14px;border:1px solid #dce7d0;border-radius:9px;background:#f8fbf4}.admin-group-assignment>div{grid-column:1/-1}.admin-group-assignment strong,.admin-group-assignment span{display:block}.admin-group-assignment strong{font-size:.78rem}.admin-group-assignment span{margin-top:4px;color:var(--muted);font-size:.6rem}.admin-group-assignment label{display:grid;gap:5px;color:var(--muted);font-size:.6rem;font-weight:800}.admin-group-assignment select{min-height:38px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#fff}.admin-group-assignment button{grid-column:1/-1;justify-self:start}@media(max-width:760px){.admin-group-assignment{grid-template-columns:1fr}.admin-group-assignment select{min-height:44px;font-size:16px}.admin-group-assignment button{width:100%}}
.booking-page:not(.bookings-open) .stepper-wrap,.booking-page:not(.bookings-open) .booking-heading,.booking-page:not(.bookings-open) .booking-surface{display:none}
.booking-page:not(.bookings-open) .hero-benefits{display:none}
.booking-page:not(.bookings-open) .booking-heading{display:flex}.booking-page:not(.bookings-open) .booking-surface{display:grid;grid-template-columns:270px minmax(0,1fr) 320px;min-height:0}.booking-page:not(.bookings-open) .privacy-option,.booking-page:not(.bookings-open) .payment-preview,.booking-page:not(.bookings-open) .secure-note,.booking-page:not(.bookings-open) .confirm-button{display:none}
@media(max-width:1050px){.booking-page:not(.bookings-open) .booking-surface{grid-template-columns:245px minmax(0,1fr)}.booking-page:not(.bookings-open) .summary-card,.booking-page:not(.bookings-open) .booking-loading-summary{grid-column:1/-1}}
@media(max-width:760px){.booking-page:not(.bookings-open) .booking-surface{grid-template-columns:1fr}.booking-page:not(.bookings-open) .summary-card,.booking-page:not(.bookings-open) .booking-loading-summary{grid-column:auto}.booking-page:not(.bookings-open) .summary-card{grid-template-areas:"header header" "date date" "list list" "total total" "note note" "confirm confirm"}}
.booking-page .range-time-button.is-occupied{min-height:76px}.booking-page .booking-occupant{display:-webkit-box;max-width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.2}@media(max-width:760px){.booking-page:not(.bookings-open) .summary-card{position:relative;bottom:auto;width:100%;max-width:100%;max-height:none;overflow:visible;margin:0;padding:20px 16px;border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 25px rgba(7,26,45,.08);overscroll-behavior:auto}.booking-page:not(.bookings-open) .summary-card.is-expanded{max-height:none;overflow:visible}.booking-page:not(.bookings-open) .summary-card.is-collapsed{max-height:88px;overflow:hidden;padding:14px 16px 12px}}
@media(max-width:760px){.booking-page:not(.bookings-open) .summary-card,.booking-page:not(.bookings-open) .summary-card.is-expanded,.booking-page:not(.bookings-open) .summary-card.is-collapsed{position:static;bottom:auto;height:auto;max-height:none;overflow:visible;overscroll-behavior:auto;touch-action:pan-y;transition:none}.booking-page:not(.bookings-open) .summary-card.is-collapsed{padding:14px 16px 12px}.booking-page:not(.bookings-open) .summary-card:before{display:none}.booking-page:not(.bookings-open) .range-instruction .has-price{color:#28561f;font-weight:800}}
.ranking-rules-note{max-width:700px;margin:10px 0 0;color:var(--muted);font-size:.68rem;line-height:1.55}.admin-tournament-format-note{margin:0;padding:10px 12px;border-left:3px solid var(--lime-dark);background:#f4f8ec;color:var(--ink);font-size:.64rem;line-height:1.5}
.admin-group-confirmation{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:15px;border:1px solid #dce7d0;border-radius:9px;background:#f8fbf4}.admin-group-confirmation p{max-width:560px;margin:0;color:var(--muted);font-size:.65rem;line-height:1.5}.admin-group-confirmation button{flex:none}@media(max-width:760px){.admin-group-confirmation{align-items:stretch;flex-direction:column}.admin-group-confirmation button{width:100%}}
.ranking-profile-link{display:inline-block;margin-top:9px;color:var(--lime-dark);font-size:.62rem;font-weight:900}.ranking-player-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--line)}.ranking-player-heading h2{margin:7px 0;font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;letter-spacing:-.05em}.ranking-player-heading p{margin:0;color:var(--muted);font-size:.72rem}.ranking-player-heading>strong{font-size:2.2rem;line-height:1;text-align:right}.ranking-player-heading>strong small{display:block;margin-top:5px;color:var(--muted);font-size:.58rem;text-transform:uppercase;letter-spacing:.08em}.ranking-player-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:22px 0 34px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--line)}.ranking-player-stats>div{display:grid;gap:7px;padding:16px;background:#fff}.ranking-player-stats span{color:var(--muted);font-size:.58rem;text-transform:uppercase;letter-spacing:.06em}.ranking-player-stats strong{font-size:1.3rem}.ranking-player-sections{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:32px}.ranking-player-sections h3,.ranking-player-progression h3{margin:0 0 15px;font-size:1rem}.ranking-player-sections aside{display:grid;align-content:start;gap:25px}.ranking-player-events{border-top:1px solid var(--line)}.ranking-player-events a,.ranking-player-stat-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.7rem}.ranking-player-events a span{display:grid;gap:4px;min-width:0}.ranking-player-events a small{color:var(--muted);font-size:.59rem}.ranking-player-events a b,.ranking-player-stat-row strong{white-space:nowrap}.ranking-player-events a:hover strong{color:var(--lime-dark)}.ranking-player-empty{margin:0;color:var(--muted);font-size:.7rem;line-height:1.5}.ranking-player-progression{margin-top:35px}.ranking-player-progression>div{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px}.ranking-player-progression>div>span{display:grid;gap:4px;flex:0 0 145px;padding-top:10px;border-top:3px solid var(--lime-dark)}.ranking-player-progression strong{font-size:.8rem}.ranking-player-progression small{color:var(--muted);font-size:.58rem}
@media(max-width:760px){.ranking-player-heading{align-items:flex-start}.ranking-player-heading>strong{font-size:1.6rem}.ranking-player-stats{grid-template-columns:repeat(2,1fr)}.ranking-player-sections{grid-template-columns:1fr;gap:27px}}
