/* ---------- Токены (см. дизайн.txt) ---------- */
:root {
  --ink: #000000;
  --graphite: #302D2E;
  --taupe: #6F6F6E;
  --gold: #DCCA9A;
  --gold-hover: #EDE6D5;
  --silver: #D3D7D7;
  --bg: #FAFAFA;
  --bg-soft: #F7F7F7;
  --card: #FFFFFF;
  --line: rgba(48, 45, 46, .14);
  --warn: #9A7B3C;          /* > 90 дней — приглушённая охра */
  --alert: #8E4A3C;         /* > 180 дней — приглушённый кирпич */
  --serif: 'Cormorant', 'Times New Roman', serif;
  --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink: #F7F5F1; --graphite: #E4E0DA; --taupe: #A3A09B;
    --bg: #0E0E0F; --bg-soft: #161617; --card: #1B1B1C;
    --line: rgba(247, 245, 241, .14); --silver: #3A3B3D;
    --gold-hover: #4A4436; --warn: #C9A866; --alert: #C98272;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --ink: #F7F5F1; --graphite: #E4E0DA; --taupe: #A3A09B;
  --bg: #0E0E0F; --bg-soft: #161617; --card: #1B1B1C;
  --line: rgba(247, 245, 241, .14); --silver: #3A3B3D;
  --gold-hover: #4A4436; --warn: #C9A866; --alert: #C98272;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
html { scrollbar-gutter: stable; }
body {
  background: var(--bg); color: var(--ink);
  font: 400 14px/1.5 var(--sans);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh; display: flex; flex-direction: column;
}
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--graphite); outline-offset: 2px; }
.num, td.n, .price { font-variant-numeric: tabular-nums; }
svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.eyebrow {
  font: 500 .68rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--taupe);
}
.link {
  color: var(--taupe); text-decoration: underline; text-underline-offset: 3px;
  font-size: .78rem; letter-spacing: .02em;
}
.link:hover { color: var(--ink); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--gold); color: #000; border: 0; border-radius: 0;
  font: 600 .76rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase;
  padding: 1rem 2.2rem;
}
.btn:hover { background: var(--gold-hover); color: var(--taupe); }
.btn--wide { width: 100%; }
.btn--ghost { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.btn--ghost:hover { background: var(--bg-soft); color: var(--ink); }

/* ---------- Шапка ---------- */
.top { position: sticky; top: 0; z-index: 30; background: var(--bg); border-bottom: 1px solid var(--line); }
.top__inner {
  max-width: 1680px; margin: 0 auto; padding: 14px 32px;
  display: flex; align-items: center; gap: 40px;
}
.brand { display: flex; flex-direction: column; text-decoration: none; color: inherit; line-height: 1; }
.brand__name { font: 500 26px/1 var(--serif); letter-spacing: .22em; }
.brand__sub { margin-top: 6px; font: 500 .62rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--taupe); }
.tabs { display: flex; gap: 26px; }
.tabs a { white-space: nowrap; }
@media (max-width: 1500px) { .stamp { display: none; } }
.tabs a {
  color: var(--taupe); text-decoration: none; padding: 8px 0;
  font: 500 .72rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase;
  border-bottom: 1px solid transparent;
}
.tabs a:hover { color: var(--ink); }
.tabs a.is-on { color: var(--ink); border-bottom-color: var(--gold); }
.top__right { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.stamp { font-size: .72rem; color: var(--taupe); text-align: right; line-height: 1.35; }
.theme-btn { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 999px; }
.theme-btn svg { width: 17px; height: 17px; }
.theme-btn:hover { border-color: var(--gold); }

/* ---------- Каталог ---------- */
.view { flex: 1; }
.layout {
  max-width: 1680px; margin: 0 auto; padding: 32px;
  display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 48px; align-items: start;
}
.filters { position: sticky; top: 92px; max-height: calc(100vh - 110px); overflow: auto; padding-right: 8px; scrollbar-width: thin; }
.filters__head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.filters__apply { display: none; }
.f-block { border-bottom: 1px solid var(--line); }
.f-block > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
  padding: 14px 0; font: 600 .72rem/1.2 var(--sans); letter-spacing: .1em; text-transform: uppercase;
}
.f-block > summary::-webkit-details-marker { display: none; }
.f-block > summary::after { content: ''; width: 7px; height: 7px; border-right: 1px solid var(--taupe); border-bottom: 1px solid var(--taupe); transform: rotate(45deg); margin-right: 4px; }
.f-block[open] > summary::after { transform: rotate(-135deg); }
.f-block .badge { margin-left: auto; margin-right: 12px; background: var(--gold); color: #000; font-size: .62rem; padding: 2px 7px; letter-spacing: 0; }
.f-body { padding: 0 0 16px; }
.f-sub { margin: 6px 0 4px; }
.opts { display: flex; flex-direction: column; gap: 2px; max-height: 260px; overflow: auto; scrollbar-width: thin; }
.opt {
  display: flex; align-items: center; gap: 10px; padding: 5px 2px; cursor: pointer; font-size: .82rem;
}
.opt input { appearance: none; width: 15px; height: 15px; border: 1px solid var(--taupe); margin: 0; flex: none; display: grid; place-items: center; }
.opt input:checked { background: var(--gold); border-color: var(--gold); }
.opt input:checked::after { content: ''; width: 7px; height: 4px; border-left: 1.5px solid #000; border-bottom: 1.5px solid #000; transform: rotate(-45deg) translate(1px, -1px); }
.opt .cnt { margin-left: auto; color: var(--taupe); font-size: .72rem; font-variant-numeric: tabular-nums; }
.opt.is-zero { opacity: .4; }
.opt-search { width: 100%; height: 34px; padding: 0 10px; border: 1px solid var(--line); background: var(--card); margin-bottom: 8px; font-size: .8rem; border-radius: 0; outline: none; }
.range { display: flex; align-items: center; gap: 8px; }
.range input { width: 100%; height: 36px; padding: 0 10px; border: 1px solid var(--line); background: var(--card); border-radius: 0; font-size: .82rem; font-variant-numeric: tabular-nums; outline: none; }
.range input:focus, .opt-search:focus { border-color: var(--graphite); }
.range span { color: var(--taupe); }
.range-hint { margin-top: 6px; font-size: .7rem; color: var(--taupe); }

.search-row { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.search { flex: 1; min-width: 260px; position: relative; display: flex; align-items: center; }
.search svg { position: absolute; left: 0; width: 18px; height: 18px; color: var(--taupe); }
.search input {
  width: 100%; height: 46px; padding: 0 8px 0 30px; border: 0; border-bottom: 1px solid var(--line);
  background: transparent; outline: none; font-size: .95rem; border-radius: 0;
}
.search input:focus { border-bottom-color: var(--graphite); }
.search--sm { max-width: 380px; }
.age-switch { display: flex; border: 1px solid var(--line); }
.age-switch button {
  padding: 10px 16px; font: 500 .68rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--taupe);
  border-left: 1px solid var(--line);
}
.age-switch button:first-child { border-left: 0; }
.age-switch button.is-on { background: var(--gold); color: #000; }
.age-switch button .cnt { margin-left: 6px; font-variant-numeric: tabular-nums; opacity: .8; }

.toolbar { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin: 22px 0 10px; }
.toolbar__count { font-size: .82rem; color: var(--taupe); }
.toolbar__count b { color: var(--ink); font-weight: 600; }
.toolbar__right { margin-left: auto; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.filters-toggle { display: none; }
.select { display: flex; align-items: center; gap: 10px; }
.select select, .select input {
  height: 36px; border: 1px solid var(--line); background: var(--card); padding: 0 10px; border-radius: 0; font-size: .8rem;
}
.seg { display: flex; border: 1px solid var(--line); }
.seg button { width: 36px; height: 34px; display: grid; place-items: center; color: var(--taupe); }
.seg button + button { border-left: 1px solid var(--line); }
.seg button.is-on { color: #000; background: var(--gold); }
.seg svg { width: 16px; height: 16px; }

.chips-active { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; min-height: 4px; }
.chip {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid var(--line);
  font-size: .74rem; background: var(--card);
}
.chip button { color: var(--taupe); font-size: 1rem; line-height: 1; }
.chip button:hover { color: var(--ink); }

/* карточки: 3 колонки, на планшете и телефоне — 2 */
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 28px; }
@media (min-width: 1500px) { .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.card { cursor: pointer; display: flex; flex-direction: column; min-width: 0; }
.card__photo { position: relative; aspect-ratio: 4 / 5; background: var(--bg-soft); overflow: hidden; }
.card__photo img { width: 100%; height: 100%; object-fit: contain; transition: transform .6s ease; display: block; }
/* фото квадратные на фоне (250,250,250) — рамку 4:5 добиваем тем же цветом */
.card__photo:has(img), .m-photo:has(img), .t .thumb:has(img) { background: #FAFAFA; }
.card:hover .card__photo img { transform: scale(1.045); }
.ph { width: 100%; height: 100%; display: grid; place-items: center; color: var(--silver); }
.ph svg { width: 34%; height: auto; stroke-width: .8; }
.ph--sm svg { width: 60%; }
.card__loc {
  position: absolute; left: 0; bottom: 0; right: 0; padding: 10px 12px;
  display: flex; align-items: baseline; gap: 8px; justify-content: space-between;
  background: color-mix(in srgb, var(--bg) 90%, transparent);
  font-size: .72rem; border-top: 1px solid var(--line);
}
.card__loc .where { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.days { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.days--warn { color: var(--warn); }
.days--alert { color: var(--alert); }
.days::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: currentColor; margin-right: 6px; vertical-align: 1px; opacity: 0; }
.days--warn::before, .days--alert::before { opacity: 1; }
.card__meta { margin-top: 14px; }
.card__name { font: 500 1.28rem/1.2 var(--serif); margin: 6px 0 4px; }
.card__art { font-size: .72rem; color: var(--taupe); letter-spacing: .04em; word-break: break-all; }
.card__specs { font-size: .74rem; color: var(--taupe); margin-top: 6px; }
.card__price { margin-top: 10px; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.price { font: 500 1.35rem/1 var(--serif); color: var(--ink); }
.price-sub { font-size: .72rem; color: var(--taupe); font-variant-numeric: tabular-nums; }

.more { display: flex; justify-content: center; margin: 48px 0 16px; }
.empty { grid-column: 1 / -1; padding: 80px 0; text-align: center; color: var(--taupe); }
.empty h3 { font: 400 1.6rem/1.2 var(--serif); color: var(--ink); margin: 0 0 8px; }

/* ---------- Таблицы ---------- */
.table-wrap { overflow-x: auto; border-top: 1px solid var(--line); }
table.t { width: 100%; border-collapse: collapse; font-size: .8rem; }
.t th {
  text-align: left; padding: 12px 10px; white-space: nowrap; border-bottom: 1px solid var(--line);
  font: 600 .64rem/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--taupe);
  position: sticky; top: 0; background: var(--bg);
}
.t th[data-sort] { cursor: pointer; }
.t th[data-sort]:hover, .t th.is-sorted { color: var(--ink); }
.t th.is-sorted::after { content: ' ↓'; }
.t th.is-sorted.asc::after { content: ' ↑'; }
.t td { padding: 11px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.t td.n, .t th.n { text-align: right; font-variant-numeric: tabular-nums; }
.t tbody tr { cursor: pointer; }
.t tbody tr:hover td { background: var(--bg-soft); }
.t .thumb { width: 44px; height: 55px; background: var(--bg-soft); overflow: hidden; }
.t .thumb img { width: 100%; height: 100%; object-fit: contain; }
.t .muted { color: var(--taupe); }
.t .ttl { font: 500 1rem/1.2 var(--serif); }
.t tfoot td { font-weight: 600; border-bottom: 0; }

/* ---------- Страницы: партнёры, история ---------- */
.page { max-width: 1680px; width: 100%; margin: 0 auto; padding: 40px 32px 64px; }
.page__head { margin-bottom: 28px; }
.page__head h1 { font: 400 2.6rem/1.1 var(--serif); margin: 8px 0 0; }
.tiles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--line); margin-bottom: 36px; }
.tile { padding: 22px 20px; border-left: 1px solid var(--line); }
.tile:first-child { border-left: 0; }
.tile b { display: block; font: 500 1.9rem/1.1 var(--serif); margin-top: 8px; font-variant-numeric: tabular-nums; }
.tile small { display: block; color: var(--taupe); font-size: .72rem; margin-top: 4px; }
button.tile { text-align: left; cursor: pointer; }
button.tile:hover { background: var(--bg-soft); }
.bar { height: 4px; background: var(--bg-soft); position: relative; min-width: 80px; }
.bar i { position: absolute; inset: 0 auto 0 0; background: var(--gold); }
.note { color: var(--taupe); font-size: .78rem; margin-top: 16px; max-width: 820px; }
.hist-filters { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin-bottom: 22px; }
.ev { font: 600 .64rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; padding: 5px 8px; border: 1px solid var(--line); white-space: nowrap; }
.ev--move { border-color: var(--gold); }
.ev--out { color: var(--alert); }

/* ---------- Админка ---------- */
.tabs__admin { padding-left: 28px !important; border-left: 1px solid var(--line); }
.adm-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin-bottom: 22px; }
.adm-tabs button {
  padding: 12px 18px; margin-bottom: -1px; border-bottom: 1px solid transparent; color: var(--taupe);
  font: 500 .7rem/1.2 var(--sans); letter-spacing: .1em; text-transform: uppercase;
}
.adm-tabs button:hover { color: var(--ink); }
.adm-tabs button.is-on { color: var(--ink); border-bottom-color: var(--gold); }
button.chip { cursor: pointer; }
.chip--on { background: var(--gold); color: #000; border-color: var(--gold); }
.t--kv td:first-child { width: 300px; }
.t--kv tbody tr { cursor: default; }
#adminBody .note { margin: 0 0 16px; }

/* ---------- Модальное окно ---------- */
.modal { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 24px; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(14, 14, 15, .55); }
.modal__box {
  position: relative; background: var(--bg); width: min(1100px, 100%); max-height: calc(100vh - 48px); overflow: auto;
  border: 1px solid var(--line);
}
.modal__close { position: absolute; right: 14px; top: 14px; width: 40px; height: 40px; display: grid; place-items: center; z-index: 2; }
.modal__close svg { width: 22px; height: 22px; }
.modal__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.m-photo { aspect-ratio: 4 / 5; background: var(--bg-soft); }
.m-photo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.m-info { padding: 44px 40px 36px; }
.m-info h2 { font: 400 2rem/1.15 var(--serif); margin: 10px 0 6px; }
.m-art { font-size: .78rem; color: var(--taupe); letter-spacing: .04em; }
.m-prices { display: flex; gap: 32px; margin: 22px 0; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.m-prices b { display: block; font: 500 1.8rem/1.1 var(--serif); margin-top: 6px; font-variant-numeric: tabular-nums; }
.m-loc { display: grid; grid-template-columns: auto 1fr; gap: 8px 22px; font-size: .82rem; margin-bottom: 22px; }
.m-loc dt { color: var(--taupe); }
.m-loc dd { margin: 0; font-weight: 500; }
.acc { border-top: 1px solid var(--line); }
.acc:last-of-type { border-bottom: 1px solid var(--line); }
.acc > summary {
  list-style: none; cursor: pointer; padding: 14px 0; display: flex; align-items: center; gap: 12px;
  font: 600 .72rem/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase;
}
.acc > summary::-webkit-details-marker { display: none; }
.acc > summary svg { width: 18px; height: 18px; color: var(--gold); flex: none; }
.acc > summary::after { content: '+'; margin-left: auto; font-weight: 400; font-size: 1.1rem; color: var(--taupe); }
.acc[open] > summary::after { content: '–'; }
.acc dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; margin: 0 0 16px; font-size: .82rem; }
.acc dt { color: var(--taupe); }
.acc dd { margin: 0; }
.acc ul { margin: 0 0 16px; padding: 0; list-style: none; font-size: .82rem; }
.acc li { padding: 6px 0; border-bottom: 1px solid var(--line); display: flex; gap: 12px; }
.acc li:last-child { border-bottom: 0; }
.acc li .muted { color: var(--taupe); }

/* ---------- Подвал ---------- */
.foot { background: linear-gradient(180deg, #4E515B, #3D4048); color: #F7F5F1; text-align: center; padding: 40px 24px 36px; margin-top: 40px; }
.foot__logo { font: 500 24px/1 var(--serif); letter-spacing: .26em; }
.foot__meta { margin-top: 12px; font-size: .72rem; color: #C9CBD0; letter-spacing: .04em; }

/* ---------- Адаптив ---------- */
@media (max-width: 1180px) {
  .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tile:nth-child(4) { border-left: 0; }
  .tile:nth-child(n+4) { border-top: 1px solid var(--line); }
}
@media (max-width: 1024px) {
  .layout { grid-template-columns: minmax(0, 1fr); padding: 20px 16px; }
  .filters {
    position: fixed; inset: 0 auto 0 0; z-index: 40; width: min(360px, 92vw); max-height: none; height: 100%;
    background: var(--bg); padding: 20px; border-right: 1px solid var(--line); transform: translateX(-102%); transition: transform .25s ease;
  }
  .filters.is-open { transform: none; }
  .filters__apply { display: block; position: sticky; bottom: -20px; background: var(--bg); padding: 16px 0 20px; }
  .filters-toggle { display: inline; }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
  .top__inner { padding: 12px 16px; gap: 20px; flex-wrap: wrap; }
  .tabs { order: 3; width: 100%; gap: 20px; overflow-x: auto; }
  .page { padding: 28px 16px 48px; }
  .modal__body { grid-template-columns: minmax(0, 1fr); }
  .m-photo { aspect-ratio: 1; }
  .m-info { padding: 28px 20px; }
}
@media (max-width: 600px) {
  .stamp { display: none; }
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile:nth-child(odd) { border-left: 0; }
  .tile:nth-child(4) { border-left: 1px solid var(--line); }
  .tile:nth-child(n+3) { border-top: 1px solid var(--line); }
  .card__name { font-size: 1.08rem; }
  .price { font-size: 1.15rem; }
  .card__loc { flex-direction: column; gap: 2px; }
  .card__loc .where { max-width: 100%; }
  .page__head h1 { font-size: 2rem; }
  .modal { padding: 0; }
  .modal__box { max-height: 100vh; height: 100%; }
  .toolbar__right { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Загрузка фото (админка) ---------- */
.upload-box {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  border: 1px dashed var(--taupe); padding: 18px 20px; margin-bottom: 18px; font-size: .82rem;
}
.upload-box .muted { color: var(--taupe); }
.upload-box.is-drop, tr.is-drop td { background: var(--gold-hover); }
.upload-status { font-size: .82rem; margin: 0 0 16px; }
.upload-status .err { color: var(--alert); }
.upload-status .muted { color: var(--taupe); }

/* ---------- Модели и заявки на перемещение ---------- */
.card__count {
  position: absolute; top: 12px; left: 12px; background: var(--gold); color: #000;
  font: 600 .66rem/1 var(--sans); letter-spacing: .08em; padding: 6px 8px;
}
.tr-badge { display: inline-block; margin-top: 8px; font: 600 .64rem/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--warn); }
.tr-badge--cart { color: var(--taupe); }
.tabs__count { background: var(--gold); color: #000; font-size: .6rem; padding: 2px 6px; margin-left: 4px; letter-spacing: 0; }
.modal__body--wide { display: block; }
.mg-head { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; padding: 40px 40px 8px; }
.mg-photo { aspect-ratio: 1; background: #FAFAFA; }
.mg-photo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.mg-head h2, .tr-form h2 { font: 400 2rem/1.15 var(--serif); margin: 10px 0 6px; }
.mg-locs { display: flex; flex-wrap: wrap; gap: 8px; }
.mg-units { padding: 8px 40px 32px; }
.mg-actions { display: flex; justify-content: flex-end; align-items: center; gap: 22px; margin: 16px 0; flex-wrap: wrap; }
.t td.chk { width: 34px; }
.t td.chk input { width: 16px; height: 16px; accent-color: #000; }
.t tbody tr[data-unit] { cursor: pointer; }
.tr-box { border: 1px solid var(--line); padding: 16px 18px; margin-top: 22px; font-size: .84rem; }
.tr-box p { margin: 6px 0 8px; }
.tr-form { padding: 40px; }
.tr-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 22px 0; }
.tr-fields label { display: flex; flex-direction: column; gap: 6px; }
.tr-fields input, .tr-fields textarea {
  border: 1px solid var(--line); background: var(--card); border-radius: 0; padding: 9px 10px; font-size: .86rem; outline: none;
}
.tr-fields input:focus, .tr-fields textarea:focus { border-color: var(--graphite); }
.tr-wide { grid-column: 1 / -1; }
.tr-error { color: var(--alert); font-size: .84rem; }
tr[data-tr-row] { cursor: pointer; }
tr[data-tr-row].is-open td { background: var(--bg-soft); }
.tr-detail > td { background: var(--bg-soft); padding: 8px 18px 18px; }
.t--inner { margin-top: 8px; }
.t--inner th { background: var(--bg-soft); }
.ev--tr-new { border-color: var(--gold); }
.ev--tr-partial { border-color: var(--gold); color: var(--warn); }
.ev--tr-done { color: var(--taupe); }
.ev--tr-cancelled { color: var(--alert); }
@media (max-width: 1024px) {
  .mg-head { grid-template-columns: minmax(0, 1fr); padding: 28px 20px 8px; }
  .mg-photo { max-width: 260px; }
  .mg-units, .tr-form { padding: 8px 20px 24px; }
  .tr-fields { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Заявка: кнопка в шапке, боковая панель, страница ---------- */
.cart-btn {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px;
  border: 1px solid var(--line); font: 500 .68rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase;
}
.cart-btn:hover { border-color: var(--gold); }
.cart-btn svg { width: 17px; height: 17px; }
.cart-btn b { background: var(--gold); color: #000; font-size: .66rem; padding: 3px 7px; letter-spacing: 0; }

.drawer { position: fixed; inset: 0; z-index: 48; }
.drawer__backdrop { position: absolute; inset: 0; background: rgba(14, 14, 15, .45); opacity: 0; transition: opacity .25s ease; }
.drawer__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100vw); background: var(--bg);
  border-left: 1px solid var(--line); display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .25s ease;
}
.drawer.is-open .drawer__backdrop { opacity: 1; }
.drawer.is-open .drawer__panel { transform: none; }
.drawer__head { display: flex; justify-content: space-between; align-items: flex-start; padding: 24px 24px 16px; border-bottom: 1px solid var(--line); }
.drawer__head h2 { font: 400 1.6rem/1.15 var(--serif); margin: 6px 0 0; }
.drawer__close { width: 40px; height: 40px; display: grid; place-items: center; margin: -6px -8px 0 0; }
.drawer__close svg { width: 22px; height: 22px; }
.drawer__body { flex: 1; overflow: auto; padding: 4px 24px; }
.drawer__empty { padding: 48px 0; color: var(--taupe); text-align: center; }
.drawer__empty h3 { font: 400 1.4rem/1.2 var(--serif); color: var(--ink); margin: 0 0 8px; }
.drawer__foot { border-top: 1px solid var(--line); padding: 16px 24px 22px; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.sum-row { width: 100%; display: flex; justify-content: space-between; gap: 12px; font-size: .84rem; font-variant-numeric: tabular-nums; }

.cl-list { list-style: none; margin: 0; padding: 0; }
.cl { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.cl:last-child { border-bottom: 0; }
.cl:hover .cl__name { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.cl .thumb { width: 72px; height: 72px; background: #FAFAFA; overflow: hidden; }
.cl .thumb img { width: 100%; height: 100%; object-fit: contain; }
.cl__name { font: 500 1.05rem/1.2 var(--serif); }
.cl__art { font-size: .7rem; color: var(--taupe); margin-top: 3px; word-break: break-all; }
.cl__meta { font-size: .72rem; color: var(--taupe); margin-top: 3px; }
.cl__from { font-size: .74rem; margin-top: 6px; font-weight: 500; }
.cl__side { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 8px; }
.cl__price { font: 500 1.05rem/1 var(--serif); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cl__del { width: 30px; height: 30px; display: grid; place-items: center; color: var(--taupe); }
.cl__del:hover { color: var(--alert); }
.cl__del svg { width: 16px; height: 16px; }
.cl-list--big .cl { grid-template-columns: 110px minmax(0, 1fr) auto; }
.cl-list--big .thumb { width: 110px; height: 110px; }
.cl-list--big .cl__name { font-size: 1.25rem; }

.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; }
.cart-group { margin-bottom: 28px; }
.cart-group__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding-bottom: 10px; border-bottom: 1px solid var(--graphite); }
.cart-group__head b { font: 500 1.2rem/1.2 var(--serif); }
.cart-group__head .muted { margin-left: auto; color: var(--taupe); font-size: .78rem; font-variant-numeric: tabular-nums; }
.cart-side { position: sticky; top: 92px; border: 1px solid var(--line); background: var(--card); }
.cart-side .tr-form { padding: 26px 24px; display: flex; flex-direction: column; gap: 14px; }
.cart-side .tr-form h2 { font: 400 1.6rem/1.1 var(--serif); margin: 0 0 4px; }
.cart-side label { display: flex; flex-direction: column; gap: 6px; }
.cart-side input, .cart-side textarea {
  border: 1px solid var(--line); background: var(--bg); border-radius: 0; padding: 10px 11px; font-size: .86rem; outline: none; width: 100%;
}
.cart-side input:focus, .cart-side textarea:focus { border-color: var(--graphite); }
.cart-side .link { align-self: center; }
.cart-side .note { margin: 0; font-size: .72rem; }
.sum-box { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; margin: 6px 0 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .82rem; font-variant-numeric: tabular-nums; }
.sum-box dt { color: var(--taupe); }
.sum-box dd { margin: 0; text-align: right; }
.sum-box .sum-box__main { color: var(--ink); font-weight: 600; font-size: .92rem; }

.card__add {
  position: absolute; top: 12px; right: 12px; z-index: 1; padding: 8px 11px; background: var(--bg); border: 1px solid var(--line);
  font: 600 .64rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; opacity: 0; transition: opacity .2s ease;
}
.card:hover .card__add, .card:focus-within .card__add { opacity: 1; }
.card__add:hover { background: var(--gold); border-color: var(--gold); color: #000; }
@media (hover: none) { .card__add { opacity: 1; } }

.toast {
  position: fixed; left: 50%; bottom: 24px; z-index: 60; display: flex; align-items: center; gap: 18px;
  padding: 14px 18px; background: var(--graphite); color: var(--bg); font-size: .84rem; max-width: calc(100vw - 32px);
  transform: translate(-50%, 12px); opacity: 0; transition: opacity .25s ease, transform .25s ease;
}
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.toast .link { color: var(--gold); }
.toast b { font-weight: 600; }
.cart-fab {
  position: fixed; right: 16px; bottom: 16px; z-index: 44; display: none; align-items: center; gap: 8px;
  height: 48px; padding: 0 16px; background: var(--gold); color: #000; font-weight: 600;
}
.cart-fab svg { width: 20px; height: 20px; }
.to-top {
  position: fixed; right: 24px; bottom: 24px; z-index: 43; width: 44px; height: 44px; display: grid; place-items: center;
  border: 1px solid var(--line); background: var(--bg);
}
.to-top:hover { border-color: var(--gold); }
.to-top svg { width: 20px; height: 20px; }
.t .thumb { background: #FAFAFA; }
@media (max-width: 1024px) {
  .cart-layout { grid-template-columns: minmax(0, 1fr); }
  .cart-side { position: static; }
  .cart-fab:not([hidden]) { display: inline-flex; }
  .to-top { bottom: 76px; right: 16px; }
  .cart-btn span { display: none; }
}
@media (max-width: 600px) {
  .cl-list--big .cl { grid-template-columns: 76px minmax(0, 1fr); }
  .cl-list--big .thumb { width: 76px; height: 76px; }
  .cl-list--big .cl__side { grid-column: 2; flex-direction: row; align-items: center; }
}

/* ---------- Компактная шапка на телефоне ---------- */
.tabs { scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
@media (max-width: 600px) {
  .top__inner { padding: 10px 16px 0; gap: 8px 12px; }
  .brand__name { font-size: 20px; letter-spacing: .18em; }
  .brand__sub { display: none; }
  .top__right { gap: 10px; }
  .theme-btn, .cart-btn { height: 34px; }
  .theme-btn { width: 34px; }
  .tabs { gap: 18px; }
  .tabs a { padding: 10px 0 12px; font-size: .66rem; }
}
@media (max-width: 600px) {
  .age-switch { width: 100%; }
  .age-switch button { flex: 1; padding: 9px 4px; font-size: .58rem; letter-spacing: .06em; }
  .age-switch button .cnt { display: block; margin: 3px 0 0; }
}

/* ---------- Карточка: артикул вместо названия, все места, три цены ---------- */
.card__name--art { font: 500 1.28rem/1.2 var(--serif); letter-spacing: .01em; word-break: break-word; }
.card__locs { list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--line); font-size: .76rem; }
.card__locs li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.card__locs .where { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.card__locs-n { display: flex; gap: 10px; white-space: nowrap; color: var(--taupe); font-variant-numeric: tabular-nums; }
.card__locs-n .days { color: inherit; }
.card__locs-n .days--warn { color: var(--warn); }
.card__locs-n .days--alert { color: var(--alert); }
.card__price { margin-top: 12px; flex-direction: column; align-items: flex-start; gap: 4px; }
.card__prices-sub { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; font-size: .74rem; color: var(--taupe); font-variant-numeric: tabular-nums; }
.card__prices-sub b { color: var(--ink); font-weight: 500; }
.m-uin { margin-top: 8px; font-size: .84rem; font-variant-numeric: tabular-nums; }
.m-prices { flex-wrap: wrap; align-items: flex-end; }
.m-prices > div:not(.m-prices__main) b { font-size: 1.25rem; }
.m-prices__main b { font-size: 2rem; }
.m-info h2#mTitle, .mg-head h2#mTitle { word-break: break-word; }

/* ---------- Карточки одной высоты, цены на одной линии ---------- */
.card__meta { flex: 1; display: flex; flex-direction: column; }
.card__line { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card__name.card__line { margin: 6px 0 4px; }
.card__locs { min-height: calc(3 * 30px + 1px); }
.card__locs li { height: 30px; padding: 0; align-items: center; }
.card__locs .where { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
.card__locs-more { color: var(--taupe); font-weight: 500; }
.card__bottom { margin-top: auto; padding-top: 2px; }
@media (max-width: 1024px) {
  /* на узком экране артикул целиком, в две строки (место под две строки — у всех карточек) */
  .card__name.card__line {
    white-space: normal; word-break: break-all; font-size: 1.08rem; line-height: 1.2; min-height: 2.4em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  }
  .card__locs { font-size: .7rem; }
  .card__locs-n { gap: 6px; }
}

/* ---------- Карточки на subgrid: все места видны, секции выровнены по ряду ----------
   Каждая карточка занимает 7 строк общей сетки (фото, камень, артикул, характеристики, места, отметки, цены).
   Строка общей сетки высотой с самую высокую секцию в ряду — поэтому в ряду все карточки одной высоты,
   списки мест одной высоты, цены на одной линии, даже если у одной модели 1 место, а у соседней 9. */
.card__locs { min-height: 0; }
.card__locs li { height: auto; min-height: 30px; padding: 6px 0; align-items: baseline; }
.card__locs .where { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.card__badges:empty { display: none; }
@supports (grid-template-rows: subgrid) {
  .grid { row-gap: 0; }
  .card { display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0; margin-bottom: 44px; }
  .card__meta { display: contents; }
  .card__meta > .eyebrow { margin-top: 14px; }
  .card__locs { align-self: start; }
  .card__badges:empty { display: block; }
  .card__bottom { margin-top: 0; align-self: end; }
  .grid > .empty { grid-row: auto; }
  @media (max-width: 1024px) { .card { margin-bottom: 32px; } }
}
@media (max-width: 600px) {
  .card__locs li { flex-direction: column; align-items: flex-start; gap: 1px; padding: 5px 0; }
}

/* ---------- РЦ Стандарт в карточке — крупнее и чётче ---------- */
.card__price .price { font: 600 1.75rem/1.1 var(--serif); letter-spacing: .01em; color: var(--ink); }
.card__price .eyebrow { color: var(--graphite); font-weight: 600; }
@media (max-width: 600px) { .card__price .price { font-size: 1.4rem; } }

/* ---------- Артикулы — Montserrat (по дизайн.txt), цифры одной высоты ----------
   В Cormorant цифры «старого стиля» (разной высоты) — код вроде RG790026DIA читается плохо. */
.card__name--art, .m-info h2#mTitle, .mg-head h2#mTitle {
  font-family: var(--sans); font-weight: 600; letter-spacing: .03em;
  font-variant-numeric: lining-nums tabular-nums;
}
.card__name--art { font-size: 1.02rem; line-height: 1.3; }
.m-info h2#mTitle, .mg-head h2#mTitle { font-size: 1.45rem; line-height: 1.25; }
/* цены остаются в Cormorant, но тоже цифрами одной высоты */
.price, .m-prices b, .cl__price, .tile b { font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "lnum" 1, "tnum" 1; }
@media (max-width: 1024px) { .card__name--art.card__line { font-size: .92rem; line-height: 1.3; min-height: 2.6em; } }
@media (max-width: 1024px) {
  /* переносим артикул только по дефисам: RG990031FYDIA-OV- / OOC-WG */
  .card__name--art.card__line { word-break: normal; overflow-wrap: anywhere; letter-spacing: .01em; }
}

/* ---------- СПЕЦ и Розница — серым, главная цена — РЦ Стандарт ---------- */
.card__prices-sub, .card__prices-sub b { color: var(--taupe); }
.card__prices-sub b { font-weight: 500; }
.m-prices > div:not(.m-prices__main) b { color: var(--taupe); }

/* ---------- Админка: артикул + «скопировать» ---------- */
.art-cell { white-space: nowrap; }
.art-code { font-weight: 600; letter-spacing: .02em; font-variant-numeric: lining-nums tabular-nums; }
.copy-btn {
  width: 28px; height: 28px; display: inline-grid; place-items: center; margin-left: 6px; vertical-align: middle;
  color: var(--taupe); border: 1px solid transparent;
}
.copy-btn:hover { color: var(--ink); border-color: var(--line); background: var(--card); }
.copy-btn svg { width: 15px; height: 15px; }

/* ---------- Цены: Cormorant Infant — тот же рисунок, цифры одной высоты ---------- */
:root { --serif-num: 'Cormorant Infant', 'Cormorant', 'Times New Roman', serif; }
.price, .card__price .price, .m-prices b, .cl__price, .tile b, .mg-head .m-prices b {
  font-family: var(--serif-num); font-variant-numeric: lining-nums tabular-nums;
}

/* ---------- Подвал: контакты ---------- */
.foot__contacts { font-style: normal; margin-top: 14px; font-size: .78rem; line-height: 1.7; color: #E9E7E2; letter-spacing: .03em; }
.foot__company { font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .7rem; margin-bottom: 2px; }
.foot__contacts a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(220, 202, 154, .5); }
.foot__contacts a:hover { color: var(--gold); border-bottom-color: var(--gold); }

/* ---------- Тёмная тема: светлые фото чуть приглушены, рамка того же тона (250 × 0,92 ≈ #E6E6E6) ---------- */
:root[data-theme="dark"] .card__photo:has(img), :root[data-theme="dark"] .m-photo:has(img),
:root[data-theme="dark"] .mg-photo, :root[data-theme="dark"] .t .thumb, :root[data-theme="dark"] .cl .thumb { background: #E6E6E6; }
:root[data-theme="dark"] .card__photo img, :root[data-theme="dark"] .m-photo img, :root[data-theme="dark"] .mg-photo img,
:root[data-theme="dark"] .t .thumb img, :root[data-theme="dark"] .cl .thumb img { filter: brightness(.92); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .card__photo:has(img), :root:not([data-theme="light"]) .m-photo:has(img),
  :root:not([data-theme="light"]) .mg-photo, :root:not([data-theme="light"]) .t .thumb, :root:not([data-theme="light"]) .cl .thumb { background: #E6E6E6; }
  :root:not([data-theme="light"]) .card__photo img, :root:not([data-theme="light"]) .m-photo img, :root:not([data-theme="light"]) .mg-photo img,
  :root:not([data-theme="light"]) .t .thumb img, :root:not([data-theme="light"]) .cl .thumb img { filter: brightness(.92); }
}

/* ---------- Окно подтверждения / сообщения программы ---------- */
.dialog { position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; padding: 16px; }
.dialog__backdrop { position: absolute; inset: 0; background: rgba(14, 14, 15, .5); opacity: 0; transition: opacity .2s ease; }
.dialog__box {
  position: relative; width: min(440px, 100%); background: var(--bg); border: 1px solid var(--line); padding: 28px 28px 22px;
  transform: translateY(8px); opacity: 0; transition: opacity .2s ease, transform .2s ease;
}
.dialog.is-open .dialog__backdrop { opacity: 1; }
.dialog.is-open .dialog__box { transform: none; opacity: 1; }
.dialog__box h3 { font: 500 1.45rem/1.2 var(--serif); margin: 0 0 10px; }
.dialog__box p { margin: 0 0 6px; font-size: .86rem; color: var(--taupe); line-height: 1.55; }
.dialog__btns { display: flex; justify-content: flex-end; align-items: center; gap: 22px; margin-top: 22px; flex-wrap: wrap; }
.dialog__btns .btn { padding: .9rem 1.6rem; }
.btn--danger { background: var(--alert); color: #fff; }
.btn--danger:hover { background: var(--alert); color: #fff; opacity: .88; }
/* поле с ошибкой в форме заявки */
.cart-side .is-invalid { border-color: var(--alert); }

/* ---------- Оформление заявки: шаги + итог ---------- */
.flow { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; }
.flow__steps { display: flex; flex-direction: column; gap: 18px; }
.step { border: 1px solid var(--line); background: var(--card); }
.step__head { display: flex; align-items: center; gap: 14px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.step__head h2 { font: 500 1.35rem/1.2 var(--serif); margin: 0; }
.step__n {
  width: 30px; height: 30px; flex: none; display: grid; place-items: center; border: 1px solid var(--graphite);
  font: 600 .8rem/1 var(--sans); border-radius: 50%;
}
.step__n svg { width: 16px; height: 16px; stroke-width: 2; }
.step.is-done .step__n { background: var(--gold); border-color: var(--gold); color: #000; }
.step.is-warn .step__n { background: var(--alert); border-color: var(--alert); color: #fff; }
.step__val { margin-left: auto; font-size: .82rem; color: var(--taupe); text-align: right; }
.step__body { padding: 18px 22px 22px; }
.place-search { max-width: 360px; margin-bottom: 14px; }
.place-group { margin-top: 12px; }
.place-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin-top: 8px; }
.place {
  display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 11px 13px; text-align: left;
  border: 1px solid var(--line); background: var(--bg);
}
.place:hover { border-color: var(--graphite); }
.place.is-on { border-color: var(--gold); background: var(--gold-hover); box-shadow: inset 0 0 0 1px var(--gold); }
.place__name { font-weight: 600; font-size: .84rem; }
.place__n { font-size: .7rem; color: var(--taupe); }
.place-other { display: flex; flex-direction: column; gap: 6px; margin-top: 16px; max-width: 420px; }
.place-other.is-on input { border-color: var(--gold); }
.place-other input, .flow-fields input, .flow-fields textarea {
  border: 1px solid var(--line); background: var(--bg); padding: 10px 11px; font-size: .86rem; outline: none; border-radius: 0; width: 100%;
}
.place-other input:focus, .flow-fields input:focus, .flow-fields textarea:focus { border-color: var(--graphite); }
.flow-warn {
  display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 12px 14px; margin-bottom: 14px; border: 1px solid var(--alert); color: var(--alert); font-size: .84rem;
}
.flow-warn .link { color: var(--alert); font-weight: 600; }
.cl.is-here { opacity: .55; }
.cart-group__head .link { margin-left: 8px; }
.flow-more { display: inline-block; margin-top: 14px; }
.flow-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.flow-field { display: flex; flex-direction: column; gap: 8px; }
.flow-field--wide { grid-column: 1 / -1; }
.flow-manager { display: flex; align-items: baseline; gap: 14px; min-height: 40px; padding-top: 8px; }
.plan-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.plan-chips input[type=date] { width: auto; padding: 7px 9px; }

.flow__summary { position: sticky; top: 92px; border: 1px solid var(--graphite); background: var(--card); padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.flow__summary .note { margin: 0; font-size: .72rem; }
.flow__summary > .link { align-self: center; }
.route { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.route__from { color: var(--taupe); font-size: .84rem; }
.route__arrow svg { width: 18px; height: 18px; color: var(--gold); display: block; }
.route__to { font: 500 1.35rem/1.2 var(--serif); }
.route--sm .route__to { font-size: 1.1rem; }
.sum-thumbs { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.sum-thumbs .thumb { width: 44px; height: 44px; background: #FAFAFA; overflow: hidden; }
.sum-thumbs .thumb img { width: 100%; height: 100%; object-fit: contain; }
.sum-thumbs__more { font-size: .74rem; color: var(--taupe); margin-left: 4px; }
.sum-thumbs--center { justify-content: center; }
.checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; font-size: .8rem; }
.checklist li { display: flex; align-items: center; gap: 9px; color: var(--taupe); }
.checklist li.is-ok { color: var(--ink); }
.checklist svg { width: 16px; height: 16px; color: var(--gold); stroke-width: 2.4; flex: none; }
.checklist i { width: 12px; height: 12px; border: 1px solid var(--taupe); border-radius: 50%; margin: 0 2px; flex: none; }
.btn[aria-disabled="true"] { background: var(--silver); color: var(--taupe); cursor: not-allowed; }
.btn:disabled { opacity: .7; cursor: wait; }

/* экран «заявка создана» */
.tr-done { max-width: 640px; margin: 20px auto 40px; text-align: center; border: 1px solid var(--line); background: var(--card); padding: 40px 32px; }
.tr-done__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--gold); color: #000; display: grid; place-items: center; margin: 0 auto 14px; }
.tr-done__icon svg { width: 28px; height: 28px; stroke-width: 2.2; }
.tr-done h2 { font: 500 1.8rem/1.2 var(--serif); margin: 8px 0 10px; }
.tr-done p { color: var(--taupe); font-size: .88rem; line-height: 1.6; margin: 0 0 18px; }
.tr-done__btns { display: flex; justify-content: center; align-items: center; gap: 14px 20px; flex-wrap: wrap; margin-top: 24px; }

/* «Перемещения»: карточки заявок */
#transfersBody { display: flex; flex-direction: column; gap: 14px; }
.trc { border: 1px solid var(--line); background: var(--card); }
.trc.is-open { border-color: var(--graphite); }
.trc__head { padding: 18px 22px; cursor: pointer; display: flex; flex-direction: column; gap: 10px; }
.trc__head:hover { background: var(--bg-soft); }
.trc__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.trc__id { font: 600 1rem/1 var(--sans); }
.trc__meta { margin-left: auto; font-size: .76rem; color: var(--taupe); }
.trc__foot { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.trc__progress { flex: 1; min-width: 160px; display: flex; flex-direction: column; gap: 6px; font-size: .76rem; color: var(--taupe); }
.trc__sum { text-align: right; }
.trc__sum b { display: block; font: 600 1.2rem/1.1 var(--serif-num); margin-top: 4px; }
.trc__body { border-top: 1px solid var(--line); padding: 8px 22px 20px; }
.trc__comment { display: flex; flex-direction: column; gap: 4px; font-size: .86rem; margin: 10px 0; }
.tri-list { list-style: none; margin: 0; padding: 0; }
.tri { display: grid; grid-template-columns: 56px minmax(0, 1.2fr) minmax(0, 1.4fr) auto 120px; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); cursor: pointer; font-size: .8rem; }
.tri .thumb { width: 56px; height: 56px; background: #FAFAFA; overflow: hidden; }
.tri .thumb img { width: 100%; height: 100%; object-fit: contain; }
.tri__main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tri__main b { letter-spacing: .02em; word-break: break-word; }
.tri__route { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tri__route svg { width: 14px; height: 14px; color: var(--gold); }
.tri__price { font: 600 1rem/1 var(--serif-num); white-space: nowrap; }
.tri__state { font: 600 .64rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--taupe); text-align: right; }
.tri__state.is-ok { color: var(--ok, #3f7d5a); }
.tri__state.is-gone { color: var(--alert); }
.trc__actions { display: flex; align-items: center; gap: 14px 20px; flex-wrap: wrap; margin-top: 16px; }
.trc__actions .btn { padding: .85rem 1.4rem; }

/* старая версия сервера */
.sysbar { position: sticky; top: 0; z-index: 80; background: var(--alert); color: #fff; padding: 10px 16px; font-size: .84rem; text-align: center; }

@media (max-width: 1024px) {
  .flow { grid-template-columns: minmax(0, 1fr); }
  .flow__summary { position: static; }
  .flow-fields { grid-template-columns: minmax(0, 1fr); }
  .tri { grid-template-columns: 48px minmax(0, 1fr) auto; }
  .tri .thumb { width: 48px; height: 48px; }
  .tri__route { grid-column: 2 / -1; }
  .tri__state { grid-column: 2 / -1; text-align: left; }
  .trc__meta { margin-left: 0; width: 100%; }
}
/* выбранное место назначения — свёрнуто */
.place-chosen { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.place-chosen b { font: 500 1.25rem/1.2 var(--serif); }
.place-chosen .muted { color: var(--taupe); font-size: .8rem; }
/* телефон: места в 2 колонки, кнопка «Создать заявку» закреплена внизу */
.flow-mbar { display: none; }
@media (max-width: 1024px) {
  .flow-mbar {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    position: sticky; bottom: 0; z-index: 30; margin: 0 -16px; padding: 10px 16px;
    background: var(--bg); border-top: 1px solid var(--graphite); font-size: .84rem;
  }
  .flow-mbar .btn { padding: .85rem 1.2rem; }
  .flow { gap: 18px; padding-bottom: 0; }
}
@media (max-width: 600px) {
  .place-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .place { padding: 9px 10px; }
  .place__name { font-size: .76rem; }
  .step__head, .step__body { padding-left: 14px; padding-right: 14px; }
}

/* ================= Окно изделия и окно модели: как оформление заявки ================= */
.m-title { display: flex; align-items: center; gap: 4px; margin: 10px 0 6px; }
.m-title h2#mTitle { margin: 0; }
.m-title .copy-btn { margin-left: 2px; flex: none; }
.m-uin { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.m-uin .copy-btn { margin-left: -2px; width: 26px; height: 26px; }
.m-uin .muted { color: var(--taupe); }
/* «‹ 2 из 4 ›» и возврат к модели */
.m-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: -8px 44px 18px 0; font-size: .76rem; }
.m-nav__back { color: var(--taupe); text-decoration: underline; text-underline-offset: 3px; }
.m-nav__back:hover { color: var(--ink); }
.m-nav__pager { display: inline-flex; align-items: center; gap: 4px; color: var(--taupe); font-variant-numeric: tabular-nums; }
.m-nav__pager button { width: 30px; height: 30px; border: 1px solid var(--line); font-size: 1.1rem; line-height: 1; color: var(--ink); }
.m-nav__pager button:hover { border-color: var(--gold); }
.m-nav__pager span { padding: 0 6px; }
/* где сейчас */
.where-box { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: var(--bg-soft); border: 1px solid var(--line); }
.where-box__icon { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--card); border: 1px solid var(--line); }
.where-box__icon svg { width: 17px; height: 17px; color: var(--gold); }
.where-box__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.where-box__text b { font-size: .95rem; font-weight: 600; }
.where-box__text .muted, .ia .muted { color: var(--taupe); font-size: .76rem; }
.where-box__days { margin-left: auto; font-size: .84rem; text-align: right; }
/* действие: в заявку / в заявке / уже в заявке № */
.ia { display: flex; align-items: center; gap: 14px; margin-top: 10px; padding: 14px 16px; border: 1px solid var(--line); }
.ia__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.ia__text b { font-size: .92rem; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.ia .btn { flex: none; padding: .9rem 1.4rem; }
.ia__btns { display: flex; align-items: center; gap: 16px; flex: none; }
.ia--cart { border-color: var(--gold); background: color-mix(in srgb, var(--gold) 10%, transparent); }
.ia__ok svg { width: 17px; height: 17px; color: var(--gold); stroke-width: 2.4; }
.ia--tr { border-color: var(--warn); }
.ia--tr .eyebrow { color: var(--warn); }
/* главное об изделии — без раскрытия */
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 22px 0; background: var(--line); border: 1px solid var(--line); }
.facts > div { background: var(--bg); padding: 10px 12px; min-width: 0; }
.facts dt { font: 500 .62rem/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--taupe); }
.facts dd { margin: 4px 0 0; font-size: .86rem; font-weight: 500; overflow-wrap: anywhere; }
.m-set { margin-top: 20px; }

/* окно модели */
.mg-head { padding-bottom: 20px; }
.mg-head .m-art { margin-bottom: 4px; }
.mg-stats { display: flex; border: 1px solid var(--line); width: max-content; max-width: 100%; }
.mg-stats > div { display: flex; flex-direction: column; padding: 8px 18px; border-left: 1px solid var(--line); }
.mg-stats > div:first-child { border-left: 0; }
.mg-stats b { font: 500 1.4rem/1.1 var(--serif-num); }
.mg-stats span { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--taupe); }
.mg-stats .is-cart b { color: var(--gold); }
.mg-stats .is-tr b { color: var(--warn); }
.mg-units { padding-top: 0; }
.mg-tools { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; padding: 16px 0; border-top: 1px solid var(--line); position: sticky; top: 0; z-index: 3; background: var(--bg); }
.mg-filter { display: flex; flex-wrap: wrap; gap: 6px; }
.mg-filter .chip { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mg-tools .btn { padding: .8rem 1.2rem; }
.mu-group { margin-top: 10px; }
.mu-group__head { display: flex; align-items: center; gap: 12px; padding: 12px 0 10px; border-bottom: 1px solid var(--graphite); }
.mu-group__head .where-box__icon { width: 30px; height: 30px; }
.mu-group__head > div { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.mu-group__head b { font-size: .92rem; font-weight: 600; }
.mu-group__head .muted { color: var(--taupe); font-size: .74rem; font-variant-numeric: tabular-nums; }
.mu-list { list-style: none; margin: 0; padding: 0; }
.mu { display: grid; grid-template-columns: minmax(0, 1fr) auto 150px; align-items: center; gap: 18px; padding: 12px 10px 12px 42px; border-bottom: 1px solid var(--line); cursor: pointer; position: relative; }
.mu:hover { background: var(--bg-soft); }
.mu.is-cart { background: color-mix(in srgb, var(--gold) 9%, transparent); }
.mu.is-cart::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--gold); }
.mu__specs { font-weight: 600; font-size: .86rem; font-variant-numeric: lining-nums tabular-nums; }
.mu__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: .72rem; color: var(--taupe); margin-top: 3px; font-variant-numeric: tabular-nums; }
.mu__sub .days { font-size: .74rem; }
.mu__here { color: var(--alert); font-weight: 600; }
.mu__price { text-align: right; }
.mu__price .price { font-size: 1.3rem; font-weight: 600; white-space: nowrap; }
.mu__price .mu__sub { justify-content: flex-end; margin-top: 0; }
.mu__act { display: flex; justify-content: flex-end; }
.mu__btn {
  min-width: 132px; height: 40px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--graphite); font: 600 .68rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; background: var(--card);
}
.mu__btn:hover { background: var(--gold); border-color: var(--gold); color: #000; }
.mu__btn.is-on { background: var(--gold); border-color: var(--gold); color: #000; }
.mu__btn.is-on svg { width: 15px; height: 15px; stroke-width: 2.6; }
.mu__btn.is-on:hover span { display: none; }
.mu__btn.is-on:hover::after { content: 'Убрать'; }
.mu__tr { font-size: .7rem; line-height: 1.35; color: var(--warn); font-weight: 600; text-align: right; text-decoration: underline; text-underline-offset: 3px; }
/* нижняя полоса окна модели: черновик и переход к оформлению */
.mg-bar {
  position: sticky; bottom: 0; z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 12px 40px; background: var(--bg); border-top: 1px solid var(--graphite); font-size: .84rem; font-variant-numeric: tabular-nums;
}
.mg-bar__btns { display: flex; align-items: center; gap: 18px; }
.mg-bar .btn { padding: .85rem 1.3rem; }
@media (max-width: 900px) {
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mu { grid-template-columns: minmax(0, 1fr) auto; padding-left: 10px; gap: 8px 14px; }
  .mu__act { grid-column: 1 / -1; }
  .mu__act .mu__btn { width: 100%; }
  .mu__tr { text-align: left; }
  .mg-bar { padding: 10px 20px; }
}
@media (max-width: 600px) {
  .ia { flex-wrap: wrap; }
  .ia > .btn, .ia__btns { width: 100%; }
  .ia__btns .btn { flex: 1; }
  .where-box > .where-box__icon { display: none; }
  .where-box__text { flex: 1; }
  .mg-stats > div { padding: 6px 12px; }
  .mg-bar { flex-direction: column; align-items: stretch; }
  .mg-bar__btns { justify-content: space-between; }
  .mu__price .price { font-size: 1.15rem; }
}

/* ================= Боковая панель черновика ================= */
.dr-route {
  display: flex; align-items: center; gap: 12px; margin: 16px 0 6px; padding: 12px 14px; color: inherit; text-decoration: none;
  border: 1px solid var(--line); background: var(--bg-soft);
}
.dr-route:hover { border-color: var(--gold); }
.dr-route__part { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.dr-route__part b { font-size: .86rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dr-route__ask { color: var(--gold); }
.drawer__body .flow-warn { margin: 10px 0 0; }
.dr-group { margin-top: 14px; }
.dr-group__head { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--graphite); }
.dr-group__head b { font-size: .84rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.dr-group__head .muted { margin-left: auto; color: var(--taupe); font-size: .74rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.dr-group__head .cl__del { width: 26px; height: 26px; flex: none; }
.drawer .cl { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; }
.drawer .cl .thumb { width: 64px; height: 64px; }
/* строка изделия: артикул — Montserrat, как в каталоге */
.cl__name { font: 600 .84rem/1.3 var(--sans); letter-spacing: .02em; font-variant-numeric: lining-nums tabular-nums; overflow-wrap: anywhere; }
.cl-list--big .cl__name { font-size: .95rem; }
.cl__art { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-variant-numeric: tabular-nums; }
.cl__sub { font-size: .66rem; line-height: 1.4; color: var(--taupe); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cl__here { font-size: .72rem; color: var(--alert); font-weight: 600; margin-top: 4px; }
.cl__side { justify-content: flex-start; gap: 2px; }
.cl__side .cl__del { margin-top: auto; }
.dr-sum { width: 100%; display: grid; grid-template-columns: auto 1fr; gap: 2px 16px; margin: 0; font-variant-numeric: tabular-nums; }
.dr-sum dt { font: 500 .64rem/2 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--taupe); align-self: center; }
.dr-sum dd { margin: 0; text-align: right; color: var(--taupe); font-size: .8rem; }
.dr-sum dd.dr-sum__main { font: 600 1.45rem/1.1 var(--serif-num); color: var(--ink); }
.dr-left { width: 100%; margin: 0; font-size: .76rem; color: var(--alert); display: flex; align-items: center; gap: 6px; }
.dr-left.is-ok { color: var(--ink); }
.dr-left svg { width: 16px; height: 16px; color: var(--gold); stroke-width: 2.4; flex: none; }
.dr-links { width: 100%; display: flex; justify-content: space-between; }
.drawer__empty { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.drawer__empty-icon svg { width: 40px; height: 40px; color: var(--gold); stroke-width: 1.2; }
.drawer__empty p { margin: 0 0 16px; max-width: 300px; }
/* фото изделия остаётся на месте при прокрутке описания; сообщение — над нижней полосой окна */
@media (min-width: 1025px) { .modal__body:not(.modal__body--wide) .m-photo { position: sticky; top: 0; align-self: start; } }
body:has(.modal:not([hidden]) .mg-bar) .toast { bottom: 84px; }
@media (max-width: 600px) {
  .m-prices { gap: 10px 24px; }
  .m-prices__main { flex-basis: 100%; }
  .mg-tools { position: static; padding: 12px 0; }
  .mg-filter { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px; padding: 0 20px 4px; scrollbar-width: none; }
  .mg-filter .chip { flex: none; }
  .mg-tools .btn { width: 100%; }
  .mg-bar { font-size: .76rem; gap: 8px; }
  .mg-bar .link { white-space: nowrap; }
}
@media (max-width: 600px) {
  .m-prices { gap: 10px 18px; }
  .m-prices > div:not(.m-prices__main) b { font-size: 1.02rem; }
  .mg-bar .btn { white-space: nowrap; padding: .8rem 1rem; }
}
.nowrap { white-space: nowrap; }
/* окно модели: место и его изделия — одна рамка, а не строка, разрезанная линией */
.mu-group { margin-top: 12px; border: 1px solid var(--line); background: var(--card); }
.mu-group__head { padding: 10px 14px; border-bottom: 1px solid var(--line); background: var(--bg-soft); }
.mu { padding: 12px 14px 12px 56px; }
.mu:last-child { border-bottom: 0; }
.mu:hover { background: color-mix(in srgb, var(--gold) 5%, transparent); }
@media (max-width: 900px) { .mu { padding-left: 14px; } }
/* места чуть выразительнее: больше воздуха, рамка заметнее, название места крупнее */
.mu-group { margin-top: 18px; border-color: color-mix(in srgb, var(--graphite) 28%, transparent); box-shadow: 0 1px 3px rgba(14, 14, 15, .05); }
.mu-group__head { background: color-mix(in srgb, var(--graphite) 6%, var(--bg-soft)); border-bottom-color: color-mix(in srgb, var(--graphite) 18%, transparent); }
.mu-group__head b { font-size: 1rem; }

/* ================= Сертификаты камней ================= */
.card__cert {
  position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 4px;
  background: var(--card); color: var(--graphite); border: 1px solid var(--line);
  font: 600 .6rem/1 var(--sans); letter-spacing: .08em; padding: 5px 7px;
}
.card__cert svg, .mu__cert svg { width: 13px; height: 13px; color: var(--gold); flex: none; }
.mu__cert { display: inline-flex; align-items: center; gap: 4px; color: var(--graphite); font-weight: 600; }
.certs { margin-top: 10px; border: 1px solid var(--line); }
.certs__head { padding: 10px 16px; background: var(--bg-soft); border-bottom: 1px solid var(--line); }
.certs__list { list-style: none; margin: 0; padding: 0; }
.certs__list li + li { border-top: 1px solid var(--line); }
.cert { display: flex; align-items: center; gap: 12px; padding: 10px 16px; color: inherit; text-decoration: none; }
.cert:hover { background: color-mix(in srgb, var(--gold) 8%, transparent); }
.cert__lab { flex: none; min-width: 44px; text-align: center; padding: 4px 6px; border: 1px solid var(--gold); font: 600 .62rem/1 var(--sans); letter-spacing: .08em; }
.cert__main { flex: 1; min-width: 0; font-size: .84rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.cert__open { flex: none; font-size: .72rem; color: var(--taupe); }
.cert:hover .cert__open { color: var(--ink); }
.certs:not(.is-all) .certs__list li.is-extra { display: none; }
.certs__toggle { width: 100%; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 16px;
  border-top: 1px solid var(--line); font-size: .76rem; font-weight: 600; color: var(--graphite); background: var(--bg-soft); }
.certs__toggle:hover { color: var(--ink); background: color-mix(in srgb, var(--gold) 8%, var(--bg-soft)); }
.certs__toggle svg { width: 14px; height: 14px; transition: transform .2s; }
.certs.is-all .certs__toggle svg { transform: rotate(180deg); }
.certs.is-all .certs__toggle-more, .certs:not(.is-all) .certs__toggle-less { display: none; }
@media (max-width: 600px) { .cert__open { display: none; } }

/* ================= Админка: обзор, карточки, списки ================= */
.adm-tabs { gap: 2px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.adm-tabs button { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; border-bottom-width: 2px; }
.adm-tabs button svg { width: 17px; height: 17px; flex: none; }
.adm-tabs button.is-on svg { color: var(--gold); }
.adm-n { font: 600 .62rem/1 var(--sans); letter-spacing: 0; padding: 4px 6px; background: var(--bg-soft); color: var(--taupe); border: 1px solid var(--line); }
.adm-n--warn { background: color-mix(in srgb, var(--warn) 14%, transparent); color: var(--warn); border-color: transparent; }
.adm-n--ok { color: var(--gold); background: transparent; border-color: transparent; }
#adminTools { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
#adminTools[hidden] { display: none; }

.adm-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.adm-tile {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; text-align: left;
  padding: 18px 18px 16px; border: 1px solid var(--line); background: var(--card); min-height: 190px; transition: border-color .15s;
}
.adm-tile:hover { border-color: var(--gold); }
.adm-tile::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--line); }
.adm-tile--ok::before { background: var(--gold); }
.adm-tile--warn::before { background: var(--warn); }
.adm-tile--alert::before { background: var(--alert); }
.adm-tile__icon svg { width: 22px; height: 22px; color: var(--gold); }
.adm-tile__title { font: 600 .68rem/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--taupe); }
.adm-tile__big { font: 500 2.4rem/1 var(--serif-num); font-variant-numeric: lining-nums tabular-nums; }
.adm-tile--alert .adm-tile__big { color: var(--alert); }
.adm-tile__sub { font-size: .78rem; color: var(--taupe); line-height: 1.4; }
.adm-tile__go { margin-top: auto; padding-top: 8px; font-size: .72rem; font-weight: 600; color: var(--graphite); }
.adm-tile:hover .adm-tile__go { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.adm-bar { display: block; width: 100%; height: 5px; background: var(--bg-soft); border: 1px solid var(--line); }
.adm-bar i { display: block; height: 100%; background: var(--gold); }
.adm-todo { margin: 22px 0 10px; padding: 18px 20px; border: 1px solid var(--line); background: var(--bg-soft); }
.adm-todo ol { margin: 10px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: .86rem; }
.adm-todo .link { color: var(--ink); text-align: left; }
.adm-todo p { margin: 8px 0 0; }
.adm-hint { margin: -6px 0 16px; font-size: .8rem; color: var(--graphite); padding: 10px 14px; border-left: 3px solid var(--gold); background: var(--bg-soft); }
.adm-bar-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.adm-bar-row .chips-active { margin-bottom: 12px; }
.adm-bar-row > .muted { color: var(--taupe); font-size: .76rem; margin-bottom: 12px; }

/* фото: сетка карточек */
.upload-box { justify-content: flex-start; padding: 22px; border-width: 1.5px; background: var(--card); transition: background .15s, border-color .15s; }
.upload-box.is-drop { border-color: var(--gold); }
.upload-box__icon svg { width: 34px; height: 34px; color: var(--gold); }
.upload-box > div { display: flex; flex-direction: column; gap: 4px; }
.upload-box b { font-size: .95rem; }
.up-prog { display: flex; flex-direction: column; gap: 6px; max-width: 520px; }
.upload-status { padding: 12px 16px; border: 1px solid var(--line); background: var(--bg-soft); line-height: 1.6; }
.ap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.ap { border: 1px solid var(--line); background: var(--card); padding: 10px 10px 12px; cursor: pointer; display: flex; flex-direction: column; gap: 6px; transition: border-color .15s; }
.ap:hover { border-color: var(--graphite); }
.ap.is-drop { border-color: var(--gold); background: var(--gold-hover); }
.ap__photo { position: relative; aspect-ratio: 1; background: #FAFAFA; overflow: hidden; display: grid; place-items: center; }
.ap.is-empty .ap__photo { background: var(--bg-soft); border: 1px dashed var(--line); }
.ap__photo img { width: 100%; height: 100%; object-fit: contain; }
.ap__up {
  position: absolute; left: 8px; right: 8px; bottom: 8px; height: 34px; background: var(--card); border: 1px solid var(--graphite);
  font: 600 .64rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; opacity: 0; transition: opacity .15s;
}
.ap:hover .ap__up, .ap.is-empty .ap__up, .ap__up:focus-visible { opacity: 1; }
.ap__up:hover { background: var(--gold); border-color: var(--gold); color: #000; }
@media (hover: none) { .ap__up { opacity: 1; } }
.ap .ar__art { font-size: .74rem; }
.ap__meta { font-size: .7rem; color: var(--taupe); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ap__price { font: 600 .95rem/1.2 var(--serif-num); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: auto; }

/* списки: расхождения, другой формат, сертификаты */
.ar-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); background: var(--card); }
.ar { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, 260px); gap: 16px; align-items: center; padding: 12px 16px; border-top: 1px solid var(--line); cursor: pointer; }
.ar:first-child { border-top: 0; }
.ar:hover { background: color-mix(in srgb, var(--gold) 6%, transparent); }
.ar .thumb { width: 56px; height: 56px; background: #FAFAFA; overflow: hidden; display: grid; place-items: center; }
.ar .thumb img { width: 100%; height: 100%; object-fit: contain; }
.ar__art { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.ar__art .copy-btn { margin-left: 2px; width: 26px; height: 26px; }
.ar__tag { margin-left: 6px; font: 600 .58rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; padding: 4px 6px; background: var(--bg-soft); color: var(--taupe); }
.ar__meta { font-size: .76rem; color: var(--taupe); margin-top: 2px; }
.ar__meta b { color: var(--ink); font-weight: 600; }
.ar__warn { font-size: .8rem; margin-top: 4px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.ar__kind { font: 600 .6rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; padding: 4px 6px; color: var(--warn); background: color-mix(in srgb, var(--warn) 12%, transparent); white-space: nowrap; }
.ar__side { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; font-size: .8rem; min-width: 0; }
.ar__side b { font-weight: 600; overflow-wrap: anywhere; display: inline-flex; align-items: center; gap: 4px; }
.ar__side .muted { color: var(--taupe); font-size: .72rem; overflow-wrap: anywhere; }
.ar__ok svg { width: 14px; height: 14px; color: var(--gold); }
.ar__miss { color: var(--alert); }

/* данные: карточки */
.adm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.adm-card { border: 1px solid var(--line); background: var(--card); padding: 16px 18px; }
.adm-card h3 { margin: 0 0 12px; font: 600 .68rem/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--taupe); }
.adm-card dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; margin: 0; font-size: .82rem; }
.adm-card dt { color: var(--taupe); }
.adm-card dd { margin: 0; text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex: none; }
.dot--ok { background: var(--gold); }
.dot--warn { background: var(--warn); }
.dot--alert { background: var(--alert); }

@media (max-width: 1024px) { .adm-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .adm-tiles { grid-template-columns: minmax(0, 1fr); }
  .adm-tile { min-height: 0; }
  .ap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ar { grid-template-columns: 48px minmax(0, 1fr); gap: 6px 12px; padding: 12px; }
  .ar .thumb { width: 48px; height: 48px; }
  .ar__side { grid-column: 2; align-items: flex-start; text-align: left; }
  .adm-cards { grid-template-columns: minmax(0, 1fr); }
  .adm-tabs button { padding: 10px 12px; }
}
.upload-box__title { margin: 0; font-size: .9rem; }
.upload-box__title .link { font-size: .9rem; color: var(--ink); }

/* ================= Админка: современный слой (скругления, мягкие тени, сегментные вкладки) ================= */
#view-admin {
  --r: 14px; --r-sm: 10px;
  --sh: 0 1px 2px rgba(14, 14, 15, .04), 0 4px 16px rgba(14, 14, 15, .05);
  --sh-hi: 0 2px 4px rgba(14, 14, 15, .05), 0 12px 32px rgba(14, 14, 15, .10);
  --surface: var(--card); --soft: var(--bg-soft);
}
:root[data-theme="dark"] #view-admin { --sh: 0 1px 2px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.25); --sh-hi: 0 12px 32px rgba(0,0,0,.45); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) #view-admin { --sh: 0 1px 2px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.25); --sh-hi: 0 12px 32px rgba(0,0,0,.45); } }

/* вкладки — сегментный переключатель, прилипает к шапке */
#view-admin .adm-tabs {
  position: sticky; top: 72px; z-index: 5; display: inline-flex; max-width: 100%; gap: 4px; padding: 5px; margin-bottom: 24px;
  border: 1px solid var(--line); border-radius: 999px; background: color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: var(--sh);
}
#view-admin .adm-tabs button {
  border: 0; margin: 0; padding: 9px 16px; border-radius: 999px; letter-spacing: .06em; font-size: .68rem;
  transition: background .15s, color .15s;
}
#view-admin .adm-tabs button:hover { background: var(--soft); }
#view-admin .adm-tabs button.is-on { background: var(--graphite); color: var(--bg); }
#view-admin .adm-tabs button.is-on svg { color: var(--gold); }
#view-admin .adm-n { border-radius: 999px; padding: 3px 7px; }
#view-admin .adm-tabs button.is-on .adm-n { background: color-mix(in srgb, var(--bg) 18%, transparent); color: var(--bg); }

/* поиск — «таблетка» */
#view-admin #adminTools { margin-bottom: 18px; }
#view-admin #adminTools .search { border: 1px solid var(--line); border-radius: 999px; padding: 0 16px; background: var(--surface); max-width: 420px; height: 44px; box-shadow: var(--sh); }
#view-admin #adminTools .search:focus-within { border-color: var(--gold); }
#view-admin #adminTools .search input { border: 0; height: 100%; background: transparent; }
#view-admin #adminExport { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; background: var(--surface); }
#view-admin #adminExport:hover { border-color: var(--gold); color: var(--ink); }

/* чипы */
#view-admin .chip { border-radius: 999px; padding: 7px 14px; }

/* плитки обзора */
#view-admin .adm-tiles { gap: 16px; }
#view-admin .adm-tile {
  border-radius: var(--r); border: 1px solid var(--line); box-shadow: var(--sh); overflow: hidden; padding: 20px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s;
}
#view-admin .adm-tile:hover { transform: translateY(-3px); box-shadow: var(--sh-hi); border-color: var(--line); }
#view-admin .adm-tile::before { height: 4px; }
#view-admin .adm-tile__icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--soft); margin-bottom: 4px; }
#view-admin .adm-tile--warn .adm-tile__icon { background: color-mix(in srgb, var(--warn) 14%, transparent); }
#view-admin .adm-tile--warn .adm-tile__icon svg { color: var(--warn); }
#view-admin .adm-tile--alert .adm-tile__icon { background: color-mix(in srgb, var(--alert) 12%, transparent); }
#view-admin .adm-tile--alert .adm-tile__icon svg { color: var(--alert); }
#view-admin .adm-tile__row { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 12px; }
#view-admin .adm-tile__big { font-size: 2.8rem; }
#view-admin .adm-tile__go { display: inline-flex; align-items: center; gap: 6px; }
#view-admin .adm-tile__go svg { width: 15px; height: 15px; transition: transform .2s; }
#view-admin .adm-tile:hover .adm-tile__go { text-decoration: none; }
#view-admin .adm-tile:hover .adm-tile__go svg { transform: translateX(4px); }
.ring { width: 52px; height: 52px; transform: rotate(-90deg); flex: none; }
.ring circle { fill: none; stroke: var(--soft, var(--bg-soft)); stroke-width: 5; }
.ring .ring__v { stroke: var(--gold); stroke-linecap: round; }
.adm-tile--warn .ring .ring__v { stroke: var(--warn); }

/* что сделать */
#view-admin .adm-todo { border-radius: var(--r); background: var(--surface); box-shadow: var(--sh); padding: 20px; margin-top: 24px; }
.adm-todo__list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.adm-todo__list button {
  width: 100%; display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: var(--r-sm); text-align: left;
  background: var(--soft); border: 1px solid transparent; transition: border-color .15s, background .15s;
}
.adm-todo__list button:hover { border-color: var(--gold); background: color-mix(in srgb, var(--gold) 8%, var(--card)); }
.adm-todo__n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--graphite); color: var(--bg); font: 600 .72rem/1 var(--sans); }
.adm-todo__icon svg { width: 18px; height: 18px; color: var(--gold); display: block; }
.adm-todo__t { flex: 1; font-size: .88rem; font-weight: 500; }
.adm-todo__go { width: 18px; height: 18px; color: var(--taupe); transition: transform .2s; }
.adm-todo__list button:hover .adm-todo__go { transform: translateX(3px); color: var(--ink); }

/* подсказки и заметки */
#view-admin .note { font-size: .8rem; }
#view-admin .adm-hint { border-radius: var(--r-sm); border-left: 0; background: color-mix(in srgb, var(--gold) 10%, var(--card)); }

/* загрузка фото */
#view-admin .upload-box { border-radius: var(--r); border: 1.5px dashed color-mix(in srgb, var(--gold) 70%, var(--line)); background: color-mix(in srgb, var(--gold) 4%, var(--card)); padding: 26px; }
#view-admin .upload-box.is-drop { background: color-mix(in srgb, var(--gold) 14%, var(--card)); border-style: solid; }
#view-admin .upload-box__icon { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--surface); box-shadow: var(--sh); flex: none; }
#view-admin .upload-box__icon svg { width: 28px; height: 28px; }
#view-admin .upload-status { border-radius: var(--r-sm); }
#view-admin .adm-bar { border: 0; border-radius: 999px; overflow: hidden; height: 6px; }
#view-admin .adm-bar i { border-radius: 999px; }

/* карточки фото */
#view-admin .ap-grid { gap: 16px; }
#view-admin .ap { border-radius: var(--r); box-shadow: var(--sh); padding: 10px 10px 14px; transition: transform .2s, box-shadow .2s, border-color .2s; }
#view-admin .ap:hover { transform: translateY(-3px); box-shadow: var(--sh-hi); border-color: var(--line); }
#view-admin .ap__photo { border-radius: var(--r-sm); }
#view-admin .ap__up { border-radius: 999px; border: 0; background: color-mix(in srgb, var(--card) 92%, transparent); backdrop-filter: blur(6px); box-shadow: var(--sh); }
#view-admin .ap__up:hover { background: var(--gold); }
#view-admin .ap .ar__art, #view-admin .ap__meta, #view-admin .ap__price { padding: 0 4px; }

/* списки */
#view-admin .ar-list { border-radius: var(--r); overflow: hidden; box-shadow: var(--sh); }
#view-admin .ar { padding: 14px 18px; transition: background .15s; }
#view-admin .ar .thumb { border-radius: var(--r-sm); }
#view-admin .ar__kind, #view-admin .ar__tag { border-radius: 999px; padding: 4px 8px; }
#view-admin .copy-btn { border-radius: 8px; }

/* карточки данных */
#view-admin .adm-cards { gap: 16px; }
#view-admin .adm-card { border-radius: var(--r); box-shadow: var(--sh); padding: 20px; }
#view-admin .adm-card dl { gap: 10px 16px; }
#view-admin .adm-card dt, #view-admin .adm-card dd { padding-bottom: 10px; border-bottom: 1px solid var(--line); }
#view-admin .adm-card dt:nth-last-child(2), #view-admin .adm-card dd:last-child { border-bottom: 0; padding-bottom: 0; }
#view-admin .dot { width: 8px; height: 8px; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 0%, transparent); }
#view-admin .dot--ok { box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 22%, transparent); }
#view-admin .dot--warn { box-shadow: 0 0 0 3px color-mix(in srgb, var(--warn) 22%, transparent); }
#view-admin .dot--alert { box-shadow: 0 0 0 3px color-mix(in srgb, var(--alert) 22%, transparent); }

#view-admin .empty { border-radius: var(--r); background: var(--surface); box-shadow: var(--sh); }

@media (max-width: 1024px) { #view-admin .adm-tabs { position: static; } }
@media (max-width: 600px) {
  #view-admin .adm-tabs { display: flex; border-radius: 16px; }
  #view-admin .adm-tabs button span { display: none; }
  #view-admin .adm-tabs button.is-on span { display: inline; }
  #view-admin .adm-tile__big { font-size: 2.3rem; }
  #view-admin #adminTools { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { #view-admin * { transition: none !important; } }

/* тёмная тема: фото в админке — как в каталоге (приглушённый светлый фон) */
:root[data-theme="dark"] #view-admin .ar .thumb, :root[data-theme="dark"] #view-admin .ap__photo { background: #E6E6E6; }
:root[data-theme="dark"] #view-admin .ar .thumb img, :root[data-theme="dark"] #view-admin .ap__photo img { filter: brightness(.92); }
:root[data-theme="dark"] #view-admin .ap.is-empty .ap__photo { background: var(--bg-soft); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) #view-admin .ar .thumb, :root:not([data-theme="light"]) #view-admin .ap__photo { background: #E6E6E6; }
  :root:not([data-theme="light"]) #view-admin .ar .thumb img, :root:not([data-theme="light"]) #view-admin .ap__photo img { filter: brightness(.92); }
  :root:not([data-theme="light"]) #view-admin .ap.is-empty .ap__photo { background: var(--bg-soft); }
}
@media (max-width: 600px) {
  #view-admin .adm-tile { padding: 16px; gap: 4px; }
  #view-admin .adm-tile__icon { display: none; }
  #view-admin .ring { width: 44px; height: 44px; }
}

/* Битрикс24 */
#view-admin .bx { margin-bottom: 16px; border: 1px solid color-mix(in srgb, #2FC6F6 40%, var(--line)); }
#view-admin .bx.is-on { border-color: var(--line); }
.bx__head { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; }
#view-admin .bx__head h3 { margin: 0 0 4px; }
.bx__logo { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; flex: none; background: #2FC6F6; color: #fff; font: 700 1rem/1 var(--sans); }
.bx__state { margin: 0; font-size: .84rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bx__form { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.bx__form label { display: flex; flex-direction: column; gap: 6px; }
.bx__form input { height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font-size: .86rem; outline: none; }
.bx__form input:focus { border-color: var(--gold); }
.bx__btns { display: flex; align-items: center; gap: 14px; }
.bx__btns .btn { border-radius: 999px; padding: .95rem 1.4rem; white-space: nowrap; }
.bx__btns .btn[disabled] { opacity: .6; cursor: progress; }
.bx__err { color: var(--alert); font-size: .84rem; margin: 12px 0 0; }
.bx__files { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.bx__files li { display: grid; grid-template-columns: auto minmax(0, 220px) minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 10px; background: var(--bg-soft); font-size: .8rem; }
.bx__files li span { overflow-wrap: anywhere; }
.bx__files .bx__err { margin: 0; }
.bx__files .muted { color: var(--taupe); font-variant-numeric: tabular-nums; }
.bx__help { margin-top: 14px; font-size: .8rem; }
.bx__help summary { cursor: pointer; color: var(--taupe); }
.bx__help ol { margin: 10px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 900px) {
  .bx__form { grid-template-columns: minmax(0, 1fr); }
  .bx__files li { grid-template-columns: auto minmax(0, 1fr); }
  .bx__files li span { grid-column: 2; }
}

/* Битрикс24: действия, безопасность, выбор файлов, журнал; настройки */
.bx__head { flex-wrap: wrap; }
.bx__head-t { flex: 1; min-width: 240px; }
.bx__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.bx__actions .btn { border-radius: 999px; padding: .9rem 1.3rem; }
.bx__actions .btn[disabled] { opacity: .6; cursor: progress; }
.bx__safe { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; padding: 10px 14px; border-radius: 10px; font-size: .78rem;
  background: color-mix(in srgb, var(--gold) 10%, var(--card)); color: var(--graphite); }
.bx__safe svg { width: 20px; height: 20px; color: var(--gold); flex: none; }
.bx__off { color: var(--alert); }
.bx__map { margin-top: 6px; display: flex; flex-direction: column; gap: 6px; }
.bx__map-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.bx__row { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr) minmax(0, 170px); gap: 12px; align-items: center;
  padding: 8px 12px; border-radius: 10px; background: var(--bg-soft); font-size: .8rem; }
.bx__row.is-miss { background: color-mix(in srgb, var(--alert) 7%, var(--card)); }
.bx__row-t { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.bx__row select { height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink); font-size: .78rem; min-width: 0; }
.bx__row .muted { color: var(--taupe); font-size: .74rem; text-align: right; }
.bx__map .bx__btns { margin-top: 6px; }
.bx__log { margin-top: 14px; font-size: .8rem; }
.bx__log summary { cursor: pointer; color: var(--taupe); }
.bx__log pre { margin: 10px 0 0; padding: 12px 14px; border-radius: 10px; background: var(--bg-soft); max-height: 260px; overflow: auto;
  font: .72rem/1.5 ui-monospace, Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
.set-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.set-form__row { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.set-form label { display: flex; flex-direction: column; gap: 4px; font-size: .74rem; color: var(--taupe); }
.set-form input { width: 96px; height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font-size: .9rem; font-variant-numeric: tabular-nums; }
.set-form input:focus { outline: none; border-color: var(--gold); }
.set-form .btn { border-radius: 999px; padding: .8rem 1.2rem; }
@media (max-width: 900px) {
  .bx__row { grid-template-columns: minmax(0, 1fr); }
  .bx__row .muted { text-align: left; }
}
.bx__row-f { font-size: .8rem; overflow-wrap: anywhere; }

/* задачи Битрикс24 */
#view-admin .tk .bx__logo { background: #2FC6F6; }
.tk__form { grid-template-columns: minmax(0, 1fr) auto; }
.tk__people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin-top: 8px; }
.tk__p { display: flex; flex-direction: column; gap: 6px; font-size: .84rem; }
.tk__p--wide { grid-column: 1 / -1; }
.tk__p .muted { color: var(--taupe); font-size: .74rem; }
.tk__p select { height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font-size: .84rem; max-width: 100%; }
.tk__chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tk__chips .chip { display: inline-flex; align-items: center; gap: 6px; }
.tk__chips select { height: 34px; border-radius: 999px; }
.tk__people .bx__btns { grid-column: 1 / -1; }
.b24b { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; font: 600 .64rem/1.4 var(--sans); letter-spacing: .04em;
  background: color-mix(in srgb, #2FC6F6 16%, transparent); color: #0b7fa6; text-decoration: none; white-space: nowrap; }
a.b24b:hover { background: color-mix(in srgb, #2FC6F6 28%, transparent); }
.b24b--wait { color: var(--taupe); background: var(--bg-soft); }
.b24b--err, .b24b__err { color: var(--alert); }
.b24b--err { background: color-mix(in srgb, var(--alert) 10%, transparent); }
#trManagerSel { height: 44px; padding: 0 12px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: .9rem; max-width: 420px; }
@media (max-width: 700px) { .tk__people { grid-template-columns: minmax(0, 1fr); } .tk__form { grid-template-columns: minmax(0, 1fr); } }
.tr-done__b24 { margin: 6px 0 0; }
.tr-done__b24 .b24b { font-size: .74rem; padding: 5px 12px; }

/* ---------- вход: кто вошёл (шапка) ---------- */
.me { display: flex; align-items: center; gap: 10px; font-size: .74rem; white-space: nowrap; }
.me__name { color: var(--graphite); max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.me__out { font-size: .72rem; }
@media (max-width: 600px) { .me__name { display: none; } }

/* ---------- админка: пользователи ---------- */
.us__list { display: grid; gap: 6px; margin-top: 14px; }
.us__row { display: grid; grid-template-columns: minmax(160px, 1.4fr) auto minmax(120px, 1fr) auto auto; gap: 14px; align-items: center;
  padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-sm, 10px); background: var(--surface, var(--card)); }
.us__row.is-off { opacity: .55; }
.us__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.us__who b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.us__role { font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; padding: 3px 10px; border-radius: 999px; background: var(--soft, var(--bg-soft)); }
.us__role--admin { background: var(--gold); color: #000; }
.us__row--edit { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); align-items: end; margin-top: 14px; background: var(--soft, var(--bg-soft)); }
.us__row--edit label { display: flex; flex-direction: column; gap: 6px; }
.us__row--edit input, .us__row--edit select { width: 100%; }
.us__row--edit .bx__btns { grid-column: 1 / -1; }
@media (max-width: 700px) { .us__row:not(.us__row--edit) { grid-template-columns: 1fr auto; } .us__row:not(.us__row--edit) > .muted { grid-column: 1 / -1; } }
.us__row--edit input, .us__row--edit select { height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font-size: .86rem; outline: none; }
.us__row--edit input:focus, .us__row--edit select:focus { border-color: var(--gold); }

/* ---------- «+ В заявку» на телефоне / планшете: явная кнопка внизу карточки (наведения там нет) ---------- */
.card__add-m { display: none; }
@media (hover: none), (pointer: coarse), (max-width: 1024px) {
  .card__add { display: none; }
  .card__add-m { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; margin-top: 12px;
    border: 1px solid var(--gold); background: transparent; color: var(--ink); border-radius: 999px;
    font: 600 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
  .card__add-m:active { background: var(--gold); color: #000; }
  .card__add-m.is-on { background: var(--gold); color: #000; }
}
.us__check { flex-direction: row !important; align-items: center; gap: 10px !important; grid-column: 1 / -1; font-size: .8rem; cursor: pointer; }
.us__check input { width: 18px !important; height: 18px !important; padding: 0 !important; accent-color: var(--gold); }
#trAsSel { height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); font-size: .86rem; width: 100%; }
.ar__note { margin-top: 4px; font-size: .74rem; color: var(--warn); }
.ar__note::before { content: '→ '; }

/* УИН не подтверждён по отчётам 1С — изделие нельзя включить в заявку (build_data.py → uinErr) */
.ia--err { border-color: var(--alert); }
.ia--err b { color: var(--alert); }
.ia__warn { display: block; margin-top: 4px; color: var(--alert); }
.mu__btn.is-off { opacity: .6; cursor: not-allowed; font-size: 12px; text-align: center; }
