:root{--azul:#1F3A8A;--vermelho:#C8102E;--cinza:#6b7280;--fundo:#f6f7fb;--borda:#e2e5ee}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;background:var(--fundo);color:#1f2937;font-size:15px}
a{color:var(--azul)}header.top{background:#fff;border-bottom:3px solid var(--vermelho);display:flex;align-items:center;gap:16px;padding:8px 24px;position:sticky;top:0;z-index:5}
header.top img{height:44px}header.top .marca{font-weight:800;color:var(--azul);font-size:18px}header.top nav a{margin-right:14px;text-decoration:none;font-weight:600}
header.top .user{margin-left:auto;color:var(--cinza);font-size:13px}
main{max-width:1180px;margin:20px auto;padding:0 16px}
h1{color:var(--azul);font-size:24px;margin:8px 0 16px}h2{color:var(--azul);font-size:18px;border-bottom:2px solid var(--vermelho);padding-bottom:4px;margin-top:28px}
h3{font-size:15px;color:var(--vermelho);margin:14px 0 6px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.card{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:14px}
.card .n{font-size:28px;font-weight:800;color:var(--azul)}.card .l{color:var(--cinza);font-size:13px}.card.alerta .n{color:var(--vermelho)}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borda);border-radius:10px;overflow:hidden;font-size:14px}
th{background:var(--azul);color:#fff;text-align:left;padding:8px}td{padding:7px 8px;border-top:1px solid var(--borda);vertical-align:top}
tr:hover td{background:#f3f5fb}
.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#e8ecf8;color:var(--azul)}
.tag.ok{background:#e3f6e8;color:#157347}.tag.warn{background:#fff3cd;color:#8a6100}.tag.err{background:#fde2e4;color:var(--vermelho)}
form.inline{display:inline}input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #cbd0dc;border-radius:8px;width:100%;background:#fff}
textarea{min-height:90px}label{font-size:12px;color:var(--cinza);display:block;margin:8px 0 2px}
.grid{display:grid;gap:10px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:repeat(4,1fr)}
button,.btn{font:inherit;background:var(--azul);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-block}
button.sec,.btn.sec{background:#fff;color:var(--azul);border:1px solid var(--azul)}button.red,.btn.red{background:var(--vermelho)}button.sm,.btn.sm{padding:4px 10px;font-size:13px}
.box{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:16px;margin:12px 0}
.aviso{background:#fff8e6;border-left:4px solid #f0b429;padding:10px 12px;border-radius:8px;font-size:13px}
.ia{background:#eef2ff;border-left:4px solid var(--azul);padding:10px 12px;border-radius:8px;font-size:13px}
details summary{cursor:pointer;font-weight:600;color:var(--azul)}
pre.json{background:#0f172a;color:#e2e8f0;padding:12px;border-radius:8px;font-size:12px;overflow:auto;max-height:420px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.tabs a{background:#fff;border:1px solid var(--borda);padding:6px 10px;border-radius:8px;text-decoration:none;font-size:13px}
.login{max-width:380px;margin:80px auto;text-align:center}.login img{width:120px}.muted{color:var(--cinza);font-size:13px}
.timeline{display:flex;gap:6px;flex-wrap:wrap}.timeline span{padding:3px 8px;border-radius:6px;font-size:12px;background:#e8ecf8}
.timeline .nao_iniciado{background:#eee}.timeline .emergente{background:#fff3cd}.timeline .em_desenvolvimento{background:#dbeafe}.timeline .alcancado{background:#d1fae5}.timeline .generalizado{background:#a7f3d0}
