*{box-sizing:border-box;margin:0;padding:0}body,html{-webkit-text-size-adjust:100%;min-height:100%;overflow-x:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);width:100%}*{-webkit-tap-highlight-color:transparent}:root{--navbar-clearance:92px;--primary-color:#007aff;--primary-hover:#0051cc;--secondary-color:#5856d6;--success-color:#34c759;--danger-color:#ff3b30;--warning-color:#ff9500;--background:#f2f2f7;--surface:#fff;--text-primary:#000;--text-secondary:#8e8e93;--border-color:#e5e5ea;--shadow:0 2px 16px #00000014;--shadow-lg:0 8px 32px #0000001f}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#000;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}input,select,textarea{font-size:16px}.app{display:flex;flex-direction:column;max-width:100vw;min-height:100vh;overflow-x:hidden;width:100%}.main-content{flex:1 1;margin:0 auto;max-width:1400px;padding:calc(92px + env(safe-area-inset-top)) 24px 24px;padding-top:calc(var(--navbar-clearance) + env(safe-area-inset-top));width:100%}.main-content:has(.landing-page),.main-content:has(.map-page-wrapper){margin:0;max-width:100%;padding:0;width:100%}.main-content:has(.owner-layout){margin:0;max-width:100%;padding:0}.navbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border-bottom:none;box-sizing:border-box;left:0;padding:calc(16px + env(safe-area-inset-top)) 24px 16px;position:fixed;top:0;width:100%;z-index:9999}.navbar-container{justify-content:space-between;margin:0;max-width:none;position:relative;width:100%}.navbar-container,.navbar-logo{align-items:center;display:flex}.navbar-logo{color:#fff;font-size:24px;font-weight:700;gap:8px;text-decoration:none}.logo-icon{font-size:28px}.navbar-menu{align-items:center;display:flex;gap:32px}.navbar-link{color:#fff;font-weight:500;text-decoration:none;transition:color .2s}.navbar-link:hover{color:#007aff;color:var(--primary-color)}.admin-link{color:#5856d6;color:var(--secondary-color)}.navbar-menu-wrapper{position:relative}.menu-toggle-btn{align-items:center;background:#0000;border:1px solid #ffffff4d;border-radius:50px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 16px;transition:all .2s ease}.menu-toggle-btn:hover{background:#ffffff1a;border-color:#ffffff80}.menu-toggle-btn svg{flex-shrink:0}.menu-dropdown{background:#fff;background:var(--surface);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0000001f;box-shadow:var(--shadow-lg);opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:calc(100% + 8px);transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s ease;width:240px;z-index:1200}.menu-dropdown.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.menu-item{align-items:center;color:#000;color:var(--text-primary);cursor:pointer;display:flex;font-weight:500;gap:12px;padding:14px 16px;transition:background .15s ease}.menu-item:hover{background:#f2f2f7;background:var(--background)}.menu-item svg{color:#8e8e93;color:var(--text-secondary);flex-shrink:0}.menu-item.owner-item,.menu-item.owner-item svg{color:#007aff;color:var(--primary-color)}.menu-item.admin-item,.menu-item.admin-item svg{color:#5856d6;color:var(--secondary-color)}.navbar-dark-text .menu-toggle-btn,.navbar-dark-text .navbar-link,.navbar-dark-text .navbar-logo{color:#111827}.navbar-dark-text .menu-toggle-btn{border-color:#1118274d}.navbar-dark-text .menu-toggle-btn:hover{background:#11182714;border-color:#11182780}.menu-item.logout-item,.menu-item.logout-item svg{color:#dc2626}.menu-divider{background:#e5e5ea;background:var(--border-color);height:1px;margin:4px 0}.pre-reminder{left:50%;position:fixed;top:20%;transform:translateX(-50%);z-index:2000}.pre-reminder-card{align-items:center;background:linear-gradient(135deg,#fff8e6,#fff);border:1px solid #ffdca8;border-radius:12px;box-shadow:0 6px 18px #00000014;display:flex;font-weight:600;gap:12px;padding:10px 14px}.pre-reminder .emoji{font-size:20px}.date-reminder{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #d8e9f7;border-radius:8px;color:#0b5678;font-size:13px;font-weight:600;margin-bottom:8px;opacity:0;padding:8px 12px;transform:translateY(-6px);transition:opacity .22s ease,transform .22s ease}.date-reminder.visible{opacity:1;transform:translateY(0)}.date-reminder.hidden{opacity:0;transform:translateY(-6px)}.navbar-user{align-items:center;display:flex;gap:16px}.profile-btn{align-items:center;background:#007aff;background:var(--primary-color);border:none;border-radius:50%;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;height:40px;justify-content:center;width:40px}.profile-dropdown{background:#fff;background:var(--surface);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0000001f;box-shadow:var(--shadow-lg);opacity:0;overflow:visible;pointer-events:none;position:absolute;right:0;top:calc(100% + 8px);transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s ease;width:220px;z-index:1200}.profile-dropdown.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.profile-item{color:#000;color:var(--text-primary);cursor:pointer;font-weight:600;padding:12px 14px}.profile-item:hover{background:#f2f2f7;background:var(--background)}.user-name{color:#8e8e93;color:var(--text-secondary);font-weight:500}.btn-cancel,.btn-delete,.btn-edit,.btn-logout,.btn-primary,.btn-secondary{border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-primary{background:#007aff;background:var(--primary-color);color:#fff}.btn-primary:hover{background:#0051d5;transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-secondary{background:#f2f2f7;background:var(--background);color:#000;color:var(--text-primary)}.btn-ghost{background:#0000;border:1px solid #dee2e6;color:#8e8e93;color:var(--text-secondary);font-size:.9em;padding:8px 14px;transition:all .2s}.btn-ghost:hover{background:#f2f2f7;background:var(--background);border-color:#007aff;border-color:var(--primary-color);color:#007aff;color:var(--primary-color)}.availability-indicator{background:linear-gradient(135deg,#d4edda,#c3e6cb);border:1px solid #b1dfbb;border-radius:20px;box-shadow:0 2px 8px #1557241a;color:#155724;font-size:.88em;font-weight:700;padding:8px 14px}.time-filter-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0;box-shadow:0 4px 12px #667eea26;flex-shrink:0;overflow:hidden;padding:20px 24px;position:relative;z-index:10}.time-filter-header:before{background:linear-gradient(135deg,#ffffff1a,#fff0);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.time-filter-header h3{align-items:center;color:#fff;display:flex;font-size:1.3rem;font-weight:700;gap:10px;letter-spacing:.3px;margin:0;position:relative;z-index:1}.time-filter-header h3:before{content:"🕐";font-size:1.4rem}.list-header-row{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0;box-shadow:0 4px 12px #667eea26;flex-shrink:0;overflow:hidden;padding:20px 24px;position:relative;z-index:8}.list-header-row:before{background:linear-gradient(135deg,#ffffff1a,#fff0);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.list-header-row h2{align-items:center;color:#fff;display:flex;font-size:1.3rem;font-weight:700;gap:10px;letter-spacing:.3px;margin:0;position:relative;z-index:1}.list-header-row h2:before{content:"🎾";font-size:1.4rem}.availability-summary{align-items:center;animation:fadeIn .3s ease-in;background:linear-gradient(135deg,#667eea0d,#764ba208);border-bottom:1px solid #667eea1a;color:#5a4a7a;display:flex;flex-shrink:0;font-size:.9rem;gap:8px;padding:8px 24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.summary-text{align-items:center;display:flex;font-weight:500;gap:6px}.summary-icon{color:#34c759;font-size:.95rem;font-weight:700}.summary-count{color:#667eea;font-weight:700}.summary-total{color:#8b7ba8}.btn-secondary:hover{background:#e5e5ea;background:var(--border-color)}.btn-logout{background:#0000;border:1px solid #ff3b30;border:1px solid var(--danger-color);color:#ff3b30;color:var(--danger-color)}.btn-cancel,.btn-delete,.btn-logout:hover{background:#ff3b30;background:var(--danger-color);color:#fff}.btn-cancel:hover,.btn-delete:hover{background:#d70015}.btn-edit{margin-right:8px}.btn-edit:hover{background:#0051d5}.auth-container{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 80px);padding:24px}.auth-card{background:#fff;background:var(--surface);border-radius:20px;box-shadow:0 8px 32px #0000001f;box-shadow:var(--shadow-lg);max-width:480px;padding:48px;width:100%}.auth-header{margin-bottom:32px;text-align:center}.auth-header h1{font-size:32px;margin-bottom:8px}.auth-header p{color:#8e8e93;color:var(--text-secondary);font-size:16px}.auth-form{gap:20px}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#000;color:var(--text-primary);font-size:14px;font-weight:600}.form-group input,.form-group select,.form-group textarea{background:#fff;background:var(--surface);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:12px;font-size:16px;padding:14px 16px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:#007aff;border-color:var(--primary-color);box-shadow:0 0 0 4px #007aff1a;outline:none}.checkbox-group{align-items:center;flex-direction:row}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:8px}.checkbox-group input[type=checkbox]{cursor:pointer;height:20px;width:20px}.error-message,.message{border-radius:12px;font-weight:500;margin-bottom:20px;padding:12px 16px}.error-message,.message.error{background:#ffebee;border:1px solid #ff3b30;border:1px solid var(--danger-color);color:#ff3b30;color:var(--danger-color)}.message.success{background:#e8f5e9;border:1px solid #34c759;border:1px solid var(--success-color);color:#34c759;color:var(--success-color)}.auth-footer{color:#8e8e93;color:var(--text-secondary);margin-top:24px;text-align:center}.auth-footer a{color:#007aff;color:var(--primary-color);font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.courts-container{margin:0 auto;max-width:1200px}.courts-header{margin-bottom:48px;text-align:center}.courts-header h1{font-size:42px;margin-bottom:8px}.courts-header p{color:#8e8e93;color:var(--text-secondary);font-size:18px}.courts-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.court-card{background:#fff;background:var(--surface);border-radius:20px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);cursor:pointer;overflow:hidden;transition:all .3s}.court-card:hover{box-shadow:0 8px 32px #0000001f;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.court-image{background:linear-gradient(135deg,#007aff,#5856d6);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));height:220px;overflow:hidden;width:100%}.court-image img{height:100%;object-fit:cover;width:100%}.court-image-placeholder{align-items:center;display:flex;font-size:64px;height:100%;justify-content:center;width:100%}.court-details{padding:24px}.court-details h3{font-size:24px;margin-bottom:12px}.court-location{font-size:15px;margin-bottom:12px}.court-description,.court-location{color:#8e8e93;color:var(--text-secondary)}.court-description{font-size:14px;line-height:1.5;margin-bottom:16px}.court-price{align-items:center;background:#f2f2f7;background:var(--background);border-radius:12px;display:flex;justify-content:space-between;margin-bottom:16px;padding:16px}.price-label{color:#8e8e93;color:var(--text-secondary);font-size:14px}.price-value{color:#007aff;color:var(--primary-color);font-size:24px;font-weight:700}.btn-book{width:100%}.no-courts{color:#8e8e93;color:var(--text-secondary);font-size:18px;padding:48px;text-align:center}.bookings-container{margin:0 auto;max-width:1000px}.bookings-header{margin-bottom:32px}.bookings-header h1{font-size:36px}.bookings-list{grid-gap:20px;display:grid;gap:20px}.booking-card{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);padding:24px;position:relative}.booking-card.cancelled-card{border:1px dashed #d1d5db;box-shadow:none;filter:none;opacity:.62}.booking-card.cancelled-card .booking-details,.booking-card.cancelled-card .booking-header h3{filter:grayscale(.45) blur(1.2px)}.booking-card.cancelled-card .booking-status.cancelled{filter:none}.booking-header{align-items:center;border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.booking-header h3{font-size:20px}.btn-delete-cancelled{align-items:center;background:#ff5a5f;border:0;border-radius:50%;box-shadow:0 4px 10px #ff5a5f59;color:#fff;cursor:pointer;display:inline-flex;font-size:20px;font-weight:600;height:34px;justify-content:center;line-height:1;opacity:.98;position:absolute;right:0;top:0;transform:translate(38%,-38%);transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;width:34px;z-index:3}.btn-delete-cancelled:hover:not(:disabled){box-shadow:0 6px 14px #ff5a5f6b;filter:brightness(.97);transform:translate(38%,-38%) scale(1.04)}.btn-delete-cancelled:disabled{cursor:not-allowed;opacity:.7}.cancelled-delete-popover{background:#fff;border:1px solid #e6e8ec;border-radius:12px;box-shadow:0 14px 30px #0f172a1f;min-width:220px;padding:10px 12px;position:absolute;right:56px;top:14px;z-index:4}.cancelled-delete-popover:after{background:#fff;border-right:1px solid #e6e8ec;border-top:1px solid #e6e8ec;content:"";height:12px;position:absolute;right:-6px;top:12px;transform:rotate(45deg);width:12px}.cancelled-delete-popover p{color:#1f2937;font-size:13px;font-weight:600;margin:0 0 10px}.cancelled-delete-popover-actions{display:flex;gap:8px;justify-content:flex-end}.btn-popover-cancel,.btn-popover-delete{border:0;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.btn-popover-cancel{background:#eef2f7;color:#4b5563}.btn-popover-delete{background:#ff5a5f;color:#fff}.btn-popover-cancel:disabled,.btn-popover-delete:disabled{cursor:not-allowed;opacity:.7}.booking-status{border-radius:8px;font-size:13px;font-weight:600;padding:6px 12px;text-transform:uppercase}.booking-status.confirmed{background:#e8f5e9;color:#34c759;color:var(--success-color)}.booking-status.cancelled{background:#ffebee;color:#ff3b30;color:var(--danger-color)}.booking-details{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.booking-info{display:flex;flex-direction:column;gap:4px}.info-label{color:#8e8e93;color:var(--text-secondary);font-size:13px;font-weight:500}.booking-price{color:#007aff;color:var(--primary-color);font-size:20px;font-weight:700}.no-bookings{background:#fff;background:var(--surface);border-radius:16px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);padding:64px 24px;text-align:center}.no-bookings p{color:#8e8e93;color:var(--text-secondary);font-size:18px}.booking-actions{display:flex;gap:12px;margin-top:16px}.btn-edit{background:#007aff;background:var(--primary-color);color:#fff}.btn-edit:hover{background:#0051cc;background:var(--primary-hover)}.edit-booking-modal{max-width:550px}.edit-booking-form{padding:24px}.edit-current-info{background:#f2f2f7;background:var(--background);border-radius:12px;margin-bottom:24px;padding:16px}.edit-current-info h4{color:#8e8e93;color:var(--text-secondary);font-size:16px;margin:0 0 12px}.edit-current-info p{font-size:14px;margin:6px 0}.edit-new-booking h4{font-size:18px;margin:0 0 16px}.date-confirm-row{align-items:center;display:flex;gap:12px}.date-confirm-row input[type=date]{border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:8px;flex:1 1;font-size:16px;padding:12px}.slot.current{background:#007aff1a;border:2px solid #007aff;border:2px solid var(--primary-color)}.current-badge{color:#007aff;color:var(--primary-color);display:block;font-size:10px;font-weight:600;margin-top:2px}.edit-price-info{background:#f2f2f7;background:var(--background);border-radius:12px;margin-top:20px;padding:16px}.edit-price-info .price-row{align-items:center;display:flex;font-size:16px;justify-content:space-between}.edit-price-info .price-value{color:#007aff;color:var(--primary-color);font-size:24px;font-weight:700}.edit-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.modal-overlay{align-items:center;background:#ffffffe0;bottom:0;display:flex;justify-content:center;left:0;padding:24px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;background:var(--surface);border-radius:20px;box-shadow:0 8px 32px #0000001f;box-shadow:var(--shadow-lg);max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:24px}.modal-header h2{font-size:24px}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#8e8e93;color:var(--text-secondary);cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;transition:all .2s;width:40px}.modal-close:hover{background:#f2f2f7;background:var(--background);color:#000;color:var(--text-primary)}body:has(.modal-overlay) .navbar{display:none}.booking-form{padding:24px}.slots-section{margin:14px 0 8px}.slots-section label{display:block;font-weight:700;margin-bottom:8px}.slots-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.slot{background:#fff;background:var(--surface);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:10px;cursor:pointer;font-weight:700;padding:10px 8px;text-align:center;transition:transform .12s ease,box-shadow .12s ease}.slot:hover{box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);transform:translateY(-3px)}.slot.available{color:#000;color:var(--text-primary)}.slot.unavailable{background:#f5f5f7;border-style:dashed;color:#8e8e93;color:var(--text-secondary);cursor:not-allowed}.slot.selected{border:2px solid #007aff;border:2px solid var(--primary-color);box-shadow:0 6px 18px #007aff14}.slot.peak{background:linear-gradient(135deg,#fff9e6,#fff);border-color:#ff9500;border-color:var(--warning-color)}.slot.peak.selected{border-color:#007aff;border-color:var(--primary-color)}.slot-time{font-size:14px}.slots-loading{color:#8e8e93;color:var(--text-secondary);padding:8px 0}.peak-badge{background:linear-gradient(135deg,#ff9500,#ffb800);background:linear-gradient(135deg,var(--warning-color) 0,#ffb800 100%);border-radius:4px;color:#fff;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.5px;margin-top:4px;padding:2px 6px;text-transform:uppercase}.price-breakdown{background:#f8f9fa;border-left:3px solid #ff9500;border-left:3px solid var(--warning-color);border-radius:8px;margin:10px 0;padding:12px}.breakdown-title{color:#8e8e93;color:var(--text-secondary);font-size:13px;font-weight:600;margin-bottom:8px}.breakdown-row{color:#000;color:var(--text-primary);display:flex;font-size:13px;justify-content:space-between;padding:4px 0}.breakdown-row .rule-name{color:#ff9500;color:var(--warning-color);font-size:11px;font-weight:600}.map-page-wrapper{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;max-width:100vw;overflow:hidden;width:100%}.map-navbar-search{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 24px 10px;z-index:100}.map-navbar-search .navbar-logo{align-items:center;color:#000;color:var(--text-primary);display:flex;flex-shrink:0;font-size:20px;font-weight:700;gap:8px;text-decoration:none}.map-navbar-search .logo-icon{font-size:24px}.navbar-search-center{flex:1 1;max-width:900px;min-width:400px}.map-navbar-search .navbar-menu-wrapper{flex-shrink:0;position:relative}.map-navbar-search .menu-toggle-btn{background:#0f172a;border-color:#0f172a;color:#fff}.map-navbar-search .menu-toggle-btn:hover{background:#111827;border-color:#111827}.map-search-header{display:none}.main-content.no-navbar{padding-top:0}.map-search-header .search-bar.compact{margin:0 auto;max-width:1000px}.map-list-container{align-items:stretch;box-sizing:border-box;display:flex;flex:1 1;flex-direction:row;gap:18px;overflow:hidden;padding:0 16px 16px;width:100%}.map-list-container.with-directions{gap:12px}.map-row{background:#fff;background:var(--surface);border-radius:12px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);display:flex;flex:0 0 50%;flex-direction:column;gap:12px;min-width:0;overflow:hidden}.map-pane{border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:0 0 12px 12px;flex:1 1 auto;min-height:300px;overflow:hidden;position:relative;transition:flex-basis .25s ease,width .25s ease,height .25s ease}.map-list-container.with-directions .map-pane{flex:1 1 55%}.directions-pane{border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:12px;flex:0 0 28%;max-width:360px;overflow-y:auto;padding:12px}.directions-pane,.list-pane{background:#fff;background:var(--surface);box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow)}.list-pane{border-radius:12px;display:flex;flex:0 0 50%;flex-direction:column;height:100%;min-width:0;overflow:hidden}.list-header-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.directions-header{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.directions-title{font-weight:700}.directions-meta{color:#8e8e93;color:var(--text-secondary);font-size:13px}.directions-actions{display:flex;gap:8px}.btn-sm{border-radius:8px;font-size:13px;padding:6px 10px}.directions-steps{gap:6px;margin-left:18px}.direction-step,.directions-steps{display:flex;flex-direction:column}.direction-step{gap:2px}.step-instruction{font-size:14px}.step-meta{font-size:12px}.directions-placeholder,.step-meta{color:#8e8e93;color:var(--text-secondary)}.directions-placeholder{display:flex;flex-direction:column;font-size:14px;gap:6px}.directions-overlay{background:#fff;background:var(--surface);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:10px;bottom:12px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);overflow:auto;padding:10px 12px;position:absolute;right:12px;top:12px;width:clamp(280px,28%,360px)}.btn-ghost{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease}.btn-ghost:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-1px)}.sport-pills-container{background:#fff;border-bottom:1px solid #e2e8f0;position:relative}.sport-pills{-ms-overflow-style:none;display:flex;gap:12px;overflow-x:auto;padding:16px 20px;scrollbar-width:none}.sport-pills::-webkit-scrollbar{display:none}.sport-pill{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:24px;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;font-size:15px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease;white-space:nowrap}.sport-pill:hover{border-color:#667eea;color:#667eea}.sport-pill.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 12px #667eea4d;color:#fff}.sport-pill .sport-icon{font-size:16px}.sport-pills-count{background:#fff;color:#64748b;font-size:13px;font-weight:500;padding-left:10px;position:absolute;right:20px;top:50%;transform:translateY(-50%)}.sport-pills-container.has-scroll:after{background:linear-gradient(90deg,#0000,#fff);bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;width:40px}.secondary-filters{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:10px 20px}.secondary-filter{align-items:center;display:flex;gap:6px}.secondary-filter label{color:#64748b;font-size:13px;font-weight:500}.secondary-filter select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;min-width:100px;padding:6px 12px}.secondary-filter select:focus{border-color:#667eea;outline:none}.secondary-filters .club-count{color:#64748b;font-size:13px;font-weight:500;margin-left:auto}.sport-filter-bar{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color);display:flex;gap:10px;padding:10px 12px}.sport-filter-bar label{color:#8e8e93;color:var(--text-secondary);font-size:13px;font-weight:600}.sport-filter-select{background:#fff;border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:6px 12px}.sport-filter-select:focus{border-color:#007aff;border-color:var(--primary-color);outline:none}.sport-filter-bar .club-count{color:#8e8e93;color:var(--text-secondary);font-size:13px;margin-left:auto}.club-list{display:flex;flex:1 1;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding:12px}.club-list .club-card{grid-gap:10px!important;align-items:start!important;background:#fff!important;border:1px solid #e5e5ea!important;border:1px solid var(--border-color)!important;border-radius:10px!important;cursor:pointer;display:grid!important;flex-direction:row!important;gap:10px!important;grid-template-columns:1fr 90px!important;grid-template-rows:auto auto!important;overflow:visible!important;padding:12px!important;transition:all .3s cubic-bezier(.4,0,.2,1)}.club-list .club-card:hover{box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);transform:translateY(-1px)}.club-list .club-card.availability-available{border-left:4px solid #16a34a!important}.club-list .club-card.availability-unavailable{border-left:4px solid #dc2626!important}.club-list .club-card.availability-duration-mismatch{border-left:4px solid #f59e0b!important}.club-list .club-card.selected,.club-list .club-card.selected.availability-available,.club-list .club-card.selected.availability-duration-mismatch,.club-list .club-card.selected.availability-unavailable{border:2px solid #2563eb!important;box-shadow:0 0 0 3px #2563eb26,0 2px 16px #00000014;box-shadow:0 0 0 3px #2563eb26,var(--shadow)}.club-list .club-card.expanded{box-shadow:0 8px 24px #007aff26;padding:14px!important}.club-list .club-info{cursor:pointer;flex:initial!important;grid-column:1;grid-row:1;min-width:0;padding:0!important}.club-list .club-name{font-size:14px;font-weight:800;line-height:1.3;margin:0}.club-list .club-location{color:#8e8e93;color:var(--text-secondary);font-size:13px;margin:4px 0 0}.club-list .club-meta{align-items:center;color:#007aff;color:var(--primary-color);display:flex;flex-wrap:wrap;font-size:13px;font-weight:600;gap:6px;margin-top:6px}.club-list .club-pricing-info{display:flex;flex-direction:column;gap:2px;min-width:100px}.club-list .club-court-types{color:#6b7280;font-size:11px;line-height:1.3}.club-list .club-price{color:#059669;font-size:13px;font-weight:600}.club-list .club-price .price-na{color:#9ca3af;font-size:12px;font-weight:400}.club-list .club-price.price-muted{color:#9ca3af}.club-list .club-rating-small{align-items:center;display:flex;font-size:11px;gap:3px;margin-top:2px}.club-list .club-rating-small .rating-stars{color:#f59e0b;font-size:10px;letter-spacing:-2px}.club-list .club-rating-small .rating-value{color:#374151;font-weight:600}.club-list .club-rating-small .rating-count{color:#6b7280}.club-list .distance-badge{align-items:center;background:#007aff1a;border-radius:12px;color:#007aff;color:var(--primary-color);display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:2px 8px;white-space:nowrap}.club-list .distance-badge.close{background:#34c7591a;color:#34c759;color:var(--success-color)}.club-list .distance-badge.far{background:#ff95001a;color:#ff9500;color:var(--warning-color)}.club-list .distance-icon{font-size:11px;opacity:.7}.club-list .club-thumb{cursor:pointer;display:block!important;flex-shrink:0;grid-column:2!important;grid-row:1!important;overflow:visible!important;position:relative!important}.club-list .club-card.expanded .club-thumb,.club-list .club-thumb{height:80px!important;width:90px!important}.club-list .club-thumb img{border-radius:8px;height:100%!important;object-fit:cover;width:100%!important}.club-list .club-actions{align-items:center!important;border-top:1px solid #e5e5ea!important;border-top:1px solid var(--border-color)!important;display:flex!important;gap:10px!important;grid-column:1/-1!important;grid-row:2!important;justify-content:space-between!important;max-height:none!important;opacity:1!important;overflow:visible!important;padding-top:10px!important;transform:none!important}.club-list .club-card.expanded .club-actions{margin-top:4px}.club-list .club-desc{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#8e8e93;color:var(--text-secondary);display:-webkit-box;flex:1 1;font-size:12px;line-height:1.3;min-width:0;overflow:hidden}.club-list .club-time-slot{flex:1 1;min-width:0}.club-list .club-time-slot .time-slot-date{color:#8e8e93;color:var(--text-secondary);font-size:11px;margin-bottom:1px}.club-list .club-time-slot .time-slot-time{color:#2563eb;font-size:13px;font-weight:600}.club-list .club-time-slot .availability-available{color:#16a34a;font-size:13px;font-weight:500;margin-top:2px}.club-list .club-time-slot .availability-checking{align-items:center;color:#6b7280;display:inline-flex;font-size:11px;font-weight:500;gap:6px;margin-top:2px;text-transform:lowercase}.club-list .club-time-slot .availability-checking-beachball{animation:availability-beachball-spin .95s linear infinite;background:radial-gradient(circle at 27% 24%,#ffffff6b 0 14%,#fff0 42%),radial-gradient(circle at 70% 78%,#c6e428 0,#b6d91f 62%,#9fc316 100%),radial-gradient(circle at 40% 40%,#dfff40 0,#cdea2f 56%,#abd019 100%);border-radius:50%;box-shadow:inset 0 0 0 1px #70901e61,inset 0 -1px 1px #56761433,0 0 0 1px #1118270d;filter:saturate(1.08) contrast(1.02);height:11px;overflow:hidden;position:relative;width:11px}.club-list .club-time-slot .availability-checking-beachball:after,.club-list .club-time-slot .availability-checking-beachball:before{border:1.35px solid #f6f9fbfa;border-radius:50%;box-shadow:0 0 0 .1px #bbbfc4b3;content:"";height:18px;position:absolute;width:15px}.club-list .club-time-slot .availability-checking-beachball:before{left:-2px;top:-10px;transform:rotate(33deg)}.club-list .club-time-slot .availability-checking-beachball:after{right:-2px;top:2px;transform:rotate(33deg)}@keyframes availability-beachball-spin{to{transform:rotate(1turn)}}.club-list .club-time-slot .availability-unavailable{background:none;border:none;border-radius:0;color:#dc2626;display:block;font-size:13px;font-weight:500;margin-top:2px;padding:0}.club-list .club-time-slot .availability-unavailable .separator{color:#d1d5db;margin:0 4px}.club-list .club-time-slot .availability-unavailable .min-booking-info{color:#6b7280;font-size:10px;font-weight:400}.club-list .club-time-slot .availability-unavailable strong{font-weight:600}.club-list .btn-book-small{background:#0000!important;border:1px solid #2563eb!important;color:#2563eb!important;font-size:13px!important;padding:8px 20px!important;white-space:nowrap}.club-list .btn-book-small:hover{background:#eff6ff!important}.club-list .btn-book-small.btn-disabled,.club-list .btn-book-small:disabled{background:#0000!important;border:1px solid #9ca3af!important;color:#9ca3af!important;cursor:not-allowed;opacity:.6}.club-list .btn-book-small.btn-book-unavailable{background:#0000!important;border:1px solid #dc2626!important;color:#dc2626!important}.club-list .btn-book-small.btn-book-unavailable:hover{background:#fef2f2!important}.club-list .action-buttons{align-items:center!important;display:flex!important;flex-shrink:0;gap:6px!important}.club-list .btn-directions-small,.club-list .btn-view-small{font-size:13px!important;padding:8px 10px!important}.club-list .btn-view-small{background:#f2f2f7!important;border:1px solid #d1d5db!important;color:#111827!important}.club-list .btn-view-small:hover{background:#e5e7eb!important;border-color:#cbd5f5!important;color:#111827!important}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.booking-summary{background:#f2f2f7;background:var(--background);border-radius:12px;margin:20px 0;padding:20px}.confirm-overlay{align-items:center;background:#00000040;border-radius:20px;display:flex;inset:0;justify-content:center;position:absolute;z-index:40}.confirm-card{background:#fff;background:var(--surface);border-radius:12px;box-shadow:0 8px 32px #0000001f;box-shadow:var(--shadow-lg);max-height:85vh;max-width:500px;overflow-y:auto;padding:20px 22px;text-align:left;width:92%}.confirm-card h3{border-bottom:2px solid #667eea;color:#333;font-size:1.5em;margin-bottom:16px;padding-bottom:8px}.confirm-section{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;margin-bottom:20px;padding:15px}.confirm-section h4{color:#667eea;font-size:1.1em;font-weight:600;margin:0 0 12px}.confirm-section .summary-row{font-size:.95em;padding:6px 0}.confirm-section .summary-row span:first-child{color:#666;font-weight:500}.confirm-section .summary-row span:last-child{color:#333;font-weight:600}.confirm-actions{display:flex;gap:12px;margin-top:20px}.confirm-actions button{flex:1 1;font-size:1em;font-weight:600;padding:12px}.toast{animation:slideIn .3s ease-out;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff!important;font-size:1.05rem;font-weight:600;line-height:1.5;max-width:400px;padding:16px 24px;position:fixed;right:20px;top:20px;z-index:1200}.toast.success{background:#28a745!important;border-left:4px solid #1e7e34}.toast.error{background:#dc3545!important;border-left:4px solid #bd2130}.toast *{color:#fff!important}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.summary-row{display:flex;font-size:15px;justify-content:space-between;padding:8px 0}.summary-row.total{border-top:2px solid #e5e5ea;border-top:2px solid var(--border-color);color:#007aff;color:var(--primary-color);font-size:18px;font-weight:700;margin-top:12px;padding-top:16px}.form-actions{display:flex;gap:12px;margin-top:24px}.form-actions button{flex:1 1}.admin-container{margin:0 auto;max-width:1200px}.admin-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.admin-header h1{font-size:36px}.admin-form-card{background:#fff;background:var(--surface);border-radius:16px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);margin-bottom:32px;padding:32px}.admin-form-card h2{font-size:24px;margin-bottom:24px}.admin-form{display:flex;flex-direction:column;gap:20px}.courts-table{background:#fff;background:var(--surface);border-radius:16px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);overflow-x:auto;padding:24px}table{border-collapse:collapse;width:100%}thead{background:#f2f2f7;background:var(--background)}th{color:#8e8e93;color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;text-align:left;text-transform:uppercase}td,th{padding:16px}td{border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color)}tr:last-child td{border-bottom:none}.status-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.status-badge.active{background:#e8f5e9;color:#34c759;color:var(--success-color)}.status-badge.inactive{background:#ffebee;color:#ff3b30;color:var(--danger-color)}.message-banner{background:#007aff;background:var(--primary-color);border-radius:12px;box-shadow:0 2px 16px #00000014;box-shadow:var(--shadow);justify-content:space-between;margin-bottom:24px;padding:16px 24px}.message-banner,.message-banner button{align-items:center;color:#fff;display:flex}.message-banner button{background:none;border:none;border-radius:50%;cursor:pointer;font-size:24px;height:32px;justify-content:center;padding:0;transition:background .2s;width:32px}.message-banner button:hover{background:#fff3}.loading{color:#8e8e93;color:var(--text-secondary);font-size:18px;padding:48px;text-align:center}@media (max-width:768px){.navbar-container{align-items:center;flex-direction:row;gap:0}.navbar-logo{font-size:18px;gap:6px}.logo-icon{font-size:20px}.navbar{padding:env(safe-area-inset-top) 12px 4px}.menu-toggle-btn{font-size:13px;padding:8px 12px}.navbar-menu{flex-direction:column;gap:16px;width:100%}.navbar-user{justify-content:space-between;width:100%}.booking-details,.courts-grid,.form-row{grid-template-columns:1fr}.admin-header{align-items:flex-start;flex-direction:column;gap:16px}.admin-header button{width:100%}.auth-card{padding:32px 24px}table{font-size:14px}td,th{padding:12px 8px}.btn-delete,.btn-edit{font-size:13px;padding:8px 12px}}@media (max-width:480px){.main-content{padding:16px}.main-content:has(.landing-page),.main-content:has(.map-page-wrapper){padding:0}.courts-header h1{font-size:32px}.auth-header h1{font-size:28px}.modal-content{margin:16px}}@media (max-width:1024px) and (min-width:769px){.map-list-container{flex-direction:row;padding:0 12px 12px}.map-row{display:none}.list-pane{flex:1 1;height:100%!important;width:100%}}@media (max-width:768px){.map-list-container{gap:8px;padding:0 8px 8px}.map-row{min-height:300px}.filter-row{align-items:stretch;flex-direction:column}.filter-group{min-width:100%}.map-search-header{padding:16px 16px 20px}}.time-filter-section{background:#fff;background:var(--surface);border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color);border-radius:0 0 12px 0;flex-shrink:0;padding:16px;position:relative;z-index:9}.filter-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px}.filter-group{display:flex;flex-direction:column;gap:4px;min-width:140px}.filter-group label{color:#8e8e93;color:var(--text-secondary);font-size:13px;font-weight:500}.filter-group input[type=date],.filter-group select{background:#fff;background:var(--surface);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:8px;color:#000;color:var(--text-primary);font-size:14px;padding:8px 12px;transition:border-color .2s}.filter-group input[type=date]:focus,.filter-group select:focus{border-color:#007aff;border-color:var(--primary-color);outline:none}.cancel-booking-modal{max-width:500px}.cancel-booking-content{display:flex;flex-direction:column;gap:20px;padding:24px}.cancel-warning{color:#000;color:var(--text-primary);font-size:16px;font-weight:500;margin:0;text-align:center}.cancel-booking-details{background:#f2f2f7;background:var(--background);border-radius:12px;display:flex;flex-direction:column;gap:12px;padding:16px}.detail-row{border-bottom:1px solid #e5e5ea;border-bottom:1px solid var(--border-color);display:flex;gap:12px;justify-content:space-between;padding:8px 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#8e8e93;color:var(--text-secondary);font-weight:500;min-width:80px}.detail-value{color:#000;color:var(--text-primary);flex:1 1;font-weight:600;text-align:right}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-danger,.modal-actions button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-danger{background:#ff3b30;background:var(--danger-color);color:#fff}.btn-danger:hover:not(:disabled){background:#d63c28;box-shadow:0 4px 12px #ff3b304d;transform:translateY(-2px)}.btn-danger:disabled{cursor:not-allowed;opacity:.6}.btn-clear-filter{background:#f2f2f7;background:var(--background);border:1px solid #e5e5ea;border:1px solid var(--border-color);border-radius:8px;color:#000;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:500;height:36px;padding:8px 16px;transition:all .2s}.btn-clear-filter:hover{background:#e5e5ea;background:var(--border-color)}.filter-result-info{background:#f2f2f7;background:var(--background);border-radius:8px;color:#8e8e93;color:var(--text-secondary);font-size:13px;margin-top:12px;padding:8px 12px;text-align:center}.availability-message{margin-bottom:12px;margin-top:12px}.availability-unavailable-with-alt{background:#fff3cd;border-left:4px solid #ff9500;border-radius:6px;color:#856404;font-size:13px;line-height:1.4;padding:10px 12px}.availability-unavailable-with-alt strong{color:#664d03;font-weight:600}.availability-unavailable{background:#ffe5e5;border-left:4px solid #ff3b30;border-radius:6px;color:#721c24;font-size:13px;font-weight:500;padding:10px 12px}.availability-duration-mismatch{background:#f3e8ff;border-left:4px solid #8b5cf6;border-radius:6px;color:#5b21b6;font-size:13px;line-height:1.4;padding:10px 12px}.availability-duration-mismatch .mismatch-label{color:#6d28d9;display:block;font-weight:600;margin-bottom:4px}.availability-duration-mismatch .mismatch-alternatives{color:#7c3aed;display:block}.availability-duration-mismatch strong{color:#5b21b6;font-weight:600}@media (max-width:768px){.map-list-container{flex:1 1;flex-direction:column;gap:0;height:100%;padding:0;position:relative}.map-list-container.map-hidden{display:flex;flex-direction:column}.map-row{flex:1 1;min-height:0}.map-pane{height:100%!important}.list-pane{background:#fff;border-radius:20px 20px 0 0;bottom:0;box-shadow:0 -4px 24px #0000001f;display:flex;flex-direction:column;height:170px;left:0;max-height:none!important;overflow:hidden;position:fixed;right:0;z-index:50}.list-pane .club-list{flex:1 1;min-height:0;overflow-y:auto}.sheet-header{align-items:center;display:flex;flex-shrink:0;justify-content:space-between;padding:10px 16px 8px}.sheet-handle{align-items:flex-start;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:6px}.sheet-handle-bar{align-self:center;background:#d1d5db;border-radius:2px;height:4px;width:36px}.sheet-count{color:#374151;font-size:13px;font-weight:600}.map-toggle-wrap{align-items:center;cursor:pointer;display:flex;flex-shrink:0;gap:8px;padding:4px 0 4px 12px;-webkit-user-select:none;user-select:none}.map-toggle-label{color:#374151;font-size:13px;font-weight:600}.map-toggle-switch{background:#d1d5db;border-radius:13px;height:26px;position:relative;transition:background .25s ease;width:44px}.map-toggle-switch.on{background:#667eea}.map-toggle-knob{background:#fff;border-radius:50%;box-shadow:0 1px 4px #0003;height:20px;left:3px;position:absolute;top:3px;transition:transform .25s ease;width:20px}.map-toggle-switch.on .map-toggle-knob{transform:translateX(18px)}.map-list-container.map-hidden .map-row{display:none}.map-list-container.map-hidden .list-pane{border-radius:0;box-shadow:none;flex:1 1;height:auto;max-height:none!important;position:relative}.map-list-container.map-hidden .list-pane .club-list{flex:1 1;overflow-y:auto}.map-list-container.map-hidden .sheet-handle{cursor:default}.map-navbar-search .navbar-logo{display:none}.map-navbar-search{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:calc(6px + env(safe-area-inset-top)) 10px 8px}.map-navbar-search .navbar-menu-wrapper{margin-left:auto;order:1}.map-navbar-search .menu-dropdown{left:auto;right:0}.navbar-search-center{flex:0 0 100%;min-width:0;order:2;width:100%}.map-navbar-search .search-bar.compact{align-items:center;border-radius:14px;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:6px;padding:6px 8px;width:100%}.map-navbar-search .search-bar.compact .search-bar-location-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:1 1 auto;max-width:none;min-width:110px;padding:0}.map-navbar-search .search-bar.compact .search-bar-input{font-size:16px;padding:9px 26px 9px 32px}.map-navbar-search .search-bar.compact .search-bar-icon.location-icon{height:14px;left:10px;width:14px}.map-navbar-search .search-bar.compact .search-bar-filters{align-items:center;background:#0000!important;border:none!important;box-shadow:none!important;display:flex!important;flex:0 0 auto;gap:6px;padding:0!important;position:static!important;width:auto!important}.map-navbar-search .search-bar.compact .search-bar-field{align-items:center;background:#f8fafc;border:1px solid #dbe3f0;border-radius:999px;display:flex!important;flex-direction:row!important;justify-content:center;margin:0!important;min-height:36px;padding:6px 10px;white-space:nowrap}.map-navbar-search .search-bar.compact .court-type-field,.map-navbar-search .search-bar.compact .search-bar-field .search-bar-icon,.map-navbar-search .search-bar.compact .search-bar-field:before{display:none!important}.map-navbar-search .search-bar.compact .sport-trigger,.map-navbar-search .search-bar.compact .when-trigger{font-size:.83rem;gap:4px;width:auto}.map-navbar-search .search-bar.compact .sport-label,.map-navbar-search .search-bar.compact .when-label{font-size:.83rem;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-navbar-search .search-bar.compact .search-bar-submit{border-radius:10px;flex:0 0 auto;height:36px;margin:0!important;min-width:38px;padding:0;width:38px}.map-navbar-search .search-bar.compact .search-bar-submit .search-btn-text{display:none}.map-navbar-search .court-type-popover,.map-navbar-search .sport-popover,.map-navbar-search .when-popover{bottom:auto!important;left:12px!important;max-height:calc(100vh - env(safe-area-inset-top) - 140px);min-width:0;overflow-y:auto;position:fixed!important;right:12px!important;top:calc(env(safe-area-inset-top) + 124px)!important;transform:none!important;z-index:3001}.club-list .club-time-slot .availability-available,.club-list .club-time-slot .availability-unavailable,.club-list .club-time-slot .time-slot-time{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-list .club-time-slot .time-slot-time{font-size:12px}}@media (min-width:769px){.sheet-header{display:none}}.error-boundary{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;justify-content:center;min-height:100vh;padding:20px}.error-content{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001a;max-width:600px;padding:40px;text-align:center}.error-content h1{color:#dc3545;font-size:2rem;margin-bottom:16px}.error-content p{color:#6c757d;font-size:1.1rem;margin-bottom:24px}.btn-reload{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 32px;transition:background .2s}.btn-reload:hover{background:#0056b3}.error-details{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-top:32px;padding:16px;text-align:left}.error-details summary{color:#495057;cursor:pointer;font-weight:600;margin-bottom:12px}.error-details pre{background:#343a40;border-radius:6px;color:#f8f9fa;font-size:12px;margin-top:8px;overflow-x:auto;padding:12px}.toast-container{bottom:24px;display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 48px);pointer-events:none;position:fixed;right:24px;z-index:9999}.toast{align-items:flex-start;animation:toast-in .16s ease-out;background:#1f2937;border-radius:8px;box-shadow:0 10px 25px #00000026;color:#f9fafb;display:flex;font-size:14px;gap:12px;line-height:1.4;max-width:420px;min-width:280px;padding:12px 14px;pointer-events:auto}.toast-success{background:#065f46}.toast-error{background:#991b1b}.toast-info{background:#1e3a8a}.toast-message{flex:1 1;word-break:break-word}.toast-close{background:#0000;border:0;color:inherit;cursor:pointer;font-size:18px;line-height:1;opacity:.7;padding:0 4px}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.toast-container{bottom:16px;left:16px;max-width:none;right:16px}.toast{max-width:none;min-width:0}}
/*# sourceMappingURL=main.72622f0c.css.map*/