body{color:#2b2b2b;color:var(--charcoal-black);line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:inherit;text-decoration:none}html{scroll-behavior:smooth}.App{align-items:center;justify-content:center;padding:20px}.login-container{background:#fff;border:2px solid #b5d2c3;border:2px solid var(--mist-green);border-radius:20px;box-shadow:0 10px 30px #004e4f26;margin:auto;max-width:450px;padding:40px;text-align:center;width:100%}h2{color:#004e4f;color:var(--primary-green);font-size:28px;font-weight:700;letter-spacing:-.5px;margin-bottom:8px}.subtitle{color:#2b2b2b;color:var(--charcoal-black);font-size:16px;line-height:1.5;margin-bottom:30px;opacity:.7}form{width:100%}.form-group,form{margin-bottom:20px}.form-group{text-align:left}.form-group label{color:#004e4f;color:var(--primary-green);display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{background:#faf8f4;background:var(--bone-white);border:2px solid #b5d2c3;border:2px solid var(--mist-green);border-radius:12px;box-sizing:border-box;font-size:16px;padding:14px 16px;transition:all .2s ease;width:100%}.form-group input:focus{background:#fff;border-color:#004e4f;border-color:var(--primary-green);box-shadow:0 0 0 3px #004e4f1a;outline:none}.form-group input:disabled{background:#faf8f4;background:var(--bone-white);color:#2b2b2b;color:var(--charcoal-black);cursor:not-allowed;opacity:.5}.submit-button{background-color:#ff6b4d;background-color:var(--orange-accent);border:none;border-radius:50px;box-shadow:0 4px 15px #ff6b4d4d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:16px;transition:all .3s ease;width:100%}.submit-button:hover:not(:disabled){background-color:#e55a42;box-shadow:0 6px 20px #ff6b4d66;transform:translateY(-2px)}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.forgot-password-link{background:none;border:none;color:#004e4f;color:var(--primary-green);cursor:pointer;display:block;font-size:14px;margin:15px 0;padding:5px;text-decoration:underline;transition:color .2s ease;width:100%}.forgot-password-link:hover:not(:disabled){color:#ff6b4d;color:var(--orange-accent)}.forgot-password-link:disabled{cursor:not-allowed;opacity:.6}.toggle-form{border-top:1px solid #b5d2c3;border-top:1px solid var(--mist-green);margin-top:25px;padding-top:20px}.toggle-button{background:none;border:none;border-radius:8px;color:#004e4f;color:var(--primary-green);cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease;width:100%}.toggle-button:hover:not(:disabled){background-color:#faf8f4;background-color:var(--bone-white);color:#ff6b4d;color:var(--orange-accent)}.toggle-button:disabled{cursor:not-allowed;opacity:.6}.error-message{background:#fed7d7;border:1px solid #fbb6ce;border-radius:8px;color:#c53030}.error-message,.success-message{font-size:14px;margin-bottom:20px;padding:12px 16px}.success-message{background:#c6f6d5;border:1px solid #9ae6b4;border-radius:8px;color:#2f855a}@media (max-width:480px){.App{padding:10px}.login-container{border-radius:15px;padding:30px 20px}h2{font-size:24px}.subtitle{font-size:14px}}.form-group input,.submit-button,.toggle-button{animation:slideUp .6s ease-out forwards}.user-avatar-container{position:relative;z-index:1000}.avatar-button{background:none;border:none;cursor:pointer;padding:0;transition:transform .2s ease}.avatar-button:hover{transform:scale(1.05)}.avatar-circle{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);border-radius:50%;box-shadow:0 2px 8px #004e4f33;color:#fff;display:flex;font-size:18px;font-weight:600;height:40px;justify-content:center;width:40px}.avatar-menu{animation:slideDown .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;min-width:200px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.menu-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:12px 16px}.menu-email{font-weight:500;word-break:break-all}.menu-email,.menu-item{color:#4a5568;font-size:14px}.menu-item{background:none;border:none;cursor:pointer;padding:12px 16px;text-align:left;transition:background-color .2s ease;width:100%}.menu-item:hover{background-color:#f7fafc}.menu-item.sign-out{color:#e53e3e;font-weight:500}.menu-item.sign-out:hover{background-color:#fff5f5}@media (max-width:768px){.avatar-circle{font-size:16px;height:36px;width:36px}.avatar-menu{min-width:180px}}.app-header{background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 2px 10px #0000000d;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px;padding:12px 20px}.logo-section .header-logo{height:40px;width:auto}.user-section{gap:16px}.user-info,.user-section{align-items:center;display:flex}.logout-button,.user-email{color:#4a5568;font-size:14px;font-weight:500}.logout-button{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;padding:8px 16px;transition:all .2s ease}.logout-button:hover{background:#edf2f7;border-color:#cbd5e0;color:#2d3748}.logout-button:active{transform:translateY(1px)}@media (max-width:768px){.header-content{padding:12px 16px}.user-email{display:none}.logout-button{font-size:13px;padding:6px 12px}}.city-autocomplete{position:relative;width:100%}.input-container{align-items:center;display:flex;position:relative}.input-icon{font-size:1.2rem;left:1rem;position:absolute;z-index:2}.city-input{background-color:#fff;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;outline:none;padding:1rem 1rem 1rem 3rem;transition:all .3s ease;width:100%}.city-input:focus{border-color:#b5d2c3;box-shadow:0 0 0 3px #b5d2c31a}.city-input::placeholder{color:#999}.city-dropdown{animation:dropdownSlide .2s ease-out;background:#fff;border:2px solid #b5d2c3;border-radius:0 0 12px 12px;border-top:none;box-shadow:0 4px 20px #0000001a;max-height:200px;min-width:300px;overflow-y:auto;position:fixed;z-index:9999}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.city-option{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:1rem;transition:background-color .2s ease}.city-option:hover{background-color:#f8f9fa}.city-option:last-child{border-bottom:none}.city-name{color:#2b2b2b;font-size:1rem;font-weight:600;margin-bottom:.25rem}.city-country{color:#666;font-size:.9rem}@media (max-width:768px){.city-input{font-size:16px;padding:.9rem .9rem .9rem 2.8rem}.input-icon{font-size:1.1rem;left:.9rem}.city-dropdown{min-width:280px}}.date-range-picker{position:relative;width:100%}.date-inputs{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all .3s ease}.date-inputs:hover{border-color:#b5d2c3}.date-inputs:focus-within{border-color:#b5d2c3;box-shadow:0 0 0 3px #b5d2c31a}.date-input-group{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.date-input-group label{color:#666;font-size:.8rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.date-input{align-items:center;display:flex;gap:.5rem}.date-icon{font-size:1.1rem}.date-text{color:#2b2b2b;font-size:1rem;font-weight:500}.date-separator{color:#b5d2c3;font-size:1.2rem;font-weight:700}.calendar-popup{animation:calendarSlide .3s ease-out;background:#fff;border:2px solid #b5d2c3;border-radius:12px;box-shadow:0 10px 40px #00000026;min-width:350px;position:fixed;z-index:9999}@keyframes calendarSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.calendar-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:1rem}.month-title{color:#2b2b2b;font-size:1.2rem;font-weight:600;margin:0}.nav-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.nav-btn:hover{background-color:#b5d2c3;color:#004e4f}.calendar-grid{padding:1rem}.weekdays{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem}.weekday{color:#666;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.5rem;text-align:center;text-transform:uppercase}.days{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr)}.day{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.9rem;height:40px;justify-content:center;position:relative;transition:all .2s ease;width:40px}.day.current-month{color:#2b2b2b}.day.other-month{color:#ccc}.day:hover:not(.past-date):not(:disabled){background-color:#f0f8ff;transform:scale(1.1)}.day.end-date,.day.start-date{background-color:#ff6b4d;color:#fff;font-weight:600}.day.end-date:hover,.day.start-date:hover{background-color:#e55a42;transform:scale(1.1)}.day.in-range{background-color:#ff6b4d1a;color:#ff6b4d}.day.past-date{color:#ddd;cursor:not-allowed}.day.past-date:hover{background:none;transform:none}.calendar-footer{border-top:1px solid #f0f0f0;display:flex;justify-content:center;padding:1rem}.clear-btn{background:none;border:2px solid #b5d2c3;border-radius:25px;color:#004e4f;cursor:pointer;font-weight:600;padding:.5rem 1.5rem;transition:all .3s ease}.clear-btn:hover{background-color:#b5d2c3;color:#fff}@media (max-width:768px){.date-inputs{align-items:stretch;flex-direction:column;gap:1rem}.date-separator{display:none}.calendar-popup{max-width:90vw;min-width:320px}.calendar-grid{padding:.5rem}.day{font-size:.8rem;height:35px;width:35px}.weekday{font-size:.7rem;padding:.3rem}}@media (max-width:480px){.days{gap:.1rem}.day{height:32px;width:32px}.calendar-popup{min-width:300px}}.preference-step{margin:0 auto;max-width:600px;padding:2rem}.step-header{margin-bottom:2rem;text-align:center}.step-title{color:#004e4f}.step-subtitle{margin:0}.preferences-container{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.preference-card{align-items:center;background:#faf8f4;border:2px solid #e0e0e0;border-radius:16px;cursor:pointer;display:flex;gap:1.5rem;padding:1.5rem;transition:all .3s ease}.preference-card:hover{border-color:#b5d2c3;box-shadow:0 4px 20px #b5d2c333;transform:translateY(-2px)}.preference-card.selected{background:#004e4f05;border-color:#004e4f;box-shadow:0 6px 25px #004e4f26}.preference-icon{flex-shrink:0;font-size:3rem;line-height:1}.preference-content{flex:1 1}.preference-title{color:#004e4f;font-size:1.4rem;font-weight:600;margin:0 0 .5rem}.preference-title.selected{color:#faf8f4}.preference-description{color:#666;font-size:1rem;line-height:1.4;margin:0 0 1rem}.preference-description.selected{color:#faf8f4}.preference-features{display:flex;flex-direction:column;gap:.3rem;list-style:none;margin:0;padding:0}.preference-features.selected{color:#faf8f4}.preference-features li{align-items:center;color:#555;display:flex;font-size:.9rem;gap:.5rem}.preference-features.selected li{color:#faf8f4}.preference-selector{flex-shrink:0}.radio-button{align-items:center;border:2px solid #ccc;border-radius:50%;display:flex;height:24px;justify-content:center;transition:all .3s ease;width:24px}.radio-button.checked{background:#004e4f;border-color:#004e4f}.radio-inner{background:#fff;border-radius:50%;height:8px;width:8px}.step-actions{align-items:center;display:flex;gap:1rem;justify-content:space-between}.back-button{background:none;border:2px solid #ccc;border-radius:25px;color:#faf8f4;cursor:pointer;font-size:1rem;font-weight:600;padding:.8rem 1.5rem;transition:all .3s ease}.back-button:hover{border-color:#999;color:#faf8f4}.generate-button{background:linear-gradient(135deg,#ff6b4d,#ff8e4d);border:none;border-radius:25px;box-shadow:0 4px 20px #ff6b4d4d;color:#faf8f4;cursor:pointer;font-size:1rem;font-weight:600;padding:.8rem 2rem;transition:all .3s ease}.generate-button.enabled:hover{background:linear-gradient(135deg,#e55a42,#e57a42);box-shadow:0 6px 25px #ff6b4d66;transform:translateY(-2px)}.generate-button.disabled{background:#ccc;box-shadow:none;cursor:not-allowed}.generate-button.disabled:hover{transform:none}@media (max-width:768px){.preference-step{padding:1rem}.step-title{font-size:1.6rem}.preference-card{flex-direction:column;gap:1rem;padding:1.5rem 1rem;text-align:center}.preference-features{align-items:center}.step-actions{flex-direction:column;gap:1rem}.back-button,.generate-button{padding:1rem;width:100%}}@media (max-width:480px){.step-title{font-size:1.4rem}.step-subtitle{font-size:1rem}.preference-title{font-size:1.2rem}.preference-description{font-size:.9rem}}.wizard-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#2b2b2b33;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.wizard-container{animation:slideUpFadeIn .4s cubic-bezier(.34,1.56,.64,1);background-color:color(srgb 0 .14 .14/.9);border-radius:20px;box-shadow:0 25px 80px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}@keyframes slideUpFadeIn{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}.wizard-close{align-items:center;background:none;border:none;border-radius:50%;color:#2b2b2b;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;position:absolute;right:20px;top:20px;transition:all .3s ease;width:40px;z-index:10}.wizard-close:hover{background-color:#ff6b4d1a;color:#ff6b4d;transform:rotate(90deg)}.wizard-progress{border-bottom:1px solid #0000001a;padding:2rem 2rem 1rem}.progress-bar{background-color:#e0e0e0;border-radius:2px;height:4px;margin-bottom:1rem}.progress-fill{background:linear-gradient(90deg,#004e4f,#b5d2c3);border-radius:2px;transition:width .5s ease}.step-indicators{display:flex;justify-content:space-between;position:relative}.step-indicator{align-items:center;background-color:#fff3;border-radius:50%;color:#faf8f4;display:flex;font-size:.9rem;font-weight:600;height:40px;justify-content:center;position:relative;transition:all .3s ease;width:40px;z-index:2}.step-indicator.active{background-color:#faf8f4;color:#3d3d3d;font-weight:700;transform:scale(1.1)}.wizard-content{min-height:400px;padding:2rem}.wizard-step{animation:stepFadeIn .4s ease-out}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.step-title{color:#06d6a0;font-size:2rem;font-weight:700;margin-bottom:.5rem;text-align:center}.step-subtitle{color:#faf8f4;font-size:1.1rem;line-height:1.5;margin-bottom:2rem;text-align:center}.error-message{align-items:center;animation:errorSlideIn .3s ease-out;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-icon{flex-shrink:0;font-size:1.25rem}.error-message p{color:#dc2626;font-size:.95rem;font-weight:500;line-height:1.4;margin:0}.wizard-actions{border-top:1px solid #0000001a;display:flex;gap:1rem;justify-content:space-between;margin-top:2rem;padding-top:2rem}.wizard-btn{border:none;border-radius:50px;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:1rem 2rem;position:relative;transition:all .3s ease}.wizard-btn.primary{background-color:#ff6b4d;box-shadow:0 4px 15px #ff6b4d4d;color:#fff}.wizard-btn.primary:hover:not(.disabled){background-color:#e55a42;box-shadow:0 6px 20px #ff6b4d66;transform:translateY(-2px)}.wizard-btn.primary.disabled{background-color:#b5d2c3;box-shadow:none;color:#faf8f4;cursor:not-allowed}.wizard-btn.secondary{background-color:initial;border:2px solid #b5d2c3;color:#f8f9fa}.wizard-btn.secondary:hover{background-color:#b5d2c3;transform:translateY(-1px)}.wizard-btn.generate-btn{background:linear-gradient(135deg,#ff6b4d,#ff8e4d);overflow:hidden;position:relative}.wizard-btn.generate-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.wizard-btn.generate-btn:hover:before{left:100%}.location-inputs{gap:1rem;margin-bottom:2rem;position:relative}.input-group,.location-inputs{display:flex;flex-direction:column}.input-group{gap:.5rem}.input-label{color:#f8f9fa;font-size:.9rem;font-weight:600}.loading-text{color:#666;font-size:.8rem;font-weight:400;margin-left:.5rem}.location-swap{margin:20px 0 0}.location-swap,.swap-button{display:flex;justify-content:center}.swap-button{align-items:center;background-color:#b5d2c3;border:none;border-radius:50%;color:color(srgb 0 .14 .14/.9);cursor:pointer;font-size:1.2rem;height:40px;transition:all .3s ease;width:40px}.swap-button:hover{background-color:#a5c2b3;transform:rotate(180deg)}.travelers-grid{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.traveler-group{align-items:center;background:#fff;border:2px solid #0000;border-radius:15px;box-shadow:0 2px 10px #0000000d;display:flex;justify-content:space-between;padding:1.5rem;transition:border-color .3s ease}.traveler-group:hover{border-color:#b5d2c3}.traveler-info{flex:1 1}.traveler-title{color:#004e4f;font-size:1.2rem;font-weight:600;margin-bottom:.25rem}.traveler-description{color:#666;font-size:.9rem;margin:0}.traveler-counter{gap:1rem}.counter-btn,.traveler-counter{align-items:center;display:flex}.counter-btn{background:#fff;border:2px solid #b5d2c3;border-radius:50%;color:#004e4f;cursor:pointer;font-size:1.2rem;font-weight:700;height:40px;justify-content:center;transition:all .3s ease;width:40px}.counter-btn:hover:not(:disabled){background-color:#b5d2c3;transform:scale(1.1)}.counter-btn:disabled{cursor:not-allowed;opacity:.5}.counter-value{color:#2b2b2b;font-size:1.2rem;font-weight:600;min-width:30px;text-align:center}.travelers-summary{margin-bottom:2rem}.summary-card{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);border-radius:15px;box-shadow:0 4px 20px #004e4f4d;color:#fff;display:flex;gap:1rem;padding:1.5rem}.summary-icon{font-size:2rem}.summary-text{flex:1 1}.summary-breakdown{display:flex;font-size:.9rem;gap:1rem;margin-top:.5rem;opacity:.9}.summary-breakdown span{background:#fff3;border-radius:20px;padding:.25rem .75rem}.date-selection,.date-summary{margin-bottom:2rem}.date-range{font-size:1.1rem;margin-bottom:.5rem}.duration{font-size:.9rem;opacity:.8}@media (max-width:768px){.wizard-container{border-radius:15px;margin:1rem;width:calc(100% - 2rem)}.wizard-content{padding:1.5rem}.wizard-progress{padding:1.5rem 1.5rem 1rem}.step-title{font-size:1.6rem}.wizard-actions{flex-direction:column}.wizard-btn{width:100%}.location-inputs{gap:1.5rem}.travelers-grid{gap:1rem}.traveler-group{padding:1rem}.summary-breakdown{flex-direction:column;gap:.5rem}}.hotel-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.hotel-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:900px;overflow:hidden;width:95%}.hotel-modal-header{align-items:flex-start;background:linear-gradient(135deg,#004e4f,#006b6f);color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.hotel-search-info{flex:1 1}.hotel-modal-title{color:#f8f9fa;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.hotel-search-details{display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem;opacity:.9}.hotel-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:2rem;height:40px;justify-content:center;margin-left:1rem;padding:0;transition:background-color .3s ease;width:40px}.hotel-modal-close:hover{background:#fff3}.hotel-modal-content{max-height:70vh;overflow-y:auto;padding:1.5rem}.hotel-loading{align-items:center;display:flex;flex-direction:column;padding:3rem;text-align:center}.hotel-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#004e4f;height:40px;margin-bottom:1rem;width:40px}.hotel-error{align-items:center;display:flex;flex-direction:column;padding:3rem;text-align:center}.hotel-error-icon{font-size:3rem;margin-bottom:1rem}.hotel-error h3{color:#ff6b4d;margin-bottom:.5rem}.hotel-retry-btn{background:#ff6b4d;border:none;border-radius:25px;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.75rem 1.5rem;transition:background-color .3s ease}.hotel-retry-btn:hover{background:#e55a42}.hotel-no-results{align-items:center;color:#666;display:flex;flex-direction:column;padding:3rem;text-align:center}.hotel-no-results-icon{font-size:3rem;margin-bottom:1rem}.hotel-list{gap:1.5rem}.hotel-card,.hotel-list{display:flex;flex-direction:column}.hotel-card{border:2px solid #e0e0e0;border-radius:16px;cursor:pointer;position:relative}.hotel-card.enhanced{border:2px solid #e8e8e8;box-shadow:0 2px 12px #00000014}.hotel-card:hover{border-color:#004e4f;box-shadow:0 8px 25px #004e4f26;transform:translateY(-2px)}.hotel-main-info{flex:1 1;padding:1.5rem 1.5rem 4rem}.hotel-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}.hotel-name-rating{flex:1 1}.hotel-name{color:#004e4f}.hotel-rating-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.hotel-guest-rating{align-items:center;display:flex;gap:.5rem}.rating-score{background:#004e4f;border-radius:12px;color:#fff;font-size:.85rem;font-weight:600;padding:.2rem .6rem}.rating-text{color:#666;font-size:.8rem}.hotel-price-section{flex-shrink:0;text-align:right}.hotel-total-price{color:#ff6b4d;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.hotel-price-breakdown{color:#666;display:flex;flex-direction:column;font-size:.8rem;gap:.2rem}.per-night-price{color:#888}.total-nights{color:#999}.hotel-location-room{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem}.hotel-location{align-items:center;color:#666;display:flex;flex:1 1;font-size:.9rem;gap:.5rem}.hotel-room-type{background:#004e4f;border-radius:15px;color:#fff;font-size:.8rem;font-weight:500;padding:.3rem .8rem;white-space:nowrap}.hotel-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#666;display:-webkit-box;font-size:.9rem;line-height:1.4;overflow:hidden}.hotel-amenities-section,.hotel-description{margin-bottom:1.25rem}.amenities-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.amenity-badge{background:linear-gradient(135deg,#e3f2fd,#f1f8e9);border:1px solid #004e4f1a;border-radius:20px;color:#004e4f;font-size:.8rem;font-weight:500;padding:.4rem .8rem;transition:all .2s ease}.amenity-badge:hover{background:linear-gradient(135deg,#bbdefb,#dcedc8);transform:translateY(-1px)}.more-amenities{color:#666;font-size:.8rem;font-style:italic}.hotel-additional-info{background:#fafafa;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem;padding:.75rem}.hotel-chain,.hotel-rooms-available{align-items:center;color:#666;display:flex;font-size:.9rem;gap:.5rem}.hotel-policies-section{border-top:1px solid #eee;padding-top:1rem}.policy-header{color:#333;font-size:.9rem;font-weight:600;margin-bottom:.75rem}.policy-badge,.policy-header{align-items:center;display:flex;gap:.5rem}.policy-badge{border:1px solid;border-radius:8px;font-size:.85rem;font-weight:500;padding:.5rem .75rem}.policy-badge.refundable{background:#e8f5e8;border-color:#4caf50;color:#2e7d32}.policy-badge.non-refundable{background:#ffeaea;border-color:#f44336;color:#c62828}.policy-badge.cancellation-fee{background:#fff8e1;border-color:#ff9800;color:#f57c00}.policy-icon{font-size:.9rem}.hotel-detail-icon{flex-shrink:0;font-size:1rem;text-align:center;width:20px}.hotel-select-btn{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);border-radius:25px;bottom:1rem;box-shadow:0 2px 8px #004e4f4d;color:#fff;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;position:absolute;right:1rem;transition:all .3s ease}.hotel-select-btn:hover{background:linear-gradient(135deg,#003a3b,#005a5f);box-shadow:0 4px 12px #004e4f66}.hotel-select-arrow{font-size:1rem;transition:transform .3s ease}.hotel-card:hover .hotel-select-arrow{transform:translateX(3px)}.hotel-modal-content .hotel-list{padding:0}.hotel-card-modal{background:#fff;border:none;border-radius:0;cursor:pointer;display:block;overflow:visible;padding:2rem 0;position:static;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.hotel-card-modal:after{background:linear-gradient(90deg,#0000,#d1d5db 50%,#0000);bottom:-1px;content:"";height:1px;left:20%;position:absolute;right:20%}.hotel-card-modal:hover{background:linear-gradient(135deg,#fafbfc,#f8f9fa);border-left:3px solid #004e4f;box-shadow:0 4px 20px #004e4f14;padding-left:1.5rem;transform:translateX(8px)}.hotel-card-modal:last-child{border-bottom:none}.hotel-card-modal .hotel-main-info{padding:0 2rem;width:100%}.hotel-card-modal .hotel-header{align-items:flex-start;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.25rem}.hotel-card-modal .hotel-name-rating{flex:1 1}.hotel-card-modal .hotel-name{color:#1a1a1a;font-size:1.35rem;font-weight:700;letter-spacing:-.025em;line-height:1.2;margin:0 0 .75rem}.hotel-card-modal .hotel-rating-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.hotel-card-modal .hotel-stars{color:gold;font-size:1.1rem;letter-spacing:2px;text-shadow:0 1px 2px #ffd7004d}.hotel-card-modal .hotel-guest-rating{align-items:center;display:flex;gap:.5rem}.hotel-card-modal .rating-score{background:linear-gradient(135deg,#004e4f,#006b6f);border-radius:16px;box-shadow:0 2px 8px #004e4f33;color:#fff;font-size:.85rem;font-weight:700;padding:.4rem .8rem}.hotel-card-modal .rating-text{color:#555;font-size:.85rem;font-weight:500}.hotel-card-modal .hotel-price-section{border:3px solid #ff6b4d1a;border-radius:25px;flex-shrink:0;padding:1rem 1.25rem;text-align:right}.hotel-card-modal .hotel-total-price{color:#ff6b4d;font-size:1.5rem;font-weight:800;letter-spacing:-.025em;margin-bottom:.3rem}.hotel-card-modal .hotel-price-breakdown{color:#666;display:flex;flex-direction:column;font-size:.8rem;gap:.15rem;opacity:.9}.hotel-card-modal .per-night-price{color:#888;font-weight:500}.hotel-card-modal .total-nights{color:#999;font-weight:400}.hotel-card-modal .hotel-location-room{align-items:center;background:#f8fafb;border-left:3px solid #b5d2c3;border-radius:12px;display:flex;gap:2rem;margin-bottom:1rem;padding:.75rem 1.25rem}.hotel-card-modal .hotel-location{align-items:center;color:#555;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:.5rem}.hotel-card-modal .hotel-room-type{background:linear-gradient(135deg,#e3f2fd,#e8f5e8);border:1px solid #004e4f26;border-radius:18px;color:#004e4f;font-size:.8rem;font-weight:600;padding:.4rem .9rem;white-space:nowrap}.hotel-card-modal .hotel-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#555;display:-webkit-box;font-size:.9rem;font-weight:400;line-height:1.6;margin-bottom:1.25rem;opacity:.95;overflow:hidden}.hotel-card-modal .hotel-amenities-section{margin-bottom:0}.hotel-card-modal .amenities-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:0}.hotel-card-modal .amenity-badge{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:20px;color:#495057;font-size:.75rem;font-weight:600;padding:.4rem .9rem;text-transform:capitalize;transition:all .3s ease}.hotel-card-modal .amenity-badge:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.hotel-card-modal .hotel-detail-icon{font-size:1rem;margin-right:.3rem;opacity:.8}.hotel-card-modal .hotel-additional-info,.hotel-card-modal .hotel-policies-section,.hotel-card-modal .hotel-select-btn,.hotel-card-modal .more-amenities{display:none}@media (max-width:768px){.hotel-header{align-items:stretch;flex-direction:column;gap:1rem}.hotel-price-section{text-align:left}.hotel-location-room{align-items:stretch;flex-direction:column;gap:.75rem}.amenities-grid{justify-content:flex-start}.amenity-badge{font-size:.75rem;padding:.3rem .6rem}.hotel-select-btn{border-radius:12px;margin-top:1rem;position:static;width:100%}.hotel-main-info{padding-bottom:1.5rem}}@media (max-width:480px){.hotel-rating-row{align-items:flex-start;flex-direction:column;gap:.5rem}.hotel-name{font-size:1.1rem}.hotel-total-price{font-size:1.3rem}.amenities-grid{gap:.4rem}.amenity-badge{font-size:.7rem;padding:.25rem .5rem}}@media (max-width:768px){.hotel-modal{margin:1rem;max-height:95vh;width:95%}.hotel-modal-header{flex-direction:column;gap:1rem;padding:1rem 1.5rem;text-align:center}.hotel-modal-close{margin:0;position:absolute;right:1rem;top:1rem}.hotel-modal-content{padding:1rem}.hotel-card{flex-direction:column}.hotel-main-info{padding-bottom:1rem}.hotel-header{flex-direction:column;gap:.5rem}.hotel-header,.hotel-price{text-align:center}.hotel-select-btn{align-self:flex-end;margin:0 1rem 1rem;position:static}.hotel-select-arrow{margin-top:0}.hotel-search-details{justify-content:center}.hotel-card-modal{margin:0 -1rem;padding:1.5rem 0}.hotel-card-modal:after{left:15%;right:15%}.hotel-card-modal .hotel-main-info{padding:0 1rem}.hotel-card-modal .hotel-header{align-items:stretch;flex-direction:column;gap:1rem;margin-bottom:1rem}.hotel-card-modal .hotel-name-rating{text-align:center}.hotel-card-modal .hotel-name{font-size:1.2rem;margin-bottom:.5rem}.hotel-card-modal .hotel-rating-row{gap:.75rem;justify-content:center}.hotel-card-modal .hotel-stars{font-size:1rem;letter-spacing:1px}.hotel-card-modal .rating-score{font-size:.8rem;padding:.3rem .6rem}.hotel-card-modal .rating-text{font-size:.8rem}.hotel-card-modal .hotel-price-section{background:none;border:2px solid #ff6b4d26;border-radius:12px;margin:0 auto;max-width:200px;padding:.75rem 1rem;text-align:center}.hotel-card-modal .hotel-total-price{font-size:1.3rem;margin-bottom:.25rem}.hotel-card-modal .hotel-price-breakdown{align-items:center;font-size:.75rem}.hotel-card-modal .hotel-location-room{align-items:stretch;flex-direction:column;gap:.75rem;margin-bottom:.75rem;padding:.75rem;text-align:center}.hotel-card-modal .hotel-location{font-size:.85rem;justify-content:center}.hotel-card-modal .hotel-room-type{align-self:center;font-size:.75rem;padding:.3rem .75rem}.hotel-card-modal .hotel-description{font-size:.85rem;line-height:1.5;margin-bottom:1rem;text-align:center}.hotel-card-modal .amenities-grid{gap:.5rem;justify-content:center}.hotel-card-modal .amenity-badge{font-size:.7rem;padding:.3rem .7rem}.hotel-card-modal:hover{padding-left:1rem;transform:translateX(4px)}}@media (max-width:480px){.hotel-modal-title{font-size:1.3rem}.hotel-name{font-size:1.1rem}.hotel-total-price{font-size:1.3rem}.hotel-main-info{padding:1rem}.hotel-card-modal{margin:0 -.75rem;padding:1rem 0}.hotel-card-modal:after{left:10%;right:10%}.hotel-card-modal .hotel-main-info{padding:0 .75rem}.hotel-card-modal .hotel-name{font-size:1.1rem}.hotel-card-modal .hotel-total-price{font-size:1.2rem}.hotel-card-modal .hotel-price-section{max-width:180px;padding:.5rem .75rem}.hotel-card-modal .hotel-location-room{margin-bottom:.5rem;padding:.5rem}.hotel-card-modal .hotel-description{font-size:.8rem;margin-bottom:.75rem}.hotel-card-modal .amenities-grid{gap:.4rem}.hotel-card-modal .amenity-badge{font-size:.65rem;padding:.25rem .5rem}.hotel-card-modal:hover{border-left-width:2px;padding-left:.75rem;transform:translateX(2px)}}.flight-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.flight-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow:hidden;width:95%}.flight-modal-header{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.flight-modal-title{color:#f8f9fa;font-size:1.5rem;font-weight:600;margin:0}.flight-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;padding:0;transition:background-color .3s ease;width:40px}.flight-modal-close:hover{background:#fff3}.flight-search-info{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:1.5rem 2rem}.flight-route{color:#004e4f;font-size:1.3rem;font-weight:600;margin-bottom:.5rem}.flight-date{color:#666;font-size:1rem;margin-bottom:.5rem}.flight-passengers{color:#888;font-size:.9rem}.flight-modal-content{max-height:60vh;overflow-y:auto;padding:0}.flight-loading{color:#666;padding:3rem 2rem;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#ff6b4d;height:40px;margin:0 auto 1rem;width:40px}.flight-error{color:#dc3545;padding:3rem 2rem;text-align:center}.retry-btn{background:#ff6b4d;border:none;border-radius:25px;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.8rem 2rem;transition:background-color .3s ease}.retry-btn:hover{background:#e55a42}.no-flights{color:#666;padding:3rem 2rem;text-align:center}.flights-list{padding:1rem 0}.flight-item{border-bottom:1px solid #f0f0f0;cursor:pointer;opacity:1;padding:1.5rem 2rem;transition:all .3s ease;visibility:visible}.flight-item:hover{background:#f8f9fa;transform:translateX(5px)}.flight-item:last-child{border-bottom:none}.flight-info{width:100%}.flight-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;opacity:1;visibility:visible}.airline-info{gap:.5rem;opacity:1;visibility:visible}.airline-code{background:#004e4f;border-radius:15px;color:#fff;font-size:.8rem;font-weight:600;padding:.3rem .8rem}.flight-number{color:#2b2b2b;font-size:1rem;font-weight:600}.flight-modal .flight-price{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:none!important;border-radius:0!important;color:#ff6b4d!important;font-size:1.3rem;font-weight:700;opacity:1!important;padding:0!important;position:static!important;transform:none!important;visibility:visible!important}.flight-times{gap:1rem;opacity:1;visibility:visible}.arrival-info,.departure-info{flex:1 1;text-align:center}.time{color:#2b2b2b;font-size:1.2rem;font-weight:600;margin-bottom:.3rem}.airport{color:#666;font-size:.9rem;font-weight:500}.flight-duration{margin:0 1rem;position:relative;text-align:center}.duration-line{background:linear-gradient(90deg,#b5d2c3,#ff6b4d,#b5d2c3);margin-bottom:.5rem}.duration-line:after{font-size:.8rem;padding:0 .5rem;top:50%;transform:translate(-50%,-50%)}@media (max-width:768px){.flight-modal{margin:1rem;max-width:none;width:95%}.flight-modal-header{padding:1rem 1.5rem}.flight-modal-title{font-size:1.3rem}.flight-item,.flight-search-info{padding:1rem 1.5rem}.flight-times{flex-direction:column;gap:1rem}.flight-duration{margin:0;order:4}.duration-line{margin:0 auto;transform:rotate(90deg);width:60px}.arrival-info,.departure-info{flex:none}}@media (max-width:480px){.flight-item,.flight-modal-header,.flight-search-info{padding:1rem}.flight-header{align-items:flex-start;flex-direction:column;gap:.5rem}.flight-modal .flight-price{font-size:1.1rem!important}}.airline-info,.flight-header,.flight-info,.flight-times{opacity:1;visibility:visible}.cached-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.cached-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:900px;overflow:hidden;width:95%}.cached-modal-header{align-items:flex-start;background:linear-gradient(135deg,#b5d2c3,#95c2a3);color:#004e4f;display:flex;justify-content:space-between;padding:1.5rem 2rem}.cached-search-info{flex:1 1}.cached-modal-title{font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.cached-search-details{display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem;opacity:.8}.cached-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#004e4f;cursor:pointer;display:flex;flex-shrink:0;font-size:2rem;height:40px;justify-content:center;margin-left:1rem;padding:0;transition:background-color .3s ease;width:40px}.cached-modal-close:hover{background:#004e4f1a}.cached-modal-content{max-height:70vh;overflow-y:auto;padding:1.5rem}.cached-no-results{align-items:center;color:#666;display:flex;flex-direction:column;padding:3rem;text-align:center}.cached-no-results-icon{font-size:3rem;margin-bottom:1rem}.cached-flight-list{display:flex;flex-direction:column;gap:1rem}.cached-flight-card{align-items:stretch;background:#fff;border:2px solid #e0e0e0;border-radius:16px;cursor:pointer;display:flex;justify-content:space-between;overflow:hidden;transition:all .3s ease}.cached-flight-card:hover{border-color:#b5d2c3;box-shadow:0 8px 25px #b5d2c326;transform:translateY(-2px)}.cached-flight-main{flex:1 1;padding:1.5rem}.cached-flight-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.cached-airline-info{display:flex;flex-direction:column;gap:.25rem}.cached-airline{color:#004e4f;font-size:1.1rem;font-weight:600}.cached-aircraft{color:#666;font-size:.9rem}.cached-flight-price{text-align:right}.cached-price{color:#ff6b4d;font-size:1.3rem;font-weight:700}.cached-flight-times{align-items:center;display:flex;gap:1rem;justify-content:space-between}.cached-time-section{flex:1 1;text-align:center}.cached-time{color:#004e4f;font-size:1.2rem;font-weight:600;margin-bottom:.25rem}.cached-airport{color:#666;font-size:.8rem}.cached-flight-duration{align-items:center;display:flex;flex:2 1;gap:.5rem;justify-content:center}.cached-duration-line{background:#b5d2c3;flex:1 1;height:2px}.cached-duration-text{color:#666;font-size:.8rem;white-space:nowrap}.cached-select-btn{align-items:center;background:linear-gradient(135deg,#b5d2c3,#95c2a3);color:#004e4f;display:flex;flex-direction:column;font-weight:600;justify-content:center;min-width:120px;padding:1.5rem 1rem;text-align:center;transition:all .3s ease}.cached-select-btn:hover{background:linear-gradient(135deg,#95c2a3,#85b293)}.cached-select-arrow{font-size:1.2rem;margin-top:.5rem;transition:transform .3s ease}.cached-flight-card:hover .cached-select-arrow{transform:translateX(3px)}@media (max-width:768px){.cached-modal{margin:1rem;max-height:95vh;width:95%}.cached-modal-header{flex-direction:column;gap:1rem;padding:1rem 1.5rem;text-align:center}.cached-modal-close{margin:0;position:absolute;right:1rem;top:1rem}.cached-modal-content{padding:1rem}.cached-flight-card,.cached-flight-times{flex-direction:column}.cached-flight-times{gap:.5rem}.cached-select-btn{flex-direction:row;gap:.5rem;justify-content:center;padding:1rem}.cached-select-arrow{margin-top:0}}.booking-loading-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.booking-loading-screen{animation:slideUp .5s ease-out;background:#fff;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:500px;padding:3rem 2rem;text-align:center;width:90%}.booking-animation{align-items:center;display:flex;height:80px;justify-content:center;margin-bottom:2rem;position:relative}.booking-icon{animation:write 2s ease-in-out infinite;font-size:3rem;position:relative;z-index:2}@keyframes write{0%,to{transform:rotate(-5deg) scale(1)}50%{transform:rotate(5deg) scale(1.1)}}.booking-dots{bottom:10px;display:flex;gap:8px;left:50%;position:absolute;transform:translateX(-50%)}.booking-dots .dot{animation:bounce 1.4s ease-in-out infinite both;background:#ff6b4d;border-radius:50%;height:8px;width:8px}.booking-dots .dot:first-child{animation-delay:-.32s}.booking-dots .dot:nth-child(2){animation-delay:-.16s}.booking-content{text-align:center}.booking-title{color:#ff6b4d;font-size:1.8rem;font-weight:700;margin:0 0 1rem}.booking-message{color:#666;font-size:1.1rem;line-height:1.4;margin:0 0 2rem;min-height:1.5rem;opacity:1;transform:translateY(0);transition:all .6s ease}.booking-message.fade-in{animation:slideInUp .6s ease-out;opacity:1;transform:translateY(0)}.booking-message.fade-out{opacity:0;transform:translateY(-10px)}.booking-progress{margin-top:1.5rem}.booking-progress .progress-bar{background:#e0e0e0;border-radius:3px;height:6px;overflow:hidden;position:relative;width:100%}.booking-progress .progress-fill{animation:bookingProgress 5s ease-in-out forwards;background:linear-gradient(135deg,#ff6b4d,#ff8e4d);border-radius:3px;height:100%}@keyframes bookingProgress{0%{width:0}to{width:100%}}@media (max-width:768px){.booking-loading-screen{margin:1rem;padding:2rem 1.5rem}.booking-title{font-size:1.5rem}.booking-message{font-size:1rem}.booking-icon{font-size:2.5rem}.booking-animation{height:60px;margin-bottom:1.5rem}}@media (max-width:480px){.booking-loading-screen{padding:1.5rem 1rem}.booking-title{font-size:1.3rem}.booking-message{font-size:.9rem}}.final-itinerary{background-color:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;padding:2rem 0}.itinerary-container{margin:0 auto;max-width:800px;padding:0 1rem}.itinerary-header-final{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;flex-wrap:wrap;justify-content:space-between;margin-bottom:2rem;padding:2rem}.header-content,.itinerary-header-final{align-items:center;display:flex;gap:1rem}.logo-final{height:auto;max-width:120px}.header-text{flex:1 1}.itinerary-title-final{color:#004e4f;font-size:2rem;font-weight:700;margin:0 0 .5rem}.confirmation-subtitle{color:#28a745;font-size:1.1rem;font-weight:500;margin:0}.header-actions{display:flex;gap:1rem}.print-button{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.print-button:hover{background:linear-gradient(135deg,#003a3b,#005a5f);box-shadow:0 6px 20px #004e4f4d;transform:translateY(-2px)}.trip-summary-card{background:#fff;border-left:4px solid #ff6b4d;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:2rem;padding:2rem}.section-title{align-items:center;color:#004e4f;display:flex;font-size:1.5rem;gap:.5rem;margin:0 0 1.5rem}.summary-details{display:flex;flex-direction:column;gap:1rem}.summary-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:.5rem 0}.summary-row:last-child{border-bottom:none}.summary-row .label{color:#666;font-weight:600}.summary-row .value{color:#2b2b2b;font-weight:500}.total-row{border-top:2px solid #004e4f;font-size:1.1rem;margin-top:1rem;padding-top:1rem}.total-price{color:#ff6b4d;font-size:1.3rem;font-weight:700}.booking-section{margin-bottom:2rem}.booking-card{background:#fff;border:1px solid #e0e0e0;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:2rem}.final-itinerary .flight-info{display:flex;flex-direction:column;gap:1.5rem}.final-itinerary .flight-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding-bottom:1rem}.final-itinerary .airline{color:#004e4f;font-size:1.2rem;font-weight:700}.final-itinerary .flight-number{background:#004e4f;border-radius:15px;color:#fff;font-size:.9rem;font-weight:600;padding:.3rem .8rem}.final-itinerary .price{color:#ff6b4d;font-size:1.1rem;font-weight:700}.final-itinerary .flight-route{align-items:center;display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between}.final-itinerary .arrival,.final-itinerary .departure{flex:1 1;min-width:150px;text-align:center}.final-itinerary .time{color:#2b2b2b;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.final-itinerary .airport{color:#004e4f;font-size:1.1rem;font-weight:600;margin-bottom:.3rem}.final-itinerary .date{color:#666;font-size:.9rem}.final-itinerary .flight-arrow{color:#b5d2c3;flex-shrink:0;font-size:2rem}.final-itinerary .flight-duration{background:#f8f9fa;border-radius:20px;color:#666;display:inline-block;font-size:.9rem;margin:0 auto;padding:.5rem 1rem;text-align:center}.final-itinerary .hotel-info{display:flex;flex-direction:column;gap:1.5rem}.final-itinerary .hotel-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding-bottom:1rem}.final-itinerary .hotel-name{color:#004e4f;font-size:1.2rem;font-weight:700}.final-itinerary .hotel-rating{color:gold;font-size:1.1rem;letter-spacing:2px}.final-itinerary .hotel-details{display:flex;flex-direction:column;gap:1rem}.final-itinerary .check-dates{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between}.final-itinerary .check-in,.final-itinerary .check-out{flex:1 1;min-width:200px}.final-itinerary .check-in .label,.final-itinerary .check-out .label{color:#666;display:block;font-weight:600;margin-bottom:.3rem}.final-itinerary .check-in .date,.final-itinerary .check-out .date{color:#2b2b2b;font-size:1.1rem;font-weight:500}.final-itinerary .hotel-stay-info{background:#f8f9fa;border-radius:10px;color:#666;font-size:1rem;padding:.75rem 1rem;text-align:center}.final-itinerary .amenities{display:flex;flex-direction:column;gap:.5rem}.final-itinerary .amenities-label{color:#666;font-weight:600}.final-itinerary .amenities-list{color:#2b2b2b;line-height:1.5}.notes-card{background:#fff;border:1px solid #e0e0e0;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:2rem}.notes-list{display:flex;flex-direction:column;gap:1rem;list-style:none;margin:0;padding:0}.notes-list li{color:#555;line-height:1.6;padding-left:1.5rem;position:relative}.notes-list li:before{color:#ff6b4d;content:"•";font-weight:700;left:0;position:absolute}.itinerary-footer{align-items:center;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;margin-top:2rem;padding:2rem}.new-trip-button{background:linear-gradient(135deg,#ff6b4d,#ff8e4d);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.new-trip-button:hover{background:linear-gradient(135deg,#e55a42,#e57a42);box-shadow:0 6px 20px #ff6b4d4d;transform:translateY(-2px)}.confirmation-info{text-align:center}.confirmation-info p{color:#666;margin:.25rem 0}.booking-ref{color:#004e4f;font-weight:600}@media print{.final-itinerary{background:#fff;padding:0}.itinerary-container{max-width:none;padding:0}.header-actions,.new-trip-button{display:none}.booking-card,.itinerary-footer,.itinerary-header-final,.notes-card,.trip-summary-card{border:1px solid #ddd;box-shadow:none;page-break-inside:avoid}.booking-section{page-break-inside:avoid}}@media (max-width:768px){.final-itinerary{padding:1rem 0}.final-itinerary .itinerary-container{padding:0 .5rem}.final-itinerary .itinerary-header-final{flex-direction:column;padding:1.5rem;text-align:center}.final-itinerary .header-content{flex-direction:column;text-align:center}.final-itinerary .itinerary-title-final{font-size:1.5rem}.final-itinerary .booking-card,.final-itinerary .notes-card,.final-itinerary .trip-summary-card{padding:1.5rem}.final-itinerary .flight-route{flex-direction:column;gap:1rem}.final-itinerary .arrival,.final-itinerary .departure{min-width:auto}.final-itinerary .flight-arrow{font-size:1.5rem;transform:rotate(90deg)}.final-itinerary .check-dates{flex-direction:column;gap:1rem}.final-itinerary .itinerary-footer{flex-direction:column;text-align:center}}@media (max-width:480px){.final-itinerary .logo-final{max-width:80px}.final-itinerary .itinerary-title-final{font-size:1.3rem}.final-itinerary .confirmation-subtitle{font-size:1rem}.final-itinerary .section-title{font-size:1.3rem}.final-itinerary .time{font-size:1.2rem}.final-itinerary .airport{font-size:1rem}}.make-itinerary{background:#0000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;padding:1rem 0}.make-itinerary .container{margin:0 auto;max-width:600px;padding:0 1rem}.itinerary-header{animation:fadeInUp .6s ease-out;margin-bottom:1.5rem;text-align:center}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.itinerary-logo{height:auto;margin-bottom:.75rem;max-width:200px;width:100%}.itinerary-title{color:#06d6a0;font-size:2.5rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.itinerary-subtitle{color:#faf8f4;font-size:1.2rem;line-height:1.5;margin:0}.trip-timeline{align-items:center;display:flex;flex-direction:column;gap:0;margin-bottom:2rem;position:relative}.timeline-node{animation:slideInLeft .6s ease-out;animation-fill-mode:both;margin-bottom:0;max-width:520px;width:70%}.timeline-node:first-child{animation-delay:.1s}.timeline-node:nth-child(3){animation-delay:.3s}.timeline-node:nth-child(5){animation-delay:.5s}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.node-header{gap:.5rem;margin-bottom:.5rem}.node-header,.node-icon{align-items:center;display:flex;justify-content:center}.node-icon{background:linear-gradient(135deg,#b5d2c3,#a5c2b3);border-radius:50%;box-shadow:0 4px 15px #b5d2c34d;flex-shrink:0;font-size:1.5rem;height:50px;width:50px}.node-content{background:#fff;border:2px solid #0000;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:1rem;position:relative;text-align:center;transition:all .3s ease}.node-content:hover{border-color:#b5d2c3;box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.city-name{color:#004e4f;font-size:1.2rem;font-weight:700;margin:0}.date-info,.duration-info{margin-bottom:.5rem}.date{color:#2b2b2b;font-size:1.1rem;font-weight:600;margin-bottom:.3rem}.time{color:#666;font-size:.9rem;letter-spacing:.5px;text-transform:uppercase}.duration{align-items:center;background:#fff;border:1px solid #b5d2c3;border-radius:30px;color:#004e4f;display:flex;flex-shrink:0;font-size:.75rem;font-weight:500;height:32px;padding:.25rem 1.2rem;width:-webkit-fit-content;width:fit-content}.stay-details,.travelers-info{display:flex;justify-content:center;margin-top:.5rem}.travelers-count{background:#006b6f;border-radius:25px;color:#faf8f4;display:inline-block;font-size:1rem;padding:.2rem 1.2rem}.destination-stay.incomplete .node-content{background:#b5d2c30d;border:2px dashed #b5d2c3}.destination-stay.complete .node-content{background:#fff;border:2px solid #b5d2c3}.timeline-line{align-items:center;display:flex;flex-direction:column;max-width:520px;padding:1rem 0;position:relative;width:100%;z-index:1}.airport-arrival-time{background:#b5d2c31a;border:1px solid #b5d2c3;border-radius:12px;color:#faf8f4;font-size:.8rem;font-weight:500;left:15%;padding:.3rem .8rem;position:absolute;white-space:nowrap;z-index:3}.choose-btn{align-items:center;animation:pulse 2s infinite;background:linear-gradient(135deg,#ff6b4d,#ff8e4d);border:none;border-radius:25px;box-shadow:0 4px 20px #ff6b4d4d;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;margin:0 auto;padding:1rem 1.5rem;transition:all .3s ease}.choose-btn:hover{animation:none;background:linear-gradient(135deg,#e55a42,#e57a42);box-shadow:0 8px 30px #ff6b4d66;transform:translateY(-3px)}.btn-icon{font-size:1.2rem}.hotel-btn{background:linear-gradient(135deg,#b5d2c3,#a5c2b3);box-shadow:0 4px 20px #b5d2c34d;color:#004e4f}.hotel-btn:hover{background:linear-gradient(135deg,#a5c2b3,#95b2a3);box-shadow:0 8px 30px #b5d2c366}.line-connector{background:#b5d2c3;height:40px;margin:0 auto;width:4px}.timeline-line.incomplete .line-connector{background:#ddd;opacity:.5}.timeline-line.complete .line-connector{background:linear-gradient(180deg,#b5d2c3,#a5c2b3)}.line-content{display:flex;justify-content:center;margin:1rem 0;position:relative;width:100%;z-index:2}.flight-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 2px 16px #0000001a;overflow:hidden;transition:all .3s ease;width:600px}.flight-card:hover{border-color:#b5d2c3;box-shadow:0 8px 32px #00000026;transform:translateY(-4px)}.flight-card-header{background:linear-gradient(135deg,#004e4f,#006b6f);color:#fff;padding:1.5rem;position:relative}.flight-icon{font-size:1.5rem;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%)}.flight-route{margin-bottom:.75rem;text-align:center}.route-label{color:#fff;font-size:1.1rem;font-weight:600;letter-spacing:.5px}.flight-price{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border-radius:25px;color:#b5d2c3;font-size:1.2rem;font-weight:700;padding:.5rem 1rem;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%)}.flight-card-body{background:#fff;padding:2rem 1.5rem}.airline-info{align-items:center;display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.airline-name{color:#2b2b2b;font-size:1.1rem;font-weight:600}.flight-number{background:#f8f9fa;border:1px solid #e5e5e5;border-radius:12px;color:#666;font-size:.85rem;padding:.25rem .75rem}.flight-times{align-items:center;display:flex;gap:1.5rem;justify-content:space-between}.time-block{flex:1 1;text-align:center}.time{color:#004e4f;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.time-label{color:#888;font-size:.75rem;font-weight:500;letter-spacing:1px;text-transform:uppercase}.flight-duration{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.5rem;top:.7rem}.duration-line{background:linear-gradient(90deg,#b5d2c3,#004e4f 50%,#b5d2c3);border-radius:1px;height:2px;position:relative;width:80px}.duration-line:after{background:#fff;border-radius:50%;content:"✈️";font-size:.9rem;left:50%;padding:2px;position:absolute;top:-10px;transform:translateX(-50%)}.duration-text{color:#666;font-size:.8rem;font-weight:500}.flight-card-footer{background:#fafbfc;border-top:1px solid #e5e5e5;padding:1rem 1.5rem;text-align:center}.hotel-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 2px 16px #0000001a;max-width:480px;overflow:hidden;transition:all .3s ease;width:100%}.hotel-card:hover{border-color:#b5d2c3;box-shadow:0 8px 32px #00000026;transform:translateY(-4px)}.hotel-card-header{background:linear-gradient(135deg,#004e4f,#006b6f);color:#fff;padding:1.5rem;position:relative}.hotel-icon{font-size:1.5rem;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%)}.hotel-location-info{margin-bottom:.75rem;text-align:center}.hotel-location-label{color:#fff;font-size:1.1rem;font-weight:600;letter-spacing:.5px}.hotel-price{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border-radius:25px;color:#b5d2c3;font-size:1.2rem;font-weight:700;padding:.5rem 1rem;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%)}.hotel-card-body{background:#fff;padding:2rem 1.5rem}.hotel-main-info{display:flex;flex-direction:column;gap:1.5rem}.hotel-name-section{border-bottom:1px solid #f0f0f0;padding-bottom:1rem;text-align:center}.hotel-name{color:#2b2b2b;font-size:1.3rem;font-weight:600;line-height:1.3;margin:0 0 .75rem}.hotel-rating-info{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.hotel-stars{font-size:1rem}.hotel-rating-score{background:#f0f7f4;border:1px solid #b5d2c3;border-radius:12px;color:#004e4f;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.hotel-review-count{color:#666;font-size:.8rem;font-weight:500}.hotel-details-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.hotel-cancellation,.hotel-location-detail,.hotel-room-info,.hotel-stay-dates{background:#fafbfc;border:1px solid #f0f0f0;border-radius:8px;padding:.75rem}.detail-label{color:#666;font-size:.75rem;font-weight:500;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.detail-value{color:#2b2b2b;font-size:.9rem;font-weight:600;line-height:1.3}.cancellation-free{color:#28a745;font-weight:600}.cancellation-paid{color:#dc3545;font-weight:600}.hotel-amenities-section{margin-top:.5rem}.hotel-amenities-section .detail-label{margin-bottom:.75rem}.hotel-amenities-list{display:flex;flex-wrap:wrap;gap:.5rem}.hotel-amenity-tag{background:#f0f7f4;border:1px solid #b5d2c3;border-radius:15px;color:#004e4f;font-size:.8rem;font-weight:500;padding:.4rem .8rem}.hotel-card-footer{background:#fafbfc;border-top:1px solid #e5e5e5;padding:1rem 1.5rem;text-align:center}.total-price-section{align-items:center;display:flex;flex-direction:column;margin:2rem 0}.price-breakdown-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 2px 16px #0000001a;margin-bottom:1.5rem;max-width:520px;overflow:hidden;transition:all .3s ease;width:100%}.price-breakdown-card:hover{border-color:#b5d2c3;box-shadow:0 8px 32px #00000026;transform:translateY(-4px)}.price-card-header{background:linear-gradient(135deg,#004e4f,#006b6f);color:#fff;padding:1.5rem;position:relative;text-align:center}.price-icon{font-size:1.5rem;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%)}.price-title{color:#fff;font-size:1.3rem;font-weight:600;letter-spacing:.3px}.price-card-body{background:#fff;padding:2rem 1.5rem;text-align:center}.total-price-display{margin-bottom:1.5rem}.price-label{color:#666;display:block;font-size:1rem;font-weight:500;margin-bottom:.5rem}.price-amount{color:#004e4f;display:block;font-size:2.2rem;font-weight:700}.view-breakdown-btn{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);border:none;border-radius:25px;box-shadow:0 2px 12px #004e4f33;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;margin:0 auto;padding:.75rem 1.5rem;transition:all .3s ease}.view-breakdown-btn:hover{background:linear-gradient(135deg,#003a3b,#005a5f);box-shadow:0 4px 20px #004e4f4d;transform:translateY(-2px)}.breakdown-arrow{transition:transform .3s ease}.view-breakdown-btn:hover .breakdown-arrow{transform:translateX(3px)}.booking-actions{max-width:520px;text-align:center;width:100%}.finalise-book-button{align-items:center;background:linear-gradient(135deg,#ff6b4d,#ff5a3d);border:none;border-radius:25px;box-shadow:0 4px 20px #ff6b4d40;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;justify-content:center;margin:0 auto;min-width:250px;padding:1rem 2rem;transition:all .3s ease}.finalise-book-button:hover{background:linear-gradient(135deg,#ff5a3d,#ff4d2d);box-shadow:0 6px 30px #ff6b4d59;transform:translateY(-2px)}.book-icon{font-size:1.2rem}.change-button{background:linear-gradient(135deg,#004e4f,#006b6f);border:none;border-radius:20px;box-shadow:0 2px 8px #004e4f33;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.25rem;transition:all .3s ease}.change-button:hover{background:linear-gradient(135deg,#003a3b,#005a5f);box-shadow:0 4px 12px #004e4f4d;transform:translateY(-1px)}.itinerary-actions{animation:fadeInUp .6s ease-out .7s both;margin-top:1rem;text-align:center}.price-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.price-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:80vh;max-width:600px;overflow:hidden;width:95%}.price-modal-header{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.price-modal-title{color:#faf8f4;font-size:1.5rem;font-weight:600;margin:0}.price-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;padding:0;transition:background-color .3s ease;width:40px}.price-modal-close:hover{background:#fff3}.price-modal-content{max-height:60vh;overflow-y:auto;padding:1rem}.breakdown-list{display:flex;flex-direction:column;gap:1.5rem}.breakdown-item{align-items:flex-start;background:#f8f9fa;border-left:4px solid #b5d2c3;border-radius:12px;display:flex;justify-content:space-between;padding:.75rem}.breakdown-info{flex:1 1}.breakdown-title{align-items:center;color:#004e4f;display:flex;font-size:1.1rem;font-weight:600;gap:.8rem;margin-bottom:.5rem}.item-icon{font-size:1.2rem}.breakdown-details{color:#666;font-size:.9rem;line-height:1.4}.breakdown-price{color:#ff6b4d;font-size:1.3rem;font-weight:700;margin-left:1rem}.breakdown-total{align-items:center;background:linear-gradient(135deg,#004e4f,#006b6f);border-radius:12px;color:#fff;display:flex;justify-content:space-between;margin-top:1rem;padding:.75rem}.total-label{font-size:1.2rem;font-weight:600}.total-amount{color:#b5d2c3;font-size:1.8rem;font-weight:700}.start-over-link{background:none;border:none;color:#666;cursor:pointer;font-size:.9rem;padding:.5rem;text-decoration:underline;transition:color .3s ease}.start-over-link:hover{color:#004e4f}.hotel-end-date,.hotel-start-date{color:#666;font-size:.8rem;font-weight:500;left:.75rem;position:absolute;right:.75rem}.hotel-start-date{text-align:left;top:.5rem}.hotel-end-date{bottom:.5rem;text-align:left}@media (max-width:768px){.make-itinerary{padding:.5rem 0}.make-itinerary .container{max-width:100%;padding:0 .5rem}.itinerary-title{color:#faf8f4;font-size:2rem}.itinerary-subtitle{color:#faf8f4;font-size:1.1rem}.timeline-node{flex-direction:column;gap:1rem;text-align:center}.node-icon{font-size:1.5rem;height:50px;margin:0 auto;width:50px}.node-content{padding:.6rem}.city-name{font-size:1.5rem}.timeline-line{margin:-.25rem 0;padding:.75rem 0}.line-connector{left:50%;transform:translateX(-50%)}.line-content{justify-content:center;margin:0}.airport-arrival-time{display:none}.choose-btn{font-size:.9rem;padding:.75rem 1rem}.flight-card,.hotel-card,.price-breakdown-card{margin:0 -.5rem;max-width:100%}.flight-card-header{flex-direction:column;gap:.75rem;padding:1rem;position:relative;text-align:center}.flight-icon{font-size:1.2rem;margin-bottom:.5rem;position:static;transform:none}.flight-route{margin:0;order:1}.flight-price{-webkit-backdrop-filter:none;backdrop-filter:none;background:none;border-radius:0;color:#faf8f4;font-size:1.4rem;margin-top:.5rem;order:2;padding:0;position:static;transform:none}.flight-card-body{padding:1rem}.airline-info{justify-content:center;margin-bottom:1rem}.flight-times{align-items:center;flex-direction:column;gap:1rem;justify-content:center;padding:1rem 0}.time-block{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;max-width:250px;padding:.75rem;width:100%}.time-block:first-child{order:1}.time-block:last-child{order:3}.time{font-size:1.4rem;margin-bottom:.5rem}.time-label{color:#666;font-size:.8rem;font-weight:600}.flight-duration{align-self:center;background:linear-gradient(135deg,#f8fafb,#e9ecef);border:1px solid #b5d2c3;border-radius:12px;flex-shrink:0;margin:0 auto;max-width:180px;order:2;padding:.75rem;width:100%}.duration-line{display:none}.duration-text{color:#004e4f;font-size:.9rem;font-weight:600;margin-top:0;text-align:center}.hotel-card-header{flex-direction:column;gap:.75rem;padding:1rem;position:relative;text-align:center}.hotel-icon{font-size:1.2rem;margin-bottom:.5rem;position:static;transform:none}.hotel-location-info{order:1}.hotel-price{-webkit-backdrop-filter:none;backdrop-filter:none;background:none;border-radius:0;color:#faf8f4;font-size:1.4rem;margin-top:.5rem;order:2;padding:0;position:static;transform:none}.hotel-card-body{padding:1rem}.hotel-name{font-size:1.2rem;margin-bottom:1rem;text-align:center}.hotel-rating-info{justify-content:center;margin-bottom:1rem}.hotel-details-grid{gap:.75rem;grid-template-columns:1fr;text-align:center}.hotel-amenities-list{justify-content:center}.hotel-amenity-tag{font-size:.7rem;padding:.3rem .6rem}.price-card-header{flex-direction:column;gap:.75rem;padding:1rem;position:relative;text-align:center}.price-icon{font-size:1.2rem;margin-bottom:.5rem;position:static;transform:none}.finalise-book-button{font-size:1rem;min-width:200px;padding:.75rem 1.5rem}.price-amount{font-size:1.8rem}.price-modal{margin:1rem;width:95%}.price-modal-header{padding:1rem 1.5rem}.price-modal-content{padding:.75rem}.breakdown-item{flex-direction:column;gap:.5rem;text-align:center}.breakdown-price{font-size:1.5rem;margin:0}.breakdown-total{flex-direction:column;gap:.25rem;text-align:center}}@media (max-width:480px){.itinerary-logo{max-width:150px}.itinerary-title{font-size:1.8rem}.city-name{font-size:1.3rem}.node-content{padding:.5rem}.flight-card,.hotel-card,.price-breakdown-card{margin:0 -.25rem}.flight-card-body,.flight-card-header,.hotel-card-body,.hotel-card-header,.price-card-header{padding:.75rem}.flight-price,.hotel-price{color:#faf8f4;font-size:1.2rem}.hotel-name,.time{font-size:1.1rem}.flight-times{gap:.75rem;padding:.75rem 0}.time-block{max-width:220px;padding:.6rem}.time{font-size:1.2rem}.flight-duration{margin:0 auto;max-width:160px;padding:.6rem}.duration-line{display:none}.price-modal-title{font-size:1.3rem}.breakdown-title{font-size:1rem}}.hotel-name-badge{background:#004e4f;border-radius:20px;color:#fff;font-size:.9rem;font-weight:600;padding:.4rem 1rem}.hotel-rating-section{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.hotel-stars-small{color:gold;font-size:.9rem;letter-spacing:1px}.hotel-guest-rating{background:#b5d2c333;border-radius:8px;color:#004e4f;font-size:.8rem;font-weight:600;padding:.2rem .4rem}.review-count{color:#666;font-size:.7rem;font-weight:400;margin-left:.2rem}.hotel-stars{color:gold;font-size:.9rem;letter-spacing:1px}.hotel-guest-score{background:#b5d2c333;border-radius:6px;color:#004e4f;font-size:.8rem;font-weight:600;padding:.2rem .4rem}.finalise-section{margin:20px 0;text-align:center}.finalise-book-button:active{transform:translateY(0)}.loading-screen-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.loading-screen{animation:slideUp .5s ease-out;background:#fff;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:500px;padding:3rem 2rem;text-align:center;width:90%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.loading-animation{align-items:center;display:flex;height:80px;justify-content:center;margin-bottom:2rem;position:relative}.plane{animation:fly 3s ease-in-out infinite;font-size:3rem;position:relative;z-index:2}@keyframes fly{0%,to{transform:translateX(-20px) rotate(-5deg)}50%{transform:translateX(20px) rotate(5deg)}}.loading-dots{bottom:10px;display:flex;gap:8px;left:50%;position:absolute;transform:translateX(-50%)}.dot{animation:bounce 1.4s ease-in-out infinite both;background:#004e4f;border-radius:50%;height:8px;width:8px}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.loading-content{text-align:center}.loading-title{font-size:1.8rem;margin:0 0 1rem}.loading-message{color:#666;font-size:1.1rem;line-height:1.4;margin:0 0 2rem;min-height:1.5rem;opacity:1;transform:translateY(0);transition:all .6s ease}.loading-message.fade-in{animation:slideInUp .6s ease-out;opacity:1;transform:translateY(0)}.loading-message.fade-out{opacity:0;transform:translateY(-10px)}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-progress{margin-top:1.5rem}.progress-bar{background:#0000;border-radius:3px;height:6px;overflow:hidden;position:relative;width:100%}.progress-fill{animation:progressAnimation 8s ease-in-out infinite;background:linear-gradient(135deg,#0000,#faf8f4);border-radius:3px;height:100%}@keyframes progressAnimation{0%{transform:translateX(-100%);width:0}50%{transform:translateX(0);width:100%}to{transform:translateX(100%);width:100%}}@media (max-width:768px){.loading-screen{margin:1rem;padding:2rem 1.5rem}.loading-title{font-size:1.5rem}.loading-message{font-size:1rem}.plane{font-size:2.5rem}.loading-animation{height:60px;margin-bottom:1.5rem}}@media (max-width:480px){.loading-screen{padding:1.5rem 1rem}.loading-title{font-size:1.3rem}.loading-message{font-size:.9rem}}.pending-approval-page{align-items:center;background:#0000;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;justify-content:center;min-height:100vh;padding:20px}.pending-approval-container{background:#fff;border:2px solid #b5d2c3;border:2px solid var(--mist-green);border-radius:20px;box-shadow:0 10px 30px #004e4f26;max-width:500px;padding:40px;text-align:center;width:100%}.logo-container{margin-bottom:30px}.logo{height:120px;width:auto}.pending-content{width:100%}.pending-icon{display:flex;justify-content:center;margin-bottom:24px}.pending-title{color:#004e4f;color:var(--primary-green);font-size:28px;font-weight:700;letter-spacing:-.5px;margin-bottom:8px}.pending-subtitle{color:#ff6b4d;color:var(--orange-accent);font-size:16px;font-weight:500;line-height:1.5;margin-bottom:30px}.pending-message{background:#b5d2c333;border:1px solid #b5d2c3;border:1px solid var(--mist-green);border-radius:12px;margin-bottom:30px;padding:20px;text-align:left}.pending-message p{color:#004e4f;color:var(--primary-green);font-size:14px;line-height:1.6;margin:0 0 12px}.pending-message p:last-child{margin-bottom:0}.pending-message strong{color:#2b2b2b;color:var(--charcoal-black);font-weight:600}.pending-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:30px}.sign-out-button{background:#faf8f4;background:var(--bone-white);border:1px solid #b5d2c3;border:1px solid var(--mist-green);border-radius:50px;color:#2b2b2b;color:var(--charcoal-black);cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.sign-out-button:hover{background:#b5d2c3;background:var(--mist-green);border-color:#004e4f;border-color:var(--primary-green);color:#004e4f;color:var(--primary-green)}.sign-out-button:active{transform:translateY(1px)}.check-status-button{background-color:#ff6b4d;background-color:var(--orange-accent);border:none;border-radius:50px;box-shadow:0 4px 15px #ff6b4d4d;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .3s ease}.check-status-button:hover:not(:disabled){background-color:#e55a42;box-shadow:0 6px 20px #ff6b4d66;transform:translateY(-2px)}.check-status-button:active:not(:disabled){transform:translateY(0)}.check-status-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.pending-footer{border-top:1px solid #b5d2c3;border-top:1px solid var(--mist-green);padding-top:20px}.pending-footer p{color:#2b2b2b;color:var(--charcoal-black);font-size:13px;margin:0;opacity:.7}@media (max-width:480px){.pending-approval-page{padding:10px}.pending-approval-container{border-radius:15px;padding:30px 20px}.pending-title{font-size:24px}.pending-subtitle{font-size:14px}}.pending-icon svg{animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}:root{--primary-green:#004e4f;--bone-white:#faf8f4;--orange-accent:#ff6b4d;--mist-green:#b5d2c3;--charcoal-black:#2b2b2b}.landing-page{background:#0000;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.landing-header{padding:20px;position:fixed;right:0;top:0;z-index:1000}.container{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;margin:0 auto;max-width:600px;padding:2rem;text-align:center}.logo-container{margin-bottom:rem}.logo{height:auto;max-width:300px;width:100%}.content{align-items:center;display:flex;flex-direction:column;gap:1rem}.welcome-text{font-size:2.5rem;font-weight:700}.subtitle,.welcome-text{color:#faf8f4;line-height:1;margin:0}.subtitle{font-size:1.2rem}.get-started-button{background-color:#ff6b4d;border:none;border-radius:50px;box-shadow:0 4px 15px #ff6b4d4d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2.5rem;transition:all .3s ease}.get-started-button:hover{background-color:#e55a42;box-shadow:0 6px 20px #ff6b4d66;transform:translateY(-2px)}.features{background:#0000;padding:6rem 0}.section-title{color:#ff6b4d;color:var(--orange-accent);font-size:2.5rem;font-weight:700;margin-bottom:4rem;text-align:center}.features-grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background:#fff;border:2px solid #0000;border-radius:15px;box-shadow:0 5px 20px #00000014;padding:2.5rem;text-align:center;transition:transform .3s ease}.feature-card:hover{border-color:#b5d2c3;border-color:var(--mist-green);transform:translateY(-5px)}.feature-title{color:#004e4f;color:var(--primary-green);font-size:1.5rem;font-weight:600;margin-bottom:1rem}.feature-description{color:#2b2b2b;color:var(--charcoal-black);line-height:1.6;opacity:.9}.footer{background-color:#004e4f;background-color:var(--primary-green);color:#faf8f4;color:var(--bone-white);padding:3rem 0 1rem}.footer-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.footer-title{color:#faf8f4;color:var(--bone-white);font-size:1.5rem;margin-bottom:1rem}.footer-subtitle{color:#b5d2c3;color:var(--mist-green);font-size:1.1rem;margin-bottom:1rem}.footer-text{color:#faf8f4;color:var(--bone-white);line-height:1.5;opacity:.9}.footer-links{list-style:none;padding:0}.footer-links li{margin-bottom:.5rem}.footer-link{color:#faf8f4;color:var(--bone-white);opacity:.9;text-decoration:none;transition:opacity .3s ease}.footer-link:hover{color:#b5d2c3;color:var(--mist-green);opacity:1}.footer-bottom{border-top:1px solid #fff3;padding-top:1rem;text-align:center}@media (max-width:768px){.container{padding:1.5rem}.logo{max-width:250px}.welcome-text{font-size:2rem}.subtitle{font-size:1.1rem}.get-started-button{font-size:1rem;padding:.9rem 2rem}.features-grid{gap:2rem;grid-template-columns:1fr}.feature-card{padding:2rem}}@media (max-width:480px){.logo{max-width:200px}.welcome-text{font-size:1.8rem}.subtitle{font-size:1rem}}.App{background:#0000;display:flex;flex-direction:column;min-height:100vh;position:relative;width:100%}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}button{cursor:pointer;font-family:inherit}.loading-app{align-items:center;background:#0000;display:flex;justify-content:center;min-height:100vh}.loading-container{max-width:400px;padding:2rem;text-align:center}.app-loading-spinner{align-items:center;display:flex;height:80px;justify-content:center;margin-bottom:2rem}.plane-icon{animation:gentleFly 3s ease-in-out infinite;font-size:3rem}@keyframes gentleFly{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.loading-title{color:#004e4f;font-size:2rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem}.loading-subtitle{color:#666;font-size:1rem;font-weight:400;margin:0}.minimal-loading{align-items:center;background:#0000;display:flex;justify-content:center;min-height:100vh}.minimal-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#004e4f;height:30px;width:30px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.minimal-loading-text{color:#004e4f;font-size:.9rem;font-weight:500;margin-top:1rem}button{border:none;outline:none;transition:all .2s ease}button:disabled{cursor:not-allowed;opacity:.7}input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s ease;width:100%}input:focus{border-color:#004e4f;outline:none}.error-message{color:#dc3545}.error-message,.success-message{font-size:.875rem;margin-top:.5rem}.success-message{color:#28a745}.App-header,.App-link,.App-logo{display:none}
/*# sourceMappingURL=main.1a110f0b.css.map*/