:root{--bg: #dde6f5;--panel-solid: rgba(255, 255, 255, .72);--panel-border: rgba(255, 255, 255, .5);--hairline: rgba(0, 0, 0, .08);--text: #1d1d1f;--muted: #6e6e73;--faint: #86868b;--accent: #0071e3;--accent-hover: #0077ed;--accent-soft: rgba(0, 113, 227, .1);--field: rgba(255, 255, 255, .55);--field-alt: rgba(255, 255, 255, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow: 0 8px 32px rgba(0, 0, 0, .08);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .13);--radius: 26px;--radius-sm: 16px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%;color:var(--text);font-family:inherit;letter-spacing:-.01em}body{background:radial-gradient(ellipse 70% 55% at 12% 18%,rgba(147,197,253,.55) 0%,transparent 65%),radial-gradient(ellipse 55% 65% at 88% 82%,rgba(196,181,253,.45) 0%,transparent 65%),radial-gradient(ellipse 60% 45% at 72% 15%,rgba(167,243,208,.3) 0%,transparent 60%),radial-gradient(ellipse 50% 55% at 25% 85%,rgba(253,186,116,.2) 0%,transparent 60%),#dde6f5;background-attachment:fixed}.app.dark{--text: #f0f0f2;--muted: rgba(240, 240, 242, .52);--faint: rgba(240, 240, 242, .32);--hairline: rgba(255, 255, 255, .09);--field: rgba(255, 255, 255, .08);--field-alt: rgba(255, 255, 255, .05);--accent: #4da3ff;--accent-hover: #6ab4ff;--accent-soft: rgba(77, 163, 255, .18);color:var(--text)}.app.dark~* body,.app.dark+body{background:#0d1117}body:has(.app.dark){background:radial-gradient(ellipse 65% 50% at 10% 20%,rgba(56,100,200,.5) 0%,transparent 65%),radial-gradient(ellipse 55% 60% at 90% 80%,rgba(100,60,200,.4) 0%,transparent 65%),radial-gradient(ellipse 50% 45% at 70% 15%,rgba(30,150,100,.25) 0%,transparent 60%),radial-gradient(ellipse 45% 50% at 20% 85%,rgba(180,80,40,.2) 0%,transparent 60%),#0d1117;background-attachment:fixed}.app.dark .tile{background:#12121a85;border-color:#ffffff1c;box-shadow:0 4px 6px #0000004d,0 20px 52px #00000073,inset 0 1.5px #ffffff24,inset 1px 0 #ffffff12,inset -1px 0 #ffffff0a,inset 0 -1px #ffffff0a}.app.dark .tile:before{background:linear-gradient(175deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,.02) 30%,transparent 55%)}.app.dark input,.app.dark select{border-color:#ffffff24;color:var(--text);box-shadow:inset 0 1px #ffffff14,0 1px 3px #0000004d}.app.dark .airport-list{background:#161620eb;border-color:#ffffff1f;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.app.dark .fare-card{background:#ffffff0a;border-color:#ffffff17}.app.dark .fare-card.best{border-color:#4da3ff73}.app.dark .mode-toggle{background:#ffffff0f}.app.dark .mode-toggle button.on{background:#ffffff24;color:var(--text)}.app.dark .statusbar .data-mode{border-color:#ffffff1f}.theme-toggle{position:fixed;top:20px;right:24px;z-index:200;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.48);background:#ffffff38;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:0 4px 14px #00000014,inset 0 1.5px #ffffffe0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);transition:transform .18s,box-shadow .18s}.theme-toggle:hover{transform:scale(1.08);box-shadow:0 6px 20px #0000001f,inset 0 1.5px #ffffffe0}.theme-toggle:active{transform:scale(.95)}.app.dark .theme-toggle{border-color:#ffffff24;background:#ffffff1a;box-shadow:0 4px 14px #00000059,inset 0 1.5px #ffffff2e;color:var(--text)}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%;overflow-y:auto;overflow-x:hidden}.statusbar{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 24px 28px}.data-mode{font-size:10px;font-weight:500;padding:3px 9px;border-radius:980px;border:1px solid var(--hairline);opacity:.7}.data-mode.live{opacity:.85}.data-mode.live{background:#34c7591f;color:#248a3d;border-color:#34c75940}.data-mode.mock{background:#ff95001a;color:#b25f00;border-color:#ff950038}.bento{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:80px 60px 60px;align-content:start;max-width:960px;width:100%;margin:0 auto}.tile-search{grid-column:1 / -1;grid-row:1;width:420px;max-width:100%;justify-self:center}.tile-matrix{grid-column:1 / -1;grid-row:2;width:580px;max-width:100%;height:auto;justify-self:center}.tile-results{grid-column:1 / -1;grid-row:3;width:420px;max-width:100%;justify-self:center}.bento.has-searched .tile-results{width:auto;justify-self:stretch}.bento.has-matrix{max-width:1200px}.bento.has-matrix .tile-search{grid-column:1;grid-row:1;width:auto;justify-self:stretch}.bento.has-matrix .tile-matrix{grid-column:2;grid-row:1;width:auto;justify-self:stretch}.bento.has-matrix .tile-results{grid-row:3}.tile{background:#ffffff2e;backdrop-filter:blur(52px) saturate(180%) brightness(1.06) contrast(1.02);-webkit-backdrop-filter:blur(52px) saturate(180%) brightness(1.06) contrast(1.02);border:1px solid rgba(255,255,255,.48);border-radius:var(--radius);box-shadow:0 4px 6px #0000000a,0 20px 52px #00000017,inset 0 1.5px #ffffffeb,inset 1px 0 #ffffff73,inset -1px 0 #ffffff38,inset 0 -1px #ffffff2e;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(175deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.06) 30%,transparent 55%);pointer-events:none;z-index:0}.tile>*{position:relative;z-index:1}.tile-search{overflow:visible;padding:20px}.tile-globe{display:block;position:relative;padding:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;box-shadow:none}.tile-globe canvas{display:block}.tile-results{overflow:visible;padding:20px}.tile-matrix{padding:18px 20px;overflow:hidden}h2.section{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--faint)}.muted{color:var(--muted);font-size:12px}.row{display:flex;gap:10px;margin-bottom:12px}label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:5px;flex:1}label.checkbox,label.strategy-toggle{flex-direction:row;align-items:center;gap:9px;color:var(--text);font-size:13px;white-space:nowrap;flex:none}input,select{background:var(--field);border:1px solid rgba(255,255,255,.6);border-radius:10px;color:var(--text);padding:9px 11px;font-size:13px;font-family:inherit;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px #ffffffb3,0 1px 3px #0000000f;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex:none}button.primary{width:100%;background:var(--accent);color:#fff;border:none;border-radius:12px;padding:13px;font-weight:600;font-size:15px;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s;margin-top:4px}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.primary:active:not(:disabled){transform:scale(.99)}button.primary:disabled{opacity:.45;cursor:not-allowed}button.link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;font-family:inherit;padding:0}.mode-toggle{display:flex;gap:3px;background:var(--field-alt);border-radius:11px;padding:3px;margin-bottom:12px}.mode-toggle button{flex:1;background:none;border:none;color:var(--muted);font-size:13px;font-weight:500;font-family:inherit;padding:7px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}.mode-toggle button.on{background:#fff;color:var(--text);box-shadow:var(--shadow-sm)}.airport-select{position:relative;flex:1;display:flex;flex-direction:column;gap:5px}.as-label{font-size:12px;color:var(--muted)}.airport-select>input{width:100%}.airport-list{position:absolute;top:100%;left:0;right:0;z-index:20;margin:4px 0 0;padding:5px;list-style:none;background:#fff;border:1px solid var(--panel-border);border-radius:14px;box-shadow:var(--shadow-lg);max-height:260px;overflow-y:auto}.airport-list li{display:flex;align-items:baseline;gap:7px;padding:8px 9px;border-radius:9px;cursor:pointer;font-size:12px}.airport-list li:hover{background:var(--accent-soft)}.airport-list .as-city{font-weight:600;color:var(--text)}.airport-list .as-name{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.airport-list .as-iata{font-weight:700;color:var(--accent)}.strategies{margin:14px 0;border-top:1px solid var(--hairline);padding-top:14px}.strategies-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:500;color:var(--text);cursor:pointer}.strategies-head strong{color:var(--muted);font-weight:600;margin-left:4px}.strategies-head .chevron{color:var(--muted);font-size:14px;transition:transform .2s ease}.strategies-head .chevron.open{transform:rotate(180deg)}.strategies-list{margin-top:10px}.strategies-actions{display:flex;justify-content:flex-end;margin-bottom:6px}.strategy-toggle{padding:4px 0;cursor:pointer}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.results-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.results-head h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em}.point-value{border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:12px 14px;margin:0 0 14px;background:var(--field-alt)}.pv-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--muted);margin-bottom:8px}.pv-head strong{color:var(--text);font-size:15px}.point-value input[type=range]{width:100%;accent-color:var(--accent);padding:0}.pv-hint{margin:8px 0 0;line-height:1.4}.fare-list{display:flex;flex-direction:row;align-items:stretch;gap:14px;overflow-x:auto;overflow-y:hidden;padding-bottom:10px;scroll-snap-type:x proximity}.fare-card{flex:0 0 300px;scroll-snap-align:start;background:#fff;border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:15px;box-shadow:var(--shadow-sm)}.fare-card.best{border-color:#0071e366;box-shadow:0 0 0 3px var(--accent-soft)}.fare-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.badge{font-size:10px;font-weight:600;color:#fff;padding:3px 8px;border-radius:6px}.best-badge{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.02em}.conf{margin-left:auto;font-size:10px;padding:3px 7px;border-radius:6px}.conf-alta{background:#34c75924;color:#248a3d}.conf-media{background:#ff950024;color:#b25f00}.conf-baixa{background:#ff3b3024;color:#c9271e}.fare-effective{display:flex;align-items:baseline;gap:8px;font-size:24px;font-weight:700;letter-spacing:-.02em}.eff-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--faint)}.fare-breakdown{font-size:12px;color:var(--muted);margin-top:2px}.points{font-weight:600;color:#b25f00}.fare-route{font-size:14px;font-weight:600;margin-top:8px}.fare-flights{margin:5px 0 2px;display:flex;flex-direction:column;gap:2px}.flight-line{display:flex;align-items:baseline;gap:8px;font-size:12px}.flight-line .leg{font-weight:600;color:var(--text);min-width:74px}.flight-line .flight-no{color:var(--muted)}.fare-tags{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.tag{font-size:10px;background:var(--field-alt);color:var(--muted);padding:3px 8px;border-radius:6px}.fare-rationale{font-size:11px;color:var(--muted);margin:7px 0 0;line-height:1.45}.fare-hint{font-size:11px;color:var(--accent);margin:5px 0 0}a.buy{display:inline-block;margin-top:12px;background:var(--accent);color:#fff;font-weight:600;font-size:12px;padding:8px 14px;border-radius:980px;text-decoration:none;transition:background .15s}a.buy:hover{background:var(--accent-hover)}.matrix-panel{height:auto;display:flex;flex-direction:column}.matrix-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.matrix-head h2{margin:0;display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;letter-spacing:-.01em}.src-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:980px}.src-badge.real{background:#34c75924;color:#248a3d}.src-badge.est{background:#ff950024;color:#b25f00}.month-trip{font-size:11px;font-weight:500;color:var(--muted)}.matrix-legend{display:flex;align-items:center;gap:8px}.heat-bar{width:90px;height:8px;border-radius:4px;background:linear-gradient(90deg,#28bd5a,#bbd926,#e23636)}.matrix-scroll{overflow:auto;margin-top:12px}table.matrix{border-collapse:separate;border-spacing:4px;font-size:12px;margin:0 auto}table.matrix th{color:var(--muted);font-weight:500;text-align:center;padding:2px 4px}table.matrix th.corner{font-size:10px;text-align:right}table.matrix th.we{color:var(--accent)}table.matrix .wd{font-size:9px;opacity:.7}td.cell{width:64px;height:42px;text-align:center;color:#fff;font-weight:600;border-radius:9px;cursor:pointer;position:relative;transition:transform .08s;text-shadow:0 1px 2px rgba(0,0,0,.25)}td.cell:hover{transform:scale(1.05);outline:2px solid var(--text)}td.cell.invalid{background:var(--field-alt)!important;color:var(--faint);cursor:default;font-weight:400;text-shadow:none}td.cell.invalid:hover{transform:none;outline:none}td.cell.selected{outline:2px solid var(--text);box-shadow:0 0 0 2px #00000040}td.cell .star{position:absolute;top:1px;right:3px;font-size:9px}.matrix-hint{margin:10px 0 0}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px;overflow-y:auto}.month-wd{text-align:center;font-size:10px;color:var(--muted);padding-bottom:2px}.month-pad{aspect-ratio:1}.month-cell{aspect-ratio:1;min-width:0;border:none;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;color:#fff;font-family:inherit;transition:transform .08s;padding:0;text-shadow:0 1px 2px rgba(0,0,0,.25)}.month-cell:hover{transform:scale(1.05);outline:2px solid var(--text)}.month-cell.empty{background:var(--field-alt);color:var(--faint);cursor:default;text-shadow:none}.month-cell.empty:hover{transform:none;outline:none}.month-cell.selected{outline:2px solid var(--text);box-shadow:0 0 0 2px #00000040}.month-day{font-size:12px;font-weight:700;position:relative}.month-day .star{position:absolute;top:-4px;right:-9px;font-size:8px}.month-price{font-size:11px;font-weight:700}.tile-monitor{grid-column:1 / -1;grid-row:2;padding:20px;overflow:visible;width:420px;max-width:100%;justify-self:center}.bento.has-searched .tile-monitor{width:auto;justify-self:stretch}.monitor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.monitor-form{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--hairline)}.monitor-list{display:flex;flex-direction:column;gap:10px;margin-top:4px}.monitor-card{background:#ffffff0d;border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:14px 16px}.monitor-card.hit{border-color:#4ade8059;background:#4ade800f}.monitor-route{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.01em}.monitor-meta{font-size:12px;color:var(--muted);margin-top:2px}.monitor-prices{display:flex;gap:12px;align-items:baseline;margin-top:8px}.monitor-target{font-size:12px;color:var(--muted)}.monitor-current{font-size:15px;font-weight:700;color:var(--text)}.monitor-current.hit{color:#4ade80}.monitor-checked{font-size:11px;color:var(--faint);margin-top:4px}.monitor-remove{color:#ff453a!important;margin-top:8px;font-size:12px}.marker-label{font-size:11px;font-weight:500;color:var(--text);background:#ffffffe6;padding:2px 7px;border-radius:7px;white-space:nowrap;box-shadow:var(--shadow-sm);transform:translate(8px,-8px)}@media (max-width: 1040px){body{background-attachment:scroll}body:has(.app.dark){background-attachment:scroll}.bento{grid-template-columns:1fr;gap:20px;padding:72px 20px 40px;max-width:100%}.tile-search{grid-column:1;grid-row:auto;width:420px;max-width:100%;justify-self:center}.tile-matrix,.tile-results{grid-column:1;grid-row:auto;width:auto;justify-self:stretch}.tile-monitor{grid-column:1;grid-row:auto}.bento.has-matrix{max-width:100%}.bento.has-matrix .tile-search,.bento.has-matrix .tile-matrix{width:auto;justify-self:stretch;grid-column:1;grid-row:auto}}@media (max-width: 480px){.bento{padding:72px 16px 32px}.tile-search{width:auto;justify-self:stretch}}
