body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.calendar{box-shadow:0 2px 4px #0000001a;margin:0 auto;max-width:800px;padding:20px}.calendar-header{margin-bottom:20px}.calendar-header button{background:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:8px 16px}.calendar-header button:hover{background:#e0e0e0}.calendar-header h2{color:#333;margin:0}.calendar-days{margin-bottom:20px}.weekdays{grid-gap:4px;gap:4px;margin-bottom:8px}.weekdays div{color:#666;font-weight:700;padding:8px;text-align:center}.days-grid{grid-gap:4px;gap:4px}.day{aspect-ratio:1;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:all .2s ease}.day:hover:not(.past):not(.other-month){background-color:#e8f5e9;border-color:#4caf50}.day.today{border-color:#2196f3;font-weight:700}.day.selected{background-color:#4caf50;border-color:#2e7d32}.day.past{background-color:#f5f5f5;color:#999}.day.other-month{background-color:#f9f9f9;color:#ccc}.day.other-month:hover{background-color:#f0f0f0;cursor:default}.time-slots{border-top:1px solid #eee;margin-top:20px;padding-top:20px}.time-slots h3{color:#333;margin:0 0 15px}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.time-slot{background:#fff;transition:all .2s ease}.time-slot.available{border-color:#4caf50;color:#2e7d32}.time-slot.available:hover{background-color:#e8f5e9}.time-slot.unavailable{border-color:#ddd}.time-slot:disabled{cursor:not-allowed;opacity:.7}.time-slot.selected{border-color:#1976d2;box-shadow:0 2px 4px #2196f34d;transform:scale(1.02)}.time-slot.selected:hover{background-color:#1976d2}.time-slot.available:hover{transform:scale(1.02);transition:all .2s ease}@media screen and (max-width:768px){.calendar{padding:10px}.day,.weekdays div{font-size:12px}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.booking-success{background-color:#fff;border:1px solid #4caf50;box-shadow:0 2px 8px #0000001a;margin:20px auto;max-width:600px;padding:24px}.success-header{align-items:center;display:flex;flex-direction:column;margin-bottom:30px;position:relative}.booking-success h3{color:#2e7d32;font-size:28px;margin:0 0 20px;text-align:center}.appointment-id-container{align-items:center;background-color:#f1f8e9;border:1px dashed #81c784;border-radius:8px;display:flex;flex-direction:column;margin:0 auto;max-width:400px;padding:15px;width:100%}.appointment-id-label{color:#2e7d32;font-size:16px;font-weight:500;margin-bottom:8px}.appointment-id-value{background-color:#fff;border:1px solid #bbdefb;border-radius:6px;box-shadow:0 2px 5px #0000000d;color:#1976d2;font-family:Courier New,monospace;font-size:26px;font-weight:700;letter-spacing:2px;padding:12px 20px;text-align:center;width:100%}.success-details{background-color:#f8f9fa;border-radius:6px;margin-bottom:20px;padding:20px}.detail-row{border-bottom:1px solid #e0e0e0;display:flex;line-height:1.5;margin:12px 0;padding-bottom:12px}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-row strong{color:#333;flex:0 0 120px;font-weight:600}.detail-row span{color:#444;flex:1 1}.success-note{border-top:1px dashed #4caf50;margin-top:24px;padding-top:20px;text-align:center}.important{color:#2e7d32;font-size:16px;font-weight:500;margin-bottom:20px}.qr-code-placeholder{background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;display:inline-block;margin-bottom:20px;padding:20px}.qr-icon{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:8px;display:flex;height:120px;justify-content:center;margin:0 auto 15px;width:120px}.qr-box{background-image:linear-gradient(90deg,#333 25%,#0000 0,#0000 75%,#333 0),linear-gradient(180deg,#333 25%,#0000 0,#0000 75%,#333 0);background-position:0 0,50px 50px;background-size:100px 100px;display:block;height:100px;position:relative;width:100px}.qr-box:before{background-color:#1976d2;border-radius:4px;content:"";height:50px;left:25px;position:absolute;top:25px;width:50px}.qr-code-placeholder p{color:#666;font-size:14px;margin:5px 0 0}.new-booking-btn{padding:12px 24px;transition:background-color .3s}.new-booking-btn:hover{background-color:#388e3c}@media screen and (max-width:480px){.booking-success{margin:10px;padding:16px}.appointment-id-value{font-size:18px;letter-spacing:1px;padding:8px 12px}.detail-row{flex-direction:column}.detail-row strong{margin-bottom:4px}.qr-icon{height:100px;width:100px}.qr-box{background-size:80px 80px;height:80px;width:80px}.qr-box:before{height:40px;left:20px;top:20px;width:40px}}.booking-form{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.booking-form h3{color:#333;margin-bottom:20px;margin-top:0}.form-group label{color:#444}.form-group input,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px;width:100%}.form-group textarea{min-height:80px;resize:vertical}.form-group input:focus,.form-group textarea:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f333;outline:none}.booking-form button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;margin-top:10px;padding:12px 20px;width:100%}.booking-form button:hover{background-color:#45a049}.booking-form button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{font-size:14px}@media (max-width:768px){.booking-form{padding:15px}.form-group input,.form-group textarea{font-size:14px}}.booking-page{margin:0 auto;max-width:1200px;padding:20px}.header{margin-bottom:30px}.booking-page h1{color:#333;font-size:2em;margin:0}.nav-buttons{display:flex;gap:15px}.nav-button{background-color:#4caf50;border-radius:5px;color:#fff;font-weight:500;padding:10px 20px;text-decoration:none;transition:background-color .3s}.nav-button:hover{background-color:#45a049}.admin-button{background-color:#2196f3}.admin-button:hover{background-color:#0b7dda}.booking-container{grid-gap:30px;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;gap:30px;grid-template-columns:1fr 1fr;padding:20px}.calendar-section{border-right:1px solid #eee;padding-right:20px}.form-section{padding-left:20px}@media (max-width:768px){.header{flex-direction:column;gap:15px;text-align:center}.booking-container{grid-template-columns:1fr}.calendar-section{border-bottom:1px solid #eee;border-right:none;padding-bottom:20px;padding-right:0}.form-section{padding-left:0;padding-top:20px}}.form-section{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.success-message{background:#f8f9fa;border-radius:10px;margin-top:20px;padding:30px;text-align:center}.success-message h2{color:#4caf50;margin-bottom:20px}.new-booking-btn{background-color:#4caf50;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;margin-top:20px;padding:10px 20px}.new-booking-btn:hover{background-color:#45a049}.refresh-button{background-color:#ff9800}.refresh-button:hover{background-color:#f57c00}.admin-dashboard{margin:0 auto;max-width:1200px;padding:20px}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.header-actions{align-items:center;display:flex;gap:10px}.home-link{display:inline-block}.settings-mode-toggle{display:flex;gap:10px;justify-content:center;margin-bottom:20px}.mode-btn{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:16px;padding:10px 20px;transition:all .3s}.mode-btn:hover{background-color:#eee}.mode-btn.active{background-color:#2196f3;border-color:#1976d2;color:#fff}.weekdays-selector{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.weekdays-selector label{align-items:center;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;gap:5px;padding:8px 16px;transition:all .3s}.weekdays-selector label.selected{background-color:#e3f2fd;border-color:#bbdefb;color:#1976d2}.weekdays-selector input[type=checkbox]{margin:0}.date-selector{align-items:center;display:flex;margin-bottom:20px}.date-selector input[type=date]{border:1px solid #ddd;border-radius:4px;margin-right:10px;padding:8px}.date-selector button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .3s}.date-selector button:hover{background-color:#0b7dda}.appointments-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-top:20px;padding:20px}.appointments-table{margin-top:15px}.appointments-table td,.appointments-table th{border-bottom:1px solid #ddd}.appointments-table th{font-weight:600}.appointments-table tr:hover{background-color:#f9f9f9}.id-cell{color:#2196f3;font-family:monospace;font-weight:500}.time-cell{color:#333;white-space:nowrap}.description-cell{word-wrap:break-word;max-width:300px;white-space:pre-wrap}.error{color:#f44336;margin-bottom:10px;margin-top:10px}@media screen and (max-width:768px){.admin-dashboard{padding:10px}.dashboard-header{align-items:flex-start;flex-direction:column;gap:10px}.header-actions{justify-content:space-between;width:100%}.settings-mode-toggle,.weekdays-selector{flex-direction:column}.appointments-section{overflow-x:auto;padding:15px}}.logout-btn{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px}.logout-btn:hover{background-color:#d32f2f}.dashboard-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 2fr}@media (max-width:768px){.dashboard-content{grid-template-columns:1fr}}.appointments-section,.settings-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.time-range input[type=time]{border:1px solid #ddd;border-radius:4px;padding:8px}.break-time-item{align-items:center;display:flex;gap:10px;margin-top:10px}.add-break-btn{background-color:#4caf50;margin-bottom:10px;padding:8px 16px}.add-break-btn,.remove-break-btn{border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background-color .3s}.remove-break-btn{background-color:#f44336;font-size:12px;padding:6px 12px}.save-btn{font-size:16px;margin-top:15px;padding:10px 20px}.load-btn,.save-btn{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background-color .3s}.load-btn{padding:8px 16px}.error-message,.success-message{margin-top:10px}input[type=date],select{border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}.admin-login{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh}.login-container{background-color:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;max-width:400px;padding:30px;width:100%}.login-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.login-header h2{color:#333;margin:0}.form-group{margin-bottom:20px}.form-group label{color:#333;margin-bottom:8px}.form-group input{padding:12px}.error-message{margin-bottom:15px}button{font-size:16px;padding:12px;transition:background-color .3s;width:100%}button:hover{background-color:#0b7dda}button:disabled{background-color:#bdbdbd}@media (max-width:480px){.login-container{padding:20px}.login-header{align-items:flex-start;flex-direction:column;gap:10px}}.manage-page{margin:0 auto;max-width:800px;padding:20px}.header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.header h2{color:#333;margin:0}.home-link{background-color:#4caf50;border-radius:4px;color:#fff;font-weight:500;padding:8px 16px;text-decoration:none;transition:background-color .3s}.home-link:hover{background-color:#45a049}.search-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.form-group{margin-bottom:15px}.form-group label{display:block;font-weight:500;margin-bottom:5px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px;width:100%}.search-container button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 15px}.search-container button:hover{background-color:#0b7dda}.error-message{background-color:#ffebee;color:#f44336;margin-top:15px}.success-message{background-color:#e8f5e9;color:#4caf50;margin-top:15px;padding:10px}.appointment-details{background-color:#f8f9fa;border:1px solid #ddd;border-radius:4px;margin-top:20px;padding:15px}.appointment-details h3{color:#333;margin-bottom:15px;margin-top:0}.appointment-details p{margin:8px 0}.cancel-btn{background-color:#f44336!important;margin-top:15px}.cancel-btn:hover{background-color:#d32f2f!important}@media (max-width:600px){.header{align-items:flex-start;flex-direction:column;gap:10px}.manage-page{padding:10px}.search-container{padding:15px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App,body{background-color:#f5f5f5}.App{display:flex;flex-direction:column;min-height:100vh}.App-header{background-color:#2c3e50;color:#fff;padding:1rem;text-align:center}main{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}footer{background-color:#2c3e50;color:#fff;padding:1rem;text-align:center}.booking-container{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr}@media (min-width:768px){.booking-container{grid-template-columns:1fr 1fr}}.calendar{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.calendar-header button{background:#3498db;border:none;border-radius:50%;color:#fff;cursor:pointer;height:30px;width:30px}.weekdays{font-weight:700;margin-bottom:.5rem;text-align:center}.days-grid,.weekdays{display:grid;grid-template-columns:repeat(7,1fr)}.days-grid{grid-gap:5px;gap:5px}.day{align-items:center;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center}.day:hover{background-color:#f0f0f0}.day.today{background-color:#e3f2fd}.day.selected{background-color:#2196f3;color:#fff}.day.past{color:#ccc;cursor:not-allowed}.time-slots{margin-top:1.5rem}.slots-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-top:1rem}.time-slot{border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:10px;text-align:center;transition:all .2s}.time-slot.available:hover{background-color:#e3f2fd;border-color:#2196f3}.time-slot.unavailable{background-color:#f5f5f5;color:#999;cursor:not-allowed}.booked{color:#e74c3c;display:block;font-size:.8rem;margin-top:5px}.appointment-form{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.form-group{margin-bottom:1rem}label{display:block;font-weight:700;margin-bottom:.5rem}input,select,textarea{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:1rem;padding:10px;width:100%}button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:10px 15px;transition:background-color .2s}button:hover{background-color:#0d8bf2}button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{background-color:#fadbd8;border-radius:4px;color:#e74c3c;margin-bottom:1rem;padding:10px}.booking-success{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:2rem;text-align:center}.booking-success h2{color:#27ae60;margin-bottom:1rem}.admin-panel{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.admin-controls{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr;margin-bottom:2rem}@media (min-width:768px){.admin-controls{grid-template-columns:1fr 1fr}}.setting-group{margin-bottom:1rem}.time-range{align-items:center;display:flex;gap:10px}.appointments-table{border-collapse:collapse;margin-top:1rem;width:100%}.appointments-table td,.appointments-table th{border:1px solid #ddd;padding:12px;text-align:left}.appointments-table th{background-color:#f5f5f5}.appointments-table tr:nth-child(2n){background-color:#f9f9f9}.main-nav ul{display:flex;justify-content:center;list-style:none;margin:1rem 0 0;padding:0}.main-nav li{margin:0 .5rem}.main-nav a{color:#fff;padding:.5rem;text-decoration:none}.main-nav a:hover{text-decoration:underline}@media (max-width:576px){main{padding:1rem}.booking-container{grid-template-columns:1fr}.slots-grid{grid-template-columns:repeat(2,1fr)}.main-nav ul{align-items:center;flex-direction:column}.main-nav li{margin:.2rem 0}.detail-item{display:flex;flex-direction:column;margin-bottom:1rem}.detail-label{font-weight:700;margin-bottom:.2rem}.form-actions{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr}}@media (min-width:577px) and (max-width:768px){.slots-grid{grid-template-columns:repeat(3,1fr)}.form-actions{display:flex;gap:.5rem;justify-content:flex-start}}.appointment-lookup,.appointment-manage{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.detail-item{margin-bottom:1rem}.detail-label{font-weight:700;margin-right:.5rem}.detail-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.success-message{background-color:#d4edda;border-radius:4px;color:#155724;margin-bottom:1rem;padding:1rem}.btn-secondary{background-color:#6c757d}.btn-secondary:hover{background-color:#5a6268}.btn-danger{background-color:#dc3545}.btn-danger:hover{background-color:#c82333}.time-slot.selected{background-color:#2196f3;border-color:#0d8bf2;color:#fff}.time-slot.current{border:2px solid #2196f3}.current-slot{color:#2196f3;display:block;font-size:.8rem;margin-top:5px}
/*# sourceMappingURL=main.15f97db2.css.map*/