/* Só o que o portal.css não tem. Haina vem de /janela/portal.css (mesmas classes: topbar, topo, painel, tab, btn, nav). */
a.nav { text-decoration: none; color: inherit; }
a.btn { text-decoration: none; }
.acoes a.btn:only-child { flex: 0 1 auto; } /* no protótipo são dois botões lado a lado; sozinho não ocupa a linha toda */
.trilha { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 0 0 16px; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
tr.serie td { font-weight: 600; background: var(--sup2); }
.oculto { color: var(--tx2); font-style: italic; }
.cartao.entrar { max-width: 420px; margin: 10vh auto 0; text-align: center; }
/* o rodapé fica fora de .app: mesma largura e margem lateral que .app; no login não diz nada, some */
.main > footer.pe { max-width: 1340px; margin: 36px auto 8px; padding-left: var(--appPx); padding-right: var(--appPx); }
body.sem-shell .main > footer.pe { display: none; }
/* Ecranul de pornire al rețelei (rede.js): harta reală Leaflet pe pânză întunecată, ca prototipul. */
a.fcard, a.big, a.escola-it { text-decoration: none; }
:where(a.fcard, a.big, a.escola-it) { color: var(--tx); } /* :where = especificidade 0, as classes .c-* do portal.css continuam mandando */
.side-it { text-decoration: none; color: inherit; }
.mapa-palco { isolation: isolate; } /* painéis do Leaflet (z-index 400–1000) ficam dentro do palco, abaixo da barra fixa (.side, z 30) */
.mapa-leaflet { height: 460px; border-radius: 22px; overflow: hidden; background: #0b1f2b; box-shadow: inset 0 0 70px rgba(0,0,0,.45), 0 14px 36px rgba(6,26,40,.22); }
/* întunecarea doar pe plăci (filtru CSS): controalele și punctele rămân curate */
.mapa-leaflet .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.55); }
.mapa-leaflet .leaflet-control-zoom a { background: #12303d; color: #e9fbf7; border-color: rgba(255,255,255,.18); }
.mapa-leaflet .mapa-rot { background: rgba(8,24,33,.86); color: #f0fbfb; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; font-weight: 700; font-size: 13px; padding: 2px 7px; box-shadow: none; }
.mapa-leaflet .mapa-rot::before { display: none; }
.mapa-atrib, .mapa-demo { position: absolute; z-index: 900; font-size: 12.5px; padding: 3px 9px; border-radius: 8px; background: rgba(8,24,33,.78); color: #dcecef; }
.mapa-atrib { right: 8px; bottom: 8px; }
.mapa-demo { left: 50%; transform: translateX(-50%); top: 8px; font-weight: 700; color: #fbbf3c; }
.mapa-vazio { padding: 24px; color: #dcecef; }
body.discreto .cif, body.discreto .hero .frase b, body.discreto .anel-g .meio b, body.discreto .hero-leg { filter: blur(9px); }
.esconde { position: absolute; left: -9999px; }
/* "Sair" (único <button> do menu) já é tratado no portal.css */
@media (max-width: 900px) {
  .side-pe a.side-it[href$="/mapa"] { display: none; } /* tela "em breve"; no telefone o rótulo cortava e empurrava o Sair */
  .side-pe { border-left: 0; padding-left: 0; }
  .topbar .dir .nav { min-height: 38px; min-width: 0; padding: 6px 12px; font-size: 14px; white-space: nowrap; }
}
/* "Voltar ao início": degradê verde pálido (tokens do tema, vale também no escuro) */
.topbar .dir .nav { background: linear-gradient(135deg, var(--okSup), var(--acSup)); color: var(--ok); border-color: color-mix(in srgb, var(--ok) 30%, transparent); font-weight: 600; }
.topbar .dir .nav:hover { background: linear-gradient(135deg, var(--acSup), var(--okSup)); border-color: var(--ok); }
