/**
 * RTL (Right-to-Left) Stylesheet
 *
 * This stylesheet provides RTL support for languages like Arabic, Hebrew, Farsi, and Urdu.
 * It overrides LTR styles when the document direction is set to RTL.
 */

/* ========================================
   Base RTL Styles
   ======================================== */

[dir="rtl"] {
  text-align: right;
}

/* ========================================
   Code Blocks - Keep LTR
   ======================================== */

/* Code blocks should always be LTR for readability */
[dir="rtl"] .CodeMirror,
[dir="rtl"] .code-block,
[dir="rtl"] pre,
[dir="rtl"] code {
  direction: ltr;
  text-align: left;
  unicode-bidi: embed;
}

/* ========================================
   Navigation
   ======================================== */

[dir="rtl"] .nav-menu {
  flex-direction: row-reverse;
}

[dir="rtl"] .breadcrumb {
  flex-direction: row-reverse;
}

[dir="rtl"] .breadcrumb-separator::before {
  content: "‹";  /* Left-pointing arrow for RTL */
}

/* ========================================
   Forms
   ======================================== */

[dir="rtl"] .form-group label {
  text-align: right;
}

[dir="rtl"] input[type="text"],
[dir="rtl"] input[type="email"],
[dir="rtl"] input[type="password"],
[dir="rtl"] textarea,
[dir="rtl"] select {
  text-align: right;
}

[dir="rtl"] .checkbox,
[dir="rtl"] .radio {
  padding-right: 20px;
  padding-left: 0;
}

/* ========================================
   Progress Bars
   ======================================== */

[dir="rtl"] .progress-bar {
  transform: scaleX(-1);
}

/* ========================================
   Chat and Messages
   ======================================== */

[dir="rtl"] .message.user {
  margin-left: 60px;
  margin-right: 0;
}

[dir="rtl"] .message.ai {
  margin-right: 60px;
  margin-left: 0;
}

[dir="rtl"] .chat-container {
  direction: rtl;
}

/* ========================================
   Floating Elements
   ======================================== */

[dir="rtl"] .float-left {
  float: right !important;
}

[dir="rtl"] .float-right {
  float: left !important;
}

/* ========================================
   Tooltips and Popovers
   ======================================== */

[dir="rtl"] .tooltip {
  text-align: right;
}

[dir="rtl"] .popover {
  text-align: right;
}

/* Tooltip positioning */
[dir="rtl"] .tooltip.left-6 {
  left: auto !important;
  right: 1.5rem !important;
}

/* ========================================
   Tables
   ======================================== */

[dir="rtl"] .table {
  text-align: right;
}

[dir="rtl"] .table th:first-child,
[dir="rtl"] .table td:first-child {
  padding-right: 0;
  padding-left: 0.75rem;
}

[dir="rtl"] .table th:last-child,
[dir="rtl"] .table td:last-child {
  padding-left: 0;
  padding-right: 0.75rem;
}

/* ========================================
   Icons and Arrows
   ======================================== */

/* Flip icons that indicate direction */
[dir="rtl"] .icon-arrow-right::before,
[dir="rtl"] .fa-arrow-right::before {
  content: "←";
}

[dir="rtl"] .icon-arrow-left::before,
[dir="rtl"] .fa-arrow-left::before {
  content: "→";
}

[dir="rtl"] .icon-chevron-right::before {
  transform: rotate(180deg);
}

[dir="rtl"] .icon-chevron-left::before {
  transform: rotate(180deg);
}

/* Mirror all SVG icons in RTL mode */
[dir="rtl"] svg {
  transform: scaleX(-1);
}

/* Fix text inside mirrored SVGs (mirror it back so it's readable) */
[dir="rtl"] svg text {
  transform: scaleX(-1);
}

/* Exception: Don't mirror SVGs that should stay as-is */
[dir="rtl"] .no-mirror svg,
[dir="rtl"] svg.no-mirror {
  transform: none;
}

/* Don't mirror logos and brand icons */
[dir="rtl"] .logo svg,
[dir="rtl"] .brand svg,
[dir="rtl"] [class*="logo"] svg,
[dir="rtl"] [class*="brand"] svg {
  transform: none;
}

/* Don't mirror decorative/symmetric icons */
[dir="rtl"] .icon-close svg,
[dir="rtl"] .icon-x svg,
[dir="rtl"] .icon-plus svg,
[dir="rtl"] .icon-minus svg,
[dir="rtl"] .icon-check svg,
[dir="rtl"] .icon-star svg,
[dir="rtl"] .icon-circle svg,
[dir="rtl"] .icon-square svg {
  transform: none;
}

/* Don't mirror charts, graphs, and data visualizations */
[dir="rtl"] .chart svg,
[dir="rtl"] .graph svg,
[dir="rtl"] [class*="chart"] svg,
[dir="rtl"] [class*="graph"] svg,
[dir="rtl"] [class*="plot"] svg {
  transform: none;
}

/* Don't mirror code-related icons in editor */
[dir="rtl"] .CodeMirror svg,
[dir="rtl"] .code-editor svg,
[dir="rtl"] .editor-container svg {
  transform: none;
}

/* Don't mirror symmetric UI elements */
[dir="rtl"] .sidebar-puller svg {
  transform: none;
}

/* Don't mirror checkmarks and selected indicators */
[dir="rtl"] .selected svg,
[dir="rtl"] [class*="selected"] svg,
[dir="rtl"] [class*="check"] svg {
  transform: none;
}

/* Don't mirror audio/video player controls (they use standard symbols) */
[dir="rtl"] .audio-controls svg,
[dir="rtl"] .video-controls svg,
[dir="rtl"] [class*="player"] svg {
  transform: none;
}

/* Don't mirror mathematical and scientific symbols */
[dir="rtl"] .math svg,
[dir="rtl"] .formula svg,
[dir="rtl"] [class*="math"] svg,
[dir="rtl"] [class*="equation"] svg {
  transform: none;
}

/* ========================================
   Course Layout Specific
   ======================================== */

[dir="rtl"] .course-sidebar {
  left: auto;
  right: 0;
}

[dir="rtl"] .course-content {
  margin-right: 300px;
  margin-left: 0;
}

/* ========================================
   Editor Specific
   ======================================== */

[dir="rtl"] .editor-tabs {
  flex-direction: row-reverse;
}

[dir="rtl"] .editor-actions {
  left: 0;
  right: auto;
}

[dir="rtl"] .editor-container {
  direction: ltr; /* Keep code editor LTR */
}

/* ========================================
   Modals and Dialogs
   ======================================== */

[dir="rtl"] .modal-header {
  text-align: right;
}

[dir="rtl"] .modal-footer {
  flex-direction: row-reverse;
}

/* ========================================
   Lists
   ======================================== */

[dir="rtl"] ul,
[dir="rtl"] ol {
  padding-right: 40px;
  padding-left: 0;
}

[dir="rtl"] li {
  text-align: right;
}

/* ========================================
   Buttons and Links
   ======================================== */

[dir="rtl"] .btn-group {
  flex-direction: row-reverse;
}

[dir="rtl"] .btn .icon {
  margin-left: 0.5rem;
  margin-right: 0;
}

/* ========================================
   Utility Classes
   ======================================== */

/* Text alignment utilities */
[dir="rtl"] .text-left {
  text-align: right !important;
}

[dir="rtl"] .text-right {
  text-align: left !important;
}

/* Border utilities - flip left/right borders */
[dir="rtl"] .border-l {
  border-left: none !important;
  border-right: 1px solid currentColor !important;
}

[dir="rtl"] .border-r {
  border-right: none !important;
  border-left: 1px solid currentColor !important;
}

[dir="rtl"] .border-l-0 {
  border-left: auto !important;
  border-right: 0 !important;
}

[dir="rtl"] .border-r-0 {
  border-right: auto !important;
  border-left: 0 !important;
}

/* Rounded corners - flip left/right */
[dir="rtl"] .rounded-l {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-top-right-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
}

[dir="rtl"] .rounded-r {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-top-left-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

[dir="rtl"] .rounded-l-none {
  border-top-left-radius: auto !important;
  border-bottom-left-radius: auto !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

[dir="rtl"] .rounded-r-none {
  border-top-right-radius: auto !important;
  border-bottom-right-radius: auto !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

/* Margin utilities */
[dir="rtl"] .ml-1 { margin-left: 0; margin-right: 0.25rem; }
[dir="rtl"] .ml-2 { margin-left: 0; margin-right: 0.5rem; }
[dir="rtl"] .ml-3 { margin-left: 0; margin-right: 0.75rem; }
[dir="rtl"] .ml-4 { margin-left: 0; margin-right: 1rem; }
[dir="rtl"] .ml-5 { margin-left: 0; margin-right: 1.25rem; }

[dir="rtl"] .mr-1 { margin-right: 0; margin-left: 0.25rem; }
[dir="rtl"] .mr-2 { margin-right: 0; margin-left: 0.5rem; }
[dir="rtl"] .mr-3 { margin-right: 0; margin-left: 0.75rem; }
[dir="rtl"] .mr-4 { margin-right: 0; margin-left: 1rem; }
[dir="rtl"] .mr-5 { margin-right: 0; margin-left: 1.25rem; }

/* Padding utilities */
[dir="rtl"] .pl-1 { padding-left: 0; padding-right: 0.25rem; }
[dir="rtl"] .pl-2 { padding-left: 0; padding-right: 0.5rem; }
[dir="rtl"] .pl-3 { padding-left: 0; padding-right: 0.75rem; }
[dir="rtl"] .pl-4 { padding-left: 0; padding-right: 1rem; }
[dir="rtl"] .pl-5 { padding-left: 0; padding-right: 1.25rem; }

[dir="rtl"] .pr-1 { padding-right: 0; padding-left: 0.25rem; }
[dir="rtl"] .pr-2 { padding-right: 0; padding-left: 0.5rem; }
[dir="rtl"] .pr-3 { padding-right: 0; padding-left: 0.75rem; }
[dir="rtl"] .pr-4 { padding-right: 0; padding-left: 1rem; }
[dir="rtl"] .pr-5 { padding-right: 0; padding-left: 1.25rem; }

/* ========================================
   Login Page
   ======================================== */

[dir="rtl"] #login_page .bd-title,
[dir="rtl"] #login_page .bd-lead {
  text-align: right;
}

/* ========================================
   Dashboard
   ======================================== */

[dir="rtl"] .dashboard-card {
  text-align: right;
}

[dir="rtl"] .dashboard-stats {
  flex-direction: row-reverse;
}

/* ========================================
   Dropdown Menus
   ======================================== */

[dir="rtl"] .dropdown-menu {
  right: 0;
  left: auto;
  text-align: right;
}

[dir="rtl"] .dropdown-item {
  text-align: right;
}

/* Submenu positioning for RTL */
[dir="rtl"] [class*="right-full"] {
  right: auto;
  left: 100%;
}

[dir="rtl"] [class*="left-full"] {
  left: auto;
  right: 100%;
}

/* ========================================
   Workspace and Tabs
   ======================================== */

[dir="rtl"] .workspace-tabs {
  flex-direction: row-reverse;
}

[dir="rtl"] .component-tabs {
  flex-direction: row-reverse;
}

[dir="rtl"] .workspace-container {
  direction: rtl;
}

[dir="rtl"] .workspace-container .CodeMirror {
  direction: ltr; /* Keep code LTR */
}

/* ========================================
   Notifications and Toasts
   ======================================== */

[dir="rtl"] .notification,
[dir="rtl"] .toast {
  text-align: right;
}

[dir="rtl"] .notification .icon,
[dir="rtl"] .toast .icon {
  margin-left: 0.5rem;
  margin-right: 0;
}

/* ========================================
   Badges and Labels
   ======================================== */

[dir="rtl"] .badge {
  margin-left: 0.5rem;
  margin-right: 0;
}

[dir="rtl"] .label {
  text-align: right;
}

/* ========================================
   Sidebar Navigation
   ======================================== */

[dir="rtl"] .sidebar {
  left: auto;
  right: 0;
}

[dir="rtl"] .sidebar-item {
  text-align: right;
  padding-right: 1rem;
  padding-left: 0.5rem;
}

[dir="rtl"] .sidebar-item .icon {
  margin-left: 0.75rem;
  margin-right: 0;
}

/* Right overlay (course sidebar) - flip to left in RTL */
[dir="rtl"] .right-overlay {
  border-left: none !important;
  border-right: 1px solid var(--color-slate-10, #e5e7eb) !important;
  /* Ensure fixed positioning even in default state for RTL */
  position: fixed !important;
  right: auto !important;
  left: 0 !important;
  top: 0 !important;
}

/* Right sidebar - flip to left in RTL */
[dir="rtl"] .right-sidebar {
  border-left: none !important;
  border-right: 1px solid var(--color-slate-10, #e5e7eb) !important;
  position: fixed !important;
  right: auto !important;
  left: 0 !important;
  top: 0 !important;
}

/* Notes panel - position next to sidebar on left in RTL */
[dir="rtl"] .notes-panel {
  border-left: none !important;
  border-right: 1px solid var(--color-slate-10, #e5e7eb) !important;
  position: fixed !important;
  right: auto !important;
  left: 48px !important;  /* Position after 48px sidebar width */
  top: 0 !important;
}

/* Override any right-0 class that Alpine adds dynamically */
[dir="rtl"] .right-overlay.right-0 {
  right: auto !important;
  left: 0 !important;
}

/* Transform direction for sliding in from opposite side in RTL */
/* When hidden: slide off to the LEFT (negative direction) */
[dir="rtl"] .right-overlay.translate-x-full {
  transform: translateX(-200%) !important;
  /* Ensure it's actually off-screen */
  visibility: visible; /* Keep visible for animation, but positioned off-screen */
}

/* When visible: no transform (at left: 0 position) */
[dir="rtl"] .right-overlay.translate-x-0 {
  transform: translateX(0) !important;
}

/* Notes panel transitions for RTL */
[dir="rtl"] .notes-panel.translate-x-full {
  transform: translateX(-100%) !important;
}

[dir="rtl"] .notes-panel.translate-x-0 {
  transform: translateX(0) !important;
}

/* Sidebar puller handle - flip to left side */
[dir="rtl"] .sidebar-puller {
  right: auto !important;
  left: 0 !important;
}

/* Handle dynamic classes on sidebar-puller */
[dir="rtl"] .sidebar-puller.right-0 {
  right: auto !important;
  left: 0 !important;
}

[dir="rtl"] .sidebar-puller.right-2 {
  right: auto !important;
  left: 0.5rem !important;
}

/* Hover trigger zone - flip to left side and ensure it has width */
[dir="rtl"] .group.absolute.right-0.h-dvh {
  right: auto !important;
  left: 0 !important;
  /* Give it a reasonable hover area width if not defined */
  min-width: 20px;
}

/* Asset selector - flip to right side in RTL */
[dir="rtl"] .asset-selector {
  left: auto !important;
  right: 0 !important;
}

/* Mobile asset selector positioning */
[dir="rtl"] .asset-selector.left-2 {
  left: auto !important;
  right: 0.5rem !important;
}

/* Fixed positioning overrides for Tailwind classes */
[dir="rtl"] .fixed.right-0 {
  right: auto !important;
  left: 0 !important;
}

[dir="rtl"] .fixed.left-0 {
  left: auto !important;
  right: 0 !important;
}

[dir="rtl"] .fixed.left-2 {
  left: auto !important;
  right: 0.5rem !important;
}

[dir="rtl"] .fixed.right-2 {
  right: auto !important;
  left: 0.5rem !important;
}

/* Absolute positioning overrides for Tailwind classes */
[dir="rtl"] .absolute.right-0 {
  right: auto !important;
  left: 0 !important;
}

[dir="rtl"] .absolute.left-0 {
  left: auto !important;
  right: 0 !important;
}

[dir="rtl"] .absolute.left-2 {
  left: auto !important;
  right: 0.5rem !important;
}

[dir="rtl"] .absolute.right-2 {
  right: auto !important;
  left: 0.5rem !important;
}

[dir="rtl"] .absolute.left-6 {
  left: auto !important;
  right: 1.5rem !important;
}

[dir="rtl"] .absolute.right-6 {
  right: auto !important;
  left: 1.5rem !important;
}

/* ========================================
   Code Output and Console
   ======================================== */

[dir="rtl"] .output-container {
  direction: ltr; /* Keep output LTR for code/data */
  text-align: left;
}

[dir="rtl"] .console-output {
  direction: ltr;
  text-align: left;
}

/* ========================================
   Flexbox Utilities for RTL
   ======================================== */

[dir="rtl"] .flex-row {
  flex-direction: row-reverse;
}

[dir="rtl"] .justify-start {
  justify-content: flex-end;
}

[dir="rtl"] .justify-end {
  justify-content: flex-start;
}

[dir="rtl"] .items-start {
  align-items: flex-end;
}

[dir="rtl"] .items-end {
  align-items: flex-start;
}

/* ========================================
   Search and Input Groups
   ======================================== */

[dir="rtl"] .input-group {
  flex-direction: row-reverse;
}

[dir="rtl"] .input-group-text {
  border-radius: 0 0.375rem 0.375rem 0;
}

[dir="rtl"] .input-group input {
  border-radius: 0.375rem 0 0 0.375rem;
}

[dir="rtl"] .search-icon {
  right: auto;
  left: 0.75rem;
}

/* ========================================
   Progress Indicators
   ======================================== */

[dir="rtl"] .progress-steps {
  flex-direction: row-reverse;
}

[dir="rtl"] .progress-step::after {
  right: auto;
  left: 50%;
}

/* ========================================
   Card Layouts
   ======================================== */

[dir="rtl"] .card-header {
  text-align: right;
}

[dir="rtl"] .card-footer {
  flex-direction: row-reverse;
}

/* ========================================
   Numbered Lists and Ordered Content
   ======================================== */

/* Keep numbers LTR even in RTL context */
[dir="rtl"] ol {
  list-style-position: inside;
}

[dir="rtl"] ol li::marker {
  unicode-bidi: isolate;
}

/* ========================================
   Animation and Transform Adjustments
   ======================================== */

/* Flip slide-in animations for RTL */
[dir="rtl"] .slide-in-right {
  animation-name: slideInLeft;
}

[dir="rtl"] .slide-in-left {
  animation-name: slideInRight;
}

/* ========================================
   Component-Specific: Language Switcher
   ======================================== */

[dir="rtl"] .language-switcher {
  text-align: right;
}

[dir="rtl"] .language-switcher .icon {
  margin-left: 0.5rem;
  margin-right: 0;
}
