/* =============================================================
   Admin Design System — Override Layer
   Mono + Electric editorial direction.
   Gated under body.ds-redesign — remove that class to disable.
   Token values live in design-tokens.css.
   ============================================================= */

/* ------------------------------------------------------------- */
/* 1. BASE                                                       */
/* ------------------------------------------------------------- */

body.ds-redesign {
  background: var(--ds-bg) !important;
  color: var(--ds-text);
  font-family: var(--ds-font-body);
  font-size: var(--ds-fs-body);
  line-height: var(--ds-lh-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.ds-redesign a {
  color: var(--ds-primary);
  text-decoration: none;
  transition: color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign a:hover { color: var(--ds-primary-hover); }

body.ds-redesign ::selection {
  background: var(--ds-primary-soft-2);
  color: var(--ds-text);
}

/* Scrollbar — thin, neutral, app-wide */
body.ds-redesign ::-webkit-scrollbar { width: 10px; height: 10px; }
body.ds-redesign ::-webkit-scrollbar-track { background: transparent; }
body.ds-redesign ::-webkit-scrollbar-thumb {
  background: var(--ds-border-strong);
  border-radius: var(--ds-r-pill);
  border: 2px solid var(--ds-bg);
}
body.ds-redesign ::-webkit-scrollbar-thumb:hover { background: var(--ds-muted); }

/* Main content frame.
   The legacy theme uses `position: fixed` on #header; without enough top
   padding here, the first element on each page sits underneath the header.
   `header_height + s-5` gives a clear, breathable gap on every admin page. */
body.ds-redesign #content.main,
body.ds-redesign main#content.main {
  background: var(--ds-bg) !important;
  padding-top: calc(var(--ds-header-h) + var(--ds-s-5)) !important;
  padding-bottom: var(--ds-s-9) !important;
}

/* Clear the fixed sidebar.
   - Expanded state (default): offset by --ds-sidebar-w (260px)
   - Collapsed state (body.navbar-vertical-aside-mini-mode): offset by --ds-sidebar-rail-w (72px)
   Transitions smoothly so the collapse animation reads as a single motion. */
@media (min-width: 992px) {
  body.ds-redesign main#content.main {
    margin-left: var(--ds-sidebar-w) !important;
    margin-right: 0 !important;
    padding-left: var(--ds-s-6);
    padding-right: var(--ds-s-6);
    transition: margin-left var(--ds-dur-base) var(--ds-ease),
                margin-right var(--ds-dur-base) var(--ds-ease);
  }
  body.ds-redesign #header,
  body.ds-redesign .navbar-container.navbar-bordered {
    margin-left: var(--ds-sidebar-w) !important;
    width: calc(100% - var(--ds-sidebar-w)) !important;
    transition: margin-left var(--ds-dur-base) var(--ds-ease),
                margin-right var(--ds-dur-base) var(--ds-ease),
                width var(--ds-dur-base) var(--ds-ease);
  }

  /* Collapsed (rail) state */
  body.ds-redesign.navbar-vertical-aside-mini-mode main#content.main {
    margin-left: var(--ds-sidebar-rail-w) !important;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode #header,
  body.ds-redesign.navbar-vertical-aside-mini-mode .navbar-container.navbar-bordered {
    margin-left: var(--ds-sidebar-rail-w) !important;
    width: calc(100% - var(--ds-sidebar-rail-w)) !important;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar {
    width: var(--ds-sidebar-rail-w);
  }

  /* RTL: mirror to the right edge */
  [dir="rtl"] body.ds-redesign main#content.main {
    margin-left: 0 !important;
    margin-right: var(--ds-sidebar-w) !important;
  }
  [dir="rtl"] body.ds-redesign #header,
  [dir="rtl"] body.ds-redesign .navbar-container.navbar-bordered {
    margin-left: 0 !important;
    margin-right: var(--ds-sidebar-w) !important;
  }
  [dir="rtl"] body.ds-redesign.navbar-vertical-aside-mini-mode main#content.main {
    margin-right: var(--ds-sidebar-rail-w) !important;
  }
  [dir="rtl"] body.ds-redesign.navbar-vertical-aside-mini-mode #header,
  [dir="rtl"] body.ds-redesign.navbar-vertical-aside-mini-mode .navbar-container.navbar-bordered {
    margin-right: var(--ds-sidebar-rail-w) !important;
    width: calc(100% - var(--ds-sidebar-rail-w)) !important;
  }
}
/* On smaller screens just keep some breathing room from the page edges. */
@media (max-width: 991px) {
  body.ds-redesign main#content.main {
    padding-left: var(--ds-s-4);
    padding-right: var(--ds-s-4);
  }
}

/* Page-header gets a small extra top margin so views that don't open with a
   `.page-header` (raw `.card`, etc.) still get the same visible buffer. */
body.ds-redesign #content.main > .content,
body.ds-redesign #content.main > .container-fluid,
body.ds-redesign #content.main > .content.container-fluid {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
body.ds-redesign #content.main > .content > .page-header:first-child,
body.ds-redesign #content.main > .container-fluid > .page-header:first-child,
body.ds-redesign #content.main > .content > .ds-order-hero:first-child,
body.ds-redesign #content.main > .container-fluid > .ds-order-hero:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ------------------------------------------------------------- */
/* 2. TYPOGRAPHY                                                 */
/* ------------------------------------------------------------- */

body.ds-redesign h1,
body.ds-redesign h2,
body.ds-redesign h3,
body.ds-redesign h4,
body.ds-redesign h5,
body.ds-redesign h6 {
  color: var(--ds-text);
  font-family: var(--ds-font-body);
  letter-spacing: var(--ds-tracking-tight);
  font-weight: 600;
  line-height: var(--ds-lh-snug);
}

body.ds-redesign .page-header-title,
body.ds-redesign .page-header h1,
body.ds-redesign .page-header h2 {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: var(--ds-fs-h1);
  letter-spacing: var(--ds-tracking-tight);
  color: var(--ds-text);
  margin-bottom: var(--ds-s-2);
}

body.ds-redesign .modal-title,
body.ds-redesign .modal-header h4,
body.ds-redesign .modal-header h5 {
  font-family: var(--ds-font-display);
  font-weight: 500;
  letter-spacing: var(--ds-tracking-tight);
}

body.ds-redesign .text-muted {
  color: var(--ds-muted) !important;
}

body.ds-redesign small,
body.ds-redesign .small {
  color: var(--ds-muted);
  font-size: var(--ds-fs-small);
}

/* Section eyebrow labels (used on stats, headers, etc.) */
body.ds-redesign .ds-eyebrow,
body.ds-redesign .nav-subtitle {
  font-family: var(--ds-font-body);
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  color: var(--ds-muted);
}

/* ------------------------------------------------------------- */
/* 3. SIDEBAR — inverted (light) + rail-first                    */
/* ------------------------------------------------------------- */

/* Container */
body.ds-redesign .navbar-vertical-aside {
  background: var(--ds-surface) !important;
  border-right: 1px solid var(--ds-border) !important;
  box-shadow: none !important;
}

/* Strip the deep-teal background utility class everywhere it appears */
body.ds-redesign .bg--005555,
body.ds-redesign .navbar-vertical-content.bg--005555 {
  background: var(--ds-surface) !important;
}

body.ds-redesign .navbar-vertical-container,
body.ds-redesign .navbar-vertical-content {
  background: var(--ds-surface) !important;
}

/* Brand */
body.ds-redesign .navbar-brand-wrapper {
  background: var(--ds-surface) !important;
  border-bottom: 1px solid var(--ds-border) !important;
  padding: var(--ds-s-4) var(--ds-s-5);
  min-height: var(--ds-header-h);
}

body.ds-redesign .navbar-brand-logo,
body.ds-redesign .navbar-brand-logo-mini {
  filter: none;
}

/* Search field inside sidebar */
body.ds-redesign .sidebar--search-form {
  padding: var(--ds-s-4) var(--ds-s-4) var(--ds-s-2);
}
body.ds-redesign .sidebar--search-form .search--form-group {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--ds-bg-soft);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-md);
  padding: 0 var(--ds-s-2);
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .sidebar--search-form .search--form-group:focus-within {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
  background: var(--ds-surface);
}
body.ds-redesign .sidebar--search-form .form-control {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--ds-text);
  font-size: var(--ds-fs-small);
  padding: 8px 6px;
}
body.ds-redesign .sidebar--search-form .form-control::placeholder { color: var(--ds-muted); }
body.ds-redesign .sidebar--search-form button.btn {
  background: transparent !important;
  border: none !important;
  color: var(--ds-muted);
  padding: 0 6px;
}
body.ds-redesign .sidebar--search-form button.btn:hover { color: var(--ds-primary); }

/* Section subtitles inside sidebar */
body.ds-redesign .navbar-vertical .nav-subtitle {
  color: var(--ds-muted) !important;
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  padding: var(--ds-s-5) var(--ds-s-5) var(--ds-s-2);
  display: block;
}

/* Nav items */
body.ds-redesign .navbar-vertical .nav-link,
body.ds-redesign .navbar-vertical .js-navbar-vertical-aside-menu-link {
  color: var(--ds-text-soft) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  padding: 10px var(--ds-s-5);
  margin: 1px var(--ds-s-3);
  border-radius: var(--ds-r-md);
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
  position: relative;
}

body.ds-redesign .navbar-vertical .nav-link .nav-icon,
body.ds-redesign .navbar-vertical .nav-link i {
  color: var(--ds-muted);
  font-size: 1.05rem;
  transition: color var(--ds-dur-fast) var(--ds-ease);
}

body.ds-redesign .navbar-vertical .nav-link:hover {
  background: var(--ds-bg-soft);
  color: var(--ds-text) !important;
}
body.ds-redesign .navbar-vertical .nav-link:hover .nav-icon,
body.ds-redesign .navbar-vertical .nav-link:hover i { color: var(--ds-text); }

/* Active state — electric indigo */
body.ds-redesign .navbar-vertical-aside-has-menu.active > .nav-link,
body.ds-redesign .navbar-vertical-aside-has-menu.show > .nav-link,
body.ds-redesign .navbar-vertical .nav-item.active > .nav-link,
body.ds-redesign .navbar-vertical .nav-link.active {
  background: var(--ds-primary-soft) !important;
  color: var(--ds-primary) !important;
  font-weight: 600;
}
body.ds-redesign .navbar-vertical-aside-has-menu.active > .nav-link .nav-icon,
body.ds-redesign .navbar-vertical-aside-has-menu.active > .nav-link i,
body.ds-redesign .navbar-vertical .nav-link.active .nav-icon,
body.ds-redesign .navbar-vertical .nav-link.active i {
  color: var(--ds-primary) !important;
}

/* Active indicator rail on left edge */
body.ds-redesign .navbar-vertical-aside-has-menu.active > .nav-link::before,
body.ds-redesign .navbar-vertical .nav-link.active::before {
  content: '';
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  background: var(--ds-primary);
  border-radius: 0 var(--ds-r-pill) var(--ds-r-pill) 0;
}

/* Sub-menu indent + soft chrome */
body.ds-redesign .navbar-vertical .nav-sub {
  padding: var(--ds-s-1) 0 var(--ds-s-2) var(--ds-s-7);
  border-left: 1px solid var(--ds-border);
  margin-left: calc(var(--ds-s-5) + 10px);
}
body.ds-redesign .navbar-vertical .nav-sub .nav-link {
  font-size: var(--ds-fs-small);
  padding: 6px var(--ds-s-3);
  margin: 0;
}
body.ds-redesign .navbar-vertical .nav-sub .nav-indicator-icon {
  display: none; /* drop the dot bullets — line is the indicator */
}

/* Badges next to sidebar items */
body.ds-redesign .navbar-vertical .badge {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted-strong) !important;
  border: 1px solid var(--ds-border);
  font-weight: 600;
  border-radius: var(--ds-r-pill);
}
body.ds-redesign .navbar-vertical-aside-has-menu.active .badge,
body.ds-redesign .navbar-vertical .nav-link.active .badge {
  background: var(--ds-primary-soft-2) !important;
  color: var(--ds-primary) !important;
  border-color: transparent;
}

/* Toggle button */
body.ds-redesign .navbar-vertical-aside-toggle,
body.ds-redesign .js-navbar-vertical-aside-toggle-invoker {
  color: var(--ds-muted) !important;
}
body.ds-redesign .navbar-vertical-aside-toggle:hover,
body.ds-redesign .js-navbar-vertical-aside-toggle-invoker:hover {
  color: var(--ds-primary) !important;
}

/* Icon-rail (collapsed) state — when the theme applies a mini-mode class */
body.ds-redesign .navbar-vertical-aside.navbar-vertical-aside-compact-mode .nav-link {
  justify-content: center;
}
body.ds-redesign .navbar-vertical-aside.navbar-vertical-aside-compact-mode .navbar-vertical-aside-mini-mode-hidden-elements {
  display: none !important;
}

/* ------------------------------------------------------------- */
/* 4. TOP HEADER BAR                                             */
/* ------------------------------------------------------------- */

body.ds-redesign #header,
body.ds-redesign .navbar-container.navbar-bordered {
  background: var(--ds-surface) !important;
  border-bottom: 1px solid var(--ds-border) !important;
  box-shadow: none !important;
  min-height: var(--ds-header-h);
}

body.ds-redesign #header .__navbar-nav { gap: var(--ds-s-2); }

body.ds-redesign #header .__nav-link {
  color: var(--ds-text-soft) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  padding: 8px var(--ds-s-4);
  border-radius: var(--ds-r-md);
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-2);
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign #header .__nav-link:hover {
  background: var(--ds-bg-soft);
  color: var(--ds-text) !important;
}
body.ds-redesign #header .__nav-link.active {
  background: var(--ds-primary-soft);
  color: var(--ds-primary) !important;
}
body.ds-redesign #header .__nav-link img {
  width: 18px;
  height: 18px;
  opacity: 0.75;
  filter: grayscale(1) contrast(0.85);
}
body.ds-redesign #header .__nav-link.active img,
body.ds-redesign #header .__nav-link:hover img {
  opacity: 1;
  filter: none;
}

/* Module selector chip — overrides legacy blue gradient at style.css:8185 */
body.ds-redesign #header .__nav-item .__nav-link.module--nav-icon,
body.ds-redesign .__nav-item .__nav-link.module--nav-icon {
  background: var(--ds-primary) !important;
  background-image: none !important;
  color: var(--ds-primary-ink) !important;
  border-radius: var(--ds-r-md) !important;
  height: 40px !important;
  padding: 0 var(--ds-s-4) !important;
  font-weight: 600;
  border: 1px solid var(--ds-primary) !important;
  transition: background var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign #header .__nav-item .__nav-link.module--nav-icon:hover {
  background: var(--ds-primary-hover) !important;
  border-color: var(--ds-primary-hover) !important;
}
body.ds-redesign #header .__nav-item .__nav-link.module--nav-icon span.text-white {
  color: var(--ds-primary-ink) !important;
  font-weight: 600;
  font-size: var(--ds-fs-small);
  letter-spacing: 0;
}
body.ds-redesign #header .__nav-item .__nav-link.module--nav-icon img {
  filter: brightness(0) invert(1);
  opacity: 0.95;
}

/* Header dropdown panels — clean card, no header */
body.ds-redesign .__nav-module {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  top: calc(100% + 8px) !important;
  width: 340px !important;
}

/* The body IS the card now that the header is gone. */
body.ds-redesign .__nav-module-body {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-top: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-lg) !important;
  box-shadow: var(--ds-shadow-3) !important;
  padding: var(--ds-s-3) !important;
  max-height: 70vh;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

/* If a dropdown ever still renders the legacy header (defensive), nuke it. */
body.ds-redesign .__nav-module-header { display: none !important; }

/* List items inside the Settings-style dropdown */
body.ds-redesign .__nav-module-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.ds-redesign .__nav-module-body ul li {
  list-style: none;
}
body.ds-redesign .__nav-module-body ul li a {
  display: flex !important;
  align-items: center;
  gap: var(--ds-s-3);
  padding: 10px var(--ds-s-3) !important;
  border-radius: var(--ds-r-md) !important;
  color: var(--ds-text-soft) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  line-height: 1.3 !important;
  text-decoration: none;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .__nav-module-body ul li a:hover {
  background: var(--ds-primary-soft) !important;
  color: var(--ds-primary) !important;
}
body.ds-redesign .__nav-module-body ul li a img,
body.ds-redesign .__nav-module-body ul li a svg {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  flex: 0 0 auto;
  opacity: 0.75;
  filter: grayscale(1) contrast(0.9);
  transition: opacity var(--ds-dur-fast) var(--ds-ease),
              filter var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .__nav-module-body ul li a:hover img,
body.ds-redesign .__nav-module-body ul li a:hover svg {
  opacity: 1;
  filter: none;
}

/* "View All" footer link */
body.ds-redesign .__nav-module-body .text-center.mt-2 {
  border-top: 1px solid var(--ds-border-hairline);
  margin-top: var(--ds-s-3) !important;
  padding-top: var(--ds-s-3);
}
body.ds-redesign .__nav-module-body .text-center.mt-2 a {
  color: var(--ds-primary) !important;
  font-size: var(--ds-fs-small);
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  padding: 6px var(--ds-s-3);
  border-radius: var(--ds-r-sm);
  transition: background var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .__nav-module-body .text-center.mt-2 a:hover {
  background: var(--ds-primary-soft);
}

/* Modules grid inside the Modules dropdown
   Higher specificity (.__nav-module-body .__nav-module-items) +
   word-break: normal kills the legacy break-all that was splitting
   Arabic text character-by-character (style.css:7598). */
body.ds-redesign .__nav-module.style-2 {
  width: 420px !important;
}
body.ds-redesign .__nav-module-body .__nav-module-items {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: var(--ds-s-2) !important;
  flex-wrap: nowrap !important;
  padding: 0 !important;
  column-gap: var(--ds-s-2) !important;
  row-gap: var(--ds-s-2) !important;
}
body.ds-redesign .__nav-module-body .__nav-module-items .__nav-module-item,
body.ds-redesign .__nav-module-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--ds-s-2) !important;
  width: auto !important;
  padding: var(--ds-s-3) var(--ds-s-2) !important;
  border-radius: var(--ds-r-md) !important;
  border: 1px solid var(--ds-border) !important;
  background: var(--ds-surface) !important;
  color: var(--ds-text) !important;
  font-size: var(--ds-fs-caption) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-align: center !important;
  text-decoration: none !important;
  min-height: 92px !important;
  /* The actual fix for the character-stacking bug: */
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  hyphens: none !important;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .__nav-module-body .__nav-module-items .__nav-module-item:hover {
  background: var(--ds-bg-soft) !important;
  border-color: var(--ds-border-strong) !important;
  transform: translateY(-1px);
}
body.ds-redesign .__nav-module-body .__nav-module-items .__nav-module-item.active {
  background: var(--ds-primary-soft) !important;
  border-color: var(--ds-primary) !important;
  color: var(--ds-primary) !important;
}
/* The icon-and-text rows inside each tile must NOT inherit the column flex
   and must allow normal text flow. */
body.ds-redesign .__nav-module-body .__nav-module-item > div {
  width: 100% !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: normal !important;
}
body.ds-redesign .__nav-module-body .__nav-module-item .img,
body.ds-redesign .__nav-module-body .__nav-module-item .w--70px {
  width: 36px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto !important;
  margin: 0 auto !important;
}
body.ds-redesign .__nav-module-body .__nav-module-item .img img,
body.ds-redesign .__nav-module-body .__nav-module-item img {
  max-width: 100% !important;
  max-height: 36px !important;
  margin: 0 auto !important;
  object-fit: contain;
}
body.ds-redesign .__nav-module-body .__nav-module-item i.tio-add {
  font-size: 1.5rem !important;
  color: var(--ds-muted);
}
body.ds-redesign .__nav-module-body .__nav-module-item:hover i.tio-add {
  color: var(--ds-primary);
}
/* "Active" tile — beat the legacy #006161 deep-teal background */
body.ds-redesign .__nav-module-body .__nav-module-item.active img *[fill="black"] {
  fill: var(--ds-primary) !important;
}

/* ------------------------------------------------------------- */
/* 5. CARDS                                                      */
/* ------------------------------------------------------------- */

body.ds-redesign .card {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-lg) !important;
  box-shadow: none !important;
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
}

body.ds-redesign .card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--ds-border-hairline) !important;
  padding: var(--ds-s-5) var(--ds-s-6);
}

body.ds-redesign .card-body {
  padding: var(--ds-s-6);
}

body.ds-redesign .card-footer {
  background: transparent !important;
  border-top: 1px solid var(--ds-border-hairline) !important;
  padding: var(--ds-s-4) var(--ds-s-6);
}

body.ds-redesign .card-header-title,
body.ds-redesign .card-header h4,
body.ds-redesign .card-header h5 {
  font-size: var(--ds-fs-h4);
  font-weight: 600;
  color: var(--ds-text);
  letter-spacing: var(--ds-tracking-tight);
  margin: 0;
}

/* Hover-actionable cards */
body.ds-redesign .card.is-actionable:hover,
body.ds-redesign a > .card:hover {
  border-color: var(--ds-border-strong) !important;
  transform: translateY(-1px);
  box-shadow: var(--ds-shadow-2) !important;
}

/* Stat cards (the resturant-card / card--bg-* family) — neutralize the
   theme's colored backgrounds and treat them all as token-driven */
body.ds-redesign .resturant-card,
body.ds-redesign [class*="card--bg-"] {
  background: var(--ds-surface) !important;
  color: var(--ds-text) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-lg) !important;
  padding: var(--ds-s-6) !important;
  position: relative;
  overflow: hidden;
}

body.ds-redesign .resturant-card::before,
body.ds-redesign [class*="card--bg-"]::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--ds-primary);
  opacity: 0.85;
}
body.ds-redesign .card--bg-2::before { background: var(--ds-success); }
body.ds-redesign .card--bg-3::before { background: var(--ds-warning); }
body.ds-redesign .card--bg-4::before { background: var(--ds-info); }

body.ds-redesign .resturant-card h2,
body.ds-redesign .resturant-card h3,
body.ds-redesign [class*="card--bg-"] h2,
body.ds-redesign [class*="card--bg-"] h3 {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 2.25rem;
  letter-spacing: var(--ds-tracking-tight);
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--ds-text) !important;
  margin-bottom: var(--ds-s-1);
}

body.ds-redesign .resturant-card span,
body.ds-redesign .resturant-card p,
body.ds-redesign [class*="card--bg-"] span,
body.ds-redesign [class*="card--bg-"] p {
  color: var(--ds-muted) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
}

body.ds-redesign .resturant-card img,
body.ds-redesign [class*="card--bg-"] img {
  filter: grayscale(0.2);
  opacity: 0.9;
}

/* ------------------------------------------------------------- */
/* 6. PAGE HEADER                                                */
/* ------------------------------------------------------------- */

body.ds-redesign .page-header {
  border-bottom: 1px solid var(--ds-border) !important;
  padding-bottom: var(--ds-s-5);
  margin-bottom: var(--ds-s-7) !important;
  /* No display:flex here — the existing markup uses Bootstrap row/col inside
     and forcing flex on the wrapper collapses it. */
}

body.ds-redesign .page-header .page-header-title + .page-header-text,
body.ds-redesign .page-header .page-header-text {
  margin-top: 4px !important;
}

body.ds-redesign .page-header img {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  object-fit: contain;
}

body.ds-redesign .page-header .page-header-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: var(--ds-fs-h1);
  letter-spacing: var(--ds-tracking-tight);
  color: var(--ds-text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
}

body.ds-redesign .page-header .page-header-title i {
  color: var(--ds-primary);
  font-size: 1.5rem;
}

body.ds-redesign .page-header .page-header-text,
body.ds-redesign .page-header p {
  color: var(--ds-muted);
  font-size: var(--ds-fs-small);
  margin: 0;
}

body.ds-redesign .page-header .badge {
  font-weight: 600;
  font-size: var(--ds-fs-caption);
}

/* ------------------------------------------------------------- */
/* 7. BUTTONS                                                    */
/* ------------------------------------------------------------- */

body.ds-redesign .btn {
  font-family: var(--ds-font-body);
  font-size: var(--ds-fs-small);
  font-weight: 600;
  letter-spacing: 0;
  border-radius: var(--ds-r-md);
  padding: 9px var(--ds-s-4);
  border: 1px solid transparent;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ds-s-2);
}

body.ds-redesign .btn:focus,
body.ds-redesign .btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}

body.ds-redesign .btn:active { transform: translateY(1px); }

/* Primary (electric) */
body.ds-redesign .btn-primary,
body.ds-redesign .btn--primary {
  background: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
  color: var(--ds-primary-ink) !important;
}
body.ds-redesign .btn-primary:hover,
body.ds-redesign .btn--primary:hover {
  background: var(--ds-primary-hover) !important;
  border-color: var(--ds-primary-hover) !important;
  color: var(--ds-primary-ink) !important;
}

/* Secondary / outline / ghost */
body.ds-redesign .btn-secondary,
body.ds-redesign .btn--cancel,
body.ds-redesign .btn-outline-secondary,
body.ds-redesign .btn-white {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border-strong) !important;
  color: var(--ds-text) !important;
}
body.ds-redesign .btn-secondary:hover,
body.ds-redesign .btn--cancel:hover,
body.ds-redesign .btn-outline-secondary:hover,
body.ds-redesign .btn-white:hover {
  background: var(--ds-bg-soft) !important;
  border-color: var(--ds-muted) !important;
  color: var(--ds-text) !important;
}

body.ds-redesign .btn-outline-primary {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-primary) !important;
  color: var(--ds-primary) !important;
}
body.ds-redesign .btn-outline-primary:hover {
  background: var(--ds-primary) !important;
  color: var(--ds-primary-ink) !important;
}

/* Danger */
body.ds-redesign .btn-danger {
  background: var(--ds-danger) !important;
  border-color: var(--ds-danger) !important;
  color: #fff !important;
}
body.ds-redesign .btn-outline-danger {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-danger) !important;
  color: var(--ds-danger) !important;
}
body.ds-redesign .btn-outline-danger:hover {
  background: var(--ds-danger) !important;
  color: #fff !important;
}

/* Success */
body.ds-redesign .btn-success {
  background: var(--ds-success) !important;
  border-color: var(--ds-success) !important;
  color: #fff !important;
}

/* Warning */
body.ds-redesign .btn-warning {
  background: var(--ds-warning) !important;
  border-color: var(--ds-warning) !important;
  color: #fff !important;
}

/* Info */
body.ds-redesign .btn-info {
  background: var(--ds-info) !important;
  border-color: var(--ds-info) !important;
  color: #fff !important;
}

/* Ghost / icon-only buttons */
body.ds-redesign .btn-icon,
body.ds-redesign .btn-ghost-dark,
body.ds-redesign .btn-ghost-secondary {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--ds-muted-strong) !important;
  border-radius: var(--ds-r-md);
}
body.ds-redesign .btn-icon:hover,
body.ds-redesign .btn-ghost-dark:hover,
body.ds-redesign .btn-ghost-secondary:hover {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-text) !important;
}

/* Size variants */
body.ds-redesign .btn-sm { padding: 6px var(--ds-s-3); font-size: var(--ds-fs-caption); }
body.ds-redesign .btn-lg { padding: 12px var(--ds-s-5); font-size: var(--ds-fs-body); }

/* ------------------------------------------------------------- */
/* 8. BADGES / STATUS PILLS                                      */
/* ------------------------------------------------------------- */

body.ds-redesign .badge {
  font-family: var(--ds-font-body);
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  letter-spacing: var(--ds-tracking-wide);
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--ds-r-pill);
  border: 1px solid transparent;
  line-height: 1.3;
}

body.ds-redesign .badge-primary,
body.ds-redesign .badge.badge-primary,
body.ds-redesign .badge-soft-primary {
  background: var(--ds-primary-soft) !important;
  color: var(--ds-primary) !important;
  border-color: transparent;
}

body.ds-redesign .badge-success,
body.ds-redesign .badge-soft-success {
  background: var(--ds-success-soft) !important;
  color: var(--ds-success) !important;
}

body.ds-redesign .badge-warning,
body.ds-redesign .badge-soft-warning {
  background: var(--ds-warning-soft) !important;
  color: var(--ds-warning) !important;
}

body.ds-redesign .badge-danger,
body.ds-redesign .badge-soft-danger {
  background: var(--ds-danger-soft) !important;
  color: var(--ds-danger) !important;
}

body.ds-redesign .badge-info,
body.ds-redesign .badge-soft-info {
  background: var(--ds-info-soft) !important;
  color: var(--ds-info) !important;
}

body.ds-redesign .badge-secondary,
body.ds-redesign .badge-soft-secondary,
body.ds-redesign .badge-soft-dark {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted-strong) !important;
}

/* ------------------------------------------------------------- */
/* 9. TABLES                                                     */
/* ------------------------------------------------------------- */

body.ds-redesign .table,
body.ds-redesign table {
  color: var(--ds-text);
  font-size: var(--ds-fs-small);
  border-collapse: separate;
  border-spacing: 0;
}

body.ds-redesign .table thead th,
body.ds-redesign table thead th {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted-strong) !important;
  font-weight: 600;
  font-size: var(--ds-fs-caption);
  letter-spacing: var(--ds-tracking-caps);
  text-transform: uppercase;
  border-bottom: 1px solid var(--ds-border) !important;
  border-top: 1px solid var(--ds-border) !important;
  padding: var(--ds-s-3) var(--ds-s-4);
}

body.ds-redesign .table tbody td,
body.ds-redesign table tbody td {
  border-bottom: 1px solid var(--ds-border-hairline) !important;
  border-top: none !important;
  padding: var(--ds-s-4);
  vertical-align: middle;
  font-feature-settings: "tnum" 1, "lnum" 1;
}

body.ds-redesign .table-striped tbody tr:nth-of-type(odd),
body.ds-redesign .table-hover tbody tr {
  background: transparent !important;
}

body.ds-redesign .table-hover tbody tr:hover {
  background: var(--ds-bg-soft) !important;
}

body.ds-redesign .table tbody tr:last-child td {
  border-bottom: none !important;
}

/* ------------------------------------------------------------- */
/* 10. FORM CONTROLS                                             */
/* ------------------------------------------------------------- */

body.ds-redesign .form-control,
body.ds-redesign .form--control,
body.ds-redesign textarea.form-control,
body.ds-redesign select.form-control {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-md) !important;
  color: var(--ds-text) !important;
  font-size: var(--ds-fs-small);
  padding: 10px var(--ds-s-3);
  height: auto;
  min-height: 42px;
  box-shadow: none !important;
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
}

body.ds-redesign textarea.form-control { min-height: 88px; }

body.ds-redesign .form-control:focus,
body.ds-redesign .form--control:focus {
  border-color: var(--ds-primary) !important;
  box-shadow: 0 0 0 3px var(--ds-primary-ring) !important;
  outline: none;
}

body.ds-redesign .form-control::placeholder { color: var(--ds-muted); }

body.ds-redesign .form-control:disabled,
body.ds-redesign .form-control[readonly] {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted-strong) !important;
}

body.ds-redesign .input-label,
body.ds-redesign label.form-label,
body.ds-redesign .form-group label {
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-text);
  margin-bottom: 6px;
  display: inline-block;
}

body.ds-redesign .input-group-text {
  background: var(--ds-bg-soft) !important;
  border: 1px solid var(--ds-border) !important;
  color: var(--ds-muted-strong) !important;
  font-size: var(--ds-fs-small);
  border-radius: var(--ds-r-md);
}

/* Custom switch / checkbox accent */
body.ds-redesign .form-check-input:checked,
body.ds-redesign .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
}

/* Select2 — match form-control */
body.ds-redesign .select2-container--default .select2-selection--single,
body.ds-redesign .select2-container--default .select2-selection--multiple {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-md) !important;
  min-height: 42px;
  padding: 6px var(--ds-s-3);
  display: flex;
  align-items: center;
}
body.ds-redesign .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--ds-text);
  padding-left: 0;
  line-height: 1.5;
}
body.ds-redesign .select2-container--default.select2-container--focus .select2-selection--multiple,
body.ds-redesign .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--ds-primary) !important;
  box-shadow: 0 0 0 3px var(--ds-primary-ring) !important;
}
body.ds-redesign .select2-dropdown {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-md) !important;
  box-shadow: var(--ds-shadow-2);
  overflow: hidden;
}
body.ds-redesign .select2-container--default .select2-results__option--highlighted[aria-selected],
body.ds-redesign .select2-container--default .select2-results__option--highlighted {
  background: var(--ds-primary) !important;
  color: var(--ds-primary-ink) !important;
}
body.ds-redesign .select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-sm);
  padding: 8px;
}

/* DateRangePicker basic alignment */
body.ds-redesign .daterangepicker {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-lg);
  box-shadow: var(--ds-shadow-3);
  font-family: var(--ds-font-body);
}
body.ds-redesign .daterangepicker td.active,
body.ds-redesign .daterangepicker td.active:hover {
  background: var(--ds-primary) !important;
  color: var(--ds-primary-ink) !important;
}
body.ds-redesign .daterangepicker .ranges li.active {
  background: var(--ds-primary) !important;
  color: var(--ds-primary-ink) !important;
}

/* ------------------------------------------------------------- */
/* 11. MODALS + SweetAlert2                                      */
/* ------------------------------------------------------------- */

body.ds-redesign .modal-content {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-lg) !important;
  box-shadow: var(--ds-shadow-3) !important;
}

body.ds-redesign .modal-header {
  border-bottom: 1px solid var(--ds-border-hairline) !important;
  padding: var(--ds-s-5) var(--ds-s-6);
}
body.ds-redesign .modal-footer {
  border-top: 1px solid var(--ds-border-hairline) !important;
  padding: var(--ds-s-4) var(--ds-s-6);
}
body.ds-redesign .modal-body { padding: var(--ds-s-6); }

body.ds-redesign .modal-backdrop.show { opacity: 0.45; background: var(--ds-text); }

body.ds-redesign .close,
body.ds-redesign .modal-header .close {
  opacity: 0.65;
  color: var(--ds-text);
  text-shadow: none;
  transition: opacity var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .close:hover { opacity: 1; }

/* SweetAlert2 */
body.ds-redesign .swal2-popup {
  border-radius: var(--ds-r-lg) !important;
  border: 1px solid var(--ds-border);
  font-family: var(--ds-font-body);
  padding: var(--ds-s-7) var(--ds-s-6);
}
body.ds-redesign .swal2-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  color: var(--ds-text);
}
body.ds-redesign .swal2-html-container { color: var(--ds-muted-strong); }
body.ds-redesign .swal2-confirm.swal2-styled {
  background: var(--ds-primary) !important;
  border-radius: var(--ds-r-md) !important;
  box-shadow: none !important;
  font-weight: 600;
}
body.ds-redesign .swal2-confirm.swal2-styled:focus {
  box-shadow: 0 0 0 3px var(--ds-primary-ring) !important;
}
body.ds-redesign .swal2-cancel.swal2-styled {
  background: var(--ds-surface) !important;
  color: var(--ds-text) !important;
  border: 1px solid var(--ds-border-strong) !important;
  border-radius: var(--ds-r-md) !important;
  font-weight: 600;
}
body.ds-redesign .swal2-deny.swal2-styled {
  background: var(--ds-danger) !important;
  border-radius: var(--ds-r-md) !important;
  font-weight: 600;
}

/* ------------------------------------------------------------- */
/* 12. TOASTR                                                    */
/* ------------------------------------------------------------- */

body.ds-redesign #toast-container > div {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border);
  border-left: 3px solid var(--ds-primary);
  border-radius: var(--ds-r-md);
  box-shadow: var(--ds-shadow-3);
  color: var(--ds-text);
  opacity: 1;
  padding: var(--ds-s-4) var(--ds-s-5);
  font-family: var(--ds-font-body);
  background-image: none !important;
}
body.ds-redesign .toast-success { border-left-color: var(--ds-success); }
body.ds-redesign .toast-warning { border-left-color: var(--ds-warning); }
body.ds-redesign .toast-error   { border-left-color: var(--ds-danger); }
body.ds-redesign .toast-info    { border-left-color: var(--ds-info); }
body.ds-redesign .toast-title { color: var(--ds-text); font-weight: 600; }
body.ds-redesign .toast-message { color: var(--ds-muted-strong); }

/* ------------------------------------------------------------- */
/* 13. PAGINATION                                                */
/* ------------------------------------------------------------- */

body.ds-redesign .pagination { gap: var(--ds-s-1); }
body.ds-redesign .page-link {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  color: var(--ds-text-soft) !important;
  border-radius: var(--ds-r-sm) !important;
  padding: 6px 12px;
  margin: 0;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .page-link:hover {
  background: var(--ds-bg-soft) !important;
  border-color: var(--ds-border-strong) !important;
  color: var(--ds-text) !important;
}
body.ds-redesign .page-item.active .page-link {
  background: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
  color: var(--ds-primary-ink) !important;
}
body.ds-redesign .page-item.disabled .page-link {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted) !important;
  border-color: var(--ds-border-hairline) !important;
}

/* ------------------------------------------------------------- */
/* 14. NAV TABS (form tabs, settings tabs)                       */
/* ------------------------------------------------------------- */

body.ds-redesign .nav-tabs {
  border-bottom: 1px solid var(--ds-border) !important;
  gap: var(--ds-s-1);
}
body.ds-redesign .nav-tabs .nav-link {
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  color: var(--ds-muted-strong) !important;
  border-radius: 0 !important;
  padding: var(--ds-s-3) var(--ds-s-4);
  font-weight: 600;
  font-size: var(--ds-fs-small);
  margin-bottom: -1px;
  transition: color var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .nav-tabs .nav-link:hover {
  color: var(--ds-text) !important;
  border-bottom-color: var(--ds-border-strong) !important;
}
body.ds-redesign .nav-tabs .nav-link.active {
  color: var(--ds-primary) !important;
  border-bottom-color: var(--ds-primary) !important;
}

/* ------------------------------------------------------------- */
/* 15. BREADCRUMB                                                */
/* ------------------------------------------------------------- */

body.ds-redesign .breadcrumb {
  background: transparent !important;
  padding: 0;
  margin-bottom: var(--ds-s-4);
  font-size: var(--ds-fs-small);
}
body.ds-redesign .breadcrumb-item,
body.ds-redesign .breadcrumb-item a { color: var(--ds-muted); }
body.ds-redesign .breadcrumb-item.active { color: var(--ds-text); font-weight: 600; }
body.ds-redesign .breadcrumb-item + .breadcrumb-item::before {
  content: '/';
  color: var(--ds-border-strong);
}

/* ------------------------------------------------------------- */
/* 16. ALERTS                                                    */
/* ------------------------------------------------------------- */

body.ds-redesign .alert {
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-md);
  padding: var(--ds-s-3) var(--ds-s-4);
  background: var(--ds-bg-soft);
  color: var(--ds-text);
}
body.ds-redesign .alert-success { background: var(--ds-success-soft); color: var(--ds-success); border-color: transparent; }
body.ds-redesign .alert-warning { background: var(--ds-warning-soft); color: var(--ds-warning); border-color: transparent; }
body.ds-redesign .alert-danger  { background: var(--ds-danger-soft);  color: var(--ds-danger);  border-color: transparent; }
body.ds-redesign .alert-info    { background: var(--ds-info-soft);    color: var(--ds-info);    border-color: transparent; }

/* ------------------------------------------------------------- */
/* 17. TRANSACTION / INFO STRIP                                  */
/* ------------------------------------------------------------- */

body.ds-redesign .transaction--information {
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-lg) !important;
  padding: var(--ds-s-5) var(--ds-s-6);
}
body.ds-redesign .transaction--information h2,
body.ds-redesign .transaction--information h3 {
  font-family: var(--ds-font-display);
  font-weight: 500;
  color: var(--ds-text);
  font-feature-settings: "tnum" 1, "lnum" 1;
}

/* ------------------------------------------------------------- */
/* 18. MOTION                                                    */
/* ------------------------------------------------------------- */

@keyframes ds-fade-up {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

body.ds-redesign.ds-mounted #content .card,
body.ds-redesign.ds-mounted #content .resturant-card,
body.ds-redesign.ds-mounted #content [class*="card--bg-"],
body.ds-redesign.ds-mounted #content .transaction--information {
  animation: ds-fade-up var(--ds-dur-base) var(--ds-ease) both;
}

/* Stagger up to 8 children */
body.ds-redesign.ds-mounted #content .card:nth-child(1)  { animation-delay:   0ms; }
body.ds-redesign.ds-mounted #content .card:nth-child(2)  { animation-delay:  60ms; }
body.ds-redesign.ds-mounted #content .card:nth-child(3)  { animation-delay: 120ms; }
body.ds-redesign.ds-mounted #content .card:nth-child(4)  { animation-delay: 180ms; }
body.ds-redesign.ds-mounted #content .card:nth-child(5)  { animation-delay: 240ms; }
body.ds-redesign.ds-mounted #content .card:nth-child(6)  { animation-delay: 300ms; }

/* Respect user motion prefs */
@media (prefers-reduced-motion: reduce) {
  body.ds-redesign *,
  body.ds-redesign *::before,
  body.ds-redesign *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* ------------------------------------------------------------- */
/* 19. FOCUS RINGS — universal accessibility floor               */
/* ------------------------------------------------------------- */

body.ds-redesign *:focus-visible {
  outline: 2px solid var(--ds-primary);
  outline-offset: 2px;
  border-radius: var(--ds-r-xs);
}
body.ds-redesign .btn:focus-visible,
body.ds-redesign .form-control:focus-visible,
body.ds-redesign .select2-selection:focus-visible {
  outline: none; /* these already render the ring via box-shadow */
}

/* ------------------------------------------------------------- */
/* 20. ICON RECALIBRATION (tio-*)                                */
/* ------------------------------------------------------------- */

body.ds-redesign [class^="tio-"],
body.ds-redesign [class*=" tio-"] {
  color: inherit;
}

body.ds-redesign .page-header [class^="tio-"],
body.ds-redesign .card-header [class^="tio-"] {
  color: var(--ds-primary);
}

/* ------------------------------------------------------------- */
/* 21. UTILITIES                                                 */
/* ------------------------------------------------------------- */

body.ds-redesign .ds-divider {
  height: 1px;
  background: var(--ds-border);
  margin: var(--ds-s-5) 0;
}

body.ds-redesign .ds-numeral {
  font-family: var(--ds-font-display);
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-weight: 500;
  letter-spacing: var(--ds-tracking-tight);
}

/* ------------------------------------------------------------- */
/* 22. RTL — sidebar rail / active indicator mirror              */
/* ------------------------------------------------------------- */

[dir="rtl"] body.ds-redesign .navbar-vertical-aside-has-menu.active > .nav-link::before,
[dir="rtl"] body.ds-redesign .navbar-vertical .nav-link.active::before {
  left: auto;
  right: -12px;
  border-radius: var(--ds-r-pill) 0 0 var(--ds-r-pill);
}

[dir="rtl"] body.ds-redesign .navbar-vertical-aside {
  border-right: none !important;
  border-left: 1px solid var(--ds-border) !important;
}

[dir="rtl"] body.ds-redesign .resturant-card::before,
[dir="rtl"] body.ds-redesign [class*="card--bg-"]::before {
  left: auto;
  right: 0;
}

[dir="rtl"] body.ds-redesign #toast-container > div {
  border-left: 1px solid var(--ds-border);
  border-right: 3px solid var(--ds-primary);
}
[dir="rtl"] body.ds-redesign .toast-success { border-right-color: var(--ds-success); border-left-color: var(--ds-border); }
[dir="rtl"] body.ds-redesign .toast-warning { border-right-color: var(--ds-warning); border-left-color: var(--ds-border); }
[dir="rtl"] body.ds-redesign .toast-error   { border-right-color: var(--ds-danger);  border-left-color: var(--ds-border); }
[dir="rtl"] body.ds-redesign .toast-info    { border-right-color: var(--ds-info);    border-left-color: var(--ds-border); }

[dir="rtl"] body.ds-redesign .navbar-vertical .nav-sub {
  padding: var(--ds-s-1) var(--ds-s-7) var(--ds-s-2) 0;
  border-left: none;
  border-right: 1px solid var(--ds-border);
  margin-left: 0;
  margin-right: calc(var(--ds-s-5) + 10px);
}

/* ------------------------------------------------------------- */
/* 23. LOGIN / AUTH BACKDROP                                     */
/* ------------------------------------------------------------- */

body.ds-redesign .splited-content-bordered,
body.ds-redesign .splited-content-main {
  background: var(--ds-bg);
}

/* ============================================================= */
/* 24. SIDEBAR REBUILD — Unit 1                                  */
/*     New chrome component: ds-sidebar / ds-sidebar-*           */
/*     Replaces the deep-teal stack with light editorial rail.   */
/* ============================================================= */

body.ds-redesign .ds-sidebar {
  background: var(--ds-surface) !important;
  border-right: 1px solid var(--ds-border) !important;
  width: var(--ds-sidebar-w);
  box-shadow: none !important;
  /* The HS plugin positions this fixed top:0 bottom:0 — we just constrain overflow
     so only the inner content scrolls. */
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  transition: width var(--ds-dur-base) var(--ds-ease),
              box-shadow var(--ds-dur-base) var(--ds-ease);
}

/* Hover-expand: in collapsed/rail mode, hovering the sidebar restores it to
   full width WITHOUT shifting the content. The sidebar overlays the page
   temporarily (Linear / Notion pattern). Click outside or move mouse away to
   collapse back. */
@media (min-width: 992px) {
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover {
    width: var(--ds-sidebar-w) !important;
    z-index: var(--ds-z-sidebar);
    box-shadow: var(--ds-shadow-3) !important;
  }
  /* Show all the labels/text/footer meta when hovering an otherwise-collapsed rail */
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .ds-brand-text,
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .navbar-vertical-aside-mini-mode-hidden-elements,
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .text-truncate,
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .ds-profile-meta,
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .ds-sidebar-footer-link span,
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .nav-link .badge {
    display: inline-flex !important;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .nav-subtitle {
    display: block !important;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .ds-sidebar-brand {
    justify-content: space-between;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .nav-link {
    justify-content: flex-start !important;
    padding: 9px var(--ds-s-3) !important;
    margin: 1px 0 !important;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .nav-link-toggle::after {
    display: block !important;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .ds-profile-card {
    justify-content: flex-start;
    padding: var(--ds-s-2) var(--ds-s-3);
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover .ds-sidebar-footer-link {
    justify-content: flex-start;
  }
  body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar:hover li.nav-item:has(.nav-subtitle) {
    display: list-item !important;
  }
}

/* Make the toggle button itself a proper component — visible in both states,
   centered in rail mode, top-right in expanded mode. */
body.ds-redesign .ds-sidebar-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
body.ds-redesign .ds-rail-toggle {
  width: 32px;
  height: 32px;
  border-radius: var(--ds-r-md);
  border: 1px solid transparent;
  background: var(--ds-bg-soft);
  color: var(--ds-muted-strong) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  position: relative;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-rail-toggle:hover {
  background: var(--ds-primary);
  border-color: var(--ds-primary);
  color: var(--ds-primary-ink) !important;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.25);
}
body.ds-redesign .ds-rail-toggle:active {
  transform: scale(0.96);
}
body.ds-redesign .ds-rail-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}
body.ds-redesign .ds-rail-toggle i {
  font-size: 1rem;
  transition: transform var(--ds-dur-base) var(--ds-ease);
}
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-rail-toggle {
  /* In rail mode the button moves to a centered position — keep it tight */
  width: 36px;
  height: 36px;
}
/* The theme uses two stacked <i> elements with data-template attribute. In
   expanded mode show "first-page" (collapse arrow), in mini-mode show
   "last-page" (expand arrow). Force visibility regardless of theme JS. */
body.ds-redesign .ds-rail-toggle .navbar-vertical-aside-toggle-short-align {
  display: inline-block;
}
body.ds-redesign .ds-rail-toggle .navbar-vertical-aside-toggle-full-align {
  display: none;
}
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-rail-toggle .navbar-vertical-aside-toggle-short-align {
  display: none;
}
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-rail-toggle .navbar-vertical-aside-toggle-full-align {
  display: inline-block;
}
[dir="rtl"] body.ds-redesign .ds-rail-toggle i {
  transform: scaleX(-1);
}

body.ds-redesign .ds-sidebar-container {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100vh !important;
  background: var(--ds-surface) !important;
}

/* Brand + search stay fixed at top; footer stays fixed at bottom;
   only .ds-sidebar-content scrolls. */
body.ds-redesign .ds-sidebar-brand,
body.ds-redesign .ds-sidebar-search {
  flex: 0 0 auto !important;
}

/* Neutralize legacy min-height + padding-bottom on the inner UL
   (style.css:8847 + style.css:13659) that were sized for the OLD layout
   where the logout widget was a sticky child of the UL. With our new
   structure (footer outside the scroll area), those rules force a
   useless overflow and false scrollbar. */
body.ds-redesign aside.ds-sidebar .navbar-vertical-content .navbar-nav,
body.ds-redesign aside.ds-sidebar .ds-sidebar-content .ds-sidebar-nav,
body.ds-redesign aside.ds-sidebar .ds-sidebar-content .navbar-nav {
  min-height: 0 !important;
  padding-bottom: 0 !important;
  height: auto !important;
}

/* ----- Brand block ----- */

body.ds-redesign .ds-sidebar-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ds-s-4) var(--ds-s-5);
  min-height: var(--ds-header-h);
  border-bottom: 1px solid var(--ds-border) !important;
  background: var(--ds-surface) !important;
}

body.ds-redesign .ds-brand {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  color: var(--ds-text) !important;
  flex: 1 1 auto;
  min-width: 0;
}

body.ds-redesign .ds-brand-mark {
  width: 36px;
  height: 36px;
  border-radius: var(--ds-r-md);
  background: var(--ds-bg-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 auto;
  border: 1px solid var(--ds-border);
}
body.ds-redesign .ds-brand-mark img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

body.ds-redesign .ds-sidebar .ds-brand-text,
body.ds-redesign .ds-sidebar a.navbar-brand .ds-brand-text {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1.1 !important;
  min-width: 0;
}
body.ds-redesign .ds-sidebar .ds-brand-name,
body.ds-redesign .ds-sidebar a.navbar-brand .ds-brand-name {
  font-family: var(--ds-font-display) !important;
  font-weight: 500 !important;
  font-size: var(--ds-fs-body) !important;
  color: var(--ds-text) !important;
  letter-spacing: var(--ds-tracking-tight);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.ds-redesign .ds-sidebar .ds-brand-tag,
body.ds-redesign .ds-sidebar a.navbar-brand .ds-brand-tag {
  font-family: var(--ds-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: var(--ds-tracking-caps);
  color: var(--ds-primary) !important;
  margin-top: 3px !important;
}
/* Override the wrapping <a class="navbar-brand"> color from style.css */
body.ds-redesign .ds-sidebar a.navbar-brand,
body.ds-redesign .ds-sidebar a.navbar-brand:hover {
  color: var(--ds-text) !important;
  text-decoration: none;
}

body.ds-redesign .ds-sidebar-close {
  color: var(--ds-muted) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: var(--ds-r-md);
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-sidebar-close:hover {
  background: var(--ds-danger-soft) !important;
  color: var(--ds-danger) !important;
}
body.ds-redesign .ds-sidebar-close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}

/* ----- Search field ----- */

body.ds-redesign .ds-sidebar-search {
  padding: var(--ds-s-4) var(--ds-s-4) var(--ds-s-3);
}

body.ds-redesign .ds-search-form {
  margin: 0;
}

body.ds-redesign .ds-search-field {
  display: flex;
  align-items: center;
  gap: var(--ds-s-2);
  background: var(--ds-bg-soft);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-md);
  padding: 0 var(--ds-s-3);
  height: 38px;
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease),
              background var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-search-field:focus-within {
  background: var(--ds-surface);
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}

body.ds-redesign .ds-search-icon {
  color: var(--ds-muted);
  font-size: 0.95rem;
  display: inline-flex;
  flex: 0 0 auto;
}

body.ds-redesign input.ds-search-input,
body.ds-redesign .ds-search-input.form-control {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--ds-text) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  height: 100%;
  padding: 0 !important;
  min-height: 0 !important;
  flex: 1 1 auto;
  min-width: 0;
}
body.ds-redesign .ds-search-input::placeholder {
  color: var(--ds-muted);
  font-weight: 500;
}
body.ds-redesign .ds-search-input:focus {
  box-shadow: none !important;
  outline: none;
}

body.ds-redesign .ds-search-kbd {
  font-family: var(--ds-font-mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--ds-muted-strong);
  background: var(--ds-surface);
  border: 1px solid var(--ds-border-strong);
  border-radius: var(--ds-r-xs);
  padding: 1px 6px;
  line-height: 1.3;
  flex: 0 0 auto;
  pointer-events: none;
}

body.ds-redesign .ds-search-suggestions {
  width: 100%;
  display: none;
}

/* ----- Scrollable content area ----- */

body.ds-redesign .ds-sidebar-content {
  flex: 1 1 auto !important;
  min-height: 0 !important;          /* critical — without this, flex children won't shrink and scroll fails */
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: var(--ds-s-1) 0 var(--ds-s-3);
  background: var(--ds-surface) !important;
  /* Avoid jitter from a sometimes-present scrollbar */
  scrollbar-gutter: stable;
}

/* ----- Nav list (re-applies to the existing markup inside the slot) ----- */

body.ds-redesign .ds-sidebar-nav {
  list-style: none;
  padding: 0 var(--ds-s-3) var(--ds-s-3);
  margin: 0;
  flex: 1 1 auto;
}

body.ds-redesign .ds-sidebar-nav > li.nav-item .nav-subtitle,
body.ds-redesign .ds-sidebar-nav .nav-subtitle {
  display: block;
  color: var(--ds-muted) !important;
  font-family: var(--ds-font-body);
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  padding: var(--ds-s-5) var(--ds-s-3) var(--ds-s-2);
}

body.ds-redesign .ds-sidebar-nav .nav-subtitle-replacer { display: none; }

body.ds-redesign .ds-sidebar-nav li.nav-item,
body.ds-redesign .ds-sidebar-nav li.navbar-vertical-aside-has-menu {
  list-style: none;
  margin: 1px 0;
}

body.ds-redesign .ds-sidebar-nav .nav-link {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  padding: 9px var(--ds-s-3);
  border-radius: var(--ds-r-md);
  border: 1px solid transparent;
  color: var(--ds-text-soft) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  position: relative;
  cursor: pointer;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease),
              padding-left var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-sidebar-nav .nav-link:active {
  transform: scale(0.98);
}
body.ds-redesign .ds-sidebar-nav .nav-link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}
/* Subtle slide-in on hover for non-active items */
body.ds-redesign .ds-sidebar-nav .nav-link:hover:not(.active) {
  padding-left: calc(var(--ds-s-3) + 2px);
}
[dir="rtl"] body.ds-redesign .ds-sidebar-nav .nav-link:hover:not(.active) {
  padding-left: var(--ds-s-3);
  padding-right: calc(var(--ds-s-3) + 2px);
}
/* Slight icon scale on hover */
body.ds-redesign .ds-sidebar-nav .nav-link:hover .nav-icon {
  transform: scale(1.1);
}
body.ds-redesign .ds-sidebar-nav .nav-link .nav-icon {
  transition: color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}

body.ds-redesign .ds-sidebar-nav .nav-link .nav-icon {
  font-size: 1rem;
  color: var(--ds-muted);
  width: 18px;
  text-align: center;
  flex: 0 0 auto;
  transition: color var(--ds-dur-fast) var(--ds-ease);
}

body.ds-redesign .ds-sidebar-nav .nav-link:hover {
  background: var(--ds-bg-soft);
  color: var(--ds-text) !important;
}
body.ds-redesign .ds-sidebar-nav .nav-link:hover .nav-icon { color: var(--ds-text); }

/* Boost specificity to beat style.css:82 (.navbar .active > .nav-link)
   and theme.minc619.css:784 (.nav-link.active) which set teal/green colors. */
body.ds-redesign .ds-sidebar .ds-sidebar-nav .navbar-vertical-aside-has-menu.active > .nav-link,
body.ds-redesign .ds-sidebar .ds-sidebar-nav .navbar-vertical-aside-has-menu.show > .nav-link,
body.ds-redesign .ds-sidebar .ds-sidebar-nav .nav-item.active > .nav-link,
body.ds-redesign .ds-sidebar .ds-sidebar-nav .nav-link.active,
body.ds-redesign .ds-sidebar .navbar .active > .nav-link,
body.ds-redesign .ds-sidebar .navbar .nav-link.active,
body.ds-redesign .ds-sidebar .navbar .show > .nav-link,
body.ds-redesign .ds-sidebar .navbar .nav-link.show {
  background: var(--ds-primary-soft) !important;
  color: var(--ds-primary) !important;
  font-weight: 600 !important;
}
body.ds-redesign .ds-sidebar .ds-sidebar-nav .navbar-vertical-aside-has-menu.active > .nav-link .nav-icon,
body.ds-redesign .ds-sidebar .ds-sidebar-nav .nav-link.active .nav-icon,
body.ds-redesign .ds-sidebar .navbar .active > .nav-link .nav-icon,
body.ds-redesign .ds-sidebar .navbar .show > .nav-link .nav-icon,
body.ds-redesign .ds-sidebar .navbar .nav-link.active .nav-icon {
  color: var(--ds-primary) !important;
}
/* Also override the hover/active text-truncate color which style.css line 78 sets to #5affba */
body.ds-redesign .ds-sidebar .navbar .nav-link .text-truncate,
body.ds-redesign .ds-sidebar .navbar .nav-link:hover .text-truncate {
  color: inherit !important;
  transition: none;
}
body.ds-redesign .ds-sidebar .navbar-vertical .nav-link {
  color: var(--ds-text-soft) !important;
}

/* Active rail indicator */
body.ds-redesign .ds-sidebar-nav .navbar-vertical-aside-has-menu.active > .nav-link::before,
body.ds-redesign .ds-sidebar-nav .nav-link.active::before {
  content: '';
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  background: var(--ds-primary);
  border-radius: 0 var(--ds-r-pill) var(--ds-r-pill) 0;
}

/* Submenu — beats style.css:3029 (.nav-sub { background: #005555 !important }) */
body.ds-redesign aside.ds-sidebar .nav-sub,
body.ds-redesign aside.ds-sidebar .js-navbar-vertical-aside-submenu,
body.ds-redesign .ds-sidebar-nav .nav-sub,
body.ds-redesign .ds-sidebar-nav .js-navbar-vertical-aside-submenu,
body.ds-redesign .navbar-vertical .nav-sub {
  list-style: none;
  padding: 4px 0 var(--ds-s-2);
  margin: 2px 0 0 calc(var(--ds-s-3) + 9px);
  border-left: 1px solid var(--ds-border) !important;
  background: transparent !important;
  background-color: transparent !important;
}
body.ds-redesign .ds-sidebar-nav .nav-sub li,
body.ds-redesign .ds-sidebar-nav .nav-sub li.nav-item,
body.ds-redesign .navbar-vertical .nav-sub li {
  background: transparent !important;
}
body.ds-redesign .ds-sidebar-nav .nav-sub .nav-link {
  padding: 6px var(--ds-s-4);
  font-size: var(--ds-fs-small);
  color: var(--ds-muted-strong) !important;
}
body.ds-redesign .ds-sidebar-nav .nav-sub .nav-link.active,
body.ds-redesign .ds-sidebar-nav .nav-sub .nav-item.active > .nav-link {
  background: transparent !important;
  color: var(--ds-primary) !important;
  font-weight: 600;
}
body.ds-redesign .ds-sidebar-nav .nav-indicator-icon {
  display: none;
}

/* Toggle arrow for items with submenus */
body.ds-redesign .ds-sidebar-nav .nav-link-toggle::after {
  content: '';
  margin-left: auto;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid var(--ds-muted);
  border-bottom: 1.5px solid var(--ds-muted);
  transform: rotate(-45deg);
  transition: transform var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-sidebar-nav .navbar-vertical-aside-has-menu.show > .nav-link-toggle::after,
body.ds-redesign .ds-sidebar-nav .navbar-vertical-aside-has-menu.active > .nav-link-toggle::after {
  transform: rotate(45deg);
  border-color: var(--ds-primary);
}

/* Badge inside nav */
body.ds-redesign .ds-sidebar-nav .badge {
  margin-left: auto;
  font-size: 10px;
  padding: 3px 8px;
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted-strong) !important;
  border: 1px solid var(--ds-border);
}
body.ds-redesign .ds-sidebar-nav .navbar-vertical-aside-has-menu.active .badge,
body.ds-redesign .ds-sidebar-nav .nav-link.active .badge {
  background: var(--ds-primary-soft-2) !important;
  color: var(--ds-primary) !important;
  border-color: transparent !important;
}

/* Sidebar badge container helper used by legacy markup */
body.ds-redesign .sidebar--badge-container {
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-2);
  width: 100%;
}

/* ----- Footer pinned at the bottom ----- */

body.ds-redesign .ds-sidebar-footer {
  margin-top: auto;
  padding: var(--ds-s-3) var(--ds-s-3) var(--ds-s-4);
  border-top: 1px solid var(--ds-border);
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--ds-surface);
}

body.ds-redesign .ds-sidebar-footer-link {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  padding: 8px var(--ds-s-3);
  border-radius: var(--ds-r-md);
  color: var(--ds-muted-strong) !important;
  font-size: var(--ds-fs-small);
  font-weight: 500;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-sidebar-footer-link i {
  font-size: 1rem;
  color: var(--ds-muted);
}
body.ds-redesign .ds-sidebar-footer-link:hover {
  background: var(--ds-bg-soft);
  color: var(--ds-text) !important;
}
body.ds-redesign .ds-sidebar-footer-link:hover i { color: var(--ds-text); }

/* ----- Rail (collapsed) mode
   The theme toggles `navbar-vertical-aside-mini-mode` on <body> when the
   collapse button is pressed. Hide all text/label elements; show only icons. */

body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar {
  width: var(--ds-sidebar-rail-w);
}

/* Brand: keep just the logo mark, drop the name/tag.
   Toggle button STAYS visible (otherwise the user can't expand back). */
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-sidebar-brand {
  padding-left: var(--ds-s-3);
  padding-right: var(--ds-s-3);
  justify-content: center;
  gap: var(--ds-s-2);
}
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-brand-text,
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-sidebar-close {
  display: none !important;
}
/* Toggle: stays. Icon flips via the theme's data-template (tio-first-page ↔ tio-last-page). */
body.ds-redesign.navbar-vertical-aside-mini-mode .ds-sidebar-toggle {
  display: inline-flex !important;
}

/* Section labels ("POS SECTION", "ORDER MANAGEMENT", etc.) — fully hidden.
   The dots replacer (.nav-subtitle-replacer) is also hidden — we don't want
   it cluttering the rail. */
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-subtitle,
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-subtitle-replacer {
  display: none !important;
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar li.nav-item:has(.nav-subtitle) {
  /* If the <li> ONLY held a subtitle, collapse the row entirely */
  display: none !important;
}

/* Nav items: icon-only, centered. Hide labels and submenu chevron. */
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-link {
  justify-content: center !important;
  padding: 10px !important;
  margin: 1px 8px !important;
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-link-toggle::after {
  display: none !important;
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .navbar-vertical-aside-mini-mode-hidden-elements,
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .text-truncate {
  display: none !important;
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-link .badge {
  display: none !important;
}

/* Active rail indicator: move to center-edge so it doesn't overflow */
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .navbar-vertical-aside-has-menu.active > .nav-link::before,
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-link.active::before {
  left: -8px;
}

/* Submenus expanded inline should NOT appear in rail mode; the theme's
   hover-flyout will surface them. */
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .nav-sub {
  display: none !important;
}

/* Search bar (if ever re-added) collapses too */
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .ds-sidebar-search,
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .sidebar--search-form {
  display: none !important;
}

/* Footer in rail mode: avatar only, sign-out icon centered */
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .ds-profile-card {
  justify-content: center;
  padding: var(--ds-s-2);
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .ds-profile-meta {
  display: none !important;
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .ds-sidebar-footer-link {
  justify-content: center;
}
body.ds-redesign.navbar-vertical-aside-mini-mode aside.ds-sidebar .ds-sidebar-footer-link span {
  display: none !important;
}

/* Hover-expand: when compact-mode is on, hovering the aside expands it temporarily
   (theme JS toggles the parent class; we just keep our visuals correct.) */

/* ----- RTL ----- */

[dir="rtl"] body.ds-redesign .ds-sidebar {
  border-right: none !important;
  border-left: 1px solid var(--ds-border) !important;
}
[dir="rtl"] body.ds-redesign .ds-sidebar-nav .navbar-vertical-aside-has-menu.active > .nav-link::before,
[dir="rtl"] body.ds-redesign .ds-sidebar-nav .nav-link.active::before {
  left: auto;
  right: -12px;
  border-radius: var(--ds-r-pill) 0 0 var(--ds-r-pill);
}
[dir="rtl"] body.ds-redesign .ds-sidebar-nav .nav-sub {
  margin-left: 0;
  margin-right: calc(var(--ds-s-3) + 9px);
  border-left: none;
  border-right: 1px solid var(--ds-border);
}
[dir="rtl"] body.ds-redesign .ds-sidebar-nav .nav-link-toggle::after {
  margin-left: 0;
  margin-right: auto;
}

/* ============================================================= */
/* 25. SIDEBAR LEGACY KILL-BLOCK                                 */
/*     Directly counters every legacy !important rule that       */
/*     assumed the dark teal sidebar. Higher specificity by      */
/*     prepending `aside.ds-sidebar` to every targeted selector. */
/* ============================================================= */

/* style.css:693, 752, 764 — aside .nav-link { color: #e9f3ff !important } */
body.ds-redesign aside.ds-sidebar .nav-link,
body.ds-redesign aside.ds-sidebar .nav-item .nav-link,
body.ds-redesign aside.ds-sidebar .navbar-vertical-aside-has-menu .nav-link,
body.ds-redesign aside.ds-sidebar .navbar-vertical .nav-link {
  color: var(--ds-text-soft) !important;
}

body.ds-redesign aside.ds-sidebar .nav-link:hover {
  color: var(--ds-text) !important;
}

body.ds-redesign aside.ds-sidebar .nav-link:hover .text-truncate,
body.ds-redesign aside.ds-sidebar .nav-link .text-truncate {
  color: inherit !important;
}

/* Active link wins — beats style.css:82-86 and theme.minc619.css:784 */
body.ds-redesign aside.ds-sidebar .navbar-vertical-aside-has-menu.active > .nav-link,
body.ds-redesign aside.ds-sidebar .navbar-vertical-aside-has-menu.show > .nav-link,
body.ds-redesign aside.ds-sidebar .nav-item.active > .nav-link,
body.ds-redesign aside.ds-sidebar .nav-link.active,
body.ds-redesign aside.ds-sidebar .navbar .active > .nav-link,
body.ds-redesign aside.ds-sidebar .navbar .nav-link.active,
body.ds-redesign aside.ds-sidebar .navbar .show > .nav-link {
  color: var(--ds-primary) !important;
  background: var(--ds-primary-soft) !important;
  font-weight: 600 !important;
}

/* style.css:697-704 — .form--control sidebar search input chrome */
body.ds-redesign aside.ds-sidebar .form--control,
body.ds-redesign aside.ds-sidebar input.form--control,
body.ds-redesign aside.ds-sidebar .ds-search-input {
  background: transparent !important;
  border: none !important;
  color: var(--ds-text) !important;
  box-shadow: none !important;
  padding: 0 !important;
}
body.ds-redesign aside.ds-sidebar .form--control::placeholder,
body.ds-redesign aside.ds-sidebar .ds-search-input::placeholder {
  color: var(--ds-muted) !important;
}
body.ds-redesign aside.ds-sidebar .form--control:focus,
body.ds-redesign aside.ds-sidebar .ds-search-input:focus {
  color: var(--ds-text) !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* style.css:743-749 — sidebar search btn icon color */
body.ds-redesign aside.ds-sidebar .sidebar--search-form .search--form-group .btn {
  color: var(--ds-muted) !important;
  position: static !important;
  padding: 0 !important;
}
body.ds-redesign aside.ds-sidebar .ds-search-icon i,
body.ds-redesign aside.ds-sidebar .ds-search-icon {
  color: var(--ds-muted) !important;
}

/* style.css:3029 — .nav-sub { background: #005555 !important } */
body.ds-redesign aside.ds-sidebar .nav-sub,
body.ds-redesign aside.ds-sidebar .js-navbar-vertical-aside-submenu {
  background: transparent !important;
  background-color: transparent !important;
}
body.ds-redesign aside.ds-sidebar .nav-sub .nav-link,
body.ds-redesign aside.ds-sidebar .nav-sub li .nav-link {
  color: var(--ds-muted-strong) !important;
  background: transparent !important;
}
body.ds-redesign aside.ds-sidebar .nav-sub li.active .nav-link,
body.ds-redesign aside.ds-sidebar .nav-sub .nav-item.active .nav-link {
  color: var(--ds-primary) !important;
  background: transparent !important;
  font-weight: 600 !important;
}

/* nav-indicator-icon (the small circle bullet in submenus) — recolor to neutral */
body.ds-redesign aside.ds-sidebar .nav-indicator-icon {
  color: var(--ds-muted) !important;
  font-size: 6px !important;
}
body.ds-redesign aside.ds-sidebar .nav-sub li.active .nav-indicator-icon {
  color: var(--ds-primary) !important;
}

/* Brand wrapper bg (style.css:142, 4930 set deep teal) */
body.ds-redesign aside.ds-sidebar .navbar-brand-wrapper,
body.ds-redesign aside.ds-sidebar .ds-sidebar-brand {
  background: var(--ds-surface) !important;
  background-color: var(--ds-surface) !important;
}

/* Brand text wins over .navbar-brand inherited color */
body.ds-redesign aside.ds-sidebar a.navbar-brand,
body.ds-redesign aside.ds-sidebar a.navbar-brand:hover,
body.ds-redesign aside.ds-sidebar a.navbar-brand:focus {
  color: var(--ds-text) !important;
}
body.ds-redesign aside.ds-sidebar a.navbar-brand .ds-brand-name {
  color: var(--ds-text) !important;
}

/* nav-subtitle (section eyebrow) — style.css and theme both color it */
body.ds-redesign aside.ds-sidebar .nav-subtitle {
  color: var(--ds-muted) !important;
  background: transparent !important;
}

/* Submenu badges */
body.ds-redesign aside.ds-sidebar .nav-sub .badge,
body.ds-redesign aside.ds-sidebar .badge-soft-info,
body.ds-redesign aside.ds-sidebar .badge-soft-light {
  background: var(--ds-bg-soft) !important;
  color: var(--ds-muted-strong) !important;
  border: 1px solid var(--ds-border);
  font-weight: 600;
}
body.ds-redesign aside.ds-sidebar .nav-sub li.active .badge {
  background: var(--ds-primary-soft-2) !important;
  color: var(--ds-primary) !important;
}

/* Scrollbar inside aside should match the app scrollbar */
body.ds-redesign aside.ds-sidebar ::-webkit-scrollbar { width: 6px; }
body.ds-redesign aside.ds-sidebar ::-webkit-scrollbar-thumb {
  background: var(--ds-border-strong);
  border: none;
  border-radius: var(--ds-r-pill);
}

/* ============================================================= */
/* 26. SIDEBAR FOOTER PROFILE CARD                               */
/* ============================================================= */

body.ds-redesign aside.ds-sidebar .ds-sidebar-footer {
  flex: 0 0 auto;                      /* fixed, doesn't shrink, sits at the bottom of the column */
  padding: var(--ds-s-3);
  border-top: 1px solid var(--ds-border);
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-1);
  background: var(--ds-surface) !important;
  /* No margin-top:auto — being the last flex sibling already pins it to the bottom. */
}

body.ds-redesign aside.ds-sidebar .ds-profile-card {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  padding: var(--ds-s-2) var(--ds-s-3);
  border-radius: var(--ds-r-md);
  border: 1px solid transparent;
  color: var(--ds-text) !important;
  text-decoration: none;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign aside.ds-sidebar .ds-profile-card:hover {
  background: var(--ds-primary-soft);
  border-color: rgba(79, 70, 229, 0.18);
  color: var(--ds-text) !important;
}
body.ds-redesign aside.ds-sidebar .ds-profile-card:hover .ds-profile-avatar {
  border-color: var(--ds-primary);
}
body.ds-redesign aside.ds-sidebar .ds-profile-card:active {
  transform: scale(0.98);
}
body.ds-redesign aside.ds-sidebar .ds-profile-card:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}
body.ds-redesign aside.ds-sidebar .ds-profile-avatar {
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}

body.ds-redesign aside.ds-sidebar .ds-profile-avatar {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ds-bg-soft);
  overflow: hidden;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ds-border);
}
body.ds-redesign aside.ds-sidebar .ds-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
body.ds-redesign aside.ds-sidebar .ds-profile-status {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ds-success);
  border: 2px solid var(--ds-surface);
}

body.ds-redesign aside.ds-sidebar .ds-profile-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.2;
}
body.ds-redesign aside.ds-sidebar .ds-profile-name {
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.ds-redesign aside.ds-sidebar .ds-profile-email {
  font-size: 11px;
  color: var(--ds-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 2px;
}

body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  padding: 9px var(--ds-s-3);
  border-radius: var(--ds-r-md);
  border: 1px solid transparent;
  color: var(--ds-muted-strong) !important;
  font-size: var(--ds-fs-small);
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link i {
  font-size: 1rem;
  color: var(--ds-muted);
  width: 18px;
  text-align: center;
  transition: color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link:hover {
  background: var(--ds-danger-soft);
  border-color: rgba(220, 38, 38, 0.18);
  color: var(--ds-danger) !important;
}
body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link:hover i {
  color: var(--ds-danger);
  transform: translateX(2px);
}
[dir="rtl"] body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link:hover i {
  transform: translateX(-2px);
}
body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link:active {
  transform: scale(0.98);
}
body.ds-redesign aside.ds-sidebar .ds-sidebar-footer-link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}

/* Kill the legacy floating profile widget (style.css:8181)
   in case anything still emits it. Force it inert. */
body.ds-redesign aside.ds-sidebar .__sidebar-hs-unfold,
body.ds-redesign aside.ds-sidebar li.__sidebar-hs-unfold {
  position: static !important;
  bottom: auto !important;
  margin-top: 0 !important;
  display: none !important;
}

/* ============================================================= */
/* 27. ADMIN LOGIN                                               */
/*     Standalone surface — does not extend the admin shell.     */
/*     Body gets `ds-redesign ds-auth` so the rest of the system */
/*     applies; .ds-auth scopes login-only styles.               */
/* ============================================================= */

body.ds-auth {
  background: var(--ds-bg);
  color: var(--ds-text);
  font-family: var(--ds-font-body);
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
}

.ds-auth-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 100vh;
  background: var(--ds-bg);
}

@media (max-width: 1023px) {
  .ds-auth-shell { grid-template-columns: 1fr; }
}

/* ----- Brand panel ----- */

.ds-auth-brand {
  position: relative;
  background: var(--ds-text);
  color: #fff;
  padding: var(--ds-s-9) var(--ds-s-8);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
}

@media (max-width: 1023px) { .ds-auth-brand { display: none; } }

.ds-auth-brand-grid {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 18% 22%, rgba(79, 70, 229, 0.42), transparent 38%),
    radial-gradient(circle at 78% 82%, rgba(79, 70, 229, 0.22), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: auto, auto, 36px 36px, 36px 36px;
  z-index: -1;
  opacity: 1;
}

.ds-auth-brand-inner {
  max-width: 440px;
  text-align: left;
}

[dir="rtl"] .ds-auth-brand-inner { text-align: right; }

.ds-auth-brand-logo {
  width: 64px;
  height: 64px;
  border-radius: var(--ds-r-lg);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  margin-bottom: var(--ds-s-6);
  backdrop-filter: blur(4px);
}
.ds-auth-brand-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.95;
}

.ds-auth-brand-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(2rem, 3.5vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 var(--ds-s-3);
  color: #fff;
}

.ds-auth-brand-tagline {
  font-size: 1.0625rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  max-width: 36ch;
  margin: 0 0 var(--ds-s-7);
}

.ds-auth-brand-list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--ds-s-8);
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-3);
}
.ds-auth-brand-list li {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  color: rgba(255, 255, 255, 0.85);
  font-size: var(--ds-fs-body);
  font-weight: 500;
}
.ds-tick {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(79, 70, 229, 0.4);
  border: 1px solid var(--ds-primary);
  position: relative;
  flex: 0 0 auto;
}
.ds-tick::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 2px;
  width: 5px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}
[dir="rtl"] .ds-tick::after { left: auto; right: 5px; }

.ds-auth-brand-version {
  font-family: var(--ds-font-mono);
  font-size: var(--ds-fs-caption);
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: var(--ds-tracking-wide);
}

/* ----- Form panel ----- */

.ds-auth-form-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ds-s-8) var(--ds-s-6);
  background: var(--ds-bg);
}

.ds-auth-form-shell {
  width: 100%;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-6);
}

.ds-auth-form-header {
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-2);
}
.ds-auth-form-header .ds-eyebrow {
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  color: var(--ds-primary);
}
.ds-auth-form-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 2rem;
  letter-spacing: -0.015em;
  line-height: 1.1;
  color: var(--ds-text);
  margin: 0;
}
.ds-auth-form-subtitle {
  color: var(--ds-muted);
  font-size: var(--ds-fs-body);
  margin: 0;
}

/* Form */
.ds-auth-form {
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-4);
  margin: 0;
}

.ds-field { display: flex; flex-direction: column; gap: 6px; }

.ds-field-label {
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-text);
}

.ds-field-input {
  width: 100%;
  height: 46px;
  padding: 0 var(--ds-s-4);
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-md);
  font-family: var(--ds-font-body);
  font-size: var(--ds-fs-body);
  color: var(--ds-text);
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
  outline: none;
}
.ds-field-input::placeholder { color: var(--ds-muted); }
.ds-field-input:focus,
.ds-field-input:focus-visible {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
  outline: none;
}

.ds-field-input-wrap { position: relative; }
.ds-field-input-wrap .ds-field-input { padding-right: 44px; }
[dir="rtl"] .ds-field-input-wrap .ds-field-input { padding-right: var(--ds-s-4); padding-left: 44px; }

.ds-field-toggle {
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ds-muted);
  border-radius: var(--ds-r-sm);
  cursor: pointer;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
[dir="rtl"] .ds-field-toggle { right: auto; left: 6px; }
.ds-field-toggle:hover { color: var(--ds-text); background: var(--ds-bg-soft); }
.ds-field-toggle:focus-visible { box-shadow: 0 0 0 3px var(--ds-primary-ring); }

.ds-auth-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-s-3);
  flex-wrap: wrap;
}

.ds-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
}
.ds-checkbox input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.ds-checkbox-box {
  width: 18px;
  height: 18px;
  border: 1px solid var(--ds-border-strong);
  border-radius: var(--ds-r-xs);
  background: var(--ds-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
.ds-checkbox input:checked ~ .ds-checkbox-box {
  background: var(--ds-primary);
  border-color: var(--ds-primary);
}
.ds-checkbox input:checked ~ .ds-checkbox-box::after {
  content: '';
  width: 5px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg) translateY(-1px);
}
.ds-checkbox input:focus-visible ~ .ds-checkbox-box {
  box-shadow: 0 0 0 3px var(--ds-primary-ring);
}
.ds-checkbox-label {
  color: var(--ds-muted-strong);
  font-size: var(--ds-fs-small);
}

.ds-link {
  background: transparent;
  border: none;
  padding: 0;
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-primary);
  cursor: pointer;
  transition: color var(--ds-dur-fast) var(--ds-ease);
}
.ds-link:hover { color: var(--ds-primary-hover); text-decoration: underline; }
.ds-link:focus-visible { outline: 2px solid var(--ds-primary); outline-offset: 2px; border-radius: var(--ds-r-xs); }

.ds-auth-submit {
  height: 48px;
  padding: 0 var(--ds-s-5);
  background: var(--ds-primary);
  color: var(--ds-primary-ink);
  border: 1px solid var(--ds-primary);
  border-radius: var(--ds-r-md);
  font-size: var(--ds-fs-body);
  font-weight: 600;
  letter-spacing: 0.01em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ds-s-2);
  cursor: pointer;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
  margin-top: var(--ds-s-2);
}
.ds-auth-submit:hover {
  background: var(--ds-primary-hover);
  border-color: var(--ds-primary-hover);
}
.ds-auth-submit:active { transform: translateY(1px); }
.ds-auth-submit:focus-visible { box-shadow: 0 0 0 3px var(--ds-primary-ring); outline: none; }
.ds-auth-submit-icon {
  font-size: 1rem;
  transition: transform var(--ds-dur-fast) var(--ds-ease);
}
.ds-auth-submit:hover .ds-auth-submit-icon { transform: translateX(2px); }
[dir="rtl"] .ds-auth-submit:hover .ds-auth-submit-icon { transform: translateX(-2px) scaleX(-1); }
[dir="rtl"] .ds-auth-submit-icon { transform: scaleX(-1); }

/* Demo credentials card */
.ds-demo-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-s-3);
  padding: var(--ds-s-4) var(--ds-s-5);
  background: var(--ds-surface);
  border: 1px dashed var(--ds-border-strong);
  border-radius: var(--ds-r-md);
}
.ds-demo-card-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ds-demo-card-eyebrow {
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  letter-spacing: var(--ds-tracking-caps);
  text-transform: uppercase;
  color: var(--ds-muted);
  margin-bottom: 2px;
}
.ds-demo-card-row {
  display: flex;
  align-items: baseline;
  gap: var(--ds-s-2);
  font-size: var(--ds-fs-small);
}
.ds-demo-card-row span { color: var(--ds-muted); min-width: 70px; }
.ds-demo-card-row code {
  font-family: var(--ds-font-mono);
  font-size: 12px;
  color: var(--ds-text);
  background: var(--ds-bg-soft);
  padding: 1px 6px;
  border-radius: var(--ds-r-xs);
}
.ds-demo-card-copy {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  background: var(--ds-bg-soft);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-sm);
  color: var(--ds-text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
.ds-demo-card-copy:hover {
  background: var(--ds-primary);
  color: var(--ds-primary-ink);
  border-color: var(--ds-primary);
}

.ds-auth-form-footer {
  margin-top: var(--ds-s-3);
  color: var(--ds-muted);
  font-size: var(--ds-fs-caption);
  letter-spacing: var(--ds-tracking-wide);
}

/* Modal restyle on the login page (modals are still Bootstrap) */
body.ds-auth .modal-content {
  border-radius: var(--ds-r-lg);
  border: 1px solid var(--ds-border);
  box-shadow: var(--ds-shadow-3);
}
body.ds-auth .modal-header {
  border-bottom: 1px solid var(--ds-border-hairline);
  padding: var(--ds-s-5) var(--ds-s-6);
}
body.ds-auth .modal-body { padding: var(--ds-s-6); }
body.ds-auth .modal-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: var(--ds-fs-h3);
}
body.ds-auth .modal-header .close {
  background: transparent;
  border: none;
  font-size: 1.1rem;
  color: var(--ds-muted);
  transition: color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-auth .modal-header .close:hover { color: var(--ds-text); }
body.ds-auth .btn-primary,
body.ds-auth .btn.btn-block {
  background: var(--ds-primary);
  border: 1px solid var(--ds-primary);
  color: var(--ds-primary-ink);
  border-radius: var(--ds-r-md);
  height: 44px;
  font-weight: 600;
}
body.ds-auth .btn-primary:hover,
body.ds-auth .btn.btn-block:hover {
  background: var(--ds-primary-hover);
  border-color: var(--ds-primary-hover);
}

/* ============================================================= */
/* 29. DASHBOARD                                                 */
/* ============================================================= */

body.ds-redesign .ds-dashboard { padding-top: 0; }

/* ----- Hero ----- */
body.ds-redesign .ds-dash-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ds-s-6);
  padding: 0 0 var(--ds-s-6);
  margin-bottom: var(--ds-s-6);
  border-bottom: 1px solid var(--ds-border);
  flex-wrap: wrap;
}
body.ds-redesign .ds-dash-hero-main {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
}
body.ds-redesign .ds-dash-hero-main .ds-eyebrow {
  color: var(--ds-primary);
}
body.ds-redesign .ds-dash-hero-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--ds-text);
  margin: 0;
}
body.ds-redesign .ds-dash-hero-name {
  color: var(--ds-primary);
}
body.ds-redesign .ds-dash-hero-sub {
  color: var(--ds-muted);
  font-size: var(--ds-fs-body);
  margin: 0;
  max-width: 64ch;
}
body.ds-redesign .ds-dash-hero-aside { flex: 0 0 auto; }
body.ds-redesign .ds-dash-hero-select {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 240px;
  margin: 0;
}

/* ----- Toolbar / Segment control ----- */
body.ds-redesign .ds-dash-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: var(--ds-s-5);
}
body.ds-redesign .ds-segment {
  display: inline-flex;
  background: var(--ds-bg-soft);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-md);
  padding: 3px;
  gap: 2px;
}
body.ds-redesign .ds-segment-item {
  margin: 0;
  cursor: pointer;
  user-select: none;
}
body.ds-redesign .ds-segment-item span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px var(--ds-s-4);
  border-radius: var(--ds-r-sm);
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-muted-strong);
  transition: background var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-segment-item:hover span { color: var(--ds-text); }
body.ds-redesign .ds-segment-item input[type=radio]:checked + span,
body.ds-redesign .ds-segment-item:has(input[type=radio]:checked) span {
  background: var(--ds-surface);
  color: var(--ds-primary);
  box-shadow: 0 1px 2px rgba(10, 10, 10, 0.06);
}

/* ----- KPI grid ----- */
body.ds-redesign .ds-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ds-s-4);
  margin-bottom: var(--ds-s-6);
}
@media (max-width: 1199px) {
  body.ds-redesign .ds-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  body.ds-redesign .ds-kpi-grid { grid-template-columns: 1fr; }
}
body.ds-redesign .ds-kpi-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--ds-s-5) var(--ds-s-5);
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-lg);
  overflow: hidden;
  isolation: isolate;
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-kpi-card:hover {
  border-color: var(--ds-border-strong);
  transform: translateY(-1px);
  box-shadow: var(--ds-shadow-2);
}
body.ds-redesign .ds-kpi-card::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--ds-primary);
  opacity: 0.85;
}
body.ds-redesign .ds-kpi-label {
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  color: var(--ds-muted);
}
body.ds-redesign .ds-kpi-value {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.75rem, 2.6vw, 2.5rem);
  letter-spacing: -0.015em;
  line-height: 1.05;
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--ds-text);
}
body.ds-redesign .ds-kpi-delta {
  font-size: var(--ds-fs-small);
  font-weight: 500;
  color: var(--ds-success);
}
body.ds-redesign .ds-kpi-art {
  position: absolute;
  right: var(--ds-s-4);
  bottom: var(--ds-s-4);
  width: 56px;
  height: 56px;
  opacity: 0.12;
  pointer-events: none;
  z-index: -1;
  filter: grayscale(0.4);
}
[dir="rtl"] body.ds-redesign .ds-kpi-art { right: auto; left: var(--ds-s-4); }

/* ----- Section headings shared across dashboard blocks ----- */
body.ds-redesign .ds-section-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: var(--ds-fs-h2);
  letter-spacing: -0.01em;
  color: var(--ds-text);
  margin: 0;
}
body.ds-redesign .ds-section-sub {
  color: var(--ds-muted);
  font-size: var(--ds-fs-small);
}

/* ----- Pipeline ----- */
body.ds-redesign .ds-pipeline {
  margin-bottom: var(--ds-s-6);
}
body.ds-redesign .ds-pipeline-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ds-s-3);
  margin-bottom: var(--ds-s-4);
  flex-wrap: wrap;
}
body.ds-redesign .ds-pipeline-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--ds-s-3);
}
@media (max-width: 1199px) {
  body.ds-redesign .ds-pipeline-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  body.ds-redesign .ds-pipeline-grid { grid-template-columns: 1fr; }
}
body.ds-redesign .ds-status-tile {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: var(--ds-s-3);
  padding: var(--ds-s-4);
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-md);
  color: var(--ds-text) !important;
  text-decoration: none;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-status-tile:hover {
  background: var(--ds-bg-soft);
  border-color: var(--ds-border-strong);
  transform: translateY(-1px);
}
body.ds-redesign .ds-status-icon {
  width: 36px;
  height: 36px;
  object-fit: contain;
  filter: grayscale(0.2);
}
body.ds-redesign .ds-status-label {
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.ds-redesign .ds-status-count {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: var(--ds-fs-h3);
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--ds-text);
}
body.ds-redesign .ds-status-tile.ds-tone-info     .ds-status-count { color: var(--ds-info); }
body.ds-redesign .ds-status-tile.ds-tone-success  .ds-status-count { color: var(--ds-success); }
body.ds-redesign .ds-status-tile.ds-tone-warning  .ds-status-count { color: var(--ds-warning); }
body.ds-redesign .ds-status-tile.ds-tone-danger   .ds-status-count { color: var(--ds-danger); }

/* ----- Charts row ----- */
body.ds-redesign .ds-chart-row {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--ds-s-4);
  margin-bottom: var(--ds-s-7);
}
@media (max-width: 1199px) {
  body.ds-redesign .ds-chart-row { grid-template-columns: 1fr; }
}
body.ds-redesign .ds-chart-card {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-lg);
  padding: var(--ds-s-5);
  display: flex;
  flex-direction: column;
}
body.ds-redesign .ds-chart-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ds-s-3);
  margin-bottom: var(--ds-s-4);
  flex-wrap: wrap;
}
body.ds-redesign .ds-chart-card-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
body.ds-redesign .ds-chart-headline {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.75rem;
  letter-spacing: -0.015em;
  color: var(--ds-text);
  line-height: 1.1;
}
body.ds-redesign .ds-chart-card-controls {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
}
body.ds-redesign .ds-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  color: var(--ds-muted-strong);
  background: var(--ds-bg-soft);
  padding: 4px 10px;
  border-radius: var(--ds-r-pill);
}
body.ds-redesign .ds-chip-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ds-primary);
}
body.ds-redesign .ds-mini-select {
  height: 34px;
  padding: 0 var(--ds-s-3);
  font-size: var(--ds-fs-small);
  font-weight: 600;
  background: var(--ds-bg-soft);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-sm);
  color: var(--ds-text);
  min-height: 0;
}
body.ds-redesign .ds-chart-host {
  min-height: 280px;
}
body.ds-redesign .ds-chart-host--donut {
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-4);
  align-items: center;
  min-height: 0;
}
body.ds-redesign .ds-donut-wrap {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.ds-redesign .ds-donut-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  pointer-events: none;
}
body.ds-redesign .ds-donut-num {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: 1.5rem;
  color: var(--ds-text);
  line-height: 1;
}
body.ds-redesign .ds-donut-cap {
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  color: var(--ds-muted);
  margin-top: 4px;
}
body.ds-redesign .ds-legend {
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-2);
  width: 100%;
}
body.ds-redesign .ds-legend-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--ds-s-3);
  padding: 6px var(--ds-s-2);
  border-radius: var(--ds-r-sm);
  font-size: var(--ds-fs-small);
}
body.ds-redesign .ds-legend-row:hover { background: var(--ds-bg-soft); }
body.ds-redesign .ds-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
body.ds-redesign .ds-legend-dot.ds-dot-1 { background: var(--ds-primary); }
body.ds-redesign .ds-legend-dot.ds-dot-2 { background: var(--ds-info); }
body.ds-redesign .ds-legend-dot.ds-dot-3 { background: var(--ds-muted); }
body.ds-redesign .ds-legend-name { color: var(--ds-text-soft); font-weight: 500; }
body.ds-redesign .ds-legend-val {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--ds-text);
}

/* ----- Top-X section ----- */
body.ds-redesign .ds-top-section { margin-bottom: var(--ds-s-7); }
body.ds-redesign .ds-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ds-s-3);
  margin-bottom: var(--ds-s-4);
  flex-wrap: wrap;
}
body.ds-redesign .ds-top-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ds-s-4);
}
@media (max-width: 1199px) {
  body.ds-redesign .ds-top-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  body.ds-redesign .ds-top-grid { grid-template-columns: 1fr; }
}
body.ds-redesign .ds-top-card {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-r-lg);
  display: flex;
  flex-direction: column;
  min-height: 320px;
}
body.ds-redesign .ds-top-card .card-header,
body.ds-redesign .ds-top-card .card-body {
  background: transparent !important;
  border: none !important;
}
body.ds-redesign .ds-top-card .card-header {
  padding: var(--ds-s-4) var(--ds-s-5) 0;
}
body.ds-redesign .ds-top-card .card-body {
  padding: var(--ds-s-4) var(--ds-s-5);
}

/* ============================================================= */
/* HIDE NUTRITION + ALLERGY SECTIONS IN PRODUCT FORMS            */
/*     Both admin & vendor add/edit forms render these as        */
/*     col-sm-6 divs with id="nutrition" and id="allergy".       */
/*     Hidden visually; form omits values which the controller   */
/*     treats as "empty/no selection".                           */
/* ============================================================= */

body.ds-redesign #nutrition,
body.ds-redesign #allergy {
  display: none !important;
}

/* ============================================================= */
/* GALLERY / FILE MANAGER — fix folder card stacking             */
/*     The global .btn { display:inline-flex } forces folder     */
/*     tiles into a horizontal row. Restore vertical (icon       */
/*     above name) for the file-manager tile patterns.           */
/* ============================================================= */

body.ds-redesign a.btn.btn--folder,
body.ds-redesign .btn.btn--folder,
body.ds-redesign .folder-btn-item > button.btn,
body.ds-redesign .folder-btn-item .btn.p-0 {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: var(--ds-s-2) !important;
  padding: var(--ds-s-3) !important;
  text-align: center;
  background: var(--ds-surface) !important;
  border: 1px solid var(--ds-border) !important;
  border-radius: var(--ds-r-md) !important;
  color: var(--ds-text) !important;
  transition: border-color var(--ds-dur-fast) var(--ds-ease),
              background var(--ds-dur-fast) var(--ds-ease),
              transform var(--ds-dur-fast) var(--ds-ease);
  width: 100%;
}
body.ds-redesign a.btn.btn--folder:hover,
body.ds-redesign .folder-btn-item > button.btn:hover {
  border-color: var(--ds-primary) !important;
  background: var(--ds-primary-soft) !important;
  transform: translateY(-1px);
}
body.ds-redesign a.btn.btn--folder img,
body.ds-redesign a.btn.btn--folder .img-thumbnail {
  width: 64px !important;
  height: 64px !important;
  max-width: 64px !important;
  object-fit: contain !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  margin: 0 !important;
}
body.ds-redesign a.btn.btn--folder p {
  margin: 0 !important;
  font-size: var(--ds-fs-small) !important;
  font-weight: 600 !important;
  color: var(--ds-text-soft) !important;
  line-height: 1.3 !important;
  word-break: break-word;
}

body.ds-redesign .folder-btn-item {
  position: relative;
  display: inline-flex;
  flex-direction: column;
}
body.ds-redesign .folder-btn-item .gallary-card {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--ds-r-sm);
  background: var(--ds-bg-soft);
}
body.ds-redesign .folder-btn-item .gallary-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.ds-redesign .folder-btn-item small {
  margin-top: var(--ds-s-2);
  font-size: var(--ds-fs-small) !important;
  font-weight: 500;
  color: var(--ds-text-soft) !important;
}

/* ============================================================= */
/* 30. HIDE TAX / VAT UI                                         */
/*     Structure stays in DOM; visibility is killed via CSS +    */
/*     a small JS sweep for text-content matches.                */
/* ============================================================= */

/* Sidebar — leaf items linking to a taxvat.* route */
body.ds-redesign aside.ds-sidebar li:has(> a[href*="taxvat"]) {
  display: none !important;
}

/* "System Tax" parent toggle (href="javascript:", title is translated so we
   can't rely on its text). Match it by its submenu's taxvat link instead. */
body.ds-redesign aside.ds-sidebar li.navbar-vertical-aside-has-menu:has(> a.nav-link-toggle):has(.nav-sub a[href*="taxvat"]) {
  display: none !important;
}

/* Header dropdown leaf items linking to tax pages (direct-child only) */
body.ds-redesign .__nav-module-body li:has(> a[href*="taxvat"]) {
  display: none !important;
}

/* Form fields with tax-related name attributes */
body.ds-redesign .form-group:has(input[name="tax"]),
body.ds-redesign .form-group:has(input[name^="tax_"]),
body.ds-redesign .form-group:has(input[name$="_tax"]),
body.ds-redesign .form-group:has(input[name="vat"]),
body.ds-redesign .form-group:has(input[name="vat_status"]),
body.ds-redesign .form-group:has(input[name="vat_type"]),
body.ds-redesign .form-group:has(select[name="tax"]),
body.ds-redesign .form-group:has(select[name^="tax_"]),
body.ds-redesign .form-group:has(select[name="vat"]) {
  display: none !important;
}

/* Tax cells/columns by class (some views use these explicitly) */
body.ds-redesign th.tax-column,
body.ds-redesign td.tax-column,
body.ds-redesign th.vat-column,
body.ds-redesign td.vat-column,
body.ds-redesign .tax-row,
body.ds-redesign .vat-row {
  display: none !important;
}

/* Catch-all class used by the JS sweep */
body.ds-redesign .ds-hide-tax {
  display: none !important;
}

/* Order summary <dl> rows: if dt contains "Tax"/"VAT" text, hide that dt
   AND its matching dd (handled by JS sweep — CSS only does the obvious cases). */
body.ds-redesign dl.row dt[data-tax="1"],
body.ds-redesign dl.row dd[data-tax="1"] {
  display: none !important;
}

/* ============================================================= */
/* 31. HIDE: ADDON ACTIVATION, SYSTEM ADDONS, EMAIL TEMPLATE,    */
/*          NOTIFICATION CHANNEL (FCM + Notification Setup +     */
/*          Push Notification).                                  */
/*     Sidebar entries by href / route slug. Markup stays.       */
/* ============================================================= */

/* Direct-child `:has(> a)` selectors so only the LEAF nav item is hidden.
   Without the `>` combinator, ancestor menus (e.g. "3rd Party & Configurations"
   parent) get hidden too because they contain these anchors deep in submenus. */
body.ds-redesign aside.ds-sidebar li:has(> a[href*="addon-activation"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="system-addon"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="email-setup"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="email-format"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="email-template"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="fcm-index"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="firebase-otp"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="notification_setup"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="notification-setup"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="admin/notification/add-new"]) {
  display: none !important;
}

/* Parent toggles whose direct-child <a> is href="javascript:" — match them by
   the route their submenu links to. Specifically scoped to a toggle AND a
   submenu link, so only the intended parent matches. */
body.ds-redesign aside.ds-sidebar li.navbar-vertical-aside-has-menu:has(> a.nav-link-toggle):has(.nav-sub a[href*="subscriptionackage"]),
body.ds-redesign aside.ds-sidebar li.navbar-vertical-aside-has-menu:has(> a.nav-link-toggle):has(.nav-sub a[href*="business-settings/subscription"]),
body.ds-redesign aside.ds-sidebar li.navbar-vertical-aside-has-menu:has(> a.nav-link-toggle):has(.nav-sub a[href*="business-settings/pages"]) {
  display: none !important;
}

/* Hide all Bulk Import / Bulk Export sidebar entries (categories, items,
   stores, etc.). Direct-child :has(> a) so only leaf items are hidden;
   the parent menu they live under stays visible. */
body.ds-redesign aside.ds-sidebar li:has(> a[href*="bulk-import"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="bulk-export"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="bulk-export-index"]) {
  display: none !important;
}

/* Hide Subscribed Mail List */
body.ds-redesign aside.ds-sidebar li:has(> a[href*="customer/subscribed"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="users/customer/subscribed"]) {
  display: none !important;
}

/* Hide Admin Tax Report + Parcel Tax Report (transactions sidebar) */
body.ds-redesign aside.ds-sidebar li:has(> a[href*="get-tax-export"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="parcel-wise-taxes"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="adminTaxReport"]),
body.ds-redesign aside.ds-sidebar li:has(> a[href*="admin-tax-report"]) {
  display: none !important;
}

/* Hide global search (Ctrl+K) button in header bar */
body.ds-redesign #header #modalOpener,
body.ds-redesign #header li.nav-item:has(> #modalOpener) {
  display: none !important;
}

/* Header / settings dropdown leaf items only (direct-child anchor) */
body.ds-redesign .__nav-module-body li:has(> a[href*="addon-activation"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="system-addon"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="email-setup"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="email-format"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="email-template"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="fcm-index"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="firebase-otp"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="notification_setup"]),
body.ds-redesign .__nav-module-body li:has(> a[href*="notification-setup"]) {
  display: none !important;
}

/* ============================================================= */
/* 28. ORDER DETAILS                                             */
/*     Scoped under .ds-order-view inside the admin shell.       */
/* ============================================================= */

body.ds-redesign .ds-order-view { padding-top: 0; }

/* ---------- HERO ---------- */

body.ds-redesign .ds-order-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ds-s-5);
  padding: var(--ds-s-6) 0 var(--ds-s-5);
  margin-bottom: var(--ds-s-6);
  border-bottom: 1px solid var(--ds-border);
  flex-wrap: wrap;
}

body.ds-redesign .ds-order-hero-main {
  display: flex;
  align-items: flex-start;
  gap: var(--ds-s-4);
  flex: 1 1 auto;
  min-width: 0;
}

body.ds-redesign .ds-order-back {
  width: 40px;
  height: 40px;
  border-radius: var(--ds-r-md);
  background: var(--ds-bg-soft);
  border: 1px solid var(--ds-border);
  color: var(--ds-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-order-back:hover {
  background: var(--ds-primary-soft);
  border-color: var(--ds-primary);
  color: var(--ds-primary);
}
[dir="rtl"] body.ds-redesign .ds-order-back i { transform: scaleX(-1); }

body.ds-redesign .ds-order-hero-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

body.ds-redesign .ds-order-hero-text .ds-eyebrow {
  color: var(--ds-muted);
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
}

body.ds-redesign .ds-order-hero-title {
  font-family: var(--ds-font-display);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  letter-spacing: -0.015em;
  line-height: 1.15;
  color: var(--ds-text);
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ds-s-3);
}
body.ds-redesign .ds-order-hero-title .ds-order-num {
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--ds-primary);
}

body.ds-redesign .ds-order-hero-sub {
  display: flex;
  align-items: center;
  gap: var(--ds-s-3);
  color: var(--ds-muted);
  font-size: var(--ds-fs-small);
  flex-wrap: wrap;
}
body.ds-redesign .ds-order-hero-time {
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-2);
}
body.ds-redesign .ds-order-hero-time i { color: var(--ds-muted); }

body.ds-redesign .ds-order-hero-actions {
  display: flex;
  align-items: center;
  gap: var(--ds-s-2);
  flex: 0 0 auto;
}

body.ds-redesign .ds-icon-btn {
  width: 38px;
  height: 38px;
  border-radius: var(--ds-r-md);
  border: 1px solid var(--ds-border);
  background: var(--ds-surface);
  color: var(--ds-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-icon-btn:hover {
  background: var(--ds-bg-soft);
  border-color: var(--ds-border-strong);
  color: var(--ds-text);
}
[dir="rtl"] body.ds-redesign .ds-icon-btn i.tio-chevron-left,
[dir="rtl"] body.ds-redesign .ds-icon-btn i.tio-chevron-right { transform: scaleX(-1); }

body.ds-redesign .ds-ghost-btn {
  height: 38px;
  padding: 0 var(--ds-s-4);
  background: var(--ds-surface);
  border: 1px solid var(--ds-border-strong);
  border-radius: var(--ds-r-md);
  color: var(--ds-text);
  font-size: var(--ds-fs-small);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-2);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-ghost-btn:hover {
  background: var(--ds-bg-soft);
  border-color: var(--ds-muted);
  color: var(--ds-text);
}

body.ds-redesign .ds-primary-btn {
  height: 38px;
  padding: 0 var(--ds-s-4);
  background: var(--ds-primary);
  color: var(--ds-primary-ink) !important;
  border: 1px solid var(--ds-primary);
  border-radius: var(--ds-r-md);
  font-size: var(--ds-fs-small);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-2);
  text-decoration: none;
  transition: background var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-primary-btn:hover {
  background: var(--ds-primary-hover);
  border-color: var(--ds-primary-hover);
}

/* ---------- PILLS ---------- */

body.ds-redesign .ds-pill {
  display: inline-flex;
  align-items: center;
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  letter-spacing: var(--ds-tracking-wide);
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--ds-r-pill);
  line-height: 1.3;
  background: var(--ds-bg-soft);
  color: var(--ds-muted-strong);
  white-space: nowrap;
}
body.ds-redesign .ds-pill--info    { background: var(--ds-info-soft);    color: var(--ds-info); }
body.ds-redesign .ds-pill--success { background: var(--ds-success-soft); color: var(--ds-success); }
body.ds-redesign .ds-pill--warning { background: var(--ds-warning-soft); color: var(--ds-warning); }
body.ds-redesign .ds-pill--danger  { background: var(--ds-danger-soft);  color: var(--ds-danger); }
body.ds-redesign .ds-pill--soft    { background: var(--ds-bg-soft);      color: var(--ds-muted-strong); }
body.ds-redesign .ds-pill--muted   { background: var(--ds-bg-soft);      color: var(--ds-muted-strong); }

/* ---------- ORDER CARD HEAD (meta grid + alerts + attachments) ---------- */

body.ds-redesign .ds-order-card-head {
  padding: var(--ds-s-6) !important;
  border-bottom: 1px solid var(--ds-border-hairline) !important;
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-5);
}

body.ds-redesign .ds-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ds-s-1) var(--ds-s-5);
  padding-bottom: var(--ds-s-3);
  border-bottom: 1px solid var(--ds-border-hairline);
}
body.ds-redesign .ds-meta-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--ds-s-2) 0;
  min-width: 0;
}
body.ds-redesign .ds-meta-label {
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
  color: var(--ds-muted);
}
body.ds-redesign .ds-meta-value {
  font-size: var(--ds-fs-small);
  font-weight: 600;
  color: var(--ds-text);
  display: inline-flex;
  align-items: center;
  gap: var(--ds-s-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.ds-redesign .ds-meta-value i { color: var(--ds-muted); }
body.ds-redesign .ds-meta-value .ds-pill { font-weight: 700; }
body.ds-redesign .ds-meta-code {
  font-family: var(--ds-font-mono);
  font-size: 12px;
  color: var(--ds-text);
  background: var(--ds-bg-soft);
  padding: 2px 8px;
  border-radius: var(--ds-r-xs);
  border: 1px solid var(--ds-border);
}
body.ds-redesign .ds-meta-sub {
  font-size: 11px;
  color: var(--ds-muted);
  font-weight: 500;
}

body.ds-redesign .ds-meta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-s-2);
}

/* ---------- ALERT CALLOUTS ---------- */

body.ds-redesign .ds-alert {
  border-radius: var(--ds-r-md);
  padding: var(--ds-s-3) var(--ds-s-4);
  font-size: var(--ds-fs-small);
  line-height: 1.5;
  border: 1px solid transparent;
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-2);
}
body.ds-redesign .ds-alert strong { font-weight: 700; }
body.ds-redesign .ds-alert-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-s-3);
}
body.ds-redesign .ds-alert--info {
  background: var(--ds-info-soft);
  color: var(--ds-info);
}
body.ds-redesign .ds-alert--success {
  background: var(--ds-success-soft);
  color: var(--ds-success);
}
body.ds-redesign .ds-alert--warning {
  background: var(--ds-warning-soft);
  color: var(--ds-warning);
}
body.ds-redesign .ds-alert--danger {
  background: var(--ds-danger-soft);
  color: var(--ds-danger);
}
body.ds-redesign .ds-alert--muted {
  background: var(--ds-bg-soft);
  color: var(--ds-text);
  border-color: var(--ds-border);
}

body.ds-redesign .ds-kv-list {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: var(--ds-s-4);
  row-gap: 4px;
  margin: 0;
  font-size: var(--ds-fs-small);
}
body.ds-redesign .ds-kv-list dt {
  color: var(--ds-muted-strong);
  font-weight: 600;
  text-transform: capitalize;
}
body.ds-redesign .ds-kv-list dd {
  margin: 0;
  color: var(--ds-text);
  font-weight: 600;
}

/* ---------- ATTACHMENTS ---------- */

body.ds-redesign .ds-attachments {
  display: flex;
  flex-direction: column;
  gap: var(--ds-s-2);
}
body.ds-redesign .ds-attachments-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-s-3);
}
body.ds-redesign .ds-attachment-thumb {
  width: 64px;
  height: 64px;
  border-radius: var(--ds-r-md);
  border: 1px solid var(--ds-border);
  background: var(--ds-bg-soft);
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  transition: transform var(--ds-dur-fast) var(--ds-ease),
              border-color var(--ds-dur-fast) var(--ds-ease),
              box-shadow var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-attachment-thumb:hover {
  transform: translateY(-1px);
  border-color: var(--ds-primary);
  box-shadow: var(--ds-shadow-2);
}
body.ds-redesign .ds-attachment-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---------- ITEMS BODY (existing markup, aggressively styled) ---------- */

body.ds-redesign .ds-order-view .card-body {
  padding: var(--ds-s-5) var(--ds-s-6) !important;
}

body.ds-redesign .ds-order-view .card-body .row.px-4.py-5 {
  padding: 0 0 var(--ds-s-4) !important;
}

body.ds-redesign .ds-order-view .table {
  border: none;
  background: transparent;
}
body.ds-redesign .ds-order-view .table th,
body.ds-redesign .ds-order-view .table td {
  border-color: var(--ds-border-hairline) !important;
}

body.ds-redesign .ds-order-view dl.row {
  align-items: baseline;
  margin: 0;
}
body.ds-redesign .ds-order-view dl.row dt {
  color: var(--ds-muted-strong);
  font-weight: 500;
  font-size: var(--ds-fs-small);
}
body.ds-redesign .ds-order-view dl.row dd {
  color: var(--ds-text);
  font-weight: 600;
  font-feature-settings: "tnum" 1, "lnum" 1;
}

/* Highlight the total row */
body.ds-redesign .ds-order-view .total-payable,
body.ds-redesign .ds-order-view dl.row:last-of-type dt,
body.ds-redesign .ds-order-view dl.row:last-of-type dd {
  font-size: var(--ds-fs-h3) !important;
  font-family: var(--ds-font-display);
  color: var(--ds-text) !important;
  font-weight: 500 !important;
}

/* ---------- RIGHT COLUMN CARDS ---------- */

body.ds-redesign .ds-order-view .order-print-area-right .card {
  margin-bottom: var(--ds-s-4) !important;
}
body.ds-redesign .ds-order-view .delivery--information-single {
  list-style: none;
  padding: 0;
  margin: 0;
}
body.ds-redesign .ds-order-view .delivery--information-single li {
  padding: var(--ds-s-2) 0;
  border-bottom: 1px solid var(--ds-border-hairline);
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--ds-fs-small);
}
body.ds-redesign .ds-order-view .delivery--information-single li:last-child { border-bottom: none; }
body.ds-redesign .ds-order-view .delivery--information-single li .name {
  font-weight: 600;
  color: var(--ds-muted);
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: var(--ds-tracking-caps);
}
body.ds-redesign .ds-order-view .delivery--information-single li .info {
  color: var(--ds-text);
  font-weight: 600;
}

body.ds-redesign .ds-order-view .customer--information-single {
  padding: var(--ds-s-3) 0;
  border-radius: var(--ds-r-md);
  transition: background var(--ds-dur-fast) var(--ds-ease);
}
body.ds-redesign .ds-order-view .customer--information-single:hover {
  background: var(--ds-bg-soft);
  padding-left: var(--ds-s-3);
  padding-right: var(--ds-s-3);
}

/* ---------- PRINT MODE: keep things printable ---------- */

@media print {
  body.ds-redesign .ds-order-hero-actions,
  body.ds-redesign .ds-order-back,
  body.ds-redesign .ds-meta-actions { display: none !important; }
  body.ds-redesign .ds-order-hero { border-bottom: 1px solid #000; }
  body.ds-redesign .ds-alert { border: 1px solid #ccc; background: transparent; color: #000; }
  body.ds-redesign .ds-pill { background: transparent; border: 1px solid #999; color: #000; }
}

/* ---------- RESPONSIVE ---------- */

@media (max-width: 767px) {
  body.ds-redesign .ds-order-hero { flex-direction: column; align-items: stretch; }
  body.ds-redesign .ds-order-hero-actions { justify-content: flex-end; }
  body.ds-redesign .ds-meta-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  body.ds-redesign .ds-meta-grid { grid-template-columns: 1fr; }
}
