:root{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}*{box-sizing:border-box}body{margin:0;padding:0}#root{min-height:100vh}.search-form-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem}.search-form-container h2{margin-top:0;color:#212121;font-size:1.8rem;font-weight:700;margin-bottom:1.5rem}.form-section{margin-bottom:2rem}.form-section h3{color:#424242;font-size:1.2rem;font-weight:700;margin-bottom:1rem;border-bottom:2px solid #9e9e9e;padding-bottom:.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:700;margin-bottom:.5rem;color:#333;font-size:.9rem}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#616161;box-shadow:0 0 0 3px #61616126}.search-button{background:linear-gradient(135deg,#1976d2,#2196f3);color:#fff;border:none;padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:6px;cursor:pointer;transition:transform .2s,box-shadow .2s;width:100%}.search-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #2196f366}.search-button:disabled{opacity:.6;cursor:not-allowed}.search-button:active:not(:disabled){transform:translateY(0)}.flight-results{margin-bottom:2rem}.flight-results h2{color:#212121;margin-bottom:1.5rem;font-size:1.8rem;font-weight:700}.ai-recommendation{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#212121;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 4px 6px #2196f333}.ai-recommendation h3{margin-top:0;margin-bottom:.75rem;font-size:1.2rem;font-weight:700;color:#1565c0}.ai-recommendation p{margin:0;line-height:1.6;opacity:.95}.ai-recommendation .markdown-content{color:#212121}.ai-recommendation .markdown-content p{color:#424242;opacity:.95;margin-bottom:.75rem}.ai-recommendation .markdown-content p:last-child{margin-bottom:0}.ai-recommendation .markdown-content h1,.ai-recommendation .markdown-content h2,.ai-recommendation .markdown-content h3,.ai-recommendation .markdown-content h4,.ai-recommendation .markdown-content h5,.ai-recommendation .markdown-content h6{color:#1565c0;border-bottom-color:#1565c04d}.ai-recommendation .markdown-content strong{color:#0d47a1;font-weight:700}.ai-recommendation .markdown-content em{color:#424242}.ai-recommendation .markdown-content ul li,.ai-recommendation .markdown-content ol li{color:#424242;opacity:.95}.ai-recommendation .markdown-content ul li:before{color:#1976d2}.ai-recommendation .markdown-content a{color:#1976d2;border-bottom-color:#1976d2}.ai-recommendation .markdown-content a:hover{color:#0d47a1;border-bottom-color:#0d47a1}.ai-recommendation .markdown-content code{background:#1565c01a;color:#1565c0}.ai-recommendation .markdown-content blockquote{border-left-color:#1565c080;color:#424242}.flights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.flight-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000001a;transition:transform .2s,box-shadow .2s}.flight-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #00000026}.flight-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.airline-logo{width:40px;height:40px;object-fit:contain}.flight-header h3{margin:0;color:#212121;font-size:1.1rem;font-weight:700}.flight-details{margin-bottom:1rem}.flight-time{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.time-info{display:flex;flex-direction:column;gap:.25rem}.time-info .label{font-size:.75rem;color:#888;text-transform:uppercase}.time-info .time{font-size:1.1rem;font-weight:600;color:#333}.flight-duration{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0 1rem}.duration-line{width:100%;height:2px;background:linear-gradient(to right,#616161,#424242);position:relative}.flight-duration span{font-size:.85rem;color:#666;white-space:nowrap}.flight-meta{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:#f8f9fa;border-radius:8px}.meta-item{display:flex;justify-content:space-between;font-size:.9rem}.meta-label{color:#757575;font-weight:700}.meta-value{color:#212121;font-weight:700}.flight-footer{display:flex;justify-content:flex-end;align-items:center;padding-top:1rem;border-top:2px solid #f0f0f0}.price{font-size:1.5rem;font-weight:700;color:#000}.hotel-results{margin-bottom:2rem}.hotel-results h2{color:#212121;margin-bottom:1.5rem;font-size:1.8rem;font-weight:700}.hotel-results .ai-recommendation{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#212121;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 4px 6px #2196f333}.hotel-results .ai-recommendation h3{margin-top:0;margin-bottom:.75rem;font-size:1.2rem;font-weight:700;color:#1565c0}.hotel-results .ai-recommendation p{margin:0;line-height:1.6;opacity:.95}.hotel-results .ai-recommendation .markdown-content{color:#212121}.hotel-results .ai-recommendation .markdown-content p{color:#424242;opacity:.95;margin-bottom:.75rem}.hotel-results .ai-recommendation .markdown-content p:last-child{margin-bottom:0}.hotel-results .ai-recommendation .markdown-content h1,.hotel-results .ai-recommendation .markdown-content h2,.hotel-results .ai-recommendation .markdown-content h3,.hotel-results .ai-recommendation .markdown-content h4,.hotel-results .ai-recommendation .markdown-content h5,.hotel-results .ai-recommendation .markdown-content h6{color:#1565c0;border-bottom-color:#1565c04d}.hotel-results .ai-recommendation .markdown-content strong{color:#0d47a1;font-weight:700}.hotel-results .ai-recommendation .markdown-content em{color:#424242}.hotel-results .ai-recommendation .markdown-content ul li,.hotel-results .ai-recommendation .markdown-content ol li{color:#424242;opacity:.95}.hotel-results .ai-recommendation .markdown-content ul li:before{color:#1976d2}.hotel-results .ai-recommendation .markdown-content a{color:#1976d2;border-bottom-color:#1976d2}.hotel-results .ai-recommendation .markdown-content a:hover{color:#0d47a1;border-bottom-color:#0d47a1}.hotel-results .ai-recommendation .markdown-content code{background:#1565c01a;color:#1565c0}.hotel-results .ai-recommendation .markdown-content blockquote{border-left-color:#1565c080;color:#424242}.hotels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.hotel-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000001a;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.hotel-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #00000026}.hotel-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.hotel-header h3{margin:0 0 .5rem;color:#212121;font-size:1.2rem;font-weight:700;line-height:1.3}.hotel-rating{display:flex;align-items:center;gap:.5rem}.star{font-size:1.2rem}.star.full{color:gold}.star.half{color:gold;opacity:.5}.star.empty{color:#ddd}.rating-number{font-size:.9rem;color:#666;font-weight:600;margin-left:.25rem}.hotel-details{flex:1;display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.hotel-location{display:flex;align-items:center;gap:.5rem;color:#555;font-size:.95rem}.location-icon{font-size:1.1rem}.hotel-price{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:#f8f9fa;border-radius:8px}.price-label{font-size:.85rem;color:#757575;font-weight:700}.price-value{font-size:1.5rem;font-weight:700;color:#000}.hotel-footer{padding-top:1rem;border-top:2px solid #f0f0f0}.view-hotel-btn{display:block;width:100%;padding:.75rem;background:linear-gradient(135deg,#1976d2,#2196f3);color:#fff;text-align:center;text-decoration:none;border-radius:6px;font-weight:600;transition:transform .2s,box-shadow .2s}.view-hotel-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #2196f34d}.view-hotel-btn:active{transform:translateY(0)}.itinerary-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem}.itinerary-container>h2{color:#212121;margin-top:0;margin-bottom:1.5rem;font-size:1.8rem;font-weight:700;border-bottom:3px solid #9e9e9e;padding-bottom:.75rem}.itinerary-content{color:#333;line-height:1.8}.markdown-content h1{color:#000;font-size:1.8rem;font-weight:700;margin-top:2rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:3px solid #9e9e9e}.markdown-content h1:first-child{margin-top:0}.markdown-content h2{color:#212121;font-size:1.5rem;font-weight:700;margin-top:2rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #bdbdbd}.markdown-content h3{color:#424242;font-size:1.3rem;font-weight:700;margin-top:1.5rem;margin-bottom:.75rem}.markdown-content h4{color:#616161;font-size:1.1rem;font-weight:700;margin-top:1rem;margin-bottom:.5rem}.markdown-content h5,.markdown-content h6{color:#757575;font-size:1rem;font-weight:700;margin-top:.75rem;margin-bottom:.5rem}.markdown-content p{margin-bottom:1rem;color:#555}.markdown-content ul,.markdown-content ol{margin-bottom:1rem;margin-left:1.5rem}.markdown-content ul{list-style-type:none}.markdown-content ul li{position:relative;margin-bottom:.5rem;padding-left:1.5rem;color:#555}.markdown-content ul li:before{content:"✓";position:absolute;left:0;color:#424242;font-weight:700}.markdown-content ol{list-style-type:decimal}.markdown-content ol li{margin-bottom:.5rem;padding-left:.5rem;color:#555}.markdown-content strong{color:#000;font-weight:700}.markdown-content em{color:#666;font-style:italic}.markdown-content a{color:#424242;text-decoration:none;border-bottom:1px solid #424242;transition:color .2s}.markdown-content a:hover{color:#000;border-bottom-color:#000}.markdown-content blockquote{border-left:4px solid #9e9e9e;padding-left:1rem;margin:1rem 0;color:#666;font-style:italic}.markdown-content code{background:#f5f5f5;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace;font-size:.9em;color:#424242}.markdown-content pre{background:#f5f5f5;padding:1rem;border-radius:6px;overflow-x:auto;margin-bottom:1rem}.markdown-content pre code{background:none;padding:0;color:#333}*{margin:0;padding:0;box-sizing:border-box}body{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}.app{min-height:100vh;background:#fff;padding:2rem}.app-header{text-align:center;color:#212121;margin-bottom:2rem;padding:2rem 0}.app-header h1{font-size:3rem;margin-bottom:.5rem;font-weight:700;text-shadow:none;color:#000}.app-header p{font-size:1.2rem;font-weight:600;text-shadow:none;color:#424242}.app-main{max-width:1400px;margin:0 auto}.results-container{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-container{background:#fff;border-radius:12px;padding:3rem;text-align:center;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem}.loading-spinner{border:4px solid #e0e0e0;border-top:4px solid #424242;border-radius:50%;width:60px;height:60px;animation:spin 1s linear infinite;margin:0 auto 1.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p{color:#333;font-size:1.2rem;margin-bottom:.5rem}.loading-subtext{color:#666;font-size:1rem}.error-container{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #ff6b6b4d;margin-bottom:2rem;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.error-container h3{margin-top:0;margin-bottom:.75rem;font-size:1.5rem}.error-container p{margin:0;line-height:1.6;font-size:1.1rem}.app-footer{text-align:center;color:#757575;padding:2rem 0;margin-top:3rem;opacity:.8}.app-footer p{font-size:.9rem;font-weight:600;text-shadow:none}@media(max-width:768px){.app{padding:1rem}.app-header h1{font-size:2rem}.app-header p{font-size:1rem}.loading-container{padding:2rem 1rem}}
