/* ---- PayKaro theme v2: fintech polish on top of the compiled Tailwind UI.
   Only restyles existing utility classes; no layout or behaviour changes. ---- */

:root { --pk-card-shadow: 0 1px 2px #0f1a160a, 0 8px 24px -14px #0f1a1626; }
.dark { --pk-card-shadow: 0 1px 0 #ffffff08 inset, 0 12px 30px -16px #000000b3; }

body { background: var(--color-bg, #f4f7f5); letter-spacing: -.005em; }

/* Cards: one soft shadow, hairline border, larger radius. */
.shadow-card { --tw-shadow: var(--pk-card-shadow); }
.shadow-card-md { --tw-shadow: 0 2px 4px #0f1a160d, 0 16px 32px -16px #0f1a1633; }
.shadow-modal { --tw-shadow: 0 30px 70px -20px #0f1a1659, 0 6px 16px #0f1a161a; }
.rounded-2xl { border-radius: 1.125rem; }
.shadow-card.border-gray-100, .rounded-2xl.border-gray-100 { border-color: #e7ede9; }
.hover\:shadow-lg:hover { --tw-shadow: 0 18px 36px -18px #0e6b5540, 0 4px 10px #0f1a160f; }

/* Wallet / hero cards painted with the brand gradient. */
.gradient-brand { background: radial-gradient(120% 140% at 100% 0%, #1fae86 0%, transparent 55%), linear-gradient(135deg, #0b5947 0%, #0e6b55 50%, #12846a 100%); }
.gradient-brand.rounded-2xl, .rounded-2xl .gradient-brand { box-shadow: 0 14px 30px -14px #0e6b5599; }

/* Primary buttons. */
.bg-primary-600 { background-color: #0e6b55; }
button.bg-primary-600, a.bg-primary-600 { box-shadow: 0 6px 14px -8px #0e6b55b3; font-weight: 600; }
.hover\:bg-primary-700:hover, .bg-primary-700 { background-color: #0b5947; }

/* Inputs: taller, softer, brand focus. */
input.rounded-xl, select.rounded-xl, textarea.rounded-xl { min-height: 44px; border-color: #dce4df; }
.dark input.rounded-xl, .dark select.rounded-xl { border-color: #ffffff1a; }
input.rounded-xl:focus, select.rounded-xl:focus { border-color: #0e6b55; box-shadow: 0 0 0 4px #0e6b5526; }

/* Status chips (Success / Pending / Failed / Refunded). */
.rounded-full.bg-emerald-50 { background: #e3f6ee; color: #067647; box-shadow: inset 0 0 0 1px #06764726; }
.rounded-full.bg-amber-50 { background: #fff6e0; color: #a15c07; box-shadow: inset 0 0 0 1px #a15c0726; }
.rounded-full.bg-red-50 { background: #fdecea; color: #b42318; box-shadow: inset 0 0 0 1px #b4231826; }
.rounded-full.bg-blue-50, .rounded-full.bg-sky-50 { background: #e8f1fd; color: #1d5fbf; box-shadow: inset 0 0 0 1px #1d5fbf26; }
.rounded-full:where(.bg-emerald-50, .bg-amber-50, .bg-red-50, .bg-blue-50, .bg-sky-50) { font-weight: 600; letter-spacing: .01em; }

/* Amount colours a touch deeper for contrast. */
.text-emerald-600 { color: #067647; } .text-red-500 { color: #c4320a; } .text-amber-500 { color: #b54708; }

/* Transaction lists and tables. */
.divide-gray-50 > :not([hidden]) ~ :not([hidden]) { border-color: #eef2f0; }
.divide-y > :where(div, li, a) { transition: background-color .15s ease; }
.divide-y > :where(div, li, a):hover { background-color: #0e6b5506; }
thead.bg-gray-50\/90, .bg-gray-50\/90 { background: #f6f9f7; }
td { font-variant-numeric: tabular-nums; }

/* Pill tabs: active one is brand green, others quiet. */
.bg-primary-50 { background-color: #e3f6ee; }
.text-primary-600 { color: #0e6b55; }

/* Icon tiles in the service grid. */
.bg-primary-100 { background-color: #d7f2e7; }
:where(a, button).rounded-2xl:hover .bg-primary-100, :where(a, button).rounded-xl:hover .bg-primary-100 { background-color: #c3ead9; }

/* Skeleton loaders in brand-neutral grey. */
.animate-pulse.bg-gray-100 { background-color: #e9efec; }

/* Small screens: comfortable gutters, no clipped cards. */
@media (max-width: 640px) {
  .rounded-2xl.p-5 { padding: 1rem; }
  .grid.gap-4 { gap: .75rem; }
  table { font-size: 13px; }
}

/* Auth screens (login / register / forgot): the bundle frames them in a dark
   strip with p-4 and a shrink-wrapped child; let them fill the window. */
.min-h-screen.bg-gradient-to-br.from-slate-950 { padding: 0; background: var(--color-bg, #f4f7f5); }
.dark .min-h-screen.bg-gradient-to-br.from-slate-950 { background: #06100d; }
.from-slate-950 > .min-h-screen { width: 100%; align-self: stretch; }

/* Login hero: hide the hard-coded "Active Traders / Daily Volume / Uptime" figures. */
.mx-8.mb-10.rounded-2xl:has(> .grid-cols-3.divide-x) { display: none; }

/* Register: "Terms of Service" / "Privacy Policy" point nowhere; show as plain text. */
p a[href="#"] { pointer-events: none; cursor: default; color: inherit; text-decoration: none; font-weight: 600; }

/* KYC-first: until KYC is approved the sidebar shows only the eKYC link. */
.pk-kyc-locked aside nav > div:not(:has(a[href="/kyc"])) { display: none; }
.pk-kyc-locked aside nav a[href="/kyc"] ~ *, .pk-kyc-locked aside nav :has(> a[href="/kyc"]) > :not(a[href="/kyc"]) { display: none; }
