
.mvd-fir3d{
  --mvd3d-ink:#0f172a;
  --mvd3d-muted:#64748b;
  --mvd3d-line:#dbe3ee;
  --mvd3d-soft:#f8fafc;
  --mvd3d-accent:#2b587d;
  --mvd3d-accent-soft:#eaf1f7;
  font-family:'Overpass',system-ui,sans-serif;
  width:100%;
  max-width:none;
  margin:0;
  color:var(--mvd3d-ink);
}
.mvd-fir3d[hidden]{display:none!important}

.mvd-fir3d-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--mvd3d-line);
  background:linear-gradient(180deg,#fff,#f8fafc);
  border-radius:12px;
  padding:8px 12px;
}
.mvd-fir3d-collapse{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  font:inherit!important;
  font-weight:800!important;
  font-size:18px!important;
  cursor:pointer;
  padding:8px!important;
  box-shadow:none!important;
}
.mvd-fir3d-chevron{display:inline-flex;transition:transform .2s ease}
.mvd-fir3d-collapse[aria-expanded="false"] .mvd-fir3d-chevron{transform:rotate(-90deg)}
.mvd-fir3d-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.mvd-fir3d-badge,.mvd-fir3d-clock{
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid var(--mvd3d-line);
  background:#fff;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  white-space:nowrap;
}
.mvd-fir3d-body{margin-top:10px}
.mvd-fir3d-body[hidden]{display:none!important}

/* Barra de control */
.mvd-fir3d-toolbar{
  display:flex;
  align-items:stretch;
  gap:6px;
  flex-wrap:wrap;
  padding:6px;
  margin:0 0 6px;
  border:1px solid var(--mvd3d-line);
  background:#fff;
  border-radius:11px;
}
.mvd-fir3d-control-group{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.mvd-fir3d-control-aircraft{
  flex:1 1 300px;
}
.mvd-fir3d-control-layers{
  flex:0 1 auto;
  padding-left:8px;
  border-left:1px solid var(--mvd3d-line);
}
.mvd-fir3d-control-view{
  margin-left:auto;
  padding-left:8px;
  border-left:1px solid var(--mvd3d-line);
}
.mvd-fir3d-select-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1 1 auto;
  min-width:0;
  padding:0 0 0 10px;
  border:1px solid var(--mvd3d-line);
  border-radius:8px;
  background:var(--mvd3d-soft);
  overflow:hidden;
}
.mvd-fir3d-select-wrap>span{
  flex:0 0 auto;
  color:var(--mvd3d-muted);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.mvd-fir3d-aircraft-select{
  flex:1 1 auto;
  min-width:0;
  height:34px!important;
  margin:0!important;
  border:0!important;
  border-left:1px solid var(--mvd3d-line)!important;
  border-radius:0!important;
  background:#fff!important;
  color:var(--mvd3d-ink)!important;
  padding:0 30px 0 10px!important;
  font:600 13px 'Overpass',system-ui,sans-serif!important;
  box-shadow:none!important;
  outline:none;
}
.mvd-fir3d-aircraft-select:focus{box-shadow:inset 0 0 0 2px rgba(43,88,125,.18)!important}

.mvd-fir3d-toolbar button{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid var(--mvd3d-line)!important;
  background:#fff!important;
  border-radius:8px!important;
  padding:6px 9px!important;
  color:var(--mvd3d-ink)!important;
  font:700 12.5px 'Overpass',system-ui,sans-serif!important;
  line-height:1!important;
  box-shadow:none!important;
  cursor:pointer;
  white-space:nowrap;
}
.mvd-fir3d-toolbar button:hover{background:var(--mvd3d-soft)!important}
.mvd-fir3d-toolbar button[aria-pressed="true"]{
  border-color:rgba(43,88,125,.45)!important;
  background:var(--mvd3d-accent-soft)!important;
  color:var(--mvd3d-accent)!important;
}
.mvd-fir3d-toolbar button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.mvd-fir3d-toolbar button:focus-visible,
.mvd-fir3d-aircraft-select:focus-visible{
  outline:2px solid var(--mvd3d-accent)!important;
  outline-offset:2px;
}


.mvd-fir3d-layer-wrap{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding-left:8px;
  border:1px solid var(--mvd3d-line);
  border-radius:8px;
  background:var(--mvd3d-soft);
  overflow:hidden;
}
.mvd-fir3d-layer-wrap>span{
  color:var(--mvd3d-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.mvd-fir3d-layer-select{
  height:32px!important;
  min-width:100px;
  margin:0!important;
  padding:0 28px 0 9px!important;
  border:0!important;
  border-left:1px solid var(--mvd3d-line)!important;
  border-radius:0!important;
  background:#fff!important;
  color:var(--mvd3d-ink)!important;
  font:700 12px 'Overpass',system-ui,sans-serif!important;
  box-shadow:none!important;
}
.mvd-fir3d-layer-select:focus-visible{
  outline:2px solid var(--mvd3d-accent)!important;
  outline-offset:-2px;
}

/* Globo */
.mvd-fir3d-stage{
  position:relative;
  height:620px;
  min-height:420px;
  border:1px solid var(--mvd3d-line);
  border-radius:12px;
  overflow:hidden;
  background:#050b16;
  outline:none;
  overscroll-behavior:none;
  touch-action:none;
}
.mvd-fir3d-canvas canvas{touch-action:none}
.mvd-fir3d-canvas{position:absolute;inset:0}
.mvd-fir3d-canvas .cesium-viewer,
.mvd-fir3d-canvas .cesium-viewer-cesiumWidgetContainer,
.mvd-fir3d-canvas .cesium-widget,
.mvd-fir3d-canvas canvas{width:100%;height:100%}
.mvd-fir3d-loading{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:rgba(5,11,22,.68);
  font-weight:700;
  z-index:5;
  pointer-events:none;
}
.mvd-fir3d.is-ready .mvd-fir3d-loading{display:none}
.mvd-fir3d-focus-hint{
  position:absolute;
  left:10px;
  top:10px;
  z-index:3;
  max-width:calc(100% - 20px);
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:8px;
  background:rgba(15,23,42,.78);
  color:#f8fafc;
  font-size:11px;
  font-weight:600;
  pointer-events:none;
  opacity:.86;
  transition:opacity .16s ease;
}

/* Telemetría debajo del mapa */
.mvd-fir3d-telemetry{
  margin-top:8px;
  border:1px solid var(--mvd3d-line);
  border-radius:11px;
  background:#fff;
  overflow:hidden;
}
.mvd-fir3d-telemetry[hidden]{display:none!important}
.mvd-fir3d-telemetry-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  background:var(--mvd3d-soft);
  border-bottom:1px solid var(--mvd3d-line);
}
.mvd-fir3d-telemetry-heading{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:9px;
  flex-wrap:wrap;
}
.mvd-fir3d-telemetry-heading strong{
  font-size:15px;
  line-height:1.2;
}
.mvd-fir3d-telemetry-heading span{
  color:var(--mvd3d-muted);
  font-size:12px;
  font-weight:700;
}
.mvd-fir3d-close{
  flex:0 0 auto;
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--mvd3d-line)!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#475569!important;
  font:700 20px/1 system-ui,sans-serif!important;
  box-shadow:none!important;
  cursor:pointer;
  padding:0!important;
}
.mvd-fir3d-detail{min-width:0}
.mvd3d-summary-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  border-top:0;
}
.mvd3d-stat{
  min-width:0;
  padding:9px 11px 10px;
  border-right:1px solid #e8edf3;
  border-bottom:1px solid #e8edf3;
  background:#fff;
}
.mvd3d-stat:nth-child(5n){border-right:0}
.mvd3d-stat span{
  display:block;
  margin-bottom:3px;
  color:var(--mvd3d-muted);
  font-size:10px;
  font-weight:800;
  line-height:1.15;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.mvd3d-stat strong{
  display:block;
  min-width:0;
  color:var(--mvd3d-ink);
  font-size:12.5px;
  font-weight:700;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.mvd3d-route-strip{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  align-items:start;
  padding:9px 11px 10px;
  background:#fafbfd;
}
.mvd3d-route-strip span{
  color:var(--mvd3d-muted);
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.mvd3d-route-strip strong{
  min-width:0;
  color:#334155;
  font-size:11.5px;
  font-weight:600;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.mvd3d-summary-grid-atc{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.mvd-fir3d-error{
  margin-top:8px;
  padding:9px 11px;
  border:1px solid #f0b4b4;
  background:#fff0f0;
  color:#9f1d1d;
  border-radius:8px;
  font-size:13px;
}
.mvd-fir3d .cesium-viewer-bottom{font-size:10px}
.mvd-fir3d .cesium-widget-credits{background:rgba(0,0,0,.35)!important}
.mvd-fir3d .cesium-credit-textContainer,
.mvd-fir3d .cesium-credit-expand-link{font-size:9px!important}


@media(max-width:920px){
  .mvd-fir3d-control-view{margin-left:0}
  .mvd-fir3d-control-layers,
  .mvd-fir3d-control-view{border-left:0;padding-left:0}
}
@media(max-width:720px){
  .mvd-fir3d-head{align-items:flex-start;flex-direction:column}
  .mvd-fir3d-status{justify-content:flex-start}
  .mvd-fir3d-toolbar{align-items:stretch}
  .mvd-fir3d-control-group{width:100%;flex:1 1 100%}
  .mvd-fir3d-control-layers,
  .mvd-fir3d-control-view{overflow-x:auto;padding-bottom:1px}
  .mvd-fir3d-stage{height:520px}
  .mvd3d-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mvd3d-stat:nth-child(5n){border-right:1px solid #e8edf3}
  .mvd3d-stat:nth-child(2n){border-right:0}
  .mvd3d-summary-grid-atc{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  .mvd-fir3d-stage{height:470px}
  .mvd-fir3d-select-wrap{width:100%}
  .mvd-fir3d-track-control{flex:0 0 auto}
  .mvd-fir3d-focus-hint{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .mvd-fir3d-chevron,
  .mvd-fir3d-stage,
  .mvd-fir3d-focus-hint{transition:none!important}
}


@media(max-width:430px){
  .mvd3d-summary-grid,
  .mvd3d-summary-grid-atc{grid-template-columns:1fr 1fr}
  .mvd3d-route-strip{grid-template-columns:1fr;gap:4px}
}

/* Navegación compacta: Navigraph + VFR */
.mvd-fir3d-nav-hub{
  position:relative;
  z-index:9;
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  margin:0 0 6px;
  padding:5px;
  border:1px solid var(--mvd3d-line);
  border-radius:10px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  box-shadow:0 2px 8px rgba(15,23,42,.035);
}
.mvd-fir3d-nav-panel{
  flex:1 1 680px;
  min-width:0;
  margin:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.mvd-fir3d-nav-primary{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  padding:0;
}
.mvd-fir3d-nav-brand{
  display:flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
  min-height:32px;
  padding:0 8px;
  border:1px solid rgba(43,88,125,.22);
  border-radius:7px;
  background:var(--mvd3d-accent-soft);
}
.mvd-fir3d-nav-brand strong{
  color:var(--mvd3d-accent);
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.055em;
}
.mvd-fir3d-nav-brand span{
  padding-left:5px;
  border-left:1px solid rgba(43,88,125,.2);
  color:#355d7e;
  font-size:10.5px;
  font-weight:800;
  white-space:nowrap;
}
.mvd-fir3d-nav-airport-search{
  display:flex;
  align-items:center;
  gap:5px;
  flex:1 1 260px;
  min-width:220px;
}
.mvd-fir3d-nav-airport-search>label{
  color:var(--mvd3d-muted);
  font-size:9px;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.mvd-fir3d-nav-airport-select{
  flex:1 1 auto;
  min-width:170px;
  height:32px!important;
  margin:0!important;
  border:1px solid var(--mvd3d-line)!important;
  border-radius:7px!important;
  background:#fff!important;
  color:var(--mvd3d-ink)!important;
  padding:0 28px 0 9px!important;
  font:800 12px 'Overpass',system-ui,sans-serif!important;
  box-shadow:none!important;
  outline:none!important;
}
.mvd-fir3d-nav-airport-select:focus{
  border-color:rgba(43,88,125,.55)!important;
  box-shadow:0 0 0 2px rgba(43,88,125,.10)!important;
}
.mvd-fir3d-nav-network-controls,
.mvd-fir3d-nav-context-controls{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.mvd-fir3d-nav-context-controls[hidden]{display:none!important}
.mvd-fir3d-nav-network-controls button{
  min-height:32px;
  border:1px solid var(--mvd3d-line)!important;
  border-radius:7px!important;
  background:#fff!important;
  color:var(--mvd3d-ink)!important;
  padding:5px 9px!important;
  font:800 11px 'Overpass',system-ui,sans-serif!important;
  box-shadow:none!important;
  cursor:pointer;
  white-space:nowrap;
}
.mvd-fir3d-nav-network-controls button:disabled{opacity:.42;cursor:not-allowed}
.mvd-fir3d-nav-network-controls button[aria-pressed="true"]{
  border-color:rgba(43,88,125,.45)!important;
  background:var(--mvd3d-accent-soft)!important;
  color:var(--mvd3d-accent)!important;
}
.mvd-fir3d-nav-select-label{
  display:flex;
  align-items:center;
  min-height:32px;
  border:1px solid var(--mvd3d-line);
  border-radius:7px;
  background:var(--mvd3d-soft);
  overflow:hidden;
}
.mvd-fir3d-nav-select-label>span{
  padding:0 6px;
  color:var(--mvd3d-muted);
  font-size:8.5px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
}
.mvd-fir3d-nav-select-label select{
  height:30px!important;
  min-width:108px;
  max-width:195px;
  margin:0!important;
  padding:0 24px 0 7px!important;
  border:0!important;
  border-left:1px solid var(--mvd3d-line)!important;
  border-radius:0!important;
  background:#fff!important;
  color:var(--mvd3d-ink)!important;
  font:700 11px 'Overpass',system-ui,sans-serif!important;
  box-shadow:none!important;
}
.mvd-fir3d-nav-select-label select:disabled{opacity:.5}
.mvd-fir3d-nav-note{
  max-width:230px;
  padding:2px 4px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--mvd3d-muted);
  font-size:9.5px;
  font-weight:650;
}
.mvd-fir3d-nav-note.is-error{color:#a52424}

/* Sector EuroScope / VFR integrado en la misma barra */
.mvd-fir3d-vfr-panel{
  display:flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
  min-width:0;
  margin:0;
  padding-left:6px;
  border-left:1px solid var(--mvd3d-line);
}
.mvd-fir3d-vfr-brand{
  display:flex;
  align-items:center;
  gap:4px;
  min-height:32px;
  padding:0 7px;
  border:1px solid #cbe8d7;
  border-radius:7px;
  background:#f1fbf6;
  color:#14532d;
  font-size:10px;
  letter-spacing:.03em;
}
.mvd-fir3d-vfr-brand strong{font-weight:900}
.mvd-fir3d-vfr-brand span{color:#64748b;font-weight:800}
.mvd-fir3d-vfr-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.mvd-fir3d-vfr-controls button{
  appearance:none;
  border:1px solid #b7dfc8;
  border-radius:7px;
  background:#fff;
  color:#14532d;
  min-height:32px;
  padding:5px 8px;
  font:800 10.5px/1 Overpass,system-ui,sans-serif;
  cursor:pointer;
  white-space:nowrap;
}
.mvd-fir3d-vfr-controls button[aria-pressed="true"]{
  background:#dcfce7;
  border-color:#6fc997;
  box-shadow:inset 0 0 0 1px rgba(20,83,45,.08);
}
.mvd-fir3d-vfr-note{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.mvd-fir3d-vfr-note.is-error{
  position:static!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  clip:auto!important;
  overflow:visible!important;
  color:#a52424;
  font-size:10px;
  font-weight:700;
}

@media(max-width:900px){
  .mvd-fir3d-nav-panel{flex:1 1 100%}
  .mvd-fir3d-vfr-panel{padding-left:0;border-left:0}
}
@media(max-width:720px){
  .mvd-fir3d-nav-hub{align-items:stretch}
  .mvd-fir3d-nav-primary{align-items:stretch}
  .mvd-fir3d-nav-airport-search{flex:1 1 100%;min-width:0}
  .mvd-fir3d-nav-network-controls,.mvd-fir3d-nav-context-controls{width:100%}
  .mvd-fir3d-nav-select-label{flex:1 1 145px}
  .mvd-fir3d-nav-select-label select{flex:1 1 auto;min-width:0;max-width:none}
  .mvd-fir3d-nav-note{max-width:100%;flex:1 1 100%}
}

