:root{--primary:#007bff;--secondary:#6c757d;--success:#28a745;--danger:#dc3545;--dark:#343a40;--light:#f8f9fa}*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.booking-container{align-items:flex-start;background:linear-gradient(135deg,#f5f7fa,#e4e9f2);display:flex;justify-content:center;min-height:100vh;padding:40px 20px}.booking-card{background:#fff;border-radius:16px;box-shadow:0 8px 30px #00000014;max-width:800px;overflow:hidden;padding:32px;width:100%}.booking-header{margin-bottom:40px;text-align:center}.booking-header h1{color:#1a1a1a;font-size:2.2rem;font-weight:600;margin-bottom:32px}.step-indicator{justify-content:space-between;margin:0 auto;max-width:600px}.step,.step-indicator{align-items:center;display:flex;position:relative}.step{flex-direction:column;z-index:1}.step-number{align-items:center;background:#e4e9f2;border-radius:50%;color:#666;display:flex;font-weight:600;height:36px;justify-content:center;margin-bottom:8px;transition:all .3s ease;width:36px}.step.active .step-number{background:#007aff;box-shadow:0 4px 12px #007aff33;color:#fff}.step-label{color:#666;font-size:.9rem;font-weight:500}.step.active .step-label{color:#007aff}.step-connector{background:#e4e9f2;flex:1 1;height:3px;margin:0 15px 25px;position:relative}.step-connector:after{background:#007aff;content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s ease;width:0}.step.active+.step-connector:after{width:100%}.step-content{padding:20px 0}.step-description{color:#666;font-size:.95rem;margin:0 0 20px}.form-group,.form-row{margin-bottom:24px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}label{color:#333;display:block;font-size:.95rem;font-weight:500;margin-bottom:8px}.form-input,.form-select,.form-textarea{background-color:#fff;border:2px solid #e4e9f2;border-radius:8px;font-size:1rem;padding:12px 16px;transition:all .2s ease;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#007aff;box-shadow:0 0 0 3px #007aff1a;outline:none}.form-input::placeholder,.form-textarea::placeholder{color:#a0aec0}.form-help{color:#666;display:block;font-size:.85rem;margin-top:6px}.form-textarea{min-height:100px;resize:vertical}.form-actions{gap:1rem;justify-content:center;margin-top:2rem}.btn{border-radius:10px;font-weight:600;letter-spacing:.5px;min-width:120px;padding:.875rem 2rem;text-transform:uppercase;transition:all .3s ease}.btn:disabled{opacity:.6;transform:none!important}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea4d}.btn-primary:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.btn-secondary{background:#f7fafc;border:2px solid #e2e8f0;color:#4a5568}.btn-secondary:hover:not(:disabled){background:#edf2f7;border-color:#cbd5e0;transform:translateY(-1px)}.booking-summary{background:#f7fafc;border:2px solid #e2e8f0;border-radius:15px;margin:1.5rem 0;padding:1.5rem}.booking-summary h3{color:#2d3748;font-size:1.25rem;font-weight:600;margin-bottom:1rem;text-align:center}.summary-item{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:.5rem 0}.summary-item:last-child{border-bottom:none}.summary-item span:first-child{color:#4a5568;font-weight:500}.summary-item span:last-child{color:#2d3748;font-weight:600}.error-message,.success-message{border-radius:8px;font-weight:500;margin-bottom:24px;padding:16px;text-align:center}.error-message{background-color:#ffeaea;border:1px solid #f5c6cb;color:#dc3545}.success-message{background-color:#e6f4ea;border:1px solid #c3e6cb;color:#1e7e34}.booking-confirmation{padding:24px 0;text-align:center}.booking-confirmation .success-message{margin-bottom:24px}.confirmation-ok-btn{min-width:120px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.booking-card{padding:24px}.booking-header h1{font-size:1.8rem}.form-row{grid-template-columns:1fr}.step-label{font-size:.8rem}}@media (max-width:480px){.booking-container{padding:20px 10px}.booking-card{padding:20px}.booking-header h1{font-size:1.5rem}}.room-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.room-selector button{border:none;border-radius:4px;cursor:pointer;padding:8px 16px;transition:all .2s ease}.floorplan-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:center;margin:20px 0;padding:20px}.step-details-combined .step-description{margin-bottom:20px}.details-section{display:flex;flex-direction:column;gap:14px}.details-row{grid-gap:14px;align-items:start;display:grid;gap:14px}.details-row-booking{grid-template-columns:1fr 1fr minmax(80px,.6fr)}.details-row-names{grid-template-columns:1fr 1fr}.form-group-compact{margin-bottom:0}.form-group-compact label{font-size:.875rem;margin-bottom:4px}.form-input-compact,.form-select.form-input-compact,.form-textarea-compact{font-size:.95rem;padding:10px 12px}.form-textarea-compact{min-height:56px;resize:vertical}.form-group-guests .form-select{max-width:100%}@media (max-width:600px){.details-row-booking{grid-template-columns:1fr 1fr}.details-row-booking .form-group-guests{grid-column:1/-1}.details-row-names{grid-template-columns:1fr}}.floorplan{display:flex;flex-direction:column;gap:24px;height:500px;margin:0 auto;max-width:1200px;position:relative;width:100%}.floorplan-header{border-bottom:1px solid #e0e0e0}.floorplan-title{color:#333;font-size:1.1rem;font-weight:500}.floorplan-controls{border-radius:8px;display:flex;gap:8px;padding:4px;z-index:10}.control-btn{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;display:flex;font-size:18px;height:36px;justify-content:center;transition:all .2s ease;width:36px}.control-btn:hover{background:#f8f9fa;border-color:#d0d0d0;color:#333}.control-btn:active{background:#e9ecef}.control-btn:disabled{background:#fff;border-color:#e0e0e0;cursor:not-allowed;opacity:.5}.floorplan-grid{background:#f5f5f5;border:1px solid #ddd;border-radius:4px;flex:1 1;overflow:hidden;position:relative}.floorplan-content{height:100%;transform-origin:0 0;transition:cursor .2s ease;width:100%;will-change:transform}.floorplan-legend{background:#fff;border-top:1px solid #e0e0e0;display:flex;gap:24px;justify-content:center;padding:16px 24px}.legend-item{align-items:center;color:#666;display:flex;font-size:.9rem;gap:8px}.legend-color{border:2px solid #0000001a;border-radius:4px;height:16px;width:16px}.legend-color.available{background-color:#4caf50}.legend-color.selected{background-color:#2196f3}.legend-color.booked{background-color:#f44336}@media (max-width:768px){.floorplan-grid{height:500px}.floorplan-header{padding:12px 16px}.floorplan-title{font-size:1rem}.floorplan-legend{flex-wrap:wrap;gap:16px;padding:12px 16px}.legend-item{font-size:.85rem}}@media (max-width:480px){.floorplan{gap:16px}.floorplan-grid{height:400px}.control-btn{height:40px;width:40px}}.loading-overlay{align-items:center;background:#ffffffe6;display:flex;flex-direction:column;justify-content:center;z-index:100}.loading-overlay,.loading-overlay-readonly{bottom:0;left:0;position:absolute;right:0;top:0}.loading-overlay-readonly{border-radius:8px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;margin-bottom:16px;width:40px}.loading-text{color:#333;font-size:16px;font-weight:500}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.legend-color.unavailable{background-color:#dc2626}.floorplan-readonly{height:auto}.floorplan-grid-readonly{align-items:flex-start;display:flex;justify-content:flex-start;overflow:hidden;position:relative}.floorplan-content-readonly{flex-shrink:0}.floorplan-table-token{align-items:center;border:2px solid #0000001f;border-radius:6px;cursor:pointer;display:flex;font-size:11px;font-weight:600;justify-content:center;padding:0;transition:transform .15s ease,box-shadow .15s ease}.floorplan-table-token:hover:not(:disabled){box-shadow:0 4px 12px #00000026;transform:scale(1.03)}.floorplan-table-token:disabled{cursor:not-allowed;opacity:.92}.floorplan-table-available{background-color:#22c55e;border-color:#16a34a;color:#fff}.floorplan-table-selected{background-color:#2563eb;border-color:#1d4ed8;color:#fff}.floorplan-table-unavailable{background-color:#dc2626;border-color:#b91c1c;color:#fff}.floorplan-table-label{max-width:100%;overflow:hidden;padding:2px 4px;text-overflow:ellipsis;white-space:nowrap}.room-selector-container{display:flex;flex-direction:column;gap:32px;width:100%}.room-tabs{background-color:#f8f9fa;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:inline-flex;padding:6px;position:relative}.room-tab{border-radius:8px;color:#666;cursor:pointer;font-weight:500;padding:12px 24px;position:relative;transition:all .3s ease;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1}.room-tab:hover{color:#007aff}.room-tab.active{background-color:#007aff;box-shadow:0 4px 12px #007aff33;color:#fff}.floorplan-section{background:#fff;border:1px solid #eee;border-radius:16px;overflow:hidden;transition:all .3s ease}.floorplan-section.collapsed{border-radius:12px}.floorplan-header{align-items:center;background:#fff;border-bottom:1px solid #eee;cursor:pointer;display:flex;justify-content:space-between;padding:16px 24px;-webkit-user-select:none;user-select:none}.floorplan-header:hover{background:#f8f9fa}.header-content{align-items:center;display:flex;gap:12px}.selection-info{display:flex;flex-direction:column;gap:4px}.selection-title{color:#333;font-size:1rem;font-weight:500}.selection-details{color:#666;font-size:.9rem}.toggle-button{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#666;display:flex;height:32px;justify-content:center;transition:all .3s ease;width:32px}.toggle-button:hover{background:#f8f9fa;border-color:#d0d0d0;color:#333}.toggle-button svg{height:20px;transition:transform .3s ease;width:20px}.toggle-button.collapsed svg{transform:rotate(-180deg)}.floorplan-content{max-height:800px;overflow:hidden;transition:max-height .3s ease}.floorplan-content.collapsed{max-height:0}@media (hover:none){.floorplan-controls{gap:12px}.control-btn{font-size:20px;height:44px;width:44px}}@media (max-width:1200px){.floorplan{max-width:100%}}@media (max-width:768px){.room-tabs{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;overflow-x:auto;scrollbar-width:none;width:100%}.room-tabs::-webkit-scrollbar{display:none}.room-tab{font-size:.9rem;padding:10px 20px}.floorplan-header{padding:12px 16px}.selection-title{font-size:.95rem}.selection-details{font-size:.85rem}}@media (max-width:480px){.room-selector-container{gap:24px}.room-tab{font-size:.85rem;padding:8px 16px}.floorplan-header{padding:12px}.toggle-button{height:28px;width:28px}.toggle-button svg{height:16px;width:16px}}.table-list-section{margin-bottom:20px}.table-list-label{color:#333;font-size:.9rem;font-weight:600;margin-bottom:10px}.table-list{display:flex;flex-wrap:wrap;gap:8px}.table-list-item{align-items:flex-start;background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;padding:10px 14px;transition:all .2s ease}.table-list-item:hover:not(:disabled){background:#eff6ff;border-color:#2563eb}.table-list-item:disabled{cursor:not-allowed;opacity:.85}.table-list-item-available{background:#f0fdf4;border-color:#bbf7d0}.table-list-item-available:hover:not(:disabled){background:#dcfce7;border-color:#22c55e}.table-list-item-selected{background:#2563eb;border-color:#2563eb;color:#fff}.table-list-item-unavailable{background:#dc2626;border-color:#fecaca;color:#fff}.table-list-item-hint{font-size:.75rem;font-weight:500;margin-top:4px;opacity:.9}.table-list-item-unavailable .table-list-item-hint{display:block}.table-list-item-label{font-weight:600}.table-list-item-capacity{font-size:.8rem;margin-top:2px;opacity:.9}.table-list-item-unavailable .table-list-item-capacity{opacity:.85}.floorplan-wrapper{margin-top:8px}.booking-step3{display:flex;flex-direction:column;gap:20px}.room-instruction{color:#666;font-size:.95rem;margin:0}.booking-step3 h2{color:#333;margin:0}.no-availability-message{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-bottom:20px;padding:20px}.no-availability-title{color:#b91c1c;font-weight:600;margin:0 0 8px}.no-availability-text{color:#991b1b;font-size:.95rem;margin:0}.unassigned-booking-notice{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;margin-bottom:20px;padding:16px}.unassigned-notice-title{color:#92400e;font-weight:600;margin:0 0 6px}.unassigned-notice-text{color:#78350f;font-size:.9rem;margin:0}.no-rooms-message{color:#666;font-style:italic;margin:0}.form-actions{border-top:1px solid #eee;display:flex;gap:16px;justify-content:space-between;margin-top:24px;padding-top:20px}.btn{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .2s ease-in-out}.btn:disabled{cursor:not-allowed;opacity:.7}.btn-primary{background-color:#007aff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#f5f5f5;color:#666}.btn-secondary:hover:not(:disabled){background-color:#e5e5e5;color:#333}
/*# sourceMappingURL=main.e68b1973.css.map*/