.pagination-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-6);padding:var(--spacing-8) 0;border-top:1px solid var(--color-border);margin-top:var(--spacing-8)}.pagination-info{text-align:center}.results-text{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.pagination-controls{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:wrap;justify-content:center}.pagination-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);min-height:40px;text-decoration:none}.pagination-btn:hover:not(.disabled):not([disabled]){background-color:var(--color-secondary);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.pagination-btn:active:not(.disabled):not([disabled]){transform:translateY(0)}.pagination-btn.disabled,.pagination-btn[disabled]{background-color:var(--color-secondary);color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.pagination-prev,.pagination-next{font-weight:var(--font-weight-semibold);padding:var(--spacing-2) var(--spacing-5)}.pagination-prev svg,.pagination-next svg{width:16px;height:16px}.pagination-pages{display:flex;align-items:center;gap:var(--spacing-1)}.pagination-number{min-width:40px;padding:var(--spacing-2) var(--spacing-3);font-weight:var(--font-weight-semibold)}.pagination-number.active{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.pagination-number.active:hover{background-color:var(--color-primary);color:var(--color-text-inverse);transform:none}.pagination-ellipsis{padding:var(--spacing-2) var(--spacing-1);color:var(--color-text-muted);font-weight:var(--font-weight-medium);display:flex;align-items:center;justify-content:center;min-height:40px}.pagination-goto{display:flex;align-items:center;gap:var(--spacing-3);margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.goto-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.goto-input{width:80px;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);text-align:center;background-color:var(--color-background);color:var(--color-primary);transition:border-color var(--transition-fast)}.goto-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2c52821a}.goto-input[disabled]{background-color:var(--color-secondary);color:var(--color-text-muted);cursor:not-allowed}.goto-btn{padding:var(--spacing-2) var(--spacing-4);background-color:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.goto-btn:hover:not([disabled]){background-color:var(--color-accent-dark);transform:translateY(-1px)}.goto-btn:active:not([disabled]){transform:translateY(0)}.goto-btn[disabled]{background-color:var(--color-text-muted);cursor:not-allowed;opacity:.6}@media (min-width: 769px) and (max-width: 1024px){.pagination-container{gap:var(--spacing-5);padding:var(--spacing-6) 0}.pagination-controls{gap:var(--spacing-1)}.pagination-prev,.pagination-next{padding:var(--spacing-2) var(--spacing-4)}}@media (max-width: 768px){.pagination-container{gap:var(--spacing-4);padding:var(--spacing-6) 0}.pagination-controls{gap:var(--spacing-1)}.pagination-prev,.pagination-next{min-width:40px;padding:var(--spacing-2) var(--spacing-3)}.pagination-prev,.pagination-next{font-size:0!important;line-height:0;white-space:nowrap}.pagination-prev svg,.pagination-next svg{font-size:initial;width:16px!important;height:16px!important}.pagination-goto{flex-direction:column;gap:var(--spacing-2);text-align:center}.goto-input{width:100px}}@media (max-width: 480px){.pagination-pages{gap:var(--spacing-0)}.pagination-number{min-width:36px;padding:var(--spacing-2);font-size:var(--text-xs)}.pagination-prev,.pagination-next{font-size:var(--text-xs);padding:var(--spacing-3) var(--spacing-4)}.pagination-prev svg,.pagination-next svg{width:14px;height:14px}.results-text{font-size:var(--text-xs)}}.pagination-container.loading{pointer-events:none;opacity:.7}.pagination-container.loading .pagination-btn{cursor:wait}.pagination-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.goto-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.goto-btn:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:2px}.payment-form{max-width:500px;margin:0 auto;padding:2rem;background:white;border-radius:12px;box-shadow:0 4px 20px #0000001a}.payment-summary{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.amount-display{font-size:2.5rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.currency{font-size:1.5rem;color:#6b7280;margin-right:.25rem}.payment-description{color:#6b7280;margin:0}.stripe-form{space-y:1.5rem}.card-element-container{margin-bottom:1.5rem}.card-label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.card-element{padding:1rem;border:2px solid #d1d5db;border-radius:8px;background:white;transition:border-color .2s ease}.card-element:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.payment-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;color:#dc2626;font-size:.875rem;margin:1rem 0}.error-icon{font-size:1rem}.test-card-info{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;padding:1rem;margin:1.5rem 0;font-size:.75rem;color:#4b5563}.test-card-info p{margin:.25rem 0}.test-card-info strong{color:#1f2937}.payment-button{width:100%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:8px;padding:1rem 2rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s ease;position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem}.payment-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 8px 25px #3b82f64d}.payment-button:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.payment-button.processing{background:#6b7280}.spinner{width:20px;height:20px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.payment-security{text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.payment-security p{font-size:.75rem;color:#6b7280;margin:0}@media (max-width: 768px){.payment-form{padding:1.5rem}.amount-display{font-size:2rem}.currency{font-size:1.25rem}.test-card-info{font-size:.7rem}.card-element{padding:1.5rem 1rem;min-height:50px}}@media (max-width: 414px){.payment-form{margin:.5rem;padding:1rem}.card-element{padding:1.25rem 1rem;min-height:60px;font-size:16px}.card-label{font-size:.9rem;margin-bottom:.75rem}.test-card-info{font-size:.65rem;padding:.75rem}.payment-button{padding:1.25rem 2rem;font-size:1rem}}.payment-loading{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.payment-loading-content{background:white;padding:2rem;border-radius:12px;text-align:center;max-width:300px}.payment-loading h3{margin:0 0 1rem;color:#1f2937}.payment-loading p{margin:0;color:#6b7280}.payment-page{min-height:100vh;background:#f9fafb;padding-top:2rem}.payment-container{max-width:1200px;margin:0 auto;padding:0 1rem}.payment-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.booking-summary-card{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 20px #0000001a;position:sticky;top:2rem}.booking-summary-card h2{margin:0 0 1.5rem;color:#1f2937}.room-info{display:flex;gap:1rem;margin-bottom:2rem}.room-image{width:80px;height:80px;border-radius:8px;object-fit:cover}.room-details h3{margin:0 0 .5rem;color:#1f2937;font-size:1.1rem}.room-details p{margin:.25rem 0;color:#6b7280;font-size:.875rem}.cost-breakdown{border-top:1px solid #e5e7eb;padding-top:1rem;margin-bottom:1.5rem}.cost-line{display:flex;justify-content:space-between;margin-bottom:.5rem;color:#374151}.cost-line.total{border-top:1px solid #e5e7eb;padding-top:.5rem;margin-top:.5rem;font-size:1.1rem}.guest-info{border-top:1px solid #e5e7eb;padding-top:1rem;text-align:left}.guest-info h4{margin:0 0 .5rem;color:#1f2937}.guest-info p{margin:.25rem 0;color:#6b7280;font-size:.875rem}.payment-section{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 20px #0000001a}.payment-section h2{margin:0 0 1.5rem;color:#1f2937}.payment-success-page{min-height:100vh;background:#f9fafb;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.success-container{max-width:800px;width:100%}.success-content{background:white;border-radius:16px;padding:3rem;box-shadow:0 10px 40px #0000001a;text-align:center}.success-header{margin-bottom:2.5rem}.success-icon{font-size:3rem;margin-bottom:1rem;background:#059669;color:#fff;width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.success-header h1{font-size:2.5rem;color:#059669;margin:0 0 1rem}.success-header p{font-size:1.1rem;color:#6b7280;margin:0}.booking-confirmation-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:2rem;margin:2rem 0;text-align:left}.booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid #e5e7eb;padding-bottom:1rem}.booking-id{color:#059669;font-weight:600;margin:0}.reservation-info{display:grid;gap:2rem}.dates-info{display:flex;align-items:center;gap:1rem;margin:1rem 0}.date-block{display:flex;flex-direction:column;align-items:center}.date-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.date-value{font-weight:600;color:#1f2937;margin:.25rem 0}.time-value{font-size:.875rem;color:#6b7280}.date-separator{font-size:1.5rem;color:#6b7280}.stay-info{display:flex;align-items:center;gap:.5rem;color:#6b7280;font-size:.875rem}.status-paid{color:#059669;font-weight:600;background:#d1fae5;padding:.25rem .5rem;border-radius:4px;font-size:.75rem}.next-steps{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:2rem;margin:2rem 0;text-align:left}.next-steps h3{margin:0 0 1rem;color:#1e40af}.next-steps ul{list-style:none;padding:0;margin:0}.next-steps li{padding:.5rem 0;color:#1f2937}.action-buttons{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.primary-button{background:linear-gradient(135deg,#059669,#047857);color:#fff;border:none;border-radius:8px;padding:1rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.primary-button:hover{background:linear-gradient(135deg,#047857,#065f46);transform:translateY(-1px);box-shadow:0 8px 25px #0596694d}.secondary-button{background:white;color:#374151;border:2px solid #d1d5db;border-radius:8px;padding:1rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.secondary-button:hover{background:#f9fafb;border-color:#9ca3af}.loading-content{text-align:center;padding:3rem}.spinner-large{width:60px;height:60px;border:4px solid #e5e7eb;border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 2rem}.error-content{text-align:center;padding:3rem}.error-icon{font-size:4rem;margin-bottom:1rem}@media (max-width: 768px){.payment-content{grid-template-columns:1fr;gap:1rem}.booking-summary-card{position:static}.payment-section{padding-left:20px;padding-right:20px}.payment-form{margin-left:0;margin-right:0;padding-left:0;padding-right:0;box-shadow:none}.success-content{padding:2rem 1.5rem}.success-header h1{font-size:2rem}.dates-info{flex-direction:column;gap:1rem}.date-separator{display:none}.action-buttons{flex-direction:column;margin-left:-1.25rem;margin-right:-1.25rem;padding-left:1.25rem;padding-right:1.25rem}.action-buttons .primary-button,.action-buttons .secondary-button{width:100%}.booking-confirmation-card .room-info{padding-left:1.25rem;padding-right:1.25rem;margin-bottom:0}.dates-info{justify-content:flex-start;align-items:flex-start}.date-block{align-items:flex-start}.payment-container{padding:0 .75rem}.booking-summary-card{padding:2rem 1.25rem}.room-info{margin-left:-1.25rem;margin-right:-1.25rem}.success-content{padding:3rem 1.25rem}.payment-success-page{padding:2rem .75rem}.booking-confirmation-card,.next-steps{padding:2rem 1.25rem}}@media screen and (-webkit-min-device-pixel-ratio:0){select,textarea,input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color]{font-size:16px!important}}@media (max-width: 768px){.card-element{min-height:70px!important;border-radius:12px;-webkit-text-size-adjust:100%}.payment-button{min-height:56px}.card-element-container{margin-bottom:1.5rem}.card-row{display:flex;gap:1rem;margin-top:1rem}.card-half{flex:1;margin-bottom:1rem}.mobile-card-elements{margin-bottom:1.5rem}}.business-info-section select.form-input{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;cursor:pointer}.business-info-section select.form-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%232c5282' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e")}html{scroll-behavior:smooth}.hotel-booking-app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding-top:var(--header-height-desktop)}@media (max-width: 768px){.main-content{padding-top:var(--header-height-mobile)}}.navigation-header{position:fixed;top:0;left:0;right:0;background-color:var(--color-background);box-shadow:var(--shadow-header);z-index:var(--z-sticky);height:var(--header-height-desktop);transition:box-shadow var(--transition-fast)}@media (max-width: 768px){.navigation-header{height:var(--header-height-mobile)}}.navigation-header.scrolled{box-shadow:var(--shadow-lg)}.nav-container{height:100%;display:flex;align-items:center;justify-content:space-between}.brand-logo{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.brand-logo:hover{color:var(--color-accent);text-decoration:none}@media (max-width: 768px){.brand-logo{font-size:var(--text-xl)}}.nav-menu{display:flex;list-style:none;gap:var(--spacing-8);margin:0;padding:0;align-items:center;height:var(--header-height-desktop)}@media (max-width: 768px){.nav-menu{gap:var(--spacing-5);height:var(--header-height-mobile)}}.nav-link{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-primary);text-decoration:none;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);transition:all var(--transition-fast);position:relative}.nav-link:hover{color:var(--color-accent);background-color:#2c52820d;text-decoration:none}.user-actions{display:flex;align-items:center;gap:var(--spacing-4);height:var(--header-height-desktop)}@media (max-width: 768px){.user-actions{height:var(--header-height-mobile)}}.user-welcome{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-weight-medium);display:flex;align-items:center;height:100%}.user-actions .btn{align-self:center}@media (min-width: 1025px){.mobile-tablet-only{display:none!important}}@media (max-width: 1024px){.desktop-only{display:none!important}}.hamburger-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-2);display:flex;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;gap:4px;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.hamburger-btn:hover{background-color:#2c52821a}.hamburger-line{width:24px;height:3px;background-color:var(--color-primary);transition:all .3s ease;border-radius:2px;transform-origin:center}.hamburger-line.open:nth-child(1){transform:rotate(45deg) translate(6px,6px)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.mobile-menu-container{position:fixed;top:var(--header-height-desktop);left:0;right:0;background-color:var(--color-background);border-top:1px solid var(--color-border);box-shadow:var(--shadow-lg);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease-in-out;z-index:var(--z-dropdown);max-height:calc(100vh - var(--header-height-desktop));overflow-y:auto}@media (max-width: 1024px){.navigation-header{display:flex;align-items:center;padding:0}.navigation-header .container{padding:0 15px;width:100%;max-width:none}.nav-container{height:100%;display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;margin:0}.brand-logo{display:flex;align-items:center;justify-content:flex-start;height:100%;margin:0;padding:0;line-height:1;flex:0 0 auto}.hamburger-btn{display:flex;align-items:center;justify-content:center;height:40px;width:40px;margin:0;padding:8px;flex:0 0 auto}}@media (max-width: 768px){.mobile-menu-container{top:var(--header-height-mobile);max-height:calc(100vh - var(--header-height-mobile))}}.mobile-menu-container.open{transform:translateY(0);opacity:1;visibility:visible}.mobile-menu{padding:var(--spacing-6)}.mobile-user-welcome-top{font-size:var(--text-base);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-align:center;padding:var(--spacing-3);background-color:var(--color-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);border-left:4px solid var(--color-accent)}.mobile-nav-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-1)}.mobile-nav-link{display:block;padding:var(--spacing-4);font-size:var(--text-lg);font-weight:var(--font-weight-medium);color:var(--color-primary);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);border-left:4px solid transparent}.mobile-nav-link:hover{background-color:#2c52821a;color:var(--color-accent);border-left-color:var(--color-accent);text-decoration:none;transform:translate(4px)}.mobile-user-actions{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--spacing-4);align-items:center}.mobile-user-welcome{font-size:var(--text-base);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-align:center;padding:var(--spacing-3);background-color:var(--color-secondary);border-radius:var(--radius-md);width:100%}.mobile-login-btn,.mobile-logout-btn{width:100%;justify-content:center;padding:var(--spacing-4);font-size:var(--text-base)}.hero-section.legacy{background:linear-gradient(135deg,var(--color-primary),var(--color-accent-dark));color:var(--color-text-inverse);padding:var(--spacing-20) 0;text-align:center;position:relative;overflow:hidden}.hero-section.legacy:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.1);z-index:1}.hero-section.legacy .container{position:relative;z-index:2}.hero-title.legacy{font-family:var(--font-heading);font-size:var(--text-5xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-5);line-height:var(--line-height-tight)}.hero-subtitle.legacy{font-size:var(--text-xl);margin-bottom:var(--spacing-10);opacity:.9;max-width:600px;margin-left:auto;margin-right:auto;line-height:var(--line-height-relaxed)}@media (max-width: 768px){.hero-section.legacy{padding:var(--spacing-16) 0}.hero-title.legacy{font-size:var(--text-3xl)}.hero-subtitle.legacy{font-size:var(--text-lg)}}.search-form.legacy{background-color:var(--color-background);padding:var(--spacing-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:900px;margin:0 auto;border:1px solid var(--color-border)}.search-row.legacy{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-5);margin-bottom:var(--spacing-6)}@media (max-width: 768px){.search-form.legacy{padding:var(--spacing-6);margin:0 var(--spacing-4)}.search-row.legacy{grid-template-columns:1fr;gap:var(--spacing-4)}}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-6);margin-top:var(--spacing-8)}@media (max-width: 768px){.rooms-grid{grid-template-columns:1fr;gap:var(--spacing-5)}}.room-card{background-color:var(--color-background);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--color-border);transition:all var(--transition-normal);cursor:pointer}.room-image{width:100%;height:240px;object-fit:cover;transition:transform var(--transition-normal)}.room-info{padding:var(--spacing-6)}.room-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-3);color:var(--color-primary);line-height:var(--line-height-tight)}.room-description{color:var(--color-text-muted);margin-bottom:var(--spacing-4);line-height:var(--line-height-relaxed)}.room-amenities{margin-bottom:var(--spacing-4)}.amenity-tag{display:inline-block;background-color:var(--color-secondary);color:var(--color-primary);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-medium);margin-right:var(--spacing-2);margin-bottom:var(--spacing-2)}.room-price{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-accent);margin-bottom:var(--spacing-4)}.booking-confirmation-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-8);margin-top:var(--spacing-6)}@media (max-width: 768px){.booking-confirmation-container{grid-template-columns:1fr;gap:var(--spacing-6)}}.booking-summary{background-color:var(--color-background);padding:var(--spacing-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);height:fit-content}.summary-item{display:flex;justify-content:space-between;margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border)}.summary-item:last-child{border-bottom:none;margin-bottom:0}.summary-total{background-color:var(--color-secondary);padding:var(--spacing-4);border-radius:var(--radius-md);margin-top:var(--spacing-4);font-size:var(--text-lg);font-weight:var(--font-weight-bold);text-align:center}.guest-information-form{background-color:var(--color-background);padding:var(--spacing-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-5)}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.bookings-list{display:flex;flex-direction:column;gap:var(--spacing-5);margin-top:var(--spacing-6)}.booking-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);background-color:var(--color-background);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.booking-card:hover{box-shadow:var(--shadow-md)}.booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border)}.booking-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-5)}.booking-actions{display:flex;gap:var(--spacing-3);justify-content:flex-end}.status-badge{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.status-confirmed{background-color:var(--color-success-light);color:var(--color-success-dark)}.status-cancelled{background-color:var(--color-error-light);color:var(--color-error-dark)}.status-pending{background-color:var(--color-warning);color:#744210}.auth-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - var(--header-height-desktop));padding:var(--spacing-8) 0}.auth-form{width:100%;max-width:400px;margin:0 auto}.error-boundary-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);padding:2rem}.error-boundary-content{max-width:500px;text-align:center;background:white;padding:3rem 2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a}.error-icon{margin-bottom:1.5rem}.error-title{font-size:1.5rem;font-weight:600;color:#1f2937;margin-bottom:1rem}.error-description{color:#6b7280;margin-bottom:2rem;line-height:1.6}.error-details{margin:1.5rem 0;text-align:left}.error-details summary{cursor:pointer;color:#dc2626;font-weight:500;margin-bottom:.5rem}.error-stack{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;font-size:.875rem;color:#374151;white-space:pre-wrap;overflow-x:auto;max-height:200px}.error-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.error-retry-btn,.error-home-btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:500;transition:all .2s ease}.error-help{font-size:.875rem;color:#6b7280}.error-link{color:#2563eb;text-decoration:none}.error-link:hover{text-decoration:underline}.page-error-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fef3f3 0%,#fef2f2 100%);padding:2rem}.page-error-content{max-width:600px;text-align:center}.page-error-title{font-size:2rem;font-weight:700;color:#1f2937;margin-bottom:2rem}.page-error-illustration{margin:2rem 0}.error-illustration{width:120px;height:120px;margin:0 auto}.page-error-message{font-size:1.125rem;color:#6b7280;margin-bottom:2rem;line-height:1.7}.page-error-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.component-error-container{padding:2rem;background:#fffbeb;border:1px solid #fed7aa;border-radius:8px;margin:1rem 0}.component-error-content{text-align:center}.component-error-icon{margin-bottom:1rem}.component-error-title{font-size:1rem;font-weight:600;color:#92400e;margin-bottom:.5rem}.component-error-message{font-size:.875rem;color:#d97706;margin-bottom:1rem}.component-error-retry{background:#f59e0b;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:background-color .2s ease}.component-error-retry:hover{background:#d97706}.not-found-page{min-height:100vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.not-found-container{max-width:800px;margin:0 auto;padding:2rem;min-height:100vh;display:flex;flex-direction:column}.not-found-header{padding:1rem 0 2rem}.not-found-logo{color:#fff;text-decoration:none;font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.logo-icon{font-size:2rem}.not-found-content{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center}.not-found-illustration{margin:2rem 0}.error-code{font-size:8rem;font-weight:900;background:linear-gradient(45deg,#ff6b6b,#4ecdc4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.lost-traveler{width:150px;height:150px;margin:1rem auto;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.not-found-title{font-size:2.5rem;font-weight:700;margin-bottom:1rem;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.not-found-subtitle{font-size:1.25rem;opacity:.9;margin-bottom:2rem;line-height:1.6}.not-found-path{background:rgba(255,255,255,.1);border-radius:8px;padding:1rem;margin:2rem 0;backdrop-filter:blur(10px)}.path-label{display:block;font-size:.875rem;opacity:.8;margin-bottom:.5rem}.requested-path{background:rgba(0,0,0,.2);padding:.5rem 1rem;border-radius:4px;font-family:monospace;font-size:1rem;word-break:break-all}.not-found-search{margin:2rem 0}.not-found-search h3{margin-bottom:1rem;font-size:1.25rem}.search-form{max-width:400px;margin:0 auto}.search-input-group{display:flex;gap:.5rem;margin-bottom:1rem}.search-input{flex:1;padding:.75rem 1rem;border:none;border-radius:8px;font-size:1rem;background:rgba(255,255,255,.9);color:#1f2937}.search-input::placeholder{color:#6b7280}.search-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-weight:500;transition:background-color .2s ease}.search-btn:hover{background:#2563eb}.not-found-suggestions{margin:3rem 0}.not-found-suggestions h3{margin-bottom:1.5rem;font-size:1.25rem}.suggestions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;max-width:500px;margin:0 auto}.suggestion-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:1.5rem 1rem;text-decoration:none;color:#fff;display:flex;flex-direction:column;align-items:center;gap:.75rem;transition:all .3s ease;backdrop-filter:blur(10px)}.suggestion-card:hover{background:rgba(255,255,255,.2);transform:translateY(-2px);box-shadow:0 8px 25px #0003}.suggestion-icon{font-size:2rem}.suggestion-label{font-weight:500;font-size:.875rem}.not-found-redirect{margin:3rem 0}.redirect-notice{background:rgba(255,255,255,.1);border-radius:8px;padding:1rem;margin-bottom:1rem;backdrop-filter:blur(10px)}.countdown-timer{font-weight:700;font-size:1.25rem;color:#fbbf24;margin:0 .5rem}.redirect-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.not-found-help{margin:2rem 0;max-width:500px;margin-left:auto;margin-right:auto}.help-details{background:rgba(255,255,255,.1);border-radius:8px;padding:1rem;backdrop-filter:blur(10px)}.help-details summary{cursor:pointer;font-weight:600;margin-bottom:1rem;list-style:none}.help-details summary::-webkit-details-marker{display:none}.help-details summary:before{content:"▶ ";transition:transform .2s ease}.help-details[open] summary:before{transform:rotate(90deg)}.help-content{text-align:left;font-size:.875rem;opacity:.9}.help-content ul{margin:1rem 0;padding-left:1.5rem}.help-content li{margin-bottom:.5rem}.help-contact{display:flex;gap:1rem;margin-top:1rem;flex-wrap:wrap}.help-link{color:#60a5fa;text-decoration:none;font-weight:500}.help-link:hover{color:#93c5fd;text-decoration:underline}.not-found-footer{text-align:center;padding:2rem 0;font-size:.875rem;opacity:.7;border-top:1px solid rgba(255,255,255,.1)}@media (max-width: 768px){.not-found-container{padding:1rem}.error-code{font-size:5rem}.not-found-title{font-size:2rem}.not-found-subtitle{font-size:1.125rem}.suggestions-grid{grid-template-columns:repeat(2,1fr)}.error-actions,.page-error-actions,.redirect-actions{flex-direction:column;align-items:center}.search-input-group,.help-contact{flex-direction:column}}@media (max-width: 480px){.error-code{font-size:4rem}.not-found-title{font-size:1.75rem}.suggestions-grid{grid-template-columns:1fr}.lost-traveler{width:100px;height:100px}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.loading-spinner-circle{position:relative;display:inline-block;border-radius:50%;border:2px solid transparent;animation:spin 1s linear infinite}.loading-spinner-path{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:currentColor;border-right-color:currentColor;opacity:.6}.loading-spinner-small .loading-spinner-circle{width:20px;height:20px}.loading-spinner-medium .loading-spinner-circle{width:32px;height:32px}.loading-spinner-large .loading-spinner-circle{width:48px;height:48px}.loading-spinner-primary{color:var(--primary-color, #1a1a1a)}.loading-spinner-secondary{color:var(--secondary-color, #6b7280)}.loading-spinner-white{color:#fff}.loading-spinner-accent{color:var(--accent-color, #2563eb)}.loading-spinner-text{font-size:.875rem;color:currentColor;opacity:.8}.loading-fullscreen{position:fixed;inset:0;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(2px)}.loading-overlay{position:absolute;inset:0;background:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;z-index:10;backdrop-filter:blur(1px)}.page-loader{position:fixed;inset:0;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center;z-index:9999;color:#fff}.page-loader-content{text-align:center;animation:fadeInUp .8s ease-out}.hotel-loader{position:relative;width:80px;height:100px;margin:0 auto 2rem}.hotel-building{width:60px;height:80px;background:linear-gradient(to bottom,#4f46e5,#3b82f6);border-radius:4px 4px 0 0;position:relative;margin:0 auto;box-shadow:0 4px 15px #0003;animation:buildingPulse 2s ease-in-out infinite}@keyframes buildingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.hotel-floor{height:20px;border-bottom:1px solid rgba(255,255,255,.2);animation:floorLight 3s ease-in-out infinite}.hotel-floor:nth-child(1){animation-delay:0s}.hotel-floor:nth-child(2){animation-delay:.5s}.hotel-floor:nth-child(3){animation-delay:1s}@keyframes floorLight{0%,90%,to{background:transparent}10%,80%{background:rgba(255,255,255,.1)}}.hotel-windows{position:absolute;top:10px;left:10px;right:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.window{width:12px;height:12px;background:#fbbf24;border-radius:2px;animation:windowTwinkle 2s ease-in-out infinite}.window:nth-child(1){animation-delay:0s}.window:nth-child(2){animation-delay:.5s}.window:nth-child(3){animation-delay:1s}.window:nth-child(4){animation-delay:1.5s}@keyframes windowTwinkle{0%,90%,to{opacity:.3}10%,80%{opacity:1;box-shadow:0 0 8px #fbbf24}}.hotel-door{width:20px;height:25px;background:#1f2937;border-radius:4px 4px 0 0;margin:0 auto;position:relative;border:2px solid #374151}.hotel-door:after{content:"";position:absolute;right:3px;top:8px;width:3px;height:3px;background:#fbbf24;border-radius:50%}.page-loader-text{font-size:1.25rem;font-weight:600;margin-bottom:1rem;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.loading-dots{display:flex;gap:.5rem;justify-content:center}.loading-dots span{width:8px;height:8px;background:white;border-radius:50%;animation:dotBounce 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}@keyframes dotBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.button-loader{display:inline-flex;align-items:center;justify-content:center}.button-spinner{border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.button-loader-small .button-spinner{width:16px;height:16px}.button-loader-medium .button-spinner{width:20px;height:20px}.skeleton-base{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.card-skeleton{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:white}.skeleton-image{@extend .skeleton-base;height:200px;background:#f3f4f6}.skeleton-content{padding:1rem}.skeleton-line{@extend .skeleton-base;height:16px;border-radius:4px;margin-bottom:.75rem;background:#f3f4f6}.skeleton-line-short{width:60%}.room-card-skeleton{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:white;box-shadow:0 2px 4px #0000001a}.skeleton-room-image{@extend .skeleton-base;height:210px;background:#f3f4f6}.skeleton-room-content{padding:1.5rem}.skeleton-room-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem}.skeleton-title{flex:1;height:20px;margin-right:1rem}.skeleton-price{width:80px;height:24px}.skeleton-room-details{margin-bottom:1rem}.skeleton-room-features{display:flex;gap:.5rem;margin-bottom:1.5rem}.skeleton-feature{@extend .skeleton-base;width:60px;height:24px;border-radius:12px;background:#f3f4f6}.skeleton-room-actions{display:flex;justify-content:flex-end}.skeleton-button{@extend .skeleton-base;width:120px;height:40px;border-radius:8px;background:#f3f4f6}.search-results-skeleton{padding:2rem}.skeleton-search-header{margin-bottom:2rem}.skeleton-filters{display:flex;gap:1rem;margin-bottom:2rem}.skeleton-filter{@extend .skeleton-base;width:100px;height:40px;border-radius:8px;background:#f3f4f6}.skeleton-results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem}.booking-form-skeleton{max-width:600px;margin:0 auto}.skeleton-form-section{margin-bottom:2rem}.skeleton-section-title{@extend .skeleton-base;height:24px;width:200px;margin-bottom:1rem;background:#f3f4f6}.skeleton-form-row{display:flex;gap:1rem;margin-bottom:1rem}.skeleton-input{@extend .skeleton-base;height:48px;flex:1;border-radius:8px;background:#f3f4f6}.skeleton-input-full{width:100%}.skeleton-form-actions{display:flex;gap:1rem;justify-content:flex-end}.skeleton-button-primary{background:#ddd6fe}.skeleton-button-secondary{background:#f3f4f6}.dashboard-skeleton{padding:2rem}.skeleton-dashboard-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.skeleton-avatar{@extend .skeleton-base;width:64px;height:64px;border-radius:50%;background:#f3f4f6}.skeleton-welcome{flex:1}.skeleton-name{width:200px;height:24px;margin-bottom:.5rem}.skeleton-subtitle{width:150px;height:16px}.skeleton-dashboard-tabs{display:flex;gap:1rem;margin-bottom:2rem}.skeleton-tab{@extend .skeleton-base;width:120px;height:40px;border-radius:8px;background:#f3f4f6}.skeleton-tab.active{background:#ddd6fe}.skeleton-booking-card{border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1rem;background:white}.skeleton-booking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.skeleton-booking-title{flex:1;height:20px;margin-right:1rem}.skeleton-status{@extend .skeleton-base;width:80px;height:24px;border-radius:12px;background:#f3f4f6}.skeleton-booking-details{display:flex;flex-direction:column;gap:.5rem}.inline-loader{display:inline-flex;align-items:center;gap:.25rem}.inline-dots{display:inline-flex}.inline-dots span{animation:dotFade 1.4s ease-in-out infinite}.inline-dots span:nth-child(1){animation-delay:0s}.inline-dots span:nth-child(2){animation-delay:.2s}.inline-dots span:nth-child(3){animation-delay:.4s}@keyframes dotFade{0%,80%,to{opacity:.3}40%{opacity:1}}.inline-loader-primary{color:var(--primary-color, #1a1a1a)}.inline-loader-secondary{color:var(--secondary-color, #6b7280)}.progress-loader{width:100%;margin:1rem 0}.progress-text{font-size:.875rem;color:#374151;margin-bottom:.5rem;text-align:center}.progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:4px;transition:width .3s ease;position:relative}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:progressShimmer 2s infinite}@keyframes progressShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-percentage{font-size:.75rem;color:#6b7280;text-align:center}@media (max-width: 768px){.skeleton-results-grid{grid-template-columns:1fr}.skeleton-form-row,.skeleton-form-actions{flex-direction:column}.skeleton-room-header{flex-direction:column;align-items:start}.skeleton-price{margin-top:.5rem}}:root{--color-primary: #1a1a1a;--color-secondary: #f5f5f5;--color-accent: #2c5282;--color-success: #48bb78;--color-error: #e53e3e;--color-warning: #ed8936;--color-background: #ffffff;--color-border: #e2e8f0;--color-text-muted: #718096;--color-text-inverse: #ffffff;--color-accent-light: #3182ce;--color-accent-dark: #2a4365;--color-success-light: #68d391;--color-success-dark: #38a169;--color-error-light: #fc8181;--color-error-dark: #c53030;--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--heading-h1: 2.5rem;--heading-h2: 2rem;--heading-h3: 1.5rem;--heading-h4: 1.25rem;--heading-h5: 1.125rem;--heading-h6: 1rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-20: 5rem;--container-max-width: 1200px;--header-height-desktop: 70px;--header-height-mobile: 60px;--padding-mobile: 20px;--padding-tablet: 40px;--padding-desktop: 60px;--radius-sm: .125rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-header: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out;--transition-slow: .5s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--breakpoint-mobile: 768px;--breakpoint-tablet: 1024px;--breakpoint-desktop: 1025px}@media (min-width: 769px){:root{--current-padding: var(--padding-tablet)}}@media (min-width: 1025px){:root{--current-padding: var(--padding-desktop)}}@media (max-width: 768px){:root{--current-padding: var(--padding-mobile);--header-height: var(--header-height-mobile)}}@media (min-width: 769px) and (max-width: 1024px){:root{--header-height: var(--header-height-desktop)}}@media (min-width: 1025px){:root{--header-height: var(--header-height-desktop)}}.room-details-container{display:grid;grid-template-columns:1fr 400px;gap:var(--spacing-8);margin-top:var(--spacing-6)}@media (max-width: 768px){.room-details-container{grid-template-columns:1fr;gap:var(--spacing-6)}}.room-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.detail-image{width:100%;height:300px;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.room-content h1{margin-bottom:var(--spacing-4)}.room-description{font-size:var(--text-lg);line-height:var(--line-height-relaxed);color:var(--color-text-muted);margin-bottom:var(--spacing-6)}.room-amenities{margin-bottom:var(--spacing-8)}.room-amenities h3{margin-bottom:var(--spacing-3);color:var(--color-primary)}.room-amenities ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-2)}.room-amenities li{padding:var(--spacing-2) 0;border-bottom:1px solid var(--color-border);margin-bottom:0}.room-amenities li:before{content:"";color:var(--color-success);font-weight:var(--font-weight-bold);margin-right:var(--spacing-2)}.booking-section{background-color:var(--color-background);padding:var(--spacing-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);position:sticky;top:calc(var(--header-height-desktop) + var(--spacing-4))}.booking-section h3{margin-bottom:var(--spacing-4);color:var(--color-primary)}.booking-form{display:flex;flex-direction:column;gap:var(--spacing-4)}.price-display{background-color:var(--color-secondary);padding:var(--spacing-4);border-radius:var(--radius-md);text-align:center;margin:var(--spacing-4) 0}.price-display h4{margin:0;font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-accent)}.auth-toggle{text-align:center;margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}.auth-toggle p{margin-bottom:var(--spacing-3);color:var(--color-text-muted)}.mobile-menu-toggle{display:none;background:none;border:none;font-size:var(--text-xl);color:var(--color-primary);cursor:pointer;padding:var(--spacing-2)}@media (max-width: 768px){.mobile-menu-toggle{display:block}.nav-menu{display:none}.nav-menu.mobile-open{display:flex;position:absolute;top:100%;left:0;right:0;background-color:var(--color-background);flex-direction:column;padding:var(--spacing-4);box-shadow:var(--shadow-lg);border-top:1px solid var(--color-border);gap:var(--spacing-3);height:auto}.nav-menu.mobile-open li{height:auto;align-items:stretch}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:var(--font-weight-bold)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-medium{font-weight:var(--font-weight-medium)}.text-muted{color:var(--color-text-muted)}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.bg-secondary{background-color:var(--color-secondary)}.bg-white{background-color:var(--color-background)}.border{border:1px solid var(--color-border)}.border-t{border-top:1px solid var(--color-border)}.border-b{border-bottom:1px solid var(--color-border)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.btn:focus-visible,.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible,.nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.skip-to-content{position:absolute;top:-40px;left:6px;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);text-decoration:none;z-index:var(--z-tooltip);transition:top var(--transition-fast)}.skip-to-content:focus{top:6px}.home-page{min-height:100vh;animation:fadeIn .8s ease-out;background-color:var(--color-secondary);position:relative;margin-top:-80px}.home-hero-section{height:100vh;padding-top:calc(80px + var(--spacing-4));padding-left:var(--spacing-5);padding-right:var(--spacing-5);padding-bottom:var(--spacing-4);display:flex;flex-direction:column;justify-content:center;background-color:var(--color-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.home-content-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-6);width:100%;max-width:1000px;margin:0 auto}.hero-section{position:relative;height:300px;width:100%;overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);background-color:var(--color-secondary)}.booking-search-section{width:100%;background-color:var(--color-secondary)}.hero-image-container{position:absolute;inset:0;z-index:1;background-color:var(--color-secondary)}.hero-slideshow{width:100%;height:100%;position:relative;overflow:hidden;background-color:var(--color-secondary)}.slideshow-container{width:100%;height:100%;position:relative;background-color:var(--color-secondary)}.slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 1.5s ease-in-out;background-color:var(--color-secondary);background-size:cover;background-position:center;background-repeat:no-repeat}.slide.active{opacity:1}.slide:nth-child(1){background-image:url(https://images.unsplash.com/photo-1566073771259-6a8506099945?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)}.slide:nth-child(2){background-image:url(https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)}.slide:nth-child(3){background-image:url(https://images.unsplash.com/photo-1618773928121-c32242e63f39?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)}.slide:nth-child(1){animation:slide1 15s infinite}.slide:nth-child(2){animation:slide2 15s infinite}.slide:nth-child(3){animation:slide3 15s infinite}@keyframes slide1{0%,33%{opacity:1}34%,to{opacity:0}}@keyframes slide2{0%,33%{opacity:0}34%,66%{opacity:1}67%,to{opacity:0}}@keyframes slide3{0%,66%{opacity:0}67%,to{opacity:1}}.hero-gradient-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.3) 70%,rgba(0,0,0,.5) 100%);z-index:2}.booking-widget-container{max-width:1000px;margin:0 auto;padding:0 var(--spacing-5)}.booking-widget{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:0 20px 40px #00000026;padding:var(--spacing-6);transition:transform var(--transition-normal),box-shadow var(--transition-normal);animation:slideUpWidget .6s ease-out .2s both;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}@keyframes slideUpWidget{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.booking-widget:hover{transform:translateY(-2px);box-shadow:0 25px 50px #0003}.booking-widget-title{font-family:var(--font-body);font-size:var(--text-lg);font-weight:var(--font-weight-medium);text-align:center;margin-bottom:var(--spacing-4);color:var(--color-primary);letter-spacing:2px;text-transform:uppercase}.booking-form-fields{display:grid;grid-template-columns:1fr 2fr 2fr;gap:var(--spacing-4);margin-bottom:var(--spacing-4)}.booking-field{position:relative}.field-with-icon{position:relative;display:flex;align-items:center}.field-icon{position:absolute;left:var(--spacing-4);z-index:2;color:var(--color-text-muted);pointer-events:none;transition:color var(--transition-fast)}.booking-input{width:100%;height:45px;background-color:#f5f5f5;border:2px solid transparent;border-radius:var(--radius-md);padding:0 var(--spacing-4) 0 var(--spacing-12);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-primary);transition:all var(--transition-normal);outline:none}.booking-input:focus{background-color:var(--color-background);border-color:var(--color-primary);box-shadow:0 0 0 3px #1a1a1a1a;transform:translateY(-1px)}.booking-input:focus+.date-display{opacity:1;transform:translateY(0)}.booking-input.error{border-color:var(--color-error);background-color:#e53e3e0d}.booking-input.error:focus{box-shadow:0 0 0 3px #e53e3e1a}.booking-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--spacing-3) center;background-repeat:no-repeat;background-size:16px 12px;padding-right:var(--spacing-10)}.booking-select:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%231a1a1a' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e")}.guest-counter{display:flex;align-items:center;background:white;border:2px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;padding-left:var(--spacing-12);height:45px}.guest-btn{background:none;border:none;font-size:1.2rem;font-weight:700;color:var(--color-text);padding:.75rem;cursor:pointer;min-width:44px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.guest-btn:hover{background-color:var(--color-background-muted)}.guest-count{flex:1;text-align:center;font-weight:600;color:var(--color-primary);padding:.75rem;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);margin-bottom:0!important}.booking-date{color:var(--color-primary);position:relative}.booking-date+.date-display~.field-icon.calendar-icon,.field-with-icon .field-icon.calendar-icon{display:none}.booking-date{padding-left:var(--spacing-4)!important}.booking-date::-webkit-calendar-picker-indicator{position:absolute;right:var(--spacing-3);width:20px;height:20px;cursor:pointer;opacity:1}.date-display{display:none}.booking-input:focus .field-icon{color:var(--color-primary)}.field-error{position:absolute;top:100%;left:0;margin-top:var(--spacing-1);font-size:var(--text-xs);color:var(--color-error);font-weight:var(--font-weight-medium);opacity:0;transform:translateY(-10px);animation:slideInError .3s ease forwards}@keyframes slideInError{to{opacity:1;transform:translateY(0)}}.booking-search-button{width:100%;height:45px;background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-semibold);letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.booking-search-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.booking-search-button:hover{background-color:#000;transform:translateY(-2px) scale(1.02);box-shadow:0 10px 25px #0000004d}.booking-search-button:hover:before{left:100%}.booking-search-button:active{transform:translateY(0) scale(1)}.booking-search-button:disabled{background-color:var(--color-text-muted);cursor:not-allowed;transform:none;box-shadow:none}.booking-search-button:disabled:before{display:none}@media (min-width: 769px) and (max-width: 1024px){.booking-form-fields{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--spacing-4)}.booking-field:first-child{grid-column:1 / -1;order:1}.booking-field:nth-child(2){order:2}.booking-field:nth-child(3){order:3}.booking-widget{padding:var(--spacing-8)}}@media (max-width: 768px){.home-hero-section{height:auto;min-height:100vh;padding:var(--spacing-3) var(--spacing-4);justify-content:center}.home-content-wrapper{gap:var(--spacing-4)}.hero-section{height:250px;max-width:95%}.booking-search-section{padding:var(--spacing-3) 0}.booking-widget-container{padding:0}.booking-widget{padding:var(--spacing-6)}.booking-widget-title{font-size:var(--text-base);margin-bottom:var(--spacing-6)}.booking-form-fields{grid-template-columns:1fr;gap:var(--spacing-4)}.booking-field{width:100%}.booking-input{height:50px;font-size:var(--text-lg);width:100%;box-sizing:border-box}.booking-search-button{height:50px;font-size:var(--text-lg)}.field-error{position:static;margin-top:var(--spacing-2);transform:none;opacity:1;animation:none}}@media (max-width: 480px){.home-hero-section{padding:var(--spacing-2) var(--spacing-3)}.home-content-wrapper{gap:var(--spacing-3)}.hero-section{height:200px;max-width:100%;border-radius:var(--radius-md)}.booking-search-section{padding:var(--spacing-2) 0}.booking-widget{padding:var(--spacing-5);margin:0}.booking-widget-title{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-primary);letter-spacing:1px}}@media screen and (max-width: 768px) and (-webkit-min-device-pixel-ratio: 1){.booking-form-fields{display:flex!important;flex-direction:column!important;width:100%!important}.booking-field{width:100%!important;flex:none!important}.booking-input,.booking-date{width:100%!important;max-width:100%!important;box-sizing:border-box!important}}.about-section{padding:var(--spacing-20) 0;background-color:var(--color-secondary)}.about-section h2{text-align:center;font-family:var(--font-heading);font-size:var(--text-4xl);color:var(--color-primary);margin-bottom:var(--spacing-12)}.about-content{max-width:800px;margin:0 auto;text-align:center}.about-content p{font-size:var(--text-lg);line-height:var(--line-height-relaxed);color:var(--color-text-muted);margin-bottom:var(--spacing-6)}.about-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-8);margin-top:var(--spacing-12)}.feature{background-color:var(--color-background);padding:var(--spacing-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center}.feature h3{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--color-primary);margin-bottom:var(--spacing-3)}.feature p{font-size:var(--text-base);color:var(--color-text-muted);margin:0}.contact-section{padding:var(--spacing-20) 0;background-color:var(--color-secondary)}.contact-section h2{text-align:center;font-family:var(--font-heading);font-size:var(--text-4xl);color:var(--color-primary);margin-bottom:var(--spacing-12)}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-12);max-width:1000px;margin:0 auto}.contact-info{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-6)}.contact-item{text-align:center;padding:var(--spacing-6);background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;justify-content:center;align-items:center}.contact-item h3{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-primary);margin-bottom:var(--spacing-3)}.contact-item p{font-size:var(--text-base);color:var(--color-text-muted);margin:0;line-height:var(--line-height-relaxed)}.contact-form{background-color:var(--color-background);padding:var(--spacing-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.contact-form h3{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--color-primary);margin-bottom:var(--spacing-6);text-align:center}@media (max-width: 768px){.about-section,.contact-section{padding:0 0 2rem}.about-section h2,.contact-section h2{font-size:var(--text-3xl);margin-bottom:var(--spacing-8)}.about-features{grid-template-columns:1fr;gap:var(--spacing-6);margin-top:var(--spacing-8)}.contact-content{grid-template-columns:1fr;gap:var(--spacing-8)}.contact-info{grid-template-columns:1fr;gap:var(--spacing-4)}.contact-form{padding:1.25rem!important;margin-top:2rem}.contact-form .btn{width:100%}.booking-form-fields{display:flex!important;flex-direction:column!important;width:100%!important}.booking-field{width:100%!important;flex:none!important}.booking-input,.booking-date{width:100%!important;max-width:100%!important;box-sizing:border-box!important;margin:0!important;padding:.75rem!important;min-width:0!important;flex:1!important}input[type=date]{width:100%!important;max-width:100%!important;box-sizing:border-box!important;margin:0!important;padding:.75rem!important;min-width:0!important}.guest-counter{display:flex!important;align-items:center!important;width:100%!important;background:white!important;border:2px solid #e5e7eb!important;border-radius:8px!important;padding-left:3rem!important}.guest-btn{background:none!important;border:none!important;font-size:1.5rem!important;font-weight:700!important;color:#374151!important;padding:.75rem!important;cursor:pointer!important;min-width:44px!important;display:flex!important;align-items:center!important;justify-content:center!important}.guest-count{flex:1!important;text-align:center!important;font-weight:600!important;color:#1f2937!important;padding:.75rem!important;margin-bottom:0!important}}.room-selection-page{min-height:100vh;background-color:var(--color-secondary)}.booking-progress-container{background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-6) 0}.booking-progress{display:flex;justify-content:space-between;align-items:center;max-width:800px;margin:0 auto;padding:0 var(--spacing-5)}.progress-step-wrapper{display:flex;align-items:center;position:relative;flex:1;justify-content:center}.progress-step-container{display:flex;flex-direction:column;align-items:center;position:relative}.progress-step{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:var(--color-border);color:var(--color-text-muted);font-weight:var(--font-weight-semibold);transition:all var(--transition-normal);margin-bottom:var(--spacing-2)}.progress-step.active{background-color:var(--color-primary);color:var(--color-text-inverse);transform:scale(1.1)}.progress-step.completed{background-color:var(--color-primary);color:var(--color-text-inverse)}.step-number{font-size:var(--text-sm);font-weight:var(--font-weight-bold)}.step-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-align:center;white-space:nowrap}.progress-step.active+.step-label,.progress-step.completed+.step-label{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.date-summary-bar{background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-5) 0;box-shadow:0 2px 4px #0000000d}.date-summary-content{display:flex;justify-content:space-between;align-items:center;flex-direction:row-reverse}.date-range{display:flex;align-items:center;gap:var(--spacing-3);font-weight:var(--font-weight-bold);font-size:var(--text-lg);color:var(--color-primary)}.booking-details{flex:1;display:flex;align-items:center;justify-content:flex-start}.nights-guests{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-base);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.room-controls{background-color:var(--color-background);padding:var(--spacing-6) var(--spacing-5);border-bottom:1px solid var(--color-border)}.results-header{display:flex;flex-direction:column;gap:var(--spacing-3);margin-bottom:var(--spacing-5)}.title-count-row{display:flex;justify-content:space-between;align-items:center;width:100%}.page-title{margin:0;font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.results-count{font-size:var(--text-base);color:var(--color-text-muted);font-weight:var(--font-weight-medium);margin:0}.browse-notice{font-size:var(--text-base);color:var(--color-text-muted);text-align:center;margin:0;padding:var(--spacing-2) 0}.date-info-row{display:flex;justify-content:flex-start;align-items:center;width:100%;margin-bottom:var(--spacing-4);padding:var(--spacing-3) 0;border-top:1px solid var(--color-border)}.guests-nights{flex:1;font-size:var(--text-base);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-align:right}.selected-dates{font-weight:var(--font-weight-bold);font-size:var(--text-lg);color:var(--color-primary);margin-right:auto}.date-arrow{font-size:var(--text-xl);color:var(--color-accent)}.separator{color:var(--color-border)}.controls-row{display:flex;justify-content:flex-end;align-items:center;gap:var(--spacing-4)}.sort-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-primary)}.sort-dropdown{position:relative}.sort-select{appearance:none;background-color:var(--color-background);border:none;border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-8) var(--spacing-2) var(--spacing-3);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast);min-width:160px;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--spacing-2) center;background-repeat:no-repeat;background-size:20px 16px}.sort-select:focus{outline:none;border:none;box-shadow:0 0 0 3px #1a1a1a1a}.sort-select:active{border:none;outline:none}.filter-toggle{font-size:var(--text-sm);padding:var(--spacing-2) var(--spacing-4)}.filters-section{max-height:0;overflow:hidden;transition:max-height var(--transition-normal) ease-out;margin-top:var(--spacing-4)}.filters-section.show{max-height:200px;transition:max-height var(--transition-normal) ease-in}.filter-group{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);background-color:var(--color-secondary);border-radius:var(--radius-md)}.filter-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);min-width:80px}.filter-select{padding:var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);background-color:var(--color-background)}.room-listings{padding:var(--spacing-8) 0}.rooms-list{display:flex;flex-direction:column;gap:var(--spacing-6)}.room-card-container{animation:fadeInUp .6s ease-out;overflow:hidden}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.room-card{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);overflow:hidden;transition:all var(--transition-normal);display:flex;height:200px}.room-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.room-selection-page .room-image-container{position:relative;width:300px;min-width:300px;overflow:hidden;padding:16px;box-sizing:border-box}.room-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow),opacity var(--transition-fast);opacity:0}.room-image.loaded{opacity:1}.room-card:hover .room-image{transform:scale(1.05)}.room-image-skeleton{width:100%;height:100%;background-color:var(--color-secondary);position:relative;overflow:hidden}.room-image-placeholder{width:100%;height:100%;background-color:var(--color-secondary);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.skeleton-shimmer{width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.room-selection-page .room-details{flex:1;padding:var(--spacing-4);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.room-content{flex:1;padding-right:var(--spacing-4)}.room-title{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-1);line-height:var(--line-height-tight)}.room-subtitle{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--spacing-2);text-transform:uppercase;letter-spacing:.5px}.room-description{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--line-height-tight);margin-bottom:var(--spacing-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.room-amenities{display:flex;flex-wrap:wrap;gap:var(--spacing-1);margin-bottom:var(--spacing-3)}.amenity-tag{padding:var(--spacing-1) var(--spacing-3);background-color:var(--color-secondary);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.room-booking{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-4);gap:var(--spacing-3);background-color:var(--color-secondary);border-radius:var(--radius-md);min-width:180px;flex-shrink:0}.room-pricing{text-align:center;margin-bottom:0}.room-price{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-1)}.price-disclaimer{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.book-room-btn{background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-4);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--transition-fast);min-width:100px}.book-room-btn:hover{background-color:#000;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.book-room-btn:active{transform:translateY(0)}.book-room-btn:disabled{background-color:var(--color-text-muted);cursor:not-allowed;transform:none}.room-card.skeleton{pointer-events:none}.skeleton-text{background-color:var(--color-secondary);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton-text:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 1.5s infinite}.skeleton-title{height:24px;width:70%;margin-bottom:var(--spacing-2)}.skeleton-subtitle{height:16px;width:50%;margin-bottom:var(--spacing-4)}.skeleton-description{height:16px;width:100%;margin-bottom:var(--spacing-2)}.skeleton-description.short{width:60%;margin-bottom:var(--spacing-5)}.skeleton-price{height:28px;width:40%;margin-bottom:var(--spacing-1)}.skeleton-disclaimer{height:12px;width:60%}.skeleton-button{height:44px;width:120px;background-color:var(--color-secondary);border-radius:var(--radius-md)}.no-rooms-state{display:flex;justify-content:center;align-items:center;min-height:400px}.no-rooms-content{text-align:center;max-width:400px}.no-rooms-icon{margin-bottom:var(--spacing-4);color:var(--color-text-muted)}.no-rooms-content h3{margin-bottom:var(--spacing-3);color:var(--color-primary)}.no-rooms-content p{margin-bottom:var(--spacing-5);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}@media (min-width: 1025px){.room-card{min-height:20px}.room-selection-page .room-details{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;min-height:200px}.room-content{flex:1;padding-right:var(--spacing-4)}.room-selection-page .room-image-container{padding:16px!important}.room-booking{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-4);gap:var(--spacing-6);background-color:var(--color-secondary);border-radius:var(--radius-md);min-width:180px;flex-shrink:0;height:100%}.room-pricing{text-align:center;margin-bottom:0}.room-price{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-1)}.price-disclaimer{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--line-height-tight)}.room-booking .book-room-btn{min-width:140px!important;display:flex!important;align-items:center;justify-content:center;padding:var(--spacing-3) var(--spacing-4)!important;background-color:var(--color-primary)!important;color:var(--color-text-inverse)!important;border:none!important;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--transition-fast);opacity:1!important;visibility:visible!important;height:auto!important;width:auto!important}.room-booking .book-room-btn:hover{background-color:#000!important;transform:translateY(-1px);box-shadow:var(--shadow-md)}.room-booking .book-room-btn:disabled{background-color:var(--color-text-muted)!important;cursor:not-allowed;transform:none}}@media (min-width: 769px) and (max-width: 1024px){.room-card{height:212px}.room-selection-page .room-image-container{width:300px;min-width:300px;height:212px;padding:16px!important}.room-title{font-size:var(--text-base)}.room-selection-page .room-details{flex-direction:row}.room-booking{flex-direction:column;align-items:flex-start;gap:var(--spacing-5);background-color:var(--color-secondary);height:100%;padding:var(--spacing-4);border-radius:var(--radius-md)}.book-room-btn{align-self:stretch;padding:var(--spacing-2) var(--spacing-4);font-size:var(--text-sm)}}@media (max-width: 768px){.selected-dates{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);margin-right:0}.date-arrow{transform:rotate(90deg);font-size:var(--text-xl);color:var(--color-primary);transition:all var(--transition-fast)}.booking-progress{padding:0 var(--spacing-3)}.progress-step{width:32px;height:32px}.step-label{font-size:10px}.progress-line{margin:0 var(--spacing-2)}.date-summary-content{flex-direction:column;gap:var(--spacing-3);text-align:center}.date-range{justify-content:center;font-size:var(--text-base)}.guests-nights{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-1);text-align:right}.guests-nights .separator{display:none}.results-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.page-title{font-size:var(--text-2xl)}.controls-row{flex-direction:column;align-items:stretch;gap:var(--spacing-3)}.sort-section{justify-content:space-between}.filter-toggle{align-self:stretch}.room-card{flex-direction:column;height:auto}.room-selection-page .room-image-container{width:100%;min-width:auto;height:210px}.room-selection-page .room-details{padding:var(--spacing-5);flex-direction:column}.room-booking{flex-direction:column;align-items:stretch;gap:var(--spacing-4);min-width:auto;width:100%;margin-top:var(--spacing-4);background-color:transparent;border-radius:0;padding:var(--spacing-4) 0}.book-room-btn{padding:var(--spacing-4);font-size:var(--text-lg)}}@media (max-width: 480px){.date-range{flex-direction:column;gap:var(--spacing-1)}.selected-dates{gap:var(--spacing-3)}.date-arrow{transform:rotate(90deg);font-size:var(--text-2xl);color:var(--color-primary)}.date-arrow:hover{transform:rotate(90deg) scale(1.2)}.nights-guests{flex-direction:column;gap:var(--spacing-1)}.separator{display:none}}.contact-information-page{min-height:100vh;background-color:var(--color-secondary)}.mobile-summary-toggle{display:none;padding:var(--spacing-4) 0;background-color:var(--color-background);border-bottom:1px solid var(--color-border)}.summary-toggle-btn{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:var(--spacing-3) var(--spacing-4);background-color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast);user-select:none;-webkit-tap-highlight-color:transparent}.summary-toggle-btn:hover{background-color:#fff}.toggle-icon{font-size:var(--text-xl);font-weight:var(--font-weight-bold)}.contact-content{display:grid;grid-template-columns:60% 40%;gap:var(--spacing-8);padding:var(--spacing-8) 0;min-height:calc(100vh - 300px)}.contact-form-section{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.contact-form-container{padding:var(--spacing-8)}.page-title{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-3);line-height:var(--line-height-tight)}.page-subtitle{font-size:var(--text-base);color:var(--color-text-muted);margin-bottom:var(--spacing-8);line-height:var(--line-height-relaxed)}.contact-form{display:flex;flex-direction:column;gap:var(--spacing-5)}.form-group{display:flex;flex-direction:column;margin-bottom:0}.form-input,.form-select,.form-textarea{padding:var(--spacing-4);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-body);background-color:var(--color-background);transition:all var(--transition-fast);min-height:50px}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--color-error);box-shadow:0 0 0 3px #e53e3e1a}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted);font-style:italic}.form-textarea{resize:vertical;min-height:120px;font-family:var(--font-body)}.form-error{margin-top:var(--spacing-2);font-size:var(--text-sm);color:var(--color-error);font-weight:var(--font-weight-medium)}.proceed-btn{background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);padding:var(--spacing-4) var(--spacing-6);font-size:var(--text-base);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all var(--transition-fast);min-height:56px;margin-top:var(--spacing-6);align-self:flex-start}.proceed-btn:hover:not(:disabled){background-color:#000;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.proceed-btn:disabled{background-color:var(--color-text-muted);cursor:not-allowed;transform:none;opacity:.6}.booking-summary-section{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);align-self:flex-start;position:sticky;top:var(--spacing-6)}.booking-summary-container{padding:var(--spacing-6)}.summary-title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border)}.room-summary{margin-bottom:var(--spacing-6)}.date-range-display{font-size:var(--text-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-align:left;padding:var(--spacing-3);background-color:var(--color-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);letter-spacing:.5px;line-height:var(--line-height-tight)}.contact-information-page .room-image-container{width:100%;height:120px;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--spacing-4)}.contact-information-page .summary-room-image{height:100%;width:100%;object-fit:cover;transition:transform var(--transition-normal)}.room-details{display:flex;flex-direction:column;gap:var(--spacing-3)}.room-name{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;line-height:var(--line-height-tight)}.stay-dates{display:flex;flex-direction:column;gap:var(--spacing-2)}.date-info{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2) 0}.date-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.price-breakdown{background-color:var(--color-secondary);border-radius:var(--radius-md);padding:var(--spacing-5);margin-bottom:var(--spacing-6)}.breakdown-title{font-size:var(--text-base);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-4)}.price-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3) 0}.price-label{font-size:var(--text-sm);color:var(--color-text-muted);flex:1}.price-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-4) 0}.price-item.total{padding:var(--spacing-4) 0;border-top:2px solid var(--color-primary);margin-top:var(--spacing-3)}.price-item.total .price-value{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}.summary-footer{padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.cancellation-policy{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin:0;font-style:italic}@media (min-width: 1025px){.mobile-summary-toggle{display:none}.booking-summary-section:not(.desktop-summary){display:none}.contact-content{display:grid;grid-template-columns:60% 40%;gap:var(--spacing-8);padding:var(--spacing-8) 0}.booking-summary-section.desktop-summary{position:sticky;top:var(--spacing-6);background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);max-height:none;opacity:1;visibility:visible;overflow:visible;transition:none;align-self:flex-start}.desktop-summary .booking-summary-container{padding:var(--spacing-6)}.desktop-summary .summary-title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border)}.desktop-summary .room-image-container{width:100%!important;height:120px;margin-bottom:var(--spacing-4)}}@media (min-width: 769px) and (max-width: 1024px){.mobile-summary-toggle{display:block}.booking-summary-section.desktop-summary{display:none}.contact-content{display:block;padding:0}.contact-form-section{border-radius:0;box-shadow:none;border:none;border-bottom:1px solid var(--color-border)}.contact-form-container{padding:var(--spacing-6)}.page-title{font-size:var(--text-2xl)}.form-row{grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.proceed-btn{width:100%;margin-top:var(--spacing-6)}.booking-summary-section{position:relative;top:auto;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid var(--color-border);max-height:0;overflow:hidden;transition:max-height var(--transition-normal) ease-out;background-color:var(--color-background);opacity:0;visibility:hidden}.booking-summary-section.show{max-height:1000px;opacity:1;visibility:visible;transition:max-height var(--transition-normal) ease-in,opacity var(--transition-normal) ease-in,visibility var(--transition-normal) ease-in}.booking-summary-container{padding:var(--spacing-5)}.summary-title{font-size:var(--text-lg);margin-bottom:var(--spacing-5)}.room-image-container{height:180px;margin-bottom:var(--spacing-4)}.room-summary{margin-bottom:var(--spacing-6)}.date-range-display{font-size:var(--text-sm);padding:var(--spacing-4);margin-bottom:var(--spacing-5)}.price-breakdown{padding:var(--spacing-4);margin-bottom:var(--spacing-5)}}@media (max-width: 768px){.contact-form{padding:0;box-shadow:none}.mobile-summary-toggle{display:block}.booking-summary-section.desktop-summary{display:none}.contact-content{display:block;padding:0}.contact-form-section{border-radius:0;box-shadow:none;border:none;border-bottom:1px solid var(--color-border)}.contact-form-container{padding:var(--spacing-6)}.page-title{font-size:var(--text-2xl)}.form-row{grid-template-columns:1fr;gap:var(--spacing-4)}.proceed-btn{width:100%;margin-top:var(--spacing-6)}.booking-summary-section{position:relative;top:auto;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid var(--color-border);max-height:0;overflow:hidden;transition:max-height var(--transition-normal) ease-out;background-color:var(--color-background);opacity:0;visibility:hidden}.booking-summary-section.show{max-height:800px;opacity:1;visibility:visible;transition:max-height var(--transition-normal) ease-in,opacity var(--transition-normal) ease-in,visibility var(--transition-normal) ease-in}.booking-summary-container{padding:var(--spacing-5)}.summary-title{font-size:var(--text-lg);margin-bottom:var(--spacing-5)}.contact-information-page .room-image-container{width:100%!important;height:150px;margin-bottom:var(--spacing-4)}.date-info{padding:var(--spacing-3) 0}.price-breakdown{padding:var(--spacing-4);margin-bottom:var(--spacing-5)}}@media (max-width: 480px){.contact-form-container{padding:var(--spacing-5)}.page-title{font-size:var(--text-xl)}.form-input,.form-select,.form-textarea{padding:var(--spacing-3)}.proceed-btn{padding:var(--spacing-4);font-size:var(--text-lg)}.booking-summary-container{padding:var(--spacing-4)}.contact-information-page .room-image-container{width:100%!important;height:120px}}.final-confirmation-page{min-height:100vh;background-color:#fafafa;padding:20px 0;font-family:var(--font-body)}.success-animation-overlay{position:fixed;inset:0;background-color:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeOut 2s ease-in-out forwards}@keyframes fadeOut{0%,70%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}.success-animation-content{text-align:center;animation:slideInUp .8s ease-out}.success-checkmark{margin-bottom:var(--spacing-4)}.success-circle{stroke-dasharray:283;stroke-dashoffset:283;animation:drawCircle 1s ease-in-out forwards}.success-check{stroke-dasharray:70;stroke-dashoffset:70;animation:drawCheck .5s ease-in-out .8s forwards}@keyframes drawCircle{to{stroke-dashoffset:0}}@keyframes drawCheck{to{stroke-dashoffset:0}}.success-message{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-success);margin:0}.confirmation-header{text-align:center}.header-content{max-width:800px;margin:0 auto;padding:0 30px 30px}.confirmation-title{font-size:18px;font-weight:700;color:#666;margin-bottom:20px;line-height:1.2;text-align:center;text-transform:uppercase;letter-spacing:2px}.confirmation-details{margin-top:20px}.confirmation-text{font-size:13px;color:#666;line-height:1.4}.booking-info-grid{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}.booking-info-item{display:flex;flex-direction:row;align-items:center;gap:8px}.info-label,.info-value{font-size:13px;color:#666;line-height:1.4}.info-value strong{color:#333;font-weight:700}.confirmation-number-row{display:flex;align-items:center;gap:8px;position:relative}.copy-btn-header{background:none;border:1px solid #ccc;border-radius:4px;padding:4px;cursor:pointer;color:#666;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.copy-btn-header:hover{background-color:#f5f5f5;color:#333;border-color:#999}.copy-success-header{position:absolute;top:-25px;right:0;background-color:#28a745;color:#fff;padding:2px 6px;border-radius:3px;font-size:11px;font-weight:700;animation:fadeInOut 2s ease-in-out}.booking-confirmation-main{max-width:1200px;margin:0 auto;background:white;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.confirmation-content{display:grid;grid-template-columns:2fr 1fr;align-items:stretch}.room-details-section{background-color:#f5f5f5;padding:10px}.room-header-section{display:flex;gap:20px;margin-bottom:25px;align-items:flex-start}.final-confirmation-page .room-image-container-main{flex-shrink:0}.room-image-main{width:300px;height:200px;object-fit:cover;border-radius:8px;box-shadow:0 2px 8px #0000001a}.room-info-text{flex:1;display:flex;flex-direction:column;justify-content:center;gap:8px}.room-number{font-size:13px;color:#999;margin-bottom:8px}.guest-count{font-size:13px;color:#666;margin-bottom:20px}.room-header{font-size:14px;font-weight:700;color:#666;margin-bottom:0;text-transform:uppercase;letter-spacing:1px}.package-details{margin-top:20px}.package-header{font-size:13px;font-weight:700;color:#666;margin-bottom:15px;text-transform:uppercase}.package-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.package-item:last-child{border-bottom:none}.package-label{font-size:13px;color:#666}.package-price{font-size:13px;color:#333;font-weight:700;text-align:right}.package-item.total-item{padding-top:15px;margin-top:10px;border-top:2px solid #333;border-bottom:none}.total-item .package-label{font-weight:700;color:#333}.total-item .package-price{font-size:16px;font-weight:700;color:#333}.guest-details-section{background-color:#f5f5f5;padding:10px 10px 10px 0}.guest-details-card{background-color:#fff;padding:20px;border-radius:8px;height:100%}.guest-header{font-size:14px;font-weight:700;color:#666;margin-bottom:25px;text-transform:uppercase;letter-spacing:1px}.guest-info{display:flex;flex-direction:column;gap:15px}.guest-item{display:flex;flex-direction:column;gap:5px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}.guest-item:last-child{border-bottom:none}.guest-label{font-size:12px;color:#999;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.guest-value{font-size:13px;color:#333;font-weight:400}.confirmation-number-container{display:flex;align-items:center;gap:var(--spacing-3);position:relative}.confirmation-number{font-family:Courier New,monospace;background-color:var(--color-secondary);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);border:1px solid var(--color-border)}.copy-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-2);cursor:pointer;color:var(--color-text-muted);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.copy-btn:hover{background-color:var(--color-secondary);color:var(--color-primary);border-color:var(--color-accent)}.copy-success{position:absolute;top:-30px;right:0;background-color:var(--color-success);color:#fff;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium);animation:fadeInOut 2s ease-in-out}@keyframes fadeInOut{0%,to{opacity:0;transform:translateY(5px)}20%,80%{opacity:1;transform:translateY(0)}}.booking-details-card{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);margin-bottom:var(--spacing-10);overflow:hidden;max-width:700px;margin:0 auto var(--spacing-10) auto}.card-content{padding:var(--spacing-8)}.room-section{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-6);margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-8);border-bottom:1px solid var(--color-border)}.final-confirmation-page .room-image-container{width:300px;height:200px;border-radius:var(--radius-lg);overflow:hidden;background-color:var(--color-secondary);display:flex;align-items:center;justify-content:center}.final-confirmation-page .room-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.room-info{display:flex;flex-direction:column;justify-content:center}.room-title{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-5);line-height:var(--line-height-tight)}.final-confirmation-page .room-details{display:flex;flex-direction:column;gap:var(--spacing-3)}.detail-row{display:flex;align-items:center;gap:var(--spacing-3)}.detail-row .label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);min-width:80px}.detail-row .value{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-primary)}.package-breakdown{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-8);border-bottom:1px solid var(--color-border)}.section-title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-5)}.breakdown-items{background-color:var(--color-secondary);border-radius:var(--radius-lg);padding:var(--spacing-6)}.breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3) 0}.breakdown-item:not(:last-child){border-bottom:1px solid var(--color-border)}.item-label{font-size:var(--text-base);color:var(--color-text-muted)}.item-value{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.breakdown-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-4) 0}.breakdown-item.total{padding:var(--spacing-4) 0;border-top:2px solid var(--color-primary);margin-top:var(--spacing-3)}.breakdown-item.total .item-label{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}.breakdown-item.total .item-value{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-accent)}.guest-information{margin-bottom:var(--spacing-2)}.guest-details{display:flex;flex-direction:column;gap:var(--spacing-4)}.guest-detail-row{display:flex;align-items:flex-start;gap:var(--spacing-4)}.guest-detail-row .label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);min-width:120px;text-transform:uppercase;letter-spacing:.5px}.guest-detail-row .value{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-primary);flex:1;line-height:var(--line-height-relaxed)}.action-buttons{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-6);margin-top:30px}.primary-actions{display:flex;gap:var(--spacing-4)}.action-btn{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--transition-fast);min-width:200px;justify-content:center}.print-btn{background-color:var(--color-primary);color:var(--color-text-inverse)}.print-btn:hover{background-color:#000;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.email-btn{background-color:var(--color-accent);color:var(--color-text-inverse)}.email-btn:hover:not(:disabled){background-color:var(--color-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.email-btn:disabled{cursor:not-allowed;transform:none}.email-btn:disabled.sending{background-color:var(--color-accent);opacity:.8}.email-btn:disabled.sent{background-color:var(--color-success)}.spinning{animation:spin 1s linear infinite}.email-error-message{display:flex;align-items:center;gap:var(--spacing-2);background-color:#fee;color:#c53030;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);border:1px solid #fecaca;font-size:var(--text-sm);font-weight:var(--font-weight-medium);margin-top:var(--spacing-3);text-align:left}.secondary-actions{margin-top:var(--spacing-2)}.return-home-link{background:none;border:none;color:var(--color-accent);font-size:var(--text-base);font-weight:var(--font-weight-medium);text-decoration:none;cursor:pointer;transition:color var(--transition-fast);text-transform:uppercase;letter-spacing:.5px}.return-home-link:hover{color:var(--color-accent-dark);text-decoration:underline}@media print{.final-confirmation-page{background:white!important;padding:0!important}.success-animation-overlay,.action-buttons,.copy-btn,.copy-success{display:none!important}.confirmation-title{font-size:24px!important;margin-bottom:20px!important}.confirmation-details-box{box-shadow:none!important;border:2px solid #000!important;margin-bottom:30px!important}.booking-details-card{box-shadow:none!important;border:1px solid #000!important;page-break-inside:avoid}.room-section,.package-breakdown,.guest-information{page-break-inside:avoid}.details-grid{gap:15px!important}.detail-value{color:#000!important}.confirmation-number{border:1px solid #000!important;background:#f5f5f5!important}@page{margin:1in;size:A4}body{-webkit-print-color-adjust:exact!important;color-adjust:exact!important}}@media (min-width: 1025px){.detail-item,.confirmation-number-container{align-items:flex-start}.detail-value{margin-top:0;line-height:var(--line-height-tight)}}@media (min-width: 769px) and (max-width: 1024px){.final-confirmation-page{min-height:auto;padding:15px 0}.header-content,.booking-confirmation-main{max-width:none}.header-content{padding:0 20px 20px}.confirmation-content{grid-template-columns:1fr}.room-details-section{border-right:none;border-bottom:1px solid #e0e0e0;padding:20px}.guest-details-section{padding:10px}.primary-actions{flex-direction:row;width:100%;max-width:600px;gap:20px}.action-btn{flex:1;min-width:200px}.action-buttons{margin-top:20px}}@media (max-width: 768px){.final-confirmation-page{padding:20px 0}.header-content,.booking-confirmation-main{max-width:none}.header-content{padding:20px}.confirmation-title{font-size:16px;letter-spacing:1px}.booking-info-grid{gap:15px}.booking-info-item{flex-direction:column;align-items:center;gap:8px;text-align:center}.confirmation-number-row{flex-wrap:wrap;gap:10px}.copy-success-header{position:static;margin-left:10px}.confirmation-content{grid-template-columns:1fr}.room-details-section,.guest-details-section{padding:20px}.room-details-section{border-right:none;border-bottom:1px solid #e0e0e0}.room-header-section{flex-direction:column;gap:15px;text-align:left}.final-confirmation-page .room-image-container-main{width:100%}.room-image-main{width:100%;max-width:none;height:200px}.room-info-text{text-align:left;align-items:flex-start}.primary-actions{flex-direction:column;width:100%;gap:15px}.action-btn{width:100%;min-width:auto}}@media (max-width: 480px){.confirmation-title{font-size:var(--text-xl)}.confirmation-details-box{padding:var(--spacing-4)}.detail-value.price{font-size:var(--text-2xl)}.final-confirmation-page .room-image-container{height:150px}.card-content{padding:var(--spacing-4)}.action-btn{padding:var(--spacing-4);font-size:var(--text-sm)}}.modal-content{background-color:var(--color-background);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--color-border);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:modalSlideIn .4s cubic-bezier(.16,1,.3,1);position:relative}.modal-header h3{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-3)}.modal-header h3:before{content:"";font-size:var(--text-lg)}.modal-body p{font-size:var(--text-base);color:var(--color-text-muted);margin-bottom:var(--spacing-5);line-height:var(--line-height-relaxed)}.email-input-group{margin-bottom:var(--spacing-6)}.email-input-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-2);text-transform:uppercase;letter-spacing:.5px}.modal-input{width:100%;padding:var(--spacing-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-base);color:var(--color-primary);background-color:var(--color-background);transition:all var(--transition-fast);box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f61a;transform:translateY(-1px)}.modal-input.error{border-color:#ef4444;background-color:#fef2f2}.modal-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.input-error{color:#ef4444;font-size:var(--text-sm);font-weight:var(--font-weight-medium);margin-top:var(--spacing-2);display:flex;align-items:center;gap:var(--spacing-2)}.input-error:before{content:"";font-size:var(--text-xs)}.email-note{background:linear-gradient(135deg,#e0f2fe 0%,#f0f9ff 100%);border:1px solid #0ea5e9;border-radius:var(--radius-lg);padding:var(--spacing-4);font-size:var(--text-sm);color:#0c4a6e;line-height:var(--line-height-relaxed);margin:0}.modal-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.modal-btn.primary:disabled{background:var(--color-text-muted)}@media (max-width: 768px){.modal-overlay{padding:var(--spacing-3)}.modal-content{max-width:100%;margin:0}.modal-header{padding:var(--spacing-5)}.modal-header h3{font-size:var(--text-lg)}.modal-body{padding:var(--spacing-5)}.modal-footer{padding:var(--spacing-4) var(--spacing-5) var(--spacing-5) var(--spacing-5);flex-direction:column}.modal-btn{width:100%}}@media (max-width: 480px){.modal-header,.modal-body{padding:var(--spacing-4)}.modal-footer{padding:var(--spacing-3) var(--spacing-4) var(--spacing-4) var(--spacing-4)}}.modal-overlay:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(59,130,246,.1) 0%,transparent 70%);animation:pulseBackground 4s ease-in-out infinite}@keyframes pulseBackground{0%,to{opacity:.3}50%{opacity:.6}}.modal-content:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-accent),#2563eb,var(--color-accent));border-radius:var(--radius-xl) var(--radius-xl) 0 0}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-background) 100%);padding:var(--spacing-6) var(--spacing-4)}.auth-container{width:100%;max-width:480px;margin:0 auto}.auth-card{background-color:var(--color-background);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:1px solid var(--color-border);overflow:hidden;animation:slideInUp .6s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;padding:var(--spacing-8) var(--spacing-6) var(--spacing-6);background:linear-gradient(135deg,var(--color-primary) 0%,#000000 100%);color:var(--color-text-inverse)}.hotel-logo{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background-color:#ffffff1a;border-radius:50%;margin-bottom:var(--spacing-4);color:var(--color-text-inverse);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2)}.auth-title{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-2);color:var(--color-text-inverse)}.auth-subtitle{font-size:var(--text-base);color:#fffc;margin:0;line-height:var(--line-height-relaxed)}.auth-form{padding:var(--spacing-6);display:flex;flex-direction:column;gap:var(--spacing-5)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.form-group{display:flex;flex-direction:column}.form-label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-2)}.input-container{position:relative;display:flex;align-items:center}.form-input{width:100%;padding:var(--spacing-4);padding-right:var(--spacing-12);border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-base);font-family:var(--font-body);background-color:var(--color-background);transition:all var(--transition-normal);min-height:52px}.form-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2c52821a;transform:translateY(-1px)}.form-input.error{border-color:var(--color-error);box-shadow:0 0 0 3px #e53e3e1a}.form-input:disabled{background-color:var(--color-secondary);color:var(--color-text-muted);cursor:not-allowed}.form-input::placeholder{color:var(--color-text-muted);font-style:italic}.input-icon{position:absolute;right:var(--spacing-4);color:var(--color-text-muted);pointer-events:none}.password-toggle{position:absolute;right:var(--spacing-4);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-2);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;width:36px;height:36px;z-index:10}.password-toggle:hover:not(:disabled){color:var(--color-primary);background-color:var(--color-secondary);transform:scale(1.1);box-shadow:0 2px 4px #0000001a}.password-toggle:active:not(:disabled){transform:scale(.95)}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.password-toggle svg{transition:all var(--transition-fast)}.password-toggle:hover svg{stroke-width:2.5}.password-toggle:hover:after{content:attr(title);position:absolute;bottom:100%;right:0;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:11px;white-space:nowrap;opacity:0;animation:tooltipFadeIn .2s ease-out .5s forwards;pointer-events:none;z-index:20}.password-toggle:hover:before{content:"";position:absolute;bottom:calc(100% - 4px);right:8px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid var(--color-primary);opacity:0;animation:tooltipFadeIn .2s ease-out .5s forwards;pointer-events:none;z-index:20}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.password-match{margin-top:var(--spacing-2);padding:var(--spacing-2);border-radius:var(--radius-sm);transition:all var(--transition-normal);animation:slideInDown .3s ease-out}.password-match.match{background-color:#48bb781a;border:1px solid rgba(72,187,120,.3)}.password-match.no-match{background-color:#e53e3e1a;border:1px solid rgba(229,62,62,.3)}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.password-requirements{margin-top:var(--spacing-3);padding:var(--spacing-3);background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);animation:slideInDown .3s ease-out}.requirements-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-2)}.requirements-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.requirement{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-sm);transition:all var(--transition-fast)}.requirement.met{color:var(--color-success)}.requirement.unmet{color:var(--color-text-muted)}.requirement svg{flex-shrink:0;transition:all var(--transition-fast)}.password-strength{margin-top:var(--spacing-3);display:flex;align-items:center;gap:var(--spacing-3)}.strength-bar{flex:1;height:4px;background-color:var(--color-border);border-radius:2px;overflow:hidden}.strength-fill{height:100%;transition:all var(--transition-normal);border-radius:2px}.strength-text{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;min-width:60px;text-align:right}.form-options{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);margin-top:var(--spacing-2)}.checkbox-container{display:flex;align-items:center;gap:var(--spacing-3);font-size:var(--text-sm);color:var(--color-primary);cursor:pointer;line-height:var(--line-height-relaxed);position:relative}.checkbox-container input[type=checkbox]{display:none}.checkmark{width:20px;height:20px;border:2px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-background);transition:all var(--transition-fast);position:relative;flex-shrink:0}.checkmark:after{content:"";position:absolute;left:6px;top:2px;width:4px;height:8px;border:solid var(--color-text-inverse);border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--transition-fast)}.checkbox-container input[type=checkbox]:checked+.checkmark{background-color:var(--color-accent);border-color:var(--color-accent)}.checkbox-container input[type=checkbox]:checked+.checkmark:after{opacity:1}.checkbox-container:hover .checkmark{border-color:var(--color-accent)}.forgot-password-link{background:none;border:none;color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast);text-decoration:none;padding:0}.forgot-password-link:hover:not(:disabled){color:var(--color-accent-dark);text-decoration:underline}.forgot-password-link:disabled{color:var(--color-text-muted);cursor:not-allowed}.form-error{margin-top:var(--spacing-2);font-size:var(--text-sm);color:var(--color-error);font-weight:var(--font-weight-medium);display:flex;align-items:center;gap:var(--spacing-2)}.form-error:before{content:"";font-size:var(--text-xs)}.submit-error{background-color:#e53e3e1a;border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--spacing-3);margin-top:var(--spacing-4);text-align:center}.submit-error:before{display:none}.auth-submit-btn{width:100%;background:linear-gradient(135deg,var(--color-primary) 0%,#000000 100%);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);padding:var(--spacing-4) var(--spacing-6);font-size:var(--text-base);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all var(--transition-normal);min-height:56px;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-4);position:relative;overflow:hidden}.auth-submit-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left var(--transition-slow)}.auth-submit-btn:hover:not(:disabled):before{left:100%}.auth-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-xl)}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{background:var(--color-text-muted);cursor:not-allowed;transform:none;box-shadow:none}.auth-submit-btn:disabled:before{display:none}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--color-text-inverse);border-radius:50%;animation:spin 1s linear infinite}.auth-footer{text-align:center;padding:var(--spacing-6);background-color:var(--color-secondary);border-top:1px solid var(--color-border)}.auth-footer p{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.auth-link{color:var(--color-accent);text-decoration:none;font-weight:var(--font-weight-semibold);transition:color var(--transition-fast)}.auth-link:hover{color:var(--color-accent-dark);text-decoration:underline}.alert{padding:var(--spacing-4);border-radius:var(--radius-md);margin-bottom:var(--spacing-5);border:1px solid transparent;font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.alert-info{background-color:#2c52821a;border-color:var(--color-accent);color:var(--color-accent-dark)}@media (min-width: 769px) and (max-width: 1024px){.auth-container{max-width:420px}.auth-form{padding:var(--spacing-5)}.auth-header{padding:var(--spacing-6) var(--spacing-5) var(--spacing-5)}.hotel-logo{width:70px;height:70px}.auth-title{font-size:var(--text-xl)}}@media (max-width: 768px){.auth-page{padding:var(--spacing-4) var(--spacing-3);min-height:100vh;align-items:flex-start;padding-top:var(--spacing-8)}.auth-container{max-width:100%}.auth-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-header{padding:var(--spacing-6) var(--spacing-4) var(--spacing-4)}.hotel-logo{width:60px;height:60px;margin-bottom:var(--spacing-3)}.auth-title{font-size:var(--text-xl);margin-bottom:var(--spacing-2)}.auth-subtitle{font-size:var(--text-sm)}.auth-form{padding:var(--spacing-4);gap:var(--spacing-4)}.form-row{grid-template-columns:1fr;gap:var(--spacing-4)}.form-input{padding:var(--spacing-3);padding-right:var(--spacing-10);min-height:48px}.form-options{flex-direction:column;align-items:stretch;gap:var(--spacing-3)}.checkbox-container{font-size:var(--text-xs);line-height:var(--line-height-normal)}.forgot-password-link{text-align:center;font-size:var(--text-xs)}.auth-submit-btn{min-height:52px;font-size:var(--text-sm)}.auth-footer{padding:var(--spacing-4)}.auth-footer p{font-size:var(--text-xs)}.password-strength{flex-direction:column;gap:var(--spacing-2);align-items:stretch}.strength-text{text-align:left;min-width:auto}}@media (max-width: 480px){.auth-page{padding:var(--spacing-3) var(--spacing-2);padding-top:var(--spacing-6)}.auth-header{padding:var(--spacing-5) var(--spacing-3) var(--spacing-3)}.hotel-logo{width:50px;height:50px}.auth-title{font-size:var(--text-lg)}.auth-form{padding:var(--spacing-3)}.form-input{font-size:var(--text-sm)}.auth-submit-btn{padding:var(--spacing-3) var(--spacing-4);min-height:48px}.checkbox-container{font-size:11px}.checkmark{width:16px;height:16px}.checkmark:after{left:4px;top:1px;width:3px;height:6px}}@media (prefers-reduced-motion: no-preference){.auth-card{animation:slideInUp .6s ease-out}}@media (prefers-contrast: high){.form-input{border-width:3px}.auth-submit-btn{border:2px solid var(--color-text-inverse)}.checkmark{border-width:3px}}.role-selection{margin-bottom:var(--spacing-6);padding:var(--spacing-5);background-color:var(--color-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.role-selection h3{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0 0 var(--spacing-4) 0;text-align:center}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.role-option{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-background);cursor:pointer;transition:all var(--transition-normal);text-align:center}.role-option:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.role-option.selected{border-color:var(--color-accent);background-color:#2c52820d;box-shadow:var(--shadow-lg)}.role-icon{font-size:2rem;margin-bottom:var(--spacing-2)}.role-info h4{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin:0 0 var(--spacing-1) 0}.role-info p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:var(--line-height-relaxed)}.business-info-section{margin-top:var(--spacing-5);padding:var(--spacing-5);background-color:var(--color-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.business-info-section h3{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0 0 var(--spacing-4) 0;display:flex;align-items:center;gap:var(--spacing-2)}.business-info-section h3:before{content:"";font-size:1.2em}.business-info-section .form-group,.business-info-section .form-row{margin-bottom:var(--spacing-4)}.business-info-section textarea.form-input{min-height:80px;resize:vertical;font-family:var(--font-body);line-height:var(--line-height-relaxed)}.business-info-section select.form-input{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;cursor:pointer}.business-info-section select.form-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%232c5282' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e")}.auth-toggle{text-align:center;padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.auth-toggle p{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.auth-toggle .btn{margin-left:var(--spacing-2)}@media (max-width: 768px){.role-options{grid-template-columns:1fr;gap:var(--spacing-3)}.role-option{padding:var(--spacing-3)}.role-icon{font-size:1.5rem}.business-info-section{padding:var(--spacing-4)}.business-info-section h3{font-size:var(--text-base)}}@media (max-width: 480px){.role-selection{padding:var(--spacing-4)}.role-selection h3{font-size:var(--text-base)}.business-info-section{padding:var(--spacing-3)}.business-info-section h3{font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}}.user-dashboard{min-height:100vh;background-color:var(--color-secondary);padding:var(--spacing-6) 0}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-4)}.dashboard-loading p{font-size:var(--text-lg);color:var(--color-text-muted);margin:0}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-8);padding:var(--spacing-6);background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.welcome-section{flex:1}.welcome-title{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-2);line-height:var(--line-height-tight)}.welcome-subtitle{font-size:var(--text-base);color:var(--color-text-muted);margin:0;line-height:var(--line-height-relaxed)}.header-actions{display:flex;gap:var(--spacing-3);align-items:center}.dashboard-tabs{display:flex;background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-2);margin-bottom:var(--spacing-6);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.tab-button{flex:1;padding:var(--spacing-3) var(--spacing-5);border:none;background:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-normal);position:relative;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.tab-button:hover{color:var(--color-primary);background-color:var(--color-secondary)}.tab-button.active{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.tab-count{background-color:#fff3;color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:var(--font-weight-bold);padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.tab-button:not(.active) .tab-count{background-color:var(--color-accent);color:var(--color-text-inverse)}.dashboard-controls{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-6);padding:var(--spacing-4);background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.search-section{flex:1;max-width:400px}.search-input-container{position:relative;display:flex;align-items:center}.search-input{width:100%;padding:var(--spacing-3);padding-right:var(--spacing-10);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-background);transition:border-color var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2c52821a}.search-icon{position:absolute;right:var(--spacing-3);color:var(--color-text-muted);pointer-events:none}.sort-section{display:flex;align-items:center;gap:var(--spacing-3)}.sort-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);white-space:nowrap}.user-dashboard .sort-select{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);background-color:var(--color-background);min-width:150px}.dashboard-content{min-height:400px}.empty-state{display:flex;justify-content:center;align-items:center;min-height:400px;padding:var(--spacing-8)}.empty-content{text-align:center;max-width:400px}.empty-icon{margin-bottom:var(--spacing-6);color:var(--color-text-muted);opacity:.6}.empty-content h3{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-3)}.empty-content p{font-size:var(--text-base);color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-6)}.bookings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-6);margin-bottom:var(--spacing-8)}.booking-card{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);overflow:hidden;transition:all var(--transition-normal);display:flex;flex-direction:column;animation:fadeInUp .6s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.booking-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.booking-image{position:relative;height:200px;overflow:hidden}.room-thumbnail{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.booking-card:hover .room-thumbnail{transform:scale(1.05)}.status-badge{position:absolute;top:var(--spacing-3);right:var(--spacing-3);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.5px}.status-confirmed{background-color:var(--color-success);color:var(--color-text-inverse)}.status-completed{background-color:var(--color-accent);color:var(--color-text-inverse)}.status-cancelled{background-color:var(--color-error);color:var(--color-text-inverse)}.booking-content{padding:var(--spacing-5);flex:1;display:flex;flex-direction:column;gap:var(--spacing-4)}.booking-header{display:flex;flex-direction:column;gap:var(--spacing-1)}.room-title{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;line-height:var(--line-height-tight)}.confirmation-number{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-weight-medium);margin:0}.booking-dates{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background-color:var(--color-secondary);border-radius:var(--radius-md)}.date-info{display:flex;flex-direction:column;gap:var(--spacing-1);flex:1}.date-label{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.date-value{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.date-separator{font-size:var(--text-lg);color:var(--color-accent);font-weight:var(--font-weight-bold)}.booking-details{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4)}.detail-item{display:flex;flex-direction:column;gap:var(--spacing-1)}.detail-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase}.detail-value{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.detail-value.price{font-size:var(--text-lg);color:var(--color-accent);font-weight:var(--font-weight-bold)}.booking-actions{padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--color-border);background-color:var(--color-secondary);display:flex;gap:var(--spacing-3);align-items:center}.btn-outline{background-color:transparent;border:1px solid var(--color-error);color:var(--color-error)}.btn-outline:hover{background-color:var(--color-error);color:var(--color-text-inverse)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-6);background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-top:var(--spacing-6)}.pagination-btn{padding:var(--spacing-3) var(--spacing-5);border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-primary);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1)}.pagination-info span:first-child{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.user-dashboard .results-count{font-size:var(--text-sm);color:var(--color-text-muted)}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4);backdrop-filter:blur(8px);animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.booking-details-modal,.cancel-booking-modal{background-color:var(--color-background);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--color-border);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;animation:modalSlideIn .4s cubic-bezier(.16,1,.3,1);position:relative}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-6) var(--spacing-6) var(--spacing-4) var(--spacing-6);border-bottom:1px solid var(--color-border);background:linear-gradient(135deg,var(--color-secondary) 0%,rgba(255,255,255,.8) 100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-3)}.modal-close{background:none;border:none;padding:var(--spacing-2);border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-xl);line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background-color:#0000001a;color:var(--color-primary);transform:scale(1.1)}.modal-body{padding:var(--spacing-6)}.modal-footer{padding:var(--spacing-4) var(--spacing-6) var(--spacing-6) var(--spacing-6);display:flex;gap:var(--spacing-3);justify-content:flex-end;border-top:1px solid var(--color-border);background-color:var(--color-secondary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.modal-btn{padding:var(--spacing-3) var(--spacing-6);border:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);min-width:100px;position:relative;overflow:hidden}.modal-btn.secondary{background-color:transparent;color:var(--color-text-muted);border:2px solid var(--color-border)}.modal-btn.secondary:hover:not(:disabled){background-color:var(--color-secondary);color:var(--color-primary);border-color:var(--color-accent);transform:translateY(-1px)}.modal-btn.primary{background:linear-gradient(135deg,var(--color-accent) 0%,#2563eb 100%);color:#fff;border:2px solid transparent;box-shadow:0 4px 14px #3b82f663}.modal-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb 0%,var(--color-accent) 100%);transform:translateY(-2px);box-shadow:0 8px 25px #3b82f680}.modal-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.modal-btn.primary:disabled{background:var(--color-text-muted);box-shadow:none}@media (max-width: 768px){.modal-overlay{padding:var(--spacing-3)}.booking-details-modal,.cancel-booking-modal{max-width:95vw;max-height:95vh;margin:var(--spacing-2)}.modal-header{padding:var(--spacing-4) var(--spacing-4) var(--spacing-3) var(--spacing-4)}.modal-title{font-size:var(--text-lg)}.modal-body{padding:var(--spacing-4)}.modal-footer{padding:var(--spacing-3) var(--spacing-4) var(--spacing-4) var(--spacing-4);flex-direction:column-reverse;gap:var(--spacing-3)}.modal-btn{width:100%;padding:var(--spacing-3) var(--spacing-4)}}.user-dashboard .booking-summary-section{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--color-border)}.booking-image-container{position:relative;width:120px;height:80px;border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}.booking-image{width:100%;height:100%;object-fit:cover}.booking-info{flex:1}.room-name{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0 0 var(--spacing-2) 0}.details-section{margin-bottom:var(--spacing-6)}.section-title{font-size:var(--text-base);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-4)}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.guest-details{display:flex;flex-direction:column;gap:var(--spacing-3)}.time-info{display:block;font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-weight-normal)}.price-breakdown{background-color:var(--color-secondary);border-radius:var(--radius-md);padding:var(--spacing-4)}.price-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2) 0}.price-item:not(:last-child){border-bottom:1px solid var(--color-border)}.price-label{font-size:var(--text-sm);color:var(--color-text-muted)}.price-value{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.price-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-3) 0}.price-item.total{padding:var(--spacing-3) 0;border-top:2px solid var(--color-primary);margin-top:var(--spacing-2)}.price-item.total .price-label{font-size:var(--text-base);font-weight:var(--font-weight-bold);color:var(--color-primary)}.price-item.total .price-value{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-accent)}.warning-section{text-align:center;margin-bottom:var(--spacing-6)}.warning-icon{margin-bottom:var(--spacing-4);color:var(--color-warning)}.warning-title{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-3)}.warning-message{color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin:0}.booking-summary{background-color:var(--color-secondary);border-radius:var(--radius-md);padding:var(--spacing-4);margin-bottom:var(--spacing-6)}.booking-summary .booking-header{margin-bottom:var(--spacing-3)}.booking-title{font-size:var(--text-base);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0}.booking-summary .confirmation-number{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.booking-summary .booking-dates{background:none;padding:0;flex-direction:column;gap:var(--spacing-2)}.date-range{display:flex;justify-content:space-between;align-items:center}.guest-count{font-size:var(--text-sm);color:var(--color-text-muted)}.booking-total{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-2);border-top:1px solid var(--color-border)}.total-label{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.total-amount{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-accent)}.refund-section{margin-bottom:var(--spacing-6)}.refund-details{background-color:var(--color-secondary);border-radius:var(--radius-md);padding:var(--spacing-4)}.refund-item{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.refund-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.refund-item.positive .refund-icon{background-color:#48bb781a;color:var(--color-success)}.refund-item.partial .refund-icon{background-color:#ed89361a;color:var(--color-warning)}.refund-item.negative .refund-icon{background-color:#e53e3e1a;color:var(--color-error)}.refund-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-1)}.refund-label{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.refund-amount{font-size:var(--text-lg);font-weight:var(--font-weight-bold)}.refund-item.positive .refund-amount{color:var(--color-success)}.refund-item.partial .refund-amount{color:var(--color-warning)}.refund-item.negative .refund-amount{color:var(--color-error)}.refund-note{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.refund-note p{margin-bottom:var(--spacing-2)}.refund-note p:last-child{margin-bottom:0}.reason-section{margin-bottom:var(--spacing-6)}.reason-label{display:block;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-2)}.reason-textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-body);background-color:var(--color-background);resize:vertical;min-height:80px}.reason-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2c52821a}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse);border:1px solid var(--color-error)}.btn-danger:hover:not(:disabled){background-color:#c53030;border-color:#c53030}@media (min-width: 769px) and (max-width: 1024px){.dashboard-header{flex-direction:column;gap:var(--spacing-4);align-items:stretch}.welcome-title{font-size:var(--text-2xl)}.dashboard-controls{flex-direction:column;gap:var(--spacing-4);align-items:stretch}.search-section{max-width:none}.sort-section{justify-content:space-between}.bookings-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-5)}.booking-dates{flex-direction:column;gap:var(--spacing-2)}.date-separator{transform:rotate(90deg)}.details-grid{grid-template-columns:1fr;gap:var(--spacing-3)}}@media (max-width: 768px){.user-dashboard{padding:var(--spacing-4) 0}.dashboard-header{flex-direction:column;gap:var(--spacing-4);padding:var(--spacing-4);margin-bottom:var(--spacing-6)}.welcome-title{font-size:var(--text-xl)}.welcome-subtitle{font-size:var(--text-sm)}.dashboard-tabs{margin:0 var(--spacing-4) var(--spacing-5)}.tab-button{padding:var(--spacing-3);font-size:var(--text-sm)}.dashboard-controls{flex-direction:column;gap:var(--spacing-4);margin:0 var(--spacing-4) var(--spacing-5);padding:var(--spacing-4)}.search-section{max-width:none;width:100%}.search-input{font-size:var(--text-sm);padding:var(--spacing-2) var(--spacing-3);padding-right:var(--spacing-8);width:100%}.search-icon{right:var(--spacing-2)}.sort-section{justify-content:space-between;width:100%;align-items:center}.bookings-grid{grid-template-columns:1fr;gap:var(--spacing-4);margin:0 var(--spacing-4)}.booking-card{min-width:0}.booking-image{height:160px}.booking-content{padding:var(--spacing-4)}.room-title{font-size:var(--text-base)}.booking-dates{flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-3)}.date-separator{transform:rotate(90deg);font-size:var(--text-base)}.booking-details{flex-direction:column;gap:var(--spacing-3);align-items:stretch}.detail-item{flex-direction:row;justify-content:space-between;align-items:center}.booking-actions{padding:var(--spacing-3) var(--spacing-4);flex-direction:column;gap:var(--spacing-2)}.booking-actions .btn{width:100%}.pagination{flex-direction:column;gap:var(--spacing-4);margin:var(--spacing-6) var(--spacing-4) 0}.pagination-info{order:-1}.booking-summary-section{flex-direction:column;gap:var(--spacing-3)}.booking-image-container{width:100%;height:120px}.details-grid{grid-template-columns:1fr;gap:var(--spacing-3)}.refund-item{align-items:flex-start}.refund-icon{margin-top:var(--spacing-1)}}@media (max-width: 480px){.dashboard-header{padding:var(--spacing-3)}.welcome-title{font-size:var(--text-lg)}.tab-button{padding:var(--spacing-2);font-size:var(--text-xs)}.tab-count{font-size:10px;padding:1px 4px}.dashboard-controls{padding:var(--spacing-3);margin:0 var(--spacing-3) var(--spacing-4)}.search-section{max-width:none;width:100%}.search-input{font-size:var(--text-xs);padding:var(--spacing-2);padding-right:var(--spacing-6);width:100%}.search-icon{right:var(--spacing-1)}.search-icon svg{width:16px;height:16px}.sort-section{justify-content:space-between;width:100%;align-items:center}.sort-select{min-width:120px}.bookings-grid{margin:0 var(--spacing-3)}.booking-content{padding:var(--spacing-3)}.room-title{font-size:var(--text-sm)}.confirmation-number{font-size:var(--text-xs)}.modal-header,.modal-content,.modal-actions{padding:var(--spacing-3)}}*{margin:0;padding:0;box-sizing:border-box}*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--line-height-normal);color:var(--color-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-4);color:var(--color-primary)}h1{font-size:var(--heading-h1)}h2{font-size:var(--heading-h2)}h3{font-size:var(--heading-h3)}h4{font-size:var(--heading-h4)}h5{font-size:var(--heading-h5)}h6{font-size:var(--heading-h6)}p{margin-bottom:var(--spacing-4);line-height:var(--line-height-relaxed)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-dark);text-decoration:underline}ul,ol{margin-bottom:var(--spacing-4);padding-left:var(--spacing-5)}li{margin-bottom:var(--spacing-1)}img{max-width:100%;height:auto;display:block}input,textarea,select,button{font-family:inherit;font-size:inherit}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--padding-mobile)}@media (min-width: 769px){.container{padding:0 var(--padding-tablet)}}@media (min-width: 1025px){.container{padding:0 var(--padding-desktop)}}.grid{display:grid;gap:var(--spacing-5)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}@media (min-width: 769px) and (max-width: 1024px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,1fr)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.mb-0{margin-bottom:var(--spacing-0)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-3) var(--spacing-5);border:1px solid transparent;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);min-height:44px;gap:var(--spacing-2)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-dark);border-color:var(--color-accent-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-background);color:var(--color-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary);border-color:var(--color-accent);color:var(--color-accent)}.btn-accent{background-color:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.btn-accent:hover:not(:disabled){background-color:var(--color-accent-dark);border-color:var(--color-accent-dark)}.btn-sm{padding:var(--spacing-2) var(--spacing-4);font-size:var(--text-sm);min-height:36px}.btn-lg{padding:var(--spacing-4) var(--spacing-6);font-size:var(--text-lg);min-height:52px}.form-group{margin-bottom:var(--spacing-5)}.form-label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-medium);color:var(--color-primary);font-size:var(--text-sm)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);line-height:var(--line-height-normal);background-color:var(--color-background);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2c52821a}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:120px}.form-error{margin-top:var(--spacing-1);font-size:var(--text-sm);color:var(--color-error)}.card{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-md);border:1px solid var(--color-border);margin-bottom:var(--spacing-5);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-header{margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border)}.card-title{margin-bottom:var(--spacing-2);font-size:var(--text-xl);font-weight:var(--font-weight-semibold)}.card-subtitle{color:var(--color-text-muted);font-size:var(--text-sm)}.card-content{margin-bottom:var(--spacing-4)}.card-actions{display:flex;gap:var(--spacing-3);flex-wrap:wrap}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:200px}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top:3px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{padding:var(--spacing-4);border-radius:var(--radius-md);margin-bottom:var(--spacing-5);border:1px solid transparent}.alert-success{background-color:#48bb781a;border-color:var(--color-success);color:var(--color-success-dark)}.alert-error{background-color:#e53e3e1a;border-color:var(--color-error);color:var(--color-error-dark)}.alert-warning{background-color:#ed89361a;border-color:var(--color-warning);color:#c05621}.hidden{display:none}@media (max-width: 768px){.hidden-mobile{display:none}.container{padding:0 12px}}@media (min-width: 769px) and (max-width: 1024px){.hidden-tablet{display:none}}@media (min-width: 1025px){.hidden-desktop{display:none}}
