@tailwind base;
@tailwind components;
@tailwind utilities;

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

/* Apply gradient background to body */
@layer base {
  html, body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    background: linear-gradient(to bottom right, #EFF6FF, #F5F3FF, #FCE7F3);
    background-attachment: fixed;
    background-size: cover;
    min-height: 100vh;
    box-sizing: border-box;
  }
  
  #root {
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 0;
    margin: 0;
    padding: 0;
  }
}

@keyframes popup {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes wave {
  0%, 100% {
    transform: scale(0.92);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.08);
    opacity: 1;
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.animate-popup {
  animation: popup 0.2s ease-out;
}

.animate-wave {
  animation: wave 1.2s ease-in-out infinite;
}

.animate-fade-in {
  animation: fade-in 0.3s ease-out;
}

/* Conversation card dimensions */
.conversation-card {
  @apply w-full aspect-[16/9];
}

@media (min-width: 768px) {
  .conversation-card {
    width: 400px;
    height: 98px;
  }
}

/* Add this to your global CSS file */
.has-tabbar {
  padding-bottom: calc(4rem + env(safe-area-inset-bottom));
}

/* Add blob animation classes */
@layer utilities {
  .animation-delay-2000 {
    animation-delay: 2s;
  }
  .animation-delay-4000 {
    animation-delay: 4s;
  }
  
  @keyframes blob {
    0% {
      transform: translate(0px, 0px) scale(1);
    }
    33% {
      transform: translate(30px, -50px) scale(1.1);
    }
    66% {
      transform: translate(-20px, 20px) scale(0.9);
    }
    100% {
      transform: translate(0px, 0px) scale(1);
    }
  }
  
  .animate-blob {
    animation: blob 12s infinite;
  }
}

/* RTL Support */
@layer base {
  /* RTL text direction support */
  [dir="rtl"] {
    text-align: right;
  }
  
  [dir="rtl"] .text-left {
    text-align: right !important;
  }
  
  [dir="rtl"] .text-right {
    text-align: left !important;
  }
  
  /* RTL flex direction adjustments */
  [dir="rtl"] .flex-row {
    flex-direction: row-reverse;
  }
  
  [dir="rtl"] .flex-row-reverse {
    flex-direction: row;
  }
  
  /* RTL margin adjustments */
  [dir="rtl"] .ml-2 {
    margin-left: 0;
    margin-right: 0.5rem;
  }
  
  [dir="rtl"] .mr-2 {
    margin-right: 0;
    margin-left: 0.5rem;
  }
  
  [dir="rtl"] .ml-3 {
    margin-left: 0;
    margin-right: 0.75rem;
  }
  
  [dir="rtl"] .mr-3 {
    margin-right: 0;
    margin-left: 0.75rem;
  }
  
  [dir="rtl"] .ml-4 {
    margin-left: 0;
    margin-right: 1rem;
  }
  
  [dir="rtl"] .mr-4 {
    margin-right: 0;
    margin-left: 1rem;
  }
  
  /* RTL padding adjustments */
  [dir="rtl"] .pl-4 {
    padding-left: 0;
    padding-right: 1rem;
  }
  
  [dir="rtl"] .pr-4 {
    padding-right: 0;
    padding-left: 1rem;
  }
  
  [dir="rtl"] .pl-6 {
    padding-left: 0;
    padding-right: 1.5rem;
  }
  
  [dir="rtl"] .pr-6 {
    padding-right: 0;
    padding-left: 1.5rem;
  }
  
  [dir="rtl"] .pl-8 {
    padding-left: 0;
    padding-right: 2rem;
  }
  
  [dir="rtl"] .pr-8 {
    padding-right: 0;
    padding-left: 2rem;
  }
  
  /* RTL border adjustments */
  [dir="rtl"] .border-l-4 {
    border-left-width: 0;
    border-right-width: 4px;
  }
  
  [dir="rtl"] .border-l-8 {
    border-left-width: 0;
    border-right-width: 8px;
  }
  
  /* RTL positioning adjustments */
  [dir="rtl"] .left-10 {
    left: auto;
    right: 2.5rem;
  }
  
  [dir="rtl"] .right-10 {
    right: auto;
    left: 2.5rem;
  }
  
  [dir="rtl"] .left-1\/3 {
    left: auto;
    right: 33.333333%;
  }
  
  [dir="rtl"] .right-1\/3 {
    right: auto;
    left: 33.333333%;
  }
  
  [dir="rtl"] .left-1\/4 {
    left: auto;
    right: 25%;
  }
  
  [dir="rtl"] .right-1\/4 {
    right: auto;
    left: 25%;
  }
  
  /* RTL absolute positioning */
  [dir="rtl"] .right-0 {
    right: auto;
    left: 0;
  }
  
  /* RTL table alignment */
  [dir="rtl"] {
    direction: rtl;
  }
  
  [dir="rtl"] table th,
  [dir="rtl"] table td {
    text-align: right;
  }
  
  [dir="rtl"] table th:first-child,
  [dir="rtl"] table td:first-child {
    text-align: right;
  }
}

/* LTR utility classes */
@layer utilities {
  .scrollbar-hide {
    /* Hide scrollbar for webkit browsers */
    -webkit-scrollbar: 0;
    -webkit-scrollbar-width: 0;
  }
  
  .scrollbar-hide::-webkit-scrollbar {
    display: none;
  }
  
  .article-card-ltr {
    direction: ltr;
    text-align: left;
  }
  
  .article-card-ltr .flex-row {
    flex-direction: row;
  }
  
  .article-card-ltr .text-left {
    text-align: left !important;
  }
  
  .article-card-ltr .ml-2 {
    margin-left: 0.5rem;
    margin-right: 0;
  }
  
  .article-card-ltr .mr-2 {
    margin-right: 0.5rem;
    margin-left: 0;
  }
  
  .article-card-ltr .ml-1 {
    margin-left: 0.25rem;
    margin-right: 0;
  }
  
  .article-card-ltr .mr-1 {
    margin-right: 0.25rem;
    margin-left: 0;
  }
  
  /* RTL and LTR utility classes for chat widgets */
  .rtl {
    direction: rtl;
  }
  
  .ltr {
    direction: ltr;
    text-align: left;
  }
  
  /* Ensure LTR content stays LTR even in RTL context */
  .ltr * {
    direction: ltr;
    text-align: left;
  }
}

@media (min-width: 640px) {
  .article-card-ltr {
    direction: ltr;
    text-align: left;
  }
}