:root{--primary-color:#2563eb;--primary-hover:#1d4ed8;--secondary-color:#64748b;--success-color:#059669;--success-hover:#047857;--danger-color:#dc2626;--danger-hover:#b91c1c;--warning-color:#d97706;--background-color:#f8fafc;--surface-color:#fff;--border-color:#e2e8f0;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--background-color);color:#1e293b;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;margin:0}#root{min-height:100vh}code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.btn{border:1px solid #0000;border-radius:.5rem;gap:.25rem;gap:var(--spacing-xs);min-height:2.5rem;padding:.5rem 1rem}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background-color:#2563eb;border-color:#2563eb;border-color:var(--primary-color)}.btn-primary:hover:not(:disabled){background-color:#1d4ed8;background-color:var(--primary-hover);border-color:#1d4ed8;border-color:var(--primary-hover)}.btn-secondary{background-color:initial;border-color:#e2e8f0;border-color:var(--border-color);color:#64748b;color:var(--secondary-color)}.btn-secondary:hover:not(:disabled){background-color:#f8fafc;background-color:var(--background-color);border-color:#64748b;border-color:var(--secondary-color)}.btn-success{background-color:#059669;border-color:#059669;border-color:var(--success-color)}.btn-success:hover:not(:disabled){background-color:#047857;background-color:var(--success-hover);border-color:#047857;border-color:var(--success-hover)}.btn-danger{background-color:#dc2626;border-color:#dc2626;border-color:var(--danger-color)}.btn-danger:hover:not(:disabled){background-color:#b91c1c;background-color:var(--danger-hover);border-color:#b91c1c;border-color:var(--danger-hover)}.btn-sm{font-size:.8rem;min-height:2rem;padding:.25rem .5rem}.btn-lg{font-size:1rem;min-height:3rem;padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}.btn-outline{border-color:#2563eb;border-color:var(--primary-color);color:#2563eb}.btn-outline:hover:not(:disabled){background-color:#2563eb;background-color:var(--primary-color);color:#fff}.form-group{margin-bottom:1rem}.form-group label{color:#1e293b;margin-bottom:.25rem}.form-group input,.form-group select,.form-group textarea,.input,input[type=email],input[type=number],input[type=password],input[type=text],select{background-color:#fff;background-color:var(--surface-color);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:.5rem;border-radius:var(--radius-md);box-sizing:border-box;font-size:.875rem;padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.input:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=text]:focus,select:focus{border-color:#2563eb;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.button,button{align-items:center;background-color:#2563eb;background-color:var(--primary-color);border:1px solid #2563eb;border:1px solid var(--primary-color);border-radius:.5rem;border-radius:var(--radius-md);box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;min-height:2.5rem;padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .2s ease-in-out}.button:hover,button:hover{background-color:#1d4ed8;background-color:var(--primary-hover);border-color:#1d4ed8;border-color:var(--primary-hover);transform:translateY(-1px)}.button:disabled,button:disabled{cursor:not-allowed;opacity:.6;transform:none}.button.logout{background-color:#dc2626;background-color:var(--danger-color);border-color:#dc2626;border-color:var(--danger-color)}.button.logout:hover{background-color:#b91c1c;background-color:var(--danger-hover);border-color:#b91c1c;border-color:var(--danger-hover)}.card{background-color:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);overflow:hidden}.card-header{background-color:#f8fafc;background-color:var(--background-color);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color)}.card-body,.card-footer,.card-header{padding:1.5rem;padding:var(--spacing-lg)}.card-footer{background-color:#f8fafc;background-color:var(--background-color);border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color)}.error-message{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626}.error-message,.success-message{border-radius:.5rem;margin-bottom:1rem;margin-bottom:var(--spacing-md);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md)}.success-message{color:#059669}.loading{align-items:center;color:#64748b;color:var(--text-secondary);display:flex;justify-content:center;padding:3rem;padding:var(--spacing-2xl)}.container{margin:0 auto;max-width:1200px;padding:0 1rem;padding:0 var(--spacing-md);width:100%}@media (min-width:768px){.container{padding:0 1.5rem;padding:0 var(--spacing-lg)}}@media (min-width:1024px){.container{padding:0 2rem;padding:0 var(--spacing-xl)}}@media (min-width:1400px){.container{padding:0 3rem;padding:0 var(--spacing-2xl)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}.card{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg)}}@media (max-width:768px){input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{font-size:16px!important}.btn,.button,button{min-height:44px;padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}.form-group{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}}.availability-container{margin:0 auto;max-width:100%;padding:0;position:relative;width:100%}.availability-header{margin-bottom:var(--spacing-lg)}.availability-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md);text-align:center}.tab-navigation{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);padding:var(--spacing-xs)}.tab-button{background-color:initial;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);text-align:center;transition:all .2s ease-in-out}.tab-button:hover{background-color:var(--background-color);color:var(--text-primary)}.tab-button.active{background-color:var(--primary-color);box-shadow:var(--shadow-sm);color:#fff}.tab-button.active:hover{background-color:var(--primary-hover)}.tab-content{max-width:100%;min-height:500px;overflow-x:hidden;width:100%}.availability-section,.vacation-section{box-sizing:border-box;max-width:100%;min-height:460px;width:100%}.section-title{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-lg);text-align:left}.availability-row{align-items:center;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:space-between;margin-bottom:var(--spacing-sm);padding:var(--spacing-md);transition:all .2s ease-in-out}.availability-row:hover{background-color:var(--surface-color);box-shadow:var(--shadow-sm)}.day-label{color:var(--text-primary);flex-shrink:0;font-size:.875rem;font-weight:500;min-width:80px;text-align:left}.time-inputs{align-items:center;display:flex;flex:1 1;gap:var(--spacing-xs);min-width:160px}.hour-input{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.8rem;padding:var(--spacing-xs) var(--spacing-sm);text-align:center;transition:border-color .2s ease-in-out;width:60px}.hour-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.hour-input:disabled{background-color:var(--background-color);color:var(--text-muted);cursor:not-allowed}.to-label{color:var(--text-secondary);font-weight:500;white-space:nowrap}.button-group{display:flex;flex-shrink:0;gap:var(--spacing-xs)}.remove-button,.save-button{border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-weight:500;min-width:50px;padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s ease-in-out;white-space:nowrap}.save-button{background-color:var(--success-color);color:#fff}.save-button:hover:not(:disabled){background-color:var(--success-hover);transform:translateY(-1px)}.remove-button{background-color:var(--danger-color);color:#fff}.remove-button:hover:not(:disabled){background-color:var(--danger-hover);transform:translateY(-1px)}.remove-button:disabled{background-color:var(--text-muted);cursor:not-allowed;opacity:.6}@media (min-width:1200px){.availability-container{padding:0}.availability-row{flex-wrap:nowrap;margin-bottom:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg)}.day-label{font-size:1rem;min-width:100px}.time-inputs{gap:var(--spacing-sm);min-width:200px}.hour-input{font-size:.875rem;padding:var(--spacing-sm);width:70px}.button-group{gap:var(--spacing-sm)}.remove-button,.save-button{font-size:.875rem;min-width:60px;padding:var(--spacing-sm) var(--spacing-md)}}@media (min-width:769px) and (max-width:1199px){.availability-row{flex-wrap:nowrap;padding:var(--spacing-sm) var(--spacing-md)}.day-label{min-width:90px}.time-inputs{min-width:180px}}@media (max-width:768px){.availability-container{padding:0}.availability-title{font-size:1.125rem;margin-bottom:var(--spacing-sm)}.availability-row{align-items:stretch;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);padding:var(--spacing-sm)}.day-label{font-size:1rem;font-weight:600;min-width:auto;text-align:center;width:100%}.time-inputs{gap:var(--spacing-sm);justify-content:center;min-width:auto}.hour-input{font-size:.875rem;padding:var(--spacing-sm);width:70px}.button-group{gap:var(--spacing-sm);justify-content:center;width:100%}.remove-button,.save-button{flex:1 1;font-size:.8rem;max-width:100px;padding:var(--spacing-sm)}.tab-navigation{margin-bottom:var(--spacing-md)}.tab-button{font-size:.8rem;padding:var(--spacing-sm)}.section-title{font-size:1rem;margin-bottom:var(--spacing-md)}}.vacation-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:space-between;margin-bottom:var(--spacing-lg)}.add-vacation-btn{background-color:var(--primary-color);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease-in-out;white-space:nowrap}.add-vacation-btn:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.vacation-form{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-sizing:border-box;margin-bottom:var(--spacing-lg);max-width:100%;padding:var(--spacing-lg)}.form-title{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-md);margin-top:0}.form-group input,.form-group textarea{background-color:var(--background-color);color:var(--text-primary)}.form-row{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}.form-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-lg)}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .2s ease-in-out;white-space:nowrap}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover{background-color:var(--success-hover);transform:translateY(-1px)}.btn-secondary{background-color:var(--text-muted);color:#fff}.btn-secondary:hover{background-color:var(--text-secondary);transform:translateY(-1px)}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:var(--danger-hover);transform:translateY(-1px)}.btn-outline{background-color:initial;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover{background-color:var(--primary-color);color:#fff}.btn-sm{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.no-vacations,.vacation-loading{color:var(--text-secondary);font-style:italic;padding:var(--spacing-xl);text-align:center}.no-vacations{margin:0}.vacation-list{flex-direction:column}.vacation-item,.vacation-list{display:flex;gap:var(--spacing-md)}.vacation-item{align-items:flex-start;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);justify-content:space-between;padding:var(--spacing-lg);transition:all .2s ease-in-out}.vacation-item:hover{background-color:var(--surface-color);box-shadow:var(--shadow-sm)}.vacation-item.active{background-color:#0596690d;border-left:4px solid var(--success-color)}.vacation-item.upcoming{background-color:#2563eb0d;border-left:4px solid var(--primary-color)}.vacation-content{flex:1 1}.vacation-content h5{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 var(--spacing-xs) 0}.vacation-dates{font-weight:500;margin:0 0 var(--spacing-xs) 0}.vacation-dates,.vacation-description{color:var(--text-secondary);font-size:.875rem}.vacation-description{line-height:1.4;margin:0 0 var(--spacing-sm) 0}.vacation-status{margin-top:var(--spacing-xs)}.status-badge{border-radius:var(--radius-full);display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:var(--spacing-xs) var(--spacing-sm);text-transform:uppercase}.status-badge.active{background-color:var(--success-color);color:#fff}.status-badge.upcoming{background-color:var(--primary-color);color:#fff}.status-badge.past{background-color:var(--text-muted);color:#fff}.vacation-actions{display:flex;flex-shrink:0;gap:var(--spacing-xs)}@media (max-width:768px){.vacation-header{align-items:stretch;flex-direction:column;gap:var(--spacing-sm)}.add-vacation-btn{text-align:center;width:100%}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{width:100%}.vacation-item{align-items:stretch;flex-direction:column}.vacation-actions{justify-content:center;margin-top:var(--spacing-sm);width:100%}.vacation-actions .btn{flex:1 1}}.bookings-overview{margin:0 auto;max-width:100%;padding:var(--spacing-sm);width:100%}.bookings-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:var(--spacing-md)}.bookings-header,.bookings-header h3{align-items:center;display:flex;gap:var(--spacing-sm)}.bookings-header h3{color:var(--text-primary);font-size:1.875rem;font-weight:600;margin:0}.notification-badge{align-items:center;background-color:var(--danger-color);border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.bookings-filters{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm)}@media (min-width:768px){.bookings-filters{align-items:center;flex-direction:row;justify-content:space-between}}.filter-checkbox{align-items:center;color:var(--text-primary);display:flex;font-size:.875rem;gap:var(--spacing-sm)}.filter-checkbox input[type=checkbox]{accent-color:var(--primary-color);height:18px;width:18px}.month-dropdown{align-items:center;color:var(--text-primary);display:flex;font-size:.875rem;gap:var(--spacing-sm)}.month-dropdown select{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;min-width:140px;padding:var(--spacing-sm) var(--spacing-md);transition:border-color .2s ease-in-out}.month-dropdown select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.appointments-list{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));list-style:none;margin:0;padding:0}@media (min-width:900px) and (max-width:1199px){.appointments-list{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.appointment-item{padding:6px}}@media (min-width:1200px){.bookings-overview{padding:var(--spacing-md)}.appointments-list{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.appointment-item{padding:10px}.bookings-filters{padding:var(--spacing-md)}}@media (max-width:768px){.appointments-list{gap:var(--spacing-sm);grid-template-columns:1fr}}.appointment-item{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;gap:4px;padding:8px;transition:all .2s ease-in-out}.appointment-item:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.appointment-item.past-appointment{background-color:var(--background-color);color:var(--text-muted);opacity:.8}.booking-appointment-details{display:flex;flex-direction:column;flex-grow:1;gap:2px;text-align:center}.booking-appointment-details p{color:var(--text-primary);font-size:.9rem;line-height:1.3;margin:0}.booking-appointment-details strong{color:var(--text-primary);font-weight:600}.appointment-status{align-items:center;border-radius:var(--radius-md);box-shadow:0 1px 2px #0000001a;display:inline-flex;font-size:.7rem;font-weight:700;letter-spacing:.05em;margin-left:4px;padding:2px 6px;text-transform:uppercase}.appointment-status.requested{background-color:#f59e0b1a;border:1px solid #f59e0b33;color:var(--warning-color)}.appointment-status.accepted{background-color:#0596691a;border:1px solid #05966933;color:var(--success-color)}.appointment-status.declined{background-color:#ef44441a;border:1px solid #ef444433;color:var(--danger-color)}.appointment-actions{display:flex;gap:6px;margin-top:6px}.appointment-actions button{border:1px solid #0000;border-radius:var(--radius-md);box-shadow:0 1px 3px #0000001a;cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;padding:6px 12px;transition:all .2s ease-in-out}.button.accept{background-color:var(--success-color);border-color:var(--success-color);color:#fff}.button.accept:hover{background-color:var(--success-hover);border-color:var(--success-hover);box-shadow:0 2px 8px #0596694d;transform:translateY(-1px)}.button.decline{background-color:var(--danger-color);border-color:var(--danger-color);color:#fff}.button.decline:hover{background-color:var(--danger-hover);border-color:var(--danger-hover);box-shadow:0 2px 8px #ef44444d;transform:translateY(-1px)}.no-appointments{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);font-style:italic;margin-top:var(--spacing-md);padding:var(--spacing-lg);text-align:center}@media (max-width:768px){.bookings-overview{padding:var(--spacing-xs)}.bookings-header{align-items:stretch;flex-direction:column;margin-bottom:var(--spacing-sm);text-align:center}.bookings-header h3{font-size:1.5rem;justify-content:center}.appointment-item{gap:3px;padding:6px}.appointment-actions{flex-direction:row;gap:4px;margin-top:4px}.appointment-actions button{flex:1 1;font-size:.8rem;padding:4px 8px}.booking-appointment-details{gap:1px}.booking-appointment-details p{font-size:.85rem;line-height:1.25}}@media (max-width:480px){.bookings-overview{padding:4px}.bookings-filters{padding:var(--spacing-xs)}.appointment-item{gap:2px;padding:4px}.booking-appointment-details{gap:0}.booking-appointment-details p{font-size:.8rem;line-height:1.2}.appointment-actions{gap:3px;margin-top:3px}.appointment-actions button{font-size:.75rem;padding:3px 6px}}.profile-manager{padding:var(--spacing-lg);width:100%}.profile-header{margin-bottom:var(--spacing-xl);text-align:center}.profile-header h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.profile-header p{color:var(--text-secondary);font-size:.875rem;margin:0}.profile-loading{padding:var(--spacing-xl);text-align:center}.loading-text{color:var(--text-secondary);font-size:1rem}.success-message{background-color:#0596691a;border:1px solid #05966933;margin-bottom:var(--spacing-lg)}.profile-form{gap:var(--spacing-lg)}.form-group,.profile-form{display:flex;flex-direction:column}.form-group{gap:var(--spacing-xs)}.form-group label{font-size:.875rem}.form-group input{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);font-size:.875rem;padding:var(--spacing-sm);transition:border-color .2s ease-in-out;width:100%}.form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-group input.error{border-color:var(--danger-color);box-shadow:0 0 0 3px #ef44441a}.form-group input:disabled{background-color:var(--background-color);color:var(--text-muted);cursor:not-allowed}.submit-button:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (max-width:768px){.profile-manager{margin:var(--spacing-sm);padding:var(--spacing-md)}.profile-header h3{font-size:1.25rem}.form-group input{padding:var(--spacing-sm)}.submit-button{padding:var(--spacing-md)}}@media (max-width:480px){.profile-manager{margin:var(--spacing-xs);padding:var(--spacing-sm)}.profile-header{margin-bottom:var(--spacing-lg)}.profile-form{gap:var(--spacing-md)}}.App{background-color:var(--background-color);min-height:100vh}.login-container{align-items:center;box-sizing:border-box;display:flex;justify-content:center;margin:0 auto;max-width:450px;min-height:100vh;padding:var(--spacing-lg);width:100%}.login-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-2xl);text-align:center;width:100%}.login-card h2{color:var(--text-primary);font-size:1.875rem;font-weight:600;margin:0 0 var(--spacing-xl) 0}.login-form{gap:var(--spacing-lg)}.login-form,.register-form{display:flex;flex-direction:column}.register-form{gap:var(--spacing-md)}.dashboard-container{margin:0 auto;max-width:1600px;min-height:100vh;padding:var(--spacing-lg);width:100%}.dashboard-header{align-items:center;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between;padding:var(--spacing-xl)}.dashboard-header h1{color:var(--text-primary);font-size:1.875rem;font-weight:600;margin:0}.user-info{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-lg)}.user-name{color:var(--text-secondary)}.logout-btn,.user-name{font-size:.875rem;font-weight:500}.logout-btn{background-color:var(--danger-color);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease-in-out}.logout-btn:hover{background-color:var(--danger-hover);transform:translateY(-1px)}.two-column-layout{grid-gap:var(--spacing-xl);align-items:start;display:grid;gap:var(--spacing-xl);grid-template-columns:2fr 1fr}@media (min-width:1400px){.dashboard-container{padding:var(--spacing-xl) var(--spacing-2xl)}.two-column-layout{gap:var(--spacing-2xl)}.card,.dashboard-header{padding:var(--spacing-2xl)}}@media (min-width:1200px) and (max-width:1399px){.two-column-layout{grid-template-columns:3fr 2fr}}@media (max-width:1199px){.two-column-layout{gap:var(--spacing-lg);grid-template-columns:1fr}}.left-column,.right-column{display:flex;flex-direction:column;gap:var(--spacing-xl)}.card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl);transition:all .2s ease-in-out}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 var(--spacing-lg) 0}.share-link-container{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.share-link{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;flex:1 1;font-family:JetBrains Mono,monospace;font-size:.875rem;min-width:200px;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease-in-out;-webkit-user-select:all;user-select:all;word-break:break-all}.share-link:hover{background-color:var(--border-color);border-color:var(--primary-color)}.copy-button{background-color:var(--primary-color);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease-in-out;white-space:nowrap}.copy-button:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.copy-confirmation{animation:fadeOut 2s forwards;color:var(--success-color);font-size:.875rem;font-weight:500}@keyframes fadeOut{0%{opacity:1}80%{opacity:1}to{opacity:0}}.success-message{background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-md);color:var(--success-color);font-size:.875rem;margin-top:var(--spacing-md);padding:var(--spacing-md);text-align:center}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:1rem;padding:0;transition:color .2s ease-in-out}.link-button:hover{color:var(--primary-hover);text-decoration:underline}@media (max-width:768px){.login-container{align-items:flex-start;padding:var(--spacing-md);padding-top:var(--spacing-xl)}.login-card{margin:var(--spacing-md) 0;padding:var(--spacing-xl)}.login-card h2{font-size:1.5rem}.dashboard-container{padding:var(--spacing-md)}.dashboard-header{align-items:stretch;flex-direction:column;padding:var(--spacing-lg);text-align:center}.dashboard-header h2{font-size:1.5rem;margin-bottom:var(--spacing-md)}.dashboard-header>div{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-sm)}.dashboard-header>div p{font-size:.875rem;margin:0}.card{padding:var(--spacing-lg)}.share-link-container{align-items:stretch;flex-direction:column;gap:var(--spacing-md)}.share-link{font-size:.75rem;min-width:auto;padding:var(--spacing-md);text-align:center;word-break:break-all}.copy-button{align-self:center;max-width:200px;width:100%}}@media (max-width:480px){.login-container{padding:var(--spacing-sm);padding-top:var(--spacing-lg)}.login-card{margin:var(--spacing-sm) 0;padding:var(--spacing-lg)}.login-card h2{font-size:1.25rem}.dashboard-container{padding:var(--spacing-sm)}.dashboard-header{padding:var(--spacing-md)}.dashboard-header h2{font-size:1.25rem}.card{padding:var(--spacing-md)}.share-link{font-size:.7rem;padding:var(--spacing-sm)}.copy-button{max-width:none;width:100%}.login-form,.register-form{gap:var(--spacing-md)}.button,.input{font-size:1rem;padding:var(--spacing-md)}.button{min-height:48px}}.header-actions{align-items:stretch;display:flex;flex-direction:column;gap:var(--spacing-sm)}@media (min-width:768px){.header-actions{align-items:center;flex-direction:row;gap:var(--spacing-md)}}.profile-button{background-color:var(--surface-color);border:1px solid var(--primary-color);color:var(--primary-color)}.profile-button:hover{background-color:var(--primary-color);color:#fff}.profile-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;padding:var(--spacing-lg);position:fixed;right:0;top:0;z-index:1000}.profile-overlay-backdrop{background-color:#00000080;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.profile-overlay-content{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:100%;z-index:1001}.profile-overlay-header{align-items:center;background-color:var(--surface-color);border-bottom:1px solid var(--border-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;justify-content:space-between;padding:var(--spacing-lg);position:sticky;top:0;z-index:1002}.profile-overlay-header h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:var(--spacing-xs);transition:all .2s ease-in-out;width:32px}.close-button:hover{background-color:var(--background-color);color:var(--text-primary)}.close-button:focus{box-shadow:0 0 0 3px #2563eb4d;outline:none}@media (max-width:768px){.profile-overlay{padding:var(--spacing-sm)}.profile-overlay-content{max-height:95vh}.profile-overlay-header{padding:var(--spacing-md)}.header-actions{margin-top:var(--spacing-md)}}.booking-page{background-color:var(--background-color);margin:0;max-width:none;min-height:100vh;padding:var(--spacing-md);width:100%}.booking-container{margin:0 auto;max-width:1400px;padding:var(--spacing-lg) var(--spacing-lg);width:100%}.booking-header{margin-bottom:var(--spacing-2xl);text-align:center}.booking-header h2{color:var(--text-primary);font-size:2rem;font-weight:600;margin:0 0 var(--spacing-md) 0}.booking-content{grid-gap:var(--spacing-xl);align-items:start;display:grid;gap:var(--spacing-xl);grid-template-columns:1fr}@media (min-width:1200px){.booking-content{gap:var(--spacing-2xl);grid-template-columns:2fr 1fr}.booking-container{padding:var(--spacing-xl) var(--spacing-2xl)}.booking-section,.calendar-section{padding:var(--spacing-xl)}}@media (min-width:1024px) and (max-width:1199px){.booking-content{grid-template-columns:1fr 400px}}.booking-section,.calendar-section{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.booking-section{position:sticky;top:var(--spacing-lg)}.calendar-controls{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}@media (min-width:768px){.calendar-controls{align-items:center;flex-direction:row;justify-content:space-between}}.month-nav{gap:var(--spacing-lg)}.month-nav,.month-nav button{align-items:center;display:flex;justify-content:center}.month-nav button{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:50%;color:var(--primary-color);cursor:pointer;font-size:1.2rem;height:40px;transition:all .2s ease-in-out;width:40px}.month-nav button:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.month-nav span{color:var(--text-primary);font-size:1.25rem;font-weight:600;min-width:200px;text-align:center}.duration-selector{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-sm)}@media (min-width:768px){.duration-selector{flex-direction:row;gap:var(--spacing-md)}}.duration-selector label{color:var(--text-primary);font-weight:500;white-space:nowrap}.duration-selector select{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;min-width:140px;padding:var(--spacing-sm) var(--spacing-md);transition:border-color .2s ease-in-out}.duration-selector select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.calendar-header{grid-gap:var(--spacing-xs);border-bottom:1px solid var(--border-color);display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(7,1fr);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0}.weekday-label{color:var(--text-secondary);font-size:.875rem;font-weight:600;letter-spacing:.5px;padding:var(--spacing-sm);text-align:center;text-transform:uppercase}.calendar{grid-gap:var(--spacing-xs);display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(7,1fr)}.calendar-day{align-items:center;aspect-ratio:1;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;justify-content:center;position:relative;transition:all .2s ease-in-out}.calendar-day.clickable{background-color:var(--surface-color);border-color:var(--primary-color);color:var(--primary-color)}.calendar-day.clickable:hover{box-shadow:var(--shadow-md)}.calendar-day.clickable:hover,.calendar-day.selected{background-color:var(--primary-color);color:#fff;transform:translateY(-2px)}.calendar-day.selected{border-color:var(--primary-color);box-shadow:var(--shadow-lg)}.calendar-day.disabled{background-color:var(--background-color);border-color:var(--border-color);color:var(--text-muted);cursor:not-allowed}.calendar-day.empty{background:#0000;border:none;cursor:default}.calendar-day:focus{box-shadow:0 0 0 3px #2563eb4d;outline:none}@media (max-width:768px){.calendar-day{font-size:.75rem}}.slots{margin-bottom:var(--spacing-xl)}.slots h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 var(--spacing-lg) 0;text-align:center}.slots ul{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.slots li{align-items:center;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--spacing-md);transition:all .2s ease-in-out}.slots li:hover{background-color:#2563eb0d;border-color:var(--primary-color)}.slot-time{color:var(--text-primary);font-size:.875rem;font-weight:500}.slots button{background-color:initial;border:1px solid var(--primary-color);border-radius:var(--radius-md);color:var(--primary-color);cursor:pointer;font-size:.8rem;font-weight:500;min-width:80px;padding:var(--spacing-xs) var(--spacing-md);transition:all .2s ease-in-out}.slots button:hover{background-color:var(--primary-color);color:#fff}.slots button:focus{box-shadow:0 0 0 3px #2563eb4d;outline:none}.slots button.selected-slot{background-color:var(--success-color);border-color:var(--success-color);color:#fff}.slots button.selected-slot:hover{background-color:var(--success-hover);border-color:var(--success-hover)}.booking-form{border-top:1px solid var(--border-color);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.booking-form h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 var(--spacing-lg) 0;text-align:center}.form-group{margin-bottom:var(--spacing-md)}.form-group label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:var(--spacing-xs)}.form-group input,.form-group textarea{border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;font-size:.875rem;padding:var(--spacing-sm);transition:border-color .2s ease-in-out;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-group input.error,.form-group textarea.error{border-color:var(--danger-color);box-shadow:0 0 0 3px #ef44441a}.form-group input:disabled,.form-group textarea:disabled{background-color:var(--background-color);color:var(--text-muted);cursor:not-allowed}.field-error{color:var(--danger-color);display:block;font-size:.75rem;margin-top:var(--spacing-xs)}.error-message{background-color:#ef44441a;border:1px solid #ef444433;border-radius:var(--radius-md);color:var(--danger-color);font-size:.875rem;margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.form-group textarea{font-family:inherit;min-height:80px;resize:vertical}.character-count{color:var(--text-secondary);display:block;font-size:.75rem;margin-top:var(--spacing-xs);text-align:right}.submit-button{background-color:var(--primary-color);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:var(--spacing-md);padding:var(--spacing-md);transition:all .2s ease-in-out;width:100%}.submit-button:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.submit-button:focus{box-shadow:0 0 0 3px #2563eb4d;outline:none}.submit-button:disabled{background-color:var(--text-muted);box-shadow:none;cursor:not-allowed;transform:none}.no-slots-message{color:var(--text-secondary);font-style:italic;padding:var(--spacing-lg);text-align:center}@media (max-width:768px){.booking-page{padding:var(--spacing-sm)}.booking-container{padding:var(--spacing-md) 0}.booking-header h2{font-size:1.5rem}.booking-section,.calendar-section{padding:var(--spacing-md)}.booking-section{position:static}.month-nav span{font-size:1.125rem;min-width:150px}.slots li,.slots ul{gap:var(--spacing-xs)}.slots li{align-items:stretch;flex-direction:column;padding:var(--spacing-sm)}.slots button{justify-content:center;width:100%}.slot-time{text-align:center}}.time-slot-picker{margin-bottom:var(--spacing-lg)}.time-slot-picker h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 var(--spacing-md) 0;text-align:center}.hour-selector{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));margin:var(--spacing-md) 0}.hour-button{align-items:center;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;justify-content:center;min-height:44px;padding:var(--spacing-sm);transition:all .2s ease-in-out}.hour-button:hover{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:var(--shadow-sm);color:#fff;transform:translateY(-1px)}.hour-button.selected{background-color:var(--success-color);border-color:var(--success-color);box-shadow:var(--shadow-md);color:#fff;transform:translateY(-1px)}.hour-button:focus{box-shadow:0 0 0 3px #2563eb4d;outline:none}.selected-time-info{background-color:var(--background-color);border:1px solid var(--success-color);border-radius:var(--radius-md);margin-top:var(--spacing-md);padding:var(--spacing-md);text-align:center}.selected-time-info p{color:var(--text-primary);font-size:.875rem;font-weight:500;margin:0}@media (min-width:1200px){.hour-selector{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.hour-button{font-size:1rem;padding:var(--spacing-md)}.time-slot-picker h4{font-size:1.25rem}}@media (max-width:768px){.hour-selector{gap:var(--spacing-xs);grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.hour-button{font-size:.8rem;min-height:40px;padding:var(--spacing-xs)}.time-slot-picker h4{font-size:1rem}.selected-time-info{padding:var(--spacing-sm)}.selected-time-info p{font-size:.8rem}}.thank-you-page{align-items:center;background-color:var(--background-color);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.thank-you-container{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:0 auto;max-width:700px;padding:var(--spacing-2xl);text-align:center;width:100%}.thank-you-container h2{color:var(--primary-color);font-size:2rem;font-weight:600;margin-bottom:var(--spacing-lg)}.thank-you-container p{color:var(--text-primary);font-size:1.125rem;line-height:1.6;margin:var(--spacing-sm) 0}.appointment-details{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-left:auto;margin-right:auto;margin-top:var(--spacing-xl);max-width:600px;padding:var(--spacing-xl)}.appointment-details h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-lg)}.detail-item{align-items:center;border-bottom:1px solid var(--border-color);color:var(--text-secondary);display:flex;font-size:1.125rem;justify-content:space-between;margin:var(--spacing-md) 0;padding:var(--spacing-sm) 0;text-align:left}.detail-item:last-child{border-bottom:none}.detail-item strong{color:var(--primary-color);font-weight:600}.detail-value{color:var(--text-primary);font-weight:500}.back-button{background-color:var(--primary-color);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;margin-top:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-xl);text-decoration:none;transition:all .2s ease-in-out}.back-button:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (max-width:768px){.thank-you-page{padding:var(--spacing-md)}.thank-you-container{padding:var(--spacing-xl)}.thank-you-container h2{font-size:1.75rem}.thank-you-container p{font-size:1rem}.appointment-details{margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.appointment-details h3{font-size:1.25rem}.detail-item{align-items:flex-start;flex-direction:column;font-size:1rem;gap:var(--spacing-xs)}.detail-value{font-size:.875rem}}@media (max-width:480px){.thank-you-page{padding:var(--spacing-sm)}.thank-you-container{padding:var(--spacing-lg)}.thank-you-container h2{font-size:1.5rem}.appointment-details{padding:var(--spacing-md)}.back-button{margin-top:var(--spacing-lg);width:100%}}
/*# sourceMappingURL=main.c44b54dd.css.map*/