@import "tailwindcss";

:root {
  --font-sans: var(--font-inter);

  /* RistoFlow Brand Colors */
  --rf-primary: #059669;
  --rf-primary-dark: #047857;
  --rf-primary-light: #10b981;

  /* Status Colors */
  --rf-success: #22c55e;
  --rf-warning: #f59e0b;
  --rf-danger: #ef4444;
  --rf-info: #3b82f6;

  /* Temperature Status */
  --temp-ok: #22c55e;
  --temp-warning: #f59e0b;
  --temp-critical: #ef4444;
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Base styles */
body {
  font-family: var(--font-sans), system-ui, -apple-system, sans-serif;
}

/* Focus styles */
*:focus-visible {
  outline: 2px solid var(--rf-primary);
  outline-offset: 2px;
}

/* Print styles for HACCP reports */
@media print {
  .no-print {
    display: none !important;
  }

  .print-break {
    page-break-before: always;
  }

  body {
    background: white !important;
  }
}

/* Animations */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slide-in {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes pulse-ring {
  0% {
    transform: scale(0.8);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.2);
    opacity: 0.4;
  }
  100% {
    transform: scale(0.8);
    opacity: 0.8;
  }
}

.animate-fade-in {
  animation: fade-in 0.3s ease-out;
}

.animate-slide-in {
  animation: slide-in 0.3s ease-out;
}

.animate-pulse-ring {
  animation: pulse-ring 2s infinite;
}

/* Status indicator dots */
.status-dot {
  @apply inline-block w-2 h-2 rounded-full;
}

.status-dot-ok {
  @apply bg-green-500;
}

.status-dot-warning {
  @apply bg-amber-500;
}

.status-dot-critical {
  @apply bg-red-500 animate-pulse;
}

/* HACCP specific styles */
.haccp-temp-ok {
  @apply bg-green-50 border-green-200 text-green-700;
}

.haccp-temp-warning {
  @apply bg-amber-50 border-amber-200 text-amber-700;
}

.haccp-temp-critical {
  @apply bg-red-50 border-red-200 text-red-700;
}

/* Allergen badges */
.allergen-badge {
  @apply inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium;
}

/* Data table styles */
.data-table {
  @apply w-full border-collapse;
}

.data-table th {
  @apply px-4 py-3 text-left text-xs font-semibold text-gray-500 uppercase tracking-wider bg-gray-50 border-b border-gray-200;
}

.data-table td {
  @apply px-4 py-3 text-sm text-gray-700 border-b border-gray-100;
}

.data-table tr:hover td {
  @apply bg-gray-50;
}

/* Card hover effect */
.card-hover {
  @apply transition-all duration-200 hover:shadow-lg hover:-translate-y-0.5;
}

/* Dashboard KPI cards */
.kpi-card {
  @apply relative overflow-hidden rounded-xl bg-white p-6 shadow-sm border border-gray-100;
}

.kpi-card::before {
  content: '';
  @apply absolute top-0 left-0 w-1 h-full;
}

.kpi-card-success::before {
  @apply bg-green-500;
}

.kpi-card-warning::before {
  @apply bg-amber-500;
}

.kpi-card-danger::before {
  @apply bg-red-500;
}

.kpi-card-info::before {
  @apply bg-blue-500;
}

/* QR Code container */
.qr-container {
  @apply bg-white p-4 rounded-lg shadow-sm border border-gray-200 inline-block;
}

/* Signature canvas */
.signature-canvas {
  @apply border-2 border-dashed border-gray-300 rounded-lg bg-gray-50 cursor-crosshair;
}

.signature-canvas.signed {
  @apply border-solid border-emerald-300 bg-white;
}
