/* SCSS Variables (for reference/compilation) */
:root {
  --flyout-spacing: 0;
  --flyout-transition: 0.2s;
  --flyout-z-base: 1050;
  
  /* Light mode colors (default) */
  --flyout-bg: #ffffff;
  --flyout-border-color: #dee2e6;
  --flyout-text-color: #212529;
  --flyout-hover-bg: #f8f9fa;
  --flyout-hover-text: #212529;
  --flyout-active-bg: #e9ecef;
  --flyout-focus-outline: #0d6efd;
  --flyout-shadow: rgba(0, 0, 0, 0.15);
}

/* Dark mode colors */
[data-bs-theme="dark"] {
  --flyout-bg: #212529;
  --flyout-border-color: #495057;
  --flyout-text-color: #dee2e6;
  --flyout-hover-bg: #343a40;
  --flyout-hover-text: #ffffff;
  --flyout-active-bg: #495057;
  --flyout-focus-outline: #0d6efd;
  --flyout-shadow: rgba(0, 0, 0, 0.5);
}

/* Support for legacy dark mode implementations */
.dark-mode,
body.dark-mode,
html.dark-mode {
  --flyout-bg: #212529;
  --flyout-border-color: #495057;
  --flyout-text-color: #dee2e6;
  --flyout-hover-bg: #343a40;
  --flyout-hover-text: #ffffff;
  --flyout-active-bg: #495057;
  --flyout-focus-outline: #0d6efd;
  --flyout-shadow: rgba(0, 0, 0, 0.5);
}

/* Dropdown submenu structure */
.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-toggle::after {
  display: inline-block;
  margin-left: auto;
  vertical-align: 0.1em;
  content: "";
  border-top: 0.3em solid transparent;
  border-bottom: 0.3em solid transparent;
  border-left: 0.3em solid;
  margin-top: 0;
  flex-shrink: 0;
}

/* RTL caret flip */
[dir="rtl"] .dropdown-submenu > .dropdown-toggle::after {
  border-left: 0;
  border-right: 0.3em solid;
  margin-left: 0;
  margin-right: auto;
}

/* Submenu positioning - LTR (flyout to right) */
.dropdown-submenu > .dropdown-menu {
  position: fixed;
  top: 0;
  left: 100%;
  margin-left: var(--flyout-spacing);
  margin-top: 0;
  display: none;
  z-index: 9999;
}

/* Submenu positioning - RTL (flyout to left) */
[dir="rtl"] .dropdown-submenu > .dropdown-menu {
  left: auto;
  right: 100%;
  margin-left: 0;
  margin-right: var(--flyout-spacing);
}

/* Show submenu on hover (non-touch devices) */
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}

/* Show submenu when manually opened */
.dropdown-submenu.show > .dropdown-menu {
  display: block;
}

/* Prevent Bootstrap's default dropdown-menu hiding */
.dropdown-menu .dropdown-menu {
  transition: opacity var(--flyout-transition) ease-in-out;
}

/* Z-index stacking for nested menus */
.dropdown-menu {
  z-index: 9998;
}

.dropdown-submenu > .dropdown-menu {
  z-index: 9999;
}

.dropdown-submenu .dropdown-submenu > .dropdown-menu {
  z-index: 10000;
}

.dropdown-submenu .dropdown-submenu .dropdown-submenu > .dropdown-menu {
  z-index: 10001;
}

/* Widget flyout specific styles */
.widget-flyout-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.widget-flyout-menu .dropdown-menu {
  min-width: 200px;
}

.widget-flyout-menu .dropdown-item {
  cursor: pointer;
  padding: 0.5rem 1rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  text-align: start;
}

.widget-flyout-menu .dropdown-submenu > .dropdown-toggle {
  width: 100%;
  text-align: start;
  background: transparent;
  border: none;
  padding: 0.5rem 1rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

[dir="rtl"] .widget-flyout-menu .dropdown-submenu > .dropdown-toggle {
  text-align: start;
}

/* Dropdown menu base styles with dark mode support */
.dropdown-menu {
  background-color: var(--bs-dropdown-bg, var(--flyout-bg));
  border-color: var(--bs-dropdown-border-color, var(--flyout-border-color));
  color: var(--bs-dropdown-color, var(--flyout-text-color));
  box-shadow: 0 0.5rem 1rem var(--flyout-shadow);
}

/* Dropdown items styling */
.widget-flyout-menu .dropdown-item,
.widget-flyout-menu .dropdown-submenu > .dropdown-toggle {
  color: var(--bs-dropdown-link-color, var(--flyout-text-color));
}

/* Hover effects */
.widget-flyout-menu .dropdown-item:hover,
.widget-flyout-menu .dropdown-submenu > .dropdown-toggle:hover {
  background-color: var(--bs-dropdown-link-hover-bg, var(--flyout-hover-bg));
  color: var(--bs-dropdown-link-hover-color, var(--flyout-hover-text));
}

/* Active state */
.widget-flyout-menu .dropdown-submenu.show > .dropdown-toggle {
  background-color: var(--bs-dropdown-link-hover-bg, var(--flyout-hover-bg));
  color: var(--bs-dropdown-link-hover-color, var(--flyout-hover-text));
}

/* Touch device overrides - disable hover */
.touch-device .dropdown-submenu:hover > .dropdown-menu {
  display: none;
}

.touch-device .dropdown-submenu.show > .dropdown-menu {
  display: block;
}

/* First level menu items */
.widget-flyout-menu > li {
  border-bottom: 1px solid var(--bs-border-color, var(--flyout-border-color));
}

.widget-flyout-menu > li:last-child {
  border-bottom: none;
}

/* Viewport edge detection adjustments - not needed with fixed positioning */

/* Keyboard navigation focus */
.widget-flyout-menu .dropdown-item:focus,
.widget-flyout-menu .dropdown-submenu > .dropdown-toggle:focus {
  outline: 2px solid var(--bs-primary, var(--flyout-focus-outline));
  outline-offset: -2px;
  background-color: var(--bs-dropdown-link-hover-bg, var(--flyout-hover-bg));
  color: var(--bs-dropdown-link-hover-color, var(--flyout-hover-text));
}

/* Icon spacing */
.widget-flyout-menu .dropdown-item i,
.widget-flyout-menu .dropdown-toggle i {
  margin-right: 0.5rem;
  flex-shrink: 0;
}

[dir="rtl"] .widget-flyout-menu .dropdown-item i,
[dir="rtl"] .widget-flyout-menu .dropdown-toggle i {
  margin-right: 0;
  margin-left: 0.5rem;
}

/* Text should not wrap */
.widget-flyout-menu .dropdown-item,
.widget-flyout-menu .dropdown-toggle {
  white-space: nowrap;
  gap: 0.5rem;
}

/* Caret icon color */
.dropdown-submenu > .dropdown-toggle::after {
  border-left-color: var(--bs-dropdown-link-color, var(--flyout-text-color));
}

[dir="rtl"] .dropdown-submenu > .dropdown-toggle::after {
  border-right-color: var(--bs-dropdown-link-color, var(--flyout-text-color));
}

/* Mobile responsiveness */
@media (max-width: 768px) {
  .widget-flyout-menu .dropdown-menu {
    position: static !important;
    float: none;
    margin-left: 1rem !important;
    margin-right: 0 !important;
    box-shadow: none;
    border-left: 2px solid var(--bs-border-color, var(--flyout-border-color));
  }
  
  [dir="rtl"] .widget-flyout-menu .dropdown-menu {
    margin-left: 0 !important;
    margin-right: 1rem !important;
    border-left: none;
    border-right: 2px solid var(--bs-border-color, var(--flyout-border-color));
  }
  
  .dropdown-submenu > .dropdown-menu {
    display: none;
  }
  
  .dropdown-submenu.show > .dropdown-menu {
    display: block;
  }
}

