:root {
    --ink: #202124;
    --muted: #5f6b76;
    --line: #e4e5e7;
    --surface: #ffffff;
    --canvas: #f7f7f8;
    --sidebar: #d71920;
    --sidebar-muted: #ffffff;
    --accent: #d71920;
    --accent-dark: #a70e15;
    --accent-soft: #fff0f1;
    --danger: #bd2d35;
    --warning: #a56b18;
    --shadow: 0 10px 28px rgb(28 28 30 / 6%);
    --app-viewport-width: 100vw;
    --app-viewport-height: 100vh;
    --app-topbar-height: 64px;
    --app-navigation-height: 0px;
    --app-max-width: 3840px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

@supports (height: 100dvh) {
    :root { --app-viewport-height: 100dvh; }
}

@supports (width: 100dvw) {
    :root { --app-viewport-width: 100dvw; }
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-width: 320px;
    color: var(--ink);
    background: var(--canvas);
    font-size: 14px;
    line-height: 1.45;
}

a { color: var(--accent-dark); text-decoration: none; }
a:hover { color: var(--accent); text-decoration: underline; }
button, input, select { font: inherit; }

.app-shell { width: min(100%, var(--app-max-width)); min-height: var(--app-viewport-height); margin: 0 auto; }

.topbar { position: sticky; top: 0; z-index: 20; color: #fff; background: var(--sidebar); box-shadow: 0 2px 12px rgb(75 0 4 / 22%); }
.topbar-inner { display: flex; width: min(1640px, 100%); min-height: 72px; align-items: center; gap: 24px; margin: 0 auto; padding: 0 32px; }
.brand { display: inline-flex; min-width: max-content; align-items: center; gap: 15px; color: #fff; }
.brand:hover { color: #fff; text-decoration: none; }
.brand-logo { display: block; width: 171px; height: auto; }
.brand-context { padding-left: 15px; border-left: 1px solid rgb(255 255 255 / 42%); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.login-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: 19px; font-weight: 760; letter-spacing: -.02em; }
.brand-mark { display: inline-grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; color: #fff; background: var(--accent); font-weight: 800; }

.main-nav { display: flex; min-width: 0; flex: 1 1 auto; align-self: stretch; align-items: stretch; }
.main-nav > a, .nav-group > summary { display: inline-flex; min-height: 72px; align-items: center; padding: 0 12px; border-bottom: 3px solid transparent; color: rgb(255 255 255 / 88%); font-size: 13px; font-weight: 680; white-space: nowrap; }
.main-nav > a:hover, .main-nav > a.active, .nav-group > summary:hover, .nav-group.active > summary, .nav-group[open] > summary { color: #fff; background: rgb(116 0 5 / 18%); text-decoration: none; }
.main-nav > a.active, .nav-group.active > summary { border-bottom-color: #fff; }
.nav-group { position: relative; }
.nav-group > summary { gap: 7px; cursor: pointer; list-style: none; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after { content: '⌄'; font-size: 15px; line-height: 1; transition: transform .15s ease; }
.nav-group[open] > summary::after { transform: rotate(180deg); }
.nav-group-menu { display: grid; position: absolute; z-index: 30; top: calc(100% - 2px); left: 0; min-width: 205px; padding: 7px; border: 1px solid #e4e5e7; border-radius: 0 0 9px 9px; background: #fff; box-shadow: 0 12px 24px rgb(46 18 20 / 17%); }
.nav-group:not([open]) .nav-group-menu { display: none; }
.nav-group-menu a { display: flex; min-height: 37px; align-items: center; padding: 7px 10px; border-radius: 6px; color: var(--ink); font-size: 13px; font-weight: 650; white-space: nowrap; }
.nav-group-menu a:hover, .nav-group-menu a.active { color: var(--accent-dark); background: var(--accent-soft); text-decoration: none; }

.topbar-account { display: flex; min-width: max-content; align-items: center; gap: 14px; }
.user-summary { display: flex; align-items: center; gap: 9px; overflow: hidden; }
.user-summary span:last-child { display: grid; min-width: 0; }
.user-summary strong { overflow: hidden; color: #fff; text-overflow: ellipsis; white-space: nowrap; }
.user-summary small { overflow: hidden; color: var(--sidebar-muted); text-overflow: ellipsis; white-space: nowrap; }
.user-avatar { display: grid; width: 29px; height: 29px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: rgb(0 0 0 / 12%); font-size: 12px; font-weight: 700; }
.link-button { padding: 0; border: 0; color: var(--sidebar-muted); background: transparent; cursor: pointer; }
.link-button:hover { color: #fff; text-decoration: underline; }
.topbar-logout { color: #fff; font-size: 12px; font-weight: 700; }

.main-content { width: min(1540px, 100%); margin: 0 auto; padding: 34px 32px 58px; }
.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.page-header h1 { margin: 3px 0 5px; font-size: clamp(26px, 2.2vw, 34px); line-height: 1.1; letter-spacing: -.035em; }
.page-header p { margin: 0; color: var(--muted); }
.product-header-main { display: flex; min-width: 0; gap: 18px; align-items: flex-start; }
.product-header-copy { min-width: 0; }
.product-header-thumbnail { display: grid; width: 88px; height: 88px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #f7fafb; }
.product-header-thumbnail img { width: 100%; height: 100%; object-fit: contain; transform: scale(1.45); transform-origin: center; }
.eyebrow { margin: 0; color: var(--accent-dark) !important; font-size: 11px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.back-link { display: inline-block; margin-bottom: 12px; font-weight: 650; }
.result-count { padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #fff; white-space: nowrap; }

.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.stat-card { min-height: 112px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: 0 2px 4px rgb(19 34 56 / 2%); }
.stat-card span { display: block; color: var(--muted); font-size: 13px; }
.stat-card strong { display: block; margin-top: 10px; color: var(--ink); font-size: 29px; line-height: 1; letter-spacing: -.04em; }
.control-stat-card { display: block; color: inherit; }
.control-stat-card:hover { color: inherit; border-color: #e4a7ab; text-decoration: none; }
.control-stat-card.is-active { border-color: #df7a80; background: #fff5f5; box-shadow: 0 0 0 3px rgb(215 25 32 / 10%); }
.source-control-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.availability-comparison-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.content-grid, .detail-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(330px, 1fr); gap: 20px; margin-bottom: 20px; }
.detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panel-card { overflow: hidden; margin-bottom: 20px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow); }
.content-grid .panel-card, .detail-grid .panel-card { margin-bottom: 0; }
.table-card { padding: 0; }
.table-card .panel-heading { padding: 20px 20px 0; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.panel-heading h2 { margin: 0; font-size: 16px; letter-spacing: -.015em; }
.panel-heading p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.panel-heading > a { font-size: 13px; font-weight: 650; white-space: nowrap; }
.quick-product-summary { margin-bottom: 20px; }
.quick-product-summary-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(240px, 1fr); gap: 28px; }
.quick-summary-group + .quick-summary-group { padding-left: 28px; border-left: 1px solid var(--line); }
.quick-summary-group h3 { margin: 0 0 8px; font-size: 14px; }
.quick-summary-matrix-wrap { overflow-x: auto; }
.quick-summary-matrix { min-width: 610px; margin: 0; }
.quick-summary-matrix th, .quick-summary-matrix td { padding: 9px 8px; text-align: center; }
.quick-summary-matrix th:first-child, .quick-summary-matrix td:first-child { width: 150px; min-width: 150px; text-align: left; }
.quick-summary-matrix th { font-size: 10px; }
.quick-summary-matrix td { vertical-align: middle; }
.quick-summary-variant strong { display: block; color: var(--ink); font-size: 12px; }
.quick-summary-variant small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 500; }
.quick-summary-stock { display: grid; gap: 4px; justify-items: center; }
.quick-summary-stock > strong { font-size: 12px; white-space: nowrap; }
.quick-summary-list { margin: 0; }
.quick-summary-list > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; padding: 8px 0; border-bottom: 1px solid #edf1f5; }
.quick-summary-list > div:last-child { border-bottom: 0; }
.quick-summary-list dt { color: var(--muted); font-size: 13px; }
.quick-summary-list dd { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; text-align: right; }
.quick-summary-list dd > strong { font-size: 14px; white-space: nowrap; }
.quick-summary-missing { color: var(--muted); font-weight: 500; }
.report-filter-card { padding-bottom: 2px; }
.report-filter-card .filter-bar label { display: grid; gap: 6px; color: #3c5064; font-size: 13px; font-weight: 650; }
.report-filter-card .filter-bar .button { align-self: end; }
.report-tabs { margin-top: -2px; }
.report-header-actions { display: flex; align-items: center; gap: 10px; }
.negative-stock-quantity { color: #a73e4a; white-space: nowrap; }
.available-stock-quantity { color: #176c61; white-space: nowrap; }

.highlight-row { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; gap: 16px; align-items: center; margin-bottom: 18px; padding: 12px; border-radius: 8px; background: var(--accent-soft); }
.highlight-row > div { display: flex; gap: 8px; align-items: center; }
.highlight-row > span { color: #38605a; font-size: 13px; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th { padding: 11px 14px; border-bottom: 1px solid var(--line); color: var(--muted); background: #fafbfd; font-size: 11px; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
td { padding: 13px 14px; border-bottom: 1px solid #edf1f5; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fffafa; }
td small, .alert-list small, .product-table small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.empty-cell { padding: 28px 14px; color: var(--muted); text-align: center; }
.thumbnail-column { width: 108px; padding-right: 0; }
.product-thumbnail { display: grid; width: 80px; height: 80px; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #f7fafb; }
.product-thumbnail:hover { border-color: #e4a7ab; text-decoration: none; }
.product-thumbnail img { width: 100%; height: 100%; object-fit: contain; transform: scale(1.55); transform-origin: center; }
.product-thumbnail-empty { color: var(--muted); font-size: 10px; font-weight: 650; }
.product-link { color: var(--ink); font-weight: 680; }
.product-link:hover { color: var(--accent-dark); }
.table-action { font-size: 13px; font-weight: 650; white-space: nowrap; }
.comparison-value, .comparison-rate { white-space: nowrap; }
.comparison-value { font-weight: 750; }
.comparison-rate { font-size: 13px; font-weight: 650; }
.comparison-warning, .comparison-rate-stale { color: #9b6315; font-weight: 700; }
.comparison-reference { color: var(--muted); }
.comparison-difference-higher { color: #a73e4a; }
.comparison-difference-lower { color: #166158; }
.price-comparison-rates { display: flex; flex-wrap: wrap; gap: 7px 10px; align-items: center; margin: -3px 20px 17px; color: var(--muted); font-size: 12px; }
.price-comparison-rates-label { color: #3c5064; font-weight: 750; }
.price-comparison-rate-item { padding: 3px 7px; border: 1px solid #dbe8e6; border-radius: 5px; color: #315952; background: #f2f9f7; font-weight: 700; white-space: nowrap; }
.price-comparison-rates-empty { display: block; }
.price-comparison-rate-details { position: relative; color: var(--muted); }
.price-comparison-rate-details summary { color: var(--accent-dark); font-weight: 650; cursor: pointer; }
.price-comparison-rate-details ul { margin: 7px 0 0; padding-left: 17px; }
.price-matrix { min-width: 940px; }
.price-matrix th { vertical-align: top; }
.price-matrix th:first-child, .price-matrix td:first-child { width: 184px; min-width: 184px; }
.price-matrix th:not(:first-child), .price-matrix td:not(:first-child) { min-width: 158px; }
.price-matrix-source-name { display: block; color: #3c5064; font-size: 12px; line-height: 1.3; text-transform: none; }
.price-matrix th small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.price-matrix-base-column, .price-matrix-base-cell { background: #f5fbfa !important; }
.price-matrix-section th { padding: 8px 14px; color: #496174; background: #edf5f4; font-size: 10px; letter-spacing: .08em; text-align: left; }
.price-matrix-type { vertical-align: top; }
.price-matrix-type strong { display: block; }
.price-matrix-entry { display: grid; gap: 2px; align-content: start; }
.price-matrix-entry + .price-matrix-entry { margin-top: 9px; padding-top: 9px; border-top: 1px dashed #dbe4ec; }
.price-matrix-entry small { display: block; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.price-matrix-original { color: #526a7d !important; }
.price-matrix-reference { color: var(--muted); font-size: 11px; }
.price-matrix-difference { font-size: 12px; font-weight: 750; white-space: nowrap; }
.price-matrix-item { margin-top: 3px !important; color: #718195 !important; }
.price-matrix-missing { color: #aab5c0; }
.source-price-matrix { min-width: 930px; }
.source-price-matrix th { vertical-align: top; }
.source-price-matrix th:first-child, .source-price-matrix td:first-child { width: 185px; min-width: 185px; }
.source-price-matrix th:not(:first-child):not(:last-child), .source-price-matrix td:not(:first-child):not(:last-child) { min-width: 150px; }
.source-price-matrix th:last-child, .source-price-matrix td:last-child { width: 128px; min-width: 128px; }
.matrix-price-column-name { display: block; color: #3c5064; font-size: 12px; line-height: 1.3; text-transform: none; }
.source-price-matrix th small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.source-price-base-cell { background: #f5fbfa !important; }
.source-price-matrix-source { vertical-align: top; }
.source-price-matrix-source strong { display: block; color: #283d52; font-size: 12px; line-height: 1.35; }
.source-price-matrix-entry { display: grid; gap: 2px; color: #203b55; }
.source-price-matrix-entry + .source-price-matrix-entry { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #dbe4ec; }
.source-price-matrix-entry strong { font-size: 13px; }
.source-price-matrix-entry small { color: var(--muted); font-size: 11px; }
.source-price-matrix-purchase-column { background: #fffaf0; }
.source-price-matrix-updated { color: var(--muted); font-size: 11px; white-space: nowrap; }
.matrix-missing { color: #aab5c0; }
.source-items-table { min-width: 610px; }
.source-item-source, .source-item-source-column { width: 178px; min-width: 178px; }
.source-item-type-column, .source-item-type-cell { width: 88px; min-width: 88px; }
.source-item-external-id-column, .source-item-external-id-cell { width: 132px; min-width: 132px; }
.source-item-sku-column, .source-item-sku-cell { width: 112px; min-width: 112px; }
.source-item-presence-column, .source-item-presence-cell { width: 104px; min-width: 104px; }
.source-item-group-start td, .source-item-group-start th { border-top: 2px solid #dce7ee; }
.source-items-table tbody tr:first-child td, .source-items-table tbody tr:first-child th { border-top: 0; }
.source-items-table tbody tr:last-child th { border-bottom: 0; }
.source-item-source { vertical-align: top; color: #283d52; background: #f5fbfa; font-size: 12px; letter-spacing: 0; text-transform: none; }
.source-item-source strong { display: block; line-height: 1.35; }
.source-item-type, .source-item-presence { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 7px; border-radius: 5px; font-size: 10px; font-weight: 750; letter-spacing: .025em; white-space: nowrap; }
.source-item-type-product { color: #166158; background: #dff3ee; }
.source-item-type-sku { color: #385b8c; background: #e6effb; }
.source-item-identifier { padding: 2px 4px; border-radius: 4px; color: #3c5064; background: #f3f6f9; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; white-space: nowrap; }
.source-item-missing { color: #aab5c0; }
.source-item-presence-present { color: #166158; background: #dff3ee; }
.source-item-presence-missing { color: #a73e4a; background: #fde7e9; }
.source-item-presence-archived, .source-item-presence-unknown { color: #526a7d; background: #eaf0f5; }
.inventory-matrix { min-width: 1060px; }
.inventory-matrix th { vertical-align: top; }
.inventory-matrix th:nth-child(1), .inventory-matrix td:nth-child(1) { width: 170px; min-width: 170px; }
.inventory-matrix th:nth-child(2), .inventory-matrix td:nth-child(2) { width: 128px; min-width: 128px; }
.inventory-matrix th:nth-last-child(1), .inventory-matrix td:nth-last-child(1) { width: 120px; min-width: 120px; }
.inventory-matrix td { vertical-align: top; }
.inventory-matrix-source strong { display: block; color: #283d52; font-size: 12px; }
.inventory-matrix-source small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.inventory-matrix-source-repeat { color: #94a3b2; font-weight: 700; }
.inventory-matrix-sku { color: #3c5064; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; }
.inventory-matrix-source-start td { border-top: 2px solid #dce7ee; }
.inventory-matrix-entry { display: grid; gap: 4px; align-content: start; }
.inventory-availability { display: inline-flex; width: fit-content; align-items: center; min-height: 21px; padding: 3px 6px; border-radius: 5px; font-size: 10px; font-weight: 750; white-space: nowrap; }
.inventory-availability-available { color: #166158; background: #dff3ee; }
.inventory-availability-unavailable { color: #9d3340; background: #fde7e9; }
.inventory-availability-unknown { color: #526a7d; background: #eaf0f5; }
.inventory-matrix-entry small, .inventory-matrix-updated { color: var(--muted); font-size: 11px; white-space: nowrap; }

.status, .severity { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 8px; border-radius: 99px; font-size: 11px; font-weight: 750; letter-spacing: .025em; white-space: nowrap; }
.status { color: #496174; background: #eaf0f5; }
.status-completed, .status-approved, .status-sent { color: #166158; background: #dff3ee; }
.status-completed_with_errors, .status-in_review, .status-retry { color: #9b6315; background: #fff0d8; }
.status-failed, .status-blocked, .status-archived { color: #a73e4a; background: #fde7e9; }
.status-new, .status-draft, .status-processing, .status-staging, .status-queued, .status-pending, .status-sending { color: #385b8c; background: #e6effb; }
.severity-info { color: #385b8c; background: #e6effb; }
.severity-warning { color: #95600f; background: #fff0d8; }
.severity-error { color: #a73e4a; background: #fde7e9; }
.product-status-stack { display: grid; justify-items: start; gap: 6px; }
.product-readiness { display: inline-flex; min-height: 23px; align-items: center; padding: 3px 8px; border: 1px solid transparent; border-radius: 99px; font-size: 10px; font-weight: 800; letter-spacing: .02em; line-height: 1.2; white-space: nowrap; }
.product-readiness-ready { border-color: #b8dfd5; color: #166158; background: #dff3ee; }
.product-readiness-awaiting-approval { border-color: #efd19d; color: #8d5b12; background: #fff0d8; }
.product-readiness-incomplete { border-color: #efb8bd; color: #a73e4a; background: #fde7e9; }
.product-readiness-inactive { border-color: #d9e1e8; color: #526a7d; background: #eaf0f5; }

.alert-list { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.alert-list li { display: flex; gap: 10px; align-items: flex-start; padding-bottom: 12px; border-bottom: 1px solid #edf1f5; }
.alert-list li:last-child { padding-bottom: 0; border: 0; }
.alert-list strong { display: block; font-size: 13px; }
.product-alert-panel { padding: 20px; }
.product-alert-panel .panel-heading { margin-bottom: 14px; }
.product-alert-list { display: grid; gap: 9px; }
.product-alert { padding: 12px; border: 1px solid #e0e8ef; border-left: 4px solid #8ca0b1; border-radius: 8px; background: #fbfcfe; }
.product-alert-warning { border-left-color: #d29a3b; background: #fffdf8; }
.product-alert-error { border-left-color: #c85b66; background: #fffafa; }
.product-alert-info { border-left-color: #6b91c4; }
.product-alert-heading { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; }
.product-alert-heading strong { display: block; color: #283d52; font-size: 13px; line-height: 1.35; }
.product-alert-heading p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.product-alert-items { margin: 9px 0 0; color: #3c5064; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 11px; line-height: 1.45; }
.product-alert-meta { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.product-alert-meta strong { color: #3c5064; }
.product-alert-meta time { margin-left: auto; white-space: nowrap; }
.empty-state { color: var(--muted); }

.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 18px; }
.filter-bar label { display: block; }
.filter-checkbox { display: inline-flex !important; min-height: 40px; align-items: center; gap: 8px; color: #3c5064; font-size: 13px; font-weight: 650; white-space: nowrap; }
.filter-checkbox input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.source-control-filter { align-items: flex-end; }
.source-control-filter label:not(.search-field) { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 650; }
.manual-import-card { padding-bottom: 16px; }
.manual-import-form { display: flex; gap: 10px; align-items: end; margin-bottom: 18px; }
.manual-import-form label { display: grid; min-width: min(100%, 380px); gap: 5px; color: var(--muted); font-size: 12px; font-weight: 650; }
.manual-import-statuses { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.manual-import-statuses > li:not(.manual-import-note) { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 12px; border: 1px solid #e3eaf1; border-radius: 8px; background: #fbfcfe; }
.manual-import-statuses strong { display: block; font-size: 13px; }
.manual-import-statuses small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.manual-import-note { margin: -3px 12px 2px; color: #95600f; font-size: 12px; }
.search-field { flex: 1 1 260px; }
input[type="search"], input[type="email"], input[type="password"], select { width: 100%; min-height: 40px; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; outline: none; color: var(--ink); background: #fff; }
input:focus, select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(31 122 113 / 13%); }
select { min-width: 180px; }
.button { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; padding: 8px 13px; border: 1px solid transparent; border-radius: 7px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.button:hover { text-decoration: none; }
.button-primary { color: #fff; background: var(--accent); }
.button-primary:hover { color: #fff; background: var(--accent-dark); }
.button-secondary { border-color: #e4a7ab; color: var(--accent-dark); background: #fff5f5; }
.button-secondary:hover { color: var(--accent-dark); background: #ffe9ea; }
.button-danger { color: #9d3340; background: #fff; border-color: #efc0c6; }
.button-danger:hover { color: #842a35; background: #fdecef; }
.button-quiet { border-color: var(--line); color: var(--muted); background: #fff; }
.button-quiet:hover { color: var(--ink); }
.button:disabled { opacity: .48; cursor: not-allowed; }
.header-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.product-edit-form { max-width: 1180px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.form-field { display: grid; gap: 6px; color: #3c5064; font-size: 13px; font-weight: 650; }
.form-field-wide { grid-column: 1 / -1; }
.form-field em { color: #b4233e; font-style: normal; }
.form-field small, .attribute-editor small { color: var(--muted); font-size: 12px; font-weight: 400; }
.form-field input, .form-field textarea, .form-field select, .attribute-editor input, .attribute-editor textarea, .attribute-editor select { width: 100%; min-height: 40px; box-sizing: border-box; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; outline: none; color: var(--ink); background: #fff; font: inherit; }
.form-field textarea, .attribute-editor textarea { resize: vertical; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus, .attribute-editor input:focus, .attribute-editor textarea:focus, .attribute-editor select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(31 122 113 / 13%); }
.category-multiselect { min-height: 230px !important; }
.attribute-editor { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr); gap: 18px; padding: 15px 0; border-top: 1px solid #edf1f5; }
.attribute-editor:first-of-type { border-top: 0; padding-top: 0; }
.attribute-editor strong { display: block; }
.attribute-editor small { display: block; margin-top: 3px; }
.attribute-editor fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.attribute-editor-locked { background: #fff9ed; }
.field-lock-note { margin: 0 0 12px; padding: 8px 10px; border: 1px solid #f0d8a8; border-radius: 7px; color: #835615; background: #fff8e8; font-size: 12px; }
.attribute-editor .checkbox-label { min-height: 40px; }
.field-error { color: #b4233e !important; font-weight: 650 !important; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.dimensions-editor { scroll-margin-top: 24px; }
.dimensions-editor-heading { align-items: center; }
.package-editor-list { display: grid; gap: 12px; }
.package-editor-card { padding: 15px; border: 1px solid #dfe7ee; border-radius: 9px; background: #fbfcfe; }
.package-editor-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.package-editor-card-heading h3 { margin: 0; color: #2f4559; font-size: 14px; }
.package-remove-button { min-height: 34px; padding: 6px 10px; font-size: 12px; }
.package-remove-button[hidden] { display: none; }
.measurement-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.measurement-field input { font-variant-numeric: tabular-nums; }
.pallet-editor { margin-top: 16px; padding: 15px; border: 1px solid #d7e6e3; border-radius: 9px; background: #f6fbfa; }
.pallet-shipping-toggle { display: flex; align-items: flex-start; gap: 11px; color: #294a45; cursor: pointer; }
.pallet-shipping-toggle > input { width: 18px; height: 18px; flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--accent); }
.pallet-shipping-toggle strong, .pallet-shipping-toggle small { display: block; }
.pallet-shipping-toggle small { margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 400; }
.pallet-measurements { margin-top: 15px; padding-top: 15px; border-top: 1px solid #d7e6e3; }
.pallet-measurements[hidden] { display: none; }
.user-form { max-width: 1040px; }
.role-selection, .permission-groups { display: grid; gap: 10px; }
.role-selection { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.role-option, .permission-option { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid #e3eaf1; border-radius: 8px; background: #fbfcfe; cursor: pointer; }
.role-option:hover, .permission-option:hover { border-color: #e4a7ab; }
.role-option input, .permission-option input { margin-top: 3px; }
.role-option strong, .permission-option strong { display: block; font-size: 13px; }
.role-option small, .permission-option small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.permission-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.permission-group { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }
.permission-group legend { padding: 0 5px; color: #3c5064; font-size: 13px; font-weight: 750; }
.permission-group .permission-option + .permission-option { margin-top: 8px; }
.permission-option-inherited { border-style: dashed; color: #526a7d; background: #f5f8fb; }
.role-badge { display: inline-flex; margin: 2px 4px 2px 0; padding: 3px 7px; border-radius: 4px; color: #385b8c; background: #e6effb; font-size: 11px; font-weight: 700; }
.change-summary-layout { align-items: start; }
.change-summary-form { display: grid; gap: 20px; }
.change-summary-types { min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 9px; }
.change-summary-types legend { padding: 0 6px; color: #3c5064; font-size: 13px; font-weight: 750; }
.change-summary-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.change-summary-enabled { padding: 12px 14px; border: 1px solid #dcebe6; border-radius: 8px; color: #305f58; background: #f4fbf9; font-weight: 700; }
.change-summary-latest { margin-top: 0; }
.change-summary-steps { display: grid; gap: 10px; margin: 0; padding-left: 22px; color: var(--muted); font-size: 13px; }
.change-summary-layout aside .panel-card:last-child { margin-bottom: 0; }
.muted { color: var(--muted); font-size: 13px; }
.empty-state { margin: 0; color: var(--muted); }
.compact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.compact-form .button { justify-self: start; }
.change-request-list { display: grid; gap: 10px; }
.change-request { padding: 13px; border: 1px solid #e3eaf1; border-radius: 8px; background: #fbfcfe; }
.change-request p { margin: 8px 0 0; }
.change-request-heading { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.change-request-meta { color: var(--muted); font-size: 12px; }
.change-request-reason { white-space: pre-line; }
.review-actions { display: grid; grid-template-columns: minmax(160px, 1fr) auto auto; gap: 8px; margin-top: 12px; }
.review-actions input { min-height: 40px; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; outline: none; color: var(--ink); background: #fff; font: inherit; }
.review-actions input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(31 122 113 / 13%); }
.field-lock-list { display: grid; gap: 10px; }
.field-lock-item { padding: 12px; border: 1px solid #edd9aa; border-radius: 8px; background: #fffaf0; }
.field-lock-item small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.field-lock-item p { margin: 8px 0 0; }
.unlock-action { display: grid; grid-template-columns: minmax(150px, 1fr) auto; gap: 8px; margin-top: 10px; }
.unlock-action input { min-height: 40px; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; outline: none; color: var(--ink); background: #fff; font: inherit; }
.unlock-action input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(31 122 113 / 13%); }

.pagination { display: flex; justify-content: space-between; gap: 10px; padding: 17px 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.pagination a { font-weight: 650; }
.pagination-disabled { color: #aab5c0; }

.definition-list { display: grid; gap: 14px; margin: 0; }
.definition-list > div { display: grid; grid-template-columns: 135px minmax(0, 1fr); gap: 14px; }
.definition-list dt { color: var(--muted); }
.definition-list dd { margin: 0; font-weight: 550; }
.long-text { max-height: 180px; overflow: auto; white-space: pre-line; }
.identifier { display: inline-block; margin: 1px 5px 1px 0; padding: 2px 6px; border-radius: 4px; color: #42586c; background: #eef3f7; font-size: 12px; }
.identifier strong { margin-right: 3px; font-size: 10px; letter-spacing: .04em; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.media-card { display: block; overflow: hidden; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 8px; background: #f7fafb; }
.media-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.media-card:hover img { transform: scale(1.04); }
.monospace { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; }
.tabs { display: flex; gap: 4px; margin-bottom: 18px; padding-bottom: 1px; border-bottom: 1px solid var(--line); }
.tabs a { padding: 9px 11px; border-bottom: 2px solid transparent; color: var(--muted); font-weight: 650; }
.tabs a.active { border-color: var(--accent); color: var(--accent-dark); }

.flash { margin-bottom: 18px; padding: 11px 13px; border-radius: 8px; }
.flash-success { border: 1px solid #b7ded7; color: #175e55; background: #e4f5f1; }
.flash-error { border: 1px solid #f0bbc0; color: #9d3340; background: #fdecef; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.mapping-table small, .mapping-history-list small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.mapping-source-link { margin: 16px 0 0; }
.mapping-block-note { margin: 0 0 15px; padding: 13px; border: 1px solid #f0d8a8; border-radius: 8px; color: #835615; background: #fff8e8; }
.mapping-block-note p { margin: 7px 0; white-space: pre-line; }
.mapping-decision-form { display: grid; gap: 10px; }
.mapping-decision-form label { display: grid; gap: 6px; color: #3c5064; font-size: 13px; font-weight: 650; }
.mapping-decision-form input, .mapping-target-form input { min-height: 40px; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; outline: none; color: var(--ink); background: #fff; font: inherit; }
.mapping-decision-form input:focus, .mapping-target-form input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(31 122 113 / 13%); }
.mapping-search { margin-top: 0; }
.mapping-target-form { display: grid; grid-template-columns: minmax(170px, 1fr) auto; gap: 8px; align-items: center; }
.mapping-history-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.mapping-history-list li { display: grid; gap: 3px; padding: 11px 12px; border: 1px solid #e3eaf1; border-radius: 8px; background: #fbfcfe; }
.source-control-freshness { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: -8px 0 20px; color: var(--muted); font-size: 12px; }
.source-control-freshness > strong { color: #3c5064; font-size: 13px; }
.source-freshness-item { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border: 1px solid #dbe8e5; border-radius: 6px; color: #315952; background: #f1f8f6; }
.source-freshness-item > span { font-weight: 750; }
.source-freshness-item time { color: var(--muted); white-space: nowrap; }
.source-freshness-item em { color: #176c61; font-size: 11px; font-style: normal; font-weight: 700; }
.source-freshness-item.is-stale { border-color: #f0d8a8; color: #835615; background: #fff8e8; }
.source-freshness-item.is-stale em { color: #95600f; }
.source-control-product-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin-top: 3px; }
.source-control-product-meta small { margin: 0; }
.source-control-priority { display: inline-flex; padding: 2px 6px; border-radius: 999px; font-size: 10px; font-weight: 750; line-height: 1.25; }
.source-control-priority.priority-critical { color: #9d3340; background: #fdecef; }
.source-control-priority.priority-warning { color: #95600f; background: #fff0d8; }
.source-control-priority.priority-info { color: #385b8c; background: #e6effb; }
.source-control-priority.priority-normal { color: #38605a; background: var(--accent-soft); }
.source-control-pair { display: grid; gap: 3px; min-width: 145px; }
.source-control-pair > span { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: baseline; font-size: 13px; }
.source-control-pair > span + span { padding-top: 3px; border-top: 1px solid #edf1f5; }
.source-control-pair small { overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.source-control-pair strong { font-size: 13px; white-space: nowrap; }
.source-control-key { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.source-control-issues { display: grid; min-width: 210px; gap: 4px; }
.source-control-issue { display: inline-flex; padding: 3px 6px; border-radius: 4px; color: #95600f; background: #fff0d8; font-size: 11px; font-weight: 700; line-height: 1.2; }
.empty-panel { max-width: 720px; }
.empty-panel h2 { margin-top: 0; }
.empty-panel p { margin-bottom: 18px; color: var(--muted); }

.login-page { display: grid; min-height: var(--app-viewport-height); place-items: center; padding: 24px; background: linear-gradient(135deg, #fff0f1, #f8f8f9 46%, #f3e9ea); }
.login-card { display: grid; gap: 26px; width: min(100%, 410px); padding: 34px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 24px 62px rgb(20 39 65 / 13%); }
.login-card .login-brand { color: var(--ink); }
.login-card h1 { margin: 0; font-size: 28px; letter-spacing: -.035em; }
.login-card p { margin: 5px 0 0; color: var(--muted); }
.login-form { display: grid; gap: 16px; }
.login-form label:not(.checkbox-label) { display: grid; gap: 6px; color: #3c5064; font-size: 13px; font-weight: 650; }
.checkbox-label { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 13px; }
.choice-group { grid-column: 1 / -1; display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.choice-group legend { margin-bottom: 6px; padding: 0; color: #3c5064; font-size: 13px; font-weight: 650; }
.choice-group .checkbox-label { color: var(--ink); }
.login-form .button { width: 100%; margin-top: 2px; }

@media (max-width: 1050px) {
    .topbar-inner { gap: 14px; padding: 0 24px; }
    .main-nav > a, .nav-group > summary { padding-right: 9px; padding-left: 9px; }
    .topbar-account .user-summary span:last-child { display: none; }
    .main-content { padding: 30px 25px 48px; }
    .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .source-control-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .content-grid, .detail-grid { grid-template-columns: 1fr; }
    .attribute-editor { grid-template-columns: 1fr; gap: 8px; }
    .measurement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .compact-form { grid-template-columns: 1fr; }
    .role-selection, .permission-groups { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .topbar-inner { min-height: 58px; flex-wrap: wrap; gap: 0 12px; padding: 0 14px; }
    .brand { min-height: 58px; }
    .brand-logo { width: 142px; }
    .brand-context { display: none; }
    .topbar-account { margin-left: auto; }
    .topbar-account .user-summary { display: none; }
    .main-nav { order: 3; width: calc(100% + 28px); flex: 1 0 calc(100% + 28px); margin: 0 -14px; padding: 0 8px; border-top: 1px solid rgb(255 255 255 / 18%); }
    .main-nav > a, .nav-group > summary { min-height: 42px; padding-right: 10px; padding-left: 10px; font-size: 12px; }
    .nav-group-menu { min-width: 190px; max-width: calc(100vw - 28px); }
    .nav-group-administration .nav-group-menu { right: 0; left: auto; }
    .main-content { padding: 24px 14px 38px; }
    .page-header { display: grid; gap: 14px; }
    .stat-grid { gap: 10px; }
    .source-control-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stat-card { min-height: 92px; padding: 14px; }
    .stat-card strong { font-size: 23px; }
    .filter-bar { flex-wrap: wrap; }
    .filter-bar .search-field { min-width: 100%; }
    .filter-bar select { min-width: 0; }
    .manual-import-form { display: grid; }
    .manual-import-form label { min-width: 0; }
    .manual-import-statuses > li:not(.manual-import-note) { align-items: flex-start; flex-direction: column; gap: 8px; }
    .panel-card { padding: 15px; border-radius: 10px; }
    .table-card { padding: 0; }
    .table-card .panel-heading { padding: 15px 15px 0; }
    .quick-product-summary-grid { grid-template-columns: 1fr; gap: 18px; }
    .quick-summary-group + .quick-summary-group { padding-top: 18px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
    th, td { padding: 10px; }
    .highlight-row { grid-template-columns: 1fr; gap: 6px; }
    .definition-list > div { grid-template-columns: 1fr; gap: 3px; }
    .review-actions { grid-template-columns: 1fr 1fr; }
    .review-actions input { grid-column: 1 / -1; }
    .unlock-action { grid-template-columns: 1fr; }
    .dimensions-editor-heading, .package-editor-card-heading { align-items: stretch; flex-direction: column; }
    .dimensions-editor-heading .button, .package-remove-button { width: 100%; }
    .measurement-grid { grid-template-columns: 1fr; }
    .mapping-target-form { grid-template-columns: 1fr; }
    .price-comparison-rates { margin-right: 15px; margin-left: 15px; }
    .price-matrix th:first-child, .price-matrix td:first-child { position: sticky; left: 0; z-index: 1; }
    .price-matrix th:first-child { z-index: 3; background: #fafbfd; }
    .price-matrix td:first-child { background: #fff; }
    .price-matrix tbody tr:hover td:first-child { background: #fbfdfd; }
    .promotion-editor-table tbody td:first-child { position: static; left: auto; z-index: auto; }
    .source-price-matrix th:first-child, .source-price-matrix td:first-child { position: sticky; left: 0; z-index: 1; }
    .source-price-matrix th:first-child { z-index: 3; background: #fafbfd; }
    .source-price-matrix td:first-child { background: #fff; }
    .source-price-matrix tbody tr:hover td:first-child { background: #fbfdfd; }
    .inventory-matrix th:nth-child(1), .inventory-matrix td:nth-child(1) { position: sticky; left: 0; z-index: 1; }
    .inventory-matrix th:nth-child(2), .inventory-matrix td:nth-child(2) { position: sticky; left: 170px; z-index: 1; }
    .inventory-matrix th:nth-child(1), .inventory-matrix th:nth-child(2) { z-index: 3; background: #fafbfd; }
    .inventory-matrix td:nth-child(1), .inventory-matrix td:nth-child(2) { background: #fff; }
    .inventory-matrix tbody tr:hover td:nth-child(1), .inventory-matrix tbody tr:hover td:nth-child(2) { background: #fbfdfd; }
}

.product-management-section { margin-top: 28px; }
.product-management-heading { margin-bottom: 13px; }
.product-management-heading h2 { margin: 0; font-size: 16px; letter-spacing: -.015em; }
.product-management-heading p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.product-management-grid { margin-bottom: 0; }
.source-items-panel { margin-bottom: 20px; }
.collapsible-panel { padding: 0; }
.collapsible-panel-summary { margin: 0; padding: 20px; cursor: pointer; list-style: none; }
.collapsible-panel-summary::-webkit-details-marker { display: none; }
.collapsible-panel-summary::after { width: 26px; height: 26px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid #cbd7e2; border-radius: 50%; color: var(--accent-dark); content: '+'; font-size: 19px; font-weight: 500; line-height: 1; }
.collapsible-panel-summary:focus-visible { outline: 3px solid rgb(31 122 113 / 24%); outline-offset: -3px; }
.collapsible-panel[open] .collapsible-panel-summary { border-bottom: 1px solid var(--line); }
.collapsible-panel[open] .collapsible-panel-summary::after { content: '−'; }
.collapsible-panel-content { padding: 20px; }
.collapsible-panel-count { min-width: 24px; padding: 3px 7px; border-radius: 999px; color: #38605a; background: var(--accent-soft); font-size: 12px; font-weight: 750; text-align: center; }
.collapsible-panel-count-warning { color: #835615; background: #fff2d6; }

.product-summary-list > div { grid-template-columns: 145px minmax(0, 1fr); }
.category-path-list { display: grid; gap: 6px; }
.category-path { width: fit-content; padding: 4px 8px; border: 1px solid #dbe8e5; border-radius: 6px; color: #38605a; background: #f1f8f6; font-size: 13px; font-weight: 650; }
.description-dialog-trigger { min-height: 34px; padding: 6px 10px; }
.dimensions-table th:not(:first-child), .dimensions-table td:not(:first-child) { text-align: right; }
.dimensions-table td:not(:first-child) { font-variant-numeric: tabular-nums; white-space: nowrap; }
.description-dialog { width: min(760px, calc(100vw - 32px)); max-height: min(760px, calc(100vh - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: var(--surface); box-shadow: 0 24px 72px rgb(19 34 56 / 28%); }
.description-dialog::backdrop { background: rgb(19 34 56 / 45%); }
.description-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px; border-bottom: 1px solid var(--line); }
.description-dialog-header h2 { margin: 3px 0 0; font-size: 20px; line-height: 1.25; }
.description-dialog-header .eyebrow { margin: 0; }
.description-dialog-close { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: #fff; cursor: pointer; font-size: 24px; line-height: 1; }
.description-dialog-close:hover { border-color: #e4a7ab; color: var(--accent-dark); }
.description-dialog-body { max-height: min(520px, calc(100vh - 190px)); padding: 20px; overflow-y: auto; white-space: pre-line; line-height: 1.65; }
.description-dialog-actions { display: flex; justify-content: flex-end; padding: 14px 20px; border-top: 1px solid var(--line); }
.source-price-actions { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
.source-price-actions small { color: var(--muted); font-size: 13px; }
.price-history-dialog { width: min(1180px, calc(100vw - 32px)); }
.price-history-dialog-body { max-height: min(680px, calc(100vh - 190px)); white-space: normal; }
.price-history-intro { margin: 0 0 18px; color: var(--muted); }
.price-history-source + .price-history-source { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.price-history-source h3 { margin: 0 0 10px; font-size: 16px; }
.price-history-table th, .price-history-table td { vertical-align: top; }
.price-history-table td small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.price-history-current { display: inline-flex; padding: 3px 7px; border-radius: 999px; color: #38605a; background: var(--accent-soft); font-size: 12px; font-weight: 750; }

@media (max-width: 700px) {
    .collapsible-panel { padding: 0; }
    .collapsible-panel-summary, .collapsible-panel-content { padding: 15px; }
    .product-summary-list > div { grid-template-columns: 1fr; }
    .description-dialog { width: calc(100vw - 20px); max-height: calc(100vh - 20px); }
    .price-history-dialog { width: calc(100vw - 20px); }
    .description-dialog-header, .description-dialog-body { padding: 15px; }
    .description-dialog-actions { padding: 12px 15px; }
    .source-price-actions { align-items: flex-start; flex-direction: column; }
}

/* Application shell and navigation */
.topbar { z-index: 100; }
.topbar-inner { width: 100%; min-height: 64px; gap: 22px; padding: 0 28px; }
.brand-logo { width: 156px; }
.brand-context { font-size: 11px; }
.global-search { display: flex; position: relative; width: min(540px, 42vw); min-width: 220px; height: 38px; align-items: center; margin-right: auto; border: 1px solid rgb(255 255 255 / 27%); border-radius: 9px; background: rgb(93 0 5 / 26%); transition: border-color .15s ease, background .15s ease; }
.global-search:focus-within { border-color: rgb(255 255 255 / 78%); background: rgb(99 0 5 / 40%); }
.global-search-icon { margin: 0 9px 0 12px; color: rgb(255 255 255 / 82%); font-size: 22px; line-height: 1; transform: rotate(-20deg); }
.global-search input { width: 100%; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; color: #fff; background: transparent; font-size: 13px; }
.global-search input::placeholder { color: rgb(255 255 255 / 74%); }
.global-search kbd, .sidebar-shortcuts kbd { display: inline-grid; min-width: 20px; height: 20px; place-items: center; border: 1px solid rgb(255 255 255 / 28%); border-bottom-color: rgb(255 255 255 / 50%); border-radius: 4px; color: rgb(255 255 255 / 92%); background: rgb(255 255 255 / 10%); font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.global-search kbd { margin: 0 9px; }
.topbar-account { gap: 12px; }
.topbar-logout { padding: 6px 8px; border-radius: 6px; background: rgb(116 0 5 / 24%); }
.topbar-logout:hover { background: rgb(116 0 5 / 42%); text-decoration: none; }

.app-frame { display: grid; width: 100%; min-height: calc(var(--app-viewport-height) - var(--app-topbar-height)); grid-template-columns: 232px minmax(0, 1fr); transition: grid-template-columns .18s ease; }
.app-sidebar { position: sticky; top: var(--app-topbar-height); display: flex; height: calc(var(--app-viewport-height) - var(--app-topbar-height)); flex-direction: column; padding: 20px 12px 16px; overflow-y: auto; border-right: 1px solid #e5e9ee; background: #fff; scrollbar-gutter: stable; }
.sidebar-toggle { display: inline-grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; align-self: flex-end; margin: 0 2px 12px; padding: 0; border: 1px solid #dce3e9; border-radius: 8px; color: #657789; background: #fff; cursor: pointer; transition: color .15s ease, border-color .15s ease, background .15s ease; }
.sidebar-toggle:hover { border-color: #e1a4a8; color: var(--accent-dark); background: var(--accent-soft); }
.sidebar-toggle:focus-visible { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.sidebar-toggle-icon { font-size: 25px; line-height: 1; transition: transform .18s ease; }
.sidebar-nav { display: grid; gap: 3px; }
.sidebar-nav a { display: flex; min-height: 40px; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; color: #516172; font-size: 13px; font-weight: 680; }
.sidebar-nav a:hover { color: var(--accent-dark); background: var(--accent-soft); text-decoration: none; }
.sidebar-nav a.active { color: var(--accent-dark); background: #ffe8ea; box-shadow: inset 3px 0 0 var(--accent); }
.sidebar-icon { display: inline-grid; width: 18px; height: 18px; flex: 0 0 auto; place-items: center; color: #7b8997; font-size: 17px; font-weight: 700; line-height: 1; }
.sidebar-nav a.active .sidebar-icon { color: var(--accent); }
.sidebar-label { margin: 18px 10px 5px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.sidebar-nav .nav-badge { min-width: 21px; margin-left: auto; padding: 2px 6px; border-radius: 999px; color: #456179; background: #eaf0f5; font-size: 10px; font-weight: 800; line-height: 1.35; text-align: center; }
.sidebar-nav .nav-badge-alert { color: #a12e38; background: #fde6e8; }
.sidebar-shortcuts { display: grid; gap: 8px; margin-top: auto; padding: 16px 10px 0; border-top: 1px solid #eef1f4; color: var(--muted); font-size: 11px; }
.sidebar-shortcuts p { margin: 0 0 2px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.sidebar-shortcuts span { display: flex; align-items: center; gap: 4px; }
.sidebar-shortcuts kbd { border-color: #dce3e9; border-bottom-color: #cad4dc; color: #657789; background: #f8fafc; }
.main-content { width: 100%; min-width: 0; margin: 0 auto; padding: 30px 34px 60px; }

@media (min-width: 821px) and (min-height: 541px), (min-width: 821px) and (pointer: fine) {
    .sidebar-is-collapsed .app-frame { grid-template-columns: 68px minmax(0, 1fr); }
    .sidebar-is-collapsed .app-sidebar { padding-right: 8px; padding-left: 8px; scrollbar-gutter: auto; }
    .sidebar-is-collapsed .sidebar-toggle { align-self: center; margin-right: 0; margin-left: 0; }
    .sidebar-is-collapsed .sidebar-toggle-icon { transform: rotate(180deg); }
    .sidebar-is-collapsed .sidebar-nav a { justify-content: center; padding-right: 8px; padding-left: 8px; }
    .sidebar-is-collapsed .sidebar-nav a > span:not(.sidebar-icon):not(.nav-badge),
    .sidebar-is-collapsed .sidebar-nav .nav-badge,
    .sidebar-is-collapsed .sidebar-shortcuts { display: none; }
    .sidebar-is-collapsed .sidebar-label { height: 1px; margin: 12px 8px 8px; overflow: hidden; color: transparent; background: #eef1f4; font-size: 0; }
}

/* Shared operational UI */
.page-header { margin-bottom: 24px; }
.page-header h1 { font-size: clamp(26px, 2vw, 32px); }
.panel-card { border-color: #e2e7ec; box-shadow: 0 5px 18px rgb(19 34 56 / 4%); }
.stat-card { position: relative; min-height: 118px; border-color: #e2e7ec; box-shadow: none; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.stat-card:hover { border-color: #d7b0b4; box-shadow: 0 8px 20px rgb(19 34 56 / 6%); transform: translateY(-1px); }
.stat-card strong { font-variant-numeric: tabular-nums; }
.stat-card a { display: inline-flex; margin-top: 8px; font-size: 12px; font-weight: 700; }
.status::before, .severity::before { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; content: ''; background: currentColor; }
.status, .severity { gap: 5px; }
.table-wrap { scrollbar-color: #b7c1ca transparent; scrollbar-width: thin; }
tbody tr { transition: background .12s ease; }
.table-action { display: inline-flex; min-height: 30px; align-items: center; padding: 5px 8px; border-radius: 6px; }
.table-action:hover { background: var(--accent-soft); text-decoration: none; }
.empty-cell, .empty-state { color: var(--muted); }
.empty-cell::before, .empty-state::before { display: block; margin-bottom: 6px; color: #aab5bf; content: '—'; font-size: 22px; line-height: .8; }
.flash { box-shadow: 0 3px 10px rgb(19 34 56 / 5%); }
.pagination { align-items: center; }
.pagination-summary strong { color: #40556a; font-variant-numeric: tabular-nums; }

@media (max-width: 1050px) {
    .topbar-inner { gap: 14px; padding: 0 22px; }
    .global-search { width: min(430px, 38vw); }
    .app-frame { grid-template-columns: 210px minmax(0, 1fr); }
    .app-sidebar { padding-right: 10px; padding-left: 10px; }
    .main-content { padding: 28px 26px 52px; }
}

@media (max-width: 820px) {
    .topbar-inner { min-height: 60px; }
    .brand-logo { width: 146px; }
    .brand-context { display: none; }
    .app-frame { display: block; min-height: 0; }
    .app-sidebar { position: sticky; top: var(--app-topbar-height); z-index: 90; display: block; width: 100%; height: auto; padding: 7px 12px; overflow-x: auto; overflow-y: hidden; border-right: 0; border-bottom: 1px solid #e5e9ee; white-space: nowrap; scrollbar-gutter: auto; }
    .sidebar-toggle { display: none; }
    .sidebar-nav { display: flex; gap: 3px; width: max-content; }
    .sidebar-nav a { min-height: 36px; gap: 7px; padding: 7px 9px; }
    .sidebar-nav a.active { box-shadow: inset 0 -2px 0 var(--accent); }
    .sidebar-label, .sidebar-shortcuts { display: none; }
    .sidebar-icon { font-size: 15px; }
    .main-content { padding: 26px 22px 48px; }
}

@media (max-width: 640px) {
    .topbar-inner { min-height: 58px; flex-wrap: wrap; gap: 0 10px; padding: 0 14px; }
    .brand { min-height: 58px; }
    .brand-logo { width: 134px; }
    .topbar-account .user-summary { display: none; }
    .topbar-logout { padding-right: 0; padding-left: 0; background: transparent; }
    .global-search { order: 3; width: calc(100% + 28px); min-width: 0; height: 42px; margin: 0 -14px; border-width: 1px 0 0; border-radius: 0; background: rgb(116 0 5 / 24%); }
    .global-search:focus-within { background: rgb(116 0 5 / 34%); }
    .app-sidebar { top: var(--app-topbar-height); }
    .sidebar-nav a { padding: 7px 8px; font-size: 12px; }
    .sidebar-nav .nav-badge { display: none; }
    .main-content { padding: 22px 14px 38px; }
    .page-header { gap: 12px; }
}

/* Daily catalogue operations */
.page-header-actions,
.alert-actions,
.compact-inline-form,
.taxonomy-item summary,
.taxonomy-options {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.page-header-actions { flex-wrap: wrap; justify-content: flex-end; }
.bulk-workflow-form { display: block; }
.bulk-workflow-toolbar {
    position: sticky;
    z-index: 40;
    top: calc(var(--app-topbar-height) + var(--app-navigation-height));
    display: grid;
    width: 100%;
    grid-template-columns: 260px 320px max-content;
    align-items: end;
    gap: 12px;
    padding: 14px 20px 16px;
    border-bottom: 1px solid #dfe5ea;
    background: rgb(255 255 255 / 96%);
    box-shadow: 0 9px 18px -18px rgb(19 34 56 / 55%);
    backdrop-filter: blur(10px);
}
.bulk-workflow-toolbar .form-field { min-width: 0; margin: 0; }
.bulk-workflow-toolbar .form-field-wide { grid-column: auto; }
.bulk-workflow-toolbar .button { min-height: 40px; }
.compact-inline-form { flex-wrap: wrap; }
.compact-inline-form input,
.compact-inline-form select { min-width: 7rem; max-width: 16rem; }
.alert-actions { align-items: flex-start; flex-direction: column; }
.alert-actions form { margin: 0; }
.taxonomy-section { margin-bottom: 1.5rem; }
.taxonomy-create-form,
.taxonomy-edit-form { padding: 1rem 0; }
.taxonomy-list { display: grid; gap: .6rem; margin-top: 1rem; }
.taxonomy-item { border: 1px solid var(--border-color, #e4e4e0); border-radius: .65rem; background: #fff; }
.taxonomy-item summary { cursor: pointer; padding: .85rem 1rem; list-style: none; }
.taxonomy-item summary::-webkit-details-marker { display: none; }
.taxonomy-item summary code { color: #5a5a57; }
.taxonomy-source-link { text-decoration: none; }
.taxonomy-source-link:hover code,
.taxonomy-source-link:focus-visible code { color: var(--accent-color, #12685f); text-decoration: underline; }
.taxonomy-item summary .status { margin-left: auto; }
.taxonomy-statuses { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.taxonomy-statuses .status { margin-left: 0; }
.taxonomy-source-details { padding: 1rem; border-top: 1px solid var(--border-color, #e4e4e0); background: #fafcfd; }
.taxonomy-source-details [hidden] { display: none !important; }
.taxonomy-source-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.taxonomy-source-heading h3 { margin: 0; color: var(--ink); font-size: 14px; }
.taxonomy-source-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.taxonomy-source-loading,
.taxonomy-source-error { margin: 0; color: var(--muted); font-size: 13px; }
.taxonomy-source-error { color: #a73e4a; }
.taxonomy-source-overview { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 1rem; align-items: start; }
.taxonomy-source-image { display: flex; min-height: 112px; align-items: center; justify-content: center; padding: 9px; border: 1px solid #dce4ea; border-radius: 9px; color: var(--muted); background: #fff; font-size: 12px; text-align: center; }
.taxonomy-source-image a { display: flex; width: 100%; align-items: center; justify-content: center; }
.taxonomy-source-image img { display: block; width: 100%; max-width: 112px; height: 112px; object-fit: contain; }
.taxonomy-source-metadata { display: grid; gap: .65rem; margin: 0; }
.taxonomy-source-metadata > div { display: grid; grid-template-columns: minmax(145px, .32fr) minmax(0, 1fr); gap: .75rem; padding-bottom: .65rem; border-bottom: 1px solid #e6ebef; }
.taxonomy-source-metadata > div:last-child { padding-bottom: 0; border-bottom: 0; }
.taxonomy-source-metadata dt { color: #53677a; font-size: 12px; font-weight: 750; }
.taxonomy-source-metadata dd { min-width: 0; margin: 0; color: var(--ink); font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.taxonomy-source-description { margin-top: 1rem; border: 1px solid #dce4ea; border-radius: 8px; background: #fff; }
.taxonomy-source-description > summary { min-height: 40px; padding: .65rem .8rem; font-size: 13px; font-weight: 750; }
.taxonomy-source-description > summary::after { margin-left: auto; content: '+'; }
.taxonomy-source-description[open] > summary::after { content: '−'; }
.taxonomy-source-description iframe { display: block; width: 100%; height: 360px; border: 0; border-top: 1px solid #e6ebef; background: #fff; }
.taxonomy-source-description > p { margin: 0; padding: .8rem; border-top: 1px solid #e6ebef; color: var(--muted); font-size: 13px; }
.taxonomy-attribute-metadata { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.taxonomy-attribute-metadata > div { grid-template-columns: minmax(110px, .4fr) minmax(0, 1fr); }
.taxonomy-attribute-values { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e1e8ed; }
.taxonomy-attribute-values h4 { margin: 0 0 .7rem; font-size: 14px; }
.taxonomy-attribute-values-table-wrap { max-height: 430px; overflow: auto; border: 1px solid #dce4ea; border-radius: 8px; background: #fff; }
.taxonomy-attribute-values-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.taxonomy-attribute-values-table th,
.taxonomy-attribute-values-table td { padding: .65rem .75rem; border-bottom: 1px solid #edf1f4; text-align: left; vertical-align: top; }
.taxonomy-attribute-values-table th { position: sticky; top: 0; z-index: 1; color: #53677a; background: #f5f8fa; font-size: 11px; letter-spacing: .02em; text-transform: uppercase; }
.taxonomy-attribute-values-table td:first-child { width: 55%; overflow-wrap: anywhere; white-space: pre-wrap; }
.taxonomy-attribute-values-table tr:last-child td { border-bottom: 0; }
.taxonomy-attribute-values > .button { margin-top: .75rem; }
.taxonomy-product-count-link { padding: 0; border: 0; color: var(--accent-color, #12685f); background: transparent; cursor: pointer; font: inherit; font-weight: 800; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.taxonomy-product-count-link:hover { color: var(--accent-dark, #9e111b); }
.taxonomy-product-count-link:focus-visible { border-radius: 3px; outline: 2px solid var(--accent-color, #12685f); outline-offset: 3px; }
.taxonomy-attribute-products-dialog { width: min(720px, calc(100vw - 32px)); }
.taxonomy-attribute-products-dialog [hidden] { display: none !important; }
.taxonomy-attribute-products-dialog-body { max-height: min(620px, calc(100vh - 190px)); white-space: normal; }
.taxonomy-attribute-products-summary { margin: 0 0 .85rem; color: var(--muted); font-size: 13px; }
.taxonomy-attribute-products-list { display: grid; gap: 8px; }
.taxonomy-attribute-product-link { display: grid; gap: 3px; padding: .8rem .9rem; border: 1px solid #dce4ea; border-radius: 8px; color: var(--ink); background: #fff; text-decoration: none; }
.taxonomy-attribute-product-link:hover { border-color: #9fcfc7; background: #f4faf8; }
.taxonomy-attribute-product-link:focus-visible { outline: 2px solid var(--accent-color, #12685f); outline-offset: 2px; }
.taxonomy-attribute-product-link strong { overflow-wrap: anywhere; font-size: 14px; }
.taxonomy-attribute-product-link span { color: var(--muted); font-size: 12px; }
.taxonomy-attribute-products-dialog-body > .button { margin-top: .85rem; }
.taxonomy-item .taxonomy-edit-form,
.taxonomy-options { padding: 1rem; border-top: 1px solid var(--border-color, #e4e4e0); }
.taxonomy-delete-area { display: flex; align-items: center; gap: .75rem; padding: 0 1rem 1rem; }
.taxonomy-delete-area form { flex: 0 0 auto; margin: 0; }
.taxonomy-delete-area p { margin: 0; color: var(--muted); font-size: 12px; }
.taxonomy-options { align-items: stretch; flex-direction: column; }
.taxonomy-options h3 { margin: 0; font-size: 1rem; }

@media (max-width: 760px) {
    .compact-inline-form,
    .page-header-actions { align-items: stretch; flex-direction: column; }
    .compact-inline-form input,
    .compact-inline-form select { max-width: none; width: 100%; }
    .bulk-workflow-toolbar {
        position: static;
        grid-template-columns: 1fr;
        padding: 13px 15px 15px;
    }
    .bulk-workflow-toolbar .form-field { max-width: none; width: 100%; }
    .bulk-workflow-toolbar .button { width: 100%; }
    .taxonomy-delete-area { align-items: stretch; flex-direction: column; }
    .taxonomy-delete-area .button { width: 100%; }
    .taxonomy-source-overview { grid-template-columns: 1fr; }
    .taxonomy-source-heading { align-items: flex-start; flex-direction: column; gap: .2rem; }
    .taxonomy-source-image { min-height: 96px; }
    .taxonomy-source-image img { height: 96px; }
    .taxonomy-source-metadata > div { grid-template-columns: 1fr; gap: .2rem; }
    .taxonomy-attribute-metadata { grid-template-columns: 1fr; }
    .taxonomy-attribute-values-table { min-width: 620px; }
    .taxonomy-source-description iframe { height: 300px; }
}

/* Dashboard */
.import-activity-summary { display: inline-flex; min-height: 28px; align-items: center; gap: 7px; padding: 5px 9px; border-radius: 999px; color: #496174; background: #edf2f5; font-size: 11px; font-weight: 750; white-space: nowrap; }
.import-activity-summary i { width: 7px; height: 7px; border-radius: 50%; background: #7d8d9c; }
.import-activity-summary.is-running { color: #385b8c; background: #e6effb; }
.import-activity-summary.is-running i { background: #3973bd; box-shadow: 0 0 0 0 rgb(57 115 189 / 35%); animation: import-activity-pulse 1.8s infinite; }
.import-activity-summary.is-queued { color: #95600f; background: #fff0d8; }
.import-activity-summary.is-queued i { background: #d18b25; }
.source-import-current { display: flex; align-items: center; gap: 8px; padding: 8px 9px; border-radius: 7px; color: #385b8c; background: #e9f1fb; font-size: 12px; }
a.source-import-current:hover { color: #274e7e; background: #dfeafb; text-decoration: none; }
.source-import-current > i { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #3973bd; }
.is-running .source-import-current > i { box-shadow: 0 0 0 0 rgb(57 115 189 / 35%); animation: import-activity-pulse 1.8s infinite; }
.is-queued .source-import-current { color: #95600f; background: #fff0d8; }
.is-queued .source-import-current > i { background: #d18b25; }
.source-import-current span { min-width: 0; }
.source-import-current strong, .source-import-current small { display: block; }
.source-import-current small { margin-top: 2px; color: inherit; font-size: 11px; }
@keyframes import-activity-pulse {
    70% { box-shadow: 0 0 0 6px rgb(57 115 189 / 0%); }
    100% { box-shadow: 0 0 0 0 rgb(57 115 189 / 0%); }
}

@media (max-width: 640px) {
    .change-summary-type-grid { grid-template-columns: 1fr; }
}

/* Operational dashboard */
.dashboard-workspace { max-width: 1600px; margin-inline: auto; }
.dashboard-workspace .dashboard-header { margin-bottom: 24px; }
.dashboard-workspace .dashboard-header h1 { font-size: 26px; letter-spacing: -.035em; }
.dashboard-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 26px; }
.dashboard-metric { display: block; padding: 16px 18px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--surface); }
.dashboard-metric:hover { color: var(--ink); border-color: #b6bcc4; text-decoration: none; }
.dashboard-metric > span { color: var(--muted); font-size: 13px; }
.dashboard-metric > strong { display: block; margin: 8px 0; font-size: 28px; line-height: 1; font-weight: 650; font-variant-numeric: tabular-nums; }
.dashboard-metric > small { color: var(--muted); font-size: 12px; }
.dashboard-metric.is-critical > strong { color: var(--danger); }
.dashboard-columns { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); gap: 24px; align-items: start; }
.dashboard-primary-column, .dashboard-secondary-column { min-width: 0; }
.dashboard-section { margin-bottom: 24px; background: var(--surface); border-radius: 9px; overflow: hidden; }
.dashboard-section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 17px 18px 13px; }
.dashboard-section-heading h2 { margin: 0; font-size: 16px; font-weight: 650; }
.dashboard-section-heading > span { color: var(--muted); font-size: 12px; }
.dashboard-work-list, .dashboard-compact-list { list-style: none; padding: 0; margin: 0; }
.dashboard-work-row { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 18px; border-top: 1px solid var(--line); }
.dashboard-work-content { min-width: 0; overflow-wrap: anywhere; }
.dashboard-work-content > strong { display: block; margin-top: 5px; font-weight: 600; }
.dashboard-work-content > p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.dashboard-work-label { font-size: 11px; font-weight: 650; color: var(--muted); }
.dashboard-work-label.is-critical, .dashboard-task-meta .is-overdue, .dashboard-overdue-summary { color: var(--danger); }
.dashboard-work-label.is-warning { color: var(--warning); }
.dashboard-task-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 6px; color: var(--muted); font-size: 12px; }
.dashboard-row-action { flex-shrink: 0; padding-block: 8px; font-size: 12px; font-weight: 650; }
.dashboard-section-links { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 13px 18px; border-top: 1px solid var(--line); font-size: 12px; }
.dashboard-empty { padding: 16px 18px; color: var(--muted); font-size: 13px; }
.dashboard-change-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 8px 18px 18px; gap: 12px; }
.dashboard-change-links a { color: var(--ink); overflow-wrap: anywhere; }
.dashboard-change-links strong { display: block; font-size: 21px; font-weight: 600; font-variant-numeric: tabular-nums; }
.dashboard-change-links span { color: var(--muted); font-size: 12px; }
.dashboard-compact-list > li + li { border-top: 1px solid var(--line); }
.dashboard-compact-list a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 18px; color: var(--ink); overflow-wrap: anywhere; }
.dashboard-compact-list strong { font-size: 13px; font-weight: 600; }
.dashboard-compact-list small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.dashboard-overdue-summary { margin: 0; padding: 0 18px 10px; font-size: 12px; }
.dashboard-import-activity { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 18px 12px; }
.dashboard-source-row { padding: 13px 18px; border-top: 1px solid var(--line); }
.dashboard-source-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dashboard-source-heading strong { min-width: 0; overflow-wrap: anywhere; font-size: 13px; font-weight: 600; }
.dashboard-source-heading .status { flex-shrink: 0; }
.dashboard-source-time { color: var(--muted); font-size: 12px; margin: 6px 0; }
.dashboard-source-details { margin-top: 8px; color: var(--muted); font-size: 12px; }
.dashboard-source-details summary { cursor: pointer; }
.dashboard-source-details p { margin: 7px 0 0; }
.dashboard-healthy-sources > summary { padding: 13px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; cursor: pointer; }
.dashboard-shortcuts { display: flex; flex-wrap: wrap; gap: 10px 16px; padding-inline: 4px; font-size: 12px; }
.dashboard-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 6px; color: var(--muted); font-size: 12px; }
@media (max-width: 1050px) {
    .dashboard-columns { grid-template-columns: 1fr; }
    .dashboard-secondary-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
    .dashboard-secondary-column .dashboard-section { margin-bottom: 0; }
    .dashboard-shortcuts { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .dashboard-metrics { grid-template-columns: 1fr; gap: 8px; }
    .dashboard-metric { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; padding: 12px 14px; }
    .dashboard-metric > strong { grid-column: 2; grid-row: 1 / 3; margin: 0; align-self: center; }
    .dashboard-metric > small { grid-column: 1; }
    .dashboard-secondary-column { grid-template-columns: 1fr; }
    .dashboard-work-row { gap: 12px; padding: 14px; }
    .dashboard-row-action { font-size: 12px; }
    .dashboard-change-links { gap: 10px; padding-inline: 14px; }
    .dashboard-section-heading { padding-inline: 14px; }
}
@media (pointer: coarse) {
    .dashboard-row-action, .dashboard-section-links a, .dashboard-shortcuts a, .dashboard-source-details summary, .dashboard-healthy-sources > summary { min-height: 44px; display: inline-flex; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
    .dashboard-workspace .import-activity-summary.is-running i, .dashboard-workspace .source-import-current > i { animation: none; }
}

/* Product catalogue */
.view-switcher { display: flex; gap: 7px; margin: -6px 0 14px; overflow-x: auto; scrollbar-width: none; }
.view-switcher::-webkit-scrollbar { display: none; }
.view-switcher a { display: inline-flex; min-height: 34px; align-items: center; padding: 6px 10px; border: 1px solid #dde4ea; border-radius: 999px; color: #617182; background: #fff; font-size: 12px; font-weight: 700; white-space: nowrap; }
.view-switcher a:hover { border-color: #e3a9ae; color: var(--accent-dark); text-decoration: none; }
.view-switcher a.active { border-color: #d71920; color: var(--accent-dark); background: #fff0f1; }
.product-filter-card { padding: 16px; }
.product-filter-form { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(160px, 220px) minmax(120px, 150px) auto; gap: 10px; align-items: end; }
.product-search-field { position: relative; min-width: 0; }
.product-search-field::before { position: absolute; z-index: 1; top: 50%; left: 12px; color: #7b8997; content: '⌕'; font-size: 21px; line-height: 1; pointer-events: none; transform: translateY(-53%) rotate(-20deg); }
.product-search-field input { width: 100%; min-height: 42px; padding: 9px 12px 9px 36px; border: 1px solid #cbd7e2; border-radius: 8px; outline: none; background: #fff; }
.product-search-field input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.sort-field, .page-size-field { display: grid; gap: 4px; color: #667686; font-size: 11px; font-weight: 750; }
.sort-field select, .page-size-field input, .filter-grid select, .filter-grid input[type="number"] { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #cbd7e2; border-radius: 8px; outline: none; color: var(--ink); background: #fff; font: inherit; }
.sort-field select:focus, .page-size-field input:focus, .filter-grid select:focus, .filter-grid input[type="number"]:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.filter-disclosure { grid-column: 1 / -1; margin-top: 2px; }
.filter-disclosure summary { display: inline-flex; align-items: center; gap: 6px; color: #526a7d; font-size: 12px; font-weight: 720; cursor: pointer; list-style: none; }
.filter-disclosure summary::-webkit-details-marker { display: none; }
.filter-disclosure summary::before { content: '＋'; font-size: 14px; }
.filter-disclosure[open] summary::before { content: '−'; }
.filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; padding-top: 13px; border-top: 1px solid #edf1f5; }
.filter-grid > label:not(.filter-checkbox) { display: grid; gap: 4px; color: #667686; font-size: 11px; font-weight: 750; }
.filter-grid-note { grid-column: 1 / -1; margin: 0; color: #667686; font-size: 12px; }
.filter-checkbox { display: flex; min-height: 42px; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #dfe6ec; border-radius: 8px; color: #526a7d; background: #fafcfd; font-size: 12px; font-weight: 650; }
.promotion-filter { border-color: #f0c9cd; color: #9e2f38; background: #fff6f7; }
.active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 13px; padding-top: 13px; border-top: 1px solid #edf1f5; color: #6d7c89; font-size: 12px; }
.active-filters > span { font-weight: 700; }
.active-filters a { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid #f0c9cd; border-radius: 999px; color: #9e3640; background: #fff6f7; font-weight: 650; }
.active-filters a:hover { border-color: #df9199; text-decoration: none; }
.active-filters a b { font-size: 15px; font-weight: 500; line-height: .8; }
.active-filters .active-filters-clear { margin-left: 3px; border-color: transparent; color: #607182; background: transparent; }
.product-table-hint { padding: 13px 20px 0; color: var(--muted); font-size: 12px; }
.product-selection-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 8px 15px; border-bottom: 1px solid var(--line); }
.product-selection-toolbar[hidden] { display: none; }
.product-select-all-label { display: flex; min-height: 44px; align-items: center; gap: 10px; cursor: pointer; }
.product-selection-count { color: var(--muted); font-size: 12px; }
.product-list-card { overflow: visible; }
.product-list-card,
.product-list-card .bulk-workflow-form,
.product-list-card .bulk-workflow-toolbar,
.product-list-card .table-wrap { min-width: 0; max-width: 100%; }
.clickable-row { cursor: pointer; }
.clickable-row:focus-visible { outline: 3px solid rgb(215 25 32 / 28%); outline-offset: -3px; }
.clickable-row td { font-variant-numeric: tabular-nums; }
.product-table time { color: #637383; font-size: 12px; white-space: nowrap; }
.product-table { min-width: 900px; }
.product-table .thumbnail-column { width: 94px; }
.product-thumbnail-empty { padding: 8px; text-align: center; }
.product-name-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 9px; }
.promotion-badge { display: inline-flex; min-height: 22px; align-items: center; padding: 3px 8px; border-radius: 5px; color: #fff; background: var(--accent); box-shadow: 0 2px 5px rgb(167 14 21 / 20%); font-size: 10px; font-weight: 850; letter-spacing: .08em; line-height: 1; white-space: nowrap; }
.google-feed-missing-badge { display: inline-flex; min-height: 22px; align-items: center; padding: 3px 8px; border: 1px solid #efb8bd; border-radius: 5px; color: #a73e4a; background: #fde7e9; font-size: 10px; font-weight: 850; letter-spacing: .04em; line-height: 1; white-space: nowrap; }
.upcoming-promotions-table .upcoming-promotion-price-stack { display: flex; align-items: flex-start; flex-direction: column; gap: 6px; margin-top: 3px; }
.upcoming-promotions-table .upcoming-promotion-price-value { display: block; font-variant-numeric: tabular-nums; white-space: nowrap; }

@media (max-width: 900px) {
    .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) and (min-width: 761px) {
    .bulk-workflow-toolbar { grid-template-columns: minmax(200px, 260px) minmax(240px, 1fr); }
    .bulk-workflow-toolbar .button { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 640px) {
    .product-filter-form { grid-template-columns: 1fr auto; }
    .product-search-field { grid-column: 1 / -1; }
    .sort-field, .page-size-field { min-width: 0; }
    .product-filter-form > .button { grid-column: 1 / -1; }
    .filter-grid { grid-template-columns: 1fr; }
    .product-table-hint { padding: 12px 15px 0; }
}

/* Product detail */
.product-header { display: grid; justify-content: stretch; gap: 18px; }
.product-header-heading { width: 100%; min-width: 0; }
.product-header-heading .back-link { margin-bottom: 14px; }
.product-header-heading h1 { max-width: none; margin-top: 5px; font-size: clamp(30px, 2.6vw, 40px); }
.product-header-main { width: 100%; gap: 24px; }
.product-header-copy { align-self: flex-start; padding-top: 8px; }
.product-header-copy > p { max-width: 980px; }
.product-header-thumbnail { width: 168px; height: 168px; border-radius: 14px; background: #fff; box-shadow: 0 5px 18px rgb(19 34 56 / 5%); }
.product-header-thumbnail img { transform: scale(1.18); }
.product-header-updated { display: block; margin-top: 7px; color: #7b8995; font-size: 12px; }
.product-promotion-labels { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.product-header-copy > .product-header-code { color: var(--ink); font-size: clamp(18px, 1.6vw, 24px); font-weight: 800; letter-spacing: -.02em; line-height: 1.2; overflow-wrap: anywhere; }
.product-header-copy > .product-header-kind { margin-top: 4px; color: var(--accent-dark); font-size: 11px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.product-header-copy > .product-header-taxonomy { margin-top: 9px; }
.product-tools-panel { display: flex; align-items: center; gap: 18px; margin: 0 0 12px; padding: 14px 16px; border: 1px solid #e0e6eb; border-radius: 10px; background: #fff; box-shadow: 0 5px 14px rgb(19 34 56 / 4%); }
.product-tools-heading { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; }
.product-tools-heading h2 { margin: 0; font-size: 14px; letter-spacing: -.01em; }
.product-tools-actions { display: flex; flex: 1 1 auto; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.product-section-tabs { position: sticky; z-index: 20; top: var(--app-topbar-height); display: flex; gap: 3px; margin: 0 0 20px; padding: 8px; overflow-x: auto; border: 1px solid #e0e6eb; border-radius: 10px; background: rgb(255 255 255 / 94%); box-shadow: 0 5px 14px rgb(19 34 56 / 4%); scrollbar-width: none; }
.product-section-tabs::-webkit-scrollbar { display: none; }
.product-section-tabs a { display: inline-flex; min-height: 30px; align-items: center; padding: 6px 9px; border-radius: 6px; color: #617182; font-size: 12px; font-weight: 700; white-space: nowrap; }
.product-section-tabs a:hover { color: var(--accent-dark); background: var(--accent-soft); text-decoration: none; }
.product-section-tabs a.active { color: var(--accent-dark); background: #fff0f1; box-shadow: inset 0 -2px 0 var(--accent); }
.product-section-anchor { scroll-margin-top: 122px; }
.product-completeness-summary { margin: 0 0 24px; padding: 18px; border: 1px solid #dfe7ed; border-radius: 11px; background: #fafcfd; }
.product-completeness-ready { border-color: #c7e4dd; background: #f5fbf9; }
.product-completeness-awaiting-approval { border-color: #ead4ad; background: #fffaf1; }
.product-completeness-incomplete { border-color: #edc8cb; background: #fffafa; }
.product-completeness-inactive { border-color: #d9e1e8; background: #f7f9fa; }
.product-completeness-decision { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.product-completeness-decision h3 { margin: 9px 0 3px; color: #263b4e; font-size: 19px; letter-spacing: -.02em; }
.product-completeness-decision p { margin: 0; color: var(--muted); }
.product-completeness-score { display: flex; min-width: 82px; align-items: baseline; justify-content: flex-end; color: #263b4e; font-size: 38px; font-variant-numeric: tabular-nums; letter-spacing: -.055em; line-height: 1; }
.product-completeness-score small { margin-left: 2px; color: #718195; font-size: 16px; letter-spacing: 0; }
.product-completeness-meter { height: 8px; margin-top: 16px; overflow: hidden; border-radius: 99px; background: #e5ebef; }
.product-completeness-meter span { display: block; height: 100%; border-radius: inherit; background: #bd2d35; transition: width .2s ease; }
.product-completeness-ready .product-completeness-meter span { background: #278174; }
.product-completeness-awaiting-approval .product-completeness-meter span { background: #c28a31; }
.product-completeness-counts { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 10px 0 0; color: #687887; font-size: 12px; }
.product-completeness-counts strong { color: #3b5367; }
.product-completeness-issues { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.product-completeness-issue { display: flex; min-width: 0; gap: 10px; padding: 11px; border: 1px solid #dfe7ed; border-radius: 8px; background: #fff; }
.product-completeness-issue > span { display: grid; width: 23px; height: 23px; flex: 0 0 auto; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 850; }
.product-completeness-issue-blocker { border-color: #efcfd2; }
.product-completeness-issue-blocker > span { color: #a73e4a; background: #fde7e9; }
.product-completeness-issue-warning { border-color: #ead9b9; }
.product-completeness-issue-warning > span { color: #8d5b12; background: #fff0d8; }
.product-completeness-issue strong { color: #2d4356; font-size: 12px; }
.product-completeness-issue strong small { margin-left: 4px; color: #8d5b12; font-size: 9px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.product-completeness-issue p { margin: 2px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.product-completeness-issue a { display: inline-block; margin-top: 5px; font-size: 11px; font-weight: 700; }
.product-completeness-checklist { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e3e9ee; }
.product-completeness-checklist > summary { width: fit-content; color: #526a7d; font-size: 12px; font-weight: 720; cursor: pointer; }
.product-completeness-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.product-completeness-check { display: flex; min-width: 0; gap: 9px; padding: 10px; border: 1px solid #e3e9ee; border-radius: 8px; background: #fff; }
.product-completeness-check-mark { display: grid; width: 21px; height: 21px; flex: 0 0 auto; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 850; }
.product-completeness-check.is-passed .product-completeness-check-mark { color: #166158; background: #dff3ee; }
.product-completeness-check.is-failed .product-completeness-check-mark { color: #a73e4a; background: #fde7e9; }
.product-completeness-check.is-recommended.is-failed .product-completeness-check-mark { color: #8d5b12; background: #fff0d8; }
.product-completeness-check.is-not-applicable { opacity: .72; }
.product-completeness-check.is-not-applicable .product-completeness-check-mark { color: #607182; background: #eaf0f5; }
.product-completeness-check strong { display: block; color: #2d4356; font-size: 12px; }
.product-completeness-check small { display: block; margin-top: 1px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.product-completeness-check p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }

@media (max-width: 820px) {
    .product-header-thumbnail { width: 144px; height: 144px; }
    .product-tools-panel { align-items: flex-start; flex-direction: column; }
    .product-tools-actions { width: 100%; justify-content: flex-start; }
    .product-section-tabs { top: calc(var(--app-topbar-height) + var(--app-navigation-height)); }
}

@media (max-width: 640px) {
    .product-header { gap: 14px; }
    .product-header-heading h1 { font-size: clamp(28px, 9vw, 34px); }
    .product-header-main { gap: 14px; }
    .product-header-thumbnail { width: 112px; height: 112px; border-radius: 11px; }
    .product-tools-panel { padding: 13px; }
    .product-tools-heading { width: 100%; flex-wrap: wrap; }
    .product-tools-heading h2 { width: 100%; }
    .product-tools-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
    .product-tools-actions .button { width: 100%; justify-content: center; }
    .product-section-tabs { top: calc(var(--app-topbar-height) + var(--app-navigation-height)); margin-bottom: 16px; padding: 6px; }
    .product-section-tabs a { padding-right: 8px; padding-left: 8px; font-size: 11px; }
    .product-section-anchor { scroll-margin-top: calc(var(--app-topbar-height) + var(--app-navigation-height) + 24px); }
    .product-completeness-summary { padding: 14px; }
    .product-completeness-decision { gap: 10px; }
    .product-completeness-score { min-width: 62px; font-size: 31px; }
    .product-completeness-issues, .product-completeness-check-grid { grid-template-columns: 1fr; }
}

/* Keep a phone in its compact layout after it is rotated to a wide, short viewport. */
@media (max-height: 540px) and (pointer: coarse) {
    .topbar-inner { min-height: 60px; }
    .app-frame { display: block; min-height: 0; }
    .app-sidebar { position: sticky; top: var(--app-topbar-height); z-index: 90; display: block; width: 100%; height: auto; padding: 7px 12px; overflow-x: auto; overflow-y: hidden; border-right: 0; border-bottom: 1px solid #e5e9ee; white-space: nowrap; scrollbar-gutter: auto; }
    .sidebar-toggle { display: none; }
    .sidebar-nav { display: flex; gap: 3px; width: max-content; }
    .sidebar-nav a { min-height: 36px; gap: 7px; padding: 7px 9px; }
    .sidebar-nav a.active { box-shadow: inset 0 -2px 0 var(--accent); }
    .sidebar-label, .sidebar-shortcuts { display: none; }
    .sidebar-icon { font-size: 15px; }
    .main-content { padding: 26px 22px 48px; }
    .product-section-tabs { top: calc(var(--app-topbar-height) + var(--app-navigation-height)); }
    .product-section-anchor { scroll-margin-top: calc(var(--app-topbar-height) + var(--app-navigation-height) + 24px); }
}

/* Alerts */
.alert-summary { display: grid; min-width: 86px; padding: 10px 13px; border: 1px solid #f0c7cb; border-radius: 9px; color: #a73e4a; background: #fff7f8; text-align: right; }
.alert-summary strong { font-size: 22px; line-height: 1; }
.alert-summary span { margin-top: 3px; font-size: 11px; font-weight: 700; }
.alert-filters { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.alert-filters .tabs { margin: 0; }
.tabs a { display: inline-flex; align-items: center; gap: 5px; }
.tabs a span, .severity-filter a span { display: inline-grid; min-width: 18px; height: 18px; place-items: center; border-radius: 999px; color: #607182; background: #eef2f5; font-size: 10px; }
.tabs a.active span { color: #a73e4a; background: #fde7e9; }
.severity-filter { display: flex; flex-wrap: wrap; gap: 6px; }
.severity-filter a { display: inline-flex; min-height: 32px; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid #dde4ea; border-radius: 999px; color: #647383; background: #fff; font-size: 12px; font-weight: 700; }
.severity-filter a:hover { color: var(--accent-dark); text-decoration: none; }
.severity-filter a.active { border-color: #e3a4aa; color: #a73e4a; background: #fff5f6; }
.severity-filter a.active span { color: #a73e4a; background: #fde7e9; }
.alerts-table time { color: #637383; font-size: 12px; white-space: nowrap; }

@media (max-width: 640px) {
    .alert-filters { display: grid; gap: 10px; }
    .alert-filters .tabs { overflow-x: auto; }
    .alert-summary { align-self: start; }
}

/* Imports */
.import-queue-indicator { display: inline-flex; min-height: 31px; align-items: center; padding: 6px 10px; border: 1px solid #bce0d9; border-radius: 999px; color: #176c61; background: #eff9f6; font-size: 12px; font-weight: 700; white-space: nowrap; }
.import-queue-indicator.is-active { border-color: #eed29a; color: #95600f; background: #fff8e8; }
.import-queue-indicator.is-paused { border-color: #f0bbc0; color: #9d3340; background: #fdecef; }
.import-queue-note { margin: 0 0 16px; padding: 10px 12px; border: 1px solid #f0d8a8; border-radius: 8px; color: #835615; background: #fff8e8; font-size: 12px; }
.action-panel { border-color: #e3e8ee; background: #fff; }
.manual-import-form { align-items: end; }
.manual-import-form .button { min-height: 42px; }
.manual-import-statuses { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 8px 16px; }
.manual-import-statuses > li:not(.manual-import-note) { min-height: 68px; padding: 11px 12px; border: 1px solid #e4e9ee; border-radius: 8px; background: #fff; }
.manual-import-statuses > li:not(.manual-import-note):hover { border-color: #d1dce5; }
.manual-import-note { grid-column: 1 / -1; margin-top: -3px; }
.table-card-heading { padding: 20px 20px 0; }
.imports-table time { color: #637383; font-size: 12px; white-space: nowrap; }

@media (max-width: 640px) {
    .import-queue-indicator { align-self: start; }
    .manual-import-statuses { grid-template-columns: 1fr; }
    .table-card-heading { padding: 15px 15px 0; }
}

/* Mobile foundations: safe areas, touch targets and small screens. */
:root {
    --app-safe-area-top: env(safe-area-inset-top, 0px);
    --app-safe-area-right: env(safe-area-inset-right, 0px);
    --app-safe-area-bottom: env(safe-area-inset-bottom, 0px);
    --app-safe-area-left: env(safe-area-inset-left, 0px);
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scrollbar-gutter: stable;
}

body {
    width: 100%;
    min-width: 100%;
}

.skip-link {
    position: fixed;
    z-index: 200;
    top: max(10px, var(--app-safe-area-top));
    left: max(10px, var(--app-safe-area-left));
    padding: 10px 14px;
    border-radius: 8px;
    color: #fff;
    background: var(--accent-dark);
    transform: translateY(-160%);
}

.skip-link:focus {
    color: #fff;
    text-decoration: none;
    transform: translateY(0);
}

.topbar-inner {
    padding-top: var(--app-safe-area-top);
    padding-right: max(28px, var(--app-safe-area-right));
    padding-left: max(28px, var(--app-safe-area-left));
}

.app-sidebar { padding-left: max(12px, var(--app-safe-area-left)); }

.main-content {
    padding-right: max(34px, var(--app-safe-area-right));
    padding-bottom: max(60px, calc(38px + var(--app-safe-area-bottom)));
    padding-left: max(34px, var(--app-safe-area-left));
}

.login-page {
    padding-top: max(24px, var(--app-safe-area-top));
    padding-right: max(24px, var(--app-safe-area-right));
    padding-bottom: max(24px, var(--app-safe-area-bottom));
    padding-left: max(24px, var(--app-safe-area-left));
}

input[type="checkbox"],
input[type="radio"] {
    width: 20px;
    height: 20px;
    accent-color: var(--accent);
}

.checkbox-label { min-height: 44px; }

.button,
.table-action,
.tabs a,
.view-switcher a,
.severity-filter a,
.filter-disclosure summary,
.product-section-tabs a,
.description-dialog-trigger {
    min-height: 44px;
}

.table-action { padding: 7px 10px; }

.table-wrap {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable both-edges;
}

.table-mobile-hint { display: none; }

/* Taxonomy module switcher */
.taxonomy-module-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.taxonomy-module-link {
    display: flex;
    min-height: 92px;
    align-items: center;
    gap: 12px;
    padding: 14px;
    color: #506273;
    background: #fff;
    border: 1px solid #dfe6ec;
    border-radius: 10px;
    box-shadow: 0 3px 10px rgb(19 34 56 / 3%);
}

.taxonomy-module-link:hover {
    color: var(--accent-dark);
    text-decoration: none;
    border-color: #e4a7ab;
}

.taxonomy-module-link.active {
    color: #7d151c;
    background: #fff4f5;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgb(215 25 32 / 10%);
}

.taxonomy-module-icon {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    place-items: center;
    color: var(--accent-dark);
    background: #ffe8ea;
    border-radius: 9px;
    font-size: 19px;
    font-weight: 750;
}

.taxonomy-module-link.active .taxonomy-module-icon {
    color: #fff;
    background: var(--accent);
}

.taxonomy-module-link > span:last-child {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.taxonomy-module-link strong { font-size: 14px; }

.taxonomy-module-link small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.taxonomy-module-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 14px;
}

.taxonomy-module-heading h2 {
    margin: 3px 0 0;
    font-size: 18px;
    letter-spacing: -.015em;
}

.taxonomy-section-actions {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin: 14px 0 4px;
}

.taxonomy-filter {
    position: relative;
    display: flex;
    width: min(100%, 420px);
    flex: 1 1 280px;
    align-items: center;
}

.taxonomy-filter input {
    width: 100%;
    min-height: 44px;
    padding-left: 38px;
}

.taxonomy-filter-icon {
    position: absolute;
    left: 13px;
    z-index: 1;
    color: #6b7c8d;
    font-size: 18px;
    pointer-events: none;
}

.taxonomy-server-filter { width: min(100%, 680px); gap: 8px; }
.taxonomy-server-filter label { position: relative; flex: 1 1 260px; }
.taxonomy-server-filter .taxonomy-filter-icon { top: 50%; transform: translateY(-50%); }
.taxonomy-server-filter .button { flex: 0 0 auto; }

.taxonomy-parent-picker { position: relative; }
.taxonomy-parent-results {
    position: absolute;
    z-index: 20;
    top: calc(100% - 2px);
    right: 0;
    left: 0;
    max-height: 260px;
    overflow-y: auto;
    padding: 5px;
    border: 1px solid #cfd9e2;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 12px 28px rgb(19 34 56 / 16%);
}

.taxonomy-parent-result {
    display: block;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 5px;
    color: var(--text);
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.taxonomy-parent-result:hover,
.taxonomy-parent-result:focus-visible { background: #eef5f7; outline: none; }

.taxonomy-create-disclosure { flex: 0 0 auto; }
.taxonomy-create-disclosure[open] { flex: 1 0 100%; }

.taxonomy-create-disclosure > summary {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 14px;
    color: #fff;
    background: var(--accent);
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 720;
    list-style: none;
}

.taxonomy-create-disclosure > summary::-webkit-details-marker { display: none; }
.taxonomy-create-disclosure > summary::after { content: '+'; font-size: 18px; font-weight: 450; line-height: 1; }
.taxonomy-create-disclosure > summary:hover { background: var(--accent-dark); }
.taxonomy-create-disclosure > summary:focus-visible { outline: 3px solid rgb(215 25 32 / 24%); outline-offset: 3px; }
.taxonomy-create-disclosure[open] > summary { border-radius: 8px 8px 0 0; }
.taxonomy-create-disclosure[open] > summary::after { content: '−'; }

.taxonomy-create-disclosure .taxonomy-create-form {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid #dfe6ec;
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: #fff;
    box-shadow: 0 8px 18px rgb(19 34 56 / 8%);
}

.taxonomy-filter-empty { margin-bottom: 0; }

.taxonomy-disabled-reason {
    margin: 0;
    padding: 11px 16px;
    color: #735222;
    background: #fff9ef;
    border-top: 1px solid #f0dfbb;
    font-size: 13px;
    line-height: 1.45;
}

@media (hover: none) {
    .stat-card:hover { box-shadow: none; transform: none; }
    .media-card:hover img { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (max-width: 820px) {
    body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
    body select:not([multiple]),
    textarea {
        min-height: 44px;
        font-size: 16px;
    }

    .global-search { height: 44px; }
    .topbar-logout { min-height: 44px; }
    .sidebar-nav a { min-height: 44px; }
}

@media (max-width: 700px) {
    .topbar-inner {
        padding-right: max(14px, var(--app-safe-area-right));
        padding-left: max(14px, var(--app-safe-area-left));
    }

    .global-search {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }

    .app-sidebar { padding-left: max(12px, var(--app-safe-area-left)); }

    .main-content {
        padding-top: 22px;
        padding-right: max(14px, var(--app-safe-area-right));
        padding-bottom: max(38px, calc(24px + var(--app-safe-area-bottom)));
        padding-left: max(14px, var(--app-safe-area-left));
    }

    .form-grid { grid-template-columns: 1fr; }

    .form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .form-actions .button { width: 100%; }

    .header-actions {
        width: 100%;
        justify-content: stretch;
    }

    .header-actions .button {
        min-width: 0;
        flex: 1 1 auto;
    }

    .tabs {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
    }

    .tabs a { flex: 0 0 auto; }

    .pagination {
        flex-wrap: wrap;
        justify-content: space-between;
        row-gap: 14px;
    }

    .pagination-summary {
        order: 3;
        width: 100%;
        text-align: center;
    }

    .login-card {
        gap: 22px;
        padding: 24px;
    }

    .table-mobile-hint {
        display: block;
        margin-top: 4px;
    }

    .taxonomy-module-nav {
        display: flex;
        width: calc(100% + 28px);
        margin-left: -14px;
        padding: 0 14px 2px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .taxonomy-module-link {
        min-width: 220px;
        min-height: 78px;
        flex: 0 0 220px;
    }

    .taxonomy-module-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 8px;
    }

    .taxonomy-module-heading .result-count { align-self: flex-start; }

    .taxonomy-section-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .taxonomy-filter { width: 100%; }
    .taxonomy-create-disclosure { width: 100%; }
    .taxonomy-create-disclosure[open] { flex-basis: 100%; }
    .taxonomy-create-disclosure > summary { width: 100%; }
    .taxonomy-create-disclosure .taxonomy-create-form { min-width: 0; }

}

/* Avoid Android Chrome fitting the page to the desktop-width product table after rotation. */
@media (max-width: 700px), (max-height: 540px) and (pointer: coarse) {
    body { width: var(--app-viewport-width); }

    .product-list-card .table-mobile-hint { display: block; }

    .product-list-card .table-wrap {
        overflow-x: hidden;
        scrollbar-gutter: auto;
    }

    .product-table {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .product-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }

    .product-table tbody {
        display: grid;
        gap: 1px;
        background: #edf1f5;
    }

    .product-table tr {
        display: grid;
        width: 100%;
        align-items: start;
        padding: 12px;
        background: #fff;
    }

    .product-table-with-selection tr {
        grid-template-columns: 52px 80px minmax(0, 1fr);
        grid-template-areas:
            "selection thumbnail code"
            "selection thumbnail product"
            "selection thumbnail status"
            "selection thumbnail updated"
            "selection thumbnail action";
    }

    .product-table:not(.product-table-with-selection) tr {
        grid-template-columns: 80px minmax(0, 1fr);
        grid-template-areas:
            "thumbnail code"
            "thumbnail product"
            "thumbnail status"
            "thumbnail updated"
            "thumbnail action";
    }

    .product-table td {
        position: static !important;
        z-index: auto !important;
        min-width: 0;
        padding: 2px 10px;
        border: 0;
        background: transparent !important;
    }

    .product-table .bulk-select-cell {
        grid-area: selection;
        width: 52px;
        min-width: 52px;
        padding: 0 !important;
    }

    .bulk-select-label {
        display: grid;
        width: 52px;
        min-height: 80px;
        place-items: center;
        cursor: pointer;
    }

    .product-table .thumbnail-column {
        grid-area: thumbnail;
        width: 80px;
        padding: 0 !important;
    }

    .product-code-cell { grid-area: code; }
    .product-name-cell { grid-area: product; padding-top: 4px !important; }
    .product-status-cell { grid-area: status; padding-top: 7px !important; }
    .product-updated-cell { grid-area: updated; }
    .product-action-cell { grid-area: action; padding-bottom: 0 !important; }
    .product-name-cell .product-link { display: block; overflow-wrap: anywhere; }
    .product-action-cell .table-action { padding-left: 0; }
    .product-table .empty-cell { grid-column: 1 / -1; padding: 24px 12px; }
}

@media (min-width: 701px) and (max-height: 540px) and (pointer: coarse) {
    .product-table-with-selection tr {
        grid-template-columns: 52px 80px minmax(100px, .6fr) minmax(220px, 1.5fr) minmax(100px, .6fr);
        grid-template-areas:
            "selection thumbnail code product status"
            "selection thumbnail updated product action";
    }

    .product-table:not(.product-table-with-selection) tr {
        grid-template-columns: 80px minmax(100px, .6fr) minmax(220px, 1.5fr) minmax(100px, .6fr);
        grid-template-areas:
            "thumbnail code product status"
            "thumbnail updated product action";
    }
}

@media (max-width: 360px) {
    .login-card { padding: 20px; }
}

@media (max-height: 540px) and (pointer: coarse) {
    .topbar,
    .app-sidebar,
    .product-section-tabs,
    .bulk-workflow-toolbar { position: static; }

    .app-sidebar { height: auto; }
    .product-section-anchor { scroll-margin-top: 24px; }
    .login-page { align-items: start; }
}

/* Product change history */
.product-changes-workspace { display: grid; gap: 20px; min-width: 0; }
.product-changes-workspace > .panel-card { margin-bottom: 0; }
.product-changes-header { margin-bottom: 0; align-items: center; }
.product-changes-header h1 { letter-spacing: -.035em; }
.product-changes-export { gap: 8px; white-space: nowrap; }
.product-changes-filter-card { padding: 0; overflow: hidden; border-radius: 16px; }
.product-changes-filter-heading { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(110deg, #fff, #f5f7fa); }
.product-changes-filter-heading h2 { margin: 0; font-size: 15px; }
.product-changes-filter-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.product-changes-context { padding: 6px 10px; border: 1px solid #dfe5ed; border-radius: 999px; color: #536474; background: #fff; font-size: 11px; white-space: nowrap; }
.product-changes-filter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 20px 22px; }
.product-changes-filter label { display: grid; min-width: 0; gap: 7px; color: #3c5064; font-size: 12px; font-weight: 650; }
.product-changes-filter .search-field { grid-column: span 2; grid-row: 1; }
.product-changes-filter .product-changes-period { grid-column: 4; grid-row: 1; }
.product-changes-filter input,
.product-changes-filter select,
.product-changes-page-size select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #cbd7e2; border-radius: 9px; color: var(--ink); background: #fff; }
.product-changes-filter input:focus,
.product-changes-filter select:focus,
.product-changes-page-size select:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.product-changes-filter-actions { display: flex; justify-content: flex-end; gap: 8px; grid-column: 1 / -1; padding-top: 14px; border-top: 1px solid var(--line); }
.product-changes-results { border-radius: 16px; overflow: hidden; }
.product-changes-results .panel-heading { align-items: center; gap: 18px; padding: 20px 22px; margin: 0; border-bottom: 1px solid var(--line); }
.product-changes-results-title { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.product-changes-results-title h2 { margin: 0; }
.product-changes-results .panel-heading p { font-size: 12px; margin: 7px 0 0; }
.product-changes-page-size { display: flex; align-items: center; gap: 8px; flex-shrink: 0; font-size: 12px; color: var(--muted); }
.product-changes-page-size select { width: 76px; min-width: 76px; }
.product-changes-page-size .button { min-height: 40px; padding: 8px 10px; }
.product-changes-empty { display: grid; justify-items: center; padding: 35px 16px; }
.product-changes-empty strong { font-size: 16px; color: var(--ink); }
.product-changes-empty p { margin: 8px 0 18px; }
.product-changes-table th { background: #f6f8fa; color: #596b7e; font-size: 11px; letter-spacing: .03em; }
.product-changes-table td { padding-top: 18px; padding-bottom: 18px; }
.product-changes-table tbody tr:hover { background: #fafbfd; }
.product-changes-table tbody tr:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.product-changes-table { min-width: 980px; }
.product-changes-table time { color: #637383; font-size: 12px; white-space: nowrap; }
.product-change-product { display: flex; min-width: 260px; align-items: center; gap: 12px; }
.product-change-product-info { min-width: 0; overflow-wrap: anywhere; }
.product-change-thumbnail { display: grid; width: 56px; height: 56px; flex: 0 0 56px; overflow: hidden; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.product-change-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.product-change-thumbnail-empty { padding: 5px; color: var(--muted); font-size: 9px; font-weight: 650; line-height: 1.2; text-align: center; }
.product-change-title { display: block; margin-top: 5px; font-size: 13px; }
.product-change-category { min-height: 20px; padding: 2px 7px; font-size: 10px; }
.product-change-category-PRICE { color: #a73e4a; background: #fde7e9; }
.product-change-category-STOCK { color: #176c61; background: #dff3ee; }
.product-change-category-AVAILABILITY { color: #95600f; background: #fff0d8; }
.product-change-category-PIM { color: #385b8c; background: #e6effb; }
.product-change-category-IMPORT { color: #68528b; background: #f0eaf8; }
.product-change-values { display: grid; grid-template-columns: minmax(90px, 1fr) 12px minmax(90px, 1fr); min-width: 240px; max-width: 430px; gap: 8px; align-items: center; font-size: 12px; }
.product-change-before, .product-change-after { display: grid; align-content: start; gap: 4px; padding: 9px 11px; border-radius: 8px; overflow-wrap: anywhere; }
.product-change-before { color: #637383; background: #f3f5f7; }
.product-change-after { color: #23473f; background: #edf6f2; }
.product-change-values .product-change-value-label { color: #65766e; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.product-change-values b { color: #9ba9b6; font-weight: 600; }
.product-change-percent { position: relative; display: inline-flex; margin-top: 6px; padding: 2px 7px; border-radius: 6px; font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.product-change-percent-increase { color: #a73e4a; background: #fde7e9; }
.product-change-percent-decrease { color: #176c61; background: #dff3ee; }

@media (max-width: 1200px) {
    .product-changes-results .panel-heading { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px) {
    .product-changes-workspace { gap: 14px; }
    .product-changes-header .header-actions { width: 100%; }
    .product-changes-filter-heading, .product-changes-results .panel-heading { padding: 16px; }
    .product-changes-context { display: none; }
    .product-changes-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; gap: 12px; }
    .product-changes-filter .search-field { grid-column: 1 / -1; grid-row: auto; order: -1; }
    .product-changes-filter .product-changes-period { grid-column: auto; grid-row: auto; }
    .product-changes-page-size { flex-wrap: wrap; }
    .product-changes-filter-actions .button { flex: 1; }
    .product-changes-table { display: block; min-width: 0; }
    .product-changes-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .product-changes-table tbody { display: grid; gap: 12px; padding: 12px; }
    .product-changes-table tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "product product" "time event" "values values" "source source"; gap: 14px 10px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
    .product-changes-table td { min-width: 0; padding: 0; border: 0; }
    .product-changes-table td.product-change-product-cell { grid-area: product; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
    .product-change-time-cell { grid-area: time; }
    .product-change-event-cell { grid-area: event; }
    .product-change-values-cell { grid-area: values; }
    .product-change-source-cell { grid-area: source; }
    .product-changes-table td.empty-cell { grid-column: 1 / -1; }
    .product-change-values { min-width: 0; max-width: none; grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr); }
    .product-change-product { min-width: 0; max-width: none; }
    .product-change-source-cell strong, .product-change-source-cell small { display: inline; font-size: 11px; }
    .product-change-source-cell small::before { content: ' · '; }
}

/* Source control */
.source-control-workbench { padding: 0; }
.source-control-workbench-heading { align-items: center; margin: 0; padding: 20px; border-bottom: 1px solid var(--line); }
.source-control-workbench-status { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius: 999px; color: #536474; background: #f2f5f7; font-size: 11px; font-weight: 700; white-space: nowrap; }
.source-control-workbench-status::before { width: 7px; height: 7px; border-radius: 50%; background: #7d8d9c; content: ''; }
.source-control-filter { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .8fr); gap: 18px; align-items: stretch; padding: 20px; }
.source-control-source-comparison { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr); align-items: center; }
.source-control-source-card { min-width: 0; height: 100%; padding: 14px; border: 1px solid #dfe5ea; border-radius: 10px; background: #fbfcfd; }
.source-control-source-card label,
.source-control-filter-fields label { display: grid; gap: 6px; color: #425568; font-size: 12px; font-weight: 700; }
.source-control-source-card select,
.source-control-filter-fields select,
.source-control-filter-fields input { width: 100%; min-width: 0; min-height: 42px; padding: 8px 10px; border: 1px solid #cbd4dd; border-radius: 8px; outline: 0; color: var(--ink); background: #fff; }
.source-control-source-card select:focus,
.source-control-filter-fields select:focus,
.source-control-filter-fields input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(215 25 32 / 10%); }
.source-control-connector { display: grid; width: 30px; height: 30px; place-items: center; justify-self: center; border: 1px solid #d9e0e6; border-radius: 50%; color: #71808e; background: #fff; font-size: 16px; }
.source-control-source-freshness { display: flex; align-items: flex-start; gap: 8px; margin-top: 11px; color: #176c61; }
.source-control-source-freshness > span:last-child { min-width: 0; }
.source-control-source-freshness strong { display: block; font-size: 11px; line-height: 1.3; }
.source-control-source-freshness time { display: block; overflow: hidden; margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.source-control-freshness-dot { width: 8px; height: 8px; flex: 0 0 auto; margin-top: 3px; border-radius: 50%; background: #2d998a; box-shadow: 0 0 0 3px rgb(45 153 138 / 12%); }
.source-control-source-freshness.is-stale { color: #8b5b13; }
.source-control-source-freshness.is-stale .source-control-freshness-dot { background: #d2922f; box-shadow: 0 0 0 3px rgb(210 146 47 / 14%); }
.source-control-filter-fields { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-content: start; }
.source-control-filter-fields .search-field { grid-column: 1 / -1; }
.source-control-filter-actions { display: flex; align-items: end; gap: 8px; }
.source-control-filter-actions .button { min-height: 42px; }

.source-control-overview { margin-bottom: 22px; }
.source-control-overview-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.source-control-overview-heading h2 { margin: 0; font-size: 17px; letter-spacing: -.02em; }
.source-control-overview-heading p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.source-control-overview-heading > a { font-size: 12px; font-weight: 700; white-space: nowrap; }
.source-control-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin: 0; }
.source-control-stat-card { display: flex; position: relative; min-width: 0; min-height: 156px; flex-direction: column; padding: 15px; overflow: hidden; border: 1px solid #dfe3e7; border-radius: 11px; color: inherit; background: #fff; box-shadow: 0 2px 5px rgb(19 34 56 / 3%); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.source-control-stat-card:hover { border-color: #e1a4a8; color: inherit; box-shadow: 0 8px 20px rgb(45 35 36 / 8%); text-decoration: none; transform: translateY(-1px); }
.source-control-stat-card.is-active { border-color: #dc6d73; background: #fff8f8; box-shadow: inset 0 3px 0 var(--accent), 0 6px 16px rgb(215 25 32 / 8%); }
.source-control-stat-category { color: #7b8793; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.source-control-stat-card strong { display: block; margin-top: 13px; color: #263748; font-size: 28px; line-height: 1; letter-spacing: -.04em; }
.source-control-stat-label { display: block; min-height: 36px; margin-top: 7px; color: #34495d; font-size: 13px; font-weight: 750; line-height: 1.35; }
.source-control-stat-card small { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: auto; padding-top: 10px; color: #778491; font-size: 10px; font-weight: 650; }
.source-control-stat-card small span { color: var(--accent-dark); font-size: 14px; line-height: 1; }
.source-control-stat-attention .source-control-stat-category,
.source-control-stat-attention strong { color: #a73e4a; }
.source-control-table { min-width: 1060px; }

@media (max-width: 1280px) {
    .source-control-filter { grid-template-columns: 1fr; }
    .source-control-filter-fields { grid-template-columns: minmax(230px, 1fr) minmax(180px, .45fr) auto; align-items: end; }
    .source-control-filter-fields .search-field { grid-column: auto; }
    .source-control-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .source-control-workbench-heading,
    .source-control-overview-heading { align-items: flex-start; flex-direction: column; }
    .source-control-workbench-heading { padding: 15px; }
    .source-control-workbench-status { white-space: normal; }
    .source-control-filter { gap: 14px; padding: 15px; }
    .source-control-source-comparison { grid-template-columns: 1fr; gap: 8px; }
    .source-control-connector { transform: rotate(90deg); }
    .source-control-filter-fields { grid-template-columns: 1fr; }
    .source-control-filter-actions { align-items: stretch; flex-wrap: wrap; }
    .source-control-filter-actions .button { flex: 1 1 auto; }
    .source-control-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .source-control-stat-card { min-height: 148px; }

    .table-card .table-wrap:has(.source-control-table) { overflow-x: hidden; }
    .source-control-table { display: block; width: 100%; min-width: 0; }
    .source-control-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .source-control-table tbody { display: grid; gap: 10px; padding: 10px; background: #f4f6f8; }
    .source-control-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 12px; padding: 14px; border: 1px solid #e1e6ea; border-radius: 9px; background: #fff; }
    .source-control-table td { display: block; min-width: 0; padding: 0; border: 0; background: transparent; }
    .source-control-table td[data-label]::before { display: block; margin-bottom: 5px; color: #84909b; content: attr(data-label); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
    .source-control-table .source-control-product-cell,
    .source-control-table .source-control-issues-cell { grid-column: 1 / -1; }
    .source-control-table .source-control-product-cell::before { display: none; }
    .source-control-table td.source-control-pair { display: grid; min-width: 0; }
    .source-control-table .source-control-pair { min-width: 0; }
    .source-control-table .source-control-pair > span { grid-template-columns: minmax(0, 1fr); gap: 1px; }
    .source-control-table .source-control-pair strong { white-space: normal; }
    .source-control-table .source-control-issues { min-width: 0; }
    .source-control-table .empty-cell { grid-column: 1 / -1; padding: 20px; }
}

@media (max-width: 380px) {
    .source-control-stats { grid-template-columns: 1fr; }
    .source-control-stat-card { min-height: 136px; }
}

/* Upcoming promotion price-file editor */
.promotion-campaign-controls { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.promotion-campaign-controls .filter-bar { margin-bottom: 12px; }
.promotion-campaign-controls .filter-bar:first-child { flex: 1 1 620px; }
.promotion-campaign-controls .filter-bar:first-child label { flex: 1 1 360px; }
.promotion-refresh-form { flex: 0 1 auto; padding-left: 18px; border-left: 1px solid var(--line); }
.promotion-refresh-form input[type='month'] { min-height: 40px; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; color: var(--ink); background: #fff; }
.promotion-refresh-form input[type='month']:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(31 122 113 / 13%); }
.promotion-campaign-note { margin: 0 0 16px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.promotion-editor-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.promotion-editor-summary-card { display: grid; gap: 4px; margin: 0; padding: 16px 18px; }
.promotion-editor-summary-card > span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.promotion-editor-summary-card > strong { color: #25384a; font-size: 21px; line-height: 1.2; }
.promotion-editor-summary-card > small { color: var(--muted); font-size: 11px; }
.promotion-omitted-products { padding: 0; }
.promotion-omitted-products > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 20px; cursor: pointer; list-style: none; }
.promotion-omitted-products > summary::-webkit-details-marker { display: none; }
.promotion-omitted-products > summary::before { color: var(--accent-dark); content: '＋'; font-size: 18px; font-weight: 700; line-height: 1; }
.promotion-omitted-products[open] > summary::before { content: '−'; }
.promotion-omitted-products > summary > span:first-of-type { display: grid; flex: 1 1 auto; gap: 3px; }
.promotion-omitted-products > summary strong { color: #25384a; font-size: 14px; }
.promotion-omitted-products > summary small { color: var(--muted); font-size: 11px; }
.promotion-omitted-products[open] > summary { border-bottom: 1px solid var(--line); }
.promotion-omitted-table { min-width: 760px; }
.promotion-omitted-table th:first-child,
.promotion-omitted-table td:first-child { width: 170px; }
.promotion-omitted-table th:last-child,
.promotion-omitted-table td:last-child { min-width: 280px; }
.promotion-editor-help { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 12px 16px; }
.promotion-editor-help-details { min-width: 0; flex: 1 1 auto; }
.promotion-editor-help-details > summary { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.promotion-editor-help-details > summary::-webkit-details-marker { display: none; }
.promotion-editor-help-details > summary::after { width: 24px; height: 24px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid #cbd7e2; border-radius: 50%; color: var(--accent-dark); content: '+'; font-size: 17px; line-height: 1; }
.promotion-editor-help-details > summary:focus-visible { border-radius: 6px; outline: 3px solid rgb(215 25 32 / 16%); outline-offset: 3px; }
.promotion-editor-help-details[open] > summary::after { content: '−'; }
.promotion-editor-help h2 { display: grid; gap: 2px; margin: 0; font-size: 16px; }
.promotion-editor-help h2 small { color: var(--muted); font-size: 11px; font-weight: 550; }
.promotion-editor-help-content { padding: 10px 36px 3px 0; border-top: 1px solid transparent; }
.promotion-editor-help p { max-width: 920px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.promotion-editor-help-content p + p { margin-top: 7px; }
.promotion-editor-help .promotion-margin-explanation { margin-top: 7px; color: #425568; }
.promotion-draft-actions { display: grid; flex: 0 0 min(100%, 330px); gap: 6px; justify-items: end; }
.promotion-draft-status { margin: 0; color: #536679; font-size: 11px; font-weight: 750; line-height: 1.4; text-align: right; }
.promotion-draft-status:focus { outline: 0; }
.promotion-draft-status.is-saving,
.promotion-draft-status.is-unsaved { color: #87550d; }
.promotion-draft-status.is-saved { color: #3f6d52; }
.promotion-draft-status.is-error,
.promotion-draft-status.is-conflict { color: #a73e4a; }
.promotion-draft-status.is-stale { color: #825a18; }
.promotion-draft-banner { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 0 12px; padding: 14px 18px; border: 1px solid #e5c98f; border-left: 4px solid #c78b23; border-radius: 9px; color: #62491e; background: #fff9eb; }
.promotion-draft-banner[hidden] { display: none; }
.promotion-draft-banner strong { display: block; font-size: 13px; }
.promotion-draft-banner p { max-width: 940px; margin: 3px 0 0; color: #765e35; font-size: 11px; line-height: 1.45; }
.promotion-draft-banner .button { flex: 0 0 auto; }
.promotion-editor-tools { padding: 0; }
.promotion-editor-disclosure-summary { min-height: 64px; align-items: center; margin: 0; padding: 12px 16px; cursor: pointer; list-style: none; }
.promotion-editor-disclosure-summary::-webkit-details-marker { display: none; }
.promotion-editor-disclosure-summary::after { width: 26px; height: 26px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid #cbd7e2; border-radius: 50%; color: var(--accent-dark); content: '+'; font-size: 18px; line-height: 1; }
.promotion-editor-disclosure-summary:focus-visible { border-radius: 10px; outline: 3px solid rgb(215 25 32 / 16%); outline-offset: -3px; }
.promotion-editor-disclosure[open] > .promotion-editor-disclosure-summary { border-bottom: 1px solid var(--line); }
.promotion-editor-disclosure[open] > .promotion-editor-disclosure-summary::after { content: '−'; }
.promotion-editor-disclosure-copy { display: grid; min-width: 0; flex: 1 1 auto; gap: 3px; }
.promotion-editor-disclosure-title { color: var(--ink); font-size: 16px; letter-spacing: -.015em; }
.promotion-editor-disclosure-copy small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.35; }
.promotion-editor-disclosure-summary .result-count { flex: 0 0 auto; }
.promotion-editor-disclosure-content { padding: 14px 20px 18px; }
.promotion-editor-disclosure-note { margin: 0 0 14px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.promotion-manual-add-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.promotion-product-search { position: relative; min-width: 0; }
.promotion-product-search label { display: grid; gap: 6px; color: #425568; font-size: 12px; font-weight: 700; }
.promotion-product-search input { width: 100%; min-height: 42px; padding: 8px 11px; border: 1px solid #cbd7e2; border-radius: 8px; color: var(--ink); background: #fff; }
.promotion-product-search input:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.promotion-product-results { display: grid; max-height: 300px; gap: 5px; margin-top: 8px; overflow-y: auto; }
.promotion-product-results > small { padding: 8px 2px; color: var(--muted); }
.promotion-product-result { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid #dce3e9; border-radius: 8px; color: inherit; background: #fff; text-align: left; cursor: pointer; }
.promotion-product-result:hover,
.promotion-product-result:focus-visible { border-color: #df9297; outline: 0; background: #fff8f8; }
.promotion-product-result.is-on-list { border-color: #e7c98d; background: #fffbf1; }
.promotion-product-result-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.promotion-product-result strong { font-size: 12px; }
.promotion-product-result small { color: var(--muted); font-size: 10px; }
.promotion-product-result-status { flex: 0 0 auto; padding: 3px 6px; border: 1px solid #e0bd77; border-radius: 999px; color: #87550d; background: #fff2cf; font-size: 9px; font-weight: 850; line-height: 1; }
.promotion-bulk-sku-add { min-width: 0; }
.promotion-bulk-sku-add > label { display: grid; gap: 6px; color: #425568; font-size: 12px; font-weight: 700; }
.promotion-bulk-sku-add textarea { width: 100%; min-height: 92px; padding: 9px 11px; resize: vertical; border: 1px solid #cbd7e2; border-radius: 8px; color: var(--ink); background: #fff; font: inherit; line-height: 1.45; }
.promotion-bulk-sku-add textarea:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.promotion-bulk-sku-actions { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.promotion-bulk-sku-actions small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.promotion-bulk-sku-feedback { min-height: 17px; margin: 8px 0 0; color: #3f6d52; font-size: 11px; font-weight: 700; line-height: 1.4; }
.promotion-bulk-sku-feedback:empty { display: none; }
.promotion-bulk-sku-feedback.is-error { color: #a73e4a; }
.promotion-bulk-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr)); gap: 12px; }
.promotion-bulk-group { min-width: 0; margin: 0; padding: 12px 14px 14px; border: 1px solid #d7e0e8; border-radius: 10px; background: #f8fafc; }
.promotion-bulk-group legend { padding: 0 6px; color: #263b4d; font-size: 12px; font-weight: 850; }
.promotion-bulk-group-controls { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
.promotion-bulk-group-controls label { display: grid; flex: 1 1 150px; min-width: 140px; gap: 5px; color: #425568; font-size: 11px; font-weight: 700; }
.promotion-bulk-group-controls input,
.promotion-bulk-group-controls select { width: 100%; min-height: 40px; padding: 7px 9px; border: 1px solid #cbd7e2; border-radius: 8px; color: var(--ink); background: #fff; }
.promotion-bulk-group-note { flex: 1 1 100%; color: var(--muted); font-size: 10px; line-height: 1.4; }
.promotion-bulk-footer { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 12px; }
.promotion-bulk-feedback { flex: 1 1 auto; min-height: 18px; margin: 0; color: #3f6d52; font-size: 11px; font-weight: 700; }
.promotion-bulk-feedback:empty { display: none; }
.promotion-bulk-feedback.is-error { color: #a73e4a; }
.promotion-editor-list-heading { align-items: center; }
.promotion-editor-list-actions { flex: 0 0 auto; flex-wrap: nowrap; }
.promotion-editor-filter-bar { display: grid; grid-template-columns: minmax(300px, .76fr) minmax(540px, 1.42fr) minmax(300px, .82fr); grid-template-areas: 'view catalog price' 'pl change source' 'margin margin margin'; align-items: stretch; gap: 10px 12px; padding: 12px 20px; border-top: 1px solid #e5eaf0; border-bottom: 1px solid #e0e6ec; background: #f4f7fa; }
.promotion-editor-filter-group { display: flex; min-width: 0; align-content: flex-start; align-items: center; flex-wrap: wrap; gap: 7px 8px; padding: 10px 12px; border: 1px solid #dce4eb; border-radius: 9px; background: #fff; box-shadow: 0 1px 2px rgb(31 50 69 / 3%); }
.promotion-filter-group-label { color: #536679; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.promotion-editor-filter-group > .promotion-filter-group-label { flex: 1 1 100%; }
.promotion-editor-view-filter-group { grid-area: view; }
.promotion-taxonomy-filter-group { grid-area: catalog; }
.promotion-pl-filter-group { grid-area: pl; }
.promotion-change-filter-group { grid-area: change; }
.promotion-source-filter-group { grid-area: source; }
.promotion-price-status-filter-group { grid-area: margin; }
.promotion-editor-price-filter-group { grid-area: price; }
.promotion-view-preset-field { display: grid; width: 100%; gap: 6px; }
.promotion-view-preset-field select { width: 100%; min-height: 36px; padding: 6px 32px 6px 9px; border: 1px solid #cbd7e2; border-radius: 7px; color: #25384a; background: #fff; font-size: 12px; font-weight: 750; }
.promotion-view-preset-field select:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 10%); }
.promotion-editor-view-filter-group > small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.promotion-taxonomy-filter-field { display: grid; grid-template-columns: auto minmax(160px, 1fr); flex: 1 1 230px; min-width: 0; align-items: center; gap: 6px; color: #425568; font-size: 10px; font-weight: 750; }
.promotion-taxonomy-filter-field.promotion-name-filter-field { flex: 1 1 100%; grid-template-columns: auto minmax(0, 1fr); }
.promotion-name-filter-field input { min-width: 0; min-height: 36px; padding: 6px 8px; font: inherit; }
.promotion-taxonomy-combobox { position: relative; min-width: 0; }
.promotion-taxonomy-combobox-control { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; min-height: 36px; padding: 4px 7px; border: 1px solid #d9e1e8; border-radius: 7px; background: #fff; }
.promotion-taxonomy-combobox-control:focus-within { border-color: #8498ac; box-shadow: 0 0 0 2px rgb(80 103 126 / 10%); }
.promotion-taxonomy-combobox input { flex: 1 1 104px; width: 100%; min-width: 96px; min-height: 26px; padding: 2px; border: 0; color: var(--ink); background: transparent; font: inherit; outline: 0; }
.promotion-taxonomy-values { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.promotion-taxonomy-values[hidden],
.promotion-taxonomy-options[hidden] { display: none; }
.promotion-taxonomy-value { min-height: 24px; padding: 3px 7px; border: 1px solid #cad6e0; border-radius: 999px; color: #344b60; background: #edf3f8; font-size: 10px; font-weight: 800; line-height: 1.2; cursor: pointer; }
.promotion-taxonomy-value:hover { border-color: #93a7ba; background: #e5edf4; }
.promotion-taxonomy-value:focus-visible { outline: 2px solid #738ca4; outline-offset: 1px; }
[data-taxonomy-combobox='brand-excluded'] .promotion-taxonomy-value { border-color: #e3b9bd; color: #8f3741; background: #fff1f2; }
[data-taxonomy-combobox='brand-excluded'] .promotion-taxonomy-value:hover { border-color: #cf8f96; background: #ffe6e8; }
.promotion-taxonomy-options { position: absolute; z-index: 20; top: calc(100% + 4px); right: 0; left: 0; max-height: 260px; overflow-y: auto; padding: 4px; border: 1px solid #ccd7e1; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgb(31 50 69 / 16%); }
.promotion-taxonomy-option { display: block; width: 100%; padding: 7px 9px; border: 0; border-radius: 5px; color: var(--ink); background: transparent; font-size: 11px; text-align: left; cursor: pointer; }
.promotion-taxonomy-option:hover,
.promotion-taxonomy-option.is-active { background: #edf3f8; }
.promotion-taxonomy-options-empty { display: block; padding: 8px 9px; color: var(--muted); font-size: 10px; font-weight: 650; }
.promotion-editor-filter-group .filter-checkbox { min-height: 34px; margin: 0; padding: 6px 9px; border: 1px solid #d9e1e8; border-radius: 7px; background: #fff; }
.promotion-segmented-filter-group { flex-wrap: wrap; }
.promotion-segmented-filter-group .filter-checkbox:has(input:checked) { border-color: #8498ac; background: #edf3f8; box-shadow: inset 0 0 0 1px rgb(80 103 126 / 10%); }
.promotion-segmented-filter-group .filter-checkbox:has(input:disabled) { cursor: not-allowed; opacity: .55; }
.promotion-change-filter-group .filter-checkbox small,
.promotion-source-filter-group .filter-checkbox small,
.promotion-price-status-filter-group .filter-checkbox small { min-width: 20px; padding: 2px 5px; border-radius: 999px; color: #536679; background: #edf1f5; font-size: 9px; font-weight: 850; line-height: 1.25; text-align: center; }
.promotion-comparison-note { margin: 0; padding: 8px 20px; border-bottom: 1px solid #e0e6ec; color: #536679; background: #fbfcfd; font-size: 10px; line-height: 1.45; }
.promotion-comparison-note.is-warning { color: #8a5a18; background: #fff9ed; }
.promotion-price-filter-field { display: grid; grid-template-columns: auto 84px; align-items: center; gap: 6px; color: #425568; font-size: 10px; font-weight: 750; }
.promotion-price-filter-field input { width: 84px; min-height: 34px; padding: 6px 8px; border: 1px solid #d9e1e8; border-radius: 7px; color: var(--ink); background: #fff; }
.promotion-price-sort-field { display: grid; grid-template-columns: auto minmax(0, 1fr); flex: 1 1 100%; align-items: center; gap: 6px; color: #425568; font-size: 10px; font-weight: 750; }
.promotion-price-sort-field select { width: 100%; min-height: 34px; padding: 6px 28px 6px 8px; border: 1px solid #d9e1e8; border-radius: 7px; color: var(--ink); background: #fff; font: inherit; }
.promotion-price-sort-field select:focus { border-color: #8498ac; outline: 0; box-shadow: 0 0 0 2px rgb(80 103 126 / 10%); }
.promotion-price-filter-field input.is-invalid { border-color: #c83443; box-shadow: 0 0 0 2px rgb(200 52 67 / 10%); }
.promotion-price-filter-feedback { flex-basis: 100%; min-height: 0; margin-left: 72px; color: #a73e4a; font-size: 10px; font-weight: 700; text-align: left; }
.promotion-price-filter-feedback:empty { display: none; }
.promotion-editor-table-card { overflow: hidden; }
.promotion-editor-table-wrap { height: 1500px; min-height: min(68vh, 860px); max-height: 1500px; overflow: auto; }
.promotion-full-window-filters { display: none; }
html.promotion-editor-full-window-open,
body.promotion-editor-full-window-open { overflow: hidden; overscroll-behavior: none; }
html.promotion-editor-full-window-open { scrollbar-gutter: auto; }
.promotion-editor-table-card.is-full-window { position: fixed; z-index: 300; inset: 0; display: flex; width: 100%; height: var(--app-viewport-height); flex-direction: column; margin: 0; padding: var(--app-safe-area-top) var(--app-safe-area-right) var(--app-safe-area-bottom) var(--app-safe-area-left); border: 0; border-radius: 0; background: #fff; box-shadow: none; }
.promotion-editor-table-card.is-full-window .promotion-editor-list-heading { flex: 0 0 auto; align-items: center; flex-direction: row; flex-wrap: wrap; margin-bottom: 12px; }
.promotion-editor-table-card.is-full-window .promotion-editor-list-heading > div:first-child { min-width: 220px; flex: 1 1 360px; }
.promotion-editor-table-card.is-full-window .promotion-editor-list-actions { width: auto; flex: 0 1 auto; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.promotion-editor-table-card.is-full-window .promotion-editor-list-actions .button { width: auto; }
.promotion-editor-table-card.is-full-window .promotion-full-window-filters { display: inline-flex; }
.promotion-editor-table-card.is-full-window .promotion-editor-filter-bar,
.promotion-editor-table-card.is-full-window .promotion-comparison-note { display: none; }
.promotion-editor-table-card.is-full-window.has-full-window-filters .promotion-editor-filter-bar { display: grid; max-height: min(38vh, 420px); flex: 0 1 auto; overflow-y: auto; overscroll-behavior: contain; }
.promotion-editor-table-card.is-full-window.has-full-window-filters .promotion-comparison-note { display: block; flex: 0 0 auto; }
.promotion-editor-table-card.is-full-window .promotion-editor-table-wrap { width: 100%; height: auto; min-height: 0; max-height: none; flex: 1 1 0; overflow: auto; overscroll-behavior: contain; }
.promotion-editor-table { min-width: 1625px; }
.promotion-editor-table.has-sensitive-prices { min-width: 1945px; }
.promotion-editor-table tbody tr { transition: none; }
.promotion-editor-table th { position: sticky; z-index: 2; top: 0; white-space: nowrap; }
.promotion-editor-table td { vertical-align: top; }
.promotion-editor-table td > strong,
.promotion-editor-table td > small { display: block; }
.promotion-editor-table td > small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.promotion-editor-table th.promotion-identity-column,
.promotion-editor-table td.promotion-identity-column { width: 105px; min-width: 105px; max-width: 105px; overflow-wrap: anywhere; }
.promotion-store-product-link { color: var(--accent-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.promotion-store-product-link:hover { color: var(--accent); }
.promotion-editor-table th.promotion-product-column,
.promotion-editor-table td.promotion-product-column { width: 500px; min-width: 500px; }
.promotion-product-cell-layout { display: flex; min-width: 0; align-items: flex-start; gap: 10px; }
.promotion-product-thumbnail { display: grid; width: 56px; height: 56px; flex: 0 0 56px; overflow: hidden; place-items: center; border: 1px solid #dce4eb; border-radius: 8px; background: #f7fafb; }
.promotion-product-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.promotion-product-thumbnail-empty { padding: 5px; color: var(--muted); font-size: 9px; font-weight: 750; line-height: 1.15; text-align: center; }
.promotion-product-cell-content { min-width: 0; flex: 1 1 auto; }
.promotion-product-cell-content > strong,
.promotion-product-cell-content > small { display: block; }
.promotion-product-cell-content > small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.promotion-editor-table th.promotion-history-column,
.promotion-editor-table td.promotion-history-column { min-width: 220px; }
.promotion-editor-table th.promotion-eu-purchase-column,
.promotion-editor-table td.promotion-eu-purchase-column { width: 190px; min-width: 190px; }
.promotion-editor-table th.promotion-margin-column,
.promotion-editor-table td.promotion-margin-column { width: 145px; min-width: 145px; }
.promotion-derived-cell { white-space: nowrap; }
.promotion-derived-cell > strong { font-variant-numeric: tabular-nums; }
.promotion-derived-cell > small.is-warning { color: #a66b17; font-weight: 700; }
.promotion-derived-cell > small.promotion-eu-purchase-secondary { margin-top: 7px; padding-top: 6px; border-top: 1px solid #dbe3ea; color: #425568; font-weight: 750; }
.promotion-derived-cell.is-positive > strong { color: #187148; }
.promotion-derived-cell.is-negative > strong,
.promotion-derived-cell.is-negative > small:first-of-type { color: #b32635; }
.promotion-derived-cell.is-unavailable > strong,
.promotion-derived-cell.is-unavailable > small { color: var(--muted); }
.promotion-editor-badges { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 6px; }
.promotion-row-status-badge { display: inline-flex; min-height: 22px; align-items: center; padding: 3px 8px; border: 1px solid transparent; border-radius: 999px; font-size: 10px; font-weight: 850; line-height: 1; white-space: nowrap; }
.promotion-row-status-badge.is-price-new { border-color: #cbd7e2; color: #536679; background: #f4f7fa; }
.promotion-row-status-badge.is-price-set { border-color: #b7d8c5; color: #246a45; background: #edf8f1; }
.promotion-row-status-badge.is-price-auto-set { max-width: 160px; border-color: #b7cde5; color: #2e5d87; background: #edf5fc; line-height: 1.25; white-space: normal; }
.promotion-row-status-badge.is-price-unset { border-color: #e0bd77; color: #87550d; background: #fff2cf; }
.promotion-row-status-badge.is-file { border-color: #b7d8c5; color: #246a45; background: #edf8f1; }
.promotion-row-status-badge.is-manual { border-color: #b7cde5; color: #2e5d87; background: #edf5fc; }
.promotion-row-status-badge.is-outside-file { border-color: #c5b8df; color: #62438d; background: #f4effb; }
.promotion-row-status-badge.is-duplicate { border-color: #e0bd77; color: #87550d; background: #fff2cf; }
.promotion-row-status-badge.is-recent-promotion { min-height: 26px; border-color: #8d3f08; color: #fff; background: #b45309; box-shadow: 0 3px 8px rgb(180 83 9 / 26%); letter-spacing: .025em; }
.promotion-editor-table tbody tr.has-recent-store-promotion > td { border-top: 1px solid #e6ad4f; border-bottom-color: #edc979; background: #fff8e8; }
.promotion-editor-table tbody tr.has-recent-store-promotion:hover > td { background: #fff0cb; }
.promotion-editor-table tbody tr.has-recent-store-promotion > td:first-child { box-shadow: inset 5px 0 0 #c65f0a; }
.promotion-change-badge { display: inline-flex; min-height: 22px; align-items: center; padding: 3px 8px; border: 1px solid transparent; border-radius: 999px; font-size: 10px; font-weight: 800; line-height: 1; white-space: nowrap; }
.promotion-change-badge.is-ending { border-color: #edc6ad; color: #9a451d; background: #fff1e7; }
.promotion-change-badge.is-extended { border-color: #b7d8c5; color: #246a45; background: #edf8f1; }
.promotion-change-badge.is-new { border-color: #bfd3e5; color: #315f87; background: #eff6fc; }
.promotion-last-history { display: table-cell; }
.promotion-last-history-entry { min-width: 200px; }
.promotion-last-history-entry + .promotion-last-history-entry { margin-top: 7px; }
.promotion-last-history-entry > span:last-child { color: #425568; font-size: 10px; line-height: 1.35; }
.promotion-last-history-entry.is-recent-store-promotion { padding: 7px 9px; border: 1px solid #e6ad4f; border-left: 4px solid #c65f0a; border-radius: 6px; background: #fff1cf; }
.promotion-last-history-entry.is-recent-store-promotion > span:last-child { color: #783f0d; font-weight: 800; }
.promotion-editor-table th.promotion-check-column,
.promotion-editor-table td.promotion-check-column { width: 38px; min-width: 38px; max-width: 38px; }
.promotion-editor-table input[type='checkbox'] { width: 17px; height: 17px; accent-color: var(--accent); }
.promotion-price-input,
.promotion-date-input { width: 112px; min-height: 36px; padding: 6px 7px; border: 1px solid #ccd6df; border-radius: 7px; color: var(--ink); background: #fff; }
.promotion-date-input { width: 132px; }
.promotion-editor-table td.promotion-sale-moc-cell { min-width: 205px; }
.promotion-sale-moc-references { display: block; max-width: 202px; margin-top: 5px; color: #2f6850; font-size: 9px; font-weight: 750; line-height: 1.35; white-space: normal; }
.promotion-sale-moc-references > span { display: block; }
.promotion-sale-moc-references > span + span { margin-top: 3px; }
.promotion-sale-moc-references.is-warning { color: #9a5b12; }
.promotion-price-input:focus,
.promotion-date-input:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 10%); }
.promotion-remove-row { min-height: 34px; padding: 6px 9px; color: #a73e4a; }

@media (max-width: 1500px) {
    .promotion-editor-filter-bar {
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
        grid-template-areas:
            'view price'
            'catalog catalog'
            'pl source'
            'change change'
            'margin margin';
    }
}

@media (max-width: 760px) {
    .promotion-campaign-controls { align-items: stretch; flex-direction: column; gap: 0; }
    .promotion-campaign-controls .filter-bar:first-child { flex: 0 1 auto; }
    .promotion-refresh-form { padding: 14px 0 0; border-top: 1px solid var(--line); border-left: 0; }
    .promotion-campaign-controls .filter-bar .button,
    .promotion-campaign-controls .filter-bar label { flex: 1 1 100%; }
    .promotion-editor-summary { grid-template-columns: 1fr; }
    .promotion-editor-help { align-items: flex-start; flex-direction: column; }
    .promotion-editor-help-details { width: 100%; }
    .promotion-editor-help-content { padding-right: 0; }
    .promotion-draft-actions { width: 100%; justify-items: stretch; }
    .promotion-draft-status { text-align: left; }
    .promotion-editor-help .button { width: 100%; }
    .promotion-draft-banner { align-items: stretch; flex-direction: column; }
    .promotion-draft-banner .button { width: 100%; }
    .promotion-editor-disclosure-summary { flex-wrap: wrap; }
    .promotion-editor-disclosure-copy { order: 1; }
    .promotion-editor-disclosure-summary::after { order: 2; }
    .promotion-editor-disclosure-summary .result-count { order: 3; flex: 1 1 100%; justify-content: center; white-space: normal; text-align: center; }
    .promotion-editor-disclosure-content { padding: 14px 16px 16px; }
    .promotion-manual-add-grid { grid-template-columns: 1fr; }
    .promotion-bulk-sku-actions { align-items: stretch; flex-direction: column; }
    .promotion-bulk-sku-actions .button { width: 100%; }
    .promotion-bulk-group-controls { align-items: stretch; flex-direction: column; }
    .promotion-bulk-group-controls label,
    .promotion-bulk-group-controls .button { flex: 1 1 100%; width: 100%; }
    .promotion-bulk-footer { align-items: stretch; flex-direction: column; }
    .promotion-bulk-footer .button { width: 100%; }
    .promotion-editor-list-heading { align-items: stretch; flex-direction: column; }
    .promotion-editor-list-actions { align-items: stretch; flex-direction: column; flex-wrap: wrap; width: 100%; }
    .promotion-editor-list-actions .result-count { justify-content: center; white-space: normal; text-align: center; }
    .promotion-editor-list-actions .button { width: 100%; }
    .promotion-editor-filter-bar {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            'view'
            'catalog'
            'pl'
            'change'
            'source'
            'price'
            'margin';
        gap: 10px;
        padding: 12px 15px;
    }
    .promotion-editor-filter-group { flex-wrap: wrap; }
    .promotion-filter-group-label { flex-basis: 100%; }
    .promotion-taxonomy-filter-field { flex: 1 1 280px; grid-template-columns: auto minmax(180px, 1fr); }
    .promotion-price-filter-field,
    .promotion-price-sort-field { flex: 1 1 140px; grid-template-columns: auto minmax(84px, 1fr); }
    .promotion-price-filter-field input,
    .promotion-price-sort-field select { width: 100%; }
    .promotion-price-filter-feedback { margin-left: 0; }
    .promotion-editor-table-wrap { min-height: 0; max-height: 72vh; }
}

/* Availability comparison */
.availability-header-actions { flex: 0 0 auto; }
.availability-filter { display: grid; grid-template-columns: minmax(190px, 240px) minmax(280px, 1fr) auto; gap: 14px; align-items: end; overflow: visible; padding: 16px; }
.availability-filter-field { display: grid; min-width: 0; gap: 6px; color: #3c5064; font-size: 12px; font-weight: 700; }
.availability-filter-field input,
.availability-filter-field select { width: 100%; min-width: 0; min-height: 42px; }
.availability-filter-actions { display: flex; align-items: center; gap: 8px; }
.availability-filter-actions .button { min-height: 42px; }
.availability-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.availability-stats .stat-card { min-width: 0; min-height: 104px; padding: 16px; }
.availability-freshness { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 20px; color: var(--muted); font-size: 12px; }
.availability-freshness > strong { color: #3c5064; font-size: 13px; }
.availability-results-placeholder { display: grid; min-height: 138px; align-content: center; justify-items: start; gap: 5px; padding: 26px; }
.availability-results-placeholder h2 { margin: 0; font-size: 17px; }
.availability-results-placeholder p { max-width: 760px; margin: 0; color: var(--muted); }
.availability-table { min-width: 1060px; }
.availability-disclosure { scroll-margin-top: calc(var(--app-topbar-height) + 16px); }
.availability-disclosure-summary { align-items: center; }
.availability-disclosure-summary > div { min-width: 0; flex: 1 1 auto; }
.availability-disclosure-summary .collapsible-panel-count { flex: 0 0 auto; }
.availability-disclosure .collapsible-panel-content { padding-top: 18px; }
.availability-dictionary-table { min-width: 760px; }
.availability-values-table { min-width: 880px; }
.availability-dictionary-table input:not([type='checkbox']),
.availability-dictionary-table select,
.availability-key-create input { width: 100%; min-width: 0; min-height: 40px; padding: 8px 10px; border: 1px solid #cbd7e2; border-radius: 7px; outline: 0; color: var(--ink); background: #fff; }
.availability-dictionary-table input:not([type='checkbox']):focus,
.availability-dictionary-table select:focus,
.availability-key-create input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.availability-dictionary-table input[type='checkbox'] { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }
.availability-dictionary-table td:last-child { width: 1%; white-space: nowrap; }
.availability-dictionary-table form { margin: 0; }
.availability-key-create { display: grid; grid-template-columns: minmax(210px, .9fr) minmax(260px, 1.3fr) minmax(120px, .35fr) auto; gap: 12px; align-items: end; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.availability-key-create label { display: grid; min-width: 0; gap: 6px; color: #3c5064; font-size: 12px; font-weight: 700; }
.availability-key-create .button { min-height: 40px; }

@media (max-width: 1200px) {
    .availability-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .availability-filter { grid-template-columns: minmax(180px, .65fr) minmax(260px, 1.35fr); }
    .availability-filter-actions { grid-column: 1 / -1; }
    .availability-key-create { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .availability-key-create .button { justify-self: start; }
}

@media (max-width: 700px) {
    .availability-filter { grid-template-columns: 1fr; padding: 15px; }
    .availability-filter-actions { grid-column: auto; align-items: stretch; flex-wrap: wrap; }
    .availability-filter-actions .button { flex: 1 1 auto; }
    .availability-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .availability-results-placeholder { min-height: 0; padding: 20px 15px; }
    .availability-key-create { grid-template-columns: 1fr; }
    .availability-key-create .button { width: 100%; }
    .availability-disclosure-summary { align-items: flex-start; }
}

@media (max-width: 380px) {
    .availability-stats { grid-template-columns: 1fr; }
}

/* Account settings */
.user-summary {
    min-height: 44px;
    padding: 5px 7px 5px 5px;
    border-radius: 9px;
    color: #fff;
    transition: background .15s ease;
}
.user-summary:hover {
    color: #fff;
    background: rgb(116 0 5 / 24%);
    text-decoration: none;
}
.user-summary:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}
.user-avatar { overflow: hidden; }
.user-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }

.account-page { max-width: 1180px; margin: 0 auto; }
.account-page-header { align-items: center; }
.account-status-pill {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border: 1px solid #cbe5dc;
    border-radius: 999px;
    color: #176c61;
    background: #f1faf7;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}
.account-status-pill > span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2d998a;
    box-shadow: 0 0 0 3px rgb(45 153 138 / 12%);
}
.account-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 320px);
    gap: 20px;
    align-items: start;
}
.account-main-column,
.account-side-column { min-width: 0; }
.account-card { padding: 24px; overflow: visible; }
.account-card-heading { margin-bottom: 22px; }
.account-card-heading > div {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
    gap: 4px 12px;
}
.account-card-heading .account-section-number {
    grid-row: 1 / span 2;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    margin: -3px 0 0;
    border: 1px solid #f0d8da;
    border-radius: 8px;
    color: #a7444a;
    background: #fff7f7;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .08em;
}
.account-card-heading h2 { grid-column: 2; line-height: 1.25; }
.account-card-heading p:not(.account-section-number) { grid-column: 2; max-width: 680px; line-height: 1.5; }
.account-profile-grid {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 30px;
    padding-top: 22px;
    border-top: 1px solid #edf1f5;
}
.account-avatar-editor {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding-right: 27px;
    border-right: 1px solid #edf1f5;
    text-align: center;
}
.account-avatar-preview,
.account-summary-avatar {
    display: grid;
    overflow: hidden;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background:
        radial-gradient(circle at 32% 28%, rgb(255 255 255 / 22%), transparent 34%),
        linear-gradient(145deg, #e34a50, #a70e15);
    font-weight: 800;
    letter-spacing: .025em;
}
.account-avatar-preview {
    width: 116px;
    height: 116px;
    margin: 0 auto 13px;
    border: 4px solid #fff;
    box-shadow: 0 0 0 1px #dde4ea, 0 9px 22px rgb(36 24 25 / 13%);
    font-size: 30px;
}
.account-avatar-preview img,
.account-summary-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.account-avatar-preview [hidden] { display: none; }
.account-avatar-copy strong { display: block; color: #2d3d4d; font-size: 13px; }
.account-avatar-copy p {
    display: grid;
    gap: 2px;
    margin: 4px 0 14px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}
.account-avatar-upload { display: grid; gap: 10px; }
.account-file-picker { display: grid; gap: 6px; }
.account-avatar-upload .button,
.account-avatar-remove { width: 100%; }
.avatar-file-input:focus-visible + .button {
    border-color: var(--accent);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(215 25 32 / 12%);
}
.account-file-name {
    display: block;
    min-height: 15px;
    overflow: hidden;
    padding: 0 4px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.account-avatar-remove-form { margin-top: 8px; }
.account-profile-form { min-width: 0; }
.account-form-grid { grid-template-columns: 1fr; gap: 18px; }
.account-profile-form .form-field > span,
.account-password-grid .form-field > span { line-height: 1.35; }
.account-form-actions {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #edf1f5;
}
.account-password-grid { max-width: 720px; }
.account-password-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #edf1f5;
}
.account-password-guidance { display: grid; min-width: 0; gap: 8px; }
.account-password-guidance > p {
    margin: 0;
    color: #3c5064;
    font-size: 12px;
    font-weight: 700;
}
.account-password-requirements {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    padding: 0;
    color: var(--muted);
    font-size: 11px;
    list-style: none;
}
.account-password-requirements li {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    gap: 6px;
    padding: 4px 8px 4px 5px;
    border: 1px solid #deebe7;
    border-radius: 999px;
    background: #f7fbfa;
}
.account-password-requirements li::before {
    display: inline-grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 50%;
    color: #176c61;
    background: #e4f5f1;
    content: '✓';
    font-size: 9px;
    font-weight: 850;
}
.account-side-column {
    position: sticky;
    top: calc(var(--app-topbar-height) + 20px);
}
.account-summary-card { padding: 20px; }
.account-summary-identity {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding-bottom: 18px;
    border-bottom: 1px solid #edf1f5;
}
.account-summary-avatar { width: 52px; height: 52px; flex: 0 0 auto; font-size: 15px; }
.account-summary-copy { display: grid; min-width: 0; }
.account-summary-identity strong,
.account-summary-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-summary-identity strong { color: #263748; font-size: 14px; }
.account-summary-identity small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.account-facts { margin: 0; }
.account-facts > div {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #edf1f5;
}
.account-facts dt { color: var(--muted); font-size: 12px; line-height: 1.4; }
.account-facts dd {
    margin: 0;
    color: #34495d;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    text-align: right;
}
.account-facts .status { font-size: 10px; }
.account-roles { padding-top: 15px; }
.account-roles > span {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.account-roles > div { display: flex; flex-wrap: wrap; gap: 6px; }
.account-security-note {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 17px 18px;
    border-color: #dbe8e4;
    background: #f7fbfa;
}
.account-security-icon {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 9px;
    color: #176c61;
    background: #dff3ee;
    font-size: 14px;
    font-weight: 850;
}
.account-security-note h2 { margin: 1px 0 4px; color: #2c4e49; font-size: 13px; }
.account-security-note p { margin: 0; color: #617c77; font-size: 11px; line-height: 1.5; }

@media (max-width: 980px) {
    .account-layout { grid-template-columns: 1fr; }
    .account-side-column {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
    .account-side-column .panel-card { margin-bottom: 0; }
}

@media (max-width: 700px) {
    .account-page-header { align-items: flex-start; }
    .account-status-pill { justify-self: start; }
    .account-card { padding: 18px 15px; }
    .account-profile-grid { grid-template-columns: 1fr; gap: 22px; }
    .account-avatar-editor {
        padding: 0 0 22px;
        border-right: 0;
        border-bottom: 1px solid #edf1f5;
    }
    .account-avatar-upload,
    .account-avatar-remove-form {
        width: min(100%, 280px);
        margin-right: auto;
        margin-left: auto;
    }
    .account-password-footer { align-items: stretch; flex-direction: column; }
    .account-password-footer .button { width: 100%; }
    .account-side-column { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .topbar-account { gap: 4px; }
    .topbar-account .user-summary {
        display: inline-flex;
        min-width: 44px;
        justify-content: center;
        padding: 5px;
    }
    .topbar-account .user-summary > span:last-child { display: none; }
    .topbar-account .user-avatar { width: 32px; height: 32px; }
}

.promotion-shared-history summary { cursor: pointer; font-weight: 700; }
.promotion-shared-change { display: block; padding: 12px 0; border-bottom: 1px solid var(--border-color, #e2e8f0); }
.promotion-shared-change p { margin: 4px 0; overflow-wrap: anywhere; }
.promotion-shared-change .button { margin: 8px 8px 0 0; }
.promotion-shared-change input[type="checkbox"] { margin-right: 8px; }
#promotion-legacy-changes, #promotion-history-list, #promotion-shared-conflict-list { max-height: 420px; overflow: auto; }

.promotion-draft-actions [hidden], #promotion-legacy-recovery[hidden], #promotion-history-more[hidden] { display: none; }

/* Kreator cen i marż PL/EU */
.price-margin-rate.is-warning { border-color: #e0bd77; color: #87550d; background: #fff8e8; }
.price-margin-help-list { display: grid; gap: 6px; margin: 0; padding-left: 18px; color: #3c5064; font-size: 13px; line-height: 1.45; }
.price-margin-help-list code { font-size: 12px; }
.price-margin-field { display: grid; min-width: 0; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 650; }
.price-margin-field textarea { width: 100%; min-height: 92px; box-sizing: border-box; padding: 9px 11px; resize: vertical; border: 1px solid #cbd7e2; border-radius: 8px; color: var(--ink); background: #fff; font: inherit; line-height: 1.45; }
.price-margin-field textarea:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.price-margin-loader { display: grid; gap: 12px; }
/* Suggestions extend past the card, so the open loader must not clip them. */
#price-margin-loader[open] { overflow: visible; }
#price-margin-loader[open] > summary { border-top-left-radius: 12px; border-top-right-radius: 12px; }
.price-margin-loader-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 16px; align-items: stretch; }
.price-margin-loader-card { display: grid; grid-template-rows: auto 1fr auto; gap: 14px; min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfe; }
.price-margin-loader-card-head h3 { margin: 0; color: var(--ink); font-size: 15px; font-weight: 750; line-height: 1.3; }
.price-margin-loader-card-head p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.price-margin-loader-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: start; }
.price-margin-loader-fields .price-margin-query-field { grid-column: 1 / -1; }
.price-margin-loader-fields input[type="search"] { min-height: 44px; font-size: 14px; font-weight: 400; }
.price-margin-codes-field { align-self: stretch; }
.price-margin-codes-field textarea { height: 100%; min-height: 132px; font-size: 14px; font-weight: 400; }
.price-margin-loader-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.price-margin-loader-actions small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.price-margin-loader-actions small.is-error { color: #9d3340; font-weight: 650; }
.price-margin-loader-status { margin: 0; }
.price-margin-loader-note { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.price-margin-combobox { display: grid; min-width: 0; align-content: start; gap: 5px; }
.price-margin-combobox > label { color: var(--muted); font-size: 12px; font-weight: 650; }
.price-margin-combobox-control { position: relative; }
.price-margin-combobox-control input { width: 100%; min-height: 44px; padding: 8px 38px 8px 11px; border: 1px solid #cbd7e2; border-radius: 7px; color: var(--ink); background: #fff; font-size: 14px; font-weight: 400; outline: 0; }
.price-margin-combobox-control input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(215 25 32 / 11%); }
.price-margin-combobox-clear { position: absolute; top: 50%; right: 7px; display: grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 0; border-radius: 6px; color: var(--muted); background: transparent; font-size: 18px; line-height: 1; transform: translateY(-50%); cursor: pointer; }
.price-margin-combobox-clear[hidden] { display: none; }
.price-margin-combobox-clear:hover { color: var(--ink); background: #eef2f6; }
.price-margin-combobox-options { position: absolute; z-index: 40; top: calc(100% + 4px); right: 0; left: 0; max-height: 320px; overflow-y: auto; padding: 4px; border: 1px solid #ccd7e1; border-radius: 10px; background: #fff; box-shadow: 0 14px 32px rgb(31 50 69 / 16%); }
.price-margin-combobox-options[hidden] { display: none; }
.price-margin-combobox-option { display: grid; gap: 1px; padding: 8px 10px; border-radius: 7px; color: var(--ink); font-size: 13px; line-height: 1.3; cursor: pointer; }
.price-margin-combobox-option small { color: var(--muted); font-size: 11px; }
.price-margin-combobox-option:hover, .price-margin-combobox-option.is-active { background: #f1f5f9; }
.price-margin-combobox-option[aria-selected="true"] > span { color: var(--accent-dark); font-weight: 700; }
.price-margin-combobox-empty { padding: 10px; color: var(--muted); font-size: 12px; }
.price-margin-combobox-hint { color: var(--muted); font-size: 11px; line-height: 1.35; }
.price-margin-combobox-hint:empty { display: none; }
.price-margin-combobox-hint.is-warning { color: #87550d; font-weight: 650; }
.price-margin-status { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.price-margin-status:empty { display: none; }
.price-margin-status.is-error { color: #9d3340; font-weight: 650; }
.price-margin-status.is-warning { color: #87550d; font-weight: 650; }
.price-margin-bulk { display: grid; gap: 14px; }
.price-margin-bulk-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 28px; }
.price-margin-target { min-width: 0; margin: 0; padding: 0; border: 0; }
.price-margin-target legend { margin-bottom: 6px; padding: 0; color: var(--muted); font-size: 12px; font-weight: 650; }
.price-margin-target-options { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid #d8e0e8; border-radius: 10px; background: #f3f6f9; }
.price-margin-target-option { position: relative; display: block; }
.price-margin-target-option input[type="radio"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.price-margin-target-option span { display: grid; min-width: 136px; gap: 1px; padding: 7px 14px; border-radius: 7px; color: #3c5064; font-size: 13px; font-weight: 700; line-height: 1.3; }
.price-margin-target-option small { color: var(--muted); font-size: 11px; font-weight: 500; }
.price-margin-target-option:hover span { color: var(--ink); background: #fff; }
.price-margin-target-option input:checked + span { color: var(--accent-dark); background: #fff; box-shadow: inset 0 0 0 1px #e4a7ab, 0 1px 2px rgb(28 28 30 / 8%); }
.price-margin-target-option input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.price-margin-bulk-scope { max-width: 560px; margin: 0; padding-bottom: 4px; color: #3c5064; font-size: 13px; line-height: 1.45; }
.price-margin-bulk-scope.is-empty { color: #87550d; }
.price-margin-bulk-actions { border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.price-margin-bulk-action { display: grid; grid-template-columns: minmax(200px, 300px) minmax(0, 1fr); gap: 10px 28px; align-items: center; padding: 14px 16px; }
.price-margin-bulk-action + .price-margin-bulk-action { border-top: 1px solid var(--line); }
.price-margin-bulk-copy h3 { margin: 0; color: var(--ink); font-size: 14px; font-weight: 750; line-height: 1.3; }
.price-margin-bulk-copy p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.price-margin-bulk-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.price-margin-bulk-controls select, .price-margin-bulk-controls .promotion-price-input { min-height: 44px; }
.price-margin-inline-field { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 650; white-space: nowrap; }
.price-margin-inline-field select { width: auto; min-width: 260px; }
.price-margin-unit-field { position: relative; display: inline-flex; align-items: center; }
.price-margin-unit-field .promotion-price-input { width: 110px; padding-right: 32px; text-align: right; font-variant-numeric: tabular-nums; }
.price-margin-unit { position: absolute; right: 12px; color: var(--muted); font-weight: 700; pointer-events: none; }
.price-margin-bulk-status { margin: 0; }
.price-margin-list-heading { flex-wrap: wrap; }
.price-margin-list-actions { flex-wrap: wrap; justify-content: flex-end; }
.price-margin-download-status { margin: 0 20px 12px; }
.price-margin-view-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; padding: 0 20px 16px; }
.price-margin-view-filters .price-margin-field { flex: 0 1 200px; }
.price-margin-view-filters .price-margin-query-field { flex: 1 1 260px; }
.price-margin-view-filters .promotion-price-input { width: 100%; min-height: 40px; box-sizing: border-box; }
.price-margin-table-wrap { max-height: min(76vh, 1200px); overflow: auto; border-top: 1px solid var(--line); }
.price-margin-table { min-width: 1900px; }
.price-margin-table th { position: sticky; z-index: 2; top: 0; vertical-align: top; }
.price-margin-table th small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.price-margin-table .price-margin-group-row th { height: 34px; box-sizing: border-box; padding-top: 0; padding-bottom: 0; text-align: center; vertical-align: middle; }
.price-margin-table .price-margin-column-row th { top: 34px; }
.price-margin-table th.price-margin-group-pl { background: #f1f6fd; }
.price-margin-table th.price-margin-group-eu { background: #f5f1fb; }
.price-margin-table th.price-margin-group-new { background: #fff6e6; }
.price-margin-table td { padding: 10px 12px; vertical-align: top; }
.price-margin-table td small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.price-margin-table .price-margin-check-column { width: 38px; min-width: 38px; }
.price-margin-table input[type='checkbox'] { width: 17px; height: 17px; accent-color: var(--accent); }
.price-margin-identity-column { min-width: 110px; max-width: 130px; overflow-wrap: anywhere; }
.price-margin-product-column { min-width: 340px; max-width: 420px; }
.price-margin-product-layout { display: flex; gap: 12px; align-items: flex-start; }
.price-margin-product-content { display: grid; min-width: 0; gap: 2px; }
.price-margin-price-cell { min-width: 118px; white-space: nowrap; }
.price-margin-price-cell strong { font-variant-numeric: tabular-nums; }
.price-margin-table td.is-pl { background: #fafcff; }
.price-margin-table td.is-eu { background: #fcfbfe; }
.price-margin-price-cell.has-promotion strong { color: #b42318; }
.price-margin-price-cell.has-eu-promotion strong { color: #b42318; }
.price-margin-table td small.is-promotion { color: #b42318; font-weight: 700; }
.price-margin-table td small.is-eu-comparison { color: #5b3f8c; font-weight: 650; }
.price-margin-table td small.is-eu-comparison.is-negative { color: #b42318; }
.price-margin-new-cell { min-width: 172px; background: #fffdf8; }
.price-margin-new-feedback { display: grid; max-width: 190px; gap: 1px; margin-top: 4px; }
.price-margin-table .price-margin-new-feedback small { margin-top: 0; white-space: normal; }
.price-margin-table td small.is-margin { color: #246a45; font-weight: 700; }
.price-margin-table td small.is-error { color: #b42318; font-weight: 700; }
.price-margin-table td small.is-warning { color: #87550d; font-weight: 700; }
.price-margin-table td small.is-muted { color: var(--muted); }
.price-margin-input.is-invalid { border-color: #d92d20; background: #fff5f4; }
.price-margin-table tbody tr.has-new-prices > td:first-child { box-shadow: inset 4px 0 0 var(--accent); }
.price-margin-table tbody tr.is-unavailable > td { background: #f8f9fb; }
.price-margin-empty-state { padding: 24px 20px; text-align: center; }
.price-margin-page-size-field .promotion-price-input { width: 100%; }
.price-margin-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; padding: 12px 20px; border-top: 1px solid var(--line); }
.price-margin-pagination[hidden] { display: none; }
.price-margin-page-summary { margin: 0; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.price-margin-page-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.price-margin-page-jump { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 650; }
.price-margin-page-jump .promotion-price-input { width: 76px; min-height: 40px; text-align: center; font-variant-numeric: tabular-nums; }

@media (max-width: 980px) {
    .price-margin-loader-grid, .price-margin-loader-fields { grid-template-columns: minmax(0, 1fr); }
    .price-margin-view-filters .price-margin-field { flex: 1 1 100%; }
    .price-margin-list-actions { width: 100%; justify-content: flex-start; }
    .price-margin-bulk-action { grid-template-columns: minmax(0, 1fr); }
    .price-margin-inline-field { flex-wrap: wrap; white-space: normal; }
    .price-margin-inline-field select { min-width: 0; }
}

/* Allegro listing module */
.status-allegro-inactive { color: #5f6b76; background: #eceff2; }
.allegro-connection { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.allegro-connection-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px 20px; margin: 12px 0 0; }
.allegro-connection-meta div { display: grid; gap: 2px; }
.allegro-connection-meta span { color: var(--muted); font-size: 12px; font-weight: 650; }
.allegro-connection-meta strong { font-size: 14px; font-weight: 650; }
.allegro-connection-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.allegro-connection-error { margin: 12px 0 0; padding: 10px 12px; border-radius: 8px; color: #8f2a34; background: #fdecef; font-size: 13px; }
.allegro-stat-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.allegro-stat-attention { border-color: #ebc7a3; background: #fffdf9; }
.allegro-stat-failed { border-color: #efb8bd; background: #fffafb; }
.allegro-stat-ready { border-color: #b9dfd5; background: #f6fcfa; }
.allegro-filter-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; padding: 0; list-style: none; }
.allegro-filter-tabs a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 11px; border: 1px solid var(--line); border-radius: 99px; color: var(--ink); background: #fff; font-size: 13px; font-weight: 650; }
.allegro-filter-tabs a:hover { border-color: #e4a7ab; text-decoration: none; }
.allegro-filter-tabs a.is-active { border-color: var(--accent); color: #fff; background: var(--accent); }
.allegro-filter-tabs a small { color: inherit; opacity: .75; font-size: 11px; }
.allegro-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 20px; border-bottom: 1px solid #edf1f5; }
.allegro-toolbar select { min-height: 36px; padding: 6px 10px; border: 1px solid #cbd7e2; border-radius: 7px; }
.allegro-toolbar .allegro-toolbar-search { display: flex; gap: 6px; margin-left: auto; }
.allegro-toolbar .allegro-toolbar-search input { min-height: 36px; padding: 6px 10px; border: 1px solid #cbd7e2; border-radius: 7px; }
.allegro-offer-table td { vertical-align: top; }
.allegro-offer-product { display: flex; gap: 10px; align-items: flex-start; min-width: 240px; }
.allegro-offer-thumb { width: 44px; height: 44px; flex: 0 0 auto; object-fit: cover; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.allegro-offer-thumb-empty { display: grid; width: 44px; height: 44px; flex: 0 0 auto; place-items: center; border: 1px dashed #cbd7e2; border-radius: 6px; color: var(--muted); font-size: 11px; }
.allegro-offer-product small { display: block; color: var(--muted); }
.allegro-issue-count { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; }
.allegro-issue-count.is-blocking { color: #a73e4a; }
.allegro-issue-count.is-warning { color: #9b6315; }
.allegro-issue-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.allegro-issue-list li { padding: 9px 11px; border-radius: 8px; font-size: 13px; line-height: 1.4; }
.allegro-issue-list li.is-blocking { color: #8f2a34; background: #fdecef; }
.allegro-issue-list li.is-warning { color: #7a4c0f; background: #fff4e3; }
.allegro-issue-list li strong { display: block; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.allegro-detail-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(320px, 2fr); gap: 20px; align-items: start; }
.allegro-summary-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 20px; margin: 0; }
.allegro-summary-list div { display: grid; gap: 2px; }
.allegro-summary-list dt { color: var(--muted); font-size: 12px; font-weight: 650; }
.allegro-summary-list dd { margin: 0; font-weight: 650; word-break: break-word; }
.allegro-image-strip { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.allegro-image-strip img { width: 72px; height: 72px; object-fit: cover; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.allegro-description-preview { margin-top: 12px; padding: 14px 16px; border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; font-size: 13px; line-height: 1.5; max-height: 360px; overflow: auto; }
.allegro-description-preview h1, .allegro-description-preview h2 { margin: 10px 0 6px; font-size: 15px; }
.allegro-description-preview p { margin: 0 0 8px; }
.allegro-description-preview img { max-width: 160px; display: block; margin: 8px 0; border-radius: 6px; }
.allegro-parameter-table td:first-child { font-weight: 650; white-space: nowrap; }
.allegro-parameter-table small { color: var(--muted); }
.allegro-action-list { display: flex; flex-wrap: wrap; gap: 8px; }
.allegro-action-list form { margin: 0; }
.allegro-override-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.allegro-category-picker { position: relative; display: grid; gap: 6px; }
.allegro-category-results { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.allegro-category-results button { display: block; width: 100%; padding: 7px 10px; border: 1px solid #dfe5eb; border-radius: 6px; color: var(--ink); background: #fff; font-size: 13px; text-align: left; cursor: pointer; }
.allegro-category-results button:hover { border-color: #e4a7ab; background: #fff5f5; }
.allegro-category-results button small { display: block; color: var(--muted); }
.allegro-category-selected { color: var(--muted); font-size: 12px; font-weight: 400; }
.allegro-parameter-editor { display: grid; gap: 10px; }
.allegro-parameter-editor .allegro-parameter-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid #edf1f5; }
.allegro-parameter-editor .allegro-parameter-row label { color: var(--ink); font-size: 13px; font-weight: 650; }
.allegro-parameter-editor .allegro-parameter-row label small { display: block; color: var(--muted); font-weight: 400; }
.allegro-parameter-editor .allegro-parameter-row input, .allegro-parameter-editor .allegro-parameter-row select { width: 100%; min-height: 36px; padding: 6px 10px; border: 1px solid #cbd7e2; border-radius: 7px; font: inherit; }
.allegro-parameter-required { color: #b4233e; font-style: normal; }
.allegro-events-table td { font-size: 13px; }
.allegro-events-table time { white-space: nowrap; color: var(--muted); }
.allegro-mapping-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.allegro-settings-grid .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.allegro-value-map textarea { min-height: 120px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.allegro-code-input textarea { min-height: 110px; }
.allegro-inline-note { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.allegro-validation-list { margin: 0; padding-left: 18px; font-size: 13px; color: #8f2a34; }
@media (max-width: 1120px) {
    .allegro-detail-grid, .allegro-mapping-grid { grid-template-columns: 1fr; }
    .allegro-connection { grid-template-columns: 1fr; }
    .allegro-connection-actions { justify-content: flex-start; }
    .allegro-override-form .form-grid, .allegro-settings-grid .form-grid { grid-template-columns: 1fr; }
    .allegro-parameter-editor .allegro-parameter-row { grid-template-columns: 1fr; }
}

/* Public documentation pages */
.allegro-account-selector { margin-bottom: 1rem; flex-wrap: wrap; }
body.doc-page { background: var(--canvas); }
.doc-header { color: #fff; background: var(--sidebar); }
.doc-header-inner { display: flex; width: min(860px, 100%); align-items: center; gap: 12px; margin: 0 auto; padding: 14px 20px; font-weight: 700; }
.doc-content { width: min(860px, 100%); margin: 0 auto; padding: 28px 20px 40px; font-size: 15px; line-height: 1.6; overflow-wrap: break-word; }
.doc-content h1 { margin: 0 0 16px; font-size: 28px; line-height: 1.15; letter-spacing: -.03em; }
.doc-content h2 { margin: 28px 0 10px; font-size: 20px; }
.doc-content p, .doc-content ul { margin: 0 0 12px; }
.doc-content li { margin-bottom: 4px; }
.doc-content code { padding: 1px 5px; border-radius: 4px; background: #eef3f7; font-size: 13px; }
.doc-content table { display: block; width: 100%; margin: 0 0 16px; overflow-x: auto; border-collapse: collapse; font-size: 14px; }
.doc-content th, .doc-content td { padding: 8px 10px; border: 1px solid var(--line); text-align: left; vertical-align: top; background: var(--surface); }
.doc-content th { background: #f1f4f7; }
.doc-footer { width: min(860px, 100%); margin: 0 auto; padding: 0 20px 28px; color: var(--muted); font-size: 12px; }
