/* Sistema de Bolsas — EWRS. Fonte Outfit (SIL OFL, em vendor/fontes). */
@font-face { font-family: "Outfit"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url(vendor/fontes/outfit-latin-wght-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Outfit"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url(vendor/fontes/outfit-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --fundo: #f3f4f6; --superficie: #ffffff; --borda: #e5e7eb; --borda-forte: #d1d5db;
  --texto: #111827; --suave: #6b7280; --mais-suave: #9ca3af; --hover: #f3f4f6; --ativo: #e5e7eb;
  --primaria: #2d4a8a; --primaria-escura: #1f3566; --primaria-clara: #e8eef9;
  --grave: #b42318; --grave-fundo: #fef3f2; --grave-borda: #fecdca;
  --atencao: #92400e; --atencao-fundo: #fffbeb; --atencao-borda: #fcd34d; --laranja: #f59e0b;
  --info: #1d4ed8; --info-fundo: #eff6ff; --ok: #067647; --ok-fundo: #ecfdf3;
  --arco: linear-gradient(90deg, #6a3fb5, #2f5fb3, #4aa3c8, #5aa84a, #e2c32b, #ec8a1f, #d9402b);
  --raio: 12px; --menu-largura: 270px;
  font-family: "Outfit", "Segoe UI", system-ui, sans-serif; color: var(--texto);
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--fundo); font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
a { color: var(--primaria); }
h1 { font-size: 28px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 2px; line-height: 1.2; }
h2 { font-size: 18px; font-weight: 600; margin: 0 0 14px; }
.sub { color: var(--suave); margin: 0 0 28px; }
.ico { width: 20px; height: 20px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* botões */
.btn { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--borda-forte); background: var(--superficie);
  border-radius: 8px; padding: 9px 16px; font: inherit; font-weight: 500; cursor: pointer; color: var(--texto); text-decoration: none; transition: background .12s, border-color .12s; }
.btn:hover { background: var(--hover); }
.btn-primario { background: var(--primaria); color: #fff; border-color: var(--primaria); }
.btn-primario:hover { background: var(--primaria-escura); }
.btn:disabled { opacity: .5; cursor: default; }
.btn-icone { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--borda); background: var(--superficie);
  border-radius: 10px; cursor: pointer; color: var(--texto); }
.btn-icone:hover { background: var(--hover); }
.botoes { display: flex; flex-wrap: wrap; gap: 10px; }

/* login */
.login { min-height: 100vh; display: grid; place-items: center; padding: 16px; position: relative; }
.login::before { content: ""; position: fixed; inset: 0 0 auto; height: 4px; background: var(--arco); }
.login-cartao { background: var(--superficie); border: 1px solid var(--borda); border-radius: 16px; padding: 36px 32px 28px;
  width: 100%; max-width: 440px; text-align: center; box-shadow: 0 10px 30px rgba(17,24,39,.06); }
.login-logo { width: 100%; max-width: 300px; height: auto; display: block; margin: 0 auto 18px; }
.login-titulo { font-size: 24px; margin: 0; }
.login-sub { color: var(--suave); margin: 4px 0 26px; font-size: 14px; }
.login-rodape { color: var(--suave); font-size: 13px; margin: 22px 0 0; }
.btn-ms { width: 100%; justify-content: center; padding: 12px; font-weight: 600; }
.erro { color: var(--grave); background: var(--grave-fundo); border: 1px solid var(--grave-borda); padding: 10px 12px; border-radius: 8px; font-size: 14px; text-align: left; }

/* estrutura */
.app { display: grid; grid-template-columns: var(--menu-largura) minmax(0, 1fr); grid-template-rows: auto 1fr auto; min-height: 100vh; }
.faixa { position: fixed; inset: 0 0 auto; height: 4px; background: var(--arco); z-index: 30; }
.menu { grid-row: 1 / 4; background: var(--superficie); border-right: 1px solid var(--borda); display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh; z-index: 20; }
.marca { display: flex; align-items: center; gap: 12px; padding: 18px 16px 16px; border-bottom: 1px solid var(--borda); text-decoration: none; color: var(--texto); margin-top: 4px; }
.marca-simbolo { width: 40px; height: 40px; flex: none; }
.marca-texto { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.marca-texto strong { font-size: 16px; font-weight: 600; }
.marca-texto small { color: var(--primaria); font-size: 13px; }
.menu nav { flex: 1; overflow-y: auto; padding: 8px 10px 16px; display: flex; flex-direction: column; gap: 2px; }
.grupo { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); padding: 16px 8px 6px; }
.menu nav a { display: flex; align-items: center; gap: 12px; padding: 10px 10px; border-radius: 10px; color: #1f2937; text-decoration: none; font-size: 15.5px; }
.menu nav a .rotulo { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.menu nav a:hover { background: var(--hover); }
.menu nav a.ativo { background: var(--ativo); font-weight: 600; color: var(--texto); }
.contador { background: var(--laranja); color: #fff; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 0 8px; line-height: 20px; min-width: 22px; text-align: center; }
.contador.neutro { background: var(--ativo); color: #374151; }
.recolher { display: flex; align-items: center; gap: 10px; border: 0; border-top: 1px solid var(--borda); background: none; padding: 14px 18px;
  font: inherit; font-size: 14px; color: #374151; cursor: pointer; text-align: left; }
.recolher:hover { background: var(--hover); }
.recolher .ico { width: 18px; height: 18px; }

.topo { display: flex; align-items: center; gap: 16px; padding: 14px 20px 12px; margin-top: 4px; background: var(--superficie);
  border-bottom: 1px solid var(--borda); position: sticky; top: 4px; z-index: 10; min-width: 0; }
.busca-topo { flex: 0 1 650px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--borda-forte); border-radius: 10px;
  padding: 0 10px 0 14px; height: 44px; color: var(--mais-suave); min-width: 0; }
.busca-topo:focus-within { border-color: var(--primaria); box-shadow: 0 0 0 3px var(--primaria-clara); }
.busca-topo .ico { width: 18px; height: 18px; }
.busca-topo input[type=search] { flex: 1; border: 0; outline: 0; box-shadow: none; border-radius: 0; height: 100%; font: inherit; color: var(--texto); background: none; min-width: 0; padding: 0; }
.busca-topo kbd { font: inherit; font-size: 12px; border: 1px solid var(--borda-forte); border-radius: 5px; padding: 0 7px; color: var(--suave); }
.ambiente { margin-left: auto; border: 1px solid var(--atencao-borda); background: var(--atencao-fundo); color: var(--atencao); border-radius: 10px;
  padding: 0 14px; height: 44px; display: inline-flex; align-items: center; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.perfil { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.ambiente:not([hidden]) + .perfil { margin-left: 0; }
.perfil-texto { text-align: right; line-height: 1.25; }
.usuario-nome { font-weight: 500; white-space: nowrap; } .usuario-papeis { color: var(--suave); font-size: 13px; max-width: 260px; margin-left: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--primaria-escura); color: #fff; display: grid; place-items: center; font-weight: 600; font-size: 14px; flex: none; }

.conteudo { padding: 36px 40px 48px; width: 100%; max-width: 1480px; margin: 0 auto; min-width: 0; outline: none; }
.rodape { grid-column: 2; text-align: center; color: var(--mais-suave); font-size: 13px; padding: 14px; border-top: 1px solid var(--borda); background: var(--superficie); }
.rodape strong { color: #374151; font-weight: 500; } .rodape .sep { margin: 0 8px; color: var(--borda-forte); }
.veu { display: none; }
.so-celular { display: none; }

/* menu recolhido */
.app.recolhido { --menu-largura: 76px; }
.app.recolhido .marca-texto, .app.recolhido .rotulo, .app.recolhido .grupo, .app.recolhido .menu .contador { display: none; }
.app.recolhido .menu nav a { justify-content: center; padding: 12px 0; }
.app.recolhido .marca { justify-content: center; padding-left: 0; padding-right: 0; }
.app.recolhido .recolher { justify-content: center; padding: 14px 0; }
.app.recolhido .recolher .ico { transform: scaleX(-1); }

@media (max-width: 1100px) { .perfil-texto, .ambiente { display: none !important; } }
@media (max-width: 860px) {
  .app, .app.recolhido { grid-template-columns: minmax(0, 1fr); --menu-largura: 270px; }
  .menu { position: fixed; left: 0; top: 0; width: var(--menu-largura); transform: translateX(-100%); transition: transform .2s; box-shadow: 0 0 40px rgba(0,0,0,.15); }
  .app.menu-aberto .menu { transform: none; }
  .app.menu-aberto .veu { display: block; position: fixed; inset: 0; background: rgba(17,24,39,.35); z-index: 15; }
  .app.recolhido .marca-texto, .app.recolhido .rotulo, .app.recolhido .grupo { display: revert; }
  .recolher { display: none; }
  .so-celular { display: inline-grid; }
  .topo { gap: 10px; padding: 10px 16px; }
  .busca-topo kbd { display: none; }
  .conteudo { padding: 24px 16px 36px; }
  .rodape { grid-column: 1; }
  h1 { font-size: 24px; }
}

/* componentes */
.cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-bottom: 22px; }
.cartao { display: block; background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 18px 18px 16px; color: var(--texto); text-decoration: none; }
a.cartao:hover { border-color: var(--borda-forte); box-shadow: 0 4px 14px rgba(17,24,39,.05); }
.cartao-topo { display: flex; align-items: center; gap: 10px; color: #374151; font-size: 14px; font-weight: 500; }
.cartao-topo .seta { margin-left: auto; color: var(--mais-suave); width: 18px; height: 18px; }
.cartao-icone { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--borda); background: #f9fafb; display: grid; place-items: center; color: #374151; flex: none; }
.cartao-icone .ico { width: 18px; height: 18px; }
.cartao .valor { font-size: 34px; font-weight: 700; margin: 10px 0 4px; line-height: 1.1; letter-spacing: -.01em; }
.cartao .detalhe { color: var(--suave); font-size: 13.5px; }
.bloco { overflow-x: auto; background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 22px 20px; margin-bottom: 18px; }
.bloco > h2:first-child { margin-top: 0; }
.bloco p { margin: 0 0 14px; }
.duas { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px; } @media (max-width: 1000px) { .duas { grid-template-columns: minmax(0,1fr); } }
.faixa-alerta { background: var(--atencao-fundo); border: 1px solid var(--atencao-borda); border-radius: var(--raio); padding: 18px 20px; margin-bottom: 26px; display: flex; gap: 16px; align-items: flex-start; }
.faixa-alerta.grave { background: var(--grave-fundo); border-color: var(--grave-borda); }
.faixa-alerta .corpo { flex: 1; min-width: 0; }
.faixa-alerta h2 { display: flex; align-items: center; gap: 8px; color: var(--atencao); font-size: 18px; font-weight: 500; margin: 0 0 12px; }
.faixa-alerta.grave h2 { color: var(--grave); }
.faixa-alerta ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; color: #451a03; }
.faixa-alerta li a { color: inherit; text-decoration: none; } .faixa-alerta li a:hover { text-decoration: underline; }
.faixa-alerta li strong { font-weight: 600; }
.novo { background: var(--laranja); color: #fff; font-size: 11.5px; font-weight: 600; border-radius: 4px; padding: 0 5px; margin-left: 4px; }
table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
th { text-align: left; color: var(--suave); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; border-bottom: 1px solid var(--borda); padding: 8px 12px; white-space: nowrap; }
td { border-bottom: 1px solid var(--borda); padding: 12px; vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
tr.clicavel { cursor: pointer; } tr.clicavel:hover td { background: #f9fafb; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.etiqueta { display: inline-block; border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.e-GRAVE { background: var(--grave-fundo); color: var(--grave); } .e-ATENCAO { background: var(--atencao-fundo); color: var(--atencao); }
.e-INFO { background: var(--info-fundo); color: var(--info); } .e-neutra { background: var(--hover); color: #374151; }
.e-OK { background: var(--ok-fundo); color: var(--ok); }
.alerta { display: flex; gap: 10px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--borda); }
.alerta:last-child { border-bottom: 0; } .alerta .texto { flex: 1; } .alerta.resolvido { opacity: .5; }
.vazio { color: var(--suave); text-align: center; padding: 28px 12px; }
.filtros { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
input[type=search], input[type=text], select { font: inherit; padding: 9px 12px; border: 1px solid var(--borda-forte); border-radius: 8px; background: var(--superficie); min-width: min(260px, 100%); color: var(--texto); }
.filtros input:focus, select:focus, .bloco input:focus { outline: 2px solid var(--primaria-clara); border-color: var(--primaria); }
input[type=file] { font: inherit; margin-right: 10px; max-width: 100%; }
.barras { display: flex; flex-direction: column; gap: 10px; }
.barra { display: grid; grid-template-columns: 46px minmax(0,1fr) 180px; align-items: center; gap: 12px; font-size: 14px; }
.barra .trilho { display: block; background: var(--hover); border-radius: 6px; height: 14px; overflow: hidden; }
.barra .preenchido { display: block; background: var(--primaria); height: 100%; border-radius: 6px; }
@media (max-width: 600px) { .barra { grid-template-columns: 40px minmax(0,1fr); } .barra .num { grid-column: 2; text-align: left; color: var(--suave); } }
.linha-tempo td.pct { font-weight: 600; }
.dl { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 8px 14px; font-size: 14.5px; margin: 0; } .dl dt { color: var(--suave); } .dl dd { margin: 0; }
@media (max-width: 600px) { .dl { grid-template-columns: minmax(0,1fr); } .dl dd { margin-bottom: 8px; } }
.status-linha { color: #374151; margin: 0 0 16px; }
.ponto { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; background: var(--mais-suave); vertical-align: middle; }
.ponto.ok { background: #12b76a; } .ponto.falha { background: #f04438; }
.aviso { position: fixed; bottom: 18px; right: 18px; background: var(--texto); color: #fff; padding: 12px 16px; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.18); max-width: 380px; z-index: 50; }
.carregando { color: var(--suave); padding: 20px 0; }
.voltar { color: var(--suave); text-decoration: none; font-size: 14px; display: inline-flex; align-items: center; gap: 4px; margin-bottom: 12px; }
.voltar:hover { color: var(--texto); }
.ano { color: var(--suave); font-weight: 400; }
@media (max-width: 860px) { .faixa-alerta { flex-direction: column; } }

/* implantação */
.nota { color: var(--suave); font-size: 14px; }
.bloco p.nota, .etapa p.nota { margin: 0 0 12px; }
.btn-link { border: 0; background: none; color: var(--primaria); padding: 0; font: inherit; cursor: pointer; text-decoration: underline; }
code { font-size: 13px; background: var(--hover); border-radius: 4px; padding: 1px 5px; }
.faixa-implantacao { display: flex; gap: 16px; align-items: center; background: var(--primaria-clara); border: 1px solid #c7d5f0; border-radius: var(--raio); padding: 16px 20px; margin-bottom: 26px; }
.faixa-implantacao .corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.faixa-implantacao small { color: var(--suave); font-size: 13.5px; }
.faixa-implantacao .cartao-icone { background: #fff; color: var(--primaria); }
.trilho-progresso { display: block; height: 8px; border-radius: 99px; background: rgba(45,74,138,.15); overflow: hidden; max-width: 520px; }
.trilho-progresso span { display: block; height: 100%; background: var(--primaria); border-radius: 99px; }
.progresso-topo { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; color: #374151; }
.faixa-ok { display: flex; gap: 12px; align-items: flex-start; background: var(--ok-fundo); color: var(--ok); border: 1px solid #abefc6; border-radius: var(--raio); padding: 16px 20px; margin-bottom: 22px; }
.etapas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.etapa { display: flex; gap: 16px; background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 18px 20px; }
.etapa h2 { font-size: 16.5px; margin: 4px 0 8px; }
.etapa-corpo { flex: 1; min-width: 0; }
.etapa-corpo p { margin: 0 0 10px; } .etapa-corpo > :last-child { margin-bottom: 0; }
.etapa-num { width: 32px; height: 32px; flex: none; border-radius: 50%; border: 1.5px solid var(--borda-forte); display: grid; place-items: center; font-weight: 600; color: #374151; }
.etapa.feita .etapa-num { background: #12b76a; border-color: #12b76a; color: #fff; }
.etapa.feita .etapa-num .ico { width: 18px; height: 18px; stroke-width: 2.5; }
.etapa.feita h2 { color: #374151; }
.etapa .btn + .nota { margin-left: 10px; }
.copiar { display: flex; gap: 8px; } .copiar input { flex: 1; font-size: 13px; color: var(--suave); }
@media (max-width: 860px) { .faixa-implantacao { flex-direction: column; align-items: stretch; } .copiar { flex-direction: column; } }
.tabela-param td { vertical-align: middle; }
.tabela-param select { min-width: 220px; }
@media (max-width: 860px) { .tabela-param td { display: block; border: 0; padding: 4px 0; } .tabela-param tr { display: block; border-bottom: 1px solid var(--borda); padding: 8px 0; } }

/* revisão do histórico */
.revisao { padding: 18px 20px; }
.revisao h2 { margin: 0 0 4px; font-size: 17px; }
.revisao .nota .etiqueta { padding: 1px 7px; font-size: 11.5px; }
.revisao.feito { opacity: .75; }
.rotulo-sec { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--suave); margin: 14px 0 6px !important; }
.candidato { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 10px; margin-bottom: 8px; }
.candidato:hover { border-color: var(--borda-forte); background: #fafafa; }
.cand-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cand-info .nota { font-size: 13px; }
.semelhanca { font-size: 12.5px; font-weight: 600; color: var(--primaria); background: var(--primaria-clara); border-radius: 999px; padding: 2px 9px; }
.busca-rev { margin: 12px 0 8px; } .busca-rev input { width: 100%; max-width: 420px; }
.rodape-rev { margin: 12px 0 0 !important; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.ok-rev { display: flex; align-items: center; gap: 8px; color: var(--ok); margin: 10px 0 0 !important; flex-wrap: wrap; }
.ok-rev .ico { width: 18px; height: 18px; }
@media (max-width: 600px) { .candidato { flex-wrap: wrap; } .candidato .btn { width: 100%; justify-content: center; } }

/* deliberação */
.deliberacao h3 { margin: 0; font-size: 17px; }
.filho-delib { border-top: 1px solid var(--borda); padding: 18px 0 6px; }
.filho-delib:first-of-type { border-top: 0; }
.fd-topo { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.vigente { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #f9fafb; border: 1px solid var(--borda); border-radius: 10px; padding: 12px 14px; margin: 10px 0; }
.vigente .btn { margin-left: auto; }
.vigente .just { flex-basis: 100%; margin: 4px 0 0; color: #374151; font-style: italic; }
.form-delib { margin: 10px 0; }
.form-delib summary { cursor: pointer; font-weight: 600; color: var(--primaria); padding: 6px 0; }
.grade-delib { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin: 10px 0; }
.grade-delib label, .just-campo { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; color: #374151; font-weight: 500; }
.grade-delib input, .grade-delib select, .just-campo textarea { font: inherit; padding: 9px 12px; border: 1px solid var(--borda-forte); border-radius: 8px; min-width: 0; background: #fff; }
.grade-delib small { color: var(--suave); font-weight: 400; }
.linha-campos { display: flex; gap: 8px; } .linha-campos select { width: 92px; } .linha-campos input { flex: 1; }
.pilulas { display: flex; gap: 6px; }
.pilula { font: inherit; border: 1px solid var(--borda-forte); background: #fff; border-radius: 999px; padding: 8px 14px; cursor: pointer; }
.pilula.on { background: var(--primaria); border-color: var(--primaria); color: #fff; }
.resultado-delib { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; background: var(--primaria-clara); border-radius: 10px; padding: 12px 14px; margin: 6px 0 12px; }
.resultado-delib div { display: flex; flex-direction: column; } .resultado-delib span { font-size: 12.5px; color: var(--suave); } .resultado-delib strong { font-size: 18px; }
.just-campo { margin-bottom: 12px; }
.btn-perigo { color: var(--grave); border-color: var(--grave-borda); } .btn-perigo:hover { background: var(--grave-fundo); }
.versoes summary { cursor: pointer; color: var(--suave); font-size: 14px; padding: 6px 0; }
.confirma { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; flex-basis: 100%; background: var(--atencao-fundo); border: 1px solid var(--atencao-borda); border-radius: 8px; padding: 10px 12px; }

/* orçamento */
.trilho-teto { height: 14px; border-radius: 99px; background: var(--hover); overflow: hidden; max-width: 720px; }
.trilho-teto span { display: block; height: 100%; background: var(--primaria); border-radius: 99px; }
.trilho-teto.alerta span { background: var(--laranja); } .trilho-teto.estourou span { background: var(--grave); }
.barra.barra-larga { grid-template-columns: 130px minmax(0,1fr) 210px; }
@media (max-width: 600px) { .barra.barra-larga { grid-template-columns: 1fr; gap: 4px; } }

/* configurações e menu no padrão Acollia */
.abas { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--borda); margin: -10px 0 22px; }
.abas a { padding: 10px 12px; color: var(--suave); text-decoration: none; font-size: 14.5px; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.abas a:hover { color: var(--texto); }
.abas a.on { color: var(--primaria); border-bottom-color: var(--primaria); font-weight: 600; }
.cab-bloco { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; }
.cab-bloco h2 { margin-bottom: 4px; }
.linha-usuario { display: flex; gap: 16px; align-items: center; justify-content: space-between; border: 1px solid var(--borda); border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; flex-wrap: wrap; }
.lu-info { min-width: 0; flex: 1; } .lu-info .nota { font-size: 13px; margin-top: 3px; }
.form-usuario { background: #f9fafb; border: 1px solid var(--borda); border-radius: 10px; padding: 14px; margin: 12px 0 16px; }
.ambiente { gap: 10px; }
.ambiente select { font: inherit; font-size: 13px; text-transform: none; letter-spacing: 0; border: 1px solid var(--atencao-borda); border-radius: 8px; padding: 5px 8px; background: #fff; color: var(--texto); min-width: 0; }
.matriz td, .matriz th { vertical-align: middle; } .matriz .centro { text-align: center; }
.matriz input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--primaria); }
.matriz .trava { color: var(--mais-suave); } .matriz .ico { width: 18px; height: 18px; }
.previa-id { border: 1px solid var(--borda); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; gap: 12px; padding-bottom: 14px; }
.previa-id > *:not(.pv-faixa) { margin: 0 14px; }
.pv-faixa { height: 5px; } .pv-marca { display: flex; gap: 10px; align-items: center; } .pv-marca img { width: 40px; height: 40px; object-fit: contain; }
.pv-marca div { display: flex; flex-direction: column; } .pv-marca small { font-size: 13px; }
.pv-item { background: var(--ativo); border-radius: 10px; padding: 10px; font-weight: 600; }
.previa-id .btn { align-self: flex-start; }
.tabela-edit input, .tabela-edit select { width: 130px; text-align: right; font: inherit; padding: 6px 8px; border: 1px solid var(--borda-forte); border-radius: 8px; }
.tabela-edit select { width: 70px; }
.cartao.relatorio { display: flex; flex-direction: column; gap: 10px; } .cartao.relatorio .btn { align-self: flex-start; }
.acoes-linha { white-space: nowrap; text-align: right; } .acoes-linha .btn { margin-left: 10px; }
input[type=color] { width: 44px; height: 38px; padding: 2px; border: 1px solid var(--borda-forte); border-radius: 8px; background: #fff; }

/* ficha completa e impressão */
.barra-ficha { display: flex; gap: 8px; flex-wrap: wrap; margin: -12px 0 22px; }
.barra-ficha .ico { width: 17px; height: 17px; }
.secao-form { border-top: 1px solid var(--borda); padding: 6px 0; }
.secao-form summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
.dl-form { grid-template-columns: minmax(180px, 38%) minmax(0, 1fr); padding: 4px 0 12px; }
.dl-form dd { white-space: normal; word-break: break-word; }
.dl-form .btn-link { display: inline-flex; gap: 6px; align-items: center; text-align: left; }
.dl-form .ico { width: 16px; height: 16px; }
@media print {
  @page { margin: 14mm; }
  body { background: #fff; font-size: 11.5pt; }
  .menu, .topo, .rodape, .faixa, .veu, .aviso, .barra-ficha, .form-delib, .botoes, .voltar, button:not(.btn-link), .versoes summary, .so-celular { display: none !important; }
  .app { display: block; } .conteudo { padding: 0; max-width: none; }
  .bloco, .cartao, .filho-delib, .vigente { box-shadow: none; break-inside: avoid; border-color: #ccc; }
  .secao-form { break-inside: avoid-page; }
  .duas, .cartoes { display: block; } .cartao { margin-bottom: 8px; }
  a { color: inherit; text-decoration: none; }
  body::before { content: attr(data-impresso); display: block; font-size: 9pt; color: #666; margin-bottom: 8mm; }
}

/* Filtros em fichas (alertas) */
.chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--borda-forte); background: var(--superficie);
  border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 14px; cursor: pointer; color: var(--texto); }
.chip:hover { background: var(--hover); }
.chip.ativo { background: var(--primaria-clara); border-color: var(--primaria); color: var(--primaria-escura); font-weight: 600; }
.chip-n { background: var(--ativo); border-radius: 999px; padding: 0 7px; font-size: 12px; font-weight: 600; }
.chip.ativo .chip-n { background: var(--primaria); color: #fff; }
.filtro-sep { width: 1px; background: var(--borda); margin: 0 4px; }
.tipos-alerta { align-items: center; margin-top: -6px; }

/* Cruzamento formulário × Perseus e educação infantil */
.btn-pequeno { padding: 5px 10px; font-size: 13px; }
.ligar-aluno { border-left: 4px solid var(--grave); }
.motivos { margin: 6px 0 0; padding-left: 18px; color: var(--suave); font-size: 13px; }
.busca-aluno { display: flex; flex-direction: column; gap: 6px; margin-top: 14px; font-size: 14px; color: var(--suave); }
.busca-aluno input { border: 1px solid var(--borda-forte); border-radius: 8px; padding: 9px 12px; font: inherit; color: var(--texto); }
.aviso-infantil { display: flex; gap: 8px; align-items: center; background: var(--atencao-fundo); border: 1px solid var(--atencao-borda);
  color: var(--atencao); border-radius: 8px; padding: 10px 14px; margin: 8px 0 0; }
.chip.zero:not(.ativo) { color: var(--mais-suave); border-style: dashed; }
.titulo-acoes { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.titulo-acoes h1 { margin-bottom: 0; }
.ligar-aluno td.sel, .ligar-aluno th.sel, .ligar-outro td.sel, .ligar-outro th.sel { width: 34px; }
.ligar-aluno input[type=checkbox], .ligar-outro input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--primaria); cursor: pointer; }
tr.ja-ligado td { color: var(--suave); }
.barra-ligar { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: var(--superficie); border-top: 1px solid var(--borda); padding: 12px 0 2px; margin-top: 14px; }
.ligar-outro summary { cursor: pointer; font-weight: 600; }

/* Deliberação por período */
table.periodos { margin: 12px 0 8px; }
table.periodos select, table.periodos input { border: 1px solid var(--borda-forte); border-radius: 6px; padding: 6px 8px; font: inherit; background: var(--superficie); }
table.periodos input[type=number] { width: 90px; }
.faixa-info { display: flex; gap: 8px; align-items: center; background: var(--info-fundo); color: var(--info); border-radius: 8px; padding: 10px 14px; margin: 8px 0 14px; }

/* Verba: rematrícula + deliberações */
.trilho-teto.duplo { display: flex; }
.trilho-teto.duplo span { border-radius: 0; }
.trilho-teto.duplo .t-remat, .legenda-verba i.t-remat { background: #7c93c9; }
.trilho-teto.duplo .t-delib, .legenda-verba i.t-delib { background: var(--primaria); }
.trilho-teto.duplo.estourou .t-delib { background: var(--grave); }
.legenda-verba { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; font-size: 14px; color: var(--suave); }
.legenda-verba i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 8px; vertical-align: -1px; }
.rolagem { overflow-x: auto; }
.hist-pivo td, .hist-pivo th { white-space: nowrap; }

/* Ordenar e filtrar tabelas */
th.ordenavel { cursor: pointer; user-select: none; white-space: nowrap; }
th.ordenavel:hover { color: var(--primaria); }
th.ordenavel::after { content: "↕"; margin-left: 6px; opacity: .35; font-size: 11px; }
th.ordenavel[data-ordem="asc"]::after { content: "▲"; opacity: .9; }
th.ordenavel[data-ordem="desc"]::after { content: "▼"; opacity: .9; }
.filtro-tabela { display: block; width: 100%; max-width: 360px; margin: 4px 0 10px; border: 1px solid var(--borda-forte); border-radius: 8px; padding: 8px 12px; font: inherit; }
@media print { .filtro-tabela { display: none; } th.ordenavel::after { content: none; } }

/* Janela de e-mail e campos largos */
.modal-fundo { position: fixed; inset: 0; background: rgba(17,24,39,.45); display: flex; align-items: center; justify-content: center; z-index: 80; padding: 16px; }
.modal { background: var(--superficie); border-radius: var(--raio); padding: 24px; width: min(760px, 100%); max-height: 92vh; overflow: auto; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.modal h2 { margin-top: 0; }
.campo-largo { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; font-size: 14px; color: var(--suave); }
.campo-largo input, .campo-largo textarea { border: 1px solid var(--borda-forte); border-radius: 8px; padding: 9px 12px; font: inherit; color: var(--texto); }
.grade-cfg { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 16px; }
@media print { .modal-fundo { display: none; } }
.regra-nova { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.regra-nova input, .regra-nova select, .tabela-param select, .tabela-param input { border: 1px solid var(--borda-forte); border-radius: 8px; padding: 7px 10px; font: inherit; }
table.periodos .linha-campos { display: flex; gap: 6px; align-items: center; }
table.periodos select { width: auto; min-width: 0; }
table.periodos td { vertical-align: middle; }
table.periodos td.num { white-space: nowrap; }
