/**
 * app.css – Anwendungsweite Stile (ergänzt theme.css und Tailwind)
 */

/* Inter-Schrift von Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* Utility-Klassen die Tailwind ergänzen */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

/* Ladeanimation für Ajax-Aktionen */
.spinner {
  display: inline-block;
  width:   1.2rem; height: 1.2rem;
  border:  2px solid rgba(255,255,255,.3);
  border-top-color: currentColor;
  border-radius: 50%;
  animation: spin .6s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Fade-Animation für Modals und Alerts */
.fade-in  { animation: fadeIn .2s ease-out; }
.fade-out { animation: fadeIn .2s ease-out reverse; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-6px); } }

/* Tabellen-Zeilen-Status */
tr.row-danger  td { background: #fff5f5 !important; }
tr.row-warning td { background: #fffcf0 !important; }

/* Print-Styles */
.print-only { display: none; }
@media print { .print-only { display: block; } }

/* Toast-Benachrichtigungen */
#toast-container {
  position:   fixed;
  bottom:     1.5rem;
  right:      1.5rem;
  z-index:    9999;
  display:    flex;
  flex-direction: column;
  gap:        .5rem;
  max-width:  380px;
}
.toast {
  background:    var(--color-surface);
  border-radius: var(--card-radius);
  box-shadow:    0 4px 16px rgba(0,0,0,.12);
  padding:       .85rem 1.1rem;
  display:       flex;
  align-items:   center;
  gap:           .6rem;
  font-size:     .9rem;
  border-left:   4px solid var(--color-info);
  animation:     slideIn .25s ease-out;
}
.toast-success { border-color: var(--color-success); }
.toast-danger  { border-color: var(--color-danger); }
.toast-warning { border-color: var(--color-warning); }
@keyframes slideIn {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Inline Suchergebnis-Highlight */
mark { background: #fef08a; border-radius: 2px; padding: 0 2px; }
