:root{--primary-color:#2563eb;--primary-hover:#1d4ed8;--secondary-color:#64748b;--success-color:#047857;--success-hover:#065f46;--danger-color:#b91c1c;--danger-hover:#991b1b;--warning-color:#d97706;--background-color:#f8fafc;--surface-color:#fff;--surface-hover:#f1f5f9;--primary-soft:#eff6ff;--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;scrollbar-gutter:stable}#root{min-height:100vh}code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.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-danger,.button.logout{background-color:#b91c1c;background-color:var(--danger-color);border-color:#b91c1c;border-color:var(--danger-color)}.button-danger:hover:not(:disabled),.button.logout:hover:not(:disabled){background-color:#991b1b;background-color:var(--danger-hover);border-color:#991b1b;border-color:var(--danger-hover)}.button-success{background-color:#047857;background-color:var(--success-color);border-color:#047857;border-color:var(--success-color)}.button-success:hover:not(:disabled){background-color:#065f46;background-color:var(--success-hover);border-color:#065f46;border-color:var(--success-hover)}.button-secondary{background-color:#f1f5f9;background-color:var(--surface-hover);border-color:#e2e8f0;border-color:var(--border-color);color:#1e293b;color:var(--text-primary)}.button-secondary:hover:not(:disabled){background-color:#e2e8f0;background-color:var(--border-color);border-color:#e2e8f0;border-color:var(--border-color)}.button-outline{background-color:initial;border-color:#2563eb;border-color:var(--primary-color);color:#2563eb;color:var(--primary-color)}.button-outline:hover:not(:disabled){background-color:#2563eb;background-color:var(--primary-color);color:#fff}.button-sm{font-size:.8rem;min-height:2rem;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm)}.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}.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}.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)}}.brand-logo{align-items:center;display:inline-flex;gap:.6rem;line-height:1}.brand-mark{display:block;flex:0 0 auto}.brand-wordmark{color:var(--text-primary);font-weight:700;letter-spacing:.01em}.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-brand{display:flex;justify-content:center;margin:0 0 var(--spacing-xl) 0}.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.mfa-hint{margin:0;text-align:center}.mfa-method-tabs{display:flex;gap:8px;margin-bottom:4px}.mfa-tab{background:var(--background-color);border:2px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:8px 12px;transition:border-color .15s,background .15s,color .15s}.mfa-tab.active,.mfa-tab:hover{background:var(--primary-soft);border-color:var(--primary-color)}.mfa-tab.active{color:var(--primary-color);font-weight:600}.register-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.dashboard-container{margin:0 auto;max-width:1600px;min-height:100vh;padding:var(--spacing-lg);width:100%}@media (min-width:1400px){.dashboard-container{padding:var(--spacing-xl) var(--spacing-2xl)}.card{padding:var(--spacing-2xl)}}.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)}.success-message{background-color:#f0fdf4;border:1px solid #bbf7d0;margin-top: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{background-color:initial;border-color:#0000;color:var(--primary-hover);text-decoration:underline;transform:none}@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)}.dashboard-container{padding:var(--spacing-md)}.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)}.dashboard-container{padding:var(--spacing-sm)}.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}}.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)}}.login-button{align-items:center;display:inline-flex;gap:.5rem;justify-content:center}.login-spinner{animation:login-spin .8s linear infinite;border:2px solid #ffffff73;border-radius:50%;border-top-color:#fff;display:inline-block;height:1rem;width:1rem}@keyframes login-spin{to{transform:rotate(1turn)}}.public-id-hint{color:var(--text-secondary);font-size:.8rem;font-style:italic}.dashboard-topbar{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto 1fr;padding:16px 24px 24px}.dashboard-nav{align-items:center;display:flex;gap:4px;justify-self:start}.dashboard-brand{align-items:center;display:inline-flex;margin-right:8px}.dashboard-nav-item{background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:7px 16px;transition:background .15s,color .15s;white-space:nowrap}.dashboard-nav-item:hover{background:var(--border-color);color:var(--text-primary)}.dashboard-nav-item.active{background:var(--primary-color);color:#fff}.dashboard-view{display:flex;flex-direction:column;gap:var(--spacing-md)}.availability-view{width:100%}.dashboard-welcome{color:var(--text-primary);font-size:24px;font-weight:600;margin:0;text-align:center;white-space:nowrap}.profile-menu-wrap{justify-self:end;position:relative}.profile-avatar{align-items:center;background:var(--border-color);border:none;border-radius:50%;color:#4b5563;cursor:pointer;display:inline-flex;height:45px;justify-content:center;transition:background .2s,transform .2s;width:45px}.profile-avatar:hover{background:#cfcfcf;transform:translateY(-1px)}.profile-avatar-glyph{display:inline-flex}.profile-menu{background:#fcfcfc;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 10px 24px #00000014;display:flex;flex-direction:column;min-width:180px;padding:4px;position:absolute;right:0;top:calc(100% + 8px);z-index:50}.profile-menu-item{background:none;border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:10px 14px;text-align:left}.profile-menu-item+.profile-menu-item{border-top:1px solid #f4f4f4}.profile-menu-item:hover{background:var(--surface-hover)}.scheduling-link-card{display:flex;flex-direction:column;gap:14px}.card-title{color:var(--text-primary);font-size:16px;font-weight:500;margin:0}.share-field{display:flex;flex-direction:column;gap:6px}.share-field label,.share-select{color:var(--text-primary);font-size:14px}.share-select{background:var(--surface-color);border:1px solid var(--border-color);border-radius:5px;padding:6px 10px;width:100%}.share-empty-hint{color:#475569;font-size:13px;margin:0}@media (max-width:600px){.dashboard-topbar{gap:8px 12px;grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:12px 16px 8px}.dashboard-welcome{font-size:18px;grid-column:1;grid-row:1;text-align:left}.profile-menu-wrap{grid-column:2;grid-row:1}.dashboard-nav{grid-column:1/-1;grid-row:2;justify-self:stretch}.dashboard-nav-item{flex:1 1;text-align:center}.dashboard-container{padding:var(--spacing-sm) var(--spacing-md)}}.button.button-edit{align-items:center;background:#efefef;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 1px 1.5px #0000001a;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 12px}.button.button-edit:hover{background:#e4e4e4}.button.button-edit:disabled{cursor:not-allowed;opacity:.55}.button.button-edit.subtle{background:var(--surface-color)}.button.button-edit svg{color:var(--text-primary)}.button.button-primary{align-items:center;background:var(--primary-color);border:1px solid var(--primary-color);border-radius:8px;box-shadow:0 1px 1.5px #0000001a;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 12px}.button.button-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.button.button-primary:disabled{cursor:not-allowed;opacity:.55}.button.button-primary svg{color:#fff}.day-circle{align-items:center;background:var(--primary-color);border-radius:50%;color:#fff;display:inline-flex;font-size:14px;font-weight:600;height:27px;justify-content:center;margin-right:8px;min-width:27px;width:27px}@media (max-width:480px){.dashboard-container{padding:12px}.card{padding:16px}.scheduling-link-card{gap:10px}.share-link-container{flex-wrap:wrap;gap:8px}.share-link{min-width:0;width:100%}.copy-button{width:100%}.public-id-hint{font-size:12px;word-break:break-all}.profile-avatar{height:38px;width:38px}.profile-overlay{padding:8px}.profile-overlay-content{border-radius:12px;max-height:calc(100vh - 16px)}.profile-overlay-header{padding:12px 14px}.profile-overlay-header h3{font-size:1.05rem}}.mfa-setup-card{max-width:440px}.mfa-setup-skip{border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1rem;text-align:center}.mfa-setup-skip-hint{color:var(--text-muted);font-size:.85rem;margin:.25rem 0 0}.mfa-setup-intro{color:var(--text-secondary);font-size:14px;margin:0 0 20px;text-align:center}.mfa-setup-options{display:flex;flex-direction:column;gap:12px}.mfa-setup-option{align-items:flex-start;background:var(--background-color);border:2px solid var(--border-color);border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:16px;text-align:left;transition:border-color .15s,background .15s;width:100%}.mfa-setup-option:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary-color)}.mfa-setup-option:disabled{cursor:not-allowed;opacity:.55}.mfa-option-icon{font-size:22px;margin-bottom:2px}.mfa-option-label{color:var(--text-primary);font-size:15px;font-weight:600}.mfa-option-desc{color:var(--text-secondary);font-size:13px}.mfa-totp-confirm{display:flex;flex-direction:column;gap:12px}.mfa-totp-confirm p{color:var(--text-secondary);font-size:14px;margin:0}.mfa-setup-actions{align-items:center;display:flex;gap:16px}.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-panels{position:relative;width:100%}.tab-content{transition:none;width:100%}.tab-vacation{background:var(--surface-color);inset:0;position:absolute}.tab-hidden{display:none}.availability-section,.vacation-section{box-sizing:border-box;max-width:100%;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-xs);justify-content:space-between;margin-bottom:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);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:.8rem;font-weight:500;min-width:70px;text-align:left}.time-inputs{align-items:center;display:flex;flex:1 1;gap:var(--spacing-xs);margin-left:var(--spacing-md);min-width:130px}.hour-input{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-sizing:border-box;font-size:1rem;max-width:80px;min-width:80px;padding:5px 6px;text-align:center;transition:border-color .2s ease-in-out;width:80px}.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)}.availability-container .button.button-edit,.availability-container .button.button-primary{border-radius:5px;font-size:.75rem;gap:4px;line-height:1;min-width:0;padding:4px 8px}@media (min-width:1200px){.availability-container{padding:0}}@media (min-width:769px) and (max-width:1199px){.availability-row{padding:var(--spacing-sm) var(--spacing-md)}.day-label{min-width:90px}.time-inputs{min-width:160px}}@media (max-width:768px){.availability-container{padding:0}.availability-title{font-size:1.125rem;margin-bottom:var(--spacing-sm)}.availability-container .button.button-edit,.availability-container .button.button-primary{border-radius:6px;flex:none;font-size:.75rem;min-width:0;padding:5px 7px}.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)}.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)}.no-vacations,.vacation-loading{color:var(--text-secondary);font-style:italic;padding:var(--spacing-xl);text-align:center}.no-vacations{margin:0}.vacation-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.vacation-item{align-items:flex-start;background-color:var(--background-color);border-radius:var(--radius-lg);gap:var(--spacing-md);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{color:var(--text-secondary);font-size:.875rem;font-weight:500;margin:0 0 var(--spacing-xs) 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)}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .button{width:100%}.vacation-item{align-items:stretch;flex-direction:column}.vacation-actions{justify-content:center;margin-top:var(--spacing-sm);width:100%}.vacation-actions .button{flex:1 1}}.toast{align-items:center;animation:toast-in .2s ease-out;border-radius:var(--radius-md);bottom:var(--spacing-lg);box-shadow:var(--shadow-lg);display:flex;font-size:.875rem;font-weight:500;gap:var(--spacing-sm);left:50%;max-width:90vw;padding:var(--spacing-sm) var(--spacing-md);position:fixed;transform:translateX(-50%);z-index:1000}.toast-error{background-color:var(--danger-color);border:1px solid var(--danger-hover);color:#fff}.toast-success{background-color:var(--success-color);border:1px solid var(--success-hover);color:#fff}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:.875rem;line-height:1;opacity:.8;padding:0 0 0 var(--spacing-xs)}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.vacation-add-row{align-items:center;background:var(--surface-color);border:1px solid var(--border-color);border-radius:5px;cursor:pointer;display:flex;gap:11px;padding:8px;text-align:left;transition:background .15s,border-color .15s;width:100%}.vacation-add-row:hover{background:var(--background-color);border-color:var(--border-color)}.vacation-add-label{color:var(--text-primary);font-size:14px;font-weight:600}.vacation-circle{align-items:center;background:var(--primary-color);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;height:27px;justify-content:center;min-width:27px;width:27px}.vacation-circle svg{color:#fff;height:14px;width:14px}.vacation-item{align-items:center;background:var(--surface-color);border:1px solid var(--border-color);border-radius:5px;display:flex;gap:11px;padding:8px}.vacation-item .vacation-content{flex:1 1 auto;min-width:0}.vacation-item .vacation-title{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.2}.vacation-item .vacation-dates{color:var(--text-primary);font-size:14px;font-weight:400;line-height:1.2;margin-top:4px}.vacation-item .vacation-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.button.button-delete{align-items:center;background:#dc2626;border:none;border-radius:8px;box-shadow:0 1px 1.5px #0000001a;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:6px;padding:6px 12px}.button.button-delete:hover{background:var(--danger-color)}.button.button-delete:disabled{cursor:not-allowed;opacity:.55}.button.button-delete svg{color:#fff;height:12px;width:12px}.button-label{font-size:.75rem}@media (max-width:480px){.button-label{display:none}.availability-row{align-items:center!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:6px!important;padding:6px 8px!important}.day-circle{flex:0 0 auto}.day-label{flex:1 1 auto!important;font-size:13px!important;font-weight:600!important;min-width:0!important;overflow:hidden;text-align:left!important;text-overflow:ellipsis;white-space:nowrap;width:auto!important}.time-inputs{flex:0 0 auto!important;gap:4px!important;justify-content:flex-start!important;min-width:0!important}.hour-input{box-sizing:border-box!important;font-size:.85rem!important;max-width:52px!important;min-width:52px!important;padding:4px 2px!important;width:52px!important}.to-label{font-size:12px!important}.button-group{flex:0 0 auto;gap:4px!important}.availability-container .button.button-edit,.availability-container .button.button-primary{border-radius:5px!important;flex:none!important;font-size:.7rem!important;min-width:0!important;padding:4px 6px!important}.vacation-item{flex-wrap:wrap}.vacation-actions{justify-content:flex-end;width:100%}}.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:1fr;list-style:none;margin:0;padding:0}@media (min-width:768px){.appointments-list{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.appointments-list{grid-template-columns:repeat(3,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:left}.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;justify-content:center;letter-spacing:.05em;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-sm)}.bookings-header{align-items:stretch;flex-direction:column;margin-bottom:var(--spacing-md);text-align:center}.bookings-header h3{font-size:1.5rem;justify-content:center}.appointment-item{gap:var(--spacing-xs);padding:var(--spacing-md)}.booking-appointment-details{gap:var(--spacing-xs);text-align:left}.booking-appointment-details p{font-size:.9rem;line-height:1.4}.appointment-actions{border-top:1px solid var(--border-color);flex-direction:row;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm)}.appointment-actions button{flex:1 1;font-size:.85rem;padding:var(--spacing-sm) var(--spacing-md)}}@media (max-width:480px){.bookings-overview{padding:var(--spacing-xs)}.appointment-item,.bookings-filters{padding:var(--spacing-sm)}.booking-appointment-details p{font-size:.875rem}}.bookings-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between;margin-top:var(--spacing-lg)}.bookings-pagination button{min-width:6rem}.bookings-pagination button:disabled{cursor:not-allowed;opacity:.4}.bookings-pagination-status{color:var(--text-secondary);font-size:.875rem}.appointment-edit-form{grid-gap:var(--spacing-sm);background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.appointment-edit-form label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.8rem;font-weight:500;gap:.25rem}.appointment-edit-form input{font-size:.9rem}.appointment-edit-form .error-message{grid-column:1/-1;margin:0}.appointment-edit-form .appointment-actions{grid-column:1/-1}.appointment-grid{grid-gap:10px 16px;display:grid;gap:10px 16px;grid-template-columns:1fr 1fr}.appointment-grid-cell{min-width:0}.appointment-grid-label{align-items:center;display:inline-flex;font-size:13px;gap:6px}.appointment-grid-label,.appointment-grid-label svg{color:var(--text-secondary)}.appointment-grid-value{color:var(--text-primary);font-size:14px;font-weight:500;margin-top:2px;padding-left:22px;word-break:break-word}.appointment-grid-value.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-grid-value .muted{color:var(--text-muted);font-weight:400}.appointment-status-row{border-top:1px dashed var(--border-color);display:flex;justify-content:center;margin-top:10px;padding-top:8px}@media (max-width:480px){.appointment-grid{gap:8px 10px}.appointment-grid-label{font-size:12px}.appointment-grid-value{font-size:13px;padding-left:20px}}.location-manager{border-top:1px solid var(--border-color);margin-top:24px;padding-top:18px}.location-manager-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.location-manager-header h4{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.location-form{background:var(--background-color);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;gap:12px;margin-top:12px;padding:14px}.location-form .form-group{display:flex;flex-direction:column;gap:4px}.location-form .form-group label{color:var(--text-primary);font-size:13px;font-weight:500}.location-form input[type=text]{border:1px solid var(--border-color);border-radius:6px;font-size:14px;padding:8px 10px}.location-default-row{align-items:center;color:var(--text-primary);display:flex;font-size:14px;gap:8px}.location-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:14px 0 0;padding:0}.location-item{align-items:flex-start;background:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px}.location-item.default{background:var(--primary-soft);border-color:var(--primary-color)}.location-content{flex:1 0 auto;min-width:0}.location-name-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.location-address{color:#475569;font-size:14px;margin:4px 0 0;word-break:break-word}.location-actions{display:flex;flex-shrink:0;flex-wrap:wrap;gap:6px}.profile-manager{padding:var(--spacing-lg);width:100%}.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;border-radius:var(--radius-md);color:var(--success-color);font-size:.875rem;margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.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)}.submit-button.button-danger{background-color:var(--danger-color)}.submit-button.button-danger:hover:not(:disabled){background-color:var(--danger-hover)}@media (max-width:768px){.profile-manager{margin:var(--spacing-sm);padding:var(--spacing-md)}.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-form{gap:var(--spacing-md)}}.duration-options-section{border-top:1px solid var(--border-color);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg)}.duration-options-section h4{margin:0 0 var(--spacing-sm) 0}.duration-options-hint{color:var(--text-secondary);font-size:.875rem;margin:0 0 var(--spacing-md) 0}.duration-options-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;margin:0 0 var(--spacing-md) 0;padding:0}.duration-options-list li{align-items:center;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:999px;display:inline-flex;gap:.5rem;padding:.25rem .75rem}.duration-remove-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.1rem;line-height:1;padding:0}.duration-remove-button:disabled{cursor:not-allowed;opacity:.4}.duration-add-form{align-items:center;display:flex;gap:var(--spacing-sm)}.duration-add-form input{border:1px solid var(--border-color);border-radius:6px;border-radius:var(--radius-md,6px);flex:0 1 8rem;padding:.4rem .6rem}.default-duration-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.default-duration-row select{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:6px;border-radius:var(--radius-md,6px);padding:.4rem .6rem}.password-change-section{border-top:1px solid var(--border-color);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg)}.password-change-section h4{margin:0 0 var(--spacing-sm) 0}.field-hint{color:var(--text-secondary);display:block;font-size:.8rem;font-style:italic;margin-top:var(--spacing-xs)}.custom-slug-section{border-top:1px solid var(--border-color);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg)}.custom-slug-section h4{margin:0 0 var(--spacing-sm) 0}.custom-slug-form{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.custom-slug-form input{border:1px solid var(--border-color);border-radius:6px;border-radius:var(--radius-md,6px);flex:1 1 14rem;font-family:JetBrains Mono,monospace;padding:.4rem .6rem}.google-calendar-section{border-top:1px solid var(--border-color);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg)}.google-calendar-section h4{margin:0 0 var(--spacing-sm) 0}.google-calendar-status{justify-content:space-between}.google-calendar-picker,.google-calendar-status{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.google-calendar-picker{margin-top:var(--spacing-md)}.google-calendar-picker label{font-weight:600}.google-calendar-picker select{border:1px solid var(--border-color);border-radius:6px;border-radius:var(--radius-md,6px);flex:1 1 16rem;padding:.4rem .6rem}@media (max-width:480px){.profile-manager{box-sizing:border-box;margin:0;padding:12px}.profile-form .form-group input,.profile-manager input[type=email],.profile-manager input[type=number],.profile-manager input[type=password],.profile-manager input[type=text],.profile-manager select,.profile-manager textarea{box-sizing:border-box;font-size:14px;width:100%}.custom-slug-form,.duration-add-form{flex-wrap:wrap;gap:8px}.custom-slug-form .submit-button,.custom-slug-form input,.duration-add-form .submit-button,.duration-add-form input{flex:1 1 100%}.duration-options-list{gap:6px}.default-duration-row{align-items:stretch;flex-direction:column;gap:6px}.default-duration-row select{width:100%}.location-manager-header{flex-wrap:wrap;gap:8px}.location-manager-header .submit-button{width:100%}.location-form{padding:12px}.location-form .form-actions{flex-wrap:wrap;gap:6px}.location-form .form-actions button{flex-basis:calc(50% - 3px);flex-grow:1;flex-shrink:1}.location-item{align-items:stretch;flex-direction:column}.location-actions{justify-content:flex-end}.location-actions .button{flex:0 0 auto}}.mfa-hint{color:var(--text-secondary);font-size:14px;margin:0 0 12px}.mfa-methods{display:flex;flex-direction:column;gap:12px}.mfa-method-row{align-items:flex-start;background:var(--background-color);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.mfa-method-info{display:flex;flex-direction:column;gap:2px;min-width:0}.mfa-method-label{color:var(--text-primary);font-size:14px;font-weight:600}.mfa-method-desc{color:var(--text-secondary);font-size:13px}.mfa-method-enabled{flex-shrink:0}.mfa-disable-form{flex-direction:column;margin-top:8px}.mfa-disable-actions,.mfa-disable-form{display:flex;gap:8px}.totp-setup{display:flex;flex-direction:column;gap:10px;max-width:420px}.totp-secret{background:var(--background-color);border:1px solid var(--border-color);border-radius:8px;font-family:monospace;font-size:18px;font-weight:600;letter-spacing:.1em;padding:12px 16px;text-align:center;word-break:break-all}.brand-header{display:flex;justify-content:center;margin-bottom: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{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{font-size:2rem;margin:0 0 var(--spacing-xs) 0}.booking-subtitle{color:var(--text-secondary);font-size:1.125rem;margin:0 0 var(--spacing-md) 0;min-height:1.6em}.booking-subtitle strong{color:var(--text-primary);font-weight:600}.booking-page-loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.booking-loading-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:24rem;padding:var(--spacing-2xl);text-align:center;width:100%}.booking-loading-card p{color:var(--text-secondary);margin:0}.booking-loading-spinner{animation:booking-spin .9s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:32px;margin:0 auto var(--spacing-md) auto;width:32px}@keyframes booking-spin{to{transform:rotate(1turn)}}.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{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);justify-content:center}.month-nav button{background-color:var(--surface-color);color:var(--primary-color);display:flex;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{font-size:1.25rem;min-width:200px}.month-nav-side{display:flex;flex-direction:column;gap:.25rem;min-width:40px}.month-nav-count{font-size:.75rem}.duration-selector{flex-direction:row}.duration-display,.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);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;padding:var(--spacing-sm);text-transform:uppercase}.calendar{grid-gap:var(--spacing-xs);gap:var(--spacing-xs);grid-template-columns:repeat(7,1fr)}.calendar-day{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;font-size:.875rem;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)}.calendar-day.empty{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}}@media (max-width:480px){.booking-page{padding:var(--spacing-xs)}.booking-container{padding:var(--spacing-sm) 0}.booking-header{margin-bottom:var(--spacing-md)}.booking-header h2{font-size:1.25rem;margin:0 0 var(--spacing-xs) 0}.booking-section,.calendar-section{border-radius:var(--radius-md);padding:var(--spacing-sm)}.calendar-controls{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.duration-selector{justify-content:center}.month-nav{gap:var(--spacing-md)}.month-nav>span{font-size:1rem;min-width:0}.month-nav-side{min-width:32px}.month-nav button{font-size:1rem;height:32px;width:32px}.month-nav-count{font-size:.7rem}.calendar-header{margin-bottom:var(--spacing-sm);padding:0 0 var(--spacing-xs) 0}.weekday-label{font-size:.7rem;letter-spacing:.25px;padding:0}.calendar{gap:4px}.calendar-day{border-radius:var(--radius-sm);font-size:.75rem}}.slots{margin-bottom:var(--spacing-xl)}.slots h3{font-size:1.25rem;margin:0 0 var(--spacing-lg) 0}.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{font-size:1.125rem;margin:0 0 var(--spacing-lg) 0}.form-group{margin-bottom:var(--spacing-md)}.form-group label{margin-bottom:var(--spacing-xs)}.form-group input,.form-group textarea{border-radius:var(--radius-md);font-size:.875rem;padding:var(--spacing-sm);transition:border-color .2s ease-in-out}.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}.character-count{color:var(--text-secondary);font-size:.75rem;margin-top:var(--spacing-xs)}.submit-button{background-color:var(--primary-color);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;margin-top:var(--spacing-md);padding:var(--spacing-md);transition:all .2s ease-in-out}.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;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}.hour-selector{grid-gap:var(--spacing-sm);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);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);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)}.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}}.booking-page{background:#f6f6f6}.booking-container{margin:0 auto;max-width:1200px;padding:24px 16px 48px}.booking-header h2{color:var(--text-primary);font-size:22px;font-weight:600;margin:0 0 4px;text-align:center}.booking-subtitle{color:#475569;font-size:14px;margin:0 0 6px;text-align:center}.booking-location-line{color:var(--text-primary)}@media (min-width:1024px){.booking-content{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}@media (max-width:1023px){.booking-content{display:flex;flex-direction:column;gap:16px}}.booking-section,.calendar-section{background:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;padding:20px}.calendar-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}@media (min-width:768px){.calendar-controls{align-items:center;flex-direction:row;justify-content:space-between}}.month-nav{align-items:center;display:flex;flex:1 1 auto;gap:16px;justify-content:space-between;padding-bottom:16px}.month-nav>span{color:var(--text-primary);flex:1 1 auto;font-size:16px;font-weight:600;text-align:center;white-space:nowrap}.month-nav-side{align-items:center;display:inline-flex;flex:0 0 auto;justify-content:center;position:relative}.month-nav-side .month-nav-count{left:50%;pointer-events:none;position:absolute;top:calc(100% + 2px);transform:translateX(-50%)}.month-nav button{align-items:center;background:var(--surface-color);border:1px solid var(--border-color);border-radius:50%;box-shadow:0 1px 1.5px #00000014;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:16px;height:36px;justify-content:center;width:36px}.month-nav button:hover{background:var(--surface-hover)}.month-nav-count{color:var(--text-secondary);font-size:11px;white-space:nowrap}.month-nav-count-short{display:none}@media (max-width:480px){.month-nav-count-unit{display:none}.month-nav-count-short{display:inline}}.duration-selector{align-items:center;display:flex;gap:4px}.duration-display,.duration-selector label{color:var(--text-primary);font-size:14px;font-weight:500}.calendar-header{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:4px}.weekday-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;padding:6px 0;text-align:center}.calendar{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{align-items:center;aspect-ratio:1/1;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--text-muted);display:flex;font-size:13px;font-weight:500;justify-content:center;-webkit-user-select:none;user-select:none}.calendar-day.empty{background:#0000;border-color:#0000}.calendar-day.clickable{background:var(--primary-soft);border-color:#0000;color:var(--text-primary);cursor:pointer}.calendar-day.clickable:hover{background:#dbeafe}.calendar-day.clickable.selected,.calendar-day.selected{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 4px 10px #2563eb40;color:#fff}.calendar-day.disabled{background:#0000;border-color:#0000;color:#cbd5e1;cursor:not-allowed}.slots h3{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 12px;text-align:center}.time-slot-picker h4{color:#475569;font-size:13px;font-weight:500;margin:0 0 8px;text-align:center}.hour-selector{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:14px}.hour-button{background:var(--surface-color);border:1px solid var(--primary-color);border-radius:8px;color:var(--primary-color);cursor:pointer;font-size:14px;font-weight:600;padding:8px 0;transition:background .15s,color .15s}.hour-button:hover{background:var(--primary-soft)}.hour-button.selected{background:var(--primary-color);color:#fff}.hour-button.disabled,.hour-button:disabled{cursor:not-allowed;opacity:.4}.selected-time-info{background:var(--background-color);border:1px solid var(--border-color);border-radius:8px;font-size:13px;margin-bottom:14px;padding:8px 12px}.booking-form h4,.selected-time-info{color:var(--text-primary);text-align:center}.booking-form h4{font-size:15px;font-weight:600;margin:8px 0 12px}.form-group{margin-bottom:12px}.form-group label{color:var(--text-primary);display:block;font-size:13px;font-weight:500;margin-bottom:4px}.form-group input,.form-group textarea{background:var(--surface-color);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;font-size:14px;padding:8px 10px;width:100%}.form-group textarea{min-height:64px;resize:vertical}.character-count{color:var(--text-muted);display:block;font-size:11px;margin-top:2px;text-align:right}.submit-button{background:var(--primary-color);border:1px solid var(--primary-color);border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px;transition:background .15s,color .15s;width:100%}.submit-button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.submit-button:disabled{cursor:not-allowed;opacity:.55}@media (max-width:1023px){.submit-button{background:var(--surface-color);color:var(--primary-color)}.submit-button:hover{background:var(--primary-soft);border-color:var(--primary-hover);color:var(--primary-hover)}.booking-content{width:100%}.booking-section,.calendar-section{box-sizing:border-box;min-width:0;width:100%}.calendar-section{overflow:hidden}.calendar,.calendar-header{gap:3px;width:100%}}@media (max-width:480px){.booking-container{padding:16px 12px 32px}.booking-section,.calendar-section{padding:14px}.month-nav-side{min-width:48px}.month-nav button{font-size:14px;height:32px;width:32px}.month-nav>span{font-size:15px}.calendar-day{border-radius:6px;font-size:12px}.weekday-label{font-size:10px;padding:4px 0}.hour-button{font-size:13px;padding:7px 0}}@media (max-width:360px){.calendar-day{font-size:11px}.booking-section,.calendar-section{padding:12px}}.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:560px;padding:var(--spacing-xl);text-align:center;width:100%}.thank-you-container h2{color:var(--primary-color);font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-md)}.thank-you-container p{color:var(--text-primary);font-size:.9375rem;line-height:1.6;margin:var(--spacing-xs) 0}.appointment-details{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.appointment-details h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:var(--spacing-md)}.detail-item{align-items:center;border-bottom:1px solid var(--border-color);color:var(--text-secondary);display:flex;font-size:.875rem;justify-content:space-between;margin:var(--spacing-sm) 0;padding:var(--spacing-xs) 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}.close-tab-hint{color:var(--text-secondary);font-style:italic;margin-top:var(--spacing-xl)}@media (max-width:480px){.thank-you-page{padding:var(--spacing-sm)}.thank-you-container{padding:var(--spacing-lg)}.detail-item{align-items:flex-start;flex-direction:column;gap:var(--spacing-xs)}}.confirm-page{align-items:center;background-color:var(--background-color);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.confirm-container{max-width:480px;width:100%}.confirm-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-2xl);text-align:center}.confirm-card h2{color:var(--text-primary);font-size:1.5rem;margin:0 0 var(--spacing-md) 0}.confirm-card p{color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0}.confirm-card .close-tab-hint{color:var(--text-muted);font-size:.875rem;font-style:italic;margin-top:var(--spacing-lg)}.confirm-status-icon{align-items:center;border-radius:999px;display:inline-flex;font-size:1.5rem;font-weight:700;height:48px;justify-content:center;margin-bottom:var(--spacing-md);width:48px}.confirm-status-icon.ok{background-color:#f0fdf4;border:1px solid #bbf7d0;color:var(--success-color)}.confirm-status-icon.error{background-color:#fef2f2;border:1px solid #fecaca;color:var(--danger-color)}.confirm-spinner{animation:confirm-spin .9s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:32px;margin:0 auto var(--spacing-md) auto;width:32px}@keyframes confirm-spin{to{transform:rotate(1turn)}}.app-footer{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#f6f6f6d9;border-top:1px solid #e2e8f099;bottom:0;color:var(--text-muted);font-size:11px;left:0;letter-spacing:.4px;padding:6px 12px;pointer-events:none;position:fixed;right:0;text-align:center;-webkit-user-select:none;user-select:none;z-index:100}body{padding-bottom:32px}
/*# sourceMappingURL=main.dc6e0cc6.css.map*/