:root{
  --fundo:#f4f6fb;--cartao:#fff;--texto:#1d2433;--suave:#5b6478;--borda:#dfe3ec;
  --primaria:#2457d6;--primaria-esc:#1a43a8;--verde:#14894a;--amarelo:#a8700a;--vermelho:#c0362c;--azul:#1f6fb8;
  --lateral:#14213d;--lateral-texto:#c9d3ea;
}
@media (prefers-color-scheme:dark){:root{
  --fundo:#10141d;--cartao:#181e2b;--texto:#e6eaf2;--suave:#9aa4b8;--borda:#2a3243;
  --primaria:#5b8cff;--primaria-esc:#7aa2ff;--verde:#3ec27a;--amarelo:#e0a93a;--vermelho:#f06b60;--azul:#5aa8f0;
  --lateral:#0b0f17;
}}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--fundo);color:var(--texto);font-size:15px;line-height:1.45}
a{color:var(--primaria)}
.lateral{position:fixed;inset:0 auto 0 0;width:240px;background:var(--lateral);color:var(--lateral-texto);display:flex;flex-direction:column;z-index:20;overflow-y:auto}
.marca{display:flex;align-items:center;gap:10px;padding:18px 16px;color:#fff;text-decoration:none;font-weight:700}
.marca span{background:var(--primaria);border-radius:8px;padding:4px 7px;font-size:13px}
.lateral nav{flex:1;display:flex;flex-direction:column;padding:4px 8px}
.lateral nav a{color:var(--lateral-texto);text-decoration:none;padding:9px 10px;border-radius:8px;display:flex;gap:10px;align-items:center;font-size:14px}
.lateral nav a i{font-style:normal;width:20px;text-align:center}
.lateral nav a:hover{background:rgba(255,255,255,.07)}
.lateral nav a.ativo{background:var(--primaria);color:#fff}
.usuario{padding:14px 16px;font-size:13px;border-top:1px solid rgba(255,255,255,.08)}
.usuario a{color:#9fb6ff}
.principal{margin-left:240px;min-height:100vh}
.principal.sem-menu{margin-left:0}
.topo{position:sticky;top:0;z-index:10;background:var(--cartao);border-bottom:1px solid var(--borda);padding:10px 24px;display:flex;gap:12px;align-items:center}
.seletor-assoc{flex:1;max-width:620px}
.seletor-assoc select{width:100%}
.btn-menu{display:none;background:none;border:1px solid var(--borda);border-radius:8px;font-size:18px;padding:4px 10px;color:var(--texto)}
.conteudo{padding:24px;max-width:1280px}
.cab-pagina{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.cab-pagina h1{margin:0;font-size:24px}
.sub{margin:4px 0 0;color:var(--suave)}
.acoes{display:flex;gap:8px;flex-wrap:wrap}
.cartao{background:var(--cartao);border:1px solid var(--borda);border-radius:12px;padding:18px;margin-bottom:18px}
.cartao h2{margin:0 0 12px;font-size:17px}
.cartao h3{margin:14px 0 8px;font-size:15px}
.grade{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--cartao);border:1px solid var(--borda);border-radius:12px;padding:14px 16px}
.kpi .rot{color:var(--suave);font-size:13px}
.kpi .num{font-size:26px;font-weight:700;margin-top:2px}
.kpi .det{font-size:12px;color:var(--suave)}
.kpi.verde .num{color:var(--verde)}.kpi.amarelo .num{color:var(--amarelo)}.kpi.vermelho .num{color:var(--vermelho)}.kpi.azul .num{color:var(--azul)}
a.kpi{text-decoration:none;color:inherit}
a.kpi:hover{border-color:var(--primaria)}
.btn,button.btn{display:inline-flex;align-items:center;gap:6px;background:var(--primaria);color:#fff;border:0;border-radius:8px;padding:8px 14px;font-size:14px;cursor:pointer;text-decoration:none;font-weight:600;white-space:nowrap}
.btn:hover{background:var(--primaria-esc)}
.btn.sec{background:transparent;color:var(--texto);border:1px solid var(--borda)}
.btn.sec:hover{border-color:var(--primaria);color:var(--primaria)}
.btn.perigo{background:var(--vermelho)}
.btn.peq{padding:5px 10px;font-size:13px}
.btn[disabled]{opacity:.6;cursor:wait}
.btn-icone{background:none;border:1px solid var(--borda);border-radius:6px;padding:3px 8px;cursor:pointer;color:var(--suave)}
.btn-icone.perigo:hover{color:var(--vermelho);border-color:var(--vermelho)}
form.inline{display:inline}
.grade-campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 14px}
.campo{display:flex;flex-direction:column;gap:4px}
.campo-largo{grid-column:1/-1}
.campo-check{justify-content:flex-end}
.campo-check label{display:flex;align-items:center;gap:6px;font-weight:400}
label{font-size:13px;font-weight:600;color:var(--suave)}
input,select,textarea{font:inherit;color:var(--texto);background:var(--cartao);border:1px solid var(--borda);border-radius:8px;padding:8px 10px;width:100%}
input[type=checkbox]{width:auto}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--primaria) 35%,transparent);border-color:var(--primaria)}
.form-rodape{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.tabela-wrap{overflow-x:auto;border:1px solid var(--borda);border-radius:12px;background:var(--cartao)}
table.lista{width:100%;border-collapse:collapse;font-size:14px}
table.lista th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--suave);padding:10px 12px;border-bottom:1px solid var(--borda);white-space:nowrap}
table.lista td{padding:10px 12px;border-bottom:1px solid var(--borda);vertical-align:top}
table.lista tr:last-child td{border-bottom:0}
table.lista tr:hover td{background:color-mix(in srgb,var(--primaria) 4%,transparent)}
td.acoes-linha{white-space:nowrap;text-align:right}
.selo{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.selo-verde{background:color-mix(in srgb,var(--verde) 15%,transparent);color:var(--verde)}
.selo-amarelo{background:color-mix(in srgb,var(--amarelo) 16%,transparent);color:var(--amarelo)}
.selo-vermelho{background:color-mix(in srgb,var(--vermelho) 15%,transparent);color:var(--vermelho)}
.selo-azul{background:color-mix(in srgb,var(--azul) 15%,transparent);color:var(--azul)}
.selo-cinza{background:color-mix(in srgb,var(--suave) 15%,transparent);color:var(--suave)}
.aviso{padding:10px 14px;border-radius:10px;margin-bottom:14px;border:1px solid}
.aviso-ok{background:color-mix(in srgb,var(--verde) 10%,transparent);border-color:color-mix(in srgb,var(--verde) 40%,transparent)}
.aviso-erro{background:color-mix(in srgb,var(--vermelho) 10%,transparent);border-color:color-mix(in srgb,var(--vermelho) 40%,transparent)}
.aviso-aviso{background:color-mix(in srgb,var(--amarelo) 10%,transparent);border-color:color-mix(in srgb,var(--amarelo) 40%,transparent)}
.vazio{text-align:center;padding:48px 16px;color:var(--suave);background:var(--cartao);border:1px dashed var(--borda);border-radius:12px}
.vazio h2{color:var(--texto)}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filtros input,.filtros select{width:auto;min-width:200px}
.abas{display:flex;gap:4px;border-bottom:1px solid var(--borda);margin-bottom:16px;overflow-x:auto}
.abas a{padding:9px 14px;text-decoration:none;color:var(--suave);border-bottom:2px solid transparent;white-space:nowrap;font-weight:600;font-size:14px}
.abas a.ativo{color:var(--primaria);border-color:var(--primaria)}
dl.dados{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 18px;margin:0}
dl.dados dt{font-size:12px;color:var(--suave);font-weight:600}
dl.dados dd{margin:0}
.lista-simples{list-style:none;margin:0;padding:0}
.lista-simples li{padding:8px 0;border-bottom:1px solid var(--borda);display:flex;justify-content:space-between;gap:10px}
.lista-simples li:last-child{border:0}
.muted{color:var(--suave);font-size:13px}
.barra{height:8px;border-radius:99px;background:var(--borda);overflow:hidden}
.barra span{display:block;height:100%;background:var(--primaria)}
.linhas-dinamicas .linha-din{display:flex;gap:8px;margin-bottom:8px;align-items:flex-start}
.linhas-dinamicas .linha-din > *{flex:1}
.linhas-dinamicas .linha-din .btn-icone{flex:0 0 auto;margin-top:6px}
.zona-upload{border:2px dashed var(--borda);border-radius:12px;padding:22px;text-align:center;color:var(--suave);cursor:pointer;display:block}
.zona-upload:hover{border-color:var(--primaria)}
.zona-upload input{display:none}
.revisao{border:1px solid var(--borda);border-radius:10px;padding:12px;margin-bottom:12px}
.revisao h3{margin:0 0 8px;font-size:15px;display:flex;gap:8px;align-items:center}
.carregando{display:none;align-items:center;gap:10px;color:var(--suave);margin:10px 0}
.carregando.on{display:flex}
.carregando::before{content:"";width:16px;height:16px;border:2px solid var(--borda);border-top-color:var(--primaria);border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.editor-barra{display:flex;gap:4px;flex-wrap:wrap;padding:6px;border:1px solid var(--borda);border-bottom:0;border-radius:8px 8px 0 0;background:var(--fundo)}
.editor-barra button,.editor-barra select{width:auto;padding:4px 8px;border:1px solid var(--borda);background:var(--cartao);border-radius:6px;cursor:pointer;color:var(--texto);font-size:13px}
.editor{min-height:420px;border:1px solid var(--borda);border-radius:0 0 8px 8px;padding:24px;background:#fff;color:#000;font-family:'Times New Roman',serif;font-size:12pt;line-height:1.6;overflow:auto}
.preview-doc{background:#fff;color:#000;border:1px solid var(--borda);border-radius:8px;padding:28px;font-family:'Times New Roman',serif;font-size:12pt;line-height:1.6;max-height:70vh;overflow:auto}
.preview-doc p{text-align:justify;margin:0 0 10px}
.preview-doc .recuo{text-indent:40px}.preview-doc .direita{text-align:right}.preview-doc .centro{text-align:center}
.preview-doc .doc-titulo{text-align:center;font-size:14pt}
.preview-doc .assinatura{text-align:center;margin:40px auto 0;max-width:360px}.preview-doc .assinatura .linha{border-top:1px solid #000;margin-bottom:4px}
.preview-doc .assinaturas-2{display:flex;gap:30px}.preview-doc .assinaturas-2 .assinatura{flex:1}
.preview-doc .doc-cabecalho,.preview-doc .doc-rodape{text-align:center}
.preview-doc table{width:100%;border-collapse:collapse}.preview-doc td,.preview-doc th{border:1px solid #000;padding:4px}
.carteirinha{width:86mm;height:54mm;border-radius:10px;background:linear-gradient(135deg,#1f4fc1,#14213d);color:#fff;padding:12px;display:flex;gap:10px;font-size:11px}
.carteirinha img{width:22mm;height:28mm;object-fit:cover;border-radius:6px;background:#fff}
.login-caixa{max-width:380px;margin:12vh auto 0}
.login-caixa .cartao{padding:26px}
.pilha > * + *{margin-top:10px}
@media (max-width:900px){
  .lateral{transform:translateX(-100%);transition:transform .2s}
  .lateral.aberta{transform:none}
  .principal{margin-left:0}
  .btn-menu{display:inline-block}
  .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .conteudo{padding:16px}
  .topo{padding:10px 16px}
}
@media (max-width:560px){.g2,.g3,.g4{grid-template-columns:1fr}.filtros input,.filtros select{width:100%}}
@media print{.lateral,.topo,.acoes,.form-rodape,.nao-imprimir{display:none!important}.principal{margin:0}.conteudo{padding:0}}
