@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;line-height:1.6;color:#333;background-color:#f8f9fa}#root{min-height:100vh}h1{font-family:Poppins,sans-serif;font-size:2.5rem;font-weight:700;color:#1a1a1a;margin-bottom:1rem}h2{font-family:Poppins,sans-serif;font-size:2rem;font-weight:600;color:#1a1a1a;margin-bottom:.75rem}h3{font-family:Poppins,sans-serif;font-size:1.5rem;font-weight:600;color:#1a1a1a;margin-bottom:.5rem}p{color:#666;margin-bottom:.5rem}.container{max-width:1200px;margin:0 auto;padding:0 .5rem}.flex{display:flex}.flex-col{flex-direction:column;gap:.5rem}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.text-center{text-align:center}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.gap-4{gap:.5rem}.gap-6{gap:1.5rem}.gap-8{gap:1rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-16{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.mb-16{margin-bottom:4rem}.mb-12{margin-bottom:3rem}.mb-8{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-4{margin-bottom:1rem}.mb-3{margin-bottom:.75rem}.mb-2{margin-bottom:.5rem}.w-full{width:100%}.max-w-4xl{max-width:56rem}.max-w-2xl{max-width:42rem}.mx-auto{margin-left:auto;margin-right:auto}.bg-white{background-color:#fff}.bg-gray-50{background-color:#f8f9fa}.text-white{color:#fff}.text-gray-600{color:#666}.text-gray-500{color:#888}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hotel-navbar{background-color:#fff;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:1000}.hotel-brand{font-family:Poppins,sans-serif;font-size:1.4rem;font-weight:900;color:#2563eb;text-decoration:none}.hotel-brand:hover{color:#1d4ed8}.hotel-nav{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between}.hotel-nav-link{color:#666;text-decoration:none;text-align:center;font-weight:500;padding:.5rem;border-radius:.5rem;transition:all .2s ease}.hotel-nav-link:hover{color:#2563eb;background-color:#eff6ff}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;border-radius:.5rem;border:none;cursor:pointer;text-decoration:none;transition:all .2s ease}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover{background-color:#1d4ed8;transform:translateY(-1px)}.btn-outline{background-color:transparent;border:2px solid #2563eb}.btn-outline:hover{background-color:#2563eb;color:#fff}.btn-sm{padding:.5rem;font-size:.75rem;text-align:center;font-weight:700}.btn-lg{padding:1rem 2rem;font-size:1rem;margin-top:.5rem}.hotel-hero{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;padding:1rem 0;text-align:center}.hotel-hero-content h1{color:#fff;font-size:2.3rem;margin-bottom:1rem}.hotel-hero-content p{color:#ffffffe6;font-size:1.25rem;margin-bottom:1rem}.hotel-search-card{background-color:#fff;padding:.5rem;border-radius:1rem;box-shadow:0 10px 25px #0000001a;max-width:900px;margin:0 auto}.hotel-form-group{margin-bottom:.5rem}.hotel-form-label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.hotel-form-input,.hotel-form-select{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:border-color .2s ease}.hotel-form-input:focus,.hotel-form-select:focus{outline:none;border-color:#2563eb}.main-checkbox-container{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.checkbox-container{display:flex;align-items:center;gap:.5rem;background-color:#f9f9f9;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #e0e0e0;transition:all .2s ease;cursor:pointer}.checkbox-container:hover{background-color:#fff5e0;border-color:#f8b400}.checkbox-container input[type=checkbox]{width:1rem;height:1rem;color:#f8b400}.checkbox-container label{font-size:.9rem;font-weight:500;color:#555;cursor:pointer}.hotel-section{padding:1rem 0}.hotel-section-header{text-align:center;max-width:600px;margin-left:auto;margin-right:auto}.hotel-section-title{font-family:Poppins,sans-serif;font-size:2rem;font-weight:700;color:#1a1a1a;margin-bottom:1rem}.hotel-section-subtitle{font-size:1.125rem;color:#666;line-height:1.7}.hotel-room-card{background-color:#fff;border-radius:1rem;overflow:hidden;box-shadow:0 4px 6px #0000001a;transition:all .3s ease;border:1px solid #e5e7eb;margin-bottom:1rem}.hotel-room-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #00000026}.back-to-home a{border:.3px solid #eeececc9;border-radius:5rem;padding:.5rem 1rem;color:#fff;text-decoration:none}.hotel-room-image{width:100%;height:12rem;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:1.125rem;position:relative}.hotel-room-price{position:absolute;top:1rem;right:1rem;background-color:#2563eb;color:#fff;padding:.5rem 1rem;border-radius:2rem;font-weight:700;font-size:.875rem}.hotel-room-content{padding:.5rem;margin-top:1rem}.hotel-room-card-margin{margin-top:0}.num-type{padding:.5rem}.guests-select{margin-bottom:.5rem}.hotel-room-image-count{position:relative;left:10rem}.hotel-room-title{font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:600;color:#1a1a1a;margin-bottom:.5rem}.hotel-room-subtitle{color:#666;font-size:.875rem;margin-bottom:1rem}.hotel-amenities{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.amenities-room-card{margin-bottom:0}.hotel-amenity-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;background-color:#f3f4f6;color:#374151;font-size:.75rem;font-weight:500;border-radius:2rem;border:1px solid #e5e7eb;transition:all .2s ease}.hotel-amenity-tag:hover{background-color:#eff6ff;border-color:#2563eb;color:#2563eb}.hotel-feature-card{background-color:#fff;padding:1rem;border-radius:1rem;box-shadow:0 4px 6px #0000001a;text-align:center;transition:all .3s ease;border:1px solid #e5e7eb}.hotel-feature-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.hotel-feature-icon{width:4rem;height:4rem;background-color:#2563eb;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1.5rem}.hotel-feature-title{font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:600;color:#1a1a1a;margin-bottom:1rem}.hotel-feature-description{color:#666;line-height:1.7}.hotel-footer{background-color:#1f2937;color:#fff;padding:3rem 0 2rem}.hotel-footer h3{color:#fff;font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.hotel-footer h4{color:#fff;font-size:1.125rem;font-weight:600}.space-explore,.space-contact{display:flex;align-items:baseline;gap:10%}.space-contact{flex-wrap:wrap}.hotel-footer p{color:#d1d5db;margin-bottom:0}.hotel-footer a{color:#d1d5db;text-decoration:none;transition:color .2s ease}.hotel-footer a:hover{color:#2563eb}.hotel-footer-bottom{border-top:1px solid #374151;padding-top:1rem;text-align:center}.hotel-footer-bottom p{color:#9ca3af;font-size:.875rem;margin-bottom:0}.hotel-spinner{width:2rem;height:2rem;border:3px solid #e5e7eb;border-top:3px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (min-width: 768px){.container{padding:0 2rem}.grid-cols-md-2{grid-template-columns:repeat(2,1fr)}.grid-cols-md-3{grid-template-columns:repeat(3,1fr)}.grid-cols-md-4{grid-template-columns:repeat(4,1fr)}.hotel-room-image{height:14rem}.hotel-hero-content h1{font-size:3.5rem}}@media (min-width: 1024px){.grid-cols-lg-2{grid-template-columns:repeat(2,1fr)}.grid-cols-lg-3{grid-template-columns:repeat(3,1fr)}.grid-cols-lg-4{grid-template-columns:repeat(4,1fr)}.hotel-room-image{height:16rem}}.space-y-2>*+*{margin-top:.5rem}.space-y-4>*+*{margin-top:1rem}.block{display:block}.hidden{display:none}.min-h-screen{min-height:100vh}.rooms-page-header{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;padding:3rem 0 2rem;position:relative;overflow:hidden}.rooms-page-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');opacity:.3}.rooms-page-header .container{position:relative;z-index:1}.rooms-header-content{text-align:center;margin-bottom:2rem}.rooms-header-content h1{font-size:3rem;font-weight:700;margin-bottom:1rem;color:#fff}.rooms-header-content p{font-size:1.25rem;color:#ffffffe6;margin-bottom:0}.back-to-home{display:flex;justify-content:center;margin-top:1.5rem}.back-to-home a{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:2rem;color:#fff;text-decoration:none;font-weight:500;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.back-to-home a:hover{background-color:#fff3;border-color:#ffffff80;transform:translateY(-2px)}.rooms-results-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:2rem}.rooms-results-info h2{font-size:2rem;font-weight:600;color:#1a1a1a;margin-bottom:.5rem}.rooms-results-info p{color:#666;font-size:1rem}.rooms-sort-container{display:flex;align-items:center;gap:1rem;min-width:15rem}.rooms-sort-container .hotel-form-label{margin-bottom:0;white-space:nowrap;font-weight:500}.rooms-sort-container .hotel-form-select{flex:1;min-width:12rem}.rooms-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:3rem}.no-results-container{text-align:center;padding:4rem 2rem;background-color:#fff;border-radius:1rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb}.no-results-icon{width:5rem;height:5rem;background-color:#f3f4f6;color:#9ca3af;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 1.5rem}.no-results-container h3{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin-bottom:1rem}.no-results-container p{color:#666;font-size:1rem;margin-bottom:2rem;max-width:30rem;margin-left:auto;margin-right:auto}.view-all-rooms-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:.5rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease}.view-all-rooms-btn:hover{background-color:#1d4ed8;transform:translateY(-1px)}.search-summary-card{background-color:#fff;padding:1.5rem;border-radius:1rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb;margin-top:3rem}.search-summary-card h4{font-size:1.25rem;font-weight:600;color:#1a1a1a;margin-bottom:1rem}.search-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.search-summary-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:#f8f9fa;border-radius:.5rem;border:1px solid #e5e7eb}.search-summary-item span:first-child{font-size:1.25rem}.search-summary-item span:last-child{font-weight:500;color:#374151}.search-summary-amenities{grid-column:1 / -1}.search-summary-amenities-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.search-summary-amenity-tag{padding:.25rem .75rem;background-color:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;border-radius:1rem;font-size:.875rem;font-weight:500}.room-details-header{background-color:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 0;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px #0000001a}.room-details-nav{display:flex;justify-content:space-between;align-items:center}.room-details-back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:transparent;border:2px solid #e5e7eb;border-radius:.5rem;color:#374151;text-decoration:none;font-weight:500;transition:all .2s ease;cursor:pointer}.room-details-back-btn:hover{border-color:#2563eb;color:#2563eb;background-color:#eff6ff}.room-details-header h1{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0}.room-details-container{padding:2rem 0}.room-details-layout{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:3rem}.room-details-content{background-color:#fff;border-radius:1rem;overflow:hidden;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb}.room-image-gallery{position:relative}.room-main-image{width:100%;height:20rem;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:1.125rem;position:relative;overflow:hidden}.room-main-image img{width:100%;height:100%;object-fit:cover}.room-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem}.room-image-placeholder-icon{font-size:3rem;color:#d1d5db}.room-thumbnails-container{position:relative;padding:1rem;background-color:#f8f9fa}.room-thumbnails-slider{display:flex;overflow-x:auto;scroll-behavior:smooth;gap:.5rem;padding:.5rem 0;scrollbar-width:none;-ms-overflow-style:none}.room-thumbnails-slider::-webkit-scrollbar{display:none}.room-thumbnail{min-width:6rem;height:4rem;cursor:pointer;border-radius:.5rem;overflow:hidden;transition:all .2s ease;border:2px solid transparent}.room-thumbnail.active{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.room-thumbnail img{width:100%;height:100%;object-fit:cover}.room-thumbnail:hover{transform:scale(1.05);border-color:#93c5fd}.thumbnail-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:2rem;height:2rem;background-color:#ffffffe6;border:1px solid #d1d5db;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;color:#374151;transition:all .2s ease;z-index:10}.thumbnail-nav-btn:hover{background-color:#fff;border-color:#2563eb;color:#2563eb}.thumbnail-nav-btn.left{left:.5rem}.thumbnail-nav-btn.right{right:.5rem}.wrap-header{flex-wrap:wrap}.room-info-section{padding:1rem}.room-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.room-title-group h2{font-size:2rem;font-weight:600;color:#1a1a1a;margin-bottom:.5rem}.room-number-badge{display:inline-block;padding:.25rem .75rem;background-color:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;border-radius:1rem;font-size:.875rem;font-weight:600}.room-basic-info{display:grid;gap:.5rem;margin-bottom:2rem}.room-info-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background-color:#f8f9fa;border-radius:.5rem;border:1px solid #e5e7eb}.room-info-item span:first-child{font-weight:600;color:#374151}.room-info-item span:last-child{color:#1a1a1a;font-weight:500}.room-description{margin-bottom:2rem}.room-description h3{font-size:1.25rem;font-weight:600;color:#1a1a1a;margin-bottom:1rem}.room-description p{color:#666;line-height:1.7}.room-amenities-section{margin-bottom:2rem}.room-amenities-section h3{font-size:1.25rem;font-weight:600;color:#1a1a1a;margin-bottom:1rem}.amenities-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem}.amenity-item{display:flex;align-items:center;gap:.5rem;padding:.75rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#166534}.amenity-item span:first-child{font-weight:600;color:#16a34a}.amenity-item span:last-child{font-weight:500}.booking-card{background-color:#fff;border-radius:1rem;padding:2rem;box-shadow:0 10px 25px #0000001a;border:1px solid #e5e7eb;position:sticky;top:6rem}.booking-card h3{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin-bottom:1.5rem;text-align:center}.booking-form-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}.booking-form-group{display:flex;flex-direction:column}.booking-form-label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.booking-form-input{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:all .2s ease;background-color:#fff}.booking-form-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.availability-status{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border-radius:.5rem;font-weight:600;margin-bottom:1.5rem}.availability-checking{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24}.availability-available{background-color:#d1fae5;color:#065f46;border:1px solid #34d399}.availability-unavailable{background-color:#fee2e2;color:#991b1b;border:1px solid #f87171}.pricing-summary{background-color:#f8f9fa;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #e5e7eb}.pricing-breakdown{margin-bottom:1rem}.pricing-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.pricing-item span:first-child{color:#666;font-size:.875rem}.pricing-item span:last-child{font-weight:600;color:#1a1a1a}.pricing-divider{height:1px;background-color:#d1d5db;margin:1rem 0}.pricing-total{display:flex;justify-content:space-between;align-items:center;font-size:1.125rem;font-weight:700;color:#1a1a1a;margin-bottom:.5rem}.pricing-dates{text-align:center;color:#666;font-size:.875rem}.book-now-btn{width:100%;padding:1rem;background-color:#2563eb;color:#fff;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-bottom:1rem}.book-now-btn:hover:not(:disabled){background-color:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.book-now-btn:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.book-now-btn.auth-required{background-color:#059669}.book-now-btn.auth-required:hover{background-color:#047857}.booking-auth-note{text-align:center;color:#666;font-size:.875rem;font-style:italic}.booking-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;color:#666}.booking-spinner{width:1rem;height:1rem;border:2px solid #e5e7eb;border-top:2px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}.reviews-section{background-color:#fff;border-radius:1rem;padding:2rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem 1rem;position:relative;overflow:hidden}.auth-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="auth-grid" width="20" height="20" patternUnits="userSpaceOnUse"><path d="M 20 0 L 0 0 0 20" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23auth-grid)"/></svg>');opacity:.3}.auth-card{background-color:#fff;border-radius:1rem;box-shadow:0 20px 40px #0000001a;padding:1rem;width:100%;max-width:28rem;position:relative;z-index:1}.auth-header{text-align:center;margin-bottom:1rem}.auth-header h2{font-size:2rem;font-weight:700;color:#1a1a1a;margin-bottom:0}.auth-header p{color:#666;font-size:1rem;margin-bottom:0}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form-section,.form-group{display:flex;flex-direction:column}.form-label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.form-input{width:100%;padding:.875rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:all .2s ease;background-color:#fff}.form-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-input.border-red-500{border-color:#ef4444}.form-input.border-red-500:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-error{color:#ef4444;font-size:.875rem;margin-top:.25rem;font-weight:500}.form-help-text{color:#666;font-size:.75rem;margin-top:.25rem}.auth-options{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.remember-me{display:flex;align-items:center;gap:.5rem}.remember-me input[type=checkbox]{width:1rem;height:1rem;accent-color:#2563eb}.remember-me label{font-size:.875rem;color:#374151;cursor:pointer}.forgot-password{font-size:.875rem}.forgot-password a{color:#2563eb;text-decoration:none;font-weight:500;transition:color .2s ease}.forgot-password a:hover{color:#1d4ed8;text-decoration:underline}.terms-container{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background-color:#f8f9fa;border-radius:.5rem;border:1px solid #e5e7eb}.terms-container input[type=checkbox]{width:1rem;height:1rem;accent-color:#2563eb;margin-top:.125rem;flex-shrink:0}.terms-container label{font-size:.875rem;color:#374151;line-height:1.5;cursor:pointer}.terms-container a{color:#2563eb;text-decoration:none;font-weight:500}.terms-container a:hover{text-decoration:underline}.auth-submit-btn{width:100%;padding:1rem;background-color:#2563eb;color:#fff;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-submit-btn:hover:not(:disabled){background-color:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.auth-submit-btn:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.auth-loading{display:flex;align-items:center;gap:.5rem}.auth-spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top:2px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite}.auth-footer{text-align:center}.auth-footer p{color:#666;font-size:.875rem;margin-bottom:0}.auth-footer a{color:#2563eb;text-decoration:none;font-weight:600;transition:color .2s ease}.auth-footer a:hover{color:#1d4ed8;text-decoration:underline}@media (min-width: 640px){.rooms-header-content h1{font-size:3.5rem}.rooms-results-header{flex-direction:row;align-items:center}.rooms-grid{grid-template-columns:1fr;gap:2rem}.booking-form-grid{grid-template-columns:1fr 1fr}.booking-form-grid .booking-form-group:last-child{grid-column:1 / -1}.auth-card{padding:3rem}}@media (min-width: 768px){.container{padding:0 2rem}.rooms-grid{grid-template-columns:1fr}.room-details-layout{grid-template-columns:2fr 1fr;gap:3rem}.room-main-image{height:25rem}.room-basic-info,.amenities-list,.search-summary-grid{grid-template-columns:repeat(2,1fr)}.auth-options{flex-direction:row}}@media (min-width: 1024px){.rooms-grid{grid-template-columns:1fr}.room-main-image{height:30rem}.room-basic-info,.amenities-list,.search-summary-grid{grid-template-columns:repeat(3,1fr)}.booking-form-grid{grid-template-columns:1fr 1fr;gap:1.5rem}}@media (min-width: 1280px){.room-basic-info,.amenities-list,.search-summary-grid{grid-template-columns:repeat(4,1fr)}}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.btn:focus,.form-input:focus,.auth-submit-btn:focus,.book-now-btn:focus{outline:2px solid #2563eb;outline-offset:2px}@media (prefers-contrast: high){.hotel-room-card,.booking-card,.auth-card,.btn-primary,.auth-submit-btn,.book-now-btn{border:2px solid #000000}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.hotel-navbar,.back-to-home,.booking-card,.auth-container{display:none!important}.room-details-layout{grid-template-columns:1fr!important}body{background-color:#fff!important;color:#000!important}}.dashboard-container{min-height:100vh;background-color:#f8f9fa}.dashboard-header{background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.dashboard-nav{display:flex;justify-content:space-between;align-items:center}.dashboard-title{font-size:2rem;font-weight:700;color:#1a1a1a;margin:0;text-align:center}.dashboard-nav-links{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%}.dashboard-nav-link{color:#666;text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:.5rem;transition:all .2s ease}.dashboard-nav-link:hover{color:#2563eb;background-color:#eff6ff}.dashboard-signout-btn{padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s ease}.dashboard-signout-btn:hover{background-color:#dc2626;transform:translateY(-1px)}.dashboard-content{padding:1rem 0}.dashboard-welcome{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;padding:1rem;border-radius:1rem;margin-bottom:1rem;overflow:hidden}.dashboard-welcome:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="dashboard-grid" width="20" height="20" patternUnits="userSpaceOnUse"><path d="M 20 0 L 0 0 0 20" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23dashboard-grid)"/></svg>');opacity:.3}.dashboard-welcome-content{position:relative;z-index:1;text-align:center}.dashboard-welcome h2{font-size:2.5rem;font-weight:700;margin-bottom:1rem;color:#fff}.dashboard-welcome p{font-size:1.125rem;color:#ffffffe6;margin-bottom:0}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem;margin-bottom:2rem}.dashboard-stat-card{background-color:#fff;padding:1.5rem;border-radius:1rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb;transition:all .3s ease}.dashboard-stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.dashboard-stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dashboard-stat-icon{width:3rem;height:3rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.dashboard-stat-icon.bookings{background-color:#dbeafe;color:#2563eb}.dashboard-stat-icon.reviews{background-color:#fef3c7;color:#d97706}.dashboard-stat-icon.spending{background-color:#d1fae5;color:#059669}.dashboard-stat-number{font-size:2rem;font-weight:700;color:#1a1a1a;margin-bottom:.25rem}.dashboard-stat-label{color:#666;font-size:.875rem;font-weight:500}.dashboard-tabs{background-color:#fff;border-radius:1rem;box-shadow:0 4px 6px #0000001a;border:1px solid #e5e7eb;overflow:hidden}.dashboard-tabs-nav{display:flex;border-bottom:1px solid #e5e7eb;background-color:#f8f9fa}.dashboard-tab-btn{flex:1;padding:1rem;background-color:transparent;border:none;font-weight:600;cursor:pointer;transition:all .2s ease;position:relative;color:#666}.dashboard-tab-btn.active{color:#2563eb;background-color:#fff}.dashboard-tab-btn.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background-color:#2563eb}.dashboard-tab-btn:hover:not(.active){color:#374151;background-color:#f3f4f6}.dashboard-tab-content{padding:1rem}.dashboard-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard-tab-title{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0}.dashboard-action-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:.5rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease}.dashboard-action-btn:hover{background-color:#1d4ed8;transform:translateY(-1px);color:#fff}.dashboard-empty-state{text-align:center;padding:4rem 2rem;background-color:#f8f9fa;border-radius:1rem;border:2px dashed #d1d5db}.dashboard-empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.dashboard-empty-title{font-size:1.25rem;font-weight:600;color:#374151;margin-bottom:.5rem}.dashboard-empty-description{color:#666;margin-bottom:2rem;max-width:25rem;margin-left:auto;margin-right:auto}.dashboard-bookings-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.dashboard-booking-card{background-color:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border:1px solid #e5e7eb;transition:all .3s ease}.dashboard-booking-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000026}.dashboard-booking-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.dashboard-booking-title{font-size:1.25rem;font-weight:600;color:#1a1a1a;margin-bottom:.25rem}.dashboard-booking-room{color:#666;font-size:.875rem}.dashboard-booking-status{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.dashboard-booking-status.confirmed{background-color:#d1fae5;color:#065f46}.dashboard-booking-status.pending{background-color:#fef3c7;color:#92400e}.dashboard-booking-status.cancelled{background-color:#fee2e2;color:#991b1b}.dashboard-booking-status.completed{background-color:#dbeafe;color:#1e40af}.dashboard-booking-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin-bottom:1.5rem}.dashboard-booking-detail{display:flex;flex-direction:column;gap:.25rem}.dashboard-booking-detail-label{font-size:.75rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.05em}.dashboard-booking-detail-value{font-weight:600;color:#1a1a1a}.dashboard-booking-payment{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.dashboard-booking-payment.paid{background-color:#d1fae5;color:#065f46}.dashboard-booking-payment.pending{background-color:#fef3c7;color:#92400e}.dashboard-booking-payment.failed{background-color:#fee2e2;color:#991b1b}.dashboard-booking-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #e5e7eb}.dashboard-booking-date{color:#666;font-size:.875rem}.dashboard-booking-actions{display:flex;gap:.5rem}.dashboard-booking-btn{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;background-color:#fff;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.dashboard-booking-btn:hover{border-color:#2563eb;color:#2563eb;background-color:#eff6ff}.dashboard-booking-btn.danger{border-color:#ef4444;color:#ef4444}.dashboard-booking-btn.danger:hover{background-color:#fef2f2;border-color:#dc2626;color:#dc2626}.dashboard-reviews-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.dashboard-review-card{background-color:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border:1px solid #e5e7eb;transition:all .3s ease}.dashboard-review-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000026}.dashboard-review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.dashboard-review-room{font-size:1.125rem;font-weight:600;color:#1a1a1a;margin-bottom:.5rem}.dashboard-review-stay{color:#666;font-size:.875rem;margin-bottom:.25rem}.dashboard-review-date{color:#666;font-size:.875rem}.dashboard-review-rating{display:flex;align-items:center;gap:.5rem}.dashboard-review-stars{display:flex;gap:.125rem}.dashboard-review-star{font-size:1.25rem}.dashboard-review-star.filled{color:#fbbf24}.dashboard-review-star.empty{color:#d1d5db}.dashboard-review-score{font-weight:600;color:#1a1a1a}.dashboard-review-text{color:#374151;line-height:1.6;margin-bottom:1rem}.dashboard-review-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:1rem;margin-bottom:1rem}.dashboard-review-detail{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background-color:#f8f9fa;border-radius:.5rem}.dashboard-review-detail-label{font-size:.875rem;color:#666}.dashboard-review-detail-score{font-weight:600;color:#1a1a1a}.dashboard-review-recommendation{display:flex;align-items:center;gap:.5rem;color:#059669;font-weight:500;font-size:.875rem}.dashboard-profile-form{background-color:#fff;border-radius:1rem;padding:2rem;box-shadow:0 2px 4px #0000001a;border:1px solid #e5e7eb}.dashboard-profile-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem}.dashboard-profile-actions{display:flex;gap:1rem;justify-content:flex-end}.dashboard-profile-btn{padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .2s ease}.dashboard-profile-btn.primary{background-color:#2563eb;color:#fff;border:none}.dashboard-profile-btn.primary:hover{background-color:#1d4ed8;transform:translateY(-1px)}.dashboard-profile-btn.secondary{background-color:#fff;color:#374151;border:1px solid #d1d5db}.dashboard-profile-btn.secondary:hover{background-color:#f3f4f6;border-color:#9ca3af}.dashboard-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dashboard-modal-content{background-color:#fff;border-radius:1rem;max-width:32rem;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}@media (min-width: 640px){.dashboard-welcome h2{font-size:3rem}.dashboard-stats{grid-template-columns:repeat(3,1fr)}.dashboard-tabs-nav{flex-direction:row}.dashboard-booking-details,.dashboard-review-details{grid-template-columns:repeat(2,1fr)}.dashboard-profile-grid{grid-template-columns:1fr}}@media (min-width: 768px){.dashboard-nav,.dashboard-nav-links{flex-direction:row}.dashboard-booking-details,.dashboard-review-details{grid-template-columns:repeat(4,1fr)}.dashboard-profile-grid{grid-template-columns:repeat(2,1fr)}.dashboard-profile-actions{justify-content:flex-end}}@media (min-width: 1024px){.dashboard-bookings-grid,.dashboard-reviews-grid{grid-template-columns:1fr}.container{padding:0 1rem}.desktop-flex{display:flex;flex-wrap:wrap}.desktop-sub-flex{display:flex}.des-gap{gap:1rem}.booking-card{padding:1rem;height:fit-content}.room-details-layout{margin:2rem}.reviews-section{margin-bottom:2rem}.room-info-item{padding:.2rem}.hotel-room-card{width:32%}.room-search-title{text-align:center}.desktop-btn{width:30%}.desktop-filter-toggle{display:flex;justify-content:center}.desktop-search-actions{justify-content:center;gap:1%}}.dashboard-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;color:#666;font-size:.875rem}.dashboard-loading-spinner{width:1rem;height:1rem;border:2px solid #e5e7eb;border-top:2px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}.dashboard-error{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:1rem;border-radius:.5rem;text-align:center}.dashboard-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:1rem;border-radius:.5rem;text-align:center}@media (prefers-reduced-motion: reduce){.dashboard-stat-card,.dashboard-booking-card,.dashboard-review-card{transition:none}.dashboard-stat-card:hover,.dashboard-booking-card:hover,.dashboard-review-card:hover{transform:none}}@media (prefers-contrast: high){.dashboard-stat-card,.dashboard-booking-card,.dashboard-review-card,.dashboard-tabs,.dashboard-profile-form{border:2px solid #000000}.dashboard-tab-btn.active{background-color:#000;color:#fff}}
