/* IEAD — Campanha da Pizza. CSS unico, sem framework, sem build. */

:root{
    --azul:#1d4ed8; --azul-claro:#dbeafe; --verde:#16a34a; --vermelho:#dc2626;
    --amarelo:#d97706; --tinta:#0f172a; --tinta-fraca:#64748b; --borda:#e2e8f0;
    --fundo:#f1f5f9; --papel:#ffffff;
    --sombra:0 1px 3px rgba(15,23,42,.08); --sombra-alta:0 12px 32px rgba(15,23,42,.16);
    --raio:12px;
}
*{box-sizing:border-box}
body{
    margin:0; background:var(--fundo); color:var(--tinta);
    font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
a{color:var(--azul)}

/* ---------- topo ---------- */
.topo{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    background:linear-gradient(135deg,#1e3a8a,#1d4ed8); color:#fff;
    padding:14px 22px; flex-wrap:wrap;
}
.topo-marca{display:flex; align-items:center; gap:12px}
.topo-icone{font-size:30px}
.topo-titulo{font-weight:800; font-size:17px; letter-spacing:.2px}
.topo-sub{font-size:13px; opacity:.85}
.topo-dir{display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.topo-usuario{display:flex; flex-direction:column; line-height:1.2; text-align:right}
.topo-usuario small{opacity:.75; font-size:11px; text-transform:uppercase; letter-spacing:.5px}
.sel-campanha{
    background:rgba(255,255,255,.15); color:#fff; border:1px solid rgba(255,255,255,.3);
    border-radius:8px; padding:7px 10px; font-size:13px; font-weight:600;
}
.sel-campanha option{color:#0f172a}
.botao-sair{
    background:rgba(255,255,255,.15); color:#fff; text-decoration:none;
    padding:8px 16px; border-radius:8px; font-weight:700; font-size:13px;
    border:1px solid rgba(255,255,255,.25);
}
.botao-sair:hover{background:rgba(255,255,255,.25)}

/* ---------- menu de abas (uma por congregacao, vindo do banco) ---------- */
.menu{
    display:flex; gap:6px; background:#0f2557; padding:0 14px;
    overflow-x:auto; scrollbar-width:thin;
}
.menu a{
    color:#cbd5e1; text-decoration:none; padding:12px 15px; font-size:13.5px;
    font-weight:700; white-space:nowrap; border-bottom:3px solid transparent;
}
.menu a:hover{color:#fff; background:rgba(255,255,255,.06)}
.menu a.ativo{color:#fff; border-bottom-color:#60a5fa; background:rgba(96,165,250,.12)}

.conteudo{padding:22px; max-width:1500px; margin:0 auto}
.rodape{padding:22px; text-align:center; color:var(--tinta-fraca); font-size:12px}

/* ---------- cartoes de numero ---------- */
.cartoes{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-bottom:18px}
.cartao{
    background:var(--papel); border-radius:var(--raio); padding:16px 18px;
    box-shadow:var(--sombra); border-left:5px solid var(--tinta-fraca);
}
.cartao-azul{border-left-color:var(--azul)}
.cartao-verde{border-left-color:var(--verde)}
.cartao-vermelho{border-left-color:var(--vermelho)}
.cartao-cinza{border-left-color:#94a3b8}
.cartao-rotulo{font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--tinta-fraca)}
.cartao-valor{font-size:27px; font-weight:900; margin-top:6px; font-variant-numeric:tabular-nums}
.cartao-obs{font-size:12px; color:var(--tinta-fraca); margin-top:3px}

/* ---------- paineis ---------- */
.painel{background:var(--papel); border-radius:var(--raio); padding:18px 20px; box-shadow:var(--sombra); margin-bottom:18px}
.painel h2{margin:0 0 12px; font-size:17px}
.painel-titulo{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px}
.painel-titulo h2{margin:0}
.painel-acoes{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.painel-nota{color:var(--tinta-fraca); font-size:13px; margin:0 0 12px}
.colunas{display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:18px}
.cabecalho-conga{margin-bottom:14px}
.cabecalho-conga h1{margin:0 0 4px; font-size:24px}
.conga-resp{color:var(--tinta-fraca); font-size:13px}

/* ---------- tabelas ---------- */
.rolagem{overflow-x:auto}
.tabela{width:100%; border-collapse:collapse; font-size:14px}
.tabela th,.tabela td{padding:9px 11px; border-bottom:1px solid #eef2f7; text-align:left}
.tabela thead th{background:#f8fafc; color:#475569; font-size:12px; text-transform:uppercase; letter-spacing:.4px; white-space:nowrap}
.tabela tbody tr:hover{background:#f8fafc}
.tabela tfoot th{background:#f8fafc; font-size:14px; border-top:2px solid var(--borda)}
.tabela .num,.tabela th.num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.tabela .acoes{text-align:right; white-space:nowrap}
.tabela-densa th,.tabela-densa td{padding:6px 9px; font-size:13px}
.forte{font-weight:700}
.fraco{color:var(--tinta-fraca); font-size:13px}
.verde{color:var(--verde)}
.vermelho{color:var(--vermelho)}
.vazio{text-align:center; color:#94a3b8; padding:26px 0}
.linha-inativa{opacity:.5}
.link-forte{font-weight:700; text-decoration:none}
.link-forte:hover{text-decoration:underline}
code{background:#f1f5f9; padding:2px 6px; border-radius:5px; font-size:13px}

/* ---------- etiquetas e barra ---------- */
.etiqueta{display:inline-block; padding:2px 9px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.3px}
.etiqueta-verde{background:#dcfce7; color:#166534}
.etiqueta-vermelha{background:#fee2e2; color:#991b1b}
.etiqueta-amarela{background:#fef3c7; color:#92400e}
.etiqueta-cinza{background:#f1f5f9; color:#475569}
.barra{background:#eef2f7; border-radius:999px; height:6px; overflow:hidden; min-width:70px}
.barra span{display:block; height:100%; background:var(--verde)}

/* ---------- botoes ---------- */
.botao{border:none; border-radius:9px; padding:10px 18px; font-size:14px; font-weight:800; cursor:pointer; color:#fff; text-decoration:none; display:inline-block}
.botao-azul{background:var(--azul)}
.botao-verde{background:var(--verde)}
.botao-cinza{background:#e2e8f0; color:#475569}
.botao:hover{filter:brightness(1.08)}
.botao-mini{background:#fff; border:1px solid var(--borda); color:#475569; padding:4px 11px; border-radius:7px; font-size:12px; font-weight:700; cursor:pointer; text-decoration:none; display:inline-block}
.botao-mini:hover{border-color:var(--azul); color:var(--azul)}
.botao-perigo{color:var(--vermelho); border-color:#fecaca}
.botao-perigo:hover{background:#fef2f2; border-color:var(--vermelho); color:var(--vermelho)}
.em-linha{display:inline}
.chip{display:inline-block; padding:5px 12px; border:1px solid var(--borda); border-radius:999px; font-size:12.5px; font-weight:700; color:#475569; text-decoration:none; background:#fff}
.chip.ativo{background:var(--azul); border-color:var(--azul); color:#fff}
.filtros{display:flex; gap:6px; flex-wrap:wrap}

/* ---------- avisos ---------- */
.flash{padding:11px 16px; border-radius:10px; margin-bottom:14px; font-weight:600; font-size:14px}
.flash-ok{background:#dcfce7; color:#166534; border:1px solid #86efac}
.flash-erro{background:#fee2e2; color:#991b1b; border:1px solid #fca5a5}
.flash-aviso{background:#fef3c7; color:#92400e; border:1px solid #fcd34d}

/* ---------- modais ---------- */
.modal-fundo{display:none; position:fixed; inset:0; background:rgba(15,23,42,.55); z-index:900; align-items:center; justify-content:center; padding:16px; overflow-y:auto}
.modal-fundo.aberto{display:flex}
.modal{background:var(--papel); border-radius:16px; padding:24px; width:100%; max-width:470px; box-shadow:var(--sombra-alta); max-height:92vh; overflow-y:auto}
.modal h3{margin:0 0 18px; font-size:19px}
.modal label{display:block; margin-bottom:13px; font-size:13px; font-weight:700; color:#475569}
.modal label.check{display:flex; align-items:center; gap:8px; font-weight:600}
.modal input[type=text],.modal input[type=password],.modal input[type=date],.modal input[type=number],.modal select,.modal textarea{
    width:100%; margin-top:5px; padding:9px 11px; border:1px solid #cbd5e1; border-radius:8px;
    font-size:14px; font-family:inherit; background:#fff; color:var(--tinta);
}
.modal input:focus,.modal select:focus,.modal textarea:focus{outline:2px solid var(--azul-claro); border-color:var(--azul)}
.modal input[type=checkbox]{width:auto; margin:0}
.linha-dupla{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.dica{display:block; font-weight:500; color:#94a3b8; font-size:11.5px; margin-top:4px}
.modal-acoes{display:flex; gap:10px; justify-content:flex-end; margin-top:20px}

/* ---------- login ---------- */
.tela-login{display:flex; align-items:center; justify-content:center; min-height:100vh;
    background:linear-gradient(135deg,#1e3a8a,#1d4ed8); padding:16px}
.caixa-login{background:#fff; padding:34px; border-radius:18px; width:100%; max-width:370px; box-shadow:var(--sombra-alta)}
.login-icone{font-size:46px; text-align:center}
.caixa-login h1{margin:8px 0 2px; font-size:22px; text-align:center}
.login-sub{margin:0 0 22px; text-align:center; color:var(--tinta-fraca); font-size:13px}
.caixa-login label{display:block; margin-bottom:14px; font-size:13px; font-weight:700; color:#475569}
.caixa-login input{width:100%; margin-top:5px; padding:11px 13px; border:1px solid #cbd5e1; border-radius:9px; font-size:15px}
.caixa-login button{width:100%; padding:12px; background:var(--azul); color:#fff; border:none; border-radius:9px; font-size:15px; font-weight:800; cursor:pointer; margin-top:6px}
.caixa-login button:hover{filter:brightness(1.1)}

/* ---------- aviso flutuante ---------- */
.aviso{position:fixed; right:18px; bottom:18px; z-index:1000; padding:13px 20px; border-radius:11px;
    color:#fff; font-weight:700; font-size:14px; box-shadow:var(--sombra-alta);
    opacity:0; transform:translateY(12px); pointer-events:none; transition:all .22s}
.aviso.aparece{opacity:1; transform:translateY(0)}
.aviso.ok{background:var(--verde)}
.aviso.erro{background:var(--vermelho)}

@media (max-width:640px){
    .conteudo{padding:14px}
    .linha-dupla{grid-template-columns:1fr}
    .topo{padding:12px 14px}
}

/* ---------- modo somente leitura (VISUALIZADOR) ---------- */
.faixa-leitura{background:#eff6ff; border:1px solid #bfdbfe; color:#1e40af;
    border-radius:10px; padding:10px 15px; margin-bottom:16px; font-size:13.5px}

/* ---------- impressao ---------- */
@media print{
    .topo,.menu,.rodape,.aviso,.no-print,.botao,.botao-mini,.botao-sair,
    .modal-fundo,.filtros,.painel-acoes,.acoes{display:none !important}
    body{background:#fff; font-size:11pt}
    .conteudo{padding:0; max-width:none}
    .painel{box-shadow:none; border:1px solid #ddd; break-inside:avoid; margin-bottom:12px}
    .cartoes{display:flex; gap:8px}
    .cartao{box-shadow:none; border:1px solid #ddd; flex:1}
    .cartao-valor{font-size:18pt}
    .tabela{font-size:10pt}
    .tabela thead th{background:#eee !important; -webkit-print-color-adjust:exact; print-color-adjust:exact}
    .rolagem{overflow:visible}
    a{text-decoration:none; color:#000}
    .cabecalho-impressao{display:block !important; margin-bottom:10px; text-align:center}
}
.cabecalho-impressao{display:none}