:root{--emerald-50:#ecfdf5;--emerald-100:#d1fae5;--emerald-200:#a7f3d0;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--emerald-700:#047857;--emerald-800:#065f46;--emerald-900:#064e3b;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--amber-800:#92400e;--amber-900:#78350f}.bg-emerald-50{background-color:#ecfdf5;background-color:var(--emerald-50)}.bg-emerald-100{background-color:#d1fae5;background-color:var(--emerald-100)}.bg-emerald-200{background-color:#a7f3d0;background-color:var(--emerald-200)}.bg-emerald-300{background-color:#6ee7b7;background-color:var(--emerald-300)}.bg-emerald-400{background-color:#34d399;background-color:var(--emerald-400)}.bg-emerald-500{background-color:#10b981;background-color:var(--emerald-500)}.bg-emerald-600{background-color:#059669;background-color:var(--emerald-600)}.bg-emerald-700{background-color:#047857;background-color:var(--emerald-700)}.bg-emerald-800{background-color:#065f46;background-color:var(--emerald-800)}.bg-emerald-900{background-color:#064e3b;background-color:var(--emerald-900)}.text-emerald-50{color:#ecfdf5;color:var(--emerald-50)}.text-emerald-100{color:#d1fae5;color:var(--emerald-100)}.text-emerald-200{color:#a7f3d0;color:var(--emerald-200)}.text-emerald-300{color:#6ee7b7;color:var(--emerald-300)}.text-emerald-400{color:#34d399;color:var(--emerald-400)}.text-emerald-500{color:#10b981;color:var(--emerald-500)}.text-emerald-600{color:#059669;color:var(--emerald-600)}.text-emerald-700{color:#047857;color:var(--emerald-700)}.text-emerald-800{color:#065f46;color:var(--emerald-800)}.text-emerald-900{color:#064e3b;color:var(--emerald-900)}.bg-amber-50{background-color:#fffbeb;background-color:var(--amber-50)}.bg-amber-100{background-color:#fef3c7;background-color:var(--amber-100)}.bg-amber-200{background-color:#fde68a;background-color:var(--amber-200)}.bg-amber-300{background-color:#fcd34d;background-color:var(--amber-300)}.bg-amber-400{background-color:#fbbf24;background-color:var(--amber-400)}.bg-amber-500{background-color:#f59e0b;background-color:var(--amber-500)}.bg-amber-600{background-color:#d97706;background-color:var(--amber-600)}.bg-amber-700{background-color:#b45309;background-color:var(--amber-700)}.bg-amber-800{background-color:#92400e;background-color:var(--amber-800)}.bg-amber-900{background-color:#78350f;background-color:var(--amber-900)}.text-amber-50{color:#fffbeb;color:var(--amber-50)}.text-amber-100{color:#fef3c7;color:var(--amber-100)}.text-amber-200{color:#fde68a;color:var(--amber-200)}.text-amber-300{color:#fcd34d;color:var(--amber-300)}.text-amber-400{color:#fbbf24;color:var(--amber-400)}.text-amber-500{color:#f59e0b;color:var(--amber-500)}.text-amber-600{color:#d97706;color:var(--amber-600)}.text-amber-700{color:#b45309;color:var(--amber-700)}.text-amber-800{color:#92400e;color:var(--amber-800)}.text-amber-900{color:#78350f;color:var(--amber-900)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-container{font-family:Arial,sans-serif;margin:auto;max-width:600px;text-align:center}.classes-list,.profile-card{background:#f8f8f8;border-radius:8px;box-shadow:2px 2px 10px #0000001a;margin:10px 0;padding:20px}.classes-list h2,.profile-card h2{color:#007bff}ul{list-style:none;padding:0}li{background:#fff;border-radius:5px;box-shadow:1px 1px 5px #0000001a;margin:10px 0;padding:10px}button.py-2.border.rounded-lg.text-sm.bg-gray-100.text-gray-700.hover\:bg-emerald-600.hover\:text-white.transition-colors:hover{background-color:var(--bg-emerald-500);color:var(--text-light)}.room-layout-container{background:linear-gradient(135deg,#f5f7fa,#e8ecf1);display:flex;flex-direction:column;height:100%;min-height:0;overflow:auto;padding:20px;width:100%}.room-layout-header{flex-shrink:0;margin-bottom:16px;text-align:center}.room-layout-header h3{color:#333;font-size:20px;font-weight:600;margin:0 0 12px}.room-stats{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.stat{background:#fff;border-radius:8px;box-shadow:0 2px 4px #00000014;font-size:14px;font-weight:600;padding:8px 16px;transition:transform .2s ease}.stat:hover{box-shadow:0 3px 6px #0000001f;transform:translateY(-1px)}.stat-label{color:#666;font-weight:500;margin-right:6px}.stat.available{border-left:4px solid #4caf50}.stat.occupied{border-left:4px solid #999}.room-layout-legend{background:#fff;border-radius:10px;box-shadow:0 2px 4px #0000000f;display:flex;flex-shrink:0;gap:24px;justify-content:center;margin-bottom:16px;padding:14px}.preference-mode-notice{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;flex-shrink:0;margin-bottom:16px;padding:12px 16px}.preference-mode-notice p{color:#1565c0;font-size:13px;line-height:1.5;margin:0}.legend-item{align-items:center;color:#444;display:flex;font-size:14px;font-weight:500;gap:10px}.legend-box{border:2px solid #ddd;border-radius:50%;box-shadow:0 2px 4px #0000001a;height:28px;width:28px}.legend-box.available{background:linear-gradient(135deg,#66bb6a,#4caf50);border-color:#45a049}.legend-box.occupied{background:linear-gradient(135deg,#d4d4d4,#b8b8b8);border-color:#999;opacity:.7}.legend-box.currently-occupied{background:linear-gradient(135deg,#ffb74d,#ffa726);border-color:#fb8c00}.legend-box.selected{background:linear-gradient(135deg,#42a5f5,#2196f3);border-color:#1976d2}.room-layout-content{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:20px;min-height:0;overflow:auto}.room-layout-grid{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #00000014,0 1px 3px #0000000f;flex-shrink:0;margin:0 auto;position:relative;z-index:1}.spot{align-items:center;border-radius:50%;box-shadow:0 2px 4px #00000026,0 1px 2px #0000001a;cursor:pointer;display:flex;font-size:13px;font-weight:700;justify-content:center;position:absolute;transition:all .25s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.spot-number{z-index:1}.spot-priority{align-items:center;background:#ff5722;border:2px solid #fff;border-radius:50%;color:#fff;display:flex;font-size:10px;font-weight:700;height:18px;justify-content:center;position:absolute;right:-4px;top:-4px;width:18px;z-index:2}.spot-available{background:linear-gradient(135deg,#66bb6a,#4caf50);border:2px solid #45a049;color:#fff}.spot-occupied{background:linear-gradient(135deg,#d4d4d4,#b8b8b8);border:2px solid #999;color:#666;cursor:not-allowed;opacity:.7}.spot-currently-occupied{background:linear-gradient(135deg,#ffb74d,#ffa726);border:2px solid #fb8c00;color:#fff;cursor:pointer}.spot-currently-occupied.spot-selectable:hover{background:linear-gradient(135deg,#ffa726,#ff9800);border-color:#f57c00;transform:scale(1.2)}.spot-selected{background:linear-gradient(135deg,#42a5f5,#2196f3);border:3px solid #1976d2;box-shadow:0 4px 12px #2196f380,0 0 0 3px #2196f333;color:#fff;transform:scale(1.12)}.spot-selectable{cursor:pointer}.spot-selectable:hover:not(.spot-occupied){box-shadow:0 4px 16px #00000040,0 2px 8px #00000026;transform:scale(1.2);z-index:10}.spot-available.spot-selectable:hover{background:linear-gradient(135deg,#5cb860,#43a047);border-color:#388e3c}.spot-selected.spot-selectable:hover{background:linear-gradient(135deg,#1e88e5,#1565c0);border-color:#0d47a1;transform:scale(1.15)}.selected-spots-panel{background:#fff;border-radius:12px;box-shadow:0 4px 8px #0000001a;max-width:600px;padding:20px;position:relative;width:100%;z-index:2}.selected-spots-panel h4{color:#333;font-size:18px;margin:0 0 8px}.panel-description{color:#666;font-size:13px;margin:0 0 12px}.selected-spots-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.selected-spot-item{align-items:center;background:#f5f5f5;border:2px solid #0000;border-radius:6px;cursor:grab;display:flex;gap:10px;padding:10px 12px;transition:all .2s ease}.selected-spot-item:hover{background:#e3f2fd;border-color:#2196f3}.selected-spot-item:active{cursor:grabbing;opacity:.7}.priority-badge{align-items:center;background:#2196f3;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:28px;justify-content:center;width:28px}.spot-info{color:#333;flex:1 1;font-weight:500}.remove-spot-btn{align-items:center;background:#f44336;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:24px;justify-content:center;line-height:1;transition:background .2s ease;width:24px}.remove-spot-btn:hover{background:#d32f2f}.panel-footer{border-top:1px solid #e0e0e0;margin-top:16px;padding-top:12px}.panel-footer small{color:#666;display:block;line-height:1.4}.room-layout-error,.room-layout-loading{align-items:center;background:#fff;border-radius:8px;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:40px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#2196f3;height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.room-layout-error p{color:#f44336;font-size:16px;margin:0 0 16px}.retry-button{background:#2196f3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 20px;transition:background .2s ease}.retry-button:hover{background:#1976d2}@media (max-width:968px){.room-layout-container{padding:16px}.room-layout-content{align-items:center;flex-direction:column;gap:16px}.room-layout-grid{height:90vh;margin:0 auto;max-width:100%;padding:20px;width:75%}.selected-spots-panel{margin-top:0;max-width:100%;width:100%}}@media (max-width:640px){.room-layout-container{-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#f5f7fa,#e8ecf1);overflow-y:auto;padding:8px}.room-layout-header{margin-bottom:8px}.room-layout-header h3{font-size:16px;margin-bottom:6px}.room-stats{flex-wrap:wrap;gap:4px;justify-content:center}.stat{font-size:11px;padding:4px 10px}.stat:hover{transform:none}.room-layout-legend{flex-wrap:wrap;font-size:12px;gap:12px;margin-bottom:8px;padding:8px}.legend-item{font-size:11px;gap:6px}.legend-box{height:20px;width:20px}.room-layout-content{flex:1 1;gap:12px;overflow:visible}.room-layout-grid{height:90vh;margin:0 auto;width:75%}.spot{font-size:12px;font-weight:600;min-height:32px;min-width:32px}.spot-number{font-size:11px}.spot-priority{border-width:1.5px;font-size:10px;height:18px;right:-4px;top:-4px;width:18px}.spot-selectable:hover:not(.spot-occupied){transform:scale(1.1)}.spot-selected{transform:scale(1.15)}.selected-spots-panel{margin-top:0;max-width:100%;padding:12px}.selected-spots-panel h4{font-size:15px;margin-bottom:6px}.panel-description{font-size:11px;margin-bottom:8px}.selected-spot-item{gap:8px;padding:10px}.priority-badge{font-size:13px;height:28px;width:28px}.spot-info{font-size:13px}.remove-spot-btn{font-size:20px;height:28px;width:28px}.panel-footer small{font-size:10px;line-height:1.3}}.preferences-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:0;z-index:1000}.preferences-modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.preferences-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px 28px}.preferences-modal-header h2{color:#111827;font-size:24px;font-weight:600;margin:0}.preferences-modal-close{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:28px;height:36px;justify-content:center;line-height:1;transition:all .2s ease;width:36px}.preferences-modal-close:hover{background:#e5e7eb;color:#374151}.preferences-modal-body{display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:0}.preferences-modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 28px}.preferences-modal-button-primary,.preferences-modal-button-secondary{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s ease}.preferences-modal-button-primary{background:#2196f3;color:#fff}.preferences-modal-button-primary:hover{background:#1976d2;box-shadow:0 2px 8px #2196f34d}.preferences-modal-button-secondary{background:#f3f4f6;color:#374151}.preferences-modal-button-secondary:hover{background:#e5e7eb}@media (max-width:768px){.preferences-modal-overlay{padding:0}.preferences-modal-content{border-radius:0;height:100vh;max-height:100vh;max-width:100%}.preferences-modal-header{flex-shrink:0;padding:12px 16px}.preferences-modal-header h2{font-size:18px}.preferences-modal-close{font-size:24px;height:32px;width:32px}.preferences-modal-body{flex:1 1;overflow:hidden;padding:0}.preferences-modal-footer{flex-direction:row;flex-shrink:0;gap:8px;padding:12px 16px}.preferences-modal-button-primary,.preferences-modal-button-secondary{flex:1 1;padding:12px 16px}}:root{--primary-color:#4f46e5;--primary-dark:#4338ca;--light-bg:#f3f4f6;--dark-bg:#121826;--card-bg:#fff;--text-primary:#1f2937;--text-secondary:#6b7280;--text-light:#f9fafb;--success-bg:#ecfdf5;--success-text:#065f46;--error-bg:#fef2f2;--error-text:#b91c1c}body{background-color:#f3f4f6;background-color:var(--light-bg);color:#1f2937;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;padding:0}.nav-container{position:-webkit-sticky;position:sticky;position:fixed;top:0;width:100%;z-index:100}.top-nav{background-color:#121826;background-color:var(--dark-bg);box-shadow:0 2px 10px #0000001a;color:#f9fafb;color:var(--text-light);padding:.75rem 1rem}.nav-content{justify-content:space-between;margin:0 auto;max-width:1200px}.brand-link,.nav-brand,.nav-content{align-items:center;display:flex}.brand-link{color:#f9fafb;color:var(--text-light);text-decoration:none}.brand-icon-wrapper{margin-right:.75rem}.brand-icon,.brand-icon-wrapper{align-items:center;display:flex;justify-content:center}.brand-icon{background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;box-shadow:0 2px 8px #10b9814d;font-size:.875rem;font-weight:700;height:36px;width:36px}.brand-text{font-size:1.25rem;font-weight:700;letter-spacing:-.025em}.desktop-links{display:none;gap:.25rem}.nav-link{align-items:center;border-radius:8px;color:#f9fafb;color:var(--text-light);display:flex;font-size:.9rem;font-weight:500;gap:.5rem;opacity:.8;padding:.5rem 1rem;text-decoration:none;transition:all .2s}.nav-icon{height:18px;width:18px}.nav-link:hover{background-color:#ffffff26;opacity:1}.nav-link.active{background-color:#10b98133;color:#10b981;opacity:1}.nav-link.logout{color:#fca5a5}.nav-link.logout:hover{background-color:#f8717126}.menu-button{align-items:center;background:none;border:none;border-radius:6px;color:#f9fafb;color:var(--text-light);cursor:pointer;display:flex;justify-content:center;padding:.5rem}.menu-button:hover{background-color:#ffffff1a}.mobile-menu{background-color:#121826;background-color:var(--dark-bg);display:flex;flex-direction:column;padding:.5rem 1rem 1rem}.mobile-link{border-radius:6px;color:#f9fafb;color:var(--text-light);margin-bottom:.25rem;opacity:.8;padding:.75rem 1rem;text-decoration:none;transition:all .2s}.mobile-link.active,.mobile-link:hover{background-color:#ffffff1a;opacity:1}.mobile-link.logout{color:#f87171}.user-info-panel{align-items:center;background-color:#fff;background-color:var(--card-bg);box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:1rem}.user-name{color:#1f2937;color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.location-name{font-size:.875rem;margin:.25rem 0 0}.location-name,.location-toggle{color:#6b7280;color:var(--text-secondary)}.location-toggle{align-items:center;background:none;border:none;border-radius:6px;cursor:pointer;display:flex;justify-content:center;padding:.5rem}.location-toggle:hover{background-color:#f3f4f6;background-color:var(--light-bg)}.page-container{margin:0 auto;max-width:1200px;padding:1rem}.page-title{font-size:1.5rem;font-weight:600;margin:1rem 0}.class-list{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.class-card{background-color:#fff;background-color:var(--card-bg);border-radius:12px;box-shadow:0 2px 5px #0000000d;display:flex;padding:1.25rem;transition:all .3s}.class-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.class-icon{color:#4f46e5;color:var(--primary-color);margin-right:1rem}.class-details{flex:1 1}.class-title{font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.class-instructor{color:#6b7280;color:var(--text-secondary);font-size:.875rem;margin:0 0 .75rem}.class-info{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.info-item{align-items:center;color:#6b7280;color:var(--text-secondary);display:flex;font-size:.875rem}.info-item svg{margin-right:.25rem}.class-actions{display:flex;gap:.75rem}.action-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;flex:1 1;font-weight:500;justify-content:center;padding:.625rem 1rem;transition:all .2s}.calendar-button{background-color:#ecfdf5;background-color:var(--success-bg);color:#065f46;color:var(--success-text)}.calendar-button:hover{background-color:#d1fae5}.cancel-button{background-color:#fef2f2;background-color:var(--error-bg);color:#b91c1c;color:var(--error-text)}.cancel-button:hover{background-color:#fee2e2}.action-button svg{margin-right:.5rem}.more-button{align-items:center;background:none;border:none;border-radius:50%;color:#6b7280;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:.5rem}.more-button:hover{background-color:#f3f4f6;background-color:var(--light-bg)}@media (min-width:768px){.desktop-links{align-items:center;display:flex}.menu-button,.mobile-menu{display:none}.class-actions{flex-direction:row}}.login-page{align-items:center;background:url(https://images.fitnessintl.com/images/CMS/CST/Home/Fitness_Reception_Sales.jpg) no-repeat 50%/cover;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:2rem;position:relative}.login-page:before{background:linear-gradient(135deg,#1a237eb3,#4a148cb3 50%,#880e4fb3);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.login-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:#ffffff1a;border-radius:16px;box-shadow:0 10px 25px #0003;max-width:400px;overflow:hidden;position:relative;width:100%;z-index:2}.logo-container{display:flex;justify-content:center;margin-top:2rem}.logo{align-items:center;background-color:#ffffff1a;border-radius:50%;box-shadow:0 4px 12px #0000001a;display:flex;height:60px;justify-content:center;width:60px}.logo,.title{color:#fff;font-size:1.5rem;font-weight:700}.title{margin:1.5rem 0 .5rem}.subtitle,.title{text-align:center}.subtitle{color:#ffffffb3;font-size:.9rem;margin-bottom:2rem}.login-form{padding:0 2rem 2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#fffc;display:block;font-size:.875rem;margin-bottom:.5rem}.password-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.forgot-password{color:#a5b4fc;font-size:.75rem;text-decoration:none;transition:color .2s}.forgot-password:hover{color:#fff}.input-container{position:relative}.input-container input{background-color:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;font-size:.95rem;padding:.75rem 1rem;transition:all .2s;width:100%}.input-container input::placeholder{color:#ffffff80}.input-container input:focus{background-color:#ffffff26;border-color:#818cf8;box-shadow:0 0 0 2px #818cf84d;outline:none}.studio-select{-webkit-appearance:none;appearance:none;background-color:#ffffff1a;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23fff' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;padding:.75rem 2.5rem .75rem 1rem;transition:all .2s;width:100%}.studio-select option{background-color:#1a237e;color:#fff;padding:.5rem}.studio-select:focus{background-color:#ffffff26;border-color:#818cf8;box-shadow:0 0 0 2px #818cf84d;outline:none}.studio-select:disabled{cursor:not-allowed;opacity:.5}.error-message{color:#f87171;font-size:.875rem;margin-bottom:1rem}.login-button{background-color:#4f46e5;border:none;border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem;transition:all .2s;width:100%}.login-button:hover{background-color:#4338ca;box-shadow:0 6px 10px #00000026;transform:translateY(-2px)}.login-button:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.signup-prompt{color:#ffffffb3;font-size:.875rem;margin:1.5rem 0;padding:0 2rem;text-align:center}.signup-prompt a{color:#a5b4fc;font-weight:500;text-decoration:none;transition:color .2s}.signup-prompt a:hover{color:#fff}.copyright{color:#fff6;font-size:.75rem;margin-top:2rem;position:relative;z-index:2}@media (max-width:480px){.login-card{max-width:100%}.login-form{padding:0 1.5rem 1.5rem}}.otf-dashboard{background:linear-gradient(135deg,#ff6b35,#f7931e);min-height:100vh}.otf-header{background:#fff;box-shadow:0 2px 8px #0000001a;padding:1.5rem 2rem}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px}.otf-header h1{color:#ff6b35;font-size:1.8rem;margin:0}.user-info{align-items:center;display:flex;gap:1rem}.user-info span{color:#333;font-weight:500}.studio-name{color:#666;font-size:.9rem}.logout-btn{background:#ff6b35;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:background .2s}.logout-btn:hover{background:#e55a2b}.otf-tabs{display:flex;gap:1rem;margin:2rem auto 0;max-width:1200px;padding:0 2rem}.otf-tabs button{background:#fff3;border:none;border-radius:8px 8px 0 0;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .2s}.otf-tabs button:hover{background:#ffffff4d}.otf-tabs button.active{background:#fff;color:#ff6b35}.bookings-section,.classes-section{background:#fff;border-radius:0 8px 8px 8px;margin:0 auto;max-width:1200px;min-height:70vh;padding:2rem}.bookings-section h2,.classes-section h2{color:#333;margin:0 0 1.5rem}.loading{color:#fff;font-size:1.2rem;padding:4rem;text-align:center}.error-banner{background:#f44;border-radius:6px;color:#fff;margin:1rem auto;max-width:1200px;padding:1rem}.empty-state{color:#999;padding:4rem 2rem;text-align:center}.empty-state button{background:#ff6b35;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:1rem;padding:.75rem 1.5rem}.bookings-list,.classes-list{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.booking-card,.class-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1.75rem;transition:all .2s}.booking-card:hover,.class-card:hover{box-shadow:0 6px 16px #0000001f;transform:translateY(-2px)}.booking-header,.class-header{align-items:flex-start;border-bottom:1px solid #f0f0f0;display:flex;gap:1rem;justify-content:space-between;padding-bottom:.75rem}.booking-header h3,.class-header h3{color:#333;flex:1 1;font-size:1.25rem;font-weight:700;line-height:1.4;margin:0}.class-type-badge{background:linear-gradient(135deg,#ff6b35,#f7931e);box-shadow:0 2px 4px #ff6b354d;color:#fff}.class-status,.class-type-badge{border-radius:14px;font-size:.8rem;font-weight:600;padding:.375rem .875rem;white-space:nowrap}.class-status.available{background:#4caf50;color:#fff}.class-status.full{background:#f44336;color:#fff}.booking-details,.class-details{display:flex;flex-direction:column;gap:.875rem}.booking-details p,.class-details p{color:#666;font-size:.95rem;line-height:1.5;margin:0}.booking-time,.class-time{color:#333;font-size:1rem;font-weight:600}.booking-coach-container,.class-coach-container{align-items:center;display:flex;gap:1rem}.coach-image{border:2px solid #ff6b35;border-radius:50%;box-shadow:0 2px 6px #00000026;flex-shrink:0;height:48px;object-fit:cover;width:48px}.booking-coach,.class-coach{color:#555;font-size:.95rem;margin:0!important}.booking-studio,.class-capacity{color:#777;font-size:.9rem}.booking-actions,.class-actions{align-items:center;border-top:1px solid #f0f0f0;display:flex;gap:1rem;justify-content:flex-end;padding-top:.75rem}.book-btn,.cancel-btn{border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;font-size:.95rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.book-btn{background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff}.book-btn:hover:not(:disabled){background:linear-gradient(135deg,#e55a2b,#e67e0f);box-shadow:0 4px 8px #ff6b354d;transform:translateY(-1px)}.book-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed}.cancel-btn{background:#f44336;color:#fff}.cancel-btn:hover{background:#d32f2f;box-shadow:0 4px 8px #f443364d;transform:translateY(-1px)}.booked-badge,.checked-in-badge{background:#4caf50;border-radius:8px;box-shadow:0 2px 4px #4caf504d;color:#fff;font-size:.9rem;font-weight:600;padding:.625rem 1.25rem}.classes-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:1.5rem}.classes-header,.filters{align-items:center;display:flex;gap:1rem}.date-input,.filter-select{background:#fff;border:1px solid #ddd;border-radius:6px;font-size:.95rem;padding:.5rem 1rem}.date-input:focus,.filter-select:focus{border-color:#ff6b35;outline:none}.clear-date-btn{background:#fff;border:1px solid #ddd;border-radius:6px;color:#666;cursor:pointer;font-size:.95rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.clear-date-btn:hover{background:#f5f5f5;border-color:#ff6b35;color:#ff6b35}.view-toggle{background:#fff;border:1px solid #ddd;border-radius:6px;display:flex;gap:.5rem;padding:.25rem}.view-btn{background:#0000;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:1.2rem;padding:.5rem .75rem;transition:all .2s}.view-btn:hover{background:#f5f5f5;color:#ff6b35}.view-btn.active{background:#ff6b35;color:#fff}.timeline-view{display:flex;flex-direction:column;gap:2rem}.date-group{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden}.date-header{align-items:center;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;display:flex;justify-content:space-between;padding:1rem 1.5rem}.date-header h3{font-size:1.1rem;font-weight:600;margin:0}.class-count{background:#fff3;border-radius:12px;font-size:.85rem;font-weight:600;padding:.25rem .75rem}.date-classes{display:flex;flex-direction:column}.timeline-class{grid-gap:1.5rem;align-items:center;border-bottom:1px solid #f0f0f0;display:grid;gap:1.5rem;grid-template-columns:120px 1fr auto;padding:1.25rem 1.5rem;transition:background .2s}.timeline-class:last-child{border-bottom:none}.timeline-class:hover{background:#fafafa}.timeline-time{align-items:center;display:flex;flex-direction:column;gap:.5rem}.timeline-time .time{color:#333;font-size:1.1rem;font-weight:700}.status-dot{border-radius:50%;box-shadow:0 0 0 3px #0000000d;height:12px;width:12px}.status-dot.available{background:#4caf50}.status-dot.full{background:#f44336}.timeline-details{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.timeline-header{align-items:center;display:flex;gap:.75rem}.timeline-header h4{color:#333;font-size:1.1rem;font-weight:700;margin:0}.class-type-badge-small{background:linear-gradient(135deg,#ff6b35,#f7931e);border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .625rem;white-space:nowrap}.timeline-info{align-items:center;color:#666;display:flex;font-size:.9rem;gap:.75rem}.coach-image-small{border:2px solid #ff6b35;border-radius:50%;flex-shrink:0;height:32px;object-fit:cover;width:32px}.coach-name{color:#555;font-weight:500}.capacity-info{color:#777}.timeline-action{align-items:center;display:flex;justify-content:flex-end;min-width:120px}.book-btn-small{background:linear-gradient(135deg,#ff6b35,#f7931e);border:none;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.book-btn-small:hover:not(:disabled){background:linear-gradient(135deg,#e55a2b,#e67e0f);box-shadow:0 4px 8px #ff6b354d;transform:translateY(-1px)}.book-btn-small:disabled{background:#ccc;box-shadow:none;cursor:not-allowed}.booked-badge-small{background:#4caf50;border-radius:6px;box-shadow:0 2px 4px #4caf504d;color:#fff;font-size:.85rem;font-weight:600;padding:.5rem 1rem;white-space:nowrap}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem;text-align:center}.user-info{flex-direction:column;gap:.5rem}.otf-tabs{padding:0 1rem}.otf-tabs button{font-size:.9rem;padding:.75rem 1rem}.bookings-section,.classes-section{padding:1rem}.bookings-list,.classes-list{grid-template-columns:1fr}.classes-header{align-items:flex-start;flex-direction:column}.filters{flex-direction:column}.date-input,.filter-select,.filters{width:100%}.timeline-class{gap:1rem;grid-template-columns:90px 1fr;padding:1rem}.timeline-action{grid-column:1/-1;justify-content:stretch;margin-top:.5rem}.book-btn-small,.booked-badge-small{text-align:center;width:100%}.timeline-info{flex-wrap:wrap}}