:root {
  --brand: #0f4c81;
  --brand-2: #1d6fa5;
  --ok: #0f766e;
  --warn: #b45309;
  --danger: #b91c1c;
}
body { font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
.nav-link { display:block; padding:.65rem .8rem; border-radius:.75rem; color:#cbd5e1; }
.nav-link:hover { background:#1e293b; color:white; }
.btn { border-radius:.75rem; padding:.55rem .9rem; font-weight:600; display:inline-flex; align-items:center; justify-content:center; }
.btn-primary { background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:white; }
.btn-primary:hover { filter:brightness(1.05); }
.btn-secondary { background:#e2e8f0; color:#0f172a; }
.btn-danger { background:#fee2e2; color:#991b1b; }
.card { background:white; border-radius:1rem; border:1px solid #e2e8f0; box-shadow:0 8px 24px rgba(15,23,42,.04); }
.input, .select, .textarea { width:100%; border:1px solid #cbd5e1; border-radius:.75rem; padding:.55rem .7rem; background:white; }
.input:focus, .select:focus, .textarea:focus { outline:2px solid rgba(29,111,165,.2); border-color:#1d6fa5; }
.badge { display:inline-flex; align-items:center; border-radius:999px; padding:.2rem .55rem; font-size:.75rem; font-weight:600; }
.badge-ok { background:#ccfbf1; color:#115e59; }
.badge-warn { background:#fef3c7; color:#92400e; }
.badge-danger { background:#fee2e2; color:#991b1b; }
.badge-info { background:#dbeafe; color:#1d4ed8; }
.table-wrap { overflow:auto; }
.table { width:100%; font-size:.9rem; }
.table th { text-align:left; padding:.75rem; color:#475569; background:#f8fafc; }
.table td { padding:.75rem; border-top:1px solid #e2e8f0; vertical-align:top; }
.section-title { font-size:1.05rem; font-weight:700; margin-bottom:.75rem; }
