/* =====================================================================
   Inventário DSI – folha de estilos (modo claro e modo escuro)
   As cores estão definidas UMA vez para cada modo (variáveis abaixo).
   Letras que já vêm com o Windows: Bahnschrift (títulos) e Segoe UI (texto).
   ===================================================================== */

/* ---------------- Cores: modo claro ---------------- */
:root {
  color-scheme: light;
  --fundo: #F2F5F9;
  --sup: #FFFFFF;            /* superfícies: cartões, tabelas, barra */
  --sup-2: #F7F9FC;          /* cabeçalhos de tabela, zonas secundárias */
  --sup-3: #EDF1F7;          /* realce ao passar o rato */
  --texto: #162130;
  --texto-2: #4A5869;
  --texto-3: #646F7C;
  --linha: #DDE3EB;
  --linha-2: #EBEFF4;
  --marca: #002FA7;          /* azul Bacalhôa (logótipo oficial) */
  --marca-forte: #00247F;
  --marca-suave: #E6ECFA;
  --marca-texto: #002FA7;
  --no-botao: #FFFFFF;
  --ok: #1D8A58;       --ok-suave: #E2F4EA;
  --info: #2E6BCB;     --info-suave: #E5EEFB;
  --aviso: #B7791F;    --aviso-suave: #FBF0DB;
  --laranja: #CC5F24;  --laranja-suave: #FCEBE1;
  --perigo: #C0342D;   --perigo-suave: #FBE7E6;
  --violeta: #6D55B6;  --violeta-suave: #EFEAFA;
  --ok-texto: #1A7C4F; --info-texto: #2D69C7; --aviso-texto: #966319; --laranja-texto: #AD511F; --cinza-texto: #636E7B;   /* texto colorido sobre fundos suaves: contraste 4,5 ou mais */
  --cinza: #6A7684;    --cinza-suave: #EDF0F3;
  --sombra-1: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .07);
  --sombra-2: 0 10px 30px rgba(16, 24, 40, .12), 0 2px 6px rgba(16, 24, 40, .06);
  --foco: 0 0 0 3px rgba(0, 47, 167, .22);
  --logo-filtro: none;
  --consola-fundo: #0E141B; --consola-topo: #1A2330; --consola-texto: #D7E0EA;
  --raio: 12px; --raio-p: 7px;
  --letra-titulos: "Bahnschrift", "DIN Alternate", "Segoe UI Semibold", Arial, sans-serif;
  --letra-texto: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --letra-mono: Consolas, "Cascadia Mono", "Courier New", monospace;
}

/* ---------------- Cores: modo escuro ---------------- */
:root[data-tema="escuro"] {
  color-scheme: dark;
  --fundo: #0C121A;
  --sup: #141C27;
  --sup-2: #18212E;
  --sup-3: #202B3A;
  --texto: #E6ECF3;
  --texto-2: #A7B4C3;
  --texto-3: #7C8999;
  --linha: #283444;
  --linha-2: #1F2937;
  --marca: #3B6CF0;
  --marca-forte: #5A86FF;
  --marca-suave: rgba(77, 125, 255, .16);
  --marca-texto: #8DAEFF;
  --no-botao: #FFFFFF;
  --ok: #3CC486;       --ok-suave: rgba(60, 196, 134, .14);
  --info: #6AA2FF;     --info-suave: rgba(106, 162, 255, .15);
  --aviso: #E3B04B;    --aviso-suave: rgba(227, 176, 75, .15);
  --laranja: #F08A55;  --laranja-suave: rgba(240, 138, 85, .15);
  --perigo: #F2716A;   --perigo-suave: rgba(242, 113, 106, .15);
  --violeta: #A591F0;  --violeta-suave: rgba(165, 145, 240, .16);
  --cinza: #93A0AF;    --cinza-suave: rgba(147, 160, 175, .14);
  --sombra-1: 0 1px 2px rgba(0, 0, 0, .35);
  --sombra-2: 0 14px 36px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .3);
  --foco: 0 0 0 3px rgba(93, 140, 255, .35);
  --logo-filtro: brightness(0) invert(1);
  --consola-fundo: #080C12; --consola-topo: #151D28; --consola-texto: #D7E0EA;
  --ok-texto: var(--ok); --info-texto: var(--info); --aviso-texto: var(--aviso); --laranja-texto: var(--laranja); --cinza-texto: var(--cinza);
}

/* ---------------- Base ---------------- */
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { font-size: 15px; }
body { margin: 0; font-family: var(--letra-texto); color: var(--texto); background: var(--fundo); line-height: 1.45;
       transition: background-color .2s ease, color .2s ease; }
a { color: var(--marca-texto); }
:focus-visible { outline: none; box-shadow: var(--foco); border-radius: 4px; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
h1, h2 { font-family: var(--letra-titulos); font-weight: 600; letter-spacing: .01em; color: var(--texto); }
h1 { font-size: 1.6rem; margin: 0 0 .9rem; }
h2 { font-size: 1.02rem; margin: 0 0 .8rem; }
.numero, td.n, .legenda b, .rever b, .kpi b { font-variant-numeric: tabular-nums; }
svg.ic { width: 18px; height: 18px; flex: 0 0 auto; stroke: currentColor; fill: none; stroke-width: 1.8;
         stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
::selection { background: var(--marca-suave); }

/* ---------------- Barra de cima ---------------- */
.barra { position: sticky; top: 0; z-index: 30; height: 64px; background: var(--sup); border-bottom: 1px solid var(--linha);
         display: flex; align-items: center; gap: 1.4rem; padding: 0 1.4rem; }
.barra-marca { display: flex; align-items: center; gap: .9rem; text-decoration: none; min-width: 250px; }
.barra-marca img { height: 40px; width: auto; display: block; }
.barra-marca span { font-family: var(--letra-titulos); font-size: 1rem; color: var(--texto-2); border-left: 1px solid var(--linha);
                    padding-left: .9rem; letter-spacing: .02em; white-space: nowrap; }
.barra-procura { margin-left: auto; position: relative; width: 480px; max-width: 45vw; }
.barra-procura svg.ic { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--texto-3); }
.barra-procura input { width: 100%; padding: .6rem 2.4rem .6rem 2.4rem; background: var(--sup-2); border: 1px solid var(--linha);
                       border-radius: 999px; color: var(--texto); font: inherit; transition: all .15s ease; }
.barra-procura input:focus { background: var(--sup); border-color: var(--marca); box-shadow: var(--foco); outline: none; }
.barra-procura kbd { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); font: .72rem var(--letra-texto);
                     color: var(--texto-3); border: 1px solid var(--linha); border-radius: 4px; padding: .05rem .35rem; background: var(--sup); }
.barra-utilizador { display: flex; align-items: center; gap: .6rem; font-size: .9rem; }
.barra-utilizador a { color: var(--texto); text-decoration: none; display: flex; align-items: center; gap: .5rem;
                      padding: .3rem .5rem; border-radius: 999px; }
.barra-utilizador a:hover { background: var(--sup-3); }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--marca); color: #fff; display: inline-flex;
          align-items: center; justify-content: center; font-weight: 600; font-size: .85rem; }
.barra-utilizador button, .tema { background: none; border: 1px solid var(--linha); color: var(--texto-2); border-radius: 999px;
                                  padding: .35rem .8rem; cursor: pointer; font: inherit; display: inline-flex; align-items: center; gap: .35rem;
                                  transition: all .15s ease; }
.barra-utilizador button:hover, .tema:hover { color: var(--texto); border-color: var(--texto-3); background: var(--sup-3); }
.tema { width: 36px; height: 36px; padding: 0; justify-content: center; }
.tema .ic-lua { display: none; }
:root[data-tema="escuro"] .tema .ic-sol { display: none; }
:root[data-tema="escuro"] .tema .ic-lua { display: inline; }

/* ---------------- Corpo e menu lateral ---------------- */
.corpo { display: flex; min-height: calc(100vh - 64px); }
.lateral { width: 240px; flex: 0 0 240px; background: var(--sup); border-right: 1px solid var(--linha); padding: 1rem .6rem 2rem;
           position: sticky; top: 64px; height: calc(100vh - 64px); overflow-y: auto; }
.lateral a { display: flex; align-items: center; gap: .6rem; padding: .48rem .7rem; border-radius: 8px; color: var(--texto-2);
             text-decoration: none; font-size: .92rem; transition: background-color .12s ease, color .12s ease; }
.lateral a:hover { background: var(--sup-3); color: var(--texto); }
.lateral a.ativo { background: var(--marca-suave); color: var(--marca-texto); font-weight: 600; }
.lateral a span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lateral a.sub { font-size: .87rem; padding-left: .9rem; }
.lateral a small { color: var(--texto-3); font-variant-numeric: tabular-nums; font-size: .76rem; background: var(--sup-2);
                   border-radius: 999px; padding: .05rem .45rem; }
.lateral a.ativo small { background: var(--sup); color: var(--marca-texto); }
.lateral-grupo { margin: 1.1rem .7rem .35rem; font-size: .7rem; color: var(--texto-3); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
.lateral svg.ic { width: 17px; height: 17px; }
.corpo main { flex: 1; min-width: 0; padding: 1.6rem 2rem 3rem; max-width: 1600px; }

/* Ícones: neutros; só a secção aberta fica com a cor da marca */
.lateral svg.ic { color: var(--texto-3); }
.lateral a:hover svg.ic { color: var(--texto-2); }
.lateral a.ativo svg.ic { color: var(--marca-texto); }
table.tipos-barras svg.ic, .com-icone svg.ic, .perfil-tipo svg.ic, .tipos svg.ic { color: var(--texto-3); }
.perfil-imagem svg.ic { color: var(--marca-texto); }

/* ---------------- Botões, campos, mensagens ---------------- */
.botao { display: inline-flex; align-items: center; gap: .4rem; background: var(--marca); color: var(--no-botao); border: 1px solid var(--marca);
         border-radius: 8px; padding: .5rem 1rem; font: inherit; font-size: .92rem; font-weight: 600; text-decoration: none; cursor: pointer;
         white-space: nowrap; box-shadow: var(--sombra-1); transition: background-color .15s ease, border-color .15s ease, transform .06s ease, box-shadow .15s ease; }
.botao:hover { background: var(--marca-forte); border-color: var(--marca-forte); }
.botao:active { transform: translateY(1px); }
.botao.secundario { background: var(--sup); color: var(--texto); border-color: var(--linha); font-weight: 500; }
.botao.secundario:hover { background: var(--sup-3); border-color: var(--texto-3); }
.botao.perigo { background: var(--sup); color: var(--perigo); border-color: var(--linha); font-weight: 500; }
.botao.perigo:hover { background: var(--perigo-suave); border-color: var(--perigo); }
form .botao.perigo[type=submit] { background: var(--perigo); color: #fff; border-color: var(--perigo); }
.ligacao { background: none; border: 0; padding: 0; color: var(--marca-texto); cursor: pointer; font: inherit; font-size: .88rem; text-decoration: underline; }
.ligacao.perigo, a.perigo { color: var(--perigo); }
input, select, textarea { padding: .5rem .65rem; border: 1px solid var(--linha); border-radius: 8px; font: inherit; font-size: .93rem;
                          background: var(--sup); color: var(--texto); transition: border-color .15s ease, box-shadow .15s ease; }
input:hover, select:hover, textarea:hover { border-color: var(--texto-3); }
input:focus, select:focus, textarea:focus { border-color: var(--marca); outline: none; box-shadow: var(--foco); }
input[type=checkbox] { accent-color: var(--marca); width: 16px; height: 16px; }
input[type=file] { padding: .35rem; }
.nota { color: var(--texto-2); font-size: .85rem; margin: .5rem 0 0; }
.vazio { color: var(--texto-3); }
.voltar { color: var(--texto-2); text-decoration: none; font-size: .9rem; display: inline-flex; align-items: center; gap: .3rem; }
.voltar:hover { color: var(--marca-texto); }
.motivo { color: var(--texto-2); font-size: .85rem; }

/* Mensagens: aparecem no canto e as de sucesso desaparecem sozinhas */
.mensagens { position: fixed; right: 1.4rem; top: 78px; z-index: 60; display: flex; flex-direction: column; gap: .5rem; width: min(440px, 92vw); }
.mensagem { display: flex; gap: .6rem; align-items: flex-start; padding: .75rem .9rem; border-radius: 10px; background: var(--sup);
            border: 1px solid var(--linha); border-left: 4px solid var(--info); color: var(--texto); margin-bottom: .8rem; }
.mensagens .mensagem { box-shadow: var(--sombra-2); animation: entrar-msg .25s ease; margin: 0; }
.mensagem .msg-texto { flex: 1; }
.mensagem .msg-fechar { background: none; border: 0; color: var(--texto-3); cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 0 .2rem; }
.mensagem.success { border-left-color: var(--ok); }
.mensagem.error { border-left-color: var(--perigo); }
.mensagem.warning { border-left-color: var(--aviso); }
.mensagem.info { border-left-color: var(--info); }
.mensagem.a-sair { opacity: 0; transform: translateX(20px); transition: all .3s ease; }
@keyframes entrar-msg { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ---------------- Estados (etiquetas com ponto) ---------------- */
.estado { display: inline-flex; align-items: center; gap: .4rem; padding: .15rem .6rem .15rem .5rem; border-radius: 999px; font-size: .8rem;
          font-weight: 600; background: var(--cinza-suave); color: var(--cinza); white-space: nowrap; }
.estado::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.estado-activo { background: var(--ok-suave); color: var(--ok-texto); }
.estado-disponivel { background: var(--info-suave); color: var(--info-texto); }
.estado-em-reparacao { background: var(--aviso-suave); color: var(--aviso-texto); }
.estado-avariado { background: var(--laranja-suave); color: var(--laranja-texto); }
.estado-substituido-em-garantia { background: var(--violeta-suave); color: var(--violeta); }
.estado-desactivo { background: var(--cinza-suave); color: var(--cinza-texto); }
.arquivado { font-size: .74rem; color: var(--texto-2); border: 1px solid var(--linha); padding: .05rem .5rem; margin-left: .4rem; border-radius: 999px; }
/* barra e legenda do painel */
.seg-activo { background: var(--ok); } .seg-disponivel { background: var(--info); } .seg-em-reparacao { background: var(--aviso); }
.seg-avariado { background: var(--laranja); } .seg-substituido-em-garantia { background: var(--violeta); }
.seg-desconhecido, .seg-sem-estado { background: #AEB7C1; } .seg-desactivo { background: var(--cinza); }
:root[data-tema="escuro"] .seg-desconhecido, :root[data-tema="escuro"] .seg-sem-estado { background: #4B5868; }

/* ---------------- Caixas e cartões ---------------- */
.caixa, .dash-bloco { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.1rem 1.25rem;
                      margin-bottom: 1rem; box-shadow: var(--sombra-1); }
.caixa h2, .dash-bloco h2 { border-bottom: 1px solid var(--linha-2); padding-bottom: .6rem; display: flex; align-items: center; gap: .5rem; }
.cabecalho-ficha { display: flex; align-items: center; gap: .9rem; margin: .4rem 0 1rem; flex-wrap: wrap; }
.cabecalho-ficha h1 { margin: 0; }
.cabecalho-ficha .tipo { color: var(--texto-2); display: inline-flex; gap: .9rem; }
.acoes { margin-left: auto; display: flex; gap: .5rem; flex-wrap: wrap; }
.acoes-linha { display: flex; gap: .5rem; margin-top: 1rem; flex-wrap: wrap; }
.grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 1rem; }
.grelha .caixa { margin: 0; }
.subtitulo { margin-top: 1.4rem; }

/* ---------------- Painel ---------------- */
.dash-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; margin-bottom: 1.3rem; }
.dash-total { font-size: 1.35rem; font-weight: 400; margin: 0; color: var(--texto-2); }
.dash-total .numero { font-size: 3rem; font-weight: 600; line-height: 1; display: block; margin-bottom: .2rem; color: var(--texto); }
.dash-sub { margin: .4rem 0 0; color: var(--texto-2); }
.dash-acoes { display: flex; gap: .5rem; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin-bottom: 1.4rem; }
.kpi { position: relative; display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.1rem 1.05rem; background: var(--sup);
       border: 1px solid var(--linha); border-radius: var(--raio); text-decoration: none; color: var(--texto); box-shadow: var(--sombra-1);
       overflow: hidden; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; animation: subir .35s ease both; }
.kpi:hover { transform: translateY(-2px); box-shadow: var(--sombra-2); border-color: var(--texto-3); }
.kpi-cabeca { display: flex; align-items: center; gap: .5rem; color: var(--texto-2); font-size: .88rem; }
.kpi-icone { width: 32px; height: 32px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center;
             background: var(--kpi-suave, var(--marca-suave)); color: var(--kpi-cor, var(--marca)); }
.kpi b { font-family: var(--letra-titulos); font-size: 2rem; font-weight: 600; line-height: 1.1; }
.kpi small { color: var(--texto-3); font-size: .8rem; }
.kpi.kpi-ok { --kpi-cor: var(--ok); --kpi-suave: var(--ok-suave); }
.kpi.kpi-info { --kpi-cor: var(--info); --kpi-suave: var(--info-suave); }
.kpi.kpi-aviso { --kpi-cor: var(--laranja); --kpi-suave: var(--laranja-suave); }
.kpi.kpi-perigo { --kpi-cor: var(--perigo); --kpi-suave: var(--perigo-suave); }
.kpi.kpi-marca { --kpi-cor: var(--marca); --kpi-suave: var(--marca-suave); }
.kpis .kpi:nth-child(2) { animation-delay: .04s; } .kpis .kpi:nth-child(3) { animation-delay: .08s; }
.kpis .kpi:nth-child(4) { animation-delay: .12s; } .kpis .kpi:nth-child(5) { animation-delay: .16s; }
@keyframes subir { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.dash-estados { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.1rem 1.25rem; margin-bottom: 1.4rem; box-shadow: var(--sombra-1); }
.barra-estados { display: flex; height: 40px; background: var(--sup-3); overflow: hidden; border-radius: 9px; }
.barra-estados .seg { display: flex; align-items: center; justify-content: center; color: #fff; text-decoration: none; font-family: var(--letra-titulos);
                      font-size: .95rem; min-width: 3px; border-right: 2px solid var(--sup); transition: filter .15s ease; }
.barra-estados .seg:last-child { border-right: 0; }
.barra-estados .seg:hover { filter: brightness(1.12) saturate(1.1); }
.legenda { list-style: none; padding: 0; margin: .9rem 0 0; display: flex; flex-wrap: wrap; gap: .45rem 1.4rem; }
.legenda a { color: var(--texto); text-decoration: none; display: flex; align-items: center; gap: .45rem; white-space: nowrap; }
.legenda a:hover b { color: var(--marca-texto); }
.legenda i { width: 10px; height: 10px; display: inline-block; border-radius: 3px; }
.legenda small { color: var(--texto-3); }
.dash-colunas { display: grid; grid-template-columns: 3fr 2fr; gap: 1.4rem; margin-bottom: 1.4rem; }
.dash-colunas .dash-bloco { margin: 0; }
table.tipos-barras { width: 100%; border-collapse: collapse; }
table.tipos-barras th { text-align: left; font-weight: 400; padding: .32rem .8rem .32rem 0; white-space: nowrap; width: 1%; }
table.tipos-barras th a { color: var(--texto); text-decoration: none; display: inline-flex; align-items: center; gap: .5rem; }
table.tipos-barras th a:hover { color: var(--marca-texto); }
table.tipos-barras td.n { text-align: right; padding-right: .8rem; width: 1%; font-family: var(--letra-titulos); color: var(--texto-2); }
table.tipos-barras td.barra { padding: .32rem 0; }
table.tipos-barras td.barra span { display: block; height: 9px; min-width: 3px; border-radius: 999px;
                                   background: var(--marca); opacity: .85; transition: opacity .15s ease; }
table.tipos-barras tr:hover td.barra span { opacity: 1; }
ul.rever { list-style: none; margin: 0; padding: 0; }
ul.rever li a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .62rem .5rem; margin: 0 -.5rem;
                border-radius: 8px; color: var(--texto); text-decoration: none; transition: background-color .12s ease; }
ul.rever li a:hover { background: var(--sup-3); }
ul.rever b { font-family: var(--letra-titulos); font-size: 1.05rem; color: var(--texto); display: inline-flex; align-items: center; gap: .5rem; }
ul.rever b::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--laranja); }
ul.rever li.ok b { color: var(--texto-3); }
ul.rever li.ok b::before { background: var(--ok); }

/* ---------------- Lista de equipamentos ---------------- */
form.filtros { display: flex; flex-wrap: wrap; gap: .7rem; align-items: flex-end; }
form.filtros label { display: flex; flex-direction: column; font-size: .78rem; color: var(--texto-2); gap: .25rem; font-weight: 600; }
.check { flex-direction: row !important; align-items: center; gap: .45rem !important; color: var(--texto) !important;
         font-size: .9rem !important; font-weight: 400 !important; padding-bottom: .55rem; }
.a-carregar { color: var(--texto-2); font-size: .85rem; align-self: center; display: inline-flex; align-items: center; gap: .4rem; }
.a-carregar::before { content: ""; width: 12px; height: 12px; border: 2px solid var(--linha); border-top-color: var(--marca); border-radius: 50%;
                      animation: rodar .7s linear infinite; }
@keyframes rodar { to { transform: rotate(360deg); } }
.resumo { color: var(--texto-2); margin: .3rem 0 .7rem; }
.filtro-especial { background: var(--marca-suave); color: var(--texto); padding: .55rem .9rem; margin: 0 0 .8rem; border-radius: 9px; font-size: .92rem; }
.lista-barra { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .4rem 0 .7rem; }
.lista-barra .resumo { margin: 0; }
.lista-ferramentas { display: flex; gap: .5rem; align-items: center; }
table.lista { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--sup); border: 1px solid var(--linha);
              border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra-1); }
table.lista th { text-align: left; font-weight: 600; font-size: .78rem; padding: .7rem .75rem; background: var(--sup-2);
                 border-bottom: 1px solid var(--linha); white-space: nowrap; color: var(--texto-2); letter-spacing: .02em; }
table.lista th a { color: var(--texto-2); text-decoration: none; }
table.lista th a:hover { color: var(--marca-texto); }
table.lista td { padding: .6rem .75rem; border-bottom: 1px solid var(--linha-2); vertical-align: middle; }
table.lista tbody tr:last-child td { border-bottom: 0; }
table.lista tbody tr { transition: background-color .1s ease; }
table.lista tbody tr:hover td { background: var(--sup-3); }
table.lista tbody tr:has(input[name="ids"]:checked) td { background: var(--marca-suave); }
table.lista td a { color: var(--texto); font-weight: 600; text-decoration: none; }
table.lista td a:hover { color: var(--marca-texto); text-decoration: underline; }
table.lista.compacta td { padding: .45rem .75rem; font-size: .9rem; }
th.sel, td.sel { width: 36px; text-align: center; }
.paginas { display: flex; gap: 1rem; align-items: center; margin-top: 1rem; color: var(--texto-2); }
.paginas a { color: var(--marca-texto); text-decoration: none; padding: .3rem .6rem; border-radius: 7px; }
.paginas a:hover { background: var(--sup-3); }
tr.terminada td { color: var(--texto-3); }
tr.terminada td a { color: var(--texto-3); font-weight: 400; }
.sugestao { font-size: .88rem; margin-top: .25rem; display: flex; gap: .4rem; align-items: baseline; flex-wrap: wrap; }
.sugestao form { display: inline; }
td.acoes-tabela { white-space: nowrap; text-align: right; }
td.acoes-tabela a, td.acoes-tabela form { margin-left: .7rem; font-size: .88rem; font-weight: 400; display: inline; }

/* Menus que abrem (Colunas, Mais ações, vistas): fecham ao clicar fora ou com Esc */
.menu-lista, .mais-acoes, .vista-menu, .vista-nova { position: relative; }
.menu-lista summary, .mais-acoes summary, .vista-menu summary, .vista-nova summary { list-style: none; }
.menu-lista summary::-webkit-details-marker, .mais-acoes summary::-webkit-details-marker,
.vista-menu summary::-webkit-details-marker, .vista-nova summary::-webkit-details-marker { display: none; }
.painel-menu, .mais-acoes > div, .vista-menu > div, .vista-nova > form {
  position: absolute; z-index: 25; background: var(--sup); border: 1px solid var(--linha); border-radius: 10px; box-shadow: var(--sombra-2);
  animation: abrir-menu .14s ease; }
@keyframes abrir-menu { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.painel-menu { right: 0; top: calc(100% + 6px); padding: 1rem 1.1rem; width: 440px; }
.colunas-opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .9rem; margin-bottom: .8rem; font-size: .9rem; }
.colunas-opcoes label, .painel-menu label { display: flex; gap: .45rem; align-items: center; }
.mais-acoes > div { right: 0; top: calc(100% + 6px); min-width: 230px; padding: .35rem; }
.mais-acoes > div > a { display: flex; align-items: center; gap: .5rem; padding: .5rem .7rem; color: var(--texto); text-decoration: none; border-radius: 7px; }
.mais-acoes > div > a:hover { background: var(--sup-3); }
.mais-acoes > div > a.perigo { color: var(--perigo); }
.mais-acoes-vista { border-top: 1px solid var(--linha-2); margin-top: .3rem; padding: .6rem .7rem .4rem; display: flex; flex-direction: column; gap: .45rem; }
.mais-acoes-vista label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; color: var(--texto-2); }

/* Ações em lote */
.barra-lote { position: sticky; top: 72px; z-index: 12; display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; background: var(--sup);
              border: 1px solid var(--marca); border-radius: 12px; padding: .55rem .8rem; margin-bottom: .7rem; box-shadow: var(--sombra-2);
              animation: abrir-menu .15s ease; }
.barra-lote[hidden] { display: none; }
.barra-lote > span:first-child { font-weight: 600; color: var(--no-botao); background: var(--marca); border-radius: 999px; padding: .2rem .7rem; font-size: .85rem; }
.lote-vista { display: inline-flex; gap: .35rem; align-items: center; margin-left: .3rem; padding-left: .7rem; border-left: 1px solid var(--linha); }
.lote-vista select, .lote-vista input { padding: .38rem .55rem; }

/* Vistas em separadores */
nav.vistas { display: flex; align-items: center; gap: .35rem; margin: .2rem 0 1rem; flex-wrap: wrap; padding: .3rem;
             background: var(--sup-2); border: 1px solid var(--linha); border-radius: 12px; width: fit-content; max-width: 100%; }
.vista-sep { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .95rem; border-radius: 9px; color: var(--texto-2);
             text-decoration: none; cursor: pointer; font-size: .92rem; white-space: nowrap; border: 1px solid transparent; transition: all .12s ease; }
.vista-sep a { color: inherit; text-decoration: none; }
.vista-sep:hover { color: var(--texto); background: var(--sup-3); }
.vista-sep.ativo { background: var(--sup); border-color: var(--linha); color: var(--marca-texto); font-weight: 600; box-shadow: var(--sombra-1); }
.vista-menu summary { cursor: pointer; padding: 0 .25rem; color: var(--texto-2); font-weight: 400; border-radius: 5px; }
.vista-menu summary:hover { background: var(--sup-3); }
.vista-menu > div, .vista-nova > form { left: 0; top: calc(100% + 8px); padding: .95rem 1rem; width: 330px; display: flex; flex-direction: column; gap: .6rem;
                                         font-weight: 400; color: var(--texto); }
.vista-menu label, .vista-nova label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; color: var(--texto-2); }
.vista-nova summary.vista-sep { color: var(--marca-texto); font-weight: 600; }

/* ---------------- Ficha ---------------- */
.perfil { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.3rem 1.4rem; display: flex; gap: 1.4rem;
          align-items: flex-start; margin: .6rem 0 1.2rem; box-shadow: var(--sombra-1); position: relative; }
.perfil-imagem { flex: 0 0 112px; height: 112px; border-radius: 12px; overflow: hidden; background: var(--marca-suave); display: flex;
                 align-items: center; justify-content: center; }
.perfil-imagem img { width: 100%; height: 100%; object-fit: cover; }
.perfil-imagem svg.ic { width: 52px; height: 52px; stroke-width: 1.5; }
.perfil-inicial { font-family: var(--letra-titulos); font-size: 3rem; color: var(--marca-texto); }
.perfil-dados { flex: 1; min-width: 0; }
.perfil-tipo { margin: 0; color: var(--texto-2); font-size: .85rem; display: flex; gap: .8rem; flex-wrap: wrap; }
.perfil-dados h1 { margin: .15rem 0 .25rem; font-size: 1.6rem; }
.perfil-asset { margin: 0 0 1rem; display: flex; gap: .6rem; align-items: center; font-family: var(--letra-titulos); color: var(--texto-2); }
.perfil-resumo { display: flex; flex-wrap: wrap; gap: .7rem 2.2rem; margin: 0; }
.perfil-resumo dt { font-size: .74rem; color: var(--texto-3); text-transform: uppercase; letter-spacing: .05em; }
.perfil-resumo dd { margin: .1rem 0 0; font-weight: 600; }
.perfil-acoes { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; align-items: flex-start; }
.separadores { display: flex; gap: .25rem; border-bottom: 1px solid var(--linha); margin-bottom: 1.2rem; flex-wrap: wrap; }
.separadores button { background: none; border: 0; padding: .7rem 1.05rem; font: inherit; cursor: pointer; color: var(--texto-2);
                      border-bottom: 3px solid transparent; margin-bottom: -1px; border-radius: 8px 8px 0 0; transition: all .12s ease; }
.separadores button:hover { color: var(--texto); background: var(--sup-3); }
.separadores button.ativo { color: var(--marca-texto); border-bottom-color: var(--marca); font-weight: 600; }
.separadores .conta { color: var(--texto-3); font-weight: 400; font-size: .76rem; margin-left: .3rem; background: var(--sup-2);
                      border-radius: 999px; padding: .05rem .45rem; }
.separadores button.ativo .conta { background: var(--marca-suave); color: var(--marca-texto); }
.painel { display: none; }
.painel.ativo { display: block; animation: subir .2s ease; }
dl.campos { display: grid; grid-template-columns: 190px 1fr; gap: .45rem 1rem; margin: 0; }
dl.campos dt { color: var(--texto-2); }
dl.campos dd { margin: 0; overflow-wrap: anywhere; }
dl.campos dd.vazio { color: var(--texto-3); }
.antes { color: var(--perigo); text-decoration: line-through; }
.depois { color: var(--ok-texto); }
table.lista td.mudancas div { font-size: .88rem; }
.fotos .galeria { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: .8rem; }
.fotos figure { margin: 0; width: 220px; }
.fotos img { width: 220px; height: 165px; object-fit: cover; border: 1px solid var(--linha); border-radius: 10px; display: block;
             background: var(--sup-3); transition: transform .15s ease, box-shadow .15s ease; }
.fotos a:hover img { transform: scale(1.02); box-shadow: var(--sombra-2); }
.fotos figcaption { font-size: .85rem; margin-top: .35rem; color: var(--texto-2); }
.fotos form.juntar { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; border-top: 1px solid var(--linha-2); padding-top: .9rem; }

/* ---------------- Formulários ---------------- */
.campo { display: grid; grid-template-columns: 190px 1fr; gap: .25rem 1rem; align-items: start; margin-bottom: .65rem; }
.campo label { color: var(--texto-2); padding-top: .5rem; }
.campo input:not([type=checkbox]):not([type=file]), .campo select, .campo textarea { width: 100%; }
.campo .erro { grid-column: 2; color: var(--perigo); font-size: .85rem; }
.campo .ajuda { grid-column: 2; color: var(--texto-3); font-size: .82rem; }
.campo.com-erro input, .campo.com-erro select, .campo.com-erro textarea { border-color: var(--perigo); background: var(--perigo-suave); }
.campo ul { list-style: none; margin: 0; padding: .35rem 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.campo ul label { color: var(--texto); padding: 0; display: inline-flex; gap: .35rem; align-items: center; }
.barra-gravar { position: sticky; bottom: 0; background: var(--fundo); padding: .9rem 0; display: flex; gap: .7rem; align-items: center;
                border-top: 1px solid var(--linha); margin-top: 1rem; }
.tipos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .7rem; margin: 1rem 0; }
.tipos .botao { justify-content: flex-start; padding: .9rem 1rem; gap: .6rem; }
.tipos .botao:hover { transform: translateY(-1px); box-shadow: var(--sombra-2); }

/* ---------------- Ping (janela ao estilo da linha de comandos) ---------------- */
dialog.consola { width: min(760px, 94vw); padding: 0; border: 1px solid #1B2430; border-radius: 14px; background: var(--consola-fundo);
                 color: var(--consola-texto); box-shadow: 0 24px 70px rgba(0, 0, 0, .45); }
dialog.consola::backdrop { background: rgba(8, 12, 18, .5); backdrop-filter: blur(2px); }
.consola-topo { display: flex; justify-content: space-between; align-items: center; padding: .65rem .95rem; background: var(--consola-topo);
                font-family: var(--letra-mono); font-size: .9rem; color: #fff; }
.consola-fechar { background: none; border: 0; color: #C9D2D9; font-size: 1.3rem; cursor: pointer; line-height: 1; }
.consola-texto { margin: 0; height: 320px; overflow-y: auto; padding: .85rem .95rem; font-family: var(--letra-mono); font-size: .88rem;
                 line-height: 1.5; white-space: pre-wrap; }
.consola-texto .ok { color: #9BE3B4; } .consola-texto .falha { color: #FF9C9C; } .consola-texto .info { color: #8FB3FF; }
.consola-rodape { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .65rem .95rem;
                  border-top: 1px solid #1B2430; font-size: .85rem; color: #AEB9C4; flex-wrap: wrap; }
.consola-botoes { display: flex; gap: .4rem; }
.consola-botoes .botao.secundario { background: #1B2430; color: #E6EDF3; border-color: #2C3947; box-shadow: none; }
.consola-nota { color: #7E8B98 !important; padding: 0 .95rem .75rem; margin: 0 !important; }

/* ---------------- Ecrãs pequenos e movimento reduzido ---------------- */
@media (max-width: 1000px) {
  .lateral { display: none; }
  .barra-marca span { display: none; }
  .barra-marca { min-width: 0; }
  .perfil { flex-direction: column; }
  .dash-colunas { grid-template-columns: 1fr; }
  .grelha { grid-template-columns: 1fr; }
  dl.campos, .campo { grid-template-columns: 1fr; }
  .campo .erro, .campo .ajuda { grid-column: 1; }
  .corpo main { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before { animation: none !important; transition: none !important; } }
.com-icone { display: inline-flex; align-items: center; gap: .4rem; }

/* ---------------- Painel (versão 2) ---------------- */
.saudacao { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.saudacao h1 { font-size: 1.9rem; margin: .1rem 0 .3rem; }
.saudacao-data { margin: 0; color: var(--texto-3); font-size: .85rem; letter-spacing: .02em; }
.saudacao .dash-sub b { color: var(--texto); }
.dash-grelha { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 1.2rem; }
.dash-grelha .dash-bloco { margin: 0; }
.dash-bloco h2 { border: 0; padding: 0; margin-bottom: 1rem; font-size: 1rem; }
.estados-conteudo { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
svg.anel { width: 180px; height: 180px; flex: 0 0 auto; transform: rotate(-90deg); }
svg.anel text { transform: rotate(90deg); transform-origin: 80px 80px; }
.anel-fundo { fill: none; stroke: var(--sup-3); stroke-width: 18; }
.anel-parte { fill: none; stroke-width: 18; transition: stroke-width .15s ease; cursor: pointer; }
.anel-parte:hover { stroke-width: 22; }
.anel-parte.seg-activo { stroke: var(--ok); } .anel-parte.seg-disponivel { stroke: var(--info); }
.anel-parte.seg-em-reparacao { stroke: var(--aviso); } .anel-parte.seg-avariado { stroke: var(--laranja); }
.anel-parte.seg-substituido-em-garantia { stroke: var(--violeta); }
.anel-parte.seg-desconhecido, .anel-parte.seg-sem-estado { stroke: #AEB7C1; }
:root[data-tema="escuro"] .anel-parte.seg-desconhecido, :root[data-tema="escuro"] .anel-parte.seg-sem-estado { stroke: #4B5868; }
.anel-numero { font-family: var(--letra-titulos); font-size: 26px; font-weight: 600; fill: var(--texto); }
.anel-legenda { font-size: 11px; fill: var(--texto-3); }
.estados-lista { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 220px; }
.estados-lista a { display: grid; grid-template-columns: 12px 1fr auto 3rem; align-items: center; gap: .6rem; padding: .42rem .5rem;
                   margin: 0 -.5rem; border-radius: 8px; color: var(--texto); text-decoration: none; }
.estados-lista a:hover { background: var(--sup-3); }
.estados-lista i { width: 10px; height: 10px; border-radius: 3px; }
.estados-lista b { font-family: var(--letra-titulos); font-weight: 600; font-variant-numeric: tabular-nums; }
.estados-lista small { color: var(--texto-3); text-align: right; font-variant-numeric: tabular-nums; }
ul.rever li a { gap: .8rem; padding: .6rem .6rem; margin: 0 -.6rem; }
.rever-icone { width: 32px; height: 32px; border-radius: 9px; background: var(--sup-2); color: var(--texto-2);
               display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.rever-texto { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.rever-texto small { color: var(--texto-3); font-size: .8rem; }
table.tipos-barras td.barra { width: 100%; padding: .38rem .8rem; }
table.tipos-barras td.n { padding-right: 0; text-align: right; font-variant-numeric: tabular-nums; }
.mais-tipos summary { cursor: pointer; color: var(--marca-texto); font-size: .88rem; margin-top: .6rem; list-style: none; }
.mais-tipos summary::-webkit-details-marker { display: none; }
.mais-tipos[open] summary { margin-bottom: .4rem; }
ol.atividade { list-style: none; margin: 0; padding: 0; position: relative; }
ol.atividade li { display: flex; gap: .75rem; padding: .55rem 0; position: relative; }
ol.atividade li:not(:last-child)::after { content: ""; position: absolute; left: 14px; top: 2.4rem; bottom: -.3rem; width: 2px; background: var(--linha-2); }
ol.atividade .avatar { width: 30px; height: 30px; flex: 0 0 30px; font-size: .8rem; background: var(--marca-suave); color: var(--marca-texto); }
ol.atividade p { margin: .15rem 0 .1rem; }
ol.atividade p a { color: var(--texto); font-weight: 600; text-decoration: none; }
ol.atividade p a:hover { color: var(--marca-texto); text-decoration: underline; }
ol.atividade small { color: var(--texto-3); font-size: .8rem; }
@media (max-width: 1100px) { .dash-grelha { grid-template-columns: 1fr; } }

/* =====================================================================
   Acabamento (versão 3): letra, profundidade, movimento discreto
   ===================================================================== */
:root {
  --letra-titulos: "Segoe UI Variable Display", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --letra-texto: "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --fundo: #F4F6FA;
  --linha: #E2E7EE;
  --linha-2: #EEF1F5;
  --sombra-1: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 1px rgba(16, 24, 40, .03);
  --sombra-2: 0 12px 32px -8px rgba(16, 24, 40, .16), 0 4px 10px -4px rgba(16, 24, 40, .08);
  --raio: 14px;
}
:root[data-tema="escuro"] { --fundo: #0B1017; --sup: #121923; --sup-2: #161F2B; --sup-3: #1D2837; --linha: #243040; --linha-2: #1B2431; }
h1 { letter-spacing: -.02em; font-weight: 650; }
h2 { letter-spacing: -.01em; font-weight: 600; }
body { -webkit-font-smoothing: antialiased; font-feature-settings: "tnum" 0; }

/* Barra de cima translúcida */
.barra { background: var(--sup); background: color-mix(in srgb, var(--sup) 82%, transparent); backdrop-filter: saturate(1.6) blur(14px);
         -webkit-backdrop-filter: saturate(1.6) blur(14px); }
.barra-procura input { background: var(--sup-2); border-color: transparent; }
.barra-procura input:hover { border-color: var(--linha); }

/* Menu lateral: realce da secção aberta */
.lateral { background: var(--sup); }
.lateral a { position: relative; font-weight: 500; }
.lateral a.ativo::before { content: ""; position: absolute; left: -.6rem; top: 20%; bottom: 20%; width: 3px; border-radius: 0 3px 3px 0; background: var(--marca); }

/* Cartões e blocos */
.caixa, .dash-bloco, .dash-estados, .kpi, .perfil, table.lista { border-color: var(--linha); box-shadow: var(--sombra-1); }
.dash-bloco { padding: 1.25rem 1.4rem; }
.bloco-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.bloco-topo h2 { margin: 0; }
.bloco-topo a { font-size: .85rem; color: var(--texto-2); text-decoration: none; }
.bloco-topo a:hover { color: var(--marca-texto); }

/* Painel */
.saudacao h1 { font-size: 2.1rem; }
.kpi { padding: 1.15rem 1.2rem 1rem; gap: .3rem; }
.kpi b { font-family: var(--letra-titulos); font-size: 2.2rem; font-weight: 650; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kpi-proporcao { display: block; height: 4px; border-radius: 999px; background: var(--sup-3); margin-top: .55rem; overflow: hidden; }
.kpi-proporcao span { display: block; height: 100%; border-radius: 999px; background: var(--kpi-cor, var(--marca)); animation: crescer .9s cubic-bezier(.2, .7, .2, 1) both .15s; }
@keyframes crescer { from { width: 0; } }
.anel-parte { animation: desenhar 1s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes desenhar { from { stroke-dasharray: 0 400; } }
table.tipos-barras td.barra span { height: 8px; animation: crescer .8s cubic-bezier(.2, .7, .2, 1) both; }
.anel-numero { font-family: var(--letra-titulos); font-weight: 650; letter-spacing: -.02em; }
ol.atividade li { padding: .6rem 0; }

/* Botões mais finos */
.botao { font-weight: 600; letter-spacing: .005em; border-radius: 9px; }
.botao:not(.secundario):not(.perigo) { background: var(--marca);
                                       background: linear-gradient(180deg, color-mix(in srgb, var(--marca) 92%, #fff), var(--marca));
                                       box-shadow: 0 1px 2px rgba(0, 20, 80, .25), inset 0 1px 0 rgba(255, 255, 255, .12); }
.botao:not(.secundario):not(.perigo):hover { background: var(--marca-forte); }

/* Páginas numeradas e "Tudo, a deslizar" */
nav.paginas { display: flex; gap: .3rem; align-items: center; justify-content: center; margin-top: 1.2rem; flex-wrap: wrap; }
nav.paginas a, nav.paginas .pag-atual { min-width: 2.2rem; text-align: center; padding: .4rem .7rem; border-radius: 8px; text-decoration: none; font-size: .9rem; }
nav.paginas a { color: var(--texto-2); border: 1px solid transparent; }
nav.paginas a:hover { background: var(--sup-3); color: var(--texto); }
nav.paginas .pag-atual { background: var(--marca); color: var(--no-botao); font-weight: 600; }
nav.paginas .pag-reticencias { color: var(--texto-3); padding: 0 .2rem; }
tr.mais-linha td, tr.fim-linha td { text-align: center; padding: 1rem; color: var(--texto-3); background: var(--sup-2); }
tr.mais-linha td .botao { margin-right: .8rem; }
tr.fim-linha td { font-size: .88rem; }

/* =====================================================================
   Página de entrada: uma página só, sem blocos de cor fortes
   Modo dia: fundo claro com um brilho azul suave. Modo noite: azul-ardósia escuro.
   ===================================================================== */
body.ent { margin: 0; min-height: 100vh; position: relative; overflow-x: hidden; background: #F3F6FB; }
:root[data-tema="escuro"] body.ent { background: #0A0F16; }
.ent-fundo { position: fixed; inset: 0; z-index: 0; pointer-events: none;
             background: radial-gradient(55% 45% at 50% -8%, rgba(0, 47, 167, .11), transparent 72%),
                         radial-gradient(45% 40% at 100% 100%, rgba(0, 47, 167, .06), transparent 72%),
                         radial-gradient(40% 35% at 0% 100%, rgba(0, 47, 167, .04), transparent 72%); }
:root[data-tema="escuro"] .ent-fundo { background: radial-gradient(55% 45% at 50% -8%, rgba(70, 116, 240, .16), transparent 72%),
                                                   radial-gradient(45% 40% at 100% 100%, rgba(70, 116, 240, .07), transparent 72%),
                                                   radial-gradient(40% 35% at 0% 100%, rgba(70, 116, 240, .05), transparent 72%); }
.ent-fundo::after { content: ""; position: absolute; inset: 0; opacity: .6;
                    background-image: linear-gradient(rgba(16, 24, 40, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(16, 24, 40, .045) 1px, transparent 1px);
                    background-size: 56px 56px; -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 15%, transparent 68%);
                    mask-image: radial-gradient(ellipse at 50% 40%, #000 15%, transparent 68%); }
:root[data-tema="escuro"] .ent-fundo::after { background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); }
.ent-tema { position: fixed; top: 1.1rem; right: 1.1rem; z-index: 5; background: var(--sup); }
.ent-centro { position: relative; z-index: 1; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1.2rem; }
.ent-caixa { width: 100%; max-width: 420px; background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; padding: 2.3rem 2.3rem 1.9rem;
             box-shadow: 0 30px 70px -30px rgba(16, 24, 40, .28), 0 2px 8px rgba(16, 24, 40, .05); animation: subir .45s ease both; }
:root[data-tema="escuro"] .ent-caixa { background: #111821; border-color: #212C3B; box-shadow: 0 30px 70px -28px rgba(0, 0, 0, .75), 0 1px 0 rgba(255, 255, 255, .03) inset; }
.ent-logo { display: block; height: 66px; width: auto; margin: 0 auto 1.1rem; }
.ent-nome { display: flex; align-items: center; gap: .9rem; margin: 0 0 1.6rem; color: var(--texto-3); font-size: .74rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 600; }
.ent-nome::before, .ent-nome::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.ent-caixa label { display: block; font-size: .84rem; font-weight: 600; color: var(--texto-2); margin: 1.05rem 0 .4rem; }
.ent-campo { position: relative; display: flex; align-items: center; }
.ent-campo > svg.ic { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--texto-3); pointer-events: none; transition: color .15s ease; }
.ent-campo:focus-within > svg.ic { color: var(--marca-texto); }
.ent-campo input { width: 100%; padding: .8rem .95rem .8rem 2.75rem; border-radius: 11px; font-size: 1rem; background: var(--sup-2); border: 1px solid var(--linha); color: var(--texto); }
:root[data-tema="escuro"] .ent-campo input { background: #0D131B; border-color: #263244; }
.ent-campo input:hover { border-color: var(--texto-3); }
.ent-campo input:focus { background: var(--sup); border-color: var(--marca); box-shadow: var(--foco); outline: none; }
:root[data-tema="escuro"] .ent-campo input:focus { background: #0D131B; }
.ent-campo input#palavra_passe { padding-right: 2.9rem; }
.ent-ver { position: absolute; right: .45rem; top: 50%; transform: translateY(-50%); background: none; border: 0; padding: .4rem; border-radius: 8px; color: var(--texto-3); cursor: pointer; display: inline-flex; }
.ent-ver:hover, .ent-ver.ativo { color: var(--marca-texto); background: var(--sup-3); }
.ent-caps { margin: .5rem 0 0; font-size: .82rem; color: var(--aviso); }
.ent-botao { width: 100%; justify-content: center; margin-top: 1.6rem; padding: .9rem 1rem; font-size: 1rem; border-radius: 11px; }
.ent-botao.a-entrar { opacity: .85; pointer-events: none; }
.ent-botao.a-entrar::before { content: ""; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; border-radius: 50%; animation: rodar .7s linear infinite; }
.ent-aviso { padding: .7rem .9rem; border-radius: 10px; margin: 0 0 .6rem; font-size: .92rem; background: var(--info-suave); color: var(--texto); }
.ent-aviso.error { background: var(--perigo-suave); color: var(--perigo); }
.ent-ajuda { margin: 1.2rem 0 0; font-size: .85rem; color: var(--texto-3); text-align: center; }
.ent-rodape { margin: 1.4rem 0 0; font-size: .78rem; color: var(--texto-3); letter-spacing: .04em; }
@media (max-width: 480px) { .ent-caixa { padding: 1.8rem 1.4rem 1.5rem; border-radius: 16px; } }

/* Logótipo: um ficheiro para o modo dia (azul) e outro para o modo noite (branco) */
img.logo-e { display: none !important; }
:root[data-tema="escuro"] img.logo-c { display: none !important; }
:root[data-tema="escuro"] img.logo-e { display: block !important; }
/* Botão principal: azul liso com um realce fino (sem degradês) */
.botao:not(.secundario):not(.perigo) { background: var(--marca) !important; box-shadow: 0 1px 2px rgba(0, 20, 80, .25), inset 0 1px 0 rgba(255, 255, 255, .14); }
.botao:not(.secundario):not(.perigo):hover { background: var(--marca-forte) !important; }
/* Botão do modo dia/noite: ícone sempre centrado */
.tema { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.tema .ic-sol, .tema .ic-lua { display: inline-flex; }
.tema .ic-lua { display: none; }
:root[data-tema="escuro"] .tema .ic-sol { display: none; }
:root[data-tema="escuro"] .tema .ic-lua { display: inline-flex; }

/* Ver a lista: por páginas ou deslizar até ao fim */
.modo-lista { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .2rem 0 .8rem; }
.modo-titulo { font-size: .82rem; font-weight: 600; color: var(--texto-2); }
.segmentado { display: inline-flex; padding: 3px; gap: 2px; background: var(--sup-2); border: 1px solid var(--linha); border-radius: 11px; }
.segmentado button { border: 0; background: transparent; color: var(--texto-2); font: inherit; font-size: .9rem; padding: .42rem .95rem; border-radius: 8px; cursor: pointer; transition: all .12s ease; }
.segmentado button:hover { color: var(--texto); background: var(--sup-3); }
.segmentado button.ativo { background: var(--sup); color: var(--marca-texto); font-weight: 600; box-shadow: var(--sombra-1); }
.modo-tamanho { display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; color: var(--texto-2); }
.modo-tamanho select { padding: .35rem .5rem; }
nav.paginas.paginas-topo { justify-content: flex-start; margin: 0 0 .7rem; }
.flutuantes { position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 40; display: flex; flex-direction: column; gap: .5rem; }
.flutuantes .botao { border-radius: 999px; box-shadow: var(--sombra-2); padding: .55rem 1.05rem; }
/* Cabeçalho da tabela fixo ao descer */
@supports (overflow: clip) {
  table.lista { overflow: clip; }
  table.lista thead th { position: sticky; top: 64px; z-index: 6; }
}
@media (max-width: 700px) { .flutuantes { right: .8rem; bottom: .8rem; } }

/* Documentos do equipamento */
.doc-form { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: .8rem 1rem; align-items: end; }
.doc-form label { display: flex; flex-direction: column; gap: .3rem; font-size: .82rem; font-weight: 600; color: var(--texto-2); }
.doc-form .doc-ficheiro { grid-column: 1 / span 2; }
.doc-form .botao { justify-self: start; }
.etiqueta { display: inline-block; padding: .12rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 600; background: var(--marca-suave); color: var(--marca-texto); white-space: nowrap; }
@media (max-width: 900px) { .doc-form { grid-template-columns: 1fr; } .doc-form .doc-ficheiro { grid-column: auto; } }

/* ---------------- Área de Administração ---------------- */
.adm-barra { box-shadow: inset 0 -2px 0 var(--marca); }
.adm-selo { display: inline-flex; align-items: center; gap: .4rem; margin-left: 1rem; padding: .25rem .7rem; border-radius: 999px; font-size: .76rem; font-weight: 600;
            letter-spacing: .04em; text-transform: uppercase; background: var(--marca-suave); color: var(--marca-texto); }
.adm-selo svg.ic { width: 15px; height: 15px; }
.adm-utilizador { display: inline-flex; align-items: center; gap: .5rem; font-size: .9rem; }
.adm-titulo { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.3rem; }
.adm-titulo h1 { margin: 0 0 .25rem; font-size: 1.8rem; }
.adm-titulo p { margin: 0; color: var(--texto-2); max-width: 60ch; }
.adm .kpis { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.kpi-texto { font-size: 1.6rem !important; }
.adm-onde p { margin: 0 0 .6rem; }
.adm-lista { margin: 0; padding-left: 1.2rem; color: var(--texto-2); }
.adm-lista li { margin: .35rem 0; }
.adm code { background: var(--sup-3); padding: .05rem .4rem; border-radius: 5px; font-size: .88em; font-family: var(--letra-mono); }
.adm-info dl.campos { grid-template-columns: 210px 1fr; }
.resultado { display: inline-block; padding: .1rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 600; background: var(--cinza-suave); color: var(--cinza); white-space: nowrap; }
.resultado-ok { background: var(--ok-suave); color: var(--ok-texto); }
.resultado-falhou, .resultado-bloqueado, .resultado-sem-permissao { background: var(--perigo-suave); color: var(--perigo); }
.resultado-desbloqueio { background: var(--info-suave); color: var(--info); }
.adm .dash-bloco table.lista { box-shadow: none; border: 0; }

/* Entrar com a conta Microsoft */
.ent-ms { display: flex; align-items: center; justify-content: center; gap: .75rem; width: 100%; padding: .8rem 1rem; margin-top: .4rem; border-radius: 11px;
          border: 1px solid var(--linha); background: var(--sup); color: var(--texto); font-weight: 600; font-size: .98rem; text-decoration: none;
          transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease; }
.ent-ms:hover { background: var(--sup-3); border-color: var(--texto-3); box-shadow: var(--sombra-1); }
:root[data-tema="escuro"] .ent-ms { background: #0D131B; border-color: #263244; }
.ent-ou { display: flex; align-items: center; gap: .8rem; margin: 1.1rem 0 .1rem; color: var(--texto-3); font-size: .8rem; }
.ent-ou::before, .ent-ou::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.ent-nota-ms { margin: 0 0 .4rem; padding: .6rem .8rem; border-radius: 10px; background: var(--sup-2); color: var(--texto-2); font-size: .85rem; text-align: center; }

/* Diagnóstico da entrada pelo domínio */
ul.diagnostico { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
ul.diagnostico li { display: flex; gap: .6rem; align-items: baseline; padding: .55rem .8rem; border-radius: 9px; background: var(--sup-2); font-size: .92rem; }
ul.diagnostico li span { font-weight: 700; width: 1.1rem; text-align: center; flex: 0 0 auto; }
ul.diagnostico li.diag-success { background: var(--ok-suave); } ul.diagnostico li.diag-success span { color: var(--ok); }
ul.diagnostico li.diag-error { background: var(--perigo-suave); } ul.diagnostico li.diag-error span { color: var(--perigo); }

/* Sugestões nos campos e criação rápida de valores */
.com-nova { display: flex; flex-wrap: wrap; gap: .45rem .5rem; align-items: stretch; }
.com-nova select { flex: 1 1 130px; min-width: 0; }
button.nova-valor { flex: 0 0 auto; border: 1px dashed var(--marca); background: var(--marca-suave); color: var(--marca-texto); border-radius: 9px; padding: 0 .75rem;
                    font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
button.nova-valor:hover { background: var(--marca); color: var(--no-botao); border-style: solid; }
.nova-ok { display: block; margin-top: .3rem; font-size: .82rem; color: var(--ok); }
dialog.dialogo { border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); color: var(--texto); padding: 1.4rem 1.5rem; width: min(440px, 92vw); box-shadow: var(--sombra-2); }
dialog.dialogo::backdrop { background: rgba(10, 15, 22, .55); }
dialog.dialogo h2 { margin: 0 0 .4rem; font-size: 1.2rem; }
dialog.dialogo label { display: block; font-size: .84rem; font-weight: 600; margin: .9rem 0 .3rem; color: var(--texto-2); }
dialog.dialogo input { width: 100%; }
.dlg-botoes { display: flex; gap: .6rem; margin-top: 1.2rem; }
#comprovativo_ficheiro { width: 100%; padding: .5rem; border: 1px dashed var(--linha); border-radius: 9px; background: var(--sup-2); color: var(--texto-2); }

/* Escolher o ícone de um tipo */
.seletor-icones { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: .5rem; margin-top: .4rem; }
.icone-opcao { position: relative; display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .65rem .35rem .5rem; border: 1px solid var(--linha);
               border-radius: 12px; background: var(--sup-2); cursor: pointer; text-align: center; font-weight: 500; }
.icone-opcao:hover { border-color: var(--marca); }
.icone-opcao input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.icone-opcao svg.ic { width: 30px; height: 30px; }
.icone-opcao.escolhido, .icone-opcao:has(input:checked) { border-color: var(--marca); background: var(--marca-suave); box-shadow: 0 0 0 2px var(--marca); }
.icone-opcao:has(input:focus-visible) { outline: 2px solid var(--marca); outline-offset: 2px; }
.icone-nome { font-size: .8rem; line-height: 1.15; }
.icone-uso { font-size: .68rem; color: var(--texto-3); line-height: 1.1; font-weight: 400; }
.rotulo-icones { display: block; font-weight: 600; }
/* Campos de um tipo */
table.campos-tipo input[type=text] { width: 100%; }
table.campos-tipo td.centro, table.campos-tipo th:first-child { text-align: center; width: 4.5rem; }
form.em-linha { display: inline; margin: 0 0 0 .6rem; }
button.ligacao { background: none; border: 0; padding: 0; font: inherit; color: var(--marca-texto); cursor: pointer; text-decoration: underline; }
button.ligacao.perigo { color: var(--perigo); }

/* Presença na rede: a bolinha verde (ligado), vermelha (desligado) ou vazia (sem verificação). Não é o estado do inventário. */
.rede-linha { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.rede { display: inline-block; width: .72rem; height: .72rem; border-radius: 50%; flex: 0 0 auto; }
.rede-ligado { background: var(--ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent); }
.rede-desligado { background: var(--perigo); box-shadow: 0 0 0 3px color-mix(in srgb, var(--perigo) 18%, transparent); }
.rede-sem { border: 2px solid var(--texto-3); }
.rede-texto small { color: var(--texto-3); }
.rede-cabecalho { margin-left: .7rem; text-decoration: none; color: inherit; font-size: .9rem; }
.rede-aviso { color: var(--perigo); font-weight: 600; }
.pres-kpis { display: flex; flex-wrap: wrap; gap: 1rem; margin: .4rem 0 .8rem; }
.pres-kpi { display: flex; align-items: center; gap: .5rem; padding: .7rem 1rem; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup-2); }
.pres-kpi b { font-size: 1.5rem; } .pres-kpi small { color: var(--texto-3); }

/* A bolinha do ESTADO mostra a rede nos «Ativos» de tipos com rede: verde = ligado, vermelha = desligado. O texto continua a dizer o estado. */
.estado-rede-ligado::before { background: var(--ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok) 28%, transparent); }
.estado-rede-desligado::before { background: var(--perigo); box-shadow: 0 0 0 3px color-mix(in srgb, var(--perigo) 25%, transparent); }

/* Painel: o que não conta no inventário (avariados e desativados, arquivados) em etiquetas discretas, em vez de uma ligação azul sublinhada */
.dash-fora { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-left: .85rem; vertical-align: middle; }
.dash-fora-rotulo { color: var(--texto-3); font-size: .85rem; }
.chip-fora { display: inline-flex; align-items: center; gap: .3rem; padding: .22rem .7rem .22rem .75rem; border: 1px solid var(--linha); border-radius: 999px;
             background: var(--sup-2); color: var(--texto-2); font-size: .85rem; font-style: normal; font-weight: 500; text-decoration: none; line-height: 1.3;
             transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.chip-fora b { color: var(--texto); font-weight: 650; font-variant-numeric: tabular-nums; }
.chip-fora .chip-seta { color: var(--texto-3); font-size: 1.05rem; line-height: 1; transition: transform .15s ease; }
.chip-fora:hover { border-color: var(--marca); background: var(--marca-suave); color: var(--texto); text-decoration: none; }
.chip-fora:hover .chip-seta { transform: translateX(2px); color: var(--marca-texto); }
.chip-fora:focus-visible { outline: 2px solid var(--marca); outline-offset: 2px; }

/* Página «Presença na rede»: passos para ligar o AD */
.pres-passos { margin: .6rem 0 .9rem 1.2rem; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; }
.pres-passos li { padding-left: .2rem; }
.pres-codigo { margin: .5rem 0; padding: .6rem .8rem; background: var(--sup-2); border: 1px solid var(--linha); border-radius: 10px; font-size: .85rem; overflow-x: auto; user-select: all; }
.pres-botoes { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .9rem; }
.pres-ajuda { margin-top: .9rem; color: var(--texto-2); font-size: .9rem; }
.pres-ajuda summary { cursor: pointer; color: var(--texto-2); }
.pres-ajuda ul { margin: .5rem 0 0 1.1rem; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .45rem; }

/* Quando um «Ativo» está desligado, quando esteve ligado pela última vez, logo ao lado do estado */
.estado-visto { margin-left: .5rem; color: var(--texto-3); font-size: .8rem; font-weight: 400; }
td .estado-visto { display: inline-block; vertical-align: middle; max-width: 15rem; }       /* nas tabelas quebra linha se não houver espaço, em vez de alargar a página */

.pres-motivos { margin: .4rem 0 .8rem 1.2rem; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .35rem; }

/* Ecrãs pequenos (telemóvel): nada pode alargar a página. As tabelas rolam dentro de si, os menus flutuantes cabem no ecrã e o cabeçalho da administração encolhe. */
@media (max-width: 760px) {
  table.lista { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .painel-menu, .mais-acoes > div, .vista-menu > div, .vista-nova > form { position: fixed !important; left: .8rem !important; right: .8rem !important; top: 5rem !important; width: auto !important; max-height: 70vh; overflow: auto; }
  .adm-selo, .adm-utilizador { display: none; }
  .adm-barra .barra-utilizador > a.botao.secundario { font-size: 0; gap: 0; padding-inline: .6rem; }
}

/* Telemóvel: o cabeçalho cabe sem tapar o logótipo (o nome do utilizador passa a ser só o avatar e a pesquisa encolhe) */
@media (max-width: 560px) {
  .barra { gap: .5rem; }
  .barra-marca { flex: 0 0 auto; min-width: 0; }
  .barra-marca img { height: 30px; }
  .barra-procura { flex: 1 1 0; min-width: 0; max-width: none; width: auto; margin-left: 0; }
  .barra-procura kbd { display: none; }
  .barra-utilizador { flex: 0 0 auto; gap: .35rem; }
  .barra-utilizador > a { font-size: 0; gap: 0; padding: .2rem; }
  .barra-utilizador > a .avatar { font-size: .8rem; }
}
/* Nada de texto comprido sem quebra a alargar a página; as grelhas deixam os filhos encolher */
.pres-passos li, .pres-ajuda li, .pres-motivos li, .nota { overflow-wrap: anywhere; }
.pres-codigo { max-width: 100%; }
.dash-grelha > *, .dash-colunas > * { min-width: 0; }

/* Bloco «Atividade na rede» da ficha: o título e o botão numa linha, com a separação de lado a lado como nos outros cartões */
.pres-cabeca { display: flex; align-items: center; justify-content: space-between; gap: .9rem; flex-wrap: wrap; border-bottom: 1px solid var(--linha-2); margin-bottom: .8rem; }
.pres-cabeca h2 { border-bottom: 0; padding-bottom: 0; margin: 0 0 .6rem; }
.pres-cabeca form { margin: 0 0 .6rem; }
.pres-sub { font-size: .95rem; font-weight: 600; color: var(--texto-2); margin: 1.1rem 0 .4rem; }
.nota.pres-intro { margin: .4rem 0 1.2rem; }
.pres-acao { margin-top: .9rem; }
table.lista.pres-faixas { max-width: 460px; }
table.lista.pres-faixas td.n, table.lista.pres-faixas th.n { text-align: right; width: 7rem; }

/* Painel, «Por tipo»: o separador passa por baixo da linha inteira (nome, barra e número), e não só da barra */
table.tipos-barras th, table.tipos-barras td { border: 0; }
table.tipos-barras tr { border-bottom: 1px solid var(--linha-2); }
table.tipos-barras tr:last-child { border-bottom: 0; }

/* Tema escuro: o botão principal escurece (e não aclara) ao passar o rato, para o texto branco manter o contraste */
:root[data-tema="escuro"] .botao:not(.secundario):not(.perigo):hover { background: #335FE0 !important; border-color: #335FE0 !important; }

/* Presença na rede: o que ainda está por resolver, e a seleção em lote */
.pres-kpi-resolver { border-color: color-mix(in srgb, var(--laranja) 55%, var(--linha)); }
.pres-lote { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .2rem 0 .8rem; }
.pres-lote select { max-width: 100%; } .pres-lote input[type=text] { flex: 1 1 14rem; min-width: 0; }
.pres-acao-em-linha { display: inline; margin: 0; }
.pres-cabeca .acoes { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0 0 .6rem; }
.pres-cabeca .acoes form { margin: 0; }
table.lista th.sel, table.lista td.sel { width: 2.2rem; text-align: center; }

/* Presença na rede: as sugestões de nome, e o campo do ficheiro */
.pres-sug { display: flex; align-items: baseline; gap: .4rem; margin: .1rem 0; flex-wrap: wrap; }
.pres-lote input[type=file] { flex: 1 1 16rem; min-width: 0; max-width: 100%; }
table.lista.pres-tipos td.n, table.lista.pres-tipos th.n { text-align: right; width: 9rem; }
table.lista.pres-tipos select { max-width: 100%; }

/* Presença na rede (resumo): as linhas do «Funcionamento» */
.pres-estado { list-style: none; margin: .2rem 0 .6rem; padding: 0; }
.pres-estado li { display: flex; gap: .65rem; align-items: flex-start; margin: .4rem 0; }
.pres-estado .rede { margin-top: .4rem; flex: 0 0 auto; }
.pres-notas { margin: .7rem 0 1.1rem; }
.pres-notas p { margin: .3rem 0; }

/* Entrada: o fundo é uma rede de equipamentos (static/entrada.js). O canvas fica por baixo; só o cartão e o rodapé recebem o rato. */
.ent-rede { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; display: block; }
body.ent .ent-fundo::after { display: none; }
.ent-centro { pointer-events: none; }
.ent-caixa, .ent-rodape { pointer-events: auto; }
.ent-caixa.ent-abana { animation: ent-abana .45s; }
@keyframes ent-abana { 20% { transform: translateX(-9px); } 50% { transform: translateX(9px); } 80% { transform: translateX(-4px); } }
@media (prefers-reduced-motion: reduce) { .ent-caixa.ent-abana { animation: none; } }
body.ent.ent-simples .ent-fundo::after { display: block; }      /* sem o fundo animado, mantém-se a grelha de sempre */
body.ent.ent-simples .ent-centro { pointer-events: auto; }
