/* site.css — project-specific overrides (base styles in olvidata-theme.css) */

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(43, 157, 228, .3);
}

/* Smooth page transitions */
main {
  animation: fadeIn 250ms ease-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Dashboard stat cards */
.ov-stat-card {
  transition: all 300ms cubic-bezier(.4, 0, .2, 1);
  border-radius: 1rem;
}

.ov-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.09) !important;
}

.ov-stat-card.transition-all {
  cursor: pointer;
}

.ov-stat-card.transition-all:active {
  transform: translateY(-1px);
}

/* Progress bar animation */
.progress {
  border-radius: 0.5rem;
  background-color: rgba(0, 0, 0, 0.06);
}

.progress-bar {
  background: linear-gradient(90deg, #2b9de4, #1a6fb5);
  transition: width 500ms ease-out;
}

/* Alert animations */
.alert {
  animation: slideDown 300ms ease-out;
  border-left: 4px solid !important;
  border-radius: 0.75rem;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Card spacing en grid */
.row.g-3 > .col-12,
.row.g-3 > [class*='col-'],
.row.g-4 > .col-12,
.row.g-4 > [class*='col-'] {
  display: flex;
}

.row.g-3 > .col-12 > .card,
.row.g-3 > [class*='col-'] > .card,
.row.g-4 > .col-12 > .card,
.row.g-4 > [class*='col-'] > .card,
.row.g-3 > .col-12 > a > .card,
.row.g-3 > [class*='col-'] > a > .card,
.row.g-4 > .col-12 > a > .card,
.row.g-4 > [class*='col-'] > a > .card {
  flex: 1;
}

/* Table styling en dashboard */
.table-hover tbody tr:hover {
  background-color: rgba(43, 157, 228, 0.04);
}

.table th {
  font-weight: 600;
  color: rgba(0, 0, 0, 0.6);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.table td {
  vertical-align: middle;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
