/* SIPREV — CSS Principal */
:root {
  --azul:       #0f2b46;
  --azul-med:   #1a5276;
  --azul-claro: #e8f4fd;
  --verde:      #1a7a4a;
  --vermelho:   #c0392b;
  --amarelo:    #f39c12;
  --borda:      #d5dde5;
  --cinza:      #f5f7fa;
  --cinza-med:  #95a5b6;
  --texto:      #1a2332;
  --label:      #3a5070;
  --radius:     8px;
  --sombra:     0 2px 12px rgba(15,43,70,.08);
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Segoe UI',system-ui,-apple-system,sans-serif; background:#eef2f7; color:var(--texto); font-size:14px; }
a { color:var(--azul-med); text-decoration:none; }

/* NAV */
.nav-top { background:var(--azul); color:#fff; padding:0 24px; box-shadow:0 2px 8px rgba(0,0,0,.15); position:sticky; top:0; z-index:100; }
.nav-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; gap:32px; height:60px; }
.nav-logo { display:flex; align-items:center; gap:10px; color:#fff; }
.nav-logo strong { font-size:18px; display:block; line-height:1.1; }
.nav-logo small { font-size:11px; opacity:.7; }
.logo-icon { font-size:28px; }
.nav-links { display:flex; gap:4px; margin-left:auto; }
.nav-links a { color:rgba(255,255,255,.7); padding:8px 16px; border-radius:6px; font-size:13px; font-weight:500; transition:.15s; }
.nav-links a:hover { color:#fff; background:rgba(255,255,255,.1); }
.nav-links a.active { color:#fff; background:rgba(255,255,255,.15); }

/* CONTAINER */
.container { max-width:1280px; margin:24px auto; padding:0 24px; }

/* CARDS */
.card { background:#fff; border:1px solid var(--borda); border-radius:var(--radius); box-shadow:var(--sombra); margin-bottom:20px; }
.card-header { padding:16px 24px; border-bottom:1px solid var(--borda); display:flex; align-items:center; gap:12px; }
.card-header h2 { font-size:15px; font-weight:700; color:var(--azul); }
.card-header .icon { font-size:22px; }
.card-header .badge { margin-left:auto; background:var(--azul-claro); color:var(--azul-med); font-size:11px; font-weight:600; padding:3px 10px; border-radius:12px; }
.card-body { padding:20px 24px; }
.card-footer { padding:14px 24px; border-top:1px solid var(--borda); background:var(--cinza); border-radius:0 0 var(--radius) var(--radius); display:flex; gap:10px; justify-content:flex-end; }

/* DASHBOARD GRID */
.dash-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; margin-bottom:24px; }
.stat-card { background:#fff; border:1px solid var(--borda); border-radius:var(--radius); padding:20px; box-shadow:var(--sombra); display:flex; align-items:center; gap:16px; }
.stat-card .stat-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.stat-card .stat-icon.azul { background:var(--azul-claro); }
.stat-card .stat-icon.verde { background:#e8f5e9; }
.stat-card .stat-icon.amarelo { background:#fff8e1; }
.stat-card .stat-icon.vermelho { background:#fde8e8; }
.stat-card .stat-info .num { font-size:28px; font-weight:700; color:var(--azul); line-height:1; }
.stat-card .stat-info .label { font-size:12px; color:var(--cinza-med); margin-top:4px; }

/* TABELAS */
.tbl { width:100%; border-collapse:collapse; }
.tbl thead th { background:var(--azul); color:#fff; padding:10px 14px; text-align:left; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.tbl tbody td { padding:10px 14px; border-bottom:1px solid var(--borda); font-size:13px; }
.tbl tbody tr:hover td { background:var(--azul-claro); }
.tbl tbody tr:nth-child(even) td { background:var(--cinza); }

/* FORMULÁRIOS */
.form-grid { display:grid; gap:14px 18px; }
.form-grid.g2 { grid-template-columns:1fr 1fr; }
.form-grid.g3 { grid-template-columns:1fr 1fr 1fr; }
.form-grid.g4 { grid-template-columns:1fr 1fr 1fr 1fr; }
.campo label { display:block; font-size:11px; font-weight:600; color:var(--label); text-transform:uppercase; margin-bottom:4px; letter-spacing:.03em; }
.campo input, .campo select, .campo textarea {
  width:100%; border:1px solid var(--borda); border-radius:5px;
  padding:8px 12px; font-size:13px; color:var(--texto);
  background:var(--cinza); font-family:inherit; transition:.15s;
}
.campo input:focus, .campo select:focus, .campo textarea:focus { outline:none; border-color:var(--azul-med); background:#fff; }
.campo textarea { resize:vertical; min-height:80px; }

/* BOTÕES */
.btn { display:inline-flex; align-items:center; gap:6px; border:none; border-radius:5px; padding:9px 20px; font-size:13px; font-weight:600; cursor:pointer; transition:.15s; font-family:inherit; }
.btn-primary { background:var(--azul-med); color:#fff; }
.btn-primary:hover { background:var(--azul); }
.btn-success { background:var(--verde); color:#fff; }
.btn-success:hover { background:#145c38; }
.btn-danger { background:var(--vermelho); color:#fff; }
.btn-danger:hover { background:#922b21; }
.btn-outline { background:#fff; color:var(--texto); border:1px solid var(--borda); }
.btn-outline:hover { background:var(--cinza); }
.btn-sm { padding:5px 12px; font-size:11px; }

/* UPLOAD */
.upload-area {
  border:2px dashed var(--borda); border-radius:var(--radius);
  padding:40px; text-align:center; cursor:pointer;
  transition:.2s; background:var(--cinza);
}
.upload-area:hover { border-color:var(--azul-med); background:var(--azul-claro); }
.upload-area.dragover { border-color:var(--verde); background:#e8f5e9; }
.upload-area .icon { font-size:48px; margin-bottom:12px; display:block; }
.upload-area .title { font-size:15px; font-weight:600; color:var(--azul); }
.upload-area .sub { font-size:12px; color:var(--cinza-med); margin-top:4px; }
.upload-area input[type=file] { display:none; }

/* ALERTAS */
.alert { padding:12px 18px; border-radius:6px; margin-bottom:16px; font-size:13px; display:flex; align-items:center; gap:8px; }
.alert-ok { background:#d4edda; border:1px solid #c3e6cb; color:#155724; }
.alert-err { background:#f8d7da; border:1px solid #f5c6cb; color:#721c24; }
.alert-warn { background:#fff3cd; border:1px solid #ffc107; color:#856404; }
.alert-info { background:var(--azul-claro); border:1px solid #b8daff; color:#004085; }

/* STATUS BADGES */
.badge-status { font-size:11px; font-weight:600; padding:3px 10px; border-radius:12px; }
.badge-rascunho { background:#e9ecef; color:#495057; }
.badge-validado { background:#d4edda; color:#155724; }
.badge-enviado { background:var(--azul-claro); color:var(--azul-med); }
.badge-rejeitado { background:#f8d7da; color:#721c24; }

/* PROGRESS */
.progress-bar { height:6px; background:#e9ecef; border-radius:3px; overflow:hidden; margin-top:8px; }
.progress-bar .fill { height:100%; border-radius:3px; transition:width .3s; }
.fill-ok { background:var(--verde); }
.fill-warn { background:var(--amarelo); }
.fill-err { background:var(--vermelho); }

/* FOOTER */
.footer { text-align:center; padding:20px; color:var(--cinza-med); font-size:12px; margin-top:40px; }

/* REMESSA CHECKLIST */
.checklist { list-style:none; }
.checklist li { padding:10px 14px; border-bottom:1px solid var(--borda); display:flex; align-items:center; gap:10px; font-size:13px; }
.checklist li:last-child { border-bottom:none; }
.check-ok { color:var(--verde); }
.check-empty { color:var(--cinza-med); }
.check-err { color:var(--vermelho); }

/* RESPONSIVE */
@media (max-width:768px) {
  .form-grid.g2, .form-grid.g3, .form-grid.g4 { grid-template-columns:1fr; }
  .dash-grid { grid-template-columns:1fr; }
  .nav-links { display:none; }
}
