/* ═══════════════════════════════════════════════════════════════
   TAILWIND OFFLINE FALLBACK — azkar-maher.pages.dev
   Covers every utility class used in index.html + app.js
   Loaded before Tailwind CDN; CDN overrides when online.
   ═══════════════════════════════════════════════════════════════ */

/* ── Reset ── */
*,
::before,
::after {
   box-sizing: border-box;
   border-width: 0;
   border-style: solid;
   border-color: #e5e7eb;
}

html {
   line-height: 1.5;
   -webkit-text-size-adjust: 100%;
   tab-size: 4;
}

body {
   margin: 0;
   line-height: inherit;
}

img,
svg,
video,
canvas {
   display: block;
   vertical-align: middle;
   max-width: 100%;
}

button,
[type='button'],
[type='submit'] {
   cursor: pointer;
   background-color: transparent;
   background-image: none;
}

input,
button,
select,
textarea {
   font-family: inherit;
   font-size: 100%;
   font-weight: inherit;
   line-height: inherit;
   color: inherit;
   margin: 0;
   padding: 0;
}

ol,
ul {
   list-style: none;
   margin: 0;
   padding: 0;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
   margin: 0;
}

/* ── Direction ── */
.ltr {
   direction: ltr;
}

/* ── Display ── */
.block {
   display: block;
}

.inline-block {
   display: inline-block;
}

.inline {
   display: inline;
}

.flex {
   display: flex;
}

.inline-flex {
   display: inline-flex;
}

.grid {
   display: grid;
}

.hidden {
   display: none;
}

@media (min-width: 640px) {
   .sm\:flex {
      display: flex;
   }

   .sm\:items-center {
      align-items: center;
   }
}

/* ── Flex ── */
.flex-col {
   flex-direction: column;
}

.flex-row {
   flex-direction: row;
}

.flex-wrap {
   flex-wrap: wrap;
}

.flex-1 {
   flex: 1 1 0%;
}

.flex-grow {
   flex-grow: 1;
}

.flex-shrink-0 {
   flex-shrink: 0;
}

.flex-none {
   flex: none;
}

.items-start {
   align-items: flex-start;
}

.items-center {
   align-items: center;
}

.items-end {
   align-items: flex-end;
}

.items-baseline {
   align-items: baseline;
}

.justify-start {
   justify-content: flex-start;
}

.justify-end {
   justify-content: flex-end;
}

.justify-center {
   justify-content: center;
}

.justify-between {
   justify-content: space-between;
}

.self-center {
   align-self: center;
}

/* ── Grid ── */
.grid-cols-5 {
   grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-3 {
   grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-2 {
   grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ── Gap ── */
.gap-0\.5 {
   gap: 0.125rem;
}

.gap-1 {
   gap: 0.25rem;
}

.gap-1\.5 {
   gap: 0.375rem;
}

.gap-2 {
   gap: 0.5rem;
}

.gap-2\.5 {
   gap: 0.625rem;
}

.gap-3 {
   gap: 0.75rem;
}

.gap-4 {
   gap: 1rem;
}

.gap-5 {
   gap: 1.25rem;
}

.gap-6 {
   gap: 1.5rem;
}

/* ── Position ── */
.static {
   position: static;
}

.relative {
   position: relative;
}

.absolute {
   position: absolute;
}

.fixed {
   position: fixed;
}

.sticky {
   position: sticky;
}

.inset-0 {
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
}

.top-0 {
   top: 0;
}

.bottom-0 {
   bottom: 0;
}

.left-0 {
   left: 0;
}

.right-0 {
   right: 0;
}

.right-4 {
   right: 1rem;
}

.-top-1 {
   top: -0.25rem;
}

.-left-1 {
   left: -0.25rem;
}

.top-1\/2 {
   top: 50%;
}

/* ── Z-index ── */
.z-10 {
   z-index: 10;
}

.z-20 {
   z-index: 20;
}

.z-30 {
   z-index: 30;
}

.z-40 {
   z-index: 40;
}

.z-50 {
   z-index: 50;
}

.z-\[60\] {
   z-index: 60;
}

.z-\[65\] {
   z-index: 65;
}

.z-\[70\] {
   z-index: 70;
}

.z-\[80\] {
   z-index: 80;
}

/* ── Overflow ── */
.overflow-hidden {
   overflow: hidden;
}

.overflow-x-auto {
   overflow-x: auto;
}

.overflow-y-auto {
   overflow-y: auto;
}

.overflow-x-hidden {
   overflow-x: hidden;
}

/* ── Width / Height ── */
.w-4 {
   width: 1rem;
}

.w-5 {
   width: 1.25rem;
}

.w-6 {
   width: 1.5rem;
}

.w-7 {
   width: 1.75rem;
}

.w-8 {
   width: 2rem;
}

.w-9 {
   width: 2.25rem;
}

.w-10 {
   width: 2.5rem;
}

.w-12 {
   width: 3rem;
}

.w-14 {
   width: 3.5rem;
}

.w-full {
   width: 100%;
}

.w-px {
   width: 1px;
}

.min-w-0 {
   min-width: 0;
}

.max-w-sm {
   max-width: 24rem;
}

.max-w-md {
   max-width: 28rem;
}

.max-w-2xl {
   max-width: 42rem;
}

.max-w-\[72px\] {
   max-width: 72px;
}

.h-1 {
   height: 0.25rem;
}

.h-1\.5 {
   height: 0.375rem;
}

.h-2 {
   height: 0.5rem;
}

.h-4 {
   height: 1rem;
}

.h-5 {
   height: 1.25rem;
}

.h-6 {
   height: 1.5rem;
}

.h-7 {
   height: 1.75rem;
}

.h-8 {
   height: 2rem;
}

.h-9 {
   height: 2.25rem;
}

.h-10 {
   height: 2.5rem;
}

.h-12 {
   height: 3rem;
}

.h-14 {
   height: 3.5rem;
}

.h-full {
   height: 100%;
}

.min-h-screen {
   min-height: 100vh;
}

.max-h-\[85vh\] {
   max-height: 85vh;
}

.max-h-\[90vh\] {
   max-height: 90vh;
}

.max-h-\[420px\] {
   max-height: 420px;
}

/* ── Padding ── */
.p-1 {
   padding: 0.25rem;
}

.p-2 {
   padding: 0.5rem;
}

.p-2\.5 {
   padding: 0.625rem;
}

.p-3 {
   padding: 0.75rem;
}

.p-4 {
   padding: 1rem;
}

.p-5 {
   padding: 1.25rem;
}

.p-6 {
   padding: 1.5rem;
}

.px-1 {
   padding-left: 0.25rem;
   padding-right: 0.25rem;
}

.px-2 {
   padding-left: 0.5rem;
   padding-right: 0.5rem;
}

.px-3 {
   padding-left: 0.75rem;
   padding-right: 0.75rem;
}

.px-3\.5 {
   padding-left: 0.875rem;
   padding-right: 0.875rem;
}

.px-4 {
   padding-left: 1rem;
   padding-right: 1rem;
}

.px-5 {
   padding-left: 1.25rem;
   padding-right: 1.25rem;
}

.py-0\.5 {
   padding-top: 0.125rem;
   padding-bottom: 0.125rem;
}

.py-1 {
   padding-top: 0.25rem;
   padding-bottom: 0.25rem;
}

.py-1\.5 {
   padding-top: 0.375rem;
   padding-bottom: 0.375rem;
}

.py-2 {
   padding-top: 0.5rem;
   padding-bottom: 0.5rem;
}

.py-2\.5 {
   padding-top: 0.625rem;
   padding-bottom: 0.625rem;
}

.py-3 {
   padding-top: 0.75rem;
   padding-bottom: 0.75rem;
}

.py-4 {
   padding-top: 1rem;
   padding-bottom: 1rem;
}

.py-5 {
   padding-top: 1.25rem;
   padding-bottom: 1.25rem;
}

.py-20 {
   padding-top: 5rem;
   padding-bottom: 5rem;
}

.py-28 {
   padding-top: 7rem;
   padding-bottom: 7rem;
}

.pt-2\.5 {
   padding-top: 0.625rem;
}

.pt-3 {
   padding-top: 0.75rem;
}

.pb-2 {
   padding-bottom: 0.5rem;
}

.pb-3 {
   padding-bottom: 0.75rem;
}

.pb-4 {
   padding-bottom: 1rem;
}

.pl-4 {
   padding-left: 1rem;
}

.pr-10 {
   padding-right: 2.5rem;
}

.pl-10 {
   padding-left: 2.5rem;
}

/* ── Margin ── */
.m-auto {
   margin: auto;
}

.mx-auto {
   margin-left: auto;
   margin-right: auto;
}

.mx-1 {
   margin-left: 0.25rem;
   margin-right: 0.25rem;
}

.mx-2 {
   margin-left: 0.5rem;
   margin-right: 0.5rem;
}

.mb-0\.5 {
   margin-bottom: 0.125rem;
}

.mb-1 {
   margin-bottom: 0.25rem;
}

.mb-1\.5 {
   margin-bottom: 0.375rem;
}

.mb-2 {
   margin-bottom: 0.5rem;
}

.mb-2\.5 {
   margin-bottom: 0.625rem;
}

.mb-3 {
   margin-bottom: 0.75rem;
}

.mb-4 {
   margin-bottom: 1rem;
}

.mb-5 {
   margin-bottom: 1.25rem;
}

.ml-1 {
   margin-left: 0.25rem;
}

.ml-2 {
   margin-left: 0.5rem;
}

.mr-1 {
   margin-right: 0.25rem;
}

.mr-2 {
   margin-right: 0.5rem;
}

.mr-10 {
   margin-right: 2.5rem;
}

.mt-0\.5 {
   margin-top: 0.125rem;
}

.mt-1 {
   margin-top: 0.25rem;
}

.mt-1\.5 {
   margin-top: 0.375rem;
}

.mt-2 {
   margin-top: 0.5rem;
}

.mt-3 {
   margin-top: 0.75rem;
}

.mt-4 {
   margin-top: 1rem;
}

.mt-5 {
   margin-top: 1.25rem;
}

.mt-8 {
   margin-top: 2rem;
}

/* ── Space ── */
.space-y-1\.5>*+* {
   margin-top: 0.375rem;
}

.space-y-2>*+* {
   margin-top: 0.5rem;
}

.space-y-2\.5>*+* {
   margin-top: 0.625rem;
}

.space-y-3>*+* {
   margin-top: 0.75rem;
}

.space-y-4>*+* {
   margin-top: 1rem;
}

/* ── Typography ── */
.text-xs {
   font-size: 0.75rem;
   line-height: 1rem;
}

.text-sm {
   font-size: 0.875rem;
   line-height: 1.25rem;
}

.text-base {
   font-size: 1rem;
   line-height: 1.5rem;
}

.text-lg {
   font-size: 1.125rem;
   line-height: 1.75rem;
}

.text-xl {
   font-size: 1.25rem;
   line-height: 1.75rem;
}

.text-2xl {
   font-size: 1.5rem;
   line-height: 2rem;
}

.text-3xl {
   font-size: 1.875rem;
   line-height: 2.25rem;
}

.text-5xl {
   font-size: 3rem;
   line-height: 1;
}

.text-\[9px\] {
   font-size: 9px;
}

.text-\[10px\] {
   font-size: 10px;
}

.text-\[11px\] {
   font-size: 11px;
}

.font-normal {
   font-weight: 400;
}

.font-medium {
   font-weight: 500;
}

.font-semibold {
   font-weight: 600;
}

.font-bold {
   font-weight: 700;
}

.font-extrabold {
   font-weight: 800;
}

.font-mono {
   font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.text-left {
   text-align: left;
}

.text-right {
   text-align: right;
}

.text-center {
   text-align: center;
}

.text-justify {
   text-align: justify;
}

.leading-none {
   line-height: 1;
}

.leading-tight {
   line-height: 1.25;
}

.leading-normal {
   line-height: 1.5;
}

.tracking-wide {
   letter-spacing: 0.025em;
}

.tracking-wider {
   letter-spacing: 0.05em;
}

.tracking-widest {
   letter-spacing: 0.1em;
}

.uppercase {
   text-transform: uppercase;
}

.truncate {
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
}

.whitespace-nowrap {
   white-space: nowrap;
}

.whitespace-pre-line {
   white-space: pre-line;
}

.tabular-nums {
   font-variant-numeric: tabular-nums;
}

.italic {
   font-style: italic;
}

.select-none {
   user-select: none;
   -webkit-user-select: none;
}

/* ── Text colors ── */
.text-white {
   color: #fff;
}

.text-black {
   color: #000;
}

.text-gray-200 {
   color: #e5e7eb;
}

.text-gray-300 {
   color: #d1d5db;
}

.text-gray-400 {
   color: #9ca3af;
}

.text-gray-500 {
   color: #6b7280;
}

.text-gray-700 {
   color: #374151;
}

.text-gray-800 {
   color: #1f2937;
}

.text-slate-400 {
   color: #94a3b8;
}

.text-slate-500 {
   color: #64748b;
}

.text-red-400 {
   color: #f87171;
}

.text-rose-400 {
   color: #fb7185;
}

.text-rose-500 {
   color: #f43f5e;
}

.text-rose-600 {
   color: #e11d48;
}

.text-emerald-100 {
   color: #d1fae5;
}

.text-emerald-200 {
   color: #a7f3d0;
}

.text-emerald-300 {
   color: #6ee7b7;
}

.text-emerald-400 {
   color: #34d399;
}

.text-emerald-400\/70 {
   color: rgba(52, 211, 153, .7);
}

.text-emerald-500 {
   color: #10b981;
}

.text-emerald-600 {
   color: #059669;
}

.text-emerald-700 {
   color: #047857;
}

.text-emerald-800 {
   color: #065f46;
}

/* ── Background ── */
.bg-transparent {
   background-color: transparent;
}

.bg-white {
   background-color: #fff;
}

.bg-white\/10 {
   background-color: rgba(255, 255, 255, .1);
}

.bg-white\/15 {
   background-color: rgba(255, 255, 255, .15);
}

.bg-white\/20 {
   background-color: rgba(255, 255, 255, .2);
}

.bg-white\/25 {
   background-color: rgba(255, 255, 255, .25);
}

.bg-white\/30 {
   background-color: rgba(255, 255, 255, .3);
}

.bg-white\/96 {
   background-color: rgba(255, 255, 255, .96);
}

.bg-gray-50 {
   background-color: #f9fafb;
}

.bg-gray-50\/50 {
   background-color: rgba(249, 250, 251, .5);
}

.bg-gray-100 {
   background-color: #f3f4f6;
}

.bg-slate-900\/60 {
   background-color: rgba(15, 23, 42, .6);
}

.bg-slate-900\/70 {
   background-color: rgba(15, 23, 42, .7);
}

.bg-rose-50 {
   background-color: #fff1f2;
}

.bg-rose-50\/50 {
   background-color: rgba(255, 241, 242, .5);
}

.bg-rose-100 {
   background-color: #ffe4e6;
}

.bg-rose-500 {
   background-color: #f43f5e;
}

.bg-emerald-50 {
   background-color: #ecfdf5;
}

.bg-emerald-50\/80 {
   background-color: rgba(236, 253, 245, .8);
}

.bg-emerald-100 {
   background-color: #d1fae5;
}

.bg-emerald-500 {
   background-color: #10b981;
}

.bg-emerald-600 {
   background-color: #059669;
}

.bg-emerald-700 {
   background-color: #047857;
}

/* ── Gradients ── */
.bg-gradient-to-r {
   background-image: linear-gradient(to right, var(--tw-gradient-stops, #000));
}

.bg-gradient-to-b {
   background-image: linear-gradient(to bottom, var(--tw-gradient-stops, #000));
}

.bg-gradient-to-br {
   background-image: linear-gradient(to bottom right, var(--tw-gradient-stops, #000));
}

.from-emerald-400 {
   --tw-gradient-from: #34d399;
   --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(52, 211, 153, 0));
}

.from-emerald-600 {
   --tw-gradient-from: #059669;
   --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(5, 150, 105, 0));
}

.from-slate-800 {
   --tw-gradient-from: #1e293b;
   --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 41, 59, 0));
}

.from-amber-500 {
   --tw-gradient-from: #f59e0b;
   --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(245, 158, 11, 0));
}

.to-emerald-900 {
   --tw-gradient-to: #064e3b;
}

.to-teal-500 {
   --tw-gradient-to: #14b8a6;
}

.to-teal-600 {
   --tw-gradient-to: #0d9488;
}

.to-orange-500 {
   --tw-gradient-to: #f97316;
}

/* ── Borders ── */
.border {
   border-width: 1px;
}

.border-2 {
   border-width: 2px;
}

.border-b {
   border-bottom-width: 1px;
}

.border-t {
   border-top-width: 1px;
}

.border-gray-50 {
   border-color: #f9fafb;
}

.border-gray-100 {
   border-color: #f3f4f6;
}

.border-gray-100\/70 {
   border-color: rgba(243, 244, 246, .7);
}

.border-gray-100\/80 {
   border-color: rgba(243, 244, 246, .8);
}

.border-gray-200 {
   border-color: #e5e7eb;
}

.border-emerald-100 {
   border-color: #d1fae5;
}

.border-rose-100 {
   border-color: #ffe4e6;
}

.border-transparent {
   border-color: transparent;
}

.last\:border-0:last-child {
   border-width: 0;
}

/* ── Radius ── */
.rounded {
   border-radius: 0.25rem;
}

.rounded-lg {
   border-radius: 0.5rem;
}

.rounded-xl {
   border-radius: 0.75rem;
}

.rounded-2xl {
   border-radius: 1rem;
}

.rounded-3xl {
   border-radius: 1.5rem;
}

.rounded-full {
   border-radius: 9999px;
}

/* ── Shadow ── */
.shadow-sm {
   box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
}

.shadow {
   box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);
}

.shadow-lg {
   box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);
}

.shadow-2xl {
   box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
}

/* ── Ring ── */
.ring-2 {
   outline: 2px solid transparent;
   outline-offset: 2px;
}

.ring-emerald-400 {
   box-shadow: 0 0 0 2px #34d399;
}

/* ── Backdrop ── */
.backdrop-blur-sm {
   backdrop-filter: blur(4px);
   -webkit-backdrop-filter: blur(4px);
}

.backdrop-blur-md {
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
}

/* ── Opacity / Transform ── */
.opacity-0 {
   opacity: 0;
}

.opacity-30 {
   opacity: .3;
}

.opacity-40 {
   opacity: .4;
}

.opacity-50 {
   opacity: .5;
}

.opacity-100 {
   opacity: 1;
}

.-translate-y-1\/2 {
   transform: translateY(-50%);
}

.rotate-180 {
   transform: rotate(180deg);
}

.scale-95 {
   transform: scale(.95);
}

/* ── Transition ── */
.transition {
   transition: color, background-color, border-color, opacity, box-shadow, transform 150ms cubic-bezier(.4, 0, .2, 1);
}

.transition-all {
   transition: all 150ms cubic-bezier(.4, 0, .2, 1);
}

.duration-200 {
   transition-duration: 200ms;
}

.duration-300 {
   transition-duration: 300ms;
}

/* ── Misc ── */
.cursor-pointer {
   cursor: pointer;
}

.outline-none {
   outline: none;
}

.pointer-events-none {
   pointer-events: none;
}

.pointer-events-auto {
   pointer-events: auto;
}

.appearance-none {
   appearance: none;
   -webkit-appearance: none;
}

.antialiased {
   -webkit-font-smoothing: antialiased;
}

.underline {
   text-decoration-line: underline;
}

/* ── Hover / Focus / Active ── */
.hover\:bg-white\/25:hover {
   background-color: rgba(255, 255, 255, .25);
}

.hover\:bg-white\/30:hover {
   background-color: rgba(255, 255, 255, .3);
}

.hover\:bg-gray-50:hover {
   background-color: #f9fafb;
}

.hover\:bg-gray-100:hover {
   background-color: #f3f4f6;
}

.hover\:bg-red-50:hover {
   background-color: #fef2f2;
}

.hover\:bg-rose-100:hover {
   background-color: #ffe4e6;
}

.hover\:bg-emerald-50\/50:hover {
   background-color: rgba(236, 253, 245, .5);
}

.hover\:bg-emerald-50\/80:hover {
   background-color: rgba(236, 253, 245, .8);
}

.hover\:bg-emerald-100:hover {
   background-color: #d1fae5;
}

.hover\:bg-emerald-700:hover {
   background-color: #047857;
}

.hover\:text-red-500:hover {
   color: #ef4444;
}

.hover\:text-emerald-300:hover {
   color: #6ee7b7;
}

.hover\:text-emerald-400:hover {
   color: #34d399;
}

.hover\:text-emerald-500:hover {
   color: #10b981;
}

.active\:bg-emerald-100:active {
   background-color: #d1fae5;
}

.focus\:outline-none:focus {
   outline: none;
}

.focus\:ring-2:focus {
   box-shadow: 0 0 0 2px;
}

.focus\:ring-emerald-100:focus {
   box-shadow: 0 0 0 3px rgba(209, 250, 229, .5);
}

.focus\:border-emerald-400:focus {
   border-color: #34d399;
}

.focus\:bg-white:focus {
   background-color: #fff;
}

.selection\:bg-emerald-100 ::selection {
   background-color: #d1fae5;
}

.group:hover .group-hover\:text-emerald-400 {
   color: #34d399;
}

.group:hover .group-hover\:text-emerald-500 {
   color: #10b981;
}

.group:hover .group-hover\:bg-emerald-50 {
   background-color: #ecfdf5;
}