/*
 * Theme coherence layer — loaded after every legacy shell stylesheet.
 * The active theme owns the topbar, domain rail, program rail, lifecycle
 * navigation, and floating navigation surfaces. No module may introduce a
 * separate shell palette.
 */

:root {
  --qms-shell-chrome: var(--qms-shell-topbar, #123b5d);
}

.qms-skip-link {
  background: var(--qms-surface, #ffffff);
  border: 2px solid var(--qms-brand-quality, #0f766e);
  border-radius: 8px;
  color: var(--qms-brand-ink, #123b5d);
  font-weight: 800;
  inset-block-start: 8px;
  inset-inline-start: 8px;
  padding: 10px 14px;
  position: fixed;
  transform: translateY(-160%);
  transition: transform 140ms ease;
  z-index: 2000;
}

.qms-skip-link:focus {
  outline: 3px solid var(--qms-focus-ring, #f59e0b);
  outline-offset: 2px;
  transform: translateY(0);
}

body:not(.login-body) .topbar.topbar-enterprise {
  background: var(--qms-shell-topbar) !important;
  background-image: none !important;
  border-bottom-color: var(--qms-shell-topbar-strong) !important;
}

body:not(.login-body) .topbar.topbar-enterprise .topbar-facility-badge {
  background: var(--qms-shell-topbar-strong) !important;
  border-color: var(--qms-shell-rail-border) !important;
}

body:not(.login-body) .topbar.topbar-enterprise .topbar-btn,
body:not(.login-body) .topbar.topbar-enterprise .topbar-lang-btn,
body:not(.login-body) .topbar.topbar-enterprise .topbar-search-toggle,
body:not(.login-body) .topbar.topbar-enterprise .menu-toggle {
  border-color: var(--qms-shell-rail-border) !important;
  border-color: color-mix(in srgb, var(--qms-shell-rail-muted) 65%, transparent) !important;
}

body:not(.login-body) .qms-domain-rail {
  background: var(--qms-shell-chrome) !important;
  border-inline-end-color: var(--qms-shell-rail-border) !important;
  color: var(--qms-shell-rail-ink) !important;
}

html[data-qms-theme] body:not(.login-body) .topbar.topbar-enterprise,
html[data-qms-theme] body:not(.login-body) .qms-domain-rail {
  background-color: var(--qms-shell-chrome) !important;
}

body:not(.login-body) .qms-domain-rail-heading,
body:not(.login-body) .qms-program-navigation-head h2 {
  color: var(--qms-shell-rail-ink) !important;
}

body:not(.login-body) .qms-domain-rail-collapse {
  background: transparent !important;
  border-color: var(--qms-shell-rail-border) !important;
  color: var(--qms-shell-rail-muted) !important;
}

body:not(.login-body) .qms-domain-rail-collapse:hover,
body:not(.login-body) .qms-domain-link:hover,
body:not(.login-body) .qms-program-link:hover {
  background: var(--qms-shell-rail-hover) !important;
  border-color: var(--qms-shell-rail-border) !important;
  color: var(--qms-shell-rail-ink) !important;
}

body:not(.login-body) .qms-domain-link {
  border-color: transparent !important;
  color: var(--qms-shell-rail-muted) !important;
}

body:not(.login-body) .qms-domain-link.is-active {
  background: var(--qms-shell-rail-active) !important;
  border-color: var(--qms-shell-rail-active) !important;
  color: var(--qms-shell-rail-ink) !important;
}

body:not(.login-body) .qms-domain-link-icon {
  background: transparent !important;
  border-color: var(--qms-shell-rail-border) !important;
  color: var(--qms-shell-rail-muted) !important;
}

body:not(.login-body) .qms-domain-link.is-active .qms-domain-link-icon {
  background: var(--qms-shell-rail-ink) !important;
  border-color: var(--qms-shell-rail-ink) !important;
  color: var(--qms-shell-rail-active-ink) !important;
}

body:not(.login-body) .qms-program-navigation {
  border-top-color: var(--qms-shell-rail-border) !important;
  border-top-color: color-mix(in srgb, var(--qms-shell-rail-muted) 24%, transparent) !important;
}

body:not(.login-body) .qms-program-navigation-head > span,
body:not(.login-body) .qms-program-link > span {
  background: var(--qms-shell-rail-hover) !important;
  border-color: var(--qms-shell-rail-border) !important;
  color: var(--qms-shell-rail-muted) !important;
}

body:not(.login-body) .qms-program-link {
  color: var(--qms-shell-rail-muted) !important;
}

body:not(.login-body) .qms-program-link.is-active {
  background: var(--qms-shell-nav-active) !important;
  border-color: var(--qms-shell-nav-active-border) !important;
  color: var(--qms-shell-rail-active-ink) !important;
}

body:not(.login-body) .qms-program-link.is-active > span {
  background: var(--qms-shell-rail-ink) !important;
  border-color: var(--qms-shell-nav-active-border) !important;
  color: var(--qms-shell-rail-active-ink) !important;
}

body:not(.login-body) .qms-domain-browse-all {
  background: var(--qms-shell-rail-active) !important;
  border-color: var(--qms-shell-rail-active) !important;
  color: var(--qms-shell-rail-ink) !important;
}

body:not(.login-body) .qms-domain-browse-all:hover {
  background: var(--qms-shell-topbar) !important;
  border-color: var(--qms-shell-topbar) !important;
}

body:not(.login-body) .qms-workspace-navigation,
body:not(.login-body) .qms-workspace-context,
body:not(.login-body) .qms-lifecycle-nav {
  background: var(--qms-surface) !important;
  border-color: var(--qms-border) !important;
}

body:not(.login-body) .qms-workspace-breadcrumb a,
body:not(.login-body) .qms-workspace-breadcrumb > span,
body:not(.login-body) .qms-lifecycle-stage {
  color: var(--qms-text-muted) !important;
}

body:not(.login-body) .qms-workspace-breadcrumb strong,
body:not(.login-body) .qms-workspace-browse,
body:not(.login-body) .qms-lifecycle-stage:hover,
body:not(.login-body) .qms-lifecycle-stage.is-active {
  color: var(--qms-brand-quality-strong) !important;
}

body:not(.login-body) .qms-workspace-browse,
body:not(.login-body) .qms-lifecycle-stage.is-active {
  background: var(--qms-brand-quality-soft) !important;
  border-color: var(--qms-brand-quality) !important;
}

body:not(.login-body) .qms-lifecycle-stage.is-active :is(
  .qms-lifecycle-stage-copy,
  .qms-lifecycle-stage-copy strong,
  .qms-lifecycle-stage-copy small,
  .qms-lifecycle-stage-count
) {
  color: var(--qms-brand-quality-strong) !important;
  -webkit-text-fill-color: var(--qms-brand-quality-strong) !important;
}

body:not(.login-body) .qms-lifecycle-stage-icon {
  color: var(--qms-brand-ink) !important;
  border-color: var(--qms-border) !important;
  background: var(--qms-surface) !important;
}

body:not(.login-body) .qms-lifecycle-stage.is-active .qms-lifecycle-stage-icon {
  color: var(--qms-brand-quality-strong) !important;
  border-color: var(--qms-brand-quality) !important;
  background: var(--qms-surface) !important;
}

body:not(.login-body) .topbar-mega-menu,
body:not(.login-body) .topbar-search-panel,
body:not(.login-body) .topbar-more-actions-panel {
  background: var(--qms-surface) !important;
  border-color: var(--qms-border) !important;
  color: var(--qms-text) !important;
}

@media (prefers-reduced-motion: reduce) {
  body:not(.login-body) .qms-domain-rail,
  body:not(.login-body) .qms-domain-link,
  body:not(.login-body) .qms-lifecycle-stage {
    transition: none !important;
  }
}

:root {
  --qms-workspace-rendered-height: var(--qms-workspace-nav-height, 174px);
}

/* Keep page content below the measured contextual navigation, including wrapped routes. */
body:not(.login-body) .page-content {
  padding-top: calc(
    var(--qms-topbar-height) + var(--qms-workspace-rendered-height) + 20px
  ) !important;
}

/* Hide the tall contextual navigation while reading and reveal it at page top. */
body:not(.login-body) .qms-workspace-navigation {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 220ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 260ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 220ms linear;
  will-change: opacity, transform;
}

body:not(.login-body) .page-content {
  transition: padding-top 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.qms-shell-scrolled:not(.login-body) .qms-workspace-navigation {
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(-100% - var(--qms-topbar-height)));
  visibility: hidden;
}

body.qms-shell-scrolled:not(.login-body) .page-content {
  padding-top: calc(var(--qms-topbar-height) + 20px) !important;
}

@media (prefers-reduced-motion: reduce) {
  body:not(.login-body) .qms-workspace-navigation,
  body:not(.login-body) .page-content {
    transition: none !important;
  }
}
