:root{--serif:"Nanum Myeongjo", Georgia, "Times New Roman", serif;--sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--bg:#f5f0e6;--bg-accent:#dcebdc;--surface:#fffcf6c7;--card:#fffcf6e6;--card-solid:#fffcf6;--border:#50433221;--border-strong:#5043323d;--hairline:#50433217;--text:#251f19;--muted:#776b5d;--faint:#a79987;--chip:#2f6b4514;--shadow:0 18px 60px #362b1e1f, 0 2px 8px #362b1e0d;--shadow-sm:0 8px 24px #362b1e14, 0 1px 3px #362b1e0d;--brand:#267445;--brand-strong:#155c32;--brand-soft:#2674451f;--accent:#74a46e;--good:#267445;--warn:#b5852a;--bad:#a63d3d;--radius:22px;--radius-sm:16px;--radius-xs:12px}:root[data-theme=dark]{--bg:#0f1210;--bg-accent:#193322;--surface:#1b1f1bc7;--card:#1d201ce0;--card-solid:#1d201c;--border:#ece2d01c;--border-strong:#ece2d033;--hairline:#ece2d014;--text:#f0e9dc;--muted:#b0a28e;--faint:#7d7160;--chip:#6db8871f;--shadow:0 22px 70px #0006, 0 2px 8px #00000038;--shadow-sm:0 10px 28px #00000047, 0 1px 4px #0003;--brand:#86d79b;--brand-strong:#b0edbc;--brand-soft:#86d79b29;--accent:#5aa46f;--good:#86d79b;--warn:#e0b35c;--bad:#e07a7a}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--text);background:radial-gradient(circle at 18% -12%, color-mix(in srgb, var(--brand) 28%, transparent), transparent 34rem), radial-gradient(circle at 84% 4%, color-mix(in srgb, var(--warn) 18%, transparent), transparent 28rem), linear-gradient(180deg, color-mix(in srgb, var(--bg-accent) 50%, transparent), transparent 24rem), var(--bg);font-size:.9375rem;font-family:var(--sans);-webkit-font-smoothing:antialiased;background-attachment:fixed}.wrap{max-width:760px;padding:max(28px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 72px max(20px, env(safe-area-inset-left));margin:0 auto;overflow-x:hidden}.header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.headerBrand{min-width:0}.headerActions{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.installButton{border:1px solid color-mix(in srgb, var(--brand) 42%, var(--border));background:var(--brand);color:#fff;white-space:nowrap;height:42px;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:999px;padding:0 14px;font-size:.82rem;font-weight:800;transition:transform .16s,border-color .16s,background .16s}.installButton:hover{border-color:var(--brand-strong);background:var(--brand-strong);transform:translateY(-1px)}.installGuide{z-index:60;background:color-mix(in srgb, var(--text) 18%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:start center;padding:82px 18px 18px;display:grid;position:fixed;inset:0}.installGuideCard{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-solid);width:min(360px,100%);box-shadow:var(--shadow);padding:18px 46px 18px 18px;position:relative}.installGuideCard strong{color:var(--text);margin-bottom:6px;font-size:.98rem;display:block}.installGuideCard p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}.installGuideClose{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:999px;font-size:1rem;line-height:1;position:absolute;top:10px;right:10px}.headerIconBtn{border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--muted);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:border-color .15s,color .15s,background .15s,transform .15s;display:inline-flex}.headerIconBtn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text);background:var(--card-solid);transform:translateY(-1px)}.headerIconBtn:disabled{opacity:.55;cursor:not-allowed}.headerIconBtn.isSpinning svg{animation:.8s linear infinite headerRefreshSpin}@keyframes headerRefreshSpin{to{transform:rotate(360deg)}}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--brand);margin:0 0 6px;font-size:.72rem;font-weight:800}.title{font-family:var(--sans);letter-spacing:-.055em;margin:0;font-size:clamp(1.85rem,5vw,2.55rem);font-weight:800;line-height:1.05}.themeSeg{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;flex-shrink:0;padding:3px;display:inline-flex}.themeSeg button{width:36px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;transition:background .15s,color .15s}.themeSeg button[aria-pressed=true]{background:var(--card-solid);color:var(--text);box-shadow:0 1px 4px #00000014}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);grid-template-columns:1fr;display:grid;position:relative;overflow:hidden}.cardRail{background:linear-gradient(180deg, var(--accent), var(--brand));width:4px;position:absolute;inset:0 auto 0 0}.cardRail.toneGood{background:var(--good)}.cardRail.toneWarn{background:var(--warn)}.cardRail.toneBad{background:var(--bad)}.cardRail.toneMuted{background:var(--faint)}.cardBody{min-width:0;padding:20px 22px 22px 24px}.cardHead{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.badge{background:var(--brand-soft);height:28px;color:var(--brand);letter-spacing:.06em;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;padding:0 11px;font-size:.72rem;font-weight:800;display:inline-flex}.cardTitle{letter-spacing:-.02em;margin:5px 0 0;font-size:1.12rem;font-weight:800}.routeCard{margin-bottom:18px}.routeForm{gap:14px;display:grid}.routeToggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--card-solid) 70%, transparent);width:100%;height:52px;color:var(--text);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-size:.98rem;font-weight:800;transition:border-color .15s,background .15s,transform .15s;display:flex}.routeToggle:hover{border-color:var(--border-strong);background:var(--card-solid);transform:translateY(-1px)}.routeToggleLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dateStepper{grid-template-columns:46px 1fr 46px;align-items:center;gap:9px;display:grid}.dateStepBtn{border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--card-solid) 70%, transparent);height:50px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.dateStepBtn:hover{color:var(--text);background:var(--card-solid)}.dateStepInputWrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--card-solid) 70%, transparent);height:50px;position:relative;overflow:hidden}.dateStepDisplay{pointer-events:none;justify-content:center;align-items:center;height:100%;font-weight:700;display:flex}.dateStepInput{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;inset:0}.holidayQuickLinks{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.holidayQuickTag{height:32px;color:var(--brand);align-items:center;padding:0 4px;font-size:.78rem;font-weight:800;display:inline-flex}.holidayQuickChip{border:1px solid var(--border);background:color-mix(in srgb, var(--card-solid) 66%, transparent);height:34px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 13px;font-size:.82rem;font-weight:700;display:inline-flex}.holidayQuickChip:hover{border-color:var(--border-strong);background:var(--card-solid)}.holidayQuickChip.isActive{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.holidayQuickRole{font-weight:800}.holidayQuickSep{color:var(--faint)}.optionToggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.optionToggle input{opacity:0;pointer-events:none;position:absolute}.optionToggleUi{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .15s;position:relative}.optionToggleUi:after{content:"";background:var(--card);width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.optionToggle input:checked+.optionToggleUi{background:var(--brand)}.optionToggle input:checked+.optionToggleUi:after{transform:translate(16px)}.optionToggle input:focus-visible+.optionToggleUi{outline:2px solid var(--brand);outline-offset:2px}.optionToggle input:disabled+.optionToggleUi{opacity:.55}.optionToggleText{color:var(--muted);white-space:nowrap;font-size:.82rem;font-weight:700}.optionToggle input:checked~.optionToggleText{color:var(--brand)}.resultsToolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.resultsToolbar .filterSummary{min-width:0;margin:0}.resultsToolbarActions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.optionToggleCompact{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;flex-shrink:0;padding:7px 11px}.airlineFilter{flex-wrap:wrap;gap:9px;margin-bottom:14px;display:flex}.airlineFilterChip{border:1px solid var(--border);background:var(--surface);height:auto;min-height:50px;color:var(--muted);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:7px 14px;font-size:.82rem;font-weight:700;transition:border-color .15s,background .15s,color .15s,transform .15s;display:inline-flex}.airlineFilterChip:hover{border-color:var(--border-strong);background:var(--card-solid);color:var(--text);transform:translateY(-1px)}.airlineFilterChip.isActive{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);box-shadow:0 10px 30px color-mix(in srgb, var(--brand) 18%, transparent)}.airlineFilterName{text-overflow:ellipsis;white-space:nowrap;max-width:9em;line-height:1.2;overflow:hidden}.airlineFilterPrice{font-variant-numeric:tabular-nums;color:var(--brand);white-space:nowrap;font-size:.74rem;font-weight:800;line-height:1.2}.airlineFilterChip.isActive .airlineFilterPrice{color:var(--brand-strong)}.filterSummary{color:var(--muted);margin:0 0 12px;font-size:.86rem}.filterSummary strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:800}.flightList{gap:12px;display:grid}.flightCard .cardBody{padding:18px 20px 18px 22px}.flightCard{transition:transform .16s,border-color .16s,box-shadow .16s}.flightCard:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 22px 70px #362b1e24,0 3px 10px #362b1e0f}.flightHead{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.flightMeta{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.flightAirline{letter-spacing:-.02em;margin:0;font-size:1.04rem;font-weight:800}.flightNumber{color:var(--muted);font-size:.82rem;font-weight:700}.flightNumberBtn{color:var(--muted);font:inherit;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--muted) 45%, transparent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:.82rem;font-weight:700}.flightNumberBtn:hover{color:var(--brand);-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand)}.flightNumberBtn:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}.chip{background:var(--chip);height:25px;color:var(--muted);border-radius:999px;align-items:center;padding:0 9px;font-size:.72rem;font-weight:700;display:inline-flex}.chipAccent{background:color-mix(in srgb, var(--brand) 16%, var(--chip));color:var(--brand)}.pill{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;min-width:68px;display:inline-flex}.pillLabel{letter-spacing:.04em;color:var(--faint);font-size:.68rem;font-weight:700}.pill strong{font-size:1.2rem;font-weight:800;line-height:1}.pill.toneGood strong{color:var(--good)}.pill.toneWarn strong{color:var(--warn)}.pill.toneBad strong{color:var(--bad)}.pill.toneMuted strong{color:var(--muted)}.flightSchedule{grid-template-columns:auto auto auto 1fr;align-items:end;gap:10px 14px;display:grid}.flightTimeBlock{flex-direction:column;gap:2px;display:flex}.flightTime{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.28rem;font-weight:800}.flightAirport{color:var(--muted);font-size:.75rem;font-weight:700}.flightArrow{color:var(--faint);padding-bottom:18px;font-weight:700}.flightFare{justify-content:flex-end;justify-self:end;align-items:baseline;min-width:0;display:flex}.flightFare:has(.flightBaggage){justify-content:space-between;justify-self:stretch;gap:12px}.flightPrice{color:var(--brand);font-variant-numeric:tabular-nums;font-size:1.12rem;font-weight:800}.flightBaggage{color:var(--muted);white-space:nowrap;text-align:right;margin-left:auto;font-size:.72rem;font-weight:700}.alert{border:1px solid color-mix(in srgb, var(--bad) 35%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bad) 10%, var(--card-solid));color:var(--bad);margin-bottom:12px;padding:12px 14px;font-size:.9rem;font-weight:600}.emptyCard{margin-bottom:10px}.emptyNote,.dailyLoadingNote{color:var(--muted);margin:0;font-size:.92rem}.loadingBanner{border:1px solid var(--border);background:var(--surface);color:var(--muted);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;align-items:center;gap:10px;margin-bottom:12px;padding:12px 14px;font-size:.9rem;font-weight:700;display:flex}.loadingSpinner{border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite headerRefreshSpin}.resultsPane.isLoading{opacity:.45;pointer-events:none;transition:opacity .15s}.loadingSkeleton{gap:10px;display:grid}.loadingSkeletonCard{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(90deg, var(--chip) 0%, var(--card) 45%, var(--chip) 90%);background-size:200% 100%;height:96px;animation:1.2s ease-in-out infinite skeletonShimmer}@keyframes skeletonShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.modalOverlay{z-index:40;background:color-mix(in srgb, var(--text) 28%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modalCard{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-solid);width:min(420px,100%);max-height:min(80vh,640px);box-shadow:var(--shadow);padding:18px 18px 16px;overflow:auto}.modalHead{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.modalEyebrow{color:var(--faint);letter-spacing:.04em;margin:0 0 4px;font-size:.72rem;font-weight:700}.modalTitle{letter-spacing:-.03em;margin:0;font-size:1.35rem;font-weight:800}.modalClose{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:999px;font-size:1.25rem;line-height:1}.modalClose:hover{color:var(--text);border-color:var(--border-strong)}.modalStatus,.modalError,.modalNote{margin:0;font-size:.88rem;line-height:1.45}.modalStatus{color:var(--muted)}.modalError{color:var(--bad);font-weight:600}.modalNote{color:var(--faint);margin-top:14px;font-size:.76rem}.modalFacts{grid-template-columns:1fr 1fr;gap:12px 14px;margin:0;display:grid}.modalFacts div{min-width:0}.modalFacts dt{color:var(--faint);letter-spacing:.03em;margin:0 0 3px;font-size:.7rem;font-weight:700}.modalFacts dd{color:var(--text);word-break:keep-all;margin:0;font-size:.95rem;font-weight:700}.footer{color:var(--faint);flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px;font-size:.82rem;display:flex}.footerLink{color:var(--brand);align-items:center;gap:4px;font-weight:700;text-decoration:none;display:inline-flex}.footerLink:hover{text-decoration:underline}@media (width<=520px){.flightSchedule{grid-template-columns:auto auto auto}.flightFare{grid-column:1/-1;margin-top:4px}}
