/* ============================================================
 *  QuickPrint - Custom overrides (on top of Tailwind CDN)
 * ============================================================*/

/* Smooth typography */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }

/* Hide ugly default focus rings, replace with subtle ring */
button:focus, input:focus, select:focus, textarea:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
  border-color: #2563eb;
}

/* Animated page entrance */
main, header { animation: fade-in .35s ease; }
@keyframes fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0);   }
}

/* Slim, modern scrollbar */
::-webkit-scrollbar          { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb    { background: #cbd5e1; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
::-webkit-scrollbar-track    { background: transparent; }

/* Card hover lift */
.card-lift { transition: transform .15s ease, box-shadow .15s ease; }
.card-lift:hover { transform: translateY(-2px); box-shadow: 0 10px 25px -10px rgba(15, 23, 42, .15); }

/* Soft pulse dot for status badges */
.pulse-dot::before {
  content: '';
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: 6px;
  border-radius: 9999px;
  background: currentColor;
  animation: pulse 1.6s infinite;
  vertical-align: middle;
}
@keyframes pulse {
  0%   { transform: scale(1);   opacity: 1; }
  70%  { transform: scale(1.6); opacity: 0; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* Print-friendly QR poster (used by the "Print QR" button) */
@media print {
  body * { visibility: hidden; }
  .print-area, .print-area * { visibility: visible; }
  .print-area { position: absolute; left: 0; top: 0; width: 100%; }
}
