/* ===== Rede Global · mapa plano com cabos ===== */
#rede .netwrap {
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--panel-brd);
  background:radial-gradient(ellipse at 50% 40%, rgba(0, 194, 212, .10), rgba(2, 12, 18, .95) 70%);
  box-shadow:0 30px 60px -30px rgba(0, 194, 212, .35);
  transform:perspective(1400px) rotateX(0deg);
  transition:transform .8s cubic-bezier(.2, .7, .2, 1);
}
body.light #rede .netwrap {
  background:radial-gradient(ellipse at 50% 40%, rgba(0, 194, 212, .08), rgba(236, 244, 246, .98) 70%)
}
#rede .netwrap.reveal:not(.in) {
  transform:perspective(1400px) rotateX(14deg) translateY(40px)
}
#netmap {
  display:block;
  width:100%;
  height:clamp(240px, 52vw, 620px);
  cursor:crosshair;
}
#netTip {
  position:absolute;
  pointer-events:none;
  background:rgba(4, 22, 28, .92);
  color:#e6f2f4;
  border:1px solid rgba(0, 194, 212, .5);
  border-radius:8px;
  padding:5px 9px;
  font-size:.76rem;
  font-weight:600;
  white-space:nowrap;
  z-index:2;
}
#netTip[hidden] {
  display:none
}
.netbar {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  margin:14px 0 6px;
}
.netlegend {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:.78rem;
  color:var(--muted);
}
.netlegend span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.netlegend i {
  display:inline-block;
  width:18px;
  height:0;
  border-top:2px solid #00c2d4;
}
.netlegend i.ln-land {
  border-top-style:dashed;
  border-color:#f6821f;
}
.netlegend i.ln-pop {
  width:9px;
  height:9px;
  border:0;
  border-radius:50%;
  background:#f6821f;
  box-shadow:0 0 0 3px rgba(246, 130, 31, .25);
}
.netlayers {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.netlayer {
  border:1px solid var(--panel-brd);
  background:rgba(255, 255, 255, .04);
  color:var(--text);
  border-radius:999px;
  padding:6px 12px;
  font-size:.78rem;
  font-weight:700;
  cursor:pointer;
  transition:.2s;
}
.netlayer[aria-pressed="true"] {
  background:rgba(0, 194, 212, .18);
  border-color:rgba(0, 194, 212, .6);
}
.netlayer:focus-visible {
  outline:2px solid var(--td-cyan);
  outline-offset:2px;
}
.netfacts {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:14px;
  margin-top:22px;
}
.netfact {
  position:relative;
  padding:16px 16px 14px;
  border-radius:14px;
  border:1px solid var(--panel-brd);
  background:linear-gradient(180deg, rgba(0, 194, 212, .08), transparent);
  transform-style:preserve-3d;
}
.netfact b {
  display:block;
  font-size:1.6rem;
  font-weight:800;
  background:linear-gradient(135deg, #00c2d4, #f6821f);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  line-height:1.1;
}
.netfact small {
  display:block;
  margin-top:4px;
  font-size:.78rem;
  color:var(--muted);
}
.netsrc {
  margin-top:12px;
  font-size:.72rem;
  color:var(--muted);
}
.netsrc a {
  color:var(--td-cyan);
}
@media(max-width:600px) {
  #netmap {
    cursor:default
  }
  .netfact b {
    font-size:1.3rem
  }
}
@media(prefers-reduced-motion:reduce) {
  #rede .netwrap, #rede .netwrap.reveal:not(.in) {
    transform:none;
    transition:none;
  }
}

/* ===== Rede Global · painel "bloco": mapa + lista lateral (v6) ===== */
.netpanel {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:16px;
  margin-top:8px;
}
@media(min-width:1024px) {
  .netpanel {
    grid-template-columns:minmax(0, 1fr) 320px;
    align-items:stretch;
  }
}
.netpanel-main {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.netpanel-main .netbar {
  margin:0;
}
.netpanel-side {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px;
  border-radius:var(--radius);
  border:1px solid var(--panel-brd);
  background:var(--panel);
  backdrop-filter:var(--glass-blur);
}
.netpanel-side h3 {
  margin:0;
  font-size:1rem;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
}
.netpanel-side h3 small {
  font-size:.72rem;
  font-weight:600;
  color:var(--muted);
}
.netsearch {
  width:100%;
  padding:9px 12px;
  border-radius:10px;
  border:1px solid var(--panel-brd);
  background:rgba(255, 255, 255, .05);
  color:var(--text);
  font:inherit;
  font-size:.86rem;
}
body.light .netsearch {
  background:#fff;
}
.netsearch:focus-visible {
  outline:2px solid var(--td-cyan);
  outline-offset:2px;
}
.netregtabs {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.netregtabs button {
  border:1px solid var(--panel-brd);
  background:rgba(255, 255, 255, .04);
  color:var(--text);
  border-radius:999px;
  padding:4px 10px;
  font-size:.72rem;
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  gap:6px;
  align-items:center;
  transition:.2s;
}
.netregtabs button b {
  font-weight:600;
  color:var(--muted);
}
.netregtabs button[aria-pressed="true"] {
  background:rgba(0, 194, 212, .18);
  border-color:rgba(0, 194, 212, .6);
}
.netregtabs button:focus-visible {
  outline:2px solid var(--td-cyan);
  outline-offset:2px;
}
.netlist {
  list-style:none;
  margin:0;
  padding:4px;
  max-height:420px;
  overflow:auto;
  border-radius:10px;
  border:1px solid var(--panel-brd);
  background:rgba(0, 0, 0, .18);
  scrollbar-width:thin;
}
body.light .netlist {
  background:rgba(255, 255, 255, .6);
}
.netlist:focus-visible {
  outline:2px solid var(--td-cyan);
  outline-offset:2px;
}
.netlist li {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:2px 8px;
  padding:7px 10px;
  border-radius:8px;
  cursor:pointer;
  font-size:.84rem;
  line-height:1.25;
}
.netlist li[hidden] {
  display:none;
}
.netlist li:hover {
  background:rgba(0, 194, 212, .10);
}
.netlist li.is-active {
  box-shadow:inset 0 0 0 2px rgba(0, 194, 212, .55);
}
.netlist li[aria-selected="true"] {
  background:rgba(0, 194, 212, .22);
}
.netlist .nl-name {
  font-weight:700;
}
.netlist .nl-region {
  grid-column:1;
  color:var(--muted);
  font-size:.7rem;
}
.netlist .nl-hub {
  grid-row:1 / span 2;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#f6821f;
  box-shadow:0 0 0 3px rgba(246, 130, 31, .25);
}
.netempty {
  margin:0;
  padding:8px 10px;
  font-size:.8rem;
  color:var(--muted);
}
.netstatus {
  margin:0;
  padding:12px;
  border-radius:10px;
  border:1px dashed var(--panel-brd);
  font-size:.82rem;
  color:var(--text);
  min-height:3.2em;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.netstatus strong {
  font-size:1rem;
  color:var(--td-cyan-2);
}
body.light .netstatus strong {
  color:#0b6c76;
}
.netstatus .ns-meta {
  color:var(--muted);
  font-size:.76rem;
}
.netstatus .ns-title {
  margin-top:6px;
  font-weight:700;
  font-size:.76rem;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--muted);
}
.netstatus .ns-routes {
  margin:0;
  padding-left:18px;
  font-size:.8rem;
  max-height:140px;
  overflow:auto;
}
.netclear {
  align-self:flex-start;
  border:1px solid var(--panel-brd);
  background:transparent;
  color:var(--text);
  border-radius:999px;
  padding:6px 12px;
  font-size:.76rem;
  font-weight:700;
  cursor:pointer;
}
.netclear[hidden] {
  display:none;
}
.netclear:hover, .netclear:focus-visible {
  border-color:rgba(0, 194, 212, .6);
  outline:none;
}
.netclear:focus-visible {
  outline:2px solid var(--td-cyan);
  outline-offset:2px;
}
.netregions {
  display:none; /* contagem por regiao agora fica nos filtros do painel */
}
@media(max-width:1023px) {
  .netlist {
    max-height:220px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .netregtabs button, .netlist li {
    transition:none;
  }
}

.netlist .nl-iata{font:600 .68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;padding:1px 5px;border-radius:5px;background:rgba(246,130,31,.14);color:#f6821f;vertical-align:middle}

/* ===== v8.11 · Status oficial dos data centers (Cloudflare Status API via Worker /pops) ===== */
.netlive {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  margin: 0 0 10px; padding: 8px 10px; border-radius: 10px;
  font-size: .78rem; line-height: 1.35; color: var(--muted, #9fb3b9);
  background: rgba(0, 194, 212, .06); border: 1px solid rgba(0, 194, 212, .18);
}
body.light .netlive { background: rgba(0, 120, 140, .06); border-color: rgba(0, 120, 140, .2); }
.netlive[data-state="loading"] { opacity: .8; }
.netlive[data-state="error"] { border-style: dashed; }
.netlive[data-state="live"] { border-color: rgba(34, 197, 94, .35); }
.netlive .nlv-dot { width: 8px; height: 8px; border-radius: 50%; background: #9fb3b9; flex: none; }
.netlive[data-state="loading"] .nlv-dot { background: #00c2d4; animation: nlv-blink 1s ease-in-out infinite; }
.netlive[data-state="live"] .nlv-dot { background: #22c55e; box-shadow: 0 0 0 3px rgba(34, 197, 94, .2); }
.netlive[data-state="error"] .nlv-dot { background: #f59e0b; }
.netlive b { color: var(--text, #e6f4f6); font-weight: 700; }
.netlive .nlv-sep { opacity: .5; }
.netlive .nlv-src { margin-left: auto; }
.netlive .nlv-src a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.netlive .nlv-src a:focus-visible { outline: 2px solid #00c2d4; outline-offset: 2px; border-radius: 3px; }
.netlive details { flex-basis: 100%; }
.netlive summary { cursor: pointer; }
.netlive summary:focus-visible { outline: 2px solid #00c2d4; outline-offset: 2px; border-radius: 3px; }
.netlive ul { margin: 6px 0 0; padding-left: 18px; columns: 2; }
@media (max-width: 560px) { .netlive ul { columns: 1; } .netlive .nlv-src { margin-left: 0; } }
@keyframes nlv-blink { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .netlive[data-state="loading"] .nlv-dot { animation: none; } }

/* marcador de status na lista e no painel da cidade (forma + cor) */
.nl-live, .ns-live i {
  display: inline-block; width: 9px; height: 9px; flex: none;
  transform: rotate(45deg); border: 2px solid currentColor; border-radius: 1px;
  color: #ffd166; margin-left: 6px;
}
.nl-live--major_outage, .ns-live--major_outage i { color: #ff6b6b; }
body.light .nl-live, body.light .ns-live i { color: #a16207; }
body.light .nl-live--major_outage, body.light .ns-live--major_outage i { color: #b91c1c; }
.ns-live { display: flex; align-items: center; gap: 8px; font-size: .78rem; margin: 4px 0 8px; color: var(--muted, #9fb3b9); }
.ns-live i { margin-left: 0; }
.ns-live--operational { color: #22c55e; }
.ns-live--operational i { border-color: #22c55e; border-radius: 50%; transform: none; background: #22c55e; }
.netlist li[data-live="major_outage"] .nl-name { text-decoration: underline dotted; text-underline-offset: 3px; }

/* legenda extra do mapa */
.netlegend i.ln-live { width: 9px; height: 9px; border: 2px solid #ffd166; background: transparent; transform: rotate(45deg); border-radius: 1px; }

/* ---------- v8.12 · painel "Dados ao vivo" (redesenho v8.38: cabecalho · KPIs grandes · rodape) ---------- */
.livefeed{margin:14px 0 18px;padding:16px 18px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015))}
.livefeed .lf-head h4{margin:0 0 4px;font-size:1rem;display:flex;align-items:center;gap:8px}
.livefeed .lf-sub{margin:0 0 14px;font-size:.78rem;color:var(--muted,#9aa3b2);line-height:1.45}
.lf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.lf-item{display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.09);background:rgba(0,0,0,.2);position:relative;overflow:hidden;transition:border-color .2s}
.lf-item::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#8891a0;opacity:.7}
.lf-item[data-state="live"]::before{background:#4ade80}.lf-item[data-state="stale"]::before{background:#fbbf24}.lf-item[data-state="error"]::before{background:#f6821f}
.lf-item:hover{border-color:rgba(255,255,255,.18)}
.lf-h{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start}
.lf-ic{font-size:1.35rem;line-height:1;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.06)}
.lf-ttl{min-width:0}
.lf-name{margin:0;font-weight:700;font-size:.92rem;line-height:1.2}
.lf-feeds{margin:3px 0 0;font-size:.7rem;color:var(--muted,#9aa3b2);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lf-state{display:inline-flex;align-items:center;gap:6px;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.14);color:#c3c9d4;white-space:nowrap}
.lf-state::before{content:"";width:7px;height:7px;border-radius:50%;background:#8891a0}
.lf-item[data-state="live"] .lf-state{color:#7fe3a0;border-color:rgba(74,222,128,.4);background:rgba(74,222,128,.08)}
.lf-item[data-state="live"] .lf-state::before{background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.2);animation:lfpulse 1.8s ease-out infinite}
.lf-item[data-state="error"] .lf-state{color:#f6b27a;border-color:rgba(246,130,31,.45);background:rgba(246,130,31,.08)}
.lf-item[data-state="error"] .lf-state::before{background:#f6821f}
.lf-item[data-state="loading"] .lf-state::before{animation:lfblink 1.2s ease-in-out infinite}
.lf-item[data-state="stale"] .lf-state{color:#fbbf24;border-color:rgba(251,191,36,.45);background:rgba(251,191,36,.08)}
.lf-item[data-state="stale"] .lf-state::before{background:#fbbf24}
.lf-body{display:flex;flex-direction:column;gap:8px}
.lf-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.lf-kpis[data-n="3"]{grid-template-columns:repeat(3,1fr)}.lf-kpis[data-n="4"]{grid-template-columns:repeat(2,1fr)}
.lf-kpi{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.06);min-width:0}
.lf-kpi b{font-size:1.15rem;font-weight:700;line-height:1.1;color:#7ff3ff;font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lf-kpi span{font-size:.66rem;color:var(--muted,#9aa3b2);text-transform:uppercase;letter-spacing:.04em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lf-item[data-state="stale"] .lf-kpi b{color:#fbbf24}
.lf-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.lf-rank li{display:flex;align-items:center;gap:10px;min-width:0;padding:4px 8px;border-radius:7px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05);font-size:.78rem}
.lf-rank li:nth-child(odd){background:rgba(255,255,255,.06)}
.lf-rank .lf-rk{flex:none;min-width:22px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:6px;font-size:.66rem;font-weight:800;color:#04222a;background:#7ff3ff;white-space:nowrap}
.lf-item[data-feed="attacks"] .lf-rank .lf-rk{background:rgba(127,243,255,.2);color:#7ff3ff;text-transform:uppercase;letter-spacing:.04em;font-size:.6rem}
.lf-rank .lf-rn{flex:1 1 auto}
.lf-rank .lf-rv{flex:none;margin-left:auto;font-weight:700;color:#7ff3ff;font-variant-numeric:tabular-nums;font-size:.8rem}
.lf-item[data-state="stale"] .lf-rank .lf-rv{color:#fbbf24}
.lf-item[data-feed="attacks"] .lf-rank .lf-rn{font-family:inherit;font-size:.8rem}
body.light .lf-item[data-feed="attacks"] .lf-rank .lf-rk{background:rgba(14,116,144,.14);color:#0e7490}
body.light .lf-rank .lf-rv{color:#0e7490}
body.light .lf-item[data-state="stale"] .lf-rank .lf-rv{color:#a16207}
.lf-item[data-feed="domains"] .lf-rank li:nth-child(n+4) .lf-rk{background:rgba(127,243,255,.28);color:#dfe4ec}
.lf-rank b{font-weight:600;color:#dfe4ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono,ui-monospace,monospace);font-size:.74rem}
.lf-item[data-state="stale"] .lf-rank .lf-rk{background:#fbbf24;color:#2a1b00}
body.light .lf-rank li{background:rgba(15,23,42,.04);border-color:rgba(15,23,42,.07)}
body.light .lf-rank .lf-rk{background:#0e7490;color:#fff}
body.light .lf-item[data-feed="domains"] .lf-rank li:nth-child(n+4) .lf-rk{background:rgba(14,116,144,.18);color:#0f2730}
body.light .lf-rank b{color:#0f2730}
body.light .lf-item[data-state="stale"] .lf-rank .lf-rk{background:#a16207;color:#fff}
body.light .lf-rank li:nth-child(odd){background:rgba(15,23,42,.06)}
.lf-empty{margin:0;font-size:.76rem;color:var(--muted,#9aa3b2);padding:10px;border-radius:10px;border:1px dashed rgba(255,255,255,.12);text-align:center}
.lf-warn{margin:0;font-size:.72rem;color:#fbbf24;line-height:1.4}
.lf-item[data-state="error"] .lf-warn{color:#f6b27a}
.lf-f{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.68rem;color:var(--muted,#9aa3b2);border-top:1px solid rgba(255,255,255,.07);padding-top:8px;margin-top:auto;flex-wrap:wrap}
.lf-src{color:var(--muted,#9aa3b2);text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.lf-src:hover,.lf-src:focus-visible{color:var(--td-cyan,#22d3ee);text-decoration:underline}
.lf-fr{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.lf-fr time{font-variant-numeric:tabular-nums}
.lf-go{color:var(--td-cyan,#22d3ee);text-decoration:none;font-weight:600}
.lf-go:hover,.lf-go:focus-visible{text-decoration:underline}
.lf-foot{margin-top:12px;font-size:.72rem;color:var(--muted,#9aa3b2)}
.lf-foot #liveFeedSummary{color:#dfe4ec;font-weight:600}
/* modo claro */
body.light .livefeed{border-color:rgba(15,23,42,.1);background:linear-gradient(180deg,rgba(15,23,42,.03),rgba(15,23,42,.01))}
body.light .lf-item{background:rgba(255,255,255,.7);border-color:rgba(15,23,42,.1)}
body.light .lf-item:hover{border-color:rgba(15,23,42,.22)}
body.light .lf-ic{background:rgba(15,23,42,.06)}
body.light .lf-kpi{background:rgba(15,23,42,.04);border-color:rgba(15,23,42,.07)}
body.light .lf-kpi b{color:#0e7490}
body.light .lf-item[data-state="stale"] .lf-kpi b{color:#a16207}
body.light .lf-item[data-state="stale"] .lf-state{color:#a16207;border-color:rgba(161,98,7,.45);background:rgba(161,98,7,.08)}
body.light .lf-item[data-state="stale"] .lf-state::before{background:#a16207}
body.light .lf-item[data-state="live"] .lf-state{color:#15803d;border-color:rgba(21,128,61,.4);background:rgba(21,128,61,.08)}
body.light .lf-item[data-state="error"] .lf-state{color:#c2410c;border-color:rgba(194,65,12,.4);background:rgba(194,65,12,.08)}
body.light .lf-state{color:#3b5560;border-color:rgba(15,23,42,.16)}
body.light .lf-warn{color:#a16207}body.light .lf-item[data-state="error"] .lf-warn{color:#c2410c}
body.light .lf-empty{border-color:rgba(15,23,42,.16)}
body.light .lf-f{border-top-color:rgba(15,23,42,.08)}
body.light .lf-foot #liveFeedSummary{color:#0f2730}
@keyframes lfpulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.45)}100%{box-shadow:0 0 0 7px rgba(74,222,128,0)}}
@keyframes lfblink{0%,100%{opacity:.35}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.lf-item[data-state="live"] .lf-state::before,.lf-item[data-state="loading"] .lf-state::before{animation:none}.lf-item{transition:none}}
@media (max-width:560px){.livefeed{padding:12px}.lf-grid{grid-template-columns:1fr}.lf-kpis[data-n="3"]{grid-template-columns:repeat(3,1fr)}.lf-kpi b{font-size:1.05rem}}

/* v8.14 · filtro por pais (faixa "Agora, na rede real" removida na v8.19) */
.netcountry { display:flex; align-items:center; gap:8px; margin:8px 0 6px; font-size:.8rem; color:var(--muted); }
.netcountry label { white-space:nowrap; }
.netcountry label small { opacity:.8; }
.netsel { flex:1; min-width:0; padding:7px 10px; border-radius:10px; border:1px solid var(--panel-brd); background:var(--panel, rgba(255,255,255,.04)); color:inherit; font:inherit; font-size:.82rem; }
.netsel:focus-visible { outline:2px solid var(--td-cyan); outline-offset:2px; }
.lf-warn { color:#f6821f; font-weight:600; }
@media(max-width:600px) { .netcountry { flex-wrap:wrap; } .netsel { flex-basis:100%; } }

/* v8.16 · Visibilidade no modo escuro + chips de PoPs por pais */
.netsel { color-scheme: dark; background:#0f2730; color:#e6f1f3; border-color:rgba(127,233,242,.35); }
.netsel option { background:#0f2730; color:#e6f1f3; }
body.light .netsel { color-scheme: light; background:#fff; color:#0f2730; border-color:#b9cdd2; }
body.light .netsel option { background:#fff; color:#0f2730; }
.netcountry { color:var(--text); }
.netstatus.is-country { border-style:solid; border-color:rgba(127,233,242,.45); background:rgba(127,233,242,.06); }
body.light .netstatus.is-country { border-color:#0b6c76; background:rgba(11,108,118,.05); }
.ns-pops { list-style:none; margin:4px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px; max-height:220px; overflow:auto; }
.ns-pop { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border-radius:999px; border:1px solid rgba(127,233,242,.35);
  background:rgba(255,255,255,.06); color:#e6f1f3; font:inherit; font-size:.78rem; line-height:1; cursor:pointer; }
.ns-pop:hover { background:rgba(127,233,242,.16); border-color:#7fe9f2; }
.ns-pop:focus-visible { outline:2px solid var(--td-cyan); outline-offset:2px; }
.ns-pop i { width:8px; height:8px; border-radius:50%; background:#9fb3b9; flex:none; }
.ns-pop[data-live="operational"] i { background:#22c55e; }
.ns-pop[data-live="partial_outage"] i, .ns-pop[data-live="degraded_performance"] i, .ns-pop[data-live="under_maintenance"] i { background:#f6821f; border-radius:2px; transform:rotate(45deg); }
.ns-pop[data-live="major_outage"] i { background:#ff6b6b; border-radius:2px; transform:rotate(45deg); }
.ns-pop .nl-iata { background:rgba(127,233,242,.16); color:#7fe9f2; }
.ns-pop-h { font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; color:#f6821f; }
body.light .ns-pop { background:#fff; color:#0f2730; border-color:#b9cdd2; }
body.light .ns-pop:hover { background:#e6f6f7; border-color:#0b6c76; }
body.light .ns-pop .nl-iata { background:rgba(11,108,118,.1); color:#0b6c76; }
.netstatus.is-country strong { color:#7fe9f2; font-size:1.05rem; }
body.light .netstatus.is-country strong { color:#0b6c76; }
.netstatus.is-country .ns-meta { color:#c7d6da; }
body.light .netstatus.is-country .ns-meta { color:#3f5a61; }
.nlv-why { margin-top:4px; font-size:.74rem; color:#ffb469; }
body.light .nlv-why { color:#9a4a00; }
@media (prefers-reduced-motion: reduce) { .ns-pop { transition:none; } }

/* v8.17 · Fonte clara e legivel no seletor de pais (menu de opcoes) e no painel lateral, modo escuro */
.netsel { background:#0b1f27; color:#ffffff; font-size:.9rem; font-weight:600; border-color:#7fe9f2; }
.netsel option, .netsel optgroup { background:#0b1f27; color:#ffffff; font-size:.95rem; font-weight:600; padding:6px 10px; }
.netsel option:checked, .netsel option:hover { background:#1c5d6a; color:#ffffff; }
.netsel option[value="all"] { color:#7fe9f2; }
.netcountry label, .netcountry small { color:#ffffff; font-weight:600; }
.netstatus, .netstatus .ns-meta, .netstatus.is-country .ns-meta { color:#f2f7f8; }
.netlist li, .netlist li small, .nl-region { color:#f2f7f8; }
.netlist li small, .nl-region { opacity:.92; }
.ns-pop { color:#ffffff; font-weight:600; }
body.light .netsel { background:#fff; color:#0b1f27; border-color:#0b6c76; }
body.light .netsel option, body.light .netsel optgroup { background:#fff; color:#0b1f27; }
body.light .netsel option:checked, body.light .netsel option:hover { background:#d7f2f5; color:#0b1f27; }
body.light .netsel option[value="all"] { color:#0b6c76; }
body.light .netcountry label, body.light .netcountry small { color:#0b1f27; }
body.light .netstatus, body.light .netstatus .ns-meta, body.light .netstatus.is-country .ns-meta,
body.light .netlist li, body.light .netlist li small, body.light .nl-region { color:#0b1f27; }
body.light .ns-pop { color:#0b1f27; }

/* v8.18 · tiles com origem do numero (ao vivo x publicado) e trafego do pais */
.netfact.nf { position:relative; }
.netfact .nf-src { display:block; margin-top:6px; font-style:normal; font-size:.68rem; letter-spacing:.02em; color:#c7d6da; }
.netfact .nf-src.nf-live { color:#22c55e; font-weight:600; }
.netfact .nf-src .live-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#22c55e; vertical-align:middle; animation:nfpulse 1.6s infinite; }
@keyframes nfpulse { 0%,100% { opacity:1; } 50% { opacity:.35; } }
.netfact b[data-state="live"] { background:linear-gradient(135deg, #22c55e, #00c2d4); -webkit-background-clip:text; background-clip:text; color:transparent; }
body.light .netfact .nf-src { color:#4b6168; }
body.light .netfact .nf-src.nf-live { color:#15803d; }
.ns-traffic { display:block; margin:6px 0 2px; color:#f2f7f8; font-size:.84rem; line-height:1.45; }
.ns-traffic b { color:#7fe9f2; font-size:1rem; }
body.light .ns-traffic { color:#0b1f27; } body.light .ns-traffic b { color:#0b6c76; }
@media (prefers-reduced-motion: reduce) { .netfact .nf-src .live-dot { animation:none; } }

/* v8.19 · lista agrupada por pais (cabecalhos fixos) */
.netlist .nl-group { display:flex; align-items:center; justify-content:space-between; gap:8px; position:sticky; top:-4px; z-index:1;
  margin:6px -4px 2px; padding:6px 12px; cursor:pointer; border-radius:0; font-size:.74rem; letter-spacing:.04em; text-transform:uppercase;
  background:#10303a; color:#7fe9f2; border-top:1px solid rgba(127,233,242,.18); border-bottom:1px solid rgba(127,233,242,.18); }
.netlist .nl-group:first-child { margin-top:-4px; }
.netlist .nl-group:hover { background:#154552; }
.netlist .nl-group b { font-weight:800; color:#fff; }
.netlist .nl-group small { font-weight:600; color:#f2f7f8; opacity:.9; text-transform:none; letter-spacing:0; }
.netlist .nl-group .nl-gr { font-weight:500; opacity:.75; text-transform:none; letter-spacing:0; }
.netlist li.nl-city { padding-left:14px; }
body.light .netlist .nl-group { background:#e4f3f5; color:#0b6c76; border-color:rgba(11,108,118,.18); }
body.light .netlist .nl-group:hover { background:#d2ebee; }
body.light .netlist .nl-group b, body.light .netlist .nl-group small { color:#0b1f27; }
/* v8.19 · motivo do erro do status oficial em destaque (diagnostico) */
.netlive .nlv-why { margin-top:6px; padding:6px 10px; border-radius:8px; background:rgba(246,130,31,.14); border:1px solid rgba(246,130,31,.45); color:#ffd9b8; font-weight:600; font-size:.78rem; }
body.light .netlive .nlv-why { background:rgba(246,130,31,.12); color:#7c2d12; }

/* v8.21 · linha complementar AO VIVO nos tiles publicados (ciano, distinta do verde 'ao vivo' e do cinza 'publicado') */
.netfact .nf-src.nf-now { color:#7fe9f2; font-weight:600; margin-top:4px; }
.netfact .nf-src.nf-now .live-dot { background:#7fe9f2; }
.netfact .nf-src.nf-now [data-radar] { font-weight:800; color:#f2f7f8; }
body.light .netfact .nf-src.nf-now { color:#0e7490; }
body.light .netfact .nf-src.nf-now .live-dot { background:#0e7490; }
body.light .netfact .nf-src.nf-now [data-radar] { color:#0b1f27; }

/* v8.21 · lista minimizada ('Todos os paises'): so cabecalhos, em grade compacta de 2 colunas */
.netlist.is-collapsed { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:4px; max-height:300px; padding:6px; align-content:start; }
.netlist.is-collapsed .nl-group { position:static; display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:7px 10px; border-radius:9px; border:1px solid rgba(127,233,242,.18); background:rgba(127,233,242,.06); cursor:pointer; margin:0; }
.netlist.is-collapsed .nl-group:hover, .netlist.is-collapsed .nl-group:focus-visible { border-color:#7fe9f2; background:rgba(127,233,242,.14); }
.netlist.is-collapsed .nl-group b { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.netlist.is-collapsed .nl-group .nl-gr { display:none; }
.netlist.is-collapsed .nl-group small { white-space:nowrap; }
body.light .netlist.is-collapsed .nl-group { border-color:rgba(14,116,144,.25); background:rgba(14,116,144,.06); }
@media (max-width: 560px) { .netlist.is-collapsed { grid-template-columns:1fr; } }
