/**
 * Portal Santa Clara
 * Copyright © 2026 Adriano d'Avila Borges e
 * Livsmart Participações Ltda (CNPJ 55.531.393/0001-51).
 * Todos os direitos reservados.
 *
 * Código proprietário e confidencial.
 * Uso, reprodução, modificação ou distribuição somente com autorização expressa.
 */

/* Portal Santa Clara — tokens e componentes conforme o handoff de design.
   Os valores aqui são os do protótipo (docs/design_handoff_portal_santa_clara). */

:root {
  /* Cores */
  --azul: #153a5b;
  --azul-hover: #1d4a73;
  --azul-claro: #eef4fa;
  --azul-claro-bd: #cddcec;
  --verde: #1d5c33;
  --verde-claro: #e8f0e9;
  --vermelho: #a8342a;
  --vermelho-hover: #932d24;
  --vermelho-claro: #f8eaea;
  --vermelho-claro-bd: #e5c5c2;
  --ambar: #7a5b17;
  --ambar-barra: #b98a1f;
  --ambar-claro: #f7efdc;
  --ambar-fundo: #fdf6ec;
  --ambar-claro-bd: #f0dfc0;

  /* Texto */
  --tinta: #14181f;
  --tinta-2: #333a45;
  --tinta-3: #4a5361;
  --tinta-4: #7a8290;
  --tinta-5: #8a919c;
  --tinta-6: #9aa1ac;

  /* Superfícies */
  --bg: #f5f6f8;
  --zebra: #f8f9fa;
  --borda: #e6e8ec;
  --divisoria: #f0f2f4;
  --campo-bd: #d6dae0;
  --tracejada: #c3c9d1;
  --cinza-chip: #f0f2f4;
  --trilha: #eef0f3;

  --sombra-card: 0 1px 3px rgba(0, 0, 0, .06);
  --sombra-drawer: -8px 0 24px rgba(20, 24, 31, .12);
  --sombra-modal: 0 20px 48px rgba(20, 24, 31, .25);
  --sombra-toast: 0 8px 24px rgba(20, 24, 31, .3);

  --fonte: Archivo, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

.onboarding-lembrete {
  margin: 0 0 18px; padding: 15px 17px; display: grid;
  grid-template-columns: 44px minmax(0,1fr) auto; gap: 13px; align-items: center;
  border: 1px solid #bcdccc; border-radius: 13px;
  background: linear-gradient(120deg,#edf8f2,#eef5fb); color: var(--tinta);
  box-shadow: var(--sombra-card);
}
.onboarding-lembrete>span:first-child { width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--verde);color:#fff; }
.onboarding-lembrete b,.onboarding-lembrete small { display:block; }.onboarding-lembrete b { font:700 14px var(--fonte); }.onboarding-lembrete small { margin-top:3px;color:var(--tinta-4);font:500 12px/1.35 var(--fonte); }
.onboarding-lembrete i { color:var(--verde);font:700 12px var(--fonte);font-style:normal;white-space:nowrap; }
@media(max-width:600px){.onboarding-lembrete{grid-template-columns:40px 1fr}.onboarding-lembrete>i{grid-column:2}}

/* ================================================= alertas críticos
   Painel de crise: alvos grandes, poucos passos e vermelho reservado ao que
   está realmente ativo. A home do morador repete a informação em alto
   contraste porque push é efêmero e pode estar desativado no aparelho. */

.alerta-kpis {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px;
}
.alerta-kpis article {
  min-height: 118px; padding: 20px; background: #fff; border: 1px solid var(--borda); border-radius: 14px;
  display: flex; flex-direction: column; justify-content: center;
}
.alerta-kpis span, .alerta-secao__cab > div > span {
  font: 700 11px var(--fonte); letter-spacing: .08em; color: var(--tinta-6);
}
.alerta-kpis strong { margin: 4px 0 2px; font: 750 34px var(--fonte); color: var(--tinta); }
.alerta-kpis small { font: 500 13px/1.4 var(--fonte); color: var(--tinta-5); }

.alerta-secao {
  margin-top: 22px; padding: 24px; background: #fff; border: 1px solid var(--borda); border-radius: 14px;
}
.alerta-secao--ativos { border-color: var(--vermelho-claro-bd); background: #fffafa; }
.alerta-secao__cab {
  display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 20px;
}
.alerta-secao__cab h2 { margin: 4px 0 0; font: 750 22px/1.2 var(--fonte); color: var(--tinta); }
.alerta-secao__cab p { max-width: 440px; margin: 0; font: 500 13.5px/1.5 var(--fonte); color: var(--tinta-5); text-align: right; }

.alerta-normal {
  min-height: 84px; padding: 18px 22px; border: 1px solid #bad7c2; border-radius: 14px;
  background: var(--verde-claro); color: var(--verde); display: flex; align-items: center; gap: 14px;
}
.alerta-normal > span { width: 44px; height: 44px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.alerta-normal div { display: flex; flex-direction: column; gap: 3px; }
.alerta-normal strong { font: 700 16px var(--fonte); }
.alerta-normal small { font: 500 13px var(--fonte); opacity: .8; }

.alertas-ativos { display: flex; flex-direction: column; gap: 12px; }
.alerta-ativo {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px;
  padding: 18px; border: 1px solid var(--vermelho-claro-bd); border-left: 5px solid var(--vermelho);
  border-radius: 12px; background: #fff;
}
.alerta-ativo__icone {
  width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center;
  background: var(--vermelho-claro); color: var(--vermelho);
}
.alerta-ativo__corpo { min-width: 0; }
.alerta-ativo__rotulo { font: 750 10.5px var(--fonte); letter-spacing: .07em; color: var(--vermelho); }
.alerta-ativo h3 { margin: 3px 0 5px; font: 750 17px/1.3 var(--fonte); color: var(--tinta); }
.alerta-ativo p { margin: 0 0 5px; font: 500 13.5px/1.5 var(--fonte); color: var(--tinta-2); }
.alerta-ativo small { font: 500 11.5px var(--fonte); color: var(--tinta-5); }
.alerta-ativo__acao { white-space: nowrap; border-color: var(--vermelho-claro-bd); color: var(--vermelho); }

.alertas-atalhos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.alerta-atalho {
  min-height: 190px; padding: 18px; border: 1px solid var(--borda); border-radius: 13px;
  display: flex; flex-direction: column; align-items: flex-start; background: #fff;
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.alerta-atalho:hover { transform: translateY(-2px); border-color: var(--azul-claro-bd); box-shadow: var(--sombra-card); }
.alerta-atalho__icone { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; background: var(--azul-claro); color: var(--azul); }
.alerta-atalho--vermelho .alerta-atalho__icone { background: var(--vermelho-claro); color: var(--vermelho); }
.alerta-atalho--ambar .alerta-atalho__icone { background: var(--ambar-fundo); color: var(--ambar); }
.alerta-atalho__grupo { margin-top: 14px; font: 700 10.5px var(--fonte); letter-spacing: .06em; color: var(--tinta-6); text-transform: uppercase; }
.alerta-atalho h3 { margin: 4px 0 6px; font: 700 16px/1.25 var(--fonte); color: var(--tinta); }
.alerta-atalho__estado { margin-bottom: 14px; font: 500 12px/1.4 var(--fonte); color: var(--tinta-5); }
.alerta-atalho > a { margin-top: auto; font: 700 13px var(--fonte); color: var(--azul); }
.alerta-atalho.is-ativo { border-color: var(--vermelho-claro-bd); background: var(--vermelho-claro); }
.alerta-atalho.is-ativo > a, .alerta-atalho.is-ativo .alerta-atalho__estado { color: var(--vermelho); }

.alerta-historico { border: 1px solid var(--borda); border-radius: 11px; overflow: hidden; }
.alerta-historico article { display: grid; grid-template-columns: auto 1fr minmax(190px, auto); align-items: center; gap: 14px; padding: 15px 18px; border-bottom: 1px solid var(--divisoria); }
.alerta-historico article:last-child { border-bottom: 0; }
.alerta-historico__ok { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--verde-claro); color: var(--verde); font-weight: 800; }
.alerta-historico article > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.alerta-historico article > div:last-child { text-align: right; }
.alerta-historico strong { font: 650 13.5px var(--fonte); color: var(--tinta); }
.alerta-historico span { font: 600 12px var(--fonte); color: var(--tinta-3); }
.alerta-historico small { font: 500 11.5px var(--fonte); color: var(--tinta-5); }
.alerta-historico__vazio { padding: 22px; border: 1px dashed var(--tracejada); border-radius: 10px; }

.alerta-revisao { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 11px; background: var(--vermelho-claro); color: var(--vermelho); }
.alerta-revisao > span { width: 40px; height: 40px; border-radius: 10px; background: #fff; display: grid; place-items: center; flex: none; }
.alerta-revisao > div { display: flex; flex-direction: column; gap: 2px; }
.alerta-revisao small { font: 700 10px var(--fonte); letter-spacing: .06em; }
.alerta-revisao strong { font: 700 14px/1.3 var(--fonte); }
.alerta-revisao--normalizar { background: var(--verde-claro); color: var(--verde); }
.alerta-revisao__aviso { font-size: 12.5px; }
.alerta-revisao__aviso strong { display: block; margin-bottom: 2px; }

.aalertas { margin: 22px 0; overflow: hidden; border: 1px solid #d46d64; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(168,52,42,.10); }
.aalertas__cab { padding: 17px 20px; background: var(--vermelho); color: #fff; display: flex; align-items: center; gap: 12px; }
.aalertas__cab > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: rgba(255,255,255,.13); }
.aalertas__cab > div { display: flex; flex-direction: column; gap: 2px; }
.aalertas__cab small { font: 750 10.5px var(--fonte); letter-spacing: .08em; opacity: .78; }
.aalertas__cab strong { font: 750 17px var(--fonte); }
.aalerta { padding: 17px 20px; border-bottom: 1px solid var(--vermelho-claro-bd); }
.aalerta:last-child { border-bottom: 0; }
.aalerta strong { display: block; font: 750 16px/1.35 var(--fonte); color: var(--vermelho); }
.aalerta p { margin: 5px 0 8px; font: 500 14px/1.55 var(--fonte); color: var(--tinta-2); }
.aalerta small { font: 600 11.5px var(--fonte); color: var(--tinta-5); }

@media (max-width: 1180px) {
  .alertas-atalhos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .alerta-kpis { grid-template-columns: 1fr; gap: 10px; }
  .alerta-kpis article { min-height: 94px; }
  .alertas-atalhos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .alerta-secao__cab { align-items: flex-start; flex-direction: column; gap: 8px; }
  .alerta-secao__cab p { text-align: left; }
  .alerta-ativo { grid-template-columns: auto 1fr; }
  .alerta-ativo__acao { grid-column: 1 / -1; width: 100%; text-align: center; }
  .alerta-historico article { grid-template-columns: auto 1fr; }
  .alerta-historico article > div:last-child { grid-column: 2; text-align: left; }
}
@media (max-width: 520px) {
  .alerta-secao { padding: 17px; }
  .alerta-secao__cab h2 { font-size: 20px; }
  .alertas-atalhos { grid-template-columns: 1fr; }
  .alerta-atalho { min-height: 164px; }
  .alerta-ativo { grid-template-columns: 1fr; }
  .alerta-ativo__icone { width: 44px; height: 44px; }
  .aalertas { margin: 18px 0; border-radius: 14px; }
  .aalertas__cab, .aalerta { padding: 16px; }
  .aalerta strong { font-size: 16px; }
  .aalerta p { font-size: 14.5px; }
}

*, *::before, *::after { box-sizing: border-box; }

/* Reserva sempre o espaço da barra vertical. Páginas curtas e longas deixam
   de alterar a largura útil ao navegar entre elas. */
html { scrollbar-gutter: stable; }

body {
  margin: 0;
  background: var(--bg);
  font-family: var(--fonte);
  color: var(--tinta);
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

a { color: var(--azul); text-decoration: none; }
a:hover { color: var(--verde); }

.pular {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--azul); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
  font: 600 12.5px var(--fonte);
}
.pular:focus { left: 0; color: #fff; }

.mono { font-family: var(--mono); }

/* ---------------------------------------------------------------- shell */

.app { display: flex; min-height: 100vh; }

.lateral {
  width: 236px; flex-shrink: 0;
  background: #fff; border-right: 1px solid var(--borda);
  padding: 18px 12px;
  display: flex; flex-direction: column; gap: 2px;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}

.lateral__marca {
  display: flex; align-items: center; gap: 9px;
  padding: 4px 8px 14px; color: inherit;
}
.lateral__marca:hover { color: inherit; }
.marca__sc {
  width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0;
  display: block; object-fit: cover;
}
.marca__nome { font: 700 13px var(--fonte); color: var(--tinta); }
.marca__sub { font: 400 10px var(--fonte); color: var(--tinta-5); }

.nav__grupo { display: flex; flex-direction: column; gap: 2px; }
.nav__titulo {
  font: 600 9.5px var(--fonte); letter-spacing: .1em; color: var(--tinta-6);
  padding: 10px 8px 4px; margin: 0;
}
.nav__item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 7px 9px; border-radius: 7px;
  font: 500 12.5px var(--fonte); color: var(--tinta-3);
}
.nav__item:hover { background: var(--divisoria); color: var(--tinta-3); }
.nav__item.is-ativo { background: var(--verde-claro); color: var(--verde); font-weight: 600; }
.nav__item.is-ativo:hover { background: var(--verde-claro); }
.nav__badge {
  font: 600 10px var(--mono); background: var(--vermelho); color: #fff;
  border-radius: 8px; padding: 1px 6px;
}

.lateral__usuario {
  margin-top: auto; padding: 10px 8px; border-top: 1px solid var(--borda);
  display: flex; align-items: center; gap: 8px;
}
.lateral__avatar {
  width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
  background: var(--azul); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font: 600 11px var(--fonte);
}
/* Nome e e-mail em linhas próprias e cortados com reticências: o rodapé da
   lateral tem 200px e o e-mail de login costuma ser mais largo que isso —
   quebrar no meio da palavra ("sindico@santacla / ra.local") ficava pior que
   cortar. O endereço inteiro fica no `title`. */
.lateral__nome, .lateral__email {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.lateral__nome { font: 600 11.5px var(--fonte); color: var(--tinta); }
.lateral__email { font: 400 10px var(--fonte); color: var(--tinta-5); }
.lateral__sair { margin: 0; }
.lateral__sair button {
  background: none; border: 0; padding: 0; cursor: pointer;
  font: 600 10px var(--fonte); color: var(--tinta-5);
}
.lateral__sair button:hover { color: var(--vermelho); }

.conteudo { flex: 1; padding: 22px 28px; min-width: 0; }

/* --------------------------------------------------------- cabeçalho de tela */

.tela-topo {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-bottom: 16px;
}
.tela-titulo { font: 700 20px var(--fonte); color: var(--tinta); margin: 0; }
.tela-sub { font: 400 12px var(--fonte); color: var(--tinta-4); margin: 0; }
.tela-acoes { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }

/* -------------------------------------------------------------- botões */

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid transparent; border-radius: 8px; padding: 9px 16px;
  font: 600 12.5px var(--fonte); cursor: pointer; text-align: center;
  background: var(--azul); color: #fff;
}
.btn:hover { background: var(--azul-hover); color: #fff; }
.btn--verde { background: var(--verde); }
.btn--verde:hover { background: #17492a; color: #fff; }
.btn--vermelho { background: var(--vermelho); }
.btn--vermelho:hover { background: var(--vermelho-hover); color: #fff; }
.btn--claro { background: #fff; border-color: var(--borda); color: var(--azul); }
.btn--claro:hover { background: #fff; border-color: var(--azul); color: var(--azul); }
.btn--contorno {
  background: #fff; border-color: var(--campo-bd); color: var(--tinta-3);
  font-size: 12.5px; padding: 10px 18px;
}
.btn--contorno:hover { border-color: var(--azul); color: var(--azul); background: #fff; }
.btn[disabled], .btn.is-off { background: var(--tracejada); cursor: not-allowed; }
.btn[disabled]:hover, .btn.is-off:hover { background: var(--tracejada); }
.btn--pequeno { padding: 8px 13px; font-size: 11.5px; }

/* ligações de ação dentro de tabelas e cards */
.acao { font: 600 11.5px var(--fonte); color: var(--azul); cursor: pointer; background: none; border: 0; padding: 0; }
.acao:hover { color: var(--azul-hover); text-decoration: underline; }
.acao--perigo { color: var(--vermelho); }
.acao--perigo:hover { color: var(--vermelho-hover); }

/* --------------------------------------------------------------- cards */

.card {
  background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 16px;
}
.card--limpo { padding: 0; overflow: hidden; }
.card__titulo { font: 700 13.5px var(--fonte); color: var(--tinta); margin: 0 0 12px; }
.card__titulo--barra {
  padding: 12px 16px; margin: 0; font-size: 13px;
  border-bottom: 1px solid var(--borda);
}

.grade { display: grid; gap: 14px; }
.grade--2 { grid-template-columns: 1fr 1fr; }
.grade--kpi { grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 16px; }
.grade--painel { grid-template-columns: 1.4fr 1fr; }
.grade--pat { grid-template-columns: 1fr 280px; }
.coluna { display: flex; flex-direction: column; gap: 14px; }

.kpi { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 14px; }
.kpi__rotulo { font: 600 10px var(--fonte); letter-spacing: .06em; color: var(--tinta-6); }
.kpi__valor { font: 700 26px var(--fonte); color: var(--tinta); margin-top: 2px; }
.kpi__nota { font: 600 12px var(--fonte); color: var(--vermelho); }

/* --------------------------------------------------------------- listas */

.pend { display: flex; flex-direction: column; gap: 10px; }
.pend__item {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 8px;
  background: var(--ambar-fundo); border: 1px solid var(--ambar-claro-bd);
}
.pend__item--vermelho { background: var(--vermelho-claro); border-color: var(--vermelho-claro-bd); }
.pend__item--azul { background: var(--azul-claro); border-color: var(--azul-claro-bd); }
.pend__t { font: 600 12.5px var(--fonte); color: var(--tinta); }
.pend__s { font: 400 11px var(--fonte); color: var(--tinta-5); }

.linhas { font: 400 11.5px/1.8 var(--fonte); color: var(--tinta-2); }
.hora { font: 600 10px var(--mono); color: var(--verde); }
.hora--erro { color: var(--vermelho); }

.faixa-azul { background: var(--azul); border-radius: 10px; padding: 16px; color: #fff; }
.faixa-azul__eyebrow {
  font: 600 10px var(--fonte); letter-spacing: .08em; opacity: .7; margin-bottom: 6px;
}
.faixa-azul__texto { font: 600 13px/1.5 var(--fonte); }

/* -------------------------------------------------------------- tabelas */

.tab { background: #fff; border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; }
.tab__scroll { overflow-x: auto; }
.tab__cab, .tab__linha { display: grid; gap: 10px; align-items: center; }
.tab__cab {
  padding: 10px 16px; background: var(--zebra); border-bottom: 1px solid var(--borda);
  font: 600 10.5px var(--fonte); letter-spacing: .05em; color: var(--tinta-5);
}
.tab__linha {
  padding: 11px 16px; border-bottom: 1px solid var(--divisoria);
  font: 400 12.5px var(--fonte); color: var(--tinta-2);
}
.tab__linha:last-of-type { border-bottom: 0; }
a.tab__linha { color: var(--tinta-2); }
a.tab__linha:hover, .tab__linha--click:hover { background: var(--zebra); color: var(--tinta-2); }
.tab__rodape {
  padding: 10px 16px; font: 400 11.5px var(--fonte); color: var(--tinta-5);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
}
.tab__vazio { padding: 22px 16px; font: 400 12.5px var(--fonte); color: var(--tinta-5); text-align: center; }

.forte { font: 600 12.5px var(--fonte); color: var(--tinta); }
.unid { font: 700 12.5px var(--fonte); color: var(--azul); }
.cod { font: 500 11.5px var(--mono); color: var(--tinta-3); }
.cod--azul { font: 600 12px var(--mono); color: var(--azul); }
.cod--cinza { font: 500 11.5px var(--mono); color: var(--tinta-5); }
.placa { font: 600 13px var(--mono); color: var(--tinta); }

.pag { display: flex; gap: 12px; align-items: center; font: 600 11.5px var(--fonte); color: var(--azul); }
.pag__num { font: 500 11px var(--fonte); color: var(--tinta-5); }
.pag a { padding: 4px 6px; }
.pag span.is-off { padding: 4px 6px; color: var(--tracejada); }
.pag-tamanho { display: inline-flex; align-items: center; justify-content: center; gap: 5px; flex-wrap: wrap; }
.pag-tamanho button, .pag-tamanho strong {
  min-width: 30px; min-height: 30px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--borda); border-radius: 7px; color: var(--azul); font-weight: 700;
}
.pag-tamanho button { padding: 3px 6px; background: #fff; font: inherit; cursor: pointer; }
.pag-tamanho button:hover { border-color: var(--azul); background: var(--azul-claro); }
.pag-tamanho strong { border-color: var(--azul); color: #fff; background: var(--azul); }

/* Área de planilhas e matriz patrimonial. */
.pm { display: grid; gap: 22px; min-width: 0; }
.pm [hidden] { display: none !important; }
.pm-hero { padding: 28px; border-radius: 18px; background: #153a5b; color: #fff; }
.pm-kicker { font-size: 12px; letter-spacing: .12em; }
.pm-hero h2 { font-size: clamp(24px,3vw,34px); line-height: 1.2; margin: 12px 0; }
.pm-hero p { font-size: 16px; line-height: 1.6; }
.pm-modos { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 12px; margin-top: 22px; }
.pm-modos a { display: grid; gap: 7px; border: 1px solid #ffffff45; border-radius: 12px; padding: 18px; color: #fff; background: #ffffff0b; }
.pm-modos b { font-size: 18px; }.pm-modos span { font-size: 14px; }
.pm .card { padding: 22px; min-width: 0; }.pm p { line-height: 1.6; }.pm-status { white-space: pre-line; overflow-wrap: anywhere; }
.pm-filtros,.pm-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:16px 0; }
.pm-filtros .campo { flex:1 1 190px; min-width:0; }
.pm-filtros>label { display:grid; gap:8px; }
.pm-filtros>label input,.pm-filtros>label select { width:100%; min-width:0; }
.pm select,.pm input:not([type=checkbox]),.pm textarea { border:1px solid var(--borda); border-radius:8px; background:white; font:inherit; min-height:44px; padding:10px; max-width:100%; }
.pm input[type=checkbox] { width:18px; height:18px; vertical-align:middle; accent-color:var(--azul); }
.pm .btn { min-height:44px; white-space:normal; }.pm summary { cursor:pointer; padding:12px 0; font-weight:700; }
.pm-scroll { overflow:auto; max-width:100%; max-height:70vh; border:1px solid var(--borda); border-radius:12px; overscroll-behavior:contain; }
.pm-matriz,.pm-previa { border-collapse:separate; border-spacing:0; width:100%; font-size:14px; }
.pm-matriz th,.pm-matriz td,.pm-previa th,.pm-previa td { padding:10px; text-align:left; border-bottom:1px solid var(--borda); border-right:1px solid var(--borda); vertical-align:top; background:white; }
.pm-matriz thead th,.pm-previa thead th { position:sticky; top:0; z-index:2; background:#eaf0f5; min-width:210px; }
.pm-matriz tr>th:first-child { position:sticky; left:0; z-index:1; min-width:190px; max-width:240px; background:#f1f5f8; }
.pm-matriz thead th:first-child { z-index:3; }.pm-matriz small { display:block; margin-top:5px; font-size:12px; font-weight:400; overflow-wrap:anywhere; }
.pm-matriz input,.pm-matriz select,.pm-matriz textarea { width:100%; min-width:190px; font-size:16px; }.pm-matriz textarea { min-height:64px; }
.pm-matriz td.pm-salvo { box-shadow:inset 0 -3px #268251; }.pm-matriz td.pm-pendente { background:#fff8e8; }.pm-matriz td.pm-erro,.pm-previa .pm-erro td { background:#fff0ed; color:#972b24; }
.pm-celula-status { white-space:pre-line; max-width:240px; }.pm-inaplicavel { color:var(--tinta-5); font-size:13px; }
.pm-colunas-grade { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; padding:16px 0; }.pm-colunas-grade label { display:flex; align-items:center; gap:8px; }
.pm-lote { display:grid; gap:14px; }.pm-lote-campo { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,1fr) minmax(160px,2fr); gap:14px; padding:14px; background:#f4f7fa; border-radius:10px; }
.pm-lote-campo label { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }.pm-lote-campo small { flex-basis:100%; color:var(--tinta-5); }.pm-lote input,.pm-lote select,.pm-lote textarea { width:100%; }.pm-lote input[type=checkbox] { width:18px; }
.pm-historico article { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding:14px 0; border-bottom:1px solid var(--borda); }.pm-historico small { display:block; margin-top:6px; color:var(--tinta-5); }
.pm-previa td { max-width:400px; overflow-wrap:anywhere; white-space:pre-wrap; }.pm-trabalho { scroll-margin-top:20px; }
@media(max-width:650px){.pm .card,.pm-hero{padding:16px}.pm-lote-campo{grid-template-columns:1fr}.pm-modos{grid-template-columns:1fr}.pm .tab__rodape{padding:12px 4px}.pm-toolbar{align-items:stretch}.pm-toolbar>.btn{flex:1 1 140px}.pm-matriz tr>th:first-child{min-width:130px;max-width:130px}}

/* ---------------------------------------------------------------- chips */

.chip {
  display: inline-block; font: 600 10.5px var(--fonte); border-radius: 5px;
  padding: 3px 8px; text-align: center; white-space: nowrap;
}
.chip--verde { color: var(--verde); background: var(--verde-claro); }
.chip--ambar { color: var(--ambar); background: var(--ambar-claro); }
.chip--vermelho { color: var(--vermelho); background: var(--vermelho-claro); }
.chip--azul { color: var(--azul); background: var(--azul-claro); }
.chip--cinza { color: var(--tinta-3); background: var(--cinza-chip); }

.pill {
  display: inline-block; font: 600 11.5px var(--fonte); border-radius: 16px;
  padding: 6px 14px; background: #fff; color: var(--tinta-3);
  border: 1px solid var(--borda); cursor: pointer;
}
.pill:hover { border-color: var(--azul); color: var(--tinta-3); }
.pill.is-ativo { background: var(--azul); color: #fff; border-color: var(--azul); }
.pill.is-ativo:hover { color: #fff; }
.pills { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.pills--perfis { gap: 6px; margin-bottom: 14px; }
.pills--perfis .pill { padding: 6px 13px; }

.tag {
  display: inline-block; font: 500 11.5px var(--fonte); background: var(--cinza-chip);
  border-radius: 6px; padding: 5px 10px; color: var(--tinta-2);
}
.tag--add {
  font-weight: 600; background: none; border: 1px dashed var(--tracejada);
  color: var(--tinta-5); cursor: pointer;
}
.tag--add:hover { border-color: var(--azul); color: var(--azul); }
.tag__x { color: var(--tinta-5); margin-left: 2px; }
.tag__x:hover { color: var(--vermelho); }
.tags { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.anexo { font: 500 10.5px var(--mono); background: var(--cinza-chip); border-radius: 5px; padding: 4px 9px; color: var(--tinta-3); }

/* ------------------------------------------------------------ formulários */

.campo { display: block; margin: 0; }
.campo--inativo { opacity: .55; }
.campo[hidden], [data-reparo-urgente][hidden] { display: none; }
.captar-sn-atalho { display: flex; justify-content: center; gap: 12px; min-height: 60px; margin: 0 0 20px; font-size: 20px; font-weight: 800; letter-spacing: .04em; }
.captar-sn { display: grid; gap: 16px; max-width: 720px; margin: auto; }
.captar-sn [hidden] { display: none !important; }
.captar-sn__passos { display: flex; gap: 8px; flex-wrap: wrap; }
.captar-sn__passos span { padding: 10px 12px; border-radius: 10px; background: #e8edf2; font-size: 14px; }
.captar-sn__passos .is-atual { background: var(--azul); color: white; font-weight: 700; }
.captar-sn__camera { position: relative; background: #13202a; border-radius: 18px; overflow: hidden; aspect-ratio: 4/3; }
.captar-sn__camera video { width: 100%; height: 100%; object-fit: cover; }
.captar-sn__camera > span { position: absolute; inset: 20% 10%; border: 2px solid #fff; border-radius: 12px; pointer-events: none; }
.captar-sn__ficha, .captar-sn__manual { padding: 20px; overflow-wrap: anywhere; }
.captar-sn__ficha h2 { font-size: 27px; margin: 8px 0; }
.captar-sn__ficha p, .captar-sn__manual p { font-size: 16px; line-height: 1.5; }
.captar-sn__manual input { min-height: 48px; width: 100%; font-size: 18px; padding: 10px; border: 1px solid var(--borda); border-radius: 8px; }
.captar-sn__acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.captar-sn .btn, .captar-sn summary { min-height: 48px; font-size: 16px; white-space: normal; }
.captar-sn summary { cursor: pointer; padding-bottom: 12px; }
.captar-duplo__campos { display:grid; gap:16px; margin:18px 0; }
.captar-duplo__check { display:flex; align-items:flex-start; gap:12px; margin:18px 0; font-size:16px; line-height:1.5; }
.captar-duplo__check input { width:22px; min-height:22px; height:22px; flex:0 0 22px; margin-top:2px; }
.captar-duplo__candidatos { display:grid; gap:12px; }
.captar-duplo__candidato { padding:14px; display:flex; flex-wrap:wrap; gap:10px; border:1px solid var(--borda); border-radius:12px; }
.captar-duplo__candidato strong,.captar-duplo__candidato small { flex-basis:100%; overflow-wrap:anywhere; }
.captar-duplo__candidato small { color:var(--tinta-6); font-size:14px; }
.captar-duplo .captar-sn__camera > span { inset:8% 5%; }
@media(min-width:640px) { .captar-duplo__campos { grid-template-columns:1fr 1fr; } }
.campo__rotulo { display: block; font: 600 11px var(--fonte); color: var(--tinta-3); margin-bottom: 4px; }
.campo__dica { font: 400 10.5px var(--fonte); color: var(--tinta-5); margin-top: 4px; }
.entrada, .selecao, .area {
  width: 100%; border: 1px solid var(--campo-bd); border-radius: 7px;
  padding: 9px 11px; font: 400 12.5px var(--fonte); color: var(--tinta);
  background: #fff; outline: none; font-family: var(--fonte);
}
.entrada::placeholder, .area::placeholder { color: var(--tinta-6); }
.entrada:focus, .selecao:focus, .area:focus { border-color: var(--azul); }
.area { min-height: 64px; resize: vertical; line-height: 1.5; }
.entrada--mono { font: 500 12px var(--mono); }
.dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.busca {
  flex: 1; background: #fff; border: 1px solid var(--borda); border-radius: 8px;
  padding: 9px 12px; font: 400 12.5px var(--fonte); color: var(--tinta); outline: none;
}
.busca:focus { border-color: var(--azul); }
.filtros { display: flex; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.filtros .selecao { width: auto; min-width: 220px; }

/* Retenção: cada regra em um cartão, com o veredito no pé. */
.retencao__cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.retencao__pe {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--borda);
}

/* Segundo fator: o quadrado do aplicativo e a lista que só aparece uma vez. */
.qr {
  display: flex; justify-content: center; padding: 18px; margin: 14px auto; max-width: 300px;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px;
}
.qr svg { width: 240px; height: 240px; max-width: 100%; }
.qr__pronto { margin: 14px 0 0; }
.codigos {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px; list-style: none; padding: 0; margin: 14px 0 0;
}
.codigos__um {
  background: var(--zebra); border: 1px solid var(--borda); border-radius: 8px;
  padding: 10px; text-align: center; font: 600 14px var(--mono); color: var(--tinta);
  letter-spacing: .5px;
}
.form-linha { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.form-linha .campo { flex: 1 1 220px; margin: 0; }

/* Trilha de auditoria: sob a frase, o que a busca entende. */
.auditoria__meta { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.auditoria__meta a { text-decoration: none; }
.auditoria__meta a:hover { color: var(--azul); }
.auditoria__diff { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.filtro-btn {
  background: #fff; border: 1px solid var(--borda); border-radius: 8px;
  padding: 9px 14px; font: 500 12.5px var(--fonte); color: var(--tinta-3); cursor: pointer;
}
.filtro-btn:hover { border-color: var(--azul); color: var(--tinta-3); }

.upload {
  border: 1.5px dashed var(--tracejada); border-radius: 9px; padding: 22px;
  text-align: center; font: 400 12px/1.5 var(--fonte); color: var(--tinta-5);
  cursor: pointer; display: block;
}
.upload:hover { border-color: var(--azul); }
.upload--curto { padding: 16px; }
.upload strong { font: 600 12px var(--fonte); color: var(--azul); }
.upload input[type=file] { display: none; }
.upload__nome { font: 500 11px var(--mono); color: var(--tinta-2); margin-top: 6px; display: block; }

.aviso-azul {
  background: var(--azul-claro); border-radius: 8px; padding: 10px 12px;
  font: 400 11.5px/1.5 var(--fonte); color: var(--azul);
}
.aviso-ambar {
  background: var(--ambar-fundo); border: 1px solid var(--ambar-claro-bd); border-radius: 8px;
  padding: 10px 12px; font: 400 11.5px/1.5 var(--fonte); color: var(--ambar);
}
.aviso-erro {
  background: var(--vermelho-claro); border: 1px solid var(--vermelho-claro-bd); border-radius: 8px;
  padding: 10px 12px; font: 600 11.5px/1.5 var(--fonte); color: var(--vermelho);
}
.erro-contextual { margin: 0 0 18px; padding: 13px 15px; font-size: 13px; }
.erro-contextual strong { display: block; margin-bottom: 2px; }

.chave {
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
  border: 1px solid var(--campo-bd); border-radius: 7px; padding: 9px 11px;
  font: 500 12px var(--mono); color: var(--tinta-2);
}

.toggle { display: flex; justify-content: space-between; align-items: center; font: 400 12.5px var(--fonte); color: var(--tinta-2); cursor: pointer; }
.toggle input { position: absolute; opacity: 0; pointer-events: none; }
.toggle__ctrl {
  width: 34px; height: 19px; border-radius: 10px; background: var(--tracejada);
  position: relative; display: inline-block; flex-shrink: 0; transition: background .12s ease;
}
.toggle__ctrl::after {
  content: ""; position: absolute; left: 2px; top: 2px; width: 15px; height: 15px;
  border-radius: 50%; background: #fff; transition: transform .12s ease;
}
.toggle input:checked + .toggle__ctrl { background: var(--verde); }
.toggle input:checked + .toggle__ctrl::after { transform: translateX(15px); }

/* -------------------------------------------------------------- drawer */

.overlay { position: fixed; inset: 0; background: rgba(20, 24, 31, .35); z-index: 30; }
.tem-dialogo { overflow: hidden; }
.drawer, .modal { overscroll-behavior: contain; }
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: 420px; max-width: 100%;
  background: #fff; border-left: 1px solid var(--borda); box-shadow: var(--sombra-drawer);
  padding: 22px; display: flex; flex-direction: column; gap: 14px;
  overflow: auto; z-index: 31; margin: 0;
}
.drawer__topo { display: flex; justify-content: space-between; align-items: center; }
.drawer__titulo { font: 700 16px var(--fonte); color: var(--tinta); margin: 0; }
.drawer__x { font: 600 14px var(--fonte); color: var(--tinta-5); padding: 4px 8px; }
.drawer__rodape { margin-top: auto; display: flex; gap: 10px; justify-content: flex-end; padding-top: 4px; }
.drawer__cabecalho {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  background: var(--zebra); border-radius: 9px; padding: 12px 14px;
}
.drawer__identidade { min-width: 0; }
.drawer__nome { font: 700 14px var(--fonte); color: var(--tinta); }
.drawer__sub { font: 400 11.5px/1.5 var(--fonte); color: var(--tinta-5); margin-top: 2px; }
.drawer__dados {
  font: 400 12.5px/1.5 var(--fonte); color: var(--tinta-2);
  align-items: start;
}
.drawer__dado-rotulo {
  display: block; font: 600 10px var(--fonte); color: var(--tinta-6);
  letter-spacing: .025em; margin-bottom: 3px;
}
.drawer__destaque { font: 600 13px var(--fonte); color: var(--tinta); }
.drawer__eyebrow {
  font: 600 10.5px var(--fonte); letter-spacing: .06em; color: var(--tinta-6); margin-bottom: 6px;
}
.drawer__texto { font: 400 12px/1.7 var(--fonte); color: var(--tinta-2); }

.modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 340px; max-width: calc(100% - 32px); max-height: 80vh; overflow: auto;
  background: #fff; border-radius: 14px; box-shadow: var(--sombra-modal);
  padding: 18px; z-index: 31; display: flex; flex-direction: column; gap: 8px;
}
.modal__opcao {
  border: 1px solid var(--borda); border-radius: 9px; padding: 11px 13px;
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  font: 600 12.5px var(--fonte); color: var(--tinta); min-height: 44px;
}
.modal__opcao:hover { border-color: var(--azul); color: var(--tinta); }

.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--tinta); color: #fff; border-radius: 10px; padding: 12px 20px;
  font: 600 12.5px var(--fonte); box-shadow: var(--sombra-toast); z-index: 40;
  animation: some 3.2s forwards;
}
@keyframes some { 0%,88% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }

/* Estado de conectividade e atualização do PWA. Ficam sobre o shell e não
   alteram a altura da página quando a rede oscila. */
.app-estado, .app-atualizacao {
  position: fixed; left: 50%; transform: translateX(-50%); z-index: 80;
  width: min(620px, calc(100vw - 32px)); border-radius: 11px; padding: 12px 16px;
  box-shadow: var(--sombra-toast); font: 600 13px/1.45 var(--fonte); text-align: center;
}
.app-estado { top: max(12px, env(safe-area-inset-top)); color: #fff; background: var(--tinta); }
.app-estado[hidden] { display: none; }
.app-estado--offline { background: #7b3515; }
.app-estado--sucesso { background: var(--verde); }
.app-atualizacao {
  bottom: max(18px, env(safe-area-inset-bottom)); display: flex; align-items: center; flex-wrap: wrap;
  justify-content: space-between; gap: 12px; color: #fff; background: var(--azul);
}
.app-atualizacao button {
  min-height: 40px; flex: 0 0 auto; padding: 8px 12px; border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 8px; color: #fff; background: transparent; font: 700 12px var(--fonte); cursor: pointer;
}
.campo__erro { display: block; margin-top: 6px; color: var(--vermelho); font: 600 12px/1.45 var(--fonte); }
:is(input, select, textarea)[aria-invalid="true"] { border-color: var(--vermelho) !important; outline-color: var(--vermelho); }
form[aria-busy="true"] { cursor: progress; }
form[aria-busy="true"] [aria-disabled="true"] { opacity: .7; pointer-events: none; }
.eq__busca { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 20px 0; }
.eq__busca .campo { flex: 1 1 180px; min-width: 0; margin: 0; }
.eq__busca .campo:first-of-type { flex-grow: 3; }
.eq__busca select { width: 100%; min-height: 44px; padding: 10px; border: 1px solid var(--borda); border-radius: 8px; background: white; font: inherit; }
.eq__paginacao { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 24px 0; }
.app-lista-filtros { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; margin: 20px 0 12px; }
.app-lista-filtros .campo { flex: 1 1 180px; min-width: 0; margin: 0; }
.app-lista-filtros input, .app-lista-filtros select { min-height: 46px; font-size: 16px; width: 100%; }
.app-lista-resumo { color: var(--tinta-5); font-size: 14px; line-height: 1.6; margin: 12px 0 20px; }
.app-lista-abas, .app-paginacao { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 18px 0; }
.app-paginacao { justify-content: center; margin-top: 24px; font-size: 15px; }
.app-paginacao .pag-tamanho { flex-basis: 100%; }
.app-lista-abas .btn, .app-paginacao .btn, .app-lista-filtros .btn { min-height: 44px; justify-content: center; }
.arep .btn { margin-top: 12px; min-height: 44px; white-space: normal; }
.ch__titulo small { font-size: .75em; color: var(--tinta-5); }
.app-ajuda { display: grid; gap: 18px; }
.app-ajuda .ac { padding: 22px; overflow-wrap: anywhere; }
.app-ajuda h2 { font-size: 21px; line-height: 1.3; margin: 0 0 14px; }
.app-ajuda p, .app-ajuda li { font-size: 16px; line-height: 1.65; }
.app-ajuda details { border-top: 1px solid var(--borda); padding: 6px 0; margin-top: 12px; }
.app-ajuda summary { cursor: pointer; padding: 14px 0; min-height: 48px; font-size: 16px; font-weight: 600; }
.app-ajuda ol { padding-left: 24px; }
.app-ajuda li + li { margin-top: 10px; }
.app-ajuda__estado { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 12px; }
.app-ajuda__estado div { background: var(--cinza-fundo, #f4f6f8); border: 1px solid var(--borda); border-radius: 12px; padding: 14px; }
.app-ajuda__estado dt { font-size: 14px; color: var(--tinta-5); }
.app-ajuda__estado dd { margin: 6px 0 0; font-size: 17px; font-weight: 700; }
[data-ajuda-instalar][hidden] { display: none; }
.upload__previas { display: flex; justify-content: center; gap: 8px; width: 100%; margin-top: 10px; }
.upload__previas img { width: 64px; height: 64px; border-radius: 8px; border: 1px solid var(--borda); object-fit: cover; }

/* Primeiro acesso pelo ícone instalado: o iOS só abre a permissão oficial
   depois de um toque, então o portal oferece antes uma decisão clara e curta. */
.apush {
  position: fixed; inset: 0; z-index: 60; display: grid; place-items: center;
  padding: 20px; background: rgba(13, 30, 45, .62); backdrop-filter: blur(3px);
}
.apush__caixa {
  width: min(420px, 100%); padding: 26px 24px 22px; border-radius: 20px;
  background: #fff; box-shadow: 0 24px 70px rgba(8, 25, 40, .32);
  text-align: center;
}
.apush__marca {
  display: inline-flex; width: 58px; height: 58px; align-items: center; justify-content: center;
  margin-bottom: 16px; border-radius: 17px; background: var(--azul); color: #fff;
  font: 700 20px var(--fonte); letter-spacing: -.02em;
}
.apush__titulo { margin: 0; color: var(--tinta); font: 700 22px/1.2 var(--fonte); }
.apush__texto { margin: 12px 0 0; color: var(--tinta-2); font: 400 14px/1.55 var(--fonte); }
.apush__dica { margin: 10px 0 0; color: var(--tinta-5); font: 400 12px/1.5 var(--fonte); }
.apush__estado { min-height: 20px; margin: 12px 0 0; color: var(--azul); font: 600 12px/1.45 var(--fonte); }
.apush__acoes { display: grid; gap: 9px; margin-top: 10px; }
.apush__ativar,
.apush__depois {
  min-height: 48px; border-radius: 11px; border: 1px solid transparent;
  cursor: pointer; font: 700 14px var(--fonte);
}
.apush__ativar { background: var(--azul); color: #fff; }
.apush__ativar:hover { background: var(--azul-hover); }
.apush__depois { background: #fff; border-color: var(--borda); color: var(--tinta-3); }
.apush__ativar:disabled,
.apush__depois:disabled { cursor: wait; opacity: .6; }

/* ------------------------------------------------------- níveis / matriz */

.niveis { display: flex; gap: 4px; flex-wrap: wrap; margin: 0; }
.nivel {
  font: 600 10.5px var(--fonte); border-radius: 6px; padding: 5px 10px; cursor: pointer;
  background: #fff; color: var(--tinta-3); border: 1px solid var(--borda);
}
.nivel:hover { border-color: var(--azul); }
.nivel input { position: absolute; opacity: 0; pointer-events: none; }
.nivel:has(input:checked) { background: var(--azul); color: #fff; border-color: var(--azul); }

/* ------------------------------------------------------------- etiqueta */

.etiqueta {
  border: 2px solid var(--tinta); border-radius: 8px; padding: 14px;
  display: flex; gap: 12px; align-items: center;
}
.etiqueta__marca { width: 74px; height: 74px; flex-shrink: 0; border-radius: 4px; background: var(--tinta); }
.etiqueta__cod { font: 700 12px var(--fonte); color: var(--tinta); }
.etiqueta__nome { font: 600 11px var(--fonte); color: var(--tinta-2); margin-top: 2px; }
.etiqueta__pe { font: 400 9.5px/1.4 var(--fonte); color: var(--tinta-5); margin-top: 4px; }

/* --------------------------------------------------------------- escala */

.escala__cab, .escala__linha { display: grid; grid-template-columns: 160px repeat(6, 1fr); }
.escala__cab {
  background: var(--zebra); border-bottom: 1px solid var(--borda);
  font: 600 10.5px var(--fonte); color: var(--tinta-5);
}
.escala__cab span { padding: 10px 8px; }
.escala__cab span:first-child { padding: 10px 14px; }
.escala__linha { border-bottom: 1px solid var(--divisoria); align-items: center; }
.escala__amb { padding: 12px 14px; font: 600 12px var(--fonte); color: var(--tinta); }
.escala__cel { padding: 8px; }
.escala__quem {
  font: 600 10.5px var(--fonte); border-radius: 5px; padding: 4px 8px;
  display: inline-block; cursor: pointer;
}
.escala__quem:hover { outline: 1.5px solid var(--azul); }
.escala__quem--vazio { color: var(--tracejada); background: transparent; }
.escala__legenda {
  padding: 12px 16px; display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
  font: 400 11px var(--fonte); color: var(--tinta-5);
}

/* --------------------------------------------------------------- gestão */

.gestao {
  background: var(--azul); border-radius: 12px; padding: 20px; color: #fff; margin-bottom: 16px;
}
.gestao__topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.gestao__eyebrow { font: 600 10.5px var(--fonte); letter-spacing: .08em; opacity: .7; }
.gestao__vigente { font: 600 11px var(--fonte); background: var(--verde); border-radius: 5px; padding: 4px 10px; }
/* O cartão é azul-marinho: o link de ação precisa da borda clara para existir nele. */
.gestao__editar {
  font: 600 11px var(--fonte); color: #fff; text-decoration: none;
  background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 6px; padding: 5px 12px; white-space: nowrap;
}
.gestao__editar:hover { background: rgba(255, 255, 255, .22); }
.grade-dados { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 16px; }
.gestao__grade { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.gestao__membro { background: rgba(255, 255, 255, .08); border-radius: 10px; padding: 12px; }
.gestao__avatar {
  width: 36px; height: 36px; border-radius: 50%; background: #fff; color: var(--azul);
  display: flex; align-items: center; justify-content: center;
  font: 700 13px var(--fonte); margin-bottom: 8px;
}
.gestao__nome { font: 600 12.5px var(--fonte); }
.gestao__cargo { font: 400 10.5px var(--fonte); opacity: .7; }

.ficha__avatar {
  width: 44px; height: 44px; border-radius: 50%; background: #c8d6c9; color: var(--verde);
  display: flex; align-items: center; justify-content: center;
  font: 700 15px var(--fonte); flex-shrink: 0;
}

/* -------------------------------------------------------------- webhooks */

.wh__url {
  font: 500 11px var(--mono); color: var(--tinta-3); background: var(--zebra);
  border: 1px solid var(--divisoria); border-radius: 6px; padding: 7px 10px;
  margin-bottom: 8px; overflow-x: auto; white-space: nowrap;
}
.wh__pe { display: flex; justify-content: space-between; gap: 10px; font: 400 11px var(--fonte); color: var(--tinta-5); flex-wrap: wrap; }
.payload { font: 500 11px var(--mono); color: var(--tinta-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ok { font: 600 11px var(--fonte); color: var(--verde); }
.falha { font: 600 11px var(--fonte); color: var(--vermelho); }

/* ---------------------------------------------------------------- login */

.login { display: flex; min-height: 100vh; }
.login__painel {
  width: 520px; flex-shrink: 0; background: var(--azul); color: #fff;
  padding: 48px; display: flex; flex-direction: column; justify-content: space-between;
}
.login__marca { display: flex; align-items: center; gap: 10px; }
.login__nome { font: 700 17px var(--fonte); }
.login__sc {
  width: 38px; height: 38px; border-radius: 10px; display: block;
  object-fit: cover; flex-shrink: 0;
}
.login__headline { font: 700 30px/1.25 var(--fonte); margin: 0; }
.login__lead { font: 400 13.5px/1.6 var(--fonte); opacity: .75; margin: 14px 0 0; max-width: 380px; }
.login__copy { font: 400 11px var(--fonte); opacity: .5; margin: 0; }
.login__area { flex: 1; display: flex; align-items: center; justify-content: center; padding: 28px; background: #fff; }
.login__cartao { width: 380px; max-width: 100%; }
.login__form { display: flex; flex-direction: column; gap: 14px; }
.login__titulo { font: 700 22px var(--fonte); color: var(--tinta); margin: 0; }
.login__sub { font: 400 12.5px/1.55 var(--fonte); color: var(--tinta-4); margin: -8px 0 6px; }
.login .entrada { padding: 11px 13px; }
.login__linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.login__lembrar {
  display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  font: 400 12px var(--fonte); color: var(--tinta-3);
}
.login__lembrar input { width: 15px; height: 15px; accent-color: var(--azul); }
.login__link { font: 600 12px var(--fonte); color: var(--azul); text-decoration: none; }
.login__link:hover { color: var(--verde); }
/* "Entrar com outra conta" é um POST (derruba a sessão de meia entrada), mas
   tem peso de link — o botão veste o link para não competir com o principal. */
.login__link--botao { background: none; border: 0; padding: 0; cursor: pointer; }
.login__pe { font: 400 12px var(--fonte); color: var(--tinta-4); text-align: center; margin: 4px 0 0; }
.login__voltar { text-align: center; margin: 4px 0 0; }
.login__links {
  display: flex; justify-content: space-between; gap: 12px; align-items: center; min-height: 44px;
}
.login .btn { width: 100%; padding: 13px; font: 700 13.5px var(--fonte); }

/* --------------------------------------------------------------- mobile */

.so-desktop { display: initial; }
.menu-btn { display: none; }

@media (max-width: 1100px) {
  .grade--kpi { grid-template-columns: repeat(3, 1fr); }
  .backup-config-grade { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grade--painel, .grade--pat, .grade--2 { grid-template-columns: 1fr; }
  .gestao__grade { grid-template-columns: repeat(2, 1fr); }
  .grade-dados { grid-template-columns: repeat(2, 1fr); }
  .propostas-grade { grid-template-columns: 1fr; }
  .entrega-orcamento__dados { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .app { flex-direction: column; }
  .lateral {
    width: 100%; height: auto; position: static; border-right: 0;
    border-bottom: 1px solid var(--borda); padding: 12px 16px;
  }
  .lateral__marca { padding: 0; flex: 1; }
  .lateral__topo { display: flex; align-items: center; gap: 12px; }
  .menu-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border: 1px solid var(--borda); border-radius: 8px;
    background: #fff; font-size: 17px; cursor: pointer; color: var(--tinta-3);
  }
  .lateral__nav, .lateral__usuario { display: none; }
  .lateral.is-aberta .lateral__nav { display: block; margin-top: 12px; }
  .lateral.is-aberta .lateral__usuario { display: flex; }
  .conteudo { padding: 16px; }
  .tela-topo { flex-direction: column; align-items: flex-start; gap: 10px; }
  .tela-acoes { width: 100%; flex-wrap: wrap; }
  .grade--kpi { grid-template-columns: repeat(2, 1fr); }
  .gestao__grade { grid-template-columns: 1fr; }
  .grade-dados { grid-template-columns: 1fr; }
  .tripla, .orc-resumo, .orc-dados, .entrega-orcamento__dados { grid-template-columns: 1fr; }
  .entrega-orcamento__dados dd { font-size: 15px; }
  .secao-cab, .vazio-destaque { align-items: flex-start; flex-direction: column; }
  .anexo-adicionar { align-items: stretch; flex-direction: column; }
  .drawer { width: 100%; border-left: 0; }
  .so-desktop { display: none; }
  .tab__cab, .tab__linha { grid-template-columns: 1fr !important; gap: 4px; }
  .tab__cab { display: none; }
  .tab__linha { padding: 12px 16px; }
  .escala__cab, .escala__linha { grid-template-columns: 110px repeat(6, 1fr); font-size: 10px; }
  .escala__amb { padding: 8px; font-size: 11px; }
  .escala__cel { padding: 4px; }
  /* No celular o protótipo pinta a tela inteira de azul e traz o formulário
     em um cartão branco encostado embaixo. */
  .login { flex-direction: column; background: var(--azul); }
  .login__painel {
    width: 100%; padding: 32px 28px 0; justify-content: flex-start; gap: 0;
  }
  .login__marca { margin-top: 24px; }
  .login__meio { margin-top: 36px; }
  .login__headline { font: 700 26px/1.3 var(--fonte); }
  .login__lead, .login__copy { display: none; }
  .login__area { padding: 24px 28px 28px; margin-top: auto; background: none; }
  .login__cartao {
    width: 100%; background: #fff; border-radius: 16px; padding: 22px;
  }
  .login__titulo { font-size: 17px; }
}

/* -------------------------------------------------- marca da etiqueta */

.marca-etiqueta {
  background: var(--tinta); border-radius: 4px; flex-shrink: 0;
  display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(7, 1fr);
  gap: 1px; padding: 5px;
}
.marca-etiqueta i { display: block; }
.etiqueta--mini { border-width: 1.5px; border-radius: 6px; padding: 8px; gap: 8px; }
.etiqueta--mini .etiqueta__cod { font-size: 9.5px; }
.etiqueta--mini .etiqueta__nome { font-size: 8.5px; }

/* ------------------------------------------------------- navegador de semana */

.semana {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--borda); border-radius: 8px;
  padding: 8px 6px; font: 500 12px var(--fonte); color: var(--tinta-3);
}
.semana__seta { padding: 0 8px; font-weight: 700; color: var(--tinta-3); text-decoration: none; }
.semana__seta:hover { color: var(--azul); }
.modal__opcao { background: #fff; cursor: pointer; text-align: left; font-family: var(--fonte); }

/* --------------------------------------------------------- matriz de permissões */

.perm__cab, .perm__linha {
  display: grid; grid-template-columns: 1fr 400px; gap: 10px; align-items: center;
}
.perm__cab {
  padding: 10px 16px; background: var(--zebra); border-bottom: 1px solid var(--borda);
  font: 600 10.5px var(--fonte); letter-spacing: .05em; color: var(--tinta-5);
}
.perm__linha { padding: 9px 16px; border-bottom: 1px solid var(--divisoria); }
.perm__nome { font: 500 12.5px var(--fonte); color: var(--tinta-2); }
.perm__pe {
  padding: 12px 16px; display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap; font: 400 11.5px var(--fonte); color: var(--tinta-5);
}
@media (max-width: 900px) {
  .perm__cab, .perm__linha { grid-template-columns: 1fr; }
  .perm__cab span:last-child { display: none; }
}
.tag__x { background: none; border: 0; padding: 0 0 0 2px; font: inherit; cursor: pointer; }
.tag form { display: inline; }

/* --------------------------------------------------------- webhooks e auditoria */

.wh__topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.log { border: 1px solid var(--divisoria); border-radius: 8px; padding: 9px 11px; font: 400 11.5px var(--fonte); color: var(--tinta-2); }
/* O reenvio fica na mesma linha do evento, à direita — é ação de exceção. */
.log__reenvio { display: inline; margin: 0 0 0 6px; }
.log__reenvio button { border: 0; background: none; padding: 0; cursor: pointer; font: inherit; color: inherit; }
.modulo {
  font: 600 10.5px var(--fonte); background: var(--azul-claro); border-radius: 5px;
  padding: 3px 8px; text-align: center; justify-self: start;
}

/* -------------------------------------------------------------- erro nu */

.erro { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 28px; }
.erro .card { width: 420px; max-width: 100%; }

/* ------------------------------------------------- aprovações de obras */

.kanban { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: start; }
.kcol { border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.kcol--1 { background: var(--ambar-fundo); border: 1px solid var(--ambar-claro-bd); }
.kcol--2 { background: var(--azul-claro); border: 1px solid var(--azul-claro-bd); }
.kcol--3 { background: var(--cinza-chip); border: 1px solid var(--borda); }
.kcol__titulo { font: 700 12px var(--fonte); margin: 0; }
.kcol__titulo span { font: 400 11px var(--fonte); }
.kcol--1 .kcol__titulo { color: var(--ambar); }
.kcol--2 .kcol__titulo { color: var(--azul); }
.kcol--3 .kcol__titulo { color: var(--tinta-3); }
.kcol__vazio { font: 400 12px var(--fonte); text-align: center; padding: 24px 0; }
.kcol--1 .kcol__vazio { color: #a39055; }
.kcol--2 .kcol__vazio { color: #7a92ab; }
.kcol--3 .kcol__vazio { color: var(--tinta-5); }

.obra { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 14px; }
.obra--atraso { border-color: var(--vermelho-claro-bd); }
.obra--ok { background: var(--verde-claro); border-color: #bcd4c1; }
.obra--rejeitada { background: var(--cinza-chip); }
.obra__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.obra__t { font: 700 13px var(--fonte); color: var(--tinta); }
.obra--ok .obra__t { color: var(--verde); }
.obra--rejeitada .obra__t { color: var(--tinta-3); }
.obra__m { font: 400 11px var(--fonte); color: var(--tinta-5); margin: 2px 0 8px; }
.obra--ok .obra__m { color: #33513c; margin-bottom: 0; }
.obra--rejeitada .obra__m { margin-bottom: 0; }
.obra__det { font: 400 11px/1.6 var(--fonte); color: var(--tinta-3); margin-bottom: 10px; }
.obra__nota { border-radius: 7px; padding: 8px 10px; font: 400 11px/1.5 var(--fonte); margin-bottom: 10px; }
.obra__nota--ambar { background: var(--ambar-fundo); color: var(--ambar); }
.obra__nota--verde { background: var(--verde-claro); color: var(--verde); }
.obra__pe { font: 400 10px var(--fonte); color: var(--tinta-6); margin-top: 8px; }
.obra__d { font: 600 11px var(--mono); color: var(--verde); white-space: nowrap; }
.obra__d--atraso { color: var(--vermelho); }
.obra .tags { margin-bottom: 8px; }

.barra { height: 5px; background: var(--trilha); border-radius: 3px; overflow: hidden; }
.barra > i { display: block; height: 100%; border-radius: 3px; background: var(--verde); }
.barra--vermelha > i { background: var(--vermelho); }
.barra--cinza > i { background: var(--tracejada); }
.barra--azul > i { background: var(--azul); }
.barra--6 { height: 6px; }
.barra--7 { height: 7px; border-radius: 4px; }
.barra--8 { height: 8px; border-radius: 4px; }

/* Provedores transacionais: cartões largos, legíveis e sem esconder cotas. */
.pe-intro { max-width: 980px; margin: 0 0 20px; color: var(--tinta-3); font-size: 15px; line-height: 1.65; }
.pe-mestre { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px;
  padding: 17px 20px; border: 1px solid var(--verde-claro-bd); border-radius: 12px; background: var(--verde-claro); }
.pe-mestre--desligado { border-color: var(--vermelho-claro-bd); background: var(--vermelho-claro); }
.pe-mestre strong, .pe-mestre span { display: block; }
.pe-mestre strong { color: var(--tinta); font-size: 15px; }
.pe-mestre span { margin-top: 4px; color: var(--tinta-4); font-size: 12px; }
.pe-mestre form { flex: 0 0 auto; margin: 0; }
.pe-resumo { margin-bottom: 18px; padding: 17px 20px; border: 1px solid var(--campo-bd); border-radius: 12px;
  background: var(--fundo); color: var(--tinta-3); font-size: 15px; }
.pe-lista { display: grid; gap: 14px; }
.pe-card { padding: 18px 20px; border: 1px solid var(--campo-bd); border-radius: 12px; background: #fff; }
.pe-card--inativo { opacity: .72; background: var(--fundo); }
.pe-card__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.pe-card__nome { display: flex; align-items: center; gap: 8px; color: var(--tinta); font-size: 17px; font-weight: 700; }
.pe-card__nome > span:last-child { color: var(--tinta-5); font-size: 13px; font-weight: 500; }
.pe-card__meta { margin: 6px 0 0 36px; color: var(--tinta-5); font-size: 12px; }
.pe-card__acoes { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.pe-card__acoes form { margin: 0; }
.pe-card__falha { margin: 12px 0 0; padding: 8px 10px; border-radius: 7px; color: var(--vermelho);
  background: var(--vermelho-claro); font-size: 12px; }
.pe-uso { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 16px; }
.pe-uso > div > span { color: var(--tinta-4); font-size: 12px; }
.pe-uso > div > span:nth-child(2) { float: right; }
.pe-uso .barra { clear: both; margin-top: 7px; }
.pe-servico-nota { display: block; margin: -8px 0 14px; }
@media (max-width: 760px) {
  .pe-mestre { display: block; }
  .pe-mestre form { margin-top: 14px; }
  .pe-card__topo { display: block; }
  .pe-card__acoes { justify-content: flex-start; margin-top: 14px; }
  .pe-uso { grid-template-columns: 1fr; gap: 13px; }
}

.acoes-mini { display: flex; gap: 6px; margin: 0; }
.acoes-mini form { flex: 1; margin: 0; display: flex; }
.bmini {
  flex: 1; border: 1px solid transparent; border-radius: 7px; padding: 8px;
  text-align: center; font: 600 11.5px var(--fonte); font-family: var(--fonte);
  cursor: pointer; background: #fff; color: var(--tinta-3);
}
.bmini--verde { background: var(--verde); color: #fff; }
.bmini--verde:hover { background: #17492a; }
.bmini--azul { background: var(--azul); color: #fff; }
.bmini--azul:hover { background: var(--azul-hover); }
.bmini--vermelho { background: var(--vermelho); color: #fff; }
.bmini--vermelho:hover { background: var(--vermelho-hover); }
.bmini--contorno { border-color: var(--campo-bd); }
.bmini--contorno:hover { border-color: var(--azul); }
.bmini--perigo { border-color: var(--vermelho-claro-bd); color: var(--vermelho); }
.bmini--perigo:hover { border-color: var(--vermelho); }
a.bmini { display: block; }
a.bmini:hover { color: var(--tinta-3); }
a.bmini--azul:hover, a.bmini--verde:hover, a.bmini--vermelho:hover { color: #fff; }

/* ------------------------------------------------------ chips de módulo */

.mtag { display: inline-block; font: 600 10px var(--fonte); border-radius: 4px; padding: 3px 8px; white-space: nowrap; }
.mtag--vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.mtag--azul { background: var(--azul-claro); color: var(--azul); }
.mtag--cinza { background: var(--cinza-chip); color: var(--tinta-3); }

/* -------------------------------------------------- triagem de prioridade */

.prio { display: flex; gap: 4px; margin: 0; }
.prio button {
  font: 600 10.5px var(--fonte); font-family: var(--fonte); border-radius: 6px;
  padding: 5px 10px; cursor: pointer; background: #fff; color: var(--tinta-5);
  border: 1px solid var(--borda);
}
.prio button:hover { border-color: var(--azul); }
.prio button.is-baixa { background: var(--cinza-chip); color: var(--tinta-3); border-color: var(--tinta-3); }
.prio button.is-media { background: var(--ambar-claro); color: var(--ambar); border-color: var(--ambar); }
.prio button.is-alta { background: var(--vermelho-claro); color: var(--vermelho); border-color: var(--vermelho); }

/* ------------------------------------------------------------- miniaturas */

.foto-mini {
  width: 40px; height: 40px; border-radius: 7px; background: var(--cinza-chip);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  font: 400 8px var(--fonte); color: var(--tinta-6);
}
.foto-mini img { width: 100%; height: 100%; object-fit: cover; }
.foto-grande {
  width: 84px; height: 84px; border-radius: 8px; background: var(--cinza-chip);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  font: 400 9px/1.3 var(--fonte); color: var(--tinta-6); text-align: center;
}
.foto-grande img { width: 100%; height: 100%; object-fit: cover; }
.doc-tile {
  width: 34px; height: 34px; border-radius: 8px; background: var(--azul-claro);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  font: 700 8.5px var(--fonte); color: var(--azul);
}

/* ------------------------------------------------------------ lista simples */

.lista { background: #fff; border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; }
.lista__item {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 13px 16px; border-bottom: 1px solid var(--divisoria);
}
.lista__item:last-child { border-bottom: 0; }
.lista__esq { display: flex; gap: 12px; align-items: center; min-width: 0; }
.lista__t { font: 600 12.5px var(--fonte); color: var(--tinta); }
.lista__s { font: 400 11px var(--fonte); color: var(--tinta-5); }
.lista__acoes { display: flex; gap: 12px; align-items: center; flex-shrink: 0; }
.lista__acoes form { margin: 0; display: flex; }
.lista__vazio { padding: 24px 16px; text-align: center; font: 400 12.5px var(--fonte); color: var(--tinta-5); }

/* --------------------------------------------------------------- enquetes */

.grade--duas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.enq { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 16px; }
.enq__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.enq__t { font: 700 14px var(--fonte); color: var(--tinta); }
.enq__m { font: 400 11.5px var(--fonte); color: var(--tinta-5); margin-bottom: 10px; }
.enq__op { font: 500 12px var(--fonte); color: var(--tinta-3); display: flex; justify-content: space-between; gap: 8px; }
.enq__op--top { color: var(--tinta-2); }
.enq__pct { font: 400 12px var(--fonte); }
.enq__op--top .enq__pct { font: 700 12px var(--fonte); color: var(--azul); }
.enq .barra { margin: 4px 0 8px; }
.enq__acoes { display: flex; gap: 12px; align-items: center; margin-top: 12px; }
.enq__acoes form { margin: 0; display: flex; }

.resultado__linha { font: 500 12.5px var(--fonte); color: var(--tinta-3); display: flex; justify-content: space-between; gap: 8px; }
.resultado__linha--top { color: var(--tinta); }
.resultado__n { font: 600 12.5px var(--fonte); color: var(--tinta-5); }
.resultado__linha--top .resultado__n { font: 700 12.5px var(--fonte); color: var(--azul); }
.resultado .barra { margin-top: 5px; }

/* --------------------------------------------------------------- mudanças */

.agenda { display: flex; flex-direction: column; gap: 10px; }
.mud {
  background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 16px;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.mud--cancelada { opacity: .6; }
.mud__esq { display: flex; gap: 14px; align-items: center; min-width: 0; }
.mud__t { font: 700 13.5px var(--fonte); color: var(--tinta); }
.mud__s { font: 400 11.5px var(--fonte); color: var(--tinta-5); }
.data-bloco {
  width: 52px; text-align: center; background: var(--azul-claro);
  border-radius: 8px; padding: 8px 4px; flex-shrink: 0;
}
.data-bloco__d { font: 700 15px var(--fonte); color: var(--azul); }
.data-bloco__m { font: 600 9.5px var(--fonte); color: var(--tinta-5); }

/* ------------------------------------------------------------- orçamentos */

.orc { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 16px; }
.orc__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.orc__t { font: 700 13.5px var(--fonte); color: var(--tinta); }
.orc__valor { font: 700 18px var(--fonte); color: var(--azul); }
.orc__m { font: 400 11.5px/1.6 var(--fonte); color: var(--tinta-5); margin-top: 6px; }
.orc__acoes { display: flex; gap: 12px; margin-top: 10px; }
.orc__escopo {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
  overflow: hidden;
}

.orc-ficha { display: flex; flex-direction: column; gap: 18px; }
.orc-resumo {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px; margin-top: 20px;
}
.orc-resumo > div { padding: 14px; border-radius: 9px; background: var(--cinza-fundo); }
.orc-resumo span, .proposta-contexto > span {
  display: block; font: 700 10px var(--fonte); letter-spacing: .07em; color: var(--tinta-6);
}
.orc-resumo strong {
  display: block; margin-top: 5px; font: 700 17px/1.3 var(--fonte); color: var(--tinta);
}
.orc-dados { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.orc-dados dt { font: 700 10px var(--fonte); letter-spacing: .05em; color: var(--tinta-6); }
.orc-dados dd { margin: 4px 0 0; font: 600 13px/1.4 var(--fonte); color: var(--tinta-2); }
.entrega-orcamento {
  overflow: hidden; border-color: #cbdbee;
  background: linear-gradient(145deg, #fff 0%, #f7faff 100%);
}
.entrega-orcamento__cab { align-items: center; }
.entrega-orcamento__dados {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;
  margin: 18px 0 0;
}
.entrega-orcamento__dados > div {
  min-width: 0; padding: 14px; border: 1px solid #dbe6f2; border-radius: 10px;
  background: rgba(255, 255, 255, .82);
}
.entrega-orcamento__dados dt {
  font: 700 10px var(--fonte); letter-spacing: .065em; text-transform: uppercase;
  color: var(--tinta-6);
}
.entrega-orcamento__dados dd {
  overflow-wrap: anywhere; margin: 6px 0 0;
  font: 700 14px/1.4 var(--fonte); color: var(--tinta);
}
.entrega-orcamento__atualizacao {
  margin-top: 10px; font: 500 11px/1.5 var(--fonte); color: var(--tinta-6);
}
.entrega-orcamento__form {
  display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
  margin-top: 18px; padding-top: 18px; border-top: 1px solid #dbe6f2;
}
.entrega-orcamento__form > .grade { width: 100%; }
.pat-ficha { display: flex; flex-direction: column; gap: 18px; }
.pat-ficha__hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: linear-gradient(145deg,#fff,#f2f7fb); }
.pat-ficha__hero h2 { margin: 8px 0 4px; font: 800 25px/1.2 var(--fonte); }
.pat-ficha__hero p { color: var(--tinta-5); }
.pat-ficha__qr { display: flex; flex-direction: column; align-items: center; flex: 0 0 auto; }
.pat-ficha__qr svg { width: 130px; height: 130px; border: 1px solid var(--borda); border-radius: 8px; }
.pat-ficha__qr small { margin-top: 5px; font: 600 10px var(--fonte); color: var(--tinta-6); }
.pat-campos { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.pat-campos>div { min-width: 0; padding: 14px; border-radius: 9px; background: var(--cinza-fundo); }
.pat-campos span { display: block; font: 700 10px var(--fonte); letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-6); }
.pat-campos strong { display: block; overflow-wrap: anywhere; margin-top: 5px; font: 700 14px/1.4 var(--fonte); }
.pat-campos-form { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--divisoria); }
.pat-campos-form--editando { margin-top: 14px; padding-top: 0; border-top: 0; }
.pat-campos-form__acoes,.pat-dados-basicos__acoes { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.pat-campos-form__acoes { margin-top: 14px; }
.pat-dados-basicos { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; }
.pat-dados-basicos__rodape { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; border-top: 1px solid var(--divisoria); }
.pat-dados-basicos__rodape small { color: var(--tinta-6); font: 500 10.5px/1.45 var(--fonte); }
.pat-credencial { border-color: #cbdcf0; background: linear-gradient(145deg,#fff,#f5f9fd); }
.pat-credencial>.secao-cab>.ico { flex: 0 0 auto; color: var(--azul); }
.pat-credenciais-lista { display: grid; gap: 14px; margin-top: 16px; }
.pat-credencial-item { padding: 15px; border: 1px solid #d4e0ed; border-radius: 10px; background: #fff; }
.pat-credencial-item__cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.pat-credencial-item__cab span { display: block; margin-bottom: 3px; font: 750 10px var(--fonte); letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-6); }
.pat-credencial-item__cab h3 { margin: 0; font: 750 16px/1.25 var(--fonte); color: var(--tinta); }
.pat-credencial-item__cab small { color: var(--tinta-6); font: 500 10px/1.4 var(--fonte); text-align: right; }
.backup-kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 14px; }
.backup-kpis--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.backup-config-grade { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.backup-config-grade--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.backup-kpis .metrica__rotulo { display: block; color: var(--tinta-6); font: 750 10px var(--fonte); letter-spacing: .06em; }
.backup-kpis .metrica__valor { display: block; margin: 8px 0 5px; color: var(--tinta); font: 750 23px/1.1 var(--fonte); }
.backup-agenda { margin: 18px 0 0; padding: 16px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-fundo); }
.backup-agenda legend { padding: 0 7px; color: var(--tinta); font: 750 13px var(--fonte); }
.backup-agenda>.card__texto { margin: 4px 0 14px; }
.acoes-linha { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.acoes-linha form { margin: 0; }
.migracao { display: grid; gap: 14px; }
.migracao__secao { border-left: 4px solid var(--azul, #2563eb); }
.migracao__passo { margin: 0 0 7px; color: var(--tinta-6); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.migracao__comando { overflow: auto; margin: 16px 0; padding: 16px; border-radius: 10px; background: #101827; color: #e7eefb; font: 500 12px/1.65 var(--mono, monospace); white-space: pre; }
.migracao__acoes { margin-top: 0; }
.migracao__acoes .btn { white-space: nowrap; }
.migracao__hash { overflow-wrap: anywhere; font: 500 10px/1.45 var(--mono); }
.migracao__roteiro { display: grid; gap: 12px; margin-top: 14px; }
.migracao__roteiro .card { display: grid; grid-template-columns: 46px 1fr; gap: 14px; align-items: start; }
.migracao__numero { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--azul-claro, #eaf2ff); color: var(--azul, #2563eb); font-weight: 800; }
.migracao__compatibilidade { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 16px 0; }
.migracao__compatibilidade > span { padding: 12px; border: 1px solid var(--borda); border-radius: 10px; color: var(--tinta-3); font-size: 13px; }
.migracao__detalhes { border-top: 1px solid var(--borda); padding-top: 14px; }
.migracao__detalhes summary { cursor: pointer; color: var(--azul); font-weight: 700; }
.pat-credencial__dados { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.pat-credencial__dados>div { min-width: 0; padding: 14px; border: 1px solid #dbe6f2; border-radius: 9px; background: #fff; }
.pat-credencial__dados span { display: block; margin-bottom: 6px; font: 700 10px var(--fonte); letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-6); }
.pat-credencial__dados strong,.pat-credencial__senha code { overflow-wrap: anywhere; font: 700 14px/1.4 var(--mono); color: var(--tinta); }
.pat-credencial__senha { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pat-credencial__senha button { display: inline-grid; place-items: center; flex: 0 0 38px; width: 38px; height: 34px; border: 1px solid var(--borda); border-radius: 7px; background: var(--cinza-fundo); color: var(--azul); cursor: pointer; }
.pat-credencial__senha button:disabled { cursor: wait; opacity: .55; }
.pat-credencial__dados small { display: block; min-height: 1em; margin-top: 5px; color: var(--vermelho); font: 600 10px/1.35 var(--fonte); }
.pat-credencial__restrita { display: flex; align-items: center; gap: 9px; margin-top: 14px; padding: 13px; border-radius: 9px; background: #eef3f8; color: var(--tinta-5); font: 600 12px/1.45 var(--fonte); }
.pat-credencial__remover { margin-top: 12px; }
.pat-credencial-cadastro { margin: 4px 0 0; padding: 14px; border: 1px solid #cbdcf0; border-radius: 9px; background: #f5f9fd; }
.pat-credencial-cadastro legend { padding: 0 6px; font: 750 11px var(--fonte); color: var(--azul); }
.pat-credencial-cadastro>p { margin: 0 0 12px; color: var(--tinta-5); font: 500 11px/1.45 var(--fonte); }
.pat-historico { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.pat-historico>div { display: flex; flex-direction: column; padding-bottom: 10px; border-bottom: 1px solid var(--divisoria); }
.pat-historico strong { font-size: 13px; }
.pat-historico span { margin-top: 3px; font-size: 11px; color: var(--tinta-6); }
.pat-historico--detalhado>details { padding: 0 0 10px; border-bottom: 1px solid var(--divisoria); }
.pat-historico--detalhado>details>summary { display: flex; flex-direction: column; cursor: pointer; }
.pat-historico--detalhado>details>summary::marker { color: var(--azul); }
.pat-intervencao { margin-top: 10px; padding: 11px 12px; border-radius: 8px; background: var(--cinza-fundo); }
.pat-intervencao p { margin: 0 0 9px; white-space: pre-wrap; font: 500 11.5px/1.5 var(--fonte); color: var(--tinta-3); }
.pat-intervencao p:last-child { margin-bottom: 0; }
.pat-intervencao p b { display: block; margin-bottom: 2px; color: var(--tinta); font-size: 10.5px; text-transform: uppercase; }
.pat-intervencao__arquivos { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.pat-intervencao__arquivos a { padding: 7px 9px; border: 1px solid var(--borda); border-radius: 6px; background: #fff; font: 700 10.5px var(--fonte); color: var(--azul); }
.pat-adicionar { margin-top: 15px; border-top: 1px solid var(--divisoria); padding-top: 13px; }
.pat-adicionar>summary { cursor: pointer; list-style: none; font: 700 12.5px var(--fonte); color: var(--azul); }
.pat-adicionar>summary::-webkit-details-marker { display: none; }
.pat-adicionar>form { display: flex; flex-direction: column; gap: 11px; margin-top: 14px; }
.pat-perfis { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 12px; padding: 12px; border: 1px solid var(--borda); border-radius: 8px; }
.pat-perfis legend { padding: 0 5px; font: 700 10px var(--fonte); color: var(--tinta-6); text-transform: uppercase; }
.pat-perfis label,.pat-interfaces { font: 500 11.5px/1.45 var(--fonte); color: var(--tinta-3); }
.pat-operacao { margin-top: 12px; }
.pat-vinculos>div { position: relative; padding-right: 90px; }
.pat-vinculos form { position: absolute; top: 0; right: 0; }
.pat-interface-lista { margin-top: 16px; }
.pat-interface-item { border-bottom: 1px solid var(--divisoria); }
.pat-interface-item>summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 3px; cursor: pointer; list-style: none; }
.pat-interface-item>summary::-webkit-details-marker { display: none; }
.pat-interface-item>summary span,.pat-interface-item>summary strong,.pat-interface-item>summary small { display: block; }
.pat-interface-item>summary strong { font: 700 12.5px var(--fonte); }
.pat-interface-item>summary small { margin-top: 3px; font: 500 10.5px var(--fonte); color: var(--tinta-6); }
.pat-interface-item>summary b { font: 700 10.5px var(--fonte); color: var(--azul); }
.pat-interface-item__acoes { padding: 13px; border-radius: 8px; background: var(--cinza-fundo); }
.pat-interface-item__acoes>form:first-child { display: flex; flex-direction: column; gap: 10px; }
.pat-interface-item__acoes>form:last-child { margin-top: 10px; }
.pat-interface-rascunho { display: flex; flex-direction: column; gap: 7px; margin: 7px 0 9px; }
.pat-interface-rascunho>div { display: grid; grid-template-columns: minmax(0,1fr) 38px; gap: 7px; }
.pat-interface-rascunho>div.tem-poe { grid-template-columns: minmax(0,1fr) auto 38px; }
.pat-interface-rascunho>div.tem-poe--duplo { grid-template-columns: minmax(0,1fr) auto auto 38px; }
.pat-interface-rascunho input,.pat-interface-gerador input { width: 100%; border: 1px solid var(--campo-bd); border-radius: 7px; padding: 9px 10px; background: #fff; font: 500 12px var(--fonte); }
.pat-interface-poe { display: flex; align-items: center; gap: 5px; padding: 0 7px; border: 1px solid var(--campo-bd); border-radius: 7px; background: #fff; font: 700 10.5px var(--fonte); color: var(--tinta-3); }
.pat-interface-poe input { width: auto; margin: 0; }
.pat-interface-rascunho button { border: 1px solid var(--vermelho-claro-bd); border-radius: 7px; background: #fff; color: var(--vermelho); font: 700 18px var(--fonte); cursor: pointer; }
.pat-interface-gerador { padding: 12px; border: 1px solid var(--borda); border-radius: 9px; background: var(--cinza-fundo); }
.pat-interface-gerador legend { padding: 0 5px; font: 700 10px var(--fonte); color: var(--tinta-6); text-transform: uppercase; }
.pat-interface-gerador__campos { display: grid; grid-template-columns: 1.6fr repeat(3,.7fr); gap: 8px; margin-bottom: 10px; }
.pat-interface-gerador label { font: 650 10px var(--fonte); color: var(--tinta-5); }
.pat-interface-gerador input { display: block; margin-top: 4px; }
.pat-zona-perigo { border-color: var(--vermelho-claro-bd); background: var(--vermelho-claro); }
.pat-zona-perigo>p { max-width: 760px; font: 500 12px/1.5 var(--fonte); color: var(--tinta-3); }
.pat-zona-perigo form { display: grid; grid-template-columns: minmax(220px,420px) auto; align-items: end; gap: 12px; margin-top: 13px; }
.pat-galeria { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 12px 0; }
.pat-foto { overflow: hidden; margin: 0; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-fundo); }
.pat-foto.is-principal { border: 2px solid var(--azul); }
.pat-foto>a { display: block; aspect-ratio: 4/3; background: #dce5ec; }
.pat-foto img { width: 100%; height: 100%; display: block; object-fit: cover; }
.pat-foto figcaption { padding: 10px; }
.pat-foto figcaption span { display: block; overflow: hidden; font: 700 12px var(--fonte); text-overflow: ellipsis; white-space: nowrap; }
.pat-foto figcaption small { display: block; margin-top: 3px; font: 500 10px var(--fonte); color: var(--tinta-6); }
.pat-foto figcaption form { margin-top: 7px; }
.pat-foto figcaption button { padding: 0; border: 0; background: none; color: var(--azul); font: 700 10.5px var(--fonte); cursor: pointer; }
.pat-documentos { margin-top: 12px; }
.pat-documento-item { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--divisoria); }
.pat-documento-item>a { flex: 1; min-width: 0; border-bottom: 0 !important; }
.pat-documento-item form { flex: 0 0 auto; }
.pat-arquivo-excluir { border: 0; padding: 4px 0; background: transparent; color: var(--vermelho); font: 700 10.5px var(--fonte); cursor: pointer; }
.pat-arquivo-excluir:hover { text-decoration: underline; }
.pat-arquivo-lote { display: flex; flex-direction: column; gap: 18px; }
.pat-arquivo-lote__ativos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; max-height: 480px; overflow: auto; margin: 16px 0; padding: 12px; border: 1px solid var(--borda); border-radius: 9px; }
.pat-arquivo-lote__ativos legend { padding: 0 6px; font: 700 11px var(--fonte); color: var(--tinta-5); text-transform: uppercase; }
.pat-arquivo-lote__ativos>label { display: flex; align-items: flex-start; gap: 8px; padding: 10px; border-radius: 7px; background: var(--cinza-fundo); cursor: pointer; }
.pat-arquivo-lote__ativos>label input { margin-top: 2px; }
.pat-arquivo-lote__ativos>label span { display: flex; min-width: 0; flex-direction: column; }
.pat-arquivo-lote__ativos>label strong { font: 700 12px/1.35 var(--fonte); }
.pat-arquivo-lote__ativos>label small { margin-top: 2px; color: var(--tinta-6); font: 500 10.5px/1.35 var(--fonte); }
.pat-copia { display: flex; flex-direction: column; gap: 18px; }
.pat-copia__origem { display: flex; align-items: center; gap: 14px; }
.pat-copia__origem h2 { margin: 0; font: 800 20px/1.25 var(--fonte); color: var(--tinta); }
.pat-copia__origem p { margin: 3px 0 0; font: 600 11px var(--fonte); color: var(--tinta-6); }
.pat-copia__selecionar { display: flex; justify-content: flex-end; margin: 14px 0 6px; }
.pat-copia__campos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 12px; border: 1px solid var(--borda); border-radius: 9px; }
.pat-copia__campos legend { padding: 0 6px; font: 700 11px var(--fonte); color: var(--tinta-5); text-transform: uppercase; }
.pat-copia__campos>label { display: flex; align-items: flex-start; gap: 9px; padding: 11px; border-radius: 8px; background: var(--cinza-fundo); cursor: pointer; }
.pat-copia__campos>label input { flex: 0 0 auto; margin-top: 2px; }
.pat-copia__campos>label span { display: flex; min-width: 0; flex-direction: column; }
.pat-copia__campos>label strong { font: 750 12px/1.35 var(--fonte); color: var(--tinta-2); }
.pat-copia__campos>label small { margin-top: 3px; overflow-wrap: anywhere; font: 500 10.5px/1.4 var(--fonte); color: var(--tinta-6); }
.pat-copia__bloqueados { display: flex; align-items: flex-start; gap: 9px; margin-top: 12px; padding: 11px 12px; border: 1px solid var(--ambar-claro-bd); border-radius: 8px; background: var(--ambar-claro); color: var(--tinta-3); }
.pat-copia__bloqueados strong { flex: 0 0 auto; font: 750 11px var(--fonte); }
.pat-copia__bloqueados span { font: 500 11px/1.4 var(--fonte); }
.pat-copia__interfaces { display: flex; align-items: flex-start; gap: 10px; margin-top: 14px; padding: 13px; border: 1px solid var(--azul-claro-bd); border-radius: 9px; background: var(--azul-claro); cursor: pointer; }
.pat-copia__interfaces>input { flex: 0 0 auto; margin-top: 2px; }
.pat-copia__interfaces>span { display: flex; min-width: 0; flex-direction: column; }
.pat-copia__interfaces strong { font: 750 12px var(--fonte); color: var(--azul); }
.pat-copia__interfaces small { margin-top: 4px; overflow-wrap: anywhere; font: 500 10.5px/1.45 var(--fonte); color: var(--tinta-4); }
.pat-arquivo-lote__ativos input:disabled+span { opacity: .45; }
.pat-exportacao { min-width: 0; }
.pat-exportacao__check { display: flex; justify-content: center; }
.pat-exportacao__check input { width: 18px; height: 18px; cursor: pointer; accent-color: var(--azul); }
.pat-exportacao .tab__linha a.forte:hover,.pat-exportacao .tab__linha a:has(.cod):hover { text-decoration: underline; }
.pat-exportacao__rodape { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; }
.pat-exportacao__selecao { display: flex; min-width: 0; align-items: center; gap: 18px; }
.pat-exportacao__selecao .check { white-space: nowrap; }
.pat-exportacao__paginacao { display: flex; align-items: center; gap: 12px; }
.pat-exportacoes__explicacao { margin-bottom: 16px; border-color: var(--azul-claro-bd); background: var(--azul-claro); }
.pat-cabos { display: grid; gap: 16px; }
.pat-cabos__hero { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(420px,.75fr); gap: 28px; overflow: hidden; border: 0; color: #fff; background: linear-gradient(128deg,#102f50 0%,#173d66 56%,#216b69 100%); box-shadow: 0 18px 48px rgba(16,47,80,.18); }
.pat-cabos__hero>div:first-child>span { color: #9edbd4; font: 800 10px/1 var(--fonte); letter-spacing: .13em; }
.pat-cabos__hero h2 { margin: 9px 0 7px; color: #fff; font: 850 clamp(23px,3vw,34px)/1.08 var(--fonte); letter-spacing: -.025em; }
.pat-cabos__hero p { max-width: 690px; margin: 0; color: rgba(255,255,255,.78); font: 520 13px/1.55 var(--fonte); }
.pat-cabos__hero .grade-info { align-self: center; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0; }
.pat-cabos__hero .grade-info>div { padding: 13px 14px; border: 1px solid rgba(255,255,255,.14); border-radius: 11px; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.pat-cabos__hero .grade-info small { display: block; color: rgba(255,255,255,.62); font: 800 8px/1.2 var(--fonte); letter-spacing: .08em; }
.pat-cabos__hero .grade-info strong { display: block; margin-top: 5px; color: #fff; font: 850 25px/1 var(--fonte); }

/* Central de cobrança do recadastramento. Mantém muita informação operacional
   legível sem transformar cada responsável em uma linha separada. */
.recad-lembretes { display:grid; gap:16px; }
.recad-lembretes__hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr); gap:28px; overflow:hidden; border:0; color:#fff; background:linear-gradient(128deg,#123d36 0%,#14564b 56%,#174a70 100%); box-shadow:0 18px 48px rgba(18,61,54,.18); }
.recad-lembretes__hero>div:first-child>span { color:#a8e2d2; font:800 10px/1 var(--fonte); letter-spacing:.13em; }
.recad-lembretes__hero h2 { margin:9px 0 7px; color:#fff; font:850 clamp(23px,3vw,34px)/1.08 var(--fonte); letter-spacing:-.025em; }
.recad-lembretes__hero p { max-width:690px; margin:0; color:rgba(255,255,255,.79); font:520 13px/1.55 var(--fonte); }
.recad-lembretes__hero .grade-info { align-self:center; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0; }
.recad-lembretes__hero .grade-info>div { padding:13px 14px; border:1px solid rgba(255,255,255,.14); border-radius:11px; background:rgba(255,255,255,.08); backdrop-filter:blur(8px); }
.recad-lembretes__hero .grade-info small { display:block; color:rgba(255,255,255,.63); font:800 8px/1.2 var(--fonte); letter-spacing:.08em; }
.recad-lembretes__hero .grade-info strong { display:block; margin-top:5px; color:#fff; font:850 25px/1 var(--fonte); }
.recad-lembretes__compor { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:14px 20px; align-items:start; margin-bottom:16px; }
.recad-lembretes__compor>label:not(.check) { display:grid; gap:6px; }
.recad-lembretes__compor>label>span { font-size:12px; font-weight:750; }
.recad-lembretes__mensagem,.recad-lembretes__compor>.check { grid-column:1/-1; }
.recad-responsavel { display:block; padding:5px 0; }
.recad-responsavel+ .recad-responsavel { border-top:1px solid var(--borda); }
.recad-responsavel strong,.recad-responsavel small { display:block; }
.recad-responsavel small { margin-top:2px; color:var(--tinta-4); }
.recad-lembretes__rodape { display:flex; width:100%; align-items:center; justify-content:space-between; gap:14px; }
.recad-lembretes__acoes { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:14px; }
.recad-linha-acoes { display:flex; align-items:flex-start; flex-direction:column; gap:6px; }

@media (max-width: 760px) {
  .recad-lembretes__hero,.recad-lembretes__compor { grid-template-columns:1fr; }
  .recad-lembretes__hero { gap:18px; }
  .recad-lembretes__hero .grade-info { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .recad-lembretes__mensagem,.recad-lembretes__compor>.check { grid-column:auto; }
  .recad-lembretes__rodape { align-items:flex-start; flex-direction:column; }
  .recad-lembretes__acoes { align-items:stretch; flex-direction:column; }
  .recad-lembretes__acoes .btn { width:100%; }
}
.pat-copia__passo { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--divisoria); }
.pat-topologia-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin: 13px 0; }
.pat-topologia-kpis>div { padding: 12px; border-radius: 9px; background: var(--cinza-fundo); }
.pat-topologia-kpis span { display: block; font: 700 9.5px var(--fonte); letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-6); }
.pat-topologia-kpis strong { display: block; margin-top: 4px; font: 800 22px var(--fonte); color: var(--tinta); }
.pat-topologia-kpis small { display: block; margin-top: 2px; font: 500 9px var(--fonte); color: var(--tinta-6); }
.pat-topologia-kpis .is-alerta { background: var(--ambar-claro); }
.pat-topologia-kpis .is-alerta strong { color: var(--ambar); }
.pat-capacidades { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin: 13px 0; }
.pat-capacidades>div { padding: 12px; border: 1px solid var(--divisoria); border-radius: 9px; background: #fff; }
.pat-capacidades span,.pat-capacidades strong,.pat-capacidades em { display: block; }
.pat-capacidades span { color: var(--tinta-6); font: 700 9.5px var(--fonte); letter-spacing: .04em; text-transform: uppercase; }
.pat-capacidades strong { margin-top: 5px; color: var(--tinta); font: 800 18px var(--fonte); }
.pat-capacidades strong small { font-size: 10px; color: var(--tinta-6); }
.pat-capacidades i { display: block; overflow: hidden; height: 6px; margin: 9px 0 5px; border-radius: 999px; background: var(--cinza-fundo); }
.pat-capacidades i b { display: block; height: 100%; border-radius: inherit; background: var(--azul); }
.pat-capacidades em { color: var(--tinta-6); font: normal 600 9.5px var(--fonte); }
.pat-capacidades .is-excedida { border-color: var(--vermelho-claro-bd); background: var(--vermelho-claro); }
.pat-capacidades .is-excedida i b { background: var(--vermelho); }
.pat-capacidades .is-excedida em { color: var(--vermelho); }
.pat-alertas { margin: 12px 0; padding: 13px 14px; border: 1px solid var(--ambar-claro-bd); border-radius: 9px; background: var(--ambar-fundo); }
.pat-alertas>strong { font: 750 12.5px var(--fonte); color: var(--ambar); }
.pat-alertas p { margin: 5px 0 0; font: 500 11.5px/1.45 var(--fonte); color: var(--tinta-3); }
.pat-alertas-operacionais { margin-bottom: 16px; border-color: var(--ambar-claro-bd); }
.pat-alertas-operacionais>div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.pat-alertas-operacionais a { min-width: 0; padding: 11px 12px; border: 1px solid var(--divisoria); border-radius: 8px; background: var(--ambar-fundo); }
.pat-alertas-operacionais a>span,.pat-alertas-operacionais a>strong,.pat-alertas-operacionais a>small { display: block; }
.pat-alertas-operacionais a>strong { overflow: hidden; margin-top: 4px; color: var(--tinta); font: 700 12.5px var(--fonte); text-overflow: ellipsis; white-space: nowrap; }
.pat-alertas-operacionais a>small { margin-top: 4px; color: var(--tinta-5); font: 500 10.5px/1.4 var(--fonte); }
.pat-planos { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.pat-planos>div { padding: 11px 12px; border: 1px solid var(--divisoria); border-left: 4px solid var(--verde); border-radius: 8px; background: var(--cinza-fundo); }
.pat-planos>div.is-vencido { border-left-color: var(--vermelho); background: var(--vermelho-claro); }
.pat-planos strong,.pat-planos span,.pat-planos small { display: block; }
.pat-planos strong { font: 700 12.5px var(--fonte); color: var(--tinta); }
.pat-planos span { margin-top: 4px; font: 500 11px/1.45 var(--fonte); color: var(--tinta-5); }
.pat-planos small { margin-top: 3px; font: 600 10.5px var(--fonte); color: var(--azul); }
.pat-subtitulo { margin: 20px 0 0; padding-top: 17px; border-top: 1px solid var(--divisoria); font: 750 13px var(--fonte); }
.pat-planos-config { margin-top: 18px; }
.pat-relatorio { display: flex; flex-direction: column; gap: 18px; }
.pat-relatorio form>.btn { margin-top: 12px; }
.pat-doc { display:flex; flex-direction:column; gap:22px; }
.pat-doc-hero,.pat-doc-previa { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px; align-items:center; padding:30px 32px; border-radius:20px; color:#fff; background:linear-gradient(128deg,#102f49,#195578 62%,#28765f); box-shadow:0 18px 45px rgba(15,48,72,.18); }
.pat-doc-hero::after,.pat-doc-previa::after { content:""; position:absolute; width:280px; height:280px; border:45px solid rgba(255,255,255,.055); border-radius:50%; right:-90px; top:-120px; pointer-events:none; }
.pat-doc-hero span,.pat-doc-previa>div:first-child>span { display:block; margin-bottom:8px; color:#a9d7e9; font:800 10px/1.2 var(--fonte); letter-spacing:.16em; }
.pat-doc-hero h2,.pat-doc-previa h2 { margin:0; font:800 28px/1.1 var(--fonte); }
.pat-doc-hero p,.pat-doc-previa p { max-width:680px; margin:10px 0 0; color:#d9e7ef; font:500 13px/1.55 var(--fonte); }
.pat-doc-hero__fluxo { position:relative; z-index:1; display:flex; align-items:center; gap:7px; padding:13px; border:1px solid rgba(255,255,255,.2); border-radius:13px; background:rgba(255,255,255,.08); backdrop-filter:blur(8px); }
.pat-doc-hero__fluxo b { padding:7px 8px; border-radius:6px; background:rgba(255,255,255,.11); font:800 8px var(--fonte); letter-spacing:.08em; white-space:nowrap; }
.pat-doc-hero__fluxo i { color:#83d4b1; font:700 15px var(--fonte); }
.pat-doc-form { display:grid; grid-template-columns:1.35fr repeat(4,minmax(120px,.7fr)); gap:12px; align-items:end; margin-top:18px; }
.pat-doc-form>.btn { min-height:42px; grid-column:1/-1; justify-self:start; }
.pat-doc-grupo>div:first-child { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:10px; }
.pat-doc-grupo h2 { margin:0; color:var(--tinta); font:800 17px var(--fonte); }
.pat-doc-grupo>div:first-child span { color:var(--tinta-5); font:700 10px var(--fonte); }
.pat-doc-modelos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pat-doc-modelos>a { display:flex; min-height:165px; flex-direction:column; padding:18px; border:1px solid var(--divisoria); border-radius:14px; color:var(--tinta); background:var(--cartao); box-shadow:0 5px 20px rgba(25,52,75,.045); transition:transform .16s,border-color .16s,box-shadow .16s; }
.pat-doc-modelos>a:hover { transform:translateY(-2px); border-color:#83aac8; box-shadow:0 12px 28px rgba(25,52,75,.1); }
.pat-doc-modelos small { color:#39755f; font:800 9px var(--fonte); letter-spacing:.06em; text-transform:uppercase; }
.pat-doc-modelos strong { margin-top:9px; font:800 14px/1.25 var(--fonte); }
.pat-doc-modelos p { margin:8px 0; color:var(--tinta-5); font:500 11px/1.45 var(--fonte); }
.pat-doc-modelos b { margin-top:auto; color:#28648f; font:750 10.5px var(--fonte); }
.pat-doc-previa { grid-template-columns:minmax(0,1fr) minmax(420px,.75fr); }
.pat-doc-kpis { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.pat-doc-kpis>div { padding:12px; border-radius:10px; background:rgba(255,255,255,.1); }
.pat-doc-kpis small { display:block; color:#bcd8e6; font:700 8px var(--fonte); text-transform:uppercase; }
.pat-doc-kpis strong { display:block; margin-top:4px; color:#fff; font:800 18px var(--fonte); }
.pat-doc-alerta { border-left:4px solid #d29021; }
.pat-doc-alerta>div { display:grid; gap:5px; margin-top:13px; }
.pat-doc-alerta>div>span { display:grid; grid-template-columns:75px 90px 1fr; gap:10px; padding:8px 10px; border-radius:7px; background:#fbf7ef; color:var(--tinta-4); font:500 10.5px/1.35 var(--fonte); }
.pat-doc-alerta>div b { text-transform:uppercase; }
.pat-doc-alerta [data-severidade="crítica"] b,.pat-doc-alerta [data-severidade="alta"] b { color:#a33831; }
.pat-doc-ok { border-left:4px solid #39916a; color:#246f51; }
.pat-doc-secao>.secao-cab>span { padding:5px 8px; border-radius:999px; color:#32627d; background:#e9f2f7; font:750 9px var(--fonte); }
.pat-doc-tabela { overflow:auto; max-height:580px; margin-top:14px; border:1px solid var(--divisoria); border-radius:9px; }
.pat-doc-tabela table { width:max-content; min-width:100%; border-collapse:collapse; }
.pat-doc-tabela th { position:sticky; z-index:2; top:0; padding:9px 10px; color:#fff; background:#173f5f; font:800 8px var(--fonte); letter-spacing:.04em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.pat-doc-tabela td { max-width:280px; padding:8px 10px; border-bottom:1px solid var(--divisoria); color:var(--tinta-3); font:500 9.5px/1.35 var(--fonte); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pat-doc-tabela tr:nth-child(even) td { background:#f7f9fb; }
.pat-doc-emissao { display:flex; justify-content:space-between; align-items:center; gap:22px; border:1px solid #a9c9b9; background:linear-gradient(110deg,#f5fbf7,#fff); }
.pat-doc-emissao p { margin:5px 0 0; color:var(--tinta-5); font:500 11px/1.4 var(--fonte); }
.pat-doc-config { display:flex; flex-direction:column; gap:17px; }
.pat-doc-config__grade { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.pat-doc-config__grade details { border:1px solid var(--divisoria); border-radius:9px; background:#f9fbfc; }
.pat-doc-config__grade summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 12px; cursor:pointer; }
.pat-doc-config__grade summary label { display:flex; align-items:center; gap:7px; color:var(--tinta-2); font:700 10.5px var(--fonte); }
.pat-doc-config__grade summary span { color:var(--tinta-5); font:650 9px var(--fonte); }
.pat-doc-config__grade details>div { display:flex; flex-wrap:wrap; gap:6px; padding:0 12px 12px; }
.pat-doc-config__grade details>div label { display:flex; align-items:center; gap:5px; padding:5px 7px; border-radius:6px; color:var(--tinta-4); background:#fff; font:600 9px var(--fonte); }
.pat-doc-integridade dl { display:grid; grid-template-columns:1fr 2fr; gap:7px; margin:14px 0 0; }
.pat-doc-integridade dl>div { min-width:0; padding:9px 11px; border-radius:7px; background:#f5f7f9; }
.pat-doc-integridade dt { color:var(--tinta-5); font:750 8px var(--fonte); text-transform:uppercase; }
.pat-doc-integridade dd { overflow-wrap:anywhere; margin:4px 0 0; color:var(--tinta-2); font:500 9px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace; }
.pat-doc-arquivos { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.pat-doc-arquivos>a { padding:15px; border:1px solid var(--divisoria); border-radius:10px; color:var(--tinta); }
.pat-doc-arquivos strong,.pat-doc-arquivos span { display:block; }.pat-doc-arquivos strong{font:800 12px var(--fonte)}.pat-doc-arquivos span{margin-top:5px;color:var(--tinta-5);font:500 9.5px var(--fonte)}
@media (max-width: 900px) {
  .pat-doc-hero,.pat-doc-previa { grid-template-columns:1fr; padding:24px; }
  .pat-doc-hero__fluxo { width:max-content; max-width:100%; overflow:auto; }
  .pat-doc-form { grid-template-columns:1fr 1fr; }
  .pat-doc-modelos { grid-template-columns:1fr 1fr; }
  .pat-doc-kpis { grid-template-columns:1fr 1fr; }
}
@media (max-width: 600px) {
  .pat-doc-hero h2,.pat-doc-previa h2 { font-size:23px; }
  .pat-doc-form,.pat-doc-modelos,.pat-doc-arquivos { grid-template-columns:1fr; }
  .pat-doc-config__grade { grid-template-columns:1fr; }
  .pat-doc-form>.btn { width:100%; }
  .pat-doc-emissao { align-items:stretch; flex-direction:column; }
  .pat-doc-emissao form,.pat-doc-emissao .btn { width:100%; }
  .pat-doc-alerta>div>span { grid-template-columns:72px 1fr; }.pat-doc-alerta>div>span:not(b):not(strong){grid-column:1/-1}
  .pat-doc-integridade dl { grid-template-columns:1fr; }
}
.pat-capacidade-relatorio,.pat-inconsistencias-relatorio { display: flex; flex-direction: column; gap: 7px; margin-top: 13px; }
.pat-capacidade-relatorio>a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 11px 12px; border: 1px solid var(--divisoria); border-radius: 8px; color: var(--tinta); }
.pat-capacidade-relatorio span,.pat-capacidade-relatorio strong,.pat-capacidade-relatorio small { display: block; }
.pat-capacidade-relatorio strong { font: 700 12px var(--fonte); }
.pat-capacidade-relatorio small { margin-top: 3px; color: var(--tinta-6); font: 500 10.5px var(--fonte); }
.pat-capacidade-relatorio b { flex: 0 0 auto; color: var(--azul); font: 750 12px var(--fonte); }
.pat-capacidade-relatorio .is-excedida { border-color: var(--vermelho-claro-bd); background: var(--vermelho-claro); }
.pat-capacidade-relatorio .is-excedida b { color: var(--vermelho); }
.pat-inconsistencias-relatorio>a { display: grid; grid-template-columns: auto minmax(180px,.65fr) minmax(260px,1fr); align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--divisoria); color: var(--tinta); }
.pat-inconsistencias-relatorio strong { font: 700 11.5px var(--fonte); }
.pat-inconsistencias-relatorio small { color: var(--tinta-5); font: 500 11px/1.4 var(--fonte); }
.pat-kpi-dinheiro { font-size: 20px; letter-spacing: -.03em; }
.pat-entradas,.pat-entrada-detalhe { display: flex; flex-direction: column; gap: 18px; }
.pat-complementacao,.pat-ativos-gerados { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.pat-complementacao a,.pat-ativos-gerados a { min-width: 0; padding: 11px 12px; border: 1px solid var(--divisoria); border-radius: 8px; color: var(--tinta); background: var(--cinza-fundo); }
.pat-complementacao span,.pat-complementacao strong,.pat-complementacao small,.pat-ativos-gerados span,.pat-ativos-gerados strong,.pat-ativos-gerados small { display: block; }
.pat-complementacao strong,.pat-ativos-gerados strong { overflow: hidden; margin-top: 5px; font: 700 12px var(--fonte); text-overflow: ellipsis; white-space: nowrap; }
.pat-complementacao small,.pat-ativos-gerados small { margin-top: 4px; color: var(--tinta-6); font: 500 10.5px/1.4 var(--fonte); }
.pat-entrada-nova form { margin-top: 17px; }
.pat-manual { margin: 16px 0; padding: 13px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-fundo); }
.pat-manual>summary { cursor: pointer; color: var(--azul); font: 700 12.5px var(--fonte); }
.pat-manual[open]>summary { margin-bottom: 14px; }
.pat-entrada-acoes { display: flex; align-items: center; gap: 13px; margin-top: 15px; }
.pat-entrada-acoes span { color: var(--tinta-6); font: 500 10.5px var(--fonte); }
.pat-entrada-resumo { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.pat-entrada-resumo>div:first-child>span { color: var(--azul); font: 750 10px var(--fonte); letter-spacing: .06em; }
.pat-entrada-resumo h2 { margin: 7px 0 4px; font: 800 22px var(--fonte); }
.pat-entrada-resumo p { color: var(--tinta-5); font-size: 11.5px; }
.pat-entrada-resumo>div:last-child { text-align: right; }
.pat-entrada-resumo>div:last-child>strong { display: block; margin-bottom: 8px; font: 800 22px var(--fonte); }
.pat-entrada-documentos>div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.pat-entrada-documentos>div span { padding: 10px; border-radius: 8px; color: var(--tinta-6); background: var(--cinza-fundo); font: 600 10px var(--fonte); }
.pat-entrada-documentos>div strong { display: block; margin-top: 4px; color: var(--tinta); font: 750 13px var(--fonte); }
.pat-entrada-documentos nav { display: flex; gap: 9px; margin-top: 13px; }
.pat-entrada-documentos nav a { color: var(--azul); font: 700 11.5px var(--fonte); }
.pat-entrada-documentos nav a+a::before { content: "·"; margin-right: 9px; color: var(--tinta-7); }
.pat-entrada-documentos>p { overflow-wrap: anywhere; margin-top: 10px; color: var(--tinta-5); font: 500 10.5px/1.5 var(--fonte); }
.pat-itens-revisao { display: flex; flex-direction: column; gap: 12px; }
.pat-itens-revisao article header { margin-bottom: 15px; }
.pat-itens-revisao header span,.pat-itens-revisao header strong,.pat-itens-revisao header small { display: block; }
.pat-itens-revisao header span { color: var(--azul); font: 750 9.5px var(--fonte); letter-spacing: .06em; }
.pat-itens-revisao header strong { margin-top: 5px; font: 750 14px/1.4 var(--fonte); }
.pat-itens-revisao header small { margin-top: 4px; color: var(--tinta-6); font: 500 10.5px var(--fonte); }
.pat-confirmar-lote { position: sticky; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-color: var(--azul-claro-bd); box-shadow: 0 10px 30px rgb(25 56 88 / .14); }
.pat-confirmar-lote strong { font: 750 13px var(--fonte); }
.pat-confirmar-lote p { margin-top: 4px; color: var(--tinta-5); font: 500 10.5px/1.4 var(--fonte); }
.pat-confirmar-lote>div:last-child { display: flex; flex: 0 0 auto; gap: 8px; }
.pat-origem-fiscal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; border-color: var(--azul-claro-bd); background: var(--azul-claro); }
.pat-origem-fiscal span,.pat-origem-fiscal strong,.pat-origem-fiscal small { display: block; }
.pat-origem-fiscal span { color: var(--azul); font: 750 9.5px var(--fonte); letter-spacing: .06em; }
.pat-origem-fiscal strong { margin-top: 4px; font: 750 13px var(--fonte); }
.pat-origem-fiscal small { margin-top: 3px; color: var(--tinta-5); font: 500 10.5px var(--fonte); }
.pat-origem-fiscal nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.pat-origem-fiscal__editar { flex: 0 0 100%; padding-top: 10px; border-top: 1px solid var(--azul-claro-bd); }
.pat-origem-fiscal__editar summary { cursor: pointer; color: var(--azul); font: 700 11.5px var(--fonte); }
.pat-origem-fiscal__editar form { margin-top: 12px; }
.pat-origem-fiscal__editar form+form { margin-top: 8px; }
.pat-config__nova { display: grid; grid-template-columns: 1.3fr 1fr .6fr auto; gap: 10px; margin-top: 14px; }
.pat-config__grade { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-top: 16px; }
.pat-config__cat span { font: 700 10px var(--fonte); letter-spacing: .07em; color: var(--tinta-6); text-transform: uppercase; }
.pat-config__cat h2 { margin: 8px 0 5px; font: 750 16px var(--fonte); }
.pat-config__cat p { font-size: 12px; color: var(--tinta-5); }
.pat-config__cat b { display: block; margin-top: 18px; font-size: 12px; color: var(--azul); }
.pat-matriz__scroll { overflow-x: auto; margin: 15px 0; }
.pat-matriz table { min-width: 1050px; border-collapse: collapse; }
.pat-matriz th,.pat-matriz td { padding: 8px; border-bottom: 1px solid var(--divisoria); text-align: left; }
.pat-matriz th { font: 700 11px var(--fonte); }
.pat-matriz th small { display: block; margin-top: 3px; color: var(--tinta-6); }
.pat-matriz th small code { color: var(--azul); font: 650 10px var(--mono); }
.pat-matriz td .selecao { min-width: 105px; padding: 7px; font-size: 11px; }
.pat-matriz__ordem { display: flex; gap: 4px; }
.pat-matriz__ordem button { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--borda); border-radius: 7px; background: #fff; color: var(--azul); font: 800 15px var(--fonte); cursor: pointer; }
.pat-matriz__ordem button:hover:not(:disabled) { border-color: var(--azul); background: var(--azul-claro); }
.pat-matriz__ordem button:disabled { opacity: .28; cursor: default; }
.pat-campo-adicionar__opcoes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 16px; }
.pat-campo-adicionar__opcoes>section { min-width: 0; padding: 15px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cinza-fundo); }
.pat-campo-adicionar__opcoes h3 { margin: 0; color: var(--tinta); font: 750 14px var(--fonte); }
.pat-campo-adicionar__opcoes h3+p { margin: 5px 0 14px; color: var(--tinta-5); font: 500 11px/1.45 var(--fonte); }
.pat-campo-adicionar__opcoes .form-pagina { margin: 0; }
.pat-campo-adicionar__opcoes .selecao { width: 100%; }
.texto-preservado { white-space: pre-wrap; font: 400 13px/1.7 var(--fonte); color: var(--tinta-2); }
.notas-fiscais { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.nota-fiscal-bloco {
  min-width: 0; padding: 14px; border: 1px solid var(--borda); border-radius: 9px;
  background: var(--cinza-fundo);
}
.nota-fiscal-bloco h3 { margin: 0 0 10px; font: 700 13px var(--fonte); color: var(--tinta); }
.nota-fiscal-bloco .anexos-lista { grid-template-columns: 1fr; }
.notas-fiscais__form { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--divisoria); }
.secao-cab {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
  margin-bottom: 14px;
}
.secao-cab .secao, .secao-cab .card__titulo { margin: 0; }
.propostas-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.proposta-card {
  display: flex; flex-direction: column; gap: 13px; min-width: 0;
  padding: 18px; border: 1px solid var(--borda); border-radius: 11px; background: #fff;
}
.proposta-card--vencedora { border: 2px solid var(--verde); padding: 17px; }
.proposta-card__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.proposta-card__titulo { font: 700 15px/1.3 var(--fonte); color: var(--azul); }
.proposta-card__topo p { margin-top: 4px; font: 500 12px var(--fonte); color: var(--tinta-5); }
.proposta-card__escopo {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;
  overflow: hidden; font: 400 12.5px/1.6 var(--fonte); color: var(--tinta-3);
}
.proposta-card__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font: 500 11.5px var(--fonte); color: var(--tinta-6); }
.proposta-card__acoes {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;
  margin-top: auto; padding-top: 11px; border-top: 1px solid var(--divisoria);
}
.proposta-card__acoes form { margin: 0; display: flex; }
.acao--botao { padding: 0; border: 0; background: none; cursor: pointer; font-family: var(--fonte); }
.vazio-destaque { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.vazio-destaque p { font: 500 13px var(--fonte); color: var(--tinta-4); }

.form-pagina { display: flex; flex-direction: column; gap: 20px; }
.form-pagina .area { min-height: 150px; }
.form-pagina__acoes {
  display: flex; justify-content: flex-end; gap: 10px; padding-top: 18px;
  border-top: 1px solid var(--divisoria);
}
.tripla { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.proposta-contexto { margin-bottom: 16px; border-left: 4px solid var(--azul); }
.proposta-contexto strong { display: block; margin-top: 5px; font: 700 16px var(--fonte); color: var(--tinta); }
.proposta-contexto p { margin-top: 7px; font: 400 12.5px/1.55 var(--fonte); color: var(--tinta-4); }
.anexos-lista { display: flex; flex-direction: column; border: 1px solid var(--borda); border-radius: 9px; overflow: hidden; }
.anexos-lista a {
  display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 9px;
  padding: 11px 13px; border-bottom: 1px solid var(--divisoria);
  font: 600 12px var(--fonte); color: var(--azul);
}
.anexos-lista a:last-child { border-bottom: 0; }
.anexos-lista small { font: 500 10.5px var(--fonte); color: var(--tinta-6); }
.anexo-adicionar { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.anexo-adicionar .upload { flex: 1; }

.proposta {
  border: 1.5px solid var(--borda); border-radius: 9px; padding: 12px;
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
}
.proposta--vencedora { border-color: var(--verde); }
.proposta__t { font: 700 13px var(--fonte); color: var(--tinta); }
.proposta__s { font: 400 11px var(--fonte); color: var(--tinta-5); }
.proposta form { margin: 0; }
.proposta__marcar {
  font: 600 11px var(--fonte); font-family: var(--fonte); color: var(--azul);
  background: none; border: 0; border-radius: 6px; padding: 5px 10px; cursor: pointer;
}
.proposta__marcar:hover { background: var(--azul-claro); }
.proposta__marcar.is-vencedora { color: var(--verde); background: var(--verde-claro); cursor: default; }

/* ------------------------------------------------------ obras do condomínio */

.obras-cond { display: flex; flex-direction: column; gap: 12px; }
.oc { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 18px; }
.oc__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.oc__t { font: 700 15px var(--fonte); color: var(--tinta); }
.oc__desc { font: 400 12.5px/1.6 var(--fonte); color: var(--tinta-3); max-width: 620px; }
.oc__meta { display: flex; gap: 24px; flex-wrap: wrap; font: 400 11.5px var(--fonte); color: var(--tinta-5); margin: 10px 0 8px; }
.oc__rest { font: 600 11.5px var(--fonte); color: var(--verde); }
.oc__rest--atraso { color: var(--vermelho); }
.oc__orcamentos {
  margin-top: 12px; padding: 10px 12px; border: 1px solid var(--borda);
  border-radius: 8px; background: var(--cinza-fundo);
}
.oc__orcamentos-t {
  display: block; margin-bottom: 6px; font: 700 9.5px var(--fonte);
  letter-spacing: .06em; color: var(--tinta-6);
}
.oc__orcamento { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 0; }
.oc__orcamento + .oc__orcamento { border-top: 1px solid var(--divisoria); }
.oc__orcamento > a { min-width: 0; color: var(--azul); }
.oc__orcamento strong { display: block; font: 650 12px/1.4 var(--fonte); }
.oc__orcamento span { display: block; margin-top: 2px; font: 400 10.5px var(--fonte); color: var(--tinta-5); }
.oc__orcamento form { flex: 0 0 auto; margin: 0; }
.oc__acoes { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.oc__acoes form { margin: 0; display: flex; }
.vinculos-atuais { display: flex; flex-direction: column; gap: 7px; }
.vinculos-atuais > a {
  padding: 9px 10px; border: 1px solid var(--borda); border-radius: 7px;
  font: 600 12px var(--fonte); color: var(--azul); background: var(--cinza-fundo);
}

/* Ficha interna da obra: andamento e leitura financeira em bento. */
.obra-ficha { display: flex; flex-direction: column; gap: 18px; }
.obra-ficha__cab {
  display: flex; justify-content: space-between; align-items: center; gap: 18px;
  background: linear-gradient(135deg, #fff 45%, var(--azul-claro));
}
.obra-ficha__cab h2 { margin: 8px 0 3px; font: 750 23px/1.2 var(--fonte); color: var(--tinta); }
.obra-ficha__cab p { font: 500 12px var(--fonte); color: var(--tinta-5); }
.obra-ficha__atalhos { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.obra-ficha__abas {
  display: flex; align-items: center; gap: 5px; padding: 5px;
  border: 1px solid var(--borda); border-radius: 10px; background: #fff;
}
.obra-ficha__abas a {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 38px; padding: 8px 15px; border-radius: 7px;
  font: 650 12.5px var(--fonte); color: var(--tinta-5);
}
.obra-ficha__abas a:hover { color: var(--azul); background: var(--azul-claro); }
.obra-ficha__abas a.is-ativo { color: #fff; background: var(--azul); }
.obra-ficha__abas span {
  min-width: 20px; padding: 2px 6px; border-radius: 999px;
  font-size: 10.5px; text-align: center; background: var(--cinza-chip); color: var(--tinta-4);
}
.obra-ficha__abas .is-ativo span { background: rgba(255,255,255,.18); color: #fff; }
.obra-bento { display: grid; grid-template-columns: 5fr 3fr 2fr 2fr; gap: 12px; }
.obra-bento__item {
  min-width: 0; min-height: 132px; padding: 19px; border: 1px solid var(--borda);
  border-radius: 13px; background: #fff; box-shadow: 0 4px 18px rgba(16,34,52,.035);
  display: flex; flex-direction: column; justify-content: space-between;
}
.obra-bento__item--principal { color: #fff; border-color: var(--azul); background: var(--azul); }
.obra-bento__item--realizado { border-color: #c8d6c9; background: var(--verde-claro); }
.obra-bento__item--alerta { border-color: var(--ambar-claro-bd); background: var(--ambar-fundo); }
.obra-bento__item > span { font: 750 9.5px var(--fonte); letter-spacing: .07em; color: var(--tinta-6); }
.obra-bento__item > strong { font: 750 22px/1.1 var(--fonte); color: var(--tinta); overflow-wrap: anywhere; }
.obra-bento__item > small { font: 450 10.5px/1.4 var(--fonte); color: var(--tinta-5); }
.obra-bento__item--principal > span,
.obra-bento__item--principal > strong,
.obra-bento__item--principal > small { color: #fff; }
.obra-ficha__dados { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.obra-ficha__dados dt { font: 700 9.5px var(--fonte); letter-spacing: .06em; color: var(--tinta-6); }
.obra-ficha__dados dd { margin: 4px 0 0; font: 600 13px/1.4 var(--fonte); color: var(--tinta-2); }
.obra-ficha__progresso { margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--divisoria); }
.obra-ficha__progresso > div:first-child { display: flex; justify-content: space-between; margin-bottom: 7px; }
.obra-ficha__progresso span, .obra-ficha__progresso small { font: 500 11px var(--fonte); color: var(--tinta-5); }
.obra-ficha__progresso strong { font: 700 12px var(--fonte); color: var(--azul); }
.obra-ficha__progresso small { display: block; margin-top: 7px; }
.texto-perigo { color: var(--vermelho) !important; font-weight: 650 !important; }
.obra-ficha__resumo { display: flex; flex-direction: column; gap: 4px; }
.obra-ficha__aprovados { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.obra-ficha__aprovados > a, .obra-ficha__pendentes > a {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 11px 12px; border: 1px solid var(--borda); border-radius: 8px;
  color: var(--tinta-2); background: var(--cinza-fundo);
}
.obra-ficha__aprovados strong, .obra-ficha__pendentes strong { display: block; font: 650 12.5px var(--fonte); }
.obra-ficha__aprovados small, .obra-ficha__pendentes small { display: block; margin-top: 3px; font: 450 10.5px var(--fonte); color: var(--tinta-5); }
.obra-ficha__aprovados b { flex: 0 0 auto; font: 700 13px var(--fonte); color: var(--azul); }
.obra-fin { border: 1px solid var(--borda); border-radius: 11px; background: #fff; overflow: hidden; }
.obra-fin__cab, .obra-fin__linha {
  display: grid; grid-template-columns: minmax(210px,2fr) minmax(145px,1.2fr) 105px 125px 130px 45px;
  gap: 13px; align-items: center;
}
.obra-fin__cab { padding: 10px 14px; background: var(--cinza-fundo); }
.obra-fin__cab span { font: 700 9px var(--fonte); letter-spacing: .055em; color: var(--tinta-6); text-transform: uppercase; }
.obra-fin__linha { padding: 14px; border-top: 1px solid var(--divisoria); }
.obra-fin__linha strong { display: block; font: 650 12px/1.4 var(--fonte); color: var(--tinta-2); }
.obra-fin__linha small { display: block; margin-top: 3px; font: 450 10px/1.4 var(--fonte); color: var(--tinta-6); }
.obra-fin__parte small { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.obra-fin__valor { font: 750 13px/1.3 var(--fonte); color: var(--azul); text-align: right; }
.obra-fin__total {
  display: flex; align-items: center; justify-content: flex-end; gap: 22px;
  padding: 15px 14px; border-top: 2px solid var(--azul-claro-bd); background: var(--azul-claro);
}
.obra-fin__total span { font: 750 9.5px var(--fonte); letter-spacing: .06em; color: var(--azul); }
.obra-fin__total strong { font: 750 18px var(--fonte); color: var(--azul); }
.obra-ficha__pendentes { display: flex; flex-direction: column; gap: 7px; }
.obra-ficha__pendentes > a > span:last-child { flex: 0 0 auto; font: 650 11px var(--fonte); color: var(--azul); }
.obra-ficha__criterio { font: 450 10.5px/1.5 var(--fonte); color: var(--tinta-6); }

@media (max-width: 1100px) {
  .obra-bento { grid-template-columns: 1fr 1fr; }
  .obra-fin { overflow-x: auto; }
  .obra-fin__cab, .obra-fin__linha { min-width: 900px; }
}

/* --------------------------------------------------------- larguras do design */

.limite-820 { max-width: 820px; }
.limite-860 { max-width: 860px; }
.limite-960 { max-width: 960px; }
.limite-1050 { max-width: 1050px; }
.limite-1200 { max-width: 1200px; }

/* ----------------------------------------------- documentos da gestão */
.doc-gestao { display: flex; flex-direction: column; gap: 16px; }
.doc-gestao-hero {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: center;
  padding: 26px; border-radius: 16px; color: #fff;
  background: linear-gradient(125deg, #153a5b 0%, #234d58 55%, #365a46 100%);
  box-shadow: var(--sombra-card);
}
.doc-gestao-hero > div:first-child > span,.doc-gestao-card__corpo > span { font: 750 9.5px var(--fonte); letter-spacing: .1em; }
.doc-gestao-hero h2 { margin: 6px 0 7px; font: 750 24px/1.15 var(--fonte); }
.doc-gestao-hero p { max-width: 620px; margin: 0; color: #d8e5e5; font: 500 13px/1.55 var(--fonte); }
.doc-gestao-kpis { display: grid; grid-template-columns: repeat(3, 104px); gap: 8px; }
.doc-gestao-kpis div { padding: 13px 10px; border: 1px solid rgb(255 255 255 / 18%); border-radius: 10px; background: rgb(255 255 255 / 9%); text-align: center; }
.doc-gestao-kpis small,.doc-gestao-kpis strong { display: block; }.doc-gestao-kpis small { color: #cfdddd; font: 650 9px var(--fonte); }.doc-gestao-kpis strong { margin-top: 3px; font: 750 23px var(--fonte); }
.doc-gestao-lista { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.doc-gestao-card { display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 15px; align-items: start; padding: 22px; border: 1px solid var(--borda); border-radius: 14px; background: #fff; box-shadow: var(--sombra-card); }
.doc-gestao-card__icone { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 13px; color: var(--azul); background: var(--azul-claro); }
.doc-gestao-card__corpo > span { color: var(--tinta-6); }.doc-gestao-card h2 { margin: 5px 0 7px; color: var(--tinta); font: 750 17px/1.25 var(--fonte); }
.doc-gestao-card p { margin: 0; min-height: 57px; color: var(--tinta-4); font: 500 12px/1.5 var(--fonte); }
.doc-gestao-card__campos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }
.doc-gestao-card__campos small { padding: 5px 7px; border-radius: 999px; color: var(--tinta-3); background: var(--cinza-chip); font: 650 9.5px var(--fonte); }
.doc-gestao-card > .btn { grid-column: 1 / -1; width: 100%; margin-top: 2px; }
.doc-gestao-nota { display: flex; align-items: center; gap: 14px; }.doc-gestao-nota > div { flex: 0 0 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; color: var(--verde); background: var(--verde-claro); }.doc-gestao-nota p { margin: 0; color: var(--tinta-3); font: 500 12.5px/1.5 var(--fonte); }
@media(max-width:850px){.doc-gestao-hero{grid-template-columns:1fr}.doc-gestao-kpis{grid-template-columns:repeat(3,1fr)}.doc-gestao-lista{grid-template-columns:1fr}}
@media(max-width:520px){.doc-gestao-hero{padding:20px}.doc-gestao-hero h2{font-size:21px}.doc-gestao-kpis{gap:5px}.doc-gestao-kpis div{padding:10px 5px}.doc-gestao-card{grid-template-columns:46px 1fr;padding:17px}.doc-gestao-card__icone{width:46px;height:46px}}

/* ----------------------------------------------------------- caixas de drawer */

.ctx { background: var(--zebra); border-radius: 9px; padding: 12px 14px; font: 400 11.5px/1.5 var(--fonte); color: var(--tinta-3); }
.ctx__t { font: 700 13.5px var(--fonte); color: var(--tinta); }
.ctx__s { font: 400 11.5px var(--fonte); color: var(--tinta-5); }
.ctx b { font-weight: 700; color: var(--tinta); }

.marcavel { display: flex; flex-direction: column; gap: 6px; }
.marcavel label {
  border: 1px solid var(--borda); border-radius: 8px; padding: 9px 11px;
  font: 500 12px var(--fonte); color: var(--tinta-3); cursor: pointer;
}
.marcavel label:hover { border-color: var(--azul); }
.marcavel input { position: absolute; opacity: 0; pointer-events: none; }
.marcavel label:has(input:checked) { border-color: var(--verde); background: var(--verde-claro); color: var(--verde); }
.marcavel label:has(input:checked) .marcavel__on { display: inline; }
.marcavel label:has(input:checked) .marcavel__off { display: none; }
.marcavel__on { display: none; }

.opcao-enq {
  border: 1px solid var(--borda); border-radius: 9px; padding: 10px;
  display: flex; gap: 10px; align-items: center;
}
.opcao-enq .upload {
  width: 52px; height: 40px; padding: 0; border-radius: 6px; background: var(--cinza-chip);
  border: 1px dashed var(--tracejada); display: flex; align-items: center;
  justify-content: center; font: 400 8.5px/1.2 var(--fonte); flex-shrink: 0;
}
.opcao-enq .entrada { flex: 1; }
.opcoes-enq { display: flex; flex-direction: column; gap: 8px; }

.escolha { display: flex; gap: 6px; flex-wrap: wrap; }
.escolha label {
  font: 600 11px var(--fonte); background: #fff; border: 1px solid var(--campo-bd);
  color: var(--tinta-3); border-radius: 7px; padding: 7px 12px; cursor: pointer;
}
.escolha label:hover { border-color: var(--azul); }
.escolha input { position: absolute; opacity: 0; pointer-events: none; }
.escolha label:has(input:checked) { background: var(--azul); border-color: var(--azul); color: #fff; }
.escolha--tags label:has(input[value=urgente]:checked) { background: var(--vermelho-claro); border-color: var(--vermelho); color: var(--vermelho); }

@media (max-width: 1100px) {
  .kanban { grid-template-columns: 1fr; }
  .grade--duas { grid-template-columns: 1fr; }
}
.gestao__ata { font: 400 11.5px var(--fonte); color: var(--tinta-5); margin-top: 12px; }

/* ------------------------------------------- ficha interna e histórico */

.voltar { display: inline-block; font: 600 11.5px var(--fonte); color: var(--tinta-4); text-decoration: none; margin-bottom: 14px; }
.voltar:hover { color: var(--azul); }

.ficha { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 18px; }
.ficha__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.ficha__t { font: 700 16px var(--fonte); color: var(--tinta); margin: 0; }
.ficha__s { font: 400 11.5px var(--fonte); color: var(--tinta-5); margin-top: 5px; }
.ficha__chips { display: flex; gap: 6px; flex-shrink: 0; }
.ficha__texto { font: 400 13px/1.65 var(--fonte); color: var(--tinta-2); margin-top: 14px; }

.secao { font: 700 11px var(--fonte); letter-spacing: .07em; text-transform: uppercase; color: var(--tinta-4); margin: 22px 0 10px; }

.hist { list-style: none; margin: 0; padding: 0 0 0 20px; border-left: 2px solid var(--divisoria); display: flex; flex-direction: column; gap: 16px; }
.hist__item { position: relative; background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 14px 16px; }
/* A bolinha fica sobre a linha da esquerda: é o que dá a leitura de linha do tempo. */
.hist__item::before {
  content: ""; position: absolute; left: -27px; top: 18px; width: 10px; height: 10px;
  border-radius: 50%; background: var(--tracejada); border: 2px solid #fff;
}
.hist__item--abertura::before { background: var(--tinta-4); }
.hist__item--resposta::before { background: var(--azul); }
.hist__item--replica::before  { background: var(--ambar); }
.hist__item--nota::before     { background: var(--tracejada); }
.hist__item--desfecho::before { background: var(--verde); }
.hist__item--nota { background: var(--zebra); border-style: dashed; }
.hist__item--desfecho { border-color: var(--verde); background: var(--verde-claro); }
.hist__cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.hist__quem { font: 700 12.5px var(--fonte); color: var(--tinta); }
.hist__quando { font: 400 10.5px var(--mono); color: var(--tinta-6); }
.hist__corpo { font: 400 12.5px/1.65 var(--fonte); color: var(--tinta-2); margin: 7px 0 0; white-space: pre-wrap; }
.hist__tipo { display: inline-block; font: 600 10px var(--fonte); letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-5); margin-top: 9px; }
.hist + .grade--duas { margin-top: 16px; }

.cartao-form { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.cartao-form .secao { margin: 0; }
.cartao-form .btn { align-self: flex-start; }

/* ------------------------------------------ prioridade e marcos do reparo */

.selo-prio {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font: 700 10.5px var(--fonte); letter-spacing: .04em; text-transform: uppercase;
  border-radius: 5px; padding: 4px 9px;
}
.selo-prio::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.selo-prio--baixa { color: var(--tinta-3); background: var(--cinza-chip); }
.selo-prio--media { color: var(--azul); background: var(--azul-claro); }
.selo-prio--alta { color: var(--ambar); background: var(--ambar-claro); }
.selo-prio--imediata { color: #fff; background: var(--vermelho); }

.marcos { display: flex; align-items: center; gap: 4px; }
.marcos__m {
  font: 600 9.5px var(--fonte); letter-spacing: .04em; text-transform: uppercase;
  white-space: nowrap; border-radius: 4px; padding: 3px 6px;
  color: var(--tinta-6); border: 1px dashed var(--tracejada);
}
.marcos__m--ok { color: var(--verde); background: var(--verde-claro); border: 1px solid var(--verde-claro); }

.cel-pilha { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }

/* --------------------------------------------------------- editor rico */

.editor { border: 1px solid var(--borda); border-radius: 8px; overflow: hidden; background: #fff; }
.editor.is-enviando { opacity: .6; pointer-events: none; }
.editor__barra {
  display: flex; align-items: center; gap: 2px; flex-wrap: wrap;
  padding: 6px; background: var(--zebra); border-bottom: 1px solid var(--borda);
}
.editor__barra button, .editor__foto {
  font: 600 11.5px var(--fonte); font-family: var(--fonte); color: var(--tinta-3);
  background: none; border: 1px solid transparent; border-radius: 5px;
  padding: 4px 8px; cursor: pointer; line-height: 1.4;
}
.editor__barra button:hover, .editor__foto:hover { background: #fff; border-color: var(--borda); }
.editor__barra button.is-ativo { background: var(--azul-claro); border-color: var(--azul-claro-bd); color: var(--azul); }
.editor__sep { width: 1px; height: 18px; background: var(--borda); margin: 0 4px; }
.editor__area {
  min-height: 190px; max-height: 340px; overflow-y: auto; padding: 12px 14px;
  font: 400 13px/1.6 var(--fonte); color: var(--tinta-2);
}
.editor__area:focus { outline: 2px solid var(--azul-claro-bd); outline-offset: -2px; }
.editor__area p { margin: 0 0 10px; }
.editor__area h2 { font: 700 15px var(--fonte); color: var(--tinta); margin: 14px 0 8px; }
.editor__area h3 { font: 600 13.5px var(--fonte); color: var(--tinta); margin: 12px 0 6px; }
.editor__area ul, .editor__area ol { margin: 0 0 10px; padding-left: 20px; }
.editor__area blockquote {
  margin: 0 0 10px; padding: 4px 0 4px 12px; border-left: 3px solid var(--azul-claro-bd);
  color: var(--tinta-4);
}
.editor__area img { max-width: 100%; border-radius: 8px; margin: 6px 0; }
.editor__area a { color: var(--azul); }
.editor__dica { font: 400 11px var(--fonte); color: var(--tinta-6); margin: 6px 0 0; }

/* corpo publicado, no drawer de leitura e no app do morador */
.rico { font: 400 13px/1.65 var(--fonte); color: var(--tinta-2); }
.rico p { margin: 0 0 10px; }
.rico h2 { font: 700 15px var(--fonte); color: var(--tinta); margin: 14px 0 8px; }
.rico h3 { font: 600 13.5px var(--fonte); color: var(--tinta); margin: 12px 0 6px; }
.rico ul, .rico ol { margin: 0 0 10px; padding-left: 20px; }
.rico blockquote {
  margin: 0 0 10px; padding: 4px 0 4px 12px; border-left: 3px solid var(--azul-claro-bd); color: var(--tinta-4);
}
.rico img { max-width: 100%; border-radius: 8px; margin: 6px 0; }
.rico a { color: var(--azul); }
.rico hr { border: 0; border-top: 1px solid var(--divisoria); margin: 14px 0; }

/* rascunho de enquete e apuração nominal */
.enq--rascunho { border-style: dashed; background: var(--zebra); }
a.enq__t { color: var(--tinta); }
a.enq__t:hover { color: var(--azul); text-decoration: underline; }
.nomes { display: flex; flex-wrap: wrap; gap: 6px; }

/* ficha da mudança: prestadores e seus documentos */
a.mud__link { color: var(--tinta); text-decoration: none; }
a.mud__link:hover { color: var(--azul); text-decoration: underline; }
.ficha__acoes { display: flex; gap: 14px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--divisoria); }
.secao__n { font: 600 10px var(--mono); color: var(--tinta-5); background: var(--cinza-chip); border-radius: 4px; padding: 2px 6px; margin-left: 6px; }
.secao__acao { margin: 10px 0 0; }
.anexos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.anexos .anexo { display: inline-flex; align-items: center; gap: 6px; }
.anexo a { color: var(--azul); text-decoration: none; }
.anexo a:hover { text-decoration: underline; }
.anexo__t { color: var(--tinta-6); }
.anexo__x { font: 600 10px var(--fonte); color: var(--tinta-5); background: none; border: 0; padding: 0; cursor: pointer; }
.anexo__x:hover { color: var(--vermelho); }
.anexo--falta { color: var(--tinta-6); font-style: italic; background: none; padding-left: 0; }
.anexo form { display: inline-flex; margin: 0; }

/* separador rotulado dentro de drawers longos (cadastro de funcionário) */
.divisor { display: flex; align-items: center; gap: 10px; margin: 4px 0 2px; }
.divisor::after { content: ""; flex: 1; height: 1px; background: var(--divisoria); }
.divisor span { font: 700 10px var(--fonte); letter-spacing: .07em; text-transform: uppercase; color: var(--tinta-5); }

/* =========================================================== app do condômino
   Um HTML para os dois protótipos: no celular manda o cabeçalho com as abas
   embaixo; a partir de 900px a lateral aparece e as abas somem. */

.tela-app { background: var(--bg); }

.ap { display: flex; min-height: 100vh; }

.ap__lateral { display: none; }

.ap__coluna { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 100vh; }

.ap__topo {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 14px 16px 12px; background: #fff; border-bottom: 1px solid var(--borda);
  position: sticky; top: 0; z-index: 10;
}
.ap__topo-esq { display: flex; align-items: center; gap: 10px; min-height: 34px; min-width: 0; }
.ap__topo-dir { display: flex; gap: 8px; flex-shrink: 0; }
.ap__voltar {
  font: 600 16px var(--fonte); color: var(--azul); padding: 4px 6px 4px 0;
  min-width: 30px; min-height: 34px; display: flex; align-items: center;
}
.ap__sc {
  width: 28px; height: 28px; border-radius: 7px;
  display: block; object-fit: cover; flex-shrink: 0;
}
.ap__titulo {
  font: 700 15px var(--fonte); color: var(--tinta); margin: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ap__redondo {
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--borda);
  background: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 13px; position: relative; flex-shrink: 0; color: var(--tinta-3);
  cursor: pointer; list-style: none;
}
.ap__redondo::-webkit-details-marker { display: none; }
.ap__redondo:hover { border-color: var(--azul); }
.ap__redondo--eu {
  background: #c8d6c9; border-color: #c8d6c9; color: var(--verde);
  font: 600 12px var(--fonte);
}
.ap__ponto {
  position: absolute; top: -2px; right: -2px; width: 16px; height: 16px; border-radius: 50%;
  background: var(--vermelho); color: #fff; font: 700 9.5px var(--fonte);
  display: flex; align-items: center; justify-content: center;
}

/* Painel que desce do sino. No celular ele ocupa a largura da tela; no
   desktop vira o cartão de 360px do protótipo. */
.asino { position: relative; }
.asino__painel {
  position: absolute; top: 42px; right: -4px; width: min(360px, calc(100vw - 24px));
  background: #fff; border: 1px solid var(--borda); border-radius: 12px;
  box-shadow: 0 12px 32px rgba(20, 24, 31, .16); padding: 6px; z-index: 30;
}
.asino__cab { font: 700 12.5px var(--fonte); color: var(--tinta); padding: 8px 10px 6px; }
.asino__vazio { font: 400 11.5px var(--fonte); color: var(--tinta-5); padding: 4px 10px 12px; margin: 0; }
.asino__linha {
  display: flex; gap: 9px; align-items: flex-start; padding: 9px 10px;
  border-top: 1px solid var(--divisoria); color: inherit;
}
.asino__linha:hover { background: var(--zebra); color: inherit; }
.asino__meio { min-width: 0; }
.asino__meio b { display: block; font: 600 12px var(--fonte); color: var(--tinta); }
.asino__meio span { display: block; font: 400 11px/1.5 var(--fonte); color: var(--tinta-5); }
.asino__quando { font-size: 10.5px !important; color: var(--tinta-6) !important; margin-top: 2px; }
.asino__pe {
  display: block; text-align: center; padding: 10px; border-top: 1px solid var(--divisoria);
  font: 600 11.5px var(--fonte); color: var(--verde);
}
.asino .aponto { margin-top: 5px; }

.ap__corpo { flex: 1; padding: 16px; min-width: 0; }

/* Cabeçalho da tela dentro do conteúdo — só no desktop. */
.acab { display: none; }
.acab h2 { font: 700 20px var(--fonte); color: var(--tinta); margin: 0; }
.acab p { font: 400 12px var(--fonte); color: var(--tinta-5); margin: 2px 0 0; }

.ap__abas {
  display: flex; justify-content: space-around; gap: 4px;
  background: #fff; border-top: 1px solid var(--borda);
  padding: 8px 4px 18px; position: sticky; bottom: 0; z-index: 10;
}
.ap__aba {
  font: 600 10px var(--fonte); color: var(--tinta-5); text-align: center;
  min-width: 52px; min-height: 44px; padding-top: 6px; border-radius: 8px;
}
.ap__aba.is-ativo { color: var(--verde); }
.ap__icone { display: flex; justify-content: center; margin-bottom: 3px; }
.ico { display: block; flex-shrink: 0; }

.toast--app { bottom: 88px; left: 16px; right: 16px; transform: none; text-align: center; }

@media (min-width: 900px) {
  .ap__lateral {
    width: 236px; flex-shrink: 0; background: #fff; border-right: 1px solid var(--borda);
    padding: 18px 12px; display: flex; flex-direction: column; gap: 2px;
    position: sticky; top: 0; height: 100vh; overflow-y: auto;
  }
  .ap__marca { display: flex; align-items: center; gap: 9px; padding: 4px 8px 14px; color: inherit; }
  .ap__marca:hover { color: inherit; }
  .ap__nav { display: flex; flex-direction: column; gap: 2px; }
  .ap__item {
    display: block; padding: 7px 9px; border-radius: 7px;
    font: 500 12.5px var(--fonte); color: var(--tinta-3);
  }
  .ap__item:hover { background: var(--divisoria); color: var(--tinta-3); }
  .ap__item.is-ativo { background: var(--verde-claro); color: var(--verde); font-weight: 600; }
  .ap__eu {
    margin-top: auto; padding: 10px 8px; border-top: 1px solid var(--borda);
    display: flex; align-items: center; gap: 8px; color: inherit; border-radius: 7px;
  }
  .ap__eu:hover { background: var(--divisoria); color: inherit; }
  .ap__avatar {
    width: 30px; height: 30px; border-radius: 50%; background: #c8d6c9; color: var(--verde);
    display: flex; align-items: center; justify-content: center;
    font: 600 11px var(--fonte); flex-shrink: 0;
  }
  .ap__eu-nome, .ap__eu-sub { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ap__eu-nome { font: 600 11.5px var(--fonte); color: var(--tinta); }
  .ap__eu-sub { font: 400 10px var(--fonte); color: var(--tinta-5); }
  .ap__topo { padding: 14px 28px 0; background: none; border-bottom: 0; position: static; }
  /* No desktop o título da tela vive no conteúdo (.acab): o topo fica só com
     o sino e o avatar, como no protótipo. */
  .ap__titulo, .ap__voltar { display: none; }
  .acab {
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px; margin-bottom: 18px;
  }
  .acab__acao {
    background: var(--azul); color: #fff; border-radius: 8px; padding: 9px 16px;
    font: 600 12.5px var(--fonte); flex-shrink: 0;
  }
  .acab__acao:hover { background: var(--azul-hover); color: #fff; }
  .ap__item { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .asino__painel { top: 44px; right: 0; }
  .ap__sc { display: none; }
  .ap__corpo { padding: 14px 28px 32px; }
  .ap__abas { display: none; }
  .toast--app { bottom: 24px; left: auto; right: 24px; }
}

/* ------------------------------------------------------- peças das telas */

.ac {
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 14px;
  display: block; color: inherit;
}
a.ac:hover { border-color: var(--azul); color: inherit; }
.ac + .ac { margin-top: 12px; }
.ac__cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.ac__t { font: 700 13px var(--fonte); color: var(--tinta); margin: 0; }
.ac__ver { font: 600 11px var(--fonte); color: var(--verde); flex-shrink: 0; }
.ac__linha { font: 500 12px var(--fonte); color: var(--tinta-2); display: flex; justify-content: space-between; gap: 10px; }
.ac__ap { font: 400 11.5px/1.55 var(--fonte); color: var(--tinta-5); }
.ac__prazo { color: var(--tinta-5); font-weight: 400; }

.abarra { display: block; height: 5px; background: var(--trilha); border-radius: 3px; margin: 5px 0 10px; overflow: hidden; }
.abarra i { display: block; height: 5px; border-radius: 3px; background: var(--verde); }
.abarra--ambar i { background: var(--ambar-barra); }
.abarra--vermelho i { background: var(--vermelho); }

.asaudacao { font: 700 19px var(--fonte); color: var(--tinta); margin: 0; }
.asub { font: 400 11.5px var(--fonte); color: var(--tinta-4); margin: 0 0 14px; }

.arapida { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.arapida a {
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 14px;
  min-height: 56px; color: inherit;
}
.arapida a:hover { border-color: var(--azul); color: inherit; }
.arapida b { display: flex; align-items: center; gap: 7px; font: 600 13px var(--fonte); color: var(--tinta); }
.arapida span { display: block; font: 400 10.5px var(--fonte); color: var(--tinta-5); margin-top: 2px; }
.arapida .aurgente { background: var(--vermelho); border-color: var(--vermelho); }
.arapida .aurgente:hover { background: var(--vermelho-hover); border-color: var(--vermelho-hover); }
.arapida .aurgente b { color: #fff; font-weight: 700; }
.arapida .aurgente span { color: rgba(255, 255, 255, .85); }

.adestaque {
  display: block; background: var(--azul); border-radius: 12px; padding: 14px; color: #fff;
}
.adestaque:hover { background: var(--azul-hover); color: #fff; }
.adestaque .asobrancelha { display: block; font: 600 9.5px var(--fonte); letter-spacing: .08em; opacity: .7; }
.adestaque b { display: block; font: 600 13px/1.4 var(--fonte); margin-top: 4px; }
.adestaque__btn {
  display: inline-block; margin-top: 12px; background: #fff; color: var(--azul);
  border-radius: 8px; padding: 8px 15px; font: 600 12px var(--fonte);
}
.adestaque__btn:hover { background: var(--azul-claro); color: var(--azul); }

/* Home: no celular tudo empilha; no desktop a coluna da direita acompanha o
   cartão de obras, como no protótipo de 1440. */
.ahome { display: flex; flex-direction: column; gap: 12px; margin-bottom: 12px; }
.ahome__lado { display: flex; flex-direction: column; gap: 12px; }
.ahome .ac + .ac { margin-top: 0; }
.acolunas { display: grid; gap: 12px; }
.acoluna { color: inherit; }
.acoluna:hover { color: inherit; }
.acoluna b { display: block; font: 600 12.5px var(--fonte); color: var(--tinta); margin-bottom: 3px; }
.acoluna span { display: block; font: 400 11.5px/1.55 var(--fonte); color: var(--tinta-5); }
.ac__obra { display: flex; align-items: center; gap: 7px; min-width: 0; }

.alista { display: flex; flex-direction: column; gap: 8px; }
.alista--folgada { gap: 10px; }

.abtn {
  display: block; background: var(--azul); color: #fff; border-radius: 10px; padding: 13px;
  text-align: center; font: 700 13px var(--fonte); border: 0; width: 100%; cursor: pointer;
  margin-bottom: 12px; font-family: var(--fonte);
}
.abtn:hover { background: var(--azul-hover); color: #fff; }
.abtn--verde { background: var(--verde); }
.abtn--verde:hover { background: #17492a; }

.aitem { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 44px; }
.aitem__chevron { font: 600 14px var(--fonte); color: var(--tracejada); flex-shrink: 0; display: flex; align-items: center; gap: 6px; }
.aitem__icone { font-size: 16px; flex-shrink: 0; }
.aitem b { font: 600 13px var(--fonte); color: var(--tinta); display: block; }
.aitem small { font: 400 10.5px var(--fonte); color: var(--tinta-5); display: block; }

.achips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 5px; }
.achip {
  font: 600 9.5px var(--fonte); border-radius: 4px; padding: 2px 7px;
  color: var(--tinta-3); background: var(--cinza-chip); white-space: nowrap;
}
.achip--verde { color: var(--verde); background: var(--verde-claro); }
.achip--ambar { color: var(--ambar); background: var(--ambar-claro); }
.achip--vermelho { color: var(--vermelho); background: var(--vermelho-claro); }
.achip--azul { color: var(--azul); background: var(--azul-claro); }

.adata {
  width: 48px; text-align: center; background: var(--azul-claro); border-radius: 8px;
  padding: 7px 4px; flex-shrink: 0;
}
.adata b { display: block; font: 700 14px var(--fonte); color: var(--azul); }
.adata span { display: block; font: 600 9px var(--fonte); color: var(--tinta-5); text-transform: uppercase; }

.aform { display: flex; flex-direction: column; gap: 12px; }
.aform .abtn { margin-bottom: 0; }
.adupla { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.anota {
  background: #fff; border: 1px solid var(--borda); border-radius: 9px; padding: 10px 12px;
  font: 400 11.5px/1.5 var(--fonte); color: var(--tinta-5);
}
.anota--azul { background: var(--azul-claro); border-color: var(--azul-claro-bd); color: var(--azul); }
.anota--verde { background: var(--verde-claro); border-color: #c8d6c9; color: var(--verde); font-weight: 600; }

/* Ficha de pré-cadastro: leitura documental antes da conversão. */
.grade-info { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:20px; }
.grade-info > div { min-width: 0; }
.grade-info__valor {
  display: block; overflow-wrap: anywhere; word-break: break-word; line-height: 1.45;
}
.evidencia-assinatura {
  overflow: hidden; margin-top: 18px; border: 1px solid var(--borda); border-radius: 9px;
}
.evidencia-assinatura__item { min-width: 0; padding: 14px 16px; }
.evidencia-assinatura__item + .evidencia-assinatura__item { border-top: 1px solid var(--borda); }
.evidencia-assinatura__item > small { display: block; margin-bottom: 6px; }
.evidencia-assinatura__valor,
.evidencia-assinatura__origem {
  display: block; max-width: 100%; margin: 0; overflow-wrap: anywhere; word-break: break-word;
  color: var(--tinta-2); white-space: normal;
}
.evidencia-assinatura__valor { font: 500 12px/1.6 var(--mono); }
.evidencia-assinatura__origem { font: 600 12.5px/1.5 var(--fonte); }
.lista-item { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 0; border-top:1px solid var(--borda); }
.lista-item strong,.lista-item small { display:block; }
.lista-item small { margin-top:5px; color:var(--cinza); line-height:1.45; }
@media (max-width:760px) {
  .grade-info { grid-template-columns:1fr; gap:13px; }
  .lista-item { align-items:flex-start; flex-direction:column; }
}
.anota--vermelha {
  background: var(--vermelho-claro); border-color: var(--vermelho-claro-bd);
  color: var(--vermelho); font-weight: 600;
}
.anota--ambar { background: var(--ambar-fundo); border-color: var(--ambar-claro-bd); color: var(--ambar); }
.anota b { display: block; font: 700 11.5px var(--fonte); margin-bottom: 3px; }

.aopcoes { display: flex; gap: 6px; flex-wrap: wrap; }
.aopcoes label { cursor: pointer; }
.aopcoes input { position: absolute; opacity: 0; pointer-events: none; }
.aopcoes span {
  display: inline-block; font: 600 11.5px var(--fonte); background: #fff;
  border: 1px solid var(--campo-bd); color: var(--tinta-3); border-radius: 8px; padding: 10px 13px;
}
.aopcoes input:checked + span { background: var(--azul); border-color: var(--azul); color: #fff; }
.aopcoes input:focus-visible + span { outline: 2px solid var(--azul); outline-offset: 2px; }

.avazio {
  font: 400 12px var(--fonte); color: var(--tinta-5); text-align: center;
  padding: 28px 16px; background: #fff; border: 1px solid var(--borda); border-radius: 12px;
}

.adados { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font: 400 12px var(--fonte); color: var(--tinta-2); }
.adados > div > span { display: block; font: 600 10px var(--fonte); color: var(--tinta-6); }
.adados__larga { grid-column: span 2; }

.alinha {
  display: flex; justify-content: space-between; gap: 10px; padding: 7px 0;
  border-bottom: 1px solid var(--divisoria); font: 400 12px var(--fonte); color: var(--tinta-2);
}
.alinha:last-child { border-bottom: 0; }
.alinha b { font: 600 12px var(--fonte); color: var(--tinta); }
.alinha span { color: var(--tinta-5); text-align: right; }

.apassos { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 8px; }
.apasso { font: 600 9px var(--fonte); border-radius: 4px; padding: 3px 7px; background: var(--cinza-chip); color: var(--tinta-6); }
.apasso--feito { background: var(--verde-claro); color: var(--verde); }
.apasso--agora { background: var(--azul); color: #fff; }

/* ------------------------------------------------- rótulo em versalete */

.asobrancelha {
  display: block; font: 600 9.5px var(--fonte); letter-spacing: .08em;
  color: var(--tinta-6); text-transform: uppercase;
}
.amono { font: 600 11.5px var(--mono); color: var(--tinta); }

/* ------------------------------------------------------------- listas */

.ac--linha { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ac__linha--esq { justify-content: flex-start; align-items: center; margin-bottom: 7px; }
.ac__linha + .ac__linha { margin-top: 7px; }
.atrasado { font: 500 12px var(--fonte); color: var(--vermelho); }

.aitem__meio { min-width: 0; flex: 1; }
.aitem__meio b { font: 600 12.5px var(--fonte); color: var(--tinta); display: block; }
.aitem__meio .ac__ap { display: block; }
/* Rodapé do aviso: "Solicitação · há 2 min", como no sino. */
.anot__quando { font-size: 10.5px; color: var(--tinta-6); margin-top: 2px; }
.aitem--alto { align-items: flex-start; }
.alinha--par b { flex: 1; }

/* Etiqueta quadrada do tipo de arquivo, como no protótipo de documentos. */
.aext {
  width: 34px; height: 34px; border-radius: 8px; background: var(--azul-claro);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  font: 700 8.5px var(--fonte); color: var(--azul);
}

/* Comunicado que abre no lugar, sem trocar de página. */
.ac--dobra summary { cursor: pointer; list-style: none; }
.ac--dobra summary::-webkit-details-marker { display: none; }
.ac--dobra[open] summary { margin-bottom: 10px; }
.ac--dobra .ac__cab { margin-bottom: 4px; }

/* Comunicados: cartões que abrem no celular, lista + painel no desktop. */
.acom__lista { display: flex; flex-direction: column; gap: 8px; }
.acom__item {
  display: block; background: #fff; border: 1px solid var(--borda);
  border-radius: 12px; padding: 14px; text-decoration: none;
}
.acom__item .ac__cab { margin-bottom: 4px; }
.acom__t { font: 700 13px var(--fonte); color: var(--tinta); display: block; }
.acom__item .ac__ap { display: block; margin-top: 2px; }
.acom__dobra {
  display: block; margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--divisoria);
}
.acom__painel { display: none; }

/* Pílulas de categoria (documentos) — só aparecem no desktop, como no protótipo. */
.afiltros { display: none; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.apilula {
  font: 600 11.5px var(--fonte); border-radius: 16px; padding: 6px 14px;
  background: #fff; color: var(--tinta-3); border: 1px solid var(--borda);
  text-decoration: none;
}
.apilula:hover { border-color: var(--azul); }
.apilula.is-ativo { background: var(--azul); color: #fff; border-color: var(--azul); }
.abaixar { display: none; }

/* Texto vindo do editor rico dos comunicados. */
.arico { font: 400 12.5px/1.6 var(--fonte); color: var(--tinta-2); }
.arico > *:first-child { margin-top: 0; }
.arico > *:last-child { margin-bottom: 0; }
.arico img { max-width: 100%; height: auto; border-radius: 8px; }
.arico--resumo {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; color: var(--tinta-5);
}

.avalor { font: 700 16px var(--fonte); color: var(--azul); }

/* ------------------------------------------------------------ votação */

.acedulas { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.acedula input { position: absolute; opacity: 0; pointer-events: none; }
.acedula__caixa {
  display: block; border: 2px solid var(--borda); border-radius: 10px;
  overflow: hidden; background: #fff; cursor: pointer;
}
.acedula input:checked + .acedula__caixa { border-color: var(--azul); }
.acedula input:focus-visible + .acedula__caixa { outline: 2px solid var(--azul); outline-offset: 2px; }
.acedula__foto { display: block; width: 100%; height: 84px; object-fit: cover; }
.acedula__pe { display: block; padding: 11px 12px; }
.acedula__texto { display: block; font: 600 12.5px var(--fonte); color: var(--tinta); }
.acedula__pct { display: block; font: 600 11px var(--fonte); color: var(--azul); margin-top: 4px; }
.acedula__minha { display: block; font: 600 11px var(--fonte); color: var(--verde); margin-top: 6px; }
.acedula__pe .abarra { margin: 8px 0 0; }
.acedula__pe .abarra i { background: var(--azul); }
.acedula--minha .acedula__caixa { border-color: var(--verde); }

/* Enquete: cabeçalho, descrição e a linha do botão de confirmar. */
.aenq__t { font-size: 16px; }
.aenq__sub { margin: 0 0 16px; }
.aenq__pe { display: flex; flex-direction: column; gap: 10px; }
.aenq__pe .abtn { margin: 0; }
.abtn[disabled] { background: var(--tracejada); cursor: not-allowed; }
.aresultado--top .aresultado__topo { color: var(--tinta); font-weight: 500; }
.aresultado--top .abarra i { background: var(--azul); }

.aresultado__topo {
  display: flex; justify-content: space-between; gap: 10px;
  font: 500 12px var(--fonte); color: var(--tinta-2);
}
.aresultado__topo b { font: 700 12px var(--fonte); color: var(--tinta-5); }
.aresultado--meu .aresultado__topo { color: var(--tinta); }
.aresultado--meu .aresultado__topo b { color: var(--azul); }
.aresultado--meu .abarra i { background: var(--azul); }
.aresultado .abarra { height: 7px; margin: 5px 0 3px; }
.aresultado .abarra i { height: 7px; background: var(--tracejada); }
.aresultado__n { font: 400 10.5px var(--fonte); color: var(--tinta-6); }

/* ------------------------------------------------------ perfil e gestão */

.aavatar {
  width: 32px; height: 32px; border-radius: 50%; background: var(--verde-claro);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  font: 700 11px var(--fonte); color: var(--verde);
}
.aavatar--g { width: 48px; height: 48px; font-size: 16px; }

/* Perfil: cartões que no desktop viram uma grade de dois por dois. */
.aperfil-grade { display: flex; flex-direction: column; gap: 12px; }
.aperfil-grade .ac + .ac { margin-top: 0; }
.aacoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.aacoes .abtn { width: auto; margin: 0; }
.aacoes__fim { margin-left: auto; }
/* Sair é um formulário (POST com token), mas na fileira de ações ele precisa
   ocupar o mesmo espaço que os links ao lado. */
.aacoes form.aacoes__fim { display: flex; }
.aacoes--links { margin-top: 10px; gap: 12px; }
.alink {
  display: inline-block; font: 600 11.5px var(--fonte); color: var(--azul);
  text-decoration: none; margin-top: 10px;
}
.alink:hover { text-decoration: underline; }
.aperfil-grade .toggle { cursor: pointer; }

.aperfil { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.aperfil .ac__t { font-size: 14px; }
.aperfil .ac__ap { display: block; }

.agestao { background: var(--azul); border-radius: 12px; padding: 16px; color: #fff; margin-bottom: 12px; }
.agestao__cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.agestao .asobrancelha { color: rgba(255, 255, 255, .7); }
.amembro {
  display: flex; gap: 10px; align-items: center; background: rgba(255, 255, 255, .08);
  border-radius: 9px; padding: 9px 11px;
}
.amembro + .amembro { margin-top: 8px; }
.amembro .aavatar { background: #fff; color: var(--azul); }
.amembro b { font: 600 12.5px var(--fonte); }
.amembro__sub { display: block; font: 400 10.5px var(--fonte); opacity: .7; }

/* Bolinha das notificações: apagada quando a notificação já foi lida. */
.aponto {
  width: 8px; height: 8px; border-radius: 50%; background: var(--vermelho);
  margin-top: 5px; flex-shrink: 0;
}
.aponto--lida { background: var(--borda); }

.abtn--claro {
  background: #fff; border: 1px solid var(--campo-bd); color: var(--azul);
  font-weight: 600; font-size: 12px;
}
.abtn--claro:hover { background: var(--azul-claro); color: var(--azul); }
.abtn--sair {
  background: #fff; border: 1px solid var(--vermelho-claro-bd); color: var(--vermelho);
  font-weight: 600; font-size: 12px;
}
.abtn--sair:hover { background: var(--vermelho-claro); color: var(--vermelho); }

/* ================================================ app do condômino, desktop
   O protótipo de 1440 abre em colunas o que no celular vive empilhado. */
/* Trocas de linha entre celular e desktop dentro do app. */
.a-desk, .a-unid, .a-desk-b, .a-desk-i { display: none; }

/* Linha da agenda de mudanças: data em bloco, status na ponta. */
.amud { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.amud__meio { display: flex; gap: 12px; align-items: center; min-width: 0; }
/* Reclamação: no celular os chips vêm antes do título; no desktop, ao lado. */
.arec__topo { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.arec__tipo { order: 1; }
.arec__st { order: 2; display: flex; gap: 6px; }
.arec__tit { order: 3; flex-basis: 100%; }
.arec .ac__ap { margin-top: 2px; }

/* Chamado de reparo: a foto é a primeira coisa que a manutenção olha. */
.arep { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.arep__meio { display: flex; gap: 12px; align-items: center; min-width: 0; }
.arep__foto {
  width: 42px; height: 42px; border-radius: 8px; object-fit: cover; flex-shrink: 0;
  background: var(--cinza-chip);
}
.arep__foto--vazia {
  display: flex; align-items: center; justify-content: center; text-align: center;
  font: 400 8.5px var(--fonte); color: var(--tinta-6);
}
.arep__desc { margin: 2px 0 0; }

/* No celular o protótipo não traz status: só o que fugiu do combinado aparece. */
.amud__st--calada { display: none; }

.aproposta { border: 1px solid var(--borda); border-radius: 9px; padding: 12px; }
.aproposta--escolhida { border-color: var(--verde); }
.aproposta__t { font: 700 13px var(--fonte); color: var(--tinta); }
.aproposta__s { font: 400 11px var(--fonte); color: var(--tinta-5); margin-top: 2px; }
.alink--seta { display: inline-block; margin-top: 10px; }
.aobra-orcamentos, .aorc-notas {
  margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--divisoria);
}
.aobra-orcamentos > strong, .aorc-notas > strong {
  display: block; margin-bottom: 7px; font: 700 10.5px var(--fonte);
  letter-spacing: .03em; color: var(--tinta-5);
}
.aobra-orcamentos > a {
  display: flex; justify-content: space-between; gap: 10px; padding: 7px 0;
  font: 600 11.5px/1.4 var(--fonte); color: var(--azul);
}
.aobra-orcamentos > a + a { border-top: 1px solid var(--divisoria); }
.aobra-orcamentos > a span { flex: 0 0 auto; font-weight: 400; color: var(--tinta-5); }

.aachados__pe { font: 400 11.5px var(--fonte); color: var(--tinta-5); text-align: center; margin: 6px 0 0; }

/* ------------------------------------------------- anexos das obras */

.aanexos { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.aanexo {
  display: inline-flex; align-items: center; gap: 5px; background: var(--cinza-chip);
  border-radius: 5px; padding: 4px 9px; font: 500 11px var(--mono); color: var(--tinta-3);
}
.aanexar {
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
  border: 1px dashed var(--tracejada); border-radius: 5px; padding: 4px 9px;
  font: 600 11px var(--fonte); color: var(--tinta-5);
}
.aanexar:hover { border-color: var(--azul); color: var(--azul); }
.aanexar input { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }

/* Cada pendência da obra vira um cartão numerado dentro do drawer. */
.apend { border: 1px solid var(--borda); border-radius: 9px; padding: 11px 13px; }
.apend + .apend { margin-top: 8px; }
.apend__t { font: 600 12.5px var(--fonte); color: var(--tinta); }
.apend .campo { margin: 8px 0 0; }
.apend .campo__rotulo { display: none; }

@media (min-width: 700px) {
  .acolunas { grid-template-columns: repeat(3, 1fr); gap: 0; }
  .acoluna { padding: 0 18px; border-left: 1px solid var(--divisoria); }
  .acoluna:first-child { padding-left: 0; border-left: 0; }
  .arapida { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 900px) {
  .afiltros { display: flex; }
  .aperfil-grade {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
    align-items: start; max-width: 960px;
  }
  .aperfil-grade .ac { padding: 18px; }
  .aenq { max-width: 860px; padding: 20px; }
  .acedulas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
  .acedula__foto { height: 110px; }
  .aenq__pe { flex-direction: row; justify-content: space-between; align-items: center; }
  .aenq__pe .abtn { width: auto; padding: 10px 20px; }
  .adocs {
    gap: 0; background: #fff; border: 1px solid var(--borda);
    border-radius: 10px; overflow: hidden; max-width: 900px;
  }
  .adocs .ac {
    border: 0; border-bottom: 1px solid var(--divisoria); border-radius: 0; padding: 13px 16px;
  }
  .adocs .ac:hover { background: var(--zebra); }
  .adocs .aitem__chevron { color: var(--azul); }
  .abaixar { display: inline; font: 600 11.5px var(--fonte); color: var(--azul); }
  .acom { display: grid; grid-template-columns: 380px 1fr; gap: 14px; align-items: start; }
  .acom__lista {
    gap: 0; background: #fff; border: 1px solid var(--borda);
    border-radius: 10px; overflow: hidden;
  }
  .acom__item {
    border: 0; border-bottom: 1px solid var(--divisoria); border-radius: 0;
    padding: 13px 16px;
  }
  .acom__item:hover { background: var(--zebra); }
  .acom__item.is-ativo { background: var(--azul-claro); }
  .acom__t { font-size: 12.5px; font-weight: 600; }
  .acom__dobra { display: none; }
  .acom__painel {
    display: block; background: #fff; border: 1px solid var(--borda);
    border-radius: 10px; padding: 24px;
  }
  .acom__painel-t { font: 700 19px var(--fonte); color: var(--tinta); margin: 10px 0 4px; }
  .acom__painel-corpo { font-size: 13.5px; line-height: 1.7; max-width: 560px; margin-top: 16px; }
  .ahome { display: grid; grid-template-columns: 1.5fr 1fr; align-items: start; }
  .asaudacao { font-size: 22px; }
  .asub { font-size: 12.5px; margin-bottom: 18px; }
  .abarra, .abarra i { height: 6px; }
  .abtn.abtn--mobile, .a-cel { display: none; }
  .alista--estreita { max-width: 860px; }
  .alista--curta { max-width: 760px; }
  .a-desk-b { display: block; }
  .a-desk-i { display: inline; }
  .arec__tit { order: 2; flex-basis: auto; }
  .arec__st { order: 3; margin-left: auto; }
  .arep__meio { gap: 12px; }
  .amud__st--calada { display: inline; }
  .amud__meio { gap: 14px; }
  .adata { width: 52px; padding: 8px 4px; }
  .adata b { font-size: 15px; }
  .adata span { font-size: 9.5px; }
  .aachados {
    gap: 0; background: #fff; border: 1px solid var(--borda);
    border-radius: 10px; overflow: hidden; max-width: 760px;
  }
  .aachados .ac {
    border: 0; border-bottom: 1px solid var(--divisoria); border-radius: 0; padding: 13px 16px;
  }
  .aachados__pe { text-align: left; padding: 11px 16px; margin: 0; }
  .aorcs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 960px; }
  .aorcs .ac { padding: 16px; }
  .alista--estreita .ac { padding: 18px; }
  .a-desk { display: flex; gap: 24px; flex-wrap: wrap; }
  .a-unid { display: inline; }
  .a-desk b { font-weight: 600; color: var(--tinta-2); }
  .aanexos { margin-top: 12px; }
}

/* ===================================================== conforto no desktop
   O portal é usado em monitores de mesa, frequentemente a alguma distância.
   A partir daqui a densidade aumenta sem alterar o desenho compacto do celular. */

@media (min-width: 901px) {
  /* Shell e navegação */
  .lateral, .ap__lateral {
    width: 252px; padding: 22px 14px; gap: 3px;
  }
  .lateral__marca, .ap__marca { gap: 11px; padding: 4px 9px 18px; }
  .marca__sc { width: 34px; height: 34px; }
  .marca__nome { font-size: 14.5px; }
  .marca__sub { font-size: 11.5px; line-height: 1.45; }
  .nav__grupo { gap: 3px; }
  .nav__titulo { padding: 13px 9px 5px; font-size: 10.5px; }
  .nav__item, .ap__item {
    min-height: 38px; padding: 9px 11px; font-size: 13.5px; line-height: 1.35;
  }
  .nav__badge { font-size: 11px; padding: 2px 7px; }
  .lateral__usuario, .ap__eu { padding: 13px 9px; gap: 10px; }
  .lateral__avatar, .ap__avatar { width: 34px; height: 34px; font-size: 12px; }
  .lateral__nome, .ap__eu-nome { font-size: 12.5px; }
  .lateral__email, .ap__eu-sub, .lateral__sair button { font-size: 11px; }

  /* Cabeçalhos e componentes compartilhados dos cadastros */
  .conteudo { padding: 30px clamp(32px, 3vw, 48px) 48px; }
  .tela-topo { gap: 24px; margin-bottom: 24px; }
  .tela-titulo { font-size: 26px; line-height: 1.15; }
  .tela-sub { margin-top: 4px; font-size: 14px; line-height: 1.5; }
  .tela-acoes { gap: 10px; }
  .btn { min-height: 42px; padding: 10px 18px; font-size: 13.5px; }
  .btn--contorno { padding: 10px 18px; font-size: 13.5px; }
  .btn--pequeno { min-height: 36px; padding: 8px 14px; font-size: 12.5px; }
  .acao { font-size: 12.5px; line-height: 1.4; }

  .card { padding: 22px; border-radius: 12px; }
  .card--limpo { padding: 0; }
  .card__titulo { margin-bottom: 16px; font-size: 16px; line-height: 1.35; }
  .card__titulo--barra { margin: 0; padding: 16px 20px; font-size: 15px; }
  .grade, .coluna { gap: 18px; }
  .grade--kpi { gap: 16px; margin-bottom: 22px; }
  .kpi { padding: 18px; }
  .kpi__rotulo { font-size: 11px; }
  .kpi__valor { margin-top: 4px; font-size: 30px; }
  .kpi__nota { font-size: 13px; }
  .conteudo > section.card + section.card,
  .conteudo > section.card + .anota,
  .conteudo > .anota + section.card { margin-top: 20px; }
  .conteudo > .anota + .filtros { margin-top: 16px; }

  .tab, .lista { border-radius: 12px; }
  .tab__cab { padding: 13px 20px; font-size: 11.5px; }
  .tab__linha { min-height: 52px; padding: 15px 20px; font-size: 13.5px; line-height: 1.45; }
  .tab__rodape { padding: 13px 20px; font-size: 12.5px; }
  .tab__vazio { padding: 30px 20px; font-size: 13.5px; }
  .forte, .unid, .placa { font-size: 13.5px; }
  .cod, .cod--cinza { font-size: 12.5px; }
  .cod--azul { font-size: 13px; }
  .chip { padding: 4px 9px; font-size: 11.5px; }
  .pill { padding: 7px 15px; font-size: 12.5px; }
  .pills { gap: 10px; margin-bottom: 18px; }
  .tag { padding: 6px 11px; font-size: 12.5px; }
  .anexo { padding: 5px 10px; font-size: 11.5px; }

  .campo__rotulo { margin-bottom: 6px; font-size: 12.5px; }
  .campo__dica { margin-top: 6px; font-size: 11.5px; line-height: 1.45; }
  .entrada, .selecao, .area, .busca {
    min-height: 44px; padding: 11px 13px; font-size: 14px; line-height: 1.35;
  }
  .entrada--mono { font-size: 13.5px; }
  .area { min-height: 100px; line-height: 1.55; }
  .dupla, .adupla { gap: 16px; }
  .filtros { gap: 12px; margin-bottom: 20px; }
  .filtros .selecao { min-width: 240px; }
  .form-linha { gap: 14px; margin-top: 16px; }
  .upload { padding: 25px; font-size: 13.5px; }
  .upload--curto { padding: 19px; }
  .toggle { gap: 14px; font-size: 13.5px; line-height: 1.45; }
  .divisor { margin: 8px 0 4px; }
  .divisor span { font-size: 11px; }

  .drawer { width: 500px; padding: 28px; gap: 18px; }
  .drawer__titulo { font-size: 20px; }
  .drawer__x { min-width: 34px; min-height: 34px; font-size: 15px; }
  .drawer__cabecalho { gap: 16px; padding: 16px 18px; }
  .drawer__nome { font-size: 16px; }
  .drawer__sub { font-size: 13px; }
  .drawer__dados { row-gap: 16px; font-size: 13.5px; line-height: 1.55; }
  .drawer__dado-rotulo { margin-bottom: 4px; font-size: 11px; }
  .drawer__destaque { font-size: 14.5px; }
  .drawer__eyebrow { margin-bottom: 8px; font-size: 11.5px; }
  .drawer__texto { font-size: 13.5px; line-height: 1.65; }
  .drawer__rodape { gap: 12px; padding-top: 10px; }
  .ficha__avatar { width: 50px; height: 50px; font-size: 17px; }
  .secao { margin: 28px 0 12px; font-size: 12px; }
  .lista__item { gap: 16px; padding: 16px 20px; }
  .lista__t { font-size: 14px; }
  .lista__s { margin-top: 2px; font-size: 12.5px; line-height: 1.45; }
  .lista__vazio { padding: 30px 20px; font-size: 13.5px; }
  .cartao-form, .ficha { padding: 22px; gap: 16px; }
  .grade--duas { gap: 20px; }
  .hist { gap: 20px; }
  .hist + .grade--duas { margin-top: 20px; }
  .hist__item { padding: 18px 20px; }
  .hist__quem { font-size: 14px; }
  .hist__quando { font-size: 11.5px; }
  .hist__corpo { font-size: 13.5px; line-height: 1.65; }
  .hist__tipo { font-size: 11px; }
  .grade-info { gap: 24px; margin-top: 24px; }
  .lista-item { gap: 22px; padding: 18px 0; font-size: 14px; }
  .lista-item small { font-size: 12.5px; line-height: 1.55; }

  /* App do condômino */
  .ap__topo { padding: 20px clamp(32px, 3vw, 48px) 0; }
  .ap__corpo { padding: 18px clamp(32px, 3vw, 48px) 52px; }
  .acab { gap: 24px; margin-bottom: 26px; }
  .acab h2 { font-size: 26px; line-height: 1.15; }
  .acab p { margin-top: 4px; font-size: 14px; line-height: 1.5; }
  .acab__acao { min-height: 42px; padding: 11px 18px; font-size: 13.5px; }

  .ac { padding: 20px; }
  .ac + .ac { margin-top: 16px; }
  .alista { gap: 14px; }
  .alista--folgada { gap: 18px; }
  .alista > .ac + .ac, .ahome__lado > .ac + .ac { margin-top: 0; }
  .ac__cab { gap: 14px; margin-bottom: 12px; }
  .ac__t { font-size: 16px; line-height: 1.35; }
  .ac__ver { font-size: 12.5px; }
  .ac__linha { gap: 14px; font-size: 14px; line-height: 1.45; }
  .ac__linha + .ac__linha { margin-top: 10px; }
  .ac__ap { font-size: 13.5px; line-height: 1.6; }
  .asaudacao { font-size: 28px; line-height: 1.2; }
  .asub { margin-bottom: 22px; font-size: 14px; line-height: 1.5; }
  .arapida { gap: 16px; margin-bottom: 20px; }
  .arapida a { min-height: 74px; padding: 18px; }
  .arapida b { gap: 9px; font-size: 14.5px; }
  .arapida span { margin-top: 4px; font-size: 12.5px; line-height: 1.4; }
  .adestaque { padding: 20px; }
  .adestaque .asobrancelha, .asobrancelha { font-size: 10.5px; }
  .adestaque b { font-size: 15px; line-height: 1.5; }
  .adestaque__btn { padding: 10px 17px; font-size: 13px; }
  .ahome { grid-template-columns: minmax(0, 1.55fr) minmax(340px, 1fr); gap: 20px; margin-bottom: 20px; }
  .ahome__lado { gap: 20px; }
  .acolunas { gap: 0; }
  .acoluna { padding: 0 22px; }
  .acoluna b { margin-bottom: 5px; font-size: 14px; }
  .acoluna span { font-size: 13px; line-height: 1.6; }
  .abtn { min-height: 46px; padding: 14px 18px; font-size: 14px; }
  .aitem { gap: 14px; min-height: 52px; }
  .aitem b, .aitem__meio b { font-size: 14px; line-height: 1.4; }
  .aitem small { margin-top: 3px; font-size: 12.5px; line-height: 1.45; }
  .aitem__chevron { font-size: 15px; }
  .achips { gap: 8px; margin-bottom: 7px; }
  .achip { padding: 4px 8px; font-size: 11px; }
  .aform { gap: 18px; }
  .anota { padding: 14px 16px; font-size: 13.5px; line-height: 1.6; }
  .anota b { font-size: 13.5px; }
  .aopcoes { gap: 8px; }
  .aopcoes span { padding: 11px 15px; font-size: 13px; }
  .avazio { padding: 36px 20px; font-size: 13.5px; }
  .adados { gap: 12px 16px; font-size: 13.5px; line-height: 1.45; }
  .adados > div > span { margin-bottom: 3px; font-size: 11px; }
  .alinha { gap: 14px; padding: 10px 0; font-size: 13.5px; }
  .alinha b { font-size: 13.5px; }
  .apasso { padding: 4px 8px; font-size: 10.5px; }
  .amono { font-size: 12.5px; }
  .arico { font-size: 14px; line-height: 1.7; }
  .avalor { font-size: 18px; }
  .afiltros { gap: 10px; margin-bottom: 18px; }
  .apilula { padding: 8px 16px; font-size: 12.5px; }

  /* As listas não ficam espremidas no centro de um monitor largo. */
  .aperfil-grade { max-width: 1120px; gap: 20px; }
  .aperfil-grade .ac { padding: 22px; }
  .aenq { max-width: 1050px; padding: 24px; }
  .adocs { max-width: 1100px; }
  .adocs .ac, .aachados .ac { padding: 17px 20px; }
  .acom { grid-template-columns: 420px minmax(0, 1fr); gap: 20px; max-width: 1240px; }
  .acom__item { padding: 16px 18px; }
  .acom__t { font-size: 14px; line-height: 1.4; }
  .acom__painel { padding: 30px; }
  .acom__painel-t { font-size: 23px; }
  .acom__painel-corpo { max-width: 720px; margin-top: 20px; font-size: 15px; }
  .alista--estreita { max-width: 1100px; }
  .alista--curta { max-width: 980px; }
  .aachados { max-width: 1000px; }
  .aachados__pe { padding: 14px 20px; font-size: 12.5px; }
  .aorcs { max-width: 1120px; gap: 18px; }
  .aorcs .ac, .alista--estreita .ac { padding: 22px; }
}

/* Rótulo com ícone alinhado ao texto. */
.acomicone { display: inline-flex; align-items: center; gap: 6px; }

/* ================================================ telas da equipe do prédio
   Manutencista, zelador e manobrista. Sem menu lateral: os assuntos são
   poucos e viram abas no alto do desktop, barra embaixo no celular. */

.tela-equipe { background: var(--bg); }

.eq { display: flex; flex-direction: column; min-height: 100vh; }
.eq__topo {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px 16px; background: #fff; border-bottom: 1px solid var(--borda);
  position: sticky; top: 0; z-index: 5;
}
.eq__marca { display: flex; align-items: center; gap: 10px; min-width: 0; }
/* O bloco de texto também precisa poder encolher: sem `min-width: 0` aqui o
   subtítulo longo estica o cabeçalho e passa por baixo do avatar no celular. */
.eq__marca > span { min-width: 0; }
.eq__nome {
  display: block; font: 700 15px var(--fonte); color: var(--tinta);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.eq__sub {
  display: block; font: 400 11px var(--fonte); color: var(--tinta-5);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.eq__abas-topo { display: none; gap: 8px; }
.eq__aba-topo {
  display: flex; align-items: center; gap: 7px; text-decoration: none; white-space: nowrap;
  font: 600 12.5px var(--fonte); color: var(--tinta-3);
  background: #fff; border: 1px solid var(--borda); border-radius: 8px; padding: 9px 16px;
}
/* Cinco abas (portaria) não cabem com o mesmo respiro de três (manutenção). */
.eq__abas-topo:has(> :nth-child(5)) .eq__aba-topo { padding: 9px 12px; gap: 6px; }
.eq__abas-topo:has(> :nth-child(5)) .eq__icone { display: none; }
.eq__aba-topo:hover { border-color: var(--azul); color: var(--azul); }
.eq__aba-topo.is-ativo { background: var(--azul); border-color: var(--azul); color: #fff; }
.eq__icone { display: inline-flex; }

.eq__eu { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.eq__eu-texto { display: none; text-align: right; }
.eq__eu-nome { display: block; font: 600 12px var(--fonte); color: var(--tinta); }
.eq__eu-papel { display: block; font: 400 10.5px var(--fonte); color: var(--tinta-5); white-space: nowrap; }
.eq__avatar {
  width: 34px; height: 34px; border-radius: 50%; background: var(--ambar-claro);
  display: flex; align-items: center; justify-content: center;
  font: 600 12px var(--fonte); color: var(--ambar); flex-shrink: 0;
}
.eq__sair button {
  display: flex; align-items: center; background: none; border: 0; cursor: pointer;
  color: var(--tinta-5); padding: 6px;
}
.eq__sair button:hover { color: var(--azul); }

.eq__corpo { flex: 1; padding: 16px; padding-bottom: 92px; }
.eq__vazio { font: 400 12.5px var(--fonte); color: var(--tinta-6); text-align: center; padding: 40px 0; }

.eq__filtros { display: flex; gap: 6px; margin-bottom: 12px; }
.eq__filtro {
  flex: 1; text-align: center; text-decoration: none;
  font: 600 12px var(--fonte); color: var(--tinta-3);
  background: #fff; border: 1px solid var(--borda); border-radius: 8px; padding: 10px;
}
.eq__filtro.is-ativo { background: var(--azul); border-color: var(--azul); color: #fff; }

/* Barra de abas do celular. */
.eq__abas {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 6;
  display: flex; justify-content: space-around;
  background: #fff; border-top: 1px solid var(--borda); padding: 8px 4px 18px;
}
.eq__aba {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  text-decoration: none; font: 600 10px var(--fonte); color: var(--tinta-5);
  min-width: 56px; min-height: 44px; padding-top: 4px;
}
.eq__aba.is-ativo { color: var(--azul); }

/* ---------------------------------------------------- cartão de chamado */

.ch__grade { display: flex; flex-direction: column; gap: 10px; }
.ch {
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 14px;
}
.ch--alta { border-color: var(--vermelho-claro-bd); }
.ch__topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 4px; }
.ch__selos { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.ch__responsavel { padding: 4px 7px; border-radius: 6px; background: var(--azul-claro); color: var(--azul); font: 600 10px var(--fonte); }
.ch__titulo { font: 700 13.5px var(--fonte); color: var(--tinta); margin: 0; }
.ch__meta { font: 400 11.5px var(--fonte); color: var(--tinta-5); margin: 0 0 8px; }
.ch__miolo { display: flex; gap: 10px; margin-bottom: 10px; }
.ch__foto {
  width: 56px; height: 56px; border-radius: 8px; background: var(--cinza-chip);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  overflow: hidden; font: 400 8.5px var(--fonte); color: var(--tinta-6); text-align: center;
}
.ch__foto img { width: 100%; height: 100%; object-fit: cover; }
.ch__desc { font: 400 12px/1.55 var(--fonte); color: var(--tinta-3); margin: 0; }
.ch__rodape { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ch__prazo {
  display: inline-flex; align-items: center; gap: 5px;
  font: 600 11px var(--mono); color: var(--tinta-3);
}
.ch__prazo--vermelho { color: var(--vermelho); }
.ch__prazo--ambar { color: var(--ambar); }
.ch__ok {
  font: 600 11px var(--fonte); color: var(--verde);
  background: var(--verde-claro); border-radius: 6px; padding: 5px 10px;
}
.ch__resumo {
  background: var(--zebra); border-radius: 8px; padding: 10px 12px;
  font: 600 13px var(--fonte); color: var(--tinta);
}
.ch__resumo span { display: block; font: 400 11px var(--fonte); color: var(--tinta-5); margin-top: 2px; }

/* ------------------------------------------------ escala do manutencista */

.esq { display: grid; gap: 16px; align-items: start; }
.esq__hoje { display: flex; flex-direction: column; gap: 8px; }
.esq__cabecalho { background: var(--azul); border-radius: 12px; padding: 14px; color: #fff; }
.esq__eyebrow { font: 600 9.5px var(--fonte); letter-spacing: .08em; opacity: .7; margin: 0; text-transform: uppercase; }
.esq__conta { font: 700 15px var(--fonte); margin: 4px 0 0; }
.esq__nota { font: 400 11px var(--fonte); opacity: .75; margin: 2px 0 0; }
.esq__item button {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 13px 14px;
  cursor: pointer; min-height: 44px; text-align: left;
}
.esq__item button:hover { border-color: var(--verde); }
.esq__item.is-feito button { background: var(--verde-claro); border-color: var(--verde); }
.esq__amb { display: block; font: 600 13px var(--fonte); color: var(--tinta); }
.esq__obs { display: block; font: 400 11px var(--fonte); color: var(--tinta-5); }
.esq__marca { font: 700 16px var(--fonte); color: var(--tracejada); }
.esq__item.is-feito .esq__marca { color: var(--verde); }
.esq__semana { background: #fff; border: 1px solid var(--borda); border-radius: 12px; overflow: hidden; }
.esq__semana h2 {
  font: 700 13px var(--fonte); color: var(--tinta); margin: 0;
  padding: 12px 16px; border-bottom: 1px solid var(--borda);
}
.esq__linha {
  display: flex; gap: 12px; padding: 11px 16px; border-bottom: 1px solid var(--divisoria);
  font: 400 12.5px var(--fonte); color: var(--tinta-2); align-items: baseline;
}
.esq__dia { font: 600 11px var(--mono); color: var(--tinta-5); min-width: 34px; }
/* O dia de hoje é o que interessa na tabela da semana: sai do cinza. */
.esq__linha.is-hoje { background: var(--azul-claro); color: var(--tinta); font-weight: 600; }
.esq__linha.is-hoje .esq__dia { color: var(--tinta-2); }
.esq__rodape { font: 400 11px var(--fonte); color: var(--tinta-6); margin: 0; padding: 11px 16px; }

/* --------------------------------------------------------- avisos do dia */

.av__grade { display: grid; gap: 10px; }
.av { background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 14px; }
.av h3 { font: 700 12.5px var(--fonte); color: var(--tinta); margin: 0; }
.av p { font: 400 11.5px/1.5 var(--fonte); color: var(--tinta-3); margin: 3px 0 0; }
.av--urgente { background: var(--vermelho-claro); border-color: var(--vermelho-claro-bd); }
.av--urgente h3 { color: var(--vermelho); }
.av--urgente p { color: #5c3532; }

@media (min-width: 900px) {
  .eq__topo { padding: 16px 28px; }
  .eq__abas-topo { display: flex; }
  .eq__abas { display: none; }
  .eq__eu-texto { display: block; }
  .eq__corpo { padding: 22px 28px; }
  .eq__filtros { max-width: 420px; }
  .eq__filtro { flex: 0 0 auto; padding: 7px 15px; border-radius: 16px; }
  .ch__grade { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; max-width: 1050px; }
  .ch { padding: 16px; }
  .ch__titulo { font-size: 14px; }
  .esq { grid-template-columns: 380px 1fr; max-width: 1100px; }
  .av__grade { grid-template-columns: repeat(2, 1fr); max-width: 900px; }
}

/* ============================================================ portaria ==
   Cinco assuntos numa tela só, feita para o computador da guarita: o pátio
   é um grid de cartões grandes, com placa em monoespaçado — é o que o
   manobrista lê de longe, no meio do movimento. */

.pt__tela { display: grid; gap: 16px; }
.pt__h { font: 700 14px var(--fonte); color: var(--tinta); margin: 0 0 4px; }
.pt__ajuda { font: 400 11.5px/1.5 var(--fonte); color: var(--tinta-5); margin: 0 0 12px; }
.pt__receber .entrada { font: 600 18px var(--mono); padding: 12px 13px; }
.pt__btn { width: 100%; margin-top: 4px; }

.pt__sug { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.pt__opcao {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  border: 1px solid var(--borda); border-radius: 9px; padding: 10px 12px;
  background: #fff; min-height: 44px; margin: 0;
}
.pt__opcao:hover { border-color: var(--verde); background: #f6faf7; }
.pt__opcao.is-fora { background: var(--zebra); }
.pt__opcao.is-fora:hover { border-color: var(--borda); background: var(--zebra); }
.pt__opcao-sub { display: block; font: 400 11px var(--fonte); color: var(--tinta-5); }
.pt__receber-btn {
  border: 0; background: none; cursor: pointer; white-space: nowrap;
  font: 600 11px var(--fonte); color: var(--verde);
}
.pt__ja { font: 600 11px var(--fonte); color: var(--tinta-5); }
.pt__avulso {
  display: block; text-align: center; text-decoration: none;
  border: 1px dashed var(--tracejada); border-radius: 9px; padding: 10px 12px;
  font: 600 11.5px var(--fonte); color: var(--tinta-5);
}
.pt__avulso:hover { border-color: var(--azul); color: var(--azul); }

.pt__cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.pt__vagas { font: 600 12px var(--mono); color: var(--verde); }
/* Garagem estourada: o número não some, muda de cor. Ver 33/30 em vermelho
   diz mais ao manobrista do que qualquer aviso que ele possa fechar. */
.pt__vagas--cheio { color: var(--vermelho); }
.pt__grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.pt {
  background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 12px;
}
.pt--fora { background: var(--zebra); }
.pt__topo { display: flex; justify-content: space-between; align-items: baseline; }
.pt__topo .placa { font-size: 15px; }
.pt__unid { font: 700 13px var(--fonte); color: var(--azul); }
.pt__modelo { font: 400 11.5px var(--fonte); color: var(--tinta-5); margin: 2px 0 10px; }
.pt__obs {
  font: 400 11px/1.5 var(--fonte); color: var(--ambar); background: var(--ambar-fundo);
  border-radius: 6px; padding: 6px 8px; margin: 0 0 8px;
}
.pt__saiu {
  font: 600 11.5px var(--fonte); color: var(--tinta-3); background: var(--cinza-chip);
  border-radius: 7px; padding: 8px; text-align: center; margin: 0;
}
.pt__local { margin:0 0 5px; color:var(--verde); font:700 11.5px/1.4 var(--fonte); }
.pt__local.is-pendente { color:var(--vermelho); }
.pt__chave { margin:0 0 9px; color:var(--tinta-4); font:600 11px/1.4 var(--fonte); }
.pt__acoes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.pt__acoes .btn,.pt__acoes form,.pt__acoes form button { width:100%; margin:0; }
.pt__acoes .btn { min-height:38px; padding:8px 6px; display:flex; align-items:center; justify-content:center; font-size:11px; }

/* Mapa operacional: posição 1 fica junto à saída e o restante se afasta. */
.gar-map { min-width:0; padding:15px; }
.gar-map__cab { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:12px; }
.gar-map__cab p { margin:2px 0 0; color:var(--tinta-5); font:500 11px var(--fonte); }
.gar-map__cab>span { color:var(--azul); font:700 11px var(--mono); white-space:nowrap; }
.gar-map__estado { margin:0 0 10px; padding:8px 10px; border-radius:8px; font:700 11px/1.4 var(--fonte); }
.gar-map__estado.is-andamento { color:var(--azul); background:var(--azul-claro); }
.gar-map__estado.is-sucesso { color:var(--verde); background:var(--verde-claro); }
.gar-map__estado.is-erro { color:var(--vermelho); background:var(--vermelho-claro); }
.gar-map__selecao { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 12px; padding:11px 13px; border:2px solid var(--verde); border-radius:10px; background:var(--verde-claro); box-shadow:0 6px 18px #2e7d4f18; }
.gar-map__selecao[hidden] { display:none; }
.gar-map__selecao>div { min-width:0; display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; }
.gar-map__selecao span { color:var(--verde); font:850 9px var(--mono); letter-spacing:.04em; }
.gar-map__selecao b { color:var(--tinta); font:900 17px var(--mono); }
.gar-map__selecao strong { color:var(--azul); font:850 13px var(--fonte); }
.gar-map__selecao .btn { flex:none; min-height:34px; padding:7px 11px; }
.gar-map__garagens { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.gar-map__garagem { padding:12px; border-radius:11px; background:var(--zebra); border:1px solid var(--borda); min-width:0; }
.gar-map__garagem h3 { margin:0 0 10px; color:var(--tinta); font:800 14px var(--fonte); }
.gar-map__fileiras { display:grid; grid-template-columns:repeat(auto-fit,minmax(72px,1fr)); gap:7px; align-items:start; min-width:0; }
.gar-map__fileira { display:flex; flex-direction:column; gap:5px; min-width:0; }
.gar-map__nome { display:flex; min-height:59px; flex-direction:column; align-items:center; justify-content:flex-start; gap:2px; min-width:0; text-align:center; }
.gar-map__nome strong { display:grid; place-items:center; width:100%; height:32px; border-radius:7px; background:var(--azul); color:#fff; font:900 15px var(--mono); }
.gar-map__nome span { max-width:100%; overflow:hidden; text-overflow:ellipsis; color:var(--tinta-2); font:750 9.5px var(--fonte); white-space:nowrap; }
.gar-map__nome small { color:var(--verde); font:700 8px var(--mono); }
.gar-map__slots { display:grid; grid-auto-flow:row; grid-template-rows:repeat(var(--gar-max-posicoes, 1),minmax(64px,auto)); gap:8px; min-width:0; padding:1px; }
.gar-map__slot { position:relative; min-height:64px; padding:3px; border:1px dashed var(--tracejada); border-radius:8px; background:#fff; color:var(--tinta-6); display:flex; flex-direction:column; justify-content:center; align-items:center; min-width:0; transition:border-color .14s,background .14s,transform .14s; }
.gar-map__slot>small { position:absolute; z-index:2; top:3px; left:4px; font:700 7.5px var(--mono); opacity:.7; pointer-events:none; }
.gar-map__slot>i { font:500 8px var(--fonte); font-style:normal; }
.gar-map__slot.is-espaco { border-color:transparent; background:transparent; color:var(--tinta-6); }
.gar-map__slot.is-espaco>i { opacity:.5; }
.gar-map__slot.is-desativada { border-color:#d5d9df; background:#e8ebef; color:#8a929d; }
.gar-map__obstaculo,.tl-gar__obstaculo { position:absolute; z-index:8; bottom:-8px; width:var(--gar-obst-largura,16%); height:8px; border:1px solid #8d7756; border-radius:2px; background:repeating-linear-gradient(135deg,#8a7657 0,#8a7657 3px,#c6b797 3px,#c6b797 6px); box-shadow:0 1px 2px #0003; pointer-events:none; }
.gar-map__obstaculo.is-esquerda,.tl-gar__obstaculo.is-esquerda { left:0; }.gar-map__obstaculo.is-direita,.tl-gar__obstaculo.is-direita { right:0; }
.gar-map__obstaculo.is-ambos,.tl-gar__obstaculo.is-ambos { left:0; right:0; width:auto; border:0; background:none; box-shadow:none; }
.gar-map__obstaculo.is-ambos::before,.gar-map__obstaculo.is-ambos::after,.tl-gar__obstaculo.is-ambos::before,.tl-gar__obstaculo.is-ambos::after { content:""; position:absolute; top:0; width:var(--gar-obst-largura,16%); height:8px; border:1px solid #8d7756; border-radius:2px; background:repeating-linear-gradient(135deg,#8a7657 0,#8a7657 3px,#c6b797 3px,#c6b797 6px); }
.gar-map__obstaculo.is-ambos::before,.tl-gar__obstaculo.is-ambos::before { left:0; }.gar-map__obstaculo.is-ambos::after,.tl-gar__obstaculo.is-ambos::after { right:0; }
.gar-map__obstaculo.is-na-rota:not(.is-ambos),.gar-map__obstaculo.is-na-rota::before,.gar-map__obstaculo.is-na-rota::after { border-color:#b97800; box-shadow:0 0 0 2px #f4b83f66; }
.gar-map__slot.is-ocupado { border-style:solid; border-color:#a8c1dc; background:#edf5fd; color:var(--azul); }
.gar-map__carro { position:relative; width:100%; min-height:56px; padding:12px 22px 5px 5px; border-radius:6px; color:var(--azul); text-decoration:none; display:flex; flex-direction:column; justify-content:center; align-items:center; cursor:grab; -webkit-user-drag:element; }
.gar-map__carro:active { cursor:grabbing; }
.gar-map__carro b { max-width:100%; overflow:hidden; text-overflow:ellipsis; font:850 12px var(--mono); }
.gar-map__carro strong { font:950 21px/1 var(--fonte); color:var(--tinta); }
.gar-map__arrastar { position:absolute; top:2px; right:2px; display:grid; place-items:center; width:20px; height:24px; border-radius:5px; color:var(--tinta-5); font:900 17px/1 var(--fonte); cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; }
.gar-map__arrastar:hover { color:var(--azul); background:#fff8; }
.gar-map__carro.is-arrastado { opacity:.28; }
.gar-map__slot.is-rota { border-style:solid; border-color:#3a91c8; background:#eaf6fc; box-shadow:inset 0 0 0 2px #3a91c824; }
.gar-map__slot.is-espaco.is-rota { border:1px dashed #3a91c8; background:#eef9fd; }
.gar-map__slot.is-bloqueador { border-color:#e1a82f; background:#fff4d9; color:#7b5810; }
.gar-map__slot.is-saida { border-color:var(--vermelho); background:var(--vermelho-claro); box-shadow:0 0 0 2px #bd3b3220; }
.gar-map.is-alocando .gar-map__slot.is-vaga-escolhivel { border:2px solid var(--verde); background:#ecf8ef; color:var(--verde); cursor:pointer; touch-action:manipulation; box-shadow:inset 0 0 0 2px #fff; }
.gar-map.is-alocando .gar-map__slot.is-vaga-escolhivel::after { content:"ESCOLHER"; font:900 8px var(--mono); letter-spacing:.03em; }
.gar-map.is-alocando .gar-map__slot.is-vaga-escolhivel>i { display:none; }
.gar-map.is-alocando .gar-map__slot.is-vaga-escolhivel:hover,
.gar-map.is-alocando .gar-map__slot.is-vaga-escolhivel:focus-visible { background:#d9f0df; box-shadow:0 0 0 3px #2e7d4f2c; transform:translateY(-2px); outline:0; }
.gar-map.is-alocando .gar-map__slot.is-ocupado:not(.is-origem) { opacity:.45; }
.gar-map.is-alocando .gar-map__slot.is-origem { border-color:var(--azul); box-shadow:0 0 0 3px #184b7725; }
.gar-map__carro.is-selecionado { background:#fff; box-shadow:inset 0 0 0 2px var(--azul); }
.gar-map.is-arrastando [data-gar-destino] { border-color:#7ca8d0; }
.gar-map [data-gar-destino].is-destino { border-color:var(--verde); background:#e5f4e9; box-shadow:0 0 0 3px #2e7d4f25; transform:translateY(-2px); }
.gar-map.is-salvando { cursor:progress; }
.gar-map.is-salvando .gar-map__carro { pointer-events:none; }
.gar-map__pendentes { display:flex; gap:7px; align-items:center; flex-wrap:wrap; min-height:48px; margin-top:11px; padding:10px; border:1px dashed var(--tracejada); border-radius:9px; background:#fff; transition:border-color .14s,background .14s,transform .14s; }
.gar-map__pendentes>strong { color:var(--vermelho); font:800 9px var(--mono); margin-right:4px; }
.gar-map__pendentes>div { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.gar-map__pendentes .gar-map__carro { width:auto; min-width:112px; min-height:38px; padding:7px 27px 6px 9px; flex-direction:row; gap:6px; background:var(--vermelho-claro); color:var(--vermelho); }
.gar-map__pendentes .gar-map__carro b { font:800 10px var(--mono); }
.gar-map__pendentes .gar-map__carro strong { font:800 10px var(--fonte); color:var(--vermelho); }
.gar-map__solte { color:var(--tinta-6); font:600 9px var(--fonte); }
.gar-map__pendentes:not(.is-vazia) .gar-map__solte { margin-left:auto; }
.gar-map__fantasma { position:fixed; z-index:10000; width:112px!important; min-height:54px; transform:translate(-50%,-58%); background:#edf5fd!important; border:2px solid var(--azul); box-shadow:0 12px 30px #102f4a45; opacity:.94; pointer-events:none; }
.gar-plano__alvo { display:grid; padding:15px; margin-bottom:18px; border-radius:11px; background:var(--azul); color:#fff; }
.gar-plano__alvo span { font:800 9px var(--mono); opacity:.7; }.gar-plano__alvo b { font:900 25px var(--mono); }
.gar-plano__alvo strong { font:800 16px var(--fonte); }.gar-plano__alvo small { margin-top:6px; opacity:.75; }
.gar-plano__rota { margin:-7px 0 16px; padding:10px; border:1px solid #a9cee3; border-radius:9px; background:#eff8fc; }
.gar-plano__rota>span { display:block; margin-bottom:5px; color:#477892; font:850 8px var(--mono); }.gar-plano__rota p { margin:0; color:var(--tinta-5); font:650 11px/1.6 var(--mono); }
.gar-plano__rota b { color:var(--azul); }.gar-plano__rota strong { color:var(--verde); }
.gar-plano__titulo { margin:0 0 9px; font:800 13px var(--fonte); }
.gar-plano__lista { display:grid; gap:6px; padding:0; margin:0 0 18px; list-style:none; counter-reset:carro; }
.gar-plano__lista li { counter-increment:carro; display:grid; grid-template-columns:auto 1fr; padding:10px; border-radius:8px; background:var(--ambar-fundo); }
.gar-plano__lista li::before { content:counter(carro); grid-row:1/3; display:grid; place-items:center; width:26px; height:26px; margin-right:9px; border-radius:50%; background:var(--ambar); color:#fff; font:800 11px var(--mono); }
.gar-plano__lista b { font:800 13px var(--mono); }.gar-plano__lista span { justify-self:end; font:700 11px var(--fonte); }
.gar-plano__lista small { color:var(--tinta-5); font:500 10px var(--fonte); }
.gar-plano__obstaculos { display:grid; gap:7px; margin:0 0 18px; }
.gar-plano__obstaculos .gar-plano__titulo { margin-bottom:1px; }
.gar-plano__obstaculos p { margin:0; padding:10px; display:grid; grid-template-columns:auto 1fr; gap:2px 10px; border:1px solid #e2bd73; border-radius:8px; background:#fff8e6; }
.gar-plano__obstaculos p b { color:#6b4c10; font:800 12px var(--fonte); }.gar-plano__obstaculos p span { text-align:right; color:var(--tinta-5); font:600 10px var(--fonte); }
.gar-plano__obstaculos p strong { grid-column:1/-1; color:#a36000; font:900 9px var(--mono); }

/* Configuração física, deliberadamente mais espaçosa que uma tabela. */
.gar-config__resumo { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.gar-config__resumo>div { padding:16px; border:1px solid var(--borda); border-radius:12px; background:#fff; }
.gar-config__resumo span { display:block; color:var(--tinta-6); font:800 9px var(--mono); letter-spacing:.04em; }
.gar-config__resumo strong { display:block; margin-top:5px; color:var(--tinta); font:900 27px var(--fonte); }
.gar-config__garagens { display:grid; gap:16px; margin:16px 0; }
.gar-config__garagem.is-inativa,.gar-config__fileira.is-inativa { opacity:.58; }
.gar-config__cab { display:grid; grid-template-columns:minmax(220px,1fr) 160px 100px auto auto; gap:12px; align-items:end; padding-bottom:14px; border-bottom:1px solid var(--borda); }
.gar-config__fileiras { display:grid; gap:8px; margin-top:12px; }
.gar-config__fileira { display:grid; gap:12px; padding:13px; border-radius:11px; background:var(--zebra); border:1px solid var(--borda); }
.gar-config__fileira-cab { display:grid; grid-template-columns:44px minmax(180px,1fr) 100px auto 95px; gap:10px; align-items:end; }
.gar-config__letra { align-self:center; display:grid; place-items:center; width:38px; height:38px; border-radius:9px; color:#fff; background:var(--azul); font:900 16px var(--mono); }
.gar-config__cap { align-self:center; text-align:right; }.gar-config__cap span { display:block; color:var(--tinta-6); font:800 8px var(--mono); }.gar-config__cap strong { color:var(--verde); font:900 24px var(--fonte); }
.gar-config__eixo { display:flex; justify-content:space-between; margin-bottom:-7px; color:var(--tinta-6); font:800 8px var(--mono); letter-spacing:.04em; }
.gar-config__slots { display:grid; grid-template-columns:repeat(var(--gar-profundidade),minmax(105px,1fr)); gap:7px; padding:9px; overflow-x:auto; border-radius:9px; background:#fff; }
.gar-config__slot { min-width:105px; padding:7px; border:1px solid var(--borda); border-radius:8px; background:#fff; }
.gar-config__slot>b { display:block; margin-bottom:5px; color:var(--tinta-5); font:850 10px var(--mono); }
.gar-config__slot .selecao { min-width:0; width:100%; padding:8px 6px; font-size:11px; }
.gar-config__slot.is-vaga { border-color:#8dc5a1; background:#eff8f2; }.gar-config__slot.is-desativada { background:#e8ebef; }.gar-config__slot.is-espaco { border-style:dashed; }
.gar-config__obstaculos { border:1px solid #decda9; border-radius:9px; background:#fffaf0; }
.gar-config__obstaculos>summary { padding:10px 12px; display:flex; justify-content:space-between; gap:10px; cursor:pointer; color:#684f22; font:800 11px var(--fonte); }
.gar-config__obstaculos>summary b { font:800 9px var(--mono); }.gar-config__obstaculos>p { margin:0; padding:0 12px 9px; color:var(--tinta-5); font-size:10px; }
.gar-config__intervalos { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:7px; padding:0 9px 9px; }
.gar-config__intervalo { display:grid; grid-template-columns:1fr; gap:6px; padding:8px; border:1px dashed #d3c6ae; border-radius:8px; background:#fff; }
.gar-config__intervalo.is-ativo { border-style:solid; border-color:#b89351; box-shadow:inset 3px 0 #b89351; }.gar-config__intervalo>strong { color:#7c6b4f; font:850 8px var(--mono); }
.gar-config__intervalo>label>span:first-child { display:block; margin-bottom:4px; color:var(--tinta-5); font:700 9px var(--fonte); }
.gar-config__medida { display:flex; align-items:center; gap:5px; }.gar-config__medida .entrada { min-width:0; padding:8px; }.gar-config__medida>b { color:var(--tinta-5); font:750 10px var(--mono); }
.gar-config__fileira-acoes { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.gar-config__fileira-acoes>span { margin-right:auto; color:var(--tinta-5); font:700 10px var(--fonte); }
.gar-config__fileira-acoes .btn { min-height:34px; padding:7px 10px; }
.gar-config__nova form { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)) auto; gap:10px; align-items:end; }

@media(min-width:900px) {
  .pt__tela { grid-template-columns:340px minmax(0,1fr); }
  .gar-map { grid-column:2; }
  .pt__lista { grid-column:1/-1; }
}
@media(max-width:899px) {
  .gar-map__garagens { grid-template-columns:1fr; }
  .gar-map__cab { flex-direction:column; }
  .gar-map__selecao { align-items:flex-start; }
  .gar-map__selecao>div { flex-direction:column; gap:3px; }
  .gar-config__resumo { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gar-config__cab,.gar-config__fileira-cab,.gar-config__nova form { grid-template-columns:1fr 1fr; }
  .gar-config__letra { grid-row:span 2; }
  .gar-config__fileira-acoes { justify-content:flex-start; }
}

/* ------------------------------------------------------- passagem de turno */

.tn { display: grid; gap: 16px; align-items: start; }
.tn__cab { display: flex; justify-content: space-between; align-items: center; }
.tn__conta { font: 600 12px var(--mono); color: var(--verde); }
.tn__conta--falta { color: var(--ambar); }
.tn__grade { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tn__item { margin: 0; }
.tn__item button {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px;
  border: 1px solid var(--borda); background: #fff; border-radius: 9px;
  padding: 10px 12px; min-height: 44px; cursor: pointer; text-align: left;
}
.tn__item button:hover { border-color: var(--verde); }
.tn__item.is-ok button { background: var(--verde-claro); border-color: #bcd4c1; }
.tn__item-sub { display: block; font: 400 11.5px var(--fonte); color: var(--tinta-5); }
.tn__marca { font: 700 14px var(--fonte); color: var(--tinta-5); }
.tn__item.is-ok .tn__marca { color: var(--verde); }

.tn__recs {
  background: var(--ambar-fundo); border: 1px solid var(--ambar-claro-bd);
  border-radius: 10px; padding: 14px; margin-top: 12px;
}
.tn__recs h3 { font: 700 12.5px var(--fonte); color: var(--ambar); margin: 0 0 6px; }
.tn__recs ul { margin: 0; padding-left: 18px; font: 400 12px/1.7 var(--fonte); color: #5c4a1a; }
.tn__recs-vazio { font: 400 12px var(--fonte); color: #8a7a52; margin: 0; }
.tn__add { display: flex; gap: 6px; margin-top: 8px; }
.tn__add .entrada { flex: 1; background: #fff; border-color: #e8dcbb; }
.tn__add-btn { background: var(--ambar); white-space: nowrap; }
.tn__add-btn:hover { background: #654a12; }

.tn__lado { display: flex; flex-direction: column; gap: 12px; }
.tn__aceite { background: var(--azul); border-radius: 12px; padding: 18px; color: #fff; }
.tn__aceite h2 { font: 700 13.5px var(--fonte); margin: 0 0 4px; }
.tn__aceite > p { font: 400 11.5px/1.55 var(--fonte); opacity: .75; margin: 0 0 14px; }
.tn__aceite .campo__rotulo { color: #fff; opacity: .8; }
.tn__aceite .entrada { border: 0; }
.tn__aceitar { width: 100%; background: var(--verde); margin-top: 4px; }
.tn__aceitar[disabled] { background: rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .6); cursor: not-allowed; }
.tn__aviso { font: 600 11px var(--fonte); color: var(--ambar-barra); margin: 8px 0 0; }
.tn__como h3 { font: 700 12.5px var(--fonte); color: var(--tinta); margin: 0 0 6px; }
.tn__como ol { margin: 0; padding-left: 18px; font: 400 11.5px/1.7 var(--fonte); color: var(--tinta-5); }

/* -------------------------------------------------- mudanças na portaria */

.mv__item {
  background: #fff; border: 1px solid var(--borda); border-radius: 10px;
  padding: 16px; display: flex; justify-content: space-between; align-items: center;
  gap: 14px; margin-bottom: 10px;
}
.mv__esq { display: flex; gap: 14px; align-items: center; }
.mv__data {
  width: 52px; text-align: center; background: var(--azul-claro);
  border-radius: 8px; padding: 8px 4px;
}
.mv__data b { display: block; font: 700 15px var(--fonte); color: var(--azul); }
.mv__data span { font: 600 9.5px var(--fonte); color: var(--tinta-5); }
.mv__item h3 { font: 700 13.5px var(--fonte); color: var(--tinta); margin: 0; }
.mv__item p { font: 400 11.5px var(--fonte); color: var(--tinta-5); margin: 2px 0 0; }
.mv__ok {
  font: 600 11px var(--fonte); color: var(--verde); background: var(--verde-claro);
  border-radius: 6px; padding: 6px 12px; white-space: nowrap;
}

/* Liberada ainda não é encerrada: a guarita vê o carimbo e o botão de fechar. */
.mv__fim { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

/* --------------------------------------------------------- consulta rápida */

.cq__busca { display: flex; gap: 8px; margin-bottom: 14px; }
.cq__busca .entrada { flex: 1; font: 600 15px var(--fonte); padding: 13px 15px; }
.cq__grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.cq__cartao { background: #fff; border: 1px solid var(--borda); border-radius: 12px; padding: 16px; }
.cq__topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cq__topo b { font: 700 15px var(--fonte); color: var(--tinta); }
.cq__tag {
  font: 600 10px var(--fonte); color: var(--azul); background: var(--azul-claro);
  border-radius: 5px; padding: 3px 8px;
}
.cq__cartao p { font: 400 12.5px/1.8 var(--fonte); color: var(--tinta-2); margin: 0; }

/* ------------------------------------------------------ achados e perdidos */

.ah { display: grid; gap: 16px; align-items: start; }
.ah__form .btn { width: 100%; }
.ah__nota { font: 400 10.5px/1.5 var(--fonte); color: var(--tinta-6); margin: 8px 0 0; }
.ah__lista { padding: 0; }
.ah__cab { padding: 12px 16px; border-bottom: 1px solid var(--borda); margin: 0; }
.ah__item {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 13px 16px; border-bottom: 1px solid var(--divisoria);
}
.ah__item b { font: 600 12.5px var(--fonte); color: var(--tinta); }
.ah__item small { display: block; font: 400 11px var(--fonte); color: var(--tinta-5); }
.ah__btn { white-space: nowrap; padding: 7px 13px; }
.ah__ok {
  font: 600 10.5px var(--fonte); color: var(--tinta-3); background: var(--cinza-chip);
  border-radius: 5px; padding: 4px 9px; text-align: right;
}
.ah__resumo {
  background: var(--zebra); border-radius: 9px; padding: 10px 12px;
  font: 600 12.5px var(--fonte); color: var(--tinta);
}
.ah__resumo span { display: block; font: 400 11px var(--fonte); color: var(--tinta-5); margin-top: 2px; }

@media (min-width: 900px) {
  .pt__tela { grid-template-columns: 340px 1fr; }
  .tn { grid-template-columns: 1fr 400px; max-width: 1130px; }
  .ah { grid-template-columns: 320px 1fr; max-width: 1000px; }
}
@media (max-width: 640px) {
  .tn__grade { grid-template-columns: 1fr; }
  .mv__item { flex-direction: column; align-items: stretch; }
}

/* ====================================================== conforto no mobile
   O primeiro desenho móvel preservava a densidade do protótipo de desktop:
   havia textos de 9–12 px em quase toda tela. Esta camada mantém a estrutura
   responsiva, mas dá escala de leitura e toque próprias a celulares. Campos
   ficam em 16 px para o iOS não ampliar a página ao receber foco. */

@media (max-width: 899px) {
  html { scrollbar-gutter: auto; -webkit-text-size-adjust: 100%; }
  body { font-size: 16px; line-height: 1.5; }

  /* Administração: cabeçalho, menu recolhível e conteúdo. */
  .lateral { padding: 14px 16px; }
  .lateral__topo { min-height: 46px; }
  .marca__sc { width: 36px; height: 36px; border-radius: 9px; }
  .marca__nome { font-size: 15px; line-height: 1.35; }
  .marca__sub { font-size: 12px; line-height: 1.4; }
  .menu-btn { width: 44px; height: 44px; font-size: 20px; }
  .lateral.is-aberta .lateral__nav { margin-top: 14px; }
  .nav__grupo { gap: 4px; }
  .nav__titulo { padding: 13px 9px 5px; font-size: 11px; }
  .nav__item { min-height: 46px; padding: 11px 12px; font-size: 15px; line-height: 1.35; }
  .nav__badge { padding: 2px 7px; font-size: 11.5px; }
  .lateral__usuario { padding: 14px 10px 4px; gap: 10px; }
  .lateral__avatar { width: 38px; height: 38px; font-size: 13px; }
  .lateral__nome { font-size: 14px; }
  .lateral__email, .lateral__sair button { font-size: 12.5px; }

  .conteudo { padding: 20px 16px 36px; }
  .tela-topo { gap: 12px; margin-bottom: 20px; }
  .tela-titulo { font-size: 24px; line-height: 1.18; }
  .tela-sub { margin-top: 5px; font-size: 14px; line-height: 1.5; }
  .tela-acoes { gap: 10px; }

  /* Componentes compartilhados pelas telas e pelos formulários. */
  .btn { min-height: 46px; padding: 11px 17px; font-size: 15px; line-height: 1.25; }
  .btn--contorno { padding: 11px 17px; font-size: 15px; }
  .btn--pequeno { min-height: 42px; padding: 9px 14px; font-size: 14px; }
  .acao { min-height: 36px; display: inline-flex; align-items: center; font-size: 14px; line-height: 1.4; }

  .card { padding: 19px 17px; border-radius: 12px; }
  .card--limpo { padding: 0; }
  .card__titulo { margin-bottom: 15px; font-size: 17px; line-height: 1.35; }
  .card__titulo--barra { margin: 0; padding: 15px 17px; font-size: 16px; }
  .card__texto { font-size: 14.5px; line-height: 1.6; }
  .grade, .coluna { gap: 16px; }
  .grade--kpi { gap: 10px; margin-bottom: 18px; }
  .kpi { padding: 16px; }
  .kpi__rotulo { font-size: 11.5px; line-height: 1.35; }
  .kpi__valor { margin-top: 4px; font-size: 29px; }
  .kpi__nota { font-size: 13px; }

  .tab__linha { min-height: 56px; padding: 15px 17px; gap: 6px; font-size: 15px; line-height: 1.45; }
  .tab__rodape { padding: 14px 17px; font-size: 13.5px; }
  .tab__vazio { padding: 28px 17px; font-size: 14.5px; line-height: 1.5; }
  .forte, .unid, .placa { font-size: 15px; }
  .cod, .cod--cinza { font-size: 13px; }
  .cod--azul { font-size: 13.5px; }
  .chip { padding: 4px 9px; font-size: 12px; line-height: 1.3; }
  .pill { padding: 8px 14px; font-size: 13.5px; }
  .pills { gap: 8px; margin-bottom: 16px; }
  .tag { padding: 6px 10px; font-size: 13px; }
  .anexo { padding: 6px 10px; font-size: 12.5px; line-height: 1.35; }

  .campo__rotulo { margin-bottom: 7px; font-size: 14px; line-height: 1.35; }
  .campo__dica { margin-top: 6px; font-size: 13px; line-height: 1.45; }
  .entrada, .selecao, .area, .busca {
    min-height: 48px; padding: 12px 13px; font-size: 16px; line-height: 1.4;
  }
  .entrada--mono { font-size: 15px; }
  .area { min-height: 112px; line-height: 1.55; }
  .dupla, .adupla { grid-template-columns: 1fr; gap: 0; }
  .filtros { gap: 10px; margin-bottom: 18px; }
  .filtros .entrada, .filtros .selecao { width: 100%; min-width: 0; }
  .form-linha { gap: 12px; margin-top: 14px; }
  .upload { padding: 24px 18px; font-size: 14px; line-height: 1.55; }
  .upload strong { font-size: 14px; }
  .upload__nome { font-size: 12.5px; line-height: 1.45; }
  .toggle { gap: 14px; min-height: 48px; font-size: 14.5px; line-height: 1.45; }
  .toggle__ctrl { width: 44px; height: 24px; border-radius: 12px; }
  .toggle__ctrl::after { width: 20px; height: 20px; }
  .toggle input:checked + .toggle__ctrl::after { transform: translateX(20px); }
  .aviso-azul, .aviso-ambar, .aviso-erro {
    padding: 13px 14px; font-size: 14px; line-height: 1.55;
  }

  .drawer { padding: 22px 18px; gap: 18px; }
  .drawer__titulo { font-size: 21px; line-height: 1.25; }
  .drawer__x { min-width: 44px; min-height: 44px; font-size: 18px; }
  .drawer__cabecalho { gap: 14px; padding: 15px; }
  .drawer__nome { font-size: 17px; }
  .drawer__sub { font-size: 13.5px; }
  .drawer__dados { row-gap: 15px; font-size: 14.5px; line-height: 1.55; }
  .drawer__dado-rotulo { margin-bottom: 4px; font-size: 12px; }
  .drawer__destaque { font-size: 15px; }
  .drawer__eyebrow { font-size: 12px; }
  .drawer__texto { font-size: 14.5px; line-height: 1.65; }
  .drawer__rodape { gap: 10px; padding-top: 8px; }
  .drawer__rodape .btn { flex: 1; }
  .ficha__t { font-size: 19px; line-height: 1.3; }
  .ficha__s { margin-top: 6px; font-size: 13.5px; line-height: 1.5; }
  .ficha__texto { font-size: 15px; line-height: 1.65; }
  .secao { margin: 26px 0 12px; font-size: 12.5px; }
  .hist { gap: 16px; }
  .hist__item { padding: 16px; }
  .hist__quem { font-size: 15px; }
  .hist__quando { font-size: 12px; }
  .hist__corpo { font-size: 14.5px; line-height: 1.65; }
  .hist__tipo { font-size: 11.5px; }
  .lista__item { gap: 14px; padding: 16px 17px; }
  .lista__t { font-size: 15.5px; line-height: 1.4; }
  .lista__s { margin-top: 3px; font-size: 13.5px; line-height: 1.5; }
  .lista__vazio { padding: 28px 17px; font-size: 14.5px; }
  .toast { max-width: calc(100vw - 32px); padding: 13px 16px; font-size: 14px; line-height: 1.45; }
  .app-estado, .app-atualizacao { font-size: 14px; }
  .app-atualizacao { bottom: calc(88px + env(safe-area-inset-bottom)); align-items: stretch; flex-direction: column; }
  .app-atualizacao button { min-height: 46px; font-size: 14px; }
  .campo__erro { font-size: 13px; }
  .upload__previas img { width: 72px; height: 72px; }

  .pend__item { min-height: 54px; padding: 13px 14px; }
  .pend__t { font-size: 15px; }
  .pend__s { margin-top: 2px; font-size: 13px; line-height: 1.45; }
  .linhas { font-size: 14px; line-height: 1.8; }
  .hora { font-size: 12px; }
  .faixa-azul__rotulo { font-size: 11.5px; }
  .faixa-azul__texto { font-size: 15px; }
  .log { padding: 12px 13px; font-size: 14px; line-height: 1.55; }
  .kcol__titulo { font-size: 15px; }
  .kcol__titulo span { font-size: 13px; }
  .kcol__vazio { font-size: 14px; }
  .obra__t { font-size: 15.5px; }
  .obra__m { font-size: 13px; line-height: 1.45; }
  .obra__det { font-size: 14px; line-height: 1.6; }
  .obra__nota { padding: 11px 12px; font-size: 13.5px; line-height: 1.55; }
  .obra__pe { font-size: 12px; }
  .obra__d { font-size: 12.5px; }
  .enq__t { font-size: 16px; line-height: 1.4; }
  .enq__m { font-size: 13.5px; line-height: 1.5; }
  .enq__op, .enq__pct { font-size: 14px; line-height: 1.45; }
  .resultado__linha, .resultado__n { font-size: 14.5px; }
  .mud__t, .orc__t, .ctx__t { font-size: 16px; line-height: 1.4; }
  .mud__s, .orc__m, .ctx, .ctx__s { font-size: 13.5px; line-height: 1.55; }
  .orc__valor { font-size: 21px; }
  .data-bloco__d { font-size: 17px; }
  .data-bloco__m { font-size: 11px; }
  .texto-preservado { font-size: 15px; line-height: 1.7; }
  .orc-dados dt { font-size: 11.5px; }
  .orc-dados dd { font-size: 14.5px; }
  .proposta-card { padding: 17px; }
  .proposta-card__titulo { font-size: 17px; }
  .proposta-card__topo p, .proposta-card__resumo { font-size: 14px; line-height: 1.55; }
  .proposta-card__meta { font-size: 12.5px; line-height: 1.45; }
  .proposta-contexto strong { font-size: 17px; }
  .proposta-contexto p { font-size: 14px; line-height: 1.6; }
  .anexos-lista a { font-size: 14px; }
  .anexos-lista small { font-size: 12px; }
  .oc__t { font-size: 17px; }
  .oc__desc { font-size: 14.5px; line-height: 1.65; }
  .oc__meta, .oc__rest { font-size: 13px; }
  .divisor span { font-size: 12px; }
  .selo-prio { padding: 5px 9px; font-size: 11.5px; }
  .marcos { flex-wrap: wrap; gap: 6px; }
  .marcos__m { padding: 4px 7px; font-size: 10.5px; }
  .editor__barra { gap: 4px; padding: 8px; }
  .editor__barra button, .editor__foto { min-height: 38px; padding: 7px 9px; font-size: 13px; }
  .editor__area, .rico { font-size: 16px; line-height: 1.65; }
  .editor__area h2, .rico h2 { font-size: 19px; }
  .editor__area h3, .rico h3 { font-size: 17px; }
  .editor__dica { font-size: 13px; line-height: 1.45; }
  .pe-intro, .pe-resumo { font-size: 14.5px; }
  .pe-mestre { padding: 16px; }
  .pe-mestre strong { font-size: 16px; }
  .pe-mestre span { font-size: 13.5px; line-height: 1.5; }
  .pe-card { padding: 17px; }
  .pe-card__nome { font-size: 17px; }
  .pe-card__nome > span:last-child { font-size: 13px; }
  .pe-card__meta, .pe-card__falha, .pe-uso > div > span { font-size: 13px; line-height: 1.45; }

  /* App do condômino: leitura, cartões e navegação inferior. */
  .ap__topo {
    min-height: 68px; padding: max(14px, env(safe-area-inset-top)) 16px 13px;
  }
  .ap__topo-esq { gap: 11px; min-height: 42px; }
  .ap__topo-dir { gap: 9px; }
  .ap__voltar { min-width: 36px; min-height: 42px; font-size: 22px; }
  .ap__sc { width: 34px; height: 34px; border-radius: 9px; }
  .ap__titulo { font-size: 19px; line-height: 1.25; }
  .ap__redondo { width: 42px; height: 42px; font-size: 15px; }
  .ap__redondo--eu { font-size: 14px; }
  .ap__ponto { width: 18px; height: 18px; font-size: 10.5px; }
  .ap__corpo { padding: 20px 16px 30px; }
  .ap__abas {
    gap: 2px; padding: 8px 4px max(12px, env(safe-area-inset-bottom));
  }
  .ap__aba {
    min-width: 58px; min-height: 56px; padding: 6px 3px 4px;
    font-size: 12px; line-height: 1.2;
  }
  .ap__icone { margin-bottom: 5px; transform: scale(1.08); }
  .toast--app { bottom: 94px; }

  .asino__painel { top: 50px; right: -2px; padding: 8px; }
  .asino__cab { padding: 9px 11px 8px; font-size: 15px; }
  .asino__vazio { padding: 6px 11px 14px; font-size: 13.5px; }
  .asino__linha { gap: 10px; padding: 12px 11px; }
  .asino__meio b { font-size: 14px; line-height: 1.4; }
  .asino__meio span { font-size: 13px; line-height: 1.5; }
  .asino__quando { font-size: 12px !important; }
  .asino__pe { min-height: 44px; padding: 12px; font-size: 13.5px; }

  .asaudacao { font-size: 25px; line-height: 1.2; }
  .asub { margin: 4px 0 18px; font-size: 14px; line-height: 1.5; }
  .ac { padding: 18px 17px; border-radius: 13px; }
  .ac + .ac { margin-top: 14px; }
  .alista { gap: 12px; }
  .alista--folgada { gap: 14px; }
  .alista > .ac + .ac, .ahome__lado > .ac + .ac { margin-top: 0; }
  .ac__cab { gap: 12px; margin-bottom: 10px; }
  .ac__t { font-size: 17px; line-height: 1.35; }
  .ac__ver { font-size: 14px; }
  .ac__linha { gap: 12px; font-size: 15px; line-height: 1.5; }
  .ac__linha + .ac__linha { margin-top: 9px; }
  .ac__ap { font-size: 14px; line-height: 1.6; }
  .arapida { gap: 12px; margin-bottom: 18px; }
  .arapida a { min-height: 78px; padding: 17px 15px; }
  .arapida b { gap: 8px; font-size: 15.5px; line-height: 1.3; }
  .arapida span { margin-top: 5px; font-size: 13px; line-height: 1.4; }
  .adestaque { padding: 18px; }
  .adestaque .asobrancelha, .asobrancelha { font-size: 11.5px; line-height: 1.35; }
  .adestaque b { font-size: 16px; line-height: 1.5; }
  .adestaque__btn { min-height: 44px; padding: 11px 16px; font-size: 14px; }
  .ahome, .ahome__lado { gap: 14px; }
  .acolunas { gap: 14px; }
  .acoluna b { margin-bottom: 4px; font-size: 15px; }
  .acoluna span { font-size: 14px; line-height: 1.6; }
  .abtn { min-height: 48px; padding: 14px 17px; font-size: 15.5px; }
  .abtn--claro, .abtn--sair { font-size: 14.5px; }
  .aitem { gap: 13px; min-height: 54px; }
  .aitem b, .aitem__meio b { font-size: 15px; line-height: 1.4; }
  .aitem small { margin-top: 3px; font-size: 13.5px; line-height: 1.45; }
  .aitem__chevron { font-size: 17px; }
  .aitem__icone { font-size: 19px; }
  .achips { gap: 7px; margin-bottom: 7px; }
  .achip { padding: 4px 8px; font-size: 12px; }
  .adata { width: 54px; padding: 9px 5px; }
  .adata b { font-size: 17px; }
  .adata span { font-size: 10.5px; }
  .aform { gap: 17px; }
  .anota { padding: 14px; font-size: 14px; line-height: 1.6; }
  .anota b { font-size: 14px; }
  .aopcoes { gap: 8px; }
  .aopcoes span { min-height: 44px; padding: 11px 14px; font-size: 14px; }
  .avazio { padding: 34px 18px; font-size: 14.5px; line-height: 1.55; }
  .adados { gap: 12px; font-size: 14px; line-height: 1.5; }
  .adados > div > span { margin-bottom: 3px; font-size: 11.5px; }
  .alinha { gap: 12px; padding: 10px 0; font-size: 14px; line-height: 1.5; }
  .alinha b { font-size: 14px; }
  .apassos { gap: 6px; margin-top: 10px; }
  .apasso { padding: 4px 8px; font-size: 11.5px; }
  .amono { font-size: 13.5px; }
  .atrasado { font-size: 14px; }
  .anot__quando { font-size: 12px; }
  .aext { width: 42px; height: 42px; font-size: 10.5px; }
  .arico { font-size: 16px; line-height: 1.7; }
  .avalor { font-size: 19px; }
  .acedulas { gap: 13px; margin-bottom: 16px; }
  .acedula__foto { height: 110px; }
  .acedula__pe { padding: 14px; }
  .acedula__texto { font-size: 15px; line-height: 1.4; }
  .acedula__pct, .acedula__minha { font-size: 13px; }
  .aenq__t { font-size: 19px; }
  .aresultado__topo, .aresultado__topo b { font-size: 14px; }
  .aresultado__n { font-size: 12.5px; }
  .aavatar { width: 38px; height: 38px; font-size: 13px; }
  .aavatar--g { width: 56px; height: 56px; font-size: 18px; }
  .alink { min-height: 36px; font-size: 14px; }
  .aperfil .ac__t { font-size: 17px; }
  .agestao { padding: 18px; }
  .amembro { min-height: 54px; padding: 12px 13px; }
  .amembro b { font-size: 14.5px; }
  .amembro__sub { font-size: 13px; }
  .arep__foto { width: 50px; height: 50px; }
  .arep__foto--vazia { font-size: 10.5px; }
  .aproposta { padding: 15px; }
  .aproposta__t { font-size: 15.5px; }
  .aproposta__s { font-size: 13.5px; }
  .aobra-orcamentos > strong, .aorc-notas > strong { font-size: 12px; }
  .aobra-orcamentos > a { min-height: 44px; align-items: center; font-size: 14px; }
  .aobra-orcamentos > a span { font-size: 12.5px; }
  .notas-fiscais { grid-template-columns: 1fr; }
  .nota-fiscal-bloco h3 { font-size: 15px; }
  .oc__orcamentos-t { font-size: 11.5px; }
  .oc__orcamento { padding: 10px 0; }
  .oc__orcamento strong { font-size: 14.5px; }
  .oc__orcamento span { font-size: 12.5px; }
  .vinculos-atuais > a { min-height: 44px; padding: 12px; font-size: 14px; }
  .aachados__pe { font-size: 13.5px; line-height: 1.5; }
  .evidencia-assinatura__valor { font-size: 13px; }
  .evidencia-assinatura__origem { font-size: 14px; }
  .lista-item { font-size: 14.5px; }
  .lista-item small { font-size: 13px; }
  .acom__item { padding: 17px; }
  .acom__t { font-size: 16px; line-height: 1.4; }
  .aanexo, .aanexar { min-height: 36px; padding: 7px 10px; font-size: 12.5px; }
  .apend { padding: 14px; }
  .apend__t { font-size: 14.5px; }

  /* Equipe operacional: as mesmas metas de leitura e toque. */
  .eq__topo { min-height: 68px; padding: max(14px, env(safe-area-inset-top)) 16px 13px; }
  .eq__nome { font-size: 17px; }
  .eq__sub { font-size: 13px; }
  .eq__avatar { width: 42px; height: 42px; font-size: 14px; }
  .eq__sair button { min-width: 42px; min-height: 42px; justify-content: center; }
  .eq__corpo { padding: 20px 16px 104px; }
  .eq__vazio { padding: 46px 0; font-size: 14.5px; }
  .eq__filtros { gap: 8px; margin-bottom: 16px; }
  .eq__filtro { min-height: 46px; padding: 11px 8px; font-size: 14px; }
  .eq__abas { padding: 8px 4px max(12px, env(safe-area-inset-bottom)); }
  .eq__aba { min-width: 58px; min-height: 56px; padding-top: 5px; font-size: 12px; }
  .ch__grade { gap: 14px; }
  .ch { padding: 17px; }
  .ch__titulo { font-size: 16px; }
  .ch__topo { align-items: flex-start; }
  .ch__selos { flex: 0 1 auto; }
  .ch__responsavel { font-size: 11.5px; }
  .ch__meta { font-size: 13.5px; line-height: 1.45; }
  .ch__desc { font-size: 14.5px; line-height: 1.6; }
  .ch__prazo, .ch__ok { font-size: 12.5px; }
  .ch__resumo { padding: 12px 13px; font-size: 15px; }
  .ch__resumo span { font-size: 13px; }
  .esq { gap: 18px; }
  .esq__cabecalho { padding: 18px; }
  .esq__eyebrow { font-size: 11px; }
  .esq__conta { font-size: 18px; }
  .esq__nota { font-size: 13px; }
  .esq__item button { min-height: 52px; padding: 15px 16px; }
  .esq__amb { font-size: 15px; }
  .esq__obs { font-size: 13px; }
  .esq__semana h2 { padding: 15px 16px; font-size: 16px; }
  .esq__linha { padding: 14px 16px; font-size: 14.5px; }
  .esq__dia { font-size: 12.5px; }
  .esq__rodape { padding: 13px 16px; font-size: 13px; }
  .av { padding: 17px; }
  .av h3 { font-size: 15px; }
  .av p { font-size: 14px; line-height: 1.55; }

  .pt__h { font-size: 17px; }
  .pt__ajuda { font-size: 14px; line-height: 1.55; }
  .pt__opcao { min-height: 50px; padding: 12px 13px; }
  .pt__opcao-sub, .pt__receber-btn, .pt__ja { font-size: 13px; }
  .pt__avulso { min-height: 46px; padding: 12px; font-size: 13.5px; }
  .pt__vagas { font-size: 13.5px; }
  .pt { padding: 16px; }
  .pt__topo .placa { font-size: 17px; }
  .pt__unid { font-size: 15px; }
  .pt__modelo { font-size: 13.5px; }
  .pt__obs, .pt__saiu { font-size: 13px; line-height: 1.5; }
  .tn__item button { min-height: 50px; padding: 13px 14px; }
  .tn__item-sub { font-size: 13.5px; }
  .tn__recs h3, .tn__aceite h2, .tn__como h3 { font-size: 15px; }
  .tn__recs ul, .tn__recs-vazio, .tn__aceite > p, .tn__como ol { font-size: 14px; line-height: 1.65; }
  .mv__item { padding: 17px; }
  .mv__data b { font-size: 17px; }
  .mv__data span { font-size: 10.5px; }
  .mv__item h3 { font-size: 16px; }
  .mv__item p { font-size: 14px; line-height: 1.5; }
  .mv__ok { font-size: 13px; }
  .cq__busca .entrada { font-size: 16px; }
  .cq__cartao { padding: 17px; }
  .cq__topo b { font-size: 17px; }
  .cq__tag { font-size: 12px; }
  .cq__cartao p { font-size: 14.5px; line-height: 1.7; }
  .ah__nota { font-size: 13px; }
  .ah__item { padding: 15px 16px; }
  .ah__item b { font-size: 15px; }
  .ah__item small { font-size: 13px; }
  .ah__ok { font-size: 12px; }
  .ah__resumo { font-size: 14.5px; }
  .ah__resumo span { font-size: 13px; }

  .obra-ficha { gap: 15px; }
  .obra-ficha__cab { align-items: flex-start; flex-direction: column; padding: 18px; }
  .obra-ficha__cab h2 { font-size: 21px; }
  .obra-ficha__cab p { font-size: 14px; }
  .obra-ficha__atalhos { width: 100%; justify-content: flex-start; }
  .obra-ficha__atalhos .btn { flex: 1 1 145px; }
  .obra-ficha__abas { width: 100%; }
  .obra-ficha__abas a { flex: 1; min-height: 46px; padding: 10px; font-size: 13.5px; text-align: center; }
  .obra-ficha__abas span { font-size: 11.5px; }
  .obra-bento { grid-template-columns: 1fr; gap: 10px; }
  .obra-bento__item { min-height: 124px; padding: 18px; }
  .obra-bento__item > span { font-size: 11px; }
  .obra-bento__item > strong { font-size: 26px; }
  .obra-bento__item > small { font-size: 13px; }
  .obra-ficha__dados { gap: 14px; }
  .obra-ficha__dados dt { font-size: 11px; }
  .obra-ficha__dados dd { font-size: 14.5px; }
  .obra-ficha__progresso span, .obra-ficha__progresso small { font-size: 13px; }
  .obra-ficha__progresso strong { font-size: 14px; }
  .obra-ficha__aprovados { grid-template-columns: 1fr; }
  .obra-ficha__aprovados > a, .obra-ficha__pendentes > a { min-height: 58px; padding: 13px; }
  .obra-ficha__aprovados strong, .obra-ficha__pendentes strong { font-size: 14.5px; }
  .obra-ficha__aprovados small, .obra-ficha__pendentes small { font-size: 12.5px; }
  .obra-ficha__aprovados b { font-size: 14.5px; }
  .obra-fin { overflow: visible; border: 0; background: transparent; }
  .obra-fin__cab { display: none; }
  .obra-fin__linha {
    min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 15px 12px;
    margin-bottom: 10px; padding: 16px; border: 1px solid var(--borda);
    border-radius: 11px; background: #fff;
  }
  .obra-fin__parte { grid-column: 1 / -1; padding-bottom: 11px; border-bottom: 1px solid var(--divisoria); }
  .obra-fin__linha > div[data-rotulo]::before {
    content: attr(data-rotulo); display: block; margin-bottom: 4px;
    font: 700 10.5px var(--fonte); letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-6);
  }
  .obra-fin__linha strong { font-size: 14px; }
  .obra-fin__linha small { font-size: 12px; }
  .obra-fin__valor { font-size: 15px; text-align: left; }
  .obra-fin__linha > .acao { align-self: end; justify-self: end; font-size: 14px; }
  .obra-fin__total { justify-content: space-between; padding: 16px; border: 1px solid var(--azul-claro-bd); border-radius: 10px; }
  .obra-fin__total span { max-width: 150px; font-size: 10.5px; }
  .obra-fin__total strong { font-size: 20px; }
  .obra-ficha__pendentes > a > span:last-child { font-size: 13px; }
  .obra-ficha__criterio { font-size: 12.5px; line-height: 1.55; }
}

/* =========================================================== telão da portaria
   A única tela escura do sistema, e a única que ninguém opera: fica numa TV
   de 1280×720 na guarita, a três metros de quem olha. Tudo aqui é grande,
   de alto contraste e sem nada clicável. As medidas são fixas de propósito —
   a tela é sempre a mesma, e "responsivo" só atrapalharia. */

.tela-telao { margin: 0; background: #0a0f18; overflow: hidden; }
.tl {
  width: 100vw; height: 100vh; background: #0a0f18;
  display: flex; flex-direction: column; overflow: hidden;
  font: 400 16px var(--fonte); color: #e8ecf4;
}

.tl__topo {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 24px 14px; gap: 20px;
}
.tl__relogio { display: flex; align-items: baseline; gap: 18px; }
.tl__hh { font: 600 56px var(--mono); color: #e8ecf4; letter-spacing: -.02em; }
.tl__data { font: 500 18px var(--fonte); color: #8b94a7; }

.tl__contas { display: flex; gap: 12px; }
.tl__conta {
  min-height: 58px; background: #101724; border: 1px solid #1c2536; border-radius: 12px;
  padding: 11px 18px; display: flex; align-items: baseline; gap: 8px;
}
.tl__conta-rot { font: 700 12px var(--mono); color: #758096; letter-spacing: .05em; }
.tl__conta-num { font: 750 28px var(--fonte); color: #e8ecf4; }
.tl__conta-num--verde { color: #3dd6a3; }
.tl__conta-num--ambar { color: #f0b429; }
.tl__conta-num--vermelho { color: #ff6b5e; }
.tl__conta-de { font: 600 16px var(--fonte); color: #758096; }

.tl__marca { display: flex; align-items: center; gap: 10px; text-align: right; }
.tl__marca-nome { font: 700 13px var(--fonte); color: #e8ecf4; }
.tl__marca-sub { font: 500 11px var(--fonte); color: #5d677a; }
.tl__marca-sc {
  width: 34px; height: 34px; border-radius: 9px;
  display: block; object-fit: cover;
}

.tl__vista { flex: 1; display: flex; flex-direction: column; padding: 0 24px; min-height: 0; gap: 8px; }
.tl__vista[hidden] { display: none; }
.tl__vista-topo { display: flex; justify-content: space-between; align-items: center; }
.tl__secao { font: 700 16px var(--fonte); color: #aab2c2; letter-spacing: .06em; }
.tl__pontos { display: flex; gap: 5px; align-items: center; }
.tl__ponto { width: 8px; height: 8px; border-radius: 50%; background: #1c2536; }
.tl__ponto.is-ativo { background: #3dd6a3; }
.tl__vazio { font: 500 15px var(--fonte); color: #5d677a; margin: 24px 0 0; }

/* Mapa físico do pátio. Cada metade representa uma garagem e cada linha uma
   fila real de carros, da saída para o fundo. */
.tl-gar { flex:1; min-height:0; display:flex; flex-direction:column; gap:9px; }
.tl-gar__garagens { flex:1; min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.tl-gar__garagem { min-width:0; min-height:0; padding:12px; border:1px solid #1c2b3d; border-radius:13px; background:#0e1622; display:grid; grid-template-rows:auto minmax(0,1fr); gap:8px; }
.tl-gar__garagem h2 { margin:0; display:flex; justify-content:space-between; align-items:center; color:#e8ecf4; font:800 18px var(--fonte); }
.tl-gar__garagem h2 small { color:#738298; font:700 11px var(--mono); }
.tl-gar__fileiras { display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); gap:7px; min-width:0; min-height:0; }
.tl-gar__fileira { display:grid; grid-template-rows:auto minmax(0,1fr); gap:5px; align-items:stretch; min-width:0; min-height:0; }
.tl-gar__nome { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:7px; min-width:0; min-height:34px; }
.tl-gar__nome strong { display:grid; place-items:center; width:34px; height:30px; border-radius:7px; background:#1d527e; color:#fff; font:950 17px var(--mono); }
.tl-gar__nome span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#c0cad8; font:750 10px var(--fonte); }
.tl-gar__nome small { color:#49dbaa; font:850 8px var(--mono); letter-spacing:.03em; }
.tl-gar__slots { display:grid; grid-auto-flow:row; grid-template-rows:repeat(var(--gar-max-posicoes, 1),minmax(0,1fr)); gap:7px; min-width:0; min-height:0; }
.tl-gar__slot { position:relative; min-width:0; min-height:62px; padding:6px; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:visible; border:1px dashed #273348; border-radius:8px; background:#111a29; color:#4f5c70; }
.tl-gar__slot>small { position:absolute; top:3px; left:5px; font:700 8px var(--mono); opacity:.7; }
.tl-gar__slot>i { font:800 clamp(7px,.5vw,10px)/1.2 var(--mono); font-style:normal; text-align:center; letter-spacing:.05em; }
.tl-gar__slot.is-espaco { border-color:transparent; background:transparent; color:#354257; }
.tl-gar__slot.is-desativada { border-color:#252d39; background:#171c24; color:#4a5360; }
.tl-gar__obstaculo { bottom:-7px; height:7px; border-color:#b69866; background:repeating-linear-gradient(135deg,#705d3f 0,#705d3f 3px,#c4aa78 3px,#c4aa78 6px); }
.tl-gar__obstaculo.is-ambos::before,.tl-gar__obstaculo.is-ambos::after { height:7px; border-color:#b69866; background:repeating-linear-gradient(135deg,#705d3f 0,#705d3f 3px,#c4aa78 3px,#c4aa78 6px); }
.tl-gar__obstaculo.is-na-rota:not(.is-ambos),.tl-gar__obstaculo.is-na-rota::before,.tl-gar__obstaculo.is-na-rota::after { border-color:#ffd171; box-shadow:0 0 6px #f4b83f; }
.tl-gar__slot.is-ocupado { border-style:solid; border-color:#315a80; background:#122b43; color:#fff; }
.tl-gar__slot.is-rota { border-style:solid; border-color:#299bd0; background:#10283a; box-shadow:inset 0 0 0 1px #299bd044; }
.tl-gar__slot.is-espaco.is-rota { border:1px dashed #277ca3; background:#0d202e; }
.tl-gar__placa { width:min(88%,180px); height:clamp(38px,5.2vh,58px); flex:none; overflow:hidden; display:flex; flex-direction:column; border:2px solid #111722; border-radius:5px; background:#f7f8fa; color:#10131a; box-shadow:0 2px 7px #0005; }
.tl-gar__placa .tl__placa-faixa { height:10px; flex-basis:10px; padding:0 4px 0 16px; font-size:5px; }
.tl-gar__placa .tl__placa-bandeira { width:8px; height:6px; }
.tl-gar__placa .tl__placa-bandeira::after { width:5px; height:5px; left:2px; top:.5px; }
.tl-gar__placa>strong { flex:1; display:flex; align-items:center; justify-content:center; max-width:100%; overflow:hidden; font:950 clamp(15px,1.3vw,25px)/1 var(--mono); letter-spacing:.045em; white-space:nowrap; }
.tl-gar__unidade { margin-top:4px; display:flex; align-items:baseline; justify-content:center; gap:6px; color:#fff; }
.tl-gar__unidade>small { color:#8ebbe3; font:800 clamp(6px,.45vw,9px)/1 var(--mono); letter-spacing:.08em; }
.tl-gar__unidade>strong { font:950 clamp(21px,1.8vw,38px)/1 var(--fonte); letter-spacing:-.025em; }
.tl-gar__desde { margin-top:5px; color:#91a3ba; font:650 clamp(7px,.55vw,11px)/1.15 var(--mono); text-align:center; }
.tl-gar__slot:not(.is-ocupado) .tl-gar__placa,.tl-gar__slot:not(.is-ocupado) .tl-gar__desde { display:none; }
.tl-gar__slot:not(.is-ocupado) .tl-gar__unidade { margin:0; color:#46566e; }
.tl-gar__slot:not(.is-ocupado) .tl-gar__unidade>small { display:none; }
.tl-gar__slot:not(.is-ocupado) .tl-gar__unidade>strong { color:#46566e; font:800 clamp(8px,.55vw,12px)/1 var(--mono); letter-spacing:.12em; }
.tl-gar__slot.is-bloqueador { border-color:#d99b25; background:#3d2f13; box-shadow:inset 0 0 0 1px #d99b2545; }
.tl-gar__slot.is-bloqueador::after { content:"RETIRAR"; position:absolute; top:3px; right:4px; color:#ffd171; font:900 7px var(--mono); }
.tl-gar__slot.is-saida { border-color:#ff6b5e; background:#4c1c20; box-shadow:0 0 16px #ff4d3c42; animation:tl-saida-pulso 1.4s ease-in-out infinite; }
.tl-gar__slot.is-saida::after { content:"SAÍDA"; position:absolute; top:3px; right:4px; color:#ffb4ad; font:900 7px var(--mono); }
.tl-gar__alocar { flex:none; min-height:58px; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:12px; padding:8px 12px; border:1px solid #683036; border-radius:10px; background:#2d161c; }
.tl-gar__alocar[hidden] { display:none; }
.tl-gar__alocar>strong { color:#ff978d; font:900 11px var(--mono); }
.tl-gar__alocar>div { display:flex; gap:7px; overflow:hidden; }
.tl-gar__alocar span { flex:0 0 auto; min-width:90px; padding:6px 9px; border-radius:7px; background:#482127; display:flex; flex-direction:column; }
.tl-gar__alocar b { color:#fff; font:900 12px var(--mono); }.tl-gar__alocar i { color:#ffaaa1; font:800 13px var(--fonte); font-style:normal; }
@keyframes tl-saida-pulso { 50% { border-color:#ffc0ba; box-shadow:0 0 25px #ff4d3c72; } }
@media(max-height:760px) {
  .tl-gar__garagem { padding:7px; gap:4px; }.tl-gar__garagem h2{font-size:13px}.tl-gar__alocar{min-height:46px;padding:5px 9px}
  .tl-gar__placa{height:31px;width:min(82%,130px)}.tl-gar__placa .tl__placa-faixa{height:7px;flex-basis:7px}
  .tl-gar__unidade>strong{font-size:20px}.tl-gar__desde{display:none}.tl-gar__nome span{font-size:8px}
}

/* Seis colunas por cinco linhas: as 30 vagas do pátio cabem inteiras na tela,
   e cada cartão fica legível de longe mesmo com a garagem cheia. */
.tl__grade {
  flex: 1; display: grid; gap: 8px; min-height: 0;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(5, 1fr);
}
.tl__carro {
  background: #101724; border: 1px solid #1c2536; border-radius: 10px;
  padding: 7px 9px; display: flex; flex-direction: column; justify-content: center; min-width: 0;
}
.tl__carro-principal {
  display: flex; justify-content: space-between; align-items: stretch; gap: 8px; min-width: 0;
}
/* Miniatura da placa Mercosul brasileira: proporção horizontal, fundo branco,
   contorno escuro e faixa azul. Continua sendo texto real, não uma imagem. */
.tl__placa {
  width: 170px; height: 70px; flex: 0 0 170px; overflow: hidden;
  background: #f7f8fa; border: 2px solid #151922; border-radius: 5px;
  box-shadow: 0 1px 0 rgb(255 255 255 / 18%);
  display: flex; flex-direction: column; color: #10131a;
}
.tl__placa-faixa {
  height: 11px; flex: 0 0 11px; padding: 0 4px 0 17px;
  background: #174c93; color: #fff;
  display: flex; align-items: center; justify-content: space-between;
  font: 700 6px/1 var(--fonte); letter-spacing: .09em;
}
.tl__placa-bandeira {
  position: relative; width: 8px; height: 6px; overflow: hidden;
  background: #16854c; border-radius: 1px;
}
.tl__placa-bandeira::after {
  content: ""; position: absolute; width: 5px; height: 5px; left: 2px; top: .5px;
  background: #f0c929; transform: rotate(45deg);
}
.tl__placa strong {
  flex: 1; display: flex; align-items: center; justify-content: center;
  font: 800 30px/1 var(--mono); letter-spacing: .055em; white-space: nowrap;
}
.tl__unid {
  flex: 1; min-width: 75px; padding: 6px; border: 1px solid #376ba0; border-radius: 7px;
  background: #132943; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}
.tl__unid span {
  font: 700 9px/1 var(--mono); color: #9dcbff; letter-spacing: .08em;
}
.tl__unid strong {
  margin-top: 5px; font: 900 clamp(42px,2.5vw,64px)/1 var(--fonte); color: #fff; letter-spacing: -.03em;
}
.tl__carro-detalhes {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 5px; margin-top: 7px; min-width: 0;
}
.tl__hora { flex: none; font: 600 12px/1.2 var(--mono); color: #a4b2c8; white-space: nowrap; }
.tl__modelo {
  max-width: 100%; min-width: 0; font: 600 16px var(--fonte); color: #bfc9db;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.tl__overlay[hidden],.tl__overlay-veiculo[hidden],.tl__overlay-face[hidden],.tl__overlay-manobra[hidden],.tl__conexao[hidden] { display:none; }
.tl__overlay { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:4vh 4vw; background:rgb(3 10 20 / 97%); }
.tl__overlay-painel { width:100%; max-width:1500px; text-align:center; padding:3vh 3vw; border:2px solid #3dd6a3; border-radius:28px; background:linear-gradient(145deg,#0d2536,#101724); box-shadow:0 0 120px #3dd6a324; }
.tl__overlay-rotulo { color:#77f0c5; font:800 clamp(20px,2vw,36px)/1.3 var(--fonte); letter-spacing:.13em; }
.tl__overlay-titulo { color:#fff; font:900 clamp(34px,3.6vw,72px)/1.12 var(--fonte); margin:2vh 0; overflow-wrap:anywhere; }
.tl__overlay-mensagem { color:#d7e2f1; font:600 clamp(22px,2.2vw,44px)/1.35 var(--fonte); margin:2vh auto; max-width:1200px; max-height:40vh; overflow:auto; overflow-wrap:anywhere; white-space:pre-wrap; }
.tl__overlay-veiculo { display:flex; flex-wrap:wrap; gap:4vw; align-items:center; justify-content:center; margin:4vh 0; }
.tl__placa--overlay { width:min(58vw,800px); height:clamp(145px,17vw,280px); flex:0 1 auto; border-width:5px; border-radius:16px; }
.tl__placa--overlay .tl__placa-faixa { height:22%; flex-basis:22%; padding:0 3% 0 12%; font-size:clamp(16px,1.8vw,34px); }
.tl__placa--overlay .tl__placa-bandeira { width:40px; height:28px; }
.tl__placa--overlay .tl__placa-bandeira::after { width:20px; height:20px; left:10px; top:4px; }
.tl__placa--overlay strong { font-size:clamp(55px,7.3vw,142px); letter-spacing:.025em; }
.tl__overlay-unidade { min-width:200px; padding:2vh 2vw; border-radius:18px; background:#173d5a; border:2px solid #427f9f; }
.tl__overlay-unidade span { display:block; color:#acd4fa; font:800 clamp(20px,1.8vw,32px) var(--fonte); letter-spacing:.1em; }
.tl__overlay-unidade strong { display:block; font:900 clamp(90px,9vw,175px)/1.1 var(--fonte); color:#fff; letter-spacing:-.04em; }
.tl__overlay--controlid { background:radial-gradient(circle at 25% 35%,rgb(17 74 100 / 94%),rgb(3 10 20 / 98%) 58%); }
.tl__overlay--controlid .tl__overlay-painel { max-width:1320px; border-color:#55d8ff; background:linear-gradient(145deg,#0c3042,#101724 62%,#102b28); box-shadow:0 20px 90px #000b,0 0 110px #55d8ff28; animation:tl-controlid-chegada .38s ease-out; }
.tl__overlay--controlid .tl__overlay-rotulo { color:#8ae8ff; }
.tl__overlay--controlid .tl__overlay-progresso span { background:linear-gradient(90deg,#55d8ff,#55efbd); }
.tl__overlay-face { display:grid; grid-template-columns:minmax(260px,410px) minmax(0,1fr); gap:clamp(28px,4vw,70px); align-items:center; margin:3vh auto; max-width:1120px; text-align:left; }
.tl__overlay-face-foto { position:relative; aspect-ratio:1; overflow:hidden; display:grid; place-items:center; border:4px solid #65ddff; border-radius:32px; background:linear-gradient(145deg,#193e54,#11202f); box-shadow:0 18px 55px #0008,0 0 45px #55d8ff30; }
.tl__overlay-face-foto img { width:100%; height:100%; object-fit:cover; }
.tl__overlay-face-foto span { display:grid; place-items:center; width:100%; height:100%; color:#dff8ff; font:950 clamp(90px,10vw,190px)/1 var(--fonte); letter-spacing:-.08em; }
.tl__overlay-face-dados>span { display:block; color:#90dff2; font:800 clamp(15px,1.4vw,24px)/1.2 var(--mono); letter-spacing:.12em; }
.tl__overlay-face-dados>strong { display:block; margin:1.5vh 0 2.5vh; color:#fff; font:900 clamp(42px,4.5vw,82px)/1.03 var(--fonte); letter-spacing:-.04em; overflow-wrap:anywhere; }
.tl__overlay-face-dados>div { display:inline-flex; align-items:center; gap:clamp(18px,2vw,34px); padding:14px 24px; border:2px solid #3f7590; border-radius:18px; background:#102d40; }
.tl__overlay-face-dados small { color:#9edcf0; font:800 clamp(14px,1.2vw,22px)/1 var(--mono); letter-spacing:.1em; }
.tl__overlay-face-dados b { color:#fff; font:950 clamp(62px,7vw,126px)/.9 var(--fonte); letter-spacing:-.05em; }
.tl__overlay-rodape { color:#9babbe; font:600 clamp(16px,1.4vw,26px)/1.4 var(--mono); margin:2vh 0; }
.tl__overlay-progresso { height:7px; margin-top:3vh; background:#ffffff18; border-radius:8px; overflow:hidden; }
.tl__overlay-progresso span { display:block; height:100%; background:#3dd6a3; transform-origin:left; }
.tl__overlay--urgente { background:rgb(4 7 13 / 28%); padding:6vh 9vw; }
.tl__overlay--urgente .tl__overlay-painel { max-width:1120px; background:linear-gradient(145deg,#431921,#21101b); border-color:#ff766b; box-shadow:0 16px 70px #0009,0 0 60px #ff56452b; animation:tl-alerta-chegada .45s ease-out; }
.tl__overlay--urgente .tl__overlay-rotulo { color:#ffb49e; }
.tl__overlay--urgente .tl__overlay-progresso span { background:#ff766b; }
.tl__overlay-entrada-no-aviso[hidden] { display:none; }
.tl__overlay-entrada-no-aviso { flex-basis:100%; color:#77f0c5; font:800 clamp(16px,1.5vw,28px)/1.3 var(--fonte); }
.tl__overlay--com-entrada { padding:3vh 4vw; }
.tl__overlay--com-entrada .tl__overlay-painel { max-width:1500px; }
.tl__overlay--com-entrada .tl__overlay-titulo { font-size:clamp(34px,3vw,58px); margin:1vh 0; }
.tl__overlay--com-entrada .tl__overlay-mensagem { max-height:20vh; font-size:clamp(22px,1.8vw,34px); margin:1vh auto; }
.tl__overlay--com-entrada .tl__overlay-veiculo { margin:2vh 0; gap:1.5vh 3vw; }
.tl__overlay--com-entrada .tl__overlay-rodape { margin:1vh 0; }
.tl__overlay--preparacao { background:rgb(2 8 16 / 82%); padding:4vh 6vw; }
.tl__overlay--preparacao .tl__overlay-painel { max-width:1450px; padding:3vh 4vw; border-color:#f4b83f; background:linear-gradient(145deg,#36270d,#151c27 58%,#0d2432); box-shadow:0 18px 80px #000b,0 0 90px #f4b83f30; animation:tl-manobra-chegada .38s ease-out; }
.tl__overlay--preparacao .tl__overlay-rotulo { color:#ffd77d; }
.tl__overlay--preparacao .tl__overlay-titulo { margin:1.2vh 0; }
.tl__overlay--preparacao .tl__overlay-mensagem { margin:1vh auto 2vh; font-size:clamp(18px,1.6vw,30px); }
.tl__overlay--preparacao .tl__overlay-progresso span { background:#f4b83f; }
.tl__overlay-manobra { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,2.3fr); gap:2vw; align-items:stretch; margin:2vh 0; text-align:left; }
.tl__overlay-manobra-alvo { min-height:250px; padding:2vh 2vw; display:flex; flex-direction:column; justify-content:center; align-items:center; border:2px solid #f4b83f; border-radius:22px; background:#50370f; box-shadow:inset 0 0 35px #f4b83f20; }
.tl__overlay-manobra-alvo span { color:#ffd77d; font:850 clamp(18px,1.5vw,28px)/1 var(--fonte); letter-spacing:.12em; }
.tl__overlay-manobra-alvo strong { margin-top:1vh; color:#fff; font:950 clamp(88px,9vw,170px)/.95 var(--fonte); letter-spacing:-.05em; }
.tl__overlay-manobra-plano { min-width:0; padding:2.4vh 2vw; border:1px solid #785b25; border-radius:22px; background:#151b25; display:flex; flex-direction:column; justify-content:center; }
.tl__overlay-manobra-plano>span { color:#fff; font:850 clamp(24px,2.2vw,42px)/1.2 var(--fonte); }
.tl__overlay-manobra-plano>small { margin:2.5vh 0 1.2vh; color:#f4b83f; font:850 clamp(13px,1.15vw,22px)/1 var(--mono); letter-spacing:.09em; }
.tl__overlay-manobra-plano>div { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.tl__overlay-manobra-plano>div>span { min-width:120px; padding:13px 18px; display:flex; align-items:center; gap:12px; border:1px solid #36506d; border-radius:13px; background:#172b40; color:#fff; }
.tl__overlay-manobra-plano>div>span>small { flex:none; display:grid; place-items:center; width:29px; height:29px; border-radius:50%; background:#f4b83f; color:#261b08; font:950 14px var(--mono); }
.tl__overlay-manobra-plano>div>span>strong { font:950 clamp(24px,2vw,38px)/1 var(--fonte); }
.tl__overlay-manobra-plano>div>span.is-livre { border-color:#338969; background:#123d30; color:#7af0c2; font:900 clamp(22px,2vw,38px)/1 var(--fonte); }
.tl__overlay-manobra-plano>div>span.is-bloqueada { border-color:#a43e39; background:#461d20; color:#ffaea6; font:900 clamp(22px,2vw,38px)/1 var(--fonte); }
.tl__overlay-manobra-plano>.tl__overlay-manobra-rota { margin-top:1.5vh; display:grid; gap:6px; }
.tl__overlay-manobra-rota[hidden] { display:none; }
.tl__overlay-manobra-rota>span { min-width:0; padding:8px 11px; display:block; border:1px solid #9f7127; border-radius:8px; background:#39280f; color:#ffd77d; font:850 clamp(10px,.85vw,16px)/1.25 var(--mono); }
.tl__overlay-manobra-rota>span.is-caminho { border-color:#286c8f; background:#102d40; color:#8edcff; }
.tl__conexao { position:fixed; bottom:12px; right:16px; z-index:1001; padding:8px 14px; border-radius:8px; background:#503118; color:#ffdaad; font:600 14px var(--fonte); }
@keyframes tl-alerta-chegada { from { opacity:0; transform:scale(.94); } to { opacity:1; transform:scale(1); } }
@keyframes tl-manobra-chegada { from { opacity:0; transform:translateY(28px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes tl-controlid-chegada { from { opacity:0; transform:scale(.92); filter:blur(8px); } to { opacity:1; transform:scale(1); filter:blur(0); } }
@media(max-width:1599px) {
  .tl__placa:not(.tl__placa--overlay) { width:130px; flex:0 1 130px; height:61px; min-width:0; }
  .tl__placa:not(.tl__placa--overlay) strong { font-size:23px; }
  .tl__unid { min-width:58px; padding:4px; }.tl__unid strong { font-size:36px; }
  .tl__unid span { font-size:8px; }.tl__hora { font-size:10px; }.tl__modelo { font-size:14px; }
}
@media(max-height:760px) {
  .tl__overlay-face{grid-template-columns:minmax(190px,280px) minmax(0,1fr);margin:1vh auto}.tl__overlay-face-dados>strong{margin:1vh 0}
  .tl__overlay-manobra-alvo{min-height:170px}.tl__overlay-manobra-plano>small{margin:1.2vh 0 .8vh}
  .tl__overlay-manobra-plano>div>span{padding:8px 12px}.tl__overlay--preparacao .tl__overlay-rodape{margin:1vh 0}
}
@media(prefers-reduced-motion:reduce) { .tl__overlay--urgente .tl__overlay-painel,.tl__overlay--preparacao .tl__overlay-painel,.tl__overlay--controlid .tl__overlay-painel { animation:none; }.tl__overlay-progresso { visibility:hidden; } }

.tl__linha { display: grid; gap: 10px; }
.tl__operacao { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.tl__operacao--com-alertas { grid-template-columns:minmax(0,2.8fr) minmax(300px,1fr); }
.tl__operacao-conteudo { display:flex; flex-direction:column; gap:10px; min-height:0; min-width:0; }
.tl__alertas[hidden] { display:none; }
.tl__alertas { align-self:start; max-height:100%; min-width:0; min-height:0; display:flex; flex-direction:column; padding:18px; border:2px solid #b44c46; border-radius:14px; background:#30171d; }
.tl__alertas-cab { display:flex; flex-direction:column; gap:8px; padding-bottom:16px; border-bottom:1px solid #ffffff20; color:#ffc0ad; }
.tl__alertas-cab strong { font:800 clamp(16px,1.1vw,24px)/1.2 var(--fonte); letter-spacing:.05em; }
.tl__alertas-cab span,.tl__alertas-pagina { font:600 14px/1.4 var(--mono); color:#daaaac; }
.tl__alertas-lista { flex:1; min-height:0; padding:18px 0; }
.tl__alerta-origem { font:700 13px var(--mono); color:#ffaf9b; }
.tl__alerta h2 { font:800 clamp(20px,1.4vw,30px)/1.2 var(--fonte); color:#fff; margin:12px 0; overflow-wrap:anywhere; }
.tl__alerta p { font:600 clamp(16px,1.05vw,23px)/1.35 var(--fonte); color:#f1cdd0; white-space:pre-wrap; overflow-wrap:anywhere; margin:12px 0 18px; }
.tl__alerta small { font:600 12px/1.5 var(--mono); color:#daaaac; }
.tl__alertas-pagina { padding-top:12px; border-top:1px solid #ffffff20; }
@media(max-height:850px) {.tl__alertas{padding:12px}.tl__alertas-lista{padding:12px 0}.tl__alerta h2{font-size:20px}.tl__alerta p{font-size:16px}.tl__alertas-cab{padding-bottom:10px}}
.tl__linha--obras { grid-template-columns: repeat(3, 1fr); }
.tl__linha--baixo { grid-template-columns: 1fr 1fr 1.4fr; flex: 1; min-height: 0; }
.tl__cartao {
  background: #101724; border: 1px solid #1c2536; border-radius: 12px; padding: 18px; min-width: 0;
}
/* Obra vencida vira a única mancha vermelha da tela: é para ser vista de longe. */
.tl__cartao.is-vencido { background: #1d1215; border-color: #52222a; }
.tl__cartao.is-vencido .tl__cartao-sub { color: #c58f8a; }
.tl__cartao.is-vencido .tl__dias { color: #ff8d82; }
.tl__escopo { font: 700 14px var(--mono); color: #7fb2ff; letter-spacing: .05em; }
.tl__escopo--unid { color: #f0b429; }
.tl__quando { font: 800 18px var(--mono); color: #f0b429; }
.tl__cartao-tit { font: 700 22px/1.2 var(--fonte); color: #e8ecf4; margin-top: 6px; }
.tl__cartao-sub { font: 500 16px/1.35 var(--fonte); color: #aab2c2; margin-top: 6px; }
.tl__dias { font: 800 42px var(--mono); color: #3dd6a3; margin-top: 10px; }

.tl__chamados { display: flex; flex-direction: column; }
.tl__chamados-tit { font: 800 17px var(--fonte); margin: 0 0 10px; letter-spacing: .03em; }
.tl__chamado {
  display: flex; justify-content: space-between; align-items: baseline; gap: 14px;
  font: 600 17px/2 var(--fonte); color: #d7dce6;
}
.tl__chamado > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl__prio { flex: none; font: 700 14px var(--mono); }
.tl__prio--alta { color: #ff8d82; }
.tl__prio--media { color: #f0b429; }
.tl__prio--baixa { color: #8b94a7; }
.tl__prio--exec { color: #3dd6a3; }

/* A faixa vermelha do rodapé: o que muda o dia de quem mora aqui (falta de
   água, dedetização) precisa passar mesmo para quem só cruza o hall. */
.tl__ticker {
  margin-top: 10px; background: #3a1418; border-top: 1px solid #6b2530;
  padding: 10px 0; overflow: hidden; white-space: nowrap;
}
.tl__ticker-fita {
  display: inline-block; animation: ticker 40s linear infinite;
  font: 600 14px var(--fonte); color: #ff8d82;
}
.tl__aviso::after { content: " · "; color: #6b2530; padding: 0 10px; }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .tl__ticker-fita { animation: none; } }

@media (max-width: 1100px) {
  .pat-campos,.pat-config__grade { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pat-config__nova { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  .backup-kpis,.backup-config-grade,.migracao__compatibilidade { grid-template-columns: 1fr; }
  .pat-ficha__hero { align-items: flex-start; }
  .pat-ficha__qr svg { width: 96px; height: 96px; }
  .pat-campos,.pat-config__grade,.pat-config__nova { grid-template-columns: 1fr; }
  .pat-campo-adicionar__opcoes { grid-template-columns: 1fr; }
  .pat-galeria { grid-template-columns: 1fr; }
  .pat-topologia-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pat-capacidades { grid-template-columns: 1fr; }
  .pat-inconsistencias-relatorio>a { grid-template-columns: auto 1fr; }
  .pat-inconsistencias-relatorio>a small { grid-column: 1 / -1; }
  .pat-alertas-operacionais>div:last-child { grid-template-columns: 1fr; }
  .pat-complementacao,.pat-ativos-gerados { grid-template-columns: 1fr; }
  .pat-entrada-resumo,.pat-confirmar-lote,.pat-origem-fiscal { align-items: stretch; flex-direction: column; }
  .pat-entrada-resumo>div:last-child { text-align: left; }
  .pat-entrada-documentos>div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pat-confirmar-lote { position: static; }
  .pat-confirmar-lote>div:last-child,.pat-entrada-acoes { align-items: stretch; flex-direction: column; }
  .pat-origem-fiscal nav { justify-content: flex-start; }
  .pat-interface-gerador__campos { grid-template-columns: 1fr 1fr; }
  .pat-zona-perigo form { grid-template-columns: 1fr; }
  .pat-dados-basicos__rodape { align-items: stretch; flex-direction: column; }
  .pat-credencial__dados { grid-template-columns: 1fr; }
  .pat-interface-rascunho>div.tem-poe,.pat-interface-rascunho>div.tem-poe--duplo { grid-template-columns: minmax(0,1fr) 38px; }
  .pat-interface-rascunho>div.tem-poe .pat-interface-poe { grid-column: 1 / -1; min-height: 38px; }
  .pat-dados-basicos__acoes,.pat-campos-form__acoes { align-items: stretch; flex-direction: column-reverse; }
  .pat-arquivo-lote__ativos { grid-template-columns: 1fr; max-height: none; }
  .pat-copia__campos { grid-template-columns: 1fr; }
  .pat-copia__origem,.pat-copia__bloqueados { align-items: flex-start; flex-direction: column; }
  .pat-documento-item { align-items: stretch; flex-direction: column; gap: 0; padding-bottom: 8px; }
  .pat-exportacao__rodape,.pat-exportacao__selecao { align-items: stretch; flex-direction: column; }
  .pat-exportacao__paginacao { justify-content: space-between; }
  .pat-exportacao__rodape .acoes-linha { display: grid; grid-template-columns: 1fr; }
  .pat-cabos__hero { grid-template-columns: 1fr; gap: 18px; }
  .pat-cabos__hero .grade-info { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* ------------------------------------------------ Control iD pela VPN */
.cid-cabecalho { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:26px 0 14px; }
.cid-cabecalho h2 { margin:3px 0 0; font-size:28px; }
.cid-device { display:flex; flex-direction:column; gap:16px; }
.cid-device__meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; }
.cid-device__meta>div { padding:11px 12px; border:1px solid var(--borda); border-radius:10px; background:var(--fundo); }
.cid-device__meta dt { color:var(--tinta-5); font:800 10px/1 var(--fonte); letter-spacing:.07em; text-transform:uppercase; }
.cid-device__meta dd { margin:5px 0 0; overflow-wrap:anywhere; font-weight:750; }
.cid-device-form { width:min(620px,88vw); margin-top:14px; padding:18px; border:1px solid var(--borda); border-radius:14px; background:var(--branco); box-shadow:var(--sombra); }
.cid-selecao-page { display:grid; gap:18px; }
.cid-selecao-form { padding:0; overflow:hidden; background:var(--branco); }
.cid-selecao-filtros { display:grid; grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(190px,.8fr)); gap:14px; padding:20px; border-bottom:1px solid var(--borda); background:#f8faf9; }
.cid-selecao-filtros .campo { margin:0; }
.cid-selecao-barra { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 20px; border-bottom:1px solid var(--borda); }
.cid-selecao-barra strong,.cid-selecao-barra small { display:block; }
.cid-selecao-barra small { margin-top:3px; color:var(--tinta-5); }
.cid-selecao-tabela { overflow:auto; }
.cid-selecao-tabela table { width:100%; min-width:880px; border-collapse:collapse; }
.cid-selecao-tabela th { padding:12px 14px; color:var(--tinta-5); background:#f5f7f6; font-size:11px; letter-spacing:.05em; text-align:left; text-transform:uppercase; }
.cid-selecao-tabela td { padding:13px 14px; border-top:1px solid var(--borda); vertical-align:middle; }
.cid-selecao-tabela tbody tr { transition:background .15s ease; }
.cid-selecao-tabela tbody tr:hover { background:#f4f8f6; }
.cid-selecao-tabela tbody tr:has(input:checked) { background:#edf7f1; }
.cid-selecao-tabela tbody tr[data-bloqueada="true"] { color:var(--tinta-5); background:#fafafa; }
.cid-selecao-tabela td strong,.cid-selecao-tabela td small { display:block; }
.cid-selecao-tabela td small { margin-top:4px; color:var(--tinta-5); }
.cid-selecao-check { width:48px; text-align:center !important; }
.cid-selecao-check input { width:18px; height:18px; accent-color:var(--verde); cursor:pointer; }
.cid-selecao-check input:disabled { cursor:not-allowed; opacity:.45; }
.cid-selecao-rodape { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; border-top:1px solid var(--borda); background:#f8faf9; }
.cid-selecao-rodape p { max-width:650px; margin:0; color:var(--tinta-5); }
.cid-envio-pessoa { margin-bottom:18px; border:1px solid #acd0be; background:linear-gradient(135deg,#f3faf6,#fff); }
.cid-previa { margin:18px 0; }
.cid-previa__lista { max-height:360px; overflow:auto; margin:14px 0; border-block:1px solid var(--borda); }
.cid-previa__lista>div { display:grid; grid-template-columns:140px minmax(0,1fr) minmax(110px,.6fr); gap:12px; padding:10px; border-bottom:1px solid var(--borda); }
.cid-matriz { margin-top:22px; }
.cid-matriz__rolagem { overflow:auto; margin:12px 0 16px; }
.cid-matriz table { width:100%; min-width:720px; border-collapse:collapse; }
.cid-matriz th,.cid-matriz td { padding:9px; border-bottom:1px solid var(--borda); text-align:left; }
.cid-matriz td:first-child small { display:block; margin-top:3px; color:var(--tinta-5); }
.cid-matriz input:not([type=checkbox]) { width:100%; }
.cid-usar { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.cid-geral-form { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:12px; }
.cid-gerais { display:grid; gap:8px; margin-top:16px; }
.cid-gerais>div { display:grid; grid-template-columns:90px minmax(150px,1fr) minmax(110px,1fr) auto; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--borda); border-radius:10px; }
.cid-acessos { margin-top:22px; border-color:#b9d7c8; }
.cid-resumo { display:flex; align-items:baseline; gap:8px; color:var(--verde); }
.cid-resumo strong { font-size:32px; }
.cid-resumo span { font-weight:750; }
.cid-pessoas { display:grid; gap:8px; max-height:600px; overflow:auto; margin-top:14px; }
.cid-pessoa { display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto; align-items:center; gap:14px; padding:12px; border:1px solid var(--borda); border-radius:12px; }
.cid-pessoa.is-inativa { opacity:.68; background:var(--fundo); }
.cid-pessoa strong,.cid-pessoa small { display:block; }
.cid-pessoa small { margin-top:4px; color:var(--tinta-5); }
.cid-pessoa__estado { text-align:right; }
.cid-pessoa-ficha { border-top:4px solid var(--azul); }
.cid-acessos-bloqueados { margin-top:22px; background:linear-gradient(135deg,var(--azul-suave),var(--branco)); }
.foto-facial {
  display:flex; align-items:center; gap:18px; margin:16px 0; padding:16px;
  border:1px solid #b9d7c8; border-radius:16px;
  background:linear-gradient(135deg,#f2faf6,#fff); box-shadow:0 8px 24px rgb(28 79 56 / 8%);
}
.foto-facial img,.foto-facial>span {
  width:132px; height:132px; flex:0 0 132px; border-radius:14px; object-fit:cover;
  border:1px solid #afcdbd; background:#dceee4; box-shadow:0 5px 14px rgb(20 58 43 / 14%);
}
.foto-facial>span { display:grid; place-items:center; color:#315b48; font:800 32px/1 var(--fonte); }
.foto-facial h3 { margin:3px 0 8px; color:var(--tinta-2); font-size:19px; }
.foto-facial p:not(.kicker) { margin:4px 0; color:var(--tinta-5); font-size:13px; line-height:1.45; }
.foto-facial .acao { display:inline-block; margin-top:7px; }
.foto-facial--controlid img { width:180px; height:180px; flex-basis:180px; }
.foto-facial--vazia { border-style:dashed; border-color:var(--borda); background:var(--cinza-0,#f8fafc); box-shadow:none; }
.cid-central__hero { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; padding:24px; border-radius:18px; color:#fff; background:linear-gradient(135deg,#102f45,#176c69); box-shadow:0 14px 34px rgb(15 53 70 / 22%); }
.cid-central__hero h2 { margin:4px 0; font-size:34px; letter-spacing:-.035em; }
.cid-central__hero p { margin:0; opacity:.82; }
.cid-central__hero .kicker { color:#a7e9d6; }
.cid-central__atalhos { position:sticky; z-index:4; top:10px; display:flex; gap:7px; overflow:auto; margin-bottom:18px; padding:8px; border:1px solid var(--borda); border-radius:14px; background:rgb(255 255 255 / 92%); backdrop-filter:blur(12px); box-shadow:var(--sombra); }
.cid-central__atalhos a { flex:none; padding:9px 12px; border-radius:9px; color:var(--azul); font-weight:800; }
.cid-central__atalhos a:hover { background:var(--azul-suave); }
.cid-titulo-secao { margin:28px 0 12px; font-size:25px; }
.cid-config-grupo { padding:0; overflow:hidden; }
.cid-config-grupo>summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 20px; cursor:pointer; list-style:none; }
.cid-config-grupo>summary::-webkit-details-marker { display:none; }
.cid-config-grupo>summary strong { font-size:18px; }
.cid-config-grupo>summary span { color:var(--tinta-5); font-size:13px; }
.cid-config-grupo>form { padding:0 20px 20px; border-top:1px solid var(--borda); }
.cid-config-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:18px 0; }
.cid-json { min-height:190px; resize:vertical; }
.cid-objeto-busca { display:flex; align-items:center; gap:10px; margin:16px 0; }
.cid-objeto-busca .select { min-width:280px; }
.cid-objeto-json { max-height:440px; overflow:auto; margin:14px 0; padding:16px; border-radius:12px; color:#d8e7ed; background:#0b1821; font:500 12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.cid-objeto-editores { margin-top:16px; }
.cid-objeto-editores>form { padding:18px; border:1px solid var(--borda); border-radius:13px; background:var(--fundo); }
.cid-objeto-editores h3 { margin:0 0 14px; }
.cid-bento-secundario { margin-top:10px; }
.cid-bento-secundario strong { font-size:21px!important; }
.cid-valor-rede { overflow-wrap:anywhere; }
.cid-json-detalhes { margin-top:14px; }
.cid-json-detalhes>summary { cursor:pointer; color:var(--azul); font-weight:800; }
.cid-infra { border-top:4px solid #b77b19; }
.cid-infra__estado { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:18px 0; }
.cid-infra__estado>div { min-width:0; padding:13px; border:1px solid var(--borda); border-radius:11px; background:var(--fundo); }
.cid-infra__estado span,.cid-infra__estado strong { display:block; }
.cid-infra__estado span { color:var(--tinta-5); font-size:11px; font-weight:800; text-transform:uppercase; }
.cid-infra__estado strong { margin-top:7px; overflow-wrap:anywhere; }
.cid-infra__paineis>form { padding:18px; border:1px solid var(--borda); border-radius:13px; background:var(--fundo); }
.cid-infra__paineis h3 { margin:0 0 10px; }
.cid-infra__perigo { margin-top:14px; border:1px solid #e4c48e; border-radius:12px; background:#fffaf0; }
.cid-infra__perigo>summary { padding:15px 17px; cursor:pointer; color:#7f5310; font-weight:850; }
.cid-infra__perigo>form { padding:0 17px 17px; border-top:1px solid #eed9b5; }
.cid-midia-form { display:grid; grid-template-columns:180px 180px minmax(260px,1fr) auto; align-items:end; gap:12px; margin-top:16px; }
.cid-presets,.cid-comandos,.cid-operacao { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:18px 0; }
.cid-comandos form,.cid-operacao form { display:flex; align-items:center; gap:8px; }
.cid-comandos input,.cid-operacao input { width:180px; }
.cid-cadastrar-liberar { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(360px,1.2fr); gap:24px; margin:20px 0 26px; padding:22px; border:1px solid #96cfb1; border-radius:15px; background:linear-gradient(135deg,#f0fbf5,#f8fcff); }
.cid-cadastrar-liberar h3 { margin:5px 0 8px; font-size:24px; }
.cid-cadastrar-liberar p { margin:0; color:var(--tinta-5); line-height:1.5; }
.cid-cadastrar-liberar form { min-width:0; }
.cid-cadastrar-liberar .campo:first-child { margin-top:0; }

@media (max-width: 700px) {
  .cid-cabecalho,.cid-device .secao-cab,.cid-acessos .secao-cab { align-items:stretch; flex-direction:column; }
  .cid-device__meta { grid-template-columns:1fr; }
  .cid-device-form { width:100%; padding:14px; }
  .cid-selecao-filtros { grid-template-columns:1fr; padding:16px; }
  .cid-selecao-barra,.cid-selecao-rodape { align-items:stretch; flex-direction:column; padding:16px; }
  .cid-selecao-barra .acoes-linha,.cid-selecao-rodape .acoes-linha { display:grid; grid-template-columns:1fr; width:100%; }
  .cid-selecao-barra .btn,.cid-selecao-rodape .btn { width:100%; justify-content:center; }
  .cid-geral-form,.cid-pessoa { grid-template-columns:1fr; }
  .cid-pessoa__estado { text-align:left; }
  .cid-pessoa .btn { width:100%; justify-content:center; }
  .cid-gerais>div { grid-template-columns:80px 1fr auto; }
  .cid-gerais>div code { grid-column:2/4; }
  .cid-central__hero { align-items:flex-start; flex-direction:column; padding:20px; }
  .cid-central__hero h2 { font-size:28px; }
  .cid-central__atalhos { top:6px; margin-inline:-4px; }
  .cid-config-grid,.cid-midia-form,.cid-objeto-editores,.cid-infra__paineis,.cid-cadastrar-liberar { grid-template-columns:1fr; }
  .cid-objeto-busca { align-items:stretch; flex-direction:column; }
  .cid-objeto-busca .select,.cid-objeto-busca .btn { width:100%; min-width:0; }
  .cid-infra__estado { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cid-comandos,.cid-operacao { align-items:stretch; flex-direction:column; }
  .cid-comandos form,.cid-operacao form { align-items:stretch; flex-direction:column; width:100%; }
  .cid-comandos input,.cid-operacao input,.cid-comandos .btn,.cid-operacao .btn { width:100%; }
}

@media (max-width:560px) {
  .foto-facial { align-items:flex-start; flex-direction:column; }
  .foto-facial img,.foto-facial>span,.foto-facial--controlid img { width:100%; height:auto; aspect-ratio:1; flex-basis:auto; }
}

/* ------------------------------------------------ topologia por planilha */
.pt-importacao { display:grid; gap:18px; }
.pt-hero { padding:30px; border-radius:18px; color:#fff; background:linear-gradient(135deg,#102e49,#176d83); box-shadow:0 16px 38px rgb(21 58 91 / 20%); }
.pt-hero>span { color:#9edbe4; font:800 12px/1 var(--fonte); letter-spacing:.12em; }
.pt-hero h2 { margin:8px 0 6px; font:800 clamp(28px,4vw,44px)/1.05 var(--fonte); letter-spacing:-.04em; }
.pt-hero p { max-width:850px; margin:0; color:#e0eef3; font:550 17px/1.5 var(--fonte); }
.pt-hero--compacto { padding:22px 26px; }
.pt-hero--compacto h2 { font-size:clamp(26px,3vw,36px); }
.pt-fluxo { display:flex; align-items:center; gap:12px; margin-top:24px; font-size:13px; }
.pt-fluxo i { width:34px; height:1px; background:rgb(255 255 255 / 35%); }
.pt-upload { display:grid; grid-template-columns:minmax(280px,1fr) auto; align-items:end; gap:14px; margin:18px 0; }
.pt-formato { margin:18px 0; padding:18px; border:1px solid var(--borda); border-radius:13px; background:var(--cinza-0,#f7f9fb); }
.pt-formato h3 { margin:0 0 3px; font-size:17px; }
.pt-formato .pt-mapeamento { margin:15px 0 0; }
.pt-mapeamento { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.pt-modo { display:grid; gap:10px; margin:0 0 18px; padding:16px; border:1px solid var(--borda); border-radius:12px; }
.pt-modo legend { padding:0 6px; font-weight:800; }
.pt-modo label { display:flex; align-items:flex-start; gap:9px; padding:11px; border-radius:9px; background:var(--cinza-0,#f7f9fb); }
.pt-modo strong,.pt-modo small { display:block; }
.pt-modo small { margin-top:3px; color:var(--tinta-5); line-height:1.4; }
.pt-tabela-wrap { max-width:100%; overflow:auto; border:1px solid var(--borda); border-radius:11px; }
.pt-amostra { min-width:850px; width:100%; border-collapse:collapse; font-size:13px; }
.pt-amostra th,.pt-amostra td { padding:10px 12px; border-right:1px solid var(--borda); border-bottom:1px solid var(--borda); text-align:left; white-space:nowrap; }
.pt-amostra th { color:#fff; background:var(--azul); }
.pt-resumo { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.pt-resumo>div { padding:16px; border:1px solid var(--borda); border-radius:13px; background:#fff; }
.pt-resumo span,.pt-resumo strong { display:block; }
.pt-resumo span { color:var(--tinta-5); font:750 11px/1 var(--fonte); letter-spacing:.07em; text-transform:uppercase; }
.pt-resumo strong { margin-top:9px; font:800 28px/1 var(--fonte); }
.pt-resumo .is-erro { border-color:#e7aaaa; background:#fff5f5; }
.pt-resumo .is-erro strong { color:#a62e2e; }
.pt-resumo .is-ok { border-color:#9bcdb4; background:#f2fbf6; }
.pt-linhas { display:grid; gap:10px; margin-top:14px; }
.pt-linhas article { padding:15px; border:1px solid var(--borda); border-left:5px solid #3a9b6c; border-radius:11px; background:#fff; }
.pt-linhas article.tem-erro { border-left-color:#bd4141; background:#fff9f9; }
.pt-linhas header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pt-linhas header span { padding:5px 9px; border-radius:999px; color:#176844; background:#e8f7ef; font-size:11px; font-weight:800; }
.pt-linhas .tem-erro header span { color:#9b2929; background:#fde9e9; }
.pt-linhas__destinos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.pt-linhas__destinos span { padding:9px 11px; border-radius:8px; background:var(--cinza-0,#f6f8fa); font-weight:700; }
.pt-linhas__destinos small { display:block; margin-bottom:3px; color:var(--tinta-5); font-size:10px; text-transform:uppercase; }
.pt-erros,.pt-acoes { margin:10px 0 0; padding-left:20px; line-height:1.5; }
.pt-erros { color:#982d2d; }
.pt-acoes { color:var(--tinta-4); }
.pt-confirmar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px; border:1px solid var(--borda); border-radius:13px; background:#fff; }
.pt-confirmar form:first-child { display:flex; align-items:center; gap:16px; }
.pt-historico { display:grid; gap:9px; margin-top:13px; }
.pt-historico article { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:13px; border:1px solid var(--borda); border-radius:10px; }
.pt-historico strong,.pt-historico small { display:block; }
.pt-historico small { margin-top:4px; color:var(--tinta-5); }
.pt-historico__acoes { display:flex; align-items:center; gap:12px; }
.pt-caminhos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pt-caminhos article { display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin:0; }
.pt-caminhos p { flex:1; margin:0; color:var(--tinta-5); line-height:1.55; }
.pt-caminho__numero { color:#176d83; font:800 11px/1 var(--fonte); letter-spacing:.1em; }
.pt-caminho--destaque { border-color:#8fc9d4; background:linear-gradient(145deg,#f4fbfc,#fff); }
.pt-ajuda { scroll-margin-top:20px; }
.pt-relacoes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
.pt-relacoes article { padding:15px; border:1px solid var(--borda); border-radius:12px; background:var(--cinza-0,#f7f9fb); }
.pt-relacoes code,.pt-interfaces code,.pt-receita code { display:inline-block; color:#176d83; font:750 11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; }
.pt-relacoes h3 { margin:8px 0 6px; font-size:17px; }
.pt-relacoes strong,.pt-relacoes p,.pt-relacoes small { display:block; }
.pt-relacoes strong { color:var(--tinta); font-size:13px; }
.pt-relacoes p { margin:7px 0; color:var(--tinta-5); font-size:13px; line-height:1.4; }
.pt-relacoes small { color:var(--tinta-6); line-height:1.4; }
.pt-interfaces { margin-top:18px; }
.pt-interfaces summary { cursor:pointer; font-weight:800; }
.pt-interfaces>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:12px; }
.pt-interfaces article { display:grid; grid-template-columns:auto 1fr; gap:4px 10px; padding:12px; border-radius:10px; background:var(--cinza-0,#f7f9fb); }
.pt-interfaces article span,.pt-interfaces article small { grid-column:1/-1; color:var(--tinta-5); font-size:12px; line-height:1.35; }
.pt-receitas { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; margin-top:15px; }
.pt-receita { min-height:125px; padding:14px; border:1px solid var(--borda); border-radius:12px; color:var(--tinta); background:#fff; text-align:left; cursor:pointer; transition:.16s ease; }
.pt-receita:hover,.pt-receita.is-ativa { border-color:#176d83; background:#eff9fb; box-shadow:0 0 0 2px rgb(23 109 131 / 12%); transform:translateY(-1px); }
.pt-receita b,.pt-receita span,.pt-receita code { display:block; }
.pt-receita b { margin-bottom:6px; font-size:15px; }
.pt-receita span { min-height:43px; color:var(--tinta-5); font:500 12px/1.35 var(--fonte); }
.pt-receita code { margin-top:8px; }
.ptg-editor { border-top:4px solid #176d83; }
.ptg-frase { display:grid; gap:5px; margin-bottom:18px; padding:14px 16px; border-radius:11px; background:#eaf6f8; }
.ptg-frase span { color:#176d83; font:800 10px/1 var(--fonte); letter-spacing:.1em; }
.ptg-frase strong { font-size:18px; }
.ptg-frase small { color:var(--tinta-5); }
.ptg-pontas { display:grid; grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr); align-items:stretch; gap:12px; }
.ptg-pontas fieldset { display:grid; gap:12px; min-width:0; margin:0; padding:18px; border:1px solid var(--borda); border-radius:14px; }
.ptg-pontas legend { padding:0 7px; color:#153a5b; font-size:17px; font-weight:800; }
.ptg-pontas label:not(.check),.ptg-complemento label:not(.check) { display:grid; gap:6px; font-size:12px; font-weight:750; }
.ptg-pontas fieldset>small { min-height:18px; color:var(--tinta-5); }
.ptg-seta { display:grid; place-items:center; color:#176d83; font-size:36px; font-weight:800; }
.ptg-interface { display:grid; gap:10px; padding-top:12px; border-top:1px solid var(--borda); }
.ptg-complemento { display:grid; grid-template-columns:auto minmax(220px,1fr) auto; align-items:end; gap:14px; margin-top:16px; }
.ptg-estado { min-height:20px; margin:10px 0 0; color:#176844; font-weight:700; }
.ptg-estado.is-erro { color:#982d2d; }
.ptg-lista { display:grid; gap:9px; margin:14px 0 20px; }
.ptg-lista article { padding:13px 15px; border:1px solid var(--borda); border-left:4px solid #176d83; border-radius:10px; }
.ptg-lista__topo { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.ptg-lista__topo b,.ptg-lista__topo small { display:block; }
.ptg-lista__topo small { margin-top:4px; color:var(--tinta-5); }
.ptg-lista__topo>div:last-child { display:flex; gap:12px; }
.ptg-lista__topo button { padding:0; border:0; background:none; cursor:pointer; }
.ptg-lista p { margin:8px 0 0; color:var(--tinta-5); font-size:13px; }
@media (max-width:900px) {
  .pt-resumo { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pt-fluxo i { width:14px; }
  .pt-relacoes,.pt-interfaces>div { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pt-receitas { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:650px) {
  .pt-hero { padding:22px 18px; }
  .pt-hero p { font-size:15px; }
  .pt-fluxo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pt-fluxo i { display:none; }
  .pt-upload,.pt-mapeamento,.pt-linhas__destinos { grid-template-columns:1fr; }
  .pt-resumo { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pt-confirmar,.pt-confirmar form:first-child,.pt-historico article { align-items:stretch; flex-direction:column; }
  .pt-confirmar .btn,.pt-historico__acoes { width:100%; }
  .pt-caminhos,.pt-relacoes,.pt-interfaces>div,.pt-receitas,.ptg-pontas,.ptg-complemento { grid-template-columns:1fr; }
  .pt-receita { min-height:0; }
  .pt-receita span { min-height:0; }
  .ptg-seta { height:26px; transform:rotate(90deg); font-size:28px; }
  .ptg-lista__topo { align-items:flex-start; flex-direction:column; }
}

/* ------------------------------------------------ importação privada do CRLV */
.crlv-importar { display:grid; gap:18px; }
.crlv-hero {
  display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px;
  border-radius:18px; color:#fff; background:linear-gradient(135deg,#153a5b,#147989);
  box-shadow:0 14px 34px rgb(21 58 91 / 18%);
}
.crlv-hero h2 { margin:5px 0 8px; font-size:30px; letter-spacing:-.035em; }
.crlv-hero p { max-width:720px; margin:0; color:rgb(255 255 255 / 82%); line-height:1.5; }
.crlv-hero>strong { flex:none; padding:13px 17px; border:1px solid rgb(255 255 255 / 28%); border-radius:999px; background:rgb(255 255 255 / 12%); }
.crlv-kicker,.crlv-etapa { font:800 11px/1 var(--fonte); letter-spacing:.12em; text-transform:uppercase; }
.crlv-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:18px; align-items:start; }
.crlv-card { position:relative; margin:0; padding:22px; }
.crlv-card h2 { margin:8px 0; font-size:23px; }
.crlv-card>p { color:var(--tinta-5); line-height:1.5; }
.crlv-etapa { display:inline-flex; padding:7px 9px; border-radius:8px; color:var(--azul); background:var(--azul-suave); }
.crlv-status { margin:14px 0 0; padding:12px 14px; border-radius:10px; color:var(--tinta-4)!important; background:var(--cinza-1); font-weight:650; }
.crlv-status--erro { color:var(--vermelho)!important; background:#fff1f2; }
.crlv-campos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:14px 0 18px; }
.crlv-tecnico { margin-top:18px; }
.crlv-tecnico summary { cursor:pointer; color:var(--azul); font-weight:700; }
.crlv-tecnico pre { overflow:auto; max-height:320px; padding:14px; border-radius:10px; color:#dbe7ef; background:#09131d; white-space:pre-wrap; overflow-wrap:anywhere; }
.crlv-qr { border-style:dashed; }
.crlv-camera { position:relative; overflow:hidden; width:min(100%,680px); aspect-ratio:4/3; margin:16px auto; border-radius:14px; background:#05090d; }
.crlv-camera[hidden] { display:none; }
.crlv-camera video { display:block; width:100%; height:100%; object-fit:cover; }
.crlv-camera span { position:absolute; inset:15%; border:3px solid #57d6a0; border-radius:12px; box-shadow:0 0 0 999px rgb(0 0 0 / 38%); }
.crlv-acoes { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.crlv-preenchido { margin:0 0 16px; }
@media (max-width: 800px) {
  .crlv-hero { align-items:flex-start; padding:20px; }
  .crlv-hero>strong { display:none; }
  .crlv-hero h2 { font-size:26px; }
  .crlv-grid,.crlv-campos { grid-template-columns:1fr; }
  .crlv-card { padding:18px; }
  .crlv-card .btn { width:100%; justify-content:center; min-height:48px; }
}

/* ------------------------------------------------ documentos digitais Vio/CIN */
.doc-digital { display:grid; gap:18px; }
.doc-digital__hero {
  display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px;
  overflow:hidden; border-radius:20px; color:#fff;
  background:radial-gradient(circle at 90% 10%,rgb(87 214 160 / 30%),transparent 33%),linear-gradient(135deg,#102d48,#126c78);
  box-shadow:0 16px 38px rgb(16 45 72 / 20%);
}
.doc-digital__hero small { font:800 11px/1 var(--fonte); letter-spacing:.13em; opacity:.74; }
.doc-digital__hero h2 { margin:7px 0 9px; font-size:clamp(27px,3vw,36px); letter-spacing:-.04em; }
.doc-digital__hero p { max-width:790px; margin:0; color:rgb(255 255 255 / 82%); font-size:15px; line-height:1.55; }
.doc-digital__hero>span { flex:none; padding:14px 18px; border:1px solid rgb(255 255 255 / 28%); border-radius:999px; background:rgb(255 255 255 / 12%); font-weight:800; }
.doc-digital__captura,.doc-digital__resultado { margin:0; padding:24px; }
.doc-digital__captura h2,.doc-digital__resultado h2 { margin:9px 0 6px; font-size:24px; letter-spacing:-.025em; }
.doc-digital__captura>div:first-child>p,.doc-digital__cab p { margin:0; color:var(--tinta-5); line-height:1.5; }
.doc-digital__camera {
  position:relative; overflow:hidden; width:min(100%,720px); aspect-ratio:4/3; margin:18px auto;
  border-radius:16px; background:#03080c; box-shadow:inset 0 0 0 1px rgb(255 255 255 / 10%);
}
.doc-digital__camera[hidden],.doc-digital__resultado[hidden] { display:none; }
.doc-digital__camera video { display:block; width:100%; height:100%; object-fit:cover; }
.doc-digital__camera span { position:absolute; inset:12%; border:3px solid #57d6a0; border-radius:14px; box-shadow:0 0 0 999px rgb(0 0 0 / 44%),0 0 22px rgb(87 214 160 / 38%); }
.doc-digital__camera span::after { content:""; position:absolute; left:7%; right:7%; top:50%; height:2px; background:#fff; box-shadow:0 0 12px #57d6a0; }
.doc-digital__acoes { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:17px; }
.doc-digital__arquivo { cursor:pointer; }
.doc-digital__arquivo input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.doc-digital__status { margin:14px 0 0; padding:13px 15px; border-radius:11px; color:var(--tinta-4); background:var(--cinza-1); font-weight:700; }
.doc-digital__status.is-erro { color:var(--vermelho); background:#fff1f2; }
.doc-digital__cab { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.doc-digital__cab>strong { flex:none; padding:10px 13px; border-radius:999px; font-size:13px; }
.doc-digital__cab>strong.is-autentico { color:#087348; background:#e7f8f0; }
.doc-digital__cab>strong.is-revisar { color:#8a5800; background:#fff4d6; }
.doc-digital__cab>strong.is-invalido { color:#a01828; background:#fff0f1; }
.doc-digital__alerta { margin:18px 0; padding:14px 16px; border-left:4px solid #2ba875; border-radius:10px; background:#edf9f4; line-height:1.5; }
.doc-digital__alerta.is-alerta { border-left-color:#e5a323; background:#fff8e8; }
.doc-digital__destinos { margin:18px 0 4px; padding:17px; border:1px solid #b9decf; border-radius:13px; background:#f0faf6; }
.doc-digital__destinos[hidden] { display:none; }
.doc-digital__destinos>div:first-child strong { font-size:16px; }
.doc-digital__destinos>div:first-child p { margin:5px 0 0; color:var(--tinta-5); line-height:1.45; }
.doc-digital__campos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; }
.doc-digital__campos>div { min-width:0; padding:13px 14px; border:1px solid var(--borda); border-radius:11px; background:var(--cinza-0,#f8fafc); }
.doc-digital__campos dt { color:var(--tinta-5); font:750 11px/1.2 var(--fonte); letter-spacing:.055em; text-transform:uppercase; }
.doc-digital__campos dd { margin:7px 0 0; overflow-wrap:anywhere; color:var(--tinta-2); font:700 15px/1.35 var(--fonte); }
.doc-digital__privacidade { padding:18px 20px; border:1px solid var(--borda); border-radius:14px; background:var(--cinza-0,#f8fafc); }
.doc-digital__privacidade strong { display:block; margin-bottom:5px; }
.doc-digital__privacidade p { margin:0; color:var(--tinta-5); line-height:1.5; }
.doc-vincular { width:min(760px,100%); margin:0 auto; padding:26px; }
.doc-vincular h2 { margin:10px 0 7px; font-size:28px; letter-spacing:-.035em; }
.doc-vincular>p { margin:0 0 20px; color:var(--tinta-5); font-size:15px; line-height:1.55; }
.doc-unidade-preparada { margin:0 0 18px; padding:16px 18px; font-size:15px; line-height:1.5; }
.documento-pessoa-preenchido { margin-bottom:16px; }
.documento-pessoa-inicio {
  align-items:center;
  display:flex;
  gap:16px;
  justify-content:space-between;
  margin-bottom:18px;
}
.documento-pessoa-inicio .btn { flex:0 0 auto; }
@media (max-width:680px) {
  .documento-pessoa-inicio { align-items:stretch; flex-direction:column; }
  .documento-pessoa-inicio .btn { text-align:center; }
}
@media (max-width: 800px) {
  .doc-digital__hero { align-items:flex-start; padding:21px; }
  .doc-digital__hero>span { display:none; }
  .doc-digital__hero p { font-size:14px; }
  .doc-digital__captura,.doc-digital__resultado { padding:18px; }
  .doc-digital__cab { flex-direction:column; }
  .doc-digital__campos { grid-template-columns:1fr; }
  .doc-digital__acoes { align-items:stretch; flex-direction:column; }
  .doc-digital__acoes .btn { width:100%; min-height:50px; justify-content:center; font-size:15px; }
  .doc-vincular { padding:19px; }
}

/* ------------------------------------------------ conciliação de pré-cadastro */
.conciliacao-pessoa {
  margin-top:18px; padding:20px; border:1px solid var(--borda); border-radius:14px;
  background:var(--fundo, #fff);
}
.conciliacao-pessoa:first-of-type { margin-top:12px; }
.conciliacao-pessoa h3 { margin:0 0 3px; font-size:18px; }
.conciliacao-pessoa>.card__cab>.select { width:min(260px,100%); }
.conciliacao-candidatos { margin:10px 0 14px; padding:10px 12px; border:1px dashed var(--borda); border-radius:10px; }
.conciliacao-candidatos summary { cursor:pointer; color:var(--azul); font-weight:700; }
.conciliacao-candidatos>div { margin-top:9px; padding-top:9px; border-top:1px solid var(--borda); }
.conciliacao-candidatos strong,.conciliacao-candidatos small { display:block; overflow-wrap:anywhere; }
.conciliacao-candidatos small { margin-top:3px; color:var(--tinta-5); line-height:1.45; }
.conciliacao-comparacao { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; }
.conciliacao-campo {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,.7fr); align-items:center; gap:12px;
  min-height:82px; padding:12px; border:1px solid var(--borda); border-radius:10px; background:var(--cinza-0,#f8fafc);
}
.conciliacao-campo strong,.conciliacao-campo small { display:block; }
.conciliacao-campo small { margin-top:5px; color:var(--tinta-5); line-height:1.45; overflow-wrap:anywhere; }
.lista-item--conciliacao { display:grid; grid-template-columns:minmax(0,1fr) 180px auto; gap:12px; }
.conciliacao-previa { border:2px solid var(--azul); box-shadow:0 10px 28px rgb(33 105 150 / 10%); }
@media (max-width: 800px) {
  .conciliacao-comparacao { grid-template-columns:1fr; }
  .conciliacao-campo,.lista-item--conciliacao { grid-template-columns:1fr; }
  .conciliacao-pessoa>.card__cab { align-items:stretch; flex-direction:column; }
  .conciliacao-pessoa>.card__cab>.select { width:100%; }
}

/* ------------------------------------------------ administração no PWA */
.lateral__troca,.ap__troca {
  display:flex; align-items:center; gap:8px; margin:10px 14px; padding:10px 12px;
  border:1px solid var(--borda); border-radius:10px; color:var(--azul);
  font:700 12px/1.2 var(--fonte); background:var(--azul-suave);
}
.lateral__troca:hover,.ap__troca:hover { border-color:var(--azul); color:var(--azul); }
.ap__redondo--troca { color:var(--azul); background:var(--azul-suave); }
.aadmin-hero {
  display:flex; align-items:center; gap:15px; padding:19px; margin-bottom:16px;
  border-radius:16px; color:#fff; background:linear-gradient(135deg,#153a5b,#176d83);
  box-shadow:0 12px 30px rgb(21 58 91 / 18%);
}
.aadmin-hero>span { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:14px; background:rgb(255 255 255 / 14%); }
.aadmin-hero small { font:800 11px/1 var(--fonte); letter-spacing:.11em; opacity:.76; }
.aadmin-hero h2 { margin:4px 0 2px; font:800 24px/1.08 var(--fonte); letter-spacing:-.03em; }
.aadmin-hero p { margin:0; font:500 14px/1.35 var(--fonte); opacity:.84; }
.aadmin-destaques { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.aadmin-card { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; margin:0!important; }
.aadmin-card>span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; color:var(--azul); background:var(--azul-suave); }
.aadmin-card strong { display:block; font:750 16px/1.2 var(--fonte); }
.aadmin-card p { margin:4px 0 0; color:var(--tinta-5); font:500 13px/1.35 var(--fonte); }
.aadmin-card>b { color:var(--tinta-4); font-size:24px; }
.aadmin-grupo { margin-top:22px; }
.aadmin-grupo h3 { margin:0 0 9px; color:var(--tinta-5); font:800 12px/1 var(--fonte); letter-spacing:.08em; text-transform:uppercase; }
.eq__admin-movel { display:flex; align-items:center; gap:6px; min-height:38px; padding:7px 10px; border:1px solid var(--borda); border-radius:9px; color:var(--azul); font:700 12px/1 var(--fonte); background:var(--azul-suave); }

/* Leitura do número de série na própria ficha, sem aplicativo externo. */
.pat-serial__linha { display:flex; align-items:stretch; gap:8px; }
.pat-serial__linha>input { min-width:0; flex:1; }
.pat-serial__abrir { flex:none; white-space:nowrap; }
.pat-scanner[hidden] { display:none!important; }
.pat-scanner {
  margin-top:10px; padding:12px; border-radius:14px; color:#fff; background:#09131d;
  box-shadow:0 10px 30px rgb(0 0 0 / 24%);
}
.pat-scanner__visor { position:relative; overflow:hidden; aspect-ratio:4/3; border-radius:10px; background:#000; }
.pat-scanner__visor video { display:block; width:100%; height:100%; object-fit:cover; }
.pat-scanner__visor span { position:absolute; inset:18% 8%; border:2px solid #57d6a0; border-radius:9px; box-shadow:0 0 0 999px rgb(0 0 0 / 32%); }
.pat-scanner__visor span::after { content:""; position:absolute; left:5%; right:5%; top:50%; height:2px; background:#ff5667; box-shadow:0 0 8px #ff5667; }
.pat-scanner p { margin:10px 0; color:#dbe7ef; font:600 13px/1.4 var(--fonte); }
.pat-scanner .btn--contorno { border-color:#668094; color:#fff; }

@media (max-width: 700px) {
  .aadmin-destaques { grid-template-columns:1fr; }
  .aadmin-card { min-height:82px; padding:16px; }
  .aadmin-card strong { font-size:17px; }
  .aadmin-card p { font-size:14px; }
  .pat-serial__linha { flex-direction:column; }
  .pat-serial__abrir { min-height:48px; justify-content:center; font-size:15px; }
  .pat-scanner { margin-left:-4px; margin-right:-4px; }
  .eq__admin-movel { width:42px; height:42px; padding:0; justify-content:center; }
  .eq__admin-movel span { display:none; }
}
.cid-mapa-form__grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cid-mapa-form .acoes-linha{align-items:flex-end;margin-top:14px}.cid-mapa-item{border:1px solid var(--linha,#dce2e8);border-radius:14px;margin-top:10px;background:#fff}.cid-mapa-item>summary{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(180px,1fr) auto;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.cid-mapa-item>div{padding:0 16px 16px}.cid-mapa-item code,.cid-contratos code{font-weight:700;color:#173f62}.cid-previa-mapa{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cid-previa-mapa article{min-width:0;border:1px solid var(--linha,#dce2e8);border-radius:14px;padding:14px;background:#f9fbfc}.cid-previa-mapa article>div{display:flex;justify-content:space-between;gap:10px}.cid-previa-mapa pre{overflow:auto;max-height:250px;margin:12px 0 0;padding:12px;border-radius:10px;background:#101b29;color:#dce8f2;font-size:12px}.cid-contratos{display:grid;gap:8px;margin-top:14px}.cid-contratos>div{display:flex;gap:12px;justify-content:space-between;padding:11px 13px;border-radius:10px;background:#f4f7f9}.cid-contratos span{overflow-wrap:anywhere;text-align:right}@media(max-width:900px){.cid-mapa-form__grade{grid-template-columns:repeat(2,minmax(0,1fr))}.cid-mapa-item>summary{grid-template-columns:auto 1fr}.cid-previa-mapa{grid-template-columns:1fr}}@media(max-width:560px){.cid-mapa-form__grade{grid-template-columns:1fr}.cid-mapa-item>summary{grid-template-columns:1fr}.cid-contratos>div{display:block}.cid-contratos span{display:block;text-align:left;margin-top:5px}}

/* ------------------------------------------------ nobreaks / receptor SNMP */
.snmp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.snmp-kpis article{background:#fff;border:1px solid var(--linha);border-radius:14px;padding:17px;display:grid;gap:5px;min-width:0}
.snmp-kpis span,.snmp-kpis small{color:var(--tinta-5);font-size:11px}.snmp-kpis span{font-weight:800;letter-spacing:.08em}.snmp-kpis strong{font-size:22px;color:var(--azul);overflow-wrap:anywhere}
.snmp-config-global{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:28px;align-items:start;margin-bottom:16px}.snmp-config-global h2,.snmp-dispositivo h3,.snmp-alarmes h3{margin:3px 0 5px}.snmp-config-global p{color:var(--tinta-5);margin:0;max-width:620px}.snmp-config-global form{display:grid;gap:12px}
.snmp-dispositivos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.snmp-dispositivo{border:1px solid var(--borda);border-radius:14px;padding:16px;background:#fafbfc;display:grid;gap:13px;min-width:0}.snmp-dispositivo.is-ativo{background:#fff;border-color:#b9d8c3;box-shadow:inset 3px 0 #2e6b50}.snmp-dispositivo>header{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.snmp-dispositivo>header small{color:var(--tinta-5)}.snmp-dispositivo details{border-top:1px solid var(--borda);padding-top:11px}.snmp-dispositivo summary{cursor:pointer;color:var(--azul);font-weight:750}.snmp-dispositivo details form{display:grid;gap:12px;margin-top:14px}.snmp-dispositivo__ultimo{margin:0;color:var(--tinta-5);font-size:12px}
.snmp-metricas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.snmp-metricas span{border-radius:9px;background:#eef3f5;padding:8px;display:grid;gap:2px}.snmp-metricas small{color:var(--tinta-5);font-size:10px}.snmp-metricas strong{font-size:14px}
.snmp-alarmes{display:grid;gap:9px}.snmp-alarmes article{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid #efc0ba;background:#fff5f3;border-radius:12px;padding:13px 15px}.snmp-alarmes .chip{margin-left:8px}.snmp-alarmes p{margin:0;color:var(--tinta-5);font-size:12px}
.snmp-eventos{display:grid}.snmp-eventos article{display:grid;grid-template-columns:145px 110px 110px minmax(0,1fr);gap:11px;align-items:center;padding:10px 4px;border-top:1px solid var(--borda);font-size:12px}.snmp-eventos article:first-child{border-top:0}.snmp-eventos article.is-rejeitado{opacity:.72}.snmp-eventos time{color:var(--tinta-5)}.snmp-eventos div{display:grid;gap:2px;min-width:0}.snmp-eventos small{color:var(--tinta-5);overflow-wrap:anywhere}
@media(max-width:1050px){.snmp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.snmp-config-global{grid-template-columns:1fr}.snmp-dispositivos{grid-template-columns:1fr}}@media(max-width:700px){.snmp-kpis{grid-template-columns:1fr 1fr}.snmp-kpis article{padding:12px}.snmp-kpis strong{font-size:17px}.snmp-metricas{grid-template-columns:1fr 1fr}.snmp-eventos article{grid-template-columns:1fr auto}.snmp-eventos article>div{grid-column:1/-1}.snmp-alarmes article{align-items:stretch;flex-direction:column}}
