:root{
  --navy:#0b1f3a;--navy2:#132d52;--azul:#1f6fff;--azul-bg:#eef4ff;
  --verde:#15803d;--verde-bg:#ecfdf3;--laranja:#c2410c;--laranja-bg:#fff4ed;
  --vermelho:#b91c1c;--vermelho-bg:#fef2f2;--cinza:#64748b;--borda:#e2e8f0;--fundo:#f4f7fc;--texto:#0f172a;
  --raio:12px;--sombra:0 1px 4px rgba(15,23,42,.07);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--fundo);color:var(--texto);font-size:14px}
button{font-family:inherit}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(160deg,var(--navy),var(--navy2))}
.login-card{background:#fff;border-radius:18px;padding:30px 26px;width:100%;max-width:380px;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.login-card img{display:block;height:46px;margin:0 auto 6px}
.login-card .sub{text-align:center;color:var(--cinza);font-size:13px;margin-bottom:22px}
.campo{display:block;font-size:12px;font-weight:700;color:var(--cinza);margin-bottom:12px}
.campo input,.campo select,.campo textarea{width:100%;margin-top:5px;border:1px solid var(--borda);border-radius:9px;padding:10px 12px;font-size:14px;font-family:inherit;outline:none}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--azul)}
.erro-msg{background:var(--vermelho-bg);color:var(--vermelho);border-radius:8px;padding:8px 10px;font-size:13px;margin-bottom:12px;display:none}

/* Botões */
.btn{border:none;border-radius:9px;padding:9px 18px;font-size:13px;font-weight:700;cursor:pointer}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-azul{background:var(--azul);color:#fff}
.btn-verde{background:var(--verde);color:#fff}
.btn-vermelho{background:var(--vermelho);color:#fff}
.btn-laranja{background:var(--laranja);color:#fff}
.btn-linha{background:#fff;color:var(--cinza);border:1px solid var(--borda)}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-bloco{width:100%;padding:12px}

/* Topo */
.topo{background:var(--navy);color:#fff;padding:10px 20px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:50}
.topo img{height:34px}
.topo h1{font-size:16px;font-weight:800;flex:1;letter-spacing:.3px}
.topo .usuario{font-size:12px;opacity:.85}
.topo .btn{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.3)}

.container{max-width:1200px;margin:0 auto;padding:18px 16px}
.abas{display:flex;gap:3px;background:#e2e8f0;border-radius:10px;padding:4px;margin-bottom:16px;overflow-x:auto}
.aba{flex:1;min-width:110px;padding:8px 6px;border:none;background:transparent;border-radius:7px;font-size:13px;font-weight:700;cursor:pointer;color:var(--cinza);white-space:nowrap}
.aba.ativa{background:#fff;color:var(--azul);box-shadow:var(--sombra)}
.aba .cnt{background:var(--laranja);color:#fff;border-radius:20px;padding:1px 7px;font-size:11px;margin-left:4px}
.painel{display:none}.painel.ativo{display:block}

.filtros{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.filtro{border:1px solid var(--borda);background:#fff;color:var(--cinza);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer}
.filtro.ativo{background:var(--azul);border-color:var(--azul);color:#fff}

.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.card{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:14px 16px;box-shadow:var(--sombra);cursor:pointer}
.card:hover{border-color:var(--azul)}
.card .titulo{font-size:15px;font-weight:800;margin-bottom:3px}
.card .linha{font-size:12px;color:var(--cinza);margin-top:2px}
.card .tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.card .acoes{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--borda)}
.valor{font-size:18px;font-weight:800;color:var(--azul)}

.tag{display:inline-flex;align-items:center;font-size:11px;font-weight:700;border-radius:20px;padding:2px 9px}
.tag-azul{background:var(--azul-bg);color:var(--azul)}
.tag-verde{background:var(--verde-bg);color:var(--verde)}
.tag-laranja{background:var(--laranja-bg);color:var(--laranja)}
.tag-vermelho{background:var(--vermelho-bg);color:var(--vermelho)}
.tag-cinza{background:#f1f5f9;color:var(--cinza)}
.tag-rj{background:#dcfce7;color:#166534}
.tag-sp{background:#dbeafe;color:#1e40af}

.vazio,.carregando{text-align:center;padding:40px 10px;color:var(--cinza)}
.aviso{background:var(--azul-bg);color:var(--navy);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px}

/* Modal: fecha só pelos botões */
.fundo-modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:100;align-items:center;justify-content:center;padding:12px}
.fundo-modal.aberto{display:flex}
.modal{background:#fff;border-radius:14px;width:100%;max-width:640px;max-height:92vh;display:flex;flex-direction:column}
.modal-cab{padding:14px 18px;border-bottom:1px solid var(--borda);font-size:16px;font-weight:800}
.modal-corpo{padding:14px 18px;overflow-y:auto;flex:1}
.modal-rodape{padding:12px 18px;border-top:1px solid var(--borda);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.dados{display:grid;grid-template-columns:140px 1fr;gap:6px 10px;font-size:13px;margin-bottom:12px}
.dados dt{color:var(--cinza);font-weight:700}
.docs{display:flex;flex-direction:column;gap:6px}
.docs a{display:flex;justify-content:space-between;border:1px solid var(--borda);border-radius:8px;padding:8px 12px;color:var(--azul);text-decoration:none;font-weight:700;font-size:13px}

.toast{position:fixed;bottom:20px;right:20px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:10px;font-size:13px;z-index:200;opacity:0;transform:translateY(80px);transition:.3s;pointer-events:none}
.toast.mostra{opacity:1;transform:none}
.toast.erro{background:var(--vermelho)}

@media(max-width:560px){
  .topo .usuario{display:none}
  .dados{grid-template-columns:1fr}
  .dados dt{margin-top:6px}
}
