:root{--bg:#f1f5fb;--surface:#fff;--text:#122640;--muted:#63758a;--line:#e1e8f1;--accent:#0867db;--soft:#eaf3ff;--danger:#b52738;--shadow:0 8px 32px #123b6c07;color-scheme:light;font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input{font:inherit}button{cursor:pointer}button,input,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #42a9ff;outline-offset:3px}button:disabled{cursor:wait;opacity:.5}input{color:var(--text);min-width:0}h1,h2,p{margin:0}h1{font-size:clamp(1.7rem,6vw,2.2rem);letter-spacing:-.04em;font-weight:750;line-height:1.15}h2{font-size:1.05rem}small,.small{font-size:.875rem}.muted{color:var(--muted)}[hidden]{display:none!important}.app{max-width:600px;margin:0 auto;min-height:100dvh}.brand{display:flex;align-items:center;gap:12px;padding:24px 22px 16px}.brand img{object-fit:contain;background:#fff;border-radius:12px;padding:4px}.brand strong{font-size:1.15rem;letter-spacing:-.035em}.brand span:not(.live-dot){display:block;font-size:.8rem;color:var(--muted)}.live-dot{width:8px;height:8px;background:#35aa93;border-radius:50%;margin-left:auto}main{padding:10px 22px 115px}.page-title{margin:14px 0 25px}.page-title .muted{margin-top:12px}.eyebrow{font-size:.75rem;font-weight:750;color:var(--accent);letter-spacing:.13em;margin-bottom:10px}.route-card{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);padding:18px;border-radius:20px;box-shadow:var(--shadow)}label{font-size:.875rem;color:var(--muted)}.place-field{position:relative;min-width:0}.place-field label{display:block;margin-bottom:4px}.place-field input{font-weight:650;font-size:1rem;width:100%;border:0;background:transparent;padding:7px 0}.place-field input::placeholder{font-weight:400;font-size:.875rem}.swap,.icon-button{border:0;background:var(--soft);color:var(--accent);border-radius:12px;min-width:40px;min-height:40px;font-size:1.35rem}.suggestions{position:absolute;z-index:5;top:100%;left:0;width:260px;max-width:75vw;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #0002;padding:5px}.place-field:last-child .suggestions{left:auto;right:0}.suggestions button{display:block;text-align:left;border:0;background:none;color:var(--text);padding:12px;width:100%;border-radius:9px}.suggestions button:hover{background:var(--soft)}.section-label{display:flex;align-items:center;justify-content:space-between;margin:23px 0 12px}.section-label span{font-size:.875rem;color:var(--muted)}.calendar-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.date-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.date-fields input{display:block;width:100%;padding:6px 0;border:0;background:transparent;font-weight:650;font-size:.95rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin:14px 0}.calendar-header strong{text-transform:capitalize;font-size:.95rem}.calendar-header .icon-button{background:transparent}.calendar,.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays{font-size:.75rem;text-align:center;color:var(--muted);padding-bottom:8px}.calendar button{border:0;background:transparent;color:var(--text);height:42px;font-size:.9rem;border-radius:11px;padding:0}.calendar button:disabled{color:var(--muted);opacity:.35;cursor:default}.calendar button.between{background:var(--soft);border-radius:4px}.calendar button.selected{background:var(--accent);color:white;font-weight:700}.calendar button.today{box-shadow:inset 0 0 0 1px var(--accent)}#calendar-hint{margin-top:12px}.flight-choice{padding:0;border:0;margin:22px 0 16px}.flight-choice legend{font-weight:650;margin-bottom:12px}.segmented{display:flex;background:var(--line);border-radius:13px;padding:4px;gap:3px}.segmented label,.segmented button{flex:1;text-align:center;min-width:0}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented label span,.segmented button{display:block;padding:11px 5px;font-size:.875rem;border-radius:10px;color:var(--muted);font-weight:600;border:0;background:transparent}.segmented input:checked+span,.segmented button[aria-selected=true]{background:var(--surface);color:var(--accent);box-shadow:0 2px 8px #102a4310}.segmented input:focus-visible+span{outline:3px solid #42a9ff}.trip-summary{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.8rem;margin-bottom:18px}.primary,.secondary,.danger{border:0;border-radius:14px;padding:15px 18px;font-weight:650;min-height:50px}.primary{background:var(--accent);color:#fff;box-shadow:0 5px 15px #0867db1a}.primary span{margin-left:10px}.full{width:100%}.secondary{background:var(--soft);color:var(--accent)}.danger{background:#fff0f1;color:var(--danger)}.fine-print{font-size:.8rem;line-height:1.55;color:var(--muted);margin:14px 0;text-align:center}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(600px,100%);display:flex;gap:8px;border-top:1px solid var(--line);padding:10px 22px max(12px,env(safe-area-inset-bottom));background:var(--surface);z-index:8}.bottom-nav button{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;border:0;background:none;color:var(--muted);padding:14px;border-radius:12px;font-size:.875rem;font-weight:650}.bottom-nav button span{font-size:1.5rem;line-height:1}.bottom-nav button.active{background:var(--soft);color:var(--accent)}.notice{margin:0 22px 10px;padding:12px 15px;border:1px solid var(--line);background:var(--soft);border-radius:12px;font-size:.875rem}.error{margin:14px 0;background:#fff0f1;color:#a91e36;padding:12px;border-radius:12px;font-size:.875rem}.text-button{border:0;background:none;color:var(--accent);padding:12px 0;font-weight:600;margin-bottom:15px}.result-tabs{margin:22px 0 18px}.offer,.watch-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;margin:12px 0;padding:20px;box-shadow:var(--shadow)}.offer-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.price{font-weight:750;font-size:1.65rem;letter-spacing:-.035em}.badge{display:inline-block;background:var(--soft);color:var(--accent);font-size:.75rem;border-radius:6px;padding:5px 8px}.offer h3,.watch-card h3{font-size:1rem;margin:14px 0 4px}.offer .details{white-space:pre-line;font-size:.875rem;color:var(--muted);line-height:1.65;margin:10px 0 18px}.offer a{display:block;text-align:center;text-decoration:none}.insights{font-size:.8rem;color:var(--muted);white-space:pre-line;padding-top:14px;border-top:1px dashed var(--line)}.watch-card p{margin:8px 0;font-size:.875rem}.watch-actions{display:flex;gap:8px;margin-top:16px}.watch-actions button{flex:1;font-size:.875rem;padding:12px 8px}.empty{text-align:center;padding:45px 18px;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:18px;margin:16px 0}.empty strong{display:block;color:var(--text);font-size:1.1rem;margin-bottom:8px}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:24px;width:min(480px,calc(100% - 24px));padding:24px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#07192d88;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.radio-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:15px;margin:14px 0}.radio-card input{accent-color:var(--accent);width:18px;height:18px}.radio-card strong{display:block;font-size:.95rem;color:var(--text)}.radio-card small{display:block;margin-top:5px;font-size:.8rem}#target-label input{display:block;width:100%;margin:8px 0;padding:12px;border:1px solid var(--line);background:var(--bg);border-radius:10px}.dialog-actions{display:flex;gap:10px;margin-top:20px}.dialog-actions button{flex:1}#results-route{margin-top:12px}#track-period{margin-top:15px}
@media(max-width:370px){main{padding-left:14px;padding-right:14px}.brand{padding-left:14px;padding-right:14px}.route-card{gap:8px;padding:12px}.segmented label span{font-size:.8rem}.date-fields input{font-size:.85rem}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,color .15s,opacity .15s}}
body.dark{--bg:#101b2a;--surface:#182638;--text:#edf4ff;--muted:#abbace;--line:#2b3a4d;--accent:#63adff;--soft:#233c5b;--shadow:none;color-scheme:dark}body.dark .primary{color:#101b2a}body.dark .error,body.dark .danger{background:#452936;color:#ffb0be}
