/**
 * veraius-a11y-branches.css — Wave 5 / v3-41 accessibility media branches.
 * prefers-contrast, forced-colors (Windows HCM), print, and RTL layout overrides.
 * Loaded after theme + component CSS so tokens and shell classes exist.
 */

/* === prefers-contrast: more === */
@media (prefers-contrast: more) {
  :root {
    --ghost-border: rgba(var(--overlay-scrim-rgb), 0.35);
    --focus-ring-width: 3px;
    --focus-ring-color: CanvasText;
    --focus-ring: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
  }

  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .btn-chip,
  .card,
  .card-elevated,
  .card-interactive,
  .input-field,
  .sidebar-nav-item,
  .sidebar-nav-item.active,
  .technical-rail-btn,
  .infrastructure-chip,
  .v-chart-wrap {
    outline: 2px solid CanvasText !important;
    outline-offset: 1px;
  }

  .sidebar-nav-item.active::before {
    background: CanvasText !important;
  }

  :where(.text-muted, .on-surface-variant) {
    color: CanvasText !important;
    opacity: 1 !important;
  }
}

/* === forced-colors (Windows High Contrast Mode) === */
@media (forced-colors: active) {
  :root {
    --focus-ring: 0 0 0 3px Highlight;
  }

  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .btn-chip {
    border: 2px solid ButtonText !important;
    background: ButtonFace !important;
    color: ButtonText !important;
    forced-color-adjust: none;
  }

  .btn-primary {
    background: Highlight !important;
    color: HighlightText !important;
    border-color: HighlightText !important;
  }

  .input-field,
  .card,
  .card-elevated,
  .card-interactive {
    border: 2px solid CanvasText !important;
    background: Canvas !important;
    color: CanvasText !important;
  }

  .sidebar-nav-item,
  .technical-rail-btn {
    border: 1px solid CanvasText !important;
  }

  .sidebar-nav-item.active,
  .technical-rail-btn.active {
    border: 2px solid LinkText !important;
    background: Highlight !important;
    color: HighlightText !important;
  }

  .sidebar-nav-item.active::before {
    background: HighlightText !important;
  }

  :focus-visible {
    outline: 3px solid Highlight !important;
    outline-offset: 2px;
  }

  .v-chart-wrap canvas {
    forced-color-adjust: auto;
  }
}

/* === print === */
@media print {
  .app-shell,
  .app-body {
    display: block !important;
  }

  .technical-rail,
  .sidebar,
  .bottom-nav,
  .app-topbar,
  .mobile-menu-overlay,
  .mobile-menu,
  .cmd-overlay,
  .cmd-palette,
  .notification-panel,
  .reconnect-banner,
  .cookie-consent-banner,
  .pwa-install-banner {
    display: none !important;
  }

  .app-content,
  .app-content-surface {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
  }

  .v-chart-wrap {
    break-inside: avoid;
    max-height: 280px;
  }

  .glass-panel,
  .modal-backdrop {
    background: white !important;
    backdrop-filter: none !important;
  }
}

/* === RTL ([dir="rtl"]) — shell + legacy physical utility bridges === */
[dir="rtl"] .app-body {
  direction: rtl;
}

[dir="rtl"] .app-content {
  text-align: start;
}

[dir="rtl"] .sidebar-group-chevron,
[dir="rtl"] .sidebar-nav-item .material-symbols-outlined.rtl-mirror {
  transform: scaleX(-1);
}

/* Bridge: physical alignment utilities → logical in RTL */
[dir="rtl"] .text-left {
  text-align: start;
}

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

[dir="rtl"] .ml-auto {
  margin-inline-start: auto;
  margin-left: unset;
}

[dir="rtl"] .mr-auto {
  margin-inline-end: auto;
  margin-right: unset;
}

[dir="rtl"] .pl-4 {
  padding-inline-start: 1rem;
  padding-left: unset;
}

[dir="rtl"] .pr-4 {
  padding-inline-end: 1rem;
  padding-right: unset;
}
