/* LedgerLocal — Custom styles on top of Tailwind */

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

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

/* Fade-in animation */
@keyframes ll-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ll-fade-in { animation: ll-fade-in .35s ease-out forwards; }

/* Pulse for AI indicators */
@keyframes ll-pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(20, 184, 166, .5); }
  100% { box-shadow: 0 0 0 12px rgba(20, 184, 166, 0); }
}
.ll-pulse { animation: ll-pulse-ring 1.5s infinite; }

/* Product filter tabs */
.prod-tab {
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #475569;
  background: white;
  border: 1px solid #e2e8f0;
  transition: all .15s ease;
  cursor: pointer;
}
.prod-tab:hover { border-color: #5eead4; color: #0f766e; }
.prod-tab.active-tab {
  background: #0f766e;
  color: white;
  border-color: #0f766e;
}

/* Report tabs */
.report-tab {
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #475569;
  background: transparent;
  transition: all .15s ease;
  cursor: pointer;
}
.report-tab:hover { color: #0f766e; }
.report-tab.active-rtab {
  background: white;
  color: #0f766e;
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
}

/* FAQ accordion */
.faq-item .faq-a { display: none; }
.faq-item.open .faq-a { display: block; animation: ll-fade-in .25s ease-out; }
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .2s ease; }

/* Smooth hover lift */
.lift { transition: transform .2s ease, box-shadow .2s ease; }
.lift:hover { transform: translateY(-2px); }

/* Truncate utilities */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Print styles for invoice & reports */
@media print {
  header, footer, nav, button, .no-print { display: none !important; }
  body { background: white !important; }
  main { max-width: 100% !important; padding: 1rem !important; }
}
