:root { --azul:#1a5276; --cinza:#f4f6f7; --borda:#d5dbdb; }
* { box-sizing:border-box; }
body { font-family:-apple-system,Segoe UI,Roboto,sans-serif; margin:0; color:#212f3c; background:var(--cinza); }
header { background:var(--azul); color:#fff; }
.topo { max-width:1280px; margin:0 auto; padding:12px 28px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.topo h1 { margin:0; font-size:17px; white-space:nowrap; }
.topo nav { display:flex; gap:4px; flex:1; flex-wrap:wrap; }
.topo nav a { color:#fff; text-decoration:none; padding:6px 12px; border-radius:6px; font-size:14px; opacity:.85; }
.topo nav a:hover { background:rgba(255,255,255,.12); opacity:1; }
.topo nav a.ativo { background:rgba(255,255,255,.2); opacity:1; font-weight:600; }
.sair { display:flex; align-items:center; gap:10px; font-size:13px; margin:0; }
.sair button { padding:4px 10px; border:1px solid rgba(255,255,255,.5); background:transparent; color:#fff; border-radius:6px; cursor:pointer; }
main { max-width:1280px; margin:0 auto; padding:20px 28px 60px; }
section { background:#fff; border:1px solid var(--borda); border-radius:8px; padding:18px 22px; margin-top:20px; }
h2 { font-size:16px; margin:0 0 12px; color:var(--azul); }
.cards { display:flex; flex-wrap:wrap; gap:12px; }
.card { flex:1 1 170px; background:#fff; border:1px solid var(--borda); border-radius:8px; padding:14px 16px; }
.card .rotulo { font-size:12px; color:#5d6d7e; }
.card .num { font-size:20px; font-weight:700; margin-top:4px; }
.card.destaque { border-color:var(--azul); background:#eaf2f8; }
table { border-collapse:collapse; width:100%; font-size:13px; }
th, td { padding:6px 10px; border-bottom:1px solid var(--borda); text-align:right; white-space:nowrap; }
th { background:var(--cinza); position:sticky; top:0; }
td.txt, th.txt { text-align:left; }
.rolagem { overflow-x:auto; max-height:560px; overflow-y:auto; border:1px solid var(--borda); }
input[type=search], input[type=number], select { padding:8px 10px; font-size:14px; border:1px solid var(--borda); border-radius:6px; }
input[type=search] { width:340px; max-width:100%; }
.neg { color:#a93226; } .pos { color:#1e8449; }
tr.nunca td { background:#fdecea; }
pre { font-size:12px; white-space:pre-wrap; background:var(--cinza); padding:12px; border-radius:6px; }
button, .botao { padding:6px 14px; border:1px solid var(--azul); background:#fff; color:var(--azul); border-radius:6px; cursor:pointer; font-size:13px; text-decoration:none; display:inline-block; }
button:disabled { opacity:.45; cursor:default; }
button.primario, .botao.primario { background:var(--azul); color:#fff; }
.filtros { display:flex; gap:14px; align-items:center; flex-wrap:wrap; font-size:14px; margin-bottom:12px; }
.filtros label { display:flex; align-items:center; gap:6px; }
.resumo-linha { font-weight:600; font-size:13px; margin:8px 0; }
.msg { padding:10px 14px; border-radius:6px; margin-top:14px; font-size:14px; }
.msg-success { background:#e8f8f0; border:1px solid #1e8449; }
.msg-warning { background:#fef9e7; border:1px solid #b7950b; }
.msg-error { background:#fdecea; border:1px solid #a93226; }
.paginacao { display:flex; gap:10px; align-items:center; margin-top:12px; font-size:14px; }
.login-box { max-width:360px; margin:80px auto; background:#fff; border:1px solid var(--borda); border-radius:8px; padding:28px; }
.login-box input { width:100%; margin:6px 0 14px; padding:9px 10px; font-size:15px; border:1px solid var(--borda); border-radius:6px; }
.badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:12px; background:var(--cinza); }
.badge.ok { background:#e8f8f0; color:#1e8449; }
.badge.erro { background:#fdecea; color:#a93226; }
.badge.rodando { background:#fef9e7; color:#b7950b; }
tr.det > td { background:#fbfcfc; white-space:normal; }
.subtabela { margin:8px 0; }
.upload-area { border:2px dashed var(--borda); border-radius:8px; padding:26px; text-align:center; color:#5d6d7e; }
