:root{font-family:Segoe UI,Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#0d1b3f;background-color:#f4f7ff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:#f4f7ff}#root{width:100%;margin:0 auto}.animated-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}.booking-header{position:sticky;top:0;z-index:5;background:linear-gradient(135deg,#e3f2fd,#fff);border-bottom:1px solid #d5e5ff;box-shadow:0 6px 18px #0f3b7c14;padding:18px 24px;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:14px}.logo-img{height:48px;width:auto;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(30,136,229,.18))}.logo-text{display:flex;flex-direction:column;color:#0f3b7c}.logo-title{font-weight:800;font-size:18px;letter-spacing:.5px}.logo-subtitle{font-size:12px;color:#3f5f92}.booking-footer{background:linear-gradient(135deg,#e3f2fd,#f5f9ff);padding:20px;text-align:center;color:#0f3b7c;font-size:13px;border-top:1px solid #d5e5ff;box-shadow:0 -4px 12px #0f3b7c14}.booking-footer p{margin:4px 0;font-weight:600}.booking-page{position:relative;background:linear-gradient(180deg,#e8f2ff,#f7fbff,#fff)}.booking-page:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(100,181,246,.25),transparent 32%),radial-gradient(circle at 80% 10%,rgba(79,195,247,.18),transparent 28%),radial-gradient(circle at 50% 80%,rgba(129,212,250,.18),transparent 30%);z-index:0;pointer-events:none}.booking-container,.step-content,.service-card,.selected-service-card,.info-box,.calendar,.success-message,.booking-form,.booking-summary,.booking-hero{position:relative;z-index:1}.booking-container{animation:fadeInSoft .6s ease}.booking-hero{margin:0 0 24px;padding:18px 20px;border-radius:14px;background:#ffffffd9;border:1px solid #d5e5ff;box-shadow:0 10px 24px #0f3b7c14;display:flex;justify-content:space-between;gap:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero-text{color:#0f3b7c;font-size:15px;line-height:1.5}.hero-sub{margin:6px 0 0;color:#2d4f8f}.hero-badge{align-self:center;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,#42a5f5,#1e88e5);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:1px;box-shadow:0 8px 18px #1e88e547}.booking-header{background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e0ecff}.logo h1{color:#1e88e5;letter-spacing:.5px}.booking-title{color:#0f3b7c}.step-circle{background-color:#e3ecff;color:#4f5d75}.step-label.active{color:#1e88e5}.step-line{background-color:#d5e5ff}.service-card{border:2px solid #d5e5ff;background:#ffffffeb;box-shadow:0 8px 18px #0f3b7c14}.service-card:hover{box-shadow:0 12px 24px #1e88e52e;transform:translateY(-4px);border-color:#42a5f5}.service-card-header h3,.service-name{color:#1e88e5}.change-service-button,.back-step-button,.back-button{border-color:#90caf9;color:#1e88e5}.change-service-button:hover,.back-step-button:hover,.back-button:hover{background:#e3f2fd}.next-step-button{background:linear-gradient(135deg,#42a5f5,#1e88e5);box-shadow:0 6px 16px #1e88e54d}.next-step-button:hover{background:linear-gradient(135deg,#1e88e5,#1565c0);box-shadow:0 10px 24px #1565c059}.calendar-header{background:#eaf2ff}.calendar-nav-button{border-color:#bbdefb;color:#0f3b7c}.calendar-nav-button:hover{background-color:#1e88e5;color:#fff;border-color:#1e88e5}.calendar-day.available{background-color:#e3f2fd;border-color:#1e88e5;color:#1e88e5}.calendar-day.available:hover,.calendar-day.selected{background-color:#1e88e5;color:#fff;border-color:#1565c0;box-shadow:0 4px 12px #1565c04d}.selected-date-info{background-color:#e3f2fd;border-left-color:#1e88e5}.time-slot-button{border-color:#cfe0ff}.time-slot-button:hover{border-color:#1e88e5;background:#eaf3ff}.time-slot-button.selected{background:linear-gradient(135deg,#42a5f5,#1e88e5);color:#fff;border-color:#1e88e5}.submit-booking-button{background:linear-gradient(135deg,#42a5f5,#1e88e5);box-shadow:0 6px 16px #1e88e54d}.submit-booking-button:hover:not(:disabled){background:linear-gradient(135deg,#1e88e5,#1565c0);box-shadow:0 10px 24px #1565c059}.success-icon{background:linear-gradient(135deg,#42a5f5,#1e88e5);box-shadow:0 10px 24px #1e88e540}.new-booking-button{background:linear-gradient(135deg,#42a5f5,#1e88e5);box-shadow:0 6px 16px #1e88e540}.new-booking-button:hover{background:linear-gradient(135deg,#1e88e5,#1565c0)}.booking-header,.booking-container,.step-content{animation:floatUp .6s ease,fadeInSoft .7s ease}@keyframes fadeInSoft{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes floatUp{0%{transform:translateY(4px)}to{transform:translateY(0)}}.booking-page{min-height:100vh;height:100vh;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.header-actions{display:flex;align-items:center;gap:15px}.back-button{padding:8px 16px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#495057;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.back-button:hover{background-color:#e9ecef;border-color:#adb5bd;transform:translate(-2px)}.language-selector{display:flex;gap:10px}.lang-btn{padding:5px 15px;border:1px solid #ddd;background:#fff;cursor:pointer;border-radius:4px}.lang-btn.active{background-color:#1e88e5;color:#fff;border-color:#1e88e5}.booking-container{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:30px 20px;overflow-y:visible;position:relative}.booking-title{text-align:center;margin-bottom:20px;color:#0f3b7c;font-size:30px;letter-spacing:.4px}.steps-progress{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px;position:relative}.step-container{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.step-circle{width:50px;height:50px;border-radius:50%;background-color:#e3ecff;color:#4f5d75;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;margin-bottom:10px;transition:all .3s}.step-circle.active,.step-circle.completed{background:linear-gradient(135deg,#42a5f5,#1e88e5);color:#fff;box-shadow:0 6px 16px #1e88e559}.step-label{font-size:14px;color:#999;text-align:center}.step-label.active{color:#1e88e5;font-weight:700}.step-line{position:absolute;top:25px;left:50%;right:-50%;height:2px;background-color:#d5e5ff;z-index:-1}.step-line.completed{background:linear-gradient(90deg,#42a5f5,#1e88e5)}.step-content{background-color:#fff;padding:30px;border-radius:8px;box-shadow:0 10px 24px #0f3b7c14;border:1px solid #d5e5ff;position:relative;z-index:1;overflow:visible;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filters-section{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap}.filter-group{flex:1;min-width:200px}.filter-group label{display:block;margin-bottom:8px;font-weight:700;color:#333}.filter-select,.search-input{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.search-input{padding:10px 15px}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.service-card{border:2px solid #27ae60;border-radius:8px;padding:20px;cursor:pointer;transition:all .3s;background-color:#fff;position:relative;z-index:1;pointer-events:auto;-webkit-user-select:none;user-select:none}.service-card:hover{box-shadow:0 4px 12px #27ae604d;transform:translateY(-2px)}.service-card-header h3{margin:0 0 15px;color:#27ae60;font-size:16px}.service-card-body{color:#666}.service-address{margin:0 0 8px;font-weight:500}.service-district{margin:0;font-size:14px;color:#999}.no-results{text-align:center;padding:40px;color:#999}.preselected-service-info{margin-bottom:30px}.info-box{background:#f8f9fa;border:2px solid #27ae60;border-radius:12px;padding:20px;text-align:center}.info-box h3{margin:0 0 15px;color:#27ae60;font-size:18px}.selected-service-card{background:#fff;border-radius:8px;padding:15px;margin:15px 0;box-shadow:0 2px 8px #0000001a}.service-name{font-size:16px;font-weight:600;color:#27ae60;margin:0 0 8px}.change-service-button{margin-top:15px;padding:10px 20px;background:transparent;border:2px solid #27ae60;border-radius:6px;color:#27ae60;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.change-service-button:hover{background:#27ae60;color:#fff}.next-step-button-container{margin-top:30px;text-align:center}.next-step-button{padding:14px 30px;background:linear-gradient(135deg,#27ae60,#219a52);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #27ae604d}.next-step-button:hover{background:linear-gradient(135deg,#219a52,#1e8449);box-shadow:0 4px 12px #27ae6066;transform:translateY(-2px)}.step-header{margin-bottom:20px}.step-header h3{margin:0 0 8px;color:#333;font-size:20px}.service-info{margin:0;color:#666;font-size:14px}.back-step-button{margin-bottom:20px;padding:8px 16px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#495057;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.back-step-button:hover{background-color:#e9ecef;border-color:#adb5bd}.loading-dates{text-align:center;padding:40px;color:#666}.spinner-small{width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #27ae60;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.date-selection{margin-top:20px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:10px;background-color:#f8f9fa;border-radius:8px}.calendar-nav-button{padding:8px 16px;background-color:#fff;border:1px solid #dee2e6;border-radius:6px;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s;color:#495057}.calendar-nav-button:hover{background-color:#27ae60;color:#fff;border-color:#27ae60}.calendar-month{margin:0;font-size:18px;font-weight:600;color:#333;text-transform:capitalize}.calendar{background-color:#fff;border-radius:8px;padding:15px;box-shadow:0 2px 8px #0000001a}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:10px}.weekday{text-align:center;font-weight:600;color:#666;font-size:12px;padding:8px;text-transform:uppercase}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-day{aspect-ratio:1;border:1px solid #e0e0e0;background-color:#fff;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;color:#333}.calendar-day.empty{border:none;background-color:transparent;cursor:default}.calendar-day:hover:not(.disabled):not(.empty){background-color:#e8f5e9;border-color:#27ae60}.calendar-day.available{background-color:#e8f5e9;border-color:#27ae60;color:#27ae60;font-weight:600}.calendar-day.available:hover{background-color:#27ae60;color:#fff}.calendar-day.selected{background-color:#27ae60;color:#fff;border-color:#219a52;font-weight:700;box-shadow:0 2px 8px #27ae6066}.calendar-day.disabled{background-color:#f5f5f5;color:#ccc;cursor:not-allowed;border-color:#e0e0e0}.calendar-day:disabled{opacity:.5}.calendar-day.today{background-color:#fff;color:#1e88e5;border:2px solid #1e88e5;font-weight:700;cursor:pointer;position:relative;box-shadow:0 2px 8px #1e88e533}.calendar-day.today:hover{background-color:#f5f5f5;border-color:#1565c0;box-shadow:0 3px 12px #1e88e54d}.calendar-day.today:after{content:"Сегодня";position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:10px;font-weight:400;white-space:nowrap;color:#1e88e5}@media(max-width:768px){.calendar-day.today{border-width:2px;font-size:14px;padding:8px 4px}.calendar-day.today:after{font-size:9px;bottom:-16px;font-weight:500}.calendar-day.today:hover{background-color:#f0f0f0}.selected-date-info{padding:16px}.selected-date-info p{font-size:14px}.today-warning-box{padding:14px 12px!important}.today-warning-box p{font-size:14px!important;line-height:1.5}.today-slots-container{padding:14px 12px!important;margin-top:16px!important}.today-slots-container h4{font-size:15px!important;line-height:1.4;margin-bottom:14px!important}}.selected-date-info{margin-top:25px;padding:20px;background-color:#e8f5e9;border-radius:8px;border-left:4px solid #27ae60;text-align:center}.selected-date-info p{margin:0 0 15px;color:#333;font-size:16px}.selected-date-info strong{color:#27ae60;font-size:18px}.no-available-dates{margin-top:30px;padding:30px;text-align:center;background-color:#fff3cd;border-radius:8px;border-left:4px solid #ffc107;color:#856404}.no-available-dates p{margin:8px 0}.booking-footer{background-color:#fff;padding:20px;text-align:center;color:#666;font-size:12px;margin-top:auto}.booking-footer p{margin:5px 0}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:20px}.time-slot-button{padding:12px 20px;background-color:#fff;border:2px solid #dee2e6;border-radius:8px;color:#495057;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.time-slot-button:hover{background-color:#f8f9fa;border-color:#27ae60;transform:translateY(-2px)}.time-slot-button.selected{background-color:#27ae60;border-color:#27ae60;color:#fff}.time-slot-button.full{background-color:#fdeaea!important;border-color:#dc3545!important;color:#dc3545!important;cursor:not-allowed}.time-slot-button.full:hover{background-color:#f8d7da!important;border-color:#dc3545!important;color:#dc3545!important;transform:none}.selected-time-info{margin-top:25px;padding:20px;background-color:#e8f5e9;border-radius:8px;border-left:4px solid #27ae60;text-align:center}.selected-time-info p{margin:0 0 15px;color:#333;font-size:16px}.booking-summary{margin-top:15px;padding:15px;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #27ae60}.booking-summary p{margin:5px 0;color:#495057;font-size:14px}.booking-form{margin-top:25px;max-width:600px;margin-left:auto;margin-right:auto}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-group label .required{color:#dc3545;margin-left:2px}.form-group label .optional{color:#6c757d;font-weight:400;font-size:12px;margin-left:5px}.form-input,.form-textarea{width:100%;padding:12px;border:2px solid #dee2e6;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.form-input:focus,.form-textarea:focus{outline:none;border-color:#27ae60}.form-textarea{resize:vertical;min-height:80px;font-family:inherit}.form-hint{display:block;margin-top:5px;color:#6c757d;font-size:12px}.form-info-box{margin-top:25px;padding:20px;background-color:#e3f2fd;border-radius:8px;border-left:4px solid #2196f3}.form-info-box p{margin:0 0 10px;color:#1565c0;font-weight:500}.form-info-box ul{margin:10px 0 0;padding-left:20px;color:#424242}.form-info-box li{margin:5px 0;font-size:14px}.submit-booking-button{width:100%;padding:15px;background-color:#27ae60;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:25px}.submit-booking-button:hover:not(:disabled){background-color:#229954;transform:translateY(-2px);box-shadow:0 4px 8px #27ae604d}.submit-booking-button:disabled{opacity:.6;cursor:not-allowed}.success-message{text-align:center;max-width:600px;margin:0 auto}.success-icon{width:80px;height:80px;margin:0 auto 20px;background-color:#27ae60;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700}.success-message h3{color:#27ae60;margin-bottom:25px;font-size:24px}.booking-details{background-color:#f8f9fa;border-radius:8px;padding:25px;margin:25px 0;text-align:left}.detail-item{margin:12px 0;padding:10px 0;border-bottom:1px solid #dee2e6;color:#495057;font-size:15px}.detail-item:last-child{border-bottom:none}.detail-item strong{color:#333;margin-right:10px}.detail-item.important{background-color:#fff3cd;padding:15px;border-radius:6px;border-left:4px solid #ffc107;margin:15px 0}.cancellation-code{font-family:Courier New,monospace;font-size:18px;font-weight:700;color:#dc3545;background-color:#fff;padding:5px 10px;border-radius:4px;border:2px solid #dc3545}.copy-code-button{margin-left:12px;padding:8px 12px;border:none;border-radius:6px;background-color:#2196f3;color:#fff;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.copy-code-button:hover{background-color:#1976d2;transform:translateY(-1px)}.success-info-box{margin-top:25px;padding:20px;background-color:#e8f5e9;border-radius:8px;border-left:4px solid #27ae60;text-align:left}.success-info-box p{margin:0 0 10px;color:#155724;font-weight:500}.success-info-box ul{margin:10px 0 0;padding-left:20px;color:#155724}.success-info-box li{margin:8px 0;font-size:14px}.cancel-block{margin-top:30px;padding:20px;border:1px solid #e3ebfb;border-radius:10px;background:#f3f7ff;box-shadow:0 8px 18px #0f3b7c14}.cancel-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.cancel-button{padding:12px 20px;background:linear-gradient(135deg,#ff6b6b,#e53935);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #e539354d}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.cancel-result{margin-top:10px;padding:12px;border-radius:8px;font-weight:600}.cancel-head h3{margin:0 0 6px;color:#1e88e5}.cancel-head .muted{font-size:13px}.cancel-result.success{background:#e8f5e9;color:#1b5e20;border:1px solid #c8e6c9}.cancel-result.error{background:#ffebee;color:#b71c1c;border:1px solid #ffcdd2}.success-actions{margin-top:30px;display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.new-booking-button,.back-to-map-button{padding:12px 24px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.new-booking-button{background-color:#27ae60;color:#fff}.new-booking-button:hover{background-color:#229954;transform:translateY(-2px)}.back-to-map-button{background-color:#6c757d;color:#fff}.back-to-map-button:hover{background-color:#5a6268;transform:translateY(-2px)}@media(max-width:768px){.steps-progress{flex-wrap:wrap}.step-container{flex:0 0 20%;margin-bottom:20px}.step-line{display:none}.services-grid{grid-template-columns:1fr}.filters-section{flex-direction:column}.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.booking-form{max-width:100%}.success-actions{flex-direction:column}.new-booking-button,.back-to-map-button{width:100%}}.policy-links-container{display:block;margin:10px 0;line-height:1.6}.policy-link{background:none;border:none;padding:0;margin:0;color:#0f3b7c;text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit;display:inline;pointer-events:auto;z-index:10;position:relative;line-height:inherit}.policy-link:hover{color:#1976d2;text-decoration:underline}.policy-link:focus{outline:2px solid #1976d2;outline-offset:2px;border-radius:2px}.policy-link:active{color:#1565c0}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overflow-y:auto}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;position:relative;z-index:1001}.policy-modal{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:2px solid #e0e0e0;background:linear-gradient(135deg,#0f3b7c,#1976d2);color:#fff;border-radius:12px 12px 0 0}.modal-header h3{margin:0;font-size:20px;font-weight:600}.modal-close{background:none;border:none;color:#fff;font-size:32px;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.modal-close:hover{background-color:#fff3}.modal-body{padding:24px;overflow-y:auto;flex:1}.policy-content{font-size:14px;line-height:1.6;color:#333}.policy-content h4{color:#0f3b7c;margin-top:24px;margin-bottom:12px;font-size:18px;font-weight:600}.policy-content p{margin:12px 0}.policy-content ul{margin:12px 0;padding-left:24px}.policy-content li{margin:8px 0}.policy-content table{margin:16px 0;width:100%;border-collapse:collapse}.policy-content table th,.policy-content table td{border:1px solid #ddd;padding:10px;text-align:left}.policy-content table th{background-color:#f5f5f5;font-weight:600}.policy-content a{color:#1976d2;text-decoration:underline}.policy-content a:hover{color:#1565c0}.modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;background-color:#f9f9f9;border-radius:0 0 12px 12px}.modal-button-primary{background:linear-gradient(135deg,#0f3b7c,#1976d2);color:#fff;border:none;padding:10px 24px;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.modal-button-primary:hover{opacity:.9;transform:translateY(-1px)}.modal-button-primary:active{transform:translateY(0)}@media(max-width:768px){.modal-content{max-width:95%;max-height:95vh}.modal-header{padding:16px 20px}.modal-header h3{font-size:18px}.modal-body{padding:20px}.modal-footer{padding:12px 20px}}.admin-panel{min-height:100vh;background:linear-gradient(180deg,#e8f0ff,#f7faff 60%,#fff);color:#0a1f44;padding:24px;font-family:Segoe UI,Arial,sans-serif}.admin-header h1{margin:0 0 6px;color:#0d47a1}.admin-header p{margin:0 0 16px;color:#1e3a5f}.admin-section{margin-top:24px}.section-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.section-header h2{margin:0;color:#0d47a1}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 4px 14px #06358214;border:1px solid #e1e8f5}.card h3{margin-top:0;color:#123a8c}.form{display:flex;flex-direction:column;gap:10px}.form label{display:flex;flex-direction:column;font-weight:600;color:#1e3a5f;gap:4px}.form input,.form select,.form textarea{padding:10px 12px;border-radius:8px;border:1px solid #cbd6ec;font-size:14px;background:#f9fbff}.form-actions{display:flex;gap:10px;margin-top:6px}.service-list{display:flex;flex-direction:column;gap:10px;max-height:520px;overflow:auto}.service-row{display:flex;justify-content:space-between;align-items:center;padding:10px;border:1px solid #e3ebfb;border-radius:8px;background:#f9fbff}.service-row .title{font-weight:700}.muted{color:#5c6d8a;font-size:13px}.row-actions{display:flex;gap:8px}.btn{padding:10px 14px;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn.primary{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff}.btn.secondary{background:#e3f2fd;color:#0d47a1;border:1px solid #bbdefb}.btn.ghost{background:transparent;color:#0d47a1;border:1px solid #bbdefb}.btn.danger{background:#ffe5e5;color:#c62828;border:1px solid #ffcdd2}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #0d47a12e}.form-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.slots-table{margin-top:12px;border:1px solid #e3ebfb;border-radius:8px;overflow:hidden}.table-header,.table-row{display:grid;grid-template-columns:1fr 1fr 120px;padding:10px 12px;align-items:center}.table-header{background:#e3f2fd;font-weight:700;color:#0d47a1}.table-row:nth-child(odd){background:#f9fbff}@media(max-width:768px){.table-header,.table-row{grid-template-columns:1fr 1fr;gap:8px}}.admin-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.admin-login-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:40px;width:100%;max-width:450px;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.admin-login-box h1{margin:0 0 10px;color:#333;font-size:28px;text-align:center;font-weight:600}.login-subtitle{text-align:center;color:#666;margin-bottom:30px;font-size:14px}.admin-login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#333;font-size:14px}.form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:all .3s ease;outline:none}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input.error{border-color:#e74c3c}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px;border-radius:6px;font-size:14px;text-align:center}.login-button{padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;margin-top:10px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-footer{margin-top:30px;padding-top:20px;border-top:1px solid #e0e0e0;text-align:center}.login-footer p{font-size:12px;color:#999;margin:0}@media(max-width:480px){.admin-login-box{padding:30px 20px}.admin-login-box h1{font-size:24px}}.booking-app{width:100%;height:100vh;margin:0;padding:0;background:radial-gradient(circle at 20% 20%,rgba(129,177,255,.25),transparent 35%),radial-gradient(circle at 80% 0%,rgba(100,181,246,.25),transparent 30%),linear-gradient(180deg,#e6f2ff,#f9fbff 60%,#fff)}*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f7ff}
