/* =====================================================================
   FareRaptor V8 TERMINAL
   Bloomberg Terminal x Flight Radar x premium fintech.
   Replaces fareraptor-v6.css + fareraptor-v7-compact.css. Load AFTER style.css.
   Presentation only: no API / engine / app.js / premium.js change.
   Every selector is scoped to body.dr-body (beats style.css .dr-body rules
   without !important; !important is used only against inline photo styles).
   Breakpoints (mobile first is not possible on top of style.css, so ranges):
     >=1280 wide desktop | 1024-1279 desktop | 768-1023 tablet
     640-767 large phone / small tablet | <640 phone | <380 small phone
   ===================================================================== */

body.dr-body{
  --bg0:#04080d;--bg1:#09111a;--bg2:#0d1821;--bg3:#12202c;
  --ln:#172634;--ln2:#22384a;
  --tx:#ecf3f7;--tx2:#a5b7c4;--tx3:#6d8494;
  --cy:#4fe7da;--cy-d:rgba(79,231,218,.12);--cy-l:rgba(79,231,218,.32);
  --am:#ffa31a;--am-d:rgba(255,163,26,.12);--am-l:rgba(255,163,26,.45);
  --gn:#3ee38f;--gn-d:rgba(62,227,143,.12);
  --rd:#ff4b69;--rd-d:rgba(255,75,105,.10);--rd-l:rgba(255,75,105,.5);
  --mono:ui-monospace,"SF Mono",SFMono-Regular,"Roboto Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --gut:clamp(12px,2.6vw,36px);
  --bar:56px;
  margin:0;background:var(--bg0);color:var(--tx);font:14px/1.45 var(--sans);
  overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%;
}
body.dr-body main{max-width:1600px;margin:0 auto;padding:0 var(--gut);overflow:visible}
body.dr-body .eyebrow{font:800 10px/1.2 var(--mono);letter-spacing:.14em;color:var(--cy);text-transform:uppercase}
body.dr-body a:focus-visible,body.dr-body button:focus-visible,body.dr-body input:focus-visible,body.dr-body select:focus-visible{outline:2px solid var(--am);outline-offset:2px}
body.dr-body .num,body.dr-body time{font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------- TOPBAR */
body.dr-body .topbar{position:sticky;top:0;z-index:50;display:flex;flex-wrap:nowrap;align-items:center;gap:18px;
  height:var(--bar);min-height:0;padding:0 max(var(--gut),calc((100vw - 1600px)/2 + var(--gut)));row-gap:0;
  background:rgba(4,8,13,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ln);box-shadow:none}
body.dr-body .topbar .brand{display:flex;align-items:center;gap:8px;margin:0;min-width:0;max-width:none;flex-shrink:0;text-decoration:none;color:var(--tx)}
body.dr-body .fr-logo-mark{width:30px;height:30px;font-size:27px;line-height:1;font-weight:1000;font-style:italic;letter-spacing:-.12em;display:grid;place-items:center;
  color:var(--cy);background:linear-gradient(145deg,#ff9c15 0 35%,#efffff 36% 65%,#19e4d4 66%);-webkit-background-clip:text;background-clip:text}
body.dr-body .fr-brand-text{display:flex;flex-direction:column;gap:1px;min-width:0}
body.dr-body .fr-brand-text b{font-size:19px;line-height:1;letter-spacing:-.05em;color:#f8fcff}
body.dr-body .fr-brand-text b span{color:var(--cy)}
body.dr-body .fr-brand-text small{font:800 7px/1 var(--mono);letter-spacing:.22em;color:var(--tx3);white-space:nowrap}
body.dr-body .dr-topbar-live{display:flex;align-items:center;gap:7px;margin:0;padding:4px 10px;border:1px solid var(--ln2);border-left:1px solid var(--ln2);border-radius:999px;
  font:700 11px/1 var(--mono);color:var(--tx2);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}
body.dr-body .dr-topbar-live b{color:var(--tx)}
body.dr-body .topbar nav{display:flex;align-items:center;gap:4px;margin:0 0 0 auto;padding:0;width:auto;border:0;overflow:visible;order:0}
body.dr-body .topbar nav a{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border-radius:7px;font-size:13px;font-weight:650;color:var(--tx2);text-decoration:none;white-space:nowrap}
body.dr-body .topbar nav a:hover{color:var(--tx);background:var(--bg2)}
body.dr-body .topbar nav a.nav-autopilot{color:var(--am)}
body.dr-body .topbar .top-actions{display:flex;align-items:center;gap:8px;margin:0;flex-shrink:0}
body.dr-body .fr-socials{display:flex;align-items:center;gap:6px;margin:0}
body.dr-body .fr-socials a{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff;box-shadow:none;flex:0 0 auto}
body.dr-body .fr-socials svg{width:18px;height:18px;fill:currentColor;display:block}
body.dr-body .fr-socials .fr-ig{background:linear-gradient(35deg,#ffbd47,#f34373 52%,#8732ef)}
body.dr-body .fr-socials .fr-fb{background:#1877f2}
body.dr-body .lang-switch{display:flex;gap:0;border:1px solid var(--ln2);border-radius:7px;overflow:hidden;order:2}
body.dr-body .lang-switch a{padding:6px 8px;font:800 10.5px/1 var(--mono);color:var(--tx3);text-decoration:none;letter-spacing:.06em}
body.dr-body .lang-switch a.active{background:var(--cy-d);color:var(--cy)}
body.dr-body .fr-menu-btn{display:none;order:3;width:38px;height:38px;padding:0;border:1px solid var(--ln2);border-radius:8px;background:var(--bg1);cursor:pointer;
  flex-direction:column;align-items:center;justify-content:center;gap:4px}
body.dr-body .fr-menu-btn span{display:block;width:16px;height:2px;border-radius:2px;background:var(--tx);transition:transform .2s,opacity .2s}
body.dr-body .topbar.is-open .fr-menu-btn span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.dr-body .topbar.is-open .fr-menu-btn span:nth-child(2){opacity:0}
body.dr-body .topbar.is-open .fr-menu-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ------------------------------------------------------------------ HERO */
body.dr-body .dr-hero{position:relative;isolation:isolate;overflow:visible;display:grid;align-items:stretch;
  grid-template-columns:minmax(0,1fr) minmax(300px,400px);gap:12px 28px;padding:30px 0 6px}
/* Raptor key visual stays — brand element, not a deal photo. Full-bleed, short. */
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{content:"";position:absolute;z-index:-2;top:calc(var(--bar) * -1);left:50%;right:auto;bottom:auto;
  width:100vw;height:calc(var(--hero-h,470px) + var(--bar));min-height:0;transform:translateX(-50%);opacity:1;
  background:linear-gradient(90deg,rgba(4,8,13,.97) 0%,rgba(4,8,13,.80) 34%,rgba(4,8,13,.30) 66%,rgba(4,8,13,.55) 100%),url('/static/fareraptor-hero.jpg') 72% 38%/cover no-repeat;background-color:var(--bg0)}
body.dr-body .dr-hero::after,body.dr-body .dr-hero:after{content:"";position:absolute;z-index:-1;top:calc(var(--bar) * -1);left:50%;right:auto;width:100vw;height:calc(var(--hero-h,470px) + var(--bar) + 2px);min-height:0;transform:translateX(-50%);
  background:linear-gradient(180deg,transparent 45%,var(--bg0) 100%);pointer-events:none}

body.dr-body .fi-intro{min-width:0;padding:4px 0 0;display:flex;flex-direction:column;justify-content:center}
body.dr-body .fr-identity{font:900 10px/1 var(--mono);letter-spacing:.24em;color:var(--cy);margin:0 0 10px}
body.dr-body .dr-hero-tag{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:800 10px/1.3 var(--mono);letter-spacing:.14em;color:var(--tx)}
body.dr-body .fi-version{color:var(--tx3)}
body.dr-body .dr-hero-slogan{font-size:clamp(30px,4.3vw,66px);line-height:.94;font-weight:1000;font-style:italic;letter-spacing:-.06em;margin:14px 0 12px;max-width:none;color:#fff;
  text-shadow:0 6px 28px rgba(0,0,0,.85)}
body.dr-body .dr-hero-slogan span{background:linear-gradient(100deg,#55f5e5,#13cfcf);-webkit-background-clip:text;background-clip:text;color:transparent}
body.dr-body .fi-lead{font-size:14.5px;line-height:1.5;max-width:52ch;margin:0;color:#d2e0e7;text-shadow:0 2px 8px #000}
body.dr-body .fi-lead strong{color:var(--cy)}
body.dr-body .fi-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
body.dr-body .fi-actions a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:40px;padding:0 16px;border-radius:8px;
  font:800 11px/1 var(--mono);letter-spacing:.08em;text-decoration:none}
body.dr-body .fi-actions .primary{background:var(--am);color:#0a1218;border:0;box-shadow:0 6px 22px rgba(255,163,26,.25)}
body.dr-body .fi-secondary{background:rgba(9,17,26,.85);color:var(--tx);border:1px solid var(--ln2)}
body.dr-body .fi-secondary:hover{border-color:var(--cy-l)}

/* radar: brand element, compact */
body.dr-body .fi-radar{position:relative;z-index:1;min-width:0;width:auto;max-width:none;margin:0;justify-self:stretch;
  display:grid;grid-template-columns:1fr;justify-items:center;align-content:center;gap:10px;padding:14px;border-radius:14px;
  background:radial-gradient(ellipse at 50% 38%,rgba(26,113,115,.28),rgba(6,16,24,.92) 68%);border:1px solid rgba(79,231,218,.38);
  box-shadow:0 0 40px rgba(48,225,209,.12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
body.dr-body .fi-radar-face{width:min(100%,220px);aspect-ratio:1;margin:0;filter:drop-shadow(0 0 10px rgba(55,241,217,.22))}
body.dr-body .fi-radar-center{padding:10px}
body.dr-body .fi-radar-center span{font-size:17px}
body.dr-body .fi-radar-center small{display:none}
body.dr-body .fi-radar-readout{width:100%;min-width:0;display:grid;gap:8px}
body.dr-body .fi-radar-target{position:static;inset:auto;max-width:none;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 10px;
  padding:8px 10px;border-radius:8px;background:rgba(4,12,18,.9);border:1px solid var(--cy-l);box-shadow:none;font:600 12px/1.3 var(--mono);color:var(--tx2);overflow-wrap:anywhere}
body.dr-body .fi-radar-target small{grid-column:1/-1;font:800 9px/1.2 var(--mono);letter-spacing:.14em;color:var(--cy)}
body.dr-body .fi-radar-target b{font-size:12.5px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
body.dr-body .fi-radar-target strong{grid-row:span 2;font:800 20px/1 var(--mono);color:var(--cy);text-align:right}
body.dr-body .fi-radar-target em{font-style:normal;font-size:10.5px;color:var(--gn)}
body.dr-body .fi-radar-foot{display:flex;align-items:center;flex-direction:row;gap:7px;margin:0;padding:0 2px;font:800 9px/1.2 var(--mono);letter-spacing:.08em;color:var(--tx2)}
body.dr-body .fi-radar-foot span:last-child{margin-left:auto;color:var(--tx3)}

/* status row (was 2x2 metric blocks) */
body.dr-body .fi-metrics{grid-column:1/-1;display:flex;gap:0;margin:4px 0 0;background:rgba(9,17,26,.92);border:1px solid var(--ln);border-radius:10px;
  overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;position:relative;z-index:1}
body.dr-body .fi-metrics::-webkit-scrollbar{display:none}
body.dr-body .fi-metric{flex:1 0 auto;min-width:118px;min-height:0;padding:8px 14px;display:flex;flex-direction:column;justify-content:center;gap:2px;background:transparent;border-right:1px solid var(--ln)}
body.dr-body .fi-metric:last-child{border-right:0}
body.dr-body .fi-metric small{font:800 9px/1.2 var(--mono);letter-spacing:.12em;color:var(--tx3);white-space:nowrap;text-transform:uppercase}
body.dr-body .fi-metric strong{font:800 15px/1.2 var(--mono);color:var(--tx);white-space:nowrap;overflow-wrap:normal}
body.dr-body .fi-metric.fi-skeleton{min-height:44px}
body.dr-body .fi-feature-head{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;margin:10px 0 0;font:800 9.5px/1.2 var(--mono);letter-spacing:.12em;color:var(--tx3)}
body.dr-body .fi-feature-head .eyebrow{font-size:9.5px}

/* featured target + why */
body.dr-body .dr-hero-main{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:10px;align-items:start}
body.dr-body .dr-hero-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;
  grid-template-areas:"badge badge" "route price" "dest price" "drop score" "meta meta" "foot foot";
  gap:0 16px;min-height:0;padding:16px 18px 14px 20px;border-radius:12px;overflow:hidden;text-decoration:none;color:var(--tx);
  background:linear-gradient(135deg,#0f2029 0%,#0a141c 70%)!important;background-image:linear-gradient(135deg,#0f2029 0%,#0a141c 70%)!important;
  border:1px solid var(--cy-l);box-shadow:inset 3px 0 0 var(--cy),0 12px 32px rgba(0,0,0,.35);transform:none}
body.dr-body .dr-hero-card::before,body.dr-body .dr-hero-card:before{display:none}
body.dr-body .dr-hero-card:hover{border-color:var(--cy);transform:none}
body.dr-body .dr-hero-card>*{position:relative;z-index:1;min-width:0}
body.dr-body .dr-hero-badge{grid-area:badge;justify-self:start;margin:0 0 10px;padding:4px 8px;border-radius:5px;background:var(--cy-d);border:1px solid var(--cy-l);color:var(--cy);
  font:800 10px/1.2 var(--mono);letter-spacing:.1em;-webkit-backdrop-filter:none;backdrop-filter:none}
body.dr-body .dr-hero-badge.anomaly{background:var(--rd);border-color:var(--rd);color:#fff}
body.dr-body .dr-hero-route{grid-area:route;margin:0;font:700 12px/1.3 var(--mono);letter-spacing:.04em;color:var(--tx2);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-hero-dest{grid-area:dest;margin:2px 0 0;font-size:clamp(22px,2.4vw,32px);line-height:1.08;font-weight:850;letter-spacing:-.03em;color:#fff;overflow-wrap:anywhere}
body.dr-body .dr-hero-price-row{grid-area:price;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;text-align:right}
body.dr-body .dr-hero-price{font:800 clamp(32px,3.6vw,50px)/1 var(--mono);letter-spacing:-.04em;color:var(--cy);text-shadow:0 0 22px rgba(79,231,218,.22);overflow-wrap:normal;white-space:nowrap}
body.dr-body .dr-hero-price-sub{font:600 11px/1.3 var(--mono);color:var(--tx2)}
body.dr-body .dr-hero-drop{grid-area:drop;justify-self:start;align-self:center;margin:12px 0 0;padding:4px 8px;border-radius:5px;border:0;background:var(--gn-d);color:var(--gn);font:800 12px/1.2 var(--mono)}
body.dr-body .fi-hero-score{grid-area:score;justify-self:end;align-self:center;margin:12px 0 0;display:flex;align-items:baseline;gap:6px;font:800 9.5px/1.2 var(--mono);letter-spacing:.1em;color:var(--tx2)}
body.dr-body .fi-hero-score strong{font:800 22px/1 var(--mono);color:#fff}
body.dr-body .fi-hero-score span{color:var(--cy)}
body.dr-body .dr-hero-meta{grid-area:meta;display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;font:600 11.5px/1.35 var(--mono);color:var(--tx2)}
body.dr-body .dr-hero-meta b{color:var(--tx)}
body.dr-body .dr-hero-foot{grid-area:foot;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--ln)}
body.dr-body .dr-hero-fresh{font:600 11px/1.3 var(--mono);color:var(--tx3)}
body.dr-body .dr-hero-cta{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border-radius:8px;background:var(--am);color:#0a1218;border:0;font:800 12px/1 var(--sans);letter-spacing:.02em;white-space:nowrap}
body.dr-body .dr-hero-card.fi-loading{min-height:150px;align-content:center}
body.dr-body .dr-hero-card.fi-loading .dr-hero-badge{margin:0}

body.dr-body .fi-explain-panel{min-width:0;padding:12px 14px;border-radius:12px;background:var(--bg1);border:1px solid var(--ln)}
body.dr-body .fr-why-head{display:flex;align-items:center;gap:10px}
body.dr-body .fr-why-head h2,body.dr-body .fi-explain-panel h2{margin:3px 0 0;font-size:15px;line-height:1.2;letter-spacing:-.01em}
body.dr-body .fr-why-head .eyebrow{font-size:9px}
body.dr-body .fr-why-toggle{margin-left:auto;display:none;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:7px;border:1px solid var(--ln2);background:var(--bg2);color:var(--tx2);
  font:800 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;flex-shrink:0}
html.fr-js body.dr-body .fr-why-toggle{display:inline-flex}
body.dr-body .fr-why-toggle i{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
body.dr-body .fi-explain-panel.is-open .fr-why-toggle i{transform:rotate(-135deg) translateY(-1px)}
body.dr-body .fi-explain-body{margin-top:8px;font-size:12.5px;color:var(--tx2)}
body.dr-body .fi-score{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;padding:6px 10px;border:1px solid var(--ln);border-radius:8px;background:var(--bg2)}
body.dr-body .fi-score>span{font:800 9.5px/1.2 var(--mono);letter-spacing:.12em;color:var(--tx2)}
body.dr-body .fi-score strong{grid-row:span 2;font:800 24px/1 var(--mono);color:var(--cy)}
body.dr-body .fi-score strong small{font-size:11px;color:var(--tx3)}
body.dr-body .fi-score em{grid-column:1;grid-row:2;text-align:left;font:700 10px/1.2 var(--mono);color:var(--gn);font-style:normal}
body.dr-body .fi-explain-body ul{list-style:none;margin:8px 0 2px;padding:0;display:grid;gap:4px}
body.dr-body .fi-explain-body li{position:relative;padding-left:16px;font-size:12.5px;line-height:1.4}
body.dr-body .fi-explain-body li::before,body.dr-body .fi-explain-body li:before{content:'›';position:absolute;left:3px;top:-1px;margin:0;color:var(--cy);font-weight:900}
html.fr-js body.dr-body .fi-explain-panel:not(.is-open) .fi-explain-body>:not(.fi-score){display:none}
body.dr-body .fi-side-heading{margin:12px 0 6px;font:800 9px/1.2 var(--mono);letter-spacing:.14em;color:var(--tx3)}
body.dr-body .dr-side-stack{display:grid;grid-template-columns:1fr;gap:4px;overflow:visible;flex-direction:initial}

/* compact opportunity rows (side stack + type row) */
body.dr-body .dr-opp-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"kicker price" "dest price" "route price";align-items:center;gap:0 10px;
  min-height:0;min-width:0;padding:7px 10px;border-radius:8px;flex:initial;background:var(--bg2)!important;background-image:none!important;border:1px solid var(--ln);box-shadow:none;color:var(--tx);text-decoration:none;cursor:pointer}
body.dr-body .dr-opp-card::before,body.dr-body .dr-opp-card:before{display:none}
body.dr-body .dr-opp-card:hover{border-color:var(--cy-l);transform:none}
body.dr-body .dr-opp-kicker{grid-area:kicker;font:800 8.5px/1.3 var(--mono);letter-spacing:.12em;color:var(--cy);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-opp-dest{grid-area:dest;margin:0;font-size:14px;line-height:1.25;font-weight:750;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-opp-route{grid-area:route;margin:0;font:600 10.5px/1.3 var(--mono);color:var(--tx3);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-opp-price{grid-area:price;font:800 18px/1 var(--mono);color:var(--cy);white-space:nowrap}

/* ticker */
body.dr-body .dr-ticker-wrap{grid-column:1/-1;margin:8px 0 0;border:1px solid var(--ln);border-radius:8px;background:var(--bg1)}
body.dr-body .dr-ticker{padding:6px 0}
body.dr-body .dr-ticker span{padding:0 14px;font:600 11.5px/1.4 var(--mono);color:var(--tx2);border-right:1px solid var(--ln)}
body.dr-body .dr-ticker span b{color:var(--tx)}
body.dr-body .dr-ticker span.dr-tick-price{color:var(--cy)}

/* ----------------------------------------------------- SIGNAL FEED (terminal) */
body.dr-body .fi-feed-section{margin:14px 0 0;padding:0;border:1px solid var(--ln);border-radius:12px;background:var(--bg1);overflow:hidden}
body.dr-body .fi-feed-heading{display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--ln);background:var(--bg2)}
body.dr-body .fi-feed-heading>div{display:flex;align-items:baseline;gap:10px;min-width:0}
body.dr-body .fi-feed-heading h2{margin:0;font-size:15px;letter-spacing:-.01em;white-space:nowrap}
body.dr-body .fi-feed-heading p{margin:0 0 0 auto;max-width:none;font:600 10.5px/1.3 var(--mono);color:var(--tx3);text-align:right}
body.dr-body .fi-feed{display:block;margin:0;font-family:var(--mono)}
body.dr-body .fi-feed>p{margin:0;padding:12px 14px;font-size:12px;color:var(--tx3)}
body.dr-body .fi-feed-row{display:grid;grid-template-columns:46px 22px minmax(0,1fr) auto 104px;gap:10px;align-items:center;min-height:32px;padding:5px 14px;
  border-top:1px solid var(--ln);font:600 12px/1.3 var(--mono);color:var(--tx);text-decoration:none}
body.dr-body .fi-feed-row:first-child{border-top:0}
body.dr-body .fi-feed-row:nth-child(even){background:rgba(255,255,255,.015)}
body.dr-body .fi-feed-row:hover{background:var(--bg3)}
body.dr-body .fi-feed-row>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.dr-body .fi-feed-row time{color:var(--tx3)}
body.dr-body .fi-feed-signal{color:var(--cy);text-align:center}
body.dr-body .fi-feed-row b,body.dr-body .fi-feed-row strong{color:var(--cy);font-weight:800;text-align:right}
body.dr-body .fi-feed-delta{text-align:right;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--gn)}
body.dr-body .fi-feed-row.fr-dup{display:none}
body.dr-body .fi-feed:not(.fr-expanded) .fi-feed-row.fr-over{display:none}
body.dr-body .fr-feed-more{display:block;width:100%;padding:8px 14px;border:0;border-top:1px solid var(--ln);background:var(--bg2);color:var(--cy);
  font:800 10.5px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-align:left}
body.dr-body .fr-feed-more[hidden]{display:none}

/* -------------------------------------------------------------- SECTIONS */
body.dr-body .dr-section{padding:30px 0 4px;scroll-margin-top:calc(var(--bar) + 10px)}
body.dr-body .dr-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 10px}
body.dr-body .dr-section-head h2{margin:2px 0 0;font-size:clamp(19px,2vw,26px);line-height:1.15;letter-spacing:-.03em}
body.dr-body .dr-section-head p{margin:3px 0 0;max-width:80ch;font-size:12.5px;line-height:1.4;color:var(--tx2)}
body.dr-body .dr-type-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:8px}

/* -------------------------------------------- DEAL CARDS: price first, no photo */
body.dr-body .dr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,268px),1fr));gap:8px;margin-top:10px}
body.dr-body .dr-card{--accent:transparent;position:relative;display:flex;flex-direction:column;min-width:0;border-radius:10px;overflow:hidden;
  background:var(--bg1);border:1px solid var(--ln);box-shadow:none;transform:none;transition:border-color .15s,background-color .15s}
body.dr-body .dr-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);pointer-events:none}
body.dr-body .dr-card:hover{transform:none;border-color:var(--ln2);background:#0b1620;box-shadow:none}
/* former photo area -> one thin data strip: badge + IATA */
body.dr-body .dr-card-visual{display:flex;align-items:center;gap:8px;height:auto;min-height:0;padding:6px 12px 6px 14px;position:relative;
  background:var(--bg2)!important;background-image:none!important;border-bottom:1px solid var(--ln)}
body.dr-body .dr-card-visual::after,body.dr-body .dr-card-visual:after{display:none!important}
body.dr-body .dr-card-visual img{display:none}
body.dr-body .dr-card-badge{position:static;inset:auto;min-width:0;max-width:72%;padding:3px 6px;border-radius:4px;border:1px solid var(--cy-l);background:var(--cy-d);color:var(--cy);
  font:800 9.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-backdrop-filter:none;backdrop-filter:none}
body.dr-body .dr-card-visual .dr-iata{position:static;margin-left:auto;padding:0;background:none;border-radius:0;color:var(--tx2);font:800 10.5px/1.2 var(--mono);letter-spacing:.08em;white-space:nowrap;-webkit-backdrop-filter:none;backdrop-filter:none}
body.dr-body .dr-card-body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:0 12px;padding:9px 12px 10px 14px;flex:1}
body.dr-body .dr-card-body>*{min-width:0}
body.dr-body .dr-card-dest{grid-column:1;grid-row:1;margin:0;font-size:15.5px;line-height:1.25;font-weight:780;letter-spacing:-.01em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-continent{font-size:.68em;opacity:.65;margin-left:.3em}
body.dr-body .dr-card-route{grid-column:1;grid-row:2;margin:1px 0 0;font:600 11px/1.3 var(--mono);color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-card-price-row{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:1px;text-align:right}
body.dr-body .dr-card-price{font:800 25px/1 var(--mono);letter-spacing:-.04em;color:var(--tx);text-shadow:none;white-space:nowrap}
body.dr-body .dr-card-price-sub{font:600 10.5px/1.25 var(--mono);color:var(--tx3);white-space:nowrap}
body.dr-body .dr-card-meta{grid-column:1;grid-row:3;display:flex;flex-wrap:nowrap;gap:0;margin:6px 0 0;font:600 11px/1.3 var(--mono);color:var(--tx2);overflow:hidden;white-space:nowrap}
body.dr-body .dr-card-meta>*{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-card-meta>*+*::before{content:"·";padding:0 6px;color:var(--tx3)}
body.dr-body .dr-card-drop{grid-column:2;grid-row:3;justify-self:end;align-self:end;margin:6px 0 0;padding:2px 6px;border-radius:4px;background:var(--gn-d);color:var(--gn);font:800 11px/1.3 var(--mono);white-space:nowrap}
body.dr-body .fi-card-intel{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:7px 0 0;padding:5px 8px;border-radius:6px;
  background:linear-gradient(90deg,rgba(79,231,218,.13) calc(var(--s,0) * 1%),var(--bg2) calc(var(--s,0) * 1%));border:1px solid var(--ln)}
body.dr-body .fi-card-intel span{display:flex;align-items:baseline;gap:6px;flex-shrink:0;justify-content:flex-start;font:800 9.5px/1.2 var(--mono);letter-spacing:.1em;color:var(--tx2)}
body.dr-body .fi-card-intel b{font:800 13px/1 var(--mono);color:var(--cy)}
body.dr-body .fi-card-intel small{min-width:0;flex:1;font:500 11px/1.3 var(--sans);color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-anomaly-evidence{grid-column:1/-1;display:grid;gap:1px;margin:7px 0 0;padding:5px 8px;border-left:2px solid var(--rd);border-radius:0 6px 6px 0;background:var(--rd-d);font:600 10.5px/1.35 var(--mono);color:var(--tx2)}
body.dr-body .dr-anomaly-evidence b{color:var(--tx)}
body.dr-body .dr-card-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 0;padding:0;border:0}
body.dr-body .dr-card-fresh{min-width:0;font:600 10.5px/1.3 var(--mono);color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dr-body .dr-card-cta{flex-shrink:0;display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:7px;border:1px solid var(--am-l);background:var(--am-d);color:var(--am);
  font:800 11.5px/1 var(--sans);text-decoration:none;white-space:nowrap}
body.dr-body .dr-card:hover .dr-card-cta{background:var(--am);color:#0a1218}

/* signal levels — set by app.js (.dr-anomaly) or by fareraptor-v8-ui.js (.fr-*) */
body.dr-body .dr-card.fr-strong{--accent:var(--cy)}
body.dr-body .dr-card.fr-hot{--accent:var(--am);border-color:rgba(255,163,26,.35);background:linear-gradient(180deg,rgba(255,163,26,.06),var(--bg1) 55%)}
body.dr-body .dr-card.fr-hot .dr-card-visual{background:rgba(255,163,26,.09)!important}
body.dr-body .dr-card.fr-hot .dr-card-badge{background:var(--am);border-color:var(--am);color:#0a1218}
body.dr-body .dr-card.fr-hot .dr-card-price{color:var(--am)}
body.dr-body .dr-card.dr-anomaly,body.dr-body .dr-card.fr-error{--accent:var(--rd);border-color:var(--rd-l);background:linear-gradient(180deg,rgba(255,75,105,.09),var(--bg1) 60%)}
body.dr-body .dr-card.dr-anomaly .dr-card-visual,body.dr-body .dr-card.fr-error .dr-card-visual{background:rgba(255,75,105,.13)!important;border-bottom-color:rgba(255,75,105,.3)}
body.dr-body .dr-card.dr-anomaly .dr-card-badge,body.dr-body .dr-card.fr-error .dr-card-badge{background:var(--rd);border-color:var(--rd);color:#fff;animation:fr-blink 1.6s steps(2,start) infinite}
body.dr-body .dr-card.dr-anomaly .dr-card-price,body.dr-body .dr-card.fr-error .dr-card-price{color:#ff7d93}
body.dr-body .dr-card.dr-anomaly .dr-card-drop,body.dr-body .dr-card.fr-error .dr-card-drop{background:var(--rd-d);color:#ff8ea1}
body.dr-body .dr-hero-card.fr-error{border-color:var(--rd-l);box-shadow:inset 3px 0 0 var(--rd),0 12px 32px rgba(0,0,0,.35)}
body.dr-body .dr-hero-card.fr-error .dr-hero-price{color:#ff7d93}
body.dr-body .dr-hero-card.fr-hot{border-color:var(--am-l);box-shadow:inset 3px 0 0 var(--am),0 12px 32px rgba(0,0,0,.35)}
body.dr-body .dr-hero-card.fr-hot .dr-hero-price{color:var(--am)}
@keyframes fr-blink{50%{opacity:.55}}

/* error radar section */
body.dr-body .error-lab .eyebrow{color:var(--rd)}
body.dr-body .error-lab .dr-section-head h2{color:#fff}
body.dr-body .dr-empty-radar{grid-column:1/-1;padding:16px;border:1px dashed var(--ln2);border-radius:10px;text-align:left;font-size:12.5px;color:var(--tx2)}
body.dr-body .dr-empty-radar b{display:block;margin:0 0 2px;font-size:14px;color:var(--tx)}
body.dr-body .dr-empty-radar.fi-skeleton{min-height:64px}

/* ------------------------------------------------------- TABS + FILTERS */
body.dr-body .dr-tabs{display:flex;gap:6px;margin:0;padding:0 0 2px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
body.dr-body .dr-tabs::-webkit-scrollbar{display:none}
body.dr-body .dr-tabs button{flex-shrink:0;min-height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--ln2);background:var(--bg1);color:var(--tx2);font:700 12px/1 var(--sans);white-space:nowrap;cursor:pointer}
body.dr-body .dr-tabs button.active{background:var(--cy-d);border-color:var(--cy);color:var(--cy);box-shadow:none}
body.dr-body .dr-filters{margin:8px 0 0}
body.dr-body .dr-filters-toggle{min-height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--ln2);background:var(--bg1);color:var(--tx2);font:700 12px/1 var(--sans)}
body.dr-body .dr-filters-panel{gap:8px;margin-top:8px;padding:10px;border-radius:10px;background:var(--bg1);border:1px solid var(--ln)}
body.dr-body .dr-filters-panel.open{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}
body.dr-body .dr-filters-panel input,body.dr-body .dr-filters-panel select{min-height:38px;padding:0 10px;border-radius:7px;background:var(--bg0);border:1px solid var(--ln2);color:var(--tx);font-size:13px}
body.dr-body .feed-more-wrap{display:flex;justify-content:center;margin:12px 0 0}
body.dr-body .feed-more-wrap .secondary{min-height:38px;padding:0 20px;border-radius:8px;background:var(--bg1);border:1px solid var(--ln2);color:var(--tx);font:800 12px/1 var(--mono);letter-spacing:.06em}

/* ------------------------------------------------------------ AUTOPILOT */
body.dr-body .fi-autopilot{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:16px 28px;margin:30px 0 0;padding:18px 20px;border-radius:12px;
  background:linear-gradient(120deg,#0e2128,var(--bg1));border:1px solid var(--cy-l);scroll-margin-top:calc(var(--bar) + 10px)}
body.dr-body .fi-autopilot h2{margin:6px 0 6px;font-size:clamp(20px,2.2vw,30px);line-height:1.08;letter-spacing:-.04em}
body.dr-body .fi-autopilot p{margin:0;font-size:12.5px;color:var(--tx2)}
body.dr-body .fi-hunt-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:end;margin:0}
body.dr-body .fi-hunt-form label{display:grid;gap:4px;font:800 9.5px/1.2 var(--mono);letter-spacing:.1em;color:var(--tx2)}
body.dr-body .fi-hunt-form input,body.dr-body .fi-hunt-form select{min-height:40px;padding:0 10px;border-radius:7px;background:var(--bg0);border:1px solid var(--ln2);color:var(--tx);font:600 14px/1 var(--sans)}
body.dr-body .fi-hunt-form .fi-checkbox{display:flex;align-items:center;gap:8px;min-height:40px}
body.dr-body .fi-checkbox input{width:auto;min-height:0;accent-color:var(--cy)}
body.dr-body .fi-hunt-form button{min-height:40px;width:100%;border-radius:7px;background:var(--am);color:#0a1218;font:800 12px/1 var(--mono);letter-spacing:.06em}
body.dr-body .fi-hunt-feedback{grid-column:1/-1;margin:0;min-height:0;font-size:12px!important;color:var(--cy)}
body.dr-body .fi-hunt-feedback:empty{display:none}

body.dr-body .dr-footer{margin-top:28px;padding:18px 0 calc(22px + env(safe-area-inset-bottom,0px));font:600 11px/1.4 var(--mono);color:var(--tx3);border-top:1px solid var(--ln)}

/* modal (deal detail) */
body.dr-body .modal-card{background:var(--bg1);border-color:var(--ln2);border-radius:14px;padding:20px}

/* ====================================================== RESPONSIVE RANGES */
@media (min-width:1280px){
  body.dr-body .fi-feed{display:grid;grid-template-columns:1fr 1fr;column-gap:0}
  body.dr-body .fi-feed .fi-feed-row:nth-child(2){border-top:0}
  body.dr-body .fi-feed .fi-feed-row:nth-child(odd){border-right:1px solid var(--ln)}
  body.dr-body .fi-feed .fi-feed-row:nth-child(even){background:transparent}
  body.dr-body .fi-feed>p{grid-column:1/-1}
}
@media (min-width:1700px){
  body.dr-body{font-size:15px}
  body.dr-body .dr-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
}

/* desktop: full nav; below: hamburger */
@media (max-width:1180px){
  body.dr-body .dr-topbar-live{max-width:190px}
  body.dr-body .topbar nav a{padding:0 8px;font-size:12.5px}
}
@media (max-width:1023px){
  body.dr-body{--bar:52px}
  body.dr-body .topbar{gap:10px}
  body.dr-body .dr-topbar-live{margin-left:auto}
  html.fr-js body.dr-body .fr-menu-btn{display:inline-flex}
  html.fr-js body.dr-body .topbar nav{position:absolute;top:100%;left:0;right:0;margin:0;padding:6px var(--gut) 12px;display:none;flex-direction:column;align-items:stretch;gap:0;
    background:rgba(4,8,13,.98);border-bottom:1px solid var(--ln2);box-shadow:0 18px 40px rgba(0,0,0,.6);overflow:visible}
  html.fr-js body.dr-body .topbar.is-open nav{display:flex}
  html.fr-js body.dr-body .topbar nav a{min-height:46px;padding:0 4px;border-bottom:1px solid var(--ln);border-radius:0;font-size:15px;color:var(--tx)}
  html.fr-js body.dr-body .topbar nav a:last-child{border-bottom:0}
  /* no-JS fallback: second scrollable row */
  html:not(.fr-js) body.dr-body .topbar{flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:0}
  html:not(.fr-js) body.dr-body .topbar nav{order:9;width:100%;overflow-x:auto;margin:0;padding:4px 0}

  body.dr-body .dr-hero{grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:10px 18px;padding-top:22px;--hero-h:420px}
  body.dr-body .dr-hero-main{grid-template-columns:1fr}
  body.dr-body .dr-side-stack{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
  body.dr-body .fi-autopilot{grid-template-columns:1fr}
}

/* phones + small tablets: hero intro and radar become one compact block */
@media (max-width:767px){
  body.dr-body .dr-hero{grid-template-columns:minmax(0,1fr);gap:10px;padding-top:16px;--hero-h:330px}
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{background:linear-gradient(180deg,rgba(4,8,13,.55) 0%,rgba(4,8,13,.72) 50%,rgba(4,8,13,.96) 100%),url('/static/fareraptor-hero.jpg') 62% 30%/cover no-repeat;background-color:var(--bg0)}
  body.dr-body .fr-identity{display:none}
  body.dr-body .dr-hero-tag{font-size:9px;letter-spacing:.1em}
  body.dr-body .fi-version{display:none}
  body.dr-body .dr-hero-slogan{font-size:clamp(30px,8.6vw,46px);margin:8px 0 8px}
  body.dr-body .fi-lead{font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  body.dr-body .fi-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}
  body.dr-body .fi-actions a{min-height:38px;padding:0 8px;font-size:10px;gap:6px}
  /* radar strip: small radar left, live readout right */
  body.dr-body .fi-radar{grid-template-columns:96px minmax(0,1fr);justify-items:stretch;align-items:center;gap:12px;padding:10px;border-radius:12px}
  body.dr-body .fi-radar-face{width:96px}
  body.dr-body .fi-radar-center{padding:6px}
  body.dr-body .fi-radar-center span{font-size:12px}
  body.dr-body .fi-radar-readout{gap:6px}
  body.dr-body .fi-radar-target{padding:6px 8px}
  body.dr-body .fi-radar-target strong{font-size:18px}
  body.dr-body .fi-radar-foot{font-size:8.5px;letter-spacing:.04em}
  body.dr-body .fi-metric{min-width:100px;padding:6px 10px}
  body.dr-body .fi-metric strong{font-size:13px}
  body.dr-body .fi-feature-head span:last-child{display:none}
  body.dr-body .fi-feed-heading p{display:none}
  body.dr-body .fi-feed-row{grid-template-columns:40px minmax(0,1fr) auto 70px;gap:8px;padding:5px 12px;font-size:11.5px;min-height:30px}
  body.dr-body .fi-feed-signal{display:none}
  body.dr-body .fi-feed-delta{display:block;font-size:9.5px}
  body.dr-body .dr-section{padding-top:24px}
  body.dr-body .dr-section-head p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px}
  body.dr-body .dr-type-row{grid-template-columns:1fr 1fr;gap:6px}
  body.dr-body .dr-type-row .dr-opp-card{grid-template-columns:minmax(0,1fr);grid-template-areas:"kicker" "dest" "route" "price";gap:1px;padding:8px 10px}
  body.dr-body .dr-type-row .dr-opp-price{margin-top:3px;font-size:17px}
  body.dr-body .fi-hunt-form{grid-template-columns:1fr 1fr}
  body.dr-body .fi-hunt-form button{grid-column:1/-1}
  body.dr-body .fi-autopilot{padding:14px;margin-top:24px}
  body.dr-body .fi-autopilot p{display:none}
  body.dr-body .dr-hero-card{padding:12px 14px 12px 16px;gap:0 12px}
  body.dr-body .dr-hero-dest{font-size:22px}
  body.dr-body .dr-hero-price{font-size:clamp(28px,8.8vw,40px)}
  body.dr-body .dr-hero-badge{margin-bottom:8px}
  body.dr-body .dr-hero-drop,body.dr-body .fi-hero-score{margin-top:8px}
  body.dr-body .dr-hero-meta{margin-top:7px;font-size:11px;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
  body.dr-body .dr-hero-meta>*{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
  body.dr-body .dr-hero-foot{margin-top:9px;padding-top:9px}
  body.dr-body .dr-hero-cta{min-height:36px}
  body.dr-body .dr-side-stack{grid-template-columns:1fr}
  body.dr-body .modal{padding:0;align-items:end}
  body.dr-body .modal-card,body.dr-body .modal-card.wide{width:100%;max-height:88vh;border-radius:16px 16px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px))}
  body.dr-body input,body.dr-body select,body.dr-body textarea{font-size:16px}
}

@media (max-width:639px){
  body.dr-body .dr-topbar-live{display:none}
  body.dr-body .top-actions{margin-left:auto!important}
  body.dr-body .dr-grid{grid-template-columns:1fr;gap:6px}
  body.dr-body .dr-card-body{padding:8px 12px 9px 14px}
  body.dr-body .dr-card-price{font-size:24px}
  body.dr-body .fi-card-intel small{font-size:10.5px}
}
@media (max-width:420px){
  body.dr-body .fr-brand-text small{display:none}
  body.dr-body .fr-brand-text b{font-size:18px}
  body.dr-body .fr-socials a{width:28px;height:28px;border-radius:7px}
  body.dr-body .fr-socials svg{width:16px;height:16px}
  body.dr-body .top-actions{gap:6px}
  body.dr-body .lang-switch a{padding:6px 6px}
  body.dr-body .fr-menu-btn{width:36px;height:36px}
  body.dr-body .fi-feed-row{grid-template-columns:38px minmax(0,1fr) auto}
  body.dr-body .fi-feed-delta{display:none}
  body.dr-body .dr-card-fresh{font-size:10px}
}
@media (max-width:359px){
  body.dr-body .fr-logo-mark{width:24px;font-size:22px}
  body.dr-body .fr-brand-text b{font-size:16px}
  body.dr-body .fr-socials{gap:4px}
  body.dr-body .fr-socials a{width:26px;height:26px}
  body.dr-body .lang-switch a{padding:5px 4px;font-size:10px}
  body.dr-body .dr-hero-slogan{font-size:28px}
  body.dr-body .fi-actions{grid-template-columns:1fr}
  body.dr-body .fi-radar{grid-template-columns:80px minmax(0,1fr)}
  body.dr-body .fi-radar-face{width:80px}
  body.dr-body .dr-type-row{grid-template-columns:1fr}
  body.dr-body .dr-card-price{font-size:22px}
  body.dr-body .dr-card-dest{font-size:14.5px}
}
/* phones in landscape: don't let the hero eat the short viewport */
@media (max-height:500px) and (orientation:landscape){
  body.dr-body .dr-hero{--hero-h:300px}
  body.dr-body .dr-hero-slogan{font-size:30px}
  body.dr-body .fi-radar{grid-template-columns:90px minmax(0,1fr);justify-items:stretch;align-items:center}
  body.dr-body .fi-radar-face{width:90px}
}
@media (hover:none){
  body.dr-body .dr-card:hover{background:var(--bg1)}
  body.dr-body .dr-card:hover .dr-card-cta{background:var(--am-d);color:var(--am)}
  body.dr-body .dr-card:active{border-color:var(--cy-l)}
}
@media (prefers-reduced-motion:reduce){
  body.dr-body .fi-sweep,body.dr-body .dr-ticker,body.dr-body .dr-card-badge{animation:none!important}
  body.dr-body *{transition:none!important}
}

/* ===================================================== V8.1 refinements */
/* card: original price/currency gets its own line so route + dates never get squeezed */
body.dr-body .dr-card-price-row{display:contents}
body.dr-body .dr-card-price{grid-column:2;grid-row:1/3;align-self:start;justify-self:end;text-align:right}
body.dr-body .dr-card-price-sub{grid-column:1;grid-row:3;align-self:center;text-align:left;justify-self:start;margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tx3)}
body.dr-body .dr-card-price-sub::before{content:none}
body.dr-body .dr-card-drop{grid-column:2;grid-row:3;align-self:center;margin:4px 0 0}
body.dr-body .dr-card-meta{grid-column:1/-1;grid-row:4;margin:5px 0 0}
body.dr-body .dr-card-body>.fi-card-intel{grid-row:5}
body.dr-body .dr-card-body>.dr-anomaly-evidence{grid-row:6}
body.dr-body .dr-card-body>.dr-card-foot{grid-row:7}
/* hero: price column never steals the destination's width */
body.dr-body .dr-hero-price-row{max-width:min(52vw,300px)}
body.dr-body .dr-hero-price-sub{white-space:normal;text-align:right}
body.dr-body .dr-hero-drop{white-space:nowrap}
body.dr-body .dr-hero-route{white-space:normal}
/* desktop: why + other live targets side by side → no empty area under the featured card */
@media (min-width:1024px){
  body.dr-body .dr-hero-main{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:stretch}
  body.dr-body .fi-explain-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);grid-template-areas:"head sideh" "body stack";gap:0 16px;align-content:start}
  body.dr-body .fr-why-head{grid-area:head}
  body.dr-body .fi-explain-body{grid-area:body}
  body.dr-body .fi-side-heading{grid-area:sideh;margin:0;align-self:end;padding-bottom:4px}
  body.dr-body .dr-side-stack{grid-area:stack;margin-top:8px;align-content:start}
  body.dr-body .dr-hero-card{align-content:space-between}
}
/* phones */
@media (max-width:767px){
  body.dr-body .fi-metrics{overflow-x:auto}
  body.dr-body .fi-metric{flex:1 1 0;min-width:78px;padding:6px 8px}
  body.dr-body .fi-metric small{overflow:hidden;text-overflow:ellipsis;font-size:8.5px;letter-spacing:.08em}
  body.dr-body .dr-side-stack .dr-opp-card{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"kicker kicker price" "dest route price";gap:0 8px;padding:6px 10px}
  body.dr-body .dr-side-stack .dr-opp-route{align-self:center}
}
@media (max-width:420px){
  body.dr-body .fi-feed-row{grid-template-columns:36px minmax(0,1fr) auto 56px;gap:7px}
  body.dr-body .fi-feed-delta{display:block;font-size:9px;letter-spacing:0}
}
@media (max-width:359px){body.dr-body .fi-feed-delta{display:none}body.dr-body .fi-feed-row{grid-template-columns:36px minmax(0,1fr) auto}}

/* ===================================================== V8.2 live-site fixes */
/* status row: cells sized to content, never overlap; scroll + fade when it doesn't fit */
body.dr-body .fi-metric{flex:1 0 auto;min-width:max-content}
body.dr-body .fi-metric strong,body.dr-body .fi-metric small{overflow:visible;text-overflow:clip}
@media (max-width:767px){
  body.dr-body .fi-metrics{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  body.dr-body .fi-metric{flex:0 0 auto;min-width:max-content;padding:6px 12px}
  body.dr-body .fi-metric:last-child{padding-right:28px}
}
/* hero card on phones: score moves to the header row, long discount text gets a full row */
body.dr-body .dr-hero-drop{white-space:normal;max-width:100%}
@media (max-width:767px){
  body.dr-body .dr-hero-card{grid-template-areas:"badge score" "route price" "dest price" "drop drop" "meta meta" "foot foot"}
  body.dr-body .dr-hero-badge{align-self:center;margin-bottom:8px}
  body.dr-body .fi-hero-score{margin:0 0 8px;align-self:center;font-size:8.5px;gap:5px}
  body.dr-body .fi-hero-score strong{font-size:19px}
  body.dr-body .dr-hero-drop{margin-top:10px;font-size:11.5px}
}
/* signal feed: empty cells removed (marked .fr-empty by v8-ui.js), route reads left-to-right */
body.dr-body .fi-feed-row{grid-template-columns:46px 22px minmax(0,1fr) auto auto}
body.dr-body .fi-feed-row>.fr-empty,body.dr-body .fi-feed-row>:empty{display:none}
body.dr-body .fi-feed-row b,body.dr-body .fi-feed-row strong{text-align:left}
body.dr-body .fi-feed-row>:last-child:not(:nth-child(-n+3)){text-align:right;min-width:56px}
@media (max-width:767px){body.dr-body .fi-feed-row{grid-template-columns:38px minmax(0,1fr) auto auto}}
@media (max-width:359px){body.dr-body .fi-feed-row{grid-template-columns:36px minmax(0,1fr) auto}}
/* opportunity cards: whatever wrapper app.js uses, keep them tight (no stretched empty rows) */
body.dr-body .dr-opp-card{align-content:start;height:auto;min-height:0!important}
body.dr-body .dr-type-row{align-items:start}
body.dr-body .dr-opp-card:has(>div){display:flex;flex-direction:column;justify-content:flex-start;gap:2px}
body.dr-body .dr-opp-card>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0;margin:0;padding:0}
body.dr-body .dr-opp-card>div>*{min-width:0;margin:0}
body.dr-body .dr-opp-card>div>:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.dr-body .dr-opp-card>*:not(div){margin:0}
@media (max-width:767px){
  body.dr-body .dr-type-row .dr-opp-card:has(>div){gap:1px}
}
body.dr-body .dr-opp-card:has(>div){align-items:stretch;text-align:left}
body.dr-body .dr-card-drop,body.dr-body .dr-card-price{min-width:max-content}
body.dr-body .dr-card-price-sub{min-width:0;max-width:100%}

/* ===================================================== V8.4 raptor key visual: ORIGINAL placement, no jumps
   Same composition as before (eye top-left behind the headline, torn ticket centre, ring arc right).
   The jump came from breakpoints changing the layer height (382/472/526px) and the crop point
   (62% 30% vs 72% 38%). Now ONE geometry for every width -> the image only scales smoothly. */
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before,
body.dr-body .dr-hero::after,body.dr-body .dr-hero:after{top:calc(var(--bar) * -1);height:526px;min-height:0}
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
  background:linear-gradient(90deg,rgba(4,8,13,.97) 0%,rgba(4,8,13,.80) 34%,rgba(4,8,13,.30) 66%,rgba(4,8,13,.55) 100%),
    url('/static/fareraptor-hero.jpg') 72% 38%/cover no-repeat,var(--bg0)}
body.dr-body .dr-hero::after,body.dr-body .dr-hero:after{background:linear-gradient(180deg,transparent 45%,var(--bg0) 100%)}
@media (max-width:767px){
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
    background:linear-gradient(180deg,rgba(4,8,13,.55) 0%,rgba(4,8,13,.72) 45%,rgba(4,8,13,.96) 75%),
      url('/static/fareraptor-hero.jpg') 72% 38%/cover no-repeat,var(--bg0)}
}

/* ===================================================== V8.5 raptor key visual: SAME view at every size
   Fixed pixel size (= the small-screen view), anchored to the right edge exactly like on phones.
   No "cover": it never zooms into the centre, so window resize / browser zoom can't crop it. */
body.dr-body .dr-hero{--fr-s:526px;--fr-r:calc(var(--side,0px) - 32px)}
body.dr-body .dr-hero{--side:max(var(--gut),calc((100vw - 1600px)/2 + var(--gut)))}
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
  background:linear-gradient(90deg,var(--bg0) 0%,rgba(4,8,13,.9) 30%,rgba(4,8,13,.35) 55%,rgba(4,8,13,.15) 100%),
    url('/static/fareraptor-hero.jpg') right max(-32px,calc(var(--side) - 120px)) top 0/var(--fr-s) var(--fr-s) no-repeat,var(--bg0)}
@media (max-width:767px){
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
    background:linear-gradient(180deg,rgba(4,8,13,.55) 0%,rgba(4,8,13,.72) 45%,rgba(4,8,13,.96) 75%),
      url('/static/fareraptor-hero.jpg') right -32px top 0/var(--fr-s) var(--fr-s) no-repeat,var(--bg0)}
}
/* desktop: radar becomes glass so the raptor eye stays visible behind it */
@media (min-width:768px){
  body.dr-body .fi-radar{background:radial-gradient(ellipse at 50% 38%,rgba(26,113,115,.22),rgba(6,16,24,.55) 70%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
}

/* ===================================================== V8.4 raptor background
   Original placement (full-bleed, eye behind the headline) restored.
   One continuous formula for EVERY width: the image is always
   max(100vw,700px) wide and both offsets are proportional to that size,
   so resizing/zooming only scales the picture uniformly — the crop and
   composition never change, no jumps at breakpoints. */
body.dr-body .dr-hero{--rimg:max(100vw,700px)}
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
  background:
    linear-gradient(90deg,rgba(4,8,13,.96) 0%,rgba(4,8,13,.73) 31%,rgba(4,8,13,.21) 65%,rgba(4,8,13,.32) 100%),
    url('/static/fareraptor-hero.jpg') calc((100vw - var(--rimg)) * .58) calc(var(--rimg) * -.22)/var(--rimg) var(--rimg) no-repeat,
    var(--bg0);
}
@media (max-width:767px){
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
    background:
      linear-gradient(180deg,rgba(4,8,13,.55) 0%,rgba(4,8,13,.70) 45%,rgba(4,8,13,.96) 100%),
      url('/static/fareraptor-hero.jpg') calc((100vw - var(--rimg)) * .58) calc(var(--rimg) * -.22)/var(--rimg) var(--rimg) no-repeat,
      var(--bg0);
  }
}

/* ===================================================== V8.5 raptor background — FIXED SIZE
   Never stretched: always 1400px (source is 1536px, so never upscaled).
   Anchored to the content's left edge (where the headline starts), so a wider
   window only reveals more dark margin — the picture itself never grows. */
body.dr-body .dr-hero{--rsize:1400px;--rx:calc(var(--side) - 60px);--ry:-300px}
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
  background:
    linear-gradient(90deg,rgba(4,8,13,.96) 0%,rgba(4,8,13,.73) 31%,rgba(4,8,13,.21) 65%,rgba(4,8,13,.32) 100%),
    url('/static/fareraptor-hero.jpg') var(--rx) var(--ry)/var(--rsize) var(--rsize) no-repeat,
    var(--bg0);
}
@media (max-width:767px){
  body.dr-body .dr-hero{--rx:-230px;--ry:-290px}
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
    background:
      linear-gradient(180deg,rgba(4,8,13,.55) 0%,rgba(4,8,13,.70) 45%,rgba(4,8,13,.96) 100%),
      url('/static/fareraptor-hero.jpg') var(--rx) var(--ry)/var(--rsize) var(--rsize) no-repeat,
      var(--bg0);
  }
}

/* ===================================================== V8.5 raptor background — final
   Image = square 1536px emblem (eye at 32.2% / 26.3% of the image).
   The image size is decoupled from the viewport width (near-constant),
   and positioned so the EYE lands in a computed free zone:
     desktop  : between the text column and the radar  -> x = 50vw + 40px
     tablet   : right of the text, single-column hero   -> x = 100vw - side - 150px
     phone    : top-right, beside the 2-line headline    -> x = 100vw - 62px
   Wider screens show more dark space, never a bigger raptor.
   Hero height is fixed per range (does not grow with width). No cover, no stretching. */
body.dr-body .dr-hero{
  --S:clamp(900px,calc(760px + 15vw),1100px);   /* image size: 914px @1024 … 1100px @2560 */
  --eye-x:calc(50vw + 40px);
  --eye-y:200px;                                  /* headline row, measured from viewport top */
  --hero-h:470px;
}
body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
  height:calc(var(--hero-h) + var(--bar));
  background:
    linear-gradient(90deg,var(--bg0) 0,rgba(4,8,13,.92) calc(var(--side) + 300px),rgba(4,8,13,.55) calc(var(--side) + 470px),rgba(4,8,13,0) calc(var(--eye-x) - 60px)),
    url('/static/fareraptor-hero.jpg') calc(var(--eye-x) - var(--S) * .322) calc(var(--eye-y) - var(--S) * .263)/var(--S) var(--S) no-repeat,
    var(--bg0);
}
body.dr-body .dr-hero::after,body.dr-body .dr-hero:after{height:calc(var(--hero-h) + var(--bar) + 2px);background:linear-gradient(180deg,transparent 62%,var(--bg0) 100%)}

/* tablet: hero becomes one column (radar as a strip) so the eye gets free space on the right */
@media (min-width:768px) and (max-width:1023px){
  body.dr-body .dr-hero{--S:760px;--eye-x:calc(100vw - var(--side) - 150px);--eye-y:190px;--hero-h:430px;grid-template-columns:minmax(0,1fr)}
  body.dr-body .fi-intro{max-width:min(470px,58vw)}
  body.dr-body .fi-radar{grid-template-columns:120px minmax(0,1fr);justify-items:stretch;align-items:center;gap:16px;padding:12px}
  body.dr-body .fi-radar-face{width:120px}
  body.dr-body .fi-radar-center{padding:7px}
  body.dr-body .fi-radar-center span{font-size:13px}
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
    background:
      linear-gradient(90deg,var(--bg0) 0,rgba(4,8,13,.9) calc(var(--side) + 260px),rgba(4,8,13,.45) calc(var(--side) + 420px),rgba(4,8,13,0) calc(var(--eye-x) - 70px)),
      url('/static/fareraptor-hero.jpg') calc(var(--eye-x) - var(--S) * .322) calc(var(--eye-y) - var(--S) * .263)/var(--S) var(--S) no-repeat,
      var(--bg0);
  }
}
/* phone: own crop — eye top-right next to the two-line headline, text side darkened */
@media (max-width:767px){
  body.dr-body .dr-hero{--S:520px;--eye-x:calc(100vw - 62px);--eye-y:118px;--hero-h:330px}
  body.dr-body .dr-hero::before,body.dr-body .dr-hero:before{
    background:
      linear-gradient(90deg,rgba(4,8,13,.9) 0,rgba(4,8,13,.78) 48%,rgba(4,8,13,.18) 78%,rgba(4,8,13,.1) 100%),
      url('/static/fareraptor-hero.jpg') calc(var(--eye-x) - var(--S) * .322) calc(var(--eye-y) - var(--S) * .263)/var(--S) var(--S) no-repeat,
      var(--bg0);
  }
}

/* FARERAPTOR_V9_HU_LAYOUT_FIX
   Integrated into the ACTIVE terminal stylesheet, not another overlay file.
   Only presentation/flow corrections. All prices/routes/links remain dynamic. */
body.dr-body .dr-grid,
body.dr-body .dr-type-row,
body.dr-body .dr-hero-main,
body.dr-body .fi-autopilot,
body.dr-body .fi-feed-section {min-width:0;max-width:100%}
body.dr-body .dr-section-head,
body.dr-body .dr-section-head>div,
body.dr-body .fi-feed-heading,
body.dr-body .fi-feed-heading>div,
body.dr-body .fi-explain-panel,
body.dr-body .dr-side-stack,
body.dr-body .dr-opp-card {min-width:0;overflow-wrap:anywhere}
body.dr-body .dr-section-head h2,
body.dr-body .fi-feed-heading h2,
body.dr-body .fi-autopilot h2,
body.dr-body .fr-why-head h2 {overflow-wrap:anywhere;hyphens:auto}
body.dr-body .dr-card {container-type:inline-size}
body.dr-body .dr-card-badge {white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;max-width:min(80%,260px);line-height:1.25}
body.dr-body .dr-card-body {grid-template-columns:minmax(0,1fr) minmax(0,max-content);min-width:0}
body.dr-body .dr-card-dest,
body.dr-body .dr-card-route {white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:normal;hyphens:auto}
body.dr-body .dr-card-dest {line-height:1.3}
body.dr-body .dr-card-route {line-height:1.35}
body.dr-body .dr-card-price {min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.08}
body.dr-body .dr-card-price-sub {min-width:0;white-space:normal;overflow:visible;overflow-wrap:anywhere}
body.dr-body .dr-card-meta {min-width:0;white-space:normal;overflow:visible;flex-wrap:wrap;gap:3px 8px}
body.dr-body .dr-card-meta>* {min-width:0;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
body.dr-body .fi-card-intel,
body.dr-body .fi-card-intel>span,
body.dr-body .fi-card-intel small,
body.dr-body .dr-anomaly-evidence {min-width:0;max-width:100%;overflow-wrap:anywhere}
body.dr-body .fi-card-intel {flex-wrap:wrap}
body.dr-body .fi-card-intel small {white-space:normal;overflow:visible;text-overflow:clip;flex:1 1 120px}
body.dr-body .dr-card-foot {min-width:0;flex-wrap:wrap;align-items:center;gap:6px}
body.dr-body .dr-card-fresh {min-width:0;flex:1 1 90px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
body.dr-body .dr-card-cta {max-width:100%;white-space:normal;text-align:center;min-height:34px;padding:7px 12px;overflow-wrap:anywhere}
body.dr-body .dr-opp-kicker,
body.dr-body .dr-opp-dest,
body.dr-body .dr-opp-route {min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
body.dr-body .dr-opp-price {min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:right}
body.dr-body .dr-hero-card {max-width:100%;min-width:0}
body.dr-body .dr-hero-badge,
body.dr-body .dr-hero-route,
body.dr-body .dr-hero-dest,
body.dr-body .dr-hero-meta,
body.dr-body .dr-hero-foot,
body.dr-body .dr-hero-cta,
body.dr-body .dr-hero-drop {min-width:0;overflow-wrap:anywhere}
body.dr-body .dr-hero-route {white-space:normal;overflow:visible;text-overflow:clip}
body.dr-body .dr-hero-price-row {min-width:0;max-width:100%}
body.dr-body .dr-hero-price {max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.1}
body.dr-body .dr-hero-meta {white-space:normal;flex-wrap:wrap;overflow:visible}
body.dr-body .dr-hero-meta>* {min-width:0;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
body.dr-body .dr-hero-foot {flex-wrap:wrap}
body.dr-body .dr-hero-cta {max-width:100%;white-space:normal;text-align:center;padding:9px 12px}
body.dr-body .dr-side-stack .dr-opp-card {max-width:100%}
body.dr-body .dr-tabs {max-width:100%;flex-wrap:wrap;overflow-x:visible}
body.dr-body .dr-tabs button {max-width:100%;white-space:normal;overflow-wrap:anywhere}
body.dr-body .fi-feature-head {flex-wrap:wrap;overflow-wrap:anywhere}
body.dr-body .fi-explain-body,
body.dr-body .fr-why-head {min-width:0;max-width:100%;overflow-wrap:anywhere}
body.dr-body .fi-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:100%;min-width:0;overflow:visible;-webkit-mask-image:none;mask-image:none}
body.dr-body .fi-metric {min-width:0;max-width:100%;padding:7px 10px;white-space:normal;flex:auto}
body.dr-body .fi-metric small,
body.dr-body .fi-metric strong {max-width:100%;min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.3}
body.dr-body .fi-metric:last-child {padding-right:10px}
@media (max-width:767px){
 body.dr-body .fi-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;-webkit-mask-image:none;mask-image:none}
 body.dr-body .fi-metric {min-width:0;max-width:100%;padding:6px 7px;flex:auto}
 body.dr-body .fi-metric small {font-size:9px;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
 body.dr-body .fi-metric strong {font-size:clamp(11px,3.4vw,15px);white-space:normal;overflow-wrap:anywhere}
 body.dr-body .dr-hero-card {grid-template-columns:minmax(0,1fr) minmax(0,max-content)}
 body.dr-body .dr-hero-price {font-size:clamp(20px,7vw,36px)}
 body.dr-body .dr-hero-meta {white-space:normal;flex-wrap:wrap;overflow:visible}
 body.dr-body .fr-why-head {flex-wrap:wrap}
 body.dr-body .dr-card-price {font-size:clamp(20px,6vw,25px)}
 body.dr-body .dr-section-head h2,
 body.dr-body .fi-autopilot h2 {line-height:1.15}
}
@media (max-width:375px){
 body.dr-body .topbar {gap:5px;padding-left:8px;padding-right:8px}
 body.dr-body .topbar .brand {gap:4px}
 body.dr-body .fr-socials {gap:3px}
 body.dr-body .fr-socials a {width:25px;height:25px}
 body.dr-body .topbar .top-actions {gap:4px}
 body.dr-body .fr-menu-btn {width:34px;height:34px}
 body.dr-body .lang-switch a {padding:5px 4px}
 body.dr-body .dr-hero-card {grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 body.dr-body .dr-hero-price-row {justify-self:end}
 body.dr-body .fi-metric {padding:5px 6px}
}
/* Container queries protect the smallest cards, regardless of screen width. */
@container (max-width:305px){
 body.dr-body .dr-card-body {grid-template-columns:minmax(0,1fr)}
 body.dr-body .dr-card-dest {grid-row:1;grid-column:1}
 body.dr-body .dr-card-route {grid-row:2;grid-column:1}
 body.dr-body .dr-card-price {grid-row:3;grid-column:1;justify-self:start;text-align:left;margin-top:6px}
 body.dr-body .dr-card-price-sub {grid-row:4;grid-column:1;justify-self:start;text-align:left}
 body.dr-body .dr-card-drop {grid-row:5;grid-column:1;justify-self:start}
 body.dr-body .dr-card-meta {grid-row:6;grid-column:1}
 body.dr-body .dr-card-body>.fi-card-intel {grid-row:7;grid-column:1}
 body.dr-body .dr-card-body>.dr-anomaly-evidence {grid-row:8;grid-column:1}
 body.dr-body .dr-card-body>.dr-card-foot {grid-row:9;grid-column:1}
}


/* ===============================================================
   V11 — TRUE RESPONSIVE DEAL CARDS (HU + EN, all viewports)
   Actual card layout, not an extra stylesheet or a fixed-height mask.
   Previous V8 card grid-position overrides are intentionally neutralized here.
   A discount label, price or score may wrap, but must NEVER paint over a neighbor.
   =============================================================== */
body.dr-body .dr-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;align-items:stretch;
}
body.dr-body .dr-card{min-width:0;max-width:100%;overflow:hidden;container-type:inline-size}
body.dr-body .dr-card-visual{min-width:0;min-height:29px;padding:6px 12px 6px 14px}
body.dr-body .dr-card-body{
  display:flex;flex-direction:column;align-items:stretch;
  min-width:0;gap:8px;padding:12px 13px 11px 15px;
}
body.dr-body .fr-card-primary{
  display:grid;grid-template-columns:minmax(0,1fr) max-content;
  align-items:start;gap:8px 12px;min-width:0;width:100%;
}
body.dr-body .fr-card-place{min-width:0;max-width:100%}
body.dr-body .dr-card-dest{font-size:16px;line-height:1.2;margin:0;overflow-wrap:anywhere;white-space:normal}
body.dr-body .dr-card-route{
  font:500 11px/1.4 var(--mono);margin:4px 0 0;
  min-width:0;max-width:100%;white-space:normal;
  overflow-wrap:anywhere;word-break:normal;hyphens:auto;
}
body.dr-body .fr-card-primary .dr-card-price-row{
  display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;
  gap:3px;min-width:0;max-width:100%;text-align:right;
}
body.dr-body .fr-card-primary .dr-card-price{
  display:block;grid-column:auto;grid-row:auto;align-self:auto;justify-self:auto;
  font:800 clamp(19px,1.6vw,25px)/1.13 var(--mono);
  letter-spacing:-.045em;text-align:right;margin:0;
  min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;
}
body.dr-body .fr-card-primary .dr-card-price-sub{
  display:block;grid-column:auto;grid-row:auto;align-self:auto;justify-self:auto;
  margin:0;text-align:right;white-space:normal;overflow-wrap:anywhere;
  font:600 10.5px/1.25 var(--mono);color:var(--tx3)
}
body.dr-body .fr-card-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;width:100%}
body.dr-body .fr-card-facts .dr-card-meta{
  display:block;grid-column:auto;grid-row:auto;
  flex:0 0 auto;margin:0;min-width:0;font:600 10.5px/1.25 var(--mono);
  white-space:normal;overflow-wrap:anywhere;
}
body.dr-body .fr-card-facts .dr-card-drop{
  display:inline-block;grid-column:auto;grid-row:auto;
  align-self:auto;justify-self:auto;max-width:100%;min-width:0;
  margin:0;padding:4px 7px;border-radius:5px;
  white-space:normal;overflow-wrap:anywhere;word-break:normal;
  font:750 10.5px/1.35 var(--sans);line-height:1.35;
}
body.dr-body .dr-card-body>.fi-card-intel{
  display:grid;grid-template-columns:1fr;grid-column:auto;grid-row:auto;
  align-items:start;gap:5px;margin:0;padding:7px 9px;
  min-width:0;width:100%;max-width:100%;
}
body.dr-body .dr-card-body>.fi-card-intel span{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  min-width:0;max-width:100%;gap:4px 8px;font-size:10px;
}
body.dr-body .dr-card-body>.fi-card-intel b{flex:0 0 auto;white-space:nowrap}
body.dr-body .dr-card-body>.fi-card-intel small{
  display:block;flex:unset;min-width:0;max-width:100%;margin:0;
  white-space:normal;overflow:visible;text-overflow:clip;
  overflow-wrap:anywhere;word-break:normal;font:500 10.5px/1.36 var(--sans);
}
body.dr-body .dr-card-body>.dr-anomaly-evidence{
  grid-column:auto;grid-row:auto;min-width:0;margin:0;overflow-wrap:anywhere;
}
body.dr-body .dr-card-body>.dr-card-foot{
  display:flex;grid-column:auto;grid-row:auto;min-width:0;width:100%;
  align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:7px;margin:auto 0 0;padding:5px 0 0;border-top:1px solid var(--ln);
}
body.dr-body .dr-card-fresh{
  min-width:0;flex:1 1 96px;margin:0;white-space:normal;
  overflow-wrap:anywhere;font-size:10.5px
}
body.dr-body .dr-card-cta{
  flex:0 0 auto;min-height:32px;max-width:100%;margin:0;
  padding:7px 11px;white-space:normal;overflow-wrap:anywhere;
  font-size:11px;line-height:1.2;text-align:center;
}
/* Big desktops: four cards, NEVER five squeezed cards. */
@media (min-width:1540px){body.dr-body .dr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Tablet/medium desktop: two roomy cards. */
@media (min-width:660px) and (max-width:1099px){body.dr-body .dr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Phones: full-width cards; compact info, no hidden overflow. */
@media (max-width:659px){
  body.dr-body .dr-grid{grid-template-columns:minmax(0,1fr);gap:8px}
  body.dr-body .dr-card-body{padding:10px 12px 10px 14px}
  body.dr-body .fr-card-primary .dr-card-price{font-size:23px}
}
/* Tight container irrespective of device/zoom: stack price under route.
   This protects HUF and COP sums, very long place names and accessibility zoom. */
@container (max-width:345px){
  body.dr-body .fr-card-primary{grid-template-columns:minmax(0,1fr);gap:7px}
  body.dr-body .fr-card-primary .dr-card-price-row{align-items:flex-start;text-align:left}
  body.dr-body .fr-card-primary .dr-card-price,
  body.dr-body .fr-card-primary .dr-card-price-sub{text-align:left}
}

/* V12 MOBILE CARD LAYOUT — robust against narrow price columns and long HUNGARIAN labels.
   Different filename prevents a stale V10/V11 CSS response from being cached.
   No API, fare logic, currency conversion, booking or social code touched. */
body.dr-body .dr-card-body { min-width:0; }
body.dr-body .fr-card-primary { min-width:0; width:100%; }
body.dr-body .fr-card-place { min-width:0; width:100%; }
body.dr-body .fr-card-facts { min-width:0; }
body.dr-body .fr-card-facts .dr-card-drop {
  display:block; flex:0 1 auto; min-width:0; max-width:100%;
  white-space:normal; overflow:visible; text-overflow:clip;
  overflow-wrap:break-word; word-break:normal;
}
@media (max-width:659px) {
  body.dr-body .dr-grid { grid-template-columns:minmax(0,1fr); gap:9px; }
  body.dr-body .dr-card { height:auto; min-height:0; }
  body.dr-body .dr-card-body {
    display:flex; flex-direction:column; align-items:stretch;
    gap:8px; padding:12px 13px 12px 15px;
  }
  /* On phones, place the price on its own readable line rather than reducing
     the city-name column to a few letters. */
  body.dr-body .fr-card-primary {
    display:flex; flex-direction:column; align-items:stretch;
    gap:6px; min-width:0; width:100%;
  }
  body.dr-body .fr-card-place { display:block; min-width:0; width:100%; }
  body.dr-body .fr-card-primary .dr-card-dest {
    display:block; width:100%; min-width:0; max-width:100%;
    font-size:17px; line-height:1.2; white-space:normal;
    overflow-wrap:break-word; word-break:normal;
  }
  body.dr-body .fr-card-primary .dr-card-route {
    display:block; min-width:0; max-width:100%;
    font-size:11.5px; line-height:1.4; white-space:normal;
    overflow-wrap:break-word; word-break:normal;
  }
  body.dr-body .fr-card-primary .dr-card-price-row {
    display:flex; flex-direction:row; flex-wrap:wrap;
    align-items:baseline; justify-content:flex-start;
    gap:5px 10px; min-width:0; width:100%;
    max-width:100%; text-align:left;
  }
  body.dr-body .fr-card-primary .dr-card-price,
  body.dr-body .fr-card-primary .dr-card-price-sub {
    display:inline-block; align-self:auto; justify-self:auto;
    max-width:100%; text-align:left; white-space:normal;
    overflow-wrap:break-word; word-break:normal;
  }
  body.dr-body .fr-card-primary .dr-card-price { font-size:23px; }
  body.dr-body .fr-card-facts {
    display:flex; flex-wrap:wrap; align-items:center;
    width:100%; min-width:0; gap:5px 8px;
  }
  body.dr-body .fr-card-facts .dr-card-drop { flex:0 1 auto; }
  body.dr-body .dr-card-body>.fi-card-intel {
    width:100%; max-width:100%; min-width:0;
  }
  body.dr-body .dr-card-body>.fi-card-intel small {
    overflow-wrap:break-word; word-break:normal; white-space:normal;
  }
  body.dr-body .dr-card-body>.dr-card-foot { width:100%; min-width:0; }
  /* Compatibility fallback if an older app.js is still in a browser cache. */
  body.dr-body .dr-card-body>.dr-card-dest,
  body.dr-body .dr-card-body>.dr-card-route,
  body.dr-body .dr-card-body>.dr-card-meta,
  body.dr-body .dr-card-body>.dr-card-drop {
    display:block; grid-column:auto; grid-row:auto; width:100%; max-width:100%;
    min-width:0; margin:0; white-space:normal;
    overflow:visible; overflow-wrap:break-word; word-break:normal;
  }
  body.dr-body .dr-card-body>.dr-card-price-row {
    display:flex; flex-direction:row; flex-wrap:wrap;
    width:100%; min-width:0; grid-column:auto; grid-row:auto;
    align-items:baseline; justify-content:flex-start;
  }
  body.dr-body .dr-card-body>.dr-card-price-row .dr-card-price,
  body.dr-body .dr-card-body>.dr-card-price-row .dr-card-price-sub {
    display:inline-block; align-self:auto; grid-column:auto; grid-row:auto;
    justify-self:auto; min-width:0; margin:0;
    max-width:100%; text-align:left; white-space:normal;
  }
}
