:root {
  --primary: #102694;
  /* Royal Blue */
  --primary-hover: #2641C2;
  --primary-dark: #0A1128;
  --accent: #102694;
  --bg-color: #F3F4F6;
  /* Soft Background */
  --card-bg: #ffffff;

  --text-main: #0A1128;
  /* Dark Text */
  --text-muted: #64748b;

  --shadow-color: 16, 38, 148;

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05);

  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-pill: 9999px;

  --input-bg: #ffffff;
  --input-border: #cbd5e1;
  --input-text: #0A1128;

  --font-en: "Outfit", sans-serif;
  --font-ar: "Cairo", sans-serif;
}

body.dark-mode {
  --primary: #4361EE;
  /* Lighter, more vibrant blue for dark mode visibility */
  --primary-hover: #4895EF;
  --primary-dark: #EDEDED;
  /* Use white/text-main for primary-dark in dark mode to ensure visibility */
  --accent: #4361EE;

  --bg-color: #0A0A0A;
  /* Rich Dark Black */
  --card-bg: #171717;
  /* Dark Gray Card */

  --text-main: #EDEDED;
  /* Soft White */
  --text-muted: #A1A1AA;
  /* Light Gray */

  --shadow-color: 0, 0, 0;

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.6);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.7);

  --input-bg: #0A0A0A;
  --input-border: #333333;
  --input-text: #FFFFFF;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-en);
  background-color: var(--bg-color);
  color: var(--text-main);
  line-height: 1.5;
  transition: opacity 0.5s ease;
  overflow-x: hidden;
  opacity: 0;
  visibility: hidden;
}

body.ready {
  opacity: 1;
  visibility: visible;
}

html {
  overflow-x: hidden;
}

html[dir="rtl"] {
  font-family: var(--font-ar);
}

/* Utilities */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.hidden {
  display: none !important;
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }

  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }

  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}