:root{--primary:#1e40af;--primary-light:#2563eb;--primary-dark:#1e3a8a;--bg:#f1f5f9;--sidebar-bg:#0f172a;--sidebar-hover:#1e293b;--card-bg:#fff;--border:#e2e8f0;--text:#1e293b;--text-light:#64748b;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--radius:10px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-lg:0 10px 25px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.login-page{background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--card-bg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:16px;padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-logo{background:var(--primary);color:#fff;border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:24px;font-weight:800;display:flex}.login-header h1{color:var(--text);font-size:24px;font-weight:700}.login-header p{color:var(--text-light);margin-top:4px;font-size:14px}.login-form{flex-direction:column;gap:16px;display:flex}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);color:#fff;z-index:100;flex-direction:column;width:260px;transition:transform .3s;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:20px;display:flex}.logo{align-items:center;gap:10px;display:flex}.logo-icon{background:var(--primary-light);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:800;display:flex}.logo-text{font-size:18px;font-weight:700}.sidebar-center-info{color:#ffffffb3;background:#ffffff0d;border-bottom:1px solid #ffffff1a;align-items:center;gap:8px;padding:10px 20px;font-size:13px;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px;display:flex}.nav-item{color:#ffffffb3;border-radius:8px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background:var(--sidebar-hover);color:#fff}.nav-item.active{background:var(--primary-light);color:#fff}.sidebar-footer{border-top:1px solid #ffffff1a;padding:16px}.user-info{align-items:center;gap:10px;margin-bottom:12px;display:flex}.user-avatar{background:var(--primary-light);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.user-details{flex-direction:column;display:flex}.user-name{font-size:13px;font-weight:600}.user-role{color:#ffffff80;font-size:11px}.logout-btn{color:#ffffffb3;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.logout-btn:hover{color:#ef4444;background:#ef444426;border-color:#ef44444d}.close-btn{color:#fff;cursor:pointer;background:0 0;border:none;padding:4px;display:none}.overlay{z-index:99;background:#00000080;display:none;position:fixed;inset:0}.main-content{flex:1;min-height:100vh;margin-left:260px}.top-bar{background:var(--card-bg);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:12px;padding:16px 20px;display:none;position:sticky;top:0}.menu-btn{cursor:pointer;color:var(--text);background:0 0;border:none;padding:4px}.content{padding:20px}.error-boundary{text-align:center;min-height:70vh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.error-boundary h3{color:var(--text-dark);margin:0;font-size:18px}.error-boundary p{max-width:480px;color:var(--text-light);overflow-wrap:anywhere;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0;padding:10px 14px;font-size:13px}.page{flex-direction:column;gap:20px;display:flex}.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-sm{border:1px solid var(--border);border-radius:8px;width:180px;padding:8px 12px;font-size:13px}.section-title{font-size:18px;font-weight:600}.search-box{background:var(--card-bg);border:1px solid var(--border);color:var(--text-light);border-radius:8px;flex:1;align-items:center;gap:8px;max-width:320px;padding:8px 14px;display:flex}.search-box input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:14px}.dashboard{flex-direction:column;gap:20px;display:flex}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.metric-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:20px;display:flex}.metric-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.metric-icon.blue{color:#2563eb;background:#dbeafe}.metric-icon.orange{color:#f59e0b;background:#fef3c7}.metric-icon.red{color:#ef4444;background:#fee2e2}.metric-icon.green{color:#10b981;background:#d1fae5}.metric-info{flex-direction:column;display:flex}.metric-value{font-size:24px;font-weight:700;line-height:1}.metric-label{color:var(--text-light);margin-top:4px;font-size:13px}.dashboard-grid{grid-template-columns:1.5fr 1fr;gap:20px;display:grid}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:16px 20px;display:flex}.card-header h3{font-size:15px;font-weight:600}.card-body{padding:16px 20px}.chart-card{grid-column:1/-1}.table-container{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}.table tr:last-child td{border-bottom:none}.table tr:hover{background:#f8fafc}.disabled-row{opacity:.5}.disabled-row td{text-decoration:line-through}.btn-icon{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;width:34px;height:34px;color:var(--text-light);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.btn-icon:hover{color:var(--text);background:#f1f5f9}.btn-icon.btn-danger:hover{color:#ef4444;background:#fee2e2;border-color:#fecaca}.badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-success{color:#059669;background:#d1fae5}.badge-warning{color:#d97706;background:#fef3c7}.badge-danger{color:#dc2626;background:#fee2e2}.badge-info{color:#2563eb;background:#dbeafe}.badge-primary{color:#4338ca;background:#e0e7ff}.form-group{flex-direction:column;flex:1;gap:6px;display:flex}.form-group label{color:var(--text);font-size:13px;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);color:var(--text);background:var(--card-bg);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px #2563eb1a}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary-light);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--text);border:1px solid var(--border);background:#f1f5f9}.btn-secondary:hover{background:#e2e8f0}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border-radius:var(--radius);width:100%;max-width:560px;max-height:95vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px;display:flex}.modal-header h3{font-size:18px;font-weight:600}.modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.recent-bookings{flex-direction:column;gap:4px;display:flex}.booking-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.booking-row:last-child{border-bottom:none}.booking-info{flex-direction:column;display:flex}.booking-user{font-size:14px;font-weight:600}.booking-detail{color:var(--text-light);font-size:12px}.booking-meta{align-items:center;gap:8px;display:flex}.booking-amount{font-size:14px;font-weight:600}.text-green{color:#059669}.text-red{color:#dc2626}.empty-text{text-align:center;color:var(--text-light);padding:24px;font-size:14px}.field-note{color:var(--text-light);margin-top:2px;font-size:11px}.empty-cell{text-align:center;color:var(--text-light);padding:32px!important}.loading-screen{justify-content:center;align-items:center;height:100vh;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary-light);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn-sm{padding:6px 12px;font-size:12px}.booking-modal{max-width:560px}.slots-grid{flex-wrap:wrap;gap:8px;display:flex}.slot-box{border:2px solid var(--border);background:var(--card-bg);cursor:pointer;color:var(--text);border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:90px;padding:8px 14px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.slot-box span{font-weight:600}.slot-rate{border-radius:4px;padding:1px 8px;font-size:11px;font-weight:600}.slot-rate.day{color:#92400e;background:#fef3c7}.slot-rate.night{color:#f8fafc;background:#1e293b}.slot-box:hover{border-color:var(--primary-light);background:#eff6ff}.slot-selected{border-color:var(--primary-light);color:var(--primary-dark);background:#dbeafe}.slot-hold{color:#a16207;cursor:not-allowed;opacity:.8;background:#fefce8;border-color:#fde047}.slot-hold:hover{background:#fefce8;border-color:#fde047}.slot-blocked{color:#dc2626;cursor:not-allowed;opacity:.7;background:#fef2f2;border-color:#fca5a5}.slot-blocked:hover{background:#fef2f2;border-color:#fca5a5}.slot-box:disabled{pointer-events:none}.slots-placeholder{text-align:center;color:var(--text-light);border:1px dashed var(--border);background:#f8fafc;border-radius:8px;padding:16px;font-size:14px}.total-amount-display{color:#059669;text-align:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:12px 16px;font-size:20px;font-weight:700}.pending-payments-list .table{width:calc(100% + 40px);margin:-16px -20px}.payment-info{border:1px solid var(--border);background:#f8fafc;border-radius:8px;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.payment-info-row{justify-content:space-between;align-items:center;font-size:14px;display:flex}.payment-info-row span:first-child{color:var(--text-light)}.alert{border-radius:8px;padding:12px 16px;font-size:14px}.alert-error{color:#dc2626;background:#fee2e2;border:1px solid #fecaca}.alert-warning{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.cancel-booking-info{border:1px solid var(--border);background:#f8fafc;border-radius:8px;flex-direction:column;gap:6px;padding:12px 16px;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}@media (width<=768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.close-btn,.overlay{display:block}.main-content{margin-left:0}.top-bar{display:flex}.dashboard-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.page-toolbar{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.toolbar-actions{flex-direction:column}.toolbar-actions .btn{justify-content:center;width:100%}.table{font-size:13px}.table th,.table td{padding:10px 12px}}.payment-section{border:1px solid var(--border);border-radius:var(--radius);background:#f8fafc;flex-direction:column;gap:14px;padding:16px;display:flex}.payment-section h4{color:var(--text);margin:0;font-size:14px;font-weight:700}.payment-type-options{gap:10px;display:flex}.payment-option{border:2px solid var(--border);cursor:pointer;background:var(--card-bg);text-align:center;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:14px 12px;transition:all .15s;display:flex}.payment-option:hover{border-color:var(--primary-light)}.payment-option.selected{border-color:var(--primary-light);background:#eff6ff}.payment-option input[type=radio]{display:none}.payment-option-label{color:var(--text);font-size:13px;font-weight:600}.payment-option-amount{color:#059669;font-size:16px;font-weight:700}.payment-method-options{gap:10px;display:flex}.method-option{border:2px solid var(--border);cursor:pointer;background:var(--card-bg);text-align:center;color:var(--text);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:14px 8px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.method-option:hover{border-color:var(--primary-light)}.method-option.selected{border-color:var(--primary-light);color:var(--primary-dark);background:#eff6ff}.method-option input[type=radio]{display:none}.filter-buttons{gap:6px;display:flex}.selected-court-info{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin-bottom:10px;padding:8px 12px;font-size:14px}.booking-readonly-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.booking-readonly-value{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:600}.courts-modal .modal{max-width:420px}.courts-modal-info{color:var(--text-light);margin-bottom:16px;font-size:14px}.courts-list{flex-direction:column;gap:8px;display:flex}.court-option{border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font-family:inherit;font-size:inherit;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .15s;display:flex}.court-option:hover{border-color:var(--primary-light);background:#eff6ff}.court-option-name{color:var(--text-dark);font-size:15px;font-weight:600}.court-option-price{color:var(--text-light);gap:12px;font-size:13px;display:flex}.text-muted{color:var(--text-light);text-align:center;padding:16px}.cell-name{align-items:center;gap:8px;font-weight:500;display:flex}.actions{gap:6px;display:flex}.btn-success{color:#fff;background:#059669}.btn-success:hover{background:#047857}.btn-warning{color:#fff;background:#d97706}.btn-warning:hover{background:#b45309}.pagination{justify-content:center;gap:6px;margin-top:16px;display:flex}.schedule-grid-wrapper{border:1px solid var(--border);background:#fff;border-radius:10px;overflow-x:auto}.schedule-grid{border-collapse:collapse;width:100%;min-width:600px;font-size:13px}.schedule-grid th,.schedule-grid td{border:1px solid var(--border);text-align:center;vertical-align:middle;padding:6px 8px}.schedule-time-header{color:#475569;background:#f1f5f9;width:120px;min-width:120px;font-size:12px;font-weight:600}.schedule-court-header{background:#f8fafc;min-width:100px}.schedule-court-header .court-name{color:var(--text-dark);font-size:13px;font-weight:600;display:block}.schedule-court-header .court-type{color:var(--text-light);margin-top:2px;font-size:11px;display:block}.schedule-time{color:#475569;white-space:nowrap;background:#f8fafc;font-size:12px;font-weight:600}.schedule-cell{cursor:default;transition:background .15s;padding:4px!important}.schedule-cell-content{justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.schedule-cell-label{white-space:nowrap;font-size:11px}.schedule-cell-reason{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:100px;margin-top:2px;font-size:10px;display:block;overflow:hidden}.schedule-cell-action{color:#ef4444;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.schedule-available{cursor:pointer;color:#059669;background:#f0fdf4}.schedule-available:hover{background:#dcfce7}.schedule-booked{color:#2563eb;background:#dbeafe}.schedule-blocked{color:#dc2626;background:#fef2f2}.schedule-outside{color:#94a3b8;background:#f1f5f9;font-size:11px}.cs-page{flex-direction:column;gap:16px;display:flex}.cs-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cs-header h2{color:var(--text-dark);margin:0;font-size:20px;font-weight:700}.cs-legend{flex-wrap:wrap;gap:12px;display:flex}.cs-legend-item{align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.cs-legend-swatch{border:1px solid;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.cs-toolbar{border:1px solid var(--border);background:#fff;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.cs-toolbar-left{align-items:center;gap:8px;display:flex}.cs-toolbar-right{align-items:center;gap:6px;display:flex}.cs-select{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:160px;padding:7px 12px;font-family:inherit;font-size:13px}.cs-nav-btn{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-dark);background:#fff;border-radius:8px;justify-content:center;align-items:center;transition:background .15s;display:flex}.cs-nav-btn:hover{background:var(--bg-hover)}.cs-date-display{align-items:center;gap:6px;display:flex}.cs-date-input{border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-family:inherit;font-size:13px}.cs-today-btn{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s}.cs-today-btn:hover{background:var(--primary);color:#fff}.cs-body{flex:1;gap:16px;min-height:0;display:flex}.cs-sidebar{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;width:280px;min-width:280px;max-height:calc(100vh - 260px);padding:16px;display:flex;overflow-y:auto}.cs-sidebar-title{color:var(--text-dark);margin:0 0 12px;font-size:14px;font-weight:700}.cs-sidebar-empty{color:var(--text-light);text-align:center;padding:24px 0;font-size:13px}.cs-court-list{flex-direction:column;gap:6px;display:flex}.cs-court-card{border:1px solid var(--border);cursor:pointer;text-align:left;background:#fff;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:inherit;transition:all .15s;display:flex}.cs-court-card:hover{border-color:var(--primary-light);background:#f8fafc}.cs-court-card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:#eff6ff}.cs-court-card.maintenance{opacity:.6;background:#f1f5f9}.cs-court-card-info{flex-direction:column;flex:1;display:flex}.cs-court-card-name{color:var(--text-dark);font-size:13px;font-weight:600}.cs-court-card-type{color:var(--text-light);font-size:11px}.cs-court-card-stats{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.cs-stat-avail{color:#059669;font-size:13px;font-weight:700}.cs-stat-maint{color:#64748b;background:#f1f5f9;border-radius:4px;padding:1px 6px;font-size:9px}.cs-calendar{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;flex:1;min-height:400px;padding:20px;display:flex}.cs-calendar-placeholder{color:var(--text-light);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.cs-calendar-placeholder p{margin:0;font-size:14px}.cs-calendar-header{margin-bottom:20px}.cs-calendar-court-info{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cs-calendar-court-name{color:var(--text-dark);font-size:18px;font-weight:700}.cs-calendar-court-type{color:var(--primary);background:#eff6ff;border-radius:6px;padding:3px 10px;font-size:13px;font-weight:600}.cs-calendar-court-hours{color:var(--text-light);margin-left:auto;font-size:13px}.cs-calendar-grid{flex-direction:column;flex:1;display:flex}.cs-calendar-row{align-items:stretch;display:flex}.cs-calendar-header-row{flex:1}.cs-calendar-time-label{color:#64748b;border-bottom:1px solid var(--border);background:#f8fafc;justify-content:center;align-items:center;width:60px;min-width:60px;padding:8px 4px;font-size:11px;font-weight:700;display:flex}.cs-calendar-slots-row{flex:1;gap:6px;padding:4px 0;display:flex}.cs-slot{text-align:center;border:1px solid;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 4px;font-family:inherit;transition:all .15s;display:flex}.cs-slot.available:hover{transform:translateY(-2px);box-shadow:0 4px 12px #05966933}.cs-slot-time{font-size:13px;font-weight:700}.cs-slot-status{font-size:10px;font-weight:500}.cs-slot-reason{opacity:.7;text-overflow:ellipsis;white-space:nowrap;max-width:60px;font-size:9px;overflow:hidden}.cs-action-modal{max-width:480px}.cs-action-options{flex-direction:column;gap:8px;margin-top:4px;display:flex}.cs-action-option{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;font-family:inherit;transition:all .15s;display:flex}.cs-action-option:hover{border-color:var(--primary-light);background:#f8fafc}.cs-action-option.selected{border-color:var(--primary);background:#eff6ff}.cs-action-option input[type=radio]{display:none}.cs-action-option span{color:var(--text-dark);font-size:14px;font-weight:600}.cs-action-option small{color:var(--text-light);margin-top:2px;font-size:11px;font-weight:400;display:block}.type-filters{flex-wrap:wrap;gap:6px;display:flex}.type-filter-btn{border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:20px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.type-filter-btn:hover{border-color:var(--primary-light);color:var(--primary-light);background:#eff6ff}.type-filter-btn.active{background:var(--primary-light);color:#fff;border-color:var(--primary-light)}.center-search-wrapper{position:relative}.search-clear{cursor:pointer;color:var(--text-light);background:0 0;border:none;align-items:center;padding:2px;display:flex}.search-clear:hover{color:var(--text)}.center-dropdown{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:300;border-radius:8px;max-height:200px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.center-dropdown-item{cursor:pointer;padding:10px 14px;font-size:14px;transition:background .1s}.center-dropdown-item:hover{background:#f1f5f9}.center-dropdown-item.active{color:var(--primary-light);background:#eff6ff;font-weight:600}.center-dropdown-empty{color:var(--text-light);text-align:center;padding:12px 14px;font-size:13px}.services-section{border:1px solid var(--border);border-radius:var(--radius);background:#f8fafc;padding:16px}.services-section h4{margin:0 0 12px;font-size:14px;font-weight:700}.services-grid{flex-direction:column;gap:8px;display:flex}.service-item{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.service-item.service-selected{border-color:var(--primary-light);background:#eff6ff}.service-info{flex-direction:column;gap:2px;display:flex}.service-name{font-size:14px;font-weight:600}.service-price{color:var(--text-light);font-size:12px}.service-qty{align-items:center;gap:6px;display:flex}.service-qty span{text-align:center;min-width:20px;font-size:14px;font-weight:600}.service-subtotal{color:#059669;text-align:right;min-width:60px;font-size:14px;font-weight:700}.services-total{border-top:1px solid var(--border);text-align:right;margin-top:12px;padding-top:10px;font-size:14px}.text-danger{color:#dc2626}.summary-tags{flex-wrap:wrap;gap:8px;display:flex}.closure-summary{border:1px solid var(--border);background:#f8fafc;border-radius:8px;flex-direction:column;gap:6px;margin-bottom:12px;padding:12px 16px;display:flex}.summary-line{justify-content:space-between;font-size:14px;display:flex}.summary-line.total{border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-size:15px;font-weight:700}.summary-line .income{color:#059669}.summary-line .expense{color:#dc2626}.diff-badge{border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.diff-badge.ok{color:#059669;background:#f0fdf4;border:1px solid #bbf7d0}.diff-badge.ko{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.card-disabled{opacity:.5;pointer-events:none}.closure-results{flex-direction:column;gap:8px;max-width:400px;margin:16px auto;display:flex}.result-item{border:1px solid var(--border);background:#f8fafc;border-radius:8px;justify-content:space-between;padding:10px 16px;font-size:14px;font-weight:500;display:flex}.text-success{color:#059669}.closure-final-summary{border:1px solid var(--border);background:#f8fafc;border-radius:8px;margin-top:16px;padding:16px}.btn-block{justify-content:center;width:100%}@media (width<=768px){.card-disabled{opacity:.4}}.summary-tag{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px;align-items:center;gap:4px;padding:6px 14px;font-size:13px;display:inline-flex}.ag-page{flex-direction:column;gap:12px;display:flex}.ag-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ag-header-left{align-items:center;gap:12px;display:flex}.ag-header-icon{background:var(--primary-light);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 2px 6px #2563eb40}.ag-header h2{letter-spacing:-.3px;color:var(--text-dark);margin:0;font-size:22px;font-weight:700}.ag-header-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ag-subtitle{color:var(--text-light);margin:3px 0 0;font-size:13px}.ag-manual-link{color:var(--primary-light);background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.ag-manual-link:hover{background:var(--primary-light);color:#fff;border-color:var(--primary-light)}.ag-manual-back{color:var(--text-light);background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.ag-manual-back:hover{color:var(--primary-light);border-color:var(--primary-light)}.manual-video{aspect-ratio:16/9;background:#0f172a;border:1px solid #e2e8f0;border-radius:12px;width:100%;max-width:900px;overflow:hidden;box-shadow:0 4px 14px #0f172a14}.manual-video iframe{border:none;width:100%;height:100%;display:block}.manual-video-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;padding:24px;display:flex}.manual-video-placeholder p{color:#e2e8f0;margin:0;font-size:16px;font-weight:600}.manual-video-placeholder span{color:#94a3b8;font-size:13px}.manual-steps{background:#fff;border:1px solid #e2e8f0;border-radius:12px;max-width:900px;padding:20px 24px}.manual-steps h3{color:var(--text-dark);margin:0 0 12px;font-size:15px;font-weight:700}.manual-steps ol{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.manual-steps li{color:#334155;font-size:14px;line-height:1.5}.manual-steps strong{color:var(--primary-dark)}.ag-toolbar-right{align-items:center;gap:8px;display:flex}.ag-picker{flex-direction:column;gap:14px;margin:12px 0 14px;display:flex}.ag-picker-group{flex-direction:column;gap:8px;display:flex}.ag-picker-subtitle{color:var(--text-dark);font-size:14px;font-weight:700}.ag-picker-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ag-chip{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.ag-chip:hover{border-color:var(--primary-light);color:var(--primary-light)}.ag-chip.active{background:var(--primary-light);border-color:var(--primary-light);color:#fff}.ag-chip-count{color:#475569;background:#e2e8f0;border-radius:999px;padding:0 8px;font-size:11px;font-weight:700}.ag-chip.active .ag-chip-count{color:#fff;background:#ffffff40}.ag-picker-empty{color:var(--text-light);font-size:13px}.ag-apply-picker{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 14px;padding:12px 14px;display:flex}.ag-sel-step-title{color:var(--text-dark,#1e293b);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.ag-sel-type-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.ag-sel-type-wrap{position:relative}.ag-sel-type-wrap:after{content:"";width:100%;height:14px;position:absolute;top:calc(100% - 2px);left:0}.ag-sel-type-card{cursor:pointer;text-align:left;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;width:100%;padding:18px 16px;font-family:inherit;transition:all .15s;display:flex;position:relative}.ag-sel-type-card:hover{border-color:var(--tc);box-shadow:var(--shadow);transform:translateY(-2px)}.ag-sel-type-card.selected{border-color:var(--tc);background:var(--ts);box-shadow:0 0 0 2px var(--ts)}.ag-sel-type-icon{background:var(--ts);width:46px;height:46px;color:var(--tc);border-radius:12px;justify-content:center;align-items:center;display:flex}.ag-sel-type-card.selected .ag-sel-type-icon{background:#fff}.ag-sel-type-name{color:#1e293b;font-size:15px;font-weight:700}.ag-sel-type-count{color:#64748b;font-size:12px;font-weight:600}.ag-sel-type-check{color:var(--tc);position:absolute;top:10px;right:10px}.ag-sel-tooltip{z-index:50;width:max-content;min-width:100%;max-width:260px;box-shadow:var(--shadow-lg);background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:2px;padding:6px;animation:.12s ease-out ag-sel-fade;display:flex;position:absolute;top:calc(100% + 8px);left:0}.ag-sel-tooltip:before{content:"";background:#fff;border-top:1px solid #e2e8f0;border-left:1px solid #e2e8f0;width:10px;height:10px;position:absolute;top:-6px;left:24px;transform:rotate(45deg)}@keyframes ag-sel-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ag-sel-tooltip-title{color:#64748b;text-transform:uppercase;letter-spacing:.4px;padding:4px 10px 6px;font-size:12px;font-weight:700}.ag-sel-tooltip-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;transition:all .12s;display:flex}.ag-sel-tooltip-item:hover{background:#f8fafc;border-color:#e2e8f0}.ag-sel-tooltip-item.selected{background:#eff6ff;border-color:#93c5fd}.ag-sel-tooltip-name{color:#1e293b;flex:1;font-size:13px;font-weight:600}.ag-sel-tooltip-check{color:#16a34a;flex:none}.ag-sel-tooltip-empty{color:#94a3b8;padding:10px;font-size:12px}.ag-sel-item-dot{border-radius:999px;flex:none;width:10px;height:10px}.ag-sel-selected{color:#475569;align-items:center;gap:6px;font-size:13px;display:flex}.ag-sel-selected strong{color:#16a34a}.ag-sel-empty{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 16px;font-size:13px;display:flex}.ag-apply-label{color:var(--text);font-size:13px;font-weight:600}.ag-apply-picker .cs-select{flex:0 auto;min-width:220px}.ag-tabs-row{border-bottom:2px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.ag-tab-title{color:var(--primary);border-bottom:2px solid var(--primary);align-items:center;gap:8px;margin-bottom:-2px;padding:10px 14px;font-size:14px;font-weight:700;display:inline-flex}.ag-tabs{flex-wrap:wrap;gap:2px;display:flex}.ag-tab{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:8px 8px 0 0;align-items:center;gap:7px;margin-bottom:-2px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex}.ag-tab+.ag-tab{border-left:1px solid #e2e8f0}.ag-tab:hover{color:var(--text);background:#f1f5f9}.ag-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.ag-empty{color:var(--text-light);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 16px;display:flex}.ag-badge{border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.ag-badge-blue{color:#2563eb;background:#eff6ff}.ag-badge-green{color:#059669;background:#f0fdf4}.ag-badge-gray{color:#64748b;background:#f1f5f9}.ag-horario-info{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;font-weight:600;display:flex}.ag-bloques-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.ag-bloque{cursor:pointer;border:1px solid;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;font-family:inherit;display:flex}.ag-bloque.libre{color:#059669;background:#f0fdf4;border-color:#86efac}.ag-bloque.libre:hover{background:#dcfce7;border-color:#4ade80}.ag-bloque.ocupado{color:#94a3b8;cursor:not-allowed;background:#f8fafc;border-color:#e2e8f0}.ag-bloque-hora{font-size:14px;font-weight:700}.ag-bloque-estado{font-size:12px}.ag-exc-avisos{flex-direction:column;gap:6px;display:flex}.ag-exc-aviso{border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.ag-reservas-dia{flex-direction:column;gap:8px;display:flex}.ag-reservas-dia h4{margin:0 0 4px}.ag-reserva-dia{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.ag-reserva-cliente{color:var(--text-light);margin-left:10px;font-size:13px}.ag-reserva-tel{color:var(--text-light);margin-left:8px;font-size:12px}.ag-bookings-dia{flex-direction:column;gap:10px;display:flex}.ag-bookings-dia .ag-section-header h4{margin:0}.ag-bookings-list{flex-direction:column;gap:8px;display:flex}.ag-booking-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.ag-booking-item strong{font-size:14px}.ag-booking-info{flex-direction:column;gap:2px;display:flex}.ag-booking-info>span{color:var(--text-light);font-size:13px}.ag-booking-muted{color:var(--text-light);font-size:12px}.ag-booking-side{flex-shrink:0;align-items:center;gap:8px;display:flex}.ag-booking-origin{letter-spacing:.5px;color:#64748b;background:#f1f5f9;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.ag-empty{color:var(--text-light);border:1px dashed #cbd5e1;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:13px;display:flex}.ag-empty p{margin:0}.ag-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ag-section-header h4{margin:0}.ag-table{border-collapse:collapse;background:#fff;border:1px solid #e2e8f0;border-radius:10px;width:100%;overflow:hidden}.ag-table th,.ag-table td{text-align:left;border-bottom:1px solid #f1f5f9;padding:10px 14px;font-size:13px}.ag-table th{color:var(--text-light);background:#f8fafc;font-weight:600}.ag-table tr:last-child td{border-bottom:none}.ag-td-dia{font-weight:600}.ag-time-input{border:1px solid #e2e8f0;border-radius:6px;padding:6px 8px;font-size:13px}.ag-dur-select{min-width:90px}.ag-form-row{gap:12px;display:flex}.ag-form-row .form-group{flex:1}.ag-modal{max-width:460px}@media (width<=768px){.ag-bloques-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}
