/* Traduza Gestão — cores da marca (azul-marinho #0d3358, verde-azulado #009792), tema claro/escuro */
:root {
  --marinho: #0d3358;
  --turquesa: #009792;
  --fundo: #f2f5f8;
  --cartao: #ffffff;
  --cartao-2: #f6f8fb;
  --texto: #0f1f33;
  --suave: #57667a;
  --apagado: #8995a6;
  --borda: #e1e7ee;
  --borda-forte: #c9d3de;
  --primaria: #0d3358;
  --primaria-2: #12436f;
  --primaria-texto: #ffffff;
  --primaria-suave: #e6f4f3;
  --destaque: #00807b;
  --verde: #0f7a55;
  --verde-fundo: #e2f5ec;
  --vermelho: #b8252b;
  --vermelho-fundo: #fdecec;
  --laranja: #94590a;
  --laranja-fundo: #fdf1dc;
  --lateral: linear-gradient(180deg, #0d3358 0%, #0a2843 100%);
  --lateral-texto: #c4d3e3;
  --lateral-ativo: #ffffff;
  --sombra: 0 1px 2px rgba(13, 51, 88, .05), 0 6px 20px rgba(13, 51, 88, .07);
  --sombra-forte: 0 18px 50px rgba(13, 51, 88, .22);
  --raio: 16px;
  --raio-p: 10px;
  --fonte: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --fonte-titulo: "Poppins", var(--fonte);
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #08131f;
    --cartao: #0e1f31;
    --cartao-2: #12273c;
    --texto: #e6eef6;
    --suave: #9fb0c3;
    --apagado: #6f8297;
    --borda: #1c3247;
    --borda-forte: #284159;
    --primaria: #19b3ab;
    --primaria-2: #2cc7be;
    --primaria-texto: #04161f;
    --primaria-suave: #0f2f3a;
    --destaque: #2cc7be;
    --verde: #4fd39a;
    --verde-fundo: #0f2a22;
    --vermelho: #ff8f8f;
    --vermelho-fundo: #351719;
    --laranja: #f2b45c;
    --laranja-fundo: #33240f;
    --lateral: linear-gradient(180deg, #0a2843 0%, #061a2c 100%);
    --sombra: none;
    --sombra-forte: 0 18px 50px rgba(0, 0, 0, .55);
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 14.5px/1.5 var(--fonte); -webkit-font-smoothing: antialiased; }
a { color: var(--destaque); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select, textarea { font: inherit; color: inherit; }
svg.ic { width: 18px; height: 18px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.escondido { display: none !important; }
.num { font-variant-numeric: tabular-nums; }

/* ---------- Botões e campos ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 8px 14px; border: 1px solid var(--borda); border-radius: var(--raio-p);
  background: var(--cartao); cursor: pointer; white-space: nowrap; font-weight: 500;
  transition: background .12s, border-color .12s, transform .06s;
}
.botao:hover { background: var(--cartao-2); border-color: var(--borda-forte); }
.botao:active { transform: translateY(1px); }
.botao.primario { background: var(--primaria); border-color: var(--primaria); color: var(--primaria-texto); }
.botao.primario:hover { background: var(--primaria-2); border-color: var(--primaria-2); }
.botao.perigo { color: var(--vermelho); }
.botao.perigo:hover { background: var(--vermelho-fundo); border-color: var(--vermelho); }
.botao.pequeno { padding: 4px 10px; font-size: 13px; border-radius: 7px; }
.botao.fantasma { border-color: transparent; background: transparent; }
.botao.fantasma:hover { background: var(--cartao-2); }
.botao:disabled { opacity: .5; cursor: default; transform: none; }
.link { background: none; border: 0; padding: 0; color: var(--destaque); cursor: pointer; font-weight: 500; }
.link:hover { text-decoration: underline; }

.campo { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.campo > label { font-size: 12.5px; font-weight: 600; color: var(--suave); }
.entrada, input[type="text"], input[type="password"], input[type="email"], input[type="search"], select, textarea {
  width: 100%; padding: 9px 12px; border: 1px solid var(--borda-forte); border-radius: var(--raio-p);
  background: var(--cartao); outline: none; transition: border-color .12s, box-shadow .12s;
}
input:focus, select:focus, textarea:focus { border-color: var(--primaria); box-shadow: 0 0 0 3px var(--primaria-suave); }
button:focus-visible, a:focus-visible { outline: 2px solid var(--primaria); outline-offset: 2px; }
.marcar { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }

.mensagem { min-height: 20px; font-size: 13.5px; margin: 4px 0 10px; }
.mensagem.erro { color: var(--vermelho); }
.mensagem.ok { color: var(--verde); }

.selo { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.selo.sim { background: var(--verde-fundo); color: var(--verde); }
.selo.nao { background: var(--vermelho-fundo); color: var(--vermelho); }
.selo.alerta { background: var(--laranja-fundo); color: var(--laranja); }
.selo.neutro { background: var(--cartao-2); color: var(--suave); border: 1px solid var(--borda); }
.selo.azul { background: var(--primaria-suave); color: var(--destaque); }
.selo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.selo.neutro::before, .selo.azul::before { display: none; }

/* ---------- Tela de login ---------- */
.login { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.login-arte {
  position: relative; overflow: hidden; padding: 48px; display: flex; flex-direction: column; justify-content: space-between;
  color: #fff; background: radial-gradient(900px 520px at 85% 15%, rgba(0, 151, 146, .55) 0%, transparent 60%),
    radial-gradient(800px 600px at 0% 100%, rgba(18, 67, 111, .9) 0%, transparent 60%), #0d3358;
}
.login-arte::after {
  content: ""; position: absolute; inset: 0; opacity: .12;
  background-image: linear-gradient(rgba(255,255,255,.6) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.6) 1px, transparent 1px);
  background-size: 44px 44px; mask-image: linear-gradient(180deg, transparent, #000 40%, transparent);
}
.login-arte > * { position: relative; z-index: 1; }
.login-arte .logo { font-size: 20px; }
.login-arte h1 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.12; margin: 0 0 14px; letter-spacing: -.02em; max-width: 520px; }
.login-arte p { margin: 0; opacity: .85; max-width: 460px; font-size: 16px; }
.login-arte ul { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 10px; }
.login-arte li { display: flex; gap: 10px; align-items: center; opacity: .92; }
.login-arte li svg { stroke: #5fd6cf; }
.login-lado { display: grid; place-items: center; padding: 32px 18px; }
.caixa-login { width: 100%; max-width: 380px; }
.caixa-login h2 { margin: 0 0 4px; font-size: 24px; letter-spacing: -.01em; }
.caixa-login .sub { margin: 0 0 22px; color: var(--suave); }
.caixa-login .botao.primario { width: 100%; padding: 11px; margin-top: 4px; }
.rodape-login { margin-top: 18px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.codigo { letter-spacing: .5em; text-align: center; font-size: 22px; font-weight: 700; }
@media (max-width: 860px) {
  .login { grid-template-columns: 1fr; }
  .login-arte { padding: 28px 22px; min-height: auto; }
  .login-arte ul, .login-arte p { display: none; }
  .login-arte h1 { font-size: 24px; margin: 18px 0 0; }
}

.logo { display: inline-flex; align-items: center; gap: 10px; font-weight: 750; letter-spacing: -.01em; color: inherit; text-decoration: none !important; }
.logo .marca { width: 46px; height: 40px; display: grid; place-items: center; flex: none; }
.logo .marca img { width: 46px; height: auto; display: block; }
.logo .nome-marca { display: flex; flex-direction: column; line-height: 1.15; font-family: var(--fonte-titulo); font-weight: 600; }
.logo .nome-marca small { font-family: var(--fonte); font-weight: 500; font-size: 10.5px; letter-spacing: .02em; opacity: .72; }
.logo b { color: #5fd6cf; font-weight: 600; }

/* ---------- Estrutura do aplicativo ---------- */
.app { display: grid; grid-template-columns: 236px minmax(0, 1fr); min-height: 100vh; }
.lateral { background: var(--lateral); color: var(--lateral-texto); padding: 18px 14px; display: flex; flex-direction: column; gap: 22px; position: sticky; top: 0; height: 100vh; }
.lateral .logo { color: #fff; padding: 4px 8px; }
.menu { display: flex; flex-direction: column; gap: 3px; }
.menu .grupo { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #7f9ab4; padding: 14px 10px 6px; }
.menu a { display: flex; align-items: center; gap: 11px; padding: 9px 11px; border-radius: 9px; color: var(--lateral-texto); font-weight: 500; text-decoration: none; transition: background .12s, color .12s; }
.menu a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.menu a.ativo { background: rgba(0, 151, 146, .24); color: var(--lateral-ativo); box-shadow: inset 3px 0 0 #2cc7be; }
.menu .contador { margin-left: auto; background: #ff6b6b; color: #fff; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 0 7px; }
.perfil { margin-top: auto; border-top: 1px solid rgba(255,255,255,.08); padding-top: 14px; display: grid; gap: 8px; }
.perfil .quem { display: flex; gap: 10px; align-items: center; padding: 0 6px; }
.avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; color: #fff; background: linear-gradient(135deg, #009792, #12436f); flex: none; }
.perfil .nome { color: #fff; font-weight: 600; line-height: 1.2; }
.perfil .papel { font-size: 12px; color: #8fa7bf; }
.perfil .acoes { display: flex; gap: 4px; }
.perfil .acoes button { flex: 1; background: rgba(255,255,255,.05); border: 0; color: var(--lateral-texto); border-radius: 8px; padding: 7px; cursor: pointer; font-size: 13px; display: inline-flex; gap: 6px; align-items: center; justify-content: center; }
.perfil .acoes button:hover { background: rgba(255,255,255,.1); color: #fff; }

.principal { min-width: 0; padding: 26px 30px 48px; }
.cabeca { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.cabeca h1 { margin: 0; font-size: 24px; letter-spacing: -.02em; }
.cabeca p { margin: 3px 0 0; color: var(--suave); }

@media (max-width: 900px) {
  .app { grid-template-columns: 1fr; }
  .lateral { position: sticky; z-index: 20; height: auto; flex-direction: row; align-items: center; padding: 10px 12px; gap: 10px; overflow-x: auto; }
  .lateral .logo span:not(.marca) { display: none; }
  .menu { flex-direction: row; }
  .menu .grupo { display: none; }
  .menu a { padding: 8px 10px; white-space: nowrap; }
  .menu a span { display: none; }
  .perfil { margin: 0 0 0 auto; border: 0; padding: 0; display: flex; }
  .perfil .quem { display: none; }
  .principal { padding: 18px 16px 40px; }
}

.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: var(--sombra); }
.cartao.recheio { padding: 18px 20px; }
.cartao h2 { margin: 0 0 4px; font-size: 16px; }
.cartao .sub { margin: 0 0 14px; color: var(--suave); font-size: 13.5px; }
.grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1000px) { .grade-2 { grid-template-columns: 1fr; } }

/* ---------- Consulta ---------- */
.busca-grande { position: relative; margin-bottom: 10px; }
.busca-grande svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--apagado); width: 20px; height: 20px; }
.busca-grande input { font-size: 17px; padding: 14px 16px 14px 48px; border-radius: 12px; box-shadow: var(--sombra); border-color: var(--borda); }
.busca-grande kbd { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); }
kbd { font: 12px var(--fonte); border: 1px solid var(--borda-forte); border-bottom-width: 2px; border-radius: 6px; padding: 1px 6px; color: var(--suave); background: var(--cartao-2); }
.info { color: var(--suave); font-size: 13px; margin-bottom: 16px; display: flex; gap: 14px; flex-wrap: wrap; }

.consulta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 16px; align-items: start; }
@media (max-width: 980px) { .consulta { grid-template-columns: 1fr; } }
.lista { list-style: none; margin: 0; padding: 6px; max-height: calc(100vh - 230px); overflow: auto; }
.lista li button {
  width: 100%; text-align: left; background: none; border: 0; padding: 10px 12px; border-radius: 10px; cursor: pointer;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 10px; align-items: center;
}
.lista li button:hover { background: var(--cartao-2); }
.lista li.ativo button { background: var(--primaria-suave); box-shadow: inset 3px 0 0 var(--destaque); }
.lista .nome { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista .doc { color: var(--suave); font-size: 12.5px; grid-column: 2; }
.lista .marcas { grid-row: 1 / span 2; grid-column: 3; display: flex; gap: 4px; }
.lista .vazio { padding: 22px 14px; color: var(--suave); text-align: center; }
.tipo { font-size: 10.5px; font-weight: 800; letter-spacing: .04em; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; grid-row: 1 / span 2; }
.tipo.pj { background: var(--primaria-suave); color: var(--destaque); }
.tipo.pf { background: var(--laranja-fundo); color: var(--laranja); }

.detalhe { padding: 22px 24px; position: sticky; top: 20px; }
.detalhe .topo-detalhe { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; margin-bottom: 6px; }
.detalhe h2 { font-size: 19px; margin: 0; letter-spacing: -.01em; overflow-wrap: anywhere; }
.detalhe .fantasia { color: var(--suave); margin: 2px 0 14px; }
.detalhe .selos { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.detalhe .vazio { color: var(--suave); text-align: center; padding: 40px 10px; }
.secao-titulo { font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--apagado); font-weight: 700; margin: 18px 0 4px; }
.linha { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 0; border-top: 1px solid var(--borda); }
.linha:first-of-type { border-top: 0; }
.linha .rotulo { color: var(--suave); font-size: 13px; }
.linha .valor { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.linha .acoes { display: flex; gap: 6px; }

/* ---------- Planilhas ---------- */
.abas { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.abas button { border: 1px solid var(--borda); background: var(--cartao); border-radius: 999px; padding: 6px 13px; cursor: pointer; font-weight: 500; display: inline-flex; gap: 7px; align-items: center; }
.abas button:hover { border-color: var(--borda-forte); }
.abas button.ativo { background: var(--texto); color: var(--fundo); border-color: var(--texto); }
.abas button .n { font-size: 11.5px; opacity: .7; }
.abas button.virtual { border-style: dashed; }
.barra { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px; border-bottom: 1px solid var(--borda); }
.barra .busca-p { position: relative; flex: 1 1 240px; max-width: 360px; }
.barra .busca-p svg { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--apagado); width: 16px; height: 16px; }
.barra .busca-p input { padding-left: 34px; }
.barra .espaco { flex: 1; }
.barra .conta { color: var(--suave); font-size: 13px; }

.grade-rolagem { overflow: auto; max-height: calc(100vh - 250px); }
table.grade { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: 13.5px; }
.grade th, .grade td { border-bottom: 1px solid var(--borda); border-right: 1px solid var(--borda); padding: 0; height: 34px; max-width: 360px; }
.grade th { position: sticky; top: 0; z-index: 2; background: var(--cartao-2); font-weight: 600; color: var(--suave); text-align: left; font-size: 12.5px; white-space: nowrap; }
.grade th button { all: unset; display: flex; gap: 6px; align-items: center; padding: 0 10px; height: 34px; cursor: pointer; width: 100%; box-sizing: border-box; }
.grade th .auto { font-size: 10px; color: var(--primaria); font-weight: 700; }
.grade td > div { padding: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 34px; }
.grade td.editavel { cursor: cell; }
.grade td.editavel:hover { background: var(--cartao-2); }
.grade td.auto { color: var(--suave); background: color-mix(in srgb, var(--primaria-suave) 35%, transparent); }
.grade td.editando { outline: 2px solid var(--primaria); outline-offset: -2px; background: var(--cartao); }
.grade td input { border: 0; border-radius: 0; height: 32px; padding: 0 10px; box-shadow: none !important; background: transparent; min-width: 160px; }
.grade td.salvo { animation: salvo 1s ease; }
@keyframes salvo { from { background: var(--verde-fundo); } }
.grade .num-linha { position: sticky; left: 0; z-index: 1; background: var(--cartao-2); color: var(--apagado); text-align: center; min-width: 56px; font-size: 12px; }
.grade th.num-linha { z-index: 3; }
.grade .num-linha button { opacity: 0; color: var(--vermelho); background: none; border: 0; cursor: pointer; padding: 2px; vertical-align: middle; }
.grade tr:hover .num-linha button { opacity: 1; }
.grade tr:hover td { background-color: color-mix(in srgb, var(--primaria-suave) 30%, transparent); }
.mais { text-align: center; padding: 12px; }

/* ---------- Painéis ---------- */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
@media (max-width: 1000px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kpi { padding: 16px 18px; }
.kpi .rotulo { color: var(--suave); font-size: 13px; display: flex; align-items: center; gap: 7px; }
.kpi .valor { font-size: 28px; font-weight: 750; letter-spacing: -.02em; margin-top: 4px; font-variant-numeric: tabular-nums; }
.kpi .nota { font-size: 12.5px; color: var(--apagado); }
.kpi.destaque { background: linear-gradient(135deg, #0d3358 0%, #046776 62%, #009792 100%); color: #fff; border: 0; }
.kpi.destaque .progresso { background: rgba(255, 255, 255, .18); border-color: transparent; }
.kpi.destaque .rotulo, .kpi.destaque .nota { color: rgba(255,255,255,.8); }

.grafico { position: relative; height: 200px; margin-top: 8px; }
.grafico svg { width: 100%; height: 100%; display: block; overflow: visible; }
.grafico .barra-g { fill: var(--primaria); }
.grafico .barra-g:hover, .grafico .barra-g.foco { fill: var(--primaria-2); }
.grafico .eixo { fill: var(--apagado); font-size: 11px; }
.grafico .grade-g { stroke: var(--borda); stroke-width: 1; }
.dica { position: absolute; pointer-events: none; background: var(--texto); color: var(--fundo); padding: 6px 10px; border-radius: 8px; font-size: 12.5px; white-space: nowrap; transform: translate(-50%, -110%); box-shadow: var(--sombra-forte); z-index: 5; }

table.tabela { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabela th, .tabela td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--borda); vertical-align: middle; }
.tabela th { font-size: 12px; color: var(--suave); font-weight: 600; background: var(--cartao-2); position: sticky; top: 0; }
.tabela tr:last-child td { border-bottom: 0; }
.tabela td .botao { margin: 2px 4px 2px 0; }
.tabela .fraco { color: var(--suave); font-size: 12.5px; }
.rolagem { overflow: auto; }
.rolagem.alta { max-height: 460px; }

.feed { list-style: none; margin: 0; padding: 0; }
.feed li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 4px; border-bottom: 1px solid var(--borda); }
.feed li:last-child { border-bottom: 0; }
.feed .ic-evento { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--cartao-2); color: var(--suave); }
.feed .ic-evento.ev-login { background: var(--primaria-suave); color: var(--primaria); }
.feed .ic-evento.ev-falha { background: var(--vermelho-fundo); color: var(--vermelho); }
.feed .ic-evento.ev-edicao { background: var(--laranja-fundo); color: var(--laranja); }
.feed .ic-evento.ev-consulta { background: var(--verde-fundo); color: var(--verde); }
.feed .quando { color: var(--apagado); font-size: 12px; white-space: nowrap; }
.feed .det { color: var(--suave); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.progresso { height: 10px; border-radius: 999px; background: var(--cartao-2); border: 1px solid var(--borda); overflow: hidden; }
.progresso > div { height: 100%; background: linear-gradient(90deg, #009792, #2cc7be); border-radius: 999px; transition: width .4s; }
.aviso { padding: 12px 14px; border-radius: 10px; background: var(--laranja-fundo); color: var(--laranja); font-size: 13.5px; margin-bottom: 14px; }
.aviso.azul { background: var(--primaria-suave); color: var(--primaria); }

/* ---------- Diálogos e notificações ---------- */
dialog { border: 1px solid var(--borda); border-radius: 16px; background: var(--cartao); color: var(--texto); padding: 24px; width: min(440px, calc(100vw - 32px)); box-shadow: var(--sombra-forte); }
dialog.largo { width: min(820px, calc(100vw - 32px)); }
dialog::backdrop { background: rgba(10, 14, 22, .55); backdrop-filter: blur(2px); }
dialog h2 { margin: 0 0 16px; font-size: 18px; }
.botoes { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.avisos { position: fixed; right: 18px; bottom: 18px; display: grid; gap: 8px; z-index: 100; }
.aviso-flutuante { background: var(--texto); color: var(--fundo); padding: 10px 16px; border-radius: 10px; box-shadow: var(--sombra-forte); font-size: 14px; animation: entra .2s ease; max-width: 360px; }
.aviso-flutuante.erro { background: var(--vermelho); color: #fff; }
@keyframes entra { from { opacity: 0; transform: translateY(8px); } }

.carregando { display: grid; place-items: center; padding: 60px; color: var(--suave); }
.carregando::before { content: ""; width: 26px; height: 26px; border-radius: 50%; border: 3px solid var(--borda); border-top-color: var(--primaria); animation: gira .7s linear infinite; margin-bottom: 10px; }
@keyframes gira { to { transform: rotate(360deg); } }

/* ---------- Cartão CNPJ (impressão) ---------- */
.cartao-cnpj { font-family: Arial, sans-serif; color: #000; background: #fff; border: 2px solid #000; padding: 0; font-size: 12px; }
.cartao-cnpj .cab { text-align: center; padding: 10px; border-bottom: 2px solid #000; }
.cartao-cnpj .cab b { display: block; font-size: 14px; }
.cartao-cnpj .cab small { display: block; color: #444; }
.cartao-cnpj .lin { display: flex; border-bottom: 1px solid #000; }
.cartao-cnpj .lin:last-child { border-bottom: 0; }
.cartao-cnpj .cel { flex: 1; padding: 4px 8px; border-right: 1px solid #000; }
.cartao-cnpj .cel:last-child { border-right: 0; }
.cartao-cnpj .cel span { display: block; font-size: 9.5px; text-transform: uppercase; color: #333; }
.cartao-cnpj .cel b { font-weight: 700; }
.cartao-cnpj .obs { font-size: 10px; color: #444; padding: 6px 8px; }
@media print {
  body * { visibility: hidden !important; }
  #dialogo-cartao, #dialogo-cartao * { visibility: visible !important; }
  #dialogo-cartao { position: absolute; inset: 0; width: 100%; border: 0; box-shadow: none; padding: 0; }
  #dialogo-cartao .botoes { display: none; }
}
.login-arte .pe { opacity: .6; }
.cartao-cnpj .cel b { white-space: pre-line; }
.fraco { color: var(--suave); font-size: 12.5px; }
.espaco-topo { margin-top: 16px; }
.espaco-baixo { margin-bottom: 16px; }
.barra h2 { margin: 0; font-size: 16px; }
.barra select { width: auto; }
.cabeca select { width: auto; }
@media (max-width: 900px) {
  .perfil .acoes button span { display: none; }
  .linha { grid-template-columns: 96px minmax(0, 1fr) auto; }
  .detalhe { position: static; padding: 18px; }
}

/* ---------- Marca ---------- */
h1, h2, h3 { font-family: var(--fonte-titulo); font-weight: 600; letter-spacing: -.005em; }
.login-arte .simbolo-grande { margin-bottom: 26px; }
.login-arte .simbolo-grande img { width: 150px; display: block; filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .25)); }
.login-arte .slogan { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: #5fd6cf; margin: 0 0 12px; opacity: 1; font-weight: 600; }
.caixa-login .logo-movel { display: none; }
@media (max-width: 860px) {
  .login-arte { display: none; }
  .caixa-login .logo-movel { display: inline-flex; margin-bottom: 26px; color: var(--texto); }
}
.botao.primario { box-shadow: 0 1px 2px rgba(13, 51, 88, .2); }
.busca-grande input:focus { box-shadow: 0 0 0 4px var(--primaria-suave), var(--sombra); }

/* Alinhamento: blocos internos com o mesmo recuo dos cartões */
.recheio { padding: 18px 20px; }
.recheio > .sub:last-child { margin-bottom: 0; }
.cartao > .recheio + .rolagem, .cartao > .recheio + .barra { border-top: 1px solid var(--borda); }
.logo .nome-marca > span { font-size: 15px; }
.logo .nome-marca small { white-space: nowrap; }
.lateral .logo { gap: 8px; }
