:root {
  --platform-radius: 10px;
  --platform-space: 16px;
  --platform-focus: #2563eb;
}

.app-header .brand-platform {
  flex: 0 0 auto;
  width: 144px;
  height: 55px;
}

.brand-platform img {
  display: block;
  width: 144px;
  height: 55px;
  object-fit: contain;
}

.auth-body .brand-platform {
  background: #fff;
  border-radius: 6px;
}

.platform-footer {
  padding: 24px 16px;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.auth-body .platform-footer { color: #cbd5e1; }

.page-shell.platform-page { max-width: none; }

.platform-panel {
  margin: 16px 0;
  padding: var(--platform-space);
  border: 1px solid var(--panel-border);
  border-radius: var(--platform-radius);
  background: var(--panel);
}

.platform-panel h2 { margin: 0 0 16px; font-size: 18px; }

.platform-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
  margin: 0;
}

.platform-facts dt { color: var(--muted); font-size: 12px; }
.platform-facts dd { margin: 4px 0 0; font-weight: 600; }
.platform-source { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.platform-table-wrap { overflow-x: auto; margin: 16px calc(-1 * var(--platform-space)); }
.platform-table-wrap table { width: 100%; border-collapse: collapse; }
.platform-table-wrap th { background: #f8fafc; text-align: left; }
.platform-table-wrap th, .platform-table-wrap td { padding: 12px 16px; border-bottom: 1px solid var(--line); }
.platform-table-wrap td small { display: block; margin-top: 4px; color: var(--muted); }
.platform-table-wrap .platform-number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.platform-empty { padding: 20px; color: var(--muted); text-align: center; }
.platform-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.platform-timeline { padding-left: 20px; }
.platform-timeline li { margin: 12px 0; }
.platform-page :focus-visible, .brand-platform:focus-visible { outline: 2px solid var(--platform-focus); outline-offset: 3px; }

@media (max-width: 760px) {
  body:not(.auth-body) .app-header .header-right > a { display: none; }
  .app-header .brand-platform, .brand-platform img { width: 118px; height: 45px; }
  .platform-facts { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
  .platform-table-wrap table { min-width: 660px; }
}

.platform-app-header {
  display: flex;
  align-items: center;
  gap: 24px;
  min-width: 0;
  padding: max(4px, var(--safe-top, 0px)) 24px 4px;
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.platform-app-title { font-size: 18px; }
@media (max-width: 700px) {
  .platform-app-header { gap: 12px; padding-inline: 12px; }
  .platform-app-header .brand-platform img { width: 118px; height: 45px; }
  .platform-app-title { font-size: 16px; }
}

/* Shared entity controls also run in the standalone Communications shell. */
.platform-entity-popup.logistics-modal-backdrop {
  position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center;
  padding: 24px; background: rgb(15 23 42 / 42%);
}
.platform-entity-popup .logistics-modal {
  display: grid; grid-template-rows: auto minmax(0, 1fr);
  width: min(1120px, calc(100vw - 36px)); max-height: min(760px, calc(100dvh - 36px));
  overflow: hidden; border: 1px solid #cbd5e1; border-radius: 10px;
  background: #fff; box-shadow: 0 28px 70px rgb(15 23 42 / 28%);
}
.platform-entity-popup .logistics-modal header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #e2e8f0; }
.platform-entity-popup .logistics-modal h2 { margin: 0; color: #17243a; font-size: 18px; overflow-wrap: anywhere; }
.platform-entity-popup .logistics-modal header button { flex: 0 0 34px; width: 34px; height: 34px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #526582; font-size: 22px; cursor: pointer; }
.platform-entity-popup .logistics-modal-body { min-height: 0; overflow: auto; padding: 14px; }
.platform-entity-popup :focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
body.logistics-modal-open:has(.platform-entity-popup) { overflow: hidden; }
@media (max-width: 760px) {
  .platform-entity-popup.logistics-modal-backdrop { padding: 8px; }
  .platform-entity-popup .logistics-modal { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
}

/* Keep standalone scanners, drivers and Team on their own visual/state owners. */
.platform-shell:has(.ds-page) {
  --platform-radius: var(--ds-radius);
  --platform-focus: var(--ds-accent);
  --bg: var(--ds-bg);
  --text: var(--ds-ink);
  --muted: var(--ds-muted);
  --accent: var(--ds-accent);
  --accent-strong: #124fae;
  --panel-border: var(--ds-border);
  --line: var(--ds-line);
  --platform-accent: var(--accent);
  --platform-accent-soft: var(--ds-soft);
  --platform-muted: var(--muted);
  --platform-line: var(--line);
  --platform-surface-muted: #f7f9fc;
  --surface-alt: #f7f9fc;
  --border: var(--panel-border);
  font-size: 14px;
  line-height: 1.45;
}

.platform-shell:has(.ds-page) .app-header {
  border-bottom-color: var(--panel-border);
  box-shadow: 0 2px 8px rgb(23 36 58 / 4%);
}

.platform-shell:has(.ds-page) .top-nav :is(a, button).active,
.platform-shell:has(.ds-page) .top-nav :is(a, button):hover,
.platform-shell:has(.ds-page) .user-menu > button:hover {
  background: var(--platform-accent-soft);
  color: var(--accent-strong);
}

.platform-shell:has(.ds-page) .app-header :focus-visible {
  outline: 2px solid var(--platform-focus);
  outline-offset: 2px;
}

.platform-shell:has(.ds-page) .workspace-dock {
  background: #fff;
  border-top-color: var(--panel-border);
  box-shadow: 0 -2px 10px rgb(23 36 58 / 6%);
}
.platform-shell:has(.ds-page) .workspace-tab {
  background: #f7f9fc;
  border-color: var(--panel-border);
  color: var(--muted);
}
.platform-shell:has(.ds-page) .workspace-tab.is-active {
  background: var(--platform-accent-soft);
  border-color: #c9dcfa;
  color: var(--accent-strong);
  box-shadow: none;
}
.platform-shell:has(.ds-page) .workspace-tab.is-active::before { background: var(--accent); }
.platform-shell:has(.ds-page) .workspace-tab.is-pinned .workspace-tab-pin { color: var(--accent); }
.platform-shell:has(.ds-page) .workspace-more-button { color: var(--muted); border-color: var(--panel-border); background: #f7f9fc; }

.platform-page { min-width: 0; }
.platform-page .page-title { align-items: center; }
.platform-page .page-title > div { min-width: 0; }
.platform-page .page-title h1 { font-size: 28px; font-weight: 700; letter-spacing: -.025em; }
.platform-page .eyebrow { font-size: 12px; font-weight: 600; text-transform: none; }
.platform-page .page-title .platform-source { margin: 6px 0 0; font-size: 14px; }
.platform-page .platform-panel { box-shadow: 0 2px 6px rgb(23 36 58 / 3%); }
.platform-page .platform-panel h2 { font-size: 17px; line-height: 1.35; }
.platform-page .platform-panel > header { align-items: center; }
.platform-page .platform-panel > header h2 { margin-bottom: 0; }
.platform-page .platform-facts > div { min-width: 0; }
.platform-page .platform-facts dd { overflow-wrap: anywhere; }

.platform-shell:has(.ds-page) .platform-entity-popup .logistics-modal {
  border-color: var(--panel-border);
  border-radius: var(--platform-radius);
  box-shadow: 0 20px 64px rgb(23 36 58 / 22%);
}
.platform-shell:has(.ds-page) .platform-entity-popup .logistics-modal header {
  padding: 16px 20px;
  border-bottom-color: var(--line);
}
.platform-shell:has(.ds-page) .platform-entity-popup .logistics-modal-body { padding: 20px; }

@media (max-width: 760px) {
  .platform-page .page-title { flex-wrap: wrap; align-items: flex-start; gap: 12px; }
  .platform-page .page-title h1 { font-size: 25px; }
    .platform-shell:has(.ds-page) .platform-entity-popup .logistics-modal header,
  .platform-shell:has(.ds-page) .platform-entity-popup .logistics-modal-body { padding: 12px; }
}

.platform-page .procurement-planner { --planner-accent-soft: #edf4ff; }

.platform-app-switcher { flex: 0 0 auto; }
.app-header .platform-app-switcher > .brand-platform { width: 170px; height: 55px; padding: 0; display: flex; align-items: center; gap: 6px; border: 0; background: transparent; }
.platform-app-switcher > button > span { color: var(--ds-accent); font-size: 20px; }
.app-header .platform-app-menu { width: 300px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 100px); overflow-y: auto; z-index: 120; padding: 6px; }
.platform-app-item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; border-radius: var(--ds-radius); }
.platform-app-item > a { display: flex; align-items: center; gap: 10px; }
.platform-app-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 28px; height: 28px; border-radius: 6px; background: var(--ds-soft); color: #124fae; font-size: 12px; font-weight: 700; }
.platform-app-item > details { display: contents; }
.platform-app-item summary { display: block; grid-column: 2; padding: 12px; cursor: pointer; list-style: none; }
.platform-app-item summary::-webkit-details-marker { display: none; }
.platform-app-submenu { grid-column: 1 / -1; padding-left: 36px; border-top: 1px solid var(--ds-line); }
.platform-app-item details:not([open]) .platform-app-submenu { display: none; }
.app-header .platform-app-menu a, .mobile-header-menu-panel .platform-app-item a { padding: 8px 10px; color: var(--ds-ink); font-size: 14px; text-decoration: none; border-radius: var(--ds-radius); }
.app-header .platform-app-menu a:hover, .platform-app-item summary:hover { background: var(--ds-soft); }
.platform-app-menu :focus-visible { outline: 2px solid var(--ds-accent); outline-offset: -2px; }
.platform-app-tools > summary { padding: 10px; color: var(--ds-muted); font-size: 12px; cursor: pointer; }
.platform-app-tools > a { display: block; }
.app-header .header-right > a:is(:link,:visited) { text-decoration: none; }
@media (max-width: 760px) { .app-header .platform-app-switcher > .brand-platform { width: 142px; } }

.app-header .platform-app-switcher:not(.is-open) .platform-app-menu { display: none; }

.auth-body .breadcrumbs :is(a,span), .auth-body .breadcrumbs a:visited { color: #dce5f0; }
.auth-body .app-header { background: var(--ds-surface); color: var(--ds-ink); }

@media (max-width: 760px) {
  .auth-body .app-header { height: 72px; min-height: 72px; padding: 8px 10px; flex-direction: row; align-items: center; background: var(--ds-surface); }
  .auth-body .app-header :is(.header-left,.header-right) { flex-direction: row; align-items: center; gap: 6px; }
  .auth-body .app-header .header-left { flex: 0 0 auto; }
  .auth-body .app-header .header-right { min-width: 0; }
  .auth-body .app-header:has(.platform-app-switcher) .header-right > a { display: none; }
  .auth-body .app-header:has(.platform-app-switcher) :is(.top-nav,.data-freshness-indicator) { display: none; }
  .auth-body .auth-shell { padding-top: 112px; }
}

/* The catalog remains server-owned; its compact projection follows the active workplace. */
.platform-shell:not(.auth-body):not(.logistics-work-mode) .app-header {
  display: grid; grid-template-columns: minmax(150px,1fr) minmax(180px,620px) minmax(180px,1fr);
  grid-template-rows: 48px 32px; height: 80px; min-height: 0; padding: 0 20px; gap: 0 20px;
}
.platform-shell:not(.auth-body) .app-header .header-left { display: contents; }
.platform-shell:not(.auth-body) .app-header .top-nav { display: none !important; }
.platform-shell:not(.auth-body) .app-header .platform-app-switcher { grid-column: 1; grid-row: 1; }
.platform-shell:not(.auth-body) .app-header .platform-app-switcher > .brand-platform { width: 138px; height: 44px; }
.platform-shell:not(.auth-body) .app-header .brand-platform img { width: 112px; height: 43px; }
.platform-shell:not(.auth-body) .app-header .header-right { grid-column: 3; grid-row: 1; min-width: 0; max-width: 100%; justify-self: end; gap: 10px; }
.platform-shell:not(.auth-body) .app-header .user-menu { min-width: 0; }
.platform-shell:not(.auth-body) .app-header .header-right > a { display: none; }
.platform-shell:not(.auth-body) .app-header .user-menu > button { min-height: 32px; max-width: min(190px,100%); padding: 4px 10px; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.platform-header-search { grid-column: 2; grid-row: 1; display: flex; height: 32px; min-width: 0; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-soft); }
.platform-header-search input { width: 100%; min-width: 0; padding: 5px 10px; border: 0; background: transparent; font: inherit; font-size: 13px; color: var(--ds-ink); }
.platform-header-search button { flex: 0 0 32px; border: 0; background: transparent; color: var(--ds-muted); font-size: 22px; }
.platform-workspace-nav { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: stretch; min-width: 0; gap: 20px; overflow-x: auto; white-space: nowrap; border-top: 1px solid var(--ds-line); font-size: 13px; }
.platform-workspace-caption { align-self: center; color: var(--ds-muted); padding-right: 12px; border-right: 1px solid var(--ds-line); }
.platform-workspace-nav > a { display: flex; align-items: center; flex-shrink: 0; color: var(--ds-ink); text-decoration: none; border-bottom: 2px solid transparent; padding: 0 2px; }
.platform-workspace-nav > a.active { color: var(--ds-accent); border-bottom-color: var(--ds-accent); font-weight: 600; }
@media (max-width: 760px) {
  .platform-shell:not(.auth-body):not(.logistics-work-mode) .app-header { grid-template-columns: 138px minmax(0,1fr); grid-template-rows: 52px 44px; height: 96px; padding: 0 10px; gap: 0 8px; }
  .platform-header-search { display: none; }
  .platform-shell:not(.auth-body) .app-header .header-right { grid-column: 2; gap: 4px; }
  .platform-shell:not(.auth-body) .app-header .header-right > .platform-header-search-link { display: inline-flex; min-height: 44px; padding: 4px 8px; font-size: 13px; }
  .platform-shell:not(.auth-body) .app-header .user-menu > button { min-width: 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; font-size: 0; }
  .platform-workspace-nav { gap: 14px; }
  .platform-workspace-nav > a { min-height: 44px; }
}
.app-header .user-menu:not(.is-open) > .user-menu-panel { display: none; }

.platform-shell:has(.ds-page) { --bg: var(--ds-work-bg); }
.platform-shell .platform-workspace-nav { background: var(--ds-filter-tint); }
.platform-shell .platform-workspace-nav > a.active { background: var(--ds-selected); }
.platform-shell .platform-workspace-nav > a { font-weight: 400; }

.platform-shell.logistics-work-mode .app-header {
  display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 32px;
  height: 32px; min-height: 0; padding: 0 16px; gap: 0;
}
.platform-shell.logistics-work-mode .app-header :is(.header-left,.header-right,.platform-header-search) { display: none; }
.platform-shell.logistics-work-mode .platform-workspace-nav { grid-row: 1; }
@media (max-width: 760px) {
  .platform-shell.logistics-work-mode .app-header { grid-template-rows: 44px; height: 44px; padding: 0 10px; }
}
