/* Tribbe V3 - Custom Styles */

/* HTMX loading indicator */
.htmx-indicator {
  opacity: 0;
  transition: opacity 200ms ease-in;
}
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator {
  opacity: 1;
}

/* Smooth transitions for HTMX swaps */
.htmx-swapping {
  opacity: 0;
  transition: opacity 100ms ease-out;
}
.htmx-settling {
  opacity: 1;
  transition: opacity 200ms ease-in;
}

/* Sidebar active state */
.menu li a.active {
  background-color: oklch(var(--p) / 0.1);
  color: oklch(var(--p));
  font-weight: 600;
}

/* Table improvements */
.table th {
  white-space: nowrap;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: oklch(var(--bc) / 0.6);
}

/* Score badges */
.score-high {
  @apply badge badge-success;
}
.score-medium {
  @apply badge badge-warning;
}
.score-low {
  @apply badge badge-error;
}

/* Stat cards hover */
.stat-card {
  transition:
    transform 150ms ease,
    box-shadow 150ms ease;
}
.stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Price formatting */
.price-positive {
  color: oklch(var(--su));
}
.price-negative {
  color: oklch(var(--er));
}

/* Opportunity badge pulse */
.opp-badge {
  animation: pulse-badge 2s infinite;
}
@keyframes pulse-badge {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

/* Search results dropdown */
#search-results:not(:empty) {
  background: oklch(var(--b1));
  border: 1px solid oklch(var(--bc) / 0.1);
  border-radius: var(--rounded-box, 1rem);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
  max-height: 400px;
  overflow-y: auto;
}

/* Print styles */
@media print {
  .navbar,
  .sidebar,
  .no-print {
    display: none !important;
  }
  main {
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Glassmorphism & Modern UI */
.glass-card {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.07);
}

.grad-primary {
  background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
}
.grad-success {
  background: linear-gradient(135deg, #10b981 0%, #047857 100%);
}
.grad-warning {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}
.grad-info {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}
.grad-error {
  background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%);
}

.text-glow {
  text-shadow: 0 0 15px rgba(255, 255, 255, 0.5);
}

.card-icon-bg {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: white;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
