* { font-family: 'Vazirmatn', Tahoma, sans-serif; }
body { margin: 0; background: #f8fafc; }

.lab-banner {
  background: linear-gradient(120deg, #0d9488 0%, #0e7490 45%, #1d4ed8 100%);
  box-shadow: 0 8px 24px rgba(13,148,136,0.25);
}

.pulse-line {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.08) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: sweep 6s linear infinite;
  opacity: 0.6;
  pointer-events: none;
}
@keyframes sweep { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.btn-primary {
  background: linear-gradient(120deg, #0d9488, #0e7490);
  color: #fff;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-primary:hover { filter: brightness(1.08); box-shadow: 0 6px 18px rgba(13,148,136,0.35); transform: translateY(-1px); }
.btn-primary:active { transform: translateY(0); }

.reveal { animation: fadeUp .45s ease both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

.spinner {
  width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff; border-radius: 50%; display: inline-block;
  animation: spin .7s linear infinite;
}
.spinner-lg {
  width: 40px; height: 40px; border: 4px solid #cbd5e1;
  border-top-color: #0d9488; border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.toast { animation: toastIn .3s ease both; }
@keyframes toastIn { from { opacity: 0; transform: translate(-50%, 20px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Print styles */
@media print {
  .no-print { display: none !important; }
  body { background: #fff; }
  .print-area { box-shadow: none !important; border: none !important; }
  .lab-banner { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}