@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

/* Ablation Free Demo only ships letters — digits, &, ?, !, %, @ etc. fall back
   to DM Sans, which renders at full cap height and real bold, so they tower
   over Ablation's lighter caps. This face covers exactly the missing
   characters, size- and weight-matched. Listed right after --font-ablation. */
@font-face {
  font-family: "ablation-fallback";
  src: url("/fonts/custom/dm-sans/DMSans-VariableFont_opsz,wght.ttf")
    format("truetype");
  font-weight: 100 900;
  font-variation-settings: "wght" 400;
  size-adjust: 92%;
  unicode-range: U+0021, U+0023-0026, U+0028-002F, U+0030-0039, U+003A-0040,
    U+005B-0060, U+007B-007E;
}

@theme inline {
  /* Tailwind CSS Color Integration */
  --color-background: var(--background);
  --color-foreground: var(--foreground);

  /* Typography system (Esnaad-inspired pairing) */
  --font-sans: var(--font-dm-sans), var(--font-manjari), var(--font-afrah), system-ui, -apple-system, sans-serif;
  --font-mono: var(--font-fira-code), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --font-heading: var(--font-ablation), "ablation-fallback", var(--font-afrah), var(--font-dm-sans), sans-serif;
  --font-body: var(--font-dm-sans), var(--font-manjari), var(--font-afrah), sans-serif;

  /* shadcn/ui colors */
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-destructive-foreground: var(--destructive-foreground);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);

  /* Figma Design System - Custom colors */
  --color-primary-50: var(--primary-50);
  --color-primary-100: var(--primary-100);
  --color-primary-200: var(--primary-200);
  --color-primary-400: var(--primary-400);
  --color-primary-500: var(--primary-500);
  --color-primary-800: var(--primary-800);
  --color-primary-900: var(--primary-900);
  --color-secondary-500: var(--secondary-500);
  --color-stroke: var(--stroke);
  --color-highlights-bg: var(--highlights-bg);
  --color-artboard-main-bg: var(--artboard-main-bg);
  --color-success-50: var(--success-50);
  --color-danger-500: var(--danger-500);
  --color-foundation-black-300: var(--foundation-black-300);
  --color-white-87: var(--white-87);
  --color-white-60: var(--white-60);
  --color-interactive-hover: var(--interactive-hover);
  --color-interactive-active: var(--interactive-active);
  --color-interactive-pressed: var(--interactive-pressed);
  --color-focus-ring-soft: var(--focus-ring-soft);
  --color-sidebar-hover: var(--sidebar-hover);
  --color-sidebar-active: var(--sidebar-active);
  --color-sidebar-input: var(--sidebar-input);

  /* Font Colors */
  --color-font-primary: var(--font-primary);
  --color-font-secondary: var(--font-secondary);
  --color-font-tertiary: var(--font-tertiary);

  /* Stat card icon colors */
  --color-stat-gold-bg: var(--stat-gold-bg);
  --color-stat-gold-text: var(--stat-gold-text);
  --color-stat-green-bg: var(--stat-green-bg);
  --color-stat-red-bg: var(--stat-red-bg);
  --color-stat-gray-bg: var(--stat-gray-bg);
  --color-stat-gray-text: var(--stat-gray-text);

  /* Status badge colors */
  --color-status-published-bg: var(--status-published-bg);
  --color-status-published-text: var(--status-published-text);
  --color-status-disabled-bg: var(--status-disabled-bg);
  --color-status-disabled-text: var(--status-disabled-text);
  --color-status-scheduled-bg: var(--status-scheduled-bg);
  --color-status-scheduled-text: var(--status-scheduled-text);
  --color-status-draft-bg: var(--status-draft-bg);
  --color-status-draft-text: var(--status-draft-text);
  --color-status-new-bg: var(--status-new-bg);
  --color-status-new-text: var(--status-new-text);

  /* Font Family Utilities (legacy naming kept for compatibility) */
  --font-family-almarai: var(--font-manjari), var(--font-afrah), sans-serif;
  --font-family-ibm-plex: var(--font-ablation), "ablation-fallback", var(--font-dm-sans), sans-serif;

  /* Radius */
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
}

:root {
  --radius: 0.625rem;

  /* Figma Design System Colors */
  /* Primary Colors */
  --primary-50: #E8F1F8;
  --primary-100: #B9D4EA;
  --primary-200: #97C0E0;
  --primary-400: #4991C9;
  --primary-500: #1C75BC;
  --primary-800: #0F4067;
  --primary-900: #0C314F;

  /* Secondary Colors */
  --secondary-500: #54565A;

  /* Font Colors */
  --font-primary: #202020;
  --font-secondary: #646464;
  --font-tertiary: #9A9A9A;
  --font-white: #FFFFFF;

  /* Black Scale */
  --black-primary: #000000;
  --black-secondary: #666666;
  --black-tertiary: #9E9E9E;

  /* UI Colors */
  --stroke: #E9E9E9;
  --highlights-bg: #E8F1F8;
  --bg-white: #FFFFFF;
  --artboard-main-bg: #FAFAFA;
  --success-50: #22C55E;
  --danger-500: #F95861;
  --foundation-black-300: #545454;
  --white-87: rgba(255, 255, 255, 0.87);
  --white-60: rgba(255, 255, 255, 0.6);

  /* Stat card icon colors */
  --stat-gold-bg: #F7F5E6;
  --stat-gold-text: #B09700;
  --stat-green-bg: #E5F7ED;
  --stat-red-bg: #FEECEC;
  --stat-gray-bg: #EFEFEF;
  --stat-gray-text: #5D5D5D;

  /* Status badge colors */
  --status-published-bg: #E1F3ED;
  --status-published-text: #00B578;
  --status-disabled-bg: rgba(255, 49, 65, 0.1);
  --status-disabled-text: #FF3141;
  --status-scheduled-bg: rgba(0, 105, 181, 0.1);
  --status-scheduled-text: #0069B5;
  --status-draft-bg: #EAEAEA;
  --status-draft-text: #5D5D5D;
  --status-new-bg: #E1F3ED;
  --status-new-text: #00B578;
  --interactive-hover: rgba(12, 49, 79, 0.06);
  --interactive-active: rgba(12, 49, 79, 0.1);
  --interactive-pressed: rgba(12, 49, 79, 0.14);
  --focus-ring-soft: rgba(12, 49, 79, 0.24);
  --sidebar-hover: rgba(255, 255, 255, 0.1);
  --sidebar-active: rgba(255, 255, 255, 0.16);
  --sidebar-input: rgba(255, 255, 255, 0.06);

  /* shadcn/ui Color Mapping */
  --background: var(--artboard-main-bg);
  --foreground: #202020;
  --card: #FFFFFF;
  --card-foreground: #202020;
  --popover: #FFFFFF;
  --popover-foreground: #202020;
  --primary: #1C75BC;
  --primary-foreground: #FFFFFF;
  --secondary: #54565A;
  --secondary-foreground: #FFFFFF;
  --muted: #FFFFFF;
  --muted-foreground: #646464;
  --accent: var(--interactive-hover);
  --accent-foreground: #202020;
  --destructive: var(--danger-500);
  --destructive-foreground: #FFFFFF;
  --border: #E9E9E9;
  --input: #E9E9E9;
  --ring: #1C75BC;
  --chart-1: #1C75BC;
  --chart-2: #4991C9;
  --chart-3: #B9D4EA;
  --chart-4: #54565A;
  --chart-5: #646464;
  --sidebar: #0C314F;
  --sidebar-foreground: #FFFFFF;
  --sidebar-primary: #0C314F;
  --sidebar-primary-foreground: #FFFFFF;
  --sidebar-accent: var(--sidebar-hover);
  --sidebar-accent-foreground: #FFFFFF;
  --sidebar-border: rgba(255, 255, 255, 0.1);
  --sidebar-ring: #FFFFFF;
}

.dark {
  /* Dark mode tuned for interaction parity while preserving palette identity */
  --background: #121212;
  --foreground: #FFFFFF;
  --card: #1E1E1E;
  --card-foreground: #FFFFFF;
  --popover: #1E1E1E;
  --popover-foreground: #FFFFFF;
  --primary: #1C75BC;
  --primary-foreground: #FFFFFF;
  --secondary: #54565A;
  --secondary-foreground: #FFFFFF;
  --muted: #2A2A2A;
  --muted-foreground: rgba(255, 255, 255, 0.55);
  --accent: var(--interactive-hover);
  --accent-foreground: #FFFFFF;
  --destructive: var(--danger-500);
  --destructive-foreground: #FFFFFF;
  --border: #2E2E2E;
  --input: #2E2E2E;
  --ring: #4991C9;
  --chart-1: #4991C9;
  --chart-2: #1C75BC;
  --chart-3: #B9D4EA;
  --chart-4: #54565A;
  --chart-5: #646464;
  --interactive-hover: rgba(255, 255, 255, 0.08);
  --interactive-active: rgba(255, 255, 255, 0.12);
  --interactive-pressed: rgba(255, 255, 255, 0.16);
  --focus-ring-soft: rgba(73, 145, 201, 0.35);
  --sidebar-hover: rgba(255, 255, 255, 0.12);
  --sidebar-active: rgba(255, 255, 255, 0.18);
  --sidebar-input: rgba(255, 255, 255, 0.08);
  --sidebar: #0C314F;
  --sidebar-foreground: #FFFFFF;
  --sidebar-primary: #0C314F;
  --sidebar-primary-foreground: #FFFFFF;
  --sidebar-accent: var(--sidebar-hover);
  --sidebar-accent-foreground: #FFFFFF;
  --sidebar-border: rgba(255, 255, 255, 0.1);
  --sidebar-ring: #FFFFFF;

  /* Font Colors */
  --font-primary: #E8E8E8;
  --font-secondary: rgba(255, 255, 255, 0.65);
  --font-tertiary: rgba(255, 255, 255, 0.4);

  /* UI surface overrides */
  --stroke: #2E2E2E;
  --highlights-bg: rgba(28, 117, 188, 0.18);
  --bg-white: #1E1E1E;
  --artboard-main-bg: #121212;
  --foundation-black-300: rgba(255, 255, 255, 0.65);
  --primary-50: rgba(28, 117, 188, 0.12);
  --primary-100: rgba(28, 117, 188, 0.2);

  /* Stat card icon colors */
  --stat-gold-bg: rgba(176, 153, 0, 0.15);
  --stat-gold-text: #C8AE00;
  --stat-green-bg: rgba(34, 197, 94, 0.15);
  --stat-red-bg: rgba(249, 88, 97, 0.15);
  --stat-gray-bg: rgba(255, 255, 255, 0.08);
  --stat-gray-text: rgba(255, 255, 255, 0.45);

  /* Status badge colors */
  --status-published-bg: rgba(0, 181, 120, 0.15);
  --status-published-text: #00C985;
  --status-disabled-bg: rgba(255, 49, 65, 0.15);
  --status-disabled-text: #FF5263;
  --status-scheduled-bg: rgba(73, 145, 201, 0.15);
  --status-scheduled-text: #4991C9;
  --status-draft-bg: rgba(255, 255, 255, 0.08);
  --status-draft-text: rgba(255, 255, 255, 0.45);
  --status-new-bg: rgba(0, 181, 120, 0.15);
  --status-new-text: #00C985;
}

/* ── Force light mode for the public website ─────────────────────────────────
   Wrap the (website) layout in .force-light to pin all tokens back to their
   light-mode values, regardless of the user's dark-mode preference.          */
.force-light {
  color-scheme: light;

  /* shadcn / base surface tokens */
  --background: #FAFAFA;
  --foreground: #202020;
  --card: #FFFFFF;
  --card-foreground: #202020;
  --popover: #FFFFFF;
  --popover-foreground: #202020;
  --primary: #1C75BC;
  --primary-foreground: #FFFFFF;
  --secondary: #54565A;
  --secondary-foreground: #FFFFFF;
  --muted: #FFFFFF;
  --muted-foreground: #646464;
  --accent: rgba(12, 49, 79, 0.06);
  --accent-foreground: #202020;
  --destructive: #F95861;
  --destructive-foreground: #FFFFFF;
  --border: #E9E9E9;
  --input: #E9E9E9;
  --ring: #1C75BC;

  /* Custom palette */
  --primary-50: #E8F1F8;
  --primary-100: #B9D4EA;
  --primary-200: #97C0E0;
  --font-primary: #202020;
  --font-secondary: #646464;
  --font-tertiary: #9A9A9A;
  --stroke: #E9E9E9;
  --highlights-bg: #E8F1F8;
  --bg-white: #FFFFFF;
  --artboard-main-bg: #FAFAFA;
  --interactive-hover: rgba(12, 49, 79, 0.06);
  --interactive-active: rgba(12, 49, 79, 0.1);
  --interactive-pressed: rgba(12, 49, 79, 0.14);
  --focus-ring-soft: rgba(12, 49, 79, 0.24);
  --foundation-black-300: #545454;

  /* Status / badge tokens */
  --status-published-bg: #E1F3ED;
  --status-published-text: #00B578;
  --status-disabled-bg: rgba(255, 49, 65, 0.1);
  --status-disabled-text: #FF3141;
  --status-scheduled-bg: rgba(0, 105, 181, 0.1);
  --status-scheduled-text: #0069B5;
  --status-draft-bg: #EAEAEA;
  --status-draft-text: #5D5D5D;
  --status-new-bg: #E1F3ED;
  --status-new-text: #00B578;
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  html, body {
    height: 100%;
  }
  body {
    @apply bg-background text-foreground;
    font-family: var(--font-body);
  }

  /* Headings use a display face to match Esnaad's body/display contrast */
  h1 {
    font-family: var(--font-heading);
    font-size: 56px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.01em;
  }

  h2 {
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.01em;
  }

  h3 {
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
  }

  h4 {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.01em;
  }

  h5 {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.6;
  }

  p {
    font-family: var(--font-body);
  }

  html[lang="ar"] body {
    font-family: var(--font-afrah), var(--font-manjari), sans-serif;
  }

  html[lang="ar"] h1,
  html[lang="ar"] h2,
  html[lang="ar"] h3,
  html[lang="ar"] h4,
  html[lang="ar"] h5,
  html[lang="ar"] h6 {
    font-family: var(--font-afrah), var(--font-manjari), sans-serif;
    letter-spacing: 0;
  }

  html[lang="en"] body {
    font-family: var(--font-dm-sans), var(--font-manjari), sans-serif;
  }

  html[lang="en"] h1,
  html[lang="en"] h2,
  html[lang="en"] h3,
  html[lang="en"] h4,
  html[lang="en"] h5,
  html[lang="en"] h6 {
    font-family: var(--font-ablation), "ablation-fallback", var(--font-dm-sans), sans-serif;
  }

  /* Hide scrollbar while maintaining scroll functionality */
  .scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
  }

  .scrollbar-hide::-webkit-scrollbar {
    display: none;
  }
}

.page-content-editor {
  color: var(--foreground);
  line-height: 1.7;
}

.page-content-editor p {
  margin: 0;
}

.page-content-editor p.is-editor-empty:first-child::before {
  color: var(--muted-foreground);
  content: attr(data-placeholder);
  float: right;
  height: 0;
  pointer-events: none;
}

[dir="ltr"] .page-content-editor p.is-editor-empty:first-child::before {
  float: left;
}

.page-content-editor ul,
.page-content-editor ol {
  margin: 0.75rem 0;
  padding-inline-start: 1.25rem;
}

.page-content-editor ul {
  list-style-type: disc;
}

.page-content-editor ol {
  list-style-type: decimal;
}

.page-content-editor img {
  border-radius: 8px;
  height: auto;
  margin: 0.75rem 0;
  max-width: 100%;
}
