.login-container{background:#f5f5f5;display:flex;min-height:100vh}.login-image-section{background-color:#3e7a9f;background-image:url(/static/media/login.e0fe65bab537f0cbd493.jpg);background-position:50%;background-size:cover;color:#fff;font-size:18px}.login-form-section,.login-image-section{align-items:center;display:flex;flex:1 1;justify-content:center}.login-form-section{padding:20px}.login-card{background:#fff;border-radius:8px;box-shadow:0 5px 20px #0003;max-width:380px;padding:40px;width:100%}.login-card h1{color:#333;font-size:28px;margin-bottom:8px}.login-subtitle{color:#666;font-size:14px;margin-bottom:30px}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#3e7a9f;box-shadow:0 0 0 3px #667eea1a;outline:none}.error-message{background-color:#fee;border-radius:4px;color:#c33;font-size:14px;margin-bottom:20px;padding:12px}.login-button{background-color:#097187;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px;transition:opacity .3s;width:100%}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-hint{color:#999;font-size:12px;margin-top:20px;text-align:center}@media (max-width:768px){.login-container{flex-direction:column}.login-image-section{min-height:200px}.login-form-section{background-image:url(/static/media/login.e0fe65bab537f0cbd493.jpg);background-position:50%;background-size:cover}.login-card{margin:auto;max-width:420px;width:100%}}.layout{background-color:#f5f5f5;display:flex;height:100vh}.sidebar{background:linear-gradient(122deg,#097187,#053a44);box-shadow:2px 0 5px #0000001a;color:#fff;display:flex;flex-direction:column;overflow-y:auto;width:160px}.sidebar-header{border-bottom:1px solid #ffffff1a;padding:20px}.sidebar-header h2{font-size:18px;margin:0}.nav-menu{flex:1 1;list-style:none;padding:20px 0}.nav-menu li{margin:0}.nav-link{border-left:3px solid #0000;color:#ecf0f1;display:block;padding:12px 20px;text-decoration:none;transition:all .3s}.nav-link:hover{background-color:#ffffff1a;border-left-color:#097187}.nav-link.active{background-color:#3498db33;border-left-color:#097187;color:#097187}.sidebar-footer{border-top:1px solid #ffffff1a;padding:20px}.user-profile{border-bottom:1px solid #ffffff1a;margin-bottom:15px;padding-bottom:15px}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background-color:#097187;border-radius:50%;flex-shrink:0;font-weight:700;height:40px;justify-content:center;margin-right:12px;width:40px}.user-details{flex:1 1;min-width:0}.user-email{font-size:12px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:#bdc3c7;font-size:11px;margin:2px 0 0;text-transform:capitalize}.logout-button{background:linear-gradient(25deg,#c54f41,#d36d61);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px;transition:background-color .3s;width:100%}.logout-button:hover{background-color:#c0392b}.main-content{flex:1 1;overflow-y:auto;padding:20px}.toggle-button{align-items:center;background:none;border:none;color:#fff;cursor:pointer;display:flex;font-size:24px;height:36px;justify-content:center;margin-right:12px;padding:0;transition:opacity .3s;width:36px}.toggle-button:hover{opacity:.8}.sidebar-header{align-items:center;display:flex}.sidebar.collapsed{width:80px}.sidebar.collapsed .sidebar-header h2{display:none}.sidebar.collapsed .nav-link{padding:12px;text-align:center}.sidebar.collapsed .user-details{display:none}.sidebar.collapsed .logout-button{width:100%}.sidebar.collapsed .user-profile{flex-direction:column;margin-bottom:15px;padding-bottom:15px}.sidebar.collapsed .user-avatar{margin-bottom:8px;margin-right:0}.btn-primary{background-color:#097187;border:none}.btn-primary:hover{opacity:.9}.btn-secondary{background-color:#777;border:none}.btn-secondary:hover{opacity:.9}.btn-info{background-color:#0f3d5c;border:none;color:#fff}.btn-info:hover{opacity:.9}.btn-warning{background-color:#b35449;border:none;color:#fff}.btn-warning:hover{opacity:.9}.mobile-display-w768{display:none;height:0;visibility:hidden}@media (max-width:768px){.mobile-display-w768{display:block;visibility:visible}.mobile-hide{display:none;height:0;visibility:hidden}}.calendar{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;font-family:inherit;padding:10px}.calendar-header{align-items:center;display:flex;gap:15px;justify-content:space-between;margin-bottom:20px}.calendar-title{flex:1 1;text-align:center}.calendar-title h2{color:#097187;font-size:20px;margin:0}.nav-button{background:#097187;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;min-width:40px;padding:8px 12px;transition:background-color .3s}.nav-button:hover{background:#764ba2}.today-button{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:13px;font-weight:600;margin:0 auto 15px;padding:8px 16px;transition:background-color .3s}.today-button:hover{background:#2980b9}.weekdays{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr);margin-bottom:10px}.weekday{color:#7f8c8d;font-size:12px;font-weight:600;letter-spacing:.5px;padding:8px 0;text-align:center;text-transform:uppercase}.calendar-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr);margin-bottom:20px}.calendar-day{align-items:flex-start;aspect-ratio:auto;background:#fff;border:1px solid #ecf0f1;border-radius:4px;color:#2c3e50;cursor:pointer;display:flex;flex-direction:column;font-size:14px;font-weight:500;justify-content:flex-start;min-height:80px;padding:8px;transition:all .3s}.calendar-day:hover:not(.other-month){background:#f0f4ff;border-color:#097187}.calendar-day.other-month{background:#f9f9f9;color:#bdc3c7;cursor:default}.calendar-day.other-month:hover{background:#f9f9f9;border-color:#ecf0f1}.calendar-day.selected{background:linear-gradient(135deg,#eee,#ddd);border-color:#097187;color:#333;font-weight:600}.calendar-day.selected:hover{opacity:.9}.calendar-day.today{border:2px solid #e74c3c;font-weight:600}.calendar-day.today.selected{border:2px solid #fff}.selected-date-info{background:#f0f4ff;border-radius:4px;color:#2c3e50;font-size:14px;padding:15px;text-align:center}.selected-date-info p{margin:0}.selected-date-info strong{color:#097187}.view-toggle{background:#f0f0f0;border-radius:4px;display:flex;gap:8px;overflow:hidden}.view-button{background:#0000;border:none;border-radius:0;color:#2c3e50;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .3s}.view-button:hover{background:#e0e0e0}.view-button.active{background:#097187;color:#fff;font-weight:600}.radio-group{background:#f0f0f0;gap:2px;padding:0}.radio-group,.radio-group label{align-items:center;border-radius:4px;display:flex}.radio-group label{color:#2c3e50;cursor:pointer;font-size:16px;font-weight:500;gap:6px;margin:0;padding:8px 12px;transition:all .3s}.radio-group input[type=radio]{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;height:0;margin:0;padding:0;width:0}.radio-group label:hover{background:#e0e0e0}.radio-group label:has(input[type=radio]:checked){background:#777;color:#fff;font-weight:600}.calendar-grid.week{gap:10px}.calendar-grid.week .calendar-day{aspect-ratio:auto;flex-direction:column;gap:4px;min-height:60px}.day-number{color:#05424e;font-size:14px;font-weight:600}.day-info{text-wrap:wrap;color:#555;font-size:11px;min-height:90px;padding:.5rem;text-align:left}.day-of-week{color:#7f8c8d;font-size:11px;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.booking-excerpt{background-color:#fccc85;border:1px solid #777;border-radius:4px;color:#333;cursor:pointer;font-family:PT Sans Narrow,sans-serif;font-size:12px;font-weight:400;padding:0 4px}.booking-excerpt:hover{font-weight:700}.availability-excerpt{background-color:#ddd;border:1px solid #777;border-radius:4px;color:#333;font-family:PT Sans Narrow,sans-serif;font-size:12px;font-weight:400;padding:0 4px}.availability-excerpt:hover{font-weight:700}.confirmed-booking{color:#097187}.confirmed-booking-bg{background-color:#b5ecf7}.pending-booking{color:#555}.balance-due{color:#df685a}.new-booking-button{background-color:#b35449;color:#fff}.naweek{background-color:#dcf8fd}.payment-inputs{width:80px}@media (max-width:768px){.calendar-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}}@media (max-width:480px){.calendar-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}}.booking-view-container{position:relative}.booking-card{background:#fff;margin:1rem 0 0}.booking-card-header{padding-bottom:.5rem}.booking-card-header,.booking-card-subheader{align-items:right;border-bottom:2px solid #f0f0f0;display:flex;margin-bottom:1rem}.booking-card-subheader{padding-bottom:.75rem}.booking-card-subheader h5{color:#333;font-size:1.2rem;margin:0}.booking-card-header h2{color:#333;font-size:1.5rem;margin:0}.booking-info-section{margin-bottom:.5rem}.booking-info-section h3{border-bottom:0 solid #f7f7f7;color:#097187;font-size:1.2rem;margin:0 0 1rem;padding-bottom:.25rem}.info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.info-item{display:flex;flex-direction:column}.info-label{color:#333;font-size:.9rem;font-weight:700;margin-bottom:.25rem}.info-value{color:#333;font-size:1rem;word-break:break-word}.edit-button{align-items:center;background-color:#777;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem 1rem;transition:background-color .2s}.edit-button:hover{background-color:#0056b3}.booking-form{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}@media (max-width:1024px){.booking-form{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.booking-form{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column}.form-group label{color:#097187;font-size:.95rem;font-weight:700;margin-bottom:.15rem}.form-input{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:1rem;padding:.5rem;transition:border-color .2s}.form-input:focus{border-color:#064d5c;box-shadow:0 0 0 3px #007bff1a;outline:none}.form-input:disabled{background-color:#f9f9f9;color:#666;cursor:not-allowed}.form-actions{display:flex;gap:.5rem;grid-column:1/-1;margin-top:0;padding-top:.75rem}.alert{align-items:center;border-radius:4px;display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem}.alert-error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.btn{border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#5a6268}.btn-sm{font-size:.9rem;padding:.5rem 1rem}.dashboard-page{padding:0}.page-header{margin-bottom:30px}.page-header h1{color:#2c3e50;font-size:28px;margin-bottom:8px}.user-info{color:#7f8c8d;font-size:14px}.dashboard-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .3s,box-shadow .3s}.stat-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.stat-card h3{color:#7f8c8d;font-size:14px;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.stat-value{color:#2c3e50;font-size:32px;font-weight:700;margin:0}.stat-label{color:#95a5a6;font-size:12px;margin-top:8px}.dashboard-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.dashboard-section h2{color:#2c3e50;font-size:18px;margin-bottom:20px}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}#root,body,html{height:100%}
/*# sourceMappingURL=main.da27f3ad.css.map*/