/* SLYFLY · HUD DE CANTOS (versão Claude)
   Quatro cantos fixos — cada um sempre no mesmo lugar, para a pessoa saber
   onde ir: ↖ VOO · ↗ VISUAL + IMERSÃO · ↙ CAMADAS · ↘ LOCAIS. No topo, a
   bússola; embaixo, a busca. Tudo recolhe com X (ou o botão ◎ da bússola). */
:root{
  /* TEMA (trocado pelo console: html[data-ct-tema]) */
  --ct-acc-rgb:94,234,212;--ct-ink-rgb:230,244,241;--ct-fundo-rgb:6,18,24;--ct-fundo2-rgb:10,30,38;
  --ct-prim1-rgb:16,185,129;--ct-prim2-rgb:20,184,166;--ct-prim-tinta:#032a22;--ct-acc-claro:#b8fff0;
  --ct-a1:.72;--ct-a2:.86;
  --ct-ink:#e6f4f1;--ct-dim:#8fb3ae;--ct-faint:#5d807b;
  --ct-acc:#5eead4;--ct-acc2:#fbbf24;--ct-bad:#fb7185;
  --ct-glass:rgba(var(--ct-fundo-rgb),var(--ct-a1));--ct-glass2:rgba(var(--ct-fundo2-rgb),var(--ct-a2));
  --ct-line:rgba(var(--ct-acc-rgb),.22);--ct-line2:rgba(var(--ct-ink-rgb),.09);
  --ct-mono:ui-monospace,"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;
  --ct-sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ct-gap:18px;--ct-bottom:34px;
}
/* esconde os comandos antigos quando o HUD novo está ligado */
body.ct-on .sly-options,body.ct-on .sly-search-button,body.ct-on .sly-hint,
body.ct-on #botoes,body.ct-on #hud,body.ct-on #botaoInfo,body.ct-on #imersao{display:none!important}
body.ct-on:not(.ct-sticks) .sly-stick{display:none!important}
body.ct-sticks{--ct-bottom:318px}
body.ct-on #painel{top:auto;bottom:90px;left:50%;transform:translateX(-50%)}

.ct{font-family:var(--ct-sans);color:var(--ct-ink);-webkit-user-select:none;user-select:none;touch-action:none}
.ct *{box-sizing:border-box;touch-action:pan-x pan-y}
.ct-painel,.ct-result,.ct-estacoes,.ct-mrad-lista,.ct-prox-lista,.ct-cctv-lista{touch-action:pan-y!important}
.ct-cidades,.ct-aeroportos{touch-action:pan-x!important}
:where(.ct) button{font:inherit;color:inherit;touch-action:none}
body.ct-dir-aberto .ct-mr .ct-chip{opacity:0;pointer-events:none}

/* ---------- canto ---------- */
.ct-canto{position:fixed;z-index:70;display:flex;flex-direction:column;gap:10px;max-width:calc(100vw - 2*var(--ct-gap))}
.ct-tl{left:var(--ct-gap);top:var(--ct-gap);align-items:flex-start}
.ct-tr{right:var(--ct-gap);top:var(--ct-gap);align-items:flex-end}
.ct-bl{left:var(--ct-gap);bottom:var(--ct-bottom);align-items:flex-start;flex-direction:column-reverse}
.ct-br{right:var(--ct-gap);bottom:var(--ct-bottom);align-items:flex-end;flex-direction:column-reverse}

/* ---------- chip (o canto minimizado) ---------- */
.ct-chip{position:relative;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 10px;
  background:var(--ct-glass);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid var(--ct-line2);border-radius:14px;cursor:pointer;
  box-shadow:0 8px 26px rgba(0,0,0,.28);transition:border-color .18s,background .18s,transform .18s}
.ct-chip:hover{border-color:var(--ct-line);background:var(--ct-glass2)}
.ct-chip:active{transform:scale(.97)}
.ct-chip[aria-expanded=true]{border-color:rgba(var(--ct-acc-rgb),.55);box-shadow:0 0 0 1px rgba(var(--ct-acc-rgb),.18),0 8px 26px rgba(0,0,0,.35)}
.ct-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;
  background:linear-gradient(145deg,rgba(var(--ct-acc-rgb),.2),rgba(var(--ct-acc-rgb),.04));color:var(--ct-acc);font-size:16px;line-height:1}
.ct-chip b{display:block;font:600 10px/1.1 var(--ct-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ct-dim)}
.ct-chip i{display:block;font:500 13px/1.35 var(--ct-mono);font-style:normal;color:var(--ct-ink);margin-top:3px;white-space:nowrap}
.ct-chip .ct-kbd{margin-left:6px;font:600 9px var(--ct-mono);color:var(--ct-faint);border:1px solid var(--ct-line2);border-radius:5px;padding:2px 5px}
/* ícone compacto (o mesmo do celular, agora também no desktop): só o ícone; nome e tecla vão na dica ao passar o mouse */
.ct-chip{padding:7px;justify-content:center;gap:0}
.ct-chip b,.ct-chip i{display:none}
/* cantinhos de mira — o detalhe "tático" discreto */
.ct-chip::before,.ct-chip::after,.ct-painel::before,.ct-painel::after{content:"";position:absolute;width:9px;height:9px;border-color:var(--ct-acc);opacity:.55;pointer-events:none}
.ct-chip::before,.ct-painel::before{left:-1px;top:-1px;border-left:1.5px solid;border-top:1.5px solid;border-top-left-radius:6px}
.ct-chip::after,.ct-painel::after{right:-1px;bottom:-1px;border-right:1.5px solid;border-bottom:1.5px solid;border-bottom-right-radius:6px}

/* ---------- painel (o canto aberto) ---------- */
.ct-painel{position:relative;width:340px;max-width:calc(100vw - 2*var(--ct-gap));
  max-height:calc(100vh - 240px);overflow:auto;padding:16px 16px 14px;
  background:var(--ct-glass2);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);
  border:1px solid var(--ct-line);border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.45);
  animation:ct-in .2s ease-out;scrollbar-width:thin;scrollbar-color:rgba(var(--ct-acc-rgb),.3) transparent}
.ct-painel[hidden]{display:none}
@keyframes ct-in{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.ct-bl .ct-painel,.ct-br .ct-painel{animation-name:ct-up}
@keyframes ct-up{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.ct-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ct-cab h2{margin:0;font:600 11px var(--ct-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--ct-acc)}
.ct-cab button{background:none;border:0;color:var(--ct-dim);font-size:18px;cursor:pointer;width:28px;height:28px;border-radius:8px}
.ct-cab button:hover{background:rgba(255,255,255,.06);color:var(--ct-ink)}
.ct-sec+.ct-sec{margin-top:14px;padding-top:12px;border-top:1px solid var(--ct-line2)}
.ct-sec h3{margin:0 0 8px;font:600 9.5px var(--ct-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ct-faint)}
.ct-p{margin:8px 0 0;font-size:11.5px;line-height:1.55;color:var(--ct-dim)}

/* segmentos */
.ct-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:3px;background:rgba(0,0,0,.25);border-radius:11px;border:1px solid var(--ct-line2)}
.ct-seg button{border:0;background:transparent;border-radius:8px;padding:8px 4px;font-size:12px;color:var(--ct-dim);cursor:pointer;transition:background .15s,color .15s}
.ct-seg button:hover{color:var(--ct-ink)}
.ct-seg button[aria-pressed=true]{background:rgba(var(--ct-acc-rgb),.16);color:var(--ct-acc-claro);box-shadow:inset 0 0 0 1px rgba(var(--ct-acc-rgb),.35)}

/* linhas de camada / local */
.ct-lista{display:flex;flex-direction:column;gap:4px}
.ct-linha{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 9px;border-radius:11px;border:1px solid transparent;background:rgba(255,255,255,.025);cursor:pointer;transition:background .15s,border-color .15s}
.ct-linha:hover{background:rgba(var(--ct-acc-rgb),.07);border-color:var(--ct-line2)}
.ct-linha[aria-pressed=true]{border-color:rgba(var(--ct-acc-rgb),.35);background:rgba(var(--ct-acc-rgb),.08)}
.ct-linha .ct-li{width:26px;text-align:center;font-size:15px;color:var(--ct-acc)}
.ct-linha .ct-lt{flex:1;min-width:0}
.ct-linha strong{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-linha small{display:block;font-size:10.5px;color:var(--ct-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.ct-pill{font:600 9.5px var(--ct-mono);letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:6px;border:1px solid var(--ct-line2);color:var(--ct-faint);white-space:nowrap}
.ct-pill.on{color:var(--ct-acc);border-color:rgba(var(--ct-acc-rgb),.45)}
.ct-pill.warn{color:var(--ct-acc2);border-color:rgba(251,191,36,.4)}
.ct-pill.bad{color:var(--ct-bad);border-color:rgba(251,113,133,.4)}
.ct-sw{width:30px;height:17px;border-radius:9px;background:rgba(255,255,255,.12);position:relative;flex:none;transition:background .15s}
.ct-sw::after{content:"";position:absolute;left:2px;top:2px;width:13px;height:13px;border-radius:50%;background:#cfe3df;transition:transform .15s}
[aria-pressed=true] .ct-sw{background:rgba(var(--ct-acc-rgb),.55)}
[aria-pressed=true] .ct-sw::after{transform:translateX(13px);background:#fff}

/* estilos visuais em grade */
.ct-estilos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ct-estilos button{height:54px;border-radius:11px;border:1px solid var(--ct-line2);cursor:pointer;position:relative;overflow:hidden;
  font:600 9.5px var(--ct-mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px #000;display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px}
.ct-estilos button[aria-pressed=true]{border-color:var(--ct-acc);box-shadow:0 0 0 2px rgba(var(--ct-acc-rgb),.3)}

/* botão de imersão */
.ct-vr{display:flex;align-items:center;gap:10px;padding:11px 16px 11px 12px;border-radius:14px;cursor:pointer;
  border:1px solid rgba(var(--ct-acc-rgb),.6);background:linear-gradient(135deg,rgba(var(--ct-prim1-rgb),.9),rgba(var(--ct-prim2-rgb),.75));
  color:var(--ct-prim-tinta);font:700 12px var(--ct-mono);letter-spacing:.14em;text-transform:uppercase;box-shadow:0 8px 28px rgba(var(--ct-prim1-rgb),.35)}
.ct-vr:hover{filter:brightness(1.08)}
.ct-vr span{font-size:18px;letter-spacing:0}

/* ---------- bússola (topo centro) ---------- */
.ct-bussola{position:fixed;top:var(--ct-gap);left:50%;transform:translateX(-50%);z-index:69;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}
.ct-fita{position:relative;width:min(360px,46vw);height:30px;overflow:hidden;border-radius:10px;
  background:var(--ct-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ct-line2);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.ct-fita-in{position:absolute;top:0;left:0;height:100%;white-space:nowrap;will-change:transform}
.ct-fita-in span{position:absolute;top:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:40px;margin-left:-20px;
  font:600 11px var(--ct-mono);color:var(--ct-dim)}
.ct-fita-in span.card{color:var(--ct-ink)}
.ct-fita-in span.n{color:var(--ct-acc)}
.ct-fita-in span.tick{font-size:8px;color:var(--ct-faint)}
.ct-fita::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1.5px;background:var(--ct-acc);transform:translateX(-50%);box-shadow:0 0 8px var(--ct-acc)}
.ct-rumo{font:600 10px var(--ct-mono);letter-spacing:.2em;color:var(--ct-dim)}
.ct-mestre{pointer-events:auto;display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:10px;cursor:pointer;
  background:var(--ct-glass);border:1px solid var(--ct-line2);backdrop-filter:blur(12px);
  font:600 9.5px var(--ct-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ct-dim)}
.ct-mestre:hover{color:var(--ct-ink);border-color:var(--ct-line)}

/* ---------- dock de busca (base centro) ---------- */
.ct-dock{position:fixed;left:50%;bottom:var(--ct-gap);transform:translateX(-50%);z-index:68;width:min(560px,calc(100vw - 520px));min-width:300px}
body.ct-sticks .ct-dock{bottom:var(--ct-gap)}
.ct-busca{display:flex;align-items:center;gap:8px;padding:7px 7px 7px 14px;border-radius:16px;
  background:var(--ct-glass);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid var(--ct-line2);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.ct-busca:focus-within{border-color:var(--ct-line)}
.ct-busca input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ct-ink);font:16px var(--ct-sans);padding:6px 0}
.ct-busca input::placeholder{color:var(--ct-faint)}
.ct-busca .ct-lupa{color:var(--ct-acc);font-size:15px}
.ct-busca button{border:0;border-radius:11px;padding:8px 13px;cursor:pointer;background:rgba(var(--ct-acc-rgb),.14);color:var(--ct-acc-claro);font:600 11px var(--ct-mono);letter-spacing:.1em}
.ct-cidades{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:7px}
.ct-cidades button{border:1px solid var(--ct-line2);background:rgba(var(--ct-fundo-rgb),calc(var(--ct-a1)*.75));backdrop-filter:blur(10px);border-radius:8px;padding:5px 9px;cursor:pointer;
  font:600 9.5px var(--ct-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ct-dim)}
.ct-cidades button:hover{color:var(--ct-ink);border-color:var(--ct-line)}
.ct-aeroportos-wrap{margin-top:6px}
.ct-aeroportos-wrap>small{display:block;margin:0 0 4px 3px;color:var(--ct-faint);font:600 8px var(--ct-mono);letter-spacing:.16em;text-transform:uppercase}
.ct-aeroportos{display:flex;gap:5px;overflow-x:auto;white-space:nowrap;padding:1px 0 3px;scrollbar-width:thin;scrollbar-color:rgba(var(--ct-acc-rgb),.25) transparent}
.ct-aeroportos button{flex:none;padding:5px 8px;border:1px solid var(--ct-line2);border-radius:8px;background:rgba(var(--ct-fundo-rgb),calc(var(--ct-a1)*.75));color:var(--ct-dim);font:600 9px var(--ct-mono);cursor:pointer}
.ct-aeroportos button:hover{border-color:var(--ct-line);color:var(--ct-ink)}
.ct-result{position:absolute;left:0;right:0;bottom:calc(100% + 8px);padding:6px;border-radius:14px;background:var(--ct-glass2);
  backdrop-filter:blur(20px);border:1px solid var(--ct-line);box-shadow:0 18px 50px rgba(0,0,0,.45);max-height:46vh;overflow:auto}
.ct-result[hidden]{display:none}
.ct-result button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--ct-ink);padding:9px 10px;border-radius:9px;cursor:pointer;font-size:13px}
.ct-result button:hover{background:rgba(var(--ct-acc-rgb),.1)}
.ct-result p{margin:6px 10px;font-size:12px;color:var(--ct-dim)}

/* ---------- formulário de local ---------- */
.ct-form label{display:block;font:600 9.5px var(--ct-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ct-faint);margin:10px 0 5px}
.ct-form input,.ct-form select{width:100%;padding:9px 10px;border-radius:10px;border:1px solid var(--ct-line2);background:rgba(0,0,0,.25);color:var(--ct-ink);font:13px var(--ct-sans);outline:0}
.ct-form input:focus,.ct-form select:focus{border-color:var(--ct-line)}
.ct-form .ct-dupla{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ct-acoes{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.ct-btn{border:1px solid var(--ct-line);background:rgba(var(--ct-acc-rgb),.1);color:var(--ct-acc-claro);border-radius:10px;padding:8px 11px;cursor:pointer;font:600 10.5px var(--ct-mono);letter-spacing:.08em;text-transform:uppercase}
.ct-btn:hover{background:rgba(var(--ct-acc-rgb),.18)}
.ct-btn:disabled{opacity:.38;cursor:default}
.ct-btn.sec{border-color:var(--ct-line2);background:transparent;color:var(--ct-dim)}
.ct-btn.perigo{border-color:rgba(251,113,133,.35);background:transparent;color:var(--ct-bad)}
.ct-btn.prim{background:linear-gradient(135deg,rgba(var(--ct-prim1-rgb),.85),rgba(var(--ct-prim2-rgb),.7));color:var(--ct-prim-tinta);border-color:transparent}
.ct-coord{font:12px var(--ct-mono);color:var(--ct-acc);margin-top:6px}
.ct-ficha{padding:10px;border-radius:12px;background:rgba(0,0,0,.22);border:1px solid var(--ct-line2);margin-top:8px}
.ct-ficha dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0;font-size:11.5px}
.ct-ficha dt{color:var(--ct-faint);font:600 9.5px var(--ct-mono);letter-spacing:.12em;text-transform:uppercase;padding-top:2px}
.ct-ficha dd{margin:0;color:var(--ct-ink)}

/* modo de marcar no mapa */
body.ct-marcando .cesium-widget canvas{cursor:crosshair!important}
.ct-aviso{position:fixed;left:50%;top:86px;transform:translateX(-50%);z-index:80;padding:10px 16px;border-radius:12px;
  background:var(--ct-glass2);border:1px solid var(--ct-line);backdrop-filter:blur(16px);font-size:13px;box-shadow:0 12px 40px rgba(0,0,0,.4);
  display:flex;gap:12px;align-items:center}
.ct-aviso[hidden]{display:none}

/* telas estreitas (celular / janela do Quest) */
@media (max-width:820px){
  .ct-dock{width:calc(100vw - 2*var(--ct-gap));min-width:0;bottom:calc(var(--ct-bottom) + 64px)}
  .ct-cidades{display:none}
  .ct-chip i{display:none}
  .ct-chip{padding:7px}
  .ct-chip b{display:none}
  .ct-fita{width:56vw}
  .ct-painel{width:calc(100vw - 2*var(--ct-gap));max-height:calc(100vh - 230px)}
}

/* ---------- rádio (lateral direita) ---------- */
.ct-mr{right:var(--ct-gap);top:50%;transform:translateY(-50%);align-items:flex-end}
.ct-mr .ct-painel{max-height:calc(100vh - 260px)}
.ct-mr .ct-painel{position:fixed;right:var(--ct-gap);top:50%;transform:translateY(-50%);margin-top:40px}
.ct-mr .ct-chip[aria-expanded=true]{visibility:hidden}
.ct-radio-tela{padding:11px 12px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid var(--ct-line2)}
.ct-radio-tela strong{display:block;font-size:14px;font-weight:600}
.ct-radio-tela small{display:block;font-size:11px;color:var(--ct-dim);margin-top:3px}
.ct-radio-tela em{display:block;font:normal 10.5px var(--ct-mono);color:var(--ct-acc);margin-top:5px}
.ct-dial{position:relative;height:46px;margin-top:9px;border-radius:10px;border:1px solid var(--ct-line2);cursor:pointer;
  background:repeating-linear-gradient(90deg,transparent 0 9px,rgba(var(--ct-acc-rgb),.08) 9px 10px),rgba(0,0,0,.3);overflow:hidden}
.ct-dial-esc i{position:absolute;bottom:8px;width:1px;height:12px;background:rgba(var(--ct-acc-rgb),.45)}
.ct-dial-esc i:nth-child(5n+1){height:20px;background:rgba(var(--ct-acc-rgb),.8)}
.ct-agulha{position:absolute;top:4px;bottom:4px;width:3px;margin-left:-1.5px;border-radius:2px;background:#ff6b4a;box-shadow:0 0 10px #ff6b4a;transition:left .35s ease}
.ct-dial span{position:absolute;right:8px;top:5px;font:600 9.5px var(--ct-mono);letter-spacing:.12em;color:var(--ct-dim)}
.ct-radio-bot{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}
.ct-radio-bot .ct-btn{font-size:14px;padding:9px 0}
.ct-vol{display:flex;align-items:center;gap:10px;margin-top:10px;font:600 9.5px var(--ct-mono);letter-spacing:.16em;color:var(--ct-faint)}
.ct-vol input{flex:1;accent-color:var(--ct-acc)}
.ct-vol b{font-weight:600;color:var(--ct-dim);width:34px;text-align:right}
.ct-estacoes{max-height:220px;overflow:auto}
@media (max-width:820px){.ct-mr{top:84px;transform:none}}

/* ---------- objeto selecionado (satélite) ---------- */
.ct-or{right:var(--ct-gap);top:132px;align-items:flex-end}
.ct-or[hidden]{display:none}
.ct-foto{margin-top:9px}
.ct-foto img{width:100%;max-height:170px;object-fit:cover;border-radius:12px;border:1px solid var(--ct-line2);display:block}
.ct-foto a{color:var(--ct-acc)}

/* ---------- contatos (lateral esquerda) ---------- */
.ct-ml{left:var(--ct-gap);top:50%;transform:translateY(-50%);align-items:flex-start}
.ct-ml .ct-painel{position:fixed;left:var(--ct-gap);top:50%;transform:translateY(-50%);margin-top:40px;max-height:calc(100vh - 260px)}
.ct-ml .ct-chip[aria-expanded=true]{visibility:hidden}
body.ct-esq-aberto .ct-ml .ct-chip{opacity:0;pointer-events:none}
body.ct-cabine .ct-bussola .ct-fita{border-color:rgba(251,191,36,.55)}
@media (max-width:820px){.ct-ml{top:84px;transform:none}}

/* =====================================================================
   TEMAS
   ===================================================================== */
html[data-ct-tema=ambar]{--ct-acc-rgb:251,191,36;--ct-acc:#fbbf24;--ct-acc2:#5eead4;--ct-acc-claro:#ffe7a8;
  --ct-fundo-rgb:24,16,6;--ct-fundo2-rgb:36,24,10;--ct-prim1-rgb:245,158,11;--ct-prim2-rgb:217,119,6;--ct-prim-tinta:#2a1a02;
  --ct-ink:#fbf3e4;--ct-ink-rgb:251,243,228;--ct-dim:#c9b38c;--ct-faint:#8a7652}
html[data-ct-tema=polar]{--ct-acc-rgb:125,211,252;--ct-acc:#7dd3fc;--ct-acc2:#fbbf24;--ct-acc-claro:#d6f1ff;
  --ct-fundo-rgb:6,14,28;--ct-fundo2-rgb:10,22,42;--ct-prim1-rgb:56,189,248;--ct-prim2-rgb:59,130,246;--ct-prim-tinta:#04172b;
  --ct-ink:#e8f2fb;--ct-ink-rgb:232,242,251;--ct-dim:#93aeca;--ct-faint:#5d7591}
html[data-ct-tema=tatico]{--ct-acc-rgb:248,113,113;--ct-acc:#f87171;--ct-acc2:#fbbf24;--ct-acc-claro:#ffd0d0;
  --ct-fundo-rgb:20,8,10;--ct-fundo2-rgb:32,12,14;--ct-prim1-rgb:239,68,68;--ct-prim2-rgb:220,38,38;--ct-prim-tinta:#2a0505;
  --ct-ink:#fbeaea;--ct-ink-rgb:251,234,234;--ct-dim:#c9a0a0;--ct-faint:#8a6363}
html[data-ct-tema=nvg]{--ct-acc-rgb:134,239,172;--ct-acc:#86efac;--ct-acc2:#fde047;--ct-acc-claro:#d9ffe6;
  --ct-fundo-rgb:4,18,9;--ct-fundo2-rgb:8,28,15;--ct-prim1-rgb:34,197,94;--ct-prim2-rgb:22,163,74;--ct-prim-tinta:#03210d;
  --ct-ink:#e7fbe9;--ct-ink-rgb:231,251,233;--ct-dim:#94c49e;--ct-faint:#5f8a67}
html[data-ct-tema=grafite]{--ct-acc-rgb:226,232,240;--ct-acc:#e2e8f0;--ct-acc2:#fbbf24;--ct-acc-claro:#ffffff;
  --ct-fundo-rgb:14,15,18;--ct-fundo2-rgb:24,26,31;--ct-prim1-rgb:148,163,184;--ct-prim2-rgb:100,116,139;--ct-prim-tinta:#0b0d10;
  --ct-ink:#f1f5f9;--ct-ink-rgb:241,245,249;--ct-dim:#a3acb9;--ct-faint:#6b7280}
html[data-ct-tema=claro]{--ct-acc-rgb:13,148,136;--ct-acc:#0d9488;--ct-acc2:#b45309;--ct-acc-claro:#0b5d56;
  --ct-fundo-rgb:244,248,249;--ct-fundo2-rgb:250,252,252;--ct-prim1-rgb:13,148,136;--ct-prim2-rgb:15,118,110;--ct-prim-tinta:#ffffff;
  --ct-ink:#0f2a2e;--ct-ink-rgb:15,42,46;--ct-dim:#3d5d61;--ct-faint:#6b8a8d}
html[data-ct-tema=claro] .ct-chip,html[data-ct-tema=claro] .ct-painel{box-shadow:0 10px 30px rgba(0,0,0,.18)}

/* tecla e legenda */
.ct-teclas{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center;margin-top:10px}
.ct-teclas span{display:flex;gap:3px;flex-wrap:wrap}
.ct-teclas em{font-style:normal;font-size:11px;color:var(--ct-dim)}
.ct-teclas kbd,.ct-cbar kbd{font:600 9.5px var(--ct-mono);color:var(--ct-ink);background:rgba(var(--ct-ink-rgb),.07);border:1px solid var(--ct-line2);border-bottom-width:2px;border-radius:5px;padding:2px 5px}
.ct-legenda{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px}
.ct-legenda span{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--ct-dim)}
.ct-legenda i{width:10px;height:10px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.3)}

/* =====================================================================
   CONSOLE (tecla X): véu transparente ajustável + todos os painéis abertos
   na moldura dos quatro cantos. O mapa continua vivo e clicável no meio.
   ===================================================================== */
.ct-veu{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:0;transition:opacity .25s;
  background:radial-gradient(ellipse at center,rgba(var(--ct-fundo-rgb),calc(var(--ct-veu,.35)*.55)) 0%,rgba(var(--ct-fundo-rgb),var(--ct-veu,.35)) 70%);
  backdrop-filter:blur(var(--ct-veu-blur,0px));-webkit-backdrop-filter:blur(var(--ct-veu-blur,0px))}
.ct-moldura{position:fixed;inset:8px;z-index:61;pointer-events:none;border-radius:24px;opacity:0;transition:opacity .25s;
  border:1px solid rgba(var(--ct-acc-rgb),.28);box-shadow:inset 0 0 60px rgba(var(--ct-acc-rgb),.06)}
.ct-moldura i{position:absolute;width:34px;height:34px;border-color:var(--ct-acc);border-style:solid;border-width:0}
.ct-moldura i:nth-child(1){left:-1px;top:-1px;border-left-width:2px;border-top-width:2px;border-top-left-radius:24px}
.ct-moldura i:nth-child(2){right:-1px;top:-1px;border-right-width:2px;border-top-width:2px;border-top-right-radius:24px}
.ct-moldura i:nth-child(3){left:-1px;bottom:-1px;border-left-width:2px;border-bottom-width:2px;border-bottom-left-radius:24px}
.ct-moldura i:nth-child(4){right:-1px;bottom:-1px;border-right-width:2px;border-bottom-width:2px;border-bottom-right-radius:24px}
body.ct-console .ct-veu,body.ct-console .ct-moldura,body.ct-moldura-sempre .ct-moldura{opacity:1}

.ct-cbar{position:fixed;top:calc(var(--ct-gap) + 66px);left:50%;transform:translateX(-50%);z-index:72;display:none;
  align-items:center;gap:14px;padding:8px 12px;border-radius:14px;background:var(--ct-glass2);border:1px solid var(--ct-line);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 34px rgba(0,0,0,.35);font-family:var(--ct-sans);color:var(--ct-ink)}
body.ct-console .ct-cbar{display:flex}
.ct-cbar b{font:600 9.5px var(--ct-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ct-acc)}
.ct-cbar label{display:flex;align-items:center;gap:7px;font:600 9px var(--ct-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ct-faint)}
.ct-cbar input[type=range]{width:86px;accent-color:var(--ct-acc)}
.ct-temas{display:flex;gap:5px}
.ct-temas button{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
.ct-temas button[aria-pressed=true]{border-color:var(--ct-ink)}
.ct-cbar .ct-x{white-space:nowrap;border:1px solid var(--ct-line2);background:none;color:var(--ct-dim);border-radius:8px;padding:4px 8px;cursor:pointer;font:600 10px var(--ct-mono)}
.ct-cbar .ct-x:hover{color:var(--ct-ink)}
@media (max-width:980px){.ct-cbar{flex-wrap:wrap;justify-content:center;width:calc(100vw - 32px)}}

/* no console os chips somem e cada canto vira um painel da moldura:
   coluna esquerda = Voo / Contatos / Camadas · direita = Visual / Rádio / Locais */
body.ct-console .ct-chip{display:none}
body.ct-console .ct-canto .ct-painel{display:block;position:fixed;width:min(330px,calc(50vw - 40px));max-height:none;margin:0;transform:none;animation:none;
  height:calc((100vh - 2*var(--ct-gap) - 2*12px - 40px) / 3)}
body.ct-console .ct-tl .ct-painel{left:calc(var(--ct-gap) + 6px);top:calc(var(--ct-gap) + 6px)}
body.ct-console .ct-ml .ct-painel{left:calc(var(--ct-gap) + 6px);top:calc(var(--ct-gap) + 6px + (100vh - 2*var(--ct-gap) - 24px - 40px)/3 + 12px)}
body.ct-console .ct-bl .ct-painel{left:calc(var(--ct-gap) + 6px);top:calc(var(--ct-gap) + 6px + 2*((100vh - 2*var(--ct-gap) - 24px - 40px)/3 + 12px))}
body.ct-console .ct-tr .ct-painel{right:calc(var(--ct-gap) + 6px);top:calc(var(--ct-gap) + 6px)}
body.ct-console .ct-mr .ct-painel{right:calc(var(--ct-gap) + 6px);top:calc(var(--ct-gap) + 6px + (100vh - 2*var(--ct-gap) - 24px - 40px)/3 + 12px)}
body.ct-console .ct-br .ct-painel{right:calc(var(--ct-gap) + 6px);top:calc(var(--ct-gap) + 6px + 2*((100vh - 2*var(--ct-gap) - 24px - 40px)/3 + 12px))}
body.ct-console .ct-tr .ct-vr{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--ct-gap) + 92px);z-index:72}
body.ct-console .ct-or .ct-painel{left:50%;transform:translateX(-50%);top:calc(var(--ct-gap) + 120px);width:min(380px,calc(100vw - 2*360px));height:auto;max-height:calc(100vh - 290px)}
body.ct-console .ct-dock{width:min(520px,calc(100vw - 2*380px));min-width:280px}
@media (max-width:980px){
  body.ct-console .ct-canto .ct-painel{position:static;width:auto;height:auto;max-height:none}
  body.ct-console .ct{position:fixed;inset:0;z-index:71;overflow:auto;padding:150px 14px 160px}
  body.ct-console .ct-canto{position:static;transform:none;margin-bottom:12px;max-width:none}
}
body.ct-console .ct-ml,body.ct-console .ct-mr{transform:none}
body.ct-console .ct-canto{z-index:71}

/* câmeras do avião em ícones */
.ct-icones{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.ct-icones button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border-radius:10px;border:1px solid var(--ct-line2);background:rgba(var(--ct-ink-rgb),.03);cursor:pointer;color:var(--ct-dim)}
.ct-icones button b{font-size:17px;line-height:1;color:var(--ct-acc);font-weight:400}
.ct-icones button small{font:600 8.5px var(--ct-mono);letter-spacing:.06em;text-transform:uppercase}
.ct-icones button:hover{border-color:var(--ct-line);color:var(--ct-ink)}
.ct-icones button[aria-pressed=true]{background:rgba(var(--ct-acc-rgb),.16);border-color:rgba(var(--ct-acc-rgb),.5);color:var(--ct-acc-claro)}
.ct-lugares{display:flex;flex-wrap:wrap;gap:5px}
.ct-lugares button{border:1px solid var(--ct-line2);background:rgba(var(--ct-ink-rgb),.03);border-radius:8px;padding:5px 8px;cursor:pointer;font-size:11px;color:var(--ct-dim)}
.ct-lugares button[aria-pressed=true]{background:rgba(var(--ct-acc-rgb),.16);border-color:rgba(var(--ct-acc-rgb),.5);color:var(--ct-acc-claro)}

/* mira e mini popup sobre o avião apontado */
.ct-mira{position:fixed;left:0;top:0;width:44px;height:44px;z-index:66;pointer-events:none;border-radius:50%;
  border:1.5px solid var(--ct-acc);box-shadow:0 0 14px rgba(var(--ct-acc-rgb),.55),inset 0 0 10px rgba(var(--ct-acc-rgb),.25)}
.ct-mira.on{animation:ct-mira .35s ease-out}
@keyframes ct-mira{from{opacity:0;scale:.35}to{opacity:1;scale:1}}
.ct-mira::before,.ct-mira::after{content:"";position:absolute;left:50%;top:-7px;width:1.5px;height:7px;background:var(--ct-acc);transform:translateX(-50%)}
.ct-mira::after{top:auto;bottom:-7px}
.ct-pop{position:fixed;left:0;top:0;z-index:67;display:flex;flex-direction:column;gap:6px;padding:8px 9px;border-radius:12px;min-width:170px;
  background:var(--ct-glass2);border:1px solid var(--ct-line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 28px rgba(0,0,0,.4);font-family:var(--ct-sans);color:var(--ct-ink)}
.ct-mira[hidden],.ct-pop[hidden]{display:none}
.ct-pop-t b{display:block;font:600 12px var(--ct-mono);letter-spacing:.06em;color:var(--ct-acc-claro)}
.ct-pop-t small{display:block;font-size:10.5px;color:var(--ct-dim);margin-top:2px;white-space:nowrap}
.ct-pop-i{display:flex;gap:4px}
.ct-pop-i button{width:32px;height:30px;border-radius:9px;border:1px solid var(--ct-line2);background:rgba(var(--ct-ink-rgb),.04);color:var(--ct-acc);cursor:pointer;font-size:15px;line-height:1}
.ct-pop-i button:hover{background:rgba(var(--ct-acc-rgb),.18);border-color:var(--ct-line)}
.ct-acoes a.ct-btn{text-decoration:none;display:inline-flex;align-items:center}
.ct-det summary{cursor:pointer;list-style:none;font:600 9.5px var(--ct-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ct-faint);padding:4px 0 8px}
.ct-det summary::-webkit-details-marker{display:none}
.ct-det[open] summary{color:var(--ct-acc)}

/* página de imersão: o HUD de cantos substitui o botão central e o "voltar" antigo */
body.ct-on.ct-imersao #ui,body.ct-on.ct-imersao #voltar2d{display:none!important}
body.ct-on.ct-imersao #estado{display:none}
body.ct-on.ct-imersao.ct-estado #estado{display:block;bottom:auto;top:auto;left:50%;right:auto;bottom:118px;transform:translateX(-50%);max-width:min(720px,90vw);
  padding:8px 12px;border-radius:10px;background:var(--ct-glass2);border:1px solid var(--ct-line2);font:11px var(--ct-mono);color:var(--ct-dim);z-index:68}
.ct-linha-vr{display:flex;gap:8px;align-items:stretch}
.ct-volta{border:1px solid var(--ct-line);background:var(--ct-glass2);color:var(--ct-acc-claro);border-radius:14px;padding:0 14px;cursor:pointer;
  font:700 12px var(--ct-mono);letter-spacing:.1em;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ct-volta:hover{border-color:var(--ct-acc)}
.ct-vr.esperando{filter:saturate(.3) brightness(.8);cursor:progress}

/* ---------- topo direito: Rádio · Locais · Visual numa fileira só ---------- */
:root{--ct-chipw:48px}
.ct-tr .ct-chip{min-width:var(--ct-chipw);box-sizing:border-box}
body:not(.ct-console) .ct-topo{position:fixed;top:calc(var(--ct-gap) + 74px);right:var(--ct-gap);z-index:70;display:flex;gap:10px;align-items:flex-start}
body:not(.ct-console) .ct-topo > .ct-chip{min-width:var(--ct-chipw);box-sizing:border-box;opacity:1;pointer-events:auto}
body:not(.ct-console) .ct-tr .ct-painel{position:fixed;top:calc(var(--ct-gap) + 128px);right:var(--ct-gap);left:auto;transform:none;margin:0;width:340px;max-height:calc(100vh - 2*var(--ct-gap) - 140px)}
body:not(.ct-console) .ct-topo-item{position:relative;top:auto;right:auto;bottom:auto;transform:none;margin:0}
body:not(.ct-console) .ct-topo-item .ct-chip{min-width:var(--ct-chipw);box-sizing:border-box;opacity:1;pointer-events:auto}
body:not(.ct-console) .ct-topo-item .ct-chip[aria-expanded=true]{visibility:visible;border-color:rgba(var(--ct-acc-rgb),.45)}
body:not(.ct-console) .ct-topo-item .ct-painel{position:fixed;top:calc(var(--ct-gap) + 128px);right:var(--ct-gap);left:auto;transform:none;margin:0;width:340px;max-height:calc(100vh - 2*var(--ct-gap) - 140px)}
body.ct-console .ct-topo{display:contents}
@media (max-width:820px){
  body:not(.ct-console) .ct-topo{top:calc(var(--ct-gap) + 124px);right:var(--ct-gap)}
  body:not(.ct-console) .ct-topo-item .ct-chip{min-width:0}
  body:not(.ct-console) .ct-topo-item .ct-painel{top:calc(var(--ct-gap) + 186px);width:calc(100vw - 2*var(--ct-gap))}
  .ct-tr .ct-chip{min-width:0}
}
/* miniatura do avião na lista e blocos Dados / Foto da ficha */
.ct-thumb{width:46px;height:32px;flex:0 0 46px;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.04);border:1px solid var(--ct-line2);font-size:15px;color:var(--ct-acc)}
.ct-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ct-foto-vazia{padding:14px;border-radius:12px;border:1px dashed var(--ct-line2);color:var(--ct-faint);font:500 11px var(--ct-mono);text-align:center}
.ct-dados{margin-top:8px}

/* menu da esquerda e lupa do topo: portados do Codex */
.ct-cab-acoes{display:flex;align-items:center;gap:4px}
.ct-painel-contatos.ct-painel-compacto{width:250px;max-height:55vh;padding:10px}
.ct-painel-contatos.ct-painel-compacto .ct-cab{top:-10px;margin:-10px -10px 7px;padding:6px 8px 6px 10px}
.ct-painel-contatos.ct-painel-compacto .ct-cab h2{font-size:10px}
.ct-painel-contatos.ct-painel-compacto .ct-det,
.ct-painel-contatos.ct-painel-compacto .ct-info,
.ct-painel-contatos.ct-painel-compacto .ct-ficha,
.ct-painel-contatos.ct-painel-compacto .ct-radio-tela,
.ct-painel-contatos.ct-painel-compacto .ct-foto,
.ct-painel-contatos.ct-painel-compacto .ct-p{display:none!important}
.ct-painel-contatos.ct-painel-compacto .ct-sec{margin:5px 0 0;padding:5px 0 0}
.ct-painel-contatos.ct-painel-compacto .ct-sec h3{display:none}
.ct-painel-contatos.ct-painel-compacto .ct-radio-bot{gap:5px}
.ct-painel-contatos.ct-painel-compacto [data-ant],
.ct-painel-contatos.ct-painel-compacto [data-foco],
.ct-painel-contatos.ct-painel-compacto [data-prox]{font-size:0;min-height:34px;padding:6px}
.ct-painel-contatos.ct-painel-compacto [data-ant]::before{content:'‹';font-size:18px}
.ct-painel-contatos.ct-painel-compacto [data-foco]::before{content:'◎';font-size:16px}
.ct-painel-contatos.ct-painel-compacto [data-prox]::before{content:'›';font-size:18px}
.ct-painel-contatos.ct-painel-compacto [data-cams]{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.ct-painel-contatos.ct-painel-compacto [data-cams] button{min-width:0;padding:6px 3px}
.ct-painel-contatos.ct-painel-compacto [data-cams] small{display:none}
.ct-painel-contatos.ct-painel-compacto .ct-acoes{display:inline-flex;width:auto;margin:4px 4px 0 0}
.ct-painel-contatos.ct-painel-compacto .ct-acao-icone{width:36px;height:34px;min-width:36px;padding:4px;font-size:16px}
.ct-painel-contatos.ct-painel-compacto .ct-lugares{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.ct-painel-contatos.ct-painel-compacto .ct-estacoes{max-height:150px}
.ct-busca-voo{display:flex;gap:5px;width:100%}
.ct-busca-voo input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--ct-line);border-radius:10px;background:rgba(0,0,0,.2);color:var(--ct-ink);font:500 11px var(--ct-sans);outline-color:var(--ct-acc)}
.ct-busca-voo input::placeholder{color:var(--ct-faint)}
.ct-busca-voo button{width:38px;border:1px solid var(--ct-line);border-radius:10px;background:rgba(var(--ct-acc-rgb),.1);color:var(--ct-acc);font-size:17px;cursor:pointer}
.ct-painel-contatos.ct-painel-compacto .ct-busca-voo input{padding:6px 8px}
.ct-painel-contatos.ct-painel-compacto .ct-busca-voo button{width:32px}
.ct-topo-acoes{display:flex;align-items:center;gap:6px;pointer-events:auto}
.ct-buscar-toggle{pointer-events:auto;width:30px;height:30px;border:1px solid var(--ct-line2);border-radius:10px;background:var(--ct-glass);backdrop-filter:blur(12px);color:var(--ct-acc);font-size:20px;line-height:1;cursor:pointer}
.ct-buscar-toggle:hover,.ct-buscar-toggle[aria-expanded=true]{border-color:var(--ct-line);background:var(--ct-glass2)}

/* ---------- celular / tela de toque: mais leve e mais fluido ----------
   sem desfoque de fundo (caro na GPU do celular), fundo sólido e transições curtas */
@media (max-width:820px), (pointer:coarse){
  .ct-painel,.ct-chip,.ct-cab,.ct-dock,.ct-cbar,.ct-pop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .ct-painel{background:rgba(7,22,29,.95)!important;box-shadow:0 6px 18px rgba(0,0,0,.35)!important}
  .ct-chip,.ct-painel{transition:opacity .12s linear}
  .ct-painel-contatos.ct-painel-compacto{width:min(230px,60vw)!important;max-height:42vh!important}
}

/* ---------- botão de imersão só com o ícone do Quest ---------- */
.ct-vr.ct-vr-icone{width:64px;height:64px;padding:0;justify-content:center;border-radius:16px;position:relative}
.ct-vr-ico{display:block;width:44px;height:44px;background:var(--ct-prim-tinta);
  -webkit-mask:url(../assets/ui/quest-vr.png) center/contain no-repeat;mask:url(../assets/ui/quest-vr.png) center/contain no-repeat}
/* balãozinho ao passar o mouse (e ao focar pelo teclado) */
.ct-vr-icone::after{content:attr(data-tip);position:absolute;right:calc(100% + 14px);top:50%;transform:translateY(-50%) scale(.96);
  opacity:0;pointer-events:none;white-space:nowrap;padding:7px 11px;border-radius:10px;
  background:rgba(7,22,29,.96);color:var(--ct-ink);border:1px solid var(--ct-line2);box-shadow:0 8px 24px rgba(0,0,0,.35);
  font:600 11.5px var(--ct-mono);letter-spacing:.04em;transition:opacity .15s ease,transform .15s ease}
.ct-vr-icone::before{content:"";position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);
  border:6px solid transparent;border-left-color:rgba(7,22,29,.96);opacity:0;pointer-events:none;transition:opacity .15s ease}
.ct-vr-icone:hover::after,.ct-vr-icone:focus-visible::after,.ct-vr-icone:hover::before,.ct-vr-icone:focus-visible::before{opacity:1}
.ct-vr-icone:hover::after,.ct-vr-icone:focus-visible::after{transform:translateY(-50%) scale(1)}
.ct-vr-icone:focus-visible{outline:2px solid var(--ct-acc);outline-offset:3px}

/* ---------- minha posição (GPS do aparelho) ao lado do ícone dos controles ---------- */
.ct-gps{position:relative;pointer-events:auto;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;padding:0;cursor:pointer;color:var(--ct-acc);
  background:var(--ct-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ct-line2);-webkit-tap-highlight-color:transparent;transition:border-color .15s,background .15s}
.ct-gps:hover{border-color:var(--ct-line);background:var(--ct-glass2)}
.ct-gps svg{width:17px;height:17px;display:block}
.ct-gps[aria-pressed=true]{border-color:rgba(var(--ct-acc-rgb),.55);background:rgba(var(--ct-acc-rgb),.18)}
.ct-gps.busy svg{animation:ctGpsGira 1s linear infinite}
@keyframes ctGpsGira{to{transform:rotate(360deg)}}
body.ct-imersao-xr .ct-gps{display:none!important}
@media (max-width:820px),(pointer:coarse){body.ct-sticks{--ct-bottom:262px}}

.ct-prox{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom,18px));transform:translateX(-50%);z-index:99!important;
  width:min(460px,calc(100vw - 20px));max-height:72vh;display:flex;flex-direction:column;
  background:var(--ct-glass2);border:1px solid var(--ct-line2);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.7),0 0 0 1px rgba(94,234,212,.2);color:var(--ct-ink)}
.ct-prox[hidden]{display:none}
.ct-prox-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 8px}
.ct-prox-cab h2{margin:0;font:600 11px var(--ct-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--ct-acc)}
.ct-prox-cab small{display:block;font:500 10.5px var(--ct-mono);color:var(--ct-faint);margin-top:4px}
.ct-prox-cab button{background:none;border:0;color:var(--ct-dim);font-size:18px;cursor:pointer;width:28px;height:28px;border-radius:8px}
.ct-prox-cab button:hover{background:rgba(255,255,255,.06);color:var(--ct-ink)}
.ct-prox-raio{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 9px}
.ct-prox-raio button{font:600 10px var(--ct-mono);padding:5px 9px;border-radius:8px;border:1px solid var(--ct-line2);background:rgba(255,255,255,.03);color:var(--ct-dim);cursor:pointer}
.ct-prox-raio button[aria-pressed=true]{color:var(--ct-acc);border-color:rgba(var(--ct-acc-rgb),.5)}
.ct-prox-lista{overflow:auto;padding:0 10px 12px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.ct-prox-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 6px;border:1px solid var(--ct-line2);border-radius:12px;background:rgba(255,255,255,.025);padding:4px}
.ct-prox-item .ct-prox-l{border:0;background:none;padding:6px 6px}
.ct-prox-seta{display:flex;align-items:center;gap:5px;font:600 9.5px var(--ct-mono);color:var(--ct-acc);
  border:1px solid rgba(var(--ct-acc-rgb),.35);border-radius:9px;padding:6px 8px;background:rgba(var(--ct-acc-rgb),.07);cursor:pointer;white-space:nowrap;max-width:170px;overflow:hidden}
.ct-prox-seta span{overflow:hidden;text-overflow:ellipsis}
.ct-prox-seta b{font-size:13px;font-weight:600}
.ct-prox-seta:hover,.ct-prox-seta:focus-visible,.ct-prox-item.aberto .ct-prox-seta{background:rgba(var(--ct-acc-rgb),.16);border-color:rgba(var(--ct-acc-rgb),.6)}
.ct-prox-det{display:none;grid-column:1/-1;padding:10px 8px 6px;border-top:1px solid var(--ct-line2);margin-top:6px}
.ct-prox-seta:hover+.ct-prox-det,.ct-prox-seta:focus-visible+.ct-prox-det,.ct-prox-item.aberto .ct-prox-det{display:block}
.ct-prox-titulo strong{display:block;font:600 14px var(--ct-mono);color:var(--ct-ink)}
.ct-prox-titulo small{display:block;font-size:11px;color:var(--ct-dim);margin-top:3px}
.ct-prox-titulo em{display:block;font:normal 10.5px var(--ct-mono);color:var(--ct-acc2);margin:5px 0 8px}
@media (max-width:820px),(pointer:coarse){
  .ct-prox{bottom:max(16px,calc(env(safe-area-inset-bottom) + 16px))!important;max-height:68vh!important;width:calc(100vw - 16px)!important;z-index:99!important}
}

/* ---- portado do app Codex: live do aeroporto, busca do rodapé, navegador de câmeras, setas e filtros do Contatos ---- */
.ct-info-text,.ct-info>.ct-p{margin-top:7px;padding:9px 10px;border:1px solid var(--ct-line2);border-radius:10px;background:rgba(0,0,0,.16);font-size:11px;line-height:1.5}
.ct-info-text .ct-p{margin-top:6px}
.ct-cctv-browser{margin-top:7px}
.ct-cctv-browser>.ct-p{margin:4px 0 7px}
.ct-cctv-browser>input{width:100%;min-width:0;margin:3px 0 6px;padding:8px 9px;border:1px solid var(--ct-line2);border-radius:9px;background:rgba(0,0,0,.22);color:var(--ct-ink);font:11px var(--ct-sans)}
.ct-cctv-browser>input::placeholder{color:var(--ct-faint)}
.ct-cctv-lista{max-height:240px;overflow:auto;overscroll-behavior:contain}
.ct-busca-voo{display:flex;gap:5px;width:100%}
.ct-busca-voo input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--ct-line);border-radius:10px;background:rgba(0,0,0,.2);color:var(--ct-ink);font:500 11px var(--ct-sans);outline-color:var(--ct-acc)}
.ct-busca-voo input::placeholder{color:var(--ct-faint)}
.ct-busca-voo input[hidden],.ct-busca-voo button[hidden]{display:none!important}
.ct-busca-voo-toggle,.ct-busca-submit{width:38px;height:36px;flex:none;border:1px solid var(--ct-line);border-radius:10px;background:rgba(var(--ct-acc-rgb),.1);color:var(--ct-acc);font-size:17px;cursor:pointer}
.ct-busca-voo:not(.aberta){width:38px}
.ct-busca-voo:not(.aberta) input,.ct-busca-voo:not(.aberta) .ct-busca-submit{display:none}
.ct-busca-voo.aberta .ct-busca-voo-toggle{width:32px}
.ct-painel-contatos .ct-sec-proximos>h3{margin-bottom:6px}
.ct-contatos-filtros{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,.88fr);gap:5px;align-items:center}
.ct-contatos-filtros select{min-width:0;width:100%;height:38px;padding:5px 20px 5px 7px;border:1px solid var(--ct-line2);border-radius:9px;background:rgba(0,0,0,.24);color:var(--ct-ink);font:500 10px var(--ct-sans);text-overflow:ellipsis}
.ct-contatos-filtros option{background:#10242d;color:var(--ct-ink)}
.ct-nav-contatos{display:flex;align-items:center;gap:2px;margin-left:auto}
.ct-nav-contatos[hidden]{display:none!important}
.ct-nav-contatos button{width:26px!important;height:26px!important;padding:0!important;border:1px solid var(--ct-line2)!important;border-radius:8px!important;background:rgba(255,255,255,.035)!important;font-size:17px!important;line-height:1}
.ct-nav-contatos button:disabled{opacity:.35;cursor:default}
.ct-cidades{display:flex;gap:6px;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;margin-top:7px;padding:1px 0 3px;scrollbar-width:thin;scrollbar-color:rgba(var(--ct-acc-rgb),.25) transparent}
.ct-cidades button{border:1px solid var(--ct-line2);background:rgba(var(--ct-fundo-rgb),calc(var(--ct-a1)*.75));backdrop-filter:blur(10px);border-radius:8px;padding:5px 9px;cursor:pointer;white-space:nowrap;
  font:600 9.5px var(--ct-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ct-dim)}
.ct-cidades button:hover{color:var(--ct-ink);border-color:var(--ct-line)}
.ct-cidade{display:flex;flex:none;align-items:center;gap:2px}
.ct-cidades .ct-rem-city{padding:3px 5px;color:var(--ct-faint);font-size:12px}
.ct-cidades .ct-add-city{flex:none;width:30px;padding:3px;font-size:16px;color:var(--ct-acc)}
.ct-aeroportos-wrap{margin-top:4px}
.ct-aeroportos-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ct-aeroportos-wrap>small{display:block;margin:0 0 4px 3px;color:var(--ct-faint);font:600 8px var(--ct-mono);letter-spacing:.16em;text-transform:uppercase}
.ct-aeroportos-heading>small{flex:1;min-width:0;margin-bottom:4px}
.ct-sbgr-quick{flex:none;padding:4px 7px;border:1px solid var(--ct-line);border-radius:8px;background:rgba(255,90,90,.08);color:#ffd0ce;font:600 8px var(--ct-mono);letter-spacing:.1em;cursor:pointer}
.ct-sbgr-quick:hover,.ct-sbgr-quick.ct-sbgr-proximo{border-color:rgba(255,115,110,.65);background:rgba(255,90,90,.18)}
.ct-aeroportos{display:flex;gap:5px;overflow-x:auto;white-space:nowrap;padding:1px 0 3px;scrollbar-width:thin;scrollbar-color:rgba(var(--ct-acc-rgb),.25) transparent}
.ct-aeroporto-item{display:inline-flex;flex:none;gap:2px}
.ct-aeroportos button{flex:none;padding:5px 8px;border:1px solid var(--ct-line2);border-radius:8px;background:rgba(var(--ct-fundo-rgb),calc(var(--ct-a1)*.75));color:var(--ct-dim);font:600 9px var(--ct-mono);cursor:pointer}
.ct-aeroportos button:hover{border-color:var(--ct-line);color:var(--ct-ink)}
.ct-aeroportos .ct-aeroporto-live{padding:4px 6px;color:var(--ct-acc-claro);border-color:var(--ct-line);background:rgba(var(--ct-acc-rgb),.12)}
.ct-live-radio{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ct-live-radio small{font-size:9px;color:var(--ct-faint)}
.ct-live-janela{position:fixed;right:16px;bottom:92px;z-index:96;width:min(420px,calc(100vw - 32px));max-height:70dvh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--ct-line);border-radius:14px;background:#071219;box-shadow:0 14px 38px rgba(0,0,0,.5);color:var(--ct-ink)}
.ct-live-janela[hidden]{display:none}
.ct-live-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:5px 8px 5px 11px;background:var(--ct-glass2);border-bottom:1px solid var(--ct-line2);touch-action:none;cursor:grab}
.ct-live-bar:active{cursor:grabbing}
.ct-live-ident{display:flex;align-items:center;gap:9px;min-width:0}
.ct-live-ident strong{font:600 9px var(--ct-mono);letter-spacing:.12em;white-space:nowrap;color:var(--ct-acc-claro)}
.ct-live-ident a{font-size:9px;color:var(--ct-dim);text-decoration:none}
.ct-live-acoes{display:flex;gap:3px}
.ct-live-acoes button{width:28px;height:26px;border:1px solid var(--ct-line2);border-radius:7px;background:rgba(255,255,255,.04);color:var(--ct-ink);font-size:16px;cursor:pointer}
.ct-live-video{aspect-ratio:16/9;background:#000}
.ct-live-video.ct-live-audio{aspect-ratio:auto;min-height:50px}
.ct-live-video iframe{display:block;width:100%;height:100%;border:0;background:#000}
.ct-live-video audio{display:block;width:100%;min-height:42px;background:#091820}
.ct-live-video iframe[hidden],.ct-live-video audio[hidden]{display:none!important}
.ct-live-asr{flex:none;max-height:160px;padding:7px 9px 9px;border-top:1px solid var(--ct-line2);background:rgba(3,13,18,.96);overflow:auto}
.ct-live-asr-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ct-live-asr-head span{min-width:0;color:var(--ct-acc-claro);font:600 8px var(--ct-mono);letter-spacing:.08em}
.ct-live-asr-head button{flex:none;padding:4px 7px;border:1px solid var(--ct-line2);border-radius:7px;background:rgba(255,255,255,.04);color:var(--ct-dim);font:600 8px var(--ct-mono);cursor:pointer}
.ct-live-asr-ajuda{margin:5px 0;color:var(--ct-faint);font-size:9px;line-height:1.35}
.ct-live-asr ol{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.ct-live-asr-item{display:grid;grid-template-columns:1fr auto;gap:2px 6px;padding:5px 6px;border-radius:7px;background:rgba(255,255,255,.035)}
.ct-live-asr-item strong{overflow:hidden;color:var(--ct-ink);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.ct-live-asr-item small{color:var(--ct-faint);font:8px var(--ct-mono)}
.ct-live-asr-item span{grid-column:1/-1;color:var(--ct-dim);font-size:9px;line-height:1.3;overflow-wrap:anywhere}
.ct-live-minimizada .ct-live-video{display:none}
.ct-live-minimizada .ct-live-asr{display:none}
.ct-live-minimizada{width:min(250px,calc(100vw - 32px))}
body.ct-live-aberto.ct-search-open .ct-dock{top:auto!important;bottom:calc(env(safe-area-inset-bottom,0px) + 34px)!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:min(560px,calc(100vw - 24px))!important;min-width:0!important;max-height:min(220px,32dvh)!important;z-index:98!important;overflow:visible}
@media(max-width:820px){body.ct-on.ct-live-aberto.ct-search-open .ct-dock{bottom:calc(env(safe-area-inset-bottom,0px) + 42px)!important;width:calc(100vw - 16px)!important}}
.ct-perto-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;font:600 9px var(--ct-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ct-faint);margin:0 0 6px}
.ct-perto-cab .ct-busca-voo-toggle{height:30px;width:34px}
.ct-busca-voo:not(.aberta){display:none}
body.ct-on:not(.ct-console) .ct-ml .ct-painel,body.ct-on:not(.ct-console) .ct-bl .ct-painel{transform:none}
/* Esquerda do topo, lado a lado com VOO: VOO · CONTATOS · CAMADAS (desktop) */
@media (min-width:821px){
  body.ct-on:not(.ct-console) .ct-ml{left:68px;top:var(--ct-gap);bottom:auto;transform:none;align-items:flex-start}
  body.ct-on:not(.ct-console) .ct-bl{left:122px;right:auto;top:var(--ct-gap);bottom:auto;transform:none;flex-direction:column;align-items:flex-start}
  body.ct-on:not(.ct-console) .ct-ml .ct-painel,body.ct-on:not(.ct-console) .ct-bl .ct-painel{position:fixed;left:var(--ct-gap);top:calc(var(--ct-gap) + 60px);transform:none;margin:0;max-height:calc(100vh - 2*var(--ct-gap) - 80px)}
}
.ct-dock{position:fixed}
.ct-dock-fechar{position:absolute;top:-13px;right:6px;z-index:2;width:26px;height:26px;border:1px solid var(--ct-line2);border-radius:50%;background:rgba(7,22,29,.92);color:var(--ct-dim);font-size:16px;line-height:1;cursor:pointer}
.ct-dock-fechar:hover{color:var(--ct-ink);border-color:var(--ct-line)}

/* Busca do topo igual ao Codex: campo logo abaixo dos botões do topo, resultados por baixo */
.ct-dock{top:104px;bottom:auto!important;max-height:calc(100dvh - 170px);overflow:visible;padding:10px 12px;border-radius:16px;background:rgba(7,22,29,.92);border:1px solid var(--ct-line2);box-shadow:0 12px 36px rgba(0,0,0,.45)}
.ct-dock[hidden]{display:none!important}
.ct-result{position:relative;left:auto;right:auto;top:auto;bottom:auto;margin-top:6px;max-height:34dvh}

/* Janela da transmissão: sem borda, arrastável, redimensionável, minimizar/maximizar; ao lado do modal do avião (sem sobrepor) */
.ct-live-janela{position:fixed;top:138px;right:392px;left:auto;bottom:auto;transform:none;z-index:96;width:360px;height:230px;min-width:250px;min-height:44px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(94,234,212,.28);border-radius:14px;background:#071219;box-shadow:0 14px 38px rgba(0,0,0,.55)}
.ct-live-janela[hidden]{display:none!important}
.ct-live-janela .ct-live-bar{cursor:move;flex:none;user-select:none}
.ct-live-janela .ct-live-video{flex:1 1 auto;min-height:0;height:auto;aspect-ratio:auto!important}
.ct-live-janela .ct-live-video iframe{width:100%;height:100%;border:0;display:block}
.ct-live-janela.ct-live-minimizada{height:auto!important;width:260px;min-height:0;resize:none}
.ct-live-janela.ct-live-minimizada .ct-live-video{display:none}
.ct-live-janela.ct-live-max{top:64px!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translateX(-50%)!important;width:min(980px,calc(100vw - 32px))!important;height:calc(100dvh - 140px)!important;max-width:none;max-height:none;resize:none}
.ct-live-acoes button[data-live-max]{font-size:13px}
.ct-live-janela .ct-live-alca{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;touch-action:none;z-index:3;background:linear-gradient(135deg,transparent 52%,rgba(var(--ct-acc-rgb),.85) 52%)}
.ct-live-janela.ct-live-minimizada .ct-live-alca,.ct-live-janela.ct-live-max .ct-live-alca{display:none}

/* ---------- TELA PIP (PICTURE-IN-PICTURE) DE VISUALIZAÇÃO DE AERONAVES ---------- */
.ct-pip-janela{position:fixed;top:92px;left:50%;transform:translateX(-50%);z-index:97;width:390px;max-width:calc(100vw - 20px);display:flex;flex-direction:column;overflow:hidden;border:1.5px solid rgba(94,234,212,.48);border-radius:15px;background:rgba(5,14,20,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 18px 46px rgba(0,0,0,.68),0 0 0 1px rgba(94,234,212,.15);color:var(--ct-ink)}
.ct-pip-janela[style*="left:"]{transform:none!important}
.ct-pip-janela[hidden]{display:none!important}
.ct-pip-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:6px 9px 6px 11px;background:linear-gradient(90deg,rgba(12,35,46,.96),rgba(7,20,28,.96));border-bottom:1px solid var(--ct-line2);cursor:move;user-select:none;touch-action:none}
.ct-pip-ident{display:flex;align-items:center;gap:7px;min-width:0;flex:1}
.ct-pip-badge{flex:none;padding:2px 6px;border-radius:6px;background:rgba(16,185,129,.22);border:1px solid rgba(94,234,212,.55);color:#5eead4;font:700 8.5px var(--ct-mono);letter-spacing:.12em}
.ct-pip-ident strong{font:700 11px var(--ct-mono);letter-spacing:.08em;color:var(--ct-acc-claro);white-space:nowrap}
.ct-pip-ident small{font:500 10px var(--ct-sans);color:var(--ct-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-pip-acoes{display:flex;gap:4px;flex:none}
.ct-pip-acoes button{width:27px;height:25px;border:1px solid var(--ct-line2);border-radius:7px;background:rgba(255,255,255,.05);color:var(--ct-ink);font-size:14px;line-height:1;cursor:pointer}
.ct-pip-acoes button:hover{border-color:var(--ct-acc);background:rgba(var(--ct-acc-rgb),.18)}
.ct-pip-corpo{display:flex;flex-direction:column;gap:8px;padding:9px}
.ct-pip-visor{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;border:1px solid rgba(94,234,212,.26);background:#040d14}
.ct-pip-canvas{display:block;width:100%;height:100%}
.ct-pip-hud-top,.ct-pip-hud-bot{position:absolute;left:8px;right:8px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none;font:600 9.5px var(--ct-mono);text-shadow:0 1px 3px #000}
.ct-pip-hud-top{top:6px;color:#5eead4}
.ct-pip-hud-bot{bottom:6px;color:#e2e8f0}
.ct-pip-hud-top span,.ct-pip-hud-bot span{padding:2px 6px;border-radius:5px;background:rgba(4,12,18,.72);border:1px solid rgba(94,234,212,.22);max-width:58%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-pip-angulos{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.ct-pip-angulos button{padding:6px 3px;border-radius:8px;border:1px solid var(--ct-line2);background:rgba(255,255,255,.035);color:var(--ct-dim);font:600 9.5px var(--ct-mono);cursor:pointer;white-space:nowrap}
.ct-pip-angulos button:hover{color:var(--ct-ink);border-color:var(--ct-line)}
.ct-pip-angulos button[aria-pressed=true]{background:rgba(var(--ct-acc-rgb),.2);border-color:rgba(var(--ct-acc-rgb),.6);color:var(--ct-acc-claro)}
.ct-pip-ir{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.ct-pip-btn{padding:7px 8px;border-radius:9px;border:1px solid var(--ct-line);background:rgba(var(--ct-acc-rgb),.12);color:var(--ct-acc-claro);font:700 10px var(--ct-mono);letter-spacing:.04em;cursor:pointer;text-align:center}
.ct-pip-btn.prim{background:linear-gradient(135deg,rgba(16,185,129,.88),rgba(20,184,166,.75));color:#02261e;border-color:rgba(94,234,212,.65)}
.ct-pip-btn.prim:hover{filter:brightness(1.08)}
.ct-pip-btn.sec{background:rgba(255,255,255,.04);border-color:var(--ct-line2);color:var(--ct-ink)}
.ct-pip-btn.sec:hover{background:rgba(var(--ct-acc-rgb),.14);border-color:var(--ct-line)}
.ct-pip-janela.ct-pip-minimizada{width:280px}
.ct-pip-janela.ct-pip-minimizada .ct-pip-corpo{display:none}
.ct-pip-janela.ct-pip-max{top:66px!important;left:50%!important;transform:translateX(-50%)!important;width:min(640px,calc(100vw - 24px))!important}

/* ---------- CELULAR: barra lateral esquerda ----------
   VOO no topo; logo abaixo, em coluna: CONTATOS, CAMADAS, RADIO, LOCAIS, VISUAL.
   Visual dos atalhos igual ao Codex (icone com nome embaixo). Os paineis abrem em largura total,
   logo abaixo da coluna. 2D e VR continuam no canto superior direito. */
body:not(.ct-console) .ct-ml .ct-chip,
body:not(.ct-console) .ct-mr .ct-chip{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
@media (max-width:820px){
  body:not(.ct-console){--ct-mobile-top:calc(env(safe-area-inset-top,0px) + 8px);--ct-passo:60px}
  body:not(.ct-console) .ct-topo{display:contents}
  body:not(.ct-console) .ct-canto>.ct-chip,
  body:not(.ct-console) .ct-topo>.ct-chip{width:44px!important;min-width:44px!important;max-width:44px!important;height:52px;padding:3px!important;flex-direction:column;justify-content:center;gap:3px}
  body:not(.ct-console) .ct-chip .ct-ico{width:25px;height:25px;font-size:17px;margin:0}
  body:not(.ct-console) .ct-chip b{display:block!important;font-size:6px;letter-spacing:0;white-space:nowrap}
  body:not(.ct-console) .ct-chip i,body:not(.ct-console) .ct-chip .ct-kbd{display:none!important}
  body:not(.ct-console) .ct-tl{position:fixed!important;left:8px!important;top:var(--ct-mobile-top)!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:90}
  body:not(.ct-console) .ct-ml{position:fixed!important;left:8px!important;top:calc(var(--ct-mobile-top) + 1 * var(--ct-passo))!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:91;flex-direction:column!important;align-items:flex-start}
  body:not(.ct-console) .ct-bl{position:fixed!important;left:8px!important;top:calc(var(--ct-mobile-top) + 2 * var(--ct-passo))!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:91;flex-direction:column!important;align-items:flex-start}
  body:not(.ct-console) .ct-mr{position:fixed!important;left:8px!important;top:calc(var(--ct-mobile-top) + 3 * var(--ct-passo))!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:91;flex-direction:column!important;align-items:flex-start}
  body:not(.ct-console) .ct-br{position:fixed!important;left:8px!important;top:calc(var(--ct-mobile-top) + 4 * var(--ct-passo))!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:91;flex-direction:column!important;align-items:flex-start}
  body:not(.ct-console) .ct-topo>.ct-chip{position:fixed!important;left:8px!important;top:calc(var(--ct-mobile-top) + 5 * var(--ct-passo))!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:91}
  body:not(.ct-console) .ct-tr{position:fixed!important;right:8px!important;top:var(--ct-mobile-top)!important;left:auto!important;bottom:auto!important;transform:none!important;z-index:90;flex-direction:column!important;align-items:flex-end}
  body:not(.ct-console) .ct-bussola{top:var(--ct-mobile-top)!important}
  body:not(.ct-console) .ct-fita{width:min(48vw,calc(100vw - 176px))!important}
  /* TODOS os paineis do celular abrem na MESMA posicao: do lado da barra, no topo */
  body:not(.ct-console) .ct-painel{position:fixed!important;left:62px!important;right:auto!important;top:var(--ct-mobile-top)!important;bottom:auto!important;width:min(300px,calc(100vw - 72px))!important;max-width:none!important;margin:0!important;transform:none!important;animation:none!important;max-height:calc(100dvh - var(--ct-mobile-top) - 16px)!important;z-index:90!important}
}

/* botao de recolher/expandir a coluna de atalhos (so celular) */
.ct-lateral-toggle{display:none}
@media (max-width:820px){
  body:not(.ct-console) .ct-lateral-toggle{display:grid;place-items:center;position:fixed;left:8px;top:calc(var(--ct-mobile-top) + 6 * var(--ct-passo));width:44px;height:28px;padding:0;z-index:92;border:1px solid var(--ct-line2);border-radius:10px;background:var(--ct-glass);color:var(--ct-acc);font:700 16px/1 var(--ct-mono);cursor:pointer;pointer-events:auto}
  body.ct-lateral-recolhida:not(.ct-console) .ct-lateral-toggle{top:calc(var(--ct-mobile-top) + 1 * var(--ct-passo))}
  body.ct-lateral-recolhida:not(.ct-console) .ct-ml,
  body.ct-lateral-recolhida:not(.ct-console) .ct-bl,
  body.ct-lateral-recolhida:not(.ct-console) .ct-mr,
  body.ct-lateral-recolhida:not(.ct-console) .ct-br,
  body.ct-lateral-recolhida:not(.ct-console) .ct-topo>.ct-chip{display:none!important}
}
/* controles (bolinhas) no celular: mesma base, mesmo tamanho (124x124) e mesmo alinhamento nos dois lados */
@media (max-width:820px),(pointer:coarse){
  .ct input,.ct select,.sly-ui input,.sly-ui select{font-size:16px!important}
  body:not(.ct-console) .ct-dock{top:calc(var(--ct-mobile-top) + 74px)!important;left:58px!important;right:10px!important;width:auto!important;min-width:0!important;max-width:calc(100vw - 68px)!important;transform:none!important;z-index:95!important;padding:9px 10px!important}
  body.ct-lateral-recolhida:not(.ct-console) .ct-dock{left:10px!important;right:10px!important;max-width:calc(100vw - 20px)!important;top:calc(var(--ct-mobile-top) + 92px)!important}
  .sly-stick,.sly-nav{bottom:calc(env(safe-area-inset-bottom,0px) + 24px)!important;width:124px!important;height:124px!important;transform:none!important;touch-action:none!important;z-index:55!important}
  .sly-stick-left{left:max(14px,env(safe-area-inset-left,14px))!important;right:auto!important;top:auto!important}
  .sly-nav{right:max(14px,env(safe-area-inset-right,14px))!important;left:auto!important;top:auto!important}
  .sly-stick-right{right:max(14px,env(safe-area-inset-right,14px))!important;left:auto!important}
}

/* CELULAR: live menor, com proporcao 16:9, ancorada na direita e crescendo para a esquerda;
   botoes 2D e VR menores */
@media (max-width:820px){
  body:not(.ct-console) .ct-live-janela{top:124px!important;left:auto!important;right:8px!important;bottom:auto!important;width:min(340px,calc(100vw - 88px))!important;height:auto!important;max-height:none!important;resize:none!important}
  body:not(.ct-console) .ct-live-janela .ct-live-video{aspect-ratio:16/9!important;flex:none!important;height:auto!important;min-height:0!important}
  body:not(.ct-console) .ct-live-janela .ct-live-alca{display:none!important}
  body:not(.ct-console) .ct-live-janela.ct-live-minimizada{width:min(240px,calc(100vw - 88px))!important;height:auto!important}
  body:not(.ct-console) .ct-volta{height:36px!important;min-width:0!important;padding:0 10px!important;font-size:11px!important}
  body:not(.ct-console) .ct-vr.ct-vr-icone{width:46px!important;height:46px!important;min-width:46px!important}
  body:not(.ct-console) .ct-vr-ico{width:30px!important;height:30px!important}
}

/* ---------- MINI-MENU DE RÁDIO LOCAL (ao clicar numa estação no mapa) ---------- */
.ct-mini-radio{position:fixed;top:148px;right:18px;z-index:96;width:278px;max-width:calc(100vw - 20px);display:flex;flex-direction:column;overflow:hidden;border:1.5px solid rgba(94,234,212,.45);border-radius:14px;background:rgba(6,17,24,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 14px 38px rgba(0,0,0,.6);color:var(--ct-ink)}
.ct-mini-radio[hidden]{display:none!important}
.ct-mrad-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:34px;padding:5px 8px 5px 10px;background:linear-gradient(90deg,rgba(12,36,46,.96),rgba(7,20,28,.96));border-bottom:1px solid var(--ct-line2);cursor:move;user-select:none;touch-action:none}
.ct-mrad-ident{display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.ct-mrad-dot{color:var(--ct-dim);font-size:13px;line-height:1;transition:color .2s,text-shadow .2s}
.ct-mrad-dot.on{color:#34d399;text-shadow:0 0 8px rgba(52,211,153,.8)}
.ct-mrad-ident strong{font:700 10px var(--ct-mono);letter-spacing:.08em;color:var(--ct-acc-claro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-mrad-ident small{font:600 9px var(--ct-mono);color:var(--ct-acc);white-space:nowrap;flex:none}
.ct-mrad-acoes{display:flex;gap:3px;flex:none}
.ct-mrad-acoes button{width:24px;height:22px;border:1px solid var(--ct-line2);border-radius:6px;background:rgba(255,255,255,.05);color:var(--ct-dim);font-size:12px;line-height:1;cursor:pointer;padding:0}
.ct-mrad-acoes button:hover{color:var(--ct-ink);border-color:var(--ct-acc);background:rgba(var(--ct-acc-rgb),.16)}
.ct-mrad-corpo{display:flex;flex-direction:column;gap:7px;padding:9px 10px 10px}
.ct-mrad-atual{padding:7px 9px;border-radius:10px;background:rgba(0,0,0,.28);border:1px solid var(--ct-line2)}
.ct-mrad-atual strong{display:block;font-size:12.5px;font-weight:700;color:var(--ct-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-mrad-atual small{display:block;font-size:10px;color:var(--ct-dim);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-mrad-atual em{display:block;font:normal 9.5px var(--ct-mono);color:var(--ct-acc);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-mrad-controles{display:grid;grid-template-columns:34px 1fr 34px 32px 32px;gap:4px;align-items:center}
.ct-mrad-controles .ct-btn{padding:6px 4px;font-size:11px;border-radius:8px;min-height:30px}
.ct-mrad-play{font-weight:700!important;letter-spacing:.05em}
.ct-mrad-vol{display:flex;align-items:center;gap:7px;font:600 9.5px var(--ct-mono);color:var(--ct-dim);margin:0}
.ct-mrad-vol input{flex:1;height:14px;accent-color:var(--ct-acc);margin:0}
.ct-mrad-vol b{width:30px;text-align:right;font-size:9.5px;color:var(--ct-ink)}
.ct-mrad-vizinhas{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--ct-line2);padding-top:6px}
.ct-mrad-viz-cab{display:flex;align-items:center;justify-content:space-between;font:600 8.5px var(--ct-mono);letter-spacing:.12em;color:var(--ct-faint)}
.ct-mrad-viz-cab small{color:var(--ct-acc);font-size:8.5px}
.ct-mrad-lista{max-height:136px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;scrollbar-width:thin;scrollbar-color:rgba(var(--ct-acc-rgb),.3) transparent;overscroll-behavior:contain}
.ct-mrad-item{padding:5px 7px!important;border-radius:8px!important;gap:7px!important}
.ct-mrad-item .ct-li{width:18px!important;font-size:11px!important}
.ct-mrad-item strong{font-size:11px!important}
.ct-mrad-item small{font-size:9.5px!important}
.ct-mrad-item .ct-pill{font-size:8.5px!important;padding:2px 5px!important}
.ct-mini-radio.ct-mrad-minimizada{width:225px}
.ct-mini-radio.ct-mrad-minimizada .ct-mrad-corpo{display:none}
@media (max-width:820px){
  .ct-mini-radio{top:122px;right:8px;width:min(266px,calc(100vw - 74px))}
  .ct-mrad-lista{max-height:118px}
}
