/* Sistema do Bethel — estilos (gestão e app) */
:root {
  --roxo: #5B2C83; --roxo-esc: #3E1D5C; --roxo-claro: #EFE7F6; --roxo-borda: #E3D9EE;
  --dourado: #C9A227; --fundo: #F7F5FA; --cartao: #FFFFFF; --texto: #2A2233; --cinza: #6B6475;
  --verde: #2E7D32; --verde-claro: #E6F4E7; --vermelho: #C62828; --vermelho-claro: #FDECEC;
  --alerta: #8A5A00; --alerta-claro: #FFF4DB;
  --raio: 12px; --sombra: 0 1px 2px rgba(40, 20, 60, .06), 0 2px 8px rgba(40, 20, 60, .05);
  --fonte: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--fonte); font-size: 15px; color: var(--texto); background: var(--fundo); line-height: 1.45; }
a { color: var(--roxo); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.55rem; margin: 0; color: var(--roxo-esc); line-height: 1.2; }
h2 { font-size: 1.05rem; margin: 0 0 .7rem; color: var(--roxo-esc); display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
h2 small { color: var(--cinza); font-weight: normal; font-size: .85rem; }
code { background: var(--roxo-claro); padding: 1px 6px; border-radius: 4px; font-size: .92em; }
small { font-size: .82rem; }
.sub { color: var(--cinza); margin: .25rem 0 0; }
.centro { text-align: center; }
.pre { white-space: pre-wrap; }
.vazio { color: var(--cinza); font-style: italic; margin: .4rem 0; }
.verde { color: var(--verde) !important; }
.vermelho { color: var(--vermelho) !important; }
.mt { margin-top: 1.4rem; }
.pad { padding: 1rem 1.1rem .2rem; margin: 0; }
.oculto { display: none; }
[hidden] { display: none !important; }

/* ---------- botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; padding: .55rem 1rem; border-radius: 9px;
  border: 1px solid var(--roxo-borda); background: #fff; color: var(--roxo-esc); font: inherit; font-weight: 600; cursor: pointer;
  text-decoration: none !important; min-height: 40px; white-space: nowrap; }
.btn:hover { background: var(--roxo-claro); }
.btn.primario { background: var(--roxo); border-color: var(--roxo); color: #fff; }
.btn.primario:hover { background: var(--roxo-esc); }
.btn.perigo { color: var(--vermelho); border-color: #F1C9C9; }
.btn.perigo:hover { background: var(--vermelho-claro); }
.btn.largo { width: 100%; }
.btn.pequeno { padding: .3rem .7rem; min-height: 32px; font-size: .85rem; }
button.link { background: none; border: 0; padding: 0; color: var(--roxo); font: inherit; cursor: pointer; }
button.link:hover { text-decoration: underline; }
.link.perigo, button.link.perigo { color: var(--vermelho); }
form.inline { display: inline; margin: 0; }
.linha-botoes { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }

/* ---------- cartões, cards ---------- */
.cartao { background: var(--cartao); border-radius: var(--raio); box-shadow: var(--sombra); padding: 1.1rem; margin-bottom: 1rem; border: 1px solid #EEE8F4; }
.cartao.sem-pad { padding: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.card { background: #fff; border-radius: var(--raio); padding: 1rem 1.1rem; box-shadow: var(--sombra); border: 1px solid #EEE8F4; color: var(--texto);
  display: flex; flex-direction: column; gap: .15rem; text-decoration: none !important; }
a.card:hover { border-color: var(--roxo-borda); transform: translateY(-1px); }
.card small { color: var(--cinza); }
.card strong { font-size: 1.55rem; color: var(--roxo-esc); font-variant-numeric: tabular-nums; }
.card strong.menor { font-size: 1.15rem; }
.card span { color: var(--cinza); font-size: .82rem; }
.card.destaque { background: var(--roxo-esc); }
.card.destaque small, .card.destaque strong { color: #fff; }
.cards.compactos .card strong { font-size: 1.2rem; }
.grade-2 { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
.grade-3 { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
@media (min-width: 900px) {
  .grade-2 { grid-template-columns: 1fr 1fr; }
  .grade-2.larga-esq { grid-template-columns: 1.6fr 1fr; }
  .grade-3 { grid-template-columns: repeat(3, 1fr); }
}
.titulo-linha { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; flex-wrap: wrap; }
.titulo-linha h2 { margin-bottom: .2rem; }

.item-lista { display: flex; align-items: center; gap: .8rem; padding: .55rem 0; border-bottom: 1px solid #F1ECF6; color: var(--texto); text-decoration: none !important; }
.item-lista:last-child { border-bottom: 0; }
.item-lista span:last-child { display: flex; flex-direction: column; }
.item-lista small { color: var(--cinza); }
a.item-lista:hover strong { color: var(--roxo); }
.data-bloco { min-width: 46px; text-align: center; background: var(--roxo-claro); color: var(--roxo-esc); border-radius: 9px; padding: .25rem .3rem;
  font-size: .72rem; text-transform: uppercase; line-height: 1.15; display: flex; flex-direction: column; }
.data-bloco b { font-size: 1.15rem; }
.data-bloco.grande { min-width: 54px; padding: .4rem; }
.data-bloco.grande b { font-size: 1.45rem; }
.link-acao { font-size: .85rem; font-weight: normal; margin-left: auto; }

.badge { display: inline-block; padding: .12rem .55rem; border-radius: 99px; background: #F0EDF3; color: #4D4556; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.badge.verde { background: var(--verde-claro); }
.badge.vermelho { background: var(--vermelho-claro); }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.chip { padding: .35rem .8rem; border-radius: 99px; background: #fff; border: 1px solid var(--roxo-borda); color: var(--roxo-esc); font-size: .88rem; }
.chip.ativo { background: var(--roxo); color: #fff; border-color: var(--roxo); }
.abas-chip { display: flex; gap: .4rem; flex-wrap: nowrap; overflow-x: auto; padding-bottom: .5rem; margin-bottom: .5rem; }
.abas-chip .chip { white-space: nowrap; }

/* ---------- alertas e avisos ---------- */
.alerta { border-radius: 10px; padding: .8rem 1rem; margin-bottom: 1rem; background: var(--alerta-claro); color: var(--alerta); }
.alerta.erro { background: var(--vermelho-claro); color: var(--vermelho); }
.alerta.senha { background: #fff; border: 2px solid var(--dourado); color: var(--texto); }
.alerta.senha p { margin: .4rem 0; }
.avisos { position: fixed; z-index: 50; right: 1rem; bottom: 1rem; display: flex; flex-direction: column; gap: .5rem; max-width: min(420px, calc(100vw - 2rem)); }
.aviso { background: var(--roxo-esc); color: #fff; padding: .75rem 1rem; border-radius: 10px; box-shadow: 0 6px 20px rgba(0,0,0,.18); animation: entra .25s ease-out; }
.aviso-erro { background: var(--vermelho); }
.aviso-alerta { background: #8A5A00; }
@keyframes entra { from { transform: translateY(10px); opacity: 0; } }
.portal .avisos { bottom: calc(76px + env(safe-area-inset-bottom)); left: 1rem; right: 1rem; max-width: none; }

/* ---------- tabelas ---------- */
.tabela { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tabela th { text-align: left; font-size: .76rem; text-transform: uppercase; letter-spacing: .03em; color: var(--cinza); font-weight: 600;
  padding: .6rem .8rem; border-bottom: 1px solid var(--roxo-borda); background: #FBF9FD; }
.tabela td { padding: .6rem .8rem; border-bottom: 1px solid #F3EFF7; vertical-align: top; }
.tabela tr:last-child td { border-bottom: 0; }
.tabela tbody tr:hover { background: #FCFAFE; }
.tabela .c { text-align: center; }
.tabela .d { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela tr.apagado td { color: #9A93A3; }
.tabela tr.futuro td:first-child strong { color: var(--roxo); }
.tabela tr.clicavel { cursor: pointer; }
.tabela.compacta td { padding: .35rem .8rem; font-size: .84rem; }
.acoes-linha { white-space: nowrap; text-align: right; }
.acoes-linha > * { margin-left: .6rem; }
small.bloco { display: block; color: var(--cinza); }
@media (max-width: 700px) {
  .oc-m { display: none; }
  .tabela th, .tabela td { padding: .55rem .55rem; }
  .acoes-linha { white-space: normal; }
  .cabecalho .acoes .btn { flex: 1 1 auto; }
  .filtros select { flex: 1 1 140px; }
}

/* ---------- formulários ---------- */
input, select, textarea { font: inherit; color: var(--texto); }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  width: 100%; padding: .55rem .7rem; border: 1px solid #D9D0E3; border-radius: 9px; background: #fff; min-height: 42px; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(91, 44, 131, .25); border-color: var(--roxo); }
textarea { resize: vertical; }
.grade-campos { display: grid; grid-template-columns: 1fr; gap: .8rem 1rem; }
@media (min-width: 700px) { .grade-campos { grid-template-columns: 1fr 1fr; } .campo.largo { grid-column: 1 / -1; } }
.campo { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .2rem; }
.rotulo { font-size: .86rem; font-weight: 600; color: #4A4253; }
.obrig { color: var(--vermelho); }
.ajuda { color: var(--cinza); font-size: .8rem; }
.campo-check { flex-direction: row; align-items: center; gap: .5rem; cursor: pointer; }
.campo-check input { width: 18px; height: 18px; accent-color: var(--roxo); }
.campo-check.inline { display: inline-flex; }
.formulario { max-width: 900px; }
.secao { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--roxo); margin: 1.2rem 0 .6rem; padding-top: .9rem; border-top: 1px solid #F1ECF6; }
.formulario .secao:first-of-type, .formulario h2 + .secao { border-top: 0; padding-top: 0; }
.rodape-form { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1.2rem; flex-wrap: wrap; }
.intro { color: var(--cinza); max-width: 760px; }
.filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; align-items: center; }
.filtros select, .filtros input { width: auto; min-width: 140px; flex: 0 1 auto; }
.filtros input[type=search] { flex: 1 1 200px; }
.filtros input.ano { width: 96px; min-width: 0; }
.ano-atual { font-size: 1.1rem; padding: 0 .5rem; color: var(--roxo-esc); }
.linha-campos { display: flex; gap: .6rem; flex-wrap: wrap; margin: .6rem 0 .9rem; }
.linha-campos label { display: flex; flex-direction: column; gap: .2rem; font-size: .85rem; font-weight: 600; flex: 1 1 150px; }
.barra-lote { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; border: 2px solid var(--roxo-borda); }
@media (min-width: 700px) { .barra-lote { position: sticky; bottom: .5rem; } }
.barra-lote label { display: flex; align-items: center; gap: .35rem; font-size: .88rem; }
.barra-lote input[type=date], .barra-lote select { width: auto; }

/* quadro de oficiais */
.quadro { display: grid; grid-template-columns: 1fr; gap: .1rem 1.5rem; }
@media (min-width: 900px) { .quadro { grid-template-columns: 1fr 1fr; } }
.quadro-linha { display: grid; grid-template-columns: 1fr 1.3fr; gap: .6rem; align-items: center; padding: .35rem 0; border-bottom: 1px solid #F3EFF7; }
.quadro-linha small { color: var(--dourado); font-weight: 600; font-size: .72rem; text-transform: uppercase; }
.quadro-linha.eletivo span { font-weight: 600; }

/* presença */
.presenca-linha { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid #F3EFF7; flex-wrap: wrap; }
.presenca-linha small { display: block; color: var(--cinza); }
.opcoes-presenca { display: flex; gap: .3rem; }
.op input { position: absolute; opacity: 0; pointer-events: none; }
.op span { display: inline-block; padding: .4rem .7rem; border-radius: 8px; border: 1px solid #DDD5E6; cursor: pointer; font-size: .85rem; user-select: none; }
.op input:checked + span { color: #fff; border-color: transparent; }
.op-presente input:checked + span { background: var(--verde); }
.op-ausente input:checked + span { background: var(--vermelho); }
.op-justificada input:checked + span { background: #7A6F86; }
.op input:focus-visible + span { outline: 2px solid var(--roxo); }

dl.dados { display: grid; grid-template-columns: 130px 1fr; gap: .45rem .8rem; margin: 0; }
dl.dados dt { color: var(--cinza); font-size: .85rem; }
dl.dados dd { margin: 0; }
.lista-cartoes .info h2 { margin-bottom: .1rem; }
.resumo { color: #4A4253; margin: .6rem 0 0; }
.recibo-previa { max-width: 760px; border: 2px solid var(--roxo-borda); }
.recibo-topo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .6rem; }
.recibo-topo small { color: var(--dourado); font-weight: 700; letter-spacing: .05em; display: block; }
.recibo-topo strong { font-size: 1.2rem; color: var(--roxo-esc); }
.recibo-valor { font-size: 1.3rem; font-weight: 700; border: 2px solid var(--roxo); border-radius: 9px; padding: .3rem .9rem; color: var(--roxo-esc); }

/* ---------- layout gestão ---------- */
.gestao { padding-top: 56px; }
.topo-gestao { position: fixed; top: 0; left: 0; right: 0; height: 56px; background: var(--roxo-esc); color: #fff; display: flex; align-items: center; gap: .6rem; padding: 0 .8rem; z-index: 30; }
.topo-gestao .marca { color: #fff; display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.topo-gestao .marca img { width: 32px; height: 32px; border-radius: 8px; }
.topo-gestao small { opacity: .75; font-weight: normal; }
.menu-btn { background: none; border: 0; color: #fff; font-size: 1.5rem; width: 44px; height: 44px; cursor: pointer; }
.lateral { position: fixed; top: 0; bottom: 0; left: 0; width: 260px; background: var(--roxo-esc); color: #E6DCF0; display: flex; flex-direction: column;
  z-index: 40; transform: translateX(-100%); transition: transform .2s ease; overflow-y: auto; }
.menu-aberto .lateral { transform: none; }
.veu { display: none; }
.menu-aberto .veu { display: block; position: fixed; inset: 0; background: rgba(20, 10, 30, .45); z-index: 35; }
.lateral-marca { display: flex; gap: .7rem; padding: 1.1rem 1rem 1rem; align-items: center; }
.lateral-marca img { width: 44px; height: 44px; border-radius: 10px; }
.lateral-marca small { display: block; color: var(--dourado); font-weight: 700; font-size: .68rem; letter-spacing: .08em; }
.lateral-marca strong { display: block; color: #fff; line-height: 1.2; }
.lateral-marca span { font-size: .78rem; opacity: .75; }
.lateral nav { display: flex; flex-direction: column; padding: .3rem 0; }
.lateral nav a { color: #E6DCF0; padding: .62rem 1.2rem; border-left: 3px solid transparent; text-decoration: none; }
.lateral nav a:hover { background: rgba(255, 255, 255, .06); }
.lateral nav a.ativo { background: var(--roxo); color: #fff; border-left-color: var(--dourado); font-weight: 600; }
.lateral-rodape { margin-top: auto; padding: 1rem 1.2rem 1.3rem; font-size: .85rem; }
.lateral-rodape div { color: #fff; margin-bottom: .3rem; }
.lateral-rodape small { display: block; color: #CDBBE0; }
.lateral-rodape a { color: var(--dourado); }
.conteudo { padding: 1.1rem 1rem 3rem; max-width: 1280px; }
.cabecalho { display: flex; justify-content: space-between; align-items: flex-end; gap: .8rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.cabecalho .acoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.voltar { display: inline-block; font-size: .88rem; margin-bottom: .3rem; }
@media (min-width: 1000px) {
  .gestao { padding-top: 0; padding-left: 260px; }
  .topo-gestao, .menu-btn, .veu { display: none !important; }
  .lateral { transform: none; }
  .conteudo { padding: 1.6rem 2rem 3rem; }
}

/* ---------- login ---------- */
.tela-centro { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem;
  background: radial-gradient(circle at 20% 0%, #6E3A9A 0, var(--roxo-esc) 55%, #2A1240 100%); }
.caixa-login { width: 100%; max-width: 400px; padding: 1.6rem; }
.login-topo { text-align: center; margin-bottom: 1.2rem; }
.login-topo img { border-radius: 16px; }
.login-topo small { display: block; color: var(--dourado); font-weight: 700; letter-spacing: .08em; font-size: .7rem; margin-top: .6rem; }
.login-topo h1 { font-size: 1.3rem; margin-top: .2rem; }
.login-topo p { color: var(--cinza); margin: .3rem 0 0; }
.caixa-login .campo { margin-bottom: .8rem; }
.caixa-login .btn.largo { margin-top: .4rem; min-height: 46px; }

/* ---------- app das famílias ---------- */
.portal { padding-bottom: calc(72px + env(safe-area-inset-bottom)); background: #F6F2FA; }
.topo-app { position: sticky; top: 0; z-index: 20; background: var(--roxo-esc); color: #fff; display: flex; justify-content: space-between; align-items: center;
  padding: calc(.6rem + env(safe-area-inset-top)) 1rem .6rem; }
.topo-app-marca { display: flex; gap: .6rem; align-items: center; }
.topo-app-marca img { width: 36px; height: 36px; border-radius: 9px; }
.topo-app-marca small { display: block; color: var(--dourado); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.topo-app-marca strong { font-size: .98rem; }
.avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--dourado); color: var(--roxo-esc); display: flex; align-items: center; justify-content: center;
  font-weight: 700; text-decoration: none !important; }
.conteudo-app { padding: 1rem; max-width: 640px; margin: 0 auto; }
.ola { padding: .4rem .2rem .9rem; }
.ola h1 { font-size: 1.45rem; }
.ola p { color: var(--cinza); margin: .25rem 0 0; }
.titulo-app { margin: .3rem .2rem 1rem; }
.titulo-secao { margin: 1.4rem .2rem .6rem; font-size: 1rem; display: flex; justify-content: space-between; align-items: baseline; }
.titulo-secao a { font-size: .85rem; font-weight: normal; }
.nav-app { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; border-top: 1px solid var(--roxo-borda); display: grid; grid-template-columns: repeat(5, 1fr);
  padding-bottom: env(safe-area-inset-bottom); z-index: 20; }
.nav-app a { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: .5rem 0 .55rem; color: var(--cinza); font-size: .7rem; text-decoration: none !important; }
.nav-app a .ic { font-size: 1.25rem; line-height: 1.2; }
.nav-app a.ativo { color: var(--roxo); font-weight: 700; }
.portal .cartao { border-radius: 16px; }
.filha-resumo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--texto); text-decoration: none !important; }
.filha-resumo small, .alerta-app small, .ok-app small, .evento small, .info-app small, .freq-topo small, .pix small { display: block; color: var(--cinza); }
.anel { --p: 0; width: 58px; height: 58px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: conic-gradient(var(--verde) calc(var(--p) * 1%), #ECE6F1 0); }
.anel.baixo { background: conic-gradient(var(--vermelho) calc(var(--p) * 1%), #ECE6F1 0); }
.anel span { width: 46px; height: 46px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 700; font-size: .85rem; }
.anel.grande { width: 92px; height: 92px; }
.anel.grande span { width: 74px; height: 74px; font-size: 1.2rem; }
.alerta-app { display: flex; justify-content: space-between; align-items: center; background: var(--alerta-claro); border-color: #F4E2B6; color: var(--texto); text-decoration: none !important; }
.alerta-app.vencido { background: var(--vermelho-claro); border-color: #F5CFCF; }
.alerta-app strong { font-size: 1.1rem; }
.alerta-app .seta { font-size: 1.6rem; color: var(--cinza); }
.ok-app { background: var(--verde-claro); border-color: #CFE8D1; }
.evento { display: flex; gap: .9rem; align-items: flex-start; }
.evento strong { display: block; }
.evento .detalhe { margin: .4rem 0 0; font-size: .9rem; color: #4A4253; }
.info-app { display: block; color: var(--texto); text-decoration: none !important; }
.info-app p { margin: .4rem 0 0; color: #4A4253; font-size: .92rem; }
.segmentado { display: flex; background: #EAE3F1; border-radius: 12px; padding: 4px; margin-bottom: 1rem; gap: 4px; overflow-x: auto; }
.segmentado a, .segmentado span { flex: 1; text-align: center; padding: .5rem .6rem; border-radius: 9px; color: var(--roxo-esc); font-weight: 600; font-size: .9rem; white-space: nowrap; text-decoration: none !important; }
.segmentado a.ativo { background: #fff; box-shadow: var(--sombra); }
.segmentado.pequeno { background: none; }
.segmentado.pequeno a { font-weight: normal; }
.freq-topo { display: flex; gap: 1rem; align-items: center; }
.linha-app { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .8rem 1rem; border-bottom: 1px solid #F1ECF6; }
.linha-app:last-child { border-bottom: 0; }
.linha-app small { display: block; color: var(--cinza); }
.linha-app-dir { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }
.pix-chave { display: flex; gap: .5rem; align-items: center; margin: .5rem 0; }
.pix-chave code { flex: 1; padding: .55rem .7rem; overflow-wrap: anywhere; }
.artigo h1 { font-size: 1.35rem; }
.texto-info { margin: 1rem 0; font-size: 1rem; line-height: 1.6; }
.lista-links a { display: flex; justify-content: space-between; padding: .85rem .2rem; border-bottom: 1px solid #F1ECF6; color: var(--texto); }
.lista-links a:last-child { border-bottom: 0; }
.lista-links a.perigo { color: var(--vermelho); }
.instalar { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; border: 2px dashed var(--roxo-borda); margin-top: 1.4rem; }
.instalar small { color: var(--cinza); }

@media print {
  .lateral, .topo-gestao, .acoes, .filtros, .barra-lote, .nav-app, .topo-app, .avisos { display: none !important; }
  .gestao { padding: 0; }
}

/* ---------- v2.1: fotos, confirmações, jornada, galeria ---------- */
.foto-perfil { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; background: var(--roxo-claro); }
.foto-perfil.mini { width: 30px; height: 30px; font-size: .7rem; }
.foto-perfil.grande { width: 76px; height: 76px; font-size: 1.5rem; border: 3px solid #fff; box-shadow: var(--sombra); }
.foto-perfil.iniciais { display: inline-flex; align-items: center; justify-content: center; color: var(--roxo-esc); font-weight: 700; text-transform: uppercase; }
.nome-foto { display: inline-flex; align-items: center; gap: .55rem; }
.h1-foto { display: inline-flex; align-items: center; gap: .8rem; }
.form-foto { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: 1rem; padding-top: .8rem; border-top: 1px solid #F1ECF6; }
.form-foto input[type=file] { width: auto; flex: 1 1 200px; min-height: 0; }
.contador { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 99px; background: var(--dourado); color: var(--roxo-esc); font-size: .74rem; font-weight: 700; text-align: center; margin-left: .3rem; }
.pendencias { display: grid; gap: .6rem; margin-bottom: 1rem; }
.pendencias .cartao.alerta { margin: 0; display: block; color: var(--alerta); }
.conf { display: block; margin-top: .15rem; }
.conf-sim { color: var(--verde) !important; }
.conf-nao { color: var(--vermelho) !important; }
.apagado-txt { color: #9A93A3; }
.linha-check { display: flex; gap: .6rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid #F3EFF7; cursor: pointer; }
.linha-check input { width: 20px; height: 20px; accent-color: var(--roxo); flex: none; }
.linha-check small { color: var(--cinza); }
.comprovante form { margin-top: .4rem; }
.comprovante .linha-campos input { flex: 1 1 260px; }
.grade-albuns { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .8rem; }
.album-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); color: var(--texto); text-decoration: none !important; border: 1px solid #EEE8F4; }
.album-card img, .album-vazio { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--roxo-claro); display: grid; place-items: center; font-size: 2rem; }
.album-card span { padding: .55rem .7rem; display: flex; flex-direction: column; }
.album-card small { color: var(--cinza); }
.album-card.apagado { opacity: .6; }
.grade-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 4px; margin: .8rem 0; }
.grade-fotos img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; border-radius: 4px; }
.foto-item { position: relative; }
.foto-excluir { position: absolute; top: 4px; right: 4px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; }
.lightbox { position: fixed; inset: 0; background: rgba(10, 5, 15, .92); z-index: 60; display: flex; align-items: center; justify-content: center; }
.lightbox img { max-width: 96vw; max-height: 86vh; border-radius: 6px; }
.lightbox button { position: absolute; background: rgba(255,255,255,.15); color: #fff; border: 0; font-size: 1.6rem; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; }
.lightbox .fechar { top: 14px; right: 14px; }
.lightbox .ant { left: 10px; top: 50%; } .lightbox .prox { right: 10px; top: 50%; }

/* app */
.filha-resumo-id { display: flex; gap: .8rem; align-items: center; color: var(--texto); text-decoration: none !important; flex: 1; min-width: 0; }
.link-mini { color: var(--roxo) !important; font-weight: 600; }
.aniversario { display: flex; gap: .8rem; align-items: center; background: linear-gradient(120deg, #FFF4DB, #F7E8FF); border-color: #F0DDB0; }
.aniversario .confete { font-size: 2rem; }
.aniversario small { display: block; color: #6B5A2A; }
.alerta-app.confirmar { background: var(--roxo-claro); border-color: var(--roxo-borda); }
.aniv-mes { gap: .4rem; }
.atalhos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin-top: 1.2rem; }
.atalho { display: flex; flex-direction: column; align-items: center; gap: .2rem; padding: .9rem .4rem; margin: 0; color: var(--roxo-esc); font-weight: 600; font-size: .85rem; text-decoration: none !important; }
.atalho span { font-size: 1.5rem; }
.push-convite { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; border: 2px solid var(--roxo-borda); margin-top: 1.2rem; }
.push-convite small { color: var(--cinza); }
.evento-corpo { flex: 1; min-width: 0; }
.inscricao-info { margin-top: .45rem; font-size: .88rem; color: #4A4253; }
.rsvp { margin-top: .6rem; display: flex; flex-direction: column; gap: .45rem; }
.rsvp-linha { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.rsvp-nome { font-weight: 600; font-size: .88rem; min-width: 52px; }
.rsvp-form { display: flex; gap: .4rem; flex-wrap: wrap; align-items: flex-start; margin: 0; }
.nao-vou summary { list-style: none; }
.nao-vou summary::-webkit-details-marker { display: none; }
.nao-vou[open] { flex-basis: 100%; display: flex; flex-direction: column; gap: .4rem; }
.nao-vou[open] summary { display: none; }
.add-agenda { margin-top: .5rem; font-size: .8rem; }
.perfil-topo, .jornada-topo { display: flex; gap: .9rem; align-items: center; }
.perfil-topo small, .jornada-topo small { display: block; color: var(--cinza); }
.lista-links a span:first-child { display: inline-flex; gap: .4rem; }
.conquistas { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: 1rem; }
.conquista { background: #fff; border-radius: 14px; padding: .7rem .3rem; text-align: center; box-shadow: var(--sombra); border: 1px solid #EEE8F4; }
.conquista b { display: block; font-size: 1.4rem; color: var(--roxo-esc); }
.conquista span { font-size: .7rem; color: var(--cinza); }
.selo-rainha { display: flex; gap: .7rem; align-items: center; font-size: 1.8rem; background: linear-gradient(120deg, #3E1D5C, #6E3A9A); color: #fff; border: 0; }
.selo-rainha strong { display: block; font-size: 1rem; color: var(--dourado); }
.selo-rainha small { display: block; font-size: .8rem; color: #E6DCF0; }
.linha-tempo { list-style: none; margin: 0; padding: 0 0 0 .4rem; position: relative; }
.linha-tempo::before { content: ""; position: absolute; left: 22px; top: 6px; bottom: 6px; width: 2px; background: var(--roxo-borda); }
.marco { display: flex; gap: .7rem; align-items: flex-start; position: relative; }
.marco .medalha { width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 2px solid var(--roxo-borda); display: grid; place-items: center; flex: none; z-index: 1; font-size: 1.05rem; }
.marco.eletivo .medalha { border-color: var(--dourado); }
.marco.rainha .medalha { background: var(--roxo-esc); border-color: var(--dourado); }
.marco .cartao { flex: 1; margin-bottom: .7rem; }
.marco .cartao small { display: block; color: var(--cinza); }
.eletivo-tag { color: var(--dourado) !important; font-weight: 700; text-transform: uppercase; font-size: .68rem !important; letter-spacing: .05em; }
.galeria-rainhas { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
.rainha-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .3rem; margin: 0; }
.rainha-card small { color: var(--cinza); }
.topo-app-marca { color: #fff; text-decoration: none !important; }
a.evento { color: var(--texto); text-decoration: none !important; }
a.evento strong { color: var(--roxo-esc); }
.autoriza-linha { display: flex; justify-content: space-between; align-items: center; gap: .8rem; }
.autoriza-linha small { display: block; color: var(--cinza); }

/* ---------- v2.2: quiz, atas, certificados, contabilidade ---------- */
.quiz-convite { display: flex; align-items: center; gap: .8rem; background: linear-gradient(120deg, #EFE7F6, #FFF4DB); color: var(--texto); text-decoration: none !important; }
.quiz-convite .quiz-ic { font-size: 2rem; }
.quiz-convite small { display: block; color: var(--cinza); }
.quiz-convite .seta { margin-left: auto; font-size: 1.6rem; color: var(--cinza); }
.quiz-destaque { display: flex; flex-direction: column; gap: .5rem; }
.quiz-destaque strong { font-size: 1.15rem; color: var(--roxo-esc); }
.quiz-destaque small { color: var(--cinza); }
.quiz-progresso { height: 8px; background: #E6DDF0; border-radius: 99px; overflow: hidden; margin: .3rem 0 .4rem; }
.quiz-progresso span { display: block; height: 100%; background: linear-gradient(90deg, var(--roxo), var(--dourado)); }
.quiz-pergunta { padding: 1.4rem 1.2rem; border-width: 2px; }
.quiz-pergunta .afirmacao { font-size: 1.2rem; line-height: 1.5; font-weight: 600; color: var(--roxo-esc); margin: 0 0 1.2rem; }
.quiz-pergunta.acertou { border-color: #9ED3A2; background: #F4FBF4; }
.quiz-pergunta.errou { border-color: #F0B4B4; background: #FFF7F7; }
.quiz-botoes { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.quiz-botoes .btn { min-height: 64px; font-size: 1.05rem; }
.quiz-v { border-color: #9ED3A2; color: var(--verde); } .quiz-v:hover { background: var(--verde-claro); }
.quiz-f { border-color: #F0B4B4; color: var(--vermelho); } .quiz-f:hover { background: var(--vermelho-claro); }
.quiz-veredito { font-size: 1.35rem; font-weight: 700; margin-bottom: .3rem; }
.quiz-explicacao { background: #fff; border-left: 4px solid var(--dourado); padding: .7rem .9rem; border-radius: 8px; margin: .8rem 0 1rem; line-height: 1.5; }
.quiz-final { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem; }
.quiz-final strong { font-size: 1.3rem; color: var(--roxo-esc); }
.quiz-final small { color: var(--cinza); }
.revisao { border-left: 4px solid var(--roxo-borda); }
.revisao.acertou { border-left-color: var(--verde); } .revisao.errou { border-left-color: var(--vermelho); }
.revisao small { display: block; color: var(--cinza); margin-top: .2rem; }
.revisao p { margin: .5rem 0 0; font-size: .92rem; }
.ranking-cols { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.rank-linha { display: flex; gap: .5rem; align-items: center; padding: .35rem 0; border-bottom: 1px solid #F1ECF6; font-size: .92rem; }
.rank-linha b { width: 26px; color: var(--dourado); }
.rank-linha small { margin-left: auto; color: var(--cinza); }
.rank-linha.eu { background: var(--roxo-claro); border-radius: 6px; padding-left: .3rem; }
.lista-perguntas { padding-left: 1.2rem; margin: .4rem 0; } .lista-perguntas li { margin-bottom: .35rem; }
.lista-perguntas small { color: var(--cinza); }
.form-premio { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; margin-top: .6rem; }
.form-premio label { display: flex; flex-direction: column; font-size: .82rem; font-weight: 600; gap: .2rem; }
.form-premio label.campo-check { flex-direction: row; font-weight: normal; }
.form-premio input[name=premio] { min-width: 220px; }
.ok-txt { color: var(--verde); margin: .5rem 0 0; }
.destaque-linha td { background: #FFF8E6; font-weight: 600; }
.paginacao { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .8rem; }
.mb { margin-bottom: .8rem; } .mt-p { margin-top: .5rem; }
.ata-texto .pre { line-height: 1.65; }
.passos { padding-left: 1.2rem; margin: 0; line-height: 1.6; }
.item-extrato .sugestoes { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0; }
.item-extrato .sugestoes .chip { cursor: pointer; background: var(--verde-claro); border-color: #CFE8D1; }
.item-extrato .linha-campos { margin: .4rem 0 0; }
.item-extrato .linha-campos select, .item-extrato .linha-campos input { flex: 1 1 200px; width: auto; }
.campo-orc { max-width: 130px; text-align: right; min-height: 34px !important; padding: .3rem .5rem !important; }
.barra-orc { height: 8px; background: #EEE8F4; border-radius: 99px; overflow: hidden; width: 120px; display: inline-block; vertical-align: middle; margin-right: .4rem; }
.barra-orc span { display: block; height: 100%; background: var(--roxo); }
.barra-orc.estouro span { background: var(--vermelho); }
.grupo-menu { display: block; padding: .9rem 1.2rem .25rem; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dourado); opacity: .85; }
.lateral nav a { padding-top: .45rem; padding-bottom: .45rem; }
.tabela .foto-perfil.mini { vertical-align: middle; margin-right: .35rem; display: inline-flex; }
.logo-login { width: 150px; height: auto; display: block; margin: 0 auto; }
.lateral-marca img, .topo-gestao .marca img, .topo-app-marca img { background: #fff; }
.logo-config { max-width: 180px; max-height: 160px; background: #fff; border: 1px solid #EEE8F4; border-radius: 10px; padding: 8px; }
.encerrar input[type=date] { width: auto; min-height: 30px; padding: .15rem .4rem; font-size: .82rem; }
.marco .linha-botoes { margin-top: .4rem; align-items: center; font-size: .85rem; }
.temas-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .5rem; margin-top: .6rem; }
.tema-op { border: 1px solid #EEE8F4; border-radius: 9px; padding: .5rem .6rem; align-items: flex-start; }
.tema-op small { display: block; color: var(--cinza); }
.tema-op.vazio-tema { border-style: dashed; }

/* ---------- eventos e festivais ---------- */
.cinza { color: var(--cinza); }
.alerta-txt { color: var(--alerta) !important; }
.badge.amarelo { background: var(--alerta-claro); color: var(--alerta); }
.badge.azul { background: #E5EEFB; color: #1F4E8C; }
.ev-cab { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.ev-cab .sub { margin: .2rem 0 0; }
.ev-cab-acoes { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.form-status select { min-height: 40px; border-radius: 9px; border: 1px solid var(--roxo-borda); padding: 0 .6rem; font: inherit; font-weight: 600; color: var(--roxo-esc); background: #fff; }
.tabela-edit input, .tabela-edit select { width: 100%; min-width: 120px; padding: .35rem .5rem; border: 1px solid var(--roxo-borda); border-radius: 7px; font: inherit; background: #fff; }
.tabela-edit input:disabled, .tabela-edit select:disabled { background: transparent; border-color: transparent; color: var(--texto); }
.tabela-edit input[type=checkbox] { width: 18px; height: 18px; min-width: 0; accent-color: var(--roxo); }
.tabela-edit td { vertical-align: middle; }
.tabela-edit tr.nova td { background: #FCFAFE; }
.tabela-edit tfoot td, .tabela tfoot td { font-weight: 700; background: #FAF7FC; border-top: 2px solid var(--roxo-borda); padding: .6rem .8rem; }
input.curto { min-width: 90px !important; max-width: 120px; }
input.mini, select.mini { min-width: 64px !important; max-width: 84px; }
.tabela-edit input.num { text-align: right; }
.rolagem-x { overflow-x: auto; }
.ficha th small { font-weight: 400; text-transform: none; }
.sugerido { display: inline-flex; gap: .3rem; align-items: center; font-weight: 600; cursor: pointer; }
.sugerido.abaixo { color: var(--vermelho); }
.pad-b { padding: 0 1.1rem 1rem; align-items: center; }
.rodape-form.pad-b small { flex: 1 1 260px; }
.ajuda-ev summary { cursor: pointer; }
.ajuda-ev .passos { margin-top: .6rem; }
details.cartao > summary { cursor: pointer; list-style: none; }
details.cartao > summary::-webkit-details-marker { display: none; }
details.cartao > summary h2 { margin: 0; }
details.cartao > summary h2::after { content: "▾"; margin-left: auto; color: var(--cinza); font-size: .9rem; }
details.cartao[open] > summary { margin-bottom: .6rem; }
.grade-campos.g2 { margin: .4rem 0 1rem; }
.linha-campos { display: flex; gap: .8rem; flex-wrap: wrap; margin: .6rem 0; }
.linha-campos .campo { flex: 1 1 140px; }
.indicadores { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .7rem; }
.indicador { border: 1px solid #EEE8F4; border-left: 5px solid var(--roxo-borda); border-radius: 10px; padding: .7rem .8rem; display: flex; flex-direction: column; gap: .1rem; }
.indicador small { color: var(--cinza); }
.indicador strong { font-size: 1.3rem; color: var(--roxo-esc); }
.indicador span { color: var(--cinza); font-size: .82rem; }
.indicador.verde { border-left-color: var(--verde); }
.indicador.amarelo { border-left-color: var(--dourado); }
.indicador.vermelho { border-left-color: var(--vermelho); }
.indicador.vermelho strong { color: var(--vermelho); }
.indicador.verde strong { color: var(--verde); }
.barra-meta { height: 8px; background: #EEE8F4; border-radius: 99px; overflow: hidden; margin: .35rem 0 .15rem; }
.barra-meta span { display: block; height: 100%; background: var(--dourado); }
.barra-meta.grande { height: 14px; }
.card.destaque .barra-meta { background: rgba(255,255,255,.2); }
.barras-ev { display: flex; flex-direction: column; gap: .5rem; }
.barra-ev { display: grid; grid-template-columns: minmax(120px, 230px) 1fr auto; gap: .7rem; align-items: center; }
.barra-ev .rot { font-size: .88rem; } .barra-ev .rot small { display: block; color: var(--cinza); }
.barra-ev .trilho { height: 14px; background: #F3EFF7; border-radius: 99px; overflow: hidden; }
.barra-ev .trilho span { display: block; height: 100%; background: var(--roxo); border-radius: 99px; }
.barra-ev .trilho span.neg { background: var(--vermelho); }
.licoes { margin: .3rem 0 0; padding-left: 1.2rem; line-height: 1.6; }
.checklist { list-style: none; padding: 0; margin: .6rem 0 1rem; }
.checklist li { padding: .4rem 0; border-bottom: 1px solid #F3EFF7; }
.checklist li.bloqueia { color: var(--vermelho); }
.checklist li.aviso { color: var(--alerta); }
.destaque-linha td { background: var(--roxo-claro); }
.pendencias-ev { display: flex; flex-direction: column; gap: .35rem; border-left: 5px solid var(--dourado); }
.alerta-ev { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; background: var(--alerta-claro); border-color: #F2E2B8; }
.vazio-grande { max-width: 760px; }
.vazio-grande .passos { margin: .6rem 0 1rem; }
.form-recusar input { padding: .3rem .5rem; border: 1px solid var(--roxo-borda); border-radius: 7px; font: inherit; width: 150px; }
.anexar { margin: 0; }
.anexar label { cursor: pointer; }
@media (max-width: 700px) { .barra-ev { grid-template-columns: 1fr auto; } .barra-ev .trilho { grid-column: 1 / -1; grid-row: 2; } }

/* app: eventos */
.ev-app-prod { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid #F3EFF7; }
.ev-app-prod:last-child { border-bottom: 0; }
.ev-app-prod input { width: 76px !important; flex: none; text-align: center; padding: .45rem; border: 1px solid var(--roxo-borda); border-radius: 9px; font: inherit; font-size: 1rem; }
.ev-app-total { font-size: 1.15rem; font-weight: 700; color: var(--roxo-esc); text-align: right; margin: .6rem 0; }
.meta-app { display: flex; justify-content: space-between; font-size: .9rem; color: var(--cinza); }

.tabela-edit td:first-child input { min-width: 210px; }
.tabela-edit td small { line-height: 1.3; }
.tabela-edit td:nth-child(7) small { display: block; max-width: 240px; }

/* ---------- carteirinhas ---------- */
.lote-cart { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: center; border-left: 5px solid var(--verde); }
.nome-foto { display: inline-flex; align-items: center; gap: .4rem; }
.cart-dig { margin-bottom: 1.4rem; }
.cart-frente { position: relative; aspect-ratio: 85.6 / 53.98; width: 100%; max-width: 460px; margin: 0 auto .8rem; background: #fff; border-radius: 14px;
  box-shadow: 0 6px 22px rgba(62, 29, 92, .18); overflow: hidden; display: flex; flex-direction: column; border: 1px solid #EEE8F4; font-size: clamp(9px, 2.6vw, 13px); }
.cart-topo { display: flex; gap: .6em; align-items: center; padding: .7em .9em .5em; border-bottom: 2px solid var(--dourado); margin: 0 .5em; }
.cart-topo img { height: 2.9em; }
.cart-topo small { color: #B8901A; font-weight: 700; font-size: .72em; letter-spacing: .02em; display: block; }
.cart-topo strong { color: var(--roxo-esc); font-size: 1.05em; display: block; line-height: 1.15; }
.cart-topo span { color: var(--cinza); font-size: .78em; }
.cart-corpo { flex: 1; display: flex; gap: .9em; padding: .7em .9em; align-items: flex-start; }
.cart-foto { width: 27%; aspect-ratio: 22 / 27.5; object-fit: cover; border-radius: 6px; border: 1.5px solid var(--dourado); background: var(--roxo-claro); flex: none; }
.cart-foto.iniciais { display: flex; align-items: center; justify-content: center; font-size: 2.4em; font-weight: 700; color: var(--roxo); }
.cart-dados { flex: 1; min-width: 0; }
.cart-nome { display: block; color: var(--roxo-esc); font-size: 1.12em; line-height: 1.15; }
.cart-cat { display: inline-block; background: var(--roxo); color: #fff; border-radius: 99px; padding: .15em .8em; font-size: .72em; font-weight: 700; margin: .35em 0 .2em; }
.cart-dados dl { display: grid; grid-template-columns: 1fr 1fr; gap: .25em .6em; margin: .2em 0 0; }
.cart-dados dt { color: var(--cinza); font-size: .66em; text-transform: uppercase; }
.cart-dados dd { margin: 0; font-weight: 700; font-size: .9em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cart-rodape { background: var(--roxo-esc); border-top: 2px solid var(--dourado); color: #fff; font-size: .7em; padding: .45em .9em; display: flex; justify-content: space-between; }
.cart-qr { display: flex; gap: 1rem; align-items: center; max-width: 460px; margin: 0 auto; }
.cart-qr .qr { width: 132px; flex: none; background: #fff; padding: 4px; }
.cart-qr .qr svg { width: 100%; height: auto; display: block; }
.cart-qr .sub { margin: .4rem 0; }
.form-recusar { display: inline-flex !important; gap: .4rem; align-items: center; }
.form-recusar input { width: 170px !important; min-width: 0; }

/* ---------- bottons ---------- */
.grade-bottons { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .9rem; margin-bottom: 1rem; }
.bot-item { background: #fff; border: 1px solid #EEE8F4; border-radius: var(--raio); padding: .8rem .6rem; display: flex; flex-direction: column; align-items: center; gap: .3rem; text-align: center; cursor: pointer; box-shadow: var(--sombra); }
.bot-item img { width: 120px; height: 120px; border-radius: 50%; box-shadow: 0 3px 10px rgba(62, 29, 92, .25); }
.bot-item span { font-weight: 600; font-size: .86rem; color: var(--roxo-esc); }
.bot-item small { color: var(--cinza); }
.grade-icones { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .7rem; margin: .6rem 0; }
.icone-cargo { display: flex; gap: .7rem; align-items: center; border: 1px solid #EEE8F4; border-radius: 10px; padding: .5rem; }
.icone-cargo img { width: 64px; height: 64px; border-radius: 50%; flex: none; }
.icone-cargo strong { display: block; font-size: .88rem; margin-bottom: .25rem; }
.icone-cargo select { padding: .3rem .4rem; border: 1px solid var(--roxo-borda); border-radius: 7px; font: inherit; }
img.botton-mini { width: 46px !important; height: 46px !important; border-radius: 50%; box-shadow: 0 2px 6px rgba(62, 29, 92, .3); background: none !important; padding: 0 !important; border: 0 !important; }

/* ---------- login cabe na tela (sem rolagem) ---------- */
.tela-login { min-height: 100vh; min-height: 100dvh; padding: clamp(.5rem, 2vh, 1rem); }
.tela-login .caixa-login { padding: clamp(.9rem, 3.2vh, 1.6rem) clamp(1rem, 4vw, 1.6rem); }
.tela-login .login-topo { margin-bottom: clamp(.5rem, 2.2vh, 1.2rem); }
.tela-login .logo-login { width: auto; height: clamp(60px, 19vh, 170px); border-radius: 0; }
.tela-login .login-topo small { margin-top: clamp(.15rem, 1vh, .6rem); }
.tela-login .login-topo h1 { font-size: clamp(1.05rem, 2.6vh, 1.3rem); }
.tela-login .caixa-login .campo { margin-bottom: clamp(.4rem, 1.4vh, .8rem); }
.tela-login .caixa-login .btn.largo { min-height: clamp(40px, 6vh, 46px); }
.tela-login .ajuda { margin: clamp(.4rem, 1.4vh, .9rem) 0 0; }
@media (max-height: 560px) {
  .tela-login .login-topo p, .tela-login .caixa-login > .ajuda { display: none; }
  .tela-login .logo-login { height: 52px; }
}
.tela-login .logo-login { border-radius: 0; }
