/* Lukas CRM (PHP UI) — stylesheet.
   Фирменная монохромная система Lukas.market (см. 01.Architecture/TZ_v05/DESIGN.md).
   Light-first + dark через data-theme / prefers-color-scheme.
   Акцент = Ink (синий убран), serif-заголовки сохранены. Спека 25 / план 48. */

:root {
  /* Lukas.market mono palette — light (см. DESIGN.md / React light :root) */
  --bg: #ffffff;          /* White */
  --panel: #ffffff;       /* White — карточка = White + бордюр + тень */
  --panel-2: #f3f4f6;     /* Ash — подложки / нажатое */
  --line: #e4e7ec;        /* Stone — бордеры/дивайдеры */
  --line-strong: #d3d8df; /* Slate — бордеры инпутов/кнопок */
  --text: #1c1d1f;        /* Ink */
  --muted: #6f7988;       /* Metal */
  --accent: #1c1d1f;      /* Ink — синий убран */
  --accent-fg: #ffffff;   /* текст на accent-кнопке */
  --danger: #772322;      /* Danger Red */
  --ok: #075a39;          /* Success Green */
  --warn: #705500;        /* Warning Yellow */
  --focus: #94b9ff;       /* Focus Blue — единственное «свечение» */
  --button-radius: 8px;   /* дивергенция от DESIGN.md (10px) — зафиксирована в спеке 25 */
  --radius-card: 8px;
  --radius-input: 7px;
  --shadow-ui-frame: rgba(28, 40, 64, 0.1) 0 2px 3px -2px, rgba(28, 40, 64, 0.04) 0 4px 6px -2px;
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--focus) 40%, transparent);
  --font-inter: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-serif: "Tiempos Text", Newsreader, Lora, Georgia, serif;
}

/* Dark palette — driven by data-theme="dark" on <html> (set by crm.js prefs layer).
   Fallback @media block below handles theme=system before JS applies an explicit
   attribute (and when localStorage is unavailable). */
[data-theme="dark"] {
  /* токены из React [data-theme="dark"] */
  --bg: #16181d;
  --panel: #1c1f26;
  --panel-2: #232732;
  --line: #2a2e37;
  --line-strong: #353a45;
  --text: #eef1f5;
  --muted: #a4adba;
  --accent: #eef1f5;      /* инверсия Ink */
  --accent-fg: #16181d;   /* тёмный текст на светлой кнопке */
  --danger: #f87171;
  --ok: #4ade80;
  --warn: #fbbf24;
  --focus: #94b9ff;
  --shadow-ui-frame: rgba(0, 0, 0, 0.5) 0 2px 3px -2px, rgba(0, 0, 0, 0.35) 0 4px 6px -2px;
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --bg: #16181d;
    --panel: #1c1f26;
    --panel-2: #232732;
    --line: #2a2e37;
    --line-strong: #353a45;
    --text: #eef1f5;
    --muted: #a4adba;
    --accent: #eef1f5;
    --accent-fg: #16181d;
    --danger: #f87171;
    --ok: #4ade80;
    --warn: #fbbf24;
    --focus: #94b9ff;
    --shadow-ui-frame: rgba(0, 0, 0, 0.5) 0 2px 3px -2px, rgba(0, 0, 0, 0.35) 0 4px 6px -2px;
    color-scheme: dark;
  }
}

/* Акцент — переопределяет монохромный Ink на цветной (parity с React swatches).
   "mono" (дефолт) правила не имеет — остаётся фирменный Ink из :root /
   его dark-инверсия; цветные значения — осознанный opt-in оператора. */
[data-accent="blue"] { --accent: #407ff2; --accent-fg: #ffffff; --focus: #94b9ff; }
[data-accent="green"] { --accent: #2f9e62; --accent-fg: #ffffff; --focus: #7fd1a3; }
[data-accent="violet"] { --accent: #7c5cff; --accent-fg: #ffffff; --focus: #b9a8ff; }
[data-accent="orange"] { --accent: #e07b1a; --accent-fg: #ffffff; --focus: #ffc285; }

/* Плотность — компактный режим поджимает основные отступы. */
[data-density="compact"] {
  --radius-card: 6px;
}
[data-density="compact"] .crm-content { padding: 12px; }
[data-density="compact"] .crm-table th,
[data-density="compact"] .crm-table td { padding: 6px 8px; }
[data-density="compact"] .crm-header { padding: 8px 14px; }

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font-family: var(--font-inter);
  font-size: 14px;
  line-height: 1.45;
  font-feature-settings: "ss03";
  background: var(--bg);
  color: var(--text);
}
a { color: var(--text); text-decoration: none; }
a:hover { text-decoration: underline; }
button, select, input, textarea { font: inherit; }
button {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 34px; padding: 7px 12px;
  background: var(--accent); color: var(--accent-fg);
  border: 1px solid var(--accent); border-radius: var(--button-radius);
  cursor: pointer; line-height: 1.2; text-align: center;
}
button:hover { filter: brightness(1.08); }
button:disabled { opacity: .5; cursor: not-allowed; filter: none; }
button:focus-visible,
.crm-btn:focus-visible,
.crm-tab:focus-visible,
.crm-user-chip:focus-visible {
  outline: none; border-color: var(--focus); box-shadow: var(--focus-ring);
}
select, input[type="text"], input[type="search"], input[type="number"], input[type="date"], textarea {
  background: var(--bg); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--radius-input); padding: 7px 9px;
}
input[type="file"] {
  color: var(--muted);
}
input[type="file"]::file-selector-button {
  min-height: 32px; margin-right: 8px; padding: 6px 10px;
  background: var(--panel); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--button-radius);
  cursor: pointer;
}
input[type="file"]::file-selector-button:hover {
  background: var(--panel-2);
}
select:focus, input[type="text"]:focus, input[type="search"]:focus,
input[type="number"]:focus, input[type="date"]:focus, textarea:focus {
  outline: none; border-color: var(--focus); box-shadow: var(--focus-ring);
}
textarea { width: 100%; min-height: 64px; resize: vertical; }

/* Shell */
.crm-shell { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; transition: grid-template-columns .18s ease; }
.crm-sidebar {
  display: flex; flex-direction: column;
  background: var(--panel); border-right: 1px solid var(--line); padding: 16px 12px;
  min-width: 0;
}
.crm-brand { font-weight: 700; font-size: 16px; padding: 6px 8px 14px; }
.crm-nav { display: flex; flex-direction: column; gap: 2px; }
.crm-nav--grouped { gap: 0; }
.crm-nav__group { margin: 0; padding: 0; }
.crm-nav__group + .crm-nav__group { margin-top: 15px; }
.crm-nav__group-title {
  margin: 0 0 5px; padding: 0 10px;
  color: var(--muted); font-family: var(--font-inter); font-size: 10px;
  font-weight: 650; line-height: 1.4; letter-spacing: .075em; text-transform: uppercase;
}
.crm-nav__item {
  position: relative; display: flex; align-items: center; gap: 10px;
  min-height: 34px; padding: 8px 10px; border-radius: 8px; color: var(--muted);
}
.crm-nav__item:hover { background: var(--panel-2); text-decoration: none; }
.crm-nav__item.is-active { background: var(--panel-2); color: var(--text); font-weight: 600; }
.crm-nav--grouped .crm-nav__item.is-active::before {
  content: ""; position: absolute; top: 7px; bottom: 7px; left: 0;
  width: 2px; border-radius: 2px; background: var(--accent);
}
.crm-nav__icon {
  display: inline-block; width: 16px; height: 16px; flex: 0 0 16px;
  background: currentColor; mask-position: center; mask-repeat: no-repeat; mask-size: contain;
}
.crm-nav__icon[data-nav-icon="speedometer2"] { mask-image: url("/assets/icons/speedometer2.svg"); }
.crm-nav__icon[data-nav-icon="inboxes"] { mask-image: url("/assets/icons/inboxes.svg"); }
.crm-nav__icon[data-nav-icon="people"] { mask-image: url("/assets/icons/people.svg"); }
.crm-nav__icon[data-nav-icon="bag-check"] { mask-image: url("/assets/icons/bag-check.svg"); }
.crm-nav__icon[data-nav-icon="arrow-counterclockwise"] { mask-image: url("/assets/icons/arrow-counterclockwise.svg"); }
.crm-nav__icon[data-nav-icon="boxes"] { mask-image: url("/assets/icons/boxes.svg"); }
.crm-nav__icon[data-nav-icon="diagram-3"] { mask-image: url("/assets/icons/diagram-3.svg"); }
.crm-nav__icon[data-nav-icon="phone"] { mask-image: url("/assets/icons/phone.svg"); }
.crm-nav__icon[data-nav-icon="cart3"] { mask-image: url("/assets/icons/cart3.svg"); }
.crm-nav__icon[data-nav-icon="truck"] { mask-image: url("/assets/icons/truck.svg"); }
.crm-nav__icon[data-nav-icon="chat-left-text"] { mask-image: url("/assets/icons/chat-left-text.svg"); }
.crm-nav__icon[data-nav-icon="megaphone"] { mask-image: url("/assets/icons/megaphone.svg"); }
.crm-nav__icon[data-nav-icon="bar-chart-line"] { mask-image: url("/assets/icons/bar-chart-line.svg"); }
.crm-nav__icon[data-nav-icon="gear"] { mask-image: url("/assets/icons/gear.svg"); }
.crm-nav__icon[data-nav-icon="chevron-double-left"] { mask-image: url("/assets/icons/chevron-double-left.svg"); }
.crm-nav__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-nav-collapse {
  justify-content: flex-start; width: 100%; margin-top: auto; padding: 8px 10px;
  background: transparent; color: var(--muted); border-color: transparent;
}
.crm-nav-collapse:hover { color: var(--text); background: var(--panel-2); filter: none; }
.crm-shell.nav-collapsed { grid-template-columns: 64px 1fr; }
.crm-shell.nav-collapsed .crm-sidebar { padding-inline: 10px; }
.crm-shell.nav-collapsed .crm-brand {
  width: 34px; overflow: hidden; padding-inline: 6px; white-space: nowrap;
}
.crm-shell.nav-collapsed .crm-brand::first-letter { letter-spacing: 20px; }
.crm-shell.nav-collapsed .crm-nav__group-title,
.crm-shell.nav-collapsed .crm-nav__label { display: none; }
.crm-shell.nav-collapsed .crm-nav__group + .crm-nav__group { margin-top: 8px; }
.crm-shell.nav-collapsed .crm-nav__item,
.crm-shell.nav-collapsed .crm-nav-collapse { justify-content: center; padding-inline: 8px; }
.crm-shell.nav-collapsed .crm-nav-collapse .crm-nav__icon { transform: rotate(180deg); }
.crm-main { display: flex; flex-direction: column; min-width: 0; }
.crm-header {
  display: flex; justify-content: flex-end; align-items: center; gap: 14px;
  padding: 12px 20px; border-bottom: 1px solid var(--line);
}
/* Часы Дохи в шапке (бизнес-таймзона отчётов) */
.crm-header-clock {
  color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; font-size: 13px;
}
.crm-global-search {
  position: relative; width: min(480px, 46vw); margin-right: auto;
}
.crm-search {
  width: 100%;
  background: var(--bg); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--radius-input); padding: 7px 9px;
}
.crm-search:focus { outline: none; border-color: var(--focus); box-shadow: var(--focus-ring); }
.crm-global-search__panel {
  position: absolute; z-index: 70; top: calc(100% + 8px); left: 0;
  width: min(640px, calc(100vw - 40px)); max-height: min(680px, 72vh); overflow-y: auto;
  background: var(--panel); border: 1px solid var(--line-strong);
  border-radius: var(--radius-card); box-shadow: var(--shadow-ui-frame);
}
.crm-global-search__panel[hidden] { display: none; }
.crm-global-search__group { padding: 10px; border-bottom: 1px solid var(--line); }
.crm-global-search__group h2 {
  margin: 0 8px 6px; color: var(--muted); font-size: 10px;
  font-weight: 700; letter-spacing: .075em; text-transform: uppercase;
}
.crm-global-search__item {
  display: grid; gap: 2px; padding: 8px; border-radius: var(--radius-input); color: var(--text);
}
.crm-global-search__item:hover,
.crm-global-search__item.is-active { background: var(--panel-2); text-decoration: none; }
.crm-global-search__item strong { font-size: 13px; font-weight: 650; }
.crm-global-search__item span { color: var(--muted); font-size: 12px; }
.crm-global-search__status { margin: 0; padding: 18px; color: var(--muted); text-align: center; }
.crm-global-search__status.is-error { color: var(--danger); }
.crm-global-search__more {
  width: 100%; padding: 10px; color: var(--muted); background: transparent;
  border: 0; border-radius: 0 0 var(--radius-card) var(--radius-card);
}
.crm-global-search__more:hover { color: var(--text); background: var(--panel-2); filter: none; }
.crm-local-search { margin-bottom: 12px; }
.crm-local-search input { min-width: min(320px, 100%); }
/* User chip + personal settings popover */
.crm-user-wrap { position: relative; }
.crm-user-chip {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; color: var(--text); padding: 4px 8px 4px 4px;
  border: 1px solid var(--line); border-radius: var(--button-radius);
}
.crm-user-chip:hover { background: var(--panel-2); filter: none; }
.crm-user-chip__text { color: var(--muted); font-size: 13px; }
.crm-user-avatar {
  display: inline-grid; place-items: center;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--panel-2); color: var(--text);
  font-size: 12px; font-weight: 700; flex: 0 0 auto;
}
.crm-user-avatar--lg { width: 38px; height: 38px; font-size: 15px; }

.crm-user-menu {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 40;
  width: 280px; padding: 14px;
  display: flex; flex-direction: column; gap: 12px;
  background: var(--panel); border: 1px solid var(--line-strong);
  border-radius: var(--radius-card); box-shadow: var(--shadow-ui-frame);
}
.crm-user-menu[hidden] { display: none; }
.crm-user-menu__profile { display: flex; align-items: center; gap: 10px; }
.crm-user-menu__name { font-weight: 600; }
.crm-user-menu__role { color: var(--muted); font-size: 12px; }
.crm-user-menu__field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.crm-user-menu__field select {
  background: var(--bg); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--radius-input); padding: 6px 8px;
}
.crm-user-menu__field select:focus { outline: none; border-color: var(--focus); box-shadow: var(--focus-ring); }
.crm-user-menu__toggle { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text); cursor: pointer; }
.crm-shift {
  display: flex; flex-direction: column; gap: 8px; margin: 0;
  padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-card);
  background: var(--panel-2);
}
.crm-shift__status { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--muted); }
.crm-shift__badge {
  display: inline-flex; align-items: center; min-height: 22px;
  padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600;
  background: var(--panel); color: var(--muted); border: 1px solid var(--line);
}
.crm-shift__badge--on {
  background: color-mix(in srgb, var(--ok) 12%, var(--panel));
  color: var(--ok); border-color: color-mix(in srgb, var(--ok) 36%, var(--line));
}
.crm-shift button { width: 100%; }
.crm-user-menu .crm-logout { margin-top: 2px; }
.crm-user-menu .crm-logout button { width: 100%; }
.crm-setting-key { margin-top: 4px; color: var(--muted); font-size: 11px; }
.crm-setting-key summary { cursor: pointer; }
.crm-setting-key code { display: inline-block; margin-top: 4px; overflow-wrap: anywhere; }
.crm-client-tabs {
  position: sticky;
  top: 0;
  z-index: 8;
  background: var(--bg);
}
.crm-client-section { scroll-margin-top: 64px; }
.crm-client-section[hidden] { display: none; }
.crm-overview-attention { margin-bottom: 16px; }
.crm-overview-attention__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.crm-overview-attention__item {
  display: grid;
  gap: 4px;
  min-height: 112px;
  padding: 14px;
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--panel-2);
  text-decoration: none;
}
.crm-overview-attention__item:hover { border-color: var(--line-strong); filter: none; }
.crm-overview-attention__item strong { font-size: 28px; line-height: 1; }
.crm-overview-attention__item small { color: var(--muted); }
.crm-confirm-dialog__details {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 6px 12px;
  margin: 12px 0;
}
.crm-confirm-dialog [hidden] { display: none; }
.crm-confirm-dialog__details[hidden] { display: none; }
.crm-confirm-dialog__details dt { color: var(--muted); }
.crm-confirm-dialog__details dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .crm-overview-attention__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .crm-overview-attention__grid { grid-template-columns: 1fr; }
}
.crm-timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 18px;
  border-left: 1px solid var(--line-strong);
}
.crm-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(130px, 180px) minmax(0, 1fr);
  gap: 16px;
  padding: 0 0 18px 16px;
}
.crm-timeline__item::before {
  content: "";
  position: absolute;
  left: -5px;
  top: 6px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--bg);
}
.crm-timeline__item time { color: var(--muted); font-size: 12px; }

.crm-logout { margin: 0; }
.crm-logout button { background: transparent; color: var(--muted); padding: 4px 8px; border: 1px solid var(--line); border-radius: var(--button-radius); }
.crm-logout button:hover { color: var(--text); filter: none; background: var(--panel-2); }
.crm-content { padding: 20px; min-width: 0; }

.crm-flash {
  background: color-mix(in srgb, var(--warn) 12%, transparent); border: 1px solid var(--warn);
  color: var(--warn); padding: 10px 12px; border-radius: var(--radius-card); margin-bottom: 16px;
}
.crm-flash--ok {
  background: color-mix(in srgb, var(--ok, #16a34a) 12%, transparent);
  border-color: var(--ok, #16a34a); color: var(--ok, #16a34a);
}
.crm-error { color: var(--danger); }
.crm-empty, .crm-placeholder { color: var(--muted); }

.crm-notification-stack {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: min(360px, calc(100vw - 32px));
  pointer-events: none;
}
.crm-notification-card {
  pointer-events: auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 12px;
  padding: 12px;
  background: var(--panel);
  color: var(--text);
  border: 1px solid var(--line-strong);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
}
.crm-notification-card__title {
  font-weight: 700;
  font-size: 13px;
}
.crm-notification-card__meta {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
  white-space: nowrap;
}
.crm-notification-card__body {
  grid-column: 1 / -1;
  color: var(--text);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.crm-notification-card__link {
  grid-column: 1 / -1;
  justify-self: start;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
}

.crm-page-head { display: flex; align-items: center; justify-content: space-between; }
/* heading-sm из DESIGN.md type scale (28px — минимальный размер для serif) */
.crm-page-title { font-size: 28px; line-height: 1.23; letter-spacing: -0.42px; font-weight: 500; margin: 0 0 14px; }
.crm-page-title--compact { font-size: 24px; line-height: 1.15; margin-bottom: 6px; }
.crm-count {
  display: inline-block; background: var(--panel-2); color: var(--muted);
  border-radius: 999px; padding: 1px 9px; font-size: 12px; margin-left: 6px;
}

/* Filter bar (orders list client-side filter) */
.crm-filterbar {
  display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin: 0 0 12px;
}
.crm-filterbar select, .crm-filterbar input {
  background: var(--bg); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--radius-input);
  padding: 7px 9px;
}
.crm-filterbar select:focus, .crm-filterbar input:focus {
  outline: none; border-color: var(--focus); box-shadow: var(--focus-ring);
}
.crm-overview-filters {
  display: grid;
  grid-template-columns:
    minmax(180px, 1.25fr)
    repeat(2, minmax(145px, 1fr))
    minmax(180px, 1.2fr)
    max-content;
  align-items: end;
  width: 100%;
  margin-bottom: 6px;
}
.crm-overview-filters > .crm-field {
  min-width: 0;
}
.crm-overview-filters select,
.crm-overview-filters input {
  width: 100%;
  min-width: 0;
}
.crm-overview-filters [hidden] {
  display: none;
}
.crm-overview-filters > button {
  min-height: 36px;
}
.crm-overview-scope {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 12px;
}
.crm-orders-filterbar {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: center;
  width: 100%;
}
.crm-orders-filterbar > input,
.crm-orders-filterbar > select {
  min-width: 0;
  width: 100%;
}
.crm-orders-filterbar > .crm-table-export {
  white-space: nowrap;
}
.crm-suppliers-head,
.crm-suppliers-toolbar,
.crm-suppliers-query {
  display: flex;
  align-items: center;
}
.crm-suppliers-head {
  gap: 12px;
  margin: 0 0 8px;
}
.crm-suppliers-head .crm-page-title {
  flex: 0 0 auto;
  margin: 0;
}
.crm-suppliers-toolbar {
  flex: 1 1 auto;
  gap: 8px;
  min-width: 0;
}
.crm-suppliers-query {
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 0;
}
.crm-suppliers-toolbar > #crm-local-search,
.crm-suppliers-query > input[type="search"] {
  flex: 1 1 150px;
  min-width: 120px;
  width: auto;
}
.crm-suppliers-query > label,
.crm-suppliers-toolbar > .crm-table-export {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Table */
.crm-table { width: 100%; border-collapse: collapse; }
.crm-table th, .crm-table td {
  text-align: left; padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid color-mix(in srgb, var(--line) 68%, transparent);
}
.crm-table th:last-child,
.crm-table td:last-child {
  border-right: 0;
}
.crm-table--resizing {
  table-layout: fixed;
}
.crm-table th { color: var(--muted); font-weight: 600; font-size: 12px; text-transform: uppercase; }
.crm-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--panel);
  box-shadow: 0 1px 0 var(--line);
}
.crm-table .crm-table-code-col {
  width: 76px; max-width: 90px;
  white-space: nowrap;
}
.crm-table .crm-table-name-col {
  width: 22%; min-width: 180px; max-width: 320px;
  white-space: normal; overflow-wrap: anywhere; word-break: normal;
}
.crm-orders-table {
  min-width: 1320px;
}
.crm-orders-table .crm-table-code-col {
  width: 176px;
  min-width: 176px;
  max-width: 220px;
  white-space: normal;
  overflow-wrap: anywhere;
}
.crm-orders-table .crm-table-name-col {
  width: 220px;
  min-width: 220px;
}
.crm-table[data-table-tools] th {
  position: relative;
  padding-right: 40px;
  white-space: nowrap;
}
.crm-table[data-table-tools] th.crm-table-code-col,
.crm-table[data-table-tools] th.crm-table-name-col {
  white-space: normal;
}
.crm-th-label {
  display: block;
}
.crm-th-menu-button {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  display: inline-grid; place-items: center;
  width: 22px; height: 22px; margin: 0; padding: 0;
  background: transparent; color: var(--muted);
  border: 1px solid transparent; border-radius: var(--button-radius);
  font-size: 12px; line-height: 1;
}
.crm-th-menu-button:hover,
.crm-table th.is-sorted .crm-th-menu-button,
.crm-table th.is-filtered .crm-th-menu-button {
  background: var(--panel-2); color: var(--text); border-color: var(--line);
  filter: none;
}
.crm-th-resize {
  position: absolute; top: 0; right: -4px; bottom: 0; z-index: 2;
  width: 9px; cursor: col-resize; touch-action: none;
}
.crm-th-resize::after {
  content: ""; position: absolute; top: 8px; bottom: 8px; left: 4px;
  width: 1px; background: transparent;
}
.crm-th-resize:hover::after,
.crm-th-resize.is-dragging::after {
  background: var(--focus);
}
body.crm-table-col-resizing {
  cursor: col-resize; user-select: none;
}
.crm-table tbody tr:hover { background: var(--panel); }
.crm-row--clickable { cursor: pointer; }
.crm-row--clickable:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.crm-table tr.crm-row--warning > * { background: color-mix(in srgb, var(--warn) 8%, var(--panel)); }

.crm-table-toolbar {
  display: flex; justify-content: flex-end; align-items: center;
  margin: 4px 0 2px;
}
.crm-table-export {
  background: transparent; color: var(--muted);
  border: 1px solid var(--line); border-radius: var(--button-radius);
  padding: 3px 7px; font-size: 11px; line-height: 1.2;
}
.crm-table-export:hover {
  background: var(--panel-2); color: var(--text); filter: none;
}
.crm-table-pagination {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  margin: 8px 0 22px; color: var(--muted); font-size: 12px;
}
.crm-table-pagination__size,
.crm-table-pagination__controls {
  display: inline-flex; align-items: center; gap: 8px;
}
.crm-table-pagination__size select {
  min-width: 68px; padding: 4px 24px 4px 7px; font-size: 12px;
}
.crm-table-pagination__button {
  display: inline-grid; place-items: center;
  width: 26px; height: 26px; padding: 0;
  background: transparent; color: var(--muted);
  border: 1px solid var(--line); border-radius: var(--button-radius);
  font-size: 17px; line-height: 1;
}
.crm-table-pagination__button:hover {
  background: var(--panel-2); color: var(--text); filter: none;
}
.crm-table-pagination__button:disabled {
  opacity: .4; cursor: default; background: transparent; color: var(--muted);
}
.crm-table-pagination__info {
  min-width: 82px; text-align: center;
}

.crm-table-menu {
  position: fixed; z-index: 80;
  width: 272px; max-height: min(420px, calc(100vh - 24px)); overflow: auto;
  padding: 10px;
  background: var(--panel); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
  text-transform: none;
}
.crm-table-menu__title {
  margin: 0 0 8px; color: var(--muted); font-size: 12px; font-weight: 600;
  text-transform: uppercase;
}
.crm-table-menu__action {
  width: 100%; margin: 0 0 4px; padding: 6px 8px;
  background: transparent; color: var(--text);
  border: 1px solid transparent; border-radius: var(--button-radius);
  text-align: left; font-size: 13px;
}
.crm-table-menu__action:hover {
  background: var(--panel-2); border-color: var(--line); filter: none;
}
.crm-table-menu__search {
  width: 100%; margin: 6px 0 8px; padding: 6px 8px; font-size: 13px;
}
.crm-table-menu__toggles {
  display: grid; gap: 2px; max-height: 180px; overflow: auto;
  padding-top: 6px; border-top: 1px solid var(--line);
}
.crm-table-menu__option {
  display: flex; align-items: center; gap: 7px;
  min-width: 0; padding: 5px 4px; border-radius: 6px;
  color: var(--text); font-size: 13px; cursor: pointer;
}
.crm-table-menu__option:hover { background: var(--panel-2); }
.crm-table-menu__option input { flex: 0 0 auto; accent-color: var(--ok); }
.crm-table-menu__option--all {
  font-weight: 600; border-bottom: 1px solid var(--line); border-radius: 6px 6px 0 0;
  margin-bottom: 2px; padding-bottom: 7px;
}
.crm-table-menu__footer {
  display: flex; gap: 8px; padding-top: 10px; margin-top: 8px;
  border-top: 1px solid var(--line);
}
.crm-table-menu__apply,
.crm-table-menu__clear {
  flex: 1 1 0; min-width: 0; padding: 7px 8px; border-radius: var(--button-radius);
  font-size: 13px;
}
.crm-table-menu__apply {
  background: var(--accent); color: var(--accent-fg); border: 1px solid var(--accent);
}
.crm-table-menu__clear {
  background: transparent; color: var(--muted); border: 1px solid var(--line);
}
.crm-table-menu__apply:disabled {
  opacity: .45; cursor: default; filter: none;
}
.crm-table-menu__clear:hover {
  background: var(--panel-2); color: var(--text); filter: none;
}

/* Badges */
.crm-badge {
  display: inline-block; background: var(--panel-2); color: var(--muted);
  border-radius: 6px; padding: 2px 8px; font-size: 12px;
}
.crm-badge--support { color: var(--text); border: 1px solid var(--line-strong); }
.crm-badge--sales { color: var(--text); border: 1px solid var(--line-strong); }
.crm-badge--danger { color: var(--danger); border: 1px solid var(--danger); }
.crm-badge--info { color: var(--text); border: 1px solid var(--line-strong); }
.crm-prio--urgent { color: var(--danger); }
.crm-prio--high { color: var(--warn); }

/* Metrics */
.crm-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.crm-metric { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card); padding: 16px; box-shadow: var(--shadow-ui-frame); }
.crm-metric__label { color: var(--muted); font-size: 12px; }
.crm-metric__value { font-size: 28px; letter-spacing: -0.42px; font-weight: 700; margin-top: 6px; }

/* Low-stock list */
.crm-lowstock { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.crm-lowstock__item {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card); padding: 10px 14px;
}
.crm-lowstock__sku { font-weight: 600; }
.crm-lowstock__threshold { color: var(--muted); font-size: 12px; margin-left: auto; }

/* Ticket workspace */
.crm-ticket__head { margin-bottom: 14px; }
.crm-back { display: inline-block; margin-bottom: 8px; font-size: 13px; color: var(--accent); text-decoration: none; }
.crm-back:hover { text-decoration: underline; }
.crm-ticket__badges { display: flex; gap: 8px; margin: 8px 0; }
.crm-ticket__responsible { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; color: var(--muted); font-size: 13px; }
.crm-ticket__responsible-label { color: var(--muted); font-weight: 600; text-transform: uppercase; font-size: 11px; letter-spacing: 0; }
.crm-ticket__responsible-name { color: var(--text); font-weight: 600; }
.crm-ticket__responsible-expiry { color: var(--muted); }
.crm-ticket__responsible--active .crm-ticket__responsible-name,
.crm-ticket__responsible--resolved .crm-ticket__responsible-name { color: var(--ok); }
.crm-ticket__responsible--waiting .crm-ticket__responsible-name,
.crm-ticket__responsible--queued .crm-ticket__responsible-name { color: var(--warn); }
.crm-ticket__responsible--urgent .crm-ticket__responsible-name { color: var(--danger); }
.crm-ticket__responsible--closed .crm-ticket__responsible-name,
.crm-ticket__responsible--neutral .crm-ticket__responsible-name { color: var(--muted); }
.crm-ticket__responsible--attribution-expired .crm-ticket__responsible-expiry { color: var(--danger); }
.crm-ticket__responsible--closed .crm-ticket__responsible-expiry { color: var(--muted); }
.crm-ticket__client { color: var(--muted); }
.crm-ticket__grid { display: grid; grid-template-columns: minmax(220px, 260px) minmax(0, 1fr) minmax(320px, 420px); gap: 18px; align-items: start; }
.crm-ticket__actions { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.crm-ticket__actions form { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card); padding: 10px; margin: 0; box-shadow: var(--shadow-ui-frame); }
.crm-form-row { display: flex; gap: 8px; align-items: center; }
.crm-form-row select, .crm-form-row input { flex: 1; min-width: 0; }
.crm-form-row > span { flex: 1; min-width: 0; }
.crm-form-row > span > input[type="search"] { width: 100%; }
.crm-form-col { display: flex; flex-direction: column; gap: 8px; }
.crm-renewal-editor { width: 100%; min-width: 0; }
.crm-renewal-editor .crm-field { min-width: 0; }
.crm-renewal-editor textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 156px;
  resize: vertical;
}
.crm-renewal-preview {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 12px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}
.crm-renewal-preview__title { color: var(--muted); font-size: 12px; font-weight: 600; text-transform: uppercase; }
.crm-renewal-preview__message { white-space: pre-wrap; overflow-wrap: anywhere; }
.crm-renewal-preview__button {
  justify-self: start;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--line-strong);
  border-radius: var(--button-radius);
  background: var(--panel);
  font-weight: 600;
}
.crm-renewal-editor__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.crm-form-row--sku { align-items: stretch; }
.crm-inventory-sku-picker { display: block; flex: 1 1 100%; min-width: 0; width: 100%; }
.crm-inventory-sku-picker > input[type="search"] { width: 100%; }
.crm-inventory-sku-picker > span,
.crm-inventory-sku-picker > span > input[type="search"] { display: block; width: 100%; }
.crm-inventory-replenish { scroll-margin-top: 84px; }
.crm-inventory-replenish > summary {
  cursor: pointer;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.crm-inventory-replenish .crm-form-row { flex-wrap: wrap; align-items: end; }
.crm-inventory-replenish .crm-form-row > .crm-field { flex: 1 1 240px; min-width: 0; }
.crm-inventory-sku-hint { margin: -2px 0 2px; font-size: 12px; }
.crm-inventory-payload-summary { margin: 0 0 4px; }
.crm-inventory-workbench {
  display: grid;
  gap: 0;
  min-width: 0;
}
.crm-inventory-workbench > * { min-width: 0; }
.crm-inventory-workbench__toolbar {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 0 4px;
}
.crm-inventory-workbench__toolbar .crm-section-title,
.crm-inventory-workbench__toolbar .crm-tabs--inline {
  margin: 0;
}
.crm-inventory-workbench__toolbar .crm-filterbar {
  gap: 6px;
  margin: 0 0 0 auto;
}
.crm-inventory-workbench__toolbar .crm-filterbar .crm-field {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.crm-inventory-workbench__toolbar .crm-filterbar input[type="search"] {
  width: min(280px, 36vw);
}
.crm-metric--link { display: block; transition: border-color .15s ease, transform .15s ease; }
.crm-metric--link:hover { border-color: var(--accent); text-decoration: none; transform: translateY(-1px); }
.crm-section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; }
.crm-section-heading .crm-section-title { margin-bottom: 10px; }
.crm-breadcrumb { color: var(--muted); margin: 22px 0 4px; font-size: 13px; }
.crm-breadcrumb a { color: var(--accent); }
.crm-inventory-level { scroll-margin-top: 84px; }
.crm-segmented {
  display: inline-flex;
  flex-wrap: nowrap;
  max-width: 100%;
  margin-bottom: 10px;
  overflow-x: auto;
}
.crm-segmented--inline { margin-bottom: 0; }
.crm-inventory-batch-panel {
  margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-card);
  background: var(--panel); box-shadow: var(--shadow-ui-frame);
}
.crm-inventory-batch-facts { display: flex; flex-wrap: wrap; gap: 8px; }
.crm-inventory-batch-facts span {
  padding: 5px 8px; border: 1px solid var(--line); border-radius: var(--radius-input); background: var(--bg);
}
.crm-inventory-actions-col { position: sticky; right: 0; min-width: 250px; background: var(--panel); z-index: 1; }
.crm-inventory-units-table td.crm-inventory-actions-col { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.crm-inline-form { display: inline-flex; margin: 0; }
.crm-inline-form--deposit {
  display: block;
  margin: 0 0 16px;
}
.crm-inline-form--deposit > summary { cursor: pointer; }
.crm-inline-form--deposit .crm-form-row {
  margin-top: 12px;
  align-items: end;
}
.crm-inline-form--deposit .crm-form-row > .crm-field {
  flex: 1 1 220px;
  min-width: 0;
}
.crm-btn-danger { background: transparent; color: var(--danger); border-color: var(--danger); }
.crm-btn-danger:hover { background: color-mix(in srgb, var(--danger) 10%, transparent); }
.crm-lowstock-panel { margin-top: 24px; }
.crm-lowstock-panel .crm-section-title a { color: inherit; }

.crm-ticket__dialog { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.crm-thread {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card);
  padding: 14px; min-height: 60vh; max-height: 74vh; overflow-y: auto; display: flex; flex-direction: column; gap: 10px;
  box-shadow: var(--shadow-ui-frame);
}
.crm-msg { max-width: 88%; min-width: 0; padding: 8px 11px; border-radius: 10px; }
.crm-msg--in { align-self: flex-start; background: var(--panel-2); }
.crm-msg--out { align-self: flex-end; background: color-mix(in srgb, var(--accent) 8%, transparent); border: 1px solid var(--line-strong); }
.crm-msg__meta { color: var(--muted); font-size: 11px; margin-bottom: 3px; }
.crm-msg__text { white-space: normal; word-wrap: break-word; overflow-wrap: anywhere; word-break: break-word; }
.crm-msg__media { color: var(--muted); font-size: 12px; margin-top: 4px; }
.crm-msg__media img, .crm-msg__img { max-width: 240px; max-height: 240px; width: auto; height: auto; border-radius: 8px; display: block; }
.crm-msg__delivery { font-size: 11px; color: var(--muted); margin-top: 4px; display: flex; gap: 8px; align-items: center; }
.crm-delivery--failed { color: var(--danger); }
.crm-delivery--delivered, .crm-delivery--sent { color: var(--ok); }
.crm-inline { display: inline; margin: 0; }
.crm-inline button { background: transparent; color: var(--danger); padding: 0 4px; font-size: 11px; }

.crm-client-thread-list { display: grid; gap: 14px; }
.crm-client-thread {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card);
  padding: 12px; box-shadow: var(--shadow-ui-frame);
}
.crm-client-thread h3 { margin: 0 0 10px; font-size: 14px; }
.crm-client-thread .crm-thread { min-height: 160px; max-height: 360px; box-shadow: none; }

.crm-attachment-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.crm-attachment-card {
  display: flex; gap: 10px; min-width: 0; background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--radius-card); padding: 10px; box-shadow: var(--shadow-ui-frame);
}
.crm-attachment-card--image { border-color: var(--line-strong); }
.crm-attachment-card__icon { flex: 0 0 28px; font-size: 22px; line-height: 1.2; }
.crm-attachment-card__preview { flex: 0 0 64px; height: 48px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: var(--bg-soft); }
.crm-attachment-card__thumb { display: block; width: 100%; height: 100%; object-fit: cover; }
.crm-attachment-card__body { min-width: 0; }
.crm-attachment-card__name { font-weight: 600; overflow-wrap: anywhere; }
.crm-attachment-card__meta { color: var(--muted); font-size: 12px; margin-top: 2px; overflow-wrap: anywhere; }

.crm-composer { display: flex; gap: 8px; align-items: flex-start; position: relative; }
.crm-composer textarea { min-height: 44px; flex: 1; }
.crm-composer__actions { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.crm-composer__actions input[type="file"] { font-size: 12px; max-width: 200px; }

/* Страница тикета (десктоп, трёхколоночник): chat-app раскладка — страница
   занимает ровно высоту окна, композер всегда виден, скроллятся внутренности
   колонок (лента, панели действий/клиента). Всё под :has() — браузеры без
   поддержки молча остаются на старой раскладке с max-height у .crm-thread. */
@media (min-width: 1181px) {
  .crm-main:has(.crm-ticket) { height: 100vh; height: 100dvh; }
  .crm-main:has(.crm-ticket) .crm-content { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; }
  .crm-main:has(.crm-ticket) .crm-ticket { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
  .crm-main:has(.crm-ticket) .crm-ticket__grid {
    flex: 1 1 0; min-height: 0;
    grid-template-rows: minmax(0, 1fr); align-items: stretch;
  }
  .crm-main:has(.crm-ticket) .crm-ticket__actions,
  .crm-main:has(.crm-ticket) .crm-sidepanels,
  .crm-main:has(.crm-ticket) .crm-ticket-full-details { min-height: 0; overflow-y: auto; }
  .crm-main:has(.crm-ticket) .crm-ticket__dialog { min-height: 0; }
  .crm-main:has(.crm-ticket) .crm-thread { flex: 1 1 0; min-height: 0; max-height: none; }
}

/* "/"-triggered quick-reply autocomplete menu (anchored to the composer form) */
.crm-qr-menu {
  position: absolute; left: 0; top: 100%; z-index: 20;
  margin: 4px 0 0; padding: 4px; list-style: none;
  min-width: 240px; max-width: 100%; max-height: 240px; overflow-y: auto;
  background: var(--panel); border: 1px solid var(--line-strong);
  border-radius: var(--radius-card); box-shadow: var(--shadow-ui-frame);
}
.crm-qr-item {
  padding: 7px 10px; border-radius: 6px; cursor: pointer;
  color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.crm-qr-item:hover, .crm-qr-item.is-active { background: var(--panel-2); }

/* Auth */
.crm-auth { display: grid; place-items: center; min-height: 100vh; }
.crm-auth__card {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card);
  padding: 28px; min-width: 320px; text-align: center; box-shadow: var(--shadow-ui-frame);
}
.crm-auth__error { color: var(--danger); }
.crm-auth__hint, .crm-auth__detail { color: var(--muted); }
.crm-auth__dev { margin-top: 16px; }

/* Section pages (Phase 4) */
.crm-page-lead { margin: -8px 0 14px; color: var(--muted); }
.crm-report-sections { display: grid; gap: 16px; min-width: 0; }
.crm-section-title { font-size: 14px; color: var(--muted); margin: 22px 0 10px; text-transform: uppercase; letter-spacing: 0.04em; }
.crm-muted { color: var(--muted); }
/* Знаковые суммы (журнал депозита): приход зелёным, расход красным */
.crm-amount-pos { color: var(--ok); white-space: nowrap; }
.crm-amount-neg { color: var(--danger); white-space: nowrap; }
.crm-defs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px 18px; margin: 8px 0 4px; }
.crm-defs dt { color: var(--muted); font-size: 12px; }
.crm-defs dd { margin: 0 0 6px; }
.crm-actions-row { display: flex; flex-wrap: wrap; gap: 10px; }
.crm-actions-row form { margin: 0; }
.crm-list { list-style: none; padding: 0; margin: 8px 0; }
.crm-list li { padding: 6px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 8px; }
.crm-table form.crm-form-row { margin: 0; }
.crm-table input[type="text"] { padding: 4px 7px; }
.crm-actions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.crm-actions-grid form { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card); padding: 12px; margin: 0; gap: 8px; box-shadow: var(--shadow-ui-frame); }
.crm-actions-grid strong { font-size: 13px; }
.crm-actions-grid form > button[type="submit"]:last-child { margin-top: auto; }
.crm-details { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card); padding: 10px 14px; margin: 12px 0; box-shadow: var(--shadow-ui-frame); }
.crm-details summary { cursor: pointer; color: var(--muted); }
.crm-details form { margin-top: 12px; flex-wrap: wrap; }
.crm-check { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 13px; }

/* Canonical peer menu: page tabs, queue tabs, and inline view switches. */
.crm-tabs, .crm-queue-tabs {
  display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
  margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.crm-tabs--inline {
  display: inline-flex;
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.crm-tab {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 34px; padding: 6px 12px; border-radius: var(--button-radius);
  color: var(--muted); background: transparent; border: 1px solid var(--line);
  font-family: var(--font-inter); font-size: 14px; font-weight: 400; line-height: 1.45;
  text-decoration: none; white-space: nowrap; cursor: pointer;
}
.crm-tab:hover { background: var(--panel-2); color: var(--text); text-decoration: none; }
.crm-tab.is-active {
  background: var(--accent); color: var(--accent-fg); border-color: var(--accent);
}
.crm-tab.is-active:hover { color: var(--accent-fg); }
.crm-tab-separator { color: var(--muted); user-select: none; }

.crm-time-settings {
  width: min(760px, 100%);
  display: grid;
  gap: 16px;
}
.crm-time-settings__head h2 {
  margin: 0 0 8px;
  font-size: 24px;
}
.crm-time-settings__head p:last-child {
  max-width: 680px;
  margin: 0;
}
.crm-time-settings__group {
  margin: 0;
  overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
}
.crm-time-settings__row {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}
.crm-time-settings__row:last-of-type {
  border-bottom: 0;
}
.crm-time-settings__row > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.crm-time-settings__row small,
.crm-time-settings__hint {
  color: var(--muted);
  font-size: 12px;
}
.crm-time-settings__row strong {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.crm-time-settings__row select {
  width: min(320px, 52vw);
}
.crm-time-settings__toggle {
  cursor: pointer;
}
.crm-time-settings__toggle input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}
.crm-time-settings__actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 16px 0;
}
.crm-time-settings__hint {
  margin: 0;
  padding: 8px 16px 14px;
  text-align: right;
}

/* Side panels (ticket workspace right pane) — stack of cards. */
.crm-sidepanels { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.crm-card {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-card);
  padding: 14px; box-shadow: var(--shadow-ui-frame);
}
.crm-card h3 { margin: 0 0 8px; font-size: 13px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.crm-link { color: var(--text); text-decoration: underline; }
.crm-link:hover { color: var(--accent); }

/* Definition list (label/value rows) */
.crm-dl { margin: 8px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; }
.crm-dl dt { color: var(--muted); font-size: 12px; }
.crm-dl dd { margin: 0; }

/* Compact list (orders / history mini lists in side panels) */
.crm-minilist { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.crm-minilist li { padding: 4px 6px; border-radius: 6px; font-size: 13px; }
.crm-minilist li.is-current { background: var(--panel-2); font-weight: 600; }
.crm-unit-hint {
  display: inline-block;
  max-width: 100%;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  vertical-align: top;
}
.crm-minilist .crm-unit-hint { margin-right: 6px; }

/* Status text labels */
.crm-status-green { color: var(--ok); }
.crm-status-red { color: var(--danger); }

/* Form helpers (settings team-add, suppliers edit, quick-replies form). */
.crm-form { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
.crm-field { display: flex; flex-direction: column; gap: 4px; }
.crm-field[hidden] { display: none; }
.crm-field__label { color: var(--muted); font-size: 12px; }
.crm-form-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px; align-items: center; margin: 0;
}
.crm-manual-sale-form {
  max-width: 960px;
  margin-top: 12px;
}
.crm-manual-sale-form > label,
.crm-manual-sale-form .crm-form-grid > label {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.crm-manual-sale-form .crm-form-grid > label[hidden] { display: none; }
.crm-manual-sale-form input,
.crm-manual-sale-form select,
.crm-manual-sale-form textarea {
  width: 100%;
  min-width: 0;
}
.crm-issued-dialog {
  width: min(620px, calc(100vw - 32px));
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-card);
  padding: 20px;
  background: var(--panel);
  color: var(--text);
  box-shadow: var(--shadow-ui-frame);
}
.crm-issued-dialog::backdrop { background: rgba(0, 0, 0, .45); }
.crm-issued-dialog h2 { margin: 0 0 6px; }
.crm-issued-dialog pre {
  max-height: 45vh;
  overflow: auto;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  background: var(--surface-subtle);
  color: var(--text);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.crm-dialog-close {
  float: right;
  min-width: 36px;
  padding: 6px 10px;
}
.crm-team-add { flex-wrap: wrap; }
.crm-supplier-edit { margin-top: 8px; }
.crm-supplier-edit summary { cursor: pointer; color: var(--muted); font-size: 12px; }
.crm-supplier-edit[open] summary { margin-bottom: 8px; }

/* Serif на крупные заголовки/числа (DESIGN.md: Tiempos только 28px+) */
h1, .crm-page-title, .crm-metric__value { font-family: var(--font-serif); }

/* Узкие ноутбуки/планшеты-ландшафт: трёхколоночник тикета не помещается без
   сжатия диалога — раскладываем в один столбец (диалог сверху, панели снизу). */
@media (max-width: 1180px) {
  .crm-ticket__grid { grid-template-columns: minmax(0, 1fr); }
}

/* Мобильный режим (≤768px) — единый mobile-слой spec 31 в КОНЦЕ файла
   (после всех базовых правил, чтобы побеждать по source order). */

/* --- DB schema view (settings?tab=schema) — themed via existing tokens --- */
/* Header: meta chips + legend + controls (filter, expand/collapse). */
.crm-schema-head {
  position: sticky; top: 0; z-index: 5;
  background: var(--bg); padding: 4px 0 10px; margin-bottom: 8px;
  border-bottom: 1px solid var(--line);
}
.crm-schema-meta {
  display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 4px 0 8px;
  font-size: 12.5px; color: var(--muted);
}
.crm-schema-meta b { color: var(--ok); font-weight: 600; }
.crm-schema-legend {
  display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 10px;
  font-size: 12px; color: var(--muted); align-items: center;
}
.crm-schema-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.crm-schema-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.crm-schema-filter {
  flex: 1 1 240px; max-width: 420px; padding: 8px 10px;
  border: 1px solid var(--line-strong); border-radius: var(--radius-input);
  background: var(--panel); color: var(--text);
}
.crm-schema-btn {
  padding: 7px 12px; border: 1px solid var(--line-strong); border-radius: var(--button-radius);
  background: var(--panel); color: var(--text); cursor: pointer; font-size: 12.5px;
}
.crm-schema-btn:hover { background: var(--panel-2); }

/* Two-pane layout: sticky table-nav + scrollable cards. */
.crm-schema-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 18px; align-items: start; }
.crm-schema-nav {
  position: sticky; top: 132px; align-self: start;
  max-height: calc(100vh - 150px); overflow: auto;
  border: 1px solid var(--line); border-radius: var(--radius-card);
  background: var(--panel); padding: 8px;
}
.crm-schema-nav-dom {
  margin: 10px 6px 3px; font-size: 10.5px; text-transform: uppercase;
  letter-spacing: .04em; color: var(--muted);
}
.crm-schema-nav-dom:first-child { margin-top: 2px; }
.crm-schema-nav-link {
  display: flex; justify-content: space-between; gap: 8px;
  padding: 4px 8px; border-radius: 6px; text-decoration: none;
  color: var(--text); font-size: 13px; font-family: ui-monospace, Menlo, Consolas, monospace;
}
.crm-schema-nav-link:hover { background: var(--panel-2); }
.crm-schema-nav-rc { color: var(--muted); font-variant-numeric: tabular-nums; }

.crm-schema-domain { margin: 14px 0 6px; font-size: 14px; color: var(--accent); }
.crm-schema-cards > .crm-schema-domain:first-child { margin-top: 0; }
.crm-schema-card {
  border: 1px solid var(--line); border-radius: var(--radius-card);
  margin: 8px 0; padding: 4px 14px; background: var(--panel);
  scroll-margin-top: 150px;
}
.crm-schema-card > summary {
  cursor: pointer; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 10px 0; list-style: none;
}
.crm-schema-card > summary::-webkit-details-marker { display: none; }
.crm-schema-name { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 600; font-size: 15px; }
.crm-schema-card-meta { margin-left: auto; color: var(--muted); font-size: 12px; }
.crm-schema-cols { margin: 8px 0; }
.crm-schema-sub {
  margin: 10px 0 4px; font-size: 11px; text-transform: uppercase;
  letter-spacing: .04em; color: var(--muted);
}
.crm-schema-fk { padding: 2px 0; }
.crm-schema-fk a, .crm-schema-cards .crm-mono a { color: var(--accent); text-decoration: none; }
.crm-mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; }

/* Scoped badges/tags — do NOT clobber the global .crm-badge used by tickets. */
.crm-schema-head .crm-badge,
.crm-schema-card .crm-badge {
  font-size: 11px; padding: 1px 8px; border-radius: 20px;
  border: 1px solid var(--line); background: var(--panel-2); color: var(--muted);
}
.crm-schema-card .crm-badge--rows { color: var(--ok); }
.crm-badge--imm { color: var(--accent); }
.crm-tag {
  font-size: 10.5px; padding: 1px 6px; border-radius: 4px; margin-right: 3px;
  font-family: ui-monospace, Menlo, Consolas, monospace;
}
.crm-tag--pk { color: var(--text); background: color-mix(in srgb, var(--accent) 14%, transparent); }
.crm-tag--fk { color: var(--ok); background: color-mix(in srgb, var(--ok) 14%, transparent); }
.crm-tag--nn { color: var(--danger); background: color-mix(in srgb, var(--danger) 14%, transparent); }
.crm-tag--uq { color: var(--warn); background: color-mix(in srgb, var(--warn) 16%, transparent); }

@media (max-width: 1080px) {
  .crm-schema-layout { grid-template-columns: minmax(0, 1fr); }
  .crm-schema-nav { position: static; max-height: 280px; }
}

/* Audit log sub-tab (legal audit trail). */
.crm-audit-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px; }
.crm-audit-meta { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12.5px; color: var(--muted); }
.crm-audit-verify { font-weight: 500; }
.crm-audit-filters { align-items: center; }
.crm-audit-filters input[type="date"] {
  background: var(--bg); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--radius-input); padding: 6px 8px;
}
.crm-audit-date { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); }
.crm-btn {
  display: inline-flex; align-items: center; padding: 7px 12px;
  border: 1px solid var(--line-strong); border-radius: var(--button-radius);
  background: var(--panel); color: var(--text); text-decoration: none; font-size: 12.5px;
}
.crm-btn:hover { background: var(--panel-2); }
.crm-audit-table .crm-audit-fail { background: color-mix(in srgb, var(--danger) 9%, transparent); }

/* ===== Overview dashboard ===== */
.crm-dash-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}
.crm-dash-grid > .crm-span-2 { grid-column: 1 / -1; }
@media (min-width: 1280px) {
    .crm-dash-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .crm-dash-grid > .crm-span-2 { grid-column: span 2; }
    .crm-dash-grid > .crm-span-3 { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .crm-dash-grid { grid-template-columns: minmax(0, 1fr); }
}

.crm-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    padding: 16px;
    box-shadow: var(--shadow-ui-frame);
    min-width: 0;
}
.crm-card__title { font-size: 13px; color: var(--muted); margin: 0 0 12px; font-weight: 600; }
.crm-card__title--row { display: flex; justify-content: space-between; align-items: center; }
.crm-card__title-sub { color: var(--muted); font-weight: 400; }
.crm-card__title--subsection { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.crm-card__empty { color: var(--muted); font-size: 13px; padding: 12px 0; }
.crm-card__error { color: var(--danger); font-size: 13px; padding: 12px 0; }

/* Report tables may grow wider than the content column; keep the scroll local. */
.crm-report-table-scroll {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}
.crm-report-table-scroll > .crm-table { min-width: max-content; }

/* Procurement tables are intentionally wide; keep their scroll local on mobile. */
.procurement {
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}
.procurement .crm-table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}
.procurement .crm-table-wrap > .crm-table {
  width: max-content;
  min-width: 100%;
}
.procurement .crm-inline-form {
  max-width: 100%;
  flex-wrap: wrap;
}

.crm-metric__sub { color: var(--muted); font-size: 11px; margin-top: 4px; }
/* < 28px — без serif (DESIGN.md: Tiempos только 28px+) */
.crm-metric__value--sm { font-size: 18px; letter-spacing: -0.014em; font-family: var(--font-inter); }

/* Three-up metric tiles (ticket timings) */
.crm-tiles-3 { grid-template-columns: repeat(3, 1fr); margin-bottom: 14px; }

/* Horizontal bars (funnel / cancel reasons / ticket statuses) */
.crm-bars { display: flex; flex-direction: column; gap: 8px; }
.crm-bar { display: grid; grid-template-columns: 130px 1fr 48px; align-items: center; gap: 8px; }
.crm-bar__label { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-bar__track { background: var(--line); border-radius: 6px; height: 18px; overflow: hidden; }
.crm-bar__fill { height: 100%; background: var(--accent); border-radius: 6px; }
.crm-bar__fill--danger { background: var(--danger); }
.crm-bar__num { font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }

.crm-staff-table-wrap { overflow-x: auto; }
.crm-staff-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 11px;
}
.crm-staff-table th,
.crm-staff-table td {
    padding: 7px 2px;
    border-bottom: 1px solid var(--line);
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.crm-staff-table th:first-child,
.crm-staff-table td:first-child {
    width: auto;
    text-align: left;
    font-variant-numeric: normal;
}
.crm-staff-table th:nth-child(2),
.crm-staff-table td:nth-child(2) { width: 58px; }
.crm-staff-table th:nth-child(n+3),
.crm-staff-table td:nth-child(n+3) { width: 28px; }
@media (min-width: 720px) {
    .crm-staff-table { font-size: 12px; }
    .crm-staff-table th,
    .crm-staff-table td { padding: 8px 6px; }
    .crm-staff-table th:nth-child(2),
    .crm-staff-table td:nth-child(2) { width: 78px; }
    .crm-staff-table th:nth-child(n+3),
    .crm-staff-table td:nth-child(n+3) { width: 58px; }
}
.crm-staff-table tbody tr:last-child td { border-bottom: 0; }
.crm-staff-table__name {
    display: inline-block;
    max-width: min(360px, 100%);
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
    white-space: nowrap;
}
.crm-staff-table__access { color: var(--muted); white-space: nowrap; }
.crm-staff-table__shift { color: var(--muted); white-space: nowrap; }

/* SVG timeseries chart — монохром на токенах (бары = полупрозрачный accent, линия = accent) */
.crm-chart { width: 100%; height: auto; display: block; }
.crm-chart__bar { fill: color-mix(in srgb, var(--accent) 18%, transparent); }
.crm-chart__line { fill: none; stroke: var(--accent); stroke-width: 2; }
.crm-chart__axis { stroke: var(--line); stroke-width: 1; }
.crm-chart__hot { cursor: pointer; }
.crm-chart__hot:hover { fill: color-mix(in srgb, var(--accent) 6%, transparent); }
.crm-chart-tip {
    position: fixed; z-index: 1000; pointer-events: none;
    background: var(--panel); color: inherit;
    border: 1px solid var(--line); border-radius: 8px;
    padding: 6px 10px; font-size: 12px; white-space: nowrap;
    box-shadow: var(--shadow-ui-frame);
}
.crm-chart-tip[hidden] { display: none; }
.crm-legend { display: flex; gap: 16px; font-size: 11px; color: var(--muted); margin-top: 8px; }
.crm-legend span::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: middle; }
.crm-legend .is-orders::before { background: color-mix(in srgb, var(--accent) 18%, transparent); }
.crm-legend .is-revenue::before { background: var(--accent); }
.crm-legend__scale { margin-left: auto; }
.crm-legend__scale::before { display: none; }
.crm-chart__xaxis { position: relative; height: 14px; margin-top: 2px; }
.crm-chart__xaxis span { position: absolute; top: 0; font-size: 11px; color: var(--muted); white-space: nowrap; }

/* Прогресс-бар загрузки файла в композере (JS драйвит в Task 7). */
.crm-composer__progress { height: 4px; background: var(--line, #e5e7eb); border-radius: 2px; margin-top: 6px; overflow: hidden; }
.crm-composer__bar { height: 100%; width: 0; background: var(--accent, #2563eb); transition: width .1s linear; }

/* CSS-only tabs for top products (native radio group + canonical menu chrome). */
.crm-tab-switcher input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.crm-tabpanel { display: none; }
#crm-top-rev:checked ~ .crm-tabpanels .crm-tabpanel--rev { display: block; }
#crm-top-qty:checked ~ .crm-tabpanels .crm-tabpanel--qty { display: block; }
#crm-top-rev:checked ~ .crm-tabs__nav label[for="crm-top-rev"],
#crm-top-qty:checked ~ .crm-tabs__nav label[for="crm-top-qty"] {
  background: var(--accent); color: var(--accent-fg); border-color: var(--accent);
}
#crm-top-rev:focus-visible ~ .crm-tabs__nav label[for="crm-top-rev"],
#crm-top-qty:focus-visible ~ .crm-tabs__nav label[for="crm-top-qty"] {
  border-color: var(--focus); box-shadow: var(--focus-ring);
}

/* Stock status pills — семантические токены (паттерн .crm-shift__badge--on) */
.crm-pill { font-size: 11px; padding: 2px 8px; border-radius: 10px; }
.crm-pill--ok { background: color-mix(in srgb, var(--ok) 12%, transparent); color: var(--ok); }
.crm-pill--low { background: color-mix(in srgb, var(--warn) 14%, transparent); color: var(--warn); }
.crm-pill--out { background: color-mix(in srgb, var(--danger) 12%, transparent); color: var(--danger); }

/* ===== Tickets inbox (split-view), spec 30 ===== */
.crm-view-toggle {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  max-width: 100%;
  margin-left: 16px;
  overflow-x: auto;
}

.crm-inbox { display: grid; grid-template-columns: 280px minmax(0, 1fr) minmax(360px, 440px); gap: 16px; align-items: start; }

.crm-inbox__list { display: flex; flex-direction: column; gap: 4px; max-height: calc(100vh - 230px); overflow-y: auto; }
.crm-inbox__item { display: block; padding: 8px 10px; border-radius: 8px; border: 1px solid transparent; text-decoration: none; color: inherit; }
.crm-inbox__item:hover { background: var(--panel-2); text-decoration: none; }
.crm-inbox__item.is-selected { border-color: var(--accent); background: var(--panel-2); }
.crm-inbox__item-top { display: flex; gap: 8px; align-items: baseline; font-weight: 600; }
.crm-inbox__item-client { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-inbox__item-age { font-weight: 400; font-size: 12px; opacity: 0.7; }
.crm-inbox__item-bottom { display: flex; gap: 6px; align-items: center; margin-top: 2px; font-size: 12px; }
.crm-inbox__item-theme { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: 0.7; }

.crm-inbox__thread { display: flex; flex-direction: column; min-width: 0; gap: 10px; }
.crm-inbox__thread-head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.crm-inbox__thread .crm-thread { max-height: calc(100vh - 360px); min-height: 240px; overflow-y: auto; }

.crm-inbox__actions { display: flex; flex-direction: column; gap: 10px; min-width: 0; max-height: calc(100vh - 230px); overflow-y: auto; padding-right: 2px; }
.crm-inbox__full-link { margin-top: 4px; }
.crm-ticket-full-details { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.crm-ticket-full-details__title { margin: 0; font-size: 13px; text-transform: uppercase; color: var(--muted); letter-spacing: 0; }

@media (max-width: 1100px) {
    .crm-inbox { grid-template-columns: 240px minmax(0, 1fr); }
    .crm-inbox__actions { grid-column: 1 / -1; max-height: none; overflow: visible; }
}

/* ===== Mobile layer (spec 31) — единый breakpoint ≤768px ===================
   Drawer-навигация + карточки вместо таблиц + одноколоночные раскладки +
   тач-таргеты. Десктоп (≥769px) не затрагивается. Блок намеренно ПОСЛЕДНИЙ
   в файле: media-query не добавляет специфичности, побеждаем source order'ом. */

/* Бургер — на десктопе скрыт, появляется только в мобильном медиа ниже. */
.crm-nav-toggle { display: none; }
.crm-nav-close { display: none; }

/* Backdrop под drawer — отдельный элемент в layout, виден только при body.nav-open. */
.crm-backdrop { display: none; }

/* Кнопка «← К списку» в инбоксе — только мобильный шаг «переписка → список». */
.crm-inbox__back { display: none; }

/* Горизонтальный скролл для плотных таблиц-исключений (аудит-лог и т.п.). */
.crm-tablescroll { min-width: 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media (max-width: 768px) {
  /* --- Shell: сайдбар становится выезжающим drawer ------------------------ */
  .crm-shell,
  .crm-shell.nav-collapsed { grid-template-columns: 1fr; }
  .crm-sidebar {
    position: fixed; top: 0; bottom: 0; left: 0; z-index: 120;
    width: min(80vw, 300px);
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform 0.2s ease;
  }
  body.nav-open .crm-sidebar { transform: translateX(0); box-shadow: var(--shadow-ui-frame); }
  body.nav-open { overflow: hidden; }
  body.nav-open .crm-backdrop {
    display: block; position: fixed; inset: 0; z-index: 110;
    background: rgba(0, 0, 0, 0.45);
  }
  .crm-nav__item { padding: 12px 10px; }
  .crm-shell.nav-collapsed .crm-sidebar { padding: 16px 12px; }
  .crm-shell.nav-collapsed .crm-brand { width: auto; overflow: visible; padding: 6px 48px 14px 8px; }
  .crm-shell.nav-collapsed .crm-brand::first-letter { letter-spacing: normal; }
  .crm-shell.nav-collapsed .crm-nav__group-title,
  .crm-shell.nav-collapsed .crm-nav__label { display: block; }
  .crm-shell.nav-collapsed .crm-nav__item { justify-content: flex-start; padding: 12px 10px; }
  .crm-nav-collapse { display: none; }
  .crm-sidebar .crm-brand { padding-right: 48px; }
  .crm-nav-close {
    display: inline-flex; position: absolute; top: 12px; right: 12px;
    width: 44px; min-width: 44px; height: 44px; padding: 0;
    background: transparent; color: var(--text);
    border: 1px solid var(--line); border-radius: var(--button-radius);
    font-size: 24px; line-height: 1;
  }
  .crm-nav-close:hover { background: var(--panel-2); filter: none; }

  .crm-nav-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px; padding: 0; flex: 0 0 auto;
    background: transparent; color: var(--text);
    border: 1px solid var(--line); border-radius: var(--button-radius);
    font-size: 18px; line-height: 1;
  }
  .crm-nav-toggle:hover { background: var(--panel-2); filter: none; }

  /* --- Header: поиск тянется, чип сворачивается до аватара ---------------- */
  .crm-header { padding: 10px 12px; gap: 10px; }
  .crm-global-search { flex: 1; width: auto; min-width: 0; margin-right: 0; }
  .crm-search { flex: 1; width: auto; min-width: 0; max-width: none; margin-right: 0; }
  .crm-global-search__panel { position: fixed; top: 66px; left: 12px; right: 12px; width: auto; max-height: 70vh; }
  .crm-user-chip__text { display: none; }
  .crm-user-menu {
    position: fixed; left: 8px; right: 8px; bottom: 8px; top: auto; z-index: 130;
    width: auto; max-height: calc(100vh - 72px); overflow-y: auto;
  }

  .crm-content { padding: 12px; }

  .crm-page-head { flex-direction: column; align-items: stretch; gap: 12px; }
  .crm-page-head > .crm-toolbar { width: 100%; }
  .crm-page-head > .crm-toolbar .crm-field,
  .crm-page-head > .crm-toolbar select { width: 100%; min-width: 0; }

  .crm-inline-form--deposit .crm-form-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }
  .crm-inline-form--deposit .crm-form-row input,
  .crm-inline-form--deposit .crm-form-row button {
    width: 100%;
    min-height: 44px;
  }

  /* --- iOS: 16px на form-контролах, чтобы Safari не зумил при фокусе ------ */
  input, select, textarea { font-size: 16px; }

  /* --- Таблицы → карточки (метки приходят из crm.js как data-label) -------
     Исключения: .crm-table--wide / .crm-audit-table / .crm-schema-cols —
     остаются таблицами (горизонтальный скролл через .crm-tablescroll). */
  .crm-table:not(.crm-table--wide):not(.crm-audit-table):not(.crm-schema-cols) { display: block; }
  .crm-table:not(.crm-table--wide):not(.crm-audit-table):not(.crm-schema-cols) thead {
    position: absolute; width: 1px; height: 1px;
    clip: rect(0 0 0 0); overflow: hidden;
  }
  .crm-table:not(.crm-table--wide):not(.crm-audit-table):not(.crm-schema-cols) tbody { display: block; }
  .crm-table:not(.crm-table--wide):not(.crm-audit-table):not(.crm-schema-cols) tbody tr {
    display: block;
    background: var(--panel); border: 1px solid var(--line);
    border-radius: var(--radius-card); box-shadow: var(--shadow-ui-frame);
    padding: 10px 12px; margin: 0 0 10px;
  }
  .crm-table:not(.crm-table--wide):not(.crm-audit-table):not(.crm-schema-cols) tbody td {
    display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
    border: 0; padding: 6px 0;
  }
  .crm-table:not(.crm-table--wide):not(.crm-audit-table):not(.crm-schema-cols) tbody td[data-label]::before {
    content: attr(data-label);
    color: var(--muted); font-size: 12px; font-weight: 600;
    flex: 0 0 auto;
  }
  /* Table-tools-хром (меню колонок, resize-хэндлы) в карточках не нужен. */
  .crm-th-menu-button, .crm-th-resize { display: none; }

  /* Плотные таблицы-исключения внутри скролл-обёртки не схлопываются. */
  .crm-tablescroll > .crm-table { min-width: 640px; }
  .crm-report-table-scroll > .crm-table { min-width: 0; }

  /* --- Тач-таргеты --------------------------------------------------------- */
  .crm-table-pagination__button { width: 44px; height: 44px; }
  .crm-tab { min-height: 44px; }
  .crm-tab-separator { display: none; }
  .crm-card__title--row { flex-wrap: wrap; gap: 8px; }
  .crm-filterbar { display: flex; }
  .crm-filterbar select, .crm-filterbar input { flex: 1 1 140px; min-width: 0; }
  .crm-overview-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .crm-overview-filters > button { min-height: 44px; }

  /* --- Тикет/диалог: композер прилипает к низу, медиа не шире вьюпорта ---- */
  .crm-composer {
    position: sticky; bottom: 0; z-index: 30;
    background: var(--bg); padding: 8px 0;
    flex-wrap: wrap;
  }
  .crm-composer textarea { flex: 1 1 100%; }
  .crm-composer__actions { flex: 1 1 100%; flex-direction: row; align-items: center; gap: 8px; }
  .crm-composer__actions input[type="file"] { flex: 1 1 auto; min-width: 0; max-width: none; }
  .crm-composer__actions button { flex: 0 0 auto; min-height: 44px; }
  .crm-msg__media img, .crm-msg__img { max-width: 100%; }

  /* --- Инбокс: пошагово «список → переписка» ------------------------------ */
  .crm-inbox { grid-template-columns: minmax(0, 1fr); }
  .crm-inbox__list { max-height: none; }
  .crm-inbox__item { padding: 12px 10px; }
  .crm-inbox.is-list .crm-inbox__thread,
  .crm-inbox.is-list .crm-inbox__actions { display: none; }
  .crm-inbox.is-thread .crm-inbox__list { display: none; }
  .crm-inbox__back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
  .crm-inbox__thread .crm-thread { max-height: calc(100vh - 320px); }
}

.crm-inbox__item-preview,
.crm-row-preview {
  display: block;
  margin-top: 2px;
  color: var(--muted, #6b7280);
  font-size: 12px;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.crm-tree__cat { margin: 8px 0; }
.crm-tree__cat-summary { cursor: pointer; font-weight: 600; padding: 6px 0; }
.crm-tree__product { margin: 4px 0 4px 16px; }
.crm-tree__product-summary { cursor: pointer; padding: 4px 0; font-weight: 600; }
.crm-tree__tariff { margin: 4px 0 4px 16px; }
.crm-tree__tariff-summary { cursor: pointer; padding: 4px 0; }
.crm-tree__emoji { opacity: .8; }
.crm-field__hint { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.crm-field__hint { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.crm-tree__edit { padding: 1px 8px; font-size: 12px; line-height: 1.6; }
.crm-toolbar { display: flex; flex-wrap: wrap; gap: 8px; }

.crm-rich-text-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 5px 0 6px;
}
.crm-rich-text-toolbar__button {
  min-width: 32px;
  min-height: 30px;
  padding: 3px 9px;
  border: 1px solid var(--line-strong);
  border-radius: 7px;
  background: var(--panel);
  color: var(--text);
  cursor: pointer;
}
.crm-rich-text-toolbar__button:hover {
  border-color: var(--accent);
  background: var(--panel-2);
  filter: none;
}
.crm-rich-text-toolbar__button.is-active {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  box-shadow: 0 0 0 1px var(--accent);
}
.crm-rich-text-toolbar__button--bold { font-weight: 700; }
.crm-rich-text-toolbar__button--italic { font-style: italic; }
.crm-rich-text-toolbar__button--underline { text-decoration: underline; }
.crm-rich-text-toolbar__button--strike { text-decoration: line-through; }
.crm-rich-text-toolbar__button--code { font-family: var(--font-mono); }
.crm-rich-text-source {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0;
  pointer-events: none;
}
.crm-rich-text-editor {
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  color: var(--text);
  line-height: 1.45;
  outline: none;
}
.crm-rich-text-editor:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent);
}
.crm-rich-text-editor--singleline { white-space: nowrap; overflow-x: auto; }
.crm-rich-text-editor--multiline { min-height: 112px; }
.crm-rich-text-editor blockquote { margin: 6px 0; padding-left: 10px; border-left: 3px solid var(--accent); }
.crm-rich-text-editor [data-telegram-spoiler] { border-radius: 3px; background: var(--text); color: transparent; }
.crm-rich-text-editor [data-telegram-spoiler]:hover { color: var(--panel); }
.crm-rich-text-editor [data-telegram-custom-emoji] { padding: 0 3px; border: 1px dashed var(--accent); border-radius: 4px; }
.crm-rich-text-counter {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}
.crm-rich-text-counter.is-limit { color: var(--danger); }
.crm-broadcast-preview {
  display: block;
  max-width: min(100%, 520px);
  max-height: 420px;
  border-radius: var(--radius-control);
  object-fit: contain;
}
.crm-broadcast-message {
  max-width: 760px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  background: var(--panel-2);
  overflow-wrap: anywhere;
  white-space: normal;
}
.crm-multiselect { min-height: 84px; }

/* Catalog workbench: sticky branch navigator + dense SKU workspace. */
.crm-catalog__head {
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 16px;
}
.crm-catalog-stats {
  display: flex; flex-wrap: wrap; gap: 6px;
  color: var(--muted); font-size: 12px;
}
.crm-catalog-stats span {
  display: inline-flex; align-items: center;
  min-height: 24px; padding: 2px 8px;
  background: var(--panel-2); border: 1px solid var(--line);
  border-radius: 999px;
}
.crm-catalog-actions {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  justify-content: end;
  justify-items: stretch;
  gap: 8px;
}
.crm-catalog-actions__journal {
  grid-column: 3;
  justify-self: end;
}
.crm-audit-details summary {
  cursor: pointer;
  color: var(--text);
  font-weight: 600;
}
.crm-audit-details pre {
  max-width: min(820px, 72vw);
  max-height: 360px;
  overflow: auto;
  margin: 8px 0 0;
  padding: 10px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
}
.crm-catalog-layout {
  display: grid;
  grid-template-columns: minmax(200px, 250px) minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}
.crm-catalog-nav {
  position: sticky; top: 76px;
  max-height: calc(100vh - 96px);
  overflow: auto;
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
}
.crm-catalog-nav__title {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
.crm-catalog-nav__category,
.crm-catalog-nav__tariff {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-width: 0;
  border-radius: 7px;
  text-decoration: none;
}
.crm-catalog-nav__category {
  padding: 7px 8px;
  font-weight: 700;
}
.crm-catalog-nav__tariff {
  margin-left: 8px;
  padding: 5px 8px 5px 14px;
  color: var(--muted);
  font-size: 12px;
  border-left: 1px solid var(--line);
  overflow-wrap: anywhere;
}
.crm-catalog-nav__category:hover,
.crm-catalog-nav__tariff:hover {
  background: var(--panel-2);
  text-decoration: none;
}
.crm-catalog-stage {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.crm-catalog-card {
  min-width: 0;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}
.crm-catalog-card[hidden] { display: none; }
.crm-catalog-card--category {
  scroll-margin-top: 82px;
  box-shadow: var(--shadow-ui-frame);
}
.crm-catalog-card--product {
  margin: 10px 12px 12px;
  background: var(--bg);
}
.crm-catalog-description {
  color: var(--muted);
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.crm-catalog-card--category > .crm-catalog-description {
  padding: 0 12px 12px;
}
.crm-catalog-products {
  border-top: 1px solid var(--line);
}
.crm-catalog-product {
  border-bottom: 1px solid var(--line);
}
.crm-catalog-product:last-child { border-bottom: 0; }
.crm-catalog-product__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
}
.crm-catalog-product__details {
  display: grid;
  gap: 7px;
  padding: 0 12px 12px 34px;
}
.crm-catalog-card--tariff {
  margin: 10px;
  background: var(--panel);
  scroll-margin-top: 82px;
}
.crm-catalog-summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-width: 0;
  padding: 11px 12px;
  cursor: pointer;
  list-style: none;
}
.crm-catalog-summary::-webkit-details-marker { display: none; }
.crm-catalog-summary::before {
  content: "▸";
  flex: 0 0 auto;
  color: var(--muted);
  transition: transform .16s ease;
}
details[open] > .crm-catalog-summary::before { transform: rotate(90deg); }
.crm-catalog-summary--product { padding: 9px 10px; }
.crm-catalog-summary--product > .crm-catalog-summary__title {
  flex: 1 1 auto;
  text-align: left;
}
.crm-catalog-summary--tariff {
  position: sticky; top: 64px; z-index: 4;
  background: color-mix(in srgb, var(--panel) 94%, var(--panel-2));
  border-bottom: 1px solid var(--line);
}
.crm-catalog-summary__main {
  display: flex; align-items: center; gap: 10px;
  min-width: 0;
  flex: 1 1 auto;
}
.crm-catalog-summary__title {
  min-width: 0;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.crm-catalog-summary__meta,
.crm-catalog-summary__actions {
  display: inline-flex; align-items: center; gap: 7px;
  flex: 0 0 auto;
}
.crm-catalog-summary__actions {
  justify-content: flex-end;
  max-width: 42%;
  flex-wrap: wrap;
}
.crm-button--icon {
  width: 34px;
  padding-left: 0;
  padding-right: 0;
}
.crm-catalog-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.crm-catalog-sku-table {
  min-width: 760px;
  table-layout: auto;
}
.crm-catalog-sku-table th,
.crm-catalog-sku-table td {
  vertical-align: top;
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}
.crm-catalog-sku-table th:nth-child(2),
.crm-catalog-sku-table td:nth-child(2) {
  min-width: 220px;
}
.crm-catalog-sku-table th:nth-child(3),
.crm-catalog-sku-table td:nth-child(3) {
  width: 82px;
}
.crm-catalog-sku-table th:nth-child(4),
.crm-catalog-sku-table td:nth-child(4) {
  width: 84px;
}
.crm-catalog-sku-table th:nth-child(5),
.crm-catalog-sku-table td:nth-child(5) {
  width: 98px;
}
.crm-catalog-sku-table th:nth-child(6),
.crm-catalog-sku-table td:nth-child(6) {
  width: 160px;
}
.crm-catalog-sku-table th:last-child,
.crm-catalog-sku-table td:last-child {
  width: 128px;
}
.crm-sku-name {
  display: flex; align-items: center; gap: 8px;
  min-width: 0;
}
.crm-sku-name span:first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}
.crm-status-dot {
  display: inline-block;
  width: 8px; height: 8px; margin-right: 6px;
  border-radius: 999px;
  background: var(--muted);
}
.crm-status-dot.is-ok { background: var(--ok); }
.crm-sku-state {
  display: grid;
  gap: 2px;
  min-width: 0;
  font-size: 12px;
}
.crm-sku-state span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.crm-sku-price-form {
  display: grid;
  grid-template-columns: minmax(72px, 1fr) auto;
  gap: 8px;
  margin: 0;
}
.crm-sku-price-form input[type="text"] {
  width: 100%;
  min-width: 0;
}
.crm-sku-price-form button {
  min-width: 42px;
  padding-left: 10px;
  padding-right: 10px;
}
.crm-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.crm-field {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.crm-field input,
.crm-field select,
.crm-field textarea {
  width: 100%;
  min-width: 0;
}
.crm-field--span {
  grid-column: 1 / -1;
}
.crm-upload {
  align-items: stretch;
}
.crm-upload input[type="file"],
.crm-upload input[type="url"] {
  width: 100%;
}
.crm-upload img {
  width: 96px;
  height: 72px;
  border: 1px solid var(--line);
  border-radius: 6px;
  object-fit: cover;
  background: var(--surface-soft);
}
.crm-upload img[hidden] {
  display: none;
}
.crm-upload__status {
  color: var(--muted);
  font-size: 12px;
}
.crm-upload__status[data-state="error"] {
  color: var(--danger);
}
.crm-fieldset {
  min-width: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-input);
}
.crm-fieldset legend {
  padding: 0 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.crm-category-checks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}
.crm-category-check {
  display: flex; align-items: center; gap: 8px;
  min-width: 0;
  padding: 8px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--radius-input);
}
.crm-category-check input {
  flex: 0 0 auto;
  accent-color: var(--ok);
}
.crm-category-check span {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* SKU modals (catalog create/edit) — native <dialog> + opt-in button variants.
   Classes used by View/pages/catalog.php; opened/closed by crm.js (CSP-clean). */
dialog.crm-dialog {
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-card);
  background: var(--panel);
  color: var(--text);
  padding: 18px;
  max-width: 440px;
  width: calc(100% - 32px);
  box-shadow: var(--shadow-ui-frame);
}
dialog.crm-dialog--catalog {
  max-width: 640px;
  padding: 20px;
}
dialog.crm-dialog::backdrop { background: rgba(0, 0, 0, .45); }

[data-local-typeahead] {
  position: relative;
  display: block;
}
.crm-local-typeahead-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 4px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-input);
  background: var(--panel);
  box-shadow: var(--shadow-ui-frame);
}
.crm-local-typeahead-option {
  display: block;
  width: 100%;
  min-height: 36px;
  padding: 8px 10px;
  border: 0;
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--text);
  text-align: left;
}
.crm-local-typeahead-option:hover,
.crm-local-typeahead-option:focus,
.crm-local-typeahead-option.is-active {
  background: var(--panel-2);
}
.crm-local-typeahead-option:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.crm-local-typeahead-empty {
  padding: 10px;
  color: var(--muted);
  font-size: 13px;
}
.crm-local-typeahead-selection {
  margin-top: 5px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  background: var(--surface-subtle);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
@media (max-width: 768px) {
  .crm-local-typeahead-option { min-height: 44px; }
}
.crm-dialog .crm-form { max-width: none; }
.crm-dialog__title { margin: 0 0 4px; font-size: 16px; font-weight: 600; }
.crm-dialog__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.crm-dialog__danger { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.crm-confirm-dialog { width: min(460px, calc(100vw - 32px)); }
.crm-confirm-dialog__form { display: flex; flex-direction: column; gap: 12px; }
.crm-confirm-dialog__eyebrow {
  color: var(--danger);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.crm-confirm-dialog__body { margin: 0; color: var(--text); line-height: 1.5; }
.crm-confirm-dialog__object {
  margin: 0;
  padding: 9px 10px;
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-input);
  color: var(--muted);
  font-family: ui-monospace, Menlo, Consolas, monospace;
  overflow-wrap: anywhere;
}
.crm-confirm-dialog__error { margin: 0; font-size: 13px; }
[data-submitting="1"] [data-loading="1"] {
  cursor: wait;
  opacity: .72;
  pointer-events: none;
}
.crm-checkbox { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.crm-checkbox input { width: auto; min-height: 0; }

.crm-content-settings {
  display: grid;
  gap: 16px;
  min-width: 0;
}
.crm-content-editor-list {
  display: grid;
  gap: 8px;
}
.crm-content-editor {
  padding: 0;
  overflow: clip;
}
.crm-content-editor__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 10px 14px;
  cursor: pointer;
  font-weight: 600;
}
.crm-content-editor__slug { display: block; margin-top: 2px; color: var(--muted); font: 11px/1.2 var(--font-mono); }
.crm-content-editor[open] > .crm-content-editor__summary {
  border-bottom: 1px solid var(--line);
}
.crm-content-editor__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 12px;
  padding: 14px;
}
.crm-content-editor__toggle {
  align-self: end;
  min-height: 34px;
}
.crm-content-rows {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-input);
}
.crm-content-rows legend {
  padding: 0 4px;
  color: var(--muted);
  font-size: 12px;
}
.crm-content-rows [data-content-row-list] {
  display: grid;
  gap: 8px;
}
.crm-content-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  min-width: 0;
}
.crm-content-row--button {
  grid-template-columns: minmax(140px, .55fr) minmax(220px, 1fr) auto;
}
.crm-content-history .crm-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

@media (max-width: 768px) {
  .crm-content-editor__summary,
  .crm-content-history .crm-card__head {
    align-items: flex-start;
    flex-direction: column;
  }
  .crm-content-editor__form {
    grid-template-columns: minmax(0, 1fr);
  }
  .crm-content-row,
  .crm-content-row--button {
    grid-template-columns: minmax(0, 1fr);
  }
}
.crm-button--secondary { background: var(--panel); color: var(--text); border-color: var(--line-strong); }
.crm-button--secondary:hover { background: var(--panel-2); filter: none; }
.crm-button--ghost { background: transparent; color: var(--text); border-color: var(--line-strong); }
.crm-button--ghost:hover { background: var(--panel-2); filter: none; }
.crm-button--danger { background: var(--danger); border-color: var(--danger); color: var(--accent-fg); }

@media (max-width: 980px) {
  .crm-suppliers-head {
    align-items: stretch;
    flex-direction: column;
  }
  .crm-suppliers-toolbar,
  .crm-suppliers-query {
    flex-wrap: wrap;
  }
  .crm-orders-filterbar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .crm-inventory-workbench__toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .crm-inventory-workbench__toolbar .crm-filterbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: end;
    width: 100%;
    margin-left: 0;
  }
  .crm-inventory-workbench__toolbar .crm-filterbar .crm-field {
    display: grid;
    min-width: 0;
    width: 100%;
    white-space: normal;
  }
  .crm-inventory-workbench__toolbar .crm-filterbar input[type="search"] {
    flex: none;
    width: 100%;
    min-height: 44px;
  }
  .crm-inventory-workbench__toolbar .crm-filterbar > a {
    grid-column: 1 / -1;
  }
  .crm-catalog-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .crm-catalog-nav {
    position: static;
    max-height: 240px;
  }
  .crm-catalog-summary--tariff {
    top: 0;
  }
}

@media (max-width: 768px) {
  .crm-suppliers-toolbar > #crm-local-search,
  .crm-suppliers-query > input[type="search"] {
    flex-basis: 100%;
  }
  .crm-orders-filterbar {
    grid-template-columns: minmax(0, 1fr);
  }
  .crm-orders-filterbar > input,
  .crm-orders-filterbar > select,
  .crm-orders-filterbar > .crm-table-export {
    min-height: 44px;
  }
  .crm-catalog__head {
    display: grid;
  }
  .crm-catalog-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
  }
  .crm-catalog-actions .crm-button {
    min-width: 0;
    width: 100%;
  }
  .crm-catalog-actions__journal {
    grid-column: 3;
  }
  .crm-catalog-summary {
    align-items: flex-start;
  }
  .crm-catalog-summary__main {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .crm-catalog-summary__title {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .crm-catalog-summary__actions {
    max-width: none;
  }
  .crm-catalog-product__meta {
    align-items: flex-end;
    flex-direction: column;
    gap: 2px;
  }
  .crm-catalog-product__details {
    padding-left: 12px;
  }
  .crm-form-grid,
  .crm-category-checks {
    grid-template-columns: minmax(0, 1fr);
  }
  dialog.crm-dialog--catalog {
    max-width: none;
    padding: 16px;
  }
}
.common-catalog{display:grid;gap:20px}.common-catalog__header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.common-catalog__counts{display:flex;flex-wrap:wrap;gap:8px}.common-catalog__counts span,.common-catalog__status{border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px}.common-catalog__toolbar,.common-catalog__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.common-catalog__toolbar label:first-child{flex:1 1 280px}.common-catalog__toolbar input[type=search]{width:100%}.common-catalog__check{display:flex!important;align-items:center;gap:7px}.common-catalog__actions>details{flex:1 1 210px}.common-catalog__create,.common-catalog__category,.common-catalog__group,.common-catalog__item,.common-catalog__empty{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:14px}.common-catalog__create>summary,.common-catalog__category>summary,.common-catalog__edit>summary{cursor:pointer;font-weight:650}.common-catalog__create form,.common-catalog__edit form{display:grid;gap:10px;margin-top:12px}.common-catalog__create label,.common-catalog__edit label{display:grid;gap:5px;min-width:0}.common-catalog__create input,.common-catalog__create select,.common-catalog__create textarea,.common-catalog__edit input,.common-catalog__edit select,.common-catalog__edit textarea{width:100%;min-width:0}.common-catalog__category>summary{display:flex;justify-content:space-between;gap:12px}.common-catalog__category>summary span:first-child{display:grid;gap:3px}.common-catalog__category>summary small{font-weight:400;color:var(--muted)}.common-catalog__groups,.common-catalog__items,.common-catalog__tree{display:grid;gap:12px;margin-top:12px}.common-catalog__group>header,.common-catalog__item{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.common-catalog__group>header h3{margin:0}.common-catalog__group>header div{min-width:0}.common-catalog__item>div{min-width:0;overflow-wrap:anywhere}.common-catalog__item .common-catalog__edit{flex:0 0 min(360px,100%)}.common-catalog__description{white-space:normal;overflow-wrap:anywhere}.common-catalog .is-archived{opacity:.68;border-style:dashed}.common-catalog__edit{margin-top:10px;min-width:0}.common-catalog__empty{text-align:center;padding:36px 20px}@media(max-width:768px){.common-catalog__header,.common-catalog__group>header,.common-catalog__item{display:grid}.common-catalog__toolbar>*{width:100%}.common-catalog__actions{display:grid}.common-catalog__category,.common-catalog__group,.common-catalog__item{padding:12px}.common-catalog__item .common-catalog__edit{width:100%}}

/* Common catalog workbench: mirrors the Telegram showcase navigation rhythm. */
.common-catalog {
  display: grid;
  gap: 10px;
}
.common-catalog__header {
  display: grid;
  gap: 4px;
  margin-bottom: 0;
}
.common-catalog__header h1 {
  margin: 0;
  font-size: clamp(26px, 2.1vw, 34px);
  line-height: 1.15;
}
.common-catalog__title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}
.common-catalog__lead {
  margin: 0;
  font-size: 13px;
}
.common-catalog__priority {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  color: var(--text);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.common-catalog__counts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.common-catalog__counts span,
.common-catalog__count {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  color: var(--muted);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}
.common-catalog__tabs {
  margin: 0;
  padding: 0 0 12px;
}
.common-catalog__panel-head,
.crm-catalog__panel-head {
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 4px;
}
.common-catalog__panel-heading,
.crm-catalog__panel-heading {
  flex: 1 1 520px;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 12px;
  min-width: 0;
}
.common-catalog__panel-heading h2,
.crm-catalog__panel-heading h2 {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
}
.common-catalog__panel-heading p,
.crm-catalog__panel-heading p {
  margin: 0;
  font-size: 13px;
}
.common-catalog__panel-actions,
.crm-catalog__panel-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.common-catalog__panel-actions .crm-count,
.crm-catalog__panel-actions .crm-count {
  margin-left: 0;
}
.common-catalog__controls {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.common-catalog__toolbar {
  flex: 1 1 520px;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) max-content max-content max-content;
  align-items: center;
  gap: 8px;
}
.common-catalog__toolbar label:first-child,
.common-catalog__toolbar input[type="search"] {
  width: 100%;
}
.common-catalog__check {
  display: inline-flex !important;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.common-catalog__check input[type="checkbox"] {
  width: auto;
  min-width: 16px;
}
[data-standard-article-field][hidden],
[data-manual-article-field][hidden],
[data-client-warranty-days][hidden],
[data-client-warranty-terms][hidden] {
  display: none;
}
.common-catalog__actions {
  flex: 0 0 auto;
  position: relative;
  z-index: 20;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 8px;
}
.common-catalog__actions > details {
  position: relative;
  flex: 0 0 auto;
  padding: 0;
  background: transparent;
  border: 0;
}
.common-catalog__create > summary {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  color: var(--accent-fg);
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: var(--button-radius);
  cursor: pointer;
  font-weight: 600;
  line-height: 1.2;
  list-style: none;
  white-space: nowrap;
}
.common-catalog__create > summary::-webkit-details-marker {
  display: none;
}
.common-catalog__create[open] > summary {
  box-shadow: var(--focus-ring);
}
.common-catalog__create > form {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 30;
  width: min(380px, calc(100vw - 56px));
  max-height: min(680px, calc(100vh - 150px));
  overflow: auto;
  margin: 0;
  padding: 16px;
  background: var(--panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
}
.common-catalog__layout {
  display: grid;
  grid-template-columns: minmax(200px, 250px) minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}
.common-catalog__nav {
  position: sticky;
  top: 76px;
  display: grid;
  gap: 3px;
  max-height: calc(100vh - 96px);
  overflow: auto;
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
}
.common-catalog__nav-title {
  padding: 2px 0 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.common-catalog__nav-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 10px;
  align-items: center;
  padding: 6px 8px;
  border-radius: 6px;
  font-weight: 600;
}
.common-catalog__nav-link span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.common-catalog__nav-link span:last-child {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.common-catalog__nav-link:hover {
  background: var(--panel-2);
  text-decoration: none;
}
.common-catalog__tree {
  display: grid;
  gap: 12px;
  min-width: 0;
  margin: 0;
}
.common-catalog__category,
.common-catalog__group,
.common-catalog__item,
.common-catalog__empty {
  padding: 0;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}
.common-catalog__category {
  box-shadow: var(--shadow-ui-frame);
  scroll-margin-top: 76px;
}
.common-catalog__category[hidden] {
  display: none;
}
.common-catalog__summary,
.common-catalog__group-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}
.common-catalog__summary::-webkit-details-marker,
.common-catalog__group-summary::-webkit-details-marker {
  display: none;
}
.common-catalog__summary::before,
.common-catalog__group-summary::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid var(--muted);
  transition: transform .15s ease;
}
.common-catalog__category[open] > .common-catalog__summary::before,
.common-catalog__group[open] > .common-catalog__group-summary::before {
  transform: rotate(90deg);
}
.common-catalog__summary-main {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-right: auto;
}
.common-catalog__summary-main strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.common-catalog__status {
  flex: 0 0 auto;
  padding: 0;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.common-catalog__category-body {
  padding: 0 16px 16px;
  border-top: 1px solid var(--line);
}
.common-catalog__category-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
}
.common-catalog__category-meta:empty {
  display: none;
}
.common-catalog__description {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  white-space: normal;
  overflow-wrap: anywhere;
}
.common-catalog__groups {
  display: grid;
  gap: 8px;
  margin: 0;
}
.common-catalog__group {
  overflow: hidden;
  background: var(--panel-2);
  box-shadow: none;
}
.common-catalog__group-summary {
  min-height: 48px;
  padding: 10px 12px;
}
.common-catalog__group-body {
  padding: 0 12px 12px 29px;
  border-top: 1px solid var(--line);
}
.common-catalog__group-body > .common-catalog__description {
  padding-top: 10px;
}
.common-catalog__items {
  display: grid;
  gap: 0;
  margin: 10px 0 0;
  overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}
.common-catalog__item {
  display: block;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
}
.common-catalog__item:last-child {
  border-bottom: 0;
}
.common-catalog__item-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 8px 10px;
  cursor: pointer;
  list-style: none;
}
.common-catalog__item-summary::-webkit-details-marker {
  display: none;
}
.common-catalog__item-summary::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid var(--muted);
  transition: transform .15s ease;
}
.common-catalog__item[open] > .common-catalog__item-summary::before {
  transform: rotate(90deg);
}
.common-catalog__item-title {
  min-width: 0;
  margin-right: auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow-wrap: anywhere;
}
.common-catalog__item-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}
.common-catalog__item-details {
  display: grid;
  gap: 8px;
  padding: 10px 12px 12px 29px;
  border-top: 1px solid var(--line);
}
.common-catalog__item-details-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}
.common-catalog__item-details .common-catalog__description {
  max-width: none;
}
.crm-reference-number {
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .82em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.crm-reference-picker {
  display: grid;
  gap: 6px;
  width: 100%;
  min-width: 0;
}
.crm-reference-combobox {
  position: relative;
  display: grid;
  gap: 4px;
  width: 100%;
  min-width: 0;
}
.crm-reference-combobox__control {
  position: relative;
  display: block;
}
.crm-reference-combobox__input {
  width: 100%;
  min-width: 0;
  padding-right: 36px;
}
.crm-reference-combobox__clear {
  position: absolute;
  top: 50%;
  right: 6px;
  min-width: 28px;
  min-height: 28px;
  padding: 0;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: var(--button-radius);
  font-size: 20px;
  line-height: 1;
  transform: translateY(-50%);
}
.crm-reference-combobox__clear:hover,
.crm-reference-combobox__clear:focus-visible {
  color: var(--text);
  background: var(--panel-2);
}
.crm-reference-combobox__status {
  color: var(--muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.crm-reference-combobox__menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 4px;
  background: var(--panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-ui-frame);
}
.crm-reference-combobox__option {
  display: block;
  width: 100%;
  min-height: 34px;
  padding: 7px 9px;
  color: var(--text);
  background: transparent;
  border: 0;
  border-radius: 6px;
  text-align: left;
}
.crm-reference-combobox__option:hover,
.crm-reference-combobox__option:focus-visible,
.crm-reference-combobox__option.is-active {
  background: var(--panel-2);
}
.crm-reference-combobox__empty {
  display: block;
  padding: 10px;
  color: var(--muted);
  text-align: center;
}
.crm-reference-filter {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 4px 10px;
  align-items: center;
  width: 100%;
  min-width: 0;
}
.crm-reference-filter__input {
  min-width: 0;
}
.crm-reference-filter__hint {
  grid-column: 1;
  color: var(--muted);
  font-size: 12px;
}
.crm-reference-filter__status {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.crm-category-checks > .crm-reference-filter {
  grid-column: 1 / -1;
  margin-bottom: 4px;
}
@media (max-width: 768px) {
  .crm-reference-combobox__input {
    font-size: 16px;
  }
  .crm-reference-combobox__clear,
  .crm-reference-combobox__option {
    min-height: 44px;
  }
}
.common-catalog__edit {
  min-width: 0;
  margin: 0;
}
.common-catalog__edit > summary {
  cursor: pointer;
  font-weight: 600;
  list-style-position: inside;
}
.common-catalog__edit[open] {
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}
.common-catalog__edit form {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.common-catalog__edit label,
.common-catalog__create label {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.common-catalog__edit input,
.common-catalog__edit select,
.common-catalog__edit textarea,
.common-catalog__create input,
.common-catalog__create select,
.common-catalog__create textarea {
  width: 100%;
  min-width: 0;
}
.common-catalog .is-archived {
  opacity: .68;
  border-style: dashed;
}
.common-catalog__empty {
  padding: 36px 20px;
  text-align: center;
}

@media (max-width: 980px) {
  .common-catalog__controls {
    align-items: stretch;
    flex-direction: column;
  }
  .common-catalog__toolbar {
    flex-basis: auto;
  }
  .common-catalog__layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .common-catalog__nav {
    position: static;
    max-height: 220px;
  }
}

@media (max-width: 720px) {
  .crm-time-settings__row {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }
  .crm-time-settings__row strong {
    text-align: left;
  }
  .crm-time-settings__row select {
    width: 100%;
  }
  .crm-time-settings__toggle {
    flex-direction: row;
    align-items: center;
  }
  .crm-time-settings__actions {
    display: grid;
  }
  .crm-time-settings__actions button {
    width: 100%;
  }
  .common-catalog__category-meta {
    display: grid;
  }
  .common-catalog__toolbar {
    grid-template-columns: minmax(0, 1fr) max-content;
  }
  .common-catalog__toolbar > label:first-of-type {
    grid-column: 1 / -1;
  }
  .common-catalog__toolbar > a {
    grid-column: 1 / -1;
  }
  .common-catalog__toolbar > label:first-of-type,
  .common-catalog__toolbar > a {
    width: 100%;
  }
  .common-catalog__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }
  .common-catalog__create > summary {
    justify-content: center;
    width: 100%;
    padding-inline: 8px;
    font-size: 13px;
  }
  .common-catalog__create > form {
    position: static;
    width: 100%;
    max-height: none;
    margin-top: 8px;
  }
  .common-catalog__item {
    display: block;
    padding: 0;
  }
  .common-catalog__item-summary {
    align-items: flex-start;
  }
  .common-catalog__item-title {
    white-space: normal;
  }
  .common-catalog__item-actions {
    align-items: flex-end;
  }
}
