body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafafa;color:#424242;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}:root{--md-primary:#f4a261;--md-primary-light:#ffd39f;--md-primary-dark:#c4733c;--md-secondary:#f7b267;--md-secondary-light:#ffe5a9;--md-secondary-dark:#d98e04;--md-surface:#fff9f4;--md-background:#fff4ea;--md-background-light:#fff6ee;--md-error:#d62828;--md-on-primary:#fff;--md-on-secondary:#3d2b1f;--md-on-surface:#5e4630;--md-on-background:#5e4630;--md-elevation-1:0 1px 3px #00000014,0 1px 2px #00000029;--md-elevation-2:0 3px 6px #0000001a,0 3px 6px #0000002e;--md-elevation-3:0 10px 20px #0000001f,0 6px 6px #00000029;--md-elevation-4:0 14px 28px #00000024,0 10px 10px #0000001f;--md-border-radius:12px;--md-border-radius-small:8px}.App{min-height:100vh}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}button:focus,input:focus,textarea:focus{outline:2px solid #007bff;outline-offset:2px}@media (max-width:768px){button,input,textarea{min-height:44px}}.loading-container{align-items:center;background:#fff4ea;background:var(--md-background);display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ffd39f;border-top:3px solid #f4a261;border:3px solid var(--md-primary-light);border-radius:50%;border-top-color:var(--md-primary);height:40px;width:40px}.loading-container p{color:#5e4630;color:var(--md-on-surface);font-size:.9rem;margin:0;opacity:.8}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.material-loader-container{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center}.material-loader-container.small{gap:12px}.material-loader-container.large{gap:20px}.material-loader,.material-loader-spinner{align-items:center;display:flex;justify-content:center}.material-loader-svg{animation:material-loader-rotate 2s linear infinite}.material-loader-container.small .material-loader-svg{height:24px;width:24px}.material-loader-container.medium .material-loader-svg{height:32px;width:32px}.material-loader-container.large .material-loader-svg{height:48px;width:48px}.material-loader-circle{stroke-dasharray:80,200;stroke-dashoffset:0;stroke-linecap:round;animation:material-loader-dash 1.5s ease-in-out infinite}.material-loader-container.primary .material-loader-circle{stroke:#ff6b35}.material-loader-container.secondary .material-loader-circle{stroke:#ff8c42}.material-loader-container.white .material-loader-circle{stroke:#fff}.material-loader-text{color:#666;font-size:14px;font-weight:500;text-align:center}.material-loader-container.primary .material-loader-text{color:#ff6b35}.material-loader-container.secondary .material-loader-text{color:#ff8c42}.material-loader-container.white .material-loader-text{color:#fff}.material-loader-container.small .material-loader-text{font-size:12px}.material-loader-container.large .material-loader-text{font-size:16px}@keyframes material-loader-rotate{to{transform:rotate(1turn)}}@keyframes material-loader-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.material-loader-backdrop{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000004d;display:flex;height:100vh;justify-content:center;left:0;pointer-events:auto;position:fixed;top:0;width:100vw;z-index:9999}.material-loader-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;min-width:200px;padding:32px;text-align:center}.login-container{align-items:center;background:var(--md-background);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{animation:slideUp .5s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001a;max-width:400px;padding:40px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:32px;text-align:center}.login-header h1{color:var(--md-primary);font-size:2.5rem;font-weight:700;margin:0 0 8px}.login-header p{color:#666;font-size:1rem;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{gap:8px}.form-group label{color:#333;font-weight:600}.form-group input{background:#fafafa;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:12px 16px;transition:all .3s ease}.form-group input:focus{background:#fff;border-color:var(--md-primary);box-shadow:0 0 0 3px #ff6b351a;outline:none}.form-group input:disabled{background:#f5f5f5;color:#999}.error-message{background:#ffebee;border-left:4px solid #c62828;color:#c62828;font-size:.9rem;padding:12px}.login-button{align-items:center;background:var(--md-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:center;margin-top:8px;min-height:48px;padding:14px 24px;transition:all .3s ease}.login-button:hover:not(:disabled){box-shadow:var(--md-elevation-4);transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.login-footer{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:16px;text-align:center}.login-footer p{color:#666;font-size:.85rem;margin:0}@media (max-width:480px){.login-card{margin:16px;padding:24px}.login-header h1{font-size:2rem}}.appointment-list{gap:1rem;overflow-y:auto;padding:1rem}.appointment-list,.day-group{display:flex;flex-direction:column}.day-group{gap:.5rem}.day-header{align-items:center;background:var(--md-surface);border-left:4px solid var(--md-primary);border-radius:var(--md-border-radius-small);box-shadow:var(--md-elevation-1);display:flex;justify-content:space-between;margin:.5rem;padding:.75rem 1rem}.day-header.today{background:var(--md-background);border-left-color:var(--md-primary)}.day-header.complete{background:#f5f5f5;border-left-color:#9e9e9e;opacity:.7}.day-header.upcoming{background:#f7b2671a;border-left-color:var(--md-secondary)}.day-header.past{background:#f443361a;border-left-color:#f44336}.day-name{color:#333;font-size:1.1rem;font-weight:700}.day-date{color:#666;font-size:.9rem}.day-status{align-items:center;display:flex;font-size:.85rem;font-weight:600;gap:.5rem}.status-text{letter-spacing:.5px;text-transform:uppercase}.status-icon{border-radius:50%;padding:2px}.status-icon.complete-icon{background:var(--md-secondary-light);color:var(--md-secondary)}.status-icon.today-icon{background:var(--md-primary-light);color:var(--md-primary-dark)}.status-icon.upcoming-icon{background:var(--md-secondary-light);color:var(--md-secondary-dark)}.status-icon.past-icon{background:#ffebee;color:#f44336}.today-indicator{background:#2196f3;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.appointment-list .day-appointments{display:flex;flex-direction:column;gap:1rem;padding-left:.75rem}.appointment-card{background:var(--md-surface);border:1px solid #e0e0e0;border-radius:var(--md-border-radius-small);box-shadow:var(--md-elevation-1);max-width:300px;padding:1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.appointment-card:hover{background:#fafafa;box-shadow:var(--md-elevation-3);transform:translateY(-2px)}.appointment-card.today{background:#f4a26114;border-left-color:var(--md-secondary)}.appointment-card.today:hover{background:#f4a2611f}.appointment-card.complete{background:#fafafa;border-left-color:#9e9e9e;opacity:.7}.appointment-card.complete:hover{background:#f0f0f0}.appointment-card.upcoming{background:#f7b2670f;border-left-color:var(--md-secondary)}.appointment-card.upcoming:hover{background:#f7b2671a}.appointment-card.past{background:#f443360f;border-left-color:#f44336}.appointment-card.past:hover{background:#f443361a}.appointment-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem}.appointment-time{background:#e3f2fd;border-radius:6px;color:#007bff;font-size:1.1rem;font-weight:700;padding:.25rem .5rem}.appointment-status{align-items:center;display:flex;font-size:.8rem;font-weight:600;gap:.25rem}.status-text-small{font-size:.75rem;letter-spacing:.3px;text-transform:uppercase}.appointment-actions,.appointment-content{display:flex;gap:.5rem}.appointment-content{flex-direction:column}.appointment-main-info{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.appointment-name{flex:1 1}.appointment-time-display{align-items:center;background:var(--md-background);border-radius:var(--md-border-radius-small);color:var(--md-primary);display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;padding:.4rem .8rem;white-space:nowrap}.appointment-name{font-size:1.4rem;font-weight:700;margin:0}.appointment-phone{color:#666;font-size:1.1rem;gap:.5rem}.phone-link{font-weight:600;gap:.5rem;transition:color .2s ease}.appointment-actions-bottom{border-top:1px solid #e9ecef;display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-top:.75rem}.action-btn{align-items:center;border:none;border-radius:var(--md-border-radius-small);cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;letter-spacing:.5px;min-height:44px;padding:.6rem 1.2rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.action-btn.complete-btn{background:#e8f5e8;border:1px solid #4caf50;color:#2e7d32;width:100%}.action-btn.complete-btn:hover{background:#c8e6c9;border-color:#4caf50;box-shadow:var(--md-elevation-1);transform:translateY(-1px)}.action-btn.restore-btn{background:#e3f2fd;border:1px solid #2196f3;color:#1976d2}.action-btn.restore-btn:hover{background:#bbdefb;border-color:#2196f3;box-shadow:var(--md-elevation-1);transform:translateY(-1px)}.action-btn.edit-btn{background:var(--md-background);border:1px solid var(--md-primary-dark);color:var(--md-primary)}.action-btn.edit-btn:hover{background:#e3f2fd;border-color:var(--md-primary);box-shadow:var(--md-elevation-1);transform:translateY(-1px)}.action-btn.delete-btn{background:#ffebee;border:1px solid #ffcdd2;color:var(--md-error)}.action-btn.delete-btn:hover{background:#ffcdd2;border-color:#ef9a9a;box-shadow:var(--md-elevation-1);transform:translateY(-1px)}.edit-delete-container{display:flex;gap:.5rem}.appointment-details{background-color:#f8f9fa;border-left:3px solid #007bff;border-radius:6px;margin-top:.5rem;padding:.75rem}.appointment-details p{color:#555;font-size:.9rem;line-height:1.4;margin:0}.empty-state{color:#666;padding:3rem 1rem;text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#333;font-size:1.5rem;margin:0 0 .5rem}.empty-state p{font-size:1rem;margin:0}@media (min-width:768px){.appointment-list{padding:1.5rem}.appointment-card{padding:1.25rem}.appointment-header{margin-bottom:1rem}.appointment-name{font-size:1.1rem}.appointment-phone{font-size:1rem}.appointment-details p{font-size:.95rem}.action-btn{font-size:.9rem;min-height:40px;padding:.6rem 1rem}}@media (min-width:768px) and (max-width:1023px){.appointment-list{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));padding:1.25rem}}.time-group{display:flex;flex-direction:column;gap:1rem}.time-divider{align-items:center;display:flex;margin:.5rem 0;padding:.5rem 0}.time-label{color:var(--md-primary);font-size:1.1rem;font-weight:700;margin-right:.75rem}.time-line{background:var(--md-primary-light);flex:1 1;height:2px}.appointment-form-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.appointment-form-container{background:var(--md-surface);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation-4);max-height:90vh;max-width:500px;overflow-y:auto;padding:1.5rem;width:100%}.appointment-form-container h2{color:var(--md-on-surface);font-size:1.5rem;font-weight:500;letter-spacing:.5px;margin:0 0 1.5rem;text-align:center}.appointment-form{gap:1rem}.appointment-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:var(--md-on-surface);font-size:.9rem;font-weight:500;margin-bottom:.25rem}.form-group input,.form-group textarea{background-color:var(--md-surface);border:1px solid #e0e0e0;border-radius:var(--md-border-radius-small);color:var(--md-on-surface);font-size:1rem;padding:.75rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.form-group input:focus,.form-group textarea:focus{background-color:var(--md-surface);border-color:var(--md-primary);box-shadow:0 0 0 2px #6200ea1a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.form-actions{display:flex;gap:1rem;margin-top:1rem}.btn{border:none;border-radius:var(--md-border-radius-small);cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;letter-spacing:.5px;min-height:44px;padding:.75rem 1.5rem;text-align:center;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-primary{background-color:var(--md-primary);box-shadow:var(--md-elevation-1);color:var(--md-on-primary)}.btn-primary:hover{background-color:var(--md-primary-dark);box-shadow:var(--md-elevation-2);transform:translateY(-1px)}.btn-secondary{background-color:#f5f5f5;border:1px solid #e0e0e0;color:var(--md-on-surface)}.btn-secondary:hover{background-color:#e0e0e0;box-shadow:var(--md-elevation-1);transform:translateY(-1px)}@media (min-width:768px){.appointment-form-container{padding:2rem}.appointment-form-container h2{font-size:1.75rem}.form-actions{justify-content:flex-end}.btn{min-width:120px}}.appointment-filters{background:var(--md-primary-light);border:none;border-radius:var(--md-border-radius);box-shadow:var(--md-elevation-1);padding:.75rem}.filters-header{align-items:center;display:flex;gap:.5rem;justify-content:center}.week-navigation{gap:1rem}.nav-button,.week-navigation{align-items:center;display:flex}.nav-button{background:var(--md-surface);border:1px solid #e0e0e0;border-radius:var(--md-border-radius-small);color:var(--md-on-surface);cursor:pointer;font-size:1rem;justify-content:center;min-height:40px;min-width:40px;padding:.5rem .75rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.nav-button:hover{background:#f5f5f5;border-color:var(--md-primary);box-shadow:var(--md-elevation-1);transform:translateY(-1px)}.current-week{align-items:center;display:flex;flex-direction:column;gap:.5rem}.current-week h3{color:var(--md-on-surface);font-size:1rem;font-weight:500;letter-spacing:.5px;margin:0;text-transform:capitalize}@media (max-width:768px){.appointment-filters{margin-bottom:1rem;padding:.4rem}.filters-header{gap:.5rem}.current-month h3,.nav-button{font-size:.9rem}.nav-button{min-height:32px;min-width:32px;padding:.3rem .4rem}.today-button{font-size:.7rem;padding:.15rem .4rem}}.appointment-agenda{background:var(--md-surface);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation-2);min-height:600px;overflow:hidden;overflow-x:auto}.calendar-grid{display:flex;flex-direction:column;min-width:1200px}.calendar-header{background:var(--md-background);border-bottom:2px solid var(--md-primary-dark);display:grid;grid-template-columns:150px repeat(auto-fit,minmax(120px,1fr))}.calendar-header-cell{border-right:1px solid #e0e0e0;color:#495057;font-size:1rem;font-weight:600;padding:1.2rem .5rem;text-align:center}.calendar-header-cell.day-header{border-left:none;border-radius:0;box-shadow:none;margin:0;padding:1rem .5rem;text-align:center}.calendar-header-cell.time-header{color:var(--md-primary);font-weight:600;text-align:center}.calendar-body{display:flex;flex-direction:column;min-height:600px}.day-row{border-bottom:2px solid var(--md-primary);display:grid;grid-template-columns:150px repeat(auto-fit,minmax(120px,1fr));min-height:120px}.day-row:hover{background:#f5f5f5}.day-slot{align-items:center;color:var(--md-primary);font-size:.9rem;font-weight:600;justify-content:center;padding:1rem}.day-slot,.time-cell{background:var(--md-surface);border-right:1px solid #e0e0e0;display:flex;flex-direction:column}.time-cell{gap:.25rem;min-height:120px;padding:.75rem .5rem}.time-cell .agenda-appointment:first-child{margin-top:1rem}.time-cell .agenda-appointment:last-child{margin-bottom:1rem}.day-row.other-month{background:#f8f9fa;color:#adb5bd}.day-row.today{background:var(--md-background);border-color:var(--md-primary)}.day-row.past{background:#f5f5f5;color:#6c757d}.day-info{display:flex;flex-direction:column;gap:.25rem;text-align:center}.day-name{color:#666;font-size:.9rem;font-weight:500;text-transform:capitalize}.day-number{color:#333;font-size:1.1rem;font-weight:600}.today-indicator{background:var(--md-primary);border-radius:12px;color:#fff;font-size:.7rem;font-weight:500;margin-top:.25rem;padding:.2rem .5rem}.agenda-appointment{background:var(--md-surface);border:1px solid #e0e0e0;border-radius:var(--md-border-radius-small);box-shadow:var(--md-elevation-1);margin-bottom:.5rem;max-width:180px;padding:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.agenda-appointment:hover{background:#f8f9fa;box-shadow:var(--md-elevation-2);transform:translateY(-1px)}.agenda-appointment.complete{background:#f5f5f5;border-color:#e0e0e0}.appointment-time{color:var(--md-primary);font-size:.8rem;font-weight:600;margin-bottom:.25rem}.appointment-info{display:flex;flex-direction:column;gap:.25rem}.appointment-name{color:#333;font-size:.9rem;font-weight:500;line-height:1.2}.appointment-name.complete-name{color:#9e9e9e;text-decoration:line-through}.appointment-phone,.phone-link{align-items:center;display:flex;gap:.25rem}.phone-link{color:var(--md-primary);font-size:.8rem;text-decoration:underline;transition:color .2s cubic-bezier(.4,0,.2,1)}.phone-link:hover{color:var(--md-primary-dark);text-decoration:underline}.appointment-details{color:#666;font-size:.8rem;line-height:1.3;margin-top:.25rem}@media (max-width:768px){.appointment-agenda{min-width:100%;overflow-x:auto}.calendar-grid{min-width:700px}.calendar-header,.day-row{grid-template-columns:100px repeat(auto-fit,minmax(80px,1fr))}.day-slot{font-size:.7rem;padding:.5rem .25rem}.time-cell{min-height:60px;padding:.25rem}.agenda-appointment{font-size:.75rem;margin-bottom:.125rem;padding:.25rem}.appointment-name{font-size:.75rem;line-height:1.1}.appointment-details,.appointment-phone{font-size:.65rem}.appointment-time{font-size:.7rem;margin-bottom:.125rem}.calendar-header-cell{font-size:.75rem;padding:.5rem .25rem}.day-name{font-size:.7rem}.day-number{font-size:.9rem}.today-indicator{font-size:.6rem;padding:.1rem .3rem}}@media (min-width:769px) and (max-width:1024px){.calendar-grid{min-width:1000px}.time-cell{min-height:100px}.agenda-appointment{padding:.4rem}}.view-controls{background:var(--md-surface);border:none;border-radius:var(--md-border-radius);box-shadow:var(--md-elevation-1);display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.view-controls.agenda-mode{gap:.25rem}.time-mode-controls{display:flex;gap:.25rem;margin-bottom:.25rem;max-height:50px;opacity:1;overflow:hidden;padding:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.time-mode-controls.hidden{border:none;margin-bottom:0;max-height:0;opacity:0;padding:0}.filter-controls,.view-mode-controls{display:flex;gap:.25rem;justify-content:center}.filter-controls{border-top:1px solid #e0e0e0;flex-wrap:wrap;margin-top:.25rem;padding-top:.25rem}.time-btn{align-items:center;background:none;border:none;border-radius:var(--md-border-radius-small);color:var(--md-on-surface);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.4rem;justify-content:center;letter-spacing:.3px;min-height:36px;padding:.5rem .8rem;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.time-btn:hover{box-shadow:0 1px 2px #0000000d;transform:translateY(-1px)}.time-btn.active{background:var(--md-secondary);box-shadow:0 0 0 1px var(--md-secondary-dark);color:#fff}.time-btn.active:hover{box-shadow:0 0 0 1px var(--md-secondary-dark),0 1px 2px #0000000d;transform:translateY(-1px)}.view-btn{align-items:center;background:none;border:none;border-radius:var(--md-border-radius-small);color:var(--md-on-surface);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;letter-spacing:.5px;min-height:44px;padding:.6rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.view-btn:hover:not(:disabled){box-shadow:0 1px 2px #0000000d;transform:translateY(-1px)}.view-btn:disabled{cursor:not-allowed;opacity:.4}.view-btn.active{background:var(--md-primary);box-shadow:0 0 0 1px var(--md-primary-dark);color:#fff}.view-btn.active:hover:not(:disabled){box-shadow:0 0 0 1px var(--md-primary-dark),0 1px 2px #0000000d;transform:translateY(-1px)}.filter-btn{align-items:center;background:none;border:none;border-radius:var(--md-border-radius-small);color:var(--md-on-surface);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.4rem;justify-content:center;letter-spacing:.3px;min-height:36px;padding:.5rem .8rem;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.filter-btn:hover:not(:disabled){box-shadow:0 1px 2px #0000000d;transform:translateY(-1px)}.filter-btn:disabled{cursor:not-allowed;opacity:.4}.filter-btn.active{background:var(--md-primary);box-shadow:0 0 0 1px var(--md-primary-dark);color:#fff}.filter-btn.active:hover:not(:disabled){box-shadow:0 0 0 1px var(--md-primary-dark),0 1px 2px #0000000d;transform:translateY(-1px)}.confirm-modal-backdrop{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:10000}.confirm-modal{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:400px;width:100%}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.confirm-modal-header{padding:24px 24px 0}.confirm-modal-header h3{color:var(--md-on-surface);font-size:1.25rem;font-weight:600;margin:0}.confirm-modal-content{padding:16px 24px}.confirm-modal-content p{color:var(--md-on-surface-variant);font-size:1rem;line-height:1.5;margin:0}.confirm-modal-actions{display:flex;gap:12px;justify-content:flex-end;padding:0 24px 24px}.confirm-modal-button{border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.confirm-modal-button.cancel{background:#0000;border:1px solid var(--md-outline);color:var(--md-primary)}.confirm-modal-button.cancel:hover{background:var(--md-primary-container);border-color:var(--md-primary)}.confirm-modal-button.confirm{color:#fff}.confirm-modal-button.confirm.danger{background:var(--md-error)}.confirm-modal-button.confirm.danger:hover{background:var(--md-error-dark);box-shadow:var(--md-elevation-2);transform:translateY(-1px)}.confirm-modal-button.confirm.warning{background:var(--md-secondary)}.confirm-modal-button.confirm.warning:hover{background:var(--md-secondary-dark);box-shadow:var(--md-elevation-2);transform:translateY(-1px)}.confirm-modal-button.confirm.info{background:var(--md-primary)}.confirm-modal-button.confirm.info:hover{background:var(--md-primary-dark);box-shadow:var(--md-elevation-2);transform:translateY(-1px)}@media (max-width:480px){.confirm-modal{margin:20px;max-width:none}.confirm-modal-actions{flex-direction:column}.confirm-modal-button{width:100%}}.search-modal-backdrop{-webkit-overflow-scrolling:touch;align-items:flex-start;background:#00000080;box-sizing:border-box;display:flex;justify-content:center;left:0;overflow-y:auto;padding:max(12px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom));position:fixed;width:100%;z-index:10000}.search-modal{animation:searchModalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;flex-shrink:0;margin-top:min(12vh,64px);max-width:400px;width:100%}@keyframes searchModalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.search-modal-header{padding:24px 24px 0}.search-modal-header h3{color:var(--md-on-surface);font-size:1.25rem;font-weight:600;margin:0}.search-modal-content{padding:16px 24px}.search-modal-label{color:var(--md-on-surface);display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.search-modal-input-wrap{align-items:center;display:flex;position:relative}.search-modal-input-icon{color:var(--md-on-surface-variant);left:.75rem;pointer-events:none;position:absolute}.search-modal-input-wrap input{background-color:var(--md-surface);border:1px solid #e0e0e0;border-radius:var(--md-border-radius-small);box-sizing:border-box;color:var(--md-on-surface);font-size:16px;padding:.75rem .75rem .75rem 2.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.search-modal-input-wrap input:focus{border-color:var(--md-primary);box-shadow:0 0 0 2px #6200ea1a;outline:none}.search-modal-hint{color:var(--md-on-surface-variant);font-size:.85rem;line-height:1.4;margin:.75rem 0 0}.search-modal-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 24px 24px}.search-modal-button{border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.search-modal-button:disabled{cursor:not-allowed;opacity:.5}.search-modal-button.cancel,.search-modal-button.clear{background:#0000;border:1px solid var(--md-outline);color:var(--md-primary)}.search-modal-button.cancel:hover,.search-modal-button.clear:hover{background:var(--md-primary-container);border-color:var(--md-primary)}.search-modal-button.confirm{background:var(--md-primary);color:#fff}.search-modal-button.confirm:hover:not(:disabled){background:var(--md-primary-dark);box-shadow:var(--md-elevation-2);transform:translateY(-1px)}@media (min-width:768px){.search-modal-backdrop{align-items:center}.search-modal{margin-top:0}}@media (max-width:480px){.search-modal{margin-top:8px;max-width:none}.search-modal-header{padding:16px 16px 0}.search-modal-content{padding:12px 16px}.search-modal-actions{flex-direction:column;padding:0 16px 16px}.search-modal-button{width:100%}}.appointment-manager{background:var(--md-background);min-height:100vh;padding-bottom:1rem;padding-top:100px}.app-header{background:var(--md-surface);border-bottom:1px solid #0000001a;border-radius:0;box-shadow:var(--md-elevation-1);flex-direction:row;justify-content:space-between;left:0;padding:.7rem 1.5rem;position:fixed;right:0;text-align:center;top:0;z-index:1000}.app-header,.header-actions{align-items:center;display:flex}.header-actions{gap:1rem}.logout-button{align-items:center;background-color:var(--md-error);border:none;border-radius:15px;box-shadow:var(--md-elevation-1);color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:400;height:36px;justify-content:center;padding:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:36px}.logout-button:hover{background-color:#d32f2f;box-shadow:var(--md-elevation-2);transform:translateY(-1px)}.app-header h1{align-items:center;display:flex;font-size:2rem;font-weight:500;gap:12px;letter-spacing:.5px;margin:0}.app-header h1,.header-icon{color:var(--md-primary)}.app-main{margin:0 auto;max-width:1200px;padding:0 1rem}.controls-container{flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.controls-container,.fab{align-items:center;display:flex;justify-content:center}.fab{background:var(--md-primary);border:none;border-radius:15px;bottom:2rem;box-shadow:var(--md-elevation-3);color:var(--md-on-primary);cursor:pointer;height:56px;position:fixed;right:2rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:56px;z-index:1000}.fab:hover{background:var(--md-primary-dark);box-shadow:var(--md-elevation-4);transform:translateY(-2px)}.fab:active{box-shadow:var(--md-elevation-2);transform:translateY(0)}.error-message{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:1rem;padding:1rem;transition:all .2s ease}.error-message:hover{background:#f1b0b7;box-shadow:0 2px 8px #721c2433;transform:translateY(-1px)}.error-message button{background:none;border:none;border-radius:4px;color:#721c24;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:background-color .2s ease}.error-message button:hover{background-color:#721c241a}.search-active-banner{background:#e8def8;background:var(--md-primary-container,#e8def8);border-radius:8px;border-radius:var(--md-border-radius,8px);font-size:.9rem;font-weight:500;gap:.75rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.search-active-banner,.search-active-banner button{align-items:center;color:var(--md-on-surface);display:flex}.search-active-banner button{background:#0000;border:none;border-radius:50%;cursor:pointer;justify-content:center;padding:.35rem;transition:background-color .2s ease}.search-active-banner button:hover{background-color:#00000014}@media (min-width:768px){.appointment-manager{padding:120px 2rem 2rem}.app-header{flex-direction:row;justify-content:space-between;text-align:left}.app-header h1{font-size:2.5rem}}@media (min-width:768px) and (max-width:1023px){.app-header{flex-direction:row;justify-content:space-between;text-align:left}}@media (max-width:768px){.controls-container{align-items:center;flex-direction:column;gap:.75rem}.fab{bottom:1.5rem;height:52px;right:1.5rem;width:52px}.fab-icon{font-size:1.8rem}}
/*# sourceMappingURL=main.bd8700b0.css.map*/