/* UVEYO application shell and shared page components.
   One horizontal header on every page; the module launcher replaces the permanent
   sidebar. Page components below apply to every module page and window. */

/* ---------- Shell ---------- */
.sidebar,
.sidebar-backdrop,
.mobile-menu {
  display: none !important;
}
.workspace,
:root[data-sidebar-style='docked'] .workspace {
  margin-inline: 0 !important;
}
.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  min-height: 68px;
  padding-block: 10px;
  padding-inline: max(24px, calc((100% - 1560px) / 2 + 24px));
  background: color-mix(in srgb, var(--uv-surface) 92%, transparent);
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--uv-border);
}
.topbar-start {
  flex-shrink: 0;
  gap: 8px;
}
.topbar-actions {
  flex-shrink: 1;
  justify-content: flex-end;
  gap: 6px;
}
.topbar .topbar-module,
.topbar .topbar-divider {
  display: none;
}
.topbar .company-selector {
  flex-shrink: 0;
}
.topbar .company-selector select {
  max-width: 200px;
}
#main {
  max-width: 1560px;
  padding-block-start: 16px;
}
/* The content region takes focus after navigation; it is not a control. */
#main:focus {
  outline: none;
}
.workspace-status .current-date {
  display: none;
}
.workspace-status {
  margin-bottom: 10px;
}
.uv-topbar-brand {
  display: flex;
  align-items: center;
  padding: 0;
  margin-inline-end: 4px;
  border: 0;
  border-radius: 12px;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.uv-topbar-brand .brand {
  gap: 10px;
}
.uv-topbar-brand .brand-symbol {
  width: 38px;
  height: 38px;
  border-radius: 11px;
}
.uv-topbar-brand .brand-copy small {
  display: none;
}
body:has(.uv-home) .uv-home-button {
  display: none;
}

/* ---------- Module launcher ---------- */
.uv-launcher-button.uv-launcher-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  height: 34px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--uv-brand);
  color: #172033;
  font-weight: 700;
  font-size: var(--uv-text-sm);
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
}
.uv-launcher-button.uv-launcher-button:hover {
  background: var(--uv-brand-hover);
}
.uv-launcher-button .icon {
  width: 16px;
  height: 16px;
}
/* Anchored to the header, not the button, so the wide panel always fits on screen. */
.topbar .uv-launcher {
  position: static;
}
.uv-launcher .popover-content {
  top: 100%;
  inset-inline-start: max(16px, calc((100% - 1560px) / 2 + 24px));
  inset-inline-end: auto;
  width: min(960px, calc(100vw - 32px));
  max-height: min(76vh, 720px);
  overflow: auto;
}
.uv-launch-list {
  columns: 3 260px;
  column-gap: 20px;
}
.uv-launch-group {
  break-inside: avoid;
  padding-block: 6px;
}
.uv-launch-group + .uv-launch-group {
  border-top: 0;
}
.uv-launch-pinned {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0 0 10px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--uv-border);
}
.uv-launch-pinned b {
  margin-inline-end: 4px;
  color: var(--uv-text-2);
  font-size: var(--uv-text-xs);
}
.uv-launch-pinned button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--uv-border);
  border-radius: 999px;
  background: var(--uv-surface);
  color: var(--uv-text);
  font: inherit;
  font-size: var(--uv-text-xs);
  cursor: pointer;
}
.uv-launch-pinned button:hover {
  background: var(--accent-soft);
}
[data-launch-item][hidden] {
  display: none;
}

/* ---------- Page header and shared components ---------- */
/* Type scale; Arabic runs one step larger and with more leading. */
:root {
  --uv-gap: 20px;
  --uv-fs-title: 2rem;
  --uv-fs-h2: 1.35rem;
  --uv-fs-h3: 1.15rem;
  --uv-fs-metric: 1.85rem;
  --uv-fs-body: 1rem;
  --uv-fs-label: 0.96rem;
  --uv-fs-meta: 0.9rem;
  --uv-secondary: #475569;
}
#page-content {
  line-height: 1.5;
}
[dir='rtl'] {
  --uv-fs-body: 1.07rem;
  --uv-fs-label: 1.03rem;
  --uv-fs-meta: 0.97rem;
}
[dir='rtl'] #page-content {
  line-height: 1.6;
}
:root[data-theme='dark'] {
  --uv-secondary: var(--text-secondary);
}
#page-content .page-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px 32px;
  margin-block-end: var(--uv-gap);
}
#page-content .page-heading .breadcrumb {
  margin-block-end: 6px;
  font-size: var(--uv-fs-label);
}
#page-content .page-heading h1 {
  margin: 0 0 4px;
  color: var(--uv-text);
  font-size: var(--uv-fs-title);
  font-weight: 700;
  line-height: 1.25;
}
#page-content .page-heading p {
  margin: 0;
  max-width: 70ch;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-body);
}
#page-content .heading-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
#page-content .btn {
  min-height: 42px;
  padding-inline: 16px;
  border-radius: 12px;
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
#page-content .btn.primary {
  min-height: 46px;
  padding-inline: 20px;
  font-size: var(--uv-fs-body);
  font-weight: 700;
  box-shadow: 0 6px 16px color-mix(in srgb, var(--uv-brand) 28%, transparent);
}
#page-content .btn.primary:hover {
  background: var(--uv-brand-hover);
}
#page-content .cm-crumb-home {
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent-ink);
  font-weight: 600;
}
.cm-crumb-home {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.cm-crumb-home .icon {
  width: 16px;
  height: 16px;
}
#page-content:has(.cm-crumb-home) > .uv-breadcrumb {
  display: none;
}

/* KPI cards: list pages use one row of equal tiles. */
#page-content .inv-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 14px;
  margin-block-end: var(--uv-gap);
}
#page-content .inv-kpi {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: 'icon label' 'icon value' 'icon note';
  column-gap: 14px;
  row-gap: 2px;
  align-content: center;
  min-height: 96px;
  padding: 16px 18px;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
#page-content .inv-kpi-icon {
  grid-area: icon;
  align-self: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
}
#page-content .inv-kpi-icon .icon {
  width: 24px;
  height: 24px;
}
#page-content .inv-kpi-label {
  grid-area: label;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
#page-content .inv-kpi-value {
  grid-area: value;
  margin: 0;
  color: var(--uv-text);
  font-size: var(--uv-fs-h2);
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
#page-content .inv-kpi > small {
  grid-area: note;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
/* Landing page: four key metrics first, supporting figures in one quiet strip. */
#page-content .uv-kpi-main.inv-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-block-end: 14px;
}
#page-content .uv-kpi-main .inv-kpi {
  min-height: 118px;
}
#page-content .uv-kpi-main .inv-kpi-value {
  font-size: var(--uv-fs-metric);
}
#page-content .uv-kpi-strip.inv-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
#page-content .uv-kpi-strip .inv-kpi {
  grid-template-areas: 'icon label' 'icon value';
  min-height: 72px;
  padding: 12px 18px;
  border: 0;
  border-inline-start: 1px solid var(--uv-border);
  border-radius: 0;
  background: none;
  box-shadow: none;
}
#page-content .uv-kpi-strip .inv-kpi:first-child {
  border-inline-start: 0;
}
#page-content .uv-kpi-strip .inv-kpi-icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
}
#page-content .uv-kpi-strip .inv-kpi-icon .icon {
  width: 20px;
  height: 20px;
}
#page-content .uv-kpi-strip .inv-kpi-value {
  font-size: var(--uv-fs-h3);
}
#page-content .uv-kpi-strip .inv-kpi > small {
  display: none;
}

/* Page search sits on the same line as the first section heading. */
.uv-primary-cards {
  position: relative;
}
.uv-page-tools {
  position: absolute;
  inset-block-start: -6px;
  inset-inline-end: 0;
  width: min(420px, 46%);
}
.uv-page-search {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding-inline: 14px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
  background: var(--uv-surface);
  color: var(--uv-secondary);
}
.uv-page-search:focus-within {
  border-color: var(--uv-brand);
  box-shadow: var(--uv-focus);
}
.uv-page-search .icon {
  flex: none;
  width: 18px;
  height: 18px;
}
.uv-page-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: none;
  color: var(--uv-text);
  font: inherit;
  font-size: var(--uv-fs-label);
}
.uv-filter-empty {
  margin: 0 0 var(--uv-gap);
  color: var(--uv-secondary);
  font-size: var(--uv-fs-body);
}

/* Navigation cards: same anatomy and tones as the dashboard module cards. */
.uv-module-home .sh-section {
  margin: 0 0 var(--uv-gap);
}
.uv-module-home .sh-section > h2 {
  margin: 0 0 14px;
  color: var(--uv-text);
  font-size: var(--uv-fs-h2);
  font-weight: 700;
  letter-spacing: 0;
}
.uv-module-home .sh-section[hidden],
.uv-module-home .sh-card[hidden] {
  display: none;
}
.sh-card-arrow {
  display: none;
}
.uv-primary-cards .sh-cards {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}
.uv-primary-cards .sh-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 16px;
  min-height: 178px;
  padding: 22px;
  border: 1px solid color-mix(in srgb, var(--tone-ink) 12%, transparent);
  border-radius: var(--uv-radius-lg);
  background:
    radial-gradient(
      90% 80% at 100% 0%,
      color-mix(in srgb, var(--tone-tile) 70%, transparent),
      transparent 70%
    ),
    var(--tone-bg);
  box-shadow: var(--uv-shadow-1);
  transition:
    transform var(--uv-fast) var(--uv-ease),
    box-shadow var(--uv-fast) var(--uv-ease);
}
[dir='rtl'] .uv-primary-cards .sh-card {
  background:
    radial-gradient(
      90% 80% at 0% 0%,
      color-mix(in srgb, var(--tone-tile) 70%, transparent),
      transparent 70%
    ),
    var(--tone-bg);
}
.uv-primary-cards .sh-card:hover {
  border-color: color-mix(in srgb, var(--tone-ink) 12%, transparent);
  box-shadow: var(--uv-shadow-3);
  transform: translateY(-3px);
}
.uv-primary-cards .sh-card:focus-visible {
  outline: none;
  border-color: color-mix(in srgb, var(--tone-ink) 12%, transparent);
  box-shadow: var(--uv-focus);
  transform: none;
}
.uv-primary-cards .sh-card-icon {
  flex: none;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background: var(--uv-surface);
  color: var(--tone-ink);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--tone-ink) 16%, transparent);
}
.uv-primary-cards .sh-card-icon .icon {
  width: 30px;
  height: 30px;
  stroke-width: 1.7;
}
.uv-primary-cards .sh-card-text {
  gap: 6px;
}
.uv-primary-cards .sh-card-text strong {
  color: var(--uv-text);
  font-size: var(--uv-fs-h3);
  font-weight: 700;
}
.uv-primary-cards .sh-card-text small {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
  line-height: 1.5;
}
.uv-primary-cards .sh-card-arrow {
  position: absolute;
  inset-block-start: 20px;
  inset-inline-end: 20px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--uv-surface) 75%, transparent);
  color: var(--tone-ink);
}
.uv-primary-cards .sh-card-arrow .icon {
  width: 15px;
  height: 15px;
}
.uv-primary-cards .sh-card-count {
  position: absolute;
  inset-block-start: 20px;
  inset-inline-end: 58px;
  min-width: 32px;
  height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--uv-surface);
  color: var(--tone-ink);
  font-size: var(--uv-fs-label);
  font-weight: 700;
  line-height: 30px;
  text-align: center;
}
.uv-primary-cards .sh-card:nth-child(1) {
  --tone-bg: var(--uv-peach-bg);
  --tone-tile: var(--uv-peach-tile);
  --tone-ink: var(--uv-peach-ink);
}
.uv-primary-cards .sh-card:nth-child(2) {
  --tone-bg: var(--uv-sky-bg);
  --tone-tile: var(--uv-sky-tile);
  --tone-ink: var(--uv-sky-ink);
}
.uv-primary-cards .sh-card:nth-child(3) {
  --tone-bg: var(--uv-mint-bg);
  --tone-tile: var(--uv-mint-tile);
  --tone-ink: var(--uv-mint-ink);
}
.uv-primary-cards .sh-card:nth-child(4) {
  --tone-bg: var(--uv-lilac-bg);
  --tone-tile: var(--uv-lilac-tile);
  --tone-ink: var(--uv-lilac-ink);
}
.uv-primary-cards .sh-card:nth-child(5) {
  --tone-bg: var(--uv-amber-bg);
  --tone-tile: var(--uv-amber-tile);
  --tone-ink: var(--uv-amber-ink);
}
.uv-primary-cards .sh-card:nth-child(6) {
  --tone-bg: var(--uv-teal-bg);
  --tone-tile: var(--uv-teal-tile);
  --tone-ink: var(--uv-teal-ink);
}
.uv-primary-cards .sh-card:nth-child(7) {
  --tone-bg: var(--uv-rose-bg);
  --tone-tile: var(--uv-rose-tile);
  --tone-ink: var(--uv-rose-ink);
}
.uv-primary-cards .sh-card:nth-child(8) {
  --tone-bg: var(--uv-indigo-bg);
  --tone-tile: var(--uv-indigo-tile);
  --tone-ink: var(--uv-indigo-ink);
}
.uv-primary-cards .sh-card:nth-child(9) {
  --tone-bg: var(--uv-slate-bg);
  --tone-tile: var(--uv-slate-tile);
  --tone-ink: var(--uv-slate-ink);
}
.uv-primary-cards .sh-card:nth-child(10) {
  --tone-bg: var(--uv-violet-bg);
  --tone-tile: var(--uv-violet-tile);
  --tone-ink: var(--uv-violet-ink);
}

/* Secondary functions: grouped lists, titles only (the description stays as a tooltip). */
.uv-panels {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-block-end: var(--uv-gap);
}
.uv-panels .sh-section {
  margin: 0;
  padding: 16px 10px 10px;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
.uv-panels .sh-section > h2 {
  margin: 0 10px 8px;
  font-size: var(--uv-fs-h3);
}
.uv-panels .sh-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
}
.uv-panels .sh-card {
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 6px 10px;
  border: 0;
  border-radius: 12px;
  background: none;
}
.uv-panels .sh-card:hover,
.uv-panels .sh-card:focus-visible {
  background: var(--accent-soft);
  box-shadow: none;
  transform: none;
}
.uv-panels .sh-card:focus-visible {
  box-shadow: var(--uv-focus);
}
.uv-panels .sh-card-icon {
  flex: 0 0 36px;
  height: 36px;
  border-radius: 11px;
}
.uv-panels .sh-card-icon .icon {
  width: 19px;
  height: 19px;
}
.uv-panels .sh-card-text strong {
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
.uv-panels .sh-card-text small {
  display: none;
}
.uv-panels .sh-card-count {
  font-size: var(--uv-fs-meta);
  font-weight: 700;
}
.uv-panels .sh-card::after {
  content: '›';
  color: var(--uv-secondary);
  font-size: 1.3rem;
  line-height: 1;
}
[dir='rtl'] .uv-panels .sh-card::after {
  content: '‹';
}

/* Data panel, filters and tables */
.uv-data-panel {
  margin-block-end: var(--uv-gap);
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
  overflow: hidden;
}
.uv-data-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 0;
}
.uv-data-head h2 {
  margin: 0;
  color: var(--uv-text);
  font-size: var(--uv-fs-h2);
  font-weight: 700;
}
.uv-table-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
}
.uv-table-tools .uv-page-search {
  flex: 1 1 280px;
}
.uv-table-tools select,
#page-content .cm-toolbar select,
#page-content .cm-toolbar input[type='date'],
#page-content .cm-search {
  min-height: 42px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
  background-color: var(--uv-surface);
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
}
.uv-table-tools select,
#page-content .cm-toolbar select,
#page-content .cm-toolbar input[type='date'] {
  padding-inline: 12px;
}
.uv-table-tools select:focus,
#page-content .cm-toolbar select:focus,
#page-content .cm-toolbar input[type='date']:focus,
#page-content .cm-search:focus-within {
  border-color: var(--uv-brand);
  box-shadow: var(--uv-focus);
  outline: none;
}
.uv-table-count {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
  white-space: nowrap;
}
.uv-table-region {
  max-height: 500px;
  overflow: auto;
}
.uv-table-region thead th {
  position: sticky;
  top: 0;
  z-index: 1;
}
.uv-table-region tr[hidden] {
  display: none;
}
.uv-table-empty {
  margin: 0;
  padding: 28px 20px;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-body);
  text-align: center;
}
#page-content .cm-workspace {
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  box-shadow: var(--uv-shadow-1);
}
#page-content .cm-toolbar {
  gap: 10px;
  padding: 14px 20px;
}
#page-content .sh-date {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
}
#page-content .cm-table {
  width: 100%;
}
#page-content .cm-table thead th {
  padding: 12px 20px;
  background: var(--uv-bg);
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta) !important;
  font-weight: 700;
  white-space: nowrap;
}
#page-content .cm-table tbody td {
  height: 56px;
  padding: 8px 20px;
  border-top: 1px solid var(--uv-border);
  color: var(--uv-text);
  font-size: var(--uv-fs-body) !important;
}
#page-content .cm-table td.numeric {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
#page-content .cm-table tbody tr:hover {
  background: color-mix(in srgb, var(--accent-soft) 45%, transparent);
}
#page-content .cm-table .link.strong code {
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent-ink);
  font-size: var(--uv-fs-label);
  font-weight: 700;
}
#page-content .cm-table .badge {
  padding: 4px 10px;
  border-radius: 999px;
  font-size: var(--uv-fs-meta) !important;
  font-weight: 600;
}
#page-content .sh-row-actions {
  white-space: nowrap;
}
#page-content .sh-row-actions .icon-button {
  width: 36px;
  height: 36px;
  margin-inline-end: 4px;
  border: 1px solid var(--uv-border);
  border-radius: 10px;
  background: var(--uv-surface);
}
#page-content .sh-row-actions .icon-button:hover {
  border-color: color-mix(in srgb, var(--uv-brand) 45%, var(--uv-border));
  background: var(--accent-soft);
}

/* ---------- Application-wide components ---------- */
.panel,
.cm-root .panel {
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
#page-content h2 {
  color: var(--uv-text);
}
.panel-head h2,
.widget-heading h2 {
  font-size: var(--uv-fs-h3);
  font-weight: 700;
}
.panel-head p,
.widget-heading p,
.module-info p {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.breadcrumb {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
}
/* Module section pages: navigation cards with the dashboard anatomy. */
.hub-heading {
  margin-block-end: var(--uv-gap);
}
#page-content .hub-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 150px;
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--tone-ink, var(--uv-brand)) 12%, transparent);
  border-radius: var(--uv-radius-lg);
  background: var(--tone-bg, var(--uv-surface));
  box-shadow: var(--uv-shadow-1);
  text-decoration: none;
  transition:
    transform var(--uv-fast) var(--uv-ease),
    box-shadow var(--uv-fast) var(--uv-ease);
}
#page-content .hub-card:hover {
  box-shadow: var(--uv-shadow-3);
  transform: translateY(-3px);
}
#page-content .hub-card:focus-visible {
  outline: none;
  box-shadow: var(--uv-focus);
}
#page-content .hub-card-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: var(--uv-surface);
  color: var(--tone-ink, var(--accent-ink));
  box-shadow: 0 6px 16px color-mix(in srgb, var(--tone-ink, var(--uv-brand)) 16%, transparent);
}
#page-content .hub-card-icon .icon {
  width: 27px;
  height: 27px;
}
#page-content .hub-card-copy strong {
  color: var(--uv-text);
  font-size: var(--uv-fs-h3);
  font-weight: 700;
}
#page-content .hub-card-copy small {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
#page-content .hub-card-open {
  position: absolute;
  inset-block-start: 18px;
  inset-inline-end: 18px;
}
.hub-card:nth-child(10n + 1) {
  --tone-bg: var(--uv-peach-bg);
  --tone-ink: var(--uv-peach-ink);
}
.hub-card:nth-child(10n + 2) {
  --tone-bg: var(--uv-sky-bg);
  --tone-ink: var(--uv-sky-ink);
}
.hub-card:nth-child(10n + 3) {
  --tone-bg: var(--uv-mint-bg);
  --tone-ink: var(--uv-mint-ink);
}
.hub-card:nth-child(10n + 4) {
  --tone-bg: var(--uv-lilac-bg);
  --tone-ink: var(--uv-lilac-ink);
}
.hub-card:nth-child(10n + 5) {
  --tone-bg: var(--uv-amber-bg);
  --tone-ink: var(--uv-amber-ink);
}
.hub-card:nth-child(10n + 6) {
  --tone-bg: var(--uv-teal-bg);
  --tone-ink: var(--uv-teal-ink);
}
.hub-card:nth-child(10n + 7) {
  --tone-bg: var(--uv-rose-bg);
  --tone-ink: var(--uv-rose-ink);
}
.hub-card:nth-child(10n + 8) {
  --tone-bg: var(--uv-indigo-bg);
  --tone-ink: var(--uv-indigo-ink);
}
.hub-card:nth-child(10n + 9) {
  --tone-bg: var(--uv-slate-bg);
  --tone-ink: var(--uv-slate-ink);
}
.hub-card:nth-child(10n) {
  --tone-bg: var(--uv-violet-bg);
  --tone-ink: var(--uv-violet-ink);
}
/* Shared data tables, on screen only; printed documents keep their own sizes. */
@media screen {
  :is(#page-content, dialog) thead th {
    background: var(--uv-bg);
    color: var(--uv-secondary);
    font-size: var(--uv-fs-meta) !important;
    font-weight: 700;
  }
  :is(#page-content, dialog) tbody td {
    color: var(--uv-text);
    font-size: var(--uv-fs-body) !important;
  }
  :is(#page-content, dialog) .badge {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: var(--uv-fs-meta) !important;
    font-weight: 600;
  }
  .table-pagination {
    font-size: var(--uv-fs-meta) !important;
  }
  :is(#page-content, dialog) tbody tr:hover {
    background: color-mix(in srgb, var(--accent-soft) 45%, transparent);
  }
}
/* Form controls in pages and windows */
:is(#page-content, dialog)
  :is(
    input:not([type='checkbox'], [type='radio'], [type='file'], [type='color'], [type='range']),
    select
  ) {
  min-height: 42px;
  border: 1px solid var(--uv-border);
  border-radius: 10px;
  background-color: var(--uv-surface);
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
}
:is(#page-content, dialog) textarea {
  border: 1px solid var(--uv-border);
  border-radius: 10px;
  background-color: var(--uv-surface);
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
}
:is(#page-content, dialog) td :is(input, select) {
  min-height: 36px;
}
:is(#page-content, dialog)
  :is(
    input:not([type='checkbox'], [type='radio'], [type='file'], [type='color'], [type='range']),
    select,
    textarea
  ):focus {
  border-color: var(--uv-brand);
  box-shadow: var(--uv-focus);
  outline: none;
}
/* Search boxes wrap their own borderless input. */
:is(#page-content, dialog)
  :is(.uv-page-search, .uv-launch-search, .cm-search, .table-search, .search-input)
  input {
  min-height: 0;
  border: 0;
  background: none;
  box-shadow: none;
}
/* The density and filter selects sit inside a box that already draws the border. */
:is(#page-content, dialog) .select-wrap select {
  min-height: 0;
  border: 0;
  background-color: transparent;
}
#page-content .select-wrap {
  padding-block: 4px;
}
/* A second line in a cell sits under the first, not against it. */
#page-content td > strong + small.cell-main {
  display: block;
  margin-top: 2px;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
#page-content td.cell-wrap {
  min-width: 280px;
  white-space: normal;
  overflow-wrap: anywhere;
}
:is(.field, .cm-field) > :is(label, span) {
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
:is(.field, .cm-field) small {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.form-error {
  border-radius: 10px;
  font-size: var(--uv-fs-label);
}
/* Windows */
dialog#dialog,
dialog.detail-drawer,
dialog {
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-3);
  color: var(--uv-text);
}
dialog::backdrop {
  background: color-mix(in srgb, #172033 45%, transparent);
}
.dialog-head {
  align-items: flex-start;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--uv-border);
  background: var(--uv-surface);
}
.dialog-head h2 {
  margin: 0;
  color: var(--uv-text);
  font-size: var(--uv-fs-h2);
  font-weight: 700;
}
.dialog-head p {
  margin: 4px 0 0;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
}
.dialog-body {
  padding: 20px 24px;
  font-size: var(--uv-fs-body);
}
.dialog-footer {
  gap: 8px;
  padding: 14px 24px;
  border-top: 1px solid var(--uv-border);
  background: var(--uv-surface);
}
dialog .btn {
  min-height: 42px;
  padding-inline: 16px;
  border-radius: 12px;
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
dialog .btn.primary {
  font-weight: 700;
}
.definition-list dt {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.definition-list dd {
  color: var(--uv-text);
  font-size: var(--uv-fs-body);
}
/* Status, notifications and empty states */
#toast:not(:empty) {
  border-radius: 14px;
  box-shadow: var(--uv-shadow-3);
  font-size: var(--uv-fs-label);
}
.empty-state h3,
.empty h3 {
  color: var(--uv-text);
  font-size: var(--uv-fs-h3);
}
.empty-state p,
.empty p {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
}
.popover-content {
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-md);
  box-shadow: var(--uv-shadow-3);
}
#page-content [role='tablist'],
#page-content .sh-tabs,
#page-content .cm-tabs {
  gap: 4px;
}
#page-content [role='tab'] {
  min-height: 40px;
  padding-inline: 14px;
  border-radius: 10px;
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
#page-content [role='tab'][aria-selected='true'] {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
/* Compact buttons inside table rows keep rows readable. */
#page-content td .btn {
  min-height: 34px;
  padding-inline: 10px;
  font-size: var(--uv-fs-meta);
}

/* ---------- Legacy page parts mapped onto the design system ---------- */
/* Controls never push a page wider than the screen. */
#page-content :is(select, input, textarea) {
  max-width: 100%;
}
#page-content label:has(> select) {
  min-width: 0;
  max-width: 100%;
}
/* Page-level sticky bars sit below the sticky header. */
html {
  scroll-padding-top: 84px;
}
#page-content :is(.cm-sticky, .mfg-sticky) {
  inset-block-start: 68px;
}
#page-content :is(.cm-editor-side, .mfg-editor-side) {
  inset-block-start: 164px;
}
:root {
  --uv-text-xs: var(--uv-fs-meta);
  --uv-text-sm: var(--uv-fs-label);
  --uv-text-md: var(--uv-fs-body);
  --uv-text-lg: var(--uv-fs-h3);
  --uv-text-xl: var(--uv-fs-h2);
}
/* Readable minimum for secondary text across modules. */
#page-content
  :is(
    small,
    time,
    dt,
    dd,
    .sku,
    .chip,
    .hub-card-count,
    .hub-bar span,
    .hub-bar b,
    .inv-category,
    .inv-count,
    .inv-filter span,
    .date-filter span,
    .ai-switch span,
    .valuation-metric span,
    .personalization-control span,
    .mfg-pager span,
    .hr-tile b,
    .hr-nav-home span,
    .theme-caption b,
    .segmented button,
    .notice p,
    .cx-brand span,
    .inv-op span,
    .workspace-footer,
    .workspace-footer span
  ) {
  font-size: var(--uv-fs-meta);
}
#page-content :is(td, button, label, article, section > div) > p,
#page-content :is(td, th) code,
#page-content .link code {
  font-size: var(--uv-fs-meta);
}
#page-content .uv-module-copy small,
#page-content .uv-kpi-support {
  font-size: var(--uv-fs-meta);
}
.hub-section {
  margin-block: var(--uv-gap);
}
.hub-section-heading h2 {
  font-size: var(--uv-fs-h2);
  font-weight: 700;
}
.hub-section-heading > span {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
#page-content .hub-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 14px;
}
#page-content .hub-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 104px;
  padding-inline-end: 64px;
}
#page-content .hub-card-icon {
  flex: none;
}
#page-content .hub-card-copy {
  min-width: 0;
}
#page-content .hub-card-count {
  position: absolute;
  inset-block-end: 12px;
  inset-inline-end: 18px;
  font-weight: 700;
  color: var(--tone-ink);
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 14px;
  margin-block-end: var(--uv-gap);
}
.stat-card {
  padding: 16px 18px;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
#page-content .stat-top span:first-child {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
.stat-value {
  color: var(--uv-text);
  font-size: var(--uv-fs-metric);
  font-weight: 700;
}
#page-content .quality-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
  gap: 14px;
  margin-block-end: var(--uv-gap);
}
#page-content .quality-kpis article {
  padding: 14px 18px;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
#page-content .quality-kpis article span {
  display: block;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
#page-content .quality-kpis article strong {
  color: var(--uv-text);
  font-size: var(--uv-fs-h2);
  font-weight: 700;
}
#page-content .inv-kpis:has(> :nth-child(7)) {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Remaining small legacy text */
#page-content .inv-filter {
  flex: 1 1 140px;
  min-inline-size: 0;
}
#page-content .inv-filter select {
  width: 100%;
}
#page-content .page-heading {
  flex-wrap: wrap;
}
#page-content .page-heading > div:first-child {
  min-width: 0;
}
#page-content .heading-actions {
  flex-wrap: wrap;
  max-width: 100%;
}
#page-content .hub-section-heading h2 {
  font-size: var(--uv-fs-h2);
}
#page-content .hub-section-heading > span,
#page-content .cm-hint,
#page-content .eyebrow,
#page-content .studio-section-title span,
#page-content .personal-note p,
#page-content .personal-empty,
#page-content .company-settings summary,
#page-content .hub-empty strong,
#page-content .quality-tabs a,
#page-content .quality-field > span,
#page-content .quality-badge,
#page-content .quality-table-tools span,
#page-content .quality-columns summary,
#page-content .hub-empty p,
#page-content div > p {
  font-size: var(--uv-fs-meta);
}
#page-content .page-heading p,
#page-content .uv-welcome p {
  font-size: var(--uv-fs-body);
}
@media screen {
  #page-content .sku,
  #page-content .document-number,
  #page-content .cell-main small {
    font-size: var(--uv-fs-meta) !important;
  }
}
/* ---------- KAIRO workspace ---------- */
#ai-app:has(.kr-root) {
  display: block;
}
[data-kr-stop][hidden] {
  display: none;
}
.kr-root {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  height: calc(100dvh - 190px);
  min-height: 520px;
}
.kr-head .breadcrumb {
  margin-block-end: 4px;
}
.kr-head-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.kr-head-row h1 {
  margin: 0;
  color: var(--uv-text);
  font-size: var(--uv-fs-h2);
  font-weight: 700;
}
.kr-head-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-inline-start: auto;
}
.kr-shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
}
.kr-root.hide-history .kr-shell {
  grid-template-columns: minmax(0, 1fr);
}
.kr-root.hide-history .kr-history {
  display: none;
}
.kr-root.show-context .kr-shell {
  grid-template-columns: 280px minmax(0, 1fr) 290px;
}
.kr-root.show-context.hide-history .kr-shell {
  grid-template-columns: minmax(0, 1fr) 290px;
}
.kr-context {
  display: none;
}
.kr-root.show-context .kr-context {
  display: block;
}
.kr-history,
.kr-context,
.kr-main {
  min-height: 0;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-1);
}
.kr-history {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
}
.kr-new {
  justify-content: center;
}
.kr-threads {
  flex: 1;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}
.kr-thread {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--uv-text);
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.kr-thread strong {
  overflow: hidden;
  font-size: var(--uv-fs-label);
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.kr-thread small {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.kr-thread:hover,
.is-active > .kr-thread {
  background: var(--accent-soft);
}
.kr-main {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}
.kr-log {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px;
  overflow: auto;
}
.kr-msg {
  display: flex;
  gap: 10px;
  max-width: 100%;
}
.kr-msg.is-user {
  justify-content: flex-end;
}
.kr-msg.is-user .kr-bubble {
  max-width: min(720px, 85%);
  background: var(--accent-soft);
  border-color: transparent;
}
.kr-avatar {
  display: grid;
  flex: none;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: var(--uv-violet-bg);
  color: var(--uv-violet-ink);
}
.kr-avatar.is-large {
  width: 58px;
  height: 58px;
  border-radius: 18px;
}
.kr-avatar.is-large .icon {
  width: 30px;
  height: 30px;
}
.kr-bubble {
  display: grid;
  gap: 12px;
  min-width: 0;
  flex: 1;
  padding: 14px 16px;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-md);
  color: var(--uv-text);
  font-size: var(--uv-fs-body);
}
.kr-msg.is-user .kr-bubble {
  flex: 0 1 auto;
}
.kr-bubble small {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.kr-text p {
  margin: 0 0 8px;
}
.kr-text p:last-child {
  margin: 0;
}
.kr-welcome {
  display: grid;
  gap: 10px;
  justify-items: center;
  margin: auto;
  max-width: 760px;
  text-align: center;
}
.kr-welcome h2 {
  margin: 0;
  font-size: var(--uv-fs-title);
}
.kr-welcome p {
  margin: 0;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-body);
}
.kr-starters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 10px;
  width: 100%;
  margin-block-start: 10px;
}
.kr-starter {
  padding: 14px;
  border: 1px solid var(--uv-border);
  border-radius: 14px;
  background: var(--uv-surface);
  color: var(--uv-text);
  font: inherit;
  font-size: var(--uv-fs-label);
  text-align: start;
  cursor: pointer;
}
.kr-starter:hover {
  border-color: color-mix(in srgb, var(--uv-brand) 45%, var(--uv-border));
  background: var(--accent-soft);
}
.kr-thinking {
  margin: 0;
  color: var(--uv-secondary);
}
.kr-activity summary {
  cursor: pointer;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
.kr-activity .icon {
  width: 16px;
  height: 16px;
}
.kr-activity ul,
.kr-live-steps {
  display: grid;
  gap: 6px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.kr-activity li,
.kr-live-steps li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: var(--uv-fs-label);
}
.kr-step-error {
  flex-basis: 100%;
  color: var(--uv-error-ink) !important;
}
.kr-result {
  display: grid;
  gap: 10px;
  padding-block-start: 10px;
  border-top: 1px solid var(--uv-border);
}
.kr-summary {
  margin: 0;
  font-weight: 600;
}
.kr-result h4 {
  margin: 4px 0 0;
  font-size: var(--uv-fs-label);
}
.kr-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
  gap: 10px;
}
.kr-metrics > div {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--uv-bg);
}
.kr-metrics strong {
  font-size: var(--uv-fs-h3);
  font-weight: 700;
}
.kr-findings {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.kr-chart {
  margin: 0;
}
.kr-chart figcaption {
  margin-block-end: 8px;
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
.kr-bars {
  display: flex;
  align-items: stretch;
  gap: 12px;
  height: 170px;
}
.kr-bar {
  display: grid;
  flex: 1;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 4px;
  max-width: 160px;
  text-align: center;
}
.kr-bar-value,
.kr-bar-label {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.kr-bar-fill {
  align-self: end;
  width: 100%;
  min-height: 2px;
  border-radius: 8px 8px 2px 2px;
  background: var(--uv-brand);
}
.kr-sort {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.kr-draft {
  margin: 0;
  padding: 12px;
  border-radius: 10px;
  background: var(--uv-bg);
  font: inherit;
  white-space: pre-wrap;
}
.kr-links,
.kr-meta {
  margin: 0;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.kr-approval {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--uv-warning) 40%, var(--uv-border));
  border-radius: 12px;
  background: color-mix(in srgb, var(--uv-warning) 8%, var(--uv-surface));
}
.kr-approval > div:first-child {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.kr-approval-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.kr-followups {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.kr-msg-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.kr-tool {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--uv-secondary);
  cursor: pointer;
}
.kr-tool:hover {
  background: var(--accent-soft);
}
.kr-tool .icon {
  width: 18px;
  height: 18px;
}
.kr-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--uv-error) 10%, var(--uv-surface));
  color: var(--uv-error-ink);
}
.kr-composer {
  display: grid;
  gap: 6px;
  padding: 12px;
  border-top: 1px solid var(--uv-border);
}
#page-content .kr-composer textarea {
  width: 100%;
  min-height: 60px;
  max-height: 180px;
  padding: 10px 12px;
  resize: vertical;
}
.kr-composer-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.kr-composer-row small {
  flex: 1;
  min-width: 0;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.kr-files:empty {
  display: none;
}
.kr-readonly {
  padding: 12px 16px;
}
.kr-context {
  display: none;
  padding: 14px;
  overflow: auto;
}
.kr-context h3 {
  margin: 0 0 8px;
  font-size: var(--uv-fs-h3);
}
.kr-context dl {
  margin: 0 0 12px;
}
.kr-context dt {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.kr-context dd {
  margin: 0 0 8px;
  font-size: var(--uv-fs-label);
}
.kr-context .chip {
  margin: 2px;
}
@media (max-width: 1100px) {
  .kr-root.show-context .kr-shell,
  .kr-root.show-context.hide-history .kr-shell {
    grid-template-columns: minmax(0, 1fr);
  }
  .kr-root.show-context .kr-history {
    display: none;
  }
}
@media (max-width: 899px) {
  .kr-root {
    height: auto;
  }
  .kr-shell {
    grid-template-columns: minmax(0, 1fr);
  }
  .kr-history {
    max-height: 260px;
  }
  .kr-log {
    max-height: 62dvh;
    padding: 12px;
  }
  .kr-avatar:not(.is-large) {
    display: none;
  }
  .kr-head-actions .btn span,
  .kr-composer-row small {
    display: none;
  }
  .kr-composer-row .btn.primary {
    margin-inline-start: auto;
  }
}

/* ---------- Searchable selector ---------- */
.uv-ss-host {
  position: relative;
}
select.uv-ss-native {
  position: absolute;
  inset-inline-start: 0;
  bottom: 0;
  width: 100%;
  height: 42px;
  opacity: 0;
  pointer-events: none;
}
.uv-ss {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  padding-inline: 12px;
  border: 1px solid var(--uv-border);
  border-radius: 10px;
  background: var(--uv-surface);
  color: var(--uv-text);
  font: inherit;
  font-size: var(--uv-fs-label);
  text-align: start;
  cursor: pointer;
}
td .uv-ss {
  min-height: 36px;
}
.uv-ss:focus-visible,
.uv-ss[aria-expanded='true'] {
  border-color: var(--uv-brand);
  box-shadow: var(--uv-focus);
  outline: none;
}
.uv-ss:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.uv-ss.is-empty .uv-ss-label {
  color: var(--uv-secondary);
}
.uv-ss-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.uv-ss .icon {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--uv-secondary);
}
.uv-ss-popup {
  position: fixed;
  z-index: 1000;
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-3);
}
.uv-ss-search {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-inline: 10px;
  border: 1px solid var(--uv-border);
  border-radius: 8px;
  color: var(--uv-secondary);
}
.uv-ss-search .icon {
  flex: none;
  width: 16px;
  height: 16px;
}
.uv-ss-popup input {
  flex: 1;
  min-width: 0;
  min-height: 36px;
  border: 0;
  outline: 0;
  background: none;
  color: var(--uv-text);
  font: inherit;
  font-size: var(--uv-fs-label);
}
.uv-ss-popup ul {
  max-height: 260px;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}
.uv-ss-popup li {
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
  cursor: pointer;
}
.uv-ss-popup li.is-active,
.uv-ss-popup li:hover {
  background: var(--accent-soft);
}
.uv-ss-popup li[aria-selected='true'] {
  font-weight: 700;
}
.uv-ss-popup li.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.uv-ss-note {
  margin: 0;
  padding: 4px 10px;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
/* ---------- Table tools ---------- */
.uv-tt-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
}
.uv-tt-search {
  flex: 1 1 240px;
}
.uv-tt-count {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
  white-space: nowrap;
}
.uv-tt-columns {
  position: relative;
}
.uv-tt-columns summary {
  list-style: none;
  cursor: pointer;
}
.uv-tt-columns > div {
  position: absolute;
  z-index: 5;
  inset-inline-start: 0;
  display: grid;
  gap: 6px;
  min-width: 220px;
  max-height: 300px;
  padding: 10px;
  overflow: auto;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
  background: var(--uv-surface);
  box-shadow: var(--uv-shadow-3);
  font-size: var(--uv-fs-label);
}
.uv-tt-columns label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.uv-tt-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 16px;
  font-size: var(--uv-fs-meta);
}
.uv-tt-pager[hidden],
.uv-tt-filter-row[hidden],
tr[hidden],
td[hidden],
th[hidden] {
  display: none;
}
.uv-tt-filter-row input {
  width: 100%;
  min-width: 80px;
  min-height: 32px !important;
}
th.uv-tt-sortable {
  position: relative;
  cursor: pointer;
  user-select: none;
}
th.uv-tt-sortable[aria-sort='ascending']::after {
  content: ' ▲';
  font-size: 0.7em;
}
th.uv-tt-sortable[aria-sort='descending']::after {
  content: ' ▼';
  font-size: 0.7em;
}
.uv-tt-resize {
  position: absolute;
  inset-block: 0;
  inset-inline-end: 0;
  width: 6px;
  cursor: col-resize;
}
.uv-tt-resize:hover {
  background: color-mix(in srgb, var(--uv-brand) 35%, transparent);
}

/* Selectors in toolbars keep toolbar proportions. */
:is(.uv-table-tools, .cm-toolbar, .sh-filters, .uv-tt-bar) > .uv-ss {
  flex: 0 1 220px;
  width: auto;
  min-width: 150px;
}
.uv-tt-search[hidden] {
  display: none;
}

/* The team panel and results in the AI workspace */
.kr-agent {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--uv-fs-meta);
  font-weight: 600;
}
.kr-agent-dot {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--ai-color, #64748b);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
}
.kr-progress {
  margin-block-end: 10px;
}
.kr-progress-track {
  display: block;
  height: 6px;
  margin-block-start: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--uv-bg);
}
.kr-progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--uv-brand);
  transition: width 0.2s ease;
}
.kr-agents-now {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block-end: 10px;
}
.kr-timeline {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}
.kr-timeline > li {
  padding: 10px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
}
.kr-timeline > li[data-status='running'] {
  border-color: var(--uv-brand);
}
.kr-timeline p {
  margin: 6px 0 2px;
  font-size: var(--uv-fs-label);
}
.kr-timeline small {
  display: block;
  color: var(--uv-secondary);
}
.kr-task-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.kr-task-tools {
  display: grid;
  gap: 4px;
  margin: 6px 0;
  padding: 0;
  font-size: var(--uv-fs-meta);
  list-style: none;
}
.kr-team-result > div,
.kr-team-result > .kr-metrics {
  margin-block: 12px;
}
.kr-conflicts {
  padding: 12px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
  background: var(--uv-bg);
}
.kr-conflicts h4 {
  margin: 0 0 4px;
}
.kr-task-card {
  margin-block: 8px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
}
.kr-task-card > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
}
.kr-task-card > summary > span:nth-child(2) {
  flex: 1 1 160px;
}
.kr-task-card > :not(summary) {
  margin-inline: 12px;
}
.kr-narrative {
  color: var(--uv-text);
}
.ai-tool-switches {
  display: grid;
  gap: 6px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
  padding: 10px 12px;
}
.ai-tool-switches label,
[data-ai-settings] > .db-check {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}
.ai-tool-switches input[type='checkbox'],
[data-ai-settings] > .db-check input[type='checkbox'] {
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0;
}
.kr-context .ai-task-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.kr-context .ai-task-form > input {
  flex: 1 1 100%;
  min-width: 0;
}
.kr-report-dialog {
  width: min(960px, calc(100vw - 32px));
  height: min(86vh, 900px);
  padding: 0;
  border: 0;
  border-radius: var(--uv-radius-lg);
}
.kr-report-dialog[open] {
  display: flex;
  flex-direction: column;
}
.kr-report-dialog > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
}
.kr-report-page {
  flex: 1;
  padding: 8px 24px 24px;
  overflow: auto;
}
.kr-report-page > .kr-bubble {
  max-width: none;
  border: 0;
  box-shadow: none;
}

/* ---------- Responsive ---------- */
@media (max-width: 1500px) {
  .uv-fy span,
  .uv-date-text,
  .topbar .profile-copy {
    display: none;
  }
  .uv-fy {
    padding-inline: 8px;
  }
  .topbar .workspace-search {
    min-width: 150px;
  }
  .topbar .workspace-search kbd {
    display: none;
  }
}
@media (max-width: 1280px) {
  .uv-panels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .topbar .workspace-search {
    min-width: 34px;
    width: 34px;
    padding: 0;
    justify-content: center;
  }
  .topbar .workspace-search > :not(.icon) {
    display: none;
  }
  .uv-kairo span {
    display: none;
  }
}
@media (max-width: 1100px) {
  #page-content .inv-kpis:has(> :nth-child(7)),
  #page-content .uv-kpi-main.inv-kpis,
  #page-content .uv-kpi-strip.inv-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #page-content .uv-kpi-strip .inv-kpi:nth-child(odd) {
    border-inline-start: 0;
  }
  .uv-primary-cards .sh-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 1024px) {
  .uv-topbar-brand .brand-copy,
  .uv-launcher-button span {
    display: none;
  }
  .uv-launcher-button.uv-launcher-button {
    width: 34px;
    padding: 0;
    justify-content: center;
  }
  .topbar {
    padding-inline: 16px;
  }
}
@media (max-width: 860px) {
  #page-content :is(.cm-sticky, .mfg-sticky) {
    inset-block-start: 0;
  }
  #page-content :is(.cm-editor-side, .mfg-editor-side) {
    inset-block-start: 96px;
  }
  /* Two header rows keep every tool available on tablets and phones. */
  .topbar {
    position: relative;
    flex-wrap: wrap;
    padding-inline: 12px;
    gap: 8px;
  }
  .topbar-start,
  .topbar-actions {
    width: 100%;
  }
  .topbar-start {
    flex-shrink: 1;
  }
  .topbar-actions {
    justify-content: space-between;
    gap: 2px;
  }
  .topbar .company-selector {
    flex: 1;
    min-width: 0;
  }
  .topbar .company-selector select {
    width: 100%;
    max-width: none;
  }
  .topbar .icon-button {
    width: 34px;
    flex: none;
  }
  .topbar .profile-summary > .icon {
    display: none;
  }
  .topbar-actions > .topbar-divider {
    display: none;
  }
}
@media (max-width: 760px) {
  .uv-page-tools {
    position: static;
    width: 100%;
    margin-block-end: 14px;
  }
  .uv-panels {
    grid-template-columns: 1fr;
  }
  :root {
    --uv-fs-title: 1.7rem;
    --uv-fs-metric: 1.45rem;
  }
  .uv-primary-cards .sh-cards {
    gap: 12px;
  }
  .uv-primary-cards .sh-card {
    min-height: 150px;
    padding: 16px;
    gap: 12px;
  }
  .uv-primary-cards .sh-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
  }
  .uv-primary-cards .sh-card-icon .icon {
    width: 26px;
    height: 26px;
  }
  .uv-primary-cards .sh-card-arrow {
    inset-block-start: 14px;
    inset-inline-end: 14px;
  }
  .uv-primary-cards .sh-card-count {
    inset-block-start: 14px;
    inset-inline-end: 50px;
  }
  #page-content .heading-actions {
    width: 100%;
  }
  #page-content .heading-actions .btn {
    flex: 1 1 calc(50% - 8px);
    justify-content: center;
  }
  #page-content .heading-actions .btn.primary {
    flex-basis: 100%;
  }
  #page-content .uv-kpi-main .inv-kpi,
  #page-content .uv-kpi-strip .inv-kpi,
  #page-content .inv-kpi {
    min-height: 0;
    padding: 12px;
    column-gap: 10px;
  }
  #page-content .inv-kpi-icon {
    width: 38px;
    height: 38px;
  }
  #page-content .inv-kpi-value {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .uv-table-tools,
  .uv-data-head {
    padding-inline: 14px;
  }
  .uv-table-tools select {
    flex: 1 1 40%;
  }
}
@media print {
  .topbar {
    display: none !important;
  }
}

/* Eight primary cards sit in two even rows; a single panel spreads its links. */
@media (min-width: 1101px) {
  .uv-primary-cards .sh-cards:has(> .sh-card:nth-child(8):last-child) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.uv-panels:has(> .sh-section:only-child) {
  grid-template-columns: 1fr;
}
.uv-panels > .sh-section:only-child .sh-cards {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

@media (max-width: 760px) {
  #page-content .inv-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #page-content .inv-filter {
    min-width: 0;
  }
}

/* ========== Module layouts, windows and states ==========
   Layered last so one set of rules gives every module the same structure. */
.uv-tabs {
  display: flex;
  gap: 6px;
  margin-block-end: 14px;
  padding: 6px;
  overflow-x: auto;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
}
.uv-tabs a {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 10px;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
  font-weight: 600;
  text-decoration: none;
}
.uv-tabs a:hover {
  background: var(--uv-bg);
  color: var(--uv-text);
}
.uv-tabs a[aria-current='page'] {
  background: color-mix(in srgb, var(--uv-brand) 12%, var(--uv-surface));
  color: var(--uv-peach-ink);
}
.uv-ops .sh-cards {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}
.uv-ops .sh-card {
  min-height: 92px;
  text-decoration: none;
}
.uv-ops .sh-section > h2 {
  margin-block-end: 10px;
}
.uv-side-panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px;
  margin-block: 14px;
}
.uv-side-panels:empty {
  display: none;
}
.uv-side-panels > * {
  margin: 0;
}

/* Register pages */
.uv-register-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-block-end: 14px;
}
.uv-register-meta .module-info,
.uv-register-meta .module-summary {
  margin: 0;
}
.uv-register-meta .module-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin-inline-start: auto;
}
.uv-status-chip {
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--uv-bg);
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.uv-status-chip strong {
  color: var(--uv-text);
}
#page-content > .hub-back {
  margin-block-end: 8px;
}

/* Launcher areas */
.uv-launch-list {
  columns: auto;
  display: grid;
  gap: 14px;
}
.uv-launch-area > h3 {
  margin: 0 0 6px;
  color: var(--uv-peach-ink);
  font-size: var(--uv-fs-meta);
  font-weight: 700;
}
.uv-launch-area-list {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 3 240px;
  column-gap: 20px;
}
.uv-launch-area[hidden],
.uv-launch-group[hidden] {
  display: none;
}

/* Figures: first row large, the following ones lighter, in every module */
#page-content :is(.mfg-kpis, .quality-kpis, .hr-root > .inv-kpis, #mfg-app .inv-kpis) {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}
#page-content .mfg-kpis .inv-kpi:nth-child(n + 5) {
  padding-block: 10px;
  box-shadow: none;
}
#page-content .mfg-kpis .inv-kpi:nth-child(n + 5) .inv-kpi-value {
  font-size: var(--uv-fs-h3);
}
.uv-report-kpis {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-block: 14px;
}

/* Production and recipes */
#page-content .mfg-toolbar {
  gap: 10px;
  padding: 12px 14px;
}
#page-content .mfg-chips {
  display: flex;
  flex: 1 1 100%;
  flex-wrap: nowrap;
  gap: 4px;
  order: 5;
  padding: 4px;
  overflow-x: auto;
  border-radius: 12px;
  background: var(--uv-bg);
}
#page-content .mfg-chips > * {
  flex: 1 0 auto;
  justify-content: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
}
#page-content .mfg-chips > [aria-pressed='true'],
#page-content .mfg-chips > .is-active {
  background: var(--uv-surface);
  color: var(--uv-peach-ink);
  box-shadow: var(--uv-shadow-1);
}
#page-content .mfg-section {
  padding: 18px 20px;
}
#page-content .mfg-section > h2,
#page-content .mfg-section-head h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--uv-fs-h3);
}
#page-content .mfg-step {
  background: color-mix(in srgb, var(--uv-brand) 14%, var(--uv-surface));
  color: var(--uv-peach-ink);
}
#page-content .mfg-sticky {
  border-radius: var(--uv-radius-lg);
  box-shadow: var(--uv-shadow-1);
}

/* Quality documents */
#page-content .quality-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  padding: 6px;
  overflow-x: auto;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
}
#page-content .quality-tabs > * {
  flex: none;
  border-radius: 10px;
}
#page-content .quality-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  align-items: end;
  gap: 10px;
  padding: 14px;
}
#page-content .quality-search {
  grid-column: span 2;
}
#page-content .quality-table-tools {
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 14px;
}
dialog .quality-sds-section {
  padding: 14px 16px;
  border: 1px solid var(--uv-border);
  border-radius: 14px;
}
dialog .quality-pdf-preview canvas {
  display: block;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
  border-radius: 8px;
  box-shadow: var(--uv-shadow-1);
}

/* Human resources */
#page-content .hr-nav {
  border-radius: var(--uv-radius-lg);
}
#page-content .hr-tiles {
  gap: 12px;
}
#page-content .hr-tile {
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: color-mix(in srgb, var(--uv-brand) 4%, var(--uv-surface));
  box-shadow: var(--uv-shadow-1);
}
#page-content .hr-tile:nth-child(3n + 2) {
  background: var(--uv-sky-bg);
}
:root[data-theme='dark'] #page-content .hr-tile:nth-child(3n + 2) {
  background: var(--uv-surface);
}
#page-content .hr-subbar {
  flex-wrap: wrap;
  gap: 8px;
}

/* Settings and administration */
#page-content .settings-grid {
  gap: 14px;
}
#page-content .company-settings {
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
}
#page-content .company-settings > summary {
  padding: 14px 18px;
  font-size: var(--uv-fs-h3);
  font-weight: 600;
  cursor: pointer;
}
#page-content .panel.dialog-body {
  margin-block-end: 14px;
  padding: 18px 20px;
}
#page-content .definition-list dt {
  color: var(--uv-secondary);
}

/* Team chat */
#page-content .cx-grid {
  gap: 12px;
}
#page-content :is(.cx-nav, .cx-list, .cx-main) {
  border-color: var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
}
#page-content .cx-item {
  border-radius: 12px;
}
#page-content .cx-item-preview {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
#page-content .cx-bubble {
  border-radius: 16px;
  font-size: var(--uv-fs-body);
  line-height: 1.55;
}
#page-content .cx-composer {
  border-top: 1px solid var(--uv-border);
  background: var(--uv-surface);
}
#page-content .cx-day {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
dialog.cx-dialog {
  border-radius: 20px;
}

/* Windows: the title and the Save and Cancel actions stay in view on long forms */
dialog:is(#dialog, .detail-drawer) {
  max-width: min(760px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--uv-border);
  border-radius: 20px;
  background: var(--uv-surface);
}
dialog:is(#dialog, .detail-drawer).quality-dialog {
  max-width: min(1100px, calc(100vw - 24px));
}
dialog .dialog-head {
  position: sticky;
  z-index: 3;
  top: 0;
  padding: 18px 22px;
  border-block-end: 1px solid var(--uv-border);
  background: var(--uv-surface);
}
dialog .dialog-body {
  padding: 18px 22px;
}
dialog .dialog-footer {
  position: sticky;
  z-index: 3;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 22px;
  border-block-start: 1px solid var(--uv-border);
  background: var(--uv-surface);
}
:is(#page-content, dialog) fieldset {
  min-width: 0;
  margin-block-end: 14px;
  padding: 12px 14px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
}
:is(#page-content, dialog) legend {
  padding-inline: 6px;
  color: var(--uv-text);
  font-size: var(--uv-fs-label);
  font-weight: 600;
}
:is(#page-content, dialog) .form-error:not(:empty) {
  margin-block-end: 12px;
  padding: 10px 14px;
  border: 1px solid color-mix(in srgb, var(--uv-error) 35%, var(--uv-surface));
  border-radius: 10px;
  background: color-mix(in srgb, var(--uv-error) 8%, var(--uv-surface));
  color: var(--uv-error-ink);
  font-size: var(--uv-fs-label);
}
:root[data-theme='dark'] :is(#page-content, dialog) .form-error:not(:empty) {
  color: var(--text-primary);
}
.uv-ss-clear {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 8px 12px;
  border: 0;
  border-block-end: 1px solid var(--uv-border);
  background: none;
  color: var(--uv-secondary);
  font: inherit;
  font-size: var(--uv-fs-meta);
  cursor: pointer;
}
.uv-ss-clear:hover {
  color: var(--uv-text);
}

/* Empty and loading states */
#page-content :is(.empty-state, .cx-empty, .quality-empty) {
  padding: 40px 20px;
  color: var(--uv-secondary);
  text-align: center;
}
:is(.cm-loading, .cx-loading) {
  animation: uv-pulse 1.4s ease-in-out infinite;
  color: var(--uv-secondary);
}
@keyframes uv-pulse {
  50% {
    opacity: 0.45;
  }
}
@media (prefers-reduced-motion: reduce) {
  :is(.cm-loading, .cx-loading) {
    animation: none;
  }
}

/* AI workspace additions */
.kr-day {
  margin-block: 10px 4px;
  padding-inline: 8px;
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
  font-weight: 700;
  list-style: none;
}
.kr-file-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.kr-file-chip button {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--uv-secondary);
  cursor: pointer;
}
.kr-composer textarea {
  max-height: 180px;
  resize: none;
}

/* Windows and modules on small screens */
@media (max-width: 760px) {
  dialog:is(#dialog, .detail-drawer) {
    width: 100vw;
    max-width: 100vw;
    max-height: 100dvh;
    border-radius: 16px 16px 0 0;
  }
  dialog .dialog-footer > .btn {
    flex: 1 1 auto;
  }
  .uv-side-panels {
    grid-template-columns: minmax(0, 1fr);
  }
  .uv-register-meta .module-summary {
    margin-inline-start: 0;
  }
  #page-content .quality-search {
    grid-column: auto;
  }
  .uv-launch-area-list {
    columns: auto;
  }
}

/* ========== Final module layouts ========== */
/* Quality documents */
#page-content .quality-filters {
  display: block;
  padding: 14px;
}
.quality-filter-main {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
}
.quality-filter-main .quality-search {
  flex: 1 1 280px;
}
.quality-filter-main > .quality-field {
  flex: 0 1 200px;
}
.quality-filter-more {
  margin-block-start: 8px;
}
.quality-filter-more > summary {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-label);
  font-weight: 600;
  cursor: pointer;
}
.quality-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  align-items: end;
  gap: 10px;
  margin-block-start: 10px;
}
.quality-lifecycle {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 12px 0;
  padding: 0;
  list-style: none;
}
.quality-lifecycle li {
  display: inline-flex;
  flex: 1 1 110px;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 10px;
  background: var(--uv-bg);
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.quality-lifecycle li > span {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--uv-surface);
  font-weight: 700;
}
.quality-lifecycle .is-done {
  color: var(--uv-success-ink);
}
.quality-lifecycle .is-current {
  background: color-mix(in srgb, var(--uv-brand) 14%, var(--uv-surface));
  color: var(--uv-peach-ink);
  font-weight: 700;
}
.quality-doc-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  align-items: start;
  gap: 16px;
}
.quality-doc-main > section,
.quality-doc-side > section {
  margin-block-end: 14px;
  padding: 14px 16px;
  border: 1px solid var(--uv-border);
  border-radius: 14px;
}
.quality-doc-side {
  position: sticky;
  top: 90px;
}
dialog .quality-pagination {
  position: sticky;
  z-index: 2;
  top: 0;
  flex-wrap: wrap;
  gap: 8px;
  padding-block: 8px;
  background: var(--uv-surface);
}

/* Employees */
.hr-person > span:last-child {
  display: inline-block;
  margin-inline-start: 8px;
  vertical-align: middle;
}
.hr-initial {
  display: inline-grid;
  flex: none;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--uv-peach-tile);
  color: var(--uv-peach-ink);
  font-weight: 700;
}
.hr-initial.is-large {
  width: 56px;
  height: 56px;
  font-size: var(--uv-fs-h2);
}
#page-content .hr-profile-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 22px;
  margin-block-end: 14px;
  padding: 16px 20px;
}
.hr-profile-main {
  display: grid;
  gap: 4px;
  justify-items: start;
}
.hr-profile-main strong {
  font-size: var(--uv-fs-h3);
}
.hr-profile-card .cm-meta {
  display: flex;
  flex: 1 1 320px;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin: 0;
}

/* Settings */
.uv-settings-tabs button {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--uv-secondary);
  font: inherit;
  font-size: var(--uv-fs-label);
  font-weight: 600;
  cursor: pointer;
}
.uv-settings-tabs button[aria-selected='true'] {
  background: color-mix(in srgb, var(--uv-brand) 12%, var(--uv-surface));
  color: var(--uv-peach-ink);
}
[data-settings-panel][hidden] {
  display: none;
}
.uv-settings-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.uv-settings-link {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid var(--uv-border);
  border-radius: var(--uv-radius-lg);
  background: var(--uv-surface);
  color: var(--uv-text);
  text-decoration: none;
  box-shadow: var(--uv-shadow-1);
}
.uv-settings-link strong,
.uv-settings-link small {
  display: block;
}
.uv-settings-link small {
  color: var(--uv-secondary);
}

/* Inventory item */
.inv-info-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}
.inv-info-groups > section {
  padding: 14px 16px;
  border: 1px solid var(--uv-border);
  border-radius: 14px;
}
.inv-info-groups h3 {
  margin: 0 0 8px;
  font-size: var(--uv-fs-label);
}

/* Team chat */
#page-content .cx-composer .cx-compose-row {
  align-items: flex-end;
  gap: 6px;
  padding: 6px;
  border: 1px solid var(--uv-border);
  border-radius: 16px;
  background: var(--uv-bg);
}
#page-content .cx-composer textarea {
  border: 0;
  background: transparent;
  box-shadow: none;
}
#page-content .cx-item.is-active {
  background: color-mix(in srgb, var(--uv-brand) 10%, var(--uv-surface));
}
#page-content .cx-filter.is-active {
  background: color-mix(in srgb, var(--uv-brand) 12%, var(--uv-surface));
  color: var(--uv-peach-ink);
}
#page-content .cx-send {
  border-radius: 12px;
  background: var(--uv-brand);
  color: #fff;
}
#page-content .cx-head {
  border-block-end: 1px solid var(--uv-border);
}

/* Forms */
.uv-form-nav {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  gap: 6px;
  margin-block-end: 12px;
  padding-block: 6px;
  overflow-x: auto;
  background: var(--uv-surface);
}
.uv-form-nav button {
  flex: none;
  padding: 6px 12px;
  border: 1px solid var(--uv-border);
  border-radius: 999px;
  background: var(--uv-surface);
  color: var(--uv-secondary);
  font: inherit;
  font-size: var(--uv-fs-meta);
  cursor: pointer;
}
.uv-form-nav button:hover {
  border-color: var(--uv-brand);
  color: var(--uv-text);
}
dialog .form-section {
  margin: 14px 0 8px;
  padding-block-end: 6px;
  border-block-end: 1px solid var(--uv-border);
  font-size: var(--uv-fs-label);
  font-weight: 700;
}
:is(#page-content, dialog) label:has(> :required) > span::after {
  content: ' *';
  color: var(--uv-error-ink);
}
:is(#page-content, dialog) :is(input, select, textarea):user-invalid {
  border-color: var(--uv-error);
}

/* Printing keeps only the document */
@media print {
  :is(.uv-tabs, .uv-form-nav, .uv-breadcrumb, .uv-register-meta) {
    display: none !important;
  }
}
@media (max-width: 900px) {
  .quality-doc-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .quality-doc-side {
    position: static;
  }
}

/* Finance */
.fin-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-block-end: 14px;
  padding: 12px 16px;
  border: 1px solid color-mix(in srgb, var(--uv-warning) 40%, var(--uv-surface));
  border-radius: 14px;
  background: color-mix(in srgb, var(--uv-warning) 9%, var(--uv-surface));
  font-size: var(--uv-fs-label);
}
.fin-tab {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--uv-secondary);
  font: inherit;
  font-size: var(--uv-fs-label);
  font-weight: 600;
  cursor: pointer;
}
.fin-tab[aria-current='page'] {
  background: color-mix(in srgb, var(--uv-brand) 12%, var(--uv-surface));
  color: var(--uv-peach-ink);
}
.fin-chart {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: start;
  gap: 16px;
  padding: 14px;
}
.fin-tree-wrap h3 {
  margin: 12px 0 6px;
  color: var(--uv-peach-ink);
  font-size: var(--uv-fs-label);
}
.fin-tree,
.fin-tree ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.fin-tree ul {
  padding-inline-start: 20px;
  border-inline-start: 1px solid var(--uv-border);
  margin-inline-start: 13px;
}
.fin-node {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border-radius: 10px;
}
.fin-node:hover {
  background: var(--uv-bg);
}
.fin-node.is-selected {
  background: color-mix(in srgb, var(--uv-brand) 10%, var(--uv-surface));
}
.fin-node.is-off {
  opacity: 0.55;
}
.fin-toggle {
  display: inline-grid;
  flex: none;
  place-items: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--uv-secondary);
  cursor: pointer;
}
.fin-open {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 4px;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.fin-kind {
  color: var(--uv-secondary);
  font-size: var(--uv-fs-meta);
}
.fin-balance,
.fin-lines td.numeric,
.fin-statements td.numeric {
  font-variant-numeric: tabular-nums;
}
.fin-balance {
  min-width: 110px;
  text-align: end;
}
.fin-detail {
  position: sticky;
  top: 90px;
  padding: 16px;
}
.fin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.fin-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  margin-block-end: 14px;
  padding: 14px;
}
dialog .fin-fields {
  padding: 0;
}
.fin-fields label {
  display: grid;
  gap: 4px;
}
.fin-fields .wide {
  grid-column: 1 / -1;
}
.fin-fields .fin-check {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fin-lines select,
.fin-lines input {
  width: 100%;
}
.fin-lines input[data-field='debit'],
.fin-lines input[data-field='credit'] {
  min-width: 110px;
  text-align: end;
}
.fin-form-actions {
  justify-content: flex-end;
  padding: 14px;
}
.fin-balance-row {
  padding: 8px 14px;
  font-weight: 600;
}
.fin-statements {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  align-items: start;
  gap: 14px;
  margin-block-start: 14px;
}
.fin-statements > .panel:first-child {
  grid-column: 1 / -1;
}
.fin-statements .panel > h2 {
  padding: 14px 16px 6px;
  font-size: var(--uv-fs-h3);
}
.fin-total th,
.fin-total td {
  font-weight: 700;
  border-block-start: 2px solid var(--uv-border);
}
@media (max-width: 900px) {
  .fin-chart {
    grid-template-columns: minmax(0, 1fr);
  }
  .fin-detail {
    position: static;
  }
  .fin-kind {
    display: none;
  }
}

/* Item details and files */
.inv-item-head {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.inv-item-title {
  flex: 1;
  min-width: 0;
}
.inv-item-image {
  display: inline-grid;
  flex: none;
  place-items: center;
  width: 88px;
  height: 88px;
  overflow: hidden;
  border: 1px solid var(--uv-border);
  border-radius: 16px;
  background: var(--uv-surface);
}
.inv-item-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.inv-image-fallback {
  color: var(--uv-secondary);
}
.inv-file-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin-block-end: 12px;
  padding: 12px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
}
.inv-file-form label {
  display: grid;
  gap: 4px;
}
.inv-file-form .inv-file-main {
  display: flex;
  align-items: center;
  gap: 6px;
}
.inv-file-form small {
  flex: 1 1 100%;
  color: var(--uv-secondary);
}
.inv-file-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.inv-file-preview {
  flex: 1;
  min-height: 0;
  max-width: 100%;
  object-fit: contain;
}
.inv-file-frame {
  flex: 1;
  width: 100%;
  border: 0;
  background: #fff;
}
.fin-source {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 14px;
}
.fin-flow {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  padding: 8px 14px;
}
.fin-map {
  margin-inline: 14px;
  padding: 8px 0;
  border-block-end: 1px solid var(--uv-border);
}
.fin-map > summary {
  cursor: pointer;
}

/* Item gallery and specifications */
.inv-files-layout {
  display: grid;
  gap: 22px;
}
.inv-files-block h3 {
  margin-block-end: 10px;
}
.inv-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 12px;
}
.inv-thumb {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--uv-border);
  border-radius: 14px;
  background: var(--uv-surface);
}
.inv-thumb > button {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
}
.inv-thumb img {
  width: 100%;
  height: 132px;
  border-radius: 10px;
  object-fit: contain;
  background: var(--uv-bg);
}
.inv-thumb figcaption {
  display: grid;
  gap: 4px;
  overflow-wrap: anywhere;
}
.inv-details-form {
  display: grid;
  gap: 12px;
}
.inv-details-form > label {
  display: grid;
  gap: 4px;
}
.inv-spec-head,
.inv-details-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.inv-spec-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto;
  gap: 8px;
  margin-block-end: 8px;
}
@media (max-width: 620px) {
  .inv-spec-row {
    grid-template-columns: 1fr auto;
  }
  .inv-spec-row [data-spec='value'] {
    grid-column: 1;
  }
}
.iam-role[hidden] {
  display: none;
}

/* Findings from the visual review */
* {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--uv-secondary) 35%, transparent) transparent;
}
#page-content :is(.uv-tabs, .quality-tabs, .inv-tabs) {
  flex-wrap: wrap;
  overflow: visible;
}
#page-content .quality-workspace {
  background: transparent;
  color: var(--uv-text);
}
#page-content .mfg-toolbar > .uv-ss {
  flex: 0 1 200px;
  inline-size: auto;
  min-inline-size: 150px;
}
#page-content .mfg-toolbar > .uv-ss-native {
  flex: none;
}
#page-content .inv-files-block + .inv-files-block {
  padding-block-start: 18px;
  border-block-start: 1px solid var(--uv-border);
}
.inv-file-pick {
  position: relative;
}
.inv-file-pick .btn {
  max-inline-size: 280px;
  cursor: pointer;
}
.inv-file-pick .btn span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.inv-file-pick:focus-within .btn {
  box-shadow: var(--uv-focus);
}
#page-content :is(.cm-tabs, .sh-tabs) {
  flex-wrap: wrap;
  overflow: visible;
}
#page-content .quality-workspace .page-heading .breadcrumb {
  display: none;
}
/* A last short row of figures fills the width instead of leaving one card alone. */
#page-content :is(.quality-kpis, #mfg-app .inv-kpis, .hr-root > .inv-kpis) {
  display: flex;
  flex-wrap: wrap;
}
#page-content :is(.quality-kpis, #mfg-app .inv-kpis, .hr-root > .inv-kpis) > * {
  flex: 1 1 190px;
}
.pdfv-tools select {
  inline-size: auto;
  min-inline-size: 0;
  max-inline-size: 130px;
  min-block-size: 36px;
  padding-block: 4px;
  border-color: rgb(255 255 255 / 18%);
  background-color: rgb(255 255 255 / 8%);
  color: #fff;
}
.pdfv-tools select option {
  color: #172033;
}
.pdfv-page input {
  inline-size: 52px;
  min-block-size: 36px;
  border-color: rgb(255 255 255 / 18%);
  background: rgb(255 255 255 / 8%);
  color: #fff;
}
.pdfv-tools .uv-ss {
  flex: none;
  inline-size: 130px;
  min-block-size: 36px;
  border-color: #3f3f46;
  background-color: #27272a;
  color: #f4f4f5;
}
button.link {
  padding: 0;
  border: 0;
  background: none;
  color: var(--uv-peach-ink);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
button.link:hover {
  text-decoration: underline;
}

/* Register pages: the way back shares the breadcrumb's row. */
#page-content {
  position: relative;
}
#page-content > .uv-breadcrumb {
  min-block-size: 40px;
  padding-inline-end: 190px;
}
#page-content > .hub-back {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  margin: 0;
  min-block-size: 36px;
  padding-block: 4px;
}
/* Filters sit in one row and wrap, not one per line. */
#page-content td.fin-definition {
  min-inline-size: 320px;
  white-space: normal;
}
[data-line-density][hidden],
[data-entry-density][hidden] {
  display: none;
}
#page-content form.quality-filters:not(:has(.quality-filter-main)) {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px 12px;
}
#page-content form.quality-filters:not(:has(.quality-filter-main)) > label {
  display: grid;
  flex: 1 1 200px;
  gap: 4px;
  max-inline-size: 320px;
}
#page-content section.payroll-period {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  padding: 12px 16px;
}
#page-content section.payroll-period label {
  margin: 0;
}
#page-content section.payroll-period .uv-ss {
  flex: 0 1 280px;
  inline-size: 280px;
}
#page-content .sample-status-grid {
  gap: 12px;
}
@media (max-width: 640px) {
  #page-content > .uv-breadcrumb {
    padding-inline-end: 0;
  }
  #page-content > .hub-back {
    position: static;
    margin-block-end: 10px;
  }
}

/* Phones: keep figures whole, and long tab rows slide instead of filling the screen. */
@media (max-width: 640px) {
  #page-content :is(.uv-tabs, .quality-tabs, .inv-tabs, .cm-tabs, .sh-tabs) {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  #page-content :is(.uv-tabs, .quality-tabs, .inv-tabs, .cm-tabs, .sh-tabs) > * {
    flex: none;
  }
  #page-content .inv-kpi-value,
  #page-content .stat-value {
    overflow-wrap: normal;
    word-break: normal;
    white-space: nowrap;
    font-size: clamp(18px, 5.4vw, 24px);
  }
  #page-content .inv-kpis:not(.fin-aging) {
    grid-template-columns: minmax(0, 1fr);
  }
  #page-content .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  #page-content .stat-card {
    padding: 12px;
  }
}

/* Quality pages in the dark theme */
:root[data-theme='dark'] #page-content .quality-filters {
  border-color: var(--uv-border);
  background: var(--uv-surface);
}
:root[data-theme='dark'] #page-content :is(.quality-tabs a, .quality-tabs button) {
  color: var(--uv-secondary);
}
:root[data-theme='dark']
  #page-content
  :is(.quality-tabs a[aria-current], .quality-tabs button[aria-current]) {
  background: color-mix(in srgb, var(--uv-brand) 18%, var(--uv-surface));
  color: var(--uv-text);
}
:root[data-theme='dark'] #page-content .quality-table th {
  background: var(--uv-bg);
  color: var(--uv-secondary);
}
:root[data-theme='dark'] #page-content .quality-table :is(td, th) {
  border-color: var(--uv-border);
}
:root[data-theme='dark'] #page-content .quality-table tbody tr:hover {
  background: color-mix(in srgb, var(--uv-brand) 8%, transparent);
}
:root[data-theme='dark'] #page-content .quality-badge {
  background: var(--uv-surface);
  color: var(--uv-text);
}
:root[data-theme='dark'] #page-content .quality-passed {
  background: rgb(19 115 75 / 25%);
  color: #86efac;
}
:root[data-theme='dark'] #page-content .quality-pending {
  background: rgb(255 121 0 / 20%);
  color: #ffc48a;
}
:root[data-theme='dark'] #page-content .quality-failed {
  background: rgb(180 35 56 / 25%);
  color: #fca5a5;
}
:root[data-theme='dark'] #page-content .quality-columns[open],
:root[data-theme='dark'] #page-content .quality-pagination select {
  background: var(--uv-surface);
  color: var(--uv-text);
}
:root[data-theme='dark'] #page-content .quality-field :is(input, select, textarea) {
  background: var(--uv-surface);
  color: var(--uv-text);
}
:root[data-theme='dark'] .quality-details > div,
:root[data-theme='dark'] .quality-dialog .quality-details > div {
  border-color: var(--uv-border);
  background: var(--uv-surface);
  color: var(--uv-text);
}
:root[data-theme='dark'] .quality-details dt {
  color: var(--uv-secondary);
}
:root[data-theme='dark'] .quality-details dd {
  color: var(--uv-text);
}

/* Header menus stay on screen on tablets and phones. They were anchored to their button and
   could run past the edge: the quick-create menu reached 885px on a 758px page. */
@media (max-width: 1100px) {
  header .top-popover[open] > .popover-content {
    position: fixed;
    inset-block-start: 112px;
    inset-inline: 12px;
    inline-size: auto;
    max-inline-size: none;
    max-block-size: calc(100dvh - 128px);
    overflow-y: auto;
    margin: 0;
    transform: none;
  }
  header .top-popover.quick-create-popover[open] > .popover-content,
  header .top-popover.account-popover[open] > .popover-content,
  header .top-popover.appearance-popover[open] > .popover-content,
  header .top-popover.uv-calendar-popover[open] > .popover-content {
    inset-inline-end: auto;
    inline-size: min(360px, calc(100vw - 24px));
  }
}
#page-content .action-menu .popover-content {
  max-inline-size: calc(100vw - 24px);
}
/* An empty table has nothing to scroll to, so it shows no scrollbar. */
#page-content .table-scroll:has(.empty-state, .uv-empty) {
  overflow-x: hidden;
}
.uv-empty-action {
  display: flex;
  justify-content: center;
  padding-block-end: 22px;
}

/* Application-level 404 */
.uv-not-found {
  padding: clamp(24px, 5vw, 56px) 20px;
  text-align: center;
}
.uv-not-found .empty-state {
  margin-inline: auto;
}
.uv-not-found-path {
  margin: 4px 0 18px;
  color: var(--muted);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.uv-not-found-path code {
  padding: 2px 8px;
  border-radius: 6px;
  background: var(--surface-2, rgba(120, 130, 150, 0.12));
  color: var(--ink, inherit);
  unicode-bidi: isolate;
}
.uv-not-found .empty-action {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

/* Attachments on a commercial document */
.doc-files-panel h2 {
  margin-bottom: 10px;
}
.doc-files {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: grid;
  gap: 8px;
}
.doc-files li {
  display: grid;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--line, rgba(120, 130, 150, 0.25));
  border-radius: 10px;
}
.doc-file-name {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.doc-file-name bdi {
  font-weight: 600;
  overflow-wrap: anywhere;
}
.doc-file-name small {
  color: var(--muted);
  font-size: 12px;
}
.doc-file-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.doc-file-actions .btn {
  min-height: 34px;
  padding-inline: 10px;
  font-size: 13px;
}
.doc-file-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--line, rgba(120, 130, 150, 0.25));
}
.doc-file-form small {
  flex-basis: 100%;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.doc-file-form .inv-file-pick {
  min-width: 0;
  max-width: 100%;
}
.doc-file-form [data-doc-file-name] {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.uv-icon-back {
  transform: scaleX(-1);
}
[dir='rtl'] .uv-icon-back {
  transform: none;
}

/* PDF viewer and file interfaces on tablets and phones */
.pdfv {
  grid-template-columns: minmax(0, 1fr);
}
.pdfv-bar,
.pdfv-tools,
.pdfv-body {
  min-inline-size: 0;
}
.inv-files-layout {
  grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 760px) {
  .pdfv-bar {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 6px;
  }
  .pdfv-tools {
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 4px;
    padding-block-end: 2px;
    scrollbar-width: none;
  }
  .pdfv-tools::-webkit-scrollbar {
    display: none;
  }
  .pdfv-tools > * {
    flex: none;
  }
  .pdfv-tools .pdfv-sep,
  .pdfv-thumbs,
  .pdfv-tools [data-pdfv='thumbs'] {
    display: none;
  }
  .pdfv-body {
    grid-template-columns: minmax(0, 1fr);
  }
  .pdfv-tools .btn {
    padding-inline: 10px;
  }
  .pdfv-tools select,
  .pdfv-tools .uv-ss {
    inline-size: 104px;
    max-inline-size: 104px;
  }
  .pdfv-tools [data-pdfv='close'] {
    order: -1;
  }
  .kr-report-dialog {
    inline-size: 100vw;
    max-inline-size: 100vw;
    block-size: 100dvh;
    max-block-size: 100dvh;
    margin: 0;
    border-radius: 0;
  }
  .inv-file-form {
    flex-direction: column;
    align-items: stretch;
  }
  .inv-file-form label,
  .inv-file-form select,
  .inv-file-form .btn {
    inline-size: 100%;
    max-inline-size: 100%;
  }
  .inv-file-form .inv-file-pick .btn {
    justify-content: center;
  }
  .table-scroll:has(.inv-files-table) {
    max-block-size: none;
    overflow: visible;
  }
  .inv-files-table {
    display: block;
    inline-size: 100%;
    min-inline-size: 0;
  }
  .inv-files-table thead {
    display: none;
  }
  .inv-files-table tbody {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-block-end: 12px;
  }
  .inv-files-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding: 12px;
    border: 1px solid var(--uv-border);
    border-radius: 12px;
  }
  .inv-files-table td {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 0;
    border: 0;
    overflow-wrap: anywhere;
    text-align: start;
    white-space: normal;
  }
  .inv-files-table td[data-label]::before {
    content: attr(data-label);
    flex: none;
    color: var(--uv-secondary);
    font-size: 12px;
  }
  .inv-files-table td > * {
    min-inline-size: 0;
  }
  .inv-files-table td.inv-file-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
    padding-block-start: 6px;
  }
  .inv-gallery {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
  .inv-spec-row {
    grid-template-columns: 1fr auto;
  }
  .doc-file-actions .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* Document toolbar and attachment states */
.pdfv-tools button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.pdfv.no-thumbs .pdfv-body {
  grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 1100px) {
  .pdfv-bar {
    gap: 8px 12px;
  }
  .pdfv-title {
    flex: 1 1 200px;
  }
}
@media (pointer: coarse) {
  .pdfv-tools .icon-button {
    min-inline-size: 42px;
    min-block-size: 42px;
  }
  .pdfv-tools .btn,
  .pdfv-tools select,
  .pdfv-page input {
    min-block-size: 42px;
  }
}
.doc-file-form[aria-busy='true'] {
  opacity: 0.6;
}
.doc-file-locked {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-block-end: 10px;
}
.cm-figures[hidden] {
  display: none;
}

/* Chart of accounts columns */
.fin-tree-head {
  display: flex;
  gap: 6px;
  padding: 0 6px 6px;
  color: var(--uv-secondary);
  font-size: 12px;
}
.fin-tree-head span:first-child {
  flex: 1;
}
.fin-tree-head span:not(:first-child),
.fin-dc {
  inline-size: 96px;
  flex: none;
  text-align: end;
}
.fin-dc {
  color: var(--uv-secondary);
  font-size: 13px;
}
.fin-balance small {
  color: var(--uv-secondary);
  font-size: 11px;
}
.fin-detail h3 {
  margin: 14px 0 6px;
  font-size: 14px;
}
@media (max-width: 900px) {
  .fin-tree-head,
  .fin-dc {
    display: none;
  }
}

/* Item summary */
.inv-item-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-block-end: 16px;
  padding: 12px;
  border: 1px solid var(--uv-border);
  border-radius: 14px;
}
.inv-item-image {
  display: grid;
  place-items: center;
  inline-size: 88px;
  block-size: 88px;
  flex: none;
  overflow: hidden;
  border-radius: 12px;
  background: var(--uv-bg);
}
.inv-item-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin: 0;
  flex: 1;
  min-inline-size: 0;
}
.inv-item-facts dt {
  color: var(--uv-secondary);
  font-size: 12px;
}
.inv-item-facts dd {
  margin: 2px 0 0;
  font-weight: 600;
}

/* Production stages */
.mfg-stage-groups {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block-end: 14px;
}
.mfg-stage-group {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--uv-border);
  border-radius: 999px;
  background: var(--uv-surface);
  cursor: pointer;
}
.mfg-stage-group[aria-pressed='true'] {
  border-color: var(--uv-brand);
  background: color-mix(in srgb, var(--uv-brand) 10%, var(--uv-surface));
}
.mfg-stage-group b {
  font-variant-numeric: tabular-nums;
}

/* Stored files */
.file-index {
  grid-column: 1/-1;
}
tr[data-file-row][hidden] {
  display: none;
}

/* Agent task timeline */
.ai-timeline {
  list-style: none;
  margin: 12px 0;
  padding: 0;
  display: grid;
  gap: 8px;
  border-inline-start: 2px solid var(--uv-border);
}
.ai-timeline li {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  padding-inline-start: 16px;
}
.ai-timeline li::before {
  content: '';
  position: absolute;
  inset-inline-start: -6px;
  inset-block-start: 6px;
  inline-size: 10px;
  block-size: 10px;
  border-radius: 50%;
  background: var(--uv-secondary);
}
.ai-timeline li.is-done::before {
  background: var(--uv-brand);
}
.ai-timeline li.is-failed::before {
  background: #dc2626;
}
.ai-timeline li span {
  color: var(--uv-secondary);
  font-size: 13px;
}

/* Shared consistency */
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--uv-brand);
  outline-offset: 2px;
}
.breadcrumb {
  flex-wrap: wrap;
  overflow-wrap: anywhere;
}
.table-scroll thead th {
  white-space: nowrap;
}
dialog .dialog-body {
  max-block-size: calc(100dvh - 160px);
  overflow-y: auto;
}
.kr-report-dialog .dialog-body {
  padding: 16px;
}
.empty-state p {
  max-inline-size: 52ch;
  margin-inline: auto;
}
@media (max-width: 760px) {
  .heading-actions {
    flex-wrap: wrap;
  }
  .heading-actions .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* Items, production and files */
.inv-item-description {
  margin: 0 0 14px;
  color: var(--uv-secondary);
}
.mfg-material-progress {
  inline-size: 90px;
  block-size: 8px;
  accent-color: var(--uv-brand);
}
.file-meta {
  display: block;
  color: var(--uv-secondary);
  font-size: 12px;
}
.file-gallery {
  margin-block-end: 14px;
}

/* Forms, dialogs and selectors */
.form-grid {
  align-items: start;
}
.dialog-footer {
  flex-wrap: wrap;
}
.line-row {
  flex-wrap: wrap;
}
.inv-filters {
  flex-wrap: wrap;
}
.inv-filter {
  min-inline-size: 150px;
}
@media (max-width: 760px) {
  .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .line-row > * {
    flex: 1 1 100%;
  }
  .dialog-footer .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
  .inv-filter {
    flex: 1 1 100%;
  }
  .mfg-stage-group {
    flex: 1 1 calc(50% - 8px);
    justify-content: space-between;
  }
  dialog:not(.pdfv) {
    max-inline-size: 100vw;
  }
}
figure.inv-thumb[hidden] {
  display: none;
}
.file-gallery-more {
  text-align: center;
}
/* Found in the visual review: menus past the screen edge on phones, a doubled search border, a clipped page-size select */
.mfg-search input {
  border: 0;
  background: transparent;
  box-shadow: none;
  min-inline-size: 0;
  flex: 1;
}
.table-toolbar select {
  min-inline-size: 92px;
}
@media (max-width: 760px) {
  .heading-actions .action-menu .popover-content {
    position: fixed;
    inset-inline: 12px;
    inline-size: auto;
    max-inline-size: none;
    max-block-size: 60dvh;
    overflow-y: auto;
  }
}

/* Units, classification, galleries */
.mfg-unit {
  min-inline-size: 72px;
  max-inline-size: 110px;
}
.mfg-base {
  display: block;
  margin-block-start: 2px;
  color: var(--uv-secondary);
  font-size: 12px;
  white-space: normal;
}
.inv-classes {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin-block-end: 16px;
}
.inv-classes fieldset {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--uv-border);
  border-radius: 12px;
}
.inv-classes legend {
  padding-inline: 4px;
  color: var(--uv-secondary);
  font-size: 12px;
}
.inv-classes label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.inv-thumb button.is-broken img {
  visibility: hidden;
}
.mfg-editor-main,
.mfg-editor-main > .panel {
  min-inline-size: 0;
  max-inline-size: 100%;
}
/* Found in the visual review: a toolbar select widening English pages on phones, and Arabic company names clipped in English */
header select {
  unicode-bidi: plaintext;
}
@media (max-width: 760px) {
  .table-toolbar {
    flex-wrap: wrap;
  }
  .table-toolbar select {
    max-inline-size: 100%;
  }
}
.table-toolbar .select-wrap {
  flex: none;
  min-inline-size: 92px;
  max-inline-size: 100%;
}
.inv-unit-level {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-end;
  margin-block: 8px;
}
.inv-unit-level label {
  display: grid;
  gap: 4px;
  min-inline-size: 110px;
  flex: 1 1 110px;
}

/* Back: beside the title or breadcrumb, at the end of the line in either language. */
#page-content > .uv-back {
  float: inline-end;
  min-block-size: 38px;
  margin-block: 0 8px;
  margin-inline-start: 12px;
  padding-block: 6px;
  padding-inline: 12px 14px;
  gap: 6px;
}
.uv-back:hover:not(:disabled) {
  border-color: var(--uv-accent, #ff7a00);
  color: var(--uv-accent, #ff7a00);
}
.uv-back:focus-visible {
  outline: 2px solid var(--uv-accent, #ff7a00);
  outline-offset: 2px;
}
.uv-back:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
@media (max-width: 640px) {
  #page-content > .uv-back {
    float: none;
    display: inline-flex;
    margin-inline-start: 0;
  }
}

/* The unsaved changes question. */
.uv-unsaved {
  inline-size: min(440px, calc(100vw - 32px));
  border: 1px solid var(--uv-border);
  border-radius: 16px;
  padding: 0;
  background: var(--uv-surface);
  color: inherit;
}
.uv-unsaved h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: var(--uv-fs-h3);
}
.uv-unsaved p {
  margin: 0;
}
.uv-unsaved .dialog-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 22px;
  border-block-start: 1px solid var(--uv-border);
}
