/*
 * Port-only stylesheet.
 *
 * The two files beside this one are COPIES of the reference build's own output —
 * `tailwind.css` is the compiled Tailwind v4 stylesheet with the `volt`/`cash` theme,
 * `fonts.css` is next/font's `@font-face` set — so ported markup can carry the
 * original classes and render identically.
 *
 * What is left for this file is only what next/font used to do invisibly: the font
 * variables lived on generated classes on `<html>`. Declaring them once on `:root`
 * removes that dependency, so `font-sans` / the RTL `font-vazir` stack resolve the
 * same way here. Nothing else belongs here: a growing override file is how the two
 * designs start drifting apart again.
 */

:root {
  --font-geist-sans: "Geist", "Geist Fallback";
  --font-geist-mono: "Geist Mono", "Geist Mono Fallback";
  --font-vazir: "Vazirmatn", "Vazirmatn Fallback";
}

/* ── Light Fade-In Animation (respects prefers-reduced-motion) ────────── */
@keyframes fanetamFadeIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fanetam-fade {
  animation: fanetamFadeIn 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@media (prefers-reduced-motion: reduce) {
  .animate-fanetam-fade {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ── Button States & Contrast Safety ──────────────────────────────────── */
.btn:disabled,
.btn[disabled],
.btn-ghost:disabled,
.btn-ghost[disabled],
.btn-cash:disabled,
.btn-cash[disabled],
.fb-auth-submit:disabled,
.fb-auth-submit[disabled],
button:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  transform: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/* ── Missing Logical Properties & Status Utilities ───────────────────── */
.bottom-4 { bottom: 1rem; }
.start-4 { inset-inline-start: 1rem; }
.end-4 { inset-inline-end: 1rem; }
.ms-1 { margin-inline-start: 0.25rem; }

@media (min-width: 640px) {
  .sm\:bottom-6 { bottom: 1.5rem; }
  .sm\:start-6 { inset-inline-start: 1.5rem; }
  .sm\:end-auto { inset-inline-end: auto; }
  .sm\:size-12 { width: 3rem; height: 3rem; }
  .sm\:gap-2\.5 { gap: 0.625rem; }
}

.cursor-not-allowed { cursor: not-allowed; }
.bg-black\/20 { background-color: rgba(0, 0, 0, 0.2); }
.bg-black\/30 { background-color: rgba(0, 0, 0, 0.3); }
.bg-zinc-900\/90 { background-color: rgba(24, 24, 27, 0.9); }
.bg-volt-500\/\[0\.08\] { background-color: rgba(85, 43, 205, 0.08); }

.bg-emerald-500\/10 { background-color: rgba(16, 185, 129, 0.1); }
.border-emerald-500\/20 { border-color: rgba(16, 185, 129, 0.2); }
.border-emerald-500\/30 { border-color: rgba(16, 185, 129, 0.3); }
.text-emerald-300 { color: #6ee7b7; }
.text-emerald-400 { color: #34d399; }

.bg-sky-500\/10 { background-color: rgba(14, 165, 233, 0.1); }
.border-sky-500\/30 { border-color: rgba(14, 165, 233, 0.3); }
.text-sky-400 { color: #38bdf8; }

/* ── Overflow utilities & Mobile Drawer Safety ────────────────────────── */
.overflow-hidden { overflow: hidden !important; }
.overflow-x-hidden { overflow-x: hidden !important; }
.overflow-y-hidden { overflow-y: hidden !important; }
.overflow-y-auto { overflow-y: auto !important; }

html, body {
  max-width: 100vw;
  overflow-x: hidden;
}

[data-drawer] {
  overflow: hidden !important;
}

[data-drawer][aria-hidden="true"] {
  visibility: hidden;
  pointer-events: none !important;
}

[data-drawer][aria-hidden="false"] {
  visibility: visible;
}

