.k-toast-wrap {
  position: fixed; bottom: 20px; inset-inline-end: 20px; z-index: 200;
  display: flex; flex-direction: column; gap: 8px;
}
.k-toast {
  background: var(--k-white);
  border: 0.5px solid var(--k-gray-300);
  border-inline-start: 3px solid var(--k-black);
  padding: 14px 18px;
  min-width: 280px;
  font-size: 14px;
  display: flex; align-items: center; gap: 10px;
  animation: kToastIn 0.25s var(--k-ease-out);
}
.k-toast.success { border-inline-start-color: var(--k-success); background: var(--k-success-bg); color: var(--k-success); }
.k-toast.error { border-inline-start-color: var(--k-err); background: var(--k-err-bg); color: var(--k-err); }
.k-toast.warn { border-inline-start-color: var(--k-warn); background: var(--k-warn-bg); color: var(--k-warn); }
.k-toast.info { border-inline-start-color: var(--k-info); background: var(--k-info-bg); color: var(--k-info); }
@keyframes kToastIn { from { opacity: 0; transform: translateY(10px);} to { opacity: 1; transform: translateY(0);} }

.k-alert {
  padding: 14px 18px;
  border: 0.5px solid var(--k-gray-300);
  font-size: 14px;
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 16px;
}
.k-alert.success { background: var(--k-success-bg); border-color: var(--k-success); color: var(--k-success); }
.k-alert.error { background: var(--k-err-bg); border-color: var(--k-err); color: var(--k-err); }
.k-alert.info { background: var(--k-info-bg); border-color: var(--k-info); color: var(--k-info); }
.k-alert.warn { background: var(--k-warn-bg); border-color: var(--k-warn); color: var(--k-warn); }

.k-empty {
  text-align: center; padding: 80px 24px;
}
.k-empty i { font-size: 80px; color: var(--k-beige-300); margin-bottom: 16px; }
.k-empty h3 { font-size: 22px; margin-bottom: 8px; }
.k-empty p { color: var(--k-gray-500); margin-bottom: 24px; }

.k-skel {
  background: linear-gradient(90deg, var(--k-gray-100) 0%, var(--k-gray-50) 50%, var(--k-gray-100) 100%);
  background-size: 200% 100%;
  animation: kShimmer 1.4s linear infinite;
}
@keyframes kShimmer { from { background-position: 200% 0;} to { background-position: -200% 0;} }
.k-skel-card { aspect-ratio: 4/5; }
.k-skel-line { height: 12px; margin-top: 10px; }
