:root {
  color-scheme: dark;
  --lg-bg: #0b0b0b;
  --lg-text: #f3f2ee;
  --lg-muted: #b4b2ac;
  --lg-lime: #d7ff00;
  --lg-lime-strong: #c8ee00;
  --lg-danger: #ff6f67;
  --lg-warning: #ffc65a;
  --lg-success: #93e8a8;
  --lg-glass-clear: rgb(103 103 99 / 46%);
  --lg-glass-regular: rgb(67 67 64 / 72%);
  --lg-glass-dense: rgb(38 38 36 / 88%);
  --lg-table-head: rgb(23 23 22);
  --lg-table-frozen: rgb(31 31 29);
  --lg-table-frozen-detail: rgb(38 38 36);
  --lg-glass-clear-opaque: rgb(55 55 52);
  --lg-glass-regular-opaque: rgb(47 47 44);
  --lg-glass-dense-opaque: rgb(31 31 29);
  --lg-shadow-edge: rgb(0 0 0 / 18%);
  --lg-shadow-edge-hover: rgb(0 0 0 / 24%);
  --lg-shadow-atmosphere: rgb(0 0 0 / 28%);
  --lg-shadow-popover: rgb(0 0 0 / 36%);
  --lg-shadow-dialog: rgb(0 0 0 / 42%);
  --lg-scrim-dialog: rgb(0 0 0 / 68%);
  --lg-scrim-shell: rgb(8 8 8 / 54%);
  --lg-scrim-popover: rgb(13 17 15 / 96%);
  --lg-surface-sunken: rgb(0 0 0 / 14%);
  --lg-surface-sunken-strong: rgb(0 0 0 / 18%);
  --lg-surface-inset: rgb(17 17 16 / 34%);
  --lg-surface-inset-strong: rgb(17 17 16 / 38%);
  --lg-surface-section: rgb(20 20 19 / 54%);
  --lg-surface-dialog: rgb(28 28 26 / 98%);
  --lg-surface-hover-faint: rgb(255 255 255 / 3%);
  --lg-highlight-inset: rgb(255 255 255 / 16%);
  --lg-lime-faint: rgb(215 255 0 / 8%);
  --lg-lime-glow: rgb(215 255 0 / 20%);
  --lg-lime-edge: rgb(215 255 0 / 28%);
  --lg-lime-line: rgb(215 255 0 / 38%);
  --lg-lime-line-strong: rgb(215 255 0 / 55%);
  --lg-danger-surface: rgb(35 24 23 / 90%);
  --lg-danger-surface-hover: rgb(45 25 24 / 94%);
  --lg-danger-line-soft: rgb(255 111 103 / 58%);
  --lg-danger-icon-soft: rgb(255 111 103 / 14%);
  --lg-warning-inset: rgb(255 198 90 / 38%);
  --lg-success-fill: rgb(47 111 65);
  --lg-line: rgb(255 255 255 / 22%);
  --lg-line-soft: rgb(255 255 255 / 12%);
  --lg-blur-clear: 18px;
  --lg-blur-regular: 26px;
  --lg-radius-shell: 30px;
  --lg-radius-card: 24px;
  --lg-radius-data: 12px;
  --lg-radius-control: 14px;
  --lg-radius-section: 18px;
  --page-shell-max: 1600px;
  --button-height: 32px;
  --accent: var(--lg-lime);
  --accent-strong: var(--lg-lime-strong);
  --accent-soft: rgb(215 255 0 / 12%);
  --bg: var(--lg-bg);
  --text: var(--lg-text);
  --muted: var(--lg-muted);
  --border: var(--lg-line-soft);
  --surface: var(--lg-glass-dense);
  --surface-muted: rgb(255 255 255 / 7%);
  --success: var(--lg-success);
  --success-soft: rgb(147 232 168 / 13%);
  --success-line: #9ed8c2;
  --success-icon-surface: #c8eadc;
  --warning: var(--lg-warning);
  --warning-soft: rgb(255 198 90 / 13%);
  --warning-strong: #d97706;
  --warning-line: #e7c56f;
  --warning-icon-surface: #f8df9f;
  --warning-ink: #75510b;
  --notice-line: #f0d59d;
  --notice-ink: #754500;
  --danger: var(--lg-danger);
  --danger-soft: rgb(55 35 34);
  --danger-line: rgb(255 111 103 / 32%);
  --sort-muted: #9b92a3;
  --shadow: 0 24px 60px var(--lg-shadow-atmosphere);
  --shadow-border: 0 0 0 1px var(--lg-line-soft), 0 8px 24px var(--lg-shadow-edge);
  --shadow-border-hover: 0 0 0 1px var(--lg-lime-edge), 0 14px 32px var(--lg-shadow-edge-hover);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html,
body { max-width: 100%; overflow-x: clip; }

.app-body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  background: var(--lg-bg);
  color: var(--lg-text);
  font-size: 15px;
  line-height: 1.5;
}

a { color: inherit; }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  padding: 10px 16px;
  border: 1px solid var(--lg-lime);
  border-radius: var(--lg-radius-control);
  background: var(--lg-bg);
  color: var(--lg-text);
  font-weight: 750;
  text-decoration: none;
  transform: translateY(calc(-100% - 24px));
}

.skip-link:focus-visible { transform: none; }
#main-content { scroll-margin-top: 92px; }

button,
input,
select { font: inherit; }

button,
.button,
.icon-button,
.app-nav a,
.app-nav__soon,
summary,
.sort-button,
.period-tabs a,
.period-tabs__option,
.shop-switcher__group a,
.shop-switcher__footer a {
  height: var(--button-height);
  min-height: var(--button-height);
  line-height: 1.2;
}
summary { align-content: center; }

.app-backdrop {
  position: fixed;
  inset: 0;
  z-index: -2;
  background: url("liquid-glass-background.webp") center / cover no-repeat;
}

.app-backdrop::after {
  position: absolute;
  inset: 0;
  background: var(--lg-scrim-shell);
  content: "";
}

.app-frame {
  display: grid;
  grid-template-columns: 196px minmax(0, 1fr);
  gap: 18px;
  min-height: 100vh;
  padding: 18px;
}

.glass {
  border: 1px solid var(--lg-line);
  box-shadow: inset 0 1px 0 var(--lg-highlight-inset), 0 24px 60px var(--lg-shadow-atmosphere);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(118%);
  backdrop-filter: blur(var(--glass-blur)) saturate(118%);
}

.glass--clear { --glass-blur: var(--lg-blur-clear); background: var(--lg-glass-clear); }
.glass--regular { --glass-blur: var(--lg-blur-regular); background: var(--lg-glass-regular); }
.glass--dense { --glass-blur: var(--lg-blur-regular); background: var(--lg-glass-dense); }

.app-sidebar {
  position: sticky;
  top: 18px;
  z-index: 30;
  display: flex;
  height: calc(100vh - 36px);
  flex-direction: column;
  border-radius: var(--lg-radius-shell);
  padding: 18px 12px;
}

.brand {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  color: var(--text);
  text-decoration: none;
}

.brand-mark {
  display: grid;
  flex: none;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--lg-lime);
}
.brand-mark svg {
  display: block;
  width: 30px;
  height: 30px;
  filter: drop-shadow(0 4px 12px var(--lg-lime-glow));
}

.brand strong,
.brand small { display: block; }
.brand strong { font-size: 17px; }
.brand small { color: var(--muted); font-size: 12px; }
.brand-copy { min-width: 0; }

.app-nav {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  margin-top: 30px;
}

.app-nav a,
.app-nav__soon {
  display: flex;
  min-height: var(--button-height);
  gap: 8px;
  align-items: center;
  padding: 0 10px;
  border-radius: var(--lg-radius-control);
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.app-nav a:hover,
.app-nav a[aria-current="page"] { background: var(--accent-soft); color: var(--lg-lime); }

.app-nav a > span,
.app-nav__soon > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.app-nav__soon { cursor: default; }

.nav-soon {
  margin-left: auto;
  flex: 0 0 auto;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
  line-height: 18px;
}

.sidebar-status { margin-top: auto; }
.app-workspace { min-width: 0; }

.utility-bar {
  position: sticky;
  top: 18px;
  z-index: 20;
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  border-radius: 999px;
  padding: 10px 14px 10px 22px;
}

.utility-bar > div:first-child { display: grid; }
.utility-bar strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.utility-kicker { color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.utility-actions { display: flex; align-items: center; gap: 8px; }

.catalog-utility-bar {
  position: sticky;
  display: grid;
  height: 62px;
  min-height: 62px;
  grid-template-columns: minmax(230px, .9fr) minmax(300px, 1.25fr) auto;
  gap: 14px;
  padding: 8px 10px 8px 16px;
  border-radius: 999px;
}

.catalog-utility__summary,
.catalog-utility__primary,
.catalog-utility__timestamps,
.catalog-utility__progress-meta,
.catalog-utility__registry {
  display: flex;
  min-width: 0;
  align-items: center;
}

.catalog-utility-bar.utility-bar > .catalog-utility__summary { display: flex; gap: 10px; }
.catalog-utility__status {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 1px;
}

.catalog-utility__primary { gap: 6px; flex-wrap: wrap; line-height: 1.1; white-space: normal; }
.catalog-utility__count { color: var(--accent); font-size: 20px; line-height: 1; }
.catalog-utility__count-label { color: var(--muted); font-size: 12px; line-height: 1.3; }
.catalog-utility__primary .sync-state__text {
  overflow: visible;
  margin: 0;
  padding-inline-start: 7px;
  border-inline-start: 1px solid var(--border);
  font-size: 12px;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.catalog-utility__timestamps {
  gap: 8px;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.3;
  white-space: nowrap;
}

.catalog-utility__timestamps span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.catalog-utility__timestamps span:not(:last-child)::after {
  margin-inline-start: 8px;
  content: "·";
}

.catalog-utility__error {
  position: static;
  overflow: visible;
  margin: 0;
  background: inherit;
  color: var(--danger);
  font-size: 12px;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.catalog-utility__status:has(.catalog-utility__error:not([hidden])) .catalog-utility__timestamps {
  display: none;
}

.catalog-utility-bar:has(.catalog-utility__error:not([hidden])) {
  position: static;
  height: auto;
  align-items: start;
  border-radius: 24px;
}

.catalog-utility__progress {
  display: grid;
  min-width: 0;
  gap: 2px;
  align-content: center;
}

.catalog-utility__progress progress {
  width: 100%;
  height: 6px;
  accent-color: var(--accent);
}

.catalog-utility__progress-meta {
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
}

.catalog-utility__progress-meta span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.catalog-utility__registry {
  gap: 8px;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.3;
  white-space: nowrap;
}

.catalog-utility__registry span:not(:last-child)::after {
  margin-inline-start: 8px;
  content: "·";
}

.catalog-utility__registry span:nth-child(n + 3) {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.catalog-utility__actions { flex-wrap: nowrap; }
.catalog-utility__actions button { min-width: 98px; white-space: nowrap; }

.catalog-action-with-tooltip {
  position: relative;
  display: inline-flex;
}

.catalog-action-with-tooltip [data-history-sync-start] { min-width: 148px; }

.catalog-tooltip {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 60;
  width: min(320px, calc(100vw - 32px));
  padding: 10px 12px;
  border: 1px solid var(--lg-line-soft);
  border-radius: 12px;
  background: var(--lg-scrim-popover);
  box-shadow: 0 12px 34px var(--lg-shadow-popover);
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
  white-space: normal;
}

.catalog-tooltip::before {
  position: absolute;
  right: 18px;
  bottom: 100%;
  width: 10px;
  height: 10px;
  border-top: 1px solid var(--lg-line-soft);
  border-left: 1px solid var(--lg-line-soft);
  background: var(--lg-scrim-popover);
  content: "";
  transform: translateY(5px) rotate(45deg);
}

.catalog-history-bar {
  position: sticky;
  top: 90px;
  z-index: 19;
  display: grid;
  min-height: 58px;
  grid-template-columns: 34px minmax(250px, .75fr) minmax(340px, 1.25fr);
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  padding: 8px 16px;
  border-radius: var(--lg-radius-card);
}

.catalog-history__copy {
  display: grid;
  min-width: 0;
  gap: 1px;
}

.catalog-history__copy strong,
.catalog-history__copy span {
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.catalog-history__copy strong { font-size: 12px; line-height: 1.3; }
.catalog-history__copy span { color: var(--muted); font-size: 12px; line-height: 1.3; }
.catalog-history__copy .catalog-history__error {
  overflow: visible;
  color: var(--danger);
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.catalog-history-bar:has(.catalog-history__error:not([hidden])) {
  position: static;
}

.catalog-history__progress {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.catalog-history__progress progress {
  display: block;
  width: 100%;
  height: 6px;
  accent-color: var(--accent);
}

.campaign-utility-bar {
  position: sticky;
  display: grid;
  height: 62px;
  min-height: 62px;
  grid-template-columns: minmax(260px, 1fr) minmax(230px, .72fr) auto;
  gap: 12px;
  padding: 8px 10px 8px 14px;
  border-radius: 999px;
}

.campaign-utility__identity,
.campaign-utility__meta,
.campaign-utility__sync-meta,
.campaign-utility__actions {
  display: flex;
  min-width: 0;
  align-items: center;
}

.campaign-utility-bar.utility-bar > .campaign-utility__identity { display: flex; }
.campaign-utility__identity { gap: 9px; }
.campaign-utility__identity .sync-state__icon { width: 30px; height: 30px; }
.campaign-utility__identity-copy { display: grid; min-width: 0; gap: 1px; line-height: 1.3; }
.campaign-utility__identity-copy > strong { overflow: hidden; font-size: 13px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.campaign-utility__meta { gap: 5px; overflow: hidden; color: var(--muted); font-size: 12px; line-height: 1.3; white-space: nowrap; }
.campaign-utility__meta span { overflow: hidden; text-overflow: ellipsis; }
.campaign-utility__meta span:not(:last-child)::after { margin-inline-start: 5px; content: "·"; }

.campaign-utility__sync {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 3px;
  align-content: center;
}

.campaign-utility__sync-meta { gap: 7px; flex-wrap: wrap; color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.3; white-space: normal; }
.campaign-utility__sync-meta span { overflow: hidden; text-overflow: ellipsis; }
.campaign-utility__sync-meta .sync-state__text {
  flex: 1 1 auto;
  overflow: visible;
  margin: 0;
  color: var(--text);
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}
.campaign-utility__sync-meta [data-sync-stage] { flex: 0 1 auto; }
.campaign-utility__sync-meta [data-sync-percent] { flex: 0 0 auto; color: var(--text); }
.campaign-utility__sync progress { display: block; width: 100%; height: 6px; accent-color: var(--accent); }
.campaign-utility-bar:not(.sync-state--running) :is([data-sync-stage], [data-sync-percent], [data-sync-progress]) { display: none; }
.campaign-utility__sync--terminal { color: var(--muted); font-size: 12px; line-height: 1.3; }
.campaign-utility__error {
  position: static;
  overflow: visible;
  margin: 0;
  background: inherit;
  color: var(--danger);
  font-size: 12px;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

/* Высокая панель не липнет, но остаётся слоем над страницей: иначе меню «Обновить» уходит под блок кампании. */
.campaign-utility-bar:has(.campaign-utility__error:not([hidden])) {
  position: relative;
  top: auto;
  height: auto;
  align-items: start;
  border-radius: 24px;
}

.campaign-utility__actions { gap: 6px; justify-content: flex-end; flex-wrap: nowrap; }
.campaign-utility__actions .button,
.campaign-utility__actions button { flex: 0 0 auto; padding-inline: 12px; white-space: nowrap; }
.campaign-utility__link { gap: 6px; }
.campaign-utility__link .icon { width: 17px; height: 17px; }
.campaign-utility__retry { max-width: 210px; }
.campaign-refresh-menu { position: relative; flex: 0 0 auto; }
.campaign-refresh-menu > summary { gap: 6px; padding-inline: 14px 10px; list-style: none; }
.campaign-refresh-menu > summary::-webkit-details-marker { display: none; }
.campaign-refresh-menu__icon { display: inline-flex; }
.campaign-refresh-menu__icon .icon { width: 16px; height: 16px; transition: transform 140ms ease; }
.campaign-refresh-menu[open] .campaign-refresh-menu__icon .icon { transform: rotate(180deg); }
.campaign-refresh-menu__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 40;
  display: grid;
  width: max-content;
  min-width: 260px;
  max-width: calc(100vw - 32px);
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--lg-radius-section);
  background: var(--lg-scrim-popover);
  box-shadow: var(--shadow);
}
.campaign-refresh-menu__item { display: grid; gap: 4px; justify-items: start; }
.campaign-refresh-menu__item small { color: var(--muted); font-size: 12px; line-height: 1.3; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; }

.icon-button {
  display: inline-grid;
  width: var(--button-height);
  height: var(--button-height);
  min-height: var(--button-height);
  padding: 0;
  place-items: center;
  border-radius: 50%;
  color: var(--lg-text);
  text-decoration: none;
}

.header-meta,
.heading-tags,
.campaign-tags,
.error-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.mode-badge,
.actor,
.tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.mode-badge::before {
  width: 7px;
  height: 7px;
  margin-right: 6px;
  border-radius: 50%;
  background: var(--success);
  content: "";
}

.mode-badge--warning::before { background: var(--warning-strong); }
.actor { gap: 7px; border: 1px solid var(--border); background: var(--lg-surface-inset); }
.actor .icon { width: 16px; height: 16px; }

.page-shell {
  display: grid;
  width: 100%;
  max-width: var(--page-shell-max);
  gap: 18px;
  margin: 18px auto 0;
  padding-bottom: 72px;
}

.page-shell > * { width: 100%; min-width: 0; }

.page-heading,
.campaign-heading,
.section-title {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  justify-content: space-between;
}

.page-heading,
.campaign-heading { margin-bottom: 28px; }

.dashboard-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 0;
  padding: clamp(22px, 4vw, 42px);
  border-radius: var(--lg-radius-shell);
}

h1,
h2,
h3 { text-wrap: balance; }

h1,
h2,
h3,
p { margin-top: 0; }

p,
.lede,
.warning-panel span,
.notice-panel p { text-wrap: pretty; }

h1 {
  max-width: 900px;
  margin-bottom: 8px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.08;
  letter-spacing: -.04em;
}

h2 { margin-bottom: 4px; font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }
h3 { margin-bottom: 10px; font-size: 17px; line-height: 1.3; }

.eyebrow {
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.eyebrow--accent { color: var(--accent-strong); }
.eyebrow--warning { color: var(--warning); }
.eyebrow--success { color: var(--success); }
.eyebrow--danger { color: var(--danger); }

.lede { max-width: 760px; margin-bottom: 0; color: var(--muted); }

.result-count {
  display: grid;
  min-width: 112px;
  padding: 15px 18px;
  border: 0;
  border-radius: var(--lg-radius-control);
  background: var(--surface);
  box-shadow: var(--shadow-border);
  text-align: right;
}

.result-count strong { font-size: 24px; line-height: 1; }
.result-count span { margin-top: 5px; color: var(--muted); font-size: 12px; }
.result-count--inline { min-width: auto; padding: 8px 12px; }
.result-count--inline strong { font-size: 16px; }

.filter-bar {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(160px, 220px) minmax(170px, 220px) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 20px;
  padding: 18px;
  border: 0;
  border-radius: 18px;
  background: var(--surface);
  box-shadow: var(--shadow-border);
}

.catalog-command {
  display: grid;
  grid-template-columns: minmax(200px, 1.5fr) repeat(2, minmax(150px, .6fr)) auto auto;
  gap: 12px;
  margin-bottom: 0;
  padding: 14px;
  border-color: var(--lg-line);
  border-radius: var(--lg-radius-card);
  background: var(--lg-glass-regular);
}

.catalog-command--sticky {
  position: sticky;
  top: 98px;
  z-index: 18;
  align-self: start;
}

.app-workspace:has(.catalog-history-bar:not([hidden])) .catalog-command--sticky {
  top: 156px;
}

.filter-bar label { display: grid; gap: 6px; }
.filter-bar label > span { color: var(--muted); font-size: 12px; font-weight: 650; }

.catalog-command .catalog-campaign-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  cursor: pointer;
}
.catalog-campaign-toggle > span { white-space: nowrap; }
.catalog-campaign-toggle input {
  appearance: none;
  flex: 0 0 36px;
  width: 36px;
  height: 22px;
  min-height: 22px;
  margin: 0;
  padding: 2px;
  border: 1px solid var(--muted);
  border-radius: 999px;
  background: var(--lg-glass-dense);
  cursor: pointer;
  transition: background-color 150ms ease-out, border-color 150ms ease-out;
}
.catalog-campaign-toggle input::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--muted);
  transition: transform 150ms ease-out, background-color 150ms ease-out;
}
.catalog-campaign-toggle input:checked { border-color: var(--accent); background: var(--accent); }
.catalog-campaign-toggle input:checked::before { transform: translateX(14px); background: var(--bg); }
.catalog-campaign-toggle input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

@media (max-width: 1200px) {
  .catalog-command { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-command .search-field { grid-column: 1 / -1; }
}

.catalog-sync {
  display: grid;
  gap: 14px;
  margin-bottom: 20px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.campaign-sync {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.campaign-sync__heading,
.campaign-sync__actions,
.campaign-sync__progress {
  display: flex;
  gap: 12px;
  align-items: center;
}

.campaign-sync__heading { justify-content: space-between; }
.campaign-sync__actions { flex-wrap: wrap; justify-content: flex-end; }
.campaign-sync__progress { display: grid; gap: 7px; }
.campaign-sync progress { width: 100%; height: 12px; accent-color: var(--accent); }
.campaign-sync__progress p { margin: 0; font-size: 13px; }

.catalog-sync__heading,
.catalog-sync__title,
.catalog-sync__progress-meta,
.catalog-sync__metadata {
  display: flex;
  gap: 12px;
  align-items: center;
}

.catalog-sync__heading { justify-content: space-between; }
.catalog-sync__title { min-width: 0; align-items: flex-start; }
.catalog-sync__title h2 { margin: 0; font-size: 18px; }
.sync-state__text { margin: 3px 0 0; color: var(--muted); }
.sync-state__icon {
  position: relative;
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--surface-muted);
  color: var(--muted);
  font-weight: 850;
}

.sync-state__glyph {
  position: absolute;
  inset: 0;
  margin: auto;
  opacity: 0;
  transform: scale(.25);
  filter: blur(4px);
  pointer-events: none;
  transition: opacity 180ms cubic-bezier(.2, 0, 0, 1), transform 180ms cubic-bezier(.2, 0, 0, 1), filter 180ms cubic-bezier(.2, 0, 0, 1);
}
.sync-state__icon[data-icon-state="idle"] .sync-state__glyph--idle,
.sync-state__icon[data-icon-state="running"] .sync-state__glyph--running,
.sync-state__icon[data-icon-state="success"] .sync-state__glyph--success,
.sync-state__icon[data-icon-state="error"] .sync-state__glyph--error,
.sync-state__icon[data-icon-state="info"] .sync-state__glyph--info {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}

.catalog-sync__progress { display: grid; gap: 7px; }
.catalog-sync progress { width: 100%; height: 12px; accent-color: var(--accent); }
.catalog-sync__progress-meta { justify-content: space-between; color: var(--muted); font-size: 12px; font-weight: 700; }
.catalog-sync__progress p { margin: 0; font-size: 13px; }
.catalog-sync__metadata { flex-wrap: wrap; color: var(--muted); font-size: 12px; }
.catalog-sync__metadata span:not(:last-child)::after { margin-left: 12px; content: "·"; }

.sync-state--running { border-color: var(--warning-line); background: var(--warning-soft); }
.sync-state--running .sync-state__icon { color: var(--warning); }
.sync-state--running progress { accent-color: var(--warning); }
.sync-state--success { border-color: var(--success-line); background: var(--success-soft); }
.sync-state--success .sync-state__icon { color: var(--success); }
.sync-state--success progress { accent-color: var(--success); }
.sync-state--error { border-color: var(--danger-line); background: var(--danger-soft); }
.sync-state--error .sync-state__icon { background: var(--danger-line); color: var(--danger); }
.sync-state--error progress { accent-color: var(--danger); }

input,
select {
  width: 100%;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: var(--lg-radius-control);
  outline: none;
  background: var(--lg-glass-dense);
  color: var(--text);
}

input:focus,
select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }

.button,
button {
  display: inline-flex;
  min-height: var(--button-height);
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid var(--lg-line);
  border-radius: 999px;
  background: var(--lg-glass-regular);
  color: var(--lg-text);
  cursor: pointer;
  font: inherit;
  line-height: 1.2;
  font-weight: 750;
  text-decoration: none;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.button:where(:not(:disabled):not([aria-disabled="true"])):hover,
button:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--lg-line); background: var(--lg-glass-dense); }
.button:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible,
a:focus-visible { outline: 2px solid var(--lg-lime); outline-offset: 3px; }

button:where(:not(:disabled):not([aria-disabled="true"])):active,
.button:where(:not(:disabled):not([aria-disabled="true"])):active { transform: translateY(0) scale(.96); }

.button--secondary { border-color: var(--lg-line); background: var(--lg-glass-regular); color: var(--lg-text); }
.button--secondary:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--lg-line); background: var(--lg-glass-dense); }
.button--danger { border-color: var(--lg-danger-line-soft); background: var(--lg-danger-surface); color: var(--lg-danger); }
.button--danger:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--lg-danger); background: var(--lg-danger-surface-hover); }
.button--compact { min-height: var(--button-height); padding: 0 11px; font-size: 12px; }
.button:disabled,
button:disabled { cursor: not-allowed; opacity: .48; transform: none; box-shadow: none; }
[hidden] { display: none !important; }

.article-list { display: grid; gap: 12px; }

.article-card {
  overflow: clip;
  border-color: var(--lg-line);
  border-radius: var(--lg-radius-card);
  background: var(--lg-glass-regular);
}

.article-card[open] {
  border-color: var(--lg-lime-line);
  background: var(--lg-glass-dense);
}

.article-card > summary {
  display: grid;
  height: auto;
  line-height: inherit;
  grid-template-columns: 56px minmax(0, 1fr) auto 20px;
  gap: 14px;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  transition: background 180ms ease;
}

.article-card > summary::-webkit-details-marker { display: none; }
.article-card > summary:hover,
.article-card[open] > summary { background: var(--lg-lime-faint); }
.article-card > summary:focus-visible { outline: 2px solid var(--lg-lime); outline-offset: -4px; }

.article-thumb {
  position: relative;
  display: grid;
  width: 56px;
  aspect-ratio: 1;
  overflow: hidden;
  place-items: center;
  border-radius: 12px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 20px;
  font-weight: 800;
}

.article-thumb::after {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px oklch(1 0 0 / .1);
  content: "";
  pointer-events: none;
}
.article-thumb__fallback,
.article-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; }
.article-thumb__fallback { display: grid; place-items: center; }
.article-thumb img { z-index: 1; object-fit: cover; }
.article-thumb--fallback img { display: none; }
.article-copy { min-width: 0; }
.article-copy strong,
.article-copy span,
.article-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.article-copy strong { margin-bottom: 2px; color: var(--lg-text); font-size: 16px; }
.article-copy span { color: var(--lg-muted); font-size: 13px; }
.article-copy small { color: var(--lg-muted); font-size: 12px; }

.campaign-count { color: var(--lg-muted); font-size: 12px; font-weight: 700; }

.chevron {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  color: var(--lg-muted);
  transition: color 180ms ease, transform 180ms ease;
}

.chevron .icon { width: 18px; height: 18px; }
.article-card[open] .chevron { color: var(--lg-lime); transform: rotate(180deg); }

.campaign-list { padding: 0 18px 16px 88px; }

.campaign-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto 24px;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  border-top: 1px solid var(--lg-line-soft);
  border-radius: var(--lg-radius-control);
  background: var(--surface-muted);
  color: var(--lg-text);
  text-decoration: none;
  transition: background 180ms ease, color 180ms ease;
}

.campaign-row:hover,
.campaign-row:focus-visible { background: var(--lg-lime-faint); }
.campaign-row strong,
.campaign-row small { display: block; }
.campaign-row small { margin-top: 2px; color: var(--lg-muted); }
.campaign-tags { padding: 4px; border-radius: 999px; background: var(--lg-surface-sunken); }
.row-arrow { display: grid; place-items: center; color: var(--lg-lime); }
.row-arrow .icon { width: 19px; height: 19px; }
.tag { min-height: 24px; padding: 3px 8px; background: var(--surface-muted); color: var(--lg-muted); }
.tag--success { background: var(--success-soft); color: var(--success); }
.tag--warning { background: var(--warning-soft); color: var(--warning); }
.tag--danger { border: 1px solid var(--danger-line); background: var(--danger-soft); color: var(--lg-danger); }
.tag--muted { color: var(--lg-muted); }
.tag--status { background: var(--accent-soft); color: var(--accent-strong); }

.breadcrumbs {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 13px;
}
.breadcrumbs a { color: var(--accent); text-decoration: none; }

.campaign-heading { align-items: center; margin-bottom: 18px; }
.campaign-heading h1 { margin-top: 10px; }
.campaign-heading h1 { font-size: clamp(28px, 3.2vw, 42px); }

.campaign-dashboard { display: grid; min-width: 0; gap: 14px; }
.campaign-dashboard > .section-block { margin-bottom: 0; }

.campaign-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px 32px;
  align-items: start;
}
.campaign-overview h1 { max-width: none; margin: 0 0 8px; font-size: 30px; overflow-wrap: anywhere; }
.campaign-overview__meta { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.campaign-overview__meta span:not(:last-child)::after { margin-inline: 7px; content: "·"; }
.campaign-overview__budget { display: grid; min-width: 0; max-width: 460px; gap: 10px; justify-items: end; text-align: right; }
.campaign-overview__warning {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 8px;
  justify-content: flex-end;
  margin: 0;
  padding: 9px 12px;
  border: 1px solid var(--warning-line);
  border-radius: var(--lg-radius-data);
  background: var(--warning-soft);
  color: var(--warning);
  font-size: 13px;
  line-height: 1.4;
}
.campaign-overview__warning a { color: inherit; font-weight: 750; text-underline-offset: 3px; }
.campaign-overview__freshness { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.campaign-overview__strategy {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.campaign-overview__strategy p { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.campaign-overview__strategy strong { color: var(--text); }
.campaign-overview__strategy-label { font-size: 12px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

.campaign-stats { display: grid; margin: 0; }
.campaign-stats--budget { grid-template-columns: repeat(2, auto); gap: 0 28px; justify-content: end; }
.campaign-stat { min-width: 0; }
.campaign-stat dt { color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.3; }
.campaign-stat dd {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.campaign-stat--lead dd { font-size: 24px; }
.campaign-stat--warning dt,
.campaign-stat--warning dd { color: var(--warning); }
.campaign-stat dd.campaign-stat__note { margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: 0; }
.campaign-stat dd.campaign-stat__change { margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0; }
.campaign-results__comparison { margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.campaign-results > .campaign-daily-stats { margin-top: 14px; }
.campaign-results { padding-block: 16px; }
.campaign-results__stats { grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); }
.campaign-results__stats .campaign-stat { padding-inline: 18px; border-left: 1px solid var(--border); }
.campaign-results__stats .campaign-stat:first-child { padding-left: 0; border-left: 0; }
.campaign-breakdown .placement-summary { margin: 0; }
.campaign-breakdown > .section-title + .cabinet-zones { margin-top: 0; padding-top: 0; border-top: 0; }
.campaign-breakdown .cabinet-zones__heading h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.campaign-service > h2 { margin-bottom: 6px; }
.campaign-service__row { display: grid; gap: 8px; padding: 12px 2px; border-top: 1px solid var(--border); }
.campaign-service__action { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; color: var(--muted); font-size: 13px; }
.campaign-service > [data-campaign-fragment="availability"] { padding-top: 12px; border-top: 1px solid var(--border); }
.campaign-service > [data-campaign-fragment="availability"]:not(:has(*)) { display: none; }
.section-hint { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.card-bid-table .field-hint { display: block; margin-top: 2px; }
.placement-summary { display: grid; gap: 6px; margin-left: auto; }
.placement-summary__label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.placement-summary__items { display: flex; flex-wrap: wrap; gap: 8px; }
.placement-summary__item {
  display: grid;
  min-width: 142px;
  gap: 2px;
  padding: 8px 11px;
  border-radius: 12px;
  background: var(--surface-muted);
  box-shadow: inset 0 0 0 1px var(--lg-line-soft);
}
.placement-summary__item span,
.placement-summary__item small,
.placement-summary__empty,
.placement-summary__pending { color: var(--muted); font-size: 12px; line-height: 1.3; }
.placement-summary__item strong {
  color: var(--lg-text);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}
.placement-summary__pending { margin: 0 0 0 auto; }
.card-bid-module { grid-column: 1 / -1; min-width: 0; }
.card-bid-table { min-width: 520px; }
.card-bid-table th,
.card-bid-table td { vertical-align: middle; }
.card-bid-editor { display: inline-grid; gap: 4px; justify-items: end; }
.card-bid-editor__value {
  color: var(--lg-text);
  font-variant-numeric: tabular-nums;
}
.card-bid-editor__display {
  min-width: 104px;
  min-height: var(--button-height);
  justify-content: flex-end;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--lg-radius-data);
  background: transparent;
  color: var(--lg-text);
  font-variant-numeric: tabular-nums;
}
.card-bid-editor__display:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--lg-line); background: var(--surface-muted); }
.card-bid-editor__controls { display: flex; gap: 4px; align-items: center; }
.card-bid-editor__controls[hidden] { display: none; }
.card-bid-editor__controls input {
  width: 118px;
  min-height: 44px;
  border-color: var(--accent);
  color: var(--accent-strong);
  font-weight: 750;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.card-bid-editor__cancel,
.card-bid-editor__confirm {
  min-width: var(--button-height);
  min-height: var(--button-height);
  padding: 0;
  border-radius: 12px;
  font-size: 18px;
}
.card-bid-editor__cancel { border-color: var(--danger-line); background: var(--danger-soft); color: var(--danger); }
.card-bid-editor__confirm { border-color: var(--accent); background: var(--accent); color: var(--bg); }
.card-bid-editor.is-staged .card-bid-editor__display {
  border-color: var(--lg-lime-line);
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-weight: 800;
}
.card-bid-editor__error {
  max-width: 280px;
  color: var(--danger);
  font-size: 12px;
  line-height: 1.3;
  white-space: normal;
}
.card-bid-actions { display: flex; gap: 10px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.card-bid-status { margin: 0; padding: 10px 12px; border-radius: 12px; font-size: 12px; line-height: 1.3; }
.card-bid-status--warning { background: var(--warning-soft); color: var(--warning); }
.card-bid-status--success { background: var(--success-soft); color: var(--success); }
.card-bid-status--danger { border: 1px solid var(--danger-line); background: var(--danger-soft); color: var(--danger); }
.campaign-table-module .table-scroll { background: var(--lg-glass-dense); }

.period-tabs {
  display: flex;
  gap: 5px;
  align-items: center;
  margin-bottom: 14px;
  overflow-x: auto;
  padding: 5px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
}

.campaign-period-bar {
  position: sticky;
  top: var(--campaign-period-top, 98px);
  z-index: 18;
  display: flex;
  min-width: 0;
  min-height: 56px;
  gap: 8px;
  align-items: center;
  overflow: visible;
  padding: 5px;
  border-radius: var(--lg-radius-section);
}

.campaign-period-bar .period-tabs {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  overflow-x: auto;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overscroll-behavior-inline: contain;
}

.campaign-period-presets { display: flex; flex: 0 0 auto; align-items: center; min-width: 0; }
.campaign-period-presets:only-child { flex: 1 1 auto; }
.campaign-period-bar .period-tabs :is(a, .period-tabs__option) { padding-inline: 8px; }

@media (min-width: 768px) {
  .campaign-utility-bar::before,
  .campaign-period-bar::before,
  .campaign-period-bar::after {
    position: absolute;
    right: -1px;
    left: -1px;
    height: 18px;
    background: var(--bg);
    pointer-events: none;
    content: "";
  }
  .campaign-utility-bar::before,
  .campaign-period-bar::before { bottom: 100%; }
  .campaign-period-bar::after { top: 100%; height: 12px; }
}

.period-tabs a,
.period-tabs__option {
  display: inline-flex;
  min-height: var(--button-height);
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border-radius: var(--lg-radius-data);
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.period-tabs a[aria-current="page"],
.period-tabs__option[aria-current="page"] { background: var(--accent-soft); color: var(--accent-strong); }
.period-tabs__option[aria-disabled="true"] { cursor: not-allowed; opacity: .62; }
.period-tabs__range { margin-left: auto; padding: 0 10px; color: var(--muted); font-size: 12px; white-space: nowrap; }

.period-tabs a[data-campaign-period-link] { transition: transform 120ms ease; }
.period-tabs a[data-campaign-period-link]:where(:not([aria-disabled="true"])):active { transform: scale(.96); }
.period-tabs a[data-period-pending]:not(:focus-visible) { outline: 1px solid var(--accent); outline-offset: -1px; }
.campaign-period-progress {
  position: absolute;
  inset: auto 12px 0;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--accent-soft);
  opacity: 0;
  pointer-events: none;
}
.campaign-period-progress::after {
  display: block;
  width: 30%;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  content: "";
}
.app-workspace:has([data-campaign-page][data-period-loading="true"]) .campaign-period-progress { opacity: 1; }
.app-workspace:has([data-campaign-page][data-period-loading="true"]) .campaign-period-progress::after {
  animation: campaign-period-progress 1200ms ease-in-out infinite;
}
[data-campaign-period-region] { position: relative; }
.campaign-period-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 8;
  width: max-content;
  max-width: calc(100% - 28px);
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
}
.cluster-group__table > .campaign-period-overlay { top: 8px; transform: translateX(-50%); }
.app-workspace:has([data-campaign-page][data-period-loading="true"]) .campaign-period-overlay { opacity: 1; }
.app-workspace:has([data-campaign-page][data-period-loading="true"]) :is(
  .campaign-results > :not(.campaign-period-overlay),
  .campaign-breakdown > :not(.campaign-period-overlay),
  [data-cluster-main-row] > td:not(.cluster-select-column):not(.cluster-bid-cell),
  [data-cluster-detail] .data-table,
  .cluster-group__empty
) { opacity: .48; }

@keyframes campaign-period-progress {
  from { transform: translateX(-100%); }
  to { transform: translateX(334%); }
}

.custom-period-form {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0 0 0 auto;
}

.custom-period-form label { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; min-width: 0; }
.custom-period-form label > span { color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.3; }
.custom-period-form input[type="date"] { width: 128px; min-width: 0; height: var(--button-height); min-height: var(--button-height); padding-block: 0; padding-inline: 8px; }
.custom-period-form button { flex: 0 0 auto; padding-inline: 12px; white-space: nowrap; }
.period-unavailable { margin: 8px 0 22px; color: var(--muted); overflow-wrap: anywhere; }
.missing-dates {
  display: grid;
  gap: 5px;
  margin: -6px 0 18px;
  padding: 13px 15px;
  border: 1px solid var(--warning-line);
  border-radius: var(--lg-radius-data);
  background: linear-gradient(var(--warning-soft), var(--warning-soft)), var(--bg);
  color: var(--warning);
  font-size: 13px;
}

.campaign-alerts { display: grid; min-width: 0; gap: 10px; }
.campaign-alerts:not(:has(*)) { display: none; }
.campaign-alerts > .warning-panel { margin-top: 0; }
.campaign-alerts > .missing-dates { margin: 0; }

.metric-card__pending { font-size: 15px !important; line-height: 1.35; }

.section-block {
  width: 100%;
  min-width: 0;
  margin-bottom: 18px;
  padding: 22px;
  border: 0;
  border-radius: 18px;
  background: var(--surface);
  box-shadow: var(--shadow-border);
}
.section-block.glass--regular { background: var(--lg-glass-regular); }
.period-tabs.glass--clear { background: var(--lg-glass-clear); }

.section-block--compact { padding: 18px; }
.section-block--compact .section-title { margin-bottom: 12px; }

.section-title { margin-bottom: 16px; }

.metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
  gap: 10px;
}
.metric-grid--budget { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.metric-card {
  min-width: 0;
  padding: 15px;
  border: 0;
  border-radius: var(--lg-radius-data);
  background: var(--surface-muted);
  box-shadow: inset 0 0 0 1px var(--lg-line-soft);
}
.metric-card span,
.metric-card small { display: block; color: var(--muted); font-size: 12px; }
.metric-card strong { display: block; margin: 7px 0 2px; font-size: 21px; letter-spacing: -.025em; }
.metric-card--primary { border-color: var(--lg-line); background: var(--accent-soft); }
.metric-card--primary span,
.metric-card--primary small { color: var(--lg-text); }
.metric-card--primary strong { color: var(--accent-strong); }

.warning-panel,
.notice-panel {
  display: flex;
  gap: 10px 18px;
  align-items: center;
  margin-top: 14px;
  padding: 13px 15px;
  border: 1px solid var(--notice-line);
  border-radius: 12px;
  background: var(--warning-soft);
  color: var(--notice-ink);
}
.warning-panel strong { margin-right: auto; }
.warning-panel span { font-size: 13px; }
.warning-panel { border-color: var(--lg-warning); color: var(--lg-warning); }

.budget-warning-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-muted);
}
.budget-section { margin-bottom: 14px; }
.budget-warning-form label { display: grid; gap: 6px; }
.budget-warning-form label > span { color: var(--muted); font-size: 12px; font-weight: 700; }
.budget-warning-form > .form-alert { grid-column: 1 / -1; margin: 0; }
.budget-warning-form button { grid-column: 1 / -1; }

.settings-disclosure { margin-top: 12px; border-top: 1px solid var(--border); }
.settings-disclosure > summary {
  display: flex;
  min-height: var(--button-height);
  align-items: center;
  justify-content: space-between;
  padding: 0 2px;
  cursor: pointer;
  color: var(--accent-strong);
  font-size: 13px;
  font-weight: 750;
}
.settings-disclosure > summary small { color: var(--muted); font-size: 11px; font-weight: 650; }
.campaign-daily-stats { min-width: 0; margin-top: 18px; }
.campaign-daily-stats > summary { max-width: 100%; list-style: none; font-size: 13px; }
.campaign-daily-stats > summary::-webkit-details-marker { display: none; }
.campaign-daily-stats__icon { font-size: 18px; line-height: 1; }
.campaign-daily-stats[open] .campaign-daily-stats__icon { transform: rotate(180deg); }
.campaign-daily-stats > .table-scroll { margin-top: 12px; }
.campaign-daily-stats > .table-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.campaign-daily-stats caption { padding: 12px; color: var(--muted); text-align: left; white-space: normal; }
.cabinet-zones { min-width: 0; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--border); }
.cabinet-zones__heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 12px; }
.cabinet-zones__heading h3 { margin: 0; font-size: 17px; }
.cabinet-zones__source { display: flex; align-items: center; gap: 6px; margin: 0; color: var(--muted); font-size: 12px; }
.cabinet-zones__source .icon { width: 14px; height: 14px; }
.cabinet-zones__activity { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.cabinet-zones__activity:empty { display: none; }
.cabinet-zones__notice { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 12px; padding: 12px; border: 1px solid var(--danger-line); border-radius: 12px; background: var(--danger-soft); color: var(--danger); font-size: 13px; }
.cabinet-zones__notice p { margin: 0; }
.cabinet-zones__notice .icon { flex: 0 0 auto; }
.cabinet-zones + .campaign-daily-stats { padding-top: 14px; border-top: 1px solid var(--border); }
.data-table.cabinet-zone-table [data-column="zone"],
.data-table.cabinet-zone-table tbody th[scope="row"][data-column="zone"] { position: static; text-align: left; background: transparent; }
.data-table.cabinet-zone-table thead [data-column="zone"] { position: sticky; background: var(--lg-table-head); }
.data-table.cabinet-zone-table--daily [data-column="date"] { position: sticky; left: 0; z-index: 2; vertical-align: top; background: var(--surface); text-align: left; font-variant-numeric: tabular-nums; font-weight: 650; }
.data-table.cabinet-zone-table--daily thead [data-column="date"] { z-index: 3; background: var(--lg-table-head); }
.cabinet-zone-table--daily tbody + tbody { border-top: 1px solid var(--border); }
.cabinet-zone-table--daily abbr { text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }
.read-only-settings { display: grid; grid-template-columns: repeat(2, minmax(160px, 1fr)); gap: 10px; margin: 4px 0 0; }
.read-only-settings div,
.read-only-field { padding: 12px; border-radius: var(--lg-radius-control); background: var(--surface-muted); }
.read-only-settings dt,
.read-only-field span { color: var(--muted); font-size: 12px; }
.read-only-settings dd,
.read-only-field strong { display: block; margin: 4px 0 0; font-size: 16px; }

.cluster-detail svg { display: block; width: 100%; height: auto; }
.cluster-detail svg polyline { stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.cluster-detail svg circle { fill: currentColor; }

.table-scroll { width: 100%; min-width: 0; max-width: 100%; max-height: min(74vh, 720px); overflow-x: auto; overflow-y: auto; border: 1px solid var(--border); border-radius: 12px; }
.data-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.data-table th,
.data-table td { padding: 11px 12px; border-bottom: 1px solid var(--border); text-align: right; font-size: 13px; }
.data-table td,
.data-table tbody th[scope="row"],
.metric-card strong,
.result-count strong,
.proposal-summary strong,
.position-pill,
.period-tabs > span,
.read-only-settings dd,
.read-only-field strong { font-variant-numeric: tabular-nums; }
.catalog-utility__count,
.catalog-utility__timestamps,
.catalog-utility__progress-meta,
.catalog-utility__registry,
.catalog-history__copy,
.campaign-utility__meta,
.campaign-utility__sync-meta,
.campaign-period-presets > .period-tabs__range,
.missing-dates,
.placement-summary,
.data-table tbody th[scope="row"] { font-variant-numeric: tabular-nums; }
.data-table thead th { position: sticky; top: 0; z-index: 1; background: var(--lg-table-head); color: var(--muted); font-size: 12px; line-height: 1.3; letter-spacing: .02em; text-transform: uppercase; }
.data-table tbody th[scope="row"] { color: var(--text); font-size: 13px; font-weight: 400; letter-spacing: normal; text-transform: none; }
.data-table thead th:first-child,
.data-table tbody th[scope="row"]:first-child,
.data-table tbody td:first-child { position: sticky; left: 0; z-index: 2; background: var(--surface); text-align: left; }
.data-table thead th:first-child { z-index: 3; background: var(--lg-table-head); }
.sort-button {
  display: flex;
  width: calc(100% + 24px);
  min-height: var(--button-height);
  gap: 5px;
  align-items: center;
  justify-content: flex-end;
  margin: -11px -12px;
  padding: 0 12px;
  color: inherit;
  text-decoration: none;
}
.data-table thead th:first-child .sort-button { justify-content: flex-start; }
.sort-button:where(:not(:disabled):not([aria-disabled="true"])):hover { color: var(--accent-strong); }
.sort-button:focus-visible { border-radius: 4px; outline: 2px solid var(--accent); outline-offset: 3px; }
.sort-button__indicator { color: var(--sort-muted); font-size: 12px; }
.data-table th[aria-sort="ascending"],
.data-table th[aria-sort="descending"] { color: var(--accent-strong); }
.data-table th[aria-sort="ascending"] .sort-button__indicator,
.data-table th[aria-sort="descending"] .sort-button__indicator { color: var(--accent); }
.data-table tbody tr:last-child > :is(th, td) { border-bottom: 0; }
.position-pill { display: inline-flex; min-width: 44px; justify-content: center; padding: 3px 8px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-strong); font-weight: 800; }
.campaign-table-module .position-pill { color: var(--text); }
.cluster-main-row { cursor: default; }
.cluster-main-row.is-expanded > :is(th, td) { background: var(--lg-lime-faint); }
.cluster-disclosure {
  width: 100%;
  min-height: var(--button-height);
  justify-content: space-between;
  padding: 0 4px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--text);
  text-align: start;
}
.cluster-disclosure:where(:not(:disabled):not([aria-disabled="true"])):hover { background: transparent; color: var(--accent-strong); }
.cluster-disclosure:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cluster-disclosure__icon { color: var(--muted); font-size: 18px; line-height: 1; transition: color 180ms ease, transform 180ms ease; }
.cluster-disclosure[aria-expanded="true"] .cluster-disclosure__icon { color: var(--accent); transform: rotate(180deg); }
.cluster-group { display: grid; gap: 12px; }
.cluster-group + .cluster-group { margin-top: 20px; }
.cluster-group__heading { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 0 20px; }
.cluster-group__heading h3 { margin: 0 0 3px; font-size: 17px; line-height: 1.3; }
.cluster-group__heading p { margin: 0; color: var(--muted); font-size: 13px; }
.cluster-group__actions { display: flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.manual-cluster-action { white-space: nowrap; }
.manual-cluster-action[data-apply-bids] {
  position: relative;
  isolation: isolate;
  min-width: 214px;
  overflow: hidden;
}
.manual-cluster-action[data-apply-bids]::before {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 0;
  width: 0;
  background: var(--lg-success-fill);
  background: color-mix(in srgb, var(--success) 58%, var(--bg));
  content: "";
}
.manual-cluster-action[data-apply-bids].is-applying::before {
  animation: manual-bid-apply-progress 12s cubic-bezier(.16, 1, .3, 1) forwards;
}
.manual-cluster-action[data-apply-bids]:disabled.is-applying {
  cursor: progress;
  opacity: 1;
}
.manual-cluster-action[data-apply-bids] [data-apply-bids-label] {
  position: relative;
  z-index: 1;
}
.manual-cluster-result {
  margin: 0 20px 18px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow-wrap: anywhere;
}
.manual-cluster-result--warning {
  border-color: var(--warning-line);
  background: var(--warning-soft);
  color: var(--warning);
}
.manual-cluster-result--success {
  border-color: var(--success-line);
  background: var(--success-soft);
  color: var(--success);
}
.manual-cluster-result--danger {
  border-color: var(--danger-line);
  background: var(--danger-soft);
  color: var(--danger);
}
.cluster-group__table { min-width: 0; }
.cluster-page-header {
  position: sticky;
  top: var(--campaign-table-top, 166px);
  z-index: 7;
  height: 0;
  visibility: hidden;
  border: 1px solid var(--border);
  border-radius: 12px 12px 0 0;
  background: var(--lg-table-head);
}
.cluster-page-header__viewport { overflow: hidden; border-radius: inherit; }
.cluster-page-header .data-table { table-layout: fixed; }
.cluster-group__empty { margin: 0 20px 16px; }
.cluster-group__excluded-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-top: 1px solid var(--border); }
.cluster-group__excluded-heading .cluster-group__disclosure { min-width: 0; border-top: 0; }
.cluster-group__excluded-actions { display: flex; min-width: 0; gap: 12px; align-items: center; padding-inline-end: 20px; }
.cluster-group__excluded-heading .manual-cluster-action { flex: 0 1 auto; min-width: 0; }

@keyframes manual-bid-apply-progress {
  0% { width: 0; }
  38% { width: 58%; }
  100% { width: 92%; }
}
.cluster-group__disclosure {
  display: flex;
  width: 100%;
  min-height: var(--button-height);
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  font-size: 13px;
  line-height: 1.15;
  text-align: left;
}
.cluster-group__disclosure:hover { background: var(--lg-surface-hover-faint); }
.cluster-group__disclosure:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.cluster-group__disclosure-copy { min-width: 0; }
.cluster-group__description { margin: 3px 20px 8px; color: var(--muted); font-size: 12px; }
.cluster-group__disclosure-meta { display: flex; gap: 12px; align-items: center; }
.cluster-group__disclosure[aria-expanded="true"] .cluster-disclosure__icon { color: var(--accent); transform: rotate(180deg); }
.cluster-group__panel { min-width: 0; max-width: 100%; }
.cluster-group__panel[hidden] { display: none; }
.detail-row[hidden] { display: none; }
.detail-row td { padding: 0 12px 10px; background: var(--lg-glass-dense-opaque); }
.cluster-detail { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(480px, 1.3fr); gap: 16px; padding: 14px 0 5px; color: var(--accent); }
.cluster-detail--table { display: block; }
.campaign-table-module .cluster-detail--table { color: var(--text); }
.data-table--compact th,
.data-table--compact td { padding: 8px 10px; }

.campaign-table-module .cluster-select-column {
  position: sticky;
  left: 0;
  z-index: 4;
  width: 46px;
  min-width: 46px;
  padding: 0;
  background: var(--surface);
  text-align: center;
}
.campaign-table-module thead .cluster-select-column { z-index: 7; background: var(--lg-table-head); }
.campaign-table-module .cluster-select-column + th,
.campaign-table-module .cluster-select-column + td {
  position: sticky;
  left: 46px;
  z-index: 3;
  min-width: 220px;
  background: var(--surface);
  text-align: left;
  box-shadow: 8px 0 12px var(--lg-shadow-edge);
}
.campaign-table-module thead .cluster-select-column + th { z-index: 6; background: var(--lg-table-head); }
.campaign-table-module .cluster-main-row.is-selected > :is(th, td) { background-color: var(--accent-soft); }
.campaign-table-module .cluster-main-row.is-selected .cluster-select-column,
.campaign-table-module .cluster-main-row.is-selected .cluster-select-column + :is(th, td) {
  background-color: var(--surface);
  background-image: linear-gradient(var(--accent-soft), var(--accent-soft));
}
.cluster-bid-cell { min-width: 184px; }
.cluster-bid-editor { display: inline-grid; gap: 4px; justify-items: end; }
.cluster-bid-editor__display {
  min-width: 96px;
  min-height: var(--button-height);
  justify-content: flex-end;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--lg-radius-data);
  background: transparent;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}
.cluster-bid-editor__display:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--border); background: var(--surface-muted); }
.cluster-bid-editor__controls { display: flex; gap: 4px; align-items: center; }
.cluster-bid-editor__controls[hidden] { display: none; }
.cluster-bid-editor__controls input {
  width: 112px;
  min-height: 44px;
  border-color: var(--accent);
  color: var(--accent-strong);
  font-weight: 750;
  text-align: right;
}
.cluster-bid-editor__cancel,
.cluster-bid-editor__confirm {
  width: var(--button-height);
  min-width: var(--button-height);
  min-height: var(--button-height);
  padding: 0;
  border-radius: 12px;
  font-size: 18px;
}
.cluster-bid-editor__cancel { border-color: var(--danger-line); background: var(--danger-soft); color: var(--danger); }
.cluster-bid-editor__confirm { border-color: var(--accent); background: var(--accent); color: var(--bg); }
.cluster-bid-editor.is-staged .cluster-bid-editor__display { border-color: var(--lg-lime-line); background: var(--accent-soft); color: var(--accent-strong); font-weight: 800; }
.cluster-bid-editor__error { max-width: 260px; color: var(--danger); font-size: 12px; line-height: 1.3; white-space: normal; }

.heading-actions,
.bulk-actions,
.table-tools,
.settings-submit {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.cluster-workspace {
  display: grid;
  min-width: 0;
  gap: 20px;
}

.bulk-panel {
  display: grid;
  grid-template-columns: minmax(240px, 1.3fr) repeat(3, minmax(145px, .7fr));
  gap: 14px;
  align-items: end;
  padding: 18px;
  border: 0;
  border-radius: 18px;
  background: var(--surface);
  box-shadow: var(--shadow-border-hover);
}

.cluster-command {
  position: sticky;
  top: 98px;
  z-index: 12;
  border-radius: var(--lg-radius-card);
  background: var(--lg-glass-regular);
}

.bulk-panel__intro h2 { margin-bottom: 2px; }
.bulk-panel__intro p:last-child { margin-bottom: 0; color: var(--muted); }
.bulk-panel label,
.settings-form label { display: grid; gap: 6px; }
.bulk-panel label > span,
.settings-form label > span { color: var(--muted); font-size: 12px; font-weight: 700; }
.field-hint { grid-column: 1 / 3; margin: 0; color: var(--muted); font-size: 12px; }
.bulk-actions { grid-column: 3 / -1; justify-content: flex-end; }

.cluster-table-section { min-width: 0; padding-inline: 0; }
.cluster-table-panel { min-width: 0; overflow: clip; background: var(--lg-glass-dense); }
.cluster-table-section > .section-title { padding-inline: 20px; }
.cluster-table-scroll {
  width: 100%;
  min-width: 0;
  border-inline: 0;
  border-radius: 0 0 var(--lg-radius-data) var(--lg-radius-data);
}
.cluster-table { min-width: 1730px; }
.cluster-table-section--readonly .cluster-table { min-width: 1684px; }
.cluster-table-section--readonly .sticky-query { left: 0; }
.cluster-table-section--readonly .sticky-position { left: 240px; }
.cluster-table-section--readonly .sticky-current { left: 360px; }
.cluster-table-section--readonly .sticky-recommended { left: 490px; }
.cluster-table-section--readonly .sticky-max { left: 640px; }
.cluster-table th,
.cluster-table td { background-clip: padding-box; }
.cluster-table .sticky-select { position: sticky; left: 0; width: 46px; min-width: 46px; z-index: 4; background: var(--lg-table-frozen); text-align: center; }
.cluster-table .sticky-query { position: sticky; left: 46px; width: 240px; min-width: 240px; z-index: 4; background: var(--lg-table-frozen); text-align: left; }
.cluster-table .sticky-position { position: sticky; left: 286px; width: 120px; min-width: 120px; z-index: 4; background: var(--lg-table-frozen); }
.cluster-table .sticky-current { position: sticky; left: 406px; width: 130px; min-width: 130px; z-index: 4; background: var(--lg-table-frozen); }
.cluster-table .sticky-recommended { position: sticky; left: 536px; width: 150px; min-width: 150px; z-index: 4; background: var(--lg-table-frozen); }
.cluster-table .sticky-max { position: sticky; left: 686px; width: 140px; min-width: 140px; z-index: 4; background: var(--lg-table-frozen); box-shadow: 8px 0 12px var(--lg-shadow-edge-hover); }
.cluster-table thead .sticky-select,
.cluster-table thead .sticky-query,
.cluster-table thead .sticky-position,
.cluster-table thead .sticky-current,
.cluster-table thead .sticky-recommended,
.cluster-table thead .sticky-max { z-index: 7; background: var(--lg-table-head); }
.cluster-table .sticky-query small { display: block; margin: 2px 0 5px; color: var(--muted); font-size: 11px; font-weight: 500; }
.cluster-table .detail-row td:first-child { position: static; background: var(--lg-table-frozen); }
.cluster-main-row.is-selected > :is(th, td) { background-color: var(--lg-lime-faint); }
.cluster-main-row.is-selected .sticky-select,
.cluster-main-row.is-selected .sticky-query,
.cluster-main-row.is-selected .sticky-position,
.cluster-main-row.is-selected .sticky-current,
.cluster-main-row.is-selected .sticky-recommended,
.cluster-main-row.is-selected .sticky-max {
  background-color: var(--lg-table-frozen);
  background-image: linear-gradient(var(--lg-lime-faint), var(--lg-lime-faint));
}
.check-label { display: inline-grid; min-width: 44px; min-height: 44px; place-items: center; cursor: pointer; }
.check-label input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.proposal-form { display: grid; gap: 18px; }
.operational-grid { margin-bottom: 18px; }
.proposal-kpis { grid-template-columns: repeat(5, minmax(150px, 1fr)); }
.proposal-summary {
  position: sticky;
  top: 98px;
  z-index: 11;
  grid-template-columns: repeat(5, minmax(120px, 1fr)) minmax(250px, auto);
  border-radius: var(--lg-radius-card);
}
.proposal-summary > div { display: grid; gap: 2px; }
.proposal-summary span { color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.3; }
.proposal-summary strong { font-size: 17px; }
.proposal-summary__actions { display: flex !important; gap: 8px !important; align-items: end; justify-content: flex-end; }
.proposal-table-panel { min-width: 0; overflow: clip; padding: 0; }
.proposal-table { min-width: 1280px; }
.proposal-table-panel--readonly .proposal-table { min-width: 760px; }
.proposal-table th:first-child,
.proposal-table td:first-child { position: static; width: 46px; min-width: 46px; text-align: center; }
.proposal-table tbody th[scope="row"] { text-align: left; }
.campaign-link { display: inline-flex; min-height: 44px; align-items: center; }
.proposal-table tbody th[scope="row"] small { display: block; color: var(--muted); }
.proposal-table-panel--readonly .proposal-table th:first-child,
.proposal-table-panel--readonly .proposal-table td:first-child { position: sticky; left: 0; width: auto; min-width: 220px; text-align: left; }
.proposal-table input[type="checkbox"] { width: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.proposal-table code { color: var(--lg-text); font-size: 11px; white-space: normal; }
.proposal-table tr.is-selected > :is(th, td) { background: var(--lg-lime-faint); }
.proposal-row--warning > :is(th, td) { background-color: var(--warning-soft); }
.proposal-row--warning.is-selected > :is(th, td) {
  background-color: var(--lg-lime-faint);
  box-shadow: inset 0 1px var(--lg-warning-inset);
}
.proposal-actions { display: flex; gap: 6px; }
.proposal-bid { white-space: nowrap; }
.proposal-bid > span,
.proposal-bid > strong { display: inline-block; }
.proposal-bid__arrow { margin-inline: 5px; color: var(--muted); }
.proposal-check { min-width: 260px; text-align: left !important; white-space: normal; }
.reason-detail { margin-top: 6px; color: var(--accent-strong); }
.reason-detail summary { min-height: var(--button-height); cursor: pointer; font-weight: 700; }
.reason-detail code { display: block; margin-top: 4px; color: var(--muted); }
.empty-cell { padding: 32px !important; color: var(--muted); text-align: center !important; }

.column-picker { position: relative; }
.column-picker > summary { list-style: none; cursor: pointer; }
.column-picker > summary::-webkit-details-marker { display: none; }
.column-picker fieldset {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 12;
  display: grid;
  width: 250px;
  gap: 7px;
  padding: 14px;
  border: 1px solid var(--lg-line);
  border-radius: var(--lg-radius-data);
  background: var(--lg-surface-dialog);
  box-shadow: 0 24px 50px var(--lg-shadow-dialog);
}
.column-picker legend { padding: 0 5px; color: var(--muted); font-size: 11px; font-weight: 750; }
.column-picker label { display: flex; min-width: 44px; min-height: 44px; gap: 8px; align-items: center; font-size: 12px; cursor: pointer; }
.column-picker input { width: 16px; min-height: 16px; margin: 0; accent-color: var(--accent); }
.setting-summary { display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 8px; margin: 0 0 14px; }
.setting-summary div { padding: 10px; border: 1px solid var(--border); border-radius: var(--lg-radius-data); background: var(--surface-muted); }
.setting-summary dt { color: var(--muted); font-size: 11px; }
.setting-summary dd { margin: 3px 0 0; color: var(--text); font-weight: 750; }

.settings-form { display: grid; width: 100%; max-width: none; gap: 14px; }
.settings-card {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(420px, 1.2fr);
  gap: 28px;
  border-radius: var(--lg-radius-card);
  padding: 24px;
}
.settings-card p:last-child { margin-bottom: 0; color: var(--muted); font-size: 13px; }
.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 12px; align-content: start; }
.settings-submit {
  position: sticky;
  bottom: 18px;
  z-index: 10;
  display: flex;
  align-items: center;
  border-radius: 999px;
  padding: 12px 14px 12px 20px;
}
.settings-submit > span { margin-right: auto; color: var(--muted); font-size: 12px; }
.settings-version { margin: 0; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }

.notice-panel {
  align-items: flex-start;
  margin-top: 0;
  border-color: var(--lg-line);
  background: var(--lg-glass-dense);
  color: var(--lg-text);
}
.notice-panel > span { display: grid; width: 28px; height: 28px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--accent-soft); color: var(--lg-lime); font-weight: 800; }
.notice-panel h2 { font-size: 17px; }
.notice-panel p { margin-bottom: 0; }

.empty-state,
.error-state {
  display: grid;
  width: min(680px, 100%);
  justify-self: center;
  border-radius: var(--lg-radius-shell);
  padding: clamp(28px, 6vw, 64px);
  text-align: left;
}
.empty-state p,
.error-state > p:not(.eyebrow) { max-width: 520px; color: var(--muted); }
.empty-icon,
.error-mark { display: grid; width: 64px; height: 64px; margin-bottom: 18px; place-items: center; border-radius: var(--lg-radius-section); background: var(--accent-soft); color: var(--accent); font-size: 31px; font-weight: 800; }
.empty-icon .icon { width: 30px; height: 30px; }
.error-mark { background: var(--lg-danger-icon-soft); color: var(--lg-danger); }
.error-state h1 { font-size: clamp(28px, 4vw, 42px); }
.error-state small { margin-top: 20px; color: var(--lg-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.empty-inline { margin: 14px 0 0; color: var(--muted); }

.motion-ready [data-reveal] {
  opacity: 0;
  filter: blur(10px);
  transform: scale(.985) translateY(8px);
}

.motion-ready [data-reveal].is-revealed {
  opacity: 1;
  filter: blur(0);
  transform: scale(1) translateY(0);
  transition: opacity 420ms ease var(--reveal-delay, 0ms), filter 420ms ease var(--reveal-delay, 0ms), transform 420ms cubic-bezier(.22, 1, .36, 1) var(--reveal-delay, 0ms);
}

.position-chart {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--lg-line-soft);
  border-radius: var(--lg-radius-section);
  background: var(--lg-surface-sunken-strong);
  color: var(--lg-lime);
}
[data-position-chart] polyline { transition: stroke-dashoffset 780ms cubic-bezier(.22, 1, .36, 1); }
[data-position-chart] circle { opacity: 0; transition: opacity 180ms ease 780ms; }
[data-position-chart] svg[data-animated="true"] circle { opacity: 1; }
[data-position-chart] svg:not(:has(polyline)) circle { opacity: 1; }

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

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.shop-switcher {
  position: relative;
  width: 100%;
  margin-top: 18px;
}

.shop-switcher > summary {
  display: flex;
  min-height: var(--button-height);
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--lg-radius-control);
  background: var(--lg-surface-inset-strong);
  cursor: pointer;
  list-style: none;
}

.shop-switcher > summary::-webkit-details-marker { display: none; }
.shop-switcher__current { display: grid; min-width: 0; }
.shop-switcher__current strong { overflow: hidden; font-size: 13px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.shop-switcher__current small { color: var(--muted); font-size: 10px; line-height: 1.1; font-weight: 750; text-transform: uppercase; }

.shop-switcher__panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 60;
  width: min(360px, calc(100vw - 42px));
  max-height: min(62vh, 560px);
  overflow-y: auto;
  padding: 12px;
  border-radius: 18px;
}

.shop-switcher__search { display: block; position: sticky; top: 0; z-index: 2; padding-bottom: 8px; background: var(--lg-glass-dense); }
.shop-switcher__group { padding: 8px 0; border-top: 1px solid var(--border); }
.shop-switcher__group h2 { margin: 0 8px 5px; color: var(--muted); font-size: 12px; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; }
.shop-switcher__group a {
  display: flex;
  min-height: var(--button-height);
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 8px;
  border-radius: var(--lg-radius-data);
  text-decoration: none;
}
.shop-switcher__group a:hover,
.shop-switcher__group a[aria-current="true"] { background: var(--accent-soft); }
.shop-switcher__group a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shop-switcher__group a small { flex: 0 0 auto; color: var(--muted); font-size: 10px; }
.shop-switcher__management { display: none; }
.shop-switcher__footer { display: flex; justify-content: space-between; gap: 10px; padding-top: 9px; border-top: 1px solid var(--border); }
.shop-switcher__footer a { display: inline-flex; min-height: var(--button-height); align-items: center; color: var(--accent); font-size: 12px; font-weight: 750; }
.session-exit { padding-top: 8px; border-top: 1px solid var(--border); }
.session-exit .button { width: 100%; }
.shop-switcher__empty { padding: 14px 8px; color: var(--muted); }

.app-nav__divider { display: block; height: 1px; margin: 5px 8px; background: var(--border); }
.shop-context-state { display: flex; gap: 8px; align-items: center; margin-top: 6px; padding: 8px 10px; color: var(--muted); font-size: 12px; line-height: 1.3; }
.sidebar-contacts { display: grid; gap: 2px; width: 100%; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--border); }
.sidebar-contacts h2 { margin: 0 0 2px 10px; color: var(--muted); font-size: 11px; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; }
.sidebar-contacts a {
  display: flex;
  min-height: var(--button-height);
  gap: 7px;
  align-items: center;
  padding: 0 10px;
  border-radius: var(--lg-radius-control);
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.sidebar-contacts a:hover { background: var(--accent-soft); color: var(--lg-lime); }
.sidebar-contacts a > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-contacts .icon { width: 16px; height: 16px; flex: 0 0 auto; }

.cabinet-connection { position: relative; width: 100%; margin-top: 10px; }
.cabinet-connection > summary { display: flex; align-items: center; gap: 7px; list-style: none; width: 100%; padding-inline: 10px; font-size: 12px; }
.cabinet-connection > summary::-webkit-details-marker { display: none; }
.cabinet-connection > summary .state-dot { margin-left: auto; }
.cabinet-connection__panel { position: absolute; z-index: 50; left: 0; bottom: calc(100% + 10px); width: 280px; max-width: calc(100vw - 48px); padding: 18px; border: 1px solid var(--border); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.cabinet-connection__title { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cabinet-connection__title h2 { margin: 0; font-size: 17px; }
.cabinet-connection__state { margin: 12px 0 6px; color: var(--muted); font-size: 13px; }
.cabinet-connection[data-status="ready"] .cabinet-connection__state { color: var(--success); }
.cabinet-connection:is([data-status="auth_error"], [data-status="supplier_mismatch"]) .cabinet-connection__state { color: var(--danger); }
.cabinet-connection__message { margin: 6px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.sidebar-status { margin-top: 6px; }
.state-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--muted); }
.state-dot--success { background: var(--success); }
.state-dot--warning { background: var(--warning); }
.state-dot--danger { background: var(--danger); }

.button--primary { border-color: transparent; background: var(--accent); color: var(--lg-bg); }
.button--primary:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--lg-lime-line-strong); background: var(--accent-strong); color: var(--lg-bg); }
.button--quiet { border-color: var(--border); background: var(--surface-muted); color: var(--text); }
.button--quiet:where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--lg-line); background: var(--lg-glass-regular); }

.shop-directory {
  display: grid;
  gap: 24px;
  padding: 22px;
  border: 0;
  border-radius: 24px;
  background: var(--lg-glass-regular);
  box-shadow: var(--shadow-border);
}

.section-heading { display: flex; gap: 16px; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.section-heading h2 { margin: 0; }
.directory-list { border-top: 1px solid var(--border); }
.directory-row {
  display: grid;
  min-height: 62px;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  padding: 9px 4px;
  border-bottom: 1px solid var(--border);
  color: inherit;
  text-decoration: none;
}
.directory-row > span:first-child { display: grid; min-width: 0; }
.directory-row strong { overflow-wrap: anywhere; }
.directory-row small { color: var(--muted); }
.directory-row form { margin: 0; }
.role-badge,
.count-badge,
.state-label { display: inline-flex; min-height: 28px; align-items: center; padding: 4px 9px; border-radius: 999px; background: var(--surface-muted); color: var(--muted); font-size: 12px; font-weight: 750; line-height: 1.3; }
.state-label--success { background: var(--success-soft); color: var(--success); }
.state-label--warning { background: var(--warning-soft); color: var(--warning); }

.empty-state { max-width: 620px; padding: 34px 12px; }
.empty-state p,
.page-heading p,
.supporting-copy,
.quiet-empty { max-width: 720px; margin-bottom: 0; color: var(--muted); }
.empty-state > .button { justify-self: start; }
.empty-state__mark { display: grid; width: 44px; height: 44px; place-items: center; margin-bottom: 14px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-size: 24px; }

.invitation-strip,
.state-panel { display: grid; gap: 12px; padding: 16px 18px; border: 1px solid var(--warning-line); border-radius: 18px; background: var(--warning-soft); }
.invitation-row { display: flex; gap: 16px; align-items: center; justify-content: space-between; }
.invitation-row > div:first-child { display: grid; }
.invitation-row small { color: var(--muted); }
.row-actions,
.form-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.row-actions form { margin: 0; }
.state-panel--success { border-color: var(--success-line); background: var(--success-soft); }
.state-panel--danger { border-color: var(--danger-line); background: var(--danger-soft); }

.management-layout {
  display: grid;
  gap: 22px;
}
.management-layout--narrow { max-width: 860px; }
.management-section { padding: 20px 22px; border-top: 1px solid var(--border); background: var(--lg-surface-section); }
.management-form { display: grid; gap: 18px; padding: 22px; border-radius: 18px; }
.management-form label,
.auth-form label,
.inline-form label { display: grid; gap: 6px; }
.management-form label > span,
.auth-form label > span,
.inline-form label > span { color: var(--muted); font-size: 12px; font-weight: 750; }
.management-form textarea { width: 100%; min-height: 132px; resize: vertical; padding: 12px; border: 1px solid var(--border); border-radius: var(--lg-radius-control); background: var(--lg-glass-dense); color: var(--text); font: inherit; }
.management-form textarea:focus-visible { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 3px; }
.management-form small { color: var(--muted); }
.inline-form { display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 10px; align-items: end; }
.confirmation-dialog,
.table-view-dialog {
  border-radius: var(--lg-radius-card);
  background: var(--lg-glass-dense);
  color: var(--text);
  box-shadow: var(--shadow);
}
.confirmation-dialog {
  width: min(calc(100% - 28px), 560px);
  padding: 0;
  border: 1px solid var(--warning-line);
}
.confirmation-dialog::backdrop,
.table-view-dialog::backdrop {
  background: var(--lg-scrim-dialog);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.confirmation-dialog__body { display: grid; gap: 14px; padding: 24px; }
.confirmation-dialog__body h2,
.confirmation-dialog__body p { margin: 0; }
.confirmation-dialog__body p { color: var(--muted); }
.confirmation-dialog__actions { justify-content: flex-end; margin-top: 4px; }
.history-period-dialog { border-color: var(--border); }
.history-period-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.history-period-presets [aria-pressed="true"] { background: var(--accent-soft); color: var(--accent-strong); border-color: var(--accent); }
.history-period-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.history-period-fields label { display: grid; gap: 6px; min-width: 0; }
.history-period-fields label > span { color: var(--muted); font-size: 12px; font-weight: 750; }
.history-period-fields input { width: 100%; min-width: 0; color-scheme: dark; }
@media (max-width: 479px) {
  .history-period-fields { grid-template-columns: 1fr; }
}
.connection-status { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
.connection-status .state-dot { width: 12px; height: 12px; margin-top: 6px; }
.connection-status h2 { margin: 0; }
.connection-status p { margin: 3px 0 0; color: var(--muted); }
.reauth-note { padding: 14px 16px; border-left: 3px solid var(--warning); background: var(--warning-soft); }
.reauth-note p { margin: 4px 0; color: var(--muted); }
.reauth-note a { display: inline-flex; min-height: 44px; align-items: center; color: var(--warning); font-weight: 750; }
.danger-zone {
  padding: 22px;
  border: 1px solid var(--danger-line);
  border-radius: 18px;
  background: var(--danger-soft);
}
.danger-zone .eyebrow,
.danger-zone h2 { color: var(--danger); }
.danger-zone li { margin-block: 6px; }
.form-alert { padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; }
.form-alert--danger { border-color: var(--danger-line); background: var(--danger-soft); color: var(--danger); }
.form-alert--success { border-color: var(--success-line); background: var(--success-soft); color: var(--success); }
.field-error {
  margin: 0;
  color: var(--danger);
  font-size: 12px;
  line-height: 1.35;
}
:is(input, textarea, select)[aria-invalid="true"] { border-color: var(--danger-line); }
:is(input, textarea, select)[aria-invalid="true"]:focus-visible {
  outline-color: var(--danger);
  box-shadow: 0 0 0 3px var(--danger-soft);
}
[data-error-focus] { scroll-margin-top: 120px; }

.auth-body { min-width: 320px; min-height: 100vh; margin: 0; background: var(--bg); color: var(--text); font-size: 15px; line-height: 1.5; }
.auth-shell {
  display: grid;
  width: min(100% - 28px, 480px);
  min-height: 100vh;
  align-content: center;
  gap: 18px;
  margin: 0 auto;
  padding: 28px 0;
}
.auth-brand { justify-self: start; }
.auth-panel { padding: clamp(22px, 5vw, 36px); border-radius: 24px; }
.auth-panel h1 { font-size: clamp(30px, 8vw, 44px); }
.auth-panel > p { color: var(--muted); }
.auth-form { display: grid; gap: 15px; margin-top: 22px; }
.auth-form .button { width: 100%; margin-top: 4px; }
.auth-help { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--border); }
.auth-footnote { margin: 0; color: var(--muted); font-size: 12px; text-align: center; }
.nav-count { margin-left: 5px; color: var(--warning); }

/* Дашборд магазина «Что требует внимания» */
.attention-heading { margin-bottom: 4px; }
.attention-heading .lede { max-width: 68ch; color: var(--muted); }
.attention-total { display: grid; justify-items: end; gap: 2px; }
.attention-total strong { font-size: 44px; line-height: 1; letter-spacing: -.04em; }
.attention-total span { color: var(--muted); font-size: 13px; }
.attention-total--danger strong { color: var(--lg-danger); }
.attention-total--warning strong { color: var(--warning); }
.attention-clear { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
.attention-clear .state-dot { margin-top: 9px; }
.attention-clear h2 { color: var(--success); }
.attention-clear p,
.attention-unavailable p { margin: 0; color: var(--muted); }
.attention-group .section-title { align-items: center; }
.attention-group .section-title h2 { margin: 0; }
.attention-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.attention-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid var(--warning-line);
  border-radius: var(--lg-radius-data);
  background: var(--warning-soft);
}
.attention-item--danger { border-color: var(--danger-line); background: var(--danger-soft); }
.attention-item__copy { display: grid; gap: 2px; min-width: 0; }
.attention-item__copy span,
.attention-item__note { color: var(--muted); font-size: 13px; }
.attention-item__note { max-width: 24ch; text-align: right; }
.attention-item__error { margin: 0; color: var(--lg-danger); font-size: 13px; }
.attention-item__progress { display: flex; gap: 8px; align-items: center; }
.attention-item__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.attention-table th,
.attention-table td { text-align: left; vertical-align: top; }
.attention-table td:last-child { text-align: right; }
.attention-table tbody th[scope="row"] { min-width: 200px; white-space: normal; }
.attention-campaign { color: var(--text); font-weight: 650; text-decoration: none; }
.attention-campaign:hover { color: var(--accent-strong); }
.attention-table small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.attention-reasons { min-width: 280px; max-width: 460px; margin: 8px 0 0; padding: 0; list-style: none; white-space: normal; font-size: 13px; line-height: 1.45; }
.attention-reasons li + li { margin-top: 4px; }
.attention-when { color: var(--muted); }

/* Красная точка «Дашборда»: только проблемы доступа к WB */
.app-nav a { position: relative; }
.app-nav a > .app-nav__alert { margin-left: auto; box-shadow: 0 0 0 3px var(--danger-soft); }

.async-state[data-status="queued"],
.async-state[data-status="running"] { border-color: var(--warning-line); background: var(--warning-soft); }
.async-state[data-status="succeeded"] { border-color: var(--success-line); background: var(--success-soft); }
.async-state[data-status="failed"],
.async-state[data-status="cancelled"] { border-color: var(--danger-line); background: var(--danger-soft); }

@media (min-width: 2000px) and (min-aspect-ratio: 2/1) {
  :root { --page-shell-max: 2200px; }
}

@media (max-width: 1279px) {
  .cabinet-connection { width: 48px; }
  .cabinet-connection > summary { padding-inline: 5px; gap: 5px; justify-content: center; }
  .cabinet-connection__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .cabinet-connection > summary .state-dot { margin-left: 0; }
  .app-frame { grid-template-columns: 76px minmax(0, 1fr); }
  .app-sidebar .brand-copy,
  .app-nav a > span,
  .app-nav__soon > span,
  .nav-soon { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .app-sidebar { align-items: center; }
  .app-nav { width: 100%; }
  .app-nav a,
  .app-nav__soon { width: 48px; justify-content: center; }
  .sidebar-contacts { justify-items: center; }
  .sidebar-contacts h2,
  .sidebar-contacts a > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sidebar-contacts a { width: 48px; justify-content: center; }
  .shop-switcher { width: 48px; }
  .shop-switcher > summary { width: 48px; gap: 0; padding: 4px; justify-content: center; }
  .shop-switcher__current {
    position: static;
    width: auto;
    height: auto;
    max-width: 40px;
    overflow: visible;
  }
  .shop-switcher__current small,
  .shop-switcher__chevron { display: none; }
  .shop-switcher__current strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.1;
    overflow-wrap: anywhere;
    text-align: center;
    text-overflow: ellipsis;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .shop-switcher__panel { left: 0; }
  .shop-context-state span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .proposal-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .proposal-summary__actions { grid-column: 1 / -1; }
  .catalog-utility-bar { grid-template-columns: minmax(210px, .85fr) minmax(250px, 1.15fr) auto; }
  .catalog-utility-bar .actor { display: none; }
  .catalog-utility__actions .icon-button { display: none; }
  .campaign-utility-bar { grid-template-columns: minmax(220px, .9fr) minmax(180px, .65fr) auto; gap: 8px; }
  .campaign-utility__meta span:nth-child(n + 4) { display: none; }
  /* До значка сжимаются только ссылки со значком; «Автостратегия» — текстовая кнопка. */
  .campaign-utility__link:has(> .icon) {
    position: relative;
    width: 44px;
    min-width: 44px;
    padding-inline: 0 !important;
  }
  .campaign-utility__link span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .campaign-utility__actions:has(.campaign-utility__retry:not([hidden])) .campaign-utility__link { display: none; }
  /* Дашборд: точка доступа */
  .app-nav a > .app-nav__alert { position: absolute; top: 5px; right: 5px; margin: 0; }
}

@media (max-width: 980px) {
  .filter-bar { grid-template-columns: 1fr 1fr; }
  .search-field { grid-column: 1 / -1; }
  .campaign-overview { grid-template-columns: minmax(0, 1fr); }
  .campaign-overview__budget { max-width: none; justify-items: start; text-align: left; }
  .campaign-stats--budget { justify-content: start; }
  .campaign-overview__warning { justify-content: flex-start; }
  .campaign-results__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 14px; }
  .campaign-results__stats .campaign-stat:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
  .metric-grid { grid-template-columns: repeat(3, 1fr); }
  .cluster-detail { grid-template-columns: 1fr; }
  .bulk-panel { grid-template-columns: 1fr 1fr; }
  .bulk-panel__intro { grid-column: 1 / -1; }
  .field-hint { grid-column: 1; }
  .bulk-actions { grid-column: 2; }
  .settings-card { grid-template-columns: 1fr; gap: 18px; }
  .catalog-utility-bar { grid-template-columns: minmax(185px, .8fr) minmax(180px, 1fr) auto; gap: 10px; }
  .catalog-utility__count-label,
  .catalog-utility__timestamps,
  .catalog-utility__registry { display: none; }
  .catalog-history-bar { grid-template-columns: 30px minmax(210px, .75fr) minmax(260px, 1.25fr); }
  .campaign-utility-bar { grid-template-columns: minmax(170px, .72fr) minmax(150px, .6fr) auto; }
  .campaign-utility__meta { display: none; }
  .campaign-utility__sync-meta [data-sync-stage] { display: none; }
  .inline-form { grid-template-columns: 1fr; }
}

@media (min-width: 768px) and (max-width: 980px) {
  .campaign-period-bar,
  .campaign-period-bar .period-tabs,
  .custom-period-form,
  .custom-period-form label { gap: 4px; }
  .campaign-period-bar .period-tabs :is(a, .period-tabs__option) { padding-inline: 4px; font-size: 12px; }
  .custom-period-form input[type="date"] { width: 108px; padding-inline: 4px; font-size: 12px; }
  .custom-period-form button { padding-inline: 8px; font-size: 12px; }
}

@media (max-width: 767px) {
  html { scroll-padding-bottom: 94px; }
  :where(a, button, input, select, textarea, summary) { scroll-margin-bottom: 94px; }
  input,
  select { font-size: 16px; }
  textarea { font-size: 16px; }
  .management-form textarea { font-size: 16px; }
  button,
  .button { font-size: 13px; line-height: 1.15; }
  .button--compact { font-size: 12px; }

  .app-frame { display: block; padding: 10px 10px 94px; }
  .app-sidebar {
    position: fixed;
    top: auto;
    right: 10px;
    bottom: 10px;
    left: 10px;
    z-index: 40;
    display: block;
    width: auto;
    height: 68px;
    padding: 8px;
    border-radius: 24px;
  }
  .app-sidebar .brand,
  .sidebar-contacts,
  .sidebar-status { display: none; }
  .cabinet-connection { position: absolute; top: -40px; right: 0; width: auto; }
  .cabinet-connection > summary { padding-inline: 12px; background: var(--surface); }
  .cabinet-connection__label { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
  .cabinet-connection__panel { right: 0; left: auto; }
  .shop-context-state { display: none; }
  .shop-switcher { position: absolute; top: 18px; left: 8px; width: 52px; margin: 0; }
  .shop-switcher > summary { width: 52px; height: var(--button-height); min-height: var(--button-height); }
  .shop-switcher__panel {
    top: auto;
    bottom: 62px;
    left: 0;
    width: min(360px, calc(100vw - 36px));
    max-height: min(62vh, 560px);
  }
  .shop-switcher__management { display: block; }
  .app-nav { display: flex; width: calc(100% - 60px); padding-top: 10px; gap: 4px; margin: 0 0 0 60px; overflow-x: auto; scrollbar-width: none; }
  .app-nav a,
  .app-nav__soon { width: auto; min-width: max-content; min-height: var(--button-height); flex: 1; flex-direction: column; gap: 0; padding: 2px 4px; font-size: 10px; }
  .app-nav .app-nav__management { display: none; }
  .app-nav__divider { display: none; }
  .app-frame--global .app-nav { width: 100%; margin-left: 0; }
  .app-frame--global .utility-bar { display: grid; gap: 8px; border-radius: var(--lg-radius-card); }
  .app-frame--global .utility-actions { display: grid; width: 100%; grid-template-columns: 1fr auto; }
  .app-nav a > span,
  .app-nav__soon > span { position: static; width: auto; height: auto; overflow: visible; clip: auto; font-size: 10px; }
  .app-nav .icon { width: 16px; height: 16px; }
  .utility-bar { top: 10px; min-height: 58px; padding-left: 16px; }
  .utility-kicker { display: none; }
  .actor { display: none; }
  .catalog-utility-bar {
    display: grid;
    height: auto;
    min-height: 108px;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 8px 10px 12px;
    border-radius: 24px;
  }
  .catalog-utility__summary { gap: 8px; }
  .catalog-utility__summary .sync-state__icon { width: 30px; height: 30px; }
  .catalog-utility__primary { gap: 5px; }
  .catalog-utility__count { font-size: 18px; }
  .catalog-utility__primary .sync-state__text { font-size: 12px; line-height: 1.3; }
  .catalog-utility__timestamps,
  .catalog-utility__progress-meta,
  .catalog-utility__registry,
  .catalog-utility__actions .icon-button { display: none; }
  .catalog-utility__progress {
    position: static;
    inset-inline: auto;
    bottom: auto;
    display: block;
  }
  .catalog-utility__progress progress { display: block; height: 4px; }
  .catalog-utility__actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  .catalog-action-with-tooltip { min-width: 0; }
  .catalog-utility__actions button,
  .catalog-action-with-tooltip [data-history-sync-start] {
    width: 100%;
    min-width: 0;
    min-height: var(--button-height);
    padding-inline: 10px;
    font-size: 12px;
    line-height: 1.3;
  }
  .catalog-tooltip { right: auto; left: 0; }
  .catalog-action-with-tooltip:last-of-type .catalog-tooltip { right: 0; left: auto; }
  .catalog-history-bar {
    top: 126px;
    min-height: 96px;
    grid-template-columns: 30px minmax(0, 1fr);
    padding: 10px 12px;
    border-radius: var(--lg-radius-section);
  }
  .catalog-history__progress { grid-column: 1 / -1; }
  .catalog-history__copy strong,
  .catalog-history__copy span { white-space: normal; }
  .campaign-utility-bar {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
    padding: 10px 12px;
    border-radius: 24px;
  }
  .campaign-utility__identity { gap: 7px; }
  .campaign-utility__identity .sync-state__icon { width: 30px; height: 30px; }
  .campaign-utility__identity-copy > strong { font-size: 12px; line-height: 1.3; }
  .campaign-utility__sync {
    position: static;
    inset-inline: auto;
    bottom: auto;
    gap: 5px;
  }
  .campaign-utility__sync-meta [data-sync-stage],
  .campaign-utility__sync-meta [data-sync-percent] { display: none; }
  .campaign-utility__sync progress { height: 4px; }
  .campaign-utility__actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }
  .campaign-utility__actions .button,
  .campaign-utility__actions button {
    width: 100%;
    min-width: 0;
    max-width: none;
    min-height: var(--button-height);
    padding-inline: 6px;
    overflow: visible;
    font-size: 12px;
    line-height: 1.2;
    overflow-wrap: normal;
    white-space: normal;
  }
  /* Кнопка «Обновить» может стоять в левой колонке: меню раскрывается на ширину панели, а не от кнопки. */
  .campaign-refresh-menu { position: static; }
  .campaign-refresh-menu__panel { left: 0; right: 0; width: auto; min-width: 0; max-width: none; }
  .campaign-period-bar {
    position: relative;
    top: auto;
    min-height: 56px;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 12px;
    overflow: visible;
  }
  .campaign-period-bar .period-tabs { flex-wrap: nowrap; overflow-x: auto; }
  .campaign-period-bar .period-tabs__range { display: none; }
  .page-shell { margin-top: 12px; padding-bottom: 24px; }
  .page-heading,
  .campaign-heading,
  .section-title { display: grid; }
  .result-count { justify-self: start; text-align: left; }
  .filter-bar,
  .catalog-command { grid-template-columns: 1fr; padding: 14px; }
  .catalog-command.catalog-command--sticky {
    top: 126px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .app-workspace:has(.catalog-history-bar:not([hidden])) .catalog-command--sticky {
    top: 230px;
  }
  .catalog-command--sticky .search-field,
  .catalog-command--sticky .catalog-campaign-toggle,
  .catalog-command--sticky button { grid-column: 1 / -1; }
  .catalog-sync { padding: 14px; }
  .campaign-sync { padding: 14px; }
  .catalog-sync__heading { display: grid; }
  .campaign-sync__heading { display: grid; }
  .catalog-sync__heading button { width: 100%; }
  .campaign-sync__actions { display: grid; justify-content: stretch; }
  .campaign-sync__actions button { width: 100%; }
  .catalog-sync__metadata { display: grid; gap: 5px; }
  .catalog-sync__metadata span:not(:last-child)::after { content: none; }
  .search-field { grid-column: auto; }
  .article-card > summary { grid-template-columns: 48px minmax(0, 1fr) 18px; padding: 12px; }
  .article-thumb { width: 48px; }
  .campaign-count { display: none; }
  .campaign-list { padding: 0 12px 12px; }
  .campaign-row { grid-template-columns: 1fr 22px; }
  .campaign-tags { grid-column: 1 / -1; grid-row: 2; }
  .row-arrow { grid-column: 2; grid-row: 1; }
  .period-tabs { flex-wrap: wrap; overflow-x: visible; }
  .period-tabs__range { flex: 0 0 100%; margin-left: 0; padding-block: 5px; }
  .custom-period-form { display: grid; grid-template-columns: 1fr; margin: 0; }
  .custom-period-form label { display: grid; }
  .custom-period-form input[type="date"] { width: 100%; }
  .custom-period-form button { width: 100%; }
  .section-block { padding: 16px; }
  .metric-grid,
  .metric-grid--budget,
  .settings-card,
  .settings-grid,
  .catalog-command { grid-template-columns: 1fr; }
  .campaign-results__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-results__stats .campaign-stat:nth-child(n) { padding-inline: 14px 0; border-left: 1px solid var(--border); }
  .campaign-results__stats .campaign-stat:nth-child(2n + 1) { padding-left: 0; border-left: 0; }
  .campaign-stat dd { font-size: 17px; }
  .campaign-stat--lead dd { font-size: 20px; }
  .placement-summary,
  .placement-summary__pending { width: 100%; margin-left: 0; }
  .placement-summary__items { display: grid; grid-template-columns: 1fr; }
  .card-bid-actions { display: grid; justify-content: stretch; }
  .card-bid-actions button { width: 100%; }
  .warning-panel { display: grid; }
  .budget-warning-form { grid-template-columns: 1fr; }
  .read-only-settings { grid-template-columns: 1fr; }
  .heading-actions,
  .bulk-actions { justify-content: flex-start; }
  .bulk-panel { grid-template-columns: 1fr; }
  .cluster-command { position: static; }
  .bulk-panel__intro,
  .field-hint,
  .bulk-actions { grid-column: auto; }
  .table-tools { justify-content: flex-start; }
  .cluster-group__excluded-heading { grid-template-columns: minmax(0, 1fr); }
  .cluster-group__excluded-actions { justify-content: flex-end; flex-wrap: wrap; padding: 0 16px 12px; }
  .cluster-group__heading { flex-wrap: wrap; padding-inline: 16px; }
  .cluster-group__actions { max-width: 100%; }
  .manual-cluster-action { max-width: 100%; padding-inline: 8px; font-size: 12px; white-space: normal; }
  .cluster-group__disclosure { padding-inline: 16px; font-size: 13px; }
  .cluster-group__description { margin-inline: 16px; }
  .cluster-group__excluded-actions .manual-cluster-action { max-width: 100%; white-space: normal; }
  .campaign-table-module .cluster-select-column,
  .campaign-table-module .cluster-select-column + th,
  .campaign-table-module .cluster-select-column + td,
  .campaign-table-module .data-table td:first-child {
    position: static;
    left: auto;
    box-shadow: none;
  }
  .cluster-table .sticky-select,
  .cluster-table .sticky-query,
  .cluster-table .sticky-position,
  .cluster-table .sticky-current,
  .cluster-table .sticky-recommended,
  .cluster-table .sticky-max {
    position: static;
    left: auto;
    box-shadow: none;
  }
  .cluster-table tbody .sticky-select:first-child { position: static; left: auto; box-shadow: none; }
  .campaign-table-module .data-table thead th:first-child,
  .campaign-table-module .data-table tbody th[scope="row"]:first-child,
  .cluster-table thead th:first-child,
  .cluster-table tbody th[scope="row"]:first-child {
    position: static;
    left: auto;
    box-shadow: none;
  }
  .cluster-table .sticky-query {
    width: min(200px, 55vw);
    min-width: 0;
    max-width: min(200px, 55vw);
  }
  .table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
  .management-section,
  .management-form,
  .danger-zone,
  .shop-directory { padding: 15px; }
  .directory-row { grid-template-columns: minmax(0, 1fr) auto; }
  .directory-row form,
  .directory-row .button { grid-column: 1 / -1; width: 100%; }
  .role-badge { display: none; }
  .invitation-row { display: grid; }
  .row-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .row-actions .button { width: 100%; }
  .confirmation-dialog__body { padding: 20px; }
  .confirmation-dialog__actions { display: grid; grid-template-columns: 1fr; }
  .confirmation-dialog__actions .button { width: 100%; }
  .attention-group .section-title { display: flex; }
  .attention-heading { flex-direction: column; gap: 8px; }
  .attention-total { justify-items: start; grid-auto-flow: column; align-items: baseline; gap: 8px; }
  .attention-total strong { font-size: 32px; }
  .attention-item { grid-template-columns: auto minmax(0, 1fr); padding: 12px; }
  .attention-item > .button,
  .attention-item > .attention-item__actions,
  .attention-item__note { grid-column: 2; justify-self: start; text-align: left; }
  .attention-item > .attention-item__actions { justify-content: flex-start; }
  /* Дашборд: точка доступа */
  .app-nav a > .app-nav__alert { top: 2px; right: auto; left: calc(50% + 7px); }
}

@media (max-width: 430px) {
  .utility-bar .icon-button:first-child { display: none; }
  .campaign-utility__identity .sync-state__icon { display: none; }
}

@media (max-width: 360px) {
  .catalog-utility-bar { min-height: 154px; }
  .catalog-utility__actions { grid-template-columns: minmax(0, 1fr); }
  .catalog-history-bar { top: 172px; }
  .catalog-command.catalog-command--sticky { top: 172px; grid-template-columns: minmax(0, 1fr); }
  .app-workspace:has(.catalog-history-bar:not([hidden])) .catalog-command--sticky {
    top: 276px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; transition-delay: 0ms !important; }
  [data-reveal] { opacity: 1 !important; filter: none !important; transform: none !important; }
  [data-position-chart] polyline { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; }
  [data-position-chart] circle { opacity: 1 !important; }
  .sync-state__icon .sync-state__glyph { transition: none; transform: none; filter: none; }
  .period-tabs a[data-campaign-period-link]:active { transform: none; }
  .app-workspace:has([data-campaign-page][data-period-loading="true"]) .campaign-period-progress::after {
    width: 100%;
    animation: none;
    transform: none;
  }
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .glass--clear { background: var(--lg-glass-clear-opaque); }
  .glass--regular { background: var(--lg-glass-regular-opaque); }
  .glass--dense { background: var(--lg-glass-dense-opaque); }
  .glass.glass--clear { background: var(--lg-glass-clear-opaque); }
  .glass.glass--regular { background: var(--lg-glass-regular-opaque); }
  .glass.glass--dense { background: var(--lg-glass-dense-opaque); }
}

@media (forced-colors: active) {
  .shop-directory { border: 1px solid CanvasText; box-shadow: none; }
  .app-backdrop { display: none; }
  .glass { border: 1px solid CanvasText; background: Canvas; color: CanvasText; box-shadow: none; }
  .glass.glass--clear,
  .glass.glass--regular,
  .glass.glass--dense { background: Canvas; }
  .app-nav a[aria-current="page"] { outline: 2px solid Highlight; background: Canvas; color: CanvasText; }
  :focus-visible { outline: 2px solid Highlight; }
  .catalog-campaign-toggle input { border-color: ButtonText; background: Canvas; forced-color-adjust: none; }
  .catalog-campaign-toggle input::before { background: ButtonText; }
  .catalog-campaign-toggle input:checked { border-color: Highlight; background: Highlight; }
  .catalog-campaign-toggle input:checked::before { background: HighlightText; }
  .catalog-campaign-toggle input:focus-visible { outline-color: Highlight; }
  .button,
  button { border-color: ButtonText; background: ButtonFace; color: ButtonText; }
  .confirmation-dialog { border-color: CanvasText; background: Canvas; color: CanvasText; }
  .confirmation-dialog::backdrop,
  .table-view-dialog::backdrop { background: Canvas; opacity: .75; }
  .manual-cluster-action[data-apply-bids].is-applying::before { background: Highlight; }
  .period-tabs a[aria-current="page"] { text-decoration: underline; text-underline-offset: 4px; }
  .period-tabs a[data-campaign-period-link]:focus-visible,
  .period-tabs a[data-period-pending]:not(:focus-visible) { outline-color: Highlight; }
  .campaign-period-progress::after { border-top: 2px solid Highlight; }
  .campaign-period-overlay { border-color: CanvasText; background: Canvas; color: CanvasText; }
  .app-workspace:has([data-campaign-page][data-period-loading="true"]) :is(
    .position-module > :not(.campaign-period-overlay),
    .kpi-module > .kpi-strip,
    .kpi-module > .empty-inline,
    .kpi-module > .campaign-daily-stats,
    .kpi-module > .cabinet-zones,
    [data-cluster-main-row] > td:not(.cluster-select-column):not(.cluster-bid-cell),
    [data-cluster-detail] .data-table,
    .cluster-group__empty
  ) { opacity: 1; }
  .icon { forced-color-adjust: auto; }
  /* Дашборд: точка доступа */
  .app-nav a > .app-nav__alert { forced-color-adjust: none; background: CanvasText; box-shadow: none; }
}

/* Personal table views and independent controls for cluster rows. */
.cluster-table-tools { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding: 0 12px 8px; }
.cluster-table-tools .icon,
.cluster-detail__toolbar .icon { width: 16px; height: 16px; }
:is(.cluster-group__actions, .cluster-group__excluded-actions) .cluster-table-tools { flex-wrap: nowrap; gap: 6px; padding: 0; }
.cluster-group--excluded:has([data-excluded-clusters-disclosure][aria-expanded="false"]) .cluster-table-tools { display: none; }
.cluster-tool { position: relative; width: var(--button-height); min-width: var(--button-height); padding: 0; }
.cluster-tool__badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--bg);
  font-size: 11px;
  font-weight: 800;
  line-height: 17px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.result-count--row { display: inline-flex; height: var(--button-height); align-items: center; gap: 5px; padding: 0 12px; }
.result-count--row strong { font-size: 15px; }
.result-count--row span { margin-top: 0; }
.cluster-disclosure__label { display: inline-flex; min-width: 0; align-items: center; gap: 6px; }
.cluster-autostrategy-mark { display: inline-flex; flex: 0 0 auto; color: var(--muted); }
.cluster-autostrategy-mark .icon { width: 16px; height: 16px; }
.campaign-table-module td.cluster-select-column { border-right: 1px solid var(--border); }
.campaign-table-module td.cluster-select-column > .check-label { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 44px; min-height: 44px; }
.campaign-table-module td.cluster-select-column > .check-label:hover { background: var(--accent-soft); }
.campaign-table-module td.cluster-select-column:focus-within { outline: 2px solid var(--accent); outline-offset: -2px; }
.campaign-table-module .data-table [data-cluster-detail] > td { position: static; padding: 0; }
.campaign-table-module .cluster-detail--table { position: sticky; left: 0; width: var(--cluster-viewport-width, 100%); max-width: 100%; padding: 12px; }
.cluster-detail__toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; white-space: normal; }
.cluster-detail__toolbar > span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.cluster-detail__scroll { width: 100%; border: 1px solid var(--border); border-radius: 12px; overscroll-behavior-inline: contain; }
.cluster-detail__scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.campaign-table-module .cluster-detail__scroll table.data-table th[data-column-key="stats_date"] { position: sticky; left: 0; z-index: 3; min-width: 116px; background: var(--lg-table-frozen-detail); text-align: left; box-shadow: 1px 0 var(--lg-line); }
.campaign-table-module .cluster-detail__scroll .data-table thead th[data-column-key="stats_date"] { z-index: 4; background: var(--lg-table-head); }
.table-view-status,
.table-view-chips,
.table-view-selection-note { margin: 0; padding: 0 12px 8px; color: var(--muted); font-size: 12px; white-space: normal; }
.table-view-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.table-view-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding-left: 10px; border: 1px solid var(--border); border-radius: var(--lg-radius-data); background: var(--accent-soft); overflow-wrap: anywhere; }
.table-view-chip > span { min-width: 0; }
.table-view-chips:empty,
.table-view-selection-note:empty { display: none; }
.table-view-chips button { max-width: 100%; padding-inline: 10px; font-size: 12px; line-height: 1.2; }
.table-view-selection-note { color: var(--warning); }
.table-view-dialog { width: min(600px, calc(100vw - 24px)); max-height: min(86dvh, 760px); padding: 18px; border: 1px solid var(--lg-line); font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; overflow: hidden; }
.table-view-dialog[open] { display: flex; flex-direction: column; }
.table-view-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.table-view-header h2 { margin: 0; font-size: 18px; line-height: 1.2; }
.table-view-icon-button { flex: 0 0 var(--button-height); width: var(--button-height); padding: 0; font-size: 17px; }
.table-view-scope { margin: 8px 0 14px; color: var(--muted); font-size: 12px; }
.table-view-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.table-view-body > button { max-width: 100%; margin-top: 10px; padding-inline: 10px; font-size: 13px; }
.table-view-columns { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.table-view-column { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 2px 4px; border-radius: var(--lg-radius-data); }
.table-view-column:hover { background: var(--surface-muted); }
.table-view-column.is-pinned { color: var(--muted); }
.table-view-column.is-dragging { opacity: .5; }
.table-view-grip { flex: 0 0 16px; color: var(--muted); cursor: grab; }
.table-view-column-label { display: flex; flex: 1; min-width: 0; min-height: 44px; align-items: center; gap: 8px; font-size: 13px; line-height: 1.3; cursor: pointer; }
.table-view-column-label input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.table-view-column-moves { display: flex; flex: 0 0 auto; gap: 4px; }
.table-view-filter-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.1fr) 32px; align-items: end; gap: 8px; padding: 12px 0; border-top: 1px solid var(--border); }
.table-view-filter-row label { display: grid; min-width: 0; gap: 5px; font-size: 12px; color: var(--muted); }
.table-view-filter-row input,
.table-view-filter-row select { width: 100%; min-width: 0; padding-inline: 8px; font-size: 13px; }
.table-view-filter-inputs { display: flex; gap: 6px; min-width: 0; }
.table-view-join { color: var(--muted); font-size: 12px; }
.table-view-error { margin: 8px 0; color: var(--danger); font-size: 13px; }
.table-view-error:empty { display: none; }
.table-view-footer { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding-top: 14px; border-top: 1px solid var(--border); margin-top: 14px; }
.table-view-footer button { max-width: 100%; padding-inline: 12px; font-size: 13px; line-height: 1.15; }
@media (max-width: 767px) {
  .campaign-table-module .data-table td.cluster-select-column { position: relative; }
  .cluster-table-tools { justify-content: flex-start; }
  .table-view-dialog { padding: 14px; }
  .table-view-filter-row { grid-template-columns: minmax(0, 1fr) 32px; }
  .table-view-filter-row > label { grid-column: 1; }
  .table-view-filter-row > button { grid-column: 2; grid-row: 1; }
  .table-view-filter-row input,
  .table-view-filter-row select { font-size: 16px; }
}
@media (forced-colors: active) {
  .table-view-dialog { border-color: CanvasText; background: Canvas; color: CanvasText; }
  .campaign-table-module .cluster-detail__scroll .data-table th[data-column-key="stats_date"] { background: Canvas; color: CanvasText; border-right: 1px solid CanvasText; }
  .table-view-selection-note,
  .table-view-error { color: CanvasText; }
}

.sync-result-details { font-size: 12px; color: var(--muted); line-height: 1.5; }
.sync-result-details summary { cursor: pointer; }
.sync-result-details ul { margin: 6px 0 0; padding-left: 18px; max-height: 180px; overflow-y: auto; }
.sync-result-details li + li { margin-top: 4px; }

.campaign-utility-bar:has(.campaign-utility__error:not([hidden]), .sync-result-details:not([hidden])) {
  height: auto;
  position: relative;
  top: auto;
  border-radius: 24px;
}
.campaign-utility-bar:has(.sync-result-details[open]) { align-items: start; }
/* Статус и «Результаты по частям» стоят в средней колонке; отдельную строку получает только длинный текст ошибки. */
.campaign-utility-bar:has(.campaign-utility__error:not([hidden])) { grid-template-columns: minmax(170px, 1fr) auto; }
.campaign-utility-bar:has(.campaign-utility__error:not([hidden])) .campaign-utility__sync {
  grid-column: 1 / -1;
  grid-row: 2;
}
.campaign-utility-bar:has(.campaign-utility__error:not([hidden])) .campaign-utility__actions {
  grid-column: 2;
  grid-row: 1;
}
.campaign-utility__retry { font-size: 12px; line-height: 1.2; }
.catalog-utility-bar:has(.sync-result-details:not([hidden])) {
  grid-template-columns: minmax(0, 1fr) auto;
  height: auto;
  position: static;
  border-radius: 24px;
}
.catalog-utility-bar:has(.sync-result-details:not([hidden])) .catalog-utility__progress {
  grid-column: 1 / -1;
  grid-row: 2;
}
@media (max-width: 767px) {
  .campaign-utility-bar:has(.campaign-utility__error:not([hidden]), .sync-result-details:not([hidden])),
  .catalog-utility-bar:has(.sync-result-details:not([hidden])) { grid-template-columns: minmax(0, 1fr); }
  .campaign-utility-bar:has(.campaign-utility__error:not([hidden]), .sync-result-details:not([hidden])) .campaign-utility__actions {
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .campaign-utility__retry { grid-column: 1 / -1; }
}

/* Campaign autostrategy uses the existing glass, control and state tokens. */
/* Status panel reads top-down: state, controls, then timings, one gap apart. */
.autostrategy-panel { display: grid; gap: 14px; }
.autostrategy-panel > * { margin: 0; }
.autostrategy-panel > [data-strategy-feedback]:empty { display: none; }
.autostrategy-status { display: grid; gap: 8px; }
.autostrategy-status__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.autostrategy-status__head h2 { margin: 0; }
.autostrategy-status__version { color: var(--muted); font-variant-numeric: tabular-nums; }
.autostrategy-status__reasons { margin: 0; color: var(--muted); }
.autostrategy-status__reasons--danger { color: var(--danger); }
.autostrategy-confirm { display: grid; gap: 12px; padding: 13px 15px; border: 1px solid var(--danger-line); border-radius: var(--lg-radius-data); background: var(--danger-soft); }
.autostrategy-confirm p { max-width: 72ch; margin: 0; }
.autostrategy-confirm strong { color: var(--danger); }
.autostrategy-status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 128px), 1fr)); gap: 14px; }
.autostrategy-status-grid div { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; }
.autostrategy-status-grid dt { color: var(--muted); font-size: 12px; }
.autostrategy-status-grid dd { margin: 4px 0 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.autostrategy-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); align-items: end; gap: 16px; margin: 16px 0; }
.autostrategy-fields label { display: grid; gap: 8px; min-width: 0; }
.autostrategy-fields .check-label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.autostrategy-fields .check-label__control { display: flex; align-items: center; gap: 8px; min-width: 0; }
.autostrategy-fields .check-label__control input { flex: 0 0 auto; width: 18px; }
.autostrategy-fields .check-label__control > span { flex: 1; min-width: 0; }
.autostrategy-fields input, .autostrategy-fields select { width: 100%; min-width: 0; }
/* A setting that cannot apply stays readable and loses its active response. */
[data-autostrategy] :is(input, select):disabled { cursor: not-allowed; opacity: .48; }
.autostrategy-fields .check-label:has(input:disabled) { cursor: not-allowed; color: var(--muted); }

/* Every settings field owns the same three rows: name, control, hint. Subgrid
   keeps those rows level across a row band, so a two-line name no longer
   pushes its own input below its neighbours. */
.autostrategy-fields--levelled { align-items: start; }
.autostrategy-fields--levelled > label { grid-row: span 3; grid-template-rows: subgrid; row-gap: 8px; }
.autostrategy-fields--levelled > .check-label { display: grid; justify-items: stretch; }
.autostrategy-fields--levelled > .check-label > .check-label__control { grid-row: 2; }
.autostrategy-fields--levelled > .check-label > small { grid-row: 3; }
.autostrategy-fields small, [data-autostrategy] .muted { color: var(--muted); }
.autostrategy-adjustment { display: grid; grid-template-columns: minmax(0, 1fr) 70px; gap: 8px; }
.autostrategy-actions { display: flex; flex-wrap: wrap; gap: 8px; }
[data-autostrategy] fieldset { min-width: 0; border: 1px solid var(--border); border-radius: 18px; padding: 16px; margin: 0 0 18px; }
[data-autostrategy] legend { padding: 0 8px; font-weight: 700; }
.autostrategy-cpc-limit { display: grid; gap: 8px; max-width: 280px; }
.autostrategy-cpc-limit .autostrategy-adjustment { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.autostrategy-pairs { min-width: 700px; }
.autostrategy-pairs input[type=number] { width: 110px; }
/* The frozen first column holds the checkbox with the pair it switches. */
.autostrategy-pairs thead th:first-child { white-space: normal; }
.autostrategy-pairs tbody th[scope="row"] { min-width: 240px; max-width: 360px; white-space: normal; }
.autostrategy-pairs tbody th[scope="row"]:first-child { background: var(--lg-table-frozen); }
.autostrategy-pair { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
.autostrategy-pair input { flex: 0 0 auto; width: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.autostrategy-pair__text { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.autostrategy-pair__text small { color: var(--muted); font-size: 12px; }
.autostrategy-pair:has(input:disabled) { cursor: not-allowed; color: var(--muted); }
[data-strategy-journal] pre { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 65ch; font-family: inherit; font-size: 13px; }
.autostrategy-error { color: var(--danger); }
.autostrategy-help { display: grid; gap: 24px; max-width: 1000px; }
.autostrategy-help__section { padding: 18px; border-radius: 18px; min-width: 0; }
.autostrategy-help__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.autostrategy-help__cards section { padding: 18px; border-radius: 18px; }
.autostrategy-help__examples { overflow-x: auto; }
.autostrategy-help__examples:focus-visible { border-radius: var(--lg-radius-data); outline: 2px solid var(--accent); outline-offset: 3px; }
.autostrategy-help table { width: 100%; min-width: 560px; border-collapse: collapse; }
.autostrategy-help th, .autostrategy-help td { padding: 10px; text-align: left; border-bottom: 1px solid var(--border); }
.autostrategy-help li { margin: 12px 0; }
.autostrategy-help h3 { margin-top: 0; }
@media (max-width: 700px) {
  [data-autostrategy] fieldset, .autostrategy-help__section { padding: 14px; }
  /* A phone shows the pair and one value column; the rest scrolls beside it. */
  .autostrategy-pairs { min-width: 0; }
  .autostrategy-pairs thead th:first-child,
  .autostrategy-pairs tbody th[scope="row"] { min-width: 168px; max-width: 176px; }
  .autostrategy-pairs input[type=number] { width: 88px; }
}
