/* Tabular figures for financial columns (prevents layout shift). */
.tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

/* Smooth, accessible scrolling. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Slim scrollbars. */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #d4d4d8; border-radius: 9999px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: #a1a1aa; background-clip: content-box; }

/* Hide Alpine elements until ready (no flash of unstyled content). */
[x-cloak] { display: none !important; }

/* Toast entrance. */
.toast-in { animation: toastIn .2s ease-out; }
@keyframes toastIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* --- Form component classes (plain CSS; app.css isn't processed by the Tailwind CDN) --- */
.lbl {
  display: block;
  margin-bottom: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #3f3f46; /* zinc-700 */
}
.hint { font-size: 0.75rem; font-weight: 400; color: #a1a1aa; } /* zinc-400 */
.inp {
  width: 100%;
  border: 1px solid #d4d4d8; /* zinc-300 */
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  color: #18181b; /* zinc-900 */
  background: #fff;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.inp::placeholder { color: #a1a1aa; }
.inp:focus { border-color: #f8d800; box-shadow: 0 0 0 2px rgba(248, 216, 0, 0.45); } /* brand-400 gold glow */
.save-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 0.5rem;
  background: #18181b; /* ink-900 */
  padding: 0.375rem 0.875rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  transition: background-color .15s;
}
.save-btn:hover { background: #1c1c1f; } /* ink-800 */
.save-btn:disabled { opacity: 0.6; cursor: default; }

/* Compact input for editable table cells (revenue breakdown manual view). */
.cellinp {
  width: 100%;
  min-width: 5rem;
  border: 1px solid #e4e4e7; /* zinc-200 */
  border-radius: 0.375rem;
  padding: 0.3125rem 0.5rem;
  font-size: 0.8125rem;
  color: #18181b;
  background: #fff;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.cellinp::placeholder { color: #a1a1aa; }
.cellinp:focus { border-color: #f8d800; box-shadow: 0 0 0 2px rgba(248, 216, 0, 0.35); }
