/*
 * V181 · Systemic frontend authority
 *
 * This file is intentionally loaded last. It is the single authority for
 * readable business text, touch targets, responsive ledgers, loading state,
 * and collision-safe catalog filters while legacy version sheets are retired.
 */

:root {
  --authority-body-size: 15px;
  --authority-control-size: 14px;
  --authority-caption-size: 13px;
  --authority-control-height: 40px;
  --authority-touch-target: 44px;
  --authority-focus: #4f63d8;
  --authority-line: #dfe6ef;
  --authority-surface: #fff;
  --authority-muted: #66758c;
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 12px;
  z-index: 5000;
  padding: 10px 14px;
  color: #fff;
  border-radius: 9px;
  background: #253f9a;
  box-shadow: 0 8px 24px rgba(20, 38, 86, .22);
  font-size: 14px;
  font-weight: 750;
  text-decoration: none;
  transform: translateY(-180%);
  transition: transform .16s ease;
}

.skip-link:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  transform: translateY(0);
}

body[data-ui-version="44"] .view-root {
  font-size: var(--authority-body-size) !important;
  line-height: 1.55;
}

body[data-ui-version="44"] :where(.view-root, .modal-card) :where(p, li, dd, dt) {
  font-size: 14px !important;
  line-height: 1.6;
}

body[data-ui-version="44"] :where(.view-root, .modal-card) :where(small, .hint, .muted, .field-help, time) {
  font-size: var(--authority-caption-size) !important;
  line-height: 1.5;
}

body[data-ui-version="44"] :where(.view-root, .modal-card, .topbar) :where(
  button,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  summary,
  .primary-button,
  .small-button,
  .ghost-button,
  .text-button
) {
  min-block-size: var(--authority-control-height) !important;
  font-size: var(--authority-control-size) !important;
  line-height: 1.35 !important;
}

body[data-ui-version="44"] .view-root :where(table th, table td) {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

body[data-ui-version="44"] .view-root :where(.badge, .status-badge, .pill, .tag) {
  font-size: 12.5px !important;
  line-height: 1.35 !important;
}

body[data-ui-version="44"] .view-root :where(
  .panel-eyebrow,
  .inventory-strategy-kicker,
  .strategy-risk-badge,
  .strategy-abc,
  .strategy-basket-note,
  .strategy-queue-header > div:first-child > span,
  .strategy-evidence header > div:first-child > span,
  .strategy-product-cell small,
  .strategy-coverage-cell span,
  .strategy-demand-cell span,
  .strategy-demand-cell small,
  .strategy-inbound-cell span,
  .strategy-inbound-cell small,
  .strategy-target-cell span,
  .strategy-target-cell small,
  .strategy-supplier-cell span,
  .strategy-supplier-cell small,
  .work-command-v123 span,
  .work-command-v123 small,
  .customer-knowledge-numbers small,
  .customer-knowledge-health li,
  .customer-knowledge-health > p,
  .customer-assistant-modules i,
  .office-os-eyebrow
) {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

body[data-ui-version="44"] .view-root :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--authority-focus) 72%, #fff) !important;
  outline-offset: 2px !important;
}

/* Loading is a real route state: stale controls never remain interactive. */
body[data-ui-version="44"] .view-root[aria-busy="true"] {
  cursor: progress;
}

body[data-ui-version="44"] .view-root .view-loading-state {
  min-height: min(420px, calc(100dvh - 190px));
}

/* One global store context; route-local readouts are informational only. */
.inventory-strategy-store-context,
.scanner-store-context {
  display: grid;
  gap: 3px;
  min-width: min(260px, 100%);
  padding: 8px 12px;
  border: 1px solid var(--authority-line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--authority-surface) 92%, #eef3ff);
}

.inventory-strategy-store-context > span,
.scanner-store-context > span {
  color: var(--authority-muted);
  font-size: 12px !important;
}

.inventory-strategy-store-context > strong,
.scanner-store-context > strong {
  overflow: hidden;
  color: #24324a;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inventory-strategy-store-context > small,
.scanner-store-context > small {
  color: var(--authority-muted);
  font-size: 12px !important;
}

/* Scrollable ledgers expose a visible and keyboard-focusable affordance. */
body[data-ui-version="44"] .view-root .table-wrap {
  max-width: 100% !important;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

body[data-ui-version="44"] .view-root .table-wrap.is-horizontally-scrollable {
  position: relative;
  padding-top: 0 !important;
  border: 0 !important;
}

body[data-ui-version="44"] .view-root .table-wrap.is-horizontally-scrollable::before {
  display: none !important;
}

/* Product ledgers are high-frequency work surfaces: identifiers and names
   must remain readable without turning each row into a tall card. */
body[data-ui-version="44"] .view-root[data-view="productCatalog"] .erp-master-table :is(th, td),
body[data-ui-version="44"] .view-root[data-view="catalog"] .store-product-ledger :is(th, td) {
  font-size: 13.5px !important;
  line-height: 1.42 !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] .erp-master-table th,
body[data-ui-version="44"] .view-root[data-view="catalog"] .store-product-ledger th {
  font-size: 13px !important;
  font-weight: 760 !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] :is(.catalog-code, .catalog-material-code, .catalog-upc),
body[data-ui-version="44"] .view-root[data-view="catalog"] :is(.catalog-code, .catalog-upc) {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] .catalog-product-copy > strong,
body[data-ui-version="44"] .view-root[data-view="catalog"] .store-product-summary > strong {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] .catalog-product-copy > span,
body[data-ui-version="44"] .view-root[data-view="catalog"] .store-product-summary > span {
  font-size: 12.5px !important;
  line-height: 1.4 !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] .catalog-row-actions .small-button,
body[data-ui-version="44"] .view-root[data-view="catalog"] .store-product-row-actions .small-button {
  min-block-size: 34px !important;
  padding-inline: 10px !important;
  font-size: 13px !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] :is(
  .product-catalog-actions .small-button,
  .product-catalog-actions .check-field,
  .catalog-page-nav,
  .catalog-page-nav label,
  .catalog-page-nav select,
  .catalog-category-options label,
  .catalog-category-actions .small-button,
  .catalog-price-filter-popover label,
  .catalog-price-filter-actions .small-button
) {
  font-size: 13px !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] .product-catalog-actions .small-button,
body[data-ui-version="44"] .view-root[data-view="productCatalog"] .catalog-page-nav .small-button {
  min-block-size: 34px !important;
  padding-inline: 10px !important;
}

body[data-ui-version="44"] .view-root[data-view="productCatalog"] .catalog-category-options label {
  min-block-size: 34px !important;
  height: auto !important;
  padding-block: 5px !important;
}

/* Industry news must collapse to one readable column on phones. */
@media (max-width: 760px) {
  body[data-ui-version="44"] .view-root[data-view="industryNews"] {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] :is(
    .news-signal-board,
    .news-filter-bar,
    .news-layout,
    .news-stream,
    .news-source-rail
  ) {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-signal-board,
  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-signal-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-filter-bar {
    align-items: stretch !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-topic-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-topic-tabs button {
    min-width: 0 !important;
    padding-inline: 6px !important;
    white-space: normal !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] #industryNewsFilterForm {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] #industryNewsFilterForm > * {
    min-width: 0 !important;
    width: 100% !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-card :is(.news-card-meta, footer) {
    align-items: flex-start !important;
    flex-wrap: wrap !important;
  }

  body[data-ui-version="44"] .view-root[data-view="industryNews"] .news-card-meta time {
    margin-left: 0 !important;
    width: 100% !important;
  }
}

body[data-ui-version="44"] .view-root[data-view="settings"] .settings-user-panel .table-wrap {
  overflow-x: auto !important;
}

/*
 * Catalog filters are floating popovers. Opening one must never stretch the
 * filter deck or push the action bar/table hundreds of pixels down the page.
 */
body[data-ui-version="44"] .view-root :is(.catalog-filter-deck, .store-catalog-filter-deck),
body[data-ui-version="44"] .view-root :is(.catalog-filter-deck, .store-catalog-filter-deck):has(
  :is(.catalog-category-filter, .catalog-price-filter, .store-price-filter)[open]
) {
  min-height: 0 !important;
  height: auto !important;
  padding-bottom: 10px !important;
  overflow: visible !important;
}

body[data-ui-version="44"] .view-root :is(.catalog-filter-row, .store-catalog-filter-row):has(
  :is(.catalog-category-filter, .catalog-price-filter, .store-price-filter)[open]
) {
  position: relative;
  z-index: 90;
}

body[data-ui-version="44"] .view-root :is(.catalog-category-popover, .catalog-price-filter-popover) {
  max-height: var(--catalog-popover-max-height, min(420px, calc(100dvh - 112px))) !important;
}

body[data-ui-version="44"] :where(.catalog-category-actions, .catalog-price-filter-actions) {
  position: sticky !important;
  bottom: 0 !important;
  z-index: 4 !important;
  min-height: 52px;
  padding: 8px 0 2px !important;
  background: var(--authority-surface) !important;
}

@media (max-width: 1180px) {
  body[data-ui-version="44"] .view-root[data-view="productCatalog"] .erp-master-table table {
    width: 1180px !important;
    min-width: 1180px !important;
  }

  body[data-ui-version="44"] .view-root[data-view="catalog"] .store-product-ledger table {
    width: 1080px !important;
    min-width: 1080px !important;
    table-layout: fixed !important;
  }

  body[data-ui-version="44"] .view-root[data-view="storeManagement"] .store-directory-table table {
    min-width: 1120px !important;
  }
}

@media (max-width: 760px), (pointer: coarse) {
  body[data-ui-version="44"] :where(.view-root, .modal-card, .topbar) :where(
    button,
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea,
    summary,
    .primary-button,
    .small-button,
    .ghost-button,
    .text-button
  ) {
    min-block-size: var(--authority-touch-target) !important;
  }

  body[data-ui-version="44"] .view-root[data-view="replenishmentOrders"] .unified-order-toolbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    overflow: visible !important;
  }

  body[data-ui-version="44"] .view-root[data-view="replenishmentOrders"] .unified-order-toolbar > * {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body[data-ui-version="44"] .view-root[data-view="settings"] .settings-user-panel .table-wrap {
    overflow: visible !important;
  }
}

@media (max-width: 680px) {
  body[data-ui-version="44"] .view-root :is(.catalog-filter-deck, .store-catalog-filter-deck):has(
    :is(.catalog-category-filter, .catalog-price-filter, .store-price-filter)[open]
  ) {
    padding-bottom: 10px !important;
  }

  body[data-ui-version="44"] .view-root :is(
    .catalog-category-filter,
    .catalog-price-filter,
    .store-price-filter
  )[open]::before {
    position: fixed;
    inset: 0;
    z-index: 490;
    background: rgba(20, 30, 52, .36);
    content: "";
  }

  body[data-ui-version="44"] .view-root :is(.catalog-category-popover, .catalog-price-filter-popover) {
    position: fixed !important;
    inset: auto 12px 12px 12px !important;
    z-index: 500 !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 24px) !important;
    overflow: auto !important;
    border-radius: 16px !important;
    box-shadow: 0 24px 64px rgba(18, 30, 54, .28) !important;
  }

  body[data-ui-version="44"] :where(.catalog-category-actions, .catalog-price-filter-actions) :where(button, .small-button) {
    min-height: var(--authority-touch-target) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .skip-link {
    transition: none;
  }
}
