/* Bootstrap 5 Custom Theme - KAI KSR */
/* Überschreibt Bootstrap-Variablen mit Projektfarben */

:root {
  /* Primary Colors */
  --bs-primary: #2563eb;
  --bs-primary-rgb: 37, 99, 235;

  /* Secondary Colors */
  --bs-secondary: #f59e0b;
  --bs-secondary-rgb: 245, 158, 11;

  /* Body */
  --bs-body-bg: #f8fafc;
  --bs-body-color: #1e293b;

  /* Links */
  --bs-link-color: #2563eb;
  --bs-link-hover-color: #1e40af;

  /* Border Radius */
  --bs-border-radius: 8px;
  --bs-border-radius-sm: 6px;
  --bs-border-radius-lg: 12px;
  --bs-border-radius-xl: 16px;

  /* Shadows */
  --bs-box-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --bs-box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --bs-box-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);

  /* Legacy Variables Mapping */
  --text-light: #64748b;
  --border-color: #e2e8f0;
}

/* Primary Button */
.btn-primary {
  --bs-btn-bg: #2563eb;
  --bs-btn-border-color: #2563eb;
  --bs-btn-hover-bg: #1e40af;
  --bs-btn-hover-border-color: #1e40af;
  --bs-btn-active-bg: #1d4ed8;
  --bs-btn-active-border-color: #1d4ed8;
  --bs-btn-disabled-bg: #93c5fd;
  --bs-btn-disabled-border-color: #93c5fd;
}

/* Secondary Button */
.btn-secondary {
  --bs-btn-bg: #64748b;
  --bs-btn-border-color: #64748b;
  --bs-btn-hover-bg: #475569;
  --bs-btn-hover-border-color: #475569;
}

/* Outline Primary Button */
.btn-outline-primary {
  --bs-btn-color: #2563eb;
  --bs-btn-border-color: #2563eb;
  --bs-btn-hover-bg: #2563eb;
  --bs-btn-hover-border-color: #2563eb;
  --bs-btn-active-bg: #1e40af;
  --bs-btn-active-border-color: #1e40af;
}

/* Cards */
.card {
  --bs-card-border-radius: var(--bs-border-radius-lg);
  --bs-card-box-shadow: var(--bs-box-shadow);
  border: 1px solid var(--border-color);
  box-shadow: var(--bs-card-box-shadow);
}

/* Navbar */
.navbar {
  --bs-navbar-padding-y: 0.75rem;
}

.navbar-brand img {
  height: 40px;
}

/* Offcanvas */
.offcanvas {
  --bs-offcanvas-width: 280px;
}

/* Forms */
.form-control:focus,
.form-select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.15);
}

.form-check-input:checked {
  background-color: #2563eb;
  border-color: #2563eb;
}

/* Alerts / Cookie Banner */
.alert-info {
  --bs-alert-bg: #eff6ff;
  --bs-alert-border-color: #bfdbfe;
  --bs-alert-color: #1e40af;
}

/* Accordion */
.accordion-button:not(.collapsed) {
  background-color: #eff6ff;
  color: #2563eb;
}

.accordion-button:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.15);
}

/* Modal */
.modal-content {
  border-radius: var(--bs-border-radius-lg);
}

/* List Group */
.list-group-item.active {
  background-color: #2563eb;
  border-color: #2563eb;
}

/* Badge */
.badge.bg-primary {
  background-color: #2563eb !important;
}

/* Progress */
.progress-bar {
  background-color: #2563eb;
}

/* Typography */
body {
  font-family: 'Inter', 'Roboto', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.025em;
}

/* Utility Classes */
.text-primary {
  color: #2563eb !important;
}

.bg-primary {
  background-color: #2563eb !important;
}

.border-primary {
  border-color: #2563eb !important;
}

/* Smooth Transitions */
.btn,
.form-control,
.form-select,
.card,
.nav-link {
  transition: all 0.2s ease;
}

/* Responsive Helpers */
@media (max-width: 768px) {
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* Spin animation for Bootstrap Icons (replaces FontAwesome fa-spin) */
@keyframes bi-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.bi-spin {
  display: inline-block;
  animation: bi-spin 1s linear infinite;
}
