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

@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 0 0% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 0 0% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 0 0% 3.9%;
    --primary: 0 0% 9%;
    --primary-foreground: 0 0% 98%;
    --secondary: 0 0% 96.1%;
    --secondary-foreground: 0 0% 9%;
    --muted: 0 0% 96.1%;
    --muted-foreground: 0 0% 45.1%;
    --accent: 0 0% 96.1%;
    --accent-foreground: 0 0% 9%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 89.8%;
    --input: 0 0% 89.8%;
    --ring: 0 0% 3.9%;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 24%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
    --radius: 0.5rem;

    /* OMTT Brand Colors - Enhanced for better contrast */
    --omtt-red: 0 84% 45%;
    --omtt-green: 142 76% 32%;
    --omtt-green-dark: 150 60% 15%;
    --omtt-blue: 220 76% 48%;

    /* Sidebar tokens (shadcn) */
    --sidebar-background: 0 0% 100%;
    --sidebar-foreground: 0 0% 15%;
    --sidebar-primary: 215 50% 25%;
    --sidebar-primary-foreground: 0 0% 100%;
    --sidebar-accent: 0 0% 96%;
    --sidebar-accent-foreground: 215 50% 25%;
    --sidebar-border: 0 0% 90%;
    --sidebar-ring: 215 50% 25%;
  }

  .dark {
    --background: 0 0% 3.9%;
    --foreground: 0 0% 98%;
    --card: 0 0% 3.9%;
    --card-foreground: 0 0% 98%;
    --popover: 0 0% 3.9%;
    --popover-foreground: 0 0% 98%;
    --primary: 0 0% 98%;
    --primary-foreground: 0 0% 9%;
    --secondary: 0 0% 14.9%;
    --secondary-foreground: 0 0% 98%;
    --muted: 0 0% 14.9%;
    --muted-foreground: 0 0% 63.9%;
    --accent: 0 0% 14.9%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 14.9%;
    --input: 0 0% 14.9%;
    --ring: 0 0% 83.1%;
    --chart-1: 220 70% 50%;
    --chart-2: 160 60% 45%;
    --chart-3: 30 80% 55%;
    --chart-4: 280 65% 60%;
    --chart-5: 340 75% 55%;
  }
}

@layer base {
  * {
    @apply border-border;
  }
  body {
    @apply bg-background text-foreground;
  }

  /* Famille de police unifiée pour tout le site (Latin + Arabe) */
  html, body {
    font-family: 'IBM Plex Sans', 'Cairo', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-feature-settings: "kern", "liga", "calt";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  [dir="rtl"] {
    font-family: 'Cairo', 'IBM Plex Sans', system-ui, 'Segoe UI', sans-serif;
  }

  /* Classes RTL pour Tailwind */
  [dir="rtl"] .rtl\:text-right {
    text-align: right;
  }
  
  [dir="rtl"] .rtl\:text-left {
    text-align: left;
  }
  
  [dir="rtl"] .rtl\:ml-auto {
    margin-left: auto;
  }
  
  [dir="rtl"] .rtl\:mr-auto {
    margin-right: auto;
  }
  
  [dir="rtl"] .rtl\:flex-row-reverse {
    flex-direction: row-reverse;
  }

  /* Classes RTL pour l'espacement */
  [dir="rtl"] .space-x-reverse > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 1;
  }
  
  /* Amélioration du support RTL pour les sous-menus */
  [dir="rtl"] .space-x-1 > :not([hidden]) ~ :not([hidden]) {
    margin-right: calc(0.25rem * var(--tw-space-x-reverse));
    margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
  }
  
  [dir="rtl"] .space-x-2 > :not([hidden]) ~ :not([hidden]) {
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }
  
  [dir="rtl"] .space-x-3 > :not([hidden]) ~ :not([hidden]) {
    margin-right: calc(0.75rem * var(--tw-space-x-reverse));
    margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
  }
  
  [dir="rtl"] .space-x-4 > :not([hidden]) ~ :not([hidden]) {
    margin-right: calc(1rem * var(--tw-space-x-reverse));
    margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
  }
}

@layer utilities {
  .omtt-red {
    @apply text-red-600;
  }
  .bg-omtt-red {
    @apply bg-red-600;
  }
  .omtt-green {
    @apply text-green-600;
  }
  .bg-omtt-green {
    @apply bg-green-600;
  }
  .omtt-blue {
    @apply text-blue-600;
  }
  .bg-omtt-blue {
    @apply bg-blue-600;
  }

  /* Classes pour le chatbot mobile avec safe area */
  .mobile-chat-height {
    height: calc(100vh - env(safe-area-inset-bottom, 20px));
    height: calc(100dvh - env(safe-area-inset-bottom, 20px));
  }

  .mobile-chat-input-safe-area {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 20px));
  }

  /* Support pour les anciens navigateurs */
  @supports not (height: 100dvh) {
    .mobile-chat-height {
      height: calc(100vh - 20px);
    }
  }
}

/* =========================================================
   Responsive Admin Tables → Cards on mobile (< 768px)
   Tables get class `responsive-table` automatically (Table primitive).
   Cells with `data-label="..."` show the column name as a prefix.
   ========================================================= */
@media (max-width: 767px) {
  .responsive-table {
    display: block;
    width: 100%;
    border-collapse: separate;
  }
  .responsive-table thead {
    display: none;
  }
  .responsive-table tbody {
    display: block;
    width: 100%;
  }
  .responsive-table tbody tr {
    display: block;
    width: 100%;
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.25rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    background: hsl(var(--card));
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  }
  .responsive-table tbody tr:hover {
    background: hsl(var(--card));
  }
  .responsive-table tbody td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    border: none;
    text-align: right;
    min-height: auto;
    height: auto;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .responsive-table tbody td > * {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .responsive-table tbody tr {
    max-width: 100%;
    overflow: hidden;
  }
  .responsive-table tbody td[data-label]:not([data-label=""])::before {
    content: attr(data-label);
    flex-shrink: 0;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: hsl(var(--muted-foreground));
    text-align: left;
    margin-right: 0.5rem;
  }
  /* When a cell has no data-label (e.g. actions row), span full width */
  .responsive-table tbody td:not([data-label]),
  .responsive-table tbody td[data-label=""] {
    justify-content: flex-end;
    padding-top: 0.5rem;
    border-top: 1px dashed hsl(var(--border));
    margin-top: 0.25rem;
  }
  /* Make table wrapper not scroll horizontally on mobile */
  .responsive-table-wrapper,
  .responsive-table {
    overflow: visible !important;
  }
  /* Hide hidden cells consistently when they collapse */
  .responsive-table .hidden {
    display: none !important;
  }
}
