:root{--azul:#12325b;--verde:#0f7a6b;--verde-esc:#0b5c51;--fundo:#f3f5f8;--cartao:#fff;--texto:#1b2430;--mudo:#5b6675;--linha:#dde2ea;--erro:#b3261e;--aviso:#8a5a00;--aviso-bg:#fff6e0;--ok:#1f7a3d}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fundo);color:var(--texto);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--verde-esc)}
h1{font-size:1.45rem;line-height:1.2;margin:0 0 .5rem;color:var(--azul)}
h2{font-size:1.1rem;margin:1.6rem 0 .6rem;color:var(--azul)}
p{margin:.4rem 0 1rem}
.mudo{color:var(--mudo);font-size:.92rem}
code{background:#eef1f5;padding:.1rem .35rem;border-radius:4px;font-size:.92em}

/* público */
.topo{background:var(--azul);color:#fff}
.topo-in{max-width:560px;margin:0 auto;padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.marca{font-weight:600;letter-spacing:.2px;font-size:1.05rem}.marca b{color:#7fe0cf;font-weight:700}
.org{font-size:.85rem;opacity:.85;text-align:right}
.miolo{max-width:560px;margin:0 auto;padding:1rem 1rem 2rem}
.cartao{background:var(--cartao);border:1px solid var(--linha);border-radius:12px;padding:1.4rem 1.25rem}
.rodape{max-width:560px;margin:0 auto;padding:0 1rem 2rem;color:var(--mudo);font-size:.82rem;text-align:center}
.passos{display:flex;gap:.25rem;list-style:none;padding:0;margin:.4rem 0 1rem;font-size:.78rem;color:var(--mudo)}
.passos li{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.25rem}
.passos span{width:26px;height:26px;border-radius:50%;border:2px solid var(--linha);display:grid;place-items:center;font-weight:600;background:#fff}
.passos li.on{color:var(--azul);font-weight:600}.passos li.on span{border-color:var(--verde);color:var(--verde)}
.passos li.ok span{background:var(--verde);border-color:var(--verde);color:#fff}
label{display:block;font-weight:600;margin:1rem 0 .3rem;font-size:.95rem}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=date],input[type=datetime-local],input:not([type]),input[type=tel],select,textarea{width:100%;padding:.75rem .8rem;font:inherit;border:1.5px solid #6f7b8b;border-radius:8px;background:#fff;color:var(--texto)}
input[type=file]{width:100%;padding:.6rem;border:1.5px dashed #6f7b8b;border-radius:8px;background:#fafbfc}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,summary:focus-visible,.btn:focus-visible,a:focus-visible{outline:3px solid #12325b;outline-offset:2px}
.topo a:focus-visible,.adm-topo a:focus-visible,.adm-topo button:focus-visible{outline-color:#fff}
input.codigo{font-size:1.8rem;letter-spacing:.5rem;text-align:center;font-variant-numeric:tabular-nums}
.btn{display:inline-block;margin-top:1.2rem;width:100%;padding:.85rem 1rem;border:0;border-radius:8px;background:var(--verde);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-align:center;text-decoration:none}
.btn:hover{background:var(--verde-esc)}
.btn.sec{background:#fff;color:var(--azul);border:1.5px solid #6f7b8b}.btn.sec:hover{background:#f3f5f8}
.btn.perigo{background:var(--erro)}
.btn.peq{width:auto;margin-top:0;padding:.45rem .8rem;font-size:.88rem}
.alerta{background:#fdecea;color:var(--erro);border:1px solid #f3b8b3;border-radius:8px;padding:.7rem .9rem;margin:.8rem 0}
.erro{color:var(--erro);font-size:.88rem;margin:.25rem 0 0}
.aviso{background:var(--aviso-bg);color:var(--aviso);border:1px solid #f0d58a;border-radius:8px;padding:.7rem .9rem;margin:1rem 0}
.demo{background:#eaf4ff;border:1px solid #b9d7f5;border-radius:8px;padding:.7rem .9rem;margin:.8rem 0;color:#14416b}
.demo code{font-size:1.2em;letter-spacing:.2rem}
.opcoes{display:grid;gap:.6rem;margin:.6rem 0}
.opcao{display:flex;gap:.8rem;align-items:center;border:1.5px solid #6f7b8b;border-radius:10px;padding:.85rem;font-weight:400;margin:0;cursor:pointer}
.opcao:has(input:checked){border-color:var(--verde);background:#effaf7}
.opcao span{display:flex;flex-direction:column}.opcao small{color:var(--mudo)}
.check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;margin:1rem 0 0}
.check input{margin-top:.25rem;width:20px;height:20px;flex:none}
.dicas{margin:.2rem 0 1rem;padding-left:1.2rem;color:var(--mudo)}
.previa{display:block;max-width:100%;border-radius:10px;border:1px solid var(--linha);margin:1rem 0}
.resumo{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:1rem 0}
.resumo dt{color:var(--mudo)}.resumo dd{margin:0;font-weight:600;word-break:break-word}
.protocolo{font-size:1.7rem;font-weight:700;letter-spacing:.12rem;text-align:center;background:#effaf7;border:1.5px solid #9fd8cc;border-radius:10px;padding:1rem;margin:1rem 0;color:var(--verde-esc);font-variant-numeric:tabular-nums}
.ok-icone{width:56px;height:56px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:1.8rem;margin-bottom:.8rem}

/* painel */
body.adm{background:var(--fundo)}
.adm-topo{background:var(--azul);color:#fff}
.adm-topo-in{max-width:1180px;margin:0 auto;padding:.7rem 1rem;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.adm-user{font-size:.85rem;color:#dbe6f5;display:flex;gap:.8rem;align-items:center}
.adm-user form{margin:0}.adm-user button{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;padding:.25rem .6rem;cursor:pointer;font:inherit}
.adm-main{max-width:1180px;margin:0 auto;padding:1.2rem 1rem 3rem}
.adm-main h1{margin-bottom:1rem}
.faixa{background:#fff6e0;border-bottom:1px solid #f0d58a;color:#7a5200;text-align:center;font-size:.85rem;padding:.35rem}
.grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1.2rem}
.kpi{background:#fff;border:1px solid var(--linha);border-radius:10px;padding:.9rem 1rem}
.kpi b{display:block;font-size:1.7rem;color:var(--azul);font-variant-numeric:tabular-nums;line-height:1.1}
.kpi span{color:var(--mudo);font-size:.85rem}
.painel{background:#fff;border:1px solid var(--linha);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1.2rem}
.painel h2{margin-top:0}
.rolar{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--linha);vertical-align:top}
th{color:var(--mudo);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.tag{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600;background:#eef1f5;color:#3b4656}
.tag.ok{background:#e3f4e8;color:#1b6a35}.tag.erro{background:#fdecea;color:var(--erro)}.tag.av{background:var(--aviso-bg);color:var(--aviso)}.tag.az{background:#e6effa;color:#1f4d85}
.form-lin{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end}
.form-lin>div{flex:1;min-width:160px}
.form-lin label{margin-top:0}
.adm-main .btn{width:auto;margin-top:.6rem}
.barra{height:10px;background:#e8ecf2;border-radius:6px;overflow:hidden}.barra i{display:block;height:100%;background:var(--verde)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;word-break:break-all}
.login{max-width:400px;margin:3rem auto}
.qr{background:#fff;padding:.5rem;border:1px solid var(--linha);border-radius:8px;display:inline-block}
.pag{display:flex;gap:.5rem;align-items:center;margin-top:.8rem}
.foto-conf{max-width:100%;max-height:70vh;border-radius:8px;border:1px solid var(--linha)}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
@media(max-width:760px){.cols{grid-template-columns:minmax(0,1fr)}}
.w-vazao{width:5.5rem!important}
.pre-wrap{white-space:pre-wrap}

/* cédula */
.cedula{display:grid;gap:.6rem;margin:.8rem 0}
.cand{display:flex;gap:.8rem;align-items:center;border:1.5px solid #6f7b8b;border-radius:12px;padding:.7rem .8rem;margin:0;font-weight:400;cursor:pointer}
.cand:has(input:checked){border-color:var(--verde);background:#effaf7;box-shadow:0 0 0 2px #bfe6dd}
.cand input{width:20px;height:20px;flex:none}
.cand-t{display:flex;flex-direction:column}.cand-t small{color:var(--mudo)}
.cand.neutro{background:#fafbfc}
.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--linha)}
.avatar.grande{width:88px;height:88px}
.avatar.ini{display:grid;place-items:center;color:#fff;font-weight:700;font-size:1.4rem}
.a0{background:#12325b}.a1{background:#0f7a6b}.a2{background:#7a4a0f}.a3{background:#5b2a86}.a4{background:#a3341f}.a5{background:#2f5f8a}
.escolha{display:flex;gap:1rem;align-items:center;border:1.5px solid #9fd8cc;background:#effaf7;border-radius:12px;padding:1rem;margin:1rem 0}
.escolha-t{font-size:1.2rem;font-weight:700;color:var(--azul)}
.w35{width:35%}
progress{width:100%;height:10px;accent-color:var(--verde)}
.etapas{display:flex;gap:.3rem;list-style:none;padding:0;margin:0 0 1rem;flex-wrap:wrap}
.etapas li{padding:.35rem .8rem;border-radius:999px;background:#e8ecf2;color:var(--mudo);font-size:.85rem}
.etapas li.on{background:var(--azul);color:#fff;font-weight:600}.etapas li.ok{background:#d9f0e8;color:var(--verde-esc)}
.assinaturas{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem;text-align:center;font-size:.85rem}
.assinaturas .linha{display:block;border-top:1px solid #000;margin-bottom:.4rem}
@media print{.adm-topo,.faixa,.no-print,.adm-user,.tarja-hora{display:none!important}body{background:#fff}.adm-main{padding:0}.painel,.ata{border:0}h2{break-after:avoid}tr{break-inside:avoid}}

/* foto: orientações e câmera */
.diagrama{display:block;width:100%;max-width:420px;margin:1rem auto}
.dicas-grid{counter-reset:d;list-style:none;padding:0;margin:1rem 0;display:grid;gap:.5rem}
.dicas-grid li{counter-increment:d;position:relative;padding:.7rem .8rem .7rem 2.8rem;border:1px solid var(--linha);border-radius:10px;background:#fafbfc}
.dicas-grid li::before{content:counter(d);position:absolute;left:.7rem;top:.7rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--verde);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.cam-wrap{position:relative;background:#000;border-radius:12px;overflow:hidden;margin:1rem auto 0;max-width:26rem;aspect-ratio:3/4}
.cam-wrap video,.previa-cam{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}   /* caixa 3:4 + cover = recorte central, o mesmo que a foto salva */
.guia{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cam-acoes{display:grid;gap:.5rem}
details#alt-box{margin-top:1rem;border:1px dashed #6f7b8b;border-radius:10px;padding:.6rem .8rem}
details#alt-box summary{cursor:pointer;font-weight:600;color:var(--azul)}
.checklist{padding-left:1.2rem;margin:.4rem 0 1rem}.checklist li{margin:.3rem 0}
[hidden]{display:none!important}

/* chat de atendimento */
.chat{display:flex;flex-direction:column;gap:.5rem;height:46vh;min-height:260px;overflow-y:auto;border:1px solid var(--linha);border-radius:12px;padding:.8rem;background:#fafbfc;margin:.6rem 0}
.bolha{max-width:86%;padding:.5rem .75rem;border-radius:12px;word-break:break-word}
.bolha small{display:block;color:var(--mudo);font-size:.72rem;margin-bottom:.15rem}
.bolha p{margin:0;white-space:pre-wrap}
.bolha.eu{align-self:flex-end;background:#d9f0e8;border:1px solid #b9e0d4}
.bolha.outro{align-self:flex-start;background:#fff;border:1px solid var(--linha)}
.bolha.sistema{align-self:center;background:#eef1f5;color:#3b4656;font-size:.88rem;text-align:center;max-width:94%}
.bolha.nota{align-self:flex-start;background:var(--aviso-bg);border:1px dashed #e0b84d}
.estado{font-size:.88rem;color:var(--mudo);margin:.2rem 0}
.chat-form{display:grid;gap:.5rem}
.chat-form textarea{resize:vertical}
.vis-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ficha{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;font-size:.92rem}.ficha dt{color:var(--mudo)}.ficha dd{margin:0;font-weight:600}
.prontas{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}
.tag.crit{background:#fdecea;color:var(--erro)}
.opcoes-set{border:0;padding:0;margin:0}
.faixa.crit{background:#fdecea;border-color:#f3b8b3;color:#8a1a12;font-weight:600}
.faixa.prod{background:#e3f4e8;border-color:#b6dec3;color:#1b6a35;font-weight:600}

/* acessibilidade */
.pular{position:absolute;left:.5rem;top:-5rem;background:#fff;color:#12325b;padding:.7rem 1rem;border:2px solid #12325b;border-radius:8px;z-index:100;font-weight:600;text-decoration:none}
.pular:focus{top:.5rem}
main:focus{outline:none}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media (pointer:coarse),(max-width:760px){
  .btn,.btn.peq{min-height:44px}
  .btn.peq{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1rem}
  .adm-user button{min-height:44px;display:inline-flex;align-items:center}
  td a{display:inline-block;padding:.7rem .3rem;min-width:44px}
  .check{min-height:44px;align-items:center}
  .check input,.cand input,.opcao input{width:24px;height:24px}
  .rodape a{display:inline-flex;align-items:center;min-height:44px;padding:0 .3rem}
  input[type=file]{min-height:44px}
  .adm-main{padding:1rem .75rem 3rem}
  .adm-topo-in{gap:.25rem;padding:.5rem .75rem;flex-direction:column;align-items:stretch}
      .adm-user{width:100%;justify-content:space-between}
  .grade{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .kpi{padding:.7rem .8rem}
  .kpi b{font-size:1.4rem}
  .chat{height:52vh}
}
@media (min-width:761px){.btn.peq{min-height:32px}}

.painel,.kpi{min-width:0}
.rolar{max-width:100%}
.ajuda-blocos{margin:.5rem 0 0;font-size:.92rem}.ajuda-blocos summary{cursor:pointer;color:var(--azul);font-weight:600;min-height:32px}.ajuda-blocos ul{margin:.4rem 0 0;padding-left:1.2rem}

/* menu do painel em grupos */
.adm-topo-in{position:relative}
.marca-box{display:flex}
.menu{flex:1}
.menu-lista{display:flex;gap:.15rem;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap}
.menu-lista>li>a,.grupo>button{display:inline-flex;align-items:center;min-height:38px;color:#dbe6f5;background:none;border:0;padding:.4rem .8rem;border-radius:6px;font:inherit;font-size:.92rem;cursor:pointer;text-decoration:none}
.menu-lista>li>a:hover,.grupo>button:hover,.menu-lista>li>a[aria-current=page],.grupo.ativo>button,.grupo>button[aria-expanded=true]{background:rgba(255,255,255,.14);color:#fff}
.grupo{position:relative}
.grupo>button::after{content:"";margin-left:.45rem;border:.3rem solid transparent;border-top-color:currentColor;border-bottom-width:0}
.grupo>button[aria-expanded=true]::after{border-top-width:0;border-bottom-width:.3rem;border-bottom-color:currentColor;border-top-color:transparent}
.grupo ul{position:absolute;left:0;top:calc(100% + 6px);min-width:250px;background:#fff;border:1px solid var(--linha);border-radius:10px;box-shadow:0 10px 28px rgba(18,50,91,.22);padding:.35rem;list-style:none;margin:0;z-index:60}
.grupo ul a{display:block;color:var(--texto);padding:.6rem .8rem;border-radius:6px;text-decoration:none;font-size:.92rem}
.grupo ul a:hover,.grupo ul a[aria-current=page]{background:#effaf7;color:var(--verde-esc);font-weight:600}
.grupo ul a:focus-visible{outline-color:#12325b}
.menu-botao{display:none;background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:6px;padding:.4rem .9rem;font:inherit;cursor:pointer;min-height:44px}
@media(max-width:760px){
  .adm-topo-in{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}
  html.js .menu-botao{display:inline-flex;align-items:center}
  html.js .menu{display:none;flex:0 0 100%;order:3}
  html.js .menu.aberto{display:block}
  .adm-user{order:4;flex:0 0 100%}
  .menu-lista{flex-direction:column;align-items:stretch;gap:0}
  .menu-lista>li>a,.grupo>button{width:100%;justify-content:flex-start;min-height:48px;font-size:1rem}
  .grupo>button{justify-content:space-between}
  .grupo ul{position:static;box-shadow:none;border:0;background:rgba(255,255,255,.07);padding:.2rem 0 .4rem .6rem;border-radius:6px}
  .grupo ul a{color:#dbe6f5;min-height:44px;display:flex;align-items:center}
  .grupo ul a:hover,.grupo ul a[aria-current=page]{background:rgba(255,255,255,.14);color:#fff}
  .grupo ul a:focus-visible{outline-color:#fff}
}
.tabela-form input{min-width:17rem;width:100%}
.base-info dl{margin:.5rem 0}.base-info .ficha dd{font-weight:600}
fieldset.opcoes-set legend{font-weight:600;margin:1rem 0 .3rem;padding:0;font-size:.95rem}
ol.mudo{padding-left:1.2rem;margin:.6rem 0 0}ol.mudo li{margin:.25rem 0}

.aviso-flutuante{position:fixed;right:1rem;bottom:1rem;max-width:min(92vw,360px);background:#12325b;color:#fff;padding:.9rem 1.1rem;border-radius:10px;box-shadow:0 10px 28px rgba(18,50,91,.35);font-weight:600;z-index:90}
.adm-user button[aria-pressed]{min-height:32px}
.chat-widget{margin-top:1.4rem;border-top:1px solid var(--linha);padding-top:1rem}
.cw-painel{margin-top:.8rem;border:1px solid #6f7b8b;border-radius:12px;padding:1rem;background:#fff}
.cw-painel .chat{height:34vh;min-height:200px}
.qr-box{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.8rem 0}.qr-box svg{width:9rem;height:9rem;flex:none;background:#fff;border:1px solid var(--linha);border-radius:8px}
.texto-exemplo{white-space:pre-wrap;font-family:inherit;background:#f6f8fb;border:1px solid var(--linha);border-radius:8px;padding:.7rem;margin:.3rem 0 .8rem}
.ficha-eleitor{border:1px solid var(--linha);border-radius:10px;background:#f6f8fb;padding:.7rem .9rem;margin:.6rem 0 1rem}
.ficha-eleitor dl{display:grid;grid-template-columns:max-content 1fr;gap:.2rem .8rem;margin:.3rem 0}.ficha-eleitor dt{font-weight:600;color:var(--azul)}.ficha-eleitor dd{margin:0}
.tarja-hora{background:#e8eef7;color:#12325b;border-bottom:1px solid #c9d6e8;font-size:.82rem;padding:.25rem 1rem;text-align:right}.tarja-hora strong{font-variant-numeric:tabular-nums}
.cam-contagem{position:absolute;inset:0;display:grid;place-items:center;font-size:6rem;font-weight:700;color:#fff;text-shadow:0 0 14px #000;pointer-events:none}
