:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.horizontalScroll{display:flex;overflow-x:auto;overflow-y:visible;gap:1rem;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.startCityContainer{padding:16px;display:flex;flex-direction:column;gap:24px;scroll-snap-align:center;min-width:max-content;box-sizing:border-box}.startCityHeader{display:flex;flex-direction:column;gap:8px}.startCityTitle{margin:0;font-size:28px;font-weight:700;color:#ffffffde}.startCitySubtitle{margin:0;font-size:15px;color:#b0b0b0}.startCityLoading{padding:20px;text-align:center;color:#6b9fff;background:#6b9fff1a;border-radius:8px;font-size:14px}.citiesSection{display:flex;flex-direction:column;gap:16px;margin-top:8px}.citiesSectionHeader{display:flex;align-items:center;gap:16px}.citiesSectionIcon{font-size:32px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#3a3a3a;border-radius:12px;flex-shrink:0}.citiesSectionTitle{font-size:20px;font-weight:700;color:#ffffffde}.citiesSectionSubtitle{font-size:14px;color:#b0b0b0;margin-top:2px}.citiesList{display:flex;flex-direction:column;gap:12px}@media(prefers-color-scheme:light){.startCityTitle{color:#202124}.startCitySubtitle{color:#5f6368}.startCityLoading{color:#1a73e8;background:#1a73e81a}.citiesSectionIcon{background:#f1f3f4}.citiesSectionTitle{color:#202124}.citiesSectionSubtitle{color:#5f6368}.cityItemCard{background:#fff;border:1px solid #cccccc}.cityItemCard:hover{background:#f0f8ff}.cityItemName{color:#202124}}.cityListContainer{padding:16px;display:flex;flex-direction:column;gap:24px;scroll-snap-align:center;min-width:max-content;box-sizing:border-box}.cityListHeader{display:flex;flex-direction:column;gap:4px}.cityListTitle{margin:0;font-size:24px;font-weight:700;color:#ffffffde}.cityListSubtitle{margin:0;font-size:14px;color:#b0b0b0}.searchContainer{width:100%}.searchInput{width:100%;padding:12px 16px;font-size:16px;border:1px solid #444;border-radius:12px;background:#2a2a2a;color:#ffffffde;box-sizing:border-box;outline:none;transition:border-color .2s ease}.searchInput::placeholder{color:#666}.searchInput:focus{border-color:#6b9fff}.loadingMessage,.errorMessage{padding:12px;border-radius:8px;font-size:14px;text-align:center}.loadingMessage{color:#6b9fff;background:#6b9fff1a}.errorMessage{color:#ff6b6b;background:#ff6b6b1a}.cityList{display:flex;flex-direction:column;gap:12px}.cityItemCard{display:flex;align-items:center;background:#2a2a2a;padding:16px;border-radius:16px;border:1px solid #444;cursor:pointer;box-sizing:border-box}.cityItemCard:hover{background:#333}.cityItemImage{width:150px;height:100px;margin-right:16px;border-radius:8px;object-fit:cover;object-position:center}.cityItemInfo{display:flex;flex-direction:column;gap:4px}.cityItemName{color:#ffffffde;margin:0;font-size:18px;font-weight:600}.cityItemCode{font-size:13px;color:#6b9fff;font-weight:500}@media(prefers-color-scheme:light){.cityListTitle{color:#202124}.cityListSubtitle{color:#5f6368}.searchInput{background:#fff;border:1px solid #cccccc;color:#202124}.searchInput::placeholder{color:#999}.searchInput:focus{border-color:#1a73e8}.loadingMessage{color:#1a73e8;background:#1a73e81a}.errorMessage{color:#d93025;background:#d930251a}.cityItemCard{background:#fff;border:1px solid #cccccc}.cityItemCard:hover{background:#f0f8ff}.cityItemName{color:#202124}.cityItemCode{color:#1a73e8}}.dateListContainer{scroll-snap-align:center;min-width:max-content;box-sizing:border-box;padding:16px;display:flex;flex-direction:column;gap:16px}.dateListTitle{font-size:20px;font-weight:700;color:#ffffffde;margin:0;text-align:left}.monthPicker{display:flex;flex-direction:column;gap:16px}.monthsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.monthItem{background:#2a2a2a;border:2px solid #444;border-radius:8px;padding:20px;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:background .2s ease,border-color .2s ease}.monthItem:hover{background:#333;border-color:#666}.monthItem.current{border-color:#4caf50}.monthName{font-size:16px;font-weight:600;color:#ffffffde}.monthYear{font-size:14px;font-weight:400;color:#b0b0b0}.calendarHeader{display:flex;align-items:center;gap:12px;margin-bottom:8px}.backButton{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:8px 12px;font-size:14px;font-weight:600;cursor:pointer;color:#ffffffde;transition:background .2s ease}.backButton:hover{background:#333}.currentMonthYear{font-size:16px;font-weight:700;color:#ffffffde}.navButton{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:8px 16px;font-size:16px;font-weight:700;cursor:pointer;color:#ffffffde;transition:background .2s ease}.navButton:hover{background:#333}.calendar{display:flex;flex-direction:column;gap:8px}.dayNamesRow{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.dayName{text-align:center;font-size:12px;font-weight:700;color:#b0b0b0;text-transform:uppercase;padding:8px 0}.datesGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.dateItem{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#2a2a2a;border:2px solid #444;border-radius:8px;cursor:pointer;min-width:50px;box-sizing:border-box;transition:background .2s ease,border-color .2s ease}.dateItem.empty{background:transparent;border:none;cursor:default}.dateItem:not(.empty):not(.past):hover{background:#333;border-color:#666}.dateItem.selected{background:#1a3a52;border-color:#6b9fff}.dateItem.today{border-color:#4caf50}.dateItem.selected.today{border-color:#6b9fff}.dateItem.past{background:#1a1a1a;border-color:#2a2a2a;cursor:not-allowed;opacity:.5}.dayNumber{font-size:16px;font-weight:700;color:#ffffffde}.dateItem.selected .dayNumber{color:#6b9fff}.dateItem.past .dayNumber{color:#666}@media(prefers-color-scheme:light){.dateListTitle{color:#202124}.monthItem{background:#f5f5f5;border:2px solid #ccc}.monthItem:hover{background:#e5e5e5;border-color:#999}.monthItem.current{border-color:#0d652d}.monthName{color:#202124}.monthYear{color:#5f6368}.backButton{background:#f5f5f5;border:1px solid #ccc;color:#202124}.backButton:hover{background:#e5e5e5}.currentMonthYear{color:#202124}.navButton{background:#f5f5f5;border:1px solid #ccc;color:#202124}.navButton:hover{background:#e5e5e5}.dayName{color:#5f6368}.dateItem{background:#f5f5f5;border:2px solid #ccc}.dateItem:not(.empty):not(.past):hover{background:#e5e5e5;border-color:#999}.dateItem.selected{background:#e8f0fe;border-color:#1a73e8}.dateItem.today{border-color:#0d652d}.dateItem.selected.today{border-color:#1a73e8}.dateItem.past{background:#fafafa;border-color:#e0e0e0}.dayNumber{color:#202124}.dateItem.selected .dayNumber{color:#1a73e8}.dateItem.past .dayNumber{color:#9e9e9e}}.flightListContainer{padding:16px;display:flex;flex-direction:column;gap:24px;scroll-snap-align:center;min-width:max-content;box-sizing:border-box}.flightListHeader{display:flex;flex-direction:column;gap:4px}.flightListTitle{margin:0;font-size:24px;font-weight:700;color:#ffffffde}.flightListSubtitle{margin:0;font-size:14px;color:#b0b0b0}.flightLoadingMessage,.flightErrorMessage{padding:12px;border-radius:8px;font-size:14px;text-align:center}.flightLoadingMessage{color:#6b9fff;background:#6b9fff1a}.flightErrorMessage{color:#ff6b6b;background:#ff6b6b1a}.flightList{list-style-type:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.flightItem{display:flex;flex-direction:column;background:#2a2a2a;padding:20px;border-radius:16px;border:1px solid #444;box-sizing:border-box;overflow:hidden;flex-shrink:0;width:100%;gap:12px;cursor:pointer;transition:background .2s ease}.flightItem:hover{background:#333}.flightHeader{display:flex;justify-content:space-between;align-items:center}.flightNumber{font-size:18px;font-weight:700;color:#6b9fff}.flightPrice{font-size:20px;font-weight:700;color:#4caf50}.flightAirline{font-size:14px;color:#b0b0b0;margin-top:-4px}.flightRoute{display:flex;align-items:center;gap:12px;margin:8px 0}.flightRouteSection{display:flex;flex-direction:column;gap:4px}.routeLocation{font-size:14px;font-weight:600;color:#ffffffde}.routeTime{font-size:16px;font-weight:700;color:#6b9fff}.flightDuration{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.durationLine{width:100%;height:2px;background:#6b9fff;position:relative}.durationLine:before{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:0;height:0;border-left:8px solid #6b9fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.durationText{font-size:12px;color:#b0b0b0;white-space:nowrap}.flightStops{font-size:11px;color:#ff9f43;margin-top:2px;white-space:nowrap}.flightClass{font-size:12px;color:#b0b0b0;background:#3a3a3a;padding:4px 12px;border-radius:12px;align-self:flex-start}@media(prefers-color-scheme:light){.flightListTitle{color:#202124}.flightListSubtitle{color:#5f6368}.flightLoadingMessage{color:#1a73e8;background:#1a73e81a}.flightErrorMessage{color:#d93025;background:#d930251a}.flightItem{background:#fff;border:1px solid #cccccc}.flightItem:hover{background:#f0f8ff}.flightNumber{color:#1a73e8}.flightPrice{color:#0d652d}.flightAirline{color:#5f6368}.routeLocation{color:#202124}.routeTime{color:#1a73e8}.durationLine{background:#1a73e8}.durationLine:before{border-left-color:#1a73e8}.durationText{color:#5f6368}.flightStops{color:#f57c00}.flightClass{color:#5f6368;background:#e8f0fe}}.paymentContainer{padding:16px;display:flex;flex-direction:column;gap:24px;scroll-snap-align:center;min-width:max-content;box-sizing:border-box}.paymentHeader{display:flex;flex-direction:column;gap:4px}.paymentHeader h2{margin:0;font-size:24px;font-weight:700;color:#ffffffde}.paymentSubtitle{margin:0;font-size:14px;color:#b0b0b0}.paymentOptions{display:flex;flex-direction:column;gap:12px}.paymentOption{display:flex;align-items:center;gap:16px;background:#2a2a2a;padding:16px;border-radius:12px;border:2px solid #444;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.paymentOption:hover{background:#333;border-color:#6b9fff}.paymentOption.selected{background:#2a3f5f;border-color:#6b9fff}.paymentIcon{font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#3a3a3a;border-radius:50%;flex-shrink:0}.paymentOption.selected .paymentIcon{background:#4a5f7f}.paymentDetails{flex:1;display:flex;flex-direction:column;gap:4px}.paymentName{font-size:16px;font-weight:600;color:#ffffffde}.paymentDescription{font-size:13px;color:#b0b0b0}.paymentRadio{width:24px;height:24px;border:2px solid #6b9fff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.paymentRadioSelected{width:12px;height:12px;background:#6b9fff;border-radius:50%}.confirmPaymentButton{background:#6b9fff;color:#fff;border:none;padding:16px 24px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px}.confirmPaymentButton:hover:not(:disabled){background:#5a8fff;transform:translateY(-1px)}.confirmPaymentButton:disabled{background:#3a3a3a;color:#666;cursor:not-allowed}@media(prefers-color-scheme:light){.paymentHeader h2{color:#202124}.paymentSubtitle{color:#5f6368}.paymentOption{background:#fff;border:2px solid #cccccc}.paymentOption:hover{background:#f0f8ff;border-color:#1a73e8}.paymentOption.selected{background:#e8f0fe;border-color:#1a73e8}.paymentIcon{background:#f1f3f4}.paymentOption.selected .paymentIcon{background:#d2e3fc}.paymentName{color:#202124}.paymentDescription{color:#5f6368}.paymentRadio{border-color:#1a73e8}.paymentRadioSelected,.confirmPaymentButton{background:#1a73e8}.confirmPaymentButton:hover:not(:disabled){background:#1557b0}.confirmPaymentButton:disabled{background:#e8eaed;color:#9aa0a6}}
