@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";:root{--bg:#0a0a0c;--surface:#141417;--surface-2:#1c1c20;--surface-3:#242428;--primary:#f59e0b;--primary-hover:#d97706;--primary-glow:#f59e0b26;--green:#22c55e;--red:#ef4444;--text:#f5f5f5;--text-secondary:#a1a1aa;--text-muted:#71717a;--border:#ffffff0f;--radius:16px;--radius-sm:10px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.app{flex-direction:column;min-height:100dvh;display:flex}.header{border-bottom:1px solid var(--border);text-align:center;background:linear-gradient(135deg,#1a1a1f 0%,#0f0f12 100%);padding:24px 20px;position:relative;overflow:hidden}.header:before{content:"";background:radial-gradient(ellipse at center, var(--primary-glow) 0%, transparent 70%);pointer-events:none;width:200%;height:200%;position:absolute;top:-50%;left:-50%}.header-content{z-index:1;position:relative}.logo{background:linear-gradient(135deg, var(--primary) 0%, #fbbf24 50%, var(--primary) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:900}.tagline{color:var(--text-secondary);letter-spacing:.02em;margin-top:4px;font-size:13px;font-weight:400}.progress-bar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:0;padding:20px 24px;display:flex}.progress-step{opacity:.35;align-items:center;gap:8px;transition:all .3s;display:flex}.progress-step.active{opacity:1}.progress-step.done{opacity:.6}.step-num{background:var(--surface-3);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;transition:all .3s;display:flex}.progress-step.active .step-num{background:var(--primary);color:#000;box-shadow:0 0 20px var(--primary-glow)}.progress-step.done .step-num{background:var(--green);color:#000}.step-label{font-size:13px;font-weight:500}.progress-line{background:var(--surface-3);width:40px;height:2px;margin:0 8px}.main-content{flex-direction:column;flex:1;align-items:center;padding:24px 16px;display:flex}.step-container{width:100%;max-width:480px}.animate-in{animation:.35s ease-out slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.step-title{text-align:center;letter-spacing:-.02em;font-size:22px;font-weight:700}.step-subtitle{color:var(--text-secondary);text-align:center;margin-top:6px;margin-bottom:24px;font-size:14px}.date-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);appearance:none;outline:none;padding:16px 20px;font-family:inherit;font-size:16px;transition:all .2s}.date-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.date-display{text-align:center;color:var(--primary);margin:16px 0;font-size:15px;font-weight:600}.primary-btn{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#000;border-radius:var(--radius);cursor:pointer;letter-spacing:-.01em;border:none;width:100%;padding:16px 24px;font-family:inherit;font-size:16px;font-weight:700;transition:all .2s}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px #f59e0b40}.primary-btn:active{transform:scale(.98)}.primary-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.primary-btn.compact{width:auto;padding:12px 24px;font-size:14px}.back-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:14px;transition:color .2s}.back-link:hover{color:var(--text)}.table-step{max-width:600px}.table-header{align-items:center;gap:16px;margin-bottom:16px;display:flex}.table-header .step-title{text-align:center;flex:1;font-size:18px}.floor-toggle{background:var(--surface-2);border-radius:var(--radius-sm);gap:4px;margin-bottom:12px;padding:4px;display:flex}.floor-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s}.floor-btn.active{background:var(--primary);color:#000;box-shadow:0 2px 8px #f59e0b4d}.legend{color:var(--text-muted);justify-content:center;gap:20px;margin-bottom:12px;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px}.legend-dot.green{background:var(--green)}.legend-dot.red{background:var(--red)}.legend-dot.yellow{background:var(--primary)}.map-wrapper{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:12px;overflow:hidden}.floor-map-svg{width:100%;height:auto;display:block}.loading{color:var(--text-secondary);flex-direction:column;align-items:center;gap:12px;padding:60px 0;display:flex}.spinner{border:3px solid var(--surface-3);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:9999;background:#000000bf;justify-content:center;align-items:center;padding:24px;animation:.25s ease-out forwards fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid #ffffff14;border-radius:24px;width:100%;max-width:380px;animation:.35s cubic-bezier(.16,1,.3,1) forwards slideUpModal;overflow:hidden;box-shadow:0 24px 48px #0009,inset 0 1px #ffffff0d}.modal-header-accent{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);text-align:center;padding:24px 24px 20px}.modal-header-accent h3{color:#000;letter-spacing:-.02em;font-size:20px;font-weight:800}.modal-header-accent p{color:#0009;margin-top:4px;font-size:13px;font-weight:500}.modal-body{flex-direction:column;gap:10px;padding:20px;display:flex}.modal-question{text-align:center;color:var(--text-secondary);margin-bottom:4px;font-size:15px;font-weight:500}.modal-btn{cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:54px;padding:16px;font-family:inherit;font-size:15px;font-weight:700;transition:all .2s;display:flex}.modal-btn:active{transform:scale(.97)}.modal-btn-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#000}.modal-btn-primary:hover{box-shadow:0 6px 20px #f59e0b4d}.modal-btn-secondary{color:var(--text);background:#ffffff0f;border:1px solid #ffffff14}.modal-btn-secondary:hover{background:#ffffff1a}.modal-btn-booking{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#000;box-shadow:0 4px 16px #f59e0b33}.modal-btn-booking:hover{transform:translateY(-1px);box-shadow:0 8px 24px #f59e0b59}.modal-btn-info{color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f633}.modal-btn-info:hover{background:#3b82f633}.modal-btn-tour{color:#22c55e;background:#22c55e1f;border:1px solid #22c55e33}.modal-btn-tour:hover{background:#22c55e33}.modal-btn-cancel{width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:12px;font-family:inherit;font-size:13px;font-weight:500;transition:color .2s}.modal-btn-cancel:hover{color:var(--text)}.merge-hint{background:var(--surface-2);border-radius:var(--radius);border:1px solid #f59e0b33;flex-direction:column;gap:12px;padding:16px 20px;display:flex}.merge-hint-text{align-items:center;gap:12px;display:flex}.merge-hint-icon{flex-shrink:0;font-size:24px}.merge-hint-text strong{color:var(--primary);font-size:14px;display:block}.merge-hint-text p{color:var(--text-secondary);margin-top:2px;font-size:12px}.merge-hint-info{color:var(--text-secondary);background:#ffffff08;border-radius:8px;padding:8px 12px;font-size:13px}.merge-hint-info strong{color:var(--text)}.merge-hint-actions{align-items:center;gap:8px;display:flex}.merge-hint-actions .primary-btn.compact{flex:1}.cancel-merge-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:12px 16px;font-family:inherit;font-size:13px;transition:color .2s}.cancel-merge-btn:hover{color:var(--text)}.hall-modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:9999;background:#000000bf;justify-content:center;align-items:center;padding:24px;animation:.25s ease-out forwards fadeIn;display:flex;position:fixed;inset:0}.hall-modal-content{background:var(--surface);text-align:center;border:1px solid #ffffff1a;border-radius:24px;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:32px 24px;animation:.35s cubic-bezier(.16,1,.3,1) forwards slideUpModal;display:flex;box-shadow:0 24px 48px #0009,inset 0 1px #ffffff0d}.hall-modal-icon{color:#60a5fa;background:#3b82f626;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:16px;font-size:24px;font-weight:700;display:flex}.hall-modal-title{color:#fff;letter-spacing:-.01em;margin-bottom:12px;font-size:22px;font-weight:800}.hall-modal-text{color:var(--text-secondary);white-space:pre-wrap;margin-bottom:24px;font-size:15px;line-height:1.6}.hall-modal-buttons{flex-direction:column;gap:8px;width:100%;display:flex}.hall-modal-book-btn{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#000;cursor:pointer;border:none;border-radius:12px;width:100%;padding:14px;font-family:inherit;font-size:15px;font-weight:700;transition:all .2s}.hall-modal-book-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #f59e0b4d}.hall-modal-book-btn:active{transform:scale(.97)}.hall-modal-close-btn{background:var(--surface-3);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:14px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s}.hall-modal-close-btn:hover{background:#ffffff1a}.hall-modal-close-btn:active{transform:scale(.97)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpModal{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.error-banner{color:#fca5a5;border-radius:var(--radius-sm);background:#ef44441f;border:1px solid #ef444433;justify-content:space-between;align-items:center;margin:0 16px;padding:12px 16px;font-size:13px;display:flex}.error-banner button{color:#fca5a5;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.booking-form-container{width:100%}.form-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.back-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:14px}.form-header-info h2{font-size:20px;font-weight:700}.form-header-info p{color:var(--text-secondary);margin-top:2px;font-size:13px}.booking-form{flex-direction:column;gap:16px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:600}.form-field input,.form-field select,.form-field textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);appearance:none;outline:none;padding:12px 16px;font-family:inherit;font-size:15px;transition:all .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-field input.error{border-color:var(--red)}.form-field textarea{resize:none}.form-field select{cursor:pointer}.field-error{color:#f87171;font-size:11px}.submit-btn{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#000;border-radius:var(--radius);cursor:pointer;border:none;width:100%;margin-top:8px;padding:16px 24px;font-family:inherit;font-size:16px;font-weight:700;transition:all .2s}.submit-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px #f59e0b40}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.form-note{text-align:center;color:var(--text-muted);font-size:12px;line-height:1.5}.success-step{text-align:center;padding-top:40px}.success-icon{color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;font-size:36px;animation:.4s ease-out scaleIn;display:flex;box-shadow:0 8px 32px #22c55e4d}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.success-title{margin-bottom:12px;font-size:24px;font-weight:800}.success-text{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.6}.success-details{background:var(--surface-2);border-radius:var(--radius);text-align:left;margin-bottom:24px;padding:20px}.success-details p{margin-bottom:6px;font-size:14px}.success-details p:last-child{margin-bottom:0}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:20px;font-size:12px}@media (width<=480px){.header{padding:20px 16px}.logo{font-size:28px}.step-title{font-size:20px}.progress-bar{padding:16px}.step-label{font-size:11px}.progress-line{width:24px}}.consent-field{margin-bottom:16px}.consent-label{cursor:pointer;color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;display:flex}.consent-label input[type=checkbox]{width:18px;min-width:18px;height:18px;accent-color:var(--primary);cursor:pointer;margin-top:1px}.consent-link{color:var(--primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.consent-link:hover{color:var(--primary-hover)}.privacy-modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;width:90%;max-width:600px;max-height:80vh;display:flex;overflow:hidden}.privacy-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.privacy-modal-header h2{color:var(--text);font-size:18px;font-weight:600}.privacy-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:18px;transition:color .2s}.privacy-close-btn:hover{color:var(--text)}.privacy-modal-body{color:var(--text-secondary);flex:1;padding:24px;font-size:14px;line-height:1.7;overflow-y:auto}.privacy-modal-body h3{color:var(--text);margin:20px 0 8px;font-size:14px;font-weight:600}.privacy-modal-body h3:first-of-type{margin-top:0}.privacy-modal-body p{margin-bottom:8px}.privacy-modal-body ul{margin-bottom:8px;padding-left:20px}.privacy-modal-body ul li{margin-bottom:4px}.privacy-updated{color:var(--text-muted);font-size:12px;margin-bottom:16px!important}.privacy-modal-footer{border-top:1px solid var(--border);padding:16px 24px}.cookie-banner{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);z-index:1000;width:calc(100% - 40px);max-width:560px;color:var(--text-secondary);align-items:center;gap:16px;padding:16px 20px;font-size:13px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006}.cookie-banner p{flex:1;line-height:1.5}.cookie-policy-link{color:var(--primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.cookie-accept-btn{background:var(--primary);color:#000;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:8px 18px;font-size:13px;font-weight:600;transition:background .2s}.cookie-accept-btn:hover{background:var(--primary-hover)}
