.App{background:#f1f5f9;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}.content{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:900px;padding:20px;width:100%}.loading{background:#f1f5f9;color:#2c3e50;font-size:1.3rem;height:100vh;justify-content:center}.error-bar,.loading{align-items:center;display:flex}.error-bar{background-color:#fef2f2;border-bottom:2px solid #fecaca;color:#991b1b;font-size:.9rem;justify-content:space-between;padding:10px 20px}.error-dismiss{background:none;border:none;border-radius:4px;color:#991b1b;cursor:pointer;font-size:1.1rem;padding:4px 8px}.error-dismiss:hover{background:#fecaca}@media (max-width:600px){.content{padding:10px 6px}}.app-header{background:linear-gradient(135deg,#1e293b,#334155);box-shadow:0 2px 8px #00000026;color:#fff;height:56px;padding:0 20px;position:sticky;top:0;z-index:100}.header-inner{height:100%;justify-content:space-between;margin:0 auto;max-width:900px}.header-inner,.logo-container{align-items:center;display:flex}.logo-link{color:#fff;text-decoration:none}.logo-link h1{font-size:1.2rem;font-weight:800;letter-spacing:1px;margin:0}.main-nav{align-items:center;display:flex;gap:6px}.nav-link{border-radius:6px;color:#ffffffbf;font-size:.82rem;font-weight:600;padding:6px 12px;text-decoration:none;transition:all .2s}.nav-link:hover{background:#ffffff1a;color:#fff}.admin-link{background:#3b82f640;color:#93c5fd}.admin-link:hover{background:#3b82f666;color:#fff}.admin-lock{font-size:.75rem;opacity:.4;padding:6px 8px}.admin-lock:hover{opacity:.8}@media (max-width:900px){.app-header{height:44px;padding:0 10px}.header-inner{gap:4px}.logo-link h1{font-size:.9rem}.nav-link{font-size:.7rem;padding:4px 6px}}@media (max-width:600px){.header-inner{gap:8px}.nav-link{font-size:.75rem;padding:5px 8px}.logo-link h1{font-size:1rem}}.calendar-container{background-color:#fff;border-radius:10px;box-shadow:0 2px 16px #00000014;padding:24px}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.calendar-header h2{color:#1e293b;font-size:1.3rem;margin:0;text-transform:capitalize}.month-nav-button{background-color:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:1rem;font-weight:700;padding:10px 16px;transition:background-color .2s}.month-nav-button:hover{background-color:#e2e8f0}.season-shortcuts{display:flex;justify-content:center;margin-bottom:16px}.season-button{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 20px;transition:all .2s}.season-button:hover{box-shadow:0 2px 8px #10b9814d;transform:translateY(-1px)}.calendar-grid{margin-bottom:16px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;text-align:center}.calendar-day-header{color:#64748b;font-size:.82rem;font-weight:700;letter-spacing:.5px;padding:8px;text-transform:uppercase}.calendar-dates{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(7,1fr)}.calendar-date{border-radius:6px;min-height:70px;padding:6px 8px;position:relative;transition:all .15s}.calendar-date.current-month{background-color:#f8fafc}.calendar-date.other-month{background-color:initial;opacity:.3}.calendar-date.off-season.current-month{background-color:#f1f5f9;border:1px solid #e2e8f0}.calendar-date.in-season{background-color:#fff7ed;border:1px solid #fed7aa}.calendar-date.in-season.day-open{background-color:#f0fdf4;border:1px solid #86efac}.calendar-date.today{border:2px solid #3b82f6!important}.calendar-date.clickable{cursor:pointer}.calendar-date.clickable:hover{box-shadow:0 2px 6px #00000014;transform:translateY(-1px)}.calendar-date.in-season.day-open.clickable:hover{background-color:#dcfce7}.calendar-date.in-season:not(.day-open).clickable:hover{background-color:#ffedd5}.date-number{align-items:center;color:#1e293b;display:flex;font-size:.9rem;font-weight:700;justify-content:space-between;margin-bottom:2px}.calendar-date.off-season .date-number{color:#94a3b8}.date-weather{font-size:.7rem;line-height:1}.date-temp{color:#f59e0b;font-size:.6rem;font-weight:700}.date-info{display:flex;flex-direction:column;gap:1px}.date-bookings{color:#3b82f6;font-size:.7rem;font-weight:600}.date-revenue{color:#059669;font-size:.7rem;font-weight:700}.date-closed-label{color:#d97706;font-size:.65rem;font-weight:600;opacity:.7}.date-blocked-indicator{background-color:#ef4444;border-radius:50%;height:8px;position:absolute;right:6px;top:6px;width:8px}.calendar-legend{border-top:1px solid #f1f5f9;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;padding-top:12px}.legend-item{align-items:center;color:#64748b;display:flex;font-size:.8rem;gap:6px}.legend-indicator{border-radius:4px;height:14px;width:14px}.legend-indicator.day-open{background-color:#d1fae5;border:1px solid #86efac}.legend-indicator.in-season-closed{background-color:#fff7ed;border:1px solid #fed7aa}.legend-indicator.off-season-legend{background-color:#f1f5f9;border:1px solid #e2e8f0}.legend-indicator.has-blocked{background-color:#ef4444;border-radius:50%;height:10px;width:10px}@media (max-width:600px){.calendar-container{border-radius:6px;padding:12px 8px}.calendar-header h2{font-size:1.1rem}.month-nav-button{font-size:.9rem;padding:8px 12px}.season-shortcuts{margin-bottom:10px}.season-button{font-size:.78rem;padding:6px 16px}.calendar-day-header{font-size:.7rem;padding:6px 2px}.calendar-dates{gap:2px}.calendar-date{min-height:44px;padding:4px 2px}.date-number{font-size:.8rem}.date-closed-label,.date-info{display:none}.calendar-legend{font-size:.7rem;gap:8px}.legend-item{font-size:.7rem}.legend-indicator{height:10px;width:10px}}.daily-view-container{background-color:#fff;border-radius:10px;box-shadow:0 2px 16px #00000014;padding:24px}.daily-view-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:16px}.daily-view-header h2{color:#1e293b;font-size:1.2rem;margin:0;text-transform:capitalize}.back-button{background-color:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 14px;transition:background-color .2s}.back-button:hover{background-color:#e2e8f0}.date-navigation{display:flex;gap:8px}.date-nav-button{background-color:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 14px;transition:background-color .2s}.date-nav-button:hover{background-color:#e2e8f0}.new-booking-bar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.new-booking-button{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;box-shadow:0 2px 8px #3b82f64d;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:12px 24px;transition:all .2s}.new-booking-button:hover{box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.day-summary{align-items:center;color:#64748b;display:flex;font-size:.9rem;gap:8px}.summary-sep{color:#cbd5e1}.summary-revenue{color:#059669;font-weight:700}.sessions-timeline{display:flex;flex-direction:column;gap:2px}.lunch-break{align-items:center;border-bottom:1px dashed #e2e8f0;border-top:1px dashed #e2e8f0;color:#94a3b8;display:flex;font-size:.85rem;justify-content:center;margin:6px 0;padding:10px 0}.timeline-slot{align-items:stretch;border-radius:6px;display:flex;min-height:48px;transition:background .15s}.timeline-slot:hover{background:#f8fafc}.timeline-slot.blocked{background:#fef2f2}.timeline-slot.full{background:#fffbeb}.slot-time-col{align-items:center;border-right:2px solid #e2e8f0;display:flex;flex-direction:column;justify-content:center;min-width:72px;padding:8px 10px}.timeline-slot.has-bookings .slot-time-col{border-right-color:#3b82f6}.timeline-slot.blocked .slot-time-col{border-right-color:#ef4444}.timeline-slot.full .slot-time-col{border-right-color:#f59e0b}.slot-time-label{color:#1e293b;font-size:.95rem;font-weight:700}.slot-capacity{color:#94a3b8;font-size:.72rem;font-weight:600}.slot-content-col{display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:6px 12px}.slot-empty .empty-label{color:#cbd5e1;font-size:.85rem}.slot-blocked-info{align-items:center;display:flex;gap:10px}.blocked-badge{background:#ef4444;border-radius:12px;color:#fff;font-size:.78rem;font-weight:700;padding:2px 10px}.blocked-reason{color:#dc2626;font-size:.85rem}.slot-bookings{display:flex;flex-direction:column;gap:4px}.booking-chip{align-items:center;border-left:3px solid #94a3b8;border-radius:6px;cursor:pointer;display:flex;font-size:.88rem;gap:8px;padding:6px 12px;transition:all .15s}.booking-chip:hover{box-shadow:0 1px 4px #00000014;transform:translateX(2px)}.booking-chip.continuation{opacity:.6}.chip-icon{font-size:1rem}.chip-name{color:#1e293b;font-weight:700}.chip-formula{background:#f1f5f9;border-radius:10px;padding:1px 8px}.chip-formula,.chip-players{color:#64748b;font-size:.78rem}.chip-players{font-weight:600}.chip-payment{align-items:center;border-radius:50%;display:flex;font-size:.82rem;font-weight:700;height:22px;justify-content:center;margin-left:auto;width:22px}.chip-payment.paid{background:#d1fae5;color:#059669}.chip-payment.unpaid{background:#fef3c7;color:#d97706}.chip-continuation{color:#94a3b8;font-size:.82rem}.off-season-message{background:#f8fafc;border-radius:10px;margin-top:20px;padding:40px 20px;text-align:center}.off-season-message p{color:#64748b;margin:8px 0}.off-season-detail{font-size:.9rem}.calendar-button{background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-top:15px;padding:10px 20px;transition:background-color .2s}.calendar-button:hover{background-color:#2563eb}.modal-overlay{align-items:center;background-color:#0006;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:12px;box-shadow:0 20px 60px #00000026;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.modal-header h3{color:#1e293b;font-size:1.1rem;margin:0}.modal-close{background:none;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:1.2rem;padding:4px 8px}.modal-close:hover{background:#f1f5f9;color:#475569}.detail-rows{margin-bottom:20px}.detail-row{align-items:baseline;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:10px 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#64748b;font-size:.82rem}.detail-value{text-align:right}.detail-price{color:#059669;font-size:1.2rem}.detail-paid{color:#059669}.detail-unpaid{color:#dc2626}.detail-notes{color:#475569;font-style:italic;font-weight:400}.modal-actions{border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding-top:16px}.toggle-payment-btn{border:none;border-radius:6px;cursor:pointer;font-size:.88rem;font-weight:600;padding:8px 16px;transition:all .2s}.toggle-payment-btn.mark-paid{background:#d1fae5;color:#059669}.toggle-payment-btn.mark-paid:hover{background:#a7f3d0}.toggle-payment-btn.mark-unpaid{background:#fef3c7;color:#d97706}.toggle-payment-btn.mark-unpaid:hover{background:#fde68a}.delete-booking-btn{background:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;font-size:.88rem;font-weight:600;padding:8px 16px;transition:all .2s}.delete-booking-btn:hover{background:#fecaca}.confirm-delete{align-items:center;color:#dc2626;display:flex;font-size:.85rem;gap:8px}.confirm-yes{background:#dc2626;color:#fff}.confirm-no,.confirm-yes{border:none;border-radius:4px;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 12px}.confirm-no{background:#f1f5f9;color:#475569}@media (max-width:600px){.daily-view-container{padding:16px}.daily-view-header{align-items:flex-start;flex-direction:column}.new-booking-bar{align-items:stretch;flex-direction:column}.day-summary{justify-content:center}.slot-time-col{min-width:56px}.booking-chip{flex-wrap:wrap;gap:4px}.chip-payment{margin-left:0}.modal-content{padding:16px}.detail-row{flex-direction:column;gap:2px}.detail-value{text-align:left}}.slot-admin-icon{font-size:.7rem;opacity:0;transition:opacity .2s}.slot-time-col:hover .slot-admin-icon{opacity:1}.slot-time-col{cursor:pointer;transition:background .15s}.slot-time-col:hover{background:#e2e8f0}.click-hint{color:#94a3b8;display:none;font-size:.72rem}.slot-blocked-info:hover .click-hint,.slot-empty:hover .click-hint{display:inline}.slot-blocked-info,.slot-empty{cursor:pointer}.slot-admin-info{margin-bottom:16px}.slot-admin-bookings{background:#f8fafc;border-radius:8px;margin-bottom:16px;padding:12px}.slot-admin-bookings h4{color:#475569;font-size:.9rem;margin-bottom:10px}.admin-booking-row{align-items:center;border-radius:6px;cursor:pointer;display:flex;font-size:.88rem;gap:8px;padding:8px 10px;transition:background .15s}.admin-booking-row:hover{background:#e2e8f0}.admin-booking-icon{font-size:1rem}.admin-booking-name{color:#1e293b;font-weight:700}.admin-booking-formula{background:#f1f5f9;border-radius:10px;color:#64748b;font-size:.78rem;padding:1px 8px}.admin-booking-players{color:#64748b;font-size:.78rem;font-weight:600}.admin-booking-paid{border-radius:10px;font-size:.78rem;font-weight:700;margin-left:auto;padding:2px 8px}.admin-booking-paid.paid{background:#d1fae5;color:#059669}.admin-booking-paid.unpaid{background:#fef3c7;color:#d97706}.slot-admin-actions{border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:10px;padding-top:16px}.block-button{background:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 16px;transition:background .2s}.block-button:hover{background:#fecaca}.unblock-button{background:#d1fae5;border:none;border-radius:6px;color:#059669;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 16px;transition:background .2s}.unblock-button:hover{background:#a7f3d0}.new-booking-from-slot-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 16px;transition:all .2s}.new-booking-from-slot-btn:hover{opacity:.9}.block-form{display:flex;flex-direction:column;gap:8px}.block-form label{color:#374151;font-size:.88rem;font-weight:600}.block-reason-input{border:1.5px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:.95rem;padding:10px 14px;width:100%}.block-reason-input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a;outline:none}.block-form-actions{display:flex;gap:8px}.confirm-block-btn{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px}.confirm-block-btn:hover{background:#b91c1c}.cancel-block-btn{background:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px}.cancel-block-btn:hover{background:#e2e8f0}.block-warning{color:#dc2626;font-size:.82rem;font-weight:600;margin-top:4px}.day-admin-bar{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.day-status-open{color:#059669;font-size:.95rem;font-weight:700}.day-status-closed{color:#d97706;font-size:.95rem;font-weight:700}.day-admin-buttons{display:flex;flex-wrap:wrap;gap:8px}.open-day-button{background:#d1fae5;border:none;border-radius:6px;color:#059669;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.open-day-button:hover{background:#a7f3d0}.close-day-button{background:#fef3c7;border:none;border-radius:6px;color:#d97706;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:background .2s}.close-day-button:hover{background:#fde68a}.timeline-slot.closed{opacity:.5}.timeline-slot.closed .slot-time-col{border-right-color:#d1d5db}.slot-closed{align-items:center;cursor:pointer;display:flex;gap:8px}.closed-label{color:#9ca3af;font-size:.85rem;font-weight:600}.open-slot-button{background:#d1fae5;border:none;border-radius:6px;color:#059669;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 16px;transition:background .2s;width:100%}.open-slot-button:hover{background:#a7f3d0}.close-slot-button{background:#fef3c7;border:none;border-radius:6px;color:#d97706;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 16px;transition:background .2s;width:100%}.close-slot-button:hover{background:#fde68a}.slot-public-info{align-items:center;display:flex;gap:10px;padding:6px 0}.public-reserved{color:#475569;font-size:.88rem;font-weight:600}.public-remaining{color:#10b981;font-size:.8rem;font-weight:600}.public-remaining:has(+.full){color:#dc2626}.admin-notes-row{align-items:flex-start!important;background:#eff6ff;border-bottom:none!important;flex-direction:column;margin:0 -20px;padding:12px 20px!important}.admin-notes-display{background:#fff;border:1.5px dashed #bfdbfe;border-radius:6px;color:#1e293b;cursor:pointer;font-size:.88rem;min-height:36px;padding:8px 12px;transition:border-color .2s;width:100%}.admin-notes-display:hover{border-color:#3b82f6}.admin-notes-edit{width:100%}.admin-notes-textarea{border:1.5px solid #3b82f6;border-radius:6px;font-family:inherit;font-size:.88rem;outline:none;padding:10px;resize:vertical;width:100%}.admin-notes-actions{display:flex;gap:8px;margin-top:8px}.notes-save-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px}.notes-save-btn:hover{background:#2563eb}.notes-cancel-btn{background:#e2e8f0;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px}.notes-cancel-btn:hover{background:#cbd5e1}.booking-form-container{background-color:#fff;border-radius:10px;box-shadow:0 2px 16px #00000014;margin:0 auto;max-width:800px;padding:24px}.booking-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}.booking-header h2{color:#1e293b;flex:1 1;font-size:1.4rem;margin:0}.booking-date{background:#f1f5f9;border-radius:20px;color:#64748b;font-size:.95rem;padding:6px 14px}.steps-indicator{border-bottom:1px solid #e2e8f0;border-top:1px solid #e2e8f0;display:flex;gap:8px;justify-content:center;margin:20px 0 28px;padding:16px 0}.step{flex-direction:column;gap:4px;min-width:60px}.step,.step-number{align-items:center;display:flex}.step-number{background:#e2e8f0;border-radius:50%;color:#94a3b8;font-size:.85rem;font-weight:700;height:30px;justify-content:center;transition:all .3s;width:30px}.step.active .step-number{background:#3b82f6;color:#fff}.step.current .step-number{background:#1d4ed8;box-shadow:0 0 0 3px #3b82f640;color:#fff}.step-label{color:#94a3b8;font-size:.72rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.step.active .step-label{color:#3b82f6}.step.current .step-label{color:#1d4ed8}.step-content{animation:fadeIn .3s ease}.step-content h3{color:#1e293b;font-size:1.15rem;margin-bottom:20px}.category-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.category-card{border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;padding:24px 20px;text-align:center;transition:all .2s}.category-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61f;transform:translateY(-2px)}.category-card.selected{background:#eff6ff;border-color:#3b82f6}.category-icon{font-size:2.2rem;margin-bottom:10px}.category-name{color:#1e293b;font-size:1.05rem;font-weight:700;margin-bottom:4px}.category-count{color:#64748b;font-size:.85rem}.formula-cards{display:flex;flex-direction:column;gap:14px}.formula-card{border:2px solid #e2e8f0;border-left-width:5px;border-radius:8px;cursor:pointer;padding:18px 20px;transition:all .2s}.formula-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.formula-card.selected{background:#f8fafc;border-color:#3b82f6}.formula-header-row{align-items:center;display:flex;gap:10px;margin-bottom:6px}.formula-icon{font-size:1.4rem}.formula-name{color:#1e293b;font-size:1.1rem;font-weight:700}.formula-description{color:#64748b;font-size:.9rem;margin-bottom:12px}.formula-details{display:flex;flex-wrap:wrap;gap:20px}.formula-detail{display:flex;flex-direction:column;gap:2px}.detail-label{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.detail-value{color:#1e293b;font-size:.95rem;font-weight:600}.detail-value.price{color:#10b981;font-size:1.1rem}.detail-value.price small{color:#64748b;font-size:.75rem;font-weight:400}.formula-price-detail{margin-left:auto}.formula-players{border-top:1px solid #f1f5f9;color:#64748b;font-size:.82rem;margin-top:10px;padding-top:8px}.formula-reminder{align-items:center;background:#f1f5f9;border-radius:8px;color:#475569;display:flex;font-size:.95rem;gap:8px;margin-bottom:20px;padding:10px 16px}.slot-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.slot-option{border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;padding:14px 12px;text-align:center;transition:all .2s}.slot-option:hover{background:#f8fafc;border-color:#3b82f6}.slot-option.selected{background:#eff6ff;box-shadow:0 2px 8px #3b82f626}.slot-time{color:#1e293b;font-size:1.2rem;font-weight:700}.slot-range{color:#64748b;font-size:.8rem;margin-top:4px}.no-slots-message{background:#fef2f2;border-radius:8px;color:#991b1b;padding:30px 20px;text-align:center}.no-slots-message p{margin:5px 0}.booking-info-form{margin:0 auto;max-width:500px}.form-group{margin-bottom:18px}.form-group label{color:#374151;display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}.form-input{border:1.5px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:1rem;padding:10px 14px;transition:border-color .2s;width:100%}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-textarea{font-family:inherit;resize:vertical}.checkbox-group{align-items:center;display:flex;gap:10px}.checkbox-group label{cursor:pointer;margin-bottom:0}.form-checkbox{cursor:pointer;height:18px;width:18px}.price-preview{align-items:baseline;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-radius:8px;display:flex;gap:10px;margin-bottom:20px;padding:14px 18px}.price-label{color:#064e3b;font-weight:600}.price-amount{color:#059669;font-size:1.6rem;font-weight:800}.price-detail{color:#6b7280;font-size:.85rem}.next-button{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:10px;padding:14px;transition:background .2s;width:100%}.next-button:hover{background:#2563eb}.recap-card{border:1px solid #e2e8f0;border-left:5px solid #3b82f6;border-radius:10px;margin-bottom:20px;padding:20px}.recap-section{align-items:baseline;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:10px 0}.recap-section:last-child{border-bottom:none}.recap-label{color:#64748b;font-size:.85rem;font-weight:600;letter-spacing:.3px;min-width:100px;text-transform:uppercase}.recap-value{color:#1e293b;font-weight:600;text-align:right}.recap-category{color:#64748b;font-size:.85rem;font-weight:400;margin-left:6px}.recap-detail{color:#64748b;display:block;font-size:.82rem;font-weight:400}.recap-notes{color:#475569;font-style:italic;font-weight:400}.recap-total{background:#f0fdf4;border-bottom:none;margin:0 -20px;padding:14px 20px}.recap-price{font-size:1.3rem;font-weight:800!important}.recap-paid,.recap-price{color:#059669!important}.recap-unpaid{color:#dc2626!important}.recap-actions{display:flex;gap:12px;justify-content:flex-end}.edit-button{background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 24px;transition:background .2s}.edit-button:hover{background:#e2e8f0}.confirm-booking-button{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:12px 28px;transition:opacity .2s,transform .1s}.confirm-booking-button:hover{opacity:.9;transform:translateY(-1px)}.confirm-booking-button:disabled{cursor:not-allowed;opacity:.5;transform:none}@media (max-width:600px){.booking-form-container{padding:16px}.booking-header{align-items:flex-start;flex-direction:column}.steps-indicator{gap:4px}.step-label{font-size:.62rem}.category-cards{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.formula-details{gap:12px}.formula-price-detail{margin-left:0}.recap-section{flex-direction:column;gap:4px}.recap-value{text-align:left}.recap-actions{flex-direction:column}.confirm-booking-button,.edit-button{text-align:center;width:100%}}.payment-methods{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.payment-method-card{align-items:center;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:14px;padding:16px 18px;transition:all .2s}.payment-method-card:hover{background:#f8fafc;border-color:#3b82f6}.payment-method-card.selected{background:#eff6ff;border-color:#3b82f6}.pm-icon{font-size:1.8rem}.pm-info{flex:1 1}.pm-name{color:#1e293b;font-size:1rem;font-weight:700;margin-bottom:2px}.pm-description{color:#64748b;font-size:.82rem}.pm-radio{color:#3b82f6;font-size:1.2rem}.bank-transfer-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:20px;padding:18px 20px}.bank-transfer-info h4{color:#1e293b;font-size:.95rem;margin-bottom:12px}.bank-detail{border-bottom:1px solid #f1f5f9;color:#475569;font-size:.9rem;padding:6px 0}.bank-detail:last-of-type{border-bottom:none}.bank-detail span{color:#1e293b;display:inline-block;font-weight:700;min-width:80px}.bank-note{background:#fffbeb;border-radius:6px;color:#d97706;font-size:.82rem;font-weight:600;margin-top:12px;padding:8px 12px}@media (max-width:600px){.payment-method-card{padding:12px 14px}.pm-icon{font-size:1.4rem}}.promo-banner{align-items:center;animation:promoGlow 2s ease-in-out infinite;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:10px;display:flex;gap:10px;margin-bottom:16px;padding:12px 18px}@keyframes promoGlow{0%,to{box-shadow:0 0 0 0 #f59e0b00}50%{box-shadow:0 0 12px 2px #f59e0b40}}.promo-icon{font-size:1.4rem}.promo-text{color:#92400e;font-size:.95rem;font-weight:700}.price-original{font-size:1.2rem;font-weight:600}.price-original,.price-original-small{color:#94a3b8;text-decoration:line-through}.price-original-small{font-size:.9rem;margin-right:6px}.price-arrow{color:#10b981;font-size:1.2rem;font-weight:800}.price-amount.promo{color:#dc2626}.price-saving{background:#d1fae5;border-radius:10px;color:#10b981;font-size:.85rem;font-weight:700;padding:2px 8px}.recap-promo{background:#fffbeb;margin:0 -20px;padding:10px 20px}.recap-promo-value{color:#92400e!important}.stripe-redirect-page{padding:30px 20px;text-align:center}.stripe-icon{font-size:3rem;margin-bottom:16px}.stripe-redirect-page h3{color:#1e293b;font-size:1.3rem;margin-bottom:8px}.stripe-redirect-page p{color:#64748b;margin-bottom:20px}.stripe-pay-button{background:linear-gradient(135deg,#635bff,#7c3aed);border-radius:10px;box-shadow:0 4px 12px #635bff4d;color:#fff;display:block;font-size:1.1rem;font-weight:700;margin:0 auto 16px;max-width:400px;padding:16px 24px;text-align:center;text-decoration:none;transition:all .2s;width:100%}.stripe-pay-button:hover{box-shadow:0 6px 20px #635bff66;transform:translateY(-2px)}.stripe-note{color:#94a3b8!important;font-size:.82rem!important}.stripe-later-button{background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;display:block;font-size:.9rem;font-weight:600;margin:20px auto 0;max-width:400px;padding:12px 20px;transition:background .2s;width:100%}.stripe-later-button:hover{background:#e2e8f0}.admin-price-override{background:#eff6ff;border:2px solid #bfdbfe;border-radius:10px;margin-bottom:20px;padding:16px}.admin-override-header{align-items:center;color:#1e40af;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin-bottom:10px}.admin-badge{background:#1e40af;border-radius:10px;color:#fff;font-size:.75rem;padding:2px 8px}.admin-override-row{align-items:center;display:flex;gap:8px}.admin-price-input{font-size:1.2rem;font-weight:700;max-width:120px;text-align:center}.admin-price-unit{color:#1e293b;font-size:1.2rem;font-weight:700}.admin-reset-price{background:#e2e8f0;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 12px;transition:background .2s}.admin-reset-price:hover{background:#cbd5e1}.admin-warning{background:#fffbeb;border-radius:6px;color:#d97706;font-size:.82rem;font-weight:600;margin-top:10px;padding:8px 12px}.options-section{margin:20px 0}.options-section h4{color:#475569;font-size:.95rem;margin-bottom:10px}.option-card{border:1.5px solid #e2e8f0;border-radius:8px;margin-bottom:8px;transition:all .2s}.option-card.selected{background:#eff6ff;border-color:#3b82f6}.option-check{align-items:center;cursor:pointer;display:flex;gap:10px;padding:12px}.option-checkbox{font-size:1.1rem}.option-icon{font-size:1.2rem}.option-info{display:flex;flex:1 1;flex-direction:column}.option-name{color:#1e293b;font-size:.9rem;font-weight:600}.option-desc{color:#94a3b8;font-size:.75rem}.option-price{color:#059669;font-size:.9rem;font-weight:700;white-space:nowrap}.option-quantity{align-items:center;display:flex;gap:8px;padding:8px 12px 12px 44px}.quantity-input{border:1px solid #d1d5db;border-radius:4px;padding:4px 8px;text-align:center;width:60px}.options-total{color:#059669;font-size:.9rem;font-weight:700;padding:8px 0;text-align:right}.dynamic-pricing-notice{background:#fef3c7;border-radius:8px;color:#92400e;font-size:.85rem;margin-bottom:12px;padding:8px 14px}.slot-remaining{color:#64748b;font-size:.72rem;margin-top:4px}.slot-remaining.few{animation:pulse-urgency 1.5s ease-in-out infinite;color:#d97706;font-weight:700}.slot-remaining.full{color:#dc2626;font-weight:700}@keyframes pulse-urgency{0%,to{opacity:1}50%{opacity:.6}}.loyalty-checking{color:#94a3b8;display:block;font-size:.78rem;font-style:italic;margin-top:4px}.loyalty-banner{animation:fadeIn .3s ease;background:linear-gradient(135deg,#f8fafc,#eff6ff);border:1.5px solid #bfdbfe;border-radius:10px;margin-bottom:16px;padding:14px 16px}.loyalty-banner.free-session{animation:fadeIn .3s ease,celebrateGlow 2s ease-in-out infinite;background:linear-gradient(135deg,#fefce8,#fef9c3);border-color:#fbbf24}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes celebrateGlow{0%,to{box-shadow:0 0 0 0 #fbbf2400}50%{box-shadow:0 0 16px 4px #fbbf2433}}.loyalty-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.loyalty-icon{font-size:1.3rem}.loyalty-level{font-size:.95rem;font-weight:700}.loyalty-count{color:#64748b;font-size:.78rem;margin-left:auto}.loyalty-free{background:#fbbf2426;border-radius:6px;color:#92400e;font-size:.88rem;font-weight:600;padding:8px 12px}.loyalty-progress{color:#475569;font-size:.82rem}.loyalty-progress-bar{background:#e2e8f0;border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.loyalty-progress-fill{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:3px;height:100%;transition:width .5s ease}.dashboard-container{margin:0 auto;max-width:900px}.dashboard-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:24px}.dashboard-title h1{color:#1e293b;font-size:1.5rem;margin:0 0 4px}.dashboard-date{color:#64748b;font-size:.9rem;text-transform:capitalize}.dashboard-actions{display:flex;flex-wrap:wrap;gap:8px}.goto-calendar-btn,.goto-today-btn{background:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.82rem;font-weight:600;padding:8px 14px;transition:all .2s}.goto-calendar-btn:hover,.goto-today-btn:hover{background:#e2e8f0}.logout-btn{background:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;font-size:.82rem;font-weight:600;padding:8px 14px;transition:all .2s}.logout-btn:hover{background:#fecaca}.dashboard-section{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;margin-bottom:20px;padding:20px 24px}.section-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:16px}.section-header h2{color:#1e293b;font-size:1.1rem;margin:0}.section-badge{background:#3b82f6;border-radius:12px;color:#fff;font-size:.82rem;font-weight:700;padding:2px 10px}.section-badge.warning{background:#f59e0b}.empty-section{background:#f8fafc;border-radius:8px;color:#94a3b8;font-size:.9rem;padding:20px;text-align:center}.empty-section.success{background:#f0fdf4;color:#059669}.next-booking-alert{align-items:center;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-left:4px solid #3b82f6;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:10px 16px}.next-label{color:#3b82f6;font-size:.8rem;font-weight:700;text-transform:uppercase}.next-time{color:#1e293b;font-size:1.1rem;font-weight:800}.next-name{color:#1e293b;font-weight:700}.next-formula{background:#fff;border-radius:10px;color:#64748b;font-size:.78rem;padding:2px 8px}.next-players{color:#64748b;font-size:.82rem;font-weight:600}.today-bookings-list{display:flex;flex-direction:column;gap:4px}.today-booking-row{align-items:center;border-radius:6px;cursor:pointer;display:flex;font-size:.88rem;gap:10px;padding:10px 12px;transition:background .15s}.today-booking-row:hover{background:#f8fafc}.today-booking-row.past{opacity:.45}.tb-time{color:#1e293b;font-size:.95rem;font-weight:800;min-width:44px}.tb-icon{font-size:1rem}.tb-name{color:#1e293b;flex:1 1;font-weight:700}.tb-formula{background:#f1f5f9;border-radius:10px;color:#64748b;font-size:.75rem;padding:2px 8px}.tb-players{color:#64748b;font-size:.82rem;font-weight:600}.tb-price{color:#059669;font-weight:700;min-width:48px;text-align:right}.tb-paid{align-items:center;border-radius:50%;display:flex;font-size:.78rem;font-weight:700;height:22px;justify-content:center;width:22px}.tb-paid.paid{background:#d1fae5;color:#059669}.tb-paid.unpaid{background:#fef3c7;color:#d97706}.period-tabs{background:#f1f5f9;border-radius:8px;display:flex;gap:4px;padding:3px}.period-tab{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px;transition:all .2s}.period-tab.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#1e293b}.revenue-cards{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.revenue-card{border-radius:10px;padding:16px;text-align:center}.revenue-card.total{background:linear-gradient(135deg,#1e293b,#334155);color:#fff}.revenue-card.paid{background:#f0fdf4;border:1px solid #d1fae5}.revenue-card.unpaid{background:#fffbeb;border:1px solid #fef3c7}.rc-label{font-size:.78rem;font-weight:600;letter-spacing:.5px;margin-bottom:4px;opacity:.8;text-transform:uppercase}.rc-value{font-size:1.8rem;font-weight:800}.revenue-card.paid .rc-value{color:#059669}.revenue-card.unpaid .rc-value{color:#d97706}.rc-detail{font-size:.78rem;margin-top:4px;opacity:.7}.weekly-chart{align-items:flex-end;display:flex;gap:8px;height:140px;justify-content:space-between;padding:10px 0}.chart-bar-container{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%;justify-content:flex-end}.chart-bar-container.today .chart-bar{background:#3b82f6}.chart-bar-container.today .chart-label{color:#3b82f6;font-weight:700}.chart-value{color:#64748b;font-size:.7rem;font-weight:600;margin-bottom:4px;min-height:14px}.chart-bar{background:#10b981;border-radius:4px 4px 0 0;max-width:40px;min-height:4px;transition:height .3s;width:100%}.chart-label{color:#94a3b8;font-size:.72rem;margin-top:6px;text-align:center}.unpaid-list{display:flex;flex-direction:column;gap:6px}.unpaid-row{align-items:center;background:#fffbeb;border-left:3px solid #f59e0b;border-radius:6px;display:flex;flex-wrap:wrap;font-size:.88rem;gap:8px;padding:10px 12px}.up-date{color:#64748b;font-size:.78rem;min-width:70px}.up-time{color:#1e293b;font-weight:700;min-width:40px}.up-icon{font-size:1rem}.up-name{color:#1e293b;flex:1 1;font-weight:700}.up-price{color:#d97706;font-size:1rem;font-weight:800}.up-phone{border-radius:4px;font-size:1rem;padding:4px;text-decoration:none;transition:background .2s}.up-phone:hover{background:#fef3c7}.mark-paid-btn{background:#10b981;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.78rem;font-weight:700;padding:5px 12px;transition:all .2s}.mark-paid-btn:hover{background:#059669}.unpaid-total{border-top:1px solid #fef3c7;color:#d97706;font-size:.9rem;margin-top:10px;padding:12px 0 0;text-align:right}.unpaid-total strong{font-size:1.1rem}.fill-rate-display{align-items:center;display:flex;flex-wrap:wrap;gap:30px;justify-content:center}.fill-gauge{height:130px;width:130px}.gauge-svg{height:100%;width:100%}.gauge-text{fill:#1e293b;font-size:1.6rem;font-weight:800}.gauge-subtext{fill:#94a3b8;font-size:.7rem;font-weight:600}.fill-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.fill-stat{align-items:center;background:#f8fafc;border-radius:8px;display:flex;flex-direction:column;min-width:100px;padding:10px 16px}.fs-value{color:#1e293b;font-size:1.5rem;font-weight:800}.fs-label{color:#64748b;font-size:.72rem;font-weight:600;text-align:center}@media (max-width:600px){.dashboard-header{flex-direction:column}.dashboard-actions{width:100%}.dashboard-actions button{flex:1 1}.revenue-cards{grid-template-columns:1fr}.today-booking-row{flex-wrap:wrap}.tb-formula{display:none}.unpaid-row{font-size:.82rem}.fill-rate-display{flex-direction:column}.fill-stats{width:100%}.weekly-chart{height:100px}}.stats-global{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.stat-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:16px 12px;text-align:center}.stat-value{color:#1e293b;font-size:1.4rem;font-weight:800}.stat-label{color:#64748b;font-size:.75rem;letter-spacing:.3px;margin-top:2px;text-transform:uppercase}.week-comparison{background:#f8fafc;border-radius:10px;margin-bottom:20px;padding:16px}.week-comparison h3{color:#475569;font-size:.9rem;margin-bottom:12px}.comparison-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.comparison-item{align-items:center;display:flex;flex-direction:column;gap:2px}.comp-label{color:#94a3b8;font-size:.75rem}.comp-value{color:#1e293b;font-size:1.3rem;font-weight:800}.comp-detail{color:#64748b;font-size:.75rem}.comparison-arrow{font-size:1.5rem}.comparison-badge{border-radius:12px;font-size:.82rem;font-weight:700;padding:4px 10px}.comparison-badge.positive{background:#d1fae5;color:#065f46}.comparison-badge.negative{background:#fee2e2;color:#991b1b}.stats-by-formula{margin-bottom:20px}.stats-by-formula h3{color:#475569;font-size:.9rem;margin-bottom:12px}.formula-stats-list{display:flex;flex-direction:column;gap:8px}.formula-stat-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:30px 2fr 3fr 1fr 1fr;padding:6px 0}.fsr-rank{color:#94a3b8;font-size:.78rem;font-weight:700}.fsr-name{color:#1e293b;font-size:.85rem;font-weight:600}.fsr-bar-container{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden}.fsr-bar{background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:4px;height:100%;transition:width .4s ease}.fsr-revenue{color:#059669;font-size:.85rem;font-weight:700;text-align:right}.fsr-count{color:#64748b;font-size:.75rem;text-align:right}.best-day{background:#fffbeb;border-radius:8px;color:#92400e;font-size:.88rem;padding:12px 16px}@media (max-width:600px){.stats-global{grid-template-columns:repeat(2,1fr)}.formula-stat-row{grid-template-columns:24px 1.5fr 2fr 1fr}.fsr-count{display:none}.comparison-row{gap:8px}}.contacts-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.contacts-search{border:1.5px solid #d1d5db;border-radius:8px;flex:1 1;font-size:.9rem;min-width:200px;padding:10px 14px}.contacts-search:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.contacts-export-buttons{display:flex;gap:8px}.export-btn{border:none;border-radius:8px;cursor:pointer;font-size:.82rem;font-weight:600;padding:10px 16px;transition:all .2s;white-space:nowrap}.export-btn.csv{background:#dbeafe;color:#1e40af}.export-btn.csv:hover{background:#bfdbfe}.export-btn.emails{background:#d1fae5;color:#065f46}.export-btn.emails:hover{background:#a7f3d0}.contacts-list{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.contacts-header-row{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#64748b;font-size:.78rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.contact-row,.contacts-header-row{display:grid;grid-template-columns:2fr 2fr 1.5fr .5fr 1fr .5fr;padding:10px 14px}.contact-row{align-items:center;border-bottom:1px solid #f1f5f9;font-size:.85rem;transition:background .15s}.contact-row:hover{background:#f8fafc}.contact-row:last-child{border-bottom:none}.cr-name{color:#1e293b;font-weight:600}.cr-email{overflow:hidden;text-overflow:ellipsis}.cr-email,.cr-phone{color:#475569;font-size:.82rem}.cr-bookings{color:#3b82f6;font-weight:700;text-align:center}.cr-spent{color:#059669;font-weight:700}.contact-delete-btn{background:none;border:none;cursor:pointer;font-size:.9rem;opacity:.4;transition:opacity .2s}.contact-delete-btn:hover{opacity:1}.contacts-more{background:#f8fafc;color:#94a3b8;font-size:.85rem;padding:12px;text-align:center}@media (max-width:600px){.contacts-toolbar{flex-direction:column}.contact-row,.contacts-header-row{grid-template-columns:2fr 2fr 1fr}.ch-actions,.ch-bookings,.ch-phone,.cr-actions,.cr-bookings,.cr-phone{display:none}}.admin-login-page{align-items:center;display:flex;justify-content:center;min-height:60vh}.admin-login-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000001a;max-width:380px;padding:40px 36px;text-align:center;width:100%}.admin-login-card.shake{animation:shakeAnim .5s ease}@keyframes shakeAnim{0%,to{transform:translateX(0)}20%{transform:translateX(-12px)}40%{transform:translateX(12px)}60%{transform:translateX(-8px)}80%{transform:translateX(8px)}}.admin-login-icon{font-size:2.5rem;margin-bottom:12px}.admin-login-card h2{color:#1e293b;font-size:1.3rem;margin-bottom:6px}.admin-login-card p{color:#64748b;font-size:.9rem;margin-bottom:24px}.admin-login-form{display:flex;flex-direction:column;gap:12px}.admin-password-input{border:2px solid #e2e8f0;border-radius:8px;font-size:1.1rem;letter-spacing:4px;padding:12px 16px;text-align:center;transition:border-color .2s}.admin-password-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.admin-login-error{color:#dc2626;font-size:.85rem;font-weight:600}.admin-login-btn{background:linear-gradient(135deg,#1e293b,#334155);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:12px;transition:all .2s}.admin-login-btn:hover{box-shadow:0 4px 12px #1e293b4d;transform:translateY(-1px)}.payment-result-page{align-items:center;display:flex;justify-content:center;min-height:50vh;padding:20px}.payment-result-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000001a;max-width:480px;padding:40px 36px;text-align:center;width:100%}.payment-result-card.success{border-top:4px solid #10b981}.payment-result-card.cancel{border-top:4px solid #f59e0b}.result-icon{font-size:3rem;margin-bottom:16px}.result-icon.spinning{animation:spin 1.5s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.payment-result-card h2{color:#1e293b;font-size:1.4rem;margin-bottom:8px}.payment-result-card p{color:#64748b;font-size:.95rem;margin-bottom:6px}.result-detail{color:#94a3b8!important;font-size:.88rem!important;margin-top:12px!important}.result-ref{background:#f1f5f9;border-radius:6px;color:#475569!important;display:inline-block;font-family:monospace;font-size:.85rem!important;margin-top:12px!important;padding:6px 14px}.result-actions{display:flex;gap:10px;justify-content:center;margin-top:24px}.result-btn{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .2s}.result-btn.primary{background:#1e293b;color:#fff}.result-btn.primary:hover{background:#334155;transform:translateY(-1px)}.booking-status-container{margin:0 auto;max-width:600px;padding:20px 16px}.bs-loading{color:#64748b;font-size:1rem;padding:60px 20px;text-align:center}.bs-error{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:40px 20px;text-align:center}.bs-error-icon{font-size:2.5rem;margin-bottom:12px}.bs-error h2{color:#dc2626;margin-bottom:8px}.bs-contact{color:#64748b;margin-top:16px}.bs-cancelled-success{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:40px 20px;text-align:center}.bs-icon{font-size:3rem;margin-bottom:12px}.bs-cancelled-success h2{color:#059669;margin-bottom:12px}.bs-refund-notice{background:#eff6ff;border-radius:8px;color:#1e40af;font-size:.88rem;margin-top:16px;padding:12px}.bs-rebook-btn{background:#2b97a8;border-radius:8px;color:#fff;display:inline-block;font-weight:600;margin-top:20px;padding:12px 24px;text-decoration:none;transition:background .2s}.bs-rebook-btn:hover{background:#237e8c}.bs-card{background:#fff;border-radius:12px;box-shadow:0 2px 16px #00000014;padding:24px}.bs-status-badge{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:700;margin-bottom:16px;padding:6px 14px}.bs-status-badge.paid{background:#d1fae5;color:#065f46}.bs-status-badge.pending{background:#fef3c7;color:#92400e}.bs-status-badge.cancelled{background:#fee2e2;color:#991b1b}.bs-title{color:#1e293b;font-size:1.3rem;margin-bottom:20px}.bs-details{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.bs-detail-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:8px 0}.bs-detail-row.promo{background:#fffbeb;border-bottom:none;margin:0 -24px;padding:8px 24px}.bs-label{color:#64748b;font-size:.88rem}.bs-value{color:#1e293b;font-weight:600}.bs-price{color:#059669;font-size:1.2rem}.bs-reminder{background:#f0f9ff;border-radius:8px;color:#1e40af;font-size:.85rem;line-height:1.5;margin-bottom:20px;padding:14px}.bs-cancel-section{border-top:1px solid #e2e8f0;padding-top:20px;text-align:center}.bs-cancel-btn{background:none;border:1.5px solid #fecaca;border-radius:8px;color:#dc2626;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s}.bs-cancel-btn:hover{background:#fef2f2;border-color:#dc2626}.bs-cancel-confirm{background:#fef2f2;border-radius:8px;padding:16px}.bs-cancel-confirm p{color:#991b1b;font-weight:600;margin-bottom:12px}.bs-cancel-actions{display:flex;gap:10px;justify-content:center}.bs-confirm-cancel{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px}.bs-confirm-cancel:disabled{opacity:.6}.bs-keep-btn{background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;font-weight:600;padding:10px 20px}.bs-cancel-disabled{color:#94a3b8;font-size:.85rem;font-style:italic}@media (max-width:600px){.bs-card{padding:16px}.bs-detail-row.promo{margin:0 -16px;padding:8px 16px}}.weekly-planning{background:#fff;border-radius:10px;box-shadow:0 2px 16px #00000014;margin-bottom:20px;padding:20px}.wp-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.wp-header h2{color:#1e293b;font-size:1.1rem;margin:0;text-transform:capitalize}.wp-nav-btn{background:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.82rem;font-weight:600;padding:8px 14px;transition:background .2s}.wp-nav-btn:hover{background:#e2e8f0}.wp-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.wp-table{border-collapse:collapse;min-width:600px;table-layout:fixed;width:100%}.wp-time-header{background:#f8fafc;width:60px}.wp-day-header{background:#f8fafc;border-bottom:2px solid #e2e8f0;cursor:pointer;padding:8px 4px;text-align:center;transition:background .2s}.wp-day-header:hover{background:#e2e8f0}.wp-day-header.today{background:#eff6ff;border-bottom-color:#3b82f6}.wp-day-label{color:#94a3b8;display:block;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.wp-day-num{color:#1e293b;display:block;font-size:1.1rem;font-weight:700}.wp-day-num.today-num{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:inline-flex;height:28px;justify-content:center;margin-top:2px;width:28px}.wp-time-cell{background:#f8fafc;border-right:1px solid #e2e8f0;color:#64748b;font-size:.72rem;font-weight:600;padding:4px 6px;position:relative;text-align:right;vertical-align:middle}.wp-period-label{color:#94a3b8;display:block;font-size:.6rem;letter-spacing:.5px;margin-bottom:2px;text-transform:uppercase}.wp-cell{border:1px solid #f1f5f9;height:36px;padding:2px;position:relative;transition:background .15s;vertical-align:top}.wp-cell.open{background:#f0fdf4;cursor:pointer}.wp-cell.open:hover{background:#dcfce7}.wp-cell.has-bookings{background:#eff6ff}.wp-cell.has-bookings:hover{background:#dbeafe}.wp-cell.blocked,.wp-cell.full{background:#fef2f2}.wp-cell.blocked{text-align:center;vertical-align:middle}.wp-blocked-icon{font-size:.7rem;opacity:.5}.wp-cell.closed{background:#f8fafc}.wp-bookings{display:flex;flex-direction:column;gap:1px}.wp-booking-chip{align-items:center;background:#fffc;border-left:3px solid #3b82f6;border-radius:0 3px 3px 0;display:flex;font-size:.62rem;justify-content:space-between;padding:1px 4px}.wp-chip-name{color:#1e293b;font-weight:600;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-chip-count{color:#3b82f6;font-size:.6rem;font-weight:700}.wp-empty-slot{padding-top:4px;text-align:center}.wp-available{color:#94a3b8;font-size:.7rem}.wp-fill-bar{background:#e2e8f0;bottom:0;height:2px;left:0;position:absolute;right:0}.wp-fill-progress{background:#3b82f6;height:100%;transition:width .3s ease}.wp-cell.full .wp-fill-progress{background:#dc2626}.wp-lunch-break{background:#fffbeb}.wp-lunch-break td{border-bottom:2px dashed #fde68a;border-top:2px dashed #fde68a;color:#d97706;font-size:.72rem;font-weight:600;padding:4px;text-align:center}.wp-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:12px}.wp-legend-item{align-items:center;color:#64748b;display:flex;font-size:.72rem;gap:4px}.wp-legend-dot{border-radius:3px;height:10px;width:10px}.wp-legend-dot.open{background:#d1fae5;border:1px solid #6ee7b7}.wp-legend-dot.has-bookings{background:#bfdbfe;border:1px solid #60a5fa}.wp-legend-dot.full{background:#fecaca;border:1px solid #f87171}.wp-legend-dot.blocked{background:#fecaca;border:1px solid #dc2626}.wp-legend-dot.closed{background:#f1f5f9;border:1px solid #cbd5e1}@media (max-width:600px){.weekly-planning{padding:12px 8px}.wp-header h2{font-size:.9rem}.wp-nav-btn{font-size:.72rem;padding:6px 10px}.wp-day-label{font-size:.6rem}.wp-day-num{font-size:.9rem}.wp-time-cell{font-size:.62rem;padding:2px 4px}.wp-cell{height:28px}.wp-booking-chip{font-size:.55rem}}.giftcard-container{margin:0 auto;max-width:600px;padding:16px}.gc-header{margin-bottom:24px;text-align:center}.gc-header h2{color:#1e293b;margin-bottom:6px}.gc-header p{color:#64748b;font-size:.9rem}.gc-step{margin-bottom:20px}.gc-step h3{color:#1e293b;margin-bottom:16px}.gc-type-choice{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:20px}.gc-type-card{border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:20px;text-align:center;transition:all .2s}.gc-type-card:hover{border-color:#94a3b8}.gc-type-card.selected{background:#f0fdfa;border-color:#2b97a8}.gc-type-icon{font-size:2rem}.gc-type-name{color:#1e293b;font-weight:700}.gc-type-desc{color:#64748b;font-size:.78rem}.gc-formulas{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.gc-formula-card{align-items:center;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:12px;padding:14px;transition:all .2s}.gc-formula-card:hover{border-color:#94a3b8}.gc-formula-card.selected{background:#f0fdfa;border-color:#2b97a8}.gc-formula-icon{font-size:1.5rem}.gc-formula-info{display:flex;flex:1 1;flex-direction:column}.gc-formula-name{color:#1e293b;font-size:.95rem;font-weight:700}.gc-formula-desc{color:#64748b;font-size:.75rem}.gc-formula-price{color:#059669;font-size:1.1rem;font-weight:800}.gc-amount-choice{margin-bottom:16px}.gc-amount-presets{display:flex;gap:10px;margin-bottom:14px}.gc-amount-btn{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;flex:1 1;font-size:1.1rem;font-weight:700;padding:12px;transition:all .2s}.gc-amount-btn:hover{border-color:#94a3b8}.gc-amount-btn.selected{background:#f0fdfa;border-color:#2b97a8;color:#0e3b55}.gc-amount-custom{align-items:center;display:flex;font-size:.9rem;gap:8px}.gc-amount-input{border:1.5px solid #d1d5db;border-radius:6px;font-size:1.1rem;font-weight:700;padding:8px;text-align:center;width:80px}.gc-price-display{align-items:center;background:#f8fafc;border-radius:8px;display:flex;font-size:1rem;justify-content:space-between;margin:16px 0;padding:14px 16px}.gc-total{color:#059669;font-size:1.4rem;font-weight:800}.gc-form-section{margin-bottom:20px}.gc-form-section h4{color:#475569}.gc-form-section h4,.gc-input{font-size:.9rem;margin-bottom:8px}.gc-input{border:1.5px solid #d1d5db;border-radius:8px;box-sizing:border-box;display:block;padding:10px 14px;width:100%}.gc-input:focus{border-color:#2b97a8;outline:none}.gc-textarea{border:1.5px solid #d1d5db;border-radius:8px;box-sizing:border-box;display:block;font-family:inherit;font-size:.9rem;padding:10px 14px;resize:vertical;width:100%}.gc-next-btn,.gc-submit-btn{background:linear-gradient(135deg,#2b97a8,#0e3b55);border:none;border-radius:10px;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:700;padding:14px;transition:opacity .2s;width:100%}.gc-next-btn:disabled,.gc-submit-btn:disabled{cursor:not-allowed;opacity:.5}.gc-next-btn:hover:not(:disabled),.gc-submit-btn:hover:not(:disabled){opacity:.9}.gc-back-btn{background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;font-weight:600;padding:12px 20px}.gc-actions{display:flex;gap:10px;margin-top:16px}.gc-actions .gc-submit-btn{flex:1 1}.gc-success{text-align:center}.gc-success-icon{font-size:3rem;margin-bottom:8px}.gc-card-preview{margin:20px 0}.gc-card-visual{background:linear-gradient(135deg,#0e3b55,#2b97a8);border-radius:16px;box-shadow:0 8px 32px #0e3b554d;color:#fff;overflow:hidden;padding:28px 24px;position:relative}.gc-card-visual:before{background:#ffffff0d;height:200px;right:-50px;top:-50px;width:200px}.gc-card-visual:after,.gc-card-visual:before{border-radius:50%;content:"";position:absolute}.gc-card-visual:after{background:#ffffff08;bottom:-30px;height:150px;left:-30px;width:150px}.gc-card-visual.used{filter:grayscale(.5);opacity:.5}.gc-card-visual.expired{filter:grayscale(.8);opacity:.5}.gc-card-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.gc-card-logo{font-size:1.1rem;font-weight:800}.gc-card-badge{background:#fff3;border-radius:10px;font-size:.7rem;font-weight:700;letter-spacing:1px;padding:3px 10px}.gc-card-amount{font-size:3rem;font-weight:800;margin:8px 0;text-shadow:0 2px 4px #0003}.gc-card-formula{font-size:.9rem;margin-bottom:8px;opacity:.9}.gc-card-code{background:#ffffff26;border-radius:6px;display:inline-block;font-family:monospace;font-size:1.3rem;letter-spacing:3px;margin:10px 0;padding:6px 14px}.gc-card-for,.gc-card-from{font-size:.85rem;margin:4px 0;opacity:.85}.gc-card-message{background:#ffffff1a;border-radius:6px;font-size:.88rem;font-style:italic;margin:12px 0;opacity:.9;padding:8px 12px}.gc-card-valid{font-size:.72rem;margin-top:12px;opacity:.6}.gc-sent-notice{color:#059669;font-weight:600;text-align:center}.gc-payment-notice{color:#64748b;font-size:.88rem;text-align:center}.gc-code-notice{font-size:.9rem;text-align:center}.gc-loading{color:#64748b}.gc-error,.gc-loading{padding:40px;text-align:center}.gc-error{color:#dc2626}.gc-book-btn{background:linear-gradient(135deg,#2b97a8,#0e3b55);border-radius:10px;color:#fff!important;display:block;font-size:1rem;font-weight:700;margin:16px 0;padding:14px;text-align:center;text-decoration:none}.gc-instructions{color:#64748b;font-size:.88rem;text-align:center}@media (max-width:600px){.gc-type-choice{grid-template-columns:1fr}.gc-amount-presets{flex-wrap:wrap}.gc-amount-btn{min-width:70px}.gc-card-amount{font-size:2.2rem}}.referral-container{margin:0 auto;max-width:500px;padding:20px 16px}.ref-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:30px 24px;text-align:center}.ref-badge{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:20px;color:#92400e;display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:1px;margin-bottom:16px;padding:4px 14px}.ref-card h2{color:#1e293b;margin-bottom:8px}.ref-intro{color:#475569;margin-bottom:20px}.ref-offer{align-items:center;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:2px solid #10b981;border-radius:12px;display:flex;gap:14px;margin:20px 0;padding:16px;text-align:left}.ref-offer-icon{font-size:2rem}.ref-offer-detail{display:flex;flex-direction:column}.ref-offer-title{color:#065f46;font-size:1.1rem;font-weight:800}.ref-offer-desc{color:#047857;font-size:.82rem;margin-top:4px}.ref-book-btn{background:linear-gradient(135deg,#2b97a8,#0e3b55);border-radius:10px;color:#fff!important;display:block;font-size:1.05rem;font-weight:700;margin:20px 0;padding:16px;text-decoration:none;transition:opacity .2s}.ref-book-btn:hover{opacity:.9}.ref-info{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:16px}.ref-info p{color:#64748b;font-size:.82rem;margin:4px 0}.ref-loading{color:#64748b}.ref-error,.ref-loading{padding:40px;text-align:center}@media (max-width:600px){.ref-card{padding:20px 16px}.ref-offer{flex-direction:column;text-align:center}}.app-footer{background-color:#2c3e50;color:#fff;margin-top:20px;padding:15px;text-align:center}@media (max-width:600px){.app-footer{font-size:.8rem;padding:10px}}
/*# sourceMappingURL=main.345cc221.css.map*/