@font-face { font-family: Sora; font-weight: 700; font-display: swap;
  src: url("/estatico/sora-700.woff2") format("woff2"); }
@font-face { font-family: Sora; font-weight: 800; font-display: swap;
  src: url("/estatico/sora-800.woff2") format("woff2"); }

:root {
  color-scheme: light;
  --azul: #0b2a6b; --laranja: #e85d0c; --laranja-claro: #ff9338;
  --fundo: #f2f4fa; --cartao: #ffffff; --texto: #16213a; --suave: #55607a;
  --borda: #d8deea; --marca: var(--azul); --marca-texto: #ffffff; --destaque: var(--laranja);
  --logo-a: var(--azul); --logo-b: var(--laranja);
  --erro-fundo: #fdecec; --erro-texto: #9b1c1c; --aviso-fundo: #e8f3ec; --aviso-texto: #1d6b3a;
  --alerta-fundo: #fff2e6; --alerta-texto: #8f3a05;
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --fundo: #0a1530; --cartao: #122147; --texto: #eaf0fb; --suave: #a8b4cf;
    --borda: #2a3a66; --marca: var(--laranja-claro); --marca-texto: #0a1530;
    --destaque: var(--laranja-claro); --logo-a: #ffffff; --logo-b: var(--laranja-claro);
    --erro-fundo: #3a1a1d; --erro-texto: #f5b5b5; --aviso-fundo: #16301f; --aviso-texto: #9fe0b4;
    --alerta-fundo: #3a2410; --alerta-texto: #ffc48f;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column;
       background: var(--fundo); color: var(--texto);
       font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--marca); }
h1, h2, h3 { font-family: Sora, system-ui, sans-serif; font-weight: 700; line-height: 1.25;
             letter-spacing: -.01em; }
h1 { font-size: 1.5rem; margin: 0 0 1rem; }
h2 { font-size: 1.15rem; margin: 0 0 1rem; }
h3 { font-size: 1.05rem; margin: 0 0 .4rem; }
p { margin: 0 0 1rem; }
:focus-visible { outline: 3px solid var(--laranja-claro); outline-offset: 2px; }

/* Cabecalho e marca */
header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;
         gap: .5rem 1.5rem; padding: 10px max(24px, calc((100% - 72rem) / 2));
         background: var(--cartao); border-bottom: 1px solid var(--borda); }
header form { margin: 0; }
.marca { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; }
.marca img { display: block; width: 44px; height: 44px; }
.marca-nome { display: flex; flex-direction: column; font: 800 1.2rem/1.02 Sora, system-ui, sans-serif;
              letter-spacing: -.02em; color: var(--logo-a); }
.marca-nome b { font-weight: 800; color: var(--logo-b); }
.menu { display: flex; gap: .25rem .4rem; align-items: center; flex-wrap: wrap; }
.menu a { padding: .4rem .7rem; border-radius: 8px; color: var(--texto); text-decoration: none;
          font-weight: 600; font-size: .95rem; }
.menu a:hover { background: var(--fundo); }
.menu a.botao { margin-left: .4rem; padding: .45rem .95rem; color: var(--marca-texto); }
.menu a.botao:hover { background: var(--marca); }
.menu a[aria-current=page] { color: var(--destaque); box-shadow: inset 0 -2px 0 var(--destaque);
                             border-radius: 8px 8px 0 0; }
.menu form { margin-left: .4rem; }
.menu button { padding: .4rem .8rem; font-size: .9rem; }

/* Estrutura */
main { width: 100%; max-width: 30rem; margin: 2rem auto; padding: 0 16px; flex: 1 0 auto; }
main.largo { max-width: 74rem; }
main.pagina-inicial { max-width: none; margin: 0; padding: 0; }
.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: 14px;
          padding: 1.5rem; box-shadow: 0 1px 2px rgba(13, 43, 110, .05); }
.cartao.atencao { background: var(--alerta-fundo); border-color: transparent; color: var(--alerta-texto); }
.cartao.atencao h2 { color: inherit; }
.cartao.atencao p:last-child { margin-bottom: 0; }
.cartao + .cartao { margin-top: 1rem; }
.abaixo { margin-top: 1rem; }
footer { padding: 1.25rem 16px; text-align: center; font-size: .875rem; color: var(--suave);
         border-top: 1px solid var(--borda); }
footer strong { color: var(--texto); }
.suave { color: var(--suave); }
.pequeno { font-size: .85rem; }
.fora-da-tela { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Pagina inicial */
.hero { background: #0b2a6b; color: #fff; padding: 4rem 16px 4.5rem; }
.hero-conteudo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3rem;
                 align-items: center; max-width: 72rem; margin: 0 auto; }
.hero h1 { font-size: clamp(1.9rem, 4.2vw, 3rem); font-weight: 800; margin-bottom: 1rem; }
.hero .lead { font-size: 1.125rem; color: #d7e0f5; max-width: 38rem; }
.hero .nota { margin: 1rem 0 0; color: #d7e0f5; font-size: .95rem; }
.hero .botao { background: var(--laranja-claro); color: #0a1530; }
.hero .botao.secundario { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .5); }
.amostra { margin: 0; }
.amostra .cartao { color: var(--texto); box-shadow: 0 18px 40px rgba(3, 12, 36, .35); }
.amostra-titulo { font: 700 1.05rem Sora, system-ui, sans-serif; margin-bottom: .9rem; }
.amostra dl.buscas { margin: 0; grid-template-columns: 1fr max-content; font-size: .9rem; gap: .65rem .75rem;
                     align-items: center; }
.amostra figcaption { margin-top: .6rem; font-size: .8rem; color: #b9c6e4; text-align: center; }
.secao { max-width: 74rem; margin: 0 auto; padding: 3.5rem 16px 0; }
.secao-titulo { font-size: clamp(1.4rem, 3vw, 1.8rem); margin-bottom: 1.5rem; }
.passos-inicio { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem;
                 list-style: none; margin: 0; padding: 0; }
.passos-inicio .cartao { margin: 0; }
.passos-inicio .numero { display: inline-flex; width: 2.25rem; height: 2.25rem; align-items: center;
  justify-content: center; margin-bottom: .75rem; border-radius: 10px; background: var(--azul);
  color: #fff; font: 800 1rem Sora, system-ui, sans-serif; }
.passos-inicio p { margin: 0; color: var(--suave); }
.vantagens ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.5rem 2rem;
                list-style: none; margin: 0; padding: 0; }
.vantagens li { padding-left: 2.25rem; background: url("/estatico/marca-check.svg") left .05rem / 1.5rem no-repeat; }
.vantagens p { margin: 0; color: var(--suave); }
.institucional { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; }
.institucional .cartao { margin: 0; }
.institucional h3 { color: var(--destaque); }
.institucional p { margin: 0; }
.institucional ul { margin: 0; padding-left: 1.1rem; }
.institucional li { margin: .2rem 0; }
.chamada { max-width: 72rem; margin: 3.5rem auto; padding: 2.5rem 1.5rem; border-radius: 14px;
           background: #0b2a6b; color: #d7e0f5; text-align: center; }
.chamada h2 { color: #fff; font-size: clamp(1.4rem, 3vw, 1.8rem); margin-bottom: .5rem; }
.chamada .botao { background: var(--laranja-claro); color: #0a1530; }
@media (max-width: 76rem) { .chamada { margin-left: 16px; margin-right: 16px; } }
@media (max-width: 56rem) {
  .hero-conteudo { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}

/* Painel */
.painel-topo { margin-bottom: 1rem; }
.painel-topo h1 { margin-bottom: .1rem; }
.painel-topo p { margin: 0; }
.indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem;
               margin-bottom: 1rem; }
.indicadores .cartao { display: flex; flex-direction: column; gap: .15rem; margin: 0; padding: 1rem 1.25rem; }
.rotulo { color: var(--suave); font-size: .875rem; }
.valor { font: 700 1.35rem/1.3 Sora, system-ui, sans-serif; letter-spacing: -.01em; }
progress { width: 100%; height: .5rem; margin-top: .4rem; border: 0; border-radius: 999px; overflow: hidden;
           background: var(--borda); accent-color: var(--destaque); }
progress::-webkit-progress-bar { background: var(--borda); }
progress::-webkit-progress-value { background: var(--destaque); }
progress::-moz-progress-bar { background: var(--destaque); }
.painel-grade { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 1rem;
                align-items: start; }
.painel-principal, .painel-lado { min-width: 0; }
.lista > li:first-child { border-top: 0; padding-top: 0; }
.lista > li:last-child { padding-bottom: 0; }
.lista:last-child { margin-bottom: 0; }
.sem-busca { margin: .3rem 0 0; }
@media (max-width: 56rem) {
  .painel-grade { grid-template-columns: minmax(0, 1fr); }
}

/* Formularios */
label { display: block; font-weight: 600; margin: 0 0 .25rem; }
input[type=text], input[type=email], input[type=password], input[type=file], input[type=number],
input[type=date], select {
  width: 100%; padding: .6rem .7rem; margin: 0 0 1rem; font: inherit; color: var(--texto);
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 8px; }
input:focus, select:focus { outline: 2px solid var(--marca); outline-offset: 0;
  border-color: transparent; }
.aceite { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400;
          font-size: .9rem; color: var(--suave); }
.aceite input { margin-top: .3rem; }
button, .botao { display: inline-block; padding: .65rem 1.2rem; border: 1px solid transparent;
  border-radius: 8px; background: var(--marca); color: var(--marca-texto); font: inherit;
  font-weight: 600; text-decoration: none; cursor: pointer; }
button:hover, .botao:hover { filter: brightness(1.15); }
button:active, .botao:active { transform: translateY(1px); }
button.secundario, .botao.secundario { background: transparent; color: var(--marca);
  border-color: var(--borda); }
button.perigo { background: transparent; color: var(--erro-texto); border-color: var(--borda); }
.acoes { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; margin-top: .5rem; }
.anti-robo { margin-top: 1rem; min-height: 65px; }
fieldset { border: 1px solid var(--borda); border-radius: 8px; margin: 0 0 1rem; padding: .5rem .9rem .7rem; }
legend { font-weight: 600; padding: 0 .3rem; }
label.opcao { display: flex; gap: .5rem; align-items: center; font-weight: 400; margin: .35rem 0; }
label.opcao + button { margin-top: .75rem; }
form.excluir { margin-top: .75rem; }
.com-botao { display: flex; gap: .5rem; align-items: flex-start; }
.com-botao input { flex: 1; min-width: 0; }
.com-botao button { white-space: nowrap; }

/* Tela do administrador */
.espaco { margin-bottom: 1rem; }
.linha-form { display: flex; gap: .75rem; align-items: flex-end; flex-wrap: wrap; margin-bottom: .75rem; }
.linha-form > div { flex: 1 1 11rem; }
.linha-form input { margin-bottom: 0; }
.etiqueta.situacao-em_atraso { color: var(--alerta-texto); background: var(--alerta-fundo); border-color: transparent; }
.etiqueta.situacao-bloqueado, .etiqueta.situacao-inativo { color: var(--erro-texto); background: var(--erro-fundo); border-color: transparent; }

/* Mensagens */
.erro { background: var(--erro-fundo); color: var(--erro-texto); padding: .75rem 1rem;
        border-radius: 8px; margin: 0 0 1rem; }
.aviso { background: var(--aviso-fundo); color: var(--aviso-texto); padding: .75rem 1rem;
         border-radius: 8px; margin: 0 0 1rem; }

/* Listas e dados */
dl { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: 0 0 1rem; }
dt { color: var(--suave); }
dd { margin: 0; }
dl.buscas { margin: .5rem 0 0; font-size: .95rem; }
dd.ok, dd.falha, dd.andamento { justify-self: start; padding: .05rem .6rem; border-radius: 999px;
                                font-size: .875rem; font-weight: 600; }
dd.ok { color: var(--aviso-texto); background: var(--aviso-fundo); }
dd.falha { color: var(--erro-texto); background: var(--erro-fundo); }
dd.andamento { color: var(--alerta-texto); background: var(--alerta-fundo); }
.lista { list-style: none; margin: 0 0 1rem; padding: 0; }
.lista > li { border-top: 1px solid var(--borda); padding: .9rem 0; }
.lista > li.inativo { opacity: .7; }
.linha { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start;
         flex-wrap: wrap; }
.linha form { margin: 0; }
.linha > div { flex: 1 1 18rem; min-width: 0; }
.etiqueta { font-size: .8rem; padding: .1rem .5rem; border-radius: 999px;
            background: var(--fundo); border: 1px solid var(--borda); color: var(--suave); }
.etiqueta.ok { color: var(--aviso-texto); background: var(--aviso-fundo); border-color: transparent; }
details { margin-top: .6rem; }
details summary { cursor: pointer; color: var(--marca); font-size: .95rem; }
details form { margin-top: .75rem; }
ol.passos { padding-left: 1.3rem; }
ol.passos li { margin: .4rem 0; }
code.quebra { overflow-wrap: anywhere; word-break: break-all; }
@media (max-width: 40rem) {
  header { padding: 10px 16px; }
  .hero { padding: 2.5rem 16px 3.5rem; }
}
