:root{ --snl-radius: 1.25rem; }
body{ background:#f6f7fb; }
.navbar{ box-shadow:0 10px 25px rgba(0,0,0,.06); }
.card{ border:0; border-radius:var(--snl-radius); box-shadow:0 12px 30px rgba(15,23,42,.06); }
.table{ --bs-table-bg:transparent; }
.badge{ border-radius:999px; padding:.45rem .7rem; font-weight:600; }
.kpi{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.kpi-title{ color:#64748b; font-size:.85rem; }
.kpi-value{ font-size:1.6rem; font-weight:800; letter-spacing:-.02em; }
.kpi-sub{ color:#94a3b8; font-size:.8rem; }
.section-title{ font-weight:800; letter-spacing:-.02em; }
.small-muted{ color:#94a3b8; font-size:.85rem; }
.toast-container{ z-index:1080; }
.toast{ border-radius:1rem; animation:snl-toast-in .38s cubic-bezier(.16,.84,.44,1); }
.toast.hide{ animation:snl-toast-out .26s cubic-bezier(.55,.06,.68,.19) forwards; }
.toast .toast-icon{ font-size:1.1rem; opacity:.95; }
.toast.text-bg-success .toast-icon{ color:#dcfce7; }
.toast.text-bg-info .toast-icon{ color:#e0f2fe; }
.toast.text-bg-warning .toast-icon{ color:#fef9c3; }
.toast.text-bg-danger .toast-icon{ color:#fee2e2; }
@keyframes snl-toast-in{
  from{ transform:translateY(12px); opacity:0; }
  to{ transform:translateY(0); opacity:1; }
}
@keyframes snl-toast-out{
  from{ transform:translateY(0); opacity:1; }
  to{ transform:translateY(12px); opacity:0; }
}
