body{margin:0;padding:0;background-color:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-gutter:stable}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--app-bg-color: #e0f2fe}html{scrollbar-gutter:stable;overflow-y:scroll;background-color:var(--app-bg-color)}::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background:var(--app-bg-color)}::-webkit-scrollbar-thumb{background:#0077b6;border-radius:10px;border:4px solid var(--app-bg-color)}::-webkit-scrollbar-thumb:hover{background:#005f8d}body{margin:0;padding:0;background-color:var(--app-bg-color);-webkit-font-smoothing:antialiased}.App{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.App-main{flex:1;display:flex;flex-direction:column;align-items:center;padding:40px 20px;width:100%;box-sizing:border-box}.app-header{background-color:#162c49;color:#fff;padding:0 30px;display:flex;justify-content:space-between;align-items:center;height:80px;position:sticky;top:0;z-index:1000;box-shadow:0 2px 10px #00000026}.app-logo{height:60px;width:auto;scale:1.5;transition:transform .2s ease-in-out}.app-logo:hover{transform:scale(1.05)}.logo-container{display:flex;align-items:center;text-decoration:none;border:none;background:transparent}.user-controls{display:flex;align-items:center;gap:15px}.loading-placeholder{min-width:250px;height:40px}.user-controls span{font-weight:700;margin-right:5px}.error-message{color:#dc3545;background:#fef2f2;padding:10px;border-radius:8px;font-weight:600;text-align:center;margin:10px 0}.success-message{color:#166534;font-weight:600;text-align:center;margin:10px 0}.logged-out-message{color:red}.planner-button,.logout-button,.submit-button,.secondary-button,.link-button,.cta-button{padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;border:none;text-decoration:none;display:inline-block;text-align:center}.planner-button{background-color:#0077b6;color:#fff!important}.planner-button:hover{background-color:#005f93}.logout-button{background-color:#dc3545;color:#fff}.logout-button:hover{background-color:#c82333}.submit-button{background-color:#00b4d8;color:#fff;width:100%;font-size:1.2rem;margin-top:10px;height:50px}.submit-button:hover:not(:disabled){background-color:#0096c7}.submit-button:disabled{background-color:#adb5bd;cursor:not-allowed}.secondary-button{background:transparent;border:1px solid #ced4da;color:#6c757d}.secondary-button:hover{background-color:#e9ecef;color:#495057}.initial-loader-container{height:100vh;width:100vw;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#162c49;color:#fff;font-family:Inter,sans-serif;overflow:hidden}.loader-logo{height:100px;width:auto;margin-bottom:25px;animation:pulseLogo 2s infinite ease-in-out}.loader-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-left-color:#00b4d8;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loader-text{font-size:1.1rem;font-weight:500;letter-spacing:.5px;opacity:.9}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseLogo{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:.8}}.loading-spinner{width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #0077b6;border-radius:50%;animation:spin 1s linear infinite}.global-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10000;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;animation:fadeIn .3s ease}.loading-spinner-large{width:60px;height:60px;border:6px solid #e2e8f0;border-top-color:#0077b6;border-radius:50%;animation:spin 1s linear infinite}.loading-text-main{font-weight:700;font-size:1.25rem;color:#1e293b;margin:0}.loading-text-sub{color:#64748b;font-size:.95rem;margin:0}@media(max-width:768px){.app-header{height:auto;padding:15px;flex-direction:column;gap:12px;align-items:center}.app-logo{height:80px;scale:1;margin-bottom:10px}.user-controls{width:100%;justify-content:center;gap:10px;flex-wrap:wrap}.user-controls span{display:none!important}.planner-button,.logout-button{padding:10px 15px;font-size:.9rem;flex:1;min-width:120px;white-space:nowrap}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;min-width:320px;max-width:450px;padding:16px;border-radius:12px;background:#fff;box-shadow:0 10px 25px #00000026;display:flex;flex-direction:column;overflow:hidden;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);border-left:6px solid #ccc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2}.toast-container.visible{transform:translate(0);opacity:1}.toast-container.hidden{transform:translate(120%);opacity:0}.toast-content{display:flex;align-items:flex-start;gap:12px;position:relative}.toast-icon{font-size:1.5rem;line-height:1}.toast-message{flex:1;color:#1e293b;font-weight:500;font-size:.95rem;line-height:1.4;white-space:pre-line}.toast-close{background:none;border:none;color:#94a3b8;font-size:1.5rem;cursor:pointer;line-height:1;padding:0;margin-top:-4px;transition:color .2s}.toast-close:hover{color:#475569}.toast-success{border-left-color:#22c55e}.toast-error{border-left-color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:#0000001a;width:100%;transform-origin:left;animation:toast-progress linear forwards}.toast-success .toast-progress{background:#22c55e}.toast-error .toast-progress{background:#ef4444}.toast-warning .toast-progress{background:#f59e0b}.toast-info .toast-progress{background:#3b82f6}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:480px){.toast-container{left:20px;right:20px;min-width:0}}.auth-wrapper{width:100%;display:flex;justify-content:center;margin-top:40px}.auth-container{max-width:450px;width:100%;padding:40px;background:#fff;border-radius:12px;box-shadow:0 10px 25px #0000000d;text-align:center;animation:fadeIn .3s ease-out}.auth-header{color:#0077b6;margin-bottom:25px;font-size:2em}.auth-form{display:flex;flex-direction:column;gap:8px}.switch-auth{margin-top:20px;font-size:.95em;color:#495057}.link-button{background:none;border:none;color:#0077b6;padding:0 5px;text-decoration:underline;width:auto}.link-button:hover{color:#005f93}.error-message{color:#d00000;background:#fff5f5;padding:10px;border-radius:6px;margin-top:15px;font-size:.9em;border:1px solid #ffc9c9}.success-message{color:#2b9348;background:#f1f9f1;padding:10px;border-radius:6px;margin-top:15px;font-size:.9em;border:1px solid #d4edda}.input-style{padding:12px 14px;border:1px solid #ced4da;border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;transition:border-color .2s,box-shadow .2s;outline:none}.input-style:focus{border-color:#0077b6;box-shadow:0 0 0 3px #0077b626}.input-style::placeholder{color:#adb5bd}.field-error{color:#d00000;font-size:.8em;text-align:left;margin-top:-4px;margin-bottom:8px;padding-left:5px;animation:fadeIn .2s ease-in}.input-style.error{border-color:#d00000;background-color:#fff8f8}.forgot-password-container{text-align:right;margin-top:-5px}.forgot-password-btn{font-size:.85em}.error-message-top{margin-top:0;margin-bottom:5px}.submit-btn-mt{margin-top:10px}.auth-spinner{margin:20px auto;border:4px solid #f3f3f3;border-top:4px solid #0077b6;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.auth-icon-mb{margin-bottom:20px}.auth-text-mb{margin-bottom:25px}.auth-error-heading{color:#dc3545}.auth-success-text-lg{margin-bottom:25px;font-size:1.1em}.error-boundary-wrapper{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem;font-family:Inter,system-ui,-apple-system,sans-serif}.error-boundary-glass{background:#ffffffb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:580px;width:100%;padding:4rem 3rem;border-radius:32px;border:1px solid rgba(220,38,38,.1);box-shadow:0 25px 50px -12px #dc262614;text-align:center;animation:slideUpScale .7s cubic-bezier(.16,1,.3,1)}.error-boundary-illustration{margin-bottom:2rem;position:relative;display:flex;justify-content:center;align-items:center}.error-icon{color:#dc2626;z-index:2;animation:shake 4s ease-in-out infinite}.error-icon svg{width:90px;height:90px;filter:drop-shadow(0 8px 16px rgba(220,38,38,.2))}.error-pulse-ring{position:absolute;width:120px;height:120px;border:2px solid rgba(220,38,38,.2);border-radius:50%;animation:pulseExpand 3s ease-out infinite;z-index:1}.error-boundary-title{font-size:2.5rem;color:#1e293b;margin:0 0 1rem;font-weight:850;letter-spacing:-1.2px}.error-boundary-message{color:#475569;margin-bottom:2.5rem;line-height:1.8;font-size:1.15rem;max-width:90%;margin-left:auto;margin-right:auto}.error-boundary-actions{display:flex;justify-content:center;gap:1.2rem}.error-btn{display:inline-flex;align-items:center;padding:.9rem 2rem;border-radius:16px;font-weight:700;font-size:1.05rem;transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;cursor:pointer;border:none}.error-btn.primary{background:#dc2626;color:#fff;box-shadow:0 10px 20px -5px #dc26264d}.error-btn.primary:hover{transform:translateY(-4px);box-shadow:0 15px 30px -8px #dc262666;filter:brightness(1.1)}.error-btn.secondary{background:#fff;color:#475569;border:1px solid rgba(71,85,105,.15)}.error-btn.secondary:hover{background:#47556908;transform:translateY(-4px)}.error-details{margin-top:2rem;text-align:left;border-top:1px solid rgba(0,0,0,.05);padding-top:1.5rem}.error-details summary{cursor:pointer;color:#94a3b8;font-size:.9rem;font-weight:600}.error-details pre{background:#f8fafc;padding:1rem;border-radius:12px;font-size:.85rem;overflow-x:auto;margin-top:10px;color:#dc2626}@keyframes shake{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@media(max-width:640px){.error-boundary-glass{padding:3rem 1.5rem;border-radius:24px}.error-boundary-title{font-size:2rem}.error-boundary-actions{flex-direction:column;gap:.8rem}.error-btn{width:100%;justify-content:center}}.not-found-container{display:flex;align-items:center;justify-content:center;min-height:85vh;padding:2rem;font-family:Inter,system-ui,-apple-system,sans-serif;background:radial-gradient(circle at 10% 20%,rgba(0,180,216,.08) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(0,119,182,.12) 0%,transparent 40%);background-color:var(--app-bg-color)}.not-found-glass{background:#ffffffb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:580px;width:100%;padding:5rem 3rem;border-radius:32px;border:1px solid rgba(255,255,255,.4);box-shadow:0 25px 50px -12px #00000014;text-align:center;position:relative;overflow:hidden;animation:slideUpScale .7s cubic-bezier(.16,1,.3,1)}.not-found-illustration{margin-bottom:2.5rem;position:relative;display:flex;justify-content:center;align-items:center}.compass-icon{color:#0077b6;z-index:2;animation:rotateCompass 8s ease-in-out infinite}.compass-icon svg{width:110px;height:110px;filter:drop-shadow(0 8px 16px rgba(0,119,182,.2))}.pulse-ring{position:absolute;width:140px;height:140px;border:2px solid rgba(0,180,216,.3);border-radius:50%;animation:pulseExpand 3s ease-out infinite;z-index:1}.not-found-title{font-size:8.5rem;font-weight:950;letter-spacing:-6px;background:linear-gradient(135deg,#162c49,#0077b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0;line-height:.8;opacity:.9}.not-found-subtitle{font-size:2.2rem;color:#1e293b;margin:1.5rem 0 1rem;font-weight:800;letter-spacing:-.8px}.not-found-text{color:#475569;margin-bottom:3rem;line-height:1.8;font-size:1.15rem}.not-found-path{background:#0077b614;padding:4px 10px;border-radius:6px;font-family:inherit;font-weight:600;color:#0077b6}.not-found-actions{display:flex;justify-content:center;gap:1.2rem}.not-found-btn{display:inline-flex;align-items:center;padding:1rem 2rem;border-radius:16px;font-weight:700;font-size:1.05rem;transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;cursor:pointer}.not-found-btn.primary{background:#162c49;color:#fff!important;box-shadow:0 10px 20px -5px #162c494d}.not-found-btn.primary:hover{transform:translateY(-4px);box-shadow:0 15px 30px -8px #162c4966;filter:brightness(1.2)}.not-found-btn.secondary{background:#fff;color:#162c49;border:1px solid rgba(22,44,73,.15)}.not-found-btn.secondary:hover{background:#162c4908;transform:translateY(-4px)}@keyframes slideUpScale{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rotateCompass{0%,to{transform:rotate(-5deg)}50%{transform:rotate(15deg)}}@keyframes pulseExpand{0%{transform:scale(.8);opacity:.8}to{transform:scale(1.6);opacity:0}}@media(max-width:640px){.not-found-glass{padding:3.5rem 1.5rem;border-radius:24px}.not-found-title{font-size:6rem}.not-found-subtitle{font-size:1.7rem}.not-found-actions{flex-direction:column;gap:.8rem}.not-found-btn{width:100%;justify-content:center}}.autocomplete-wrapper{position:relative;width:100%}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#2d3748;border:1px solid #4a5568;border-radius:.5rem;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 10px 15px -3px #00000080;margin-top:5px}.suggestion-item{padding:10px 15px;cursor:pointer;border-bottom:1px solid #4a5568;color:#e2e8f0;transition:background-color .2s;text-align:left}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{background-color:#4a5568}.suggestion-item.loading,.suggestion-item.no-results{color:#a0aec0;cursor:default;font-style:italic;background-color:transparent}.suggestion-main{font-weight:600;font-size:.95rem}.suggestion-sub{font-size:.8rem;color:#cbd5e0;margin-top:2px}.hotel-selector-container{max-width:1200px;margin-top:30px;animation:fadeIn .3s ease-in}.hotel-selector-header{text-align:center;margin-bottom:25px}.hotel-selector-header-info{color:#666}.hotel-selector-footer{margin-top:40px;padding-top:30px;border-top:1px solid #e2e8f0;display:flex;gap:15px;width:100%;align-items:stretch}.hotel-selector-nav-group{display:contents}.hotels-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;max-height:55vh;overflow-y:auto;scrollbar-gutter:stable;padding:15px 25px;background-color:#f8f9fa;border-radius:12px;border:1px solid #e9ecef;box-sizing:border-box}.hotels-grid::-webkit-scrollbar{width:8px}.hotels-grid::-webkit-scrollbar-track{background:transparent}.hotels-grid::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;border:2px solid #ffffff}.hotel-selector-footer button{flex:1 1 0;min-width:0;min-height:50px;height:auto!important;margin:0!important;width:100%;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;white-space:normal;text-align:center;padding:10px}.secondary-button{background-color:#0ea5e9;color:#fff}.secondary-button:hover{background-color:#0284c7;transform:translateY(-1px);color:#fff}.submit-button{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b98133}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 15px #10b9814d}.hotel-card{display:flex;flex-direction:column;width:100%;box-sizing:border-box;background:#fff;border:1px solid #dee2e6;border-radius:10px;overflow:hidden;cursor:pointer;position:relative;transition:transform .2s cubic-bezier(.2,0,.2,1);content-visibility:auto;contain-intrinsic-size:1px 400px}.hotel-card:hover{transform:translateY(-4px)}.hotel-card.selected{border:2px solid #0077b6;background-color:#e3f2fd}.selected-hotel-wrapper .hotel-card.selected{width:100%;max-width:800px;margin:0 auto 20px}.hotel-image-container{height:180px;width:100%;position:relative;background-color:#e9ecef;overflow:hidden}.selected-hotel-wrapper .hotel-image-container{height:400px}.hotel-image-container img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.hotel-card:hover .hotel-image-container img{transform:scale(1.05)}.hotel-rating-badge{position:absolute;top:10px;left:10px;background-color:#003580;color:#fff;padding:5px 8px;border-radius:6px;font-weight:700;font-size:.9em;box-shadow:0 2px 4px #0003}.hotel-details{padding:15px;display:flex;flex-direction:column;flex:1;justify-content:space-between}.hotel-info-block{min-height:120px;display:flex;flex-direction:column}.hotel-details h3{margin:0 0 10px;font-size:1.1em;color:#343a40;line-height:1.3}.hotel-reviews{font-size:.85em;color:#6c757d;margin-bottom:5px}.hotel-distance-label{font-size:.85rem;font-weight:600;color:#0369a1;background:#f0f9ff;padding:4px 8px;border-radius:6px;display:inline-block;margin-bottom:12px;border:1px solid #bae6fd}.hotel-price-section{margin-top:auto;padding-top:10px;border-top:1px solid #f1f3f5}.price-label{font-size:.75em;color:#868e96;display:block}.price-value{font-size:1.2em;font-weight:800;color:#0077b6}.nightly-price{font-size:.8em;color:#adb5bd}.hotel-actions{margin-top:15px;display:flex;justify-content:space-between;align-items:center}.booking-link{font-size:.85em;color:#0077b6;text-decoration:none;font-weight:600}.booking-link:hover{text-decoration:underline}.hotel-actions button{padding:6px 12px;border-radius:4px;font-size:.9em;font-weight:600;border:1px solid #0077b6;background-color:#fff;color:#0077b6;cursor:pointer;transition:transform .2s ease}.hotel-card.selected .hotel-actions button{background-color:#0077b6;color:#fff}.hotel-selector-empty-state{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:500px;margin:0 auto}.empty-state-actions{display:flex;flex-direction:column;gap:12px;width:100%}.empty-state-actions button{width:100%;padding:14px 20px;font-size:1rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:all .2s ease}.empty-state-actions button:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.empty-state-actions .submit-button{background:linear-gradient(135deg,#10b981,#059669)}.hotel-selector-empty{text-align:center;padding:50px 20px;background:#fff;border-radius:12px}.hotel-selector-empty-icon{font-size:3rem;margin-bottom:20px}.hotel-selector-empty-text{color:#666;margin-bottom:30px}.empty-state-nav{justify-content:center}.manual-address-container{max-width:500px;margin:30px auto 0;text-align:left;background:#f8fafc;padding:20px;border-radius:8px;border:1px solid #e2e8f0}.manual-address-relative{position:relative}.confirm-address-btn{margin-top:10px;width:100%;background:#003580;font-size:.9rem}.cancel-address-btn{background:none;border:none;color:#64748b;font-size:.85rem;cursor:pointer;margin-top:10px;text-decoration:underline;width:100%;text-align:center;display:block}.hotel-image-preset{height:180px;width:100%;overflow:hidden}.hotel-card-img{width:100%;height:100%;object-fit:cover}.price-unavailable-text{font-size:1.1rem;color:#7f8c8d;margin-top:5px}.loading-box{text-align:center;padding:100px 20px;background:#fff;border-radius:12px}.loading-box-spinner{margin:0 auto 20px}.loading-box-text{color:#666}.sorting-container{margin-bottom:25px;display:flex;flex-wrap:wrap}@media(min-width:992px){.hotels-grid{grid-template-columns:repeat(4,1fr)}}.selected-hotel-wrapper{margin-bottom:30px}.hotel-rating-max{font-size:.7em;opacity:.8}.hotel-role-badge{display:flex;align-items:center;gap:5px;margin-bottom:8px}.hotel-role-label{font-weight:700;text-transform:uppercase}.hotel-reviews-status{font-weight:600;color:#003580}.hotel-fallback-status{font-weight:600;color:#64748b}.price-value.price-unavailable{font-size:1rem;color:#7f8c8d}.booking-link.hotel-booking-external-link{margin-top:10px;display:inline-block}@media(max-width:768px){.hotels-grid{grid-template-columns:1fr;padding:10px 10px 100px;max-height:none}.hotel-card{margin-bottom:10px}.hotel-image-container{height:200px}.hotel-actions{flex-direction:column;gap:12px;align-items:stretch;width:100%}.hotel-actions button{width:100%;padding:14px;font-size:1rem}.booking-link{text-align:center;padding:5px 0}.hotel-selector-footer{flex-direction:column;gap:10px;padding:20px 15px}.hotel-selector-footer button{width:100%!important}.selected-hotel-wrapper .hotel-card.selected{width:100%!important;max-width:100%!important;margin:0 auto!important}.selected-hotel-wrapper .hotel-image-container{width:100%!important;max-width:100%!important;margin:0 auto!important;height:auto!important;min-height:120px!important;aspect-ratio:16 / 9}}.btn-core{border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-core:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-full{width:100%}.btn-primary{background-color:#0077b6;color:#fff;box-shadow:0 4px 12px #0077b633}.btn-primary:active{transform:translateY(1px)}.btn-primary:hover:not(:disabled){background-color:#023e8a}.btn-secondary{background-color:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background-color:#e2e8f0}.btn-success{background-color:#00af87;color:#fff;box-shadow:0 4px 12px #00af8733}.btn-success:hover:not(:disabled){background-color:#009673}.btn-outline{background-color:transparent;color:#0077b6;border:1px solid #0077b6}.btn-outline:hover:not(:disabled){background-color:#f0f8ff}.btn-danger{background-color:transparent;color:#e74c3c;border:1px solid #e74c3c}.btn-danger:hover:not(:disabled){background-color:#e74c3c;color:#fff}.btn-text{background-color:transparent;color:#64748b}.btn-text:hover:not(:disabled){color:#0f172a;text-decoration:underline}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-md{padding:10px 20px;font-size:.95rem}.btn-lg{padding:14px 28px;font-size:1.05rem}.planner-main-wrapper{display:flex;justify-content:center;align-items:center;padding:20px;min-height:100vh;width:100%;background-color:var(--app-bg-color)}@media print{.planner-main-wrapper{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.trip-planner-container{max-width:800px;width:100%;padding:40px;background:#f1f5f9;border-radius:12px;box-shadow:0 10px 25px #0000000d;position:relative;min-height:800px}.trip-planner-container h1{font-size:3rem;font-weight:800;text-align:center}.search-form{display:flex;flex-direction:column;gap:20px}.form-group-grid{display:grid;gap:15px}@media(min-width:768px){.form-group-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media(max-width:768px){.planner-main-wrapper{padding:10px;overflow-x:hidden}.trip-planner-container{padding:15px 10px;border-radius:8px;min-height:auto}.triple-grid{grid-template-columns:1fr}}.error-message{color:#dc2626;background:#fef2f2;padding:12px 16px;border-radius:8px;border-left:4px solid #dc2626;text-align:left;margin-bottom:20px;white-space:pre-line;font-size:.95rem;line-height:1.5}.input-error{border-color:#dc2626!important;background-color:#fef5f5!important}.input-error:focus{border-color:#dc2626!important;box-shadow:0 0 0 3px #dc26261a!important}.field-error-text{color:#dc2626;font-size:.85rem;margin-top:4px;display:block;font-weight:500}.logged-out-message{color:red;text-align:center}.input-with-label label{display:block;margin-bottom:5px;font-weight:600;color:#495057}.input-style,select{width:100%;padding:12px;box-sizing:border-box;border-radius:6px;border:1px solid #ced4da;font-size:1rem;background-color:#fff}.input-style:focus,select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-days-info{color:#666;margin-top:4px;display:block;font-size:.9em}.text-warning-red{color:#dc2626!important;font-weight:600}.slider-container{display:flex;flex-direction:column;gap:5px;margin:10px 0}.slider-input{accent-color:#2563eb;width:100%;height:6px;cursor:pointer}.slider-min-max{display:flex;justify-content:space-between;font-size:.8rem;color:#6c757d}.slider-value{color:#0077b6;font-weight:700;text-align:center;margin-top:5px}.mix-match-header{box-shadow:0 2px 4px #0000000d}.steps-nav{display:flex;align-items:center;gap:10px}.step-badge{background:#e2e8f0;color:#64748b;padding:6px 12px;border-radius:20px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.step-badge.active{background:#0077b6;color:#fff}.step-badge.completed{background:#00af87;color:#fff}.step-arrow{color:#cbd5e1;font-weight:700}.total-box{display:flex;flex-direction:column;align-items:flex-end}.total-label{font-size:.8rem;color:#666;text-transform:uppercase;font-weight:700;letter-spacing:.5px}.total-value{font-size:1.2rem;color:#2c3e50;font-weight:800}.flight-item-card.selected-card{border-color:#0056b3;background-color:#f8fbff;transform:scale(1.01);box-shadow:0 4px 12px #0056b326}.select-button.selected-btn{background-color:#004494}.selector-footer{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fab-save-button{position:fixed;bottom:30px;right:30px;z-index:1000;background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:16px 24px;border-radius:30px;font-weight:700;font-size:16px;box-shadow:0 4px 15px #10b98166;border:none;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.fab-save-button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px #10b98180}.fab-save-button:active:not(:disabled){transform:translateY(1px)}.selector-mobile-fab-container{display:none}@media(max-width:768px){.selector-mobile-fab-container{display:flex;position:fixed;bottom:20px;left:20px;right:20px;z-index:1001;pointer-events:none;justify-content:center;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.selector-mobile-fab{pointer-events:auto;width:100%;max-width:500px;height:64px;border-radius:32px;border:none;color:#fff;font-weight:800;font-size:1.1rem;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 10px 25px #00000040;cursor:pointer;transition:all .2s}.selector-mobile-fab:active{transform:scale(.96)}.selector-mobile-fab.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.selector-mobile-fab.btn-success{background:linear-gradient(135deg,#10b981,#059669)}}@keyframes slideUp{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.fab-save-button:disabled{background-color:#94a3b8;cursor:not-allowed;box-shadow:none}.loading-spinner-large{width:70px;height:70px;border:6px solid #e2e8f0;border-top:6px solid #0077b6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:25px}.loading-text-main{font-size:1.6rem;font-weight:800;color:#1e293b;margin:0 0 10px;text-align:center}.loading-text-sub{color:#64748b;font-size:1.1rem;text-align:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.flight-sorting-row{display:flex;align-items:center;gap:15px;background:#fff;padding:12px 20px;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:20px;border:1px solid #e2e8f0}.sort-label{font-size:.9rem;font-weight:600;color:#64748b;white-space:nowrap}.sort-buttons{display:flex;gap:8px;flex-wrap:wrap}.sort-tab{background:#f8fafc;border:1px solid #e2e8f0;padding:6px 16px;border-radius:20px;font-size:.85rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.sort-tab:hover{background:#f1f5f9;border-color:#cbd5e1;color:#1e293b}.sort-tab.active{background:#0077b6;border-color:#0077b6;color:#fff;box-shadow:0 4px 10px #0077b633}.flight-item-card{animation:slideUpFade .4s ease-out backwards}@keyframes slideUpFade{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.unified-flight-display{display:flex;flex-direction:column;gap:15px;width:100%}.stops-label-unified{margin-left:5px;font-size:.8rem;color:#666}.flight-legs-wrapper{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;margin-top:5px}.flight-legs-list{display:flex;flex-direction:column;gap:12px;flex-grow:1}.flight-price-embedded{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:120px;padding-left:15px;border-left:1px solid #eee}.flight-price-large{font-size:2rem;font-weight:800;color:#212121;text-align:center;margin-bottom:10px}.flight-leg-row{display:flex;align-items:center;justify-content:space-between;background:#f8f9fa;padding:8px 12px;border-radius:6px;font-size:.9rem}.leg-segment-info{display:flex;flex-direction:column;min-width:120px}.leg-airline{font-weight:600}.leg-number{color:#666;font-size:.8rem}.leg-times{display:flex;align-items:center;gap:10px}.port-code{font-weight:700;color:#0d47a1}.arrow{color:#999;font-size:.8rem}.leg-duration{color:#666;font-style:italic;min-width:60px;text-align:right}.flight-card{border:1px solid #4285f4;background-color:#f0f8ff;padding:20px;margin:10px auto;border-radius:8px;display:flex;flex-direction:column;gap:10px;max-width:758px}.flight-card:hover{transform:translateY(-3px);box-shadow:0 10px 20px #0000001a}.flight-card-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.flight-card-title{margin:0 0 5px;color:#003580;font-size:2rem;font-weight:800}.flight-card-route{margin:0;font-size:14px;font-weight:500}.flight-card-info{margin:5px 0 0;font-size:12px;color:#666}.flight-card-link{display:inline-block;padding:10px 20px;background-color:#4285f4;color:#fff;text-decoration:none;border-radius:6px;font-weight:700;font-size:14px;text-align:center;min-width:150px}.flight-card-link:hover{background-color:#2a6adf;transform:translateY(-2px)}.flights-list{display:flex;flex-direction:column;gap:15px}.flight-item-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:15px;display:flex;flex-direction:column;gap:10px;position:relative;transition:transform .2s,box-shadow .2s}.flight-item-card:hover{transform:translateY(-2px);box-shadow:0 5px 15px #00000014;border-color:#b0c4de}.best-flight{border:1px solid #4CAF50;background-color:#f9fff9}.flight-tag{position:absolute;top:-10px;left:10px;background:#4caf50;color:#fff;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:700}.flight-main-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.airline-section{display:flex;align-items:center;gap:10px;min-width:150px}.airline-logo{width:30px;height:30px;object-fit:contain}.airline-name{font-weight:600;font-size:1.1rem}.flight-times{display:flex;align-items:center;gap:20px;flex-grow:1;justify-content:center}.time-box{display:flex;flex-direction:column;align-items:center}.time-hour{font-weight:700;font-size:1.1rem}.time-label{font-size:.75rem;color:#757575}.flight-duration-line{display:flex;flex-direction:column;align-items:center;min-width:100px}.duration-text{font-size:.8rem;color:#555;margin-bottom:2px}.line-graphic{width:100%;height:2px;background:#ccc;position:relative}.line-graphic:after{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(90deg);font-size:.8rem;color:#ccc}.stops-text{font-size:.75rem;color:#d32f2f;margin-top:2px}.flight-price-section{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:120px}.flight-price{font-size:1.25rem;font-weight:800;color:#212121}.select-button{background-color:#0077b6;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}.select-button:hover{background-color:#023e8a}.details-link{font-size:.85rem;color:#0077b6;text-decoration:none;align-self:flex-end}.details-link:hover{text-decoration:underline}@media print{.flight-card{border-color:#ccc!important;background-color:#fff!important;box-shadow:none!important}.flight-leg-row{background:#fff!important;border:1px solid #ddd}.flight-card-link{display:none!important}}.flight-direction-header{font-size:1.5rem;font-weight:700;color:#444;margin-top:5px;margin-bottom:2px;padding-left:2px;text-transform:uppercase;letter-spacing:.5px;display:flex;justify-content:space-between;align-items:center}.fallback-content{padding:10px 0}.airline-section-fallback{margin-bottom:10px}.airline-name-fallback{font-weight:700;font-size:1.2rem}.fallback-description{font-size:.9rem;color:#555;margin-bottom:15px}.flight-price-embedded-fallback{justify-content:flex-start;gap:20px}.section-header-block{margin-bottom:5px}.stops-badge{font-size:.8rem;font-weight:400;color:#666;background:#f0f0f0;padding:2px 10px;border-radius:12px}.airline-section-leg{padding-left:2px;margin-bottom:8px;margin-top:12px}.leg-times-wrapper{display:flex;flex-direction:column;align-items:center;flex-grow:1}.leg-airport-names{display:flex;justify-content:space-between;width:100%;font-size:.75rem;color:#666;margin-top:2px;gap:10px}.leg-airport-departure{text-align:right;flex:1}.leg-airport-spacer{flex:.2}.leg-airport-arrival{text-align:left;flex:1}.loading-subtitle{font-size:.9em;color:#666}.warnings-box{background-color:#fff3cd;color:#856404;padding:10px 15px;border-radius:6px;margin-bottom:15px;border:1px solid #ffeeba;font-size:.9rem}.empty-state-card{text-align:center;padding:30px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d}.empty-state-border{border:1px solid #ffeeba}.empty-state-heading{font-size:1.2rem;font-weight:600;color:#c2410c;margin-bottom:15px}.empty-state-heading-sm{font-size:1.15rem;font-weight:600;color:#c2410c;margin-bottom:10px}.empty-state-text{color:#64748b;margin-bottom:25px;line-height:1.6}.empty-state-text-mb20{margin-bottom:20px}.flex-col-center{display:flex;flex-direction:column;gap:20px;align-items:center}.flex-col-center-sm{gap:12px}.primary-btn-link{background:#0077b6;color:#fff;padding:14px 40px;border-radius:30px;text-decoration:none;font-weight:700;box-shadow:0 4px 12px #0077b633;display:inline-block}.primary-btn-action{background:#00af87;color:#fff;padding:12px 28px;border-radius:8px;border:none;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #00af8733}.flex-row-gap15{display:flex;gap:15px;margin-top:10px}.sec-btn-lg{height:48px;min-width:180px}.sec-btn-md{height:48px;min-width:120px}.small-muted-text{color:#94a3b8;font-size:.85rem;margin:5px 0}.flight-card-selected{border-color:#2ecc71!important;background-color:#f0fff4!important}.mt-10{margin-top:10px}.flight-action-row{margin-top:15px;display:flex;justify-content:center;gap:15px}.btn-blue-flex{background-color:#0077b6!important;flex:1;text-align:center}.btn-green-flex{background-color:#00af87!important;flex:1;text-align:center}.btn-green{background-color:#27ae60!important}.mix-match-header{background:#f5f7fa;padding:15px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.selector-heading{font-size:1.1rem;margin-bottom:15px}.py-40{padding:40px 0}.selected-card{border:2px solid #0056b3!important;background:#eef6fc!important}.action-col-end{display:flex;flex-direction:column;gap:5px;align-items:flex-end}.selected-btn{background:#004494!important}.google-sm-link{font-size:.75rem;color:#0077b6;text-decoration:none}.selector-footer{margin-top:20px;border-top:1px solid #eee;padding-top:20px;display:flex;justify-content:space-between;align-items:center}.flex-row-gap15-nomargin{display:flex;gap:15px}.btn-dynamic-submit{color:#fff;padding:12px 24px;border-radius:8px;border:none;font-size:1rem;font-weight:600;transition:all .3s ease}.btn-dynamic-submit:disabled{background:#cbd5e1!important;cursor:not-allowed}.btn-dynamic-outbound:not(:disabled){background:#0077b6;cursor:pointer}.btn-dynamic-return:not(:disabled){background:#00af87;cursor:pointer}.mb-20{margin-bottom:20px}@media(max-width:768px){.flight-legs-wrapper{flex-direction:column;align-items:stretch;gap:15px}.flight-price-embedded{border-left:none;border-top:1px solid #eee;padding-left:0;padding-top:15px;align-items:center;width:100%;min-width:100%}.flight-price-large{font-size:1.5rem;margin-bottom:5px}.select-button,.btn-blue-flex,.btn-green-flex{width:100%!important;display:block!important;padding:12px!important;font-size:1rem!important}.flight-action-row{width:100%;flex-direction:column;align-items:center;margin-top:10px;gap:8px}.google-sm-link,.details-link{width:100%;text-align:center;word-break:break-all;padding:8px 0;display:block}.flight-main-info{flex-direction:column;align-items:stretch;width:100%;box-sizing:border-box}.flight-item-card{margin-left:0!important;margin-right:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box;border-radius:12px}.airline-section{width:100%;justify-content:center;margin-bottom:10px}.flight-times{width:100%;justify-content:center;gap:8px!important;font-size:.85rem!important}.leg-airport-names{flex-direction:column!important;gap:2px!important;align-items:center!important;margin-top:4px!important}.leg-airport-departure,.leg-airport-arrival{text-align:center!important;width:100%!important;display:block!important;white-space:normal!important;font-size:.75rem!important}.leg-times-wrapper{width:100%!important;flex-grow:1;overflow:hidden}.flight-leg-row{flex-direction:column!important;padding:12px 8px!important;gap:8px!important}.leg-segment-info{width:100%!important;text-align:center!important;min-width:0!important}.leg-duration{width:100%!important;text-align:center!important;font-weight:700!important;margin-top:5px}.selector-footer{flex-direction:column!important;gap:12px!important;padding:20px 10px!important;align-items:stretch!important;width:100%;box-sizing:border-box}.selector-footer button,.flex-row-gap15-nomargin,.flex-row-gap15-nomargin button{width:100%!important;flex:none!important;margin:0!important}.flex-row-gap15-nomargin{flex-direction:column;gap:10px}.flights-list{padding-bottom:100px}}:root{--c-slate-800: #1e293b;--c-slate-500: #64748b;--c-white: #ffffff;--c-blue-500: #3b82f6;--c-blue-bg: #dbeafe;--c-blue-border: #93c5fd;--c-orange-500: #f97316;--c-orange-700: #c2410c;--c-orange-bg: #fff7ed;--c-orange-border: #fed7aa;--c-green-500: #10b981;--c-green-700: #15803d;--c-green-bg: #f0fdf4;--c-green-border: #bbf7d0;--c-danger: #ef4444;--c-danger-hover: #dc2626;--radius-card: 12px;--radius-dot: 50%;--shadow-drag: 0 12px 18px rgba(0, 0, 0, .12);--timeline-indent: 50px;--timeline-indent-mobile: 25px;--timeline-width: 3px;--z-dot: 10;--z-action: 110;--z-drag: 50;--z-modal: 1000}.trip-schedule-container{max-width:770px;margin:5px;padding:10px}.trip-schedule-day{margin-bottom:50px;contain:layout}.trip-schedule-day-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;color:var(--c-slate-800)}.trip-schedule-day-header-span{background:var(--c-blue-500);color:var(--c-white);width:36px;height:36px;border-radius:8px;display:grid;place-items:center;font-weight:700}.trip-schedule-day-body{position:relative;padding-left:var(--timeline-indent);border-left:var(--timeline-width) solid #e2e8f0;margin-left:20px;display:flex;flex-direction:column}@media(max-width:768px){.trip-schedule-day-body{padding-left:var(--timeline-indent-mobile);margin-left:10px}}.sortable-item-wrapper,.trip-schedule-day-body-start,.trip-schedule-day-body-end{position:relative;padding-bottom:24px}.sortable-item-wrapper[data-dragging=true]{z-index:var(--z-drag);will-change:transform}.activity-card-static,.trip-schedule-day-body-static-content{--theme-bg: var(--c-blue-bg);--theme-border: var(--c-blue-border);--theme-accent: var(--c-blue-500);--theme-text: var(--c-blue-500);background:var(--theme-bg);border:1px solid var(--theme-border);border-radius:var(--radius-card);padding:16px 24px;min-height:100px;display:flex;flex-direction:column;position:relative;overflow:visible!important;transform:translateZ(0);backface-visibility:hidden}.trip-schedule-day-body-static-content,.activity-card-static.static-cursor{cursor:default}.item-main-content{display:flex;justify-content:space-between;align-items:center;flex:1;gap:12px;min-width:0}@media(max-width:480px){.activity-card-static,.trip-schedule-day-body-static-content{padding:10px 4px;min-height:70px}.item-main-content{gap:1px}}.mod-lunch{--theme-bg: var(--c-orange-bg);--theme-border: var(--c-orange-border);--theme-accent: var(--c-orange-500);--theme-text: var(--c-orange-700)}.mod-attraction{--theme-bg: var(--c-green-bg);--theme-border: var(--c-green-border);--theme-accent: var(--c-green-500);--theme-text: var(--c-green-700)}.sortable-item-wrapper[data-dragging=true] .activity-card-static{box-shadow:var(--shadow-drag)}.draggable-item-dot,.trip-schedule-day-body-start-dot,.trip-schedule-day-body-end-dot{position:absolute;left:calc(-1 * var(--timeline-indent) - (var(--timeline-width) / 2));top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:var(--radius-dot);border:none;background:var(--theme-accent, var(--c-blue-500));z-index:var(--z-dot);box-shadow:0 0 0 1px #0000000d;transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.draggable-item-dot{-webkit-user-select:none;user-select:none;pointer-events:none}.draggable-item-dot.is-sortable{cursor:grab;touch-action:none;pointer-events:auto}.draggable-item-dot.is-dragging{cursor:grabbing;transform:translate(-50%,-50%) scale(1.5)!important;z-index:100;box-shadow:0 0 20px #00000040;border:4px solid white!important}@media(max-width:768px){.draggable-item-dot,.trip-schedule-day-body-start-dot,.trip-schedule-day-body-end-dot{left:calc(-1 * var(--timeline-indent-mobile) - (var(--timeline-width) / 2));width:24px;height:24px;border:none}.draggable-item-dot:after{content:"";position:absolute;top:-20px;bottom:-20px;left:-20px;right:-20px}}.trip-schedule-day-body-start-dot,.trip-schedule-day-body-end-dot{background:var(--c-blue-500);border:none}.item-icon-wrapper{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--theme-text)}@media(max-width:480px){.item-icon-wrapper{width:20px;height:20px}.item-icon-wrapper svg{width:20px;height:20px}}.draggable-item-info,.item-info{display:flex;gap:12px;align-items:center;flex:1;min-width:0}@media(max-width:480px){.draggable-item-info,.item-info{gap:4px}}.item-name{margin:0;font-size:1.2rem;font-weight:800;color:var(--c-slate-800);line-height:1.2;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;word-break:normal}@media(max-width:480px){.item-name{font-size:1.05rem;line-height:1.1}}.item-type-label{font-size:1.25rem;font-weight:800;text-transform:uppercase;color:var(--theme-text);letter-spacing:.5px;margin-bottom:2px}@media(max-width:480px){.item-type-label{font-size:.9rem;letter-spacing:0}}.item-text-stack{display:flex;flex-direction:column;gap:4px}@media(max-width:480px){.item-text-stack{gap:2px}}.item-details{text-align:right;flex-shrink:0;min-width:80px}@media(max-width:480px){.item-details{text-align:right;width:auto;border-top:none;padding-top:0;min-width:auto;padding-right:0;margin-right:-3px}}.item-time{font-weight:800;font-size:1.4rem;color:var(--c-slate-800);line-height:1}@media(max-width:480px){.item-time{font-size:1.1rem}}.item-travel-info{font-size:.85rem;font-weight:700;color:var(--c-blue-500);display:flex;align-items:center;gap:4px;justify-content:flex-end;white-space:normal;text-align:right}@media(max-width:480px){.item-travel-info{font-size:.8rem}}.item-footer-content{margin-top:4px;width:100%}.draggable-item-progress-bar{position:relative;height:6px;min-height:6px;background:#00000014;border-radius:10px;overflow:hidden;margin-top:4px;transform:translateZ(0);backface-visibility:hidden}.draggable-item-progress-bar-foreground{height:100%;background:var(--theme-accent);will-change:width;transition:width .3s cubic-bezier(.4,0,.2,1)}.draggable-item-budget-info{display:block;font-size:.8rem;font-weight:700;color:var(--c-slate-500);text-align:center;margin-top:2px}.remove-item-button{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border-radius:50%;background:var(--c-danger);color:var(--c-white);border:2px solid var(--c-white);cursor:pointer;z-index:var(--z-action);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a}.remove-item-button:hover{background:var(--c-danger-hover);transform:scale(1.1)}@media(max-width:480px){.remove-item-button{top:-12px;right:-12px;width:24px;height:24px;border-width:1px}.remove-item-button svg{width:16px;height:16px}}.modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:grid;place-items:center;padding:20px}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;background:var(--c-white);padding:32px;border-radius:24px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #00000040;text-align:center;animation:modalScale .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalScale{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.modal-content h3{margin:0 0 12px;font-size:1.25rem;color:var(--c-slate-800);font-weight:700}.modal-content p{margin:0 0 24px;font-size:.95rem;color:var(--c-slate-500);line-height:1.5}.modal-content b{color:var(--c-slate-800);display:block;margin-top:4px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-cancel-btn,.modal-confirm-btn{padding:12px 16px;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:all .2s}.modal-cancel-btn{background:#f1f5f9;color:var(--c-slate-500)}.modal-cancel-btn:hover{background:#e2e8f0;color:var(--c-slate-800)}.modal-confirm-btn{background:var(--c-danger);color:var(--c-white)}.modal-confirm-btn:hover{background:var(--c-danger-hover);box-shadow:0 4px 12px #ef44444d}@media print{.no-print{display:none!important}@page{size:A4;margin:20px}.trip-schedule-day{break-inside:avoid}.activity-card-static{border:1px solid #e2e8f0!important;background:transparent!important}.draggable-item-dot,.trip-schedule-day-body-start-dot,.trip-schedule-day-body-end-dot{border:3px solid currentColor!important;background:currentColor!important}}.pdf-download-button{display:flex;align-items:center;gap:10px;padding:10px 20px;background:linear-gradient(135deg,var(--c-blue-500) 0%,#2563eb 100%);color:var(--c-white);border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 4px 6px -1px #3b82f633,0 2px 4px -1px #3b82f61a;transition:all .2s cubic-bezier(.4,0,.2,1)}.pdf-download-button svg{transition:transform .2s ease;flex-shrink:0}.pdf-download-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 10px 15px -3px #3b82f64d;transform:translateY(-1px)}.pdf-download-button:hover svg{transform:scale(1.1)}.pdf-download-button:active{transform:translateY(0);box-shadow:0 4px 6px -1px #3b82f633}@media print{html,body,.trip-schedule-container{background-color:#fff!important;margin:0;padding:0}.no-print,.schedule-actions,.remove-item-button{display:none!important}.activity-card-static,.trip-schedule-day-body-static-content{break-inside:avoid!important;page-break-inside:avoid!important;display:flex!important;flex-direction:column!important;border-width:1px!important;border-style:solid!important}.trip-schedule-day-body-static-content{background-color:var(--c-blue-bg)!important;border-color:var(--c-blue-border)!important}.mod-lunch{background-color:var(--c-orange-bg)!important;border-color:var(--c-orange-border)!important}.mod-attraction{background-color:var(--c-green-bg)!important;border-color:var(--c-green-border)!important}.draggable-item-dot,.trip-schedule-day-body-start-dot,.trip-schedule-day-body-end-dot{border:3px solid #ffffff!important;border-radius:50%!important;display:block!important;margin-left:-22.5px;border:2px solid #ffffff!important;background-color:var(--c-blue-bg)!important}.trip-schedule-day-body-start-dot,.trip-schedule-day-body-end-dot{background-color:#3b82f6!important}.mod-lunch .draggable-item-dot{background-color:#f97316!important}.mod-attraction .draggable-item-dot{background-color:#10b981!important}.draggable-item-progress-bar{background-color:#e2e8f0!important;height:6px!important}.draggable-item-progress-bar-foreground{background-color:#3b82f6!important}.mod-lunch .draggable-item-progress-bar-foreground{background-color:#f97316!important}.mod-attraction .draggable-item-progress-bar-foreground{background-color:#10b981!important}.navigate-link-btn{display:inline-block!important;visibility:visible!important;background-color:#3498db!important;color:#fff!important;padding:6px 16px!important;border-radius:6px!important;text-decoration:none!important;font-weight:700!important;font-size:11px!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;margin-top:5px!important}}.final-plan-header{display:flex!important;justify-content:center!important;align-items:center!important;flex-direction:column!important;gap:10px!important;flex-wrap:wrap!important;text-align:center!important;width:100%!important}.selected-hotel-wrapper{position:relative;max-width:800px;margin:10px auto}.change-hotel-btn-overlay{position:absolute;top:15px;right:15px;background:#ffffffe6;border:1px solid var(--c-blue-border);color:var(--c-blue-500);padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0000001a;z-index:10}.change-hotel-btn-overlay:hover{background:var(--c-white);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.pdf-download-button{width:100%;justify-content:center;padding:14px;font-size:1rem;letter-spacing:.5px;background:linear-gradient(135deg,var(--c-blue-500) 0%,#1d4ed8 100%);border-radius:var(--radius-card);box-shadow:0 4px 15px #3b82f64d}.final-plan-header h2{font-size:2rem;font-weight:800;color:var(--c-slate-800);margin-bottom:25px!important}.selected-hotel-center-container{width:100%!important;max-width:800px;margin:0 auto 30px;position:relative}.selected-hotel-summary-container .hotel-main-photo{width:100%!important;max-width:800px!important;height:600px!important;object-fit:cover!important;border-radius:var(--radius-card) var(--radius-card) 0 0}.schedule-actions-bar{width:800px!important;margin:0 auto 30px;display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap}.planner-action-btn{flex:1;min-width:180px;height:54px;display:flex;align-items:center;justify-content:center;gap:10px;border:none;border-radius:14px;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.planner-action-btn:hover{transform:translateY(-2px);filter:brightness(1.1);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.planner-action-btn:active{transform:translateY(0)}.btn-pdf{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 4px 12px #2563eb40}.btn-save{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b98140}.btn-reset{background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 4px 12px #f9731640;border:none;color:#fff}@media(max-width:768px){.schedule-actions-bar{width:100%!important;max-width:100%!important;padding:0 10px;flex-direction:column!important;align-items:center!important;gap:20px!important;margin:20px 0!important}.planner-action-btn{width:100%!important;min-height:80px!important;padding:20px!important;font-size:1.4rem!important;border-radius:20px!important}}.item-details-stack{display:flex;flex-direction:column;align-items:flex-end;gap:6px}@media(max-width:480px){.item-details-stack{flex-direction:column;align-items:flex-end;gap:2px}.navigate-btn{padding:5px 14px;font-size:11px}}.navigate-btn{padding:6px 18px;background-color:var(--c-blue-500);color:#fff;text-decoration:none;border-radius:50px;font-size:12px;font-weight:800;box-shadow:0 4px 6px #0000001a;white-space:nowrap;letter-spacing:.5px}.navigate-btn:hover{background-color:#2980b9}.sortable-cursor-default{cursor:default}.steps-wrapper{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;position:relative;max-width:800px;margin-left:auto;margin-right:auto;padding:0 10px}.step-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1}.step-circle{width:32px;height:32px;border-radius:50%;background-color:#2d3748;color:#e2e8f0;display:flex;justify-content:center;align-items:center;font-weight:700;border:2px solid #4a5568;transition:all .3s;z-index:2}.step-label{margin-top:.5rem;font-size:.85rem;color:#a0aec0;font-weight:500;text-align:center}.step-item.active .step-circle{background-color:#3182ce;border-color:#63b3ed;box-shadow:0 0 0 3px #4299e14d}.step-item.active .step-label{color:#63b3ed;font-weight:700}.step-item.completed .step-circle{background-color:#48bb78;border-color:#48bb78;color:#fff}.step-item.completed .step-label{color:#48bb78}.step-connector{position:absolute;top:16px;left:50%;width:100%;height:2px;background-color:#4a5568;z-index:1;transform:translateY(-50%)}.step-connector.filled{background-color:#48bb78;transition:background-color .4s ease-in-out}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:confirmOverlayIn .2s ease-out}@keyframes confirmOverlayIn{0%{opacity:0}to{opacity:1}}.confirm-modal{background:#fff;border-radius:16px;padding:32px;max-width:440px;width:90%;box-shadow:0 20px 60px #00000040;animation:confirmSlideIn .25s cubic-bezier(.34,1.56,.64,1)}@keyframes confirmSlideIn{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-modal-title{margin:0 0 12px;font-size:1.25rem;font-weight:700;color:#1e293b}.confirm-modal-message{margin:0 0 28px;font-size:.95rem;line-height:1.6;color:#475569}.confirm-modal-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-modal-btn{padding:10px 24px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:all .15s ease}.confirm-modal-btn-cancel{background:#f1f5f9;color:#475569}.confirm-modal-btn-cancel:hover{background:#e2e8f0}.confirm-modal-btn-confirm{background:#0077b6;color:#fff}.confirm-modal-btn-confirm:hover{background:#005f93;box-shadow:0 4px 12px #0077b64d}.confirm-modal-btn-danger{background:#dc2626}.confirm-modal-btn-danger:hover{background:#b91c1c;box-shadow:0 4px 12px #dc26264d}@media(max-width:480px){.confirm-modal{padding:24px}.confirm-modal-actions{flex-direction:column-reverse}.confirm-modal-btn{width:100%;text-align:center}}.user-trips-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:20px;min-height:100vh;width:100%;background-color:var(--app-bg-color);box-sizing:border-box}.user-trips-container{width:100%;max-width:1300px;padding:40px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000014;position:relative;min-height:600px}.trips-grid{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:20px;margin-top:20px}.trip-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 15px #0000000a;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid #f1f5f9;display:flex;flex-direction:column;justify-content:space-between}.trip-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.trip-card h3{margin:0 0 10px;color:#2c3e50;font-size:1.25rem}.trip-info{font-size:.9rem;color:#666;margin-bottom:20px}.trip-info p{margin:4px 0}.trip-actions{display:flex;gap:10px}.btn-view{flex:1;padding:8px 16px;background-color:#3498db;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .2s}.btn-view:hover{background-color:#2980b9}.btn-delete{padding:8px 16px;background-color:transparent;color:#e74c3c;border:1px solid #e74c3c;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.btn-delete:hover{background-color:#e74c3c;color:#fff}.no-trips{text-align:center;padding:40px;color:#666}.loading-container{text-align:center;padding:40px;font-size:1.2rem;color:#666}@media(max-width:768px){.user-trips-container{padding:24px 16px;min-height:auto;box-shadow:none;background:transparent}.trips-grid{grid-template-columns:1fr;gap:16px}.trip-card{padding:20px;box-shadow:0 4px 12px #0000000f;background:#fff}.trip-actions{flex-direction:column;gap:10px;margin-top:20px}.btn-view,.btn-delete{width:100%;padding:14px;font-size:1rem;text-align:center;display:block;box-sizing:border-box}.btn-delete{background-color:#fef2f2;border:1px solid #fee2e2}}
