:root{
  --rn-bg:#f7f4f8;
  --rn-card:#ffffff;
  --rn-card-2:#fbf9fc;
  --rn-text:#231927;
  --rn-muted:#746c78;
  --rn-soft:#a397a8;
  --rn-border:#e7dfe9;
  --rn-map-bg:#f2edf5;
  --rn-map-country:#e6dce9;
  --rn-map-country-stroke:#9c79aa;
  --rn-map-grid:rgba(78,48,91,.075);
  --rn-node:#ffffff;
  --rn-node-stroke:#724184;
  --rn-node-halo:rgba(116,68,136,.22);
  --rn-intl:#d788ad;
  --rn-route-1:#7a3e91;
  --rn-route-2:#4e97c8;
  --rn-route-3:#c86f9b;
  --rn-route-4:#87a95f;
  --rn-route-glow:rgba(101,50,121,.28);
  --rn-shadow:0 22px 70px rgba(50,28,59,.09);
}
html.dark,body.dark,[data-theme="dark"],.dark{
  --rn-bg:#100d13;
  --rn-card:#17131b;
  --rn-card-2:#1d1822;
  --rn-text:#f7f1f9;
  --rn-muted:#bbb0c0;
  --rn-soft:#887b8e;
  --rn-border:#302638;
  --rn-map-bg:#172335;
  --rn-map-country:#53657f;
  --rn-map-country-stroke:#5e9add;
  --rn-map-grid:rgba(185,210,238,.055);
  --rn-node:#172335;
  --rn-node-stroke:#83b8ef;
  --rn-node-halo:rgba(99,170,235,.26);
  --rn-intl:#e58ab6;
  --rn-route-1:#d78bb4;
  --rn-route-2:#68c4e7;
  --rn-route-3:#b69bef;
  --rn-route-4:#a7ce73;
  --rn-route-glow:rgba(104,196,231,.32);
  --rn-shadow:0 24px 80px rgba(0,0,0,.26);
}

.rn-page{color:var(--rn-text)}
.rn-hero{background:linear-gradient(120deg,var(--rn-card-2),var(--rn-card) 55%,var(--rn-card-2));border-color:var(--rn-border);box-shadow:var(--rn-shadow)}
.rn-hero .network-hero-copy h1{color:var(--rn-text)}
.rn-hero .network-hero-copy p{color:var(--rn-muted)}
.rn-hero-side{background:radial-gradient(circle at 25% 30%,rgba(150,95,173,.38),transparent 38%),linear-gradient(145deg,#211029,#5e2b72)}
.dark .rn-hero-side,[data-theme="dark"] .rn-hero-side{background:radial-gradient(circle at 25% 25%,rgba(125,86,165,.3),transparent 40%),linear-gradient(145deg,#111827,#243a57)}
.rn-hero-stats{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.rn-hero-stats span{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid var(--rn-border);border-radius:999px;background:color-mix(in srgb,var(--rn-card) 88%,transparent);color:var(--rn-muted);font-size:10.5px;font-weight:850}
.rn-hero-stats strong{color:var(--rn-text);font-size:13px;font-weight:950}

.rn-map-card{margin-top:18px;border:1px solid var(--rn-border);border-radius:30px;background:var(--rn-card);box-shadow:var(--rn-shadow);overflow:hidden}
.rn-map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:26px 28px 22px;border-bottom:1px solid var(--rn-border)}
.rn-map-head>div:first-child{max-width:720px}
.rn-eyebrow{display:block;color:#8d639b;font-size:9px;font-weight:950;letter-spacing:.16em;direction:ltr;text-align:right}
.rn-map-head h2{margin:6px 0 7px;color:var(--rn-text);font-size:26px;line-height:1.45;font-weight:950;letter-spacing:-.02em}
.rn-map-head p{margin:0;color:var(--rn-muted);font-size:11.5px;line-height:2}
.rn-map-actions{display:flex;gap:8px;flex:0 0 auto}
.rn-control{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 13px;border:1px solid var(--rn-border);border-radius:12px;background:var(--rn-card-2);color:var(--rn-muted);font:inherit;font-size:10px;font-weight:900;cursor:pointer;transition:.2s ease}
.rn-control:hover,.rn-control[aria-pressed="true"]{border-color:color-mix(in srgb,var(--rn-route-1) 55%,var(--rn-border));color:var(--rn-route-1);transform:translateY(-1px)}
.rn-control svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.rn-map-shell{position:relative;isolation:isolate;min-height:680px;height:clamp(680px,58vw,780px);background:var(--rn-map-bg);overflow:hidden}
.rn-map-shell:before{content:"";position:absolute;inset:0;z-index:-4;background-image:linear-gradient(var(--rn-map-grid) 1px,transparent 1px),linear-gradient(90deg,var(--rn-map-grid) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 92%)}
.rn-map-shell:after{content:"";position:absolute;inset:0;z-index:-3;background:radial-gradient(circle at 50% 46%,transparent 0,transparent 35%,color-mix(in srgb,var(--rn-map-bg) 92%,transparent) 88%);pointer-events:none}
.rn-map-glow{position:absolute;z-index:-2;border-radius:50%;filter:blur(8px);opacity:.45;pointer-events:none}
.rn-map-glow-a{width:340px;height:340px;right:18%;top:9%;background:radial-gradient(circle,rgba(99,70,140,.14),transparent 72%)}
.rn-map-glow-b{width:280px;height:280px;left:8%;bottom:5%;background:radial-gradient(circle,rgba(68,158,200,.12),transparent 72%)}
.rn-map{display:block;width:100%;height:100%;min-height:680px;overflow:visible;direction:ltr}
.rn-map *{vector-effect:non-scaling-stroke}
.rn-country{fill:var(--rn-map-country);stroke:var(--rn-map-country-stroke);stroke-width:2.1;stroke-linejoin:round;filter:drop-shadow(0 12px 22px rgba(29,21,33,.08));transition:fill .25s ease,stroke .25s ease}
.rn-country-glow{fill:none;stroke:var(--rn-map-country-stroke);stroke-width:8;opacity:.08;filter:blur(8px)}
.rn-map-border-mark{fill:none;stroke:var(--rn-map-country-stroke);stroke-width:1;stroke-dasharray:3 10;opacity:.2}

.rn-route-base,.rn-route-flow{fill:none;stroke-linecap:round;transition:opacity .18s ease,stroke-width .18s ease,filter .18s ease}
.rn-route-base{stroke-width:2.2;opacity:.17}
.rn-route-flow{stroke-width:1.7;stroke-dasharray:7 12;opacity:.55;animation:rn-route-flow 2.6s linear infinite}
.rn-route.tone-0{stroke:var(--rn-route-1)}
.rn-route.tone-1{stroke:var(--rn-route-2)}
.rn-route.tone-2{stroke:var(--rn-route-3)}
.rn-route.tone-3{stroke:var(--rn-route-4)}
.rn-route-group.is-muted .rn-route-base,.rn-route-group.is-muted .rn-route-flow{opacity:.035}
.rn-route-group.is-active .rn-route-base{stroke-width:4;opacity:.28;filter:drop-shadow(0 0 5px var(--rn-route-glow))}
.rn-route-group.is-active .rn-route-flow{stroke-width:2.5;opacity:1;filter:drop-shadow(0 0 4px var(--rn-route-glow))}
.rn-route-group.is-selected .rn-route-base{stroke-width:5;opacity:.32}
.rn-route-group.is-selected .rn-route-flow{stroke-width:2.8;opacity:1}
.rn-map-shell.is-motion-paused .rn-route-flow{animation-play-state:paused}
@keyframes rn-route-flow{to{stroke-dashoffset:-38}}

.rn-plane{opacity:.72;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));pointer-events:none}
.rn-plane.tone-0{fill:var(--rn-route-1)}
.rn-plane.tone-1{fill:var(--rn-route-2)}
.rn-plane.tone-2{fill:var(--rn-route-3)}
.rn-plane.tone-3{fill:var(--rn-route-4)}
.rn-map-shell.is-motion-paused .rn-plane{opacity:.3}

.rn-airport{cursor:pointer;outline:none}
.rn-airport .rn-airport-halo{fill:var(--rn-node-halo);opacity:.7;transition:transform .2s ease,opacity .2s ease;transform-box:fill-box;transform-origin:center}
.rn-airport .rn-airport-core{fill:var(--rn-node);stroke:var(--rn-node-stroke);stroke-width:2.1;transition:.2s ease}
.rn-airport .rn-airport-dot{fill:var(--rn-node-stroke)}
.rn-airport.is-international .rn-airport-core{stroke:var(--rn-intl)}
.rn-airport.is-international .rn-airport-dot{fill:var(--rn-intl)}
.rn-airport .rn-airport-label-bg{fill:color-mix(in srgb,var(--rn-card) 92%,transparent);stroke:color-mix(in srgb,var(--rn-border) 86%,transparent);stroke-width:1;rx:5}
.rn-airport .rn-airport-label{fill:var(--rn-text);font-family:inherit;font-size:10.5px;font-weight:950;letter-spacing:.04em;dominant-baseline:middle;text-anchor:middle}
.rn-airport.is-muted{opacity:.24}
.rn-airport.is-active .rn-airport-halo,.rn-airport:hover .rn-airport-halo{transform:scale(1.65);opacity:1}
.rn-airport.is-active .rn-airport-core,.rn-airport:hover .rn-airport-core{stroke-width:3;filter:drop-shadow(0 0 5px var(--rn-node-halo))}
.rn-airport:focus-visible .rn-airport-core{stroke-width:3.5}

.rn-map-tooltip{position:absolute;z-index:8;min-width:170px;max-width:250px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--rn-border) 82%,transparent);border-radius:13px;background:color-mix(in srgb,var(--rn-card) 94%,transparent);box-shadow:0 14px 35px rgba(14,10,17,.14);backdrop-filter:blur(13px);color:var(--rn-text);pointer-events:none;transform:translate(-50%,-112%)}
.rn-map-tooltip strong{display:block;font-size:11.5px;font-weight:950}
.rn-map-tooltip span{display:block;margin-top:3px;color:var(--rn-muted);font-size:9.5px;line-height:1.7}
.rn-map-legend{position:absolute;left:18px;bottom:18px;z-index:5;display:flex;flex-wrap:wrap;gap:12px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--rn-border) 80%,transparent);border-radius:12px;background:color-mix(in srgb,var(--rn-card) 84%,transparent);backdrop-filter:blur(10px);color:var(--rn-muted);font-size:9px;font-weight:850}
.rn-map-legend span{display:inline-flex;align-items:center;gap:6px}
.rn-dot{width:8px;height:8px;border:2px solid var(--rn-node-stroke);border-radius:50%;background:var(--rn-node)}
.rn-dot-intl{border-color:var(--rn-intl)}
.rn-line-sample{width:28px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--rn-route-1),var(--rn-route-2))}
.rn-map-caption{position:absolute;right:18px;bottom:18px;z-index:5;max-width:370px;padding:9px 12px;border-radius:11px;background:color-mix(in srgb,var(--rn-card) 86%,transparent);backdrop-filter:blur(10px);color:var(--rn-muted);font-size:9.5px;font-weight:850}

.rn-routes-panel{background:var(--rn-card);border-color:var(--rn-border);box-shadow:var(--rn-shadow)}
.rn-route-head{border-bottom-color:var(--rn-border)}
.rn-route-head h2{color:var(--rn-text)}
.rn-route-head p{margin:5px 0 0;color:var(--rn-muted);font-size:10px;line-height:1.9}
.rn-route-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:22px}
.rn-route-card{position:relative;display:grid;grid-template-columns:auto 42px auto;align-items:center;justify-content:start;gap:7px;min-height:76px;padding:13px 14px;border:1px solid var(--rn-border);border-radius:15px;background:var(--rn-card-2);color:var(--rn-text);font:inherit;text-align:right;cursor:pointer;transition:.2s ease;overflow:hidden}
.rn-route-card:before{content:"";position:absolute;inset:auto 0 0;height:2px;background:linear-gradient(90deg,var(--rn-route-1),var(--rn-route-2),var(--rn-route-3));opacity:0;transition:.2s}
.rn-route-card:hover,.rn-route-card.is-active,.rn-route-card.is-selected{border-color:color-mix(in srgb,var(--rn-route-1) 44%,var(--rn-border));background:color-mix(in srgb,var(--rn-card-2) 91%,var(--rn-route-1));transform:translateY(-2px);box-shadow:0 12px 28px rgba(70,38,81,.08)}
.rn-route-card:hover:before,.rn-route-card.is-active:before,.rn-route-card.is-selected:before{opacity:1}
.rn-route-card.is-hidden{display:none}
.rn-route-code{display:grid;min-width:36px;height:29px;place-items:center;border:1px solid var(--rn-border);border-radius:8px;background:var(--rn-card);font-size:10px;font-weight:950;letter-spacing:.06em;direction:ltr}
.rn-route-arrow{display:grid;place-items:center;color:var(--rn-soft)}
.rn-route-arrow svg{width:38px;height:15px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.rn-route-names{grid-column:1/-1;color:var(--rn-muted);font-size:9.5px;font-weight:800}
.rn-intl-badge{position:absolute;top:8px;left:8px;padding:3px 6px;border:1px solid color-mix(in srgb,var(--rn-intl) 45%,transparent);border-radius:999px;background:color-mix(in srgb,var(--rn-intl) 10%,transparent);color:var(--rn-intl);font-size:7.5px;font-weight:950}

@media(max-width:1050px){
  .rn-route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rn-map-shell{min-height:620px;height:620px}
  .rn-map{min-height:620px;height:100%}
}
@media(max-width:820px){
  .rn-map-head{align-items:flex-start;flex-direction:column}
  .rn-map-actions{width:100%}
  .rn-control{flex:1;justify-content:center}
  .rn-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rn-map-shell{min-height:560px;height:560px}
  .rn-map{min-height:560px;height:100%}
  .rn-map-caption{right:12px;bottom:12px;max-width:58%}
  .rn-map-legend{left:12px;bottom:12px}
}
@media(max-width:580px){
  .rn-map-card{border-radius:22px}
  .rn-map-head{padding:20px 18px 16px;gap:14px}
  .rn-map-head h2{font-size:22px}
  .rn-map-head p{font-size:10.5px}
  .rn-control{height:38px;padding:0 9px;font-size:9px}
  .rn-map-shell{min-height:500px;height:500px}
  .rn-map{min-height:500px;height:100%}
  .rn-map{width:118%;margin-right:-9%}
  .rn-map-legend{display:none}
  .rn-map-caption{left:10px;right:10px;bottom:10px;max-width:none;text-align:center}
  .rn-route-grid{grid-template-columns:1fr;gap:8px}
  .rn-route-card{min-height:70px}
  .rn-hero-stats{margin-top:19px;gap:6px}
  .rn-hero-stats span{font-size:9.5px}
}
@media(prefers-reduced-motion:reduce){
  .rn-route-flow{animation:none}
  .rn-route-card,.rn-control,.rn-airport *{transition:none!important}
  .rn-plane{display:none}
}
