/* ERP — стиль мобильного банка. Сначала телефон, потом компьютер (>= 960px). */

@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("fonts/manrope-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191-2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Дизайн 2026-10 (рендеры design/): светлая тема. Тёмную сделаем после основных работ (владелец). */
:root {
  --bg: #f5f7fb;
  --card: #ffffff;
  --card-2: #f7f9fc;
  --text: #0f172a;
  --muted: #64748b;
  --faint: #94a3b8;
  --line: #e9edf4;
  --navy: #0e1a33;
  --accent: #2f5bea;
  --accent-soft: #eef2ff;
  --violet: #6e5cf6;
  --violet-soft: #f0edff;
  --green: #16a34a;
  --green-soft: #e8f7ee;
  --red: #e5484d;
  --red-soft: #fdecec;
  --amber: #d97706;
  --amber-soft: #fef3e2;
  --gray-soft: #f1f4f9;
  --radius: 16px;
  --shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 16px rgba(15, 23, 42, 0.05);
  --nav-h: 72px;
  --side-w: 248px;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.45 "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
.i { flex-shrink: 0; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.muted { color: var(--muted); }
.pos { color: var(--green); }
.neg { color: var(--red); }

/* ---------- каркас ---------- */
.app { min-height: 100vh; padding-bottom: calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px); }
.main { max-width: 600px; margin: 0 auto; padding: 12px 16px 0; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0 12px; }
.topbar h1 { font-size: 24px; font-weight: 700; margin: 0; letter-spacing: -0.02em; }
.topbar .back { display: inline-flex; align-items: center; gap: 4px; color: var(--accent); font-size: 15px; }
.sync { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--faint); }
.sync.bad { color: var(--red); }

.nav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
  display: flex; justify-content: space-around;
  height: calc(var(--nav-h) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--card); border-top: 1px solid var(--line);
}
.nav a {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  font-size: 11px; color: var(--faint);
}
.nav a.on { color: var(--accent); }
.nav .brand { display: none; }

/* ---------- карточки ---------- */
.card { background: var(--card); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); margin-bottom: 12px; }
.card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.card-head h2 { font-size: 17px; font-weight: 650; margin: 0; }
.card-head a { font-size: 14px; color: var(--accent); }
.section-title { font-size: 17px; font-weight: 650; margin: 20px 4px 10px; }

.hero { padding: 20px 16px; }
.hero .label { font-size: 14px; color: var(--muted); }
.hero .big { font-size: 34px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.15; margin: 2px 0 6px; }
.hero .sub { font-size: 14px; }

.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.tile { background: var(--card); border-radius: var(--radius); padding: 12px 14px; box-shadow: var(--shadow); }
.tile .label { font-size: 13px; color: var(--muted); }
.tile .value { font-size: 18px; font-weight: 650; margin-top: 2px; }

/* три цифры в одной карточке: «Затраты · Поступило · Долг» — влезают даже в узкий телефон */
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 14px 12px; }
.stats > div { min-width: 0; }
.stats > div + div { border-left: 1px solid var(--line); padding-left: 10px; }
.stats .label { font-size: 12px; color: var(--muted); }
.stats .value { font-size: 15px; font-weight: 650; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile { min-width: 0; }

/* ---------- быстрые действия ---------- */
.actions { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin: 4px 0 8px; }
.actions-card { padding: 8px 4px; }
.actions-card .actions { margin: 0; }
.actions-card.few .actions { grid-template-columns: repeat(2, 1fr); }
.action:hover .circle { filter: brightness(.95); }
.action { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); padding: 6px 0; }
.action .circle {
  width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--accent-soft); color: var(--accent); transition: transform .1s;
}
.action:active .circle { transform: scale(.94); }

/* ---------- фильтры-чипсы ---------- */
.chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; scrollbar-width: none; }
.chips::-webkit-scrollbar { display: none; }
.chip {
  flex-shrink: 0; border: 0; cursor: pointer; font: inherit; font-size: 14px;
  padding: 7px 14px; border-radius: 999px; background: var(--card); color: var(--text); box-shadow: var(--shadow);
}
.chip.on { background: var(--text); color: var(--bg); }

/* ---------- кошельки ---------- */
.wallets { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; padding: 2px 16px 8px; margin: 0 -16px; scrollbar-width: none; }
.wallets::-webkit-scrollbar { display: none; }
.wcard {
  flex: 0 0 158px; scroll-snap-align: start; height: 104px; border-radius: 16px; padding: 12px 14px;
  display: flex; flex-direction: column; justify-content: space-between; color: #fff; position: relative; overflow: hidden;
}
.wcard .bank { font-size: 12px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wcard .name { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wcard .sum { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.wcard[hidden] { display: none; }
.w-sber { background: #21a038; }
.w-vtb { background: #0a2896; }
.w-tochka { background: #6b3cf0; }
.w-tbank { background: #ffdd2d; color: #1b1b1b; }
.w-ozon { background: #005bff; }
.w-alfa { background: #ef3124; }
.w-cash { background: #3a4049; }
.w-creditor { background: #9f1d1d; }
.w-reserve { background: #0f766e; }
.w-father { background: #8a5a14; }
.w-plain { background: #56606e; }

/* ---------- лента операций ---------- */
.day { font-size: 13px; font-weight: 600; color: var(--muted); margin: 14px 4px 6px; }
.day:first-child { margin-top: 0; }
.feed { list-style: none; margin: 0; padding: 0; }
.op { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.op + .op { border-top: 1px solid var(--line); }
.op .ic { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.op .txt { flex: 1; min-width: 0; }
.op .title { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.op .subtitle { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.op .amt { font-size: 15px; font-weight: 600; white-space: nowrap; text-align: right; }
.op .amt small { display: block; font-size: 11px; font-weight: 400; color: var(--faint); }
.ic.expense { background: var(--red-soft); color: var(--red); }
.ic.income { background: var(--green-soft); color: var(--green); }
.ic.transfer { background: var(--gray-soft); color: var(--muted); }
.ic.personal { background: var(--amber-soft); color: var(--amber); }
.amt.income { color: var(--green); }
.amt.transfer { color: var(--muted); }
.more { display: block; width: 100%; margin-top: 8px; padding: 12px; border: 0; border-radius: 12px; background: var(--card-2); color: var(--accent); font: inherit; font-size: 15px; cursor: pointer; }
.empty { text-align: center; color: var(--muted); padding: 24px 8px; }

/* ---------- поиск ---------- */
.search { display: flex; align-items: center; gap: 8px; background: var(--card); border-radius: 12px; padding: 0 12px; box-shadow: var(--shadow); margin-bottom: 10px; color: var(--faint); }
.search input { flex: 1; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; padding: 11px 0; min-width: 0; }

/* ---------- объекты ---------- */
.obj { padding: 10px 0; }
.obj + .obj { border-top: 1px solid var(--line); }
.obj .row { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.obj .row .name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obj .row .res { font-weight: 600; white-space: nowrap; }
.bar { height: 6px; border-radius: 3px; background: var(--gray-soft); margin: 7px 0 5px; overflow: hidden; }
.bar span { display: block; height: 100%; border-radius: 3px; background: var(--accent); }
.bar span.good { background: var(--green); }
.obj .note { font-size: 13px; color: var(--muted); }

/* ---------- детали ---------- */
.detail-hero { text-align: center; padding: 24px 16px; }
.detail-hero .ic { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.detail-hero .big { font-size: 32px; font-weight: 700; letter-spacing: -0.02em; }
.detail-hero .title { font-size: 17px; margin-top: 4px; }
.props { margin: 0; }
.props div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; }
.props div + div { border-top: 1px solid var(--line); }
.props dt { color: var(--muted); }
.props dd { margin: 0; text-align: right; }
.badge { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; padding: 3px 10px; border-radius: 999px; background: var(--gray-soft); color: var(--muted); }
.btn { display: block; text-align: center; padding: 13px; border-radius: 12px; background: var(--accent); color: #fff; font-weight: 600; }
.btn.secondary { background: var(--card-2); color: var(--accent); }

.wallet-hero { color: #fff; border-radius: var(--radius); padding: 20px 18px; margin-bottom: 12px; }
.wallet-hero.w-tbank { color: #1b1b1b; }
.wallet-hero .bank { font-size: 14px; opacity: .85; }
.wallet-hero .big { font-size: 32px; font-weight: 700; margin-top: 18px; letter-spacing: -0.02em; }
.wallet-hero .meta { font-size: 13px; opacity: .85; margin-top: 4px; }

/* ---------- вход ---------- */
.login { max-width: 380px; margin: 0 auto; padding: 18vh 20px 40px; }
.login h1 { font-size: 28px; margin: 0 0 4px; }
.login label { display: block; font-size: 14px; color: var(--muted); margin: 14px 0 6px; }
.login input { width: 100%; font: inherit; padding: 13px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--card); color: var(--text); }
.login button { width: 100%; margin-top: 20px; border: 0; cursor: pointer; font: inherit; font-weight: 600; padding: 14px; border-radius: 12px; background: var(--accent); color: #fff; }
.login .error { background: var(--red-soft); color: var(--red); border-radius: 12px; padding: 10px 14px; margin-top: 16px; font-size: 14px; }

/* ---------- формы ввода ---------- */
.form-title { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 12px; }
.amount-card .label { font-size: 14px; color: var(--muted); }
.amount-row { display: flex; align-items: baseline; gap: 6px; }
.amount-input {
  flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text);
  font: inherit; font-size: 34px; font-weight: 700; letter-spacing: -0.03em; padding: 4px 0;
  -moz-appearance: textfield;
}
.amount-input::-webkit-outer-spin-button, .amount-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.amount-row .currency { font-size: 28px; font-weight: 700; color: var(--faint); }

.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--gray-soft); margin-bottom: 12px; }
.seg { position: relative; cursor: pointer; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg span { display: block; text-align: center; padding: 9px 8px; border-radius: 9px; font-size: 15px; color: var(--muted); }
.seg input:checked + span { background: var(--card); color: var(--text); font-weight: 600; box-shadow: var(--shadow); }
.seg input:focus-visible + span { outline: 2px solid var(--accent); }

/* кошелёк одной строкой; без JS — весь список открыт */
.wdot { flex-shrink: 0; width: 14px; height: 14px; border-radius: 50%; }
.wdot:not([class*=" w-"]) { background: var(--faint); }  /* цвет банка — из .w-sber и т.п. */
.picker-current { display: none; }
.picker.js .picker-current {
  display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--line);
  border-radius: 10px; background: var(--card-2); color: var(--text); font: inherit; text-align: left; cursor: pointer;
}
.picker-current.empty .picker-name { color: var(--accent); }
.picker-current:focus-visible { outline: 2px solid var(--accent); }
.picker-name { flex: 1; min-width: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.picker-sum { font-weight: 600; color: var(--muted); white-space: nowrap; }
.picker-current .i { color: var(--faint); transition: transform .15s; }
.picker-recent { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 4px 6px; }
.picker-recent .pgroup-title { width: 100%; padding: 6px 4px 0; }
.chip {
  display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--card); color: var(--text); font: inherit; font-size: 14px; cursor: pointer; white-space: nowrap;
}
.chip.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.picker-panel { grid-column: 1 / -1; margin-top: 8px; padding: 8px; border-radius: 14px; background: var(--card); }
/* окно выбора: на телефоне — во весь экран, на компьютере — посередине; страница не растёт */
.picker.js .picker-panel, .combo.open {
  display: none; position: fixed; z-index: 40; inset: 0; margin: 0; overflow-y: auto; border-radius: 0;
  background: var(--card); padding: 10px 12px calc(16px + env(safe-area-inset-bottom));
}
.picker.js.open .picker-panel { display: block; }
.sheet-top { position: sticky; top: -10px; z-index: 1; display: flex; gap: 8px; background: var(--card); padding: 0 0 6px; }
.picker-search {
  flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card-2); color: var(--text);
}
.sheet-close {
  flex-shrink: 0; width: 42px; border: 0; border-radius: 10px; background: var(--gray-soft); color: var(--muted);
  font: inherit; font-size: 18px; cursor: pointer;
}
.picker:not(.js) .sheet-top, .picker:not(.js) .picker-recent { display: none; }
.pgroup[hidden], .prow[hidden], .row[data-currency-row][hidden] { display: none; }
.pgroup-title { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); padding: 10px 8px 4px; }
.prow { display: flex; align-items: center; gap: 10px; padding: 10px 8px; border-radius: 10px; cursor: pointer; }
.prow:hover { background: var(--card-2); }
.prow input { position: absolute; opacity: 0; pointer-events: none; }
.prow:has(input:checked) { background: var(--accent-soft); }
.prow:has(input:checked) .prow-name { color: var(--accent); }
.prow:has(input:focus-visible) { outline: 2px solid var(--accent); }
.prow-name { flex: 1; min-width: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prow-sum { color: var(--muted); white-space: nowrap; font-size: 15px; }

/* список с поиском вместо обычного выпадающего; на телефоне открывается во весь экран */
.combo { position: relative; min-width: 0; }
.combo .sheet-close { display: none; }
.combo.open { display: flex; flex-direction: column; }
.combo.open .combo-top { display: flex; gap: 8px; }
.combo-top { display: flex; gap: 8px; }
.combo.open .sheet-close { display: block; }
.combo.open .combo-input { flex: 1; }
.combo.open .combo-list { position: static; flex: 1; max-height: none; border: 0; box-shadow: none; padding: 6px 0; }
.combo.open .combo-item { padding: 12px 10px; font-size: 16px; }
.combo-list {
  position: absolute; z-index: 15; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 6px; list-style: none;
  max-height: 300px; overflow-y: auto; border-radius: 12px; background: var(--card); border: 1px solid var(--line);
  box-shadow: 0 8px 28px rgba(0, 0, 0, .16);
}
.combo-list[hidden] { display: none; }
.combo-item { padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: 15px; }
.combo-item.chosen { font-weight: 600; color: var(--accent); }
.combo-item.active, .combo-item:hover { background: var(--accent-soft); }
.combo-head { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); padding: 8px 10px 4px; }

/* дата: «Сегодня» / «Вчера» / другая (календарь поверх кнопки) */
.date-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.date-row .chip { padding: 8px 10px; }
.date-other { position: relative; }
.date-row .date-other input {
  position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; padding: 0; border: 0; cursor: pointer;
}
.date-row.no-js input[type="date"] { position: static; opacity: 1; }

/* кнопки сохранения всегда видны внизу */
.form-actions {
  position: sticky; z-index: 5; bottom: calc(var(--nav-h) + env(safe-area-inset-bottom));
  display: flex; gap: 8px; padding: 12px 0; background: linear-gradient(transparent, var(--bg) 35%);
}
.form-actions .submit { flex: 1; margin: 0; }

.fields { padding: 4px 16px; }
.field { padding: 12px 0; }
.field:not([hidden]) ~ .field:not([hidden]) { border-top: 1px solid var(--line); }
.field[hidden] { display: none; }
.field label { display: block; font-size: 14px; color: var(--muted); margin-bottom: 6px; }
.field .opt { font-size: 12px; color: var(--faint); }
.field input, .field select, .field textarea {
  width: 100%; min-width: 0; font: inherit; font-size: 16px; padding: 11px 12px; border-radius: 12px;
  border: 1px solid var(--line); background: var(--card-2); color: var(--text);
}
.field input:focus, .field select:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
.field-hint { font-size: 13px; color: var(--muted); margin: 6px 0 0; }
.field-hint.warn { background: var(--amber-soft); color: var(--amber); border-radius: 12px; padding: 10px 12px; margin: 8px 0 0; }
.field-hint[hidden] { display: none; }
.field-error { font-size: 13px; color: var(--red); margin: 6px 0 0; }
.form-error { background: var(--red-soft); color: var(--red); border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; font-size: 14px; }
.submit { width: 100%; border: 0; cursor: pointer; font: inherit; font-weight: 600; margin: 4px 0 16px; }

/* компактная форма: каждое поле — одна строка «название — значение», всё на одном экране */
.form-page { max-width: 560px; }
.app:has(.form-page) { padding-bottom: calc(var(--nav-h) + env(safe-area-inset-bottom)); }  /* без лишнего хвоста снизу */
.form-head { display: flex; align-items: center; gap: 12px; padding: 4px 0 10px; }
.form-head .back { display: inline-flex; align-items: center; gap: 2px; color: var(--accent); font-size: 15px; }
.form-head h1 { font-size: 20px; font-weight: 700; margin: 0; letter-spacing: -0.02em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.amount-card { padding: 10px 14px 12px; margin-bottom: 10px; }
.amount-card .amount-input { font-size: 30px; padding: 2px 0; }
.amount-card .segmented { margin: 8px 0 0; }
.rows { padding: 2px 14px; margin-bottom: 4px; }
.rows .row { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; column-gap: 10px; padding: 6px 0; }
.rows .row[hidden] { display: none; }
.rows .row:not([hidden]) ~ .row:not([hidden]) { border-top: 1px solid var(--line); }
.rows .row.field { padding: 6px 0; }
.rows .row-label, .rows .row.field label.row-label { display: block; margin: 0; font-size: 13px; line-height: 1.25; color: var(--muted); }
.rows .row.field input, .rows .row.field select, .rows .row .combo-input { padding: 9px 10px; border-radius: 10px; }
.rows .row > .row-note, .rows .row > .field-error, .rows .row > .field-hint { grid-column: 1 / -1; }
.row-note { font-size: 12px; color: var(--muted); margin: 4px 0 0; }
.row-note.warn { color: var(--amber); }
.row-note[hidden] { display: none; }
body.sheet-open { overflow: hidden; }  /* под окном выбора страница не прокручивается */
.form-actions { padding: 8px 0; }
.form-actions .btn { padding: 13px 10px; }

/* снабжение: строки заявки/счёта, статусы, файлы */

/* сметы: строки сметы, паспорт дома */
.est-note { margin: -4px 4px 12px; }
.est-lines li { gap: 2px; }
.est-line { display: flex; justify-content: space-between; gap: 10px; }
.est-line span { min-width: 0; overflow-wrap: anywhere; }
.est-line b { font-weight: 600; white-space: nowrap; }
.hero .sub a, .props dd a { color: var(--accent); }
.rows .row.field input[type="checkbox"] { width: 22px; height: 22px; justify-self: start; accent-color: var(--accent); }
.house-obj { margin: -4px 0 10px; font-size: 14px; }
.house-help { font-size: 14px; margin: 0 4px 12px; }
.house-row { padding: 12px 0; }
.house-row + .house-row { border-top: 1px solid var(--line); }
.house-name { font-weight: 600; font-size: 15px; margin-bottom: 8px; overflow-wrap: anywhere; }
.house-name a { color: var(--text); }
.house-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.hf { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 12px; color: var(--muted); }
.hf input:not([type="checkbox"]), .hf select {
  width: 100%; min-width: 0; font: inherit; font-size: 16px; padding: 8px 10px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card-2); color: var(--text);
}
.hf-has_garage { flex-direction: row; align-items: center; gap: 8px; font-size: 14px; color: var(--text); }
.hf-has_garage input { width: 22px; height: 22px; accent-color: var(--accent); }
.hf .field-error { font-style: normal; margin: 0; }
fieldset.plain { border: 0; margin: 0; padding: 0; min-width: 0; }
.norm-fields .hf-name, .norm-fields .hf-material, .norm-fields .hf-source { grid-column: 1 / -1; }
.est-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.est-links .btn { width: auto; margin: 0; text-align: center; }
.slines { padding: 10px 14px; }
.sline { padding: 8px 0; }
.sline + .sline { border-top: 1px solid var(--line); }
.sline[hidden] { display: none; }
.sline-nums { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.sline-qty, .sline-price { display: flex; align-items: center; gap: 4px; flex: 1 1 88px; min-width: 0; }
.sline input:not([type="checkbox"]):not([type="hidden"]), .sline .combo-input {
  width: 100%; min-width: 0; font: inherit; font-size: 16px; padding: 9px 10px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card-2); color: var(--text);
}
.sline .unit { color: var(--muted); font-size: 14px; white-space: nowrap; }
.sline-sum { font-size: 14px; color: var(--muted); white-space: nowrap; }
.sline-comment { flex: 2 1 110px; min-width: 0; }
.sline-del {
  position: relative; flex-shrink: 0; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center;
  border-radius: 10px; background: var(--gray-soft); color: var(--muted); cursor: pointer;
}
.sline-del input { position: absolute; opacity: 0; pointer-events: none; }
.add-line { margin-top: 8px; }
.req-title { font-size: 20px; font-weight: 700; line-height: 1.25; margin: 4px 0; }
.status-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.status-buttons .btn { flex: 1 1 40%; width: auto; }
.badge.st-new { background: var(--amber-soft); color: var(--amber); }
.badge.st-ordered { background: var(--accent-soft); color: var(--accent); }
.badge.st-delivered { background: var(--green-soft); color: var(--green); }
.link-row .badge { flex-shrink: 0; }
.file-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; }
.file-row + .file-row { border-top: 1px solid var(--line); }
.file-row a { display: inline-flex; align-items: center; gap: 8px; min-width: 0; color: var(--accent); overflow-wrap: anywhere; }
.pay-btn { margin: 0 0 12px; }
.narrow > .btn { margin-bottom: 12px; }

/* плашка «Готово» после сохранения */
.toasts { margin-bottom: 8px; }
.toast { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--green-soft); color: var(--green); font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.toast.error { background: var(--red-soft); color: var(--red); }

/* ---------- разделы: Деньги, Долги, Ещё ---------- */
.group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 18px 4px 8px; }
.group-head h2 { font-size: 17px; font-weight: 650; margin: 0; }
.group-head span { font-size: 15px; font-weight: 600; color: var(--muted); white-space: nowrap; }
.wallet-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.wallet-grid .wcard { min-width: 0; }
.tile-note { font-size: 12px; color: var(--muted); margin-top: 2px; }

.link-row { display: flex; align-items: center; gap: 10px; padding: 12px 0; color: var(--text); }
.card.link-row { padding: 14px 16px; }
.link-row .name { flex: 1; min-width: 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.link-row .name small { display: block; font-size: 12px; color: var(--muted); }
.link-row .sum { font-size: 15px; font-weight: 600; white-space: nowrap; }
.link-row .i { color: var(--faint); }
.card > .link-row + .link-row, .card > .supplier + .supplier { border-top: 1px solid var(--line); }
.supplier summary { list-style: none; cursor: pointer; }
.supplier summary::-webkit-details-marker { display: none; }
.supplier summary .i { transition: transform .15s; }
.supplier[open] summary .i { transform: rotate(90deg); }
.invoices { list-style: none; margin: 0 0 10px; padding: 0 0 0 12px; border-left: 2px solid var(--line); }
.invoices li { display: flex; flex-direction: column; gap: 1px; padding: 6px 0; font-size: 14px; }
.invoices li a { color: var(--accent); }
.invoices .muted { font-size: 13px; }

.menu-list { padding: 4px 16px; }
.menu-list > a, .menu-list > div, .menu-list button {
  display: flex; align-items: center; gap: 12px; width: 100%; padding: 13px 0; font: inherit; font-size: 15px;
  color: var(--text); background: none; border: 0; text-align: left; cursor: pointer;
}
.menu-list > * + * { border-top: 1px solid var(--line); }
.menu-list span { flex: 1; min-width: 0; }
.menu-list small { display: block; font-size: 13px; color: var(--muted); }
.menu-list .i { color: var(--muted); }
.menu-list button { color: var(--red); }
.menu-list button .i { color: var(--red); }


/* ---------- садака и закят ---------- */
button.btn { width: 100%; border: 0; cursor: pointer; font: inherit; font-weight: 600; }
.charity-row { display: grid; gap: 10px; padding: 12px 0; }
.charity-row + .charity-row { border-top: 1px solid var(--line); }
.charity-pay { display: block; text-align: center; margin-top: 12px; }
.charity-info b { display: block; font-size: 16px; }
.charity-info span { display: block; font-size: 13px; }
.charity-amount { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); }
.charity-amount input, .charity-inline input {
  flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 10px 12px; border-radius: 12px;
  border: 1px solid var(--line); background: var(--card-2); color: var(--text);
}
.charity-amount span { color: var(--text); }
.charity-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.charity-inline { display: grid; gap: 8px; margin-top: 12px; }
.link-row .name small { white-space: normal; }

/* ---------- предупреждения и боковая панель ---------- */
.alerts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.alert { display: flex; gap: 10px; align-items: flex-start; padding: 11px 13px; border-radius: 14px; font-size: 14px; line-height: 1.35; }
.alert .i { margin-top: 1px; }
.alert.bad { background: var(--red-soft); color: var(--red); }
.alert.warn { background: var(--amber-soft); color: var(--amber); }
.alert-body { min-width: 0; }
.alert-body b { display: block; font-weight: 600; overflow-wrap: anywhere; }
.alert-body span { display: block; color: var(--text); opacity: .75; font-size: 13px; }
.alert-body ul { margin: 4px 0 0; padding-left: 16px; color: var(--text); opacity: .75; font-size: 13px; }
.alerts.side { display: none; }
a.alert-body { color: inherit; }
.alert-body { flex: 1; }
.alert-x { margin: -4px -6px 0 auto; }
.alert-x button { border: 0; background: none; color: inherit; opacity: .6; cursor: pointer; padding: 4px; display: flex; border-radius: 8px; }
.alert-x button:hover { opacity: 1; background: rgba(127, 127, 127, .15); }
.alert-x .i { transform: rotate(45deg); }
.alerts-restore { margin: -4px 0 12px; }
.alerts-restore button { border: 0; background: none; padding: 4px; font: inherit; font-size: 13px; color: var(--accent); cursor: pointer; }
.alerts-restore.side { display: none; }
.alerts-fold { margin-bottom: 12px; }
.alerts-fold > summary { list-style: none; cursor: pointer; }
.alerts-fold > summary::-webkit-details-marker { display: none; }
.alerts-fold[open] > summary { margin-bottom: 8px; }
.alerts-fold[open] > summary span { display: none; }
.aside { display: none; }

.chart .card-head .muted { font-size: 12px; }
.chart-note { font-size: 12px; color: var(--faint); margin: 8px 0 0; }
.props.compact div { padding: 8px 0; font-size: 14px; }
.delta { font-size: 12px; font-weight: 600; margin-left: 4px; }
.delta.good { color: var(--green); }
.delta.bad { color: var(--red); }
.stats.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.bar-list { list-style: none; margin: 0; padding: 0; }
.bar-list li + li { margin-top: 10px; }
.bar-row { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; }
.bar-row .name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-row a.name { color: var(--text); }
.bar-row a.name:hover { color: var(--accent); }
.bar-row .value { white-space: nowrap; color: var(--muted); }
.bar-list .bar { margin: 5px 0 0; }
.bar span.bad { background: var(--red); }

.legend { display: flex; gap: 16px; font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.key { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.key.in, .bar-v.in { background: var(--green); }
.key.out, .bar-v.out { background: var(--red); }
.columns { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; height: 150px; align-items: end; border-bottom: 1px solid var(--line); }
.col { display: flex; flex-direction: column; height: 100%; }
.pair { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.bar-v { position: relative; width: 40%; max-width: 16px; min-height: 2px; border-radius: 4px 4px 0 0; }
.col-label { font-size: 12px; color: var(--muted); text-align: center; padding-top: 4px; transform: translateY(100%); height: 0; }
.columns { margin-bottom: 22px; }

/* ---------- аналитика ---------- */
.money-tabs { grid-template-columns: 1fr 1fr; }
/* строка «что выбрано» + кнопка «Фильтр» */
.an-bar { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
.an-summary { flex: 1; min-width: 0; font-size: 15px; line-height: 1.35; }
.an-summary-filters { font-size: 13px; color: var(--accent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.an-bar .an-filter-btn { flex-shrink: 0; width: auto; display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; }
.an-filter-btn .count {
  min-width: 20px; height: 20px; border-radius: 10px; background: var(--accent); color: #fff;
  font-size: 12px; line-height: 20px; text-align: center; padding: 0 6px;
}
/* окно фильтра: на телефоне выезжает снизу, на компьютере — справа */
.an-sheet { position: fixed; inset: 0; z-index: 45; }
.an-sheet[hidden] { display: none; }
.an-sheet-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.an-sheet-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-height: 90vh; display: flex; flex-direction: column;
  background: var(--card); border-radius: 20px 20px 0 0; padding-bottom: env(safe-area-inset-bottom);
}
.an-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 6px; }
.an-sheet-head h2 { font-size: 19px; margin: 0; }
.an-sheet-head .sheet-close { height: 38px; }
.an-sheet-body { flex: 1; overflow-y: auto; padding: 0 16px 8px; overscroll-behavior: contain; }
.an-sec { padding: 10px 0; }
.an-sec + .an-sec { border-top: 1px solid var(--line); }
.an-sec h3 { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); margin: 0 0 8px; }
.opts { display: flex; flex-wrap: wrap; gap: 8px; }
.opts + .opts, .opts + .an-dates, [data-cmp-pick] { margin-top: 8px; }
.opts[hidden], .an-dates[hidden], [data-cmp-pick][hidden], .an-li[hidden] { display: none; }
.opts.scroll { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.opt { position: relative; flex-shrink: 0; cursor: pointer; }
.opt input { position: absolute; opacity: 0; pointer-events: none; }
.opt span {
  display: block; padding: 8px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--card-2);
  font-size: 15px; white-space: nowrap; color: var(--text);
}
.opt input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600; }
.opt input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.an-dates { display: flex; gap: 8px; }
.an-dates label { flex: 1; font-size: 13px; color: var(--muted); }
.an-dates input, .an-sec .picker-search {
  display: block; width: 100%; margin-top: 4px; font: inherit; font-size: 16px; padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card-2); color: var(--text);
}
.an-sec .picker-search { margin: 0 0 6px; }
.an-list { max-height: 220px; overflow-y: auto; border: 1px solid var(--line); border-radius: 12px; padding: 4px; }
.an-li { display: flex; align-items: center; padding: 10px; border-radius: 8px; cursor: pointer; font-size: 15px; }
.an-li input { position: absolute; opacity: 0; pointer-events: none; }
.an-li:hover { background: var(--card-2); }
.an-li:has(input:checked) { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.an-li:has(input:checked)::after { content: "✓"; margin-left: auto; padding-left: 8px; }
.an-sheet-foot { display: flex; gap: 8px; padding: 10px 16px 14px; border-top: 1px solid var(--line); }
.an-sheet-foot .btn { flex: 1; text-align: center; padding: 13px; }
.an-results { transition: opacity .15s; }
.an-results.loading { opacity: .45; pointer-events: none; }
.an-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 12px; }
.an-yy { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 20px; margin-top: 12px; }
.an-table th a { color: var(--accent); }
.bar-list .name[href] { color: var(--accent); }
.hero .cmp { margin-top: 10px; }
@media (max-width: 1199px) {
  /* телефон и узкий экран: вкладки «Деньги | Аналитика» */
  .money-page .aside { display: none; }
  .money-page.tab-an .aside { display: block; max-width: none; }
  .money-page.tab-an .narrow > :not(.topbar):not(.money-tabs):not(.actions-card) { display: none; }
}
.seg-link { display: block; text-align: center; padding: 9px 2px; border-radius: 9px; font-size: 14px; color: var(--muted); white-space: nowrap; }
.seg-link.on { background: var(--card); color: var(--text); font-weight: 600; box-shadow: var(--shadow); }
.columns.dense { gap: 2px; }
.columns.dense .bar-v { width: 45%; }
.key.now, .bar-v.now { background: var(--accent); }
.bar-v.now.in { background: var(--green); }
.key.before, .bar-v.before { background: var(--faint); opacity: .6; }
.an-yy h3 { font-size: 14px; font-weight: 600; margin: 4px 0 6px; overflow-wrap: anywhere; }
.line-chart { position: relative; height: 150px; margin: 4px 0 8px; }
.line-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.line { fill: none; stroke: var(--accent); stroke-width: 2.5; stroke-linejoin: round; }
.line-area { fill: var(--accent-soft); opacity: .7; }
.dot { position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; cursor: pointer; }
.dot:hover, .dot:focus { background: var(--accent); outline: 3px solid var(--card); }
.dot[data-tip]:hover::after, .dot[data-tip]:focus::after,
.bar-v[data-tip]:hover::after {
  content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
  white-space: nowrap; background: var(--text); color: var(--bg); font-size: 12px; padding: 4px 8px; border-radius: 6px; z-index: 5;
}
.dot:first-of-type[data-tip]::after { left: 0; transform: none; }
.dot:last-of-type[data-tip]::after { left: auto; right: 0; transform: none; }
.cmp, .an-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cmp th, .cmp td, .an-table th, .an-table td { padding: 8px 4px; text-align: right; white-space: nowrap; border-top: 1px solid var(--line); }
.cmp thead th, .an-table thead th { border-top: 0; font-size: 12px; font-weight: 600; color: var(--faint); }
.cmp thead th { white-space: normal; }
.cmp thead small { display: inline; font-weight: 400; }
.cmp thead small::before { content: "/ "; }
.cmp tbody th, .an-table tbody th { text-align: left; font-weight: 500; }
.cmp tr.sub th { padding-left: 14px; color: var(--muted); font-weight: 400; }
.cmp tr.sub td { color: var(--muted); }
.cmp tr.total th, .cmp tr.total td { font-weight: 700; }
.cmp small, .an-table small { display: block; font-size: 12px; }
.table-scroll { overflow-x: auto; margin: 0 -4px; }

/* ---------- компьютер ---------- */
@media (min-width: 960px) {
  .app { padding-bottom: 32px; padding-left: 232px; }
  .nav {
    top: 0; right: auto; width: 232px; height: auto; flex-direction: column; justify-content: flex-start; gap: 2px;
    padding: 20px 12px; border-top: 0; border-right: 1px solid var(--line);
  }
  .nav .brand { display: block; font-weight: 700; font-size: 18px; padding: 4px 12px 18px; }
  .nav a { flex: 0; flex-direction: row; justify-content: flex-start; gap: 12px; font-size: 15px; color: var(--muted); padding: 10px 12px; border-radius: 10px; }
  .nav a.on { background: var(--accent-soft); }
  .nav a:hover { color: var(--text); }
  .main { max-width: 1600px; padding: 24px 32px 0; }
  .aside { display: block; max-width: 640px; }
  .topbar h1 { font-size: 28px; }
  .grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
  .wallets { flex-wrap: wrap; overflow: visible; margin: 0; padding: 2px 0 8px; }
  .wcard { flex: 0 0 calc(33.33% - 7px); }
  .narrow { max-width: 640px; }
  .stats { padding: 16px 18px; }
  .stats .value { font-size: 19px; }
  /* окно выбора — посередине экрана, вокруг затемнение */
  .picker.js .picker-panel {
    inset: 10vh auto auto 50%; transform: translateX(-50%); width: 480px; max-height: 80vh; border-radius: 16px;
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .4);
  }
  .combo.open { position: relative; inset: auto; display: block; padding: 0; background: none; overflow: visible; z-index: auto; }
  .combo.open .sheet-close { display: none; }
  .combo.open .combo-list { position: absolute; max-height: 300px; border: 1px solid var(--line); box-shadow: 0 8px 28px rgba(0, 0, 0, .16); padding: 6px; }
  .combo.open .combo-item { padding: 9px 10px; font-size: 15px; }
  .form-actions { bottom: 0; }
  body.sheet-open { overflow: auto; }
  .rows .row { grid-template-columns: 130px minmax(0, 1fr); }
  .wallet-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .house-fields { grid-template-columns: 1fr .8fr 1.3fr 1.3fr auto; align-items: end; }
  .hf-has_garage { padding-bottom: 9px; }
  .norm-fields { grid-template-columns: 1fr .8fr .8fr 1fr 1fr; }
  .norm-fields .hf-name { grid-column: 1 / 3; }
  .norm-fields .hf-material { grid-column: 3 / -1; }
}

@media (min-width: 1200px) {
  .page { display: grid; grid-template-columns: minmax(0, 640px) minmax(300px, 1fr); gap: 24px; align-items: start; }
  .page > .narrow { max-width: none; }
  .aside { max-width: 560px; }
  .money-tabs { display: none; }
  .page.money-page { grid-template-columns: minmax(0, 520px) minmax(0, 1fr); }
  .money-page .aside { max-width: none; }
  .an-sheet-panel { left: auto; top: 0; width: 440px; max-height: none; border-radius: 0; }
  .alerts.top, .alerts-fold.top, .alerts-restore.top { display: none; }
  .alerts-restore.side { display: block; }
  .alerts.side { display: flex; }
}

/* Калькулятор смет: разделы с размерами, строки расчёта, смета для клиента */
.calc-sec { padding-top: 0; padding-bottom: 4px; }
.calc-sec > summary { list-style: none; cursor: pointer; }
.calc-sec > summary::-webkit-details-marker { display: none; }
.calc-sec[open] > summary .i { transform: rotate(90deg); }
.calc-on { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 14px; }
.calc-on input, .hf-check input { width: 22px; height: 22px; accent-color: var(--accent); }
.calc-fields { padding-bottom: 12px; }
.hf-check { flex-direction: row-reverse; justify-content: flex-end; align-items: center; gap: 8px; font-size: 14px; color: var(--text); }
.calc-form .segmented { margin-bottom: 12px; }
.calc-note { font-size: 12px; overflow-wrap: anywhere; }
.calc-material .est-line span { color: var(--muted); }
.calc-split { margin: 10px 0 0; }
.link-row.static { cursor: default; }
.link-row.static + .link-row.static { border-top: 1px solid var(--line); }
.link-row.total .name, .link-row.total .sum { font-weight: 700; font-size: 17px; }
.est-links form { display: contents; }
.est-links button.btn { width: 100%; border: 0; font: inherit; font-weight: 600; cursor: pointer; }
.calc-delete { text-align: center; margin: 8px 0 24px; }
.link-danger { background: none; border: 0; color: var(--red); font: inherit; font-size: 14px; cursor: pointer; padding: 8px; }
@media print {
  .nav, .no-print, .toasts { display: none !important; }
  .main, .narrow { margin: 0; padding: 0; max-width: none; }
  body { background: #fff; color: #000; }
  .card { box-shadow: none; border: 1px solid #ccc; background: #fff; color: #000; }
  .muted, .label { color: #555 !important; }
}
@media (min-width: 960px) {
  .calc-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
}

/* «Финансы»: вкладки Деньги | Операции | Аналитика, компактная шапка, кошельки списком по группам */
.money-tabs.three { grid-template-columns: repeat(3, 1fr); }
.actions-card { padding: 4px 2px; }
.actions-card .action { gap: 3px; font-size: 11px; padding: 4px 0; }
.actions-card .action .circle { width: 40px; height: 40px; }
.money-head { padding-top: 12px; padding-bottom: 2px; }
.money-total { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.money-total .label { font-size: 14px; color: var(--muted); }
.money-total b { font-size: 24px; letter-spacing: -0.02em; white-space: nowrap; }
.money-net { font-size: 13px; text-align: right; margin: 2px 0 4px; }
.money-cur { font-size: 14px; font-weight: 600; text-align: right; margin: 0 0 2px; white-space: nowrap; }
.money-cur .muted { font-weight: 400; font-size: 12px; }
.money-head .link-row { padding: 10px 0; border-top: 1px solid var(--line); }
.wgroup { padding-top: 0; padding-bottom: 0; }
.wgroup > summary { list-style: none; cursor: pointer; }
.wgroup > summary::-webkit-details-marker, .wzero > summary::-webkit-details-marker { display: none; }
.wgroup-head { display: flex; align-items: center; gap: 8px; padding: 12px 0; }
.wgroup-head .name { flex: 1; font-weight: 600; font-size: 16px; }
.wgroup-head .sum { font-weight: 600; white-space: nowrap; }
.wgroup-head .i { color: var(--faint); transition: transform .15s; }
.wgroup[open] > .wgroup-head .i { transform: rotate(90deg); }
.wrow { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); color: var(--text); }
.wrow .wdot { width: 10px; height: 10px; }
.wrow .name { flex: 1; min-width: 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wrow .name small { margin-left: 6px; font-size: 12px; color: var(--muted); }
.wrow .sum { font-size: 15px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wrow .sum small { display: block; text-align: right; font-size: 11px; color: var(--muted); }
.wzero > summary { list-style: none; cursor: pointer; padding: 9px 0; font-size: 13px; border-top: 1px solid var(--line); }
.month-line { font-size: 13px; color: var(--muted); margin: 0 0 10px; line-height: 1.5; }
.month-line b { color: var(--text); font-weight: 600; }
.month-line b.pos { color: var(--green); }
@media (min-width: 1200px) {
  .money-tabs.three { display: grid; }
  .money-page .money-tabs.three { grid-template-columns: repeat(3, 1fr); }
  .money-page .money-tabs [data-tab="an"] { display: none; }
}

/* Сделка по объекту */
.sale-line { font-size: 14px; margin: 0 0 6px; }
.receipts { margin-top: 6px; }
.receipt-fields .hf-note { grid-column: 1 / -1; }
@media (min-width: 960px) {
  .receipt-fields { grid-template-columns: 1.2fr 1fr 1fr 1fr; }
  .receipt-fields .hf-income { grid-column: span 2; }
}

/* Аналитика: окна «Главное | Сравнение», результаты компании, таблица объектов */
.an-windows { grid-template-columns: 1fr 1fr; margin: 0 0 10px; }
.an-totals .tile-note { font-size: 11px; margin-top: 2px; }
.an-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; margin: 4px 0 8px; }
.an-grid > div { display: flex; flex-direction: column; min-width: 0; }
.an-grid .label { font-size: 12px; color: var(--muted); }
.an-grid b { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-grid small { font-size: 11px; color: var(--muted); }
.an-sold { margin-top: 4px; }
.an-objects th small { display: block; font-weight: 400; font-size: 11px; }
.an-objects th { min-width: 140px; }
@media (min-width: 960px) {
  .an-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.an-results .line-chart { height: 90px; }
.an-results .bar-list li + li { margin-top: 7px; }
.an-results .bar-list .bar { margin-top: 3px; }
.an-how > summary { list-style: none; cursor: pointer; font-size: 13px; padding: 4px 0; }
.an-how > summary::-webkit-details-marker { display: none; }
.an-how[open] > summary { margin-bottom: 4px; }
.delete-warn { font-size: 13px; margin: 4px 0; text-align: center; }
.history .invoices li span.muted { font-size: 13px; }
.journal li { gap: 2px; }
.journal-restore { padding: 6px 12px; margin-top: 4px; width: auto; display: inline-block; font-size: 13px; }

/* ---------- Справочники ---------- */
.top-add { display: inline-flex; align-items: center; gap: 4px; color: var(--accent); font-size: 15px; font-weight: 600; }
.dir-alert { margin-bottom: 12px; }
.badge.warn { background: var(--amber-soft); color: var(--amber); }
.link-row .name small .badge { display: inline; padding: 1px 7px; font-size: 11px; }
.sort-links { display: flex; gap: 10px; font-size: 13px; }
.card-head .sort-links a { color: var(--muted); font-size: 13px; }
.card-head .sort-links a.on { color: var(--accent); font-weight: 600; }
.dir-note { font-size: 13px; margin: 0 4px 16px; }
.dir-actions { padding: 4px 16px; }
.dir-actions form { margin: 0; }
.dir-actions button { width: 100%; display: flex; align-items: center; gap: 12px; padding: 14px 0; background: none; border: 0; font: inherit; color: var(--text); cursor: pointer; text-align: left; }
.dir-actions > * + * { border-top: 1px solid var(--line); }
.dir-actions a { display: flex; align-items: center; gap: 12px; padding: 14px 0; color: var(--text); }
.dir-actions .i { color: var(--muted); }
.dir-actions .danger, .dir-actions .danger .i { color: var(--red); }
.dir-actions small { display: block; font-size: 13px; color: var(--muted); }
.dir-actions span { flex: 1; min-width: 0; }
.similar-list { margin: 6px 0 0; padding-left: 18px; }
.similar-list a { color: inherit; text-decoration: underline; }
.dir-alert a { color: inherit; text-decoration: underline; font-weight: 600; }
.dir-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 4px; border-radius: 12px; background: var(--gray-soft); margin-bottom: 12px; }
.dir-tabs::-webkit-scrollbar { display: none; }
.dir-tabs a { flex: 1 0 auto; text-align: center; padding: 8px 10px; border-radius: 9px; font-size: 14px; color: var(--muted); white-space: nowrap; }
.dir-tabs a.on { background: var(--card); color: var(--text); font-weight: 600; box-shadow: var(--shadow); }
.card-head:has(.sort-links) { flex-wrap: wrap; gap: 4px 12px; }
.sort-links { white-space: nowrap; }
.dir-tabs { gap: 2px; }
.dir-tabs a { padding: 8px 9px; font-size: 13.5px; }
.dir-tabs { position: relative; }
.role-list { padding: 4px 16px; }
.role-opt { display: flex; align-items: center; gap: 12px; padding: 13px 0; cursor: pointer; }
.role-opt + .role-opt { border-top: 1px solid var(--line); }
.role-opt input { width: 20px; height: 20px; accent-color: var(--accent); flex-shrink: 0; }
.role-list .row-note { margin: 0 0 10px; }
.dir-btn { margin: 0 0 12px; }
.login { padding-top: 8vh; }
.login-logo { display: block; width: 200px; margin: 0 auto 12px; }
.login-logo img { display: block; width: 100%; height: auto; }
.login-sub { text-align: center; margin: 0 0 8px; }
.seg-out { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 8px; font-size: 14px; color: var(--accent); }
.debt-pay { margin: 4px 0 8px; padding: 10px; }
.plan-list { margin: 0; padding: 4px 16px; list-style: none; }
.plan-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; font-size: 14px; }
.plan-list li + li { border-top: 1px solid var(--line); }
.plan-list small { display: block; color: var(--muted); font-size: 12px; }
.ic.credit { background: var(--amber-soft); color: var(--amber); }
.credit-note { margin: 12px 16px; font-size: 15px; line-height: 1.4; }
.form-actions [hidden] { display: none; }
.wdot.w-credit { background: var(--amber); }
.form-page [data-pay-only][hidden], .form-page [data-credit-only][hidden] { display: none; }
.credit-row { align-items: center; }
.credit-toggle { display: inline-block; cursor: pointer; }
.credit-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.credit-toggle span { display: inline-block; padding: 10px 22px; border-radius: 12px; border: 1.5px solid var(--accent); color: var(--accent); font-weight: 600; font-size: 15px; background: var(--card); }
.credit-toggle input:checked + span { background: var(--accent); color: #fff; }
.credit-toggle input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
[data-pay-wallet].is-off { opacity: .45; }
@media (min-width: 960px) {
  .nav .brand { padding: 6px 12px 18px; }
  .nav .brand img { display: block; width: 140px; height: auto; }
}
.brand-mobile { padding: 4px 0 2px; display: flex; justify-content: center; }
.brand-mobile img { display: block; height: 30px; width: auto; }
@media (min-width: 960px) { .brand-mobile { display: none; } }

/* Логотип в двух цветах: светлый вариант / тёмный вариант — по теме */
.logo-on-dark { display: none !important; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .logo-on-dark { display: block !important; }
  :root:not([data-theme="light"]) .logo-on-light { display: none !important; }
}
:root[data-theme="dark"] .logo-on-dark { display: block !important; }
:root[data-theme="dark"] .logo-on-light { display: none !important; }
.brand-mobile { position: relative; justify-content: center; padding: 6px 0 4px; }
.brand-mobile img { height: auto; width: 82px; }
.nav .theme-switch { display: none; }
@media (min-width: 960px) { .nav .theme-switch { display: inline-flex; margin: 0 12px 14px; } }
.theme-row { display: flex; align-items: center; gap: 12px; padding: 14px 0; flex-wrap: wrap; }
.theme-chips { display: flex; gap: 6px; flex: 0 0 auto; }
.theme-chips .chip { padding: 6px 12px; font-size: 14px; }
.menu-list .theme-row button { color: var(--text); }
/* Переключатель «день/ночь»: ползунок слева — день, справа — ночь */
.theme-switch { position: relative; display: inline-flex; align-items: center; justify-content: space-between; width: 64px; height: 32px;
  padding: 0 8px; border: 0; border-radius: 999px; background: var(--gray-soft); color: var(--muted); cursor: pointer; flex-shrink: 0; }
.theme-switch span { display: flex; position: relative; z-index: 1; }
.theme-switch .ts-knob { position: absolute; z-index: 0; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%;
  background: var(--card); box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s ease; }
.theme-switch .ts-sun { color: #e0a100; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .theme-switch .ts-knob { transform: translateX(32px); }
  :root:not([data-theme="light"]) .theme-switch .ts-moon { color: #f0c96a; } }
:root[data-theme="dark"] .theme-switch .ts-knob { transform: translateX(32px); }
:root[data-theme="dark"] .theme-switch .ts-moon { color: #f0c96a; }
.brand-mobile .theme-switch { position: absolute; right: 0; top: 8px; }
.theme-auto { padding: 6px 10px; font-size: 13px; }
/* логотип в одну строку с заголовком раздела: надпись «ДОМ МЕЧТЫ» на уровне «Финансы» */
@media (max-width: 959px) {
  .brand-mobile { margin-bottom: -43px; pointer-events: none; }
  .brand-mobile .theme-switch { pointer-events: auto; }
  .brand-mobile + .topbar { min-height: 44px; }
}
@media (max-width: 380px) { .brand-mobile + .topbar h1 { font-size: 22px; } }
/* ---------- Сводка «Объекты» ---------- */
.dash-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.dash-tile { display: flex; flex-direction: column; gap: 2px; background: var(--card); border-radius: var(--radius); padding: 12px 14px; box-shadow: var(--shadow); color: var(--text); min-width: 0; }
.dash-tile .label { font-size: 13px; color: var(--muted); }
.dash-tile b { font-size: 20px; letter-spacing: -0.01em; }
.dash-tile small { font-size: 12px; color: var(--muted); }
@media (min-width: 960px) { .dash-tiles { grid-template-columns: repeat(4, 1fr); } }
.dash-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; background: var(--amber); }
.dash-dot.bad { background: var(--red); }
.stage-bar { display: flex; height: 14px; border-radius: 999px; overflow: hidden; background: var(--gray-soft); }
.stage-bar span { display: block; height: 100%; }
.stage-legend { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--muted); }
.stage-legend li { display: flex; align-items: center; gap: 6px; }
.stage-legend b { color: var(--text); }
.st-dot { width: 10px; height: 10px; border-radius: 3px; }
.st-plan { background: #b8c2cf; } .st-foundation { background: #8a6d4f; } .st-box { background: #d08b2c; }
.st-rough { background: #e3b341; } .st-prefinish { background: #4c9be8; } .st-done { background: #2f9e6a; }
.st-sold { background: #7c5cd6; } .st-none { background: repeating-linear-gradient(45deg, #c9ced6, #c9ced6 3px, #e5e8ec 3px, #e5e8ec 6px); }
.dash-year { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-bottom: 8px; }
.dash-year .label { display: block; font-size: 13px; color: var(--muted); }
.dash-year b { font-size: 18px; }
.dash-year small { display: block; font-size: 12px; }
.dash-more > summary { list-style: none; cursor: pointer; margin: 0; }
.dash-more > summary::-webkit-details-marker { display: none; }
.dash-more[open] > summary .i { transform: rotate(90deg); }
.dash-more[open] > summary { margin-bottom: 8px; }

/* Личный расход голосом */
.voice-title { font-size: 22px; margin: 4px 0 16px; }
.voice-rec { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 24px 0; }
.voice-mic { position: relative; width: 140px; height: 140px; border-radius: 50%; border: 0; background: var(--accent);
  color: #fff; display: grid; place-items: center; box-shadow: var(--shadow); cursor: pointer; }
.voice-mic svg { position: relative; z-index: 1; }
.voice-ring { position: absolute; inset: -10px; border-radius: 50%; background: var(--accent); opacity: 0; transition: transform .08s linear; }
.voice-mic.on { background: var(--red); }
.voice-mic.on .voice-ring { opacity: .25; background: var(--red); }
.voice-mic.busy { opacity: .6; animation: voice-pulse 1s ease-in-out infinite; }
@keyframes voice-pulse { 50% { transform: scale(.94); } }
.voice-state { font-size: 18px; font-weight: 600; text-align: center; margin: 0; }
.voice-state.neg { color: var(--red); }
.voice-hint { text-align: center; font-size: 14px; margin: 0; }
.voice-manual { font-size: 14px; margin-top: 8px; }
.voice-heard { font-size: 17px; margin: 0 0 8px; }
.voice-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.voice-actions .btn { text-align: center; display: flex; align-items: center; justify-content: center; gap: 6px; }
.voice-actions .voice-save { grid-column: 1 / -1; font-size: 18px; padding: 14px; }
.period-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.period-nav a { color: var(--accent); display: grid; place-items: center; width: 32px; height: 32px; }

/* Сводка: цифры нажимаются — расшифровка /summary/why/ */
.why-link { color: inherit; text-decoration: none; display: block; }
.why-link:hover { opacity: .85; }

/* Банк: проверить */
.bank-load { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.bank-line { border-top: 1px solid var(--line); padding: 10px 0; }
.bank-line-head { display: flex; gap: 10px; justify-content: space-between; align-items: flex-start; }
.bank-line-head .name { min-width: 0; font-size: 15px; }
.bank-line-head .name small { display: block; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.bank-line-head b { white-space: nowrap; }
.bank-actions, .bank-found { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; align-items: center; }
.bank-actions form { display: contents; }
.bank-found .muted { font-size: 12px; }
.bank-fees { margin: 8px 0; }
.bank-erp-only summary { cursor: pointer; padding: 10px 0; }

/* Сравнение возможных дублей: записи рядом, отличия подсвечены */
.dup-grid { display: grid; gap: 12px; }
.dup-card { margin: 0; }
.dup-diff dt, .dup-diff dd { color: var(--amber); font-weight: 600; }
.dup-diff { background: var(--amber-soft); border-radius: 8px; padding-left: 8px !important; padding-right: 8px !important; }
.dup-sub { font-size: 14px; margin: 12px 0 4px; }
.dup-list { margin: 0; padding: 0; list-style: none; font-size: 14px; }
.dup-list li { padding: 6px 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.dup-list li:first-child { border-top: 0; }
.dup-bank { display: block; font-size: 13px; margin-top: 2px; }
p.dup-bank { margin: 10px 0 0; }
.dup-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; }
.dup-actions .btn { margin: 0; }
.dup-actions form { margin: 0; }
.dup-props dd, .dup-card dd { overflow-wrap: anywhere; }
@media (min-width: 960px) {
  .narrow.dup-page { max-width: 1040px; }
  .dup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

/* Расход голосом через Siri: ключ, проверка фразы, инструкция */
.siri-code { display: block; margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: var(--gray-soft);
  font-size: 13px; overflow-wrap: anywhere; user-select: all; }
.siri-key .btn { width: 100%; }
.siri-new { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.siri-new input[type=text] { flex: 1 1 200px; min-width: 0; padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card); color: var(--text); font: inherit; }
.siri-check { margin: 10px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.siri-steps { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.5; }
.siri-steps li { margin-bottom: 10px; }
.siri-steps ul { margin: 6px 0 0; padding-left: 18px; font-size: 14px; }
.siri-steps .btn { margin: 0 0 8px; }
.siri-steps code, .dir-note code { font-size: 13px; }

/* «Из чего цифра» на «Объектах» */
.why-total { font-weight: 600; }
.why-open { margin: 4px 0 12px; }
.why-check { font-size: 13px; margin: 12px 0 0; }

/* «Снабжение → Из Макса» */
.mx-src { font-size: 13px; margin: 0 0 10px; overflow-wrap: anywhere; }
.mx-file { margin: 0 0 10px; display: inline-flex; gap: 6px; align-items: center; max-width: 100%; }
.mx-checks { list-style: none; margin: 10px 0; padding: 0; font-size: 14px; }
.mx-checks li { padding: 4px 0; overflow-wrap: anywhere; }
.mx-checks li.bad { color: var(--red); font-weight: 600; }
.mx-checks li.warn { color: var(--amber); }
.mx-rows { margin: 8px 0; }
.mx-new { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; margin: 8px 0; }
.mx-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
.mx-actions .btn { margin: 0; }
.mx-lines { margin: 6px 0 10px; }
.mx-lines .link-row { cursor: default; }
.mx-lines .mx-bad .name small { color: var(--amber); }

/* Банк: готовая запись к строке (bank/propose.py) */
.bank-offer { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between;
  margin: 6px 0; padding: 8px 10px; border-radius: 10px; background: var(--bg-soft, rgba(127,127,127,.08)); }
.bank-offer.sure { box-shadow: inset 3px 0 0 var(--green, #2e9e5b); }
.bank-offer .offer-text { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.bank-offer .offer-text small { font-weight: 400; color: var(--muted, #888); }
.bank-offer .offer-actions { display: flex; gap: 6px; align-items: center; }
.bank-offer .btn { margin: 0; }
.bank-offer.guess { opacity: .75; }
.bank-offer.guess .offer-text { font-weight: 400; }

/* =====================================================================
   Дизайн 2026-10 по рендерам design/ (этап 1: основа). Правила ниже
   перекрывают старые — старые классы страниц получают новый вид сами.
   ===================================================================== */
body { font-size: 15px; color: var(--text); background: var(--bg); }
.theme-switch, .theme-row, .theme-auto { display: none !important; }   /* тёмная тема — позже */

/* ---------- каркас: телефон ---------- */
.app { padding: 0 0 calc(var(--nav-h) + env(safe-area-inset-bottom) + 20px); }
.side, .top { display: none; }
.shell { min-width: 0; }
.main { max-width: 640px; padding: 12px 16px 0; }

.tabbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center;
  height: calc(var(--nav-h) + env(safe-area-inset-bottom)); padding: 0 6px env(safe-area-inset-bottom);
  background: rgba(255, 255, 255, .96); border-top: 1px solid var(--line);
  box-shadow: 0 -6px 24px rgba(15, 23, 42, .05); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.tabbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  min-height: 52px; font-size: 12px; font-weight: 600; color: var(--faint); }
.tabbar a.on { color: var(--navy); }
.tabbar .tab-fab { justify-self: center; width: 60px; height: 60px; min-height: 0; margin-top: -26px; border-radius: 50%;
  background: var(--navy); color: #fff; box-shadow: 0 8px 20px rgba(14, 26, 51, .35); }
.tabbar .tab-fab .i { stroke-width: 2.4; }

.brand-mobile { display: flex; align-items: center; gap: 6px; padding: 8px 0 14px; position: static; justify-content: flex-start;
  margin-bottom: 0 !important; pointer-events: auto !important; }
.brand-mobile + .topbar { min-height: 0; padding-top: 0; }
.brand-mobile + .topbar h1 { font-size: 26px; }
.bm-logo { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.bm-logo b, .side-brand b { display: block; font-size: 19px; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; color: var(--navy); }
.bm-logo small, .side-brand small { display: block; font-size: 12px; color: var(--muted); font-weight: 500; }
.bm-icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--text); }
.avatar { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 40px; height: 40px;
  border-radius: 50%; background: linear-gradient(135deg, #dfe6f5, #c9d4ec); color: var(--navy); font-weight: 800; font-size: 14px; }

/* ---------- каркас: компьютер ---------- */
@media (min-width: 960px) {
  .app { padding: 0; display: block; }
  .tabbar, .brand-mobile { display: none; }
  .side {
    display: flex; flex-direction: column; position: fixed; top: 0; bottom: 0; left: 0; z-index: 15; width: var(--side-w);
    padding: 18px 14px 16px; background: var(--card); border-right: 1px solid var(--line); overflow-y: auto;
  }
  .side-brand { display: flex; align-items: center; gap: 10px; padding: 2px 8px 22px; }
  .side-nav { display: flex; flex-direction: column; gap: 4px; flex: 1; }
  .side-nav a { display: flex; align-items: center; gap: 12px; padding: 0 12px; height: 42px; border-radius: 12px;
    font-size: 14.5px; font-weight: 600; color: #334155; }
  .side-nav a .i { color: #475569; }
  .side-nav a:hover { background: var(--gray-soft); }
  .side-nav a.on { background: var(--navy); color: #fff; box-shadow: 0 6px 16px rgba(14, 26, 51, .22); }
  .side-nav a.on .i { color: #fff; }
  .side-nav span { flex: 1; }
  .side-badge { font-style: normal; font-size: 12px; font-weight: 700; min-width: 26px; height: 22px; padding: 0 7px;
    display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--gray-soft); color: var(--muted); }
  .side-nav a.on .side-badge { background: rgba(255, 255, 255, .16); color: #fff; }
  .side-user { display: flex; align-items: center; gap: 10px; padding: 12px 8px 4px; margin-top: 12px; border-top: 1px solid var(--line); }
  .side-user > span:nth-child(2) { flex: 1; min-width: 0; }
  .side-user b { display: block; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .side-user small { display: block; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .side-user .i { color: var(--faint); }

  .shell { margin-left: var(--side-w); }
  .top { display: flex; align-items: center; gap: 12px; position: sticky; top: 0; z-index: 12; padding: 14px 28px;
    background: rgba(245, 247, 251, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  .top-search { flex: 1; max-width: 640px; display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px;
    background: var(--card); border: 1px solid var(--line); border-radius: 12px; color: var(--faint); }
  .top-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: inherit; font-size: 14px; color: var(--text); }
  .top-search kbd { font: 600 11px/1 "Manrope", sans-serif; color: var(--muted); background: var(--gray-soft); border-radius: 6px; padding: 5px 7px; }
  .top-date { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; white-space: nowrap;
    background: var(--card); border: 1px solid var(--line); border-radius: 12px; font-size: 14px; font-weight: 600; }
  .top-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; color: var(--text); }
  .top-icon:hover { background: var(--card); }
  .quick { position: relative; }
  .quick summary { list-style: none; cursor: pointer; }
  .quick summary::-webkit-details-marker { display: none; }
  .quick-menu { position: absolute; right: 0; top: 52px; min-width: 240px; padding: 6px; background: var(--card);
    border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 40px rgba(15, 23, 42, .14); }
  .quick-menu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; font-weight: 600; font-size: 14px; }
  .quick-menu a:hover { background: var(--gray-soft); }
  .main { max-width: 1600px; padding: 6px 28px 40px; }
}

/* ---------- общие детали ---------- */
.btn-dark { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 16px;
  border: 0; border-radius: 12px; background: var(--navy); color: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.btn-dark:hover { background: #1a2a4d; }
.btn { background: var(--navy); color: #fff; border-radius: 12px; font-weight: 700; }
.btn.secondary { background: var(--card); color: var(--text); border: 1px solid var(--line); }
.card { border-radius: var(--radius); border: 1px solid var(--line); box-shadow: var(--shadow); }
.tile, .wcard { border: 1px solid var(--line); }
.card-head h2, .section-title { font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.card-head a { color: var(--accent); font-weight: 600; }
.topbar h1, .voice-title { font-size: 26px; font-weight: 800; letter-spacing: -.025em; color: var(--text); }
.chip { border-radius: 999px; font-weight: 600; }
.chip.on, .chips .chip.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.badge { font-weight: 600; }
.hero .big { font-weight: 800; }
.link-row .sum { font-weight: 700; }

/* Заголовок страницы: название + подпись + кнопки справа */
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 4px 0 18px; }
.page-head h1 { margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -.03em; line-height: 1.15; }
.page-head p { margin: 4px 0 0; color: var(--muted); font-size: 14.5px; }
.page-head .head-actions { display: flex; gap: 10px; flex-wrap: wrap; }
@media (min-width: 960px) { .page-head h1 { font-size: 32px; } }

/* Карточки с цифрой и значком в цветном квадрате (KPI) */
.kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
@media (min-width: 960px) { .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } }
.kpi { position: relative; min-width: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 16px; }
.kpi .kpi-label { font-size: 13.5px; color: var(--muted); font-weight: 600; padding-right: 44px; }
.kpi .kpi-value { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi .kpi-sub { font-size: 13px; font-weight: 700; margin-top: 6px; display: flex; gap: 10px; flex-wrap: wrap; }
.kpi .ic-tile { position: absolute; top: 14px; right: 14px; }
@media (min-width: 960px) { .kpi { padding: 18px 20px; } .kpi .kpi-value { font-size: 22px; } }
@media (min-width: 1600px) { .kpi .kpi-value { font-size: 26px; } }
.ic-tile { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 11px;
  background: var(--accent-soft); color: var(--accent); flex-shrink: 0; }
.ic-tile.green { background: var(--green-soft); color: var(--green); }
.ic-tile.red { background: var(--red-soft); color: var(--red); }
.ic-tile.violet { background: var(--violet-soft); color: var(--violet); }
.ic-tile.amber { background: var(--amber-soft); color: var(--amber); }
.up { color: var(--green); }
.down { color: var(--red); }

/* Метки состояния: «Проведено», «На проверке», «Новая заявка» */
.pill { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700; white-space: nowrap; background: var(--gray-soft); color: var(--muted); }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill.green { background: var(--green-soft); color: var(--green); }
.pill.amber { background: var(--amber-soft); color: var(--amber); }
.pill.red { background: var(--red-soft); color: var(--red); }
.pill.blue { background: var(--accent-soft); color: var(--accent); }
.pill.violet { background: var(--violet-soft); color: var(--violet); }

/* Таблица как на рендерах: тонкие разделители, серые заголовки; на телефоне — прокрутка вбок */
.table-wrap { overflow-x: auto; margin: 0 -4px; }
.dtable { width: 100%; border-collapse: collapse; font-size: 14px; }
.dtable th { text-align: left; font-size: 12px; font-weight: 600; color: var(--muted); padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.dtable td { padding: 11px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.dtable tr:last-child td { border-bottom: 0; }
.dtable .num { text-align: right; font-weight: 700; }

/* Столбики и кольцо (рисует web/charts.py) */
.bars { display: flex; align-items: flex-end; gap: 6px; height: 180px; padding: 0 2px; border-bottom: 1px solid var(--line); }
.bars .bar-group { flex: 1; min-width: 0; display: flex; align-items: flex-end; justify-content: center; gap: 3px; height: 100%; }
.bars .bar { flex: 0 1 12px; min-width: 4px; border-radius: 4px 4px 0 0; background: var(--violet); }
.bars .bar.b2 { background: #c4bdfd; }
.bars .bar.b3 { background: #cbd5e1; }
.bars .bar.green { background: #22c55e; }
.bars .bar.blue { background: #3b82f6; }
.bar-labels { display: flex; gap: 6px; padding: 8px 2px 0; font-size: 12px; color: var(--muted); }
.bar-labels span { flex: 1; text-align: center; min-width: 0; }
.legend { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--muted); margin-top: 12px; }
.legend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; background: var(--violet); }
.donut-wrap { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.donut { position: relative; width: 160px; height: 160px; flex-shrink: 0; }
.donut svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.donut .donut-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.donut .donut-center b { font-size: 15px; font-weight: 800; white-space: nowrap; }
.donut .donut-center small { font-size: 12px; color: var(--muted); }
.donut-legend { flex: 1; min-width: 180px; display: grid; gap: 10px; font-size: 13.5px; }
.donut-legend > div { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto 38px; gap: 8px; align-items: center; }
.donut-legend i { width: 9px; height: 9px; border-radius: 50%; }
.donut-legend b { text-align: right; }
.donut-legend small { text-align: right; color: var(--muted); font-size: 12px; white-space: nowrap; }

/* ---------- этап 2: «Главная» и «Финансы» (рендеры 01, 02) ---------- */
.only-desk, .only-desk-grid, .only-desk-flex, .only-desk-inline { display: none !important; }
.only-mob { display: block; }
.only-mob-inline { display: inline; }
@media (min-width: 960px) {
  .only-desk { display: block !important; }
  .only-desk-grid { display: grid !important; }
  .only-desk-flex { display: flex !important; }
  .only-desk-inline { display: inline !important; }
  .only-mob, .only-mob-inline { display: none !important; }
  .m-tiles.only-mob, .m-kpis.only-mob { display: none !important; }
}
.small { font-size: 13px; }

.dash { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.dash-main, .dash-side { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-content: start; min-width: 0; }
.dash .card { margin: 0; }
.dash-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 960px) {
  .dash-row { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
  .dash-row.two { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); }
  .dash-row.two-left { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); }
}
@media (min-width: 1280px) { .dash { grid-template-columns: minmax(0, 1fr) 336px; gap: 20px; } .dash-main, .dash-side { gap: 20px; } }
.dash .kpis { margin: 0; }
.card-head.wrap { flex-wrap: wrap; gap: 10px; }
.card-head h2 { display: flex; align-items: center; gap: 8px; }
.card-head > a { display: inline-flex; align-items: center; gap: 2px; font-size: 13.5px; white-space: nowrap; }

/* телефон: четыре плитки разделов */
.m-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.m-tiles a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 4px; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); font-size: 12.5px; font-weight: 600; text-align: center; }
.m-tiles b { font-size: 20px; font-weight: 800; }
.m-tiles .ic-tile { width: 44px; height: 44px; border-radius: 13px; }
.m-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.m-kpis .kpi { padding: 12px 10px; }
.m-kpis .kpi .ic-tile { position: static; width: 34px; height: 34px; margin-bottom: 8px; }
.m-kpis .kpi .kpi-label { padding-right: 0; font-size: 12.5px; }
.m-kpis .kpi .kpi-value { font-size: 15px; }
.big-num { font-size: 28px; font-weight: 800; letter-spacing: -.03em; margin: 2px 0 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.big-num .chg { font-size: 14px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--green-soft); }
.big-num .chg.down { background: var(--red-soft); }
.gray-pill::before { display: none; }

/* банки плитками */
.bank-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 420px) { .bank-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.bank-tiles a { display: grid; grid-template-columns: auto 1fr; gap: 6px 8px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.bank-tiles .bt-name { font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bank-tiles b { grid-column: 1 / -1; font-size: 15px; font-weight: 800; white-space: nowrap; }
.bank-ic { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0;
  font-weight: 800; font-size: 14px; color: #fff; background: #64748b; }
.bank-ic.b-sber { background: #21a038; } .bank-ic.b-vtb { background: #0a2896; } .bank-ic.b-tochka { background: #7c3aed; }
.bank-ic.b-tbank { background: #ffdd2d; color: #111; } .bank-ic.b-ozon { background: #005bff; } .bank-ic.b-alfa { background: #ef3124; }
.bank-ic.b-cash { background: #f59e0b; } .bank-ic.b-reserve { background: #94a3b8; }

/* графики */
.chart { display: block; width: 100%; height: auto; }
.chart .ch-grid { stroke: var(--line); stroke-width: 1; }
.chart .ch-tick, .chart .ch-label { font: 500 11px "Manrope", sans-serif; fill: var(--muted); }
.legend.totals b { color: var(--text); margin-left: 4px; }
.legend span { display: inline-flex; align-items: center; }
.top-legend { margin: 0; gap: 14px; font-size: 12.5px; }
.seg-pills { display: flex; gap: 4px; padding: 3px; background: var(--gray-soft); border-radius: 12px; }
.seg-pills a { padding: 7px 12px; border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--muted); white-space: nowrap; }
.seg-pills a.on { background: var(--navy); color: #fff; }
.donut-wrap { justify-content: center; }
.dash-row .donut-wrap { flex-direction: column; align-items: stretch; gap: 14px; }
.dash-row .donut { width: 150px; height: 150px; margin: 0 auto; }
.dash-row .donut-legend { min-width: 0; gap: 8px; }
@media (min-width: 1700px) { .dash-row .donut-wrap { flex-direction: row; align-items: center; } .dash-row .donut-legend { min-width: 200px; } }
.donut-legend span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* объекты */
.chips.inline { padding: 0; margin: 0; flex: 1; justify-content: flex-start; }
.chips .chip em { font-style: normal; font-size: 12px; margin-left: 4px; opacity: .7; }
.obj-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 14px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
@media (min-width: 1280px) { .obj-cards { grid-auto-columns: calc((100% - 28px) / 3); } }
@media (min-width: 1700px) { .obj-cards { grid-auto-columns: calc((100% - 42px) / 4); } }
.obj-card { display: block; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--card); }
.obj-card:hover { box-shadow: var(--shadow); }
.obj-photo { position: relative; height: 128px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.9);
  background: linear-gradient(160deg, #3b4a6b 0%, #1e293b 55%, #b45309 140%); }
.obj-photo .pill { position: absolute; top: 10px; left: 10px; background: #fff; }
.obj-photo .pill.gray { color: var(--muted); }
.obj-progress { position: absolute; left: 12px; right: 52px; bottom: 12px; height: 6px; border-radius: 3px; background: rgba(255,255,255,.35); overflow: hidden; }
.obj-progress span { display: block; height: 100%; background: #fff; border-radius: 3px; }
.obj-pct { position: absolute; right: 12px; bottom: 6px; color: #fff; font-size: 14px; }
.obj-body { padding: 12px 14px 14px; }
.obj-body > b { display: block; font-size: 15px; font-weight: 800; }
.obj-body > small { display: block; color: var(--muted); font-size: 12.5px; margin-bottom: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obj-body dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.obj-body dt { font-size: 12px; color: var(--muted); }
.obj-body dd { margin: 0; font-size: 13.5px; font-weight: 700; white-space: nowrap; }

/* таблица: метка статьи */
.dtable td.desc small { display: block; color: var(--muted); font-size: 12px; }
.dtable { font-size: 13.5px; }
.small-chips { padding: 0 0 8px; }
.small-chips .chip { padding: 6px 12px; font-size: 13px; }
.obj-progress.over span { background: #fca5a5; }
.tag { display: inline-block; padding: 3px 9px; border-radius: 8px; background: var(--accent-soft); color: var(--accent); font-size: 12px; font-weight: 600; }
.dtable a { font-weight: 600; }

/* списки: события, документы из чатов, подсказки */
.ev-list, .chat-docs, .advice, .todo { list-style: none; margin: 0; padding: 0; }
.ev-list li + li, .chat-docs li + li, .todo li + li { border-top: 1px solid var(--line); }
.ev-list a, .chat-docs a { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.ev-txt { flex: 1; min-width: 0; }
.ev-txt b { display: block; font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-txt small { display: block; font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-txt strong { display: block; font-size: 15px; font-weight: 800; }
.ev-sum { font-weight: 800; font-size: 14px; white-space: nowrap; }
.doc-thumb { width: 44px; height: 52px; border-radius: 8px; border: 1px solid var(--line); background: var(--card-2); display: flex;
  align-items: center; justify-content: center; color: var(--muted); font-size: 11px; font-weight: 800; flex-shrink: 0; }
.doc-thumb.pdf { color: #fff; background: #ef4444; border-color: #ef4444; }
.count-badge { min-width: 26px; height: 24px; padding: 0 8px; border-radius: 999px; background: var(--accent-soft); color: var(--accent);
  font-size: 12.5px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.chat-docs + .btn { margin-top: 10px; }
.advice li + li { margin-top: 12px; }
.advice a { display: flex; gap: 12px; align-items: flex-start; }
.advice b { display: block; font-size: 14px; }
.advice small { display: block; font-size: 12.5px; color: var(--muted); }
.todo a { display: flex; align-items: center; gap: 12px; padding: 10px 0; font-size: 14px; font-weight: 600; }
.todo a span:nth-child(2) { flex: 1; }
.todo-box { width: 18px; height: 18px; border: 2px solid #cbd5e1; border-radius: 5px; flex-shrink: 0; }
.todo em { font-style: normal; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 7px; background: var(--red-soft); color: var(--red);
  font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }

/* ИИ-помощник */
.ai-card { background: linear-gradient(180deg, #ffffff 0%, #f4f2ff 100%); }
.ai-card .card-head h2 .i { color: var(--violet); }
.ai-hero b { display: block; font-size: 16px; font-weight: 800; }
.ai-hero p { margin: 6px 0 14px; color: var(--muted); font-size: 13.5px; }
.btn-dark.wide { width: 100%; justify-content: space-between; }
.quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.quick-grid a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 6px; border: 1px solid var(--line); border-radius: 12px;
  font-size: 12.5px; font-weight: 600; text-align: center; color: var(--text); }
.quick-grid a .i { color: var(--accent); }
.quick-grid a:hover { background: var(--card-2); }

/* «Финансы» */
.fin-tabs { margin: -6px 0 14px; }
.period-pill { display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 16px; margin-bottom: 14px; background: var(--card);
  border: 1px solid var(--line); border-radius: 14px; font-weight: 700; }
.round-add { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--navy); color: #fff; }
.period-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.period h3 { margin: 0 0 10px; font-size: 15px; font-weight: 800; }
.pc-row { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 6px 0; }
.pc-row span { grid-column: 1 / -1; font-size: 12.5px; color: var(--muted); }
.pc-row b { font-size: 18px; font-weight: 800; }
.pc-row em { font-style: normal; font-size: 12.5px; font-weight: 700; align-self: center; }
.cat-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.cat-tiles > div { display: grid; gap: 2px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.cat-tiles .dot { position: static; display: inline-block; width: 8px; height: 8px; margin: 0 6px 1px 0; border-radius: 50%; cursor: default; }
.cat-tiles small { color: var(--muted); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cat-tiles b { font-size: 15px; font-weight: 800; }
.cat-tiles em { font-style: normal; color: var(--muted); font-size: 12px; }
.page-head .head-actions { align-items: center; flex-wrap: nowrap; }
.page-head > div:first-child { flex: 1; min-width: 0; }
@media (max-width: 959px) { .page-head { flex-wrap: nowrap; align-items: flex-start; } .kpi .kpi-value { font-size: 19px; } }
.dtable th, .dtable td { padding-left: 7px; padding-right: 7px; }
.dtable .tag { max-width: 118px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
@media (max-width: 959px) { .card-head.wrap .chips.inline { order: 3; flex-basis: 100%; } }

/* ---------- «Главная» точно по рендеру (картинка владельца 2026-10-11) ---------- */
:root { --side-w: 220px; }
.home-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.home-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-content: start; min-width: 0; }
.home-main .card, .home-main .kpis { margin: 0; }
@media (min-width: 960px) {
  .home-row3 { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, .7fr); gap: 16px; }
  .home-row4 { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); gap: 16px; }
}
@media (min-width: 1280px) {
  .home-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; }
  .home-grid.ai-closed { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 960px) and (max-width: 1279px) { .ai-panel.only-desk { display: none !important; } }

/* выпадающие «По месяцам ⌄», «Этот месяц ⌄» */
.sel-pill { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 9px;
  background: var(--gray-soft); font-size: 12.5px; font-weight: 600; color: var(--text); white-space: nowrap; cursor: pointer; list-style: none; }
.sel-pill::-webkit-details-marker { display: none; }
.sel-drop { position: relative; }
.sel-menu { position: absolute; right: 0; top: 38px; z-index: 5; min-width: 150px; padding: 6px; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px rgba(15, 23, 42, .12); }
.sel-menu a { display: block; padding: 8px 10px; border-radius: 8px; font-size: 13.5px; font-weight: 600; }
.sel-menu a.on, .sel-menu a:hover { background: var(--gray-soft); }
.head-arrow { display: inline-flex; color: var(--muted); }
.flow-total { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: -2px 0 6px; }
.flow-total b { font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.flow-total span { font-size: 13px; font-weight: 700; }

/* маленькая карточка «ИИ-центр» */
.ai-mini ul { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 4px; }
.ai-mini a { display: flex; align-items: center; gap: 10px; padding: 7px 0; }
.ai-mini .ic-tile { width: 32px; height: 32px; border-radius: 9px; }
.ai-mini .ev-txt b { font-size: 13px; white-space: normal; line-height: 1.2; }
.ai-mini .ev-txt small { font-size: 11.5px; white-space: normal; }
.ai-mini em { font-style: normal; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 7px; font-size: 12px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; background: var(--red-soft); color: var(--red); }
.ai-mini em.n-amber { background: var(--amber-soft); color: var(--amber); }
.ai-mini .card-head h2 .i { color: var(--violet); }
.ai-mini .btn-dark { font-size: 13px; }

/* объекты: вкладки, «Все объекты», лента со стрелкой */
.objects-card .card-head { justify-content: flex-start; gap: 16px; flex-wrap: wrap; }
.obj-all { display: flex; justify-content: flex-end; margin: -4px 0 8px; font-size: 13.5px; }
.obj-all a { color: var(--text); font-weight: 600; display: inline-flex; align-items: center; gap: 2px; }
.obj-scroll { position: relative; }
.obj-cards { scroll-behavior: smooth; scrollbar-width: none; }
.obj-cards::-webkit-scrollbar { display: none; }
@media (min-width: 1280px) { .obj-cards { grid-auto-columns: calc((100% - 42px) / 4); } }
.scroll-next { position: absolute; right: -14px; top: 92px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line);
  background: var(--card); box-shadow: 0 6px 18px rgba(15, 23, 42, .14); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--text); }
.obj-photo { height: 150px; background: #dfe7f3; }
.obj-photo img, .obj-photo .house-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.obj-photo .pill, .obj-photo .obj-progress, .obj-photo .obj-pct { z-index: 1; }
.obj-photo .obj-progress { background: rgba(255, 255, 255, .55); }
.obj-photo .obj-progress span { background: #3b82f6; }
.obj-photo .obj-progress.over span { background: #ef4444; }
.obj-photo .obj-pct { color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, .45); }
.obj-photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 46px; background: linear-gradient(transparent, rgba(15, 23, 42, .45)); }

/* таблица операций: значок строки */
.row-ic { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px;
  background: var(--gray-soft); color: var(--muted); }
.row-ic.green { background: var(--green-soft); color: var(--green); }
.row-ic.red { background: var(--red-soft); color: var(--red); }
.row-ic.amber { background: var(--amber-soft); color: var(--amber); }
.ops-table td { font-size: 13px; }

/* правая панель «ИИ-помощник» */
.ai-panel { position: sticky; top: 80px; align-self: start; height: calc(100vh - 96px); display: flex; flex-direction: column;
  background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }
.ai-panel-head { display: flex; align-items: center; gap: 8px; padding: 14px 14px 10px; }
.ai-title { display: flex; align-items: center; gap: 8px; flex: 1; font-size: 16px; }
.ai-title .i { color: var(--violet); }
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; border-radius: 9px;
  background: none; color: var(--muted); cursor: pointer; }
.icon-btn:hover { background: var(--gray-soft); color: var(--text); }
.ai-scroll { flex: 1; overflow-y: auto; padding: 0 14px 12px; }
.ai-hero { position: relative; padding: 14px; border-radius: 14px; background: linear-gradient(135deg, #eef0ff 0%, #f6f1ff 60%, #eaf1ff 100%); margin-bottom: 14px; }
.ai-hero > div { padding-right: 96px; min-height: 84px; }
.ai-hero b { display: block; font-size: 15px; font-weight: 800; }
.ai-hero p { margin: 4px 0 12px; color: var(--muted); font-size: 12.5px; }
.robot-art { position: absolute; right: 8px; top: 8px; width: 96px; height: 96px; }
.ai-block-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.ai-block-head .ic-tile { width: 34px; height: 34px; }
.chat-docs .ev-txt b { font-size: 13px; }
.chat-docs .ev-txt strong { font-size: 14px; }
.doc-thumb { overflow: hidden; }
.doc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ai-sub { margin: 16px 0 10px; font-size: 14px; font-weight: 800; }
.round-ic { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  background: var(--accent-soft); color: var(--accent); }
.round-ic.red { background: var(--red-soft); color: var(--red); }
.round-ic.green { background: var(--green-soft); color: var(--green); }
.round-ic.amber { background: var(--amber-soft); color: var(--amber); }
.quick-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.quick-grid.four a { padding: 10px 2px; font-size: 11px; gap: 6px; }
.ai-ask { display: flex; align-items: center; gap: 6px; margin: 0; padding: 10px 12px; border-top: 1px solid var(--line); background: var(--card); }
.ai-ask input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--line); border-radius: 12px; padding: 0 12px; font: inherit; font-size: 13px; outline: 0; }
.send-btn { width: 40px; height: 40px; border: 0; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: inline-flex;
  align-items: center; justify-content: center; cursor: pointer; }
.ai-open { position: fixed; right: 20px; bottom: 20px; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--navy); color: #fff;
  box-shadow: 0 10px 26px rgba(14, 26, 51, .35); cursor: pointer; z-index: 14; }
.ai-open[hidden] { display: none !important; }

/* телефон */
.ev-time { font-size: 12px; color: var(--muted); margin-left: 6px; white-space: nowrap; }
.m-kpis .kpi .kpi-sub { font-size: 12px; }

/* заготовки разделов */
.soon { display: flex; gap: 14px; align-items: flex-start; }
.soon b { display: block; font-size: 15px; }
.soon p { margin: 4px 0 10px; color: var(--muted); font-size: 14px; }

/* верхняя строка: красная точка у колокольчика */
.top-icon { position: relative; }
.top-icon .dot-red { position: absolute; top: 9px; right: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--red); border: 2px solid var(--bg); }
.quick summary .split { display: inline-flex; align-items: center; margin-left: 4px; padding-left: 10px; border-left: 1px solid rgba(255,255,255,.25); height: 22px; }
.top-date .i:last-child { color: var(--muted); }

/* подгонка размеров под картинку 1320 px: меню 196, панель ИИ 284, середина шире */
:root { --side-w: 196px; }
@media (min-width: 960px) {
  .main { padding: 4px 20px 40px; }
  .top { padding: 12px 20px; }
  .side { padding: 16px 10px 14px; }
  .side-nav a { height: 40px; font-size: 14px; gap: 10px; }
  .kpi { padding: 14px 14px; }
  .kpi .kpi-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
  .kpi .kpi-value { font-size: 21px; }
  .kpi .kpi-sub { flex-wrap: nowrap; gap: 8px; font-size: 12.5px; white-space: nowrap; }
  .kpi .ic-tile { width: 34px; height: 34px; top: 12px; right: 12px; }
  .home-row3 .card { padding: 14px; }
  .home-row3 .card-head h2 { font-size: 15px; }
  .home-row3 .sel-pill { height: 28px; padding: 0 8px; font-size: 12px; }
  .ops-table th, .ops-table td { padding: 8px 5px; font-size: 12.5px; }
  .obj-body dd { font-size: 12.5px; }
  .obj-body > b { font-size: 14px; }
}
@media (min-width: 1280px) { .home-grid { grid-template-columns: minmax(0, 1fr) 284px; gap: 16px; } }
.ai-mini a { gap: 8px; padding: 6px 0; }
.ai-mini .ic-tile { width: 28px; height: 28px; border-radius: 8px; }
.ai-mini .ic-tile .i { width: 16px; height: 16px; }
.ai-mini .ev-txt b { font-size: 12px; }
.ai-mini .ev-txt small { font-size: 10.5px; }
.ai-mini em { min-width: 20px; height: 20px; font-size: 11px; padding: 0 5px; }
.ai-mini .btn-dark { height: 38px; padding: 0 10px; font-size: 12.5px; }
.ai-title b { white-space: nowrap; font-size: 15px; }
.home-row3 .donut { width: 140px; height: 140px; }
.home-row3 .donut-legend > div { grid-template-columns: 9px minmax(0, 1fr) 34px; }
.home-row3 .donut-legend small { display: none; }
@media (min-width: 960px) {
  .home-row4 { grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr); }
  .ops-table td:nth-child(3) a, .ops-table td:nth-child(4) { display: inline-block; max-width: 118px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
  .ops-table .tag { max-width: 84px; }
  .ops-table .pill { padding: 0 8px; font-size: 11.5px; }
}
@media (min-width: 960px) {
  .ops-table { table-layout: fixed; }
  .ops-table th, .ops-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ops-table td:nth-child(3) a, .ops-table td:nth-child(4) { display: inline; max-width: none; }
  .ops-table th:nth-child(1) { width: 6%; } .ops-table th:nth-child(2) { width: 13%; } .ops-table th:nth-child(3) { width: 21%; }
  .ops-table th:nth-child(4) { width: 15%; } .ops-table th:nth-child(5) { width: 15%; } .ops-table th:nth-child(6) { width: 13%; }
  .ops-table th:nth-child(7) { width: 17%; }
  .ops-table .tag { max-width: 100%; }
}
@media (min-width: 960px) {
  .ops-table td:nth-child(4) { display: table-cell; max-width: none; }
  .ops-table td:nth-child(3) a { display: inline; }
  .ops-table th:nth-child(1) { width: 5%; } .ops-table th:nth-child(2) { width: 10%; } .ops-table th:nth-child(3) { width: 20%; }
  .ops-table th:nth-child(4) { width: 14%; } .ops-table th:nth-child(5) { width: 13%; } .ops-table th:nth-child(6) { width: 16%; }
  .ops-table th:nth-child(7) { width: 22%; }
}
/* банки на телефоне — 4 в ряд, как на рендере */
.bank-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.bank-tiles a { grid-template-columns: auto minmax(0, 1fr); padding: 8px 6px; gap: 6px 5px; }
.bank-tiles .bank-ic { width: 24px; height: 24px; border-radius: 7px; font-size: 12px; }
.bank-tiles .bt-name { font-size: 11px; }
.bank-tiles b { font-size: 12.5px; }

/* тестовая копия на сервере (/design/) */

/* ---------- «Финансы» точно по рендеру 02 (компьютер и телефон, 2026-10-11) ---------- */
.fin { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.fin-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-content: start; min-width: 0; }
.fin .card, .fin .kpis, .fin .page-head { margin: 0; }
.fin .page-head { margin-bottom: 4px; }
.fin-side { gap: 14px; align-content: start; align-items: start; min-width: 0; }
@media (min-width: 960px) {
  .fin-main { gap: 14px; }
  .fin-cols { grid-template-columns: minmax(0, 1.57fr) minmax(0, 1fr); gap: 14px; align-items: start; }
  .fin-col { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; min-width: 0; align-content: start; }
  .fin-side.only-desk { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1500px) {
  .fin { grid-template-columns: minmax(0, 1fr) 330px; }
  .fin-side.only-desk { grid-template-columns: minmax(0, 1fr); }
}
.fin .card { padding: 14px; }
@media (min-width: 1500px) { .fin .card { padding: 16px 18px; } }
.fin .card-head { gap: 10px; margin-bottom: 8px; }
.fin .card-head h2 { font-size: 16px; }
.fin .card-head > a { font-size: 12.5px; color: var(--muted); font-weight: 600; }

/* изменение «↑ +12%  +880 000 ₽ к прошлому месяцу» */
.chg-line { display: inline-flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font-weight: 700; }
.chg-line.up { color: var(--green); }
.chg-line.down { color: var(--red); }
.chg-line i { font-style: normal; font-weight: 500; color: var(--muted); }

/* карточки сверху */
.fin .kpi { color: var(--text); }
.fin .kpi .eye { border: 0; background: none; padding: 0 0 0 4px; color: var(--faint); cursor: pointer; vertical-align: -3px; line-height: 0; }
.fin .kpi.sum-hidden [data-sum], .fin .kpi.sum-hidden .kpi-sub { filter: blur(8px); }
.fin .kpi .kpi-label { overflow: visible; }

/* график: ключ «Прибыль» — линия */
.fin .card-head { flex-wrap: wrap; }
.fin .card-head h2 { white-space: nowrap; }
.fin .card-head .sel-drop { margin-left: auto; }
.fin .top-legend { order: 3; flex-basis: 100%; font-size: 12px; gap: 12px; }
@media (min-width: 1700px) { .fin .top-legend { order: 0; flex-basis: auto; margin-left: auto; } .fin .card-head .top-legend + .sel-drop { margin-left: 0; } }
.fin .top-legend i { width: 8px; height: 8px; margin-right: 5px; }
.legend .line-key i { width: 14px; height: 0; border-radius: 0; border-top: 2px solid #3b5bdb; background: none; }
.legend.center { justify-content: center; }

/* сегодня / неделя / месяц */
.fin-periods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.fin .period h3 { margin: 0 0 6px; font-size: 14px; font-weight: 800; }
.fin .pc-row { grid-template-columns: minmax(0, 1fr) auto; padding: 5px 0; }
.fin .pc-row > span:first-child { font-size: 12px; }
.fin .pc-row b { font-size: 16px; white-space: nowrap; }
.fin .pc-row .chg-line { grid-column: auto; font-size: 11.5px; align-self: center; justify-self: end; }
.fin .pc-row .chg-line span { grid-column: auto; color: inherit; font-size: inherit; }

/* последние операции */
.fin #ops .card-head { flex-wrap: wrap; }
.fin #ops .chips { flex: 1; padding: 0; }
#ops .card-head > a { margin-left: auto; }
@media (max-width: 1699px) { .fin #ops .chips { order: 3; flex-basis: 100%; } }
.d-short { display: none; }
@media (max-width: 1499px) { .d-full { display: none; } .d-short { display: inline; } }
.fin-ops { table-layout: fixed; }
.fin-ops th, .fin-ops td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 8px 6px; font-size: 12.5px; }
.fin-ops th:nth-child(1) { width: 10%; } .fin-ops th:nth-child(2) { width: 19%; } .fin-ops th:nth-child(3) { width: 22%; }
.fin-ops th:nth-child(4) { width: 15%; } .fin-ops th:nth-child(5) { width: 16%; } .fin-ops th:nth-child(6) { width: 18%; }
@media (min-width: 1500px) { .fin-ops th:nth-child(1) { width: 15%; } .fin-ops th:nth-child(3) { width: 19%; } .fin-ops th:nth-child(4) { width: 13%; } }
.fin-ops a { font-weight: 500; color: var(--text); }
.fin-ops .pill { height: 22px; padding: 0 8px; font-size: 11px; }

/* движение по категориям */
.fin-cats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.fin-cats a { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 2px 7px; align-items: center; padding: 10px 8px;
  border: 1px solid var(--line); border-radius: 12px; min-width: 0; color: var(--text); }
.fin-cats a > b, .fin-cats a > em { grid-column: 1 / -1; }
.cat-ic { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0; }
.fin-cats small { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fin-cats b { font-size: 12.5px; font-weight: 800; white-space: nowrap; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; }
.fin-cats em { font-style: normal; font-size: 11px; color: var(--muted); }

/* структура расходов */
.fin-donut { display: flex; align-items: center; gap: 14px; }
.fin-donut .donut { width: 132px; height: 132px; }
.fin-donut .donut-center b { font-size: 12.5px; }
.fin-donut .donut-center small { font-size: 11px; }
@media (min-width: 1500px) { .fin-donut .donut { width: 150px; height: 150px; } .fin-donut .donut-center b { font-size: 14px; } }
.fin-legend { flex: 1; min-width: 0; display: grid; gap: 7px; font-size: 12px; }
.fin-legend > div { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; column-gap: 7px; align-items: center; }
.fin-legend i { width: 8px; height: 8px; border-radius: 50%; }
.fin-legend span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fin-legend b { text-align: right; font-weight: 800; }
.fin-legend small { grid-column: 3; text-align: right; color: var(--muted); font-size: 10.5px; white-space: nowrap; }

/* крупные платежи, отчёты, правая колонка */
.fin .ev-list a { padding: 8px 0; gap: 10px; color: var(--text); }
.fin .ev-txt b { font-size: 13px; font-weight: 600; }
.fin .ev-txt small { font-size: 11.5px; }
.fin .ev-sum { font-size: 12.5px; font-weight: 700; }
.fin .round-ic { width: 32px; height: 32px; }
.round-ic.violet { background: var(--violet-soft); color: var(--violet); }
.round-ic.gray { background: var(--gray-soft); color: var(--muted); }
.fin-big .pill { height: 22px; padding: 0 7px; font-size: 10.5px; }
.pill.no-dot::before { display: none; }
.file-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 34px; border-radius: 7px; flex-shrink: 0; color: #fff; }
.file-ic.pdf { background: #ef4444; }
.file-ic.xls { background: #16a34a; }
.file-kind { font-size: 10.5px; font-weight: 800; padding: 3px 8px; border-radius: 6px; background: var(--gray-soft); color: var(--muted); }
.fin-accounts li { border: 1px solid var(--line) !important; border-radius: 12px; padding: 0 10px; }
.fin-accounts li + li { margin-top: 8px; }
.fin-accounts .bank-ic { width: 38px; height: 38px; border-radius: 11px; font-size: 15px; }
.acc-sum { display: grid; justify-items: end; gap: 2px; white-space: nowrap; }
.acc-sum b { font-size: 13.5px; font-weight: 800; }
.acc-sum small { font-size: 11.5px; font-weight: 700; }
.fin-accounts a > .i:last-child, .fin-mops a > .i:last-child { color: var(--faint); flex-shrink: 0; }
.fin-notes .ev-txt b, .fin-plan .ev-txt b { white-space: normal; line-height: 1.25; }
.fin-fab { display: none; }
@media (min-width: 960px) {
  .fin-fab { position: fixed; right: 24px; bottom: 24px; z-index: 14; display: inline-flex; align-items: center; justify-content: center;
    width: 54px; height: 54px; border-radius: 50%; background: var(--navy); color: #fff; box-shadow: 0 10px 26px rgba(14, 26, 51, .35); }
}

/* телефон */
.round-btn { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%;
  background: var(--gray-soft); color: var(--text); }
.fin .head-actions { gap: 8px; }
.fin-tabs { display: flex; flex-wrap: nowrap; margin: 0 -16px; padding: 0 16px 2px; }
.fin-tabs .chip { height: 44px; padding: 0 18px; display: inline-flex; align-items: center; border: 0; box-shadow: none;
  background: var(--gray-soft); color: var(--text); font-size: 15px; font-weight: 600; }
.fin-tabs .chip.on { background: var(--navy); color: #fff; }
.month-pick { position: relative; }
.month-pick > summary { display: flex; align-items: center; gap: 12px; height: 52px; padding: 0 16px; list-style: none; cursor: pointer;
  background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); font-weight: 700; font-size: 16px; }
.month-pick > summary::-webkit-details-marker { display: none; }
.month-pick > summary span { flex: 1; }
.month-pick .sel-menu { left: 0; right: 0; top: 58px; max-height: 340px; overflow-y: auto; z-index: 8; }
.fin-mkpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mk { position: relative; display: flex; align-items: center; gap: 8px; min-width: 0; padding: 14px 8px; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); color: var(--text); }
.mk .ic-tile { width: 36px; height: 36px; border-radius: 11px; }
.mk .ic-tile .i { width: 22px; height: 22px; }
.mk > div { flex: 1; min-width: 0; }
.mk small { display: block; font-size: 12px; font-weight: 600; line-height: 1.25; }
.mk b { display: block; font-size: 15px; font-weight: 800; letter-spacing: -.03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 2px 0; }
a.mk { padding-right: 18px; }
a.mk > .i { position: absolute; right: 4px; top: 50%; margin-top: -8px; width: 16px; height: 16px; }
.mk .chg-line { font-size: 11.5px; gap: 2px 6px; }
.mk .chg-line i { font-size: 11px; }
.mk > .i { color: var(--faint); }
/* телефон: кнопки — в строке заголовка, подпись — во всю ширину под ним */
@media (max-width: 959px) {
  .fin .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 10px; }
  .fin .page-head > div:first-child { display: contents; }
  .fin .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .fin .page-head .head-actions { grid-column: 2; grid-row: 1; }
}
.fin-banks a { color: var(--text); }
.fin-mops .ic-tile { width: 40px; height: 40px; }
.fin-mops .ev-sum { font-size: 14px; }
.fin-mops a { gap: 10px; }

/* ---------- «Объекты» точно по рендеру 03 (компьютер и телефон, 2026-10-11) ---------- */
.objs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.objs-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; min-width: 0; }
.objs .page-head { margin: 0 0 2px; }
.objs .head-actions { align-items: center; gap: 10px; }
@media (min-width: 1280px) { .objs.with-panel { grid-template-columns: minmax(0, 1fr) 380px; } }
@media (min-width: 1500px) { .objs.with-panel { grid-template-columns: minmax(0, 1fr) 440px; } }
.objs.panel-closed { grid-template-columns: minmax(0, 1fr) !important; }
.objs.panel-closed .obj-panel { display: none !important; }
@media (min-width: 960px) and (max-width: 1279px) {
  .objs .obj-panel:not(.picked) { display: none !important; }
  .objs .obj-panel.picked { order: -1; position: static !important; max-height: none !important; }
}
@media (max-width: 959px) {
  .objs .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 10px; }
  .objs .page-head > div:first-child { display: contents; }
  .objs .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .objs .page-head .head-actions { grid-column: 2; grid-row: 1; display: flex; gap: 8px; }
}

/* «Список | Карта» */
.seg { display: inline-flex; padding: 3px; gap: 2px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
.seg > span { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 9px; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.seg > .on { background: var(--navy); color: #fff; }
.seg > .off { cursor: not-allowed; }

/* вкладки со счётчиками */
.obj-tabs { flex-wrap: nowrap; padding: 0 0 2px; gap: 8px; }
.obj-tabs .chip { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border: 0; box-shadow: none;
  background: var(--gray-soft); color: var(--text); font-size: 14px; }
.obj-tabs .chip em { min-width: 24px; height: 22px; padding: 0 6px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center;
  margin: 0; font-size: 12px; opacity: 1; color: var(--muted); background: rgba(15, 23, 42, .06); }
.obj-tabs .chip.on em { background: rgba(255, 255, 255, .18); color: #fff; }
@media (max-width: 959px) { .obj-tabs { margin: 0 -16px; padding: 0 16px 2px; } .obj-tabs .chip { height: 44px; font-size: 15px; } }

/* плитки-счётчики */
.obj-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.okpi { display: flex; align-items: center; gap: 14px; padding: 16px; min-width: 0; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow); }
.okpi .ic-tile { width: 52px; height: 52px; border-radius: 14px; }
.okpi small { display: block; font-size: 12.5px; color: var(--muted); font-weight: 600; }
.okpi b { display: block; font-size: 26px; font-weight: 800; line-height: 1.15; }
.okpi em { font-style: normal; font-size: 12.5px; color: var(--muted); }

/* поиск и фильтры */
.obj-filters { display: grid; gap: 10px; padding: 12px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.obj-search { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px; margin: 0; background: var(--bg); border: 1px solid var(--line);
  border-radius: 12px; color: var(--faint); }
.obj-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: inherit; font-size: 14px; color: var(--text); padding: 0; height: auto; }
.obj-selects { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; gap: 10px; }
.obj-selects select { height: 40px; min-width: 0; margin: 0; padding: 0 28px 0 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; font-size: 13.5px;
  color: var(--text); -webkit-appearance: none; appearance: none; cursor: pointer;
  background: var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center; }
.obj-reset { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px;
  font-size: 13.5px; font-weight: 600; color: var(--text); white-space: nowrap; }
@media (max-width: 959px) {
  .obj-filters { display: none; }
  .obj-filters:target, .obj-filters.open { display: grid; }
  .obj-selects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* карточки домов (компьютер) */
.o-cards { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.o-card { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--card); border: 1px solid var(--line);
  border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); }
.o-card.on { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft), var(--shadow); }
.o-photo { position: relative; display: block; height: 150px; background: #dfe7f3; }
.o-photo img, .o-photo .house-art, .op-photo img, .op-photo .house-art, .m-obj-photo img, .m-obj-photo .house-art {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.o-photo .pill, .op-photo .pill { position: absolute; top: 10px; left: 10px; background: #fff; }
.o-menu { position: absolute; top: 8px; right: 8px; z-index: 3; }
.o-menu summary { list-style: none; cursor: pointer; width: 30px; height: 30px; border-radius: 9px; background: rgba(255, 255, 255, .92);
  display: inline-flex; align-items: center; justify-content: center; color: var(--text); }
.o-menu summary::-webkit-details-marker { display: none; }
.o-menu .sel-menu { right: 0; top: 36px; min-width: 190px; }
.o-body { display: grid; gap: 6px; padding: 12px 14px 14px; color: var(--text); min-width: 0; }
.o-name { font-size: 15.5px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.o-addr { margin-top: -4px; color: var(--muted); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.o-specs { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12.5px; color: var(--text); }
.o-specs > span { display: inline-flex; align-items: center; gap: 5px; }
.o-specs .i { color: var(--muted); }
.o-price { font-size: 18px; font-weight: 800; letter-spacing: -.02em; }
.o-price .muted { font-size: 13px; font-weight: 600; }
.o-bar { display: flex; align-items: center; gap: 10px; }
.o-bar .track { flex: 1; height: 6px; border-radius: 3px; background: var(--gray-soft); overflow: hidden; }
.o-bar i { display: block; height: 100%; border-radius: 3px; background: #3b82f6; }
.o-bar i.green { background: #22c55e; } .o-bar i.amber { background: #f59e0b; } .o-bar i.blue { background: #3b82f6; } .o-bar i.over { background: #ef4444; }
.o-bar em { min-width: 34px; font-style: normal; font-size: 12px; font-weight: 700; text-align: right; }
.o-note, .o-date { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.o-note .i, .o-date .i { flex-shrink: 0; }

/* правая панель: выбранный дом */
.obj-panel { align-self: start; position: sticky; top: 80px; max-height: calc(100vh - 96px); overflow-y: auto; scrollbar-width: thin;
  display: grid; gap: 12px; padding: 14px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.obj-panel.only-desk { display: none !important; }
@media (min-width: 960px) { .obj-panel.only-desk { display: grid !important; } }
.op-head { display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.op-photo { position: relative; height: 220px; border-radius: 14px; overflow: hidden; background: #dfe7f3; }
.op-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.op-title h2 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.op-id { flex-shrink: 0; padding: 4px 10px; border-radius: 8px; background: var(--gray-soft); color: var(--muted); font-size: 12px; white-space: nowrap; }
.op-addr { display: flex; align-items: center; gap: 6px; margin-top: -4px; font-size: 13.5px; color: var(--muted); }
.op-addr > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.op-map { display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 9px;
  font-size: 12.5px; font-weight: 600; color: var(--text); white-space: nowrap; }
.op-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.op-tabs > * { padding: 7px 12px; border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--muted); white-space: nowrap; background: var(--gray-soft); }
.op-tabs .on { background: var(--navy); color: #fff; }
.op-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.op-grid > div { min-width: 0; padding: 10px 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.op-grid > div:nth-child(3n) { border-right: 0; }
.op-grid > div:nth-last-child(-n+3) { border-bottom: 0; }
.op-grid dt { font-size: 11.5px; color: var(--muted); }
.op-grid dd { margin: 3px 0 0; font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.op-grid .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.op-block { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.op-block-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.op-block-head h3 { margin: 0; font-size: 14.5px; font-weight: 800; }
.op-block-head a { display: inline-flex; align-items: center; gap: 3px; font-size: 12.5px; font-weight: 600; color: var(--accent); }
.op-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.op-steps li { position: relative; display: grid; justify-items: center; gap: 3px; text-align: center; min-width: 0; }
.op-steps li::before { content: ""; position: absolute; top: 10px; left: -50%; width: 100%; height: 2px; background: var(--line); }
.op-steps li:first-child::before { display: none; }
.op-steps li.done::before, .op-steps li.work::before { background: #22c55e; }
.op-steps .dot { position: relative; z-index: 1; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #cbd5e1; background: var(--card);
  display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.op-steps .dot .i { stroke-width: 3; }
.op-steps li.done .dot { background: #22c55e; border-color: #22c55e; }
.op-steps li.work .dot { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.op-steps b { font-size: 11px; font-weight: 700; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.op-steps small { font-size: 10.5px; color: var(--muted); }
.op-steps li.done small { color: var(--green); }
.op-steps li.work small { color: var(--accent); }
.op-now { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; border-radius: 10px; background: var(--bg); }
.op-now small { display: block; font-size: 11.5px; color: var(--muted); }
.op-now b { display: flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 700; }
.op-money { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.op-money > div { display: flex; align-items: center; gap: 8px; min-width: 0; }
.op-money small { display: block; font-size: 11.5px; color: var(--muted); }
.op-money b { display: block; font-size: 13.5px; font-weight: 800; white-space: nowrap; }
.op-money .round-ic { width: 32px; height: 32px; }

/* телефон: список домов */
.m-objs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.m-objs a { display: flex; align-items: center; gap: 12px; padding: 8px 10px 8px 8px; background: var(--card); border: 1px solid var(--line);
  border-radius: 16px; box-shadow: var(--shadow); color: var(--text); }
.m-obj-photo { position: relative; flex-shrink: 0; width: 104px; height: 100px; border-radius: 12px; overflow: hidden; background: #dfe7f3; }
.m-obj-body { flex: 1; min-width: 0; display: grid; gap: 4px; }
.m-obj-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
.m-obj-top b { font-size: 14px; font-weight: 800; white-space: nowrap; }
.m-obj-top .pill { height: 22px; padding: 0 8px; font-size: 11px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.m-obj-name { font-size: 15px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-obj-addr { display: flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-obj-addr .i { flex-shrink: 0; }
.m-objs .o-specs { font-size: 12px; gap: 2px 10px; }
.m-objs a > .i:last-child { flex-shrink: 0; color: var(--faint); }
.okpi { gap: 12px; padding: 14px; }
.okpi .ic-tile { width: 46px; height: 46px; }
.okpi small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.op-tabs > * { padding: 6px 8px; font-size: 12px; }
@media (min-width: 960px) and (max-width: 1499px) { .obj-selects { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); } }
.pill::before { flex-shrink: 0; }
.m-obj-top .pill { flex: 0 1 auto; }
.m-obj-top b { flex-shrink: 0; }

/* ---------- «Закупки» точно по рендеру 04 (компьютер и телефон, 2026-10-11) ---------- */
.pur { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pur-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; min-width: 0; }
.pur .card, .pur .kpis, .pur .page-head { margin: 0; }
.pur .card { padding: 14px; }
.pur .card-head { gap: 10px; margin-bottom: 8px; }
.pur .card-head h2 { font-size: 16px; }
.pur .card-head > a { font-size: 12.5px; color: var(--muted); font-weight: 600; }
.pur .head-actions { align-items: center; gap: 10px; }
.pur-side { gap: 14px; align-content: start; min-width: 0; }
@media (min-width: 960px) {
  .pur-side.only-desk { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .pur-bottom { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 14px; align-items: start; }
}
@media (min-width: 1500px) {
  .pur { grid-template-columns: minmax(0, 1fr) 340px; }
  .pur-side.only-desk { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 959px) {
  .pur .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .pur .page-head > div:first-child { display: contents; }
  .pur .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .pur .page-head .head-actions { grid-column: 2; grid-row: 1; display: flex; gap: 6px; }
  .pur .page-head .head-actions .avatar { width: 44px; height: 44px; }
  .pur .page-head .round-add, .pur .page-head .round-btn { width: 44px; height: 44px; }
}
.btn-light { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--card); color: var(--text); font-size: 14px; font-weight: 700; }
.split-btn { position: relative; }
.split-btn summary { list-style: none; cursor: pointer; }
.split-btn summary::-webkit-details-marker { display: none; }
.split-btn .quick-menu { position: absolute; right: 0; top: 52px; z-index: 12; min-width: 240px; padding: 6px; background: var(--card);
  border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 40px rgba(15, 23, 42, .14); }
.split-btn .quick-menu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; font-weight: 600; font-size: 14px; }
.split-btn .quick-menu a:hover { background: var(--gray-soft); }

/* плитки: значок слева */
.pur-kpis .kpi { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; color: var(--text); }
.pur-kpis .kpi .ic-tile { position: static; grid-row: 1 / span 3; width: 48px; height: 48px; border-radius: 14px; }
.pur-kpis .kpi .kpi-label { padding-right: 0; }
.pur-kpis .kpi .kpi-value { margin-top: 2px; }
.pur-kpis .kpi .kpi-sub { margin-top: 2px; font-weight: 600; }
.pur-kpis .kpi .kpi-value.neg { color: var(--red); }
.pur-mkpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pur-mkpis > div { display: grid; justify-items: center; gap: 3px; padding: 12px 4px; text-align: center; min-width: 0; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.pur-mkpis .ic-tile { width: 40px; height: 40px; margin-bottom: 4px; }
.pur-mkpis small { font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.pur-mkpis b { font-size: 16px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; letter-spacing: -.02em; }
.pur-mkpis .chg-line { font-size: 11.5px; justify-content: center; }

/* фильтры над таблицей */
.pur-filters { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.pur-filters .obj-search { height: 40px; }
.pur-filters select { height: 40px; min-width: 0; margin: 0; padding: 0 26px 0 10px; border: 1px solid var(--line); border-radius: 10px; font: inherit; font-size: 13px;
  color: var(--text); -webkit-appearance: none; appearance: none; cursor: pointer;
  background: var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center; }
@media (max-width: 1199px) { .pur-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pur-filters .obj-search { grid-column: 1 / -1; } }
@media (max-width: 959px) {
  .pur-filters { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pur-filters:target, .pur-filters.open { display: grid; }
  .pur-table-card { padding: 4px 12px !important; }
}

/* таблица */
.pur-table { table-layout: fixed; }
.pur-table th, .pur-table td { padding: 8px 6px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pur-table th:nth-child(1) { width: 25%; } .pur-table th:nth-child(2) { width: 12%; } .pur-table th:nth-child(3) { width: 12%; }
.pur-table th:nth-child(4) { width: 12%; } .pur-table th:nth-child(5) { width: 8%; } .pur-table th:nth-child(6) { width: 8%; }
.pur-table th:nth-child(7) { width: 10%; } .pur-table th:nth-child(8) { width: 10%; } .pur-table th:nth-child(9) { width: 36px; }
.pur-table td.num.plain { font-weight: 500; }
.pur-table td:last-child { overflow: visible; }
.pur-table .tag { max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.pur-table .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.pur-item { display: flex; align-items: center; gap: 10px; min-width: 0; color: var(--text); }
.pur-item > span:last-child { min-width: 0; }
.pur-item b { display: block; font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
.pur-item small { display: block; font-size: 11.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; }
.pur-thumb { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: 10px;
  background: var(--accent-soft); color: var(--accent); }
.pur-thumb.big { width: 72px; height: 72px; border-radius: 14px; }
.pur-thumb.c-box { background: #fff1e6; color: #ea7a1c; } .pur-thumb.c-users { background: var(--violet-soft); color: var(--violet); }
.pur-thumb.c-truck { background: #e0f2fe; color: #0284c7; } .pur-thumb.c-receipt { background: var(--red-soft); color: var(--red); }
.pur-thumb.c-wallet { background: #eef2f7; color: #475569; } .pur-thumb.c-bank { background: var(--green-soft); color: var(--green); }
.row-menu { position: relative; top: auto; right: auto; }
.row-menu summary { background: none; width: 28px; height: 28px; }
.row-menu .sel-menu { right: 0; top: 30px; min-width: 220px; z-index: 6; }
.sel-menu form { margin: 0; }
.sel-menu button { width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: 8px; background: none; font: inherit;
  font-size: 13.5px; font-weight: 600; color: var(--text); cursor: pointer; }
.sel-menu button:hover { background: var(--gray-soft); }
.pur-more { margin: 8px 4px 0; }

/* телефон: список закупок */
.pur-list { list-style: none; margin: 0; padding: 0; }
.pur-list li + li { border-top: 1px solid var(--line); }
.pur-list a { display: flex; align-items: center; gap: 10px; padding: 12px 0; color: var(--text); }
.pur-body { flex: 1; min-width: 0; display: grid; gap: 3px; }
.pur-body b { font-size: 15px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pur-body small { font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pur-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 2px; }
.pur-tags em { font-style: normal; font-size: 11.5px; font-weight: 600; padding: 3px 8px; border-radius: 8px; background: var(--gray-soft); color: var(--muted);
  max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pur-tags em.t-blue { background: var(--accent-soft); color: var(--accent); }
.pur-end { display: grid; justify-items: end; gap: 4px; flex-shrink: 0; max-width: 42%; text-align: right; }
.pur-end .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.pur-end b { font-size: 14px; font-weight: 800; white-space: nowrap; }
.pur-end small { font-size: 11px; color: var(--muted); }
.pur-list a > .i:last-child { flex-shrink: 0; color: var(--faint); }
@media (max-width: 400px) { .pur-thumb.big { width: 56px; height: 56px; } }

/* снизу: динамика и ближайшие поставки */
.pur .top-legend { font-size: 11.5px; gap: 10px; margin: -2px 0 6px; }
.pur .top-legend i { width: 8px; height: 8px; margin-right: 5px; }
.pur-next a { gap: 10px; padding: 8px 0; color: var(--text); }
.pur-next .round-ic { width: 32px; height: 32px; }
.pn-day { font-size: 13px; font-weight: 800; min-width: 48px; }
.pur-next .ev-txt b { font-size: 12.5px; font-weight: 600; }
.pur-next .pill { height: 22px; padding: 0 8px; font-size: 11px; }

/* справа */
.pur-quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pur-quick a { display: grid; justify-items: center; gap: 8px; padding: 12px 4px; border: 1px solid var(--line); border-radius: 12px; text-align: center;
  font-size: 11.5px; font-weight: 600; line-height: 1.25; color: var(--text); }
.pur-quick .ic-tile { width: 44px; height: 44px; border-radius: 12px; }
.pur-sup a { gap: 10px; padding: 9px 0; color: var(--text); }
.sup-ic { width: 38px; height: 38px; border-radius: 50%; background: var(--accent); font-size: 15px; }
.pur-sup li:nth-child(2) .sup-ic { background: #1e3a8a; } .pur-sup li:nth-child(3) .sup-ic { background: #16a34a; } .pur-sup li:nth-child(4) .sup-ic { background: #ea580c; }
.pur-sup .ev-txt b { font-size: 13px; font-weight: 700; }
.pur-todo { max-height: 300px; overflow-y: auto; }
.pur-todo a { font-size: 13px; font-weight: 500; padding: 8px 0; align-items: flex-start; }
.pur-todo .todo-box { margin-top: 1px; }
@media (max-width: 959px) { .chips.only-mob { display: flex; } }
.pur-kpis .kpi .kpi-label { white-space: normal; font-size: 12.5px; line-height: 1.25; }
.pur-kpis .kpi .kpi-sub { white-space: normal; flex-wrap: wrap; font-size: 12px; }
.pur-mkpis small { white-space: normal; font-size: 11.5px; line-height: 1.2; }
.pur-mkpis b { font-size: 14px; }

/* ---------- «ИИ-центр» точно по рендеру 08 (компьютер и телефон, 2026-10-11) ---------- */
.aic { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; }
.aic .card, .aic .kpis, .aic .page-head { margin: 0; }
.aic .card { padding: 14px; }
.aic .card-head { gap: 10px; margin-bottom: 8px; }
.aic .card-head h2 { font-size: 16px; display: flex; align-items: center; gap: 8px; }
.aic .card-head > a { font-size: 12.5px; color: var(--muted); font-weight: 600; }
.aic-tabs-row { align-items: center; gap: 12px; }
.aic-tabs-row .chips { flex: 1; min-width: 0; }
@media (max-width: 959px) {
  .aic .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .aic .page-head > div:first-child { display: contents; }
  .aic .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .aic .page-head .head-actions { grid-column: 2; grid-row: 1; display: flex; gap: 6px; }
  .aic .page-head .avatar, .aic .page-head .round-add, .aic .page-head .round-btn { width: 44px; height: 44px; }
  .aic.picked .aic-mob, .aic.picked .aic-head { display: none !important; }
  .aic:not(.picked) .aic-detail, .aic:not(.picked) .aic-ops { display: none; }
  .aic-grid { gap: 12px; }
}

/* три панели */
.aic-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; }
@media (min-width: 960px) {
  .aic-grid { grid-template-columns: 280px minmax(0, 1fr); grid-template-areas: "list detail" "list ops"; }
  .aic-list { grid-area: list; }
  .aic-detail { grid-area: detail; }
  .aic-ops { grid-area: ops; }
}
@media (min-width: 1440px) {
  .aic-grid { grid-template-columns: 300px minmax(0, 1fr) 360px; grid-template-areas: "list detail ops"; }
}
.aic-list { padding: 6px !important; max-height: calc(100vh - 120px); overflow-y: auto; position: sticky; top: 80px; scrollbar-width: thin; }
.aic-list ul { list-style: none; margin: 0; padding: 0; }
.aic-list li a { display: flex; align-items: center; gap: 10px; padding: 10px 8px; border-radius: 12px; color: var(--text); }
.aic-list li a:hover { background: var(--gray-soft); }
.aic-list li.on a { background: var(--accent-soft); }
.aic-list .ev-txt b { font-size: 13px; }
.aic-list .ev-txt small { font-size: 11.5px; }
.src-ic { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  overflow: hidden; background: #e6f9ee; color: #16a34a; font-size: 10px; font-weight: 800; }
.src-ic img { width: 100%; height: 100%; object-fit: cover; }
.src-ic.pdf { background: var(--red-soft); color: var(--red); border-radius: 10px; }
.src-ic.gray { background: var(--gray-soft); color: var(--muted); }
.al-end { display: grid; justify-items: end; gap: 6px; flex-shrink: 0; }
.al-end small { font-size: 11px; color: var(--muted); white-space: nowrap; }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--faint); }
.dot.amber { background: #f59e0b; } .dot.green { background: #22c55e; } .dot.gray { background: #cbd5e1; }
.al-empty { padding: 20px 8px; text-align: center; }
.al-more { margin: 8px; }

/* выбранный документ */
.aic-detail { min-width: 0; }
.ad-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.ad-head > div { flex: 1; min-width: 0; }
.ad-head h2 { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-head small { display: block; color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-head .src-ic { width: 44px; height: 44px; }
.ad-menu { position: relative; top: auto; right: auto; }
.ad-menu summary { background: var(--card); border: 1px solid var(--line); }
.ad-menu .sel-menu { right: 0; top: 36px; min-width: 200px; }
.ad-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin-bottom: 10px; }
.ad-tabs a { padding: 8px 12px; border-radius: 10px; font-size: 13px; font-weight: 600; color: var(--muted); white-space: nowrap; background: var(--gray-soft); }
.ad-tabs a.on { background: var(--navy); color: #fff; }
.ad-msg { margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; background: var(--bg); font-size: 13px; color: var(--muted); }
.ad-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
@media (min-width: 1200px) { .ad-body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.ad-preview { display: grid; gap: 10px; align-content: start; justify-items: start; min-width: 0; padding: 12px; border-radius: 14px; background: #f1f3f7; }
.ad-preview img { display: block; max-width: 100%; max-height: 460px; border-radius: 10px; box-shadow: 0 6px 18px rgba(15, 23, 42, .12); background: #fff; }
.paper { margin: 0; width: 100%; max-height: 420px; overflow: auto; padding: 16px; background: #fff; border-radius: 4px; box-shadow: 0 6px 18px rgba(15, 23, 42, .1);
  font: 11.5px/1.45 ui-monospace, Menlo, Consolas, monospace; white-space: pre-wrap; color: #1f2937; }
.ad-recog { min-width: 0; display: grid; gap: 8px; align-content: start; }
.ad-recog-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ad-recog-head h3 { margin: 0; font-size: 14.5px; font-weight: 800; }
.ad-props { margin: 0; display: grid; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.ad-props > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--line); }
.ad-props > div:last-child { border-bottom: 0; }
.ad-props dt { font-size: 12px; color: var(--muted); }
.ad-props dd { margin: 0; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.ad-sub { margin: 6px 0 0; font-size: 14px; font-weight: 800; }
.ad-lines { list-style: none; margin: 0; padding: 0; }
.ad-lines li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.ad-lines li:last-child { border-bottom: 0; }
.ad-lines .ev-txt b { font-size: 13px; white-space: normal; }
.ad-lines .ev-sum { font-size: 13px; }
.ad-lines .pur-thumb { width: 32px; height: 32px; background: #fff1e6; color: #ea7a1c; }
.ad-lines li.mx-bad .ev-txt small { color: var(--amber); }
.aic .mx-checks { margin: 4px 0 0; font-size: 13px; }

/* справа: что сделать */
.aic-ops { display: grid; gap: 14px; align-content: start; min-width: 0; }
.ao-op { display: flex; align-items: center; gap: 10px; padding: 10px; margin-bottom: 8px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); }
.ao-op b { display: block; font-size: 13.5px; }
.ao-op small { display: block; font-size: 12px; color: var(--muted); }
.ao-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px; align-items: center; margin: 0 0 8px; font-size: 12.5px; color: var(--muted); }
.ao-row select, .ao-row input, .ao-row textarea { width: 100%; min-width: 0; margin: 0; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px;
  background: var(--card); font: inherit; font-size: 13px; color: var(--text); }
.ao-row textarea { height: 60px; padding: 8px 10px; }
.aic .mx-new { font-size: 12.5px; margin: 6px 0; }
.ao-actions { display: grid; gap: 8px; margin-top: 10px; }
.ao-actions .link-danger { justify-self: center; }
.btn-violet { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; padding: 0 16px; border: 0; border-radius: 12px;
  background: linear-gradient(90deg, #5b5bf6, #7c5cf6); color: #fff; font: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; }
.aic .btn-light { justify-content: center; cursor: pointer; font: inherit; font-size: 13.5px; font-weight: 700; height: 40px; }
.ao-link { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); }
.ao-link + .ao-link { margin-top: 8px; }
.ao-link b { display: block; font-size: 13.5px; }
.ao-link small { display: block; font-size: 12px; color: var(--muted); }
.aic-empty { min-height: 200px; display: grid; place-items: center; }

/* снизу */
.aic-bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
@media (min-width: 1280px) { .aic-bottom { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr); } }
.aic .top-legend { font-size: 11.5px; gap: 10px; margin: -2px 0 6px; }
.aic .top-legend i { width: 8px; height: 8px; margin-right: 5px; }
.aic-types small { grid-column: auto; }
.aic-types > div { grid-template-columns: 8px minmax(0, 1fr) auto 28px; }
.aic-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.aic-actions a { display: grid; justify-items: center; gap: 6px; padding: 10px 4px; border: 1px solid var(--line); border-radius: 12px; text-align: center;
  font-size: 11px; font-weight: 600; line-height: 1.2; color: var(--text); }
.aic-actions span { display: inline-flex; color: var(--accent); }
.aic-actions span.red { color: var(--red); }
.aic-tokens { margin: 10px 2px 0; }

/* телефон: сводка */
.aic-mob { display: grid; gap: 12px; }
.aic-hero { position: relative; padding: 16px; border-radius: 18px; overflow: hidden; background: linear-gradient(135deg, #e9edff 0%, #f3efff 55%, #e6efff 100%); }
.aic-hero > div { position: relative; z-index: 1; padding-right: 110px; }
.aic-hero b { display: block; font-size: 18px; font-weight: 800; line-height: 1.2; }
.aic-hero p { margin: 6px 0 12px; font-size: 13px; color: var(--muted); }
.aic-hero .robot-art { position: absolute; right: 6px; top: 10px; width: 120px; height: 120px; }
.aic-hero .btn-dark { height: 40px; font-size: 13.5px; }
.aic-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.aic-quick a { display: grid; justify-items: center; gap: 6px; padding: 10px 4px; background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: var(--shadow); text-align: center; font-size: 12px; font-weight: 600; line-height: 1.2; color: var(--text); }
.aic-sources { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(104px, 1fr); gap: 8px; overflow-x: auto; scrollbar-width: none; }
.aic-sources > div { display: grid; gap: 4px; justify-items: start; padding: 10px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.aic-sources b { font-size: 13.5px; }
.aic-sources .pill { height: 20px; padding: 0 7px; font-size: 10.5px; }
.aic-sources small { font-size: 11px; color: var(--muted); white-space: nowrap; }
.bank-ic.b-max { background: #1677ff; }
.aic-unsorted { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.aic-unsorted a { position: relative; display: grid; gap: 4px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); }
.aic-unsorted em { position: absolute; top: 8px; right: 8px; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 999px; font-style: normal;
  font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: var(--red); }
.aic-unsorted em.n-amber { background: #f59e0b; } .aic-unsorted em.n-violet { background: var(--violet); }
.aic-unsorted b { font-size: 13.5px; }
.aic-unsorted small { font-size: 12px; color: var(--muted); }
.aic-recent { list-style: none; margin: 0; padding: 0; }
.aic-recent li + li { border-top: 1px solid var(--line); }
.aic-recent a { display: flex; align-items: center; gap: 10px; padding: 10px 0; color: var(--text); }
.aic-recent .doc-thumb { width: 52px; height: 56px; }
.aic-recent .ev-txt b { font-size: 14px; }
.aic-end { display: grid; justify-items: end; gap: 6px; flex-shrink: 0; }
.aic-end .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.aic-open { display: inline-flex; align-items: center; gap: 2px; padding: 6px 10px; border-radius: 10px; background: var(--gray-soft); font-size: 12px; font-weight: 600; white-space: nowrap; }
.aic .back { display: inline-flex; align-items: center; gap: 4px; margin-bottom: 8px; font-weight: 600; color: var(--accent); }
@media (max-width: 959px) {
  .aic-detail .ad-head h2 { font-size: 17px; white-space: normal; }
  .ad-head .op-id { display: none; }
  .ao-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .ao-row select, .ao-row input { height: 44px; font-size: 15px; }
}
.aic-mob { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.aic-mob > * { min-width: 0; }
.ad-tabs a { padding: 7px 10px; font-size: 12.5px; }

/* ---------- «Отчёты → Обзор» точно по рендеру 11 (компьютер и телефон, 2026-10-11) ---------- */
.rep { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; }
.rep .card, .rep .kpis, .rep .page-head { margin: 0; }
.rep .card { padding: 14px; }
.rep .card-head { gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.rep .card-head h2 { font-size: 16px; }
.rep .card-head > a { font-size: 12.5px; color: var(--muted); font-weight: 600; }
.rep .head-actions { align-items: center; gap: 10px; }
.rep .top-legend { font-size: 11.5px; gap: 10px; }
.rep .top-legend i { width: 8px; height: 8px; margin-right: 5px; }
@media (max-width: 959px) {
  .rep .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .rep .page-head > div:first-child { display: contents; }
  .rep .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .rep .page-head .head-actions { grid-column: 2; grid-row: 1; display: flex; gap: 6px; }
  .rep .page-head .avatar, .rep .page-head .round-add, .rep .page-head .round-btn { width: 44px; height: 44px; }
}
.rep-period { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.rp-label { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--card); font-size: 14px; font-weight: 700; }

/* плитки: 5 в ряд, значок слева */
.rep-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.rep-kpis .kpi { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 14px; }
.rep-kpis .kpi .ic-tile { position: static; grid-row: 1 / span 3; width: 46px; height: 46px; border-radius: 13px; }
.rep-kpis .kpi .kpi-label { padding-right: 0; font-size: 13px; }
.rep-kpis .kpi .kpi-value { margin-top: 2px; font-size: 20px; }
.rep-kpis .kpi .kpi-value.neg { color: var(--red); }
.rep-kpis .kpi .kpi-sub { margin-top: 2px; font-size: 11.5px; flex-wrap: wrap; white-space: normal; }
.rep-mkpis .mk .muted.small { display: block; font-size: 11px; }

/* сетка блоков */
.rep-grid { gap: 14px; align-items: start;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1.1fr) minmax(0, 0.95fr);
  grid-template-areas: "chart donut cash" "top cats cash" "lines plan ops"; }
@media (max-width: 1439px) {
  .rep-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    grid-template-areas: "chart donut" "top cash" "cats cash" "lines plan" "ops ops"; }
}
.rg-chart { grid-area: chart; } .rg-donut { grid-area: donut; } .rg-cash { grid-area: cash; } .rg-top { grid-area: top; }
.rg-cats { grid-area: cats; } .rg-lines { grid-area: lines; } .rg-plan { grid-area: plan; } .rg-ops { grid-area: ops; }
.rg-chart .card-head .top-legend { margin-left: auto; }
.rep-flow { list-style: none; margin: 0 0 8px; padding: 0; }
.rep-flow li { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 13.5px; }
.rep-flow li b { margin-left: auto; font-size: 14px; font-weight: 800; }
.rep-flow li.total { padding: 10px; border-radius: 10px; background: var(--accent-soft); font-weight: 700; }
.rep-flow span { display: inline-flex; }
.rep-sub { margin: 10px 0 4px; font-size: 14px; font-weight: 800; }
.rep-banks { list-style: none; margin: 0; padding: 0; }
.rep-banks a { display: flex; align-items: center; gap: 10px; padding: 7px 0; color: var(--text); font-size: 13.5px; }
.rep-banks .bank-ic { width: 28px; height: 28px; border-radius: 8px; font-size: 12px; }
.rep-banks a > span:nth-child(2) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rep-banks b { font-weight: 700; white-space: nowrap; }
.rep-total { display: flex; justify-content: space-between; margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: var(--accent-soft);
  color: var(--accent); font-weight: 800; }
.rep-top { table-layout: fixed; }
.rep-top th, .rep-top td { padding: 8px 6px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rep-top th:nth-child(1) { width: 5%; } .rep-top th:nth-child(2) { width: 27%; } .rep-top th:nth-child(3) { width: 14%; }
.rep-top th:nth-child(4) { width: 14%; } .rep-top th:nth-child(5) { width: 14%; } .rep-top th:nth-child(6) { width: 11%; } .rep-top th:nth-child(7) { width: 15%; }
.rep-top td.plain, .rep-cats td.plain { font-weight: 500; }
.rep-top .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.rt-obj { display: flex; align-items: center; gap: 8px; color: var(--text); font-weight: 600; min-width: 0; }
.rt-obj > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.rt-photo { position: relative; flex-shrink: 0; width: 34px; height: 26px; border-radius: 6px; overflow: hidden; background: #dfe7f3; }
.rt-photo img, .rt-photo .house-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rt-photo.big { width: 70px; height: 56px; border-radius: 10px; }
.rep-cats th, .rep-cats td { padding: 7px 6px; font-size: 12.5px; }
.rc-ic { display: inline-flex; vertical-align: -3px; margin-right: 8px; }
.rep-plan { list-style: none; margin: 0; padding: 0; }
.rep-plan a { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto auto; grid-template-rows: auto auto; gap: 2px 10px;
  align-items: center; padding: 7px 0; color: var(--text); font-size: 12.5px; }
.rpl-name { grid-row: 1 / span 2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rpl-bar { height: 6px; border-radius: 3px; background: #e2e8f0; overflow: hidden; }
.rpl-bar i { display: block; height: 100%; background: #3b82f6; border-radius: 3px; }
.rpl-bar i.over { background: #ef4444; }
.rep-plan small { grid-column: 2; grid-row: 2; color: var(--muted); font-size: 11px; }
.rep-plan b { grid-column: 3; grid-row: 1 / span 2; font-weight: 700; white-space: nowrap; }
.rep-plan em { grid-column: 4; grid-row: 1 / span 2; font-style: normal; font-weight: 800; min-width: 40px; text-align: right; }
.rep-ops th, .rep-ops td { padding: 7px 6px; font-size: 12.5px; }
.rep-ops td:nth-child(2) { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rep-ops a { font-weight: 500; color: var(--text); }
.rep-ops .pill { height: 22px; padding: 0 8px; font-size: 11px; }

/* телефон */
.rep-mob { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
.rep-two { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 560px) { .rep-two { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } }
.mdonut { width: 150px; height: 150px; margin: 0 auto 10px; }
.mdonut .donut-center b { font-size: 14px; }
.mdonut .donut-center small { font-size: 10.5px; }
.rep-donut { display: flex; align-items: center; gap: 12px; }
.rep-donut .donut { width: 110px; height: 110px; }
.rep-donut .donut-center b { font-size: 20px; }
.rep-mobj { list-style: none; margin: 0; padding: 0; }
.rep-mobj li + li { border-top: 1px solid var(--line); }
.rep-mobj a { display: flex; align-items: center; gap: 10px; padding: 10px 0; color: var(--text); }
.rm-name { flex: 1; min-width: 0; display: grid; gap: 4px; justify-items: start; }
.rm-name b { font-size: 14px; font-weight: 800; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-name .pill { height: 20px; padding: 0 7px; font-size: 10.5px; }
.rep-mobj dl { margin: 0; display: grid; gap: 1px; flex-shrink: 0; }
.rep-mobj dl > div { display: grid; grid-template-columns: 56px auto; gap: 6px; }
.rep-mobj dt { font-size: 11px; color: var(--muted); }
.rep-mobj dd { margin: 0; font-size: 12.5px; font-weight: 700; text-align: right; white-space: nowrap; }
.rep-mobj a > .i:last-child { flex-shrink: 0; color: var(--faint); }
.rep-grid > * { min-width: 0; }
.rep-ops { table-layout: fixed; }
.rep-ops th:nth-child(1) { width: 15%; } .rep-ops th:nth-child(2) { width: 35%; } .rep-ops th:nth-child(3) { width: 25%; } .rep-ops th:nth-child(4) { width: 25%; }
.rep-ops td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rep-ops td:nth-child(2) { max-width: none; }
.rep-ops .pill { padding: 0 6px; font-size: 10px; max-width: 100%; overflow: hidden; }
@media (min-width: 1440px) { .rep-grid { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) minmax(0, 0.9fr); } }
.rep-top th:nth-child(1) { width: 4%; } .rep-top th:nth-child(2) { width: 25%; } .rep-top th:nth-child(6) { width: 11%; } .rep-top th:nth-child(7) { width: 15%; }

/* ---------- «Контрагенты» точно по рендеру 12 (компьютер и телефон, 2026-10-11) ---------- */
.ctr .card { padding: 14px; }
.ctr-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.ctr-kpis .okpi { padding: 14px 12px; gap: 10px; }
.ctr-kpis .okpi .ic-tile { width: 42px; height: 42px; }
.ctr-kpis .okpi b { font-size: 22px; }
.ctr-more { position: relative; top: auto; right: auto; }
.ctr-more summary { width: 44px; height: 44px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
.ctr-more .sel-menu { right: 0; top: 50px; min-width: 220px; }
.ctr-filters { grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; }
@media (max-width: 1199px) { .ctr-filters { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; } .ctr-filters .obj-search { grid-column: 1 / -1; } }
.ctr-table { table-layout: fixed; }
.ctr-table th, .ctr-table td { padding: 8px 6px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ctr-table th:nth-child(1) { width: 28%; } .ctr-table th:nth-child(2) { width: 13%; } .ctr-table th:nth-child(3) { width: 12%; }
.ctr-table th:nth-child(4) { width: 14%; } .ctr-table th:nth-child(5) { width: 13%; } .ctr-table th:nth-child(6) { width: 12%; }
.ctr-table th:nth-child(7) { width: 8%; } .ctr-table th:last-child { width: 36px; }
.ctr-table td:last-child { overflow: visible; }
.ctr-table tr.on td { background: var(--accent-soft); }
.ctr-table td.plain { font-weight: 500; }
.ctr-table .pill { height: 22px; padding: 0 8px; font-size: 11px; max-width: 100%; overflow: hidden; }
.ctr-table a { color: var(--text); }
.ctr-name { display: flex; align-items: center; gap: 10px; min-width: 0; font-weight: 700; }
.ctr-name > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; }
.ctr-sim { font-style: normal; color: var(--amber); font-weight: 800; }
.sup-ic { width: 32px; height: 32px; border-radius: 9px; font-size: 13px; background: var(--accent); }
.sup-ic.c-amber { background: #f59e0b; } .sup-ic.c-green { background: #16a34a; } .sup-ic.c-violet { background: var(--violet); }
.sup-ic.c-gray { background: #94a3b8; } .sup-ic.c-blue { background: var(--accent); }
.sup-ic.big { width: 52px; height: 52px; border-radius: 14px; font-size: 20px; }
.sup-ic.huge { width: 56px; height: 56px; border-radius: 50%; font-size: 22px; }
.pill.gray { background: var(--gray-soft); color: var(--muted); }

/* телефон: список */
.ctr-list { list-style: none; margin: 0; padding: 0; }
.ctr-list li + li { border-top: 1px solid var(--line); }
.ctr-list a { display: flex; align-items: center; gap: 10px; padding: 12px 0; color: var(--text); }
.ctr-body { flex: 1; min-width: 0; display: grid; gap: 3px; }
.ctr-top { display: flex; align-items: center; gap: 6px; min-width: 0; }
.ctr-top b { font-size: 15px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ctr-top .pill { height: 20px; padding: 0 7px; font-size: 10.5px; flex-shrink: 0; }
.ctr-body small { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ctr-end { display: grid; justify-items: end; gap: 3px; flex-shrink: 0; text-align: right; }
.ctr-end .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.ctr-end small { font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.ctr-end small b { color: var(--text); }
.ctr-list a > .i:last-child { flex-shrink: 0; color: var(--faint); }

/* снизу */
.ctr-bottom { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.ctr .top-legend { font-size: 11.5px; gap: 10px; }
.ctr .top-legend i { width: 8px; height: 8px; margin-right: 5px; }
.ctr-top5 { list-style: none; margin: 0; padding: 0; }
.ctr-top5 a { display: flex; align-items: center; gap: 10px; padding: 8px 0; color: var(--text); font-size: 13px; }
.ctr-top5 em { font-style: normal; color: var(--muted); width: 14px; }
.ctr-top5 .ev-txt b { font-size: 13px; }
.ctr-top5 a > b { white-space: nowrap; }

/* правая панель */
.ctr-head { display: flex; align-items: center; gap: 12px; }
.ctr-head > div { flex: 1; min-width: 0; display: grid; gap: 4px; justify-items: start; }
.ctr-head h2 { margin: 0; font-size: 20px; font-weight: 800; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.op-tabs em { font-style: normal; font-size: 11px; opacity: .7; margin-left: 2px; }
.ctr-props { margin: 0; display: grid; gap: 2px; }
.ctr-props > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; align-items: center; padding: 6px 0; font-size: 13px; }
.ctr-props dt { display: flex; align-items: center; gap: 8px; color: var(--muted); }
.ctr-props dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.ctr-money { list-style: none; margin: 0; padding: 0; }
.ctr-money li { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 13px; }
.ctr-money li b { margin-left: auto; font-weight: 800; white-space: nowrap; }
.ctr-money .round-ic { width: 28px; height: 28px; }
.ctr-files { list-style: none; margin: 0; padding: 0; }
.ctr-files a { display: flex; align-items: center; gap: 10px; padding: 7px 0; color: var(--text); }
.ctr-files .ev-txt b { font-size: 12.5px; font-weight: 600; }
.ctr-kpis .okpi { padding: 12px 10px; gap: 8px; }
.ctr-kpis .okpi .ic-tile { width: 36px; height: 36px; border-radius: 10px; }
.ctr-kpis .okpi .ic-tile .i { width: 18px; height: 18px; }
.ctr-kpis .okpi small { white-space: normal; font-size: 11.5px; line-height: 1.2; }
.ctr-kpis .okpi b { font-size: 20px; }
.ctr-body .ctr-tags { display: flex; gap: 6px; align-items: center; min-width: 0; }
.ctr-body .ctr-tags .pill { height: 20px; padding: 0 7px; font-size: 10.5px; flex-shrink: 0; }
.ctr-body .ctr-tags small { min-width: 0; }
.ctr-end { max-width: 42%; }

/* ---------- «Справочники» точно по рендеру 13 (компьютер и телефон, 2026-10-11) ---------- */
.refs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; }
.refs .card, .refs .page-head { margin: 0; }
.refs .card { padding: 14px; }
.refs .card-head { gap: 10px; margin-bottom: 8px; }
.refs .card-head h2 { font-size: 16px; }
.refs .card-head > a { font-size: 12.5px; color: var(--muted); font-weight: 600; }
@media (max-width: 959px) {
  .refs .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .refs .page-head > div:first-child { display: contents; }
  .refs .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .refs .page-head .head-actions { grid-column: 2; grid-row: 1; display: flex; gap: 6px; }
  .refs .page-head .avatar, .refs .page-head .round-add, .refs .page-head .round-btn { width: 44px; height: 44px; }
}

/* плитки справочников */
.ref-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ref-tile { display: grid; justify-items: center; gap: 6px; padding: 10px 4px; text-align: center; min-width: 0; background: var(--card);
  border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); color: var(--text); }
.ref-tile small { display: block; font-size: 11.5px; font-weight: 600; line-height: 1.2; }
.ref-tile b { display: block; font-size: 16px; font-weight: 800; }
.ref-tile em { display: none; }
.ref-tile .ic-tile { width: 40px; height: 40px; }
.ref-tile.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.ref-tile.on .ic-tile { background: rgba(255, 255, 255, .14); color: #fff; }
@media (min-width: 960px) {
  .ref-tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
  .ref-tile { display: flex; align-items: center; justify-items: start; gap: 12px; padding: 14px; text-align: left; }
  .ref-tile .ic-tile { width: 48px; height: 48px; border-radius: 13px; flex-shrink: 0; }
  .ref-tile > span:last-child { min-width: 0; }
  .ref-tile small { font-size: 12.5px; }
  .ref-tile b { font-size: 22px; }
  .ref-tile em { display: block; font-style: normal; font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ref-tile.on { background: var(--card); color: var(--text); border: 2px solid var(--accent); }
  .ref-tile.on .ic-tile { background: var(--amber-soft); color: var(--amber); }
}

/* три колонки: категории · таблица · материал */
.ref-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; }
@media (min-width: 960px) { .ref-grid { grid-template-columns: 230px minmax(0, 1fr); } }
@media (min-width: 1280px) { .refs.with-panel .ref-grid { grid-template-columns: 230px minmax(0, 1fr) 330px; } }
@media (min-width: 960px) and (max-width: 1279px) { .refs .ref-panel:not(.picked) { display: none !important; } .refs .ref-panel.picked { grid-column: 1 / -1; position: static; max-height: none; } }
.refs.panel-closed .ref-grid { grid-template-columns: 230px minmax(0, 1fr) !important; }
.refs.panel-closed .obj-panel { display: none !important; }
.ref-groups ul { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 2px; }
.ref-groups a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; font-size: 13px; font-weight: 600; color: var(--text); }
.ref-groups a span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ref-groups a em { font-style: normal; font-size: 11.5px; color: var(--muted); padding: 1px 8px; border-radius: 8px; background: var(--gray-soft); }
.ref-groups li.on a { background: var(--accent-soft); color: var(--accent); }
.ref-groups .i { color: var(--muted); flex-shrink: 0; }
.ref-main { min-width: 0; }
.ref-tabs { flex-wrap: nowrap; margin-bottom: 10px; }
@media (max-width: 959px) { .ref-tabs { display: none !important; } .ref-main { padding: 4px 12px !important; } }
.ref-filters { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); }
.ref-table { table-layout: fixed; }
.ref-table th, .ref-table td { padding: 8px 6px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ref-table th:nth-child(1) { width: 32%; } .ref-table th:nth-child(2) { width: 15%; } .ref-table th:nth-child(3) { width: 9%; }
.ref-table th:nth-child(4) { width: 13%; } .ref-table th:nth-child(5) { width: 16%; } .ref-table th:nth-child(6) { width: 15%; }
.ref-table th:last-child { width: 36px; }
.ref-table td:last-child { overflow: visible; }
.ref-table tr.on td { background: var(--accent-soft); }
.ref-table td.plain { font-weight: 500; }
.ref-table .pill { height: 22px; padding: 0 8px; font-size: 11px; max-width: 100%; overflow: hidden; }
.pur-thumb.c-tool { background: #e0e7ff; color: #4f46e5; } .pur-thumb.c-home { background: var(--red-soft); color: var(--red); }
.pur-thumb.c-docs { background: #fef9c3; color: #a16207; } .pur-thumb.c-ring { background: #e0f2fe; color: #0284c7; }
.pur-thumb.c-sparkle { background: #fef3c7; color: #d97706; } .pur-thumb.c-settings { background: #f1f5f9; color: #475569; }
.ref-list { list-style: none; margin: 0; padding: 0; }
.ref-list li + li { border-top: 1px solid var(--line); }
.ref-list a { display: flex; align-items: center; gap: 10px; padding: 12px 0; color: var(--text); }
.ref-list .pur-end .pill { height: 20px; padding: 0 6px; font-size: 10.5px; }
.ref-list a > .i:last-child { flex-shrink: 0; color: var(--faint); }

/* панель материала */
.ref-photo { position: relative; height: 150px; border-radius: 14px; display: flex; align-items: center; justify-content: center; }
.ref-photo .pill { position: absolute; top: 10px; right: 10px; background: #fff; }
.ref-photo.pur-thumb, .ref-photo { background: #f1f5f9; color: #64748b; }
.ref-photo.c-box { background: #fff1e6; color: #ea7a1c; } .ref-photo.c-tool { background: #e0e7ff; color: #4f46e5; }
.ref-photo.c-home { background: var(--red-soft); color: var(--red); } .ref-photo.c-ring { background: #e0f2fe; color: #0284c7; }
.ref-photo.c-docs { background: #fef9c3; color: #a16207; } .ref-photo.c-sparkle { background: #fef3c7; color: #d97706; }
.ref-photo.c-truck { background: #e0f2fe; color: #0284c7; }
.ref-panel .op-title h2 { font-size: 19px; white-space: normal; }
.ref-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ref-btns a { justify-content: center; height: 42px; }

/* снизу */
.ref-bottom { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; align-items: start; }
.refs .top-legend { font-size: 11.5px; gap: 10px; }
.refs .top-legend i { width: 8px; height: 8px; margin-right: 5px; }
.refs .ctr-top5 a small { font-weight: 700; min-width: 40px; text-align: right; }
.ref-sup { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 13px; }
.ref-sup em { font-style: normal; color: var(--muted); width: 14px; }
.ref-sup small { white-space: nowrap; font-size: 11.5px; }
.aic-actions.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ref-units { margin: 10px 2px 0; }
.ref-btns a { font-size: 13px; padding: 0 10px; white-space: nowrap; }

/* ---------- «Продажи» по рендеру 05 (компьютер и телефон, 2026-10-11) ---------- */
.sal .card { padding: 14px; }
.sal .card-head { gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.sal .card-head h2 { font-size: 16px; }
.sal .card-head > a { font-size: 12.5px; color: var(--muted); font-weight: 600; margin-left: auto; }
.sal-kpis .kpi { padding: 14px; }
.sal-kpis .kpi .kpi-sub { flex-wrap: wrap; }
@media (min-width: 1280px) { .sal.with-panel { grid-template-columns: minmax(0, 1fr) 360px; } }
@media (min-width: 1500px) { .sal.with-panel { grid-template-columns: minmax(0, 1fr) 380px; } }
@media (max-width: 959px) {
  .sal .sal-panel { display: none; }
  .sal.picked .sal-panel { display: grid; position: static; max-height: none; }
  .sal.picked .objs-main { display: none; }
}
.sal-panel.obj-panel { display: grid !important; }
@media (max-width: 959px) { .sal:not(.picked) .sal-panel.obj-panel { display: none !important; } }

/* воронка */
.sf-cols { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.sf-col { display: grid; gap: 8px; align-content: start; padding: 8px; border-radius: 14px; background: var(--bg); min-width: 0; }
.sf-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 6px; padding: 6px 6px 8px; border-radius: 10px; }
.sf-head b { font-size: 13px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-head em { font-style: normal; font-size: 11.5px; font-weight: 700; padding: 1px 8px; border-radius: 8px; background: var(--card); color: var(--muted); }
.sf-head span { grid-column: 1 / -1; font-size: 14px; font-weight: 800; }
.sf-blue .sf-head { background: var(--accent-soft); } .sf-amber .sf-head { background: var(--amber-soft); }
.sf-violet .sf-head { background: var(--violet-soft); } .sf-green .sf-head { background: var(--green-soft); }
.sf-card { display: flex; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--text); min-width: 0; }
.sf-card.on { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.sf-av { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
  background: var(--accent-soft); color: var(--accent); font-size: 12px; font-weight: 800; }
.sf-av.sm { width: 26px; height: 26px; font-size: 10.5px; }
.sf-av.big { width: 48px; height: 48px; font-size: 17px; }
.sf-body { display: grid; gap: 2px; min-width: 0; }
.sf-body b { font-size: 12.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-body small { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-body strong { font-size: 13px; font-weight: 800; }
.sf-tag { height: 20px; padding: 0 7px; font-size: 10.5px; justify-self: start; }
.sf-empty { margin: 4px 6px; font-size: 12px; color: var(--faint); }
.sf-more { font-size: 12px; color: var(--accent); font-weight: 600; padding: 0 6px; }
.sf-add { display: flex; align-items: center; justify-content: center; gap: 4px; height: 34px; border: 1px dashed var(--line); border-radius: 10px;
  font-size: 12.5px; font-weight: 600; color: var(--muted); background: var(--card); }

/* таблица сделок */
.sal-table-card .card-head .chips { flex: 1; padding: 0; }
.sal-filters { grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr)); }
@media (max-width: 1279px) { .sal-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sal-filters .obj-search { grid-column: 1 / -1; } }
.sal-table { table-layout: fixed; }
.sal-table th, .sal-table td { padding: 8px 6px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sal-table th:nth-child(1) { width: 19%; } .sal-table th:nth-child(2) { width: 13%; } .sal-table th:nth-child(3) { width: 16%; }
.sal-table th:nth-child(4) { width: 14%; } .sal-table th:nth-child(5) { width: 11%; } .sal-table th:nth-child(6) { width: 11%; }
.sal-table th:nth-child(7) { width: 10%; } .sal-table th:nth-child(8) { width: 6%; }
.sal-table tr.on td { background: var(--accent-soft); }
.sal-table .pill { height: 22px; padding: 0 8px; font-size: 11px; max-width: 100%; overflow: hidden; }
.sal-table a { color: var(--text); }
.sal-realtors th, .sal-realtors td { padding: 7px 6px; font-size: 12.5px; }
.sal-realtors td.plain { font-weight: 500; }
.sal-list { list-style: none; margin: 0; padding: 0; }
.sal-list li + li { border-top: 1px solid var(--line); }
.sal-list a { display: flex; align-items: center; gap: 10px; padding: 10px 0; color: var(--text); }
.sal-list .m-obj-photo { width: 92px; height: 80px; }
.sal-list a > .i:last-child { flex-shrink: 0; color: var(--faint); }
@media (max-width: 959px) { .sal-table-card { padding: 6px 12px !important; } }

/* карточка справа */
.sal-phead { justify-content: flex-start; }
.sal-phead h2 { flex: 1; margin: 0; font-size: 19px; font-weight: 800; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sal-price { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.sal-price b { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.sal-client { gap: 8px; }
.sc-head { display: flex; align-items: center; gap: 10px; }
.sc-head > span:nth-child(2) { flex: 1; min-width: 0; }
.sc-head b { display: block; font-size: 15px; font-weight: 800; }
.sc-head small { display: block; font-size: 13px; color: var(--muted); }
.sc-head .round-ic { width: 34px; height: 34px; }
.sal-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.sal-actions form { margin: 0; }
.sal-actions form:first-child .btn-violet { width: 100%; height: 42px; font-size: 13.5px; }
.sal-actions .btn-light { height: 42px; font-size: 13px; }
.sal-actions form:last-child { grid-column: 1 / -1; justify-self: center; }
.sal-note { display: flex; gap: 6px; margin: 0; }
.sal-note input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--line); border-radius: 12px; padding: 0 12px; font: inherit; font-size: 13px; }
.sal-history { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sal-history li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 8px; align-items: start; font-size: 12.5px; }
.sal-history i { width: 10px; height: 10px; margin-top: 3px; border-radius: 50%; border: 2px solid var(--accent); background: var(--card); }
.sal-history b { display: block; font-weight: 600; }
.sal-history small { display: block; color: var(--muted); font-size: 11.5px; }
.sal-history em { font-style: normal; color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.sal-tasks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sal-tasks li { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.sal-tasks li span { flex: 1; min-width: 0; }
.sal-tasks li.done span { color: var(--muted); text-decoration: line-through; }
.sal-tasks li em { font-style: normal; font-size: 11.5px; padding: 1px 8px; border-radius: 8px; background: var(--gray-soft); color: var(--muted); }
.sal-tasks form { margin: 0; }
.sal-tasks .todo-box { display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; background: var(--card); }
.sal-tasks .todo-box.on { background: var(--green); border-color: var(--green); color: #fff; }
.sal-task-add { display: grid; grid-template-columns: minmax(0, 1fr) 130px auto; gap: 6px; margin: 6px 0 0; }
.sal-task-add input { height: 38px; min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 13px; }
.sal-task-add .btn-light { height: 38px; padding: 0 12px; }
.sal-kpis .kpi .kpi-label { white-space: normal; line-height: 1.2; }

/* «Продажи»: карточки как в рендере — подпись сверху, значок справа; вкладки поменьше; кнопка «Дальше» во всю ширину */
.sal-kpis .kpi { display: block; padding: 14px 16px; }
.sal-kpis .kpi .ic-tile { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border-radius: 11px; }
.sal-kpis .kpi .kpi-label { padding-right: 44px; font-size: 13px; min-height: 34px; }
.sal-kpis .kpi .kpi-value { margin-top: 2px; font-size: 22px; }
.sal-kpis .kpi .kpi-sub { margin-top: 4px; font-size: 12px; }
@media (min-width: 960px) {
  .sal-table-card .obj-tabs { overflow-x: auto; scrollbar-width: none; }
  .sal-table-card .obj-tabs .chip { height: 32px; padding: 0 12px; font-size: 13px; flex-shrink: 0; }
  .sal-table-card .obj-tabs .chip em { min-width: 20px; height: 18px; font-size: 11px; }
}
.sal-table td a[href^="tel:"] { font-weight: 500; color: var(--muted); }
.sal-all { display: flex; align-items: center; justify-content: center; gap: 4px; height: 38px; margin-top: 8px;
  border-radius: 10px; background: var(--bg); color: var(--accent); font-size: 13px; font-weight: 600; }
.sal-actions { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.sal-actions form:first-child:has(.btn-violet) { grid-column: 1 / -1; }
.sal-actions form:last-child { grid-column: auto; justify-self: center; }
.sal-actions .btn-light { justify-content: center; }

/* «Продажи» на телефоне: поиск всегда виден, остальные фильтры — по кнопке; список как в рендере */
@media (max-width: 959px) {
  .sal-filters { display: grid; grid-template-columns: minmax(0, 1fr); margin: 6px 0 4px; }
  .sal-filters select { display: none; }
  .sal-filters:target, .sal-filters.open { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sal-filters:target select, .sal-filters.open select { display: block; }
  .sal .pur-mkpis small { white-space: normal; line-height: 1.2; }
  .sal .pur-mkpis b { white-space: normal; font-size: 14px; line-height: 1.15; }
  .sal-list .m-obj-photo { width: 76px; height: 66px; }
  .sal-list .pur-body { gap: 2px; }
  .sal-list .pur-body > b { font-size: 14.5px; }
  .sal-list .pur-end { max-width: 40%; }
}
.sal-who { display: flex; align-items: flex-start; gap: 6px; min-width: 0; color: var(--muted); }
.sal-who > .i { flex-shrink: 0; margin-top: 2px; }
.sal-who > span { display: grid; min-width: 0; }
.sal-who b { font-size: 12.5px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sal-who small { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 959px) {
  .sal .pur-mkpis { gap: 6px; }
  .sal .pur-mkpis > div { padding: 12px 2px; }
  .sal .pur-mkpis small { font-size: 11px; letter-spacing: -.01em; }
  .sal .pur-mkpis b.sm { font-size: 13px; }
}
@media (max-width: 959px) {
  .sal-task-add { grid-template-columns: minmax(0, 1fr) auto; }
  .sal-task-add input[name="title"] { grid-column: 1 / -1; }
}

/* ---------- «Склад» по рендеру 06 (компьютер и телефон, 2026-10-11): раскладка как у «Закупок» (.pur) ---------- */
.wh-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wh-kpis .kpi-sub .neg { display: inline-flex; align-items: center; gap: 2px; }
.wh-sverka { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px 14px; border-radius: 12px;
  background: var(--amber-soft); color: var(--text); font-size: 13px; }
.wh-sverka .i { flex-shrink: 0; margin-top: 1px; color: var(--amber); }
.wh-charts { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; align-items: stretch; }
.wh-charts .card-head .legend { margin: 0 0 0 auto; }
.wh-table-card .card-head { align-items: center; }
.wh-table-card .card-head h2 { margin-right: auto; }
.wh-table-card .card-head .chips { flex: 1; padding: 0; }
.wh-export { height: 34px; padding: 0 12px; font-size: 13px; }
.wh-filters { grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr)) auto; }
.wh-reset { height: 40px; padding: 0 12px; font-size: 13px; white-space: nowrap; }
@media (max-width: 1279px) { .wh-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); } .wh-filters .obj-search { grid-column: 1 / -1; } }
.wh-table, .wh-moves { table-layout: fixed; }
.wh-table th, .wh-table td, .wh-moves th, .wh-moves td { padding: 8px 6px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wh-table th:nth-child(1) { width: 24%; } .wh-table th:nth-child(2) { width: 12%; } .wh-table th:nth-child(3) { width: 6%; }
.wh-table th:nth-child(4) { width: 8%; } .wh-table th:nth-child(5) { width: 7%; } .wh-table th:nth-child(6) { width: 9%; }
.wh-table th:nth-child(7) { width: 8%; } .wh-table th:nth-child(8) { width: 10%; } .wh-table th:nth-child(9) { width: 14%; }
.wh-table th:nth-child(10) { width: 36px; }
.wh-table td:last-child, .wh-moves td:last-child { overflow: visible; }
.wh-table td.num.plain, .wh-moves td.num.plain { font-weight: 500; }
.wh-table .tag { max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.wh-table .pill, .wh-moves .pill { height: 22px; padding: 0 8px; font-size: 11px; }
.wh-moves th:nth-child(1) { width: 11%; } .wh-moves th:nth-child(2) { width: 15%; } .wh-moves th:nth-child(3) { width: 18%; }
.wh-moves th:nth-child(4) { width: 11%; } .wh-moves th:nth-child(5), .wh-moves th:nth-child(6) { width: 9%; }
.wh-moves th:nth-child(7) { width: 14%; } .wh-moves th:nth-child(8) { width: 10%; } .wh-moves th:nth-child(9) { width: 76px; }
.wh-moves .link-danger { font-size: 12px; padding: 0; }
.round-ic.blue { background: var(--accent-soft); color: var(--accent); }
.wh-low li a, .wh-recent li { display: flex; align-items: center; gap: 10px; color: var(--text); }
.wh-low .ev-txt, .wh-recent .ev-txt { flex: 1; min-width: 0; }
.wh-low .ev-txt b, .wh-recent .ev-txt b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wh-low .ev-txt small, .wh-recent .ev-txt small { display: block; font-size: 11.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wh-low .pill { height: 22px; padding: 0 8px; font-size: 10.5px; flex-shrink: 0; }
.wh-recent .acc-sum { text-align: right; flex-shrink: 0; }
.wh-recent .acc-sum b { display: block; font-size: 14px; }
.wh-recent .acc-sum small { display: block; font-size: 11px; }
.wh-list .pur-end b { font-size: 14.5px; }
.wh-list .pur-end small { font-size: 11.5px; }
.wh-mrow { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
.wh-mrow .pur-end b { font-size: 15px; }
.wh-gchips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 4px 0 2px; padding: 0 0 2px; gap: 8px; }
.wh-gchips .chip { flex-shrink: 0; height: 34px; padding: 0 14px; display: inline-flex; align-items: center; font-size: 13.5px; }
@media (max-width: 959px) {
  .wh-filters { display: grid; grid-template-columns: minmax(0, 1fr); margin: 6px 0 4px; }
  .wh-filters select, .wh-filters .wh-reset { display: none; }
  .wh-filters:target, .wh-filters.open { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wh-filters:target select, .wh-filters.open select { display: block; }
  .wh-filters:target .wh-reset, .wh-filters.open .wh-reset { display: inline-flex; }
  .wh-filters .obj-search { grid-column: 1 / -1; }
  .wh .pur-mkpis { gap: 6px; }
  .wh .pur-mkpis > div { padding: 12px 2px; }
  .wh .pur-mkpis small { white-space: normal; font-size: 11px; line-height: 1.2; }
  .wh .pur-mkpis b.sm { font-size: 13px; }
  .wh-list .pur-thumb.big { width: 64px; height: 64px; }
}
/* инвентаризация */
.wh-count { display: grid; gap: 12px; max-width: 980px; }
.wh-count .form-head { margin: 0; }
.wh-count .dir-note { margin: 0; }
.wh-count-head { display: flex; gap: 12px; flex-wrap: wrap; padding: 12px 14px !important; }
.wh-count-head label { display: grid; gap: 4px; font-size: 12.5px; color: var(--muted); font-weight: 600; }
.wh-count-head label.grow { flex: 1; min-width: 220px; }
.wh-count-head input, .wh-count-table input { height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px;
  font: inherit; font-size: 13.5px; color: var(--text); background: var(--card); min-width: 0; width: 100%; }
.wh-count-table { table-layout: fixed; }
.wh-count-table th, .wh-count-table td { padding: 6px; font-size: 12.5px; }
.wh-count-table th:nth-child(1) { width: 40%; } .wh-count-table th:nth-child(2) { width: 14%; }
.wh-count-table td:first-child { overflow: hidden; }
.wh-count-table tr.has-error td { background: var(--red-soft); }
.wh-count-save { position: sticky; bottom: 12px; }
@media (max-width: 959px) {
  .wh-count-table th:nth-child(1) { width: 36%; } .wh-count-table th:nth-child(2) { width: 16%; }
  .wh-count-table .pur-thumb { display: none; }
  .wh-count-save { bottom: 84px; }
}
.wh .pur-quick a { padding: 12px 2px; font-size: 10.5px; letter-spacing: -.01em; }
@media (min-width: 960px) {
  .wh-gtabs { overflow-x: auto; scrollbar-width: none; }
  .wh-gtabs .chip { height: 34px; padding: 0 12px; font-size: 13px; flex-shrink: 0; }
  .wh-gtabs .chip em { min-width: 20px; height: 18px; font-size: 11px; }
}
@media (max-width: 959px) {
  .wh-list .pur-body b { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; }
  .wh-list .pur-end { max-width: 38%; }
  .wh-list .pur-end .pill { height: 22px; padding: 0 7px; font-size: 10.5px; }
  .wh-list .pur-thumb.big { width: 56px; height: 56px; border-radius: 12px; }
}
@media (max-width: 959px) {
  .wh-count-table th, .wh-count-table td { padding: 6px 3px; }
  .wh-count-table th:nth-child(1) { width: 38%; } .wh-count-table th:nth-child(2) { width: 12%; }
  .wh-count-table input { height: 36px; padding: 0 6px; font-size: 13px; }
  .wh-count-table .pur-item b { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; }
}

/* «Главная» на телефоне ближе к рендеру 01: короткие имена счетов, суммы помещаются */

/* «Главная» на телефоне (рендер 01): плитки счетов — короткие имена и суммы помещаются в 4 колонки */
@media (max-width: 959px) {
  .bank-tiles a { padding: 9px 7px; gap: 6px 4px; }
  .bank-tiles .bank-ic { width: 24px; height: 24px; border-radius: 7px; font-size: 12px; }
  .bank-tiles .bt-name { font-size: 12px; letter-spacing: -.01em; }
  .bank-tiles b { font-size: 14px; letter-spacing: -.01em; }
}
/* узкий телефон (до 420 px): 4 счёта в 2 ряда, иначе названия не помещаются */
@media (max-width: 419px) { .bank-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* телефон: строка поиска видна сразу (рендеры 04–06), остальные фильтры — по кнопке */
@media (max-width: 959px) {
  .pur-filters.msearch { display: grid; grid-template-columns: minmax(0, 1fr); margin: 6px 0 4px; }
  .pur-filters.msearch select { display: none; }
  .pur-filters.msearch:target, .pur-filters.msearch.open { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pur-filters.msearch:target select, .pur-filters.msearch.open select { display: block; }
  .pur-filters.msearch .obj-search { grid-column: 1 / -1; }
}

/* «Главная» на телефоне — весь экран как на рендере 01: плитки, график, итоги, счета и первые события без прокрутки
   (замеры рендера в точках раскладки 480: плитки 109, «Финансовый результат» 233, итоги 118, счета 141, строка события 38) */
@media (max-width: 959px) {
  .home-grid .home-main { gap: 12px; }
  .home-grid .page-head { margin-bottom: 8px; }
  .m-tiles a { gap: 4px; padding: 10px 4px 9px; }
  .m-tiles .ic-tile { width: 40px; height: 40px; border-radius: 12px; margin-bottom: 2px; }
  .m-tiles b { font-size: 19px; line-height: 1.1; }
  .home-grid section.card.only-mob { padding: 12px 14px; }
  .home-grid .card-head { margin-bottom: 2px; }
  .home-grid .big-num { margin: 0 0 4px; }
  .home-grid .legend { margin-top: 4px; }
  .m-kpis .kpi { padding: 10px 12px; }
  .m-kpis .kpi .ic-tile { width: 32px; height: 32px; margin-bottom: 6px; }
  .m-kpis .kpi .kpi-value { margin-top: 2px; }
  .m-kpis .kpi .kpi-sub { margin-top: 2px; }
  .bank-tiles a { padding: 8px 7px; }
  .home-grid .ev-list a { padding: 3px 0; gap: 10px; }
  .home-grid .ev-list .ic-tile { width: 32px; height: 32px; border-radius: 9px; }
  .home-grid .ev-txt b, .home-grid .ev-txt small { line-height: 1.25; }
  .home-grid .sel-pill { padding: 4px 10px; font-size: 13.5px; }
  .home-grid .big-num { font-size: 26px; }
  .bank-tiles a { padding: 7px; gap: 4px; }
}

/* «Финансовый результат» на телефоне — как блок на рендере 01 */
@media (max-width: 959px) {
  .home-grid .card-head h2 { font-size: 19px; }
  .home-grid .big-num { font-size: 30px; gap: 12px; margin: 2px 0 8px; }
  .home-grid .big-num .chg { font-size: 15px; padding: 4px 12px; border-radius: 12px; }
  .home-grid .sel-pill { padding: 7px 12px; font-size: 14.5px; border-radius: 13px; }
  .m-flow-legend { gap: 24px; font-size: 14.5px; margin: 4px 0 0; }
  .m-flow-legend i { width: 12px; height: 12px; margin-right: 8px; }
}
@media (max-width: 959px) {
  .home-grid .m-acc { padding: 12px; }
  .home-grid .m-acc .big-num { font-size: 26px; margin: 0 0 6px; }
  .home-grid .m-acc .bank-tiles { gap: 5px; }
  .home-grid .m-acc .bank-tiles a { padding: 7px 6px; gap: 5px 4px; }
  .home-grid .m-acc .bank-ic { width: 22px; height: 22px; font-size: 11px; border-radius: 7px; }
  .home-grid .m-acc .bt-name { font-size: 12px; letter-spacing: -.015em; }
  .m-flow-legend { margin-top: 2px; }
}

/* ======================================================================================================
   ТОЧНО ПО РЕНДЕРАМ (владелец 2026-10-11: «99,9 % как на картинке — размеры, расположение, названия»).
   Замеры с design/desktop/01 в точках экрана 1536×1024. Слой последний — перекрывает прежние.
   ====================================================================================================== */
@media (min-width: 960px) {
  :root { --side-w: 206px; }
  /* меню слева */
  .side { width: var(--side-w); padding: 18px 15px 16px 18px; background: #f9fafc; border-right: 1px solid #eef0f5; }
  .side-brand { gap: 11px; padding: 0 0 25px 10px; }
  .side-brand svg, .side-brand img { width: 36px; height: 36px; }
  .side-brand b { font-size: 19px; }
  .side-brand small { font-size: 11.5px; margin-top: 2px; }
  .side-nav { gap: 5px; }
  .side-nav a { height: 37px; padding: 0 8px 0 11px; gap: 17px; border-radius: 9px; font-size: 13.5px; font-weight: 500; color: #1f2a44; }
  .side-nav a .i { width: 20px; height: 20px; color: #3b4660; }
  .side-nav a.on { box-shadow: none; font-weight: 600; }
  .side-badge { min-width: 22px; height: 22px; padding: 0 6px; font-size: 11.5px; font-weight: 600; border-radius: 11px; }
  .side-user { gap: 11px; padding: 12px 0 0; border-top: 0; }
  .side-user .avatar { width: 46px; height: 46px; font-size: 15px; }
  .side-user b { font-size: 12.5px; }
  .side-user small { font-size: 11.5px; }
  /* верхняя строка */
  .top { gap: 0; padding: 14px 26px 0 21px; background: transparent; }
  .top-search { flex: 0 0 645px; max-width: 645px; height: 36px; padding: 0 12px; gap: 12px; border-radius: 10px; background: #f0f2f7; border: 0; box-shadow: none; }
  .top-search input { font-size: 13px; }
  .top-search kbd { font-size: 10.5px; padding: 4px 6px; background: transparent; }
  .top-date { height: 37px; padding: 0 12px; gap: 9px; margin-left: auto; font-size: 13px; border-radius: 10px; }
  .top-icon { width: 36px; height: 37px; margin-left: 11px; }
  .top .quick { margin-left: 18px; }
  .top .quick > summary.btn-dark { height: 37px; padding: 0 0 0 14px; gap: 9px; font-size: 13px; border-radius: 10px; }
  .top .quick > summary .split { height: 37px; width: 34px; margin-left: 10px; }
  /* страница */
  .main { max-width: none; padding: 21px 14px 20px 21px; }
  .page-head { margin-bottom: 17px; }
  .page-head h1 { font-size: 24px; line-height: 30px; letter-spacing: -.02em; }
  .page-head p { margin-top: 6px; font-size: 14px; line-height: 18px; }
}

/* «Главная» — компьютер (рендер 01) */
@media (min-width: 1280px) {
  .home-grid { grid-template-columns: minmax(0, 1fr) 335px; gap: 14px; align-items: start; }
  .home-grid .home-main { gap: 14px; }
  .home-grid .page-head { margin-bottom: 3px; }
  .home-grid .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .home-grid .kpi { height: 100px; padding: 21px 19px 0; border-radius: 14px; }
  .home-grid .kpi .kpi-label { font-size: 13px; padding-right: 40px; }
  .home-grid .kpi .kpi-value { margin-top: 8px; font-size: 22px; line-height: 26px; }
  .home-grid .kpi .kpi-sub { margin-top: 6px; font-size: 12.5px; gap: 14px; }
  .home-grid .kpi .ic-tile { top: 14px; right: 17px; width: 32px; height: 32px; border-radius: 9px; }
  .home-grid .card { border-radius: 14px; }
  .h-row2 { display: grid; grid-template-columns: minmax(0, 563fr) minmax(0, 371fr); gap: 12px; }
  .h-row2 .card { height: 280px; padding: 13px 16px 14px; }
  .h-row2 .card-head { height: 30px; margin-bottom: 6px; }
  .h-row2 .card-head h2 { font-size: 15px; display: flex; align-items: center; gap: 8px; }
  .h-row2 .head-arrow { color: var(--muted); display: inline-flex; }
  .h-seg { display: flex; gap: 6px; margin-left: auto; }
  .h-seg a { height: 30px; padding: 0 13px; display: inline-flex; align-items: center; border-radius: 15px; font-size: 12px; font-weight: 600; color: #475569; background: #f1f3f8; }
  .h-seg a.on { background: var(--navy); color: #fff; }
  .h-next { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); }
  .h-flow .chart { display: block; height: 182px; width: 100%; }
  .h-legend { display: flex; gap: 22px; margin-top: 10px; font-size: 12px; color: var(--muted); }
  .h-legend span { display: inline-flex; align-items: center; gap: 6px; }
  .h-legend i { width: 10px; height: 10px; border-radius: 50%; }
  .h-legend b { color: var(--text); font-weight: 700; margin-left: 4px; }
  .h-donut .sel-pill { height: 30px; padding: 0 12px; font-size: 12px; border-radius: 10px; }
  .h-donut-body { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 16px; align-items: center; height: 214px; }
  .h-donut .donut { width: 160px; height: 160px; position: relative; }
  .h-donut .donut svg { width: 160px; height: 160px; }
  .h-donut .donut-center b { font-size: 15px; }
  .h-donut .donut-center small { font-size: 12px; }
  .h-dlegend { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
  .h-dlegend li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 8px; align-items: center; }
  .h-dlegend i { width: 9px; height: 9px; border-radius: 50%; grid-row: 1; }
  .h-dlegend span { font-size: 12px; color: #334155; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .h-dlegend b { font-size: 12.5px; font-weight: 700; text-align: right; }
  .h-dlegend small { grid-column: 3; font-size: 11px; color: var(--muted); text-align: right; }
  /* объекты */
  .home-grid .objects-card { padding: 13px 16px 14px; }
  .home-grid .objects-card .card-head { height: 30px; margin-bottom: 12px; gap: 18px; }
  .home-grid .objects-card .card-head h2 { font-size: 15px; }
  .h-tabs { gap: 6px; flex: 1; }
  .h-tabs .chip { height: 30px; padding: 0 12px; font-size: 12px; border: 0; background: #f1f3f8; color: #334155; box-shadow: none; }
  .h-tabs .chip.on { background: var(--navy); color: #fff; }
  .h-tabs .chip em { font-size: 11px; margin-left: 6px; }
  .h-all { margin-left: auto; font-size: 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
  .home-grid .obj-cards { gap: 15px; }
  .home-grid .obj-card { flex: 0 0 214px; border-radius: 12px; }
  .home-grid .obj-photo { height: 100px; }
  .home-grid .obj-body { padding: 9px 11px 10px; }
  .home-grid .obj-body b { font-size: 13px; }
  .home-grid .obj-body small { font-size: 12.5px; }
  .home-grid .obj-body dl { margin-top: 6px; }
  .home-grid .obj-body dt { font-size: 11px; }
  .home-grid .obj-body dd { font-size: 12px; }
  /* операции и задачи */
  .home-grid .home-row4 { grid-template-columns: minmax(0, 661fr) minmax(0, 273fr); gap: 12px; }
  .home-grid .home-row4 .card { padding: 12px 16px; }
  .home-grid .home-row4 .card-head h2 { font-size: 15px; }
  .home-grid .ops-table th { font-size: 11px; padding-top: 4px; padding-bottom: 4px; }
  .home-grid .ops-table td { font-size: 11.5px; padding-top: 4px; padding-bottom: 4px; }
  .home-grid .todo li a { padding: 3px 0; font-size: 11.5px; }
  /* ИИ-помощник справа */
  .home-grid .ai-panel { width: 335px; padding: 14px 13px; border-radius: 14px; }
  .home-grid .ai-panel-head { gap: 8px; margin-bottom: 14px; }
  .home-grid .ai-panel-head b { font-size: 15px; }
  .home-grid .ai-panel-head .pill { margin-left: auto; height: 22px; font-size: 11px; }
  .home-grid .ai-hero { padding: 14px 12px 8px; min-height: 148px; border-radius: 12px; }
  .home-grid .ai-hero b { font-size: 13.5px; }
  .home-grid .ai-hero p { font-size: 11.5px; line-height: 1.4; max-width: 190px; }
  .home-grid .ai-hero .btn-dark.wide { height: 32px; font-size: 12px; margin-top: 8px; }
  .home-grid .ai-block-head { margin: 18px 0 6px; gap: 10px; }
  .home-grid .ai-block-head b { font-size: 13.5px; }
  .home-grid .chat-docs .doc-thumb { width: 58px; height: 64px; }
  .home-grid .chat-docs .ev-txt b { font-size: 12px; }
  .home-grid .chat-docs .ev-txt strong { font-size: 14px; }
  .home-grid .chat-docs .ev-txt small { font-size: 11.5px; }
  .home-grid .chat-docs .pill { height: 18px; font-size: 10.5px; align-self: flex-start; }
  .home-grid .ai-sub { font-size: 15px; margin: 22px 0 10px; }
  .home-grid .advice b { font-size: 12.5px; }
  .home-grid .advice small { font-size: 11.5px; }
  .home-grid .ai-quick { margin-top: 6px; padding: 14px 13px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); }
  .home-grid .ai-quick .ai-sub { margin: 4px 0 12px; }
  .home-grid .quick-grid.four a { min-height: 72px; font-size: 10.5px; gap: 6px; }
}
@media (min-width: 1280px) {
  .home-grid .ai-panel { top: 72px; height: calc(100vh - 86px); padding: 0; gap: 6px; background: none; border: 0; box-shadow: none; overflow: visible; }
  .home-grid .ai-card { flex: 1; min-height: 0; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--line);
    border-radius: 14px; box-shadow: var(--shadow); overflow: hidden; }
  .home-grid .ai-panel-head { padding: 14px 13px 0; margin-bottom: 14px; }
  .home-grid .ai-scroll { padding: 0 13px 12px; }
  .home-grid .ai-hero > div { padding-right: 104px; min-height: 0; }
  .home-grid .robot-art { right: 6px; top: 10px; width: 100px; height: 100px; }
  .home-grid .ai-panel .btn.secondary { height: 28px; min-height: 28px; font-size: 12px; font-weight: 600; color: var(--accent); border-radius: 8px; margin-top: 8px; }
  .home-grid .chat-docs a { padding: 8px 0; gap: 12px; }
  .home-grid .advice a { gap: 12px; padding: 5px 0; }
  .home-grid .advice .round-ic { width: 28px; height: 28px; background: none; }
  .home-grid .ai-quick { flex: 0 0 auto; margin: 0; box-shadow: var(--shadow); }
  .home-grid .ai-quick .quick-grid.four a { min-height: 72px; padding: 10px 2px; }
  .home-grid .ops-table td .pill, .home-grid .ops-table td .tag { height: 18px; line-height: 18px; padding: 0 7px; font-size: 10.5px; }
  .home-grid .ops-table td { height: 27px; }
  .home-grid .ops-table .row-ic { width: 20px; height: 20px; }
  .home-grid .todo li a { min-height: 22px; padding: 1px 0; }
  .home-grid .todo li + li { border-top: 0; }
  .home-grid .todo em { min-width: 16px; height: 16px; font-size: 10px; }
  .home-grid .todo .todo-box { width: 14px; height: 14px; border-radius: 3px; }
  .home-grid .home-main { gap: 13px; }
  .home-grid .h-all { color: var(--muted); }
}
@media (min-width: 1280px) {
  .home-grid .ai-panel .btn.secondary { display: flex; align-items: center; justify-content: center; padding: 0; line-height: 1; }
  .home-grid .objects-card { padding-bottom: 6px; }
  .home-grid .obj-body { padding: 8px 11px 8px; }
  .home-grid .obj-body small { margin-top: 1px; }
  .home-grid .obj-body dl { margin: 5px 0 0; }
  .home-grid .obj-body dl div { gap: 0; }
}

/* «Главная» на телефоне — точно по рендеру design/mobile/01 (замеры в точках раскладки 480) */
@media (max-width: 959px) {
  .brand-mobile { padding: 2px 0 12px; }
  .bm-logo { gap: 12px; }
  .bm-logo svg, .bm-logo img { width: 52px; height: 52px; }
  .bm-logo b { font-size: 22px; }
  .bm-logo small { font-size: 14px; margin-top: 2px; }
  .brand-mobile .avatar { width: 48px; height: 48px; font-size: 16px; }
  .brand-mobile .bm-icon .i { width: 24px; height: 24px; }
  .home-grid .page-head h1 { font-size: 30px; line-height: 1.15; }
  .home-grid .page-head p { font-size: 17px; line-height: 1.3; margin-top: 4px; }
  .m-tiles .ic-tile { width: 44px; height: 44px; border-radius: 13px; }
  .m-tiles .ic-tile .i { width: 24px; height: 24px; }
  .m-tiles a { font-size: 15.5px; }
  .m-tiles b { font-size: 22px; }
  .m-kpis .kpi .ic-tile { width: 40px; height: 40px; border-radius: 11px; }
  .m-kpis .kpi .ic-tile .i { width: 22px; height: 22px; }
  .m-kpis .kpi .kpi-label { font-size: 15px; }
  .m-kpis .kpi .kpi-value { font-size: 17.5px; }
  .m-kpis .kpi .kpi-sub { font-size: 15px; }
  .home-grid .m-acc .card-head { height: 26px; align-items: flex-start; margin-bottom: 0; }
  .home-grid .m-acc .card-head .sel-pill { position: relative; top: -4px; }
  .home-grid .m-acc .big-num { margin: 0 0 8px; }
  .home-grid .m-acc .bank-tiles b { font-size: 15px; }
  .home-grid .m-acc .bt-name { font-size: 13px; }
  .home-grid section.card.only-mob .ch-tick { font-size: 11.5px; }
  .home-grid section.card.only-mob .ch-label { font-size: 11.5px; }
}
@media (max-width: 959px) {
  .bm-logo svg, .bm-logo img { width: 60px; height: 60px; }
  .home-grid .page-head p { font-size: 18px; }
  .home-grid .card-head h2 { font-size: 17.5px; }
  .home-grid .big-num { font-size: 32px; margin: 0 0 4px; }
  .home-grid .m-acc .big-num { font-size: 27.5px; margin: 0 0 8px; }
  .m-tiles a { font-size: 13px; }
  .m-kpis .kpi .kpi-label { font-size: 13.3px; }
  .m-kpis .kpi .kpi-value { font-size: 19px; }
  .m-kpis .kpi .kpi-sub { font-size: 14.5px; }
}
@media (max-width: 959px) {
  .home-grid .page-head { margin-bottom: 0; }
  .home-grid .page-head p { line-height: 1.15; margin-top: 6px; }
  .m-tiles a { padding: 8px 4px 7px; gap: 3px; }
  .m-tiles .ic-tile { margin-bottom: 1px; }
  .home-grid .big-num { margin: 0; line-height: 1.2; }
  .m-flow-legend { margin-top: 0; }
  .m-kpis .kpi { padding: 8px 12px 9px; }
  .m-kpis .kpi .ic-tile { margin-bottom: 7px; }
  .m-kpis .kpi .kpi-label { line-height: 1.2; }
  .m-kpis .kpi .kpi-value { margin-top: 3px; line-height: 1.2; }
  .m-kpis .kpi .kpi-sub { margin-top: 4px; line-height: 1.2; }
  .home-grid .m-acc .card-head { height: 24px; }
  .home-grid .m-acc .big-num { margin: 0 0 6px; }
  .home-grid .m-acc { padding-bottom: 10px; }
}
/* нижнее меню на телефоне — высота и круглая «+» как на рендерах design/mobile */
@media (max-width: 959px) {
  :root { --nav-h: 58px; }
  .tabbar { padding-bottom: calc(env(safe-area-inset-bottom) * .55); height: calc(var(--nav-h) + env(safe-area-inset-bottom) * .55); }
  .tabbar a { min-height: 46px; gap: 3px; font-size: 13px; }
  .tabbar a .i { width: 26px; height: 26px; }
  .tabbar .tab-fab { width: 54px; height: 54px; margin-top: -16px; }
  .home-grid .m-acc { padding-bottom: 6px; }
}
@media (max-width: 959px) {
  .home-grid .page-head h1 { line-height: 1.05; }
  .home-grid .page-head p { margin-top: 3px; }
  .m-kpis .kpi { padding: 6px 12px 6px; }
  .m-kpis .kpi .ic-tile { margin-bottom: 6px; }
  .home-grid .m-acc { padding-bottom: 2px; }
  .home-grid .m-acc + section.card.only-mob { margin-top: -4px; }
}

/* «Финансы» — компьютер, точно по рендеру design/desktop/02 (замеры в точках экрана 1536×1024) */
@media (min-width: 1500px) {
  .fin { grid-template-columns: minmax(0, 1fr) 340px; gap: 17px; align-items: start; }
  .fin-main { gap: 12px; }
  .fin .page-head { margin-bottom: 6px; }
  .fin .page-head p { font-size: 12px; margin-top: 4px; line-height: 15px; }
  .fin .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .fin .kpi { height: 100px; padding: 17px 17px 0; border-radius: 14px; }
  .fin .kpi .kpi-label { font-size: 12.5px; padding-right: 36px; }
  .fin .kpi .kpi-value { margin-top: 8px; font-size: 20px; line-height: 24px; }
  .fin .kpi .kpi-sub { margin-top: 6px; font-size: 12px; gap: 12px; }
  .fin .kpi .ic-tile { top: 13px; right: 16px; width: 30px; height: 30px; border-radius: 9px; }
  .fin-cols { grid-template-columns: minmax(0, 563fr) minmax(0, 358fr); gap: 15px; }
  .fin-col { gap: 15px; }
  .fin .card { padding: 12px 14px; border-radius: 14px; }
  .fin .card-head { margin-bottom: 4px; gap: 8px; flex-wrap: nowrap; }
  .fin .card-head h2 { font-size: 13.5px; white-space: nowrap; }
  .fin .card-head > a { font-size: 11px; }
  .fin .top-legend { margin: 0 0 0 auto; gap: 12px; font-size: 10.5px; }
  .fin .top-legend i { width: 8px; height: 8px; }
  .fin .sel-pill { height: 24px; padding: 0 9px; font-size: 10.5px; border-radius: 8px; }
  .fin-col > section.card:first-child .chart { display: block; height: 176px; width: 100%; }
  .fin-col > section.card:first-child { height: 228px; overflow: hidden; }
  .fin-periods { gap: 10px; }
  .fin .card.period { height: 147px; padding: 12px 13px; }
  .fin .card.period h3, .fin .card.period .pc-title { font-size: 12.5px; margin: 0 0 12px; }
  .fin .pc-row { font-size: 10.5px; gap: 2px 8px; margin-bottom: 10px; }
  .fin .pc-row b { font-size: 13.5px; }
  .fin .pc-row .chg { font-size: 10.5px; }
  .fin #ops { padding-bottom: 8px; }
  .fin #ops .small-chips { gap: 4px; margin-left: 10px; flex: 1; }
  .fin #ops .small-chips .chip { height: 22px; padding: 0 10px; font-size: 10.5px; border: 0; background: none; color: var(--muted); }
  .fin #ops .small-chips .chip.on { background: var(--navy); color: #fff; }
  .fin .fin-ops th { font-size: 9.5px; padding-top: 6px; padding-bottom: 6px; }
  .fin .fin-ops td { font-size: 10.5px; height: 25px; padding-top: 2px; padding-bottom: 2px; }
  .fin .fin-ops .pill { height: 18px; padding: 0 7px; font-size: 9.5px; }
  .fin-cats { gap: 10px; }
  .fin-cats a { padding: 8px 10px; min-height: 61px; font-size: 9.5px; }
  .fin-cats .cat-ic { width: 26px; height: 26px; }
  .fin-cats b { font-size: 10.5px; }
  .fin-col:nth-child(2) > section.card:first-child { height: 228px; }
  .fin .fin-donut { grid-template-columns: 150px minmax(0, 1fr); gap: 20px; align-items: center; }
  .fin .fin-donut .donut, .fin .fin-donut .donut svg { width: 150px; height: 150px; }
  .fin .fin-donut .donut-center b { font-size: 15px; }
  .fin .fin-donut .donut-center small { font-size: 10.5px; }
  .fin .fin-legend { gap: 6px; }
  .fin .fin-legend span { font-size: 11px; }
  .fin .fin-legend b { font-size: 11.5px; }
  .fin .fin-legend small { font-size: 10.5px; }
  .fin .fin-big a, .fin .fin-reports a, .fin .fin-plan a, .fin .fin-notes a, .fin .fin-accounts a { gap: 12px; }
  .fin .fin-big li a { padding: 8px 0; }
  .fin .fin-big .round-ic { width: 30px; height: 30px; }
  .fin .fin-big .ev-txt b { font-size: 11px; }
  .fin .fin-big .ev-txt small { font-size: 10px; }
  .fin .fin-big .ev-sum { font-size: 11.5px; }
  .fin .fin-big .pill { height: 16px; padding: 0 6px; font-size: 9.5px; }
  .fin .fin-reports li a { padding: 6px 0; }
  .fin .fin-reports .file-ic { width: 28px; height: 28px; }
  .fin .fin-reports .ev-txt b { font-size: 10.5px; }
  .fin .fin-reports .ev-txt small { font-size: 9.5px; }
  .fin .fin-reports .file-kind { font-size: 9.5px; padding: 3px 8px; }
  .fin-side { gap: 15px; }
  .fin-side .card { padding: 14px; }
  .fin-side .card-head h2 { font-size: 15px; }
  .fin-side .card-head > a { font-size: 11.5px; }
  .fin .fin-accounts a { padding: 12px; min-height: 60px; }
  .fin .fin-accounts .bank-ic { width: 32px; height: 32px; }
  .fin .fin-accounts .ev-txt b { font-size: 12px; }
  .fin .fin-accounts .ev-txt small { font-size: 10.5px; }
  .fin .fin-accounts .acc-sum b { font-size: 13.5px; }
  .fin .fin-accounts .acc-sum small { font-size: 11px; }
  .fin .fin-plan li a { padding: 10px 0; }
  .fin .fin-plan .round-ic, .fin .fin-notes .round-ic { width: 26px; height: 26px; }
  .fin .fin-plan .ev-txt b, .fin .fin-notes .ev-txt b { font-size: 11.5px; }
  .fin .fin-plan .ev-txt small, .fin .fin-notes .ev-txt small { font-size: 10.5px; }
  .fin .fin-plan .ev-sum { font-size: 11px; }
  .fin .fin-notes li a { padding: 10px 0; }
}
@media (min-width: 1500px) {
  .fin .card-head .top-legend { flex-wrap: nowrap; white-space: nowrap; order: 2; margin-left: auto; }
  .fin .card-head .sel-drop { order: 3; }
  .fin-col > section.card:first-child .chart { height: 172px; }
  .fin #ops .card-head .small-chips { order: 2; }
  .fin #ops .card-head > a { order: 3; margin-left: auto; white-space: nowrap; }
}

/* «Финансы» — телефон, точно по рендеру design/mobile/02 (замеры в точках раскладки 480) */
@media (max-width: 959px) {
  .main:has(> .fin) { padding-top: 2px; }
  .fin .page-head p { font-size: 13.3px; margin-top: 2px; }
  .fin-main { gap: 10px; }
  .fin-tabs { gap: 6px; margin-top: 0; margin-bottom: 0; }
  .fin-tabs .chip { height: 33px; padding: 0 13px; font-size: 12px; font-weight: 600; }
  .month-pick > summary { height: 39px; padding: 0 14px; gap: 10px; font-size: 12.5px; font-weight: 700; border-radius: 12px; }
  .month-pick > summary .i:first-child { width: 17px; height: 17px; }
  .fin-mkpis { gap: 8px; }
  .mk { height: 81px; padding: 10px 12px; gap: 12px; border-radius: 14px; }
  .mk .ic-tile { width: 45px; height: 45px; border-radius: 12px; }
  .mk .ic-tile .i { width: 26px; height: 26px; }
  .mk small { font-size: 12px; font-weight: 500; }
  .mk b { font-size: 20px; letter-spacing: -.02em; margin: 1px 0 2px; }
  .mk .chg-line { font-size: 10.5px; }
  .fin > .fin-main > section.card.only-mob { padding: 12px 12px 10px; }
  .fin .only-mob .legend.center { margin-top: 2px; font-size: 11.5px; gap: 18px; }
}
@media (max-width: 959px) {
  .mk .chg-line { flex-wrap: nowrap; white-space: nowrap; font-size: 10px; }
  .mk .chg-line .muted, .mk .chg-line span:last-child { overflow: hidden; text-overflow: ellipsis; }
  .fin .page-head p { margin-top: -10px; }
  .fin .page-head { margin-bottom: 0; }
  .fin-mops a { padding: 6px 0; }
  .fin-mops .ic-tile { width: 34px; height: 34px; }
  .fin-mops .ev-txt b { font-size: 13.5px; }
  .fin-mops .ev-txt small { font-size: 12px; }
}

/* «Объекты» — компьютер, по рендеру design/desktop/03 (замеры 1536×1024) */
@media (min-width: 1280px) {
  .objs.with-panel { grid-template-columns: minmax(0, 1fr) 448px; gap: 14px; }
  .objs-main { gap: 12px; }
  .objs .page-head p { font-size: 12.5px; }
  .objs .obj-tabs .chip { height: 30px; padding: 0 12px; font-size: 12px; }
  .objs .kpis .kpi { height: 94px; padding: 14px 16px; }
  .obj-filters { gap: 8px; padding: 10px; }
  .obj-search { height: 34px; padding: 0 12px; }
  .obj-search input { font-size: 12px; }
  .obj-filters select, .obj-filters .btn-light { height: 31px; font-size: 11.5px; padding-top: 0; padding-bottom: 0; }
  .o-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .o-photo { height: 93px; }
  .o-body { gap: 3px; padding: 8px 11px 9px; }
  .o-name { font-size: 12.5px; }
  .o-addr { font-size: 10.5px; margin-top: -2px; }
  .o-specs { font-size: 10.5px; gap: 2px 10px; }
  .o-specs .i { width: 12px; height: 12px; }
  .o-price { font-size: 13px; }
  .o-bar .track { height: 5px; }
  .o-bar em { font-size: 10.5px; }
  .o-note, .o-date { font-size: 10px; gap: 5px; }
  .o-note .i, .o-date .i { width: 12px; height: 12px; }
  .o-card .pill { height: 18px; font-size: 9.5px; padding: 0 7px; }
  .o-menu summary { width: 24px; height: 24px; }
}

/* телефон, все разделы — шапка и вкладки как на рендерах design/mobile (замеры в точках раскладки 480) */
@media (max-width: 959px) {
  .main:not(:has(.brand-mobile)) { padding-top: 2px; }
  .page-head:has(.head-actions) p { margin-top: -10px; font-size: 13.3px; }
  .page-head:has(.head-actions) { margin-bottom: 0; }
  .obj-tabs { gap: 6px; }
  .obj-tabs .chip { height: 38px; padding: 0 14px; font-size: 12.5px; gap: 8px; }
  .obj-tabs .chip em { min-width: 20px; height: 20px; font-size: 11px; }
  /* «Объекты» (рендер 03): карточка дома — фото 122×120, цена справа сверху */
  .m-objs { gap: 6px; }
  .m-objs a { padding: 6px 10px 6px 6px; gap: 12px; border-radius: 14px; }
  .m-obj-photo { width: 122px; height: 120px; border-radius: 10px; }
  .m-obj-body { gap: 3px; }
  .m-obj-top b { font-size: 13px; }
  .m-obj-top .pill { height: 19px; font-size: 10.5px; }
  .m-obj-name { font-size: 14px; }
  .m-obj-addr { font-size: 11px; }
  .m-objs .o-specs { font-size: 11px; }
}
@media (max-width: 959px) {
  .m-obj-name { font-size: 15.5px; }
  .m-obj-top .pill { height: 21px; font-size: 11.5px; }
  .m-obj-addr, .m-objs .o-specs { font-size: 12px; }
}

/* компьютер, разделы 04–14 — общие размеры как на рендерах design/desktop (вкладки, фильтры, плитки, таблицы) */
@media (min-width: 1280px) {
  .main .obj-tabs .chip { height: 30px; padding: 0 12px; font-size: 12px; gap: 6px; }
  .main .obj-tabs .chip em { min-width: 20px; height: 18px; font-size: 10.5px; }
  .main .pur-filters { gap: 8px; }
  .main .pur-filters .obj-search, .main .pur-filters select, .main .pur-filters .btn-light { height: 32px; font-size: 12px; }
  .main .pur-filters .obj-search input { font-size: 12px; }
  .main .pur-kpis .kpi { padding: 16px 16px; }
  .main .pur-kpis .kpi .kpi-label { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .main .pur-kpis .kpi .kpi-value { font-size: 20px; }
  .main .pur-kpis .kpi .kpi-sub { font-size: 11.5px; }
  .main .pur .card-head h2, .main .sal .card-head h2, .main .wh .card-head h2 { font-size: 14.5px; }
  .main .pur-table th, .main .sal-table th, .main .wh-table th { font-size: 10.5px; }
  .main .pur-table td, .main .sal-table td, .main .wh-table td { font-size: 11.5px; height: 31px; }
  .main .pur-quick a { font-size: 10.5px; padding: 10px 2px; }
  .main .pur-quick .ic-tile { width: 40px; height: 40px; }
}

/* «Продажи» — компьютер, по рендеру design/desktop/05 */
@media (min-width: 1280px) {
  .sal.with-panel { grid-template-columns: minmax(0, 1fr) 340px !important; gap: 14px; }
  .sal-kpis .kpi { height: 93px; padding: 13px 14px; }
  .sal-kpis .kpi .kpi-label { font-size: 11.5px; min-height: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 40px; }
  .sal-kpis .kpi .kpi-value { margin-top: 10px; font-size: 19px; }
  .sal-kpis .kpi .ic-tile { width: 30px; height: 30px; top: 12px; right: 12px; }
  .sf-col { padding: 6px; gap: 6px; }
  .sf-head b { font-size: 11.5px; } .sf-head span { font-size: 12.5px; }
  .sf-card { padding: 8px; }
  .sf-body b { font-size: 11px; } .sf-body small { font-size: 10px; } .sf-body strong { font-size: 11.5px; }
  .sf-add { height: 28px; font-size: 11px; }
  .sal-panel { padding: 12px; gap: 10px; }
  .sal-phead h2 { font-size: 14.5px; }
  .sal-panel .op-photo { height: 170px; }
  .sal-price b { font-size: 18px; }
  .sal-panel .op-tabs a, .sal-panel .op-tabs span { font-size: 10.5px; }
  .sal-panel .ctr-props dt, .sal-panel .ctr-props dd { font-size: 11px; }
  .sc-head b { font-size: 12.5px; } .sc-head small { font-size: 11px; }
  .sc-head .sf-av.big { width: 38px; height: 38px; font-size: 13px; }
  .sc-head .round-ic { width: 26px; height: 26px; }
  .sal-history li, .sal-tasks li { font-size: 11px; }
  .sal-panel .op-block-head h3 { font-size: 13px; }
}
.round-ic.blue { background: #e0f2fe; color: #0284c7; }
.sal-write { display: flex; gap: 8px; align-items: center; }
.sal-write .btn-light { flex: 1; justify-content: center; height: 32px; font-size: 12px; }
.sal-more { position: relative; }
.sal-more .sel-menu { right: 0; top: 36px; min-width: 260px; }
.sal-more .sel-menu form { margin: 0; }
.sal-more .sel-menu button { width: 100%; text-align: left; }
.sal-more .sel-menu button.danger { color: var(--red); }
.sal-more .sal-note { padding: 6px; }
.op-block-head > a { margin-left: auto; font-size: 11px; color: var(--accent); display: inline-flex; align-items: center; gap: 4px; }
.sal-add { height: 26px; padding: 0 10px; font-size: 11px; margin-left: auto; }
@media (min-width: 1280px) {
  .main .sal-table-card .obj-tabs .chip, .main .wh-gtabs .chip { height: 28px; padding: 0 11px; font-size: 11.5px; }
  .main .sal-table td, .main .sal-table th { padding-top: 5px; padding-bottom: 5px; }
  .main .sal-table .sf-av.sm { width: 22px; height: 22px; font-size: 9.5px; }
  .main .sal-table .pill { height: 19px; font-size: 10px; }
  .main .sal-filters .obj-search, .main .sal-filters select { height: 30px; font-size: 11.5px; }
}
@media (min-width: 1280px) {
  .main .wh-table td, .main .wh-table th { padding-top: 3px; padding-bottom: 3px; }
  .main .wh-table td { height: 27px; }
  .main .wh-table .pur-thumb { width: 24px; height: 24px; border-radius: 6px; }
  .main .wh-table .pur-thumb .i { width: 14px; height: 14px; }
  .main .wh-table .pur-item b { font-size: 11px; } .main .wh-table .pur-item small { font-size: 9.5px; }
  .main .wh-table .tag { font-size: 10px; padding: 2px 7px; }
  .main .wh-table .pill { height: 18px; font-size: 9.5px; }
  .wh-low li a { padding: 6px 0; } .wh-recent li { padding: 6px 0; }
}

/* ---------- «Сотрудники» по рендеру 07 (компьютер и телефон, 2026-10-11) ---------- */
.emp { display: grid; gap: 12px; }
.emp .page-head { margin: 0; }
.emp .head-actions { align-items: center; gap: 10px; }
.btn-dark.split-like { display: inline-flex; align-items: center; gap: 8px; padding-right: 0; }
.btn-dark.split-like .split { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 100%; border-left: 1px solid rgba(255,255,255,.18); }
.emp-photo { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; border-radius: 50%;
  width: 40px; height: 40px; background: linear-gradient(135deg, #dfe6f5, #c9d4ec); color: var(--navy); font-weight: 800; }
.emp-photo img { width: 100%; height: 100%; object-fit: cover; }
.emp-photo i { font-style: normal; font-size: 13px; }
.emp-photo.sm { width: 24px; height: 24px; } .emp-photo.sm i { font-size: 9.5px; }
.emp-photo.big { width: 56px; height: 56px; } .emp-photo.big i { font-size: 18px; }
.emp-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.emp .card { padding: 12px 14px; }
.emp .card-head { gap: 10px; margin-bottom: 8px; }
.emp .card-head h2 { font-size: 14.5px; }
.emp .card-head > a { font-size: 11.5px; color: var(--muted); font-weight: 600; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.emp-tools { margin-left: auto; align-items: center; gap: 6px; }
.emp-tools .btn-light { height: 28px; padding: 0 10px; font-size: 11.5px; }
.emp-filters { grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); }
.emp-table { table-layout: fixed; }
.emp-table th, .emp-table td { padding: 5px 6px; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.emp-table th { font-size: 10.5px; }
.emp-table th:nth-child(1) { width: 24px; } .emp-table th:nth-child(2) { width: 24%; } .emp-table th:nth-child(3) { width: 14%; }
.emp-table th:nth-child(4) { width: 14%; } .emp-table th:nth-child(5) { width: 15%; } .emp-table th:nth-child(6) { width: 13%; }
.emp-table th:nth-child(7) { width: 8%; } .emp-table th:nth-child(8) { width: 13%; } .emp-table th:nth-child(9) { width: 30px; }
.emp-table td:last-child { overflow: visible; }
.emp-table tr.on td { background: var(--accent-soft); }
.emp-table .todo-box { width: 13px; height: 13px; border-radius: 3px; display: inline-block; }
.emp-table .pill { height: 19px; font-size: 10px; padding: 0 7px; }
.emp-table a { color: var(--text); }
.emp-name { display: flex; align-items: center; gap: 8px; min-width: 0; }
.emp-name b { font-size: 11.5px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
.emp-panel { display: grid; gap: 10px; align-content: start; }
.emp-phead { display: flex; align-items: flex-start; gap: 12px; }
.emp-phead > span:nth-child(2) { flex: 1; min-width: 0; }
.emp-phead b { display: block; font-size: 14px; font-weight: 800; }
.emp-phead small { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; }
.emp-tabs a em, .emp-tabs span em { font-style: normal; font-size: 10px; margin-left: 3px; color: var(--muted); }
.emp-props { margin: 0; display: grid; gap: 6px; }
.emp-props > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 8px; align-items: center; }
.emp-props dt { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.emp-props dd { margin: 0; font-size: 11.5px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.emp-props .round-ic { width: 20px; height: 20px; }
.emp-ptasks, .emp-pays { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.emp-ptasks li { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.emp-ptasks li > span:nth-child(2) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emp-ptasks .todo-box { width: 13px; height: 13px; border-radius: 3px; display: inline-block; flex-shrink: 0; }
.emp-ptasks em { font-style: normal; font-size: 10px; padding: 1px 7px; border-radius: 7px; background: var(--gray-soft); color: var(--muted); }
.emp-ptasks em.red { background: var(--red-soft); color: var(--red); }
.emp-pays li { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 8px; font-size: 11px; }
.emp-pays li span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.emp-org { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.emp-org a { display: flex; align-items: center; gap: 10px; padding: 6px 8px 6px calc(8px + var(--d, 0) * 26px); border-radius: 10px; color: var(--text); }
.emp-org a:hover { background: var(--gray-soft); }
.emp-org b { display: block; font-size: 12.5px; } .emp-org small { display: block; font-size: 11px; color: var(--muted); }
.emp-bottom { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.emp-bottom .card { min-height: 190px; }
.emp-bottom .chart { display: block; height: 130px; width: 100%; }
.emp-bottom .sel-pill { height: 24px; padding: 0 9px; font-size: 10.5px; margin-left: auto; }
.emp-donut { grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: center; }
.emp-donut .donut, .emp-donut .donut svg { width: 120px; height: 120px; }
.emp-events li { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
.emp-events .pn-day { font-size: 11px; min-width: 40px; }
.emp-events .ev-txt b { font-size: 11px; } .emp-events .ev-txt small { font-size: 10px; }
.emp-events .pill { height: 18px; font-size: 9.5px; }
.kpi-bar { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.kpi-bar > span { flex: 1; height: 5px; border-radius: 3px; background: var(--gray-soft); overflow: hidden; }
.kpi-bar i { display: block; height: 100%; border-radius: 3px; background: #3b82f6; }
.kpi-bar.green i { background: #22c55e; } .kpi-bar.red i { background: #ef4444; }
.kpi-bar b { font-size: 11px; }
@media (min-width: 960px) {
  .emp-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)) 92px; gap: 10px; }
  .emp-kpis .kpi { height: 88px; padding: 13px 14px; }
  .emp-kpis .kpi .kpi-label { font-size: 11px; padding-right: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .emp-kpis .kpi .kpi-value { font-size: 19px; margin-top: 4px; }
  .emp-kpis .kpi .kpi-sub { font-size: 10.5px; margin-top: 4px; }
  .emp-kpis .kpi .ic-tile { width: 30px; height: 30px; top: 12px; right: 12px; }
  .emp-kpi-mini { display: flex !important; align-items: flex-start; justify-content: space-between; padding: 12px 8px !important; }
  .emp-kpi-mini .pill { height: 20px; font-size: 10px; }
}
@media (min-width: 1280px) {
  .emp-grid { grid-template-columns: minmax(0, 1fr) 348px; align-items: start; }
}
@media (max-width: 959px) {
  .emp .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .emp .page-head > div:first-child { display: contents; }
  .emp .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .emp-table-card { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
  .emp-table-card .card-head { display: none; }
  .emp-panel { display: none; }
  .emp.picked .emp-panel { display: grid; }
  .emp.picked .emp-table-card, .emp.picked .emp-mkpis, .emp.picked .obj-tabs, .emp.picked .page-head { display: none; }
  .emp-mkpis > div { gap: 2px; }
  .emp-mkpis .pill { height: 20px; font-size: 11px; padding: 0 8px; }
  .emp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
  .emp-list a { display: flex; align-items: center; gap: 12px; padding: 10px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; color: var(--text); }
  .emp-list .emp-photo { width: 62px; height: 62px; border-radius: 10px; }
  .emp-list .pur-body b { font-size: 13.5px; }
  .emp-list .pur-body small { font-size: 12px; }
  .emp-list .pur-tags em { font-size: 11px; }
  .emp-list .pur-end { max-width: 44%; justify-items: start; text-align: left; }
  .emp-list .pur-end b { font-size: 13.5px; }
  .emp-list .pur-end small { font-size: 11px; }
  .emp-tasks { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
  .emp-list a > .i:last-child { flex-shrink: 0; color: var(--faint); }
}
@media (min-width: 960px) {
  .emp-kpis .kpi:not(.emp-kpi-mini) { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; align-content: center; }
  .emp-kpis .kpi:not(.emp-kpi-mini) .ic-tile { position: static; grid-row: 1 / span 3; width: 40px; height: 40px; border-radius: 11px; align-self: center; }
  .emp-kpis .kpi .kpi-label { padding-right: 0; }
  .emp-kpis .kpi .kpi-bar { grid-column: 2; margin-top: 6px; }
}
@media (max-width: 959px) {
  .emp-mkpis > div { padding: 10px 2px; }
  .emp-mkpis small { font-size: 11px; white-space: nowrap; }
  .emp-mkpis .ic-tile { width: 36px; height: 36px; }
  .emp-mkpis b { font-size: 17px; }
  .emp-list a { padding: 8px 10px; }
  .emp-list .pur-tags { flex-wrap: nowrap; overflow: hidden; }
  .emp-list .pur-tags em { white-space: nowrap; }
  .emp-list .pur-body { gap: 1px; }
}
/* «ИИ-центр» — компьютер, по рендеру design/desktop/08: колонки 327 / 580 / 348, плотный список */
@media (min-width: 1500px) {
  .aic-grid { grid-template-columns: 327px minmax(0, 1fr) 348px; gap: 12px; }
  .aic-list li a { padding: 6px 8px; gap: 10px; }
  .aic-list li a b, .aic-list .ev-txt b { font-size: 11.5px; }
  .aic-list li a small, .aic-list .ev-txt small { font-size: 10.5px; }
  .aic .obj-tabs .chip { height: 26px; font-size: 11px; padding: 0 10px; }
}

/* ---------- «Задачи» по рендеру 09 (компьютер и телефон, 2026-10-11) ---------- */
.tsk { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; }
.tsk-main { display: grid; gap: 12px; min-width: 0; align-content: start; }
.tsk .page-head { margin: 0; }
.tsk .card { padding: 12px 14px; }
.tsk .card-head { gap: 10px; margin-bottom: 8px; }
.tsk .card-head h2 { font-size: 14.5px; }
.tsk .card-head > a { font-size: 11px; color: var(--accent); font-weight: 600; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.tag.t-red { background: var(--red-soft); color: var(--red); } .tag.t-amber { background: var(--amber-soft); color: #c2700a; }
.tag.t-green { background: var(--green-soft); color: #15803d; } .tag.t-violet { background: var(--violet-soft); color: var(--violet); }
.tag.t-blue { background: var(--accent-soft); color: var(--accent); } .tag.t-gray { background: var(--gray-soft); color: var(--muted); }
.tsk-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.tsk-kpis .kpi { position: relative; }
.tsk-pct { font-weight: 700; } .tsk-pct.blue { color: var(--accent); } .tsk-pct.red { color: var(--red); }
.tsk-pct.green { color: var(--green); } .tsk-pct.violet { color: var(--violet); }
.tsk-ring { position: absolute; right: 14px; bottom: 16px; width: 40px; height: 40px; border-radius: 50%;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), #eef1f6 0); }
.tsk-ring::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--card); }
.tsk-bar { align-items: center; gap: 8px; }
.tsk-bar .obj-tabs { flex: 1; }
.tsk-bar .btn-light { height: 30px; padding: 0 12px; font-size: 11.5px; }
.tsk-kanban { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; align-items: start; }
.tsk-col { display: grid; gap: 8px; padding: 8px; border-radius: 14px; background: #f3f5f9; align-content: start; min-width: 0; }
.tc-work { background: #eef3ff; } .tc-review { background: #f6f3ff; } .tc-done { background: #f1f8f4; }
.tsk-col-head { display: flex; align-items: center; gap: 8px; padding: 4px 4px 2px; }
.tsk-col-head b { font-size: 13px; font-weight: 800; }
.tsk-col-head em { font-style: normal; font-size: 10.5px; padding: 1px 7px; border-radius: 7px; background: var(--card); color: var(--muted); }
.tsk-col-head a { margin-left: auto; color: var(--muted); display: inline-flex; }
.tsk-card { position: relative; display: flex; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--text); min-width: 0; }
.tsk-card.on { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.tsk-card-body { display: grid; gap: 5px; min-width: 0; flex: 1; }
.tsk-card-body > b { font-size: 11.5px; font-weight: 700; padding-right: 14px; }
.tsk-card-body > small { font-size: 10.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tsk-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.tsk-tags .tag { font-size: 9.5px; padding: 2px 7px; }
.tsk-who { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 10.5px; }
.tsk-who > span:not(.emp-photo) { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tsk-who em { font-style: normal; font-size: 9.5px; padding: 1px 6px; border-radius: 6px; background: var(--amber-soft); color: #c2700a; }
.tsk-who em.red { background: var(--red-soft); color: var(--red); }
.tsk-who i { font-style: normal; display: inline-flex; align-items: center; gap: 2px; color: var(--muted); font-size: 10px; }
.tsk-who small { color: var(--muted); font-size: 10px; }
.tsk-dots { position: absolute; right: 6px; top: 8px; color: var(--muted); }
.tsk-done { flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--green); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.tsk-empty { margin: 4px; font-size: 11px; color: var(--faint); }
.tsk-more { font-size: 11px; color: var(--accent); font-weight: 600; padding: 0 4px; }
.tsk-bottom { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tsk-my, .tsk-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.tsk-my a { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--text); padding: 2px 0; }
.tsk-my a > span:nth-child(2) { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tsk-my .todo-box { width: 13px; height: 13px; border-radius: 3px; display: inline-block; flex-shrink: 0; }
.tsk-my em { font-style: normal; font-size: 9.5px; color: var(--muted); padding: 1px 6px; border-radius: 6px; background: var(--gray-soft); }
.tsk-my em.red { color: var(--red); background: var(--red-soft); }
.tsk-my i { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.dot-red { background: var(--red); } .dot-amber { background: var(--amber); } .dot-green { background: var(--green); }
.tsk-bars a { display: grid; grid-template-columns: 22px minmax(0, 1fr) 100px 18px; gap: 8px; align-items: center; font-size: 11px; color: var(--text); padding: 2px 0; }
.tsk-bars a > span:nth-child(2) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tsk-bars .round-ic { width: 20px; height: 20px; }
.tsk-bars i { height: 6px; border-radius: 3px; background: var(--gray-soft); overflow: hidden; }
.tsk-bars i b { display: block; height: 100%; background: #3b82f6; border-radius: 3px; }
.tsk-bars em { font-style: normal; text-align: right; font-weight: 700; }
.tsk-panel { display: grid; gap: 10px; align-content: start; }
.tsk-phead { display: flex; align-items: center; gap: 8px; }
.tsk-phead h2 { flex: 1; margin: 0; font-size: 17px; font-weight: 800; }
.tsk-phead .muted { font-size: 11.5px; }
.tsk-pills { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.tsk-pills .pill, .tsk-pills .tag { height: 20px; font-size: 10.5px; }
.tsk-status { margin-left: auto; position: relative; }
.tsk-status summary { list-style: none; cursor: pointer; }
.tsk-status .sel-menu { right: 0; top: 26px; min-width: 160px; }
.tsk-status .sel-menu form { margin: 0; } .tsk-status .sel-menu button { width: 100%; text-align: left; }
.tsk-props { margin: 0; display: grid; gap: 8px; }
.tsk-props > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 8px; align-items: center; }
.tsk-props dt { display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--muted); }
.tsk-props dd { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 11.5px; }
.tsk-props dd.neg { color: var(--red); }
.tsk-props .pill { height: 18px; font-size: 10px; }
.tsk-descr { margin: -4px 0 4px; font-size: 11px; color: var(--muted); line-height: 1.45; }
.tsk-steps-head { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.tsk-progress { height: 6px; border-radius: 3px; background: var(--gray-soft); overflow: hidden; }
.tsk-progress span { display: block; height: 100%; background: #3b82f6; border-radius: 3px; }
.tsk-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tsk-steps li { display: flex; align-items: center; gap: 10px; font-size: 11.5px; }
.tsk-steps li > span:not(.emp-photo) { flex: 1; min-width: 0; }
.tsk-steps form { margin: 0; }
.tsk-steps .todo-box { width: 18px; height: 18px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; background: var(--card); }
.tsk-steps .todo-box.on { background: #3b82f6; border-color: #3b82f6; color: #fff; }
.tsk-steps em { font-style: normal; font-size: 10.5px; color: var(--muted); }
.tsk-step-add { display: flex; gap: 6px; margin: 0; }
.tsk-step-add input, .tsk-comment input { flex: 1; min-width: 0; height: 34px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 12px; }
.tsk-step-add .btn-light { height: 34px; padding: 0 10px; }
.tsk-tabs span em { font-style: normal; font-size: 10px; margin-left: 3px; padding: 0 5px; border-radius: 6px; background: var(--gray-soft); }
.tsk-comments { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tsk-comments li { display: grid; grid-template-columns: auto auto 1fr; gap: 2px 8px; font-size: 11.5px; }
.tsk-comments li span { grid-column: 1 / -1; color: var(--text); }
.tsk-comments small { color: var(--muted); font-size: 10.5px; }
.tsk-comment { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; padding-top: 10px; border-top: 1px solid var(--line); }
.tsk-comment .avatar { width: 34px; height: 34px; font-size: 12px; }
.tsk-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tsk-list a { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 12px; color: var(--text); }
.tsk-list li + li { border-top: 1px solid var(--line); }
.tsk-list li.on a { background: var(--accent-soft); }
.tsk-thumb { flex-shrink: 0; width: 72px; height: 72px; border-radius: 10px; overflow: hidden; background: var(--gray-soft); color: var(--muted);
  display: inline-flex; align-items: center; justify-content: center; }
.tsk-thumb img, .tsk-thumb .house-art { width: 100%; height: 100%; object-fit: cover; display: block; }
.tsk-list .pur-body b { font-size: 13.5px; white-space: normal; }
.tsk-desc { white-space: normal !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.tsk-list .pur-end { max-width: 34%; justify-items: start; text-align: left; gap: 6px; }
.tsk-list .pur-end small { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; }
@media (min-width: 1280px) {
  .tsk { grid-template-columns: minmax(0, 1fr) 356px; }
  .tsk-kpis .kpi { height: 90px; padding: 14px 16px; display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; align-content: center; }
  .tsk-kpis .kpi .ic-tile { position: static; grid-row: 1 / span 3; width: 40px; height: 40px; border-radius: 11px; align-self: center; }
  .tsk-kpis .kpi .kpi-label { font-size: 11px; padding-right: 0; white-space: nowrap; }
  .tsk-kpis .kpi .kpi-value { font-size: 20px; margin-top: 2px; }
  .tsk-kpis .kpi .kpi-sub { font-size: 11px; margin-top: 2px; }
  .tsk-panel { position: sticky; top: 72px; max-height: calc(100vh - 86px); overflow-y: auto; scrollbar-width: thin; }
}
@media (max-width: 959px) {
  .tsk .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .tsk .page-head > div:first-child { display: contents; }
  .tsk .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .tsk-mkpis > div { padding: 10px 2px; gap: 2px; }
  .tsk-mkpis .pill { height: 20px; font-size: 11px; padding: 0 8px; }
  .tsk-filters { grid-template-columns: minmax(0, 1fr) auto auto; }
  .tsk-filters select { display: block; width: auto; }
  .tsk-list-card { padding: 4px 8px !important; }
  .tsk-panel { display: none; }
  .tsk.picked .tsk-panel { display: grid; }
  .tsk.picked .tsk-main { display: none; }
}
@media (min-width: 960px) {
  .tsk-filters { display: none; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); }
  .tsk-filters:target, .tsk-filters.open { display: grid; }
  .tsk-filters select { display: block; }
}

/* ---------- «Документы» по рендеру 10 (компьютер и телефон, 2026-10-11) ---------- */
.dcs { display: grid; gap: 12px; }
.dcs .page-head { margin: 0; }
.dcs .head-actions { align-items: center; gap: 10px; }
.dcs .card { padding: 12px 14px; }
.dcs .card-head { gap: 6px; margin-bottom: 8px; }
.dcs .card-head h2 { font-size: 15px; margin-right: auto; }
.dcs-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.dcs-kpis { grid-template-columns: 1.5fr repeat(6, minmax(0, 1fr)); gap: 10px; }
.dcs-kpis .kpi { color: var(--text); }
.dcs-folders ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.dcs-folders a { display: flex; align-items: center; gap: 12px; padding: 7px 10px; border-radius: 10px; color: var(--text); font-size: 12.5px; }
.dcs-folders a:hover { background: var(--gray-soft); }
.dcs-folders li.on a { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.dcs-folders a > span:nth-child(2) { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dcs-folders em { font-style: normal; font-size: 11px; color: var(--muted); }
.dcs-folders .fold { display: inline-flex; color: #f59e0b; } .dcs-folders .fold.f-v { color: #8b5cf6; }
.dcs-folders li.trash { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line); }
.dcs-tools { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.dcs-tools .btn-light { height: 30px; padding: 0 10px; font-size: 11.5px; }
.dcs-tools .icon-btn.on { background: var(--accent-soft); color: var(--accent); }
.dcs-filters { grid-template-columns: minmax(0, 2.2fr) repeat(5, minmax(0, 1fr)) auto; }
.dcs-table { table-layout: fixed; }
.dcs-table th, .dcs-table td { padding: 8px 6px; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dcs-table th { font-size: 10.5px; }
.dcs-table th:nth-child(1) { width: 26px; } .dcs-table th:nth-child(2) { width: 38%; } .dcs-table th:nth-child(3) { width: 13%; }
.dcs-table th:nth-child(4) { width: 22%; } .dcs-table th:nth-child(5) { width: 13%; } .dcs-table th:nth-child(6) { width: 9%; }
.dcs-table th:nth-child(7) { width: 30px; }
.dcs-table tr.on td { background: var(--accent-soft); }
.dcs-table .todo-box { width: 13px; height: 13px; border-radius: 3px; display: inline-block; }
.dcs-name { display: flex; align-items: center; gap: 10px; color: var(--text); min-width: 0; }
.dcs-name > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.ftype { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 22px; height: 26px; border-radius: 4px;
  background: #e5484d; color: #fff; font-size: 7px; font-weight: 800; letter-spacing: -.02em; }
.ftype.big { width: 34px; height: 40px; font-size: 10px; border-radius: 6px; }
.ft-jpg, .ft-jpeg, .ft-png, .ft-webp, .ft-heic { background: #f59e0b; }
.ft-xls, .ft-xlsx, .ft-csv { background: #22a052; } .ft-doc, .ft-docx { background: #3b82f6; }
.ft-dwg, .ft-zip, .ft-txt, .ft-x { background: #64748b; }
.dcs-view { display: grid; gap: 10px; align-content: start; }
.dcs-vhead { display: flex; align-items: center; gap: 10px; }
.dcs-vhead > span:nth-child(2) { flex: 1; min-width: 0; }
.dcs-vhead b { display: block; font-size: 14px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcs-vhead small { font-size: 11px; color: var(--muted); }
.dcs-vhead .btn-dark { height: 32px; padding: 0 14px; font-size: 12px; }
.dcs-vhead .o-menu { position: relative; }
.dcs-vhead .sel-menu { right: 0; top: 36px; min-width: 160px; }
.dcs-vhead .sel-menu form { margin: 0; } .dcs-vhead .sel-menu button { width: 100%; text-align: left; }
.dcs-preview { height: 300px; border-radius: 12px; background: #eef1f6; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.dcs-preview iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.dcs-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
.dcs-props .tag { font-size: 10px; padding: 2px 8px; }
@media (min-width: 1280px) {
  .dcs-grid { grid-template-columns: 240px minmax(0, 1fr) 470px; }
  .dcs-kpis .kpi { height: 88px; padding: 14px 16px; display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; align-content: center; }
  .dcs-kpis .kpi .ic-tile { position: static; grid-row: 1 / span 3; width: 40px; height: 40px; border-radius: 11px; align-self: center; }
  .dcs-kpis .kpi .kpi-label { font-size: 11.5px; padding-right: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .dcs-kpis .kpi .kpi-value { font-size: 20px; margin-top: 2px; }
  .dcs-kpis .kpi .kpi-sub { font-size: 11px; margin-top: 2px; }
  .dcs-view { position: sticky; top: 72px; }
}
@media (min-width: 960px) and (max-width: 1279px) {
  .dcs-grid { grid-template-columns: 220px minmax(0, 1fr); }
  .dcs-view { grid-column: 1 / -1; }
}
@media (max-width: 959px) {
  .dcs .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .dcs .page-head > div:first-child { display: contents; }
  .dcs .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .dcs-mkpis { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .dcs-mkpis > div { padding: 10px 2px; gap: 2px; }
  .dcs-mkpis small { font-size: 11px; white-space: nowrap; }
  .dcs-mkpis .pill { height: 18px; font-size: 10.5px; padding: 0 6px; }
  .dcs-list { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
  .dcs-mfolders { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin: 4px 0 10px; }
  .dcs-mfolders a { display: grid; justify-items: center; gap: 2px; padding: 8px 2px; border-radius: 12px; background: var(--card); border: 1px solid var(--line);
    font-size: 10.5px; text-align: center; color: var(--text); min-width: 0; }
  .dcs-mfolders a > span { width: 32px; height: 32px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: var(--accent-soft); color: var(--accent); }
  .dcs-mfolders a > span.cb { background: var(--green-soft); color: var(--green); }
  .dcs-mfolders a b { font-size: 12.5px; }
  .dcs-mfolders a.on { background: var(--navy); color: #fff; border-color: var(--navy); }
  .dcs-mfolders a.on > span { background: rgba(255,255,255,.12); color: #fff; }
  .dcs-mhead { margin: 8px 0 6px; }
  .dcs-mhead > a { font-size: 13px; color: var(--accent); display: inline-flex; align-items: center; gap: 4px; }
  .dcs-recent { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px 4px; }
  .dcs-recent a { flex: 0 0 120px; display: grid; gap: 4px; color: var(--text); }
  .dcs-prev { height: 100px; border-radius: 10px; background: var(--card); border: 1px solid var(--line); overflow: hidden; display: flex; align-items: center; justify-content: center; }
  .dcs-prev img { width: 100%; height: 100%; object-fit: cover; }
  .dcs-recent .pill { height: 20px; font-size: 10.5px; justify-self: start; }
  .dcs-recent b { font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dcs-recent small { font-size: 10.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dcs-byobj { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
  .dcs-byobj a { display: flex; align-items: center; gap: 10px; padding: 6px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); color: var(--text); }
  .dcs-byobj .m-obj-photo { width: 84px; height: 64px; }
  .dcs-stack { display: flex; gap: 3px; align-items: center; }
  .dcs-stack em { font-style: normal; font-size: 11px; padding: 2px 6px; border-radius: 6px; background: var(--gray-soft); }
  .dcs-view { display: none; }
  .dcs.picked .dcs-view { display: grid; }
  .dcs.picked .dcs-list, .dcs.picked .dcs-mkpis, .dcs.picked .page-head { display: none; }
}
@media (min-width: 1280px) {
  .dcs-grid { grid-template-columns: 232px minmax(0, 1fr) 440px; }
  .dcs .head-actions .btn-dark, .dcs .head-actions summary.btn-dark { height: 36px; font-size: 12.5px; }
  .dcs-list .obj-tabs { gap: 2px; flex-wrap: nowrap; overflow: hidden; }
  .main .dcs-list .obj-tabs .chip { height: 26px; padding: 0 9px; font-size: 11px; }
  .dcs-filters { display: flex !important; flex-wrap: wrap; gap: 6px; }
  .dcs-filters .obj-search { flex: 1 1 200px; }
  .dcs-filters select { flex: 0 0 auto; width: auto; max-width: 130px; }
  .dcs-vhead { flex-wrap: wrap; }
  .dcs-vhead > span:nth-child(2) { flex-basis: 150px; }
  .dcs-folders a { padding: 6px 8px; font-size: 12px; gap: 10px; }
}
/* «Отчёты» — компьютер, по рендеру design/desktop/11 */
.top-period { position: relative; list-style: none; }
.top-period > summary { display: inline-flex; align-items: center; gap: 9px; list-style: none; cursor: pointer; }
.top-period > summary::-webkit-details-marker { display: none; }
.top-period .sel-menu { right: 0; top: 42px; min-width: 180px; }
.top-export { margin-left: 18px; height: 37px; padding: 0 0 0 14px; gap: 9px; font-size: 13px; border-radius: 10px; display: inline-flex; align-items: center; }
.top-export .split { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 37px; margin-left: 10px; border-left: 1px solid rgba(255,255,255,.18); }
.rep-filter { margin-left: auto; position: relative; }
.rep-filter > summary { list-style: none; cursor: pointer; height: 30px; padding: 0 12px; font-size: 12px; display: inline-flex; align-items: center; gap: 6px; }
.rep-filter > summary::-webkit-details-marker { display: none; }
.rep-filter .sel-menu { right: 0; top: 36px; min-width: 200px; }
@media (min-width: 1280px) {
  .rep { gap: 12px; }
  .rep .obj-tabs { flex: 1; align-items: center; }
  .main .rep .obj-tabs .chip { height: 28px; padding: 0 11px; font-size: 11px; }
  .rep-kpis .kpi { height: 77px; padding: 10px 14px; }
  .rep-kpis .kpi .ic-tile { width: 40px; height: 40px; }
  .rep-kpis .kpi .kpi-label { font-size: 11px; }
  .rep-kpis .kpi .kpi-value { font-size: 18px; }
  .rep-kpis .kpi .kpi-sub { font-size: 10.5px; }
  .rep .card { padding: 12px 14px; }
  .rep .card-head h2 { font-size: 13.5px; }
  .rep .card-head > a { font-size: 11px; }
  .rep .chart { max-height: 170px; }
  .rep .dtable th { font-size: 10px; } .rep .dtable td { font-size: 11px; padding-top: 4px; padding-bottom: 4px; }
}
/* «Контрагенты» — компьютер, по рендеру design/desktop/12 */
@media (min-width: 1280px) {
  .ctr .kpis .kpi .kpi-label { font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ctr .kpis .kpi { height: 78px; }
  .ctr .dtable td { font-size: 11px; padding-top: 4px; padding-bottom: 4px; height: 34px; }
  .ctr .dtable th { font-size: 10px; }
  .ctr .dtable .pill, .ctr .dtable .tag { height: 18px; font-size: 9.5px; }
  .ctr .dtable .bank-ic, .ctr .dtable .ctr-av { width: 22px; height: 22px; font-size: 10px; }
}
@media (min-width: 1280px) {
  .ctr.with-panel { grid-template-columns: minmax(0, 1fr) 360px !important; }
  .ctr .kpi .kpi-label { font-size: 10.5px !important; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; }
  .ctr .kpi .kpi-value { font-size: 18px; }
  .ctr .card-head h2 { font-size: 13.5px; }
  .ctr .fin-donut { grid-template-columns: 120px minmax(0, 1fr); }
  .ctr .fin-donut .donut, .ctr .fin-donut .donut svg { width: 120px; height: 120px; }
  .ctr .aic-types span { font-size: 10.5px; }
}
/* «Справочники» — компьютер, по рендеру design/desktop/13 */
@media (min-width: 1280px) {
  .refs .dtable td { font-size: 11px; padding-top: 3px; padding-bottom: 3px; height: 32px; }
  .refs .dtable th { font-size: 10px; }
  .refs .dtable .pur-thumb { width: 24px; height: 24px; border-radius: 6px; }
  .refs .dtable .pill { height: 18px; font-size: 9.5px; }
  .refs .op-photo { height: 120px; }
  .refs .card-head h2 { font-size: 13.5px; }
  .refs .ref-tiles .kpi-label, .refs .ref-tiles b { white-space: nowrap; }
}

/* ---------- «Настройки» по рендеру 14 (компьютер и телефон, 2026-10-11) ---------- */
.stg { display: grid; gap: 12px; }
.stg .page-head { margin: 0; }
.stg .card { padding: 14px 16px; }
.stg .card-head { gap: 10px; margin-bottom: 10px; }
.stg .card-head h2 { font-size: 15px; margin-right: auto; }
.stg .card-head > a { font-size: 11.5px; color: var(--accent); font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.stg-btn { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 8px; background: var(--accent-soft);
  color: var(--accent); font-size: 11px; font-weight: 600; white-space: nowrap; }
.stg-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.stg-tabs a { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; height: 38px; padding: 0 16px; border-radius: 10px;
  background: var(--card); border: 1px solid var(--line); color: var(--text); font-size: 12px; font-weight: 500; }
.stg-tabs a.on, .stg-tabs a:first-child { background: var(--navy); color: #fff; border-color: var(--navy); }
.stg-tabs a.on ~ a:first-child { background: var(--card); color: var(--text); }
.stg-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.stg-brand { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }
.stg-brand b { display: block; font-size: 15px; font-weight: 800; } .stg-brand small { display: block; font-size: 11.5px; color: var(--muted); }
.stg-props { margin: 0; display: grid; gap: 8px; }
.stg-props > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 8px; font-size: 11.5px; align-items: center; }
.stg-props > div.two { grid-template-columns: 160px minmax(0, 1fr); }
.stg-props > div.two dt:nth-of-type(2), .stg-props > div.two dd:nth-of-type(2) { margin-top: 2px; }
.stg-props dt { color: var(--muted); } .stg-props dd { margin: 0; display: flex; align-items: center; gap: 8px; }
.stg-users-bar { display: flex; gap: 8px; margin-bottom: 8px; }
.stg-users-bar .btn-dark { height: 32px; padding: 0 12px; font-size: 12px; }
.stg-users-bar .obj-search { flex: 1; height: 32px; }
.stg-users-bar .obj-search input { font-size: 11.5px; }
.stg-ulist, .stg-rlist, .stg-ilist, .stg-tlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.stg-ulist li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto auto 26px; gap: 8px; align-items: center; font-size: 11.5px; }
.stg-ulist b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stg-ulist .tag, .stg-ulist .pill { font-size: 9.5px; height: 18px; padding: 0 7px; display: inline-flex; align-items: center; }
.stg-rlist li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.stg-rlist .ic-tile, .stg-tlist .ic-tile { width: 32px; height: 32px; border-radius: 9px; }
.stg-rlist b, .stg-tlist b { display: block; font-size: 12px; font-weight: 600; color: var(--text); }
.stg-rlist small, .stg-tlist small { display: block; font-size: 10.5px; color: var(--muted); }
.stg-rlist em, .stg-tlist em { font-style: normal; font-size: 11px; color: var(--muted); white-space: nowrap; }
.stg-ilist li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; }
.bank-ic.big { width: 32px; height: 32px; border-radius: 9px; font-size: 14px; }
.bank-ic.b-max { background: #4f46e5; }
.stg-ilist b { display: block; font-size: 12px; font-weight: 600; } .stg-ilist small { display: block; font-size: 10.5px; color: var(--muted); }
.stg-ilist .pill { height: 18px; font-size: 9.5px; }
.stg-tlist li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.stg-tlist a { color: var(--text); }
.switch { position: relative; display: inline-block; width: 36px; height: 20px; border-radius: 10px; background: #d7dce5; flex-shrink: 0; }
.switch::after { content: ''; position: absolute; left: 2px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.switch.on { background: #3b6ff5; } .switch.on::after { left: 18px; }
.stg-wide { display: flex; align-items: center; justify-content: center; gap: 8px; height: 34px; margin-top: 8px; border-radius: 10px;
  background: var(--accent-soft); color: var(--navy); font-size: 12px; font-weight: 600; }
.stg-note { margin: 0; }
.top-save { padding: 0 14px !important; }
@media (min-width: 1280px) {
  .stg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
}
@media (max-width: 959px) {
  .stg .page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
  .stg .page-head > div:first-child { display: contents; }
  .stg .page-head p { grid-column: 1 / -1; grid-row: 2; }
  .stg-tabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; overflow: visible; }
  .stg-tabs a { height: auto; flex-direction: column; gap: 4px; padding: 10px 2px; font-size: 10.5px; text-align: center; justify-content: center; }
  .stg-tabs a:nth-child(n+7) { display: none; }
  .stg-users .card-head, .stg-users-bar, .stg-ulist { display: none; }
  .stg-mpeople { display: flex !important; gap: 10px; overflow-x: auto; scrollbar-width: none; }
  .stg-mpeople > * { flex: 0 0 64px; display: grid; justify-items: center; gap: 2px; text-align: center; font-size: 11px; color: var(--text); }
  .stg-mpeople i { position: relative; width: 50px; height: 50px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #dfe6f5, #c9d4ec); font-style: normal; font-weight: 800; color: var(--navy); }
  .stg-mpeople i.on::after { content: ''; position: absolute; right: 1px; bottom: 1px; width: 11px; height: 11px; border-radius: 50%; background: var(--green); border: 2px solid #fff; }
  .stg-mpeople b { font-size: 11.5px; font-weight: 600; } .stg-mpeople small { font-size: 10px; color: var(--muted); }
  .stg-mpeople .add span { width: 50px; height: 50px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: inline-flex; align-items: center; justify-content: center; }
  .stg-ilist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stg-ilist li { grid-template-columns: 40px minmax(0, 1fr); padding: 10px; border: 1px solid var(--line); border-radius: 12px; }
  .stg-ilist .stg-btn { display: none; }
  .stg-ilist .pill { grid-column: 2; justify-self: start; }
}
@media (max-width: 959px) {
  .home-grid .m-acc .bank-tiles a { padding: 7px 5px; gap: 5px 3px; }
  .home-grid .m-acc .bank-ic { width: 20px; height: 20px; font-size: 10px; border-radius: 6px; }
  .home-grid .m-acc .bt-name { font-size: 11.5px; letter-spacing: -.02em; text-overflow: clip; }
}

/* «Этот месяц ▾» на «Главной»: список периодов (владелец: кнопка должна нажиматься) */
.per-menu { max-height: 320px; overflow-y: auto; min-width: 180px; z-index: 30; }

/* дата в верхней строке: где периода нет — не кнопка; где есть — список периодов (владелец: «не нажимается») */
.top-date.plain { cursor: default; }
.top-period > summary { height: 100%; }
.top-period[open] > summary { background: var(--gray-soft); border-radius: 10px; }

/* ---------- «Чистая прибыль» по рендеру 15 (компьютер и телефон, 2026-10-11) ---------- */
.np { display: grid; gap: 13px; }
.np .page-head { margin: 0; }
.np-head { display: flex; align-items: center; gap: 12px; }
.np-head > div:nth-child(2) { flex: 1; min-width: 0; }
.np-head h1 { display: flex; align-items: center; gap: 10px; }
.np-info { color: var(--muted); display: inline-flex; }
.np-head .head-actions { gap: 14px; align-items: center; }
.np-month { position: relative; }
.np-month > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 12px; height: 42px; padding: 0 16px;
  border: 1px solid var(--line); border-radius: 12px; background: var(--card); font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.np-month > summary::-webkit-details-marker { display: none; }
.np-month > summary span { min-width: 104px; }
.np-month .sel-menu { left: 0; right: auto; top: 48px; }
.np-seg { display: inline-flex; gap: 2px; padding: 4px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); }
.np-seg a { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 9px; font-size: 13px; font-weight: 500; color: #475569; white-space: nowrap; }
.np-seg a.on { background: var(--navy); color: #fff; font-weight: 600; }
.np-seg.sm { padding: 3px; background: #f1f3f8; border: 0; margin-left: auto; }
.np-seg.sm a { height: 28px; font-size: 12px; padding: 0 16px; }
.np-seg.sm a.on { background: var(--card); color: var(--text); box-shadow: 0 1px 3px rgba(15, 23, 42, .08); }
.np-export { height: 42px; padding: 0 18px; gap: 10px; font-size: 13.5px; font-weight: 600; }
/* цифры */
.np-kpis { display: grid; grid-template-columns: minmax(0, 2.2fr) repeat(3, minmax(0, 1fr)); gap: 13px; }
.np-main { position: relative; padding: 26px 28px 20px; border-radius: 16px; background: linear-gradient(135deg, #e9faf2 0%, #f3fcf8 100%);
  border: 1px solid #d5f3e5; min-width: 0; }
.np-main-label { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.np-main-label span { display: inline-flex; color: var(--muted); }
.np-main-value { margin-top: 8px; font-size: 40px; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; white-space: nowrap; }
.np-main-value.neg { color: var(--red); }
.np-main-sub { display: flex; align-items: center; gap: 22px; margin-top: 10px; }
.np-main-sub b { font-size: 24px; font-weight: 800; white-space: nowrap; }
.np-main-sub b.up { color: var(--green); } .np-main-sub b.down { color: var(--red); }
.np-main-sub span { font-size: 13.5px; color: var(--muted); line-height: 1.3; }
.np-main-ic { position: absolute; right: 18px; top: 22px; width: 52px; height: 52px; border-radius: 14px; background: #c9f2dd; color: #16a34a;
  display: inline-flex; align-items: center; justify-content: center; }
.np-kpi { display: flex; gap: 16px; align-items: flex-start; padding: 20px 18px; border-radius: 16px; background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow); min-width: 0; }
.np-kpi .ic-tile { position: static; width: 46px; height: 46px; border-radius: 13px; flex-shrink: 0; }
.np-kpi > div { min-width: 0; }
.np-kpi small { display: block; font-size: 13.5px; font-weight: 500; color: var(--text); margin-top: 6px; }
.np-kpi b { display: block; font-size: 23px; font-weight: 800; letter-spacing: -.02em; margin-top: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-kpi em { display: block; font-style: normal; font-size: 13.5px; font-weight: 700; margin-top: 10px; }
.np-kpi em.up { color: var(--green); } .np-kpi em.down { color: var(--red); }
.np-pct { font-size: 22px; font-weight: 800; }
/* график и структура */
.np-row2 { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 13px; }
.np .card { padding: 16px 18px; border-radius: 16px; }
.np .card-head { margin-bottom: 6px; align-items: center; }
.np .card-head h2 { font-size: 18px; font-weight: 800; }
.np-chart .chart { display: block; width: 100%; height: auto; }
.ch-bubble { font-size: 12px; font-weight: 700; fill: #fff; }
.ch-label.on { font-weight: 700; fill: var(--text); }
.np-donut { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: 20px; align-items: center; margin-top: 10px; }
.np-donut .donut, .np-donut .donut svg { width: 168px; height: 168px; }
.np-donut .donut-center b { font-size: 21px; font-weight: 800; line-height: 1.1; max-width: 100px; text-align: center; }
.np-donut .donut-center small { font-size: 13px; color: var(--muted); }
.np-donut ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.np-donut li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto 38px; gap: 12px; align-items: center; font-size: 12.5px; }
.np-donut li i { width: 10px; height: 10px; border-radius: 50%; }
.np-donut li span { color: #475569; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-donut li b { font-weight: 700; white-space: nowrap; }
.np-donut li em { font-style: normal; color: var(--muted); text-align: right; }
/* таблица */
.np-table-card { padding: 12px 20px 8px !important; }
.np-tbar { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.np-tabs { display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.np-tabs a { flex-shrink: 0; display: inline-flex; align-items: center; height: 36px; padding: 0 18px; border-radius: 10px; font-size: 13.5px; font-weight: 500;
  color: var(--text); background: #f1f3f8; }
.np-tabs a.on { background: var(--navy); color: #fff; font-weight: 600; }
.np-tools { margin-left: auto; align-items: center; gap: 12px; }
.np-tools .obj-search { width: 238px; height: 36px; }
.np-tools .obj-search input { font-size: 12.5px; }
.np-tools .btn-light, .np-filter > summary { height: 36px; padding: 0 14px; gap: 8px; font-size: 12.5px; font-weight: 600; }
.np-filter { position: relative; }
.np-filter > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; }
.np-filter > summary::-webkit-details-marker { display: none; }
.np-filter .sel-menu { right: 0; top: 42px; min-width: 210px; }
.np-table { table-layout: fixed; }
.np-table th { font-size: 11.5px; font-weight: 600; color: #334155; padding: 8px 8px; white-space: nowrap; }
.np-table th a { color: inherit; display: inline-flex; align-items: center; gap: 4px; }
.np-table th a .i { color: var(--faint); }
.np-table th a.on .i { color: var(--text); }
.np-table td { font-size: 12.5px; padding: 6px 8px; height: 40px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-table:not(.np-small) th:nth-child(1) { width: 46px; } .np-table:not(.np-small) th:nth-child(2) { width: 22%; }
.np-table:not(.np-small) th:nth-child(3) { width: 12%; } .np-table:not(.np-small) th:nth-child(9) { width: 40px; }
.np-table td.pos, .np-table b.pos { color: #16a34a; font-weight: 700; }
.np-table td.neg, .np-table b.neg { color: var(--red); font-weight: 700; }
.np-table .tag { font-size: 11px; padding: 3px 9px; }
.np-table tfoot td { border-top: 1px solid var(--line); font-size: 13.5px; height: 46px; }
.np-obj { display: flex; align-items: center; gap: 12px; color: var(--text); min-width: 0; }
.np-obj > span:last-child { min-width: 0; }
.np-obj b { display: block; font-size: 12.5px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; }
.np-obj small { display: block; font-size: 11px; color: var(--muted); }
.np-ph { flex-shrink: 0; width: 38px; height: 38px; border-radius: 8px; overflow: hidden; background: #dfe7f3; }
.np-ph img, .np-ph .house-art { width: 100%; height: 100%; object-fit: cover; display: block; }
.np-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 10px; }
.np-note { margin: 6px 0 4px; font-size: 11.5px; color: var(--muted); }
.np-mhead { display: flex; align-items: center; justify-content: space-between; margin: 4px 0 6px; }
.np-mhead h2 { margin: 0; font-size: 17px; font-weight: 800; }
.np-mhead a { font-size: 13px; color: var(--accent); display: inline-flex; align-items: center; gap: 4px; }
.np-list { list-style: none; margin: 0; padding: 0; }
.np-list li + li { border-top: 1px solid var(--line); }
.np-list a { display: flex; align-items: center; gap: 12px; padding: 6px 0; color: var(--text); }
.np-list .np-ph { width: 46px; height: 46px; }
.np-lt { flex: 1; min-width: 0; }
.np-lt b { display: block; font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-lt small { display: block; font-size: 12px; color: var(--muted); }
.np-lv { font-size: 13.5px; font-weight: 700; white-space: nowrap; }
.np-lv.pos { color: #16a34a; } .np-lv.neg { color: var(--red); }
.np-list em { font-style: normal; font-size: 12.5px; color: var(--muted); width: 38px; text-align: right; }
.np-list a > .i:last-child { color: var(--faint); flex-shrink: 0; }
.np-back { display: inline-flex; color: var(--text); margin-left: -6px; }
.np-mpick { position: relative; margin-left: auto; }
.np-mpick > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px;
  border-radius: 11px; background: var(--gray-soft); font-size: 13px; font-weight: 600; white-space: nowrap; }
.np-mpick > summary::-webkit-details-marker { display: none; }
.np-mpick .sel-menu { right: 0; top: 40px; }
/* верхняя строка этой страницы — как на рендере: поиск, колокольчик, человек */
.np-user { display: inline-flex; align-items: center; gap: 12px; margin-left: 22px; color: var(--text); }
.np-user .avatar { width: 40px; height: 40px; font-size: 14px; }
.np-user b { display: block; font-size: 13px; font-weight: 700; white-space: nowrap; }
.np-user small { display: block; font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.np-user > .i { color: var(--muted); margin-left: 6px; }
@media (max-width: 1279px) {
  .np-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .np-main { grid-column: 1 / -1; }
  .np-row2 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 959px) {
  .np { gap: 10px; }
  .np-head { gap: 8px; }
  .np-head h1 { font-size: 22px; }
  .np-head p { font-size: 12.5px; margin-top: 2px; }
  .np-kpis { gap: 8px; }
  .np-main { padding: 16px 18px 14px; border-radius: 14px; }
  .np-main-label { font-size: 12px; }
  .np-main-value { font-size: 34px; margin-top: 6px; }
  .np-main-sub { gap: 16px; margin-top: 6px; }
  .np-main-sub b { font-size: 21px; }
  .np-main-sub span { font-size: 12px; }
  .np-main-ic { width: 46px; height: 46px; right: 14px; top: 16px; }
  .np-kpi { padding: 12px 10px; gap: 8px; border-radius: 14px; }
  .np-kpi .ic-tile { width: 32px; height: 32px; border-radius: 9px; }
  .np-kpi .ic-tile .i { width: 18px; height: 18px; }
  .np-pct { font-size: 17px; }
  .np-kpi small { font-size: 10.5px; margin-top: 2px; }
  .np-kpi b { font-size: 14px; margin-top: 6px; }
  .np-kpi em { font-size: 10.5px; margin-top: 6px; }
  .np .card { padding: 12px 14px; }
  .np .card-head h2 { font-size: 13.5px; }
  .np-seg.sm a { height: 26px; font-size: 11px; padding: 0 12px; }
  .np-donut { grid-template-columns: 130px minmax(0, 1fr); gap: 14px; }
  .np-donut .donut, .np-donut .donut svg { width: 130px; height: 130px; }
  .np-donut .donut-center b { font-size: 14px; }
  .np-donut .donut-center small { font-size: 11px; }
  .np-donut ul { gap: 12px; }
  .np-donut li { font-size: 11px; gap: 8px; grid-template-columns: 9px minmax(0, 1fr) auto 30px; }
  .np-table-card { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
  .np-tabs { gap: 6px; }
  .np-tabs a { height: 32px; padding: 0 14px; font-size: 12.5px; border-radius: 16px; background: #eef1f6; color: #64748b; }
  .np-tabs a.on { background: var(--card); color: var(--text); box-shadow: 0 1px 4px rgba(15, 23, 42, .1); }
  .np-tbar + .np-mhead, .np-table-card > .np-mhead { padding: 0 2px; }
  .np-list { background: var(--card); border-radius: 14px; padding: 2px 12px; border: 1px solid var(--line); }
  .np-table-card .table-wrap:not(.only-desk) { background: var(--card); border-radius: 14px; border: 1px solid var(--line); }
}
.np-kpi b.long { font-size: 19px; overflow: visible; }
.np-head p { margin-top: 4px !important; }
.np-head .np-back .i { width: 26px; height: 26px; }
@media (max-width: 959px) {
  .np-head { align-items: flex-start; }
  .np-head h1 { font-size: 24px; line-height: 1.2; }
  .np-head p { font-size: 13px; margin-top: 2px !important; }
  .np-back { margin-top: 6px; }
  .np-mpick { margin-top: 2px; }
  .np-kpi b.long { font-size: 12.5px; }
  .np-list a { padding: 5px 0; gap: 10px; }
  .np-list .np-ph { width: 36px; height: 36px; }
  .np-lt b { font-size: 13.5px; }
  .np-lt small { font-size: 11.5px; }
  .np-lv { font-size: 13px; }
}
@media (max-width: 959px) {
  .np-row2 { gap: 10px; }
  .np-kpi { padding: 12px 8px 12px 10px; }
  .np-kpi .ic-tile { width: 30px; height: 30px; }
  .np-kpi b, .np-kpi b.long { font-size: 13.5px; letter-spacing: -.03em; overflow: visible; text-overflow: clip; }
}

/* ---------- «Расходы» по рендеру 16 (компьютер и телефон, 2026-10-11); основа — стили «Чистой прибыли» (.np) ---------- */
.only-desk-cell { display: none; }
@media (min-width: 960px) { .only-desk-cell { display: table-cell; } }
.ex-main { background: linear-gradient(135deg, #fde8ec 0%, #fff3f5 100%); border-color: #fbd3db; display: flex; gap: 18px; align-items: flex-start; }
.ex-main > div { min-width: 0; }
.ex-ic { background: #fcd5dc; color: #e11d48; }
.ex-wallet { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 50px; height: 50px; border-radius: 14px;
  background: #fcd5dc; color: #e11d48; }
.ex-kpi { gap: 18px; }
.ex-kpi .ic-tile { background: var(--accent-soft); color: var(--accent); }
.ex-kpi .ic-tile.green { background: var(--green-soft); color: var(--green); }
.ex-kpi:nth-child(4) .ic-tile { background: #eef2ff; color: #6366f1; }
.ex-kpi b { margin-top: 10px; }
.ex-pct { display: block; font-style: normal; font-size: 13.5px; color: var(--muted); margin-top: 6px; }
.ex-kpi em { margin-top: 6px; }
.ex-seg a.on { background: var(--navy) !important; color: #fff !important; }
.ex-row3 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; align-items: start; }
@media (min-width: 1280px) { .ex-row3 { grid-template-columns: minmax(0, 1fr) 360px; } }
.ex-table th:nth-child(1) { width: 46px; } .ex-table th:nth-child(2) { width: 34%; }
.ex-table td .pos, .ex-table b.pos { color: var(--green); font-weight: 700; }
.ex-table td .neg, .ex-table b.neg { color: var(--red); font-weight: 700; }
.ex-table td.plain { font-weight: 500; }
.ex-item { display: inline-flex; align-items: center; gap: 14px; }
.ex-item .ic-tile { position: static; width: 28px; height: 28px; border-radius: 8px; }
.ex-pays td { font-size: 12px; }
/* «Расходы» на телефоне: строки вместо таблицы — название полностью, сумма, доля; нажимается (2026-10-12) */
#ex-list { scroll-margin-top: 10px; }
.ex-mrows { list-style: none; margin: 0; padding: 0; }
.ex-mrows li + li { border-top: 1px solid var(--line); }
.ex-mrows a, .ex-mrows .exm-row { display: flex; align-items: center; gap: 10px; padding: 11px 0; color: var(--text); }
.ex-mrows .ic-tile { position: static; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 10px; }
.ex-mrows a > svg { flex-shrink: 0; color: #94a3b8; }
.exm-txt { flex: 1; min-width: 0; display: grid; gap: 3px; }
.exm-txt b { font-size: 13.5px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.exm-txt small { font-size: 11.5px; color: var(--muted); line-height: 1.35; overflow-wrap: anywhere; }
.exm-txt .exm-com { color: #475569; }
.exm-bar { display: block; height: 4px; margin-top: 2px; border-radius: 2px; background: #eef1f6; overflow: hidden; }
.exm-bar span { display: block; height: 100%; min-width: 3px; border-radius: 2px; background: #f87171; }
.exm-sum { flex-shrink: 0; font-size: 13.5px; font-weight: 800; white-space: nowrap; letter-spacing: -.01em; }
.exm-sum.neg { color: var(--red); }
.ex-mrows .exm-total { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 12px 0 4px; font-size: 13.5px; }
.exm-total span { color: var(--muted); font-weight: 600; } .exm-total b { font-weight: 800; white-space: nowrap; }
.ex-mrows .empty { padding: 14px 0; color: var(--muted); font-size: 13px; }
.ex-side { display: grid; gap: 13px; align-content: start; }
.ex-side .card { padding: 14px 16px; border-radius: 16px; }
.ex-side .card-head h2 { font-size: 15px; font-weight: 800; }
.ex-side .card-head > a { font-size: 12px; color: var(--accent); font-weight: 600; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.ex-recent li a { display: flex; align-items: center; gap: 12px; padding: 5px 0; color: var(--text); }
.ex-recent .ic-tile { position: static; width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0; }
.ex-recent .ev-txt b { font-size: 12.5px; font-weight: 600; }
.ex-recent .ev-txt small { font-size: 11.5px; }
.ex-recent .ev-sum { font-size: 13px; font-weight: 700; }
.ex-recent .ev-time { font-size: 12px; min-width: 58px; text-align: right; }
.ex-recent li + li { border-top: 0; }
.ex-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ex-bars li { display: grid; grid-template-columns: minmax(0, 1fr) 100px auto; gap: 10px; align-items: center; font-size: 12px; }
.ex-bars span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ex-bars i { height: 6px; border-radius: 3px; background: var(--gray-soft); overflow: hidden; }
.ex-bars i b { display: block; height: 100%; border-radius: 3px; background: #7f9cf5; }
.ex-bars em { font-style: normal; font-weight: 700; white-space: nowrap; }
.ex-mtiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.ex-mt { display: grid; gap: 2px; padding: 10px 10px 11px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); min-width: 0; }
.ex-mt .ic-tile { position: static; width: 34px; height: 34px; border-radius: 10px; margin-bottom: 6px; }
.ex-mt.mt-materials .ic-tile { background: var(--accent-soft); color: var(--accent); }
.ex-mt.mt-contractors .ic-tile { background: var(--green-soft); color: var(--green); }
.ex-mt.mt-realtors { background: #fff8ef; } .ex-mt.mt-realtors .ic-tile { background: #fde4c4; color: #ea7a1c; }
.ex-mt.mt-other .ic-tile { background: var(--violet-soft); color: var(--violet); }
.ex-mt small { font-size: 11.5px; font-weight: 500; }
.ex-mt b { font-size: 13px; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; }
.ex-mt i { font-style: normal; font-size: 11px; color: var(--muted); }
.ex-mt em { font-style: normal; font-size: 11.5px; font-weight: 700; margin-top: 4px; }
.ex-mt em.up { color: var(--green); } .ex-mt em.down { color: var(--red); }   /* up = к лучшему (меньше трат) */
@media (max-width: 959px) {
  .ex-head { flex-wrap: wrap; }
  .ex-main { gap: 14px; padding: 16px; }
  .ex-main .np-main-value { font-size: 30px; }
  .ex-main .np-main-sub b { font-size: 19px; }
  .ex-ic { top: 14px; right: 14px; width: 42px; height: 42px; }
  .ex-mtabs { width: 100%; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ex-mtabs a { justify-content: center; padding: 0 6px; font-size: 12px; background: #eef1f6; }
  .ex-mtabs a.on { background: var(--navy); color: #fff; }
  .ex-table-card .np-mhead { margin-top: 6px; }
  .ex-recent { background: var(--card); border-radius: 14px; padding: 4px 12px; border: 1px solid var(--line); margin-bottom: 10px; }
  .ex-table td, .ex-table th { font-size: 12px; }
}
.ex-row3 { gap: 16px; }
.ex-col { min-width: 0; }
.ex-side .card { border: 1px solid var(--line); box-shadow: none; }
@media (max-width: 959px) {
  .ex-main { padding: 14px 16px 12px; }
  .ex-main .np-main-label { font-size: 12.5px; }
  .ex-main .np-main-value { margin-top: 4px; }
  .ex-main .np-main-sub { margin-top: 4px; }
  .ex .np-donut { grid-template-columns: 122px minmax(0, 1fr); gap: 12px; margin-top: 4px; }
  .ex .np-donut .donut, .ex .np-donut .donut svg { width: 122px; height: 122px; }
  .ex .np-donut ul { gap: 9px; }
  .ex-mt { padding: 9px 9px 10px; }
  .ex-mt .ic-tile { width: 32px; height: 32px; margin-bottom: 4px; }
}
@media (max-width: 959px) {
  .ex .np-donut { grid-template-columns: 112px minmax(0, 1fr); }
  .ex .np-donut .donut, .ex .np-donut .donut svg { width: 112px; height: 112px; }
  .ex .np-donut ul { gap: 6px; }
  .ex .np-donut li { font-size: 10.5px; }
  .ex .np-chart .card-head { margin-bottom: 0; }
  .ex .np-struct .card-head { margin-bottom: 2px; }
  .ex-main { padding: 12px 14px 10px; }
  .ex-mt small { font-size: 11px; } .ex-mt { gap: 1px; }
}

/* ---------- Карточка объекта в новом виде (web/object_card.py, 2026-10-11): всё нажимается, суммы сверяются ---------- */
.oc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; }
.oc .page-head { margin: 0; }
.oc-head { display: flex; align-items: center; gap: 12px; }
.oc-head > div:nth-child(2) { flex: 1; min-width: 0; }
.oc-head h1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.oc-head h1 .pill { font-size: 12px; }
.oc-head p { display: flex; align-items: center; gap: 4px 6px; flex-wrap: wrap; margin-top: 4px !important; }
.oc-head .head-actions { gap: 10px; align-items: center; }
.oc-head .btn-light { height: 42px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.oc .card { padding: 16px 18px; border-radius: 16px; }
.oc .card-head { margin-bottom: 8px; align-items: center; }
.oc .card-head h2 { font-size: 16px; font-weight: 800; }
.oc .card-head > a { font-size: 12.5px; color: var(--accent); font-weight: 600; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.oc .card-head > .btn-light { color: var(--text); height: 34px; padding: 0 12px; gap: 6px; }
.oc-top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; }
@media (min-width: 1100px) { .oc-top { grid-template-columns: 360px minmax(0, 1fr); } }
.oc-photo-card { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 14px; align-items: center; padding: 12px !important; }
.oc-photo { border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; background: #eef3fa; }
.oc-photo img, .oc-photo svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.oc-pass { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin: 0; }
.oc-pass dt { font-size: 11px; color: var(--muted); }
.oc-pass dd { margin: 0; font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oc-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.oc-kpis .np-kpi { color: var(--text); padding: 16px; gap: 12px; transition: border-color .15s; }
.oc-kpis .np-kpi:hover { border-color: #c7d2fe; }
.oc-kpis .np-kpi .ic-tile { width: 40px; height: 40px; border-radius: 12px; }
.oc-kpis .np-kpi small { margin-top: 2px; }
.oc-kpis .np-kpi b { font-size: 21px; margin-top: 8px; }
.oc-kpis .np-kpi b.neg { color: var(--red); } .oc-kpis .np-kpi b.pos { color: var(--green); }
.oc-kpis .np-kpi em { font-size: 12px; font-weight: 500; margin-top: 6px; }
.oc-tabs a em { font-style: normal; font-size: 11.5px; margin-left: 6px; opacity: .7; }
.oc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; align-items: start; }
.oc-col { display: grid; gap: 13px; align-content: start; min-width: 0; }
.oc-list li.muted a.inline { display: inline; padding: 0; margin: 0; color: var(--accent); font-size: inherit; }
.oc-grid .chart { display: block; width: 100%; height: auto; }
.oc-bars, .oc-list { list-style: none; margin: 0; padding: 0; }
.oc-bars { display: grid; gap: 4px; }
.oc-bars a { display: grid; grid-template-columns: minmax(0, 1fr) 90px auto 34px; gap: 10px; align-items: center; padding: 6px 8px; margin: 0 -8px;
  border-radius: 8px; color: var(--text); font-size: 12.5px; }
.oc-bars a:hover, .oc-list a:hover { background: #f5f7fb; }
.oc-bars span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oc-bars i { height: 6px; border-radius: 3px; background: var(--gray-soft); overflow: hidden; }
.oc-bars i b { display: block; height: 100%; border-radius: 3px; background: #7f9cf5; }
.oc-bars em { font-style: normal; font-weight: 700; white-space: nowrap; text-align: right; }
.oc-bars small { color: var(--muted); text-align: right; }
.oc-list li + li { border-top: 1px solid var(--line); }
.oc-list li.muted { padding: 10px 0; font-size: 13px; }
.oc-list a, .oc-list .oc-row { display: flex; align-items: center; gap: 12px; padding: 9px 8px; margin: 0 -8px; border-radius: 8px; color: var(--text); font-size: 13px; }
.oc-list a > span:not(.ftype), .oc-list .oc-row > span { flex: 1; min-width: 0; }
.oc-list small { display: block; font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.oc-list b { white-space: nowrap; font-weight: 700; }
.oc-list .i { color: var(--muted); flex-shrink: 0; }
.oc-list em.pill { font-style: normal; flex-shrink: 0; }
.oc-form { display: grid; grid-template-columns: minmax(0, 1.3fr) 130px minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.oc-form select, .oc-form input { height: 40px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; background: var(--card); font: inherit; font-size: 13px; min-width: 0; }
.oc-form .btn-dark { height: 40px; padding: 0 16px; }
.oc-table-card { padding: 12px 18px 8px !important; }
.oc-filters { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.oc-filters .obj-search { flex: 1; min-width: 220px; height: 38px; }
.oc-filters select { height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; background: var(--card); font: inherit; font-size: 13px; max-width: 240px; }
.oc-table td a { color: var(--text); }
.oc-table th:nth-child(1) { width: 92px; } .oc-table th:nth-child(2) { width: 76px; } .oc-table th:nth-child(4) { width: 190px; }
.oc-table th:nth-child(5) { width: 130px; } .oc-table th:nth-child(6) { width: 190px; } .oc-table th:nth-child(7) { width: 40px; }
.oc-table td:first-child { white-space: nowrap; }
.oc-table td.oc-what small { display: block; font-size: 11.5px; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; }
.oc-table td a b { font-weight: 600; }
.oc-table td.num { white-space: nowrap; font-weight: 700; }
.oc-table td.num.pos { color: var(--green); }
.oc-table tfoot td { border-top: 2px solid var(--line); padding-top: 10px; padding-bottom: 10px; }
.oc-table .tag { font-size: 11.5px; }
.oc-table .pill { font-size: 11.5px; white-space: nowrap; }
.oc-mlist { list-style: none; margin: 0; padding: 0; }
.oc-mlist li + li { border-top: 1px solid var(--line); }
.oc-mlist a { display: flex; align-items: center; gap: 10px; padding: 10px 0; color: var(--text); }
.oc-mlist .ev-txt { flex: 1; min-width: 0; }
.oc-mlist .ev-txt b { display: block; font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oc-mlist .ev-txt small { font-size: 11.5px; color: var(--muted); }
.oc-mend { display: grid; justify-items: end; gap: 3px; }
.oc-mend b { font-size: 13px; white-space: nowrap; } .oc-mend b.pos { color: var(--green); }
.oc-mend .pill { font-size: 10.5px; }
.oc-total { display: flex; justify-content: space-between; padding: 12px 0 6px; font-weight: 700; font-size: 13.5px; border-top: 2px solid var(--line) !important; }
.oc-sale-line { margin: 0 0 10px; font-size: 14px; }
.oc-state { margin: 0 0 8px; padding: 8px 12px; border-radius: 10px; background: #f5f7fb; font-size: 13px; font-weight: 600; }
.oc-state.pos { background: var(--green-soft); color: var(--green); } .oc-state.neg { background: #fdecef; color: var(--red); }
.oc-sale .ctr-props dd b.pos, .oc-deal .ctr-props dd b.pos { color: var(--green); }
.oc-sale .ctr-props dd b.neg, .oc-deal .ctr-props dd b.neg { color: var(--red); }
.oc-sub { font-size: 14px; font-weight: 800; margin: 16px 0 6px; }
.oc-deal .ctr-props { max-width: 560px; }
.oc-madd { position: relative; }
.oc-madd > summary { list-style: none; cursor: pointer; }
.oc-madd > summary::-webkit-details-marker { display: none; }
.oc-madd .quick-menu { right: 0; left: auto; }
@media (max-width: 1279px) { .oc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 959px) {
  .oc { gap: 10px; }
  /* на телефоне одна колонка: график → на что ушли → кому платили → остальное → задачи */
  .oc-col { display: contents; }
  .oc-sale { order: 1; } .oc-items { order: 1; } .oc-parties { order: 2; } .oc-col:last-child > section:not(.oc-items):not(.oc-sale) { order: 3; } .oc-tasks { order: 4; }
  .oc-head { align-items: flex-start; }
  .oc-head h1 { font-size: 22px; }
  .oc-head .np-back { margin-top: 4px; }
  .oc-photo-card { grid-template-columns: 110px minmax(0, 1fr); }
  .oc-kpis { gap: 8px; }
  .oc-kpis .np-kpi { padding: 12px; gap: 10px; flex-direction: column; }
  .oc-kpis .np-kpi .ic-tile { width: 34px; height: 34px; border-radius: 10px; }
  .oc-kpis .np-kpi b { font-size: 17px; margin-top: 4px; }
  .oc-kpis .np-kpi em { font-size: 11px; }
  .oc-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .oc .card { padding: 14px; }
  .oc-form { grid-template-columns: 1fr 1fr; }
  .oc-form select, .oc-form .btn-dark { grid-column: span 2; }
  .oc-filters .obj-search { min-width: 0; flex-basis: 100%; }
  .oc-filters select { flex: 1; max-width: none; }
}

/* ---------- Карточка операции в новом виде (web/operation_card.py, 2026-10-11): операция + всё связанное ---------- */
.opc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; }
.opc .page-head { margin: 0; }
.opc .card { padding: 16px 18px; border-radius: 16px; }
.opc .card-head { margin-bottom: 8px; align-items: center; }
.opc .card-head h2 { font-size: 16px; font-weight: 800; }
.opc .card-head > a { font-size: 12.5px; color: var(--accent); font-weight: 600; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.opc-actions .btn-light, .opc-foot .btn-light { height: 40px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.opc-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; align-items: start; }
@media (min-width: 1100px) { .opc-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.opc-col { display: grid; gap: 13px; align-content: start; min-width: 0; }
.opc-hero { display: flex; align-items: center; gap: 18px; }
.opc-hero .ic-tile { position: static; width: 56px; height: 56px; border-radius: 16px; flex-shrink: 0; }
.opc-hero small { display: block; font-size: 13px; color: var(--muted); }
.opc-hero b { display: block; font-size: 32px; font-weight: 800; letter-spacing: -.03em; line-height: 1.15; margin-top: 2px; }
.opc-hero b.pos { color: var(--green); } .opc-hero b.neg { color: var(--text); }
.opc-hero p { margin: 6px 0 0; font-size: 13.5px; color: #475569; }
.opc-props { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; }
.opc-props .wide { grid-column: 1 / -1; }
.opc-props dt { font-size: 11.5px; color: var(--muted); }
.opc-props dd { margin: 2px 0 0; font-size: 13.5px; font-weight: 600; overflow-wrap: anywhere; }
.opc-props dd a { color: var(--accent); display: inline-flex; align-items: center; gap: 2px; }
.opc-foot { display: flex; align-items: center; gap: 16px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.opc-foot .calc-delete { margin: 0; }
.opc-tri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 4px; }
.opc-tri.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.opc-tri > * { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: #f5f7fb; color: var(--text); min-width: 0; }
.opc-tri > a:hover { background: #eef2ff; }
.opc-tri small { font-size: 11.5px; color: var(--muted); }
.opc-tri b { font-size: 15px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.opc-tri b.pos { color: var(--green); } .opc-tri b.neg { color: var(--red); }
.opc-tri em { font-style: normal; font-size: 11px; }
.opc .oc-list b.pos { color: var(--green); }
.opc-this { background: #eef2ff; }
.oc-sumrow { font-weight: 700; }
.opc .history .invoices { list-style: none; margin: 0; padding: 0; }
@media (max-width: 959px) {
  .opc { gap: 10px; }
  .opc .page-head .opc-actions { display: none !important; }
  .opc-hero b { font-size: 26px; }
  .opc-props { gap: 10px 14px; }
}

/* «Расходы»: строка разреза → её платежи (2026-10-11) */
.ex-drill { color: var(--text); }
.ex-drill:hover { color: var(--accent); }
.ex-card-link { color: var(--muted); display: inline-flex; vertical-align: middle; }
.ex-drillbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; margin-bottom: 8px; border-radius: 12px; background: #f5f7fb; font-size: 13px; }
.ex-drillbar > span { flex: 1; min-width: 200px; }
.ex-drillbar em { font-style: normal; font-weight: 700; margin-left: 6px; display: inline-flex; align-items: center; gap: 3px; }
.ex-drillbar em.pos { color: var(--green); } .ex-drillbar em.neg { color: var(--red); }
.ex-drillbar .btn-light { height: 32px; padding: 0 10px; gap: 6px; font-size: 12.5px; }
.ex-pays td a.neg { color: var(--red); }

/* ---------- Лента операций в новом виде (2026-10-11) ---------- */
.ops { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; }
.ops .page-head { margin: 0; }
.ops .card { padding: 16px 18px; border-radius: 16px; }
.ops .card-head { margin-bottom: 8px; align-items: center; }
.ops .card-head h2 { font-size: 16px; font-weight: 800; }
.ops .card-head > a { font-size: 12.5px; color: var(--accent); font-weight: 600; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.ops .head-actions { gap: 12px; align-items: center; }
.ops-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; align-items: start; }
@media (min-width: 1100px) { .ops-grid { grid-template-columns: minmax(0, 1fr) 340px; } }
.ops-side { display: grid; gap: 13px; align-content: start; min-width: 0; }
.ops-tools { display: flex; gap: 10px; margin-bottom: 10px; }
.ops-tools .obj-search { flex: 1; height: 40px; }
.ops-kinds { margin-bottom: 10px; }
.ops-feed .day { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: none; margin: 14px 0 4px; }
.ops-feed .day:first-child { margin-top: 4px; }
.ops-feed .feed { list-style: none; margin: 0; padding: 0; }
.ops-feed .feed li + li { border-top: 1px solid var(--line); }
.ops-feed .op { display: flex; align-items: center; gap: 12px; padding: 9px 8px; margin: 0 -8px; border-radius: 10px; color: var(--text); }
.ops-feed .op:hover { background: #f5f7fb; }
.ops-feed .op .txt { flex: 1; min-width: 0; }
.ops-feed .op .title { font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ops-feed .op .subtitle { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ops-feed .op .amt { font-size: 13.5px; font-weight: 700; white-space: nowrap; }
.ops-feed .op .amt.income { color: var(--green); } .ops-feed .op .amt.transfer { color: var(--muted); }
.ops-feed .more { margin-top: 10px; width: 100%; height: 40px; border-radius: 10px; border: 1px solid var(--line); background: var(--card); font: inherit; font-weight: 600; cursor: pointer; }
.ops-side .ctr-props .delta.good { color: var(--green); } .ops-side .ctr-props .delta.bad { color: var(--red); }
@media (max-width: 959px) { .ops { gap: 10px; } .ops-kinds { overflow-x: auto; } }
.opc .card-head > a + a { margin-left: 14px; }

/* предупреждения справа (class="alerts side") не должны брать стиль левого меню (.side) — 2026-10-11 */
.alerts.side, .alerts-restore.side { position: static; width: auto; padding: 0; background: none; border: 0; z-index: auto;
  overflow: visible; flex-direction: column; }

/* ---------- Карточка контрагента в новом виде (web/supplier_card.py, 2026-10-11) ---------- */
.spc .ic-tile.blue { background: var(--accent-soft); color: var(--accent); }
.spc-pay { margin-top: 10px; height: 38px; padding: 0 14px; gap: 8px; font-size: 13px; font-weight: 600; }
.spc .head-actions .btn-light, .spc .head-actions .btn-dark { height: 42px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.spc .dir-actions { padding: 6px 10px !important; }
.spc .dir-alert { margin: 0; }
.spc-inv td.num.pos { color: var(--green); }

/* ---------- Карточка кошелька в новом виде (web/wallet_card.py, 2026-10-11): сверка остатка ---------- */
.wlc .head-actions { gap: 10px; align-items: center; }
.wlc .head-actions .btn-light { height: 42px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.wlc-hero { margin: 0; }
.wlc-ok { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; color: var(--green); font-size: 12.5px; font-weight: 700; }
.wlc-eq { display: grid; grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1.3fr) 18px minmax(0, 1.3fr) 18px minmax(0, 1fr); gap: 8px; align-items: stretch; }
.wlc-eq > div { display: grid; gap: 3px; align-content: start; padding: 12px; border-radius: 12px; background: #f5f7fb; min-width: 0; }
.wlc-eq > i { font-style: normal; font-size: 20px; font-weight: 700; color: var(--muted); align-self: center; text-align: center; }
.wlc-eq small { font-size: 11.5px; color: var(--muted); }
.wlc-eq b { font-size: 17px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wlc-eq b.pos { color: var(--green); } .wlc-eq b.neg { color: var(--red); }
.wlc-eq em { font-style: normal; font-size: 11px; line-height: 1.35; }
.wlc-eq .wlc-end { background: var(--navy); color: #fff; } .wlc-eq .wlc-end small { color: #cbd5e1; }
@media (max-width: 959px) {
  .wlc-eq { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .wlc-eq > i { display: none; }
  .wlc-eq > div:nth-of-type(2) small::before { content: '+ '; font-weight: 800; }
  .wlc-eq > div:nth-of-type(3) small::before { content: '− '; font-weight: 800; }
  .wlc-eq > div:nth-of-type(4) small::before { content: '= '; font-weight: 800; }
  .wlc .np-month > summary { height: 38px; padding: 0 10px; gap: 6px; }
  .wlc .np-month > summary span { min-width: 0; }
}

/* ---------- Счёт поставщика в новом виде (2026-10-11) ---------- */
.invc .ic-tile.blue { background: var(--accent-soft); color: var(--accent); }
.invc .head-actions { gap: 10px; align-items: center; }
.invc .head-actions .btn-light, .invc .head-actions .btn-dark { height: 42px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.invc .oc-kpis .np-kpi { color: var(--text); }
.invc-lines tfoot td { height: 36px; }
.invc-lines td small { font-size: 11.5px; }
.invc-del { margin-top: 12px; }
.invc-del .btn-light { height: 38px; padding: 0 14px; gap: 8px; font-weight: 600; }
.invc-file { display: flex; align-items: center; gap: 6px; }
.invc-file > a { flex: 1; min-width: 0; }
.invc-delete { padding: 0 4px; }
@media (max-width: 959px) { .invc .pay-btn span { display: none; } .invc .pay-btn { width: 44px; padding: 0 !important; justify-content: center; } }
@media (max-width: 959px) { .invc .invc-delete { order: 9; } }

/* ---------- Заявка и материал в новом виде (2026-10-11) ---------- */
.reqc .ic-tile.blue, .matc .ic-tile.blue { background: var(--accent-soft); color: var(--accent); }
.reqc .head-actions, .matc .head-actions { gap: 10px; align-items: center; }
.reqc .head-actions .btn-light, .reqc .head-actions .btn-dark, .matc .head-actions .btn-light { height: 42px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.reqc-status { display: flex; flex-wrap: wrap; gap: 8px; }
.reqc-status button { height: 36px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--card); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; color: var(--text); }
.reqc-status button.on { background: var(--navy); color: #fff; border-color: var(--navy); cursor: default; }
.reqc .oc-table td small, .matc .oc-table td small { font-size: 11.5px; }
@media (max-width: 959px) { .reqc .head-actions .btn-dark span { display: none; } }

/* ---------- «Счета на оплату» и «Долги» в новом виде (2026-10-11) ---------- */
.tpc .ic-tile.blue, .dbc .ic-tile.blue { background: var(--accent-soft); color: var(--accent); }
.tpc .oc-kpis .np-kpi, .dbc .oc-kpis .np-kpi { color: var(--text); }
.tpc .head-actions .btn-light, .dbc .head-actions .btn-light, .dbc .head-actions .btn-dark { height: 42px; padding: 0 16px; gap: 8px; font-size: 13.5px; font-weight: 600; }
.tpc-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; flex-wrap: wrap; }
.tpc-search { margin-left: auto; }
.tpc-search .obj-search { width: 280px; height: 38px; }
.tpc-pay { height: 30px; padding: 0 12px; font-size: 12px; font-weight: 600; border-radius: 8px; display: inline-flex; align-items: center; white-space: nowrap; }
@media (max-width: 959px) { .tpc-search { margin-left: 0; width: 100%; } .tpc-search .obj-search { width: 100%; } }
.dbc-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dbc .card-head > b { margin-left: auto; font-size: 15px; }
.dbc-sup { border-top: 1px solid var(--line); }
.dbc-sup:first-of-type { border-top: 0; }
.dbc-sup > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.dbc-sup > summary::-webkit-details-marker { display: none; }
.dbc-sup > summary .i { color: var(--muted); transition: transform .15s; }
.dbc-sup[open] > summary .i { transform: rotate(180deg); }
.dbc-name { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 600; }
.dbc-name a { color: var(--text); }
.dbc-name small { display: block; font-size: 11.5px; color: var(--muted); font-weight: 400; }
.dbc-sup .oc-list { margin: 0 0 8px 12px; }
.dbc-sup .spc-pay { margin: 0 0 12px 12px; }
.dbc .opc-col { display: grid; gap: 13px; align-content: start; min-width: 0; }
@media (max-width: 959px) { .dbc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dbc-kpis > :first-child { grid-column: 1 / -1; } }

/* ---------- Старые страницы: новая шапка (шаг 6, 2026-10-11) ---------- */
.narrow > .page-head.oc-head, .page > .narrow > .page-head.oc-head { margin: 0 0 14px; }
.old-crumb-label { margin: 0 !important; font-size: 15px; font-weight: 700; color: var(--text); }
.page-head.oc-head .head-actions .btn-dark, .page-head.oc-head .head-actions .btn-light { height: 40px; padding: 0 14px; gap: 6px; font-size: 13.5px; font-weight: 600; display: inline-flex; align-items: center; }
.narrow .card select, .narrow .card input[type="date"], .narrow .card input[type="file"] { min-height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 4px 10px; background: var(--card); font: inherit; font-size: 13.5px; color: var(--text); }

/* ---------- «Деньги» в новом виде (2026-10-11) ---------- */
.mnc .ic-tile.blue { background: var(--accent-soft); color: var(--accent); }
.mnc .oc-kpis .np-kpi { color: var(--text); }
.mnc .head-actions { gap: 10px; align-items: center; }
.mnc-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; align-items: start; }
.mnc-main, .mnc-side { display: grid; gap: 13px; align-content: start; min-width: 0; }
.mnc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.mnc-kpis .np-kpi b { font-size: 19px; }
.mnc-group { padding: 4px 18px !important; border-radius: 16px; }
.mnc-group .wgroup-head .name { font-size: 15px; font-weight: 800; }
.mnc-group .wgroup-head .name small { display: block; font-size: 11.5px; font-weight: 500; color: var(--muted); margin-top: 1px; }
.mnc-group .wgroup-head .sum { font-size: 15px; font-weight: 800; }
.mnc-group .wgroup-head .i { transform: rotate(-90deg); }
.mnc-group[open] > .wgroup-head .i { transform: rotate(0deg); }
.mnc .wrow { padding: 10px 6px; margin: 0 -6px; border-radius: 10px; }
.mnc .wrow:hover { background: #f5f7fb; }
.mnc .wrow .name { font-size: 13.5px; font-weight: 600; }
.mnc .wrow .sum { font-size: 13.5px; font-weight: 700; }
.mnc .wrow .sum.neg { color: var(--red); }
.mnc-check { margin: 0; font-size: 12px; color: var(--muted); }
.mnc-side .an-bar { border-radius: 16px; }
.mnc-side .card { border-radius: 16px; }
@media (min-width: 1200px) { .mnc-grid { grid-template-columns: minmax(0, 1fr) 340px; } }   /* справа — предупреждения и ссылка на анализ */
@media (max-width: 1199px) {
  .mnc .mnc-side { display: none; }
}

/* ---------- общие правила новых страниц (шаг «остальные 25», 2026-10-11) ---------- */
.oc .ic-tile.blue { background: var(--accent-soft); color: var(--accent); }
.oc .oc-kpis .np-kpi { color: var(--text); }
.oc .head-actions { gap: 10px; align-items: center; }
.oc .bar-list { margin: 0; }
.oc .bar-list .bar-row { font-size: 13px; }
.oc .bar-list .bar-row .value { font-weight: 700; }
.oc .oc-list em.pill { margin-left: 8px; font-size: 11px; }
.smc-year { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.smc-an { height: 44px; justify-content: center; gap: 8px; font-weight: 600; }
.smc .chart .columns { margin-top: 8px; }
/* расшифровки «Сводки» и «Объектов» */
.whc .card-head > b { margin-left: auto; font-size: 15px; white-space: nowrap; }
.whc-hero { display: grid; gap: 4px; padding: 18px 20px !important; background: linear-gradient(135deg, #eef2ff 0%, #f7f8ff 100%); border-color: #dfe5fb; }
.whc-hero small { font-size: 13px; font-weight: 600; color: #475569; }
.whc-hero b { font-size: 30px; font-weight: 800; letter-spacing: -.02em; }
.whc-hero b.pos { color: var(--green); } .whc-hero b.neg { color: var(--red); }
.whc-hero p { margin: 0; font-size: 12.5px; color: var(--muted); }
.whc-two { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.whc .oc-table td small { font-size: 11.5px; }
@media (max-width: 959px) { .whc-hero b { font-size: 24px; } .whc-two { grid-template-columns: minmax(0, 1fr) !important; } }
/* садака и закят, личные */
.chc .charity-pay { height: 42px; padding: 0 16px; font-size: 13.5px; font-weight: 600; display: inline-flex; align-items: center; }
.chc-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.chc-row:first-of-type { border-top: 0; }
.chc-row .charity-info { display: grid; gap: 2px; }
.chc-row .charity-info b a { color: var(--text); }
.chc-row .charity-info .muted { font-size: 12px; }
.chc-row .charity-buttons { display: flex; gap: 6px; }
.chc-row .btn-dark, .chc-row .btn-light, .chc-all .btn-light, .chc-form .btn-dark, .chc-form .btn-light { height: 36px; padding: 0 12px; font-size: 13px; font-weight: 600; }
.chc-all { margin-top: 10px; }
.chc-btn { margin-top: 10px; height: 38px; }
.chc-form { display: grid; gap: 8px; margin-top: 12px; }
.chc-form input[type="text"], .chc-form input[type="date"] { height: 40px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 13.5px; }
.chc-form label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); }
.prc-nav { display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font-size: 13.5px; font-weight: 600; }
.prc-nav a { display: inline-flex; color: var(--text); padding: 4px; border-radius: 8px; }
.prc-nav a:hover { background: #f1f3f8; }
.prc-nav span { min-width: 110px; text-align: center; }
.prc-nav i { width: 26px; }
@media (max-width: 959px) {
  .chc-row { grid-template-columns: minmax(0, 1fr); }
  .chc .charity-pay span { display: inline; }
  .prc .head-actions { width: 100%; justify-content: space-between; }
}
/* колонки новых страниц: содержимое переносится, а не распирает колонку */
.ops-side, .oc-col, .opc-col, .mnc-main, .mnc-side { grid-template-columns: minmax(0, 1fr); }
.alerts.side { min-width: 0; }
/* таблицы-сводки: ширина колонок по содержимому, название дома не обрезается */
.omc .np-table, .whc .np-table { table-layout: auto; }
.omc .np-table td:first-child, .whc .np-table td:first-child { white-space: normal; min-width: 160px; }
.omc .oc-list .dash-dot { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; }
.omc .np-table td:nth-child(2) { white-space: normal; min-width: 150px; font-size: 12px; }

/* ---------- «Банк: проверить» в новом виде (2026-10-11) ---------- */
.bkc .card-head h2 a { color: var(--text); }
.bkc-wallet .opc-tri { margin-bottom: 4px; }
.bkc-bulk { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0; }
.bkc-bulk .btn-dark, .bkc-bulk .btn-light { height: 36px; padding: 0 12px; font-size: 13px; font-weight: 600; }
.bkc-line { border-top: 1px solid var(--line); padding: 10px 0; }
.bkc-line .bank-offer .btn-dark { height: 32px; padding: 0 12px; font-size: 12.5px; }
.bkc-erp { margin-top: 6px; }
.bkc-load form, .bkc-load > div { display: grid; gap: 4px; margin-bottom: 12px; }
.bkc-load .btn-dark { height: 40px; justify-content: center; gap: 6px; font-size: 13px; font-weight: 600; }
.bkc-file { display: grid; gap: 6px; font-size: 12.5px; color: var(--muted); }
.bkc-file .btn-light { height: 38px; justify-content: center; font-weight: 600; }
.bkc-file select, .bkc-file input[type="date"], .bkc-file input[type="file"] { min-height: 36px; border: 1px solid var(--line); border-radius: 10px; padding: 4px 8px; background: var(--card); font: inherit; font-size: 13px; color: var(--text); }
.bkc-dialog { border-top: 1px solid var(--line); padding: 10px 0; }
.bkc-dialog p { margin: 0 0 6px; font-size: 13px; }
.bkc-dialog p small { display: block; color: var(--muted); font-size: 11.5px; }

/* ---------- Журнал, история предупреждений, дубли (2026-10-11) ---------- */
.jrc-people { margin-bottom: 8px; }
.jrc-list { list-style: none; margin: 0; padding: 0; }
.jrc-list > li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--line); }
.jrc-list > li:first-child { border-top: 0; }
.jrc-list > li.muted { display: block; }
.jrc-ic { flex: 0 0 32px; width: 32px; height: 32px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; }
.jrc-ic.blue { background: var(--accent-soft); color: var(--accent); } .jrc-ic.red { background: #fdecef; color: var(--red); }
.jrc-ic.green { background: var(--green-soft); color: var(--green); } .jrc-ic.amber { background: #fff4e5; color: #ea7a1c; }
.jrc-body { flex: 1; min-width: 0; display: grid; gap: 3px; }
.jrc-top { font-size: 12.5px; display: flex; gap: 8px; flex-wrap: wrap; }
.jrc-top b.neg { color: var(--red); } .jrc-top b.pos { color: var(--green); }
.jrc-title { font-size: 13.5px; font-weight: 700; }
.jrc-title a { color: var(--accent); display: inline-flex; align-items: center; gap: 2px; }
.jrc-changes { display: grid; gap: 1px; font-size: 12px; color: var(--muted); }
.jrc-changes s { color: #94a3b8; } .jrc-changes b { color: var(--text); font-weight: 600; }
.jrc-act .btn-light { height: 34px; padding: 0 12px; font-size: 12.5px; font-weight: 600; }
.jrc-pages { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 12px 0 4px; }
.jrc-pages .btn-light { height: 36px; padding: 0 12px; gap: 4px; font-weight: 600; }
.dup-page .dup-card { border-radius: 16px; }
.dup-page .dup-actions .btn-light { height: 36px; padding: 0 12px; gap: 6px; font-weight: 600; }
@media (max-width: 959px) { .jrc-list > li { flex-wrap: wrap; } .jrc-act { width: 100%; padding-left: 44px; } }

/* ---------- Сметы в новом виде (2026-10-11) ---------- */
.oc-bars .oc-row { display: grid; grid-template-columns: minmax(0, 1fr) 90px auto 34px; gap: 10px; align-items: center; padding: 6px 0; font-size: 12.5px; }
.esc-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.esc-link { color: var(--accent); }
.esc-sum { margin-left: auto; font-size: 15px; white-space: nowrap; }
.esc .est-lines { list-style: none; margin: 0 0 8px 12px; padding: 0; }
.esc .est-lines li { display: grid; gap: 2px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 12.5px; }
.esc .est-lines .est-line { display: flex; justify-content: space-between; gap: 10px; }
.esc .est-lines .muted { font-size: 11.5px; }
.esc-table td:nth-child(2) { white-space: normal; font-size: 12px; }
@media (max-width: 959px) { .esc .head-actions .btn-dark span { display: none; } .esc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.esc-rates td:nth-child(2) { white-space: normal; font-size: 12px; }
.esc-rates { table-layout: auto !important; }
.esc .house-row { border-top: 1px solid var(--line); padding: 12px 0; }
.esc .house-row:first-child { border-top: 0; }
.esc .house-name a { font-weight: 700; color: var(--text); }
.esc .house-fields input, .esc .house-fields select { min-height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 13px; background: var(--card); }
.esc-save { height: 44px; padding: 0 20px; gap: 8px; font-weight: 600; }

/* ---------- Служебные страницы в новом виде (2026-10-11) ---------- */
.spl-table { table-layout: auto !important; }
.spl-wrap { white-space: normal !important; font-size: 12px; }
.spl .dir-tabs { margin: 0; }
.spl .oc-list .wdot { flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; }
.mrc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mrc-grid a { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 12px; border: 1px solid var(--line); color: var(--text); background: var(--card); }
.mrc-grid a:hover { border-color: #c7d2fe; background: #fafbff; }
.mrc-grid .ic-tile { position: static; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 10px; }
.mrc-grid a > span:nth-child(2) { display: grid; gap: 2px; font-size: 13.5px; font-weight: 700; }
.mrc-grid small { font-size: 11.5px; font-weight: 500; color: var(--muted); }
.mrc-profile { border-radius: 16px; }
@media (max-width: 959px) { .mrc-grid { grid-template-columns: minmax(0, 1fr); } }
.mrc .siri-new { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.mrc .siri-new input[type="text"] { flex: 1; min-width: 200px; height: 40px; border: 1px solid var(--line); border-radius: 10px; padding: 0 12px; font: inherit; font-size: 13.5px; }
.mrc .siri-new .btn-dark, .mrc .siri-new .btn-light, .mrc .btn-dark[data-copy], .mrc .btn-light[data-copy] { height: 40px; padding: 0 14px; font-weight: 600; }
.mrc .siri-steps { font-size: 13.5px; line-height: 1.6; padding-left: 20px; }
.voice-page .voice-actions .btn-dark, .voice-page .voice-actions .btn-light { height: 44px; padding: 0 16px; font-weight: 600; gap: 6px; }
.mrc-add a > span:last-child { font-size: 14.5px; }

/* ---------- Новая схема меню: 7 разделов + вкладки раздела (2026-10-11) ---------- */
.side-sep { display: block; height: 1px; margin: 10px 12px; background: var(--line); }
.side-nav a.side-sub { height: 38px; font-size: 13.5px; font-weight: 500; color: #475569; }
.section-tabs { display: flex; gap: 4px; margin: -4px 0 14px; padding: 4px; border-radius: 12px; background: #eef1f6; width: max-content; max-width: 100%;
  overflow-x: auto; scrollbar-width: none; }
.section-tabs::-webkit-scrollbar { display: none; }
.section-tabs a { flex-shrink: 0; display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: 9px; font-size: 13px;
  font-weight: 600; color: #475569; white-space: nowrap; }
.section-tabs a:hover { color: var(--text); }
.section-tabs a.on { background: var(--card); color: var(--text); box-shadow: 0 1px 3px rgba(15, 23, 42, .1); }
@media (max-width: 959px) { .section-tabs { width: auto; margin: 0 0 10px; } .section-tabs a { height: 32px; padding: 0 12px; font-size: 12.5px; } }
:root[data-theme="dark"] .section-tabs { background: rgba(255, 255, 255, .06); }
:root[data-theme="dark"] .section-tabs a { color: var(--muted); }
:root[data-theme="dark"] .section-tabs a.on { color: var(--text); }
.mrc-badge { margin-left: auto; align-self: center; flex-shrink: 0; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 11px;
  display: inline-grid; place-items: center; background: #eef2ff; color: #4f46e5; font-size: 12px; font-weight: 700; font-style: normal; }

/* ---------- «Отчёты»: одна «Сводка» + анализ с фильтрами, «Чистая прибыль» и «Поступления» за период (2026-10-12) ---------- */
.rpc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; align-items: start; }
.rpc-an { display: grid; gap: 12px; margin-top: 8px; scroll-margin-top: 12px; }
.rpc-an-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.rpc-an-head h2 { margin: 0; font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.rpc-an-head p { margin: 0; flex: 1 1 320px; font-size: 13px; color: var(--muted); }
.rpc-links { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.rpc-links a { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card); font-size: 13px; font-weight: 600; color: var(--text); }
.rpc-links a:hover { border-color: #c7d2fe; }
.rpc .an-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; align-items: start; }
.rpc .an-results > * { min-width: 0; margin: 0; }
.rp-bar { display: flex; justify-content: flex-start; }
.rp-bar .sel-menu { left: 0; right: auto; }
.period-pick .sel-pill { height: 38px; padding: 0 12px; font-size: 14px; font-weight: 700; background: var(--card); border: 1px solid var(--line); }
.rp-tabs { margin-bottom: 6px; }
.exm-sum.pos, .exm-total b.pos { color: var(--green); }
.inc .exm-bar span { background: #34d399; }
.exc .exm-bar span { background: #f87171; }
.whc-hero b.neg { color: var(--red); }
.whc-docs details > summary { display: flex; align-items: center; gap: 12px; padding: 9px 8px; margin: 0 -8px; border-radius: 8px;
  cursor: pointer; list-style: none; font-size: 13px; }
.whc-docs details > summary::-webkit-details-marker { display: none; }
.whc-docs details > summary > span { flex: 1; min-width: 0; }
.whc-docs details > summary:hover { background: #f8fafc; }
.whc-docs details[open] > summary .i { transform: rotate(180deg); }
.whc-doclist { margin: 0 0 8px 12px; padding-left: 10px; border-left: 2px solid #eef1f6; }
.whc-doclist a, .whc-doclist .oc-row { font-size: 12.5px; }
@media (max-width: 1199px) { .rpc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 959px) {
  .rpc-grid, .rpc .an-results { grid-template-columns: minmax(0, 1fr); }
  .rpc-an-head h2 { font-size: 18px; }
  .rpc-links a { height: 32px; font-size: 12.5px; }
}

/* ---------- «ИИ-центр» — рабочая очередь (2026-10-13): вкладки «ждут», строки с состоянием, документ и кнопки ---------- */
.aix-status { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0; padding: 10px 14px; border-radius: 12px;
  background: var(--card); border: 1px solid var(--line); font-size: 12.5px; color: var(--muted); }
.aix-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--amber); flex-shrink: 0; }
.aix-dot.on { background: var(--green); box-shadow: 0 0 0 3px rgba(34, 197, 94, .18); }
.aix-ask { order: 9; margin-left: auto; display: inline-flex; align-items: center; gap: 5px; font-weight: 700; color: var(--accent); }
.aix-tabs a em { font-style: normal; display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 6px; padding: 0 6px;
  border-radius: 10px; background: #fde68a; color: #92400e; font-size: 11.5px; font-weight: 800; }
.aix-tabs a.on em { background: #fff; color: var(--navy); }
.aix-list li a { align-items: flex-start; }
.aix-list .ev-txt { display: grid; gap: 3px; }
.aix-list .ev-txt b { white-space: normal; line-height: 1.3; }
.aix-list .ev-txt small { white-space: normal; line-height: 1.35; overflow-wrap: anywhere; }
.aix-state { justify-self: start; height: 22px; padding: 0 8px; font-size: 11px; margin-top: 2px; }
.aix-amt { flex-shrink: 0; font-size: 13px; font-weight: 800; white-space: nowrap; padding-top: 2px; }
.aix-sep { padding: 12px 8px 4px; font-size: 11.5px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.aix-empty { padding: 24px 12px !important; text-align: center; font-size: 14px; }
.aix-do .ao-op { margin-bottom: 10px; }
.aix-do .ao-link { margin-top: 10px; }
.aix-twin { background: #fffbeb; border-color: #fde68a; }
.aix-twin a { color: var(--accent); }
.aix-or { margin: 10px 0 8px; }
.aix-do form > .btn-violet { width: 100%; }
.aix .ad-head .pill { flex-shrink: 0; }
.aix .back { display: inline-flex; align-items: center; gap: 4px; margin-bottom: 8px; font-size: 14px; font-weight: 700; color: var(--accent); }
@media (min-width: 960px) {
  .aix-grid { grid-template-columns: 340px minmax(0, 1fr); }
}
@media (min-width: 1440px) {
  .aix-grid { grid-template-columns: 360px minmax(0, 1fr) 380px; }
}
@media (max-width: 959px) {
  .aix .aic-list { position: static; max-height: none; }
  .aix.picked .aic-list, .aix.picked .aix-status, .aix.picked .aix-tabs, .aix.picked .aix-head { display: none !important; }
  .aix:not(.picked) .aic-detail, .aix:not(.picked) .aic-ops { display: none; }
  .aix-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .aix-tabs a { flex-shrink: 0; }
  .aix .ad-preview .paper { max-height: 200px; }          /* телефон: кнопки «Внести» ближе — файл открывается целиком кнопкой */
  .aix .ad-preview img { max-height: 260px; }
}
/* ---------- «Умная голова» — ИИ-помощник по всей ERP (2026-10-13) ---------- */
.aia { max-width: 980px; }
.aia-form { display: grid; gap: 12px; }
.aia-box { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px;
  background: var(--card); color: #7c5cf6; }
.aia-box:focus-within { border-color: #a5b4fc; box-shadow: 0 0 0 3px rgba(99, 102, 241, .12); }
.aia-box textarea { flex: 1; min-width: 0; border: 0; outline: 0; resize: vertical; background: transparent; font: inherit; font-size: 15px;
  color: var(--text); line-height: 1.45; min-height: 46px; }
.aia-row { display: flex; gap: 12px; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; }
.aia-examples { display: flex; flex-wrap: wrap; gap: 6px; flex: 1 1 420px; min-width: 0; }
.aia-examples .chip { height: auto; min-height: 30px; padding: 5px 10px; font-size: 12.5px; text-align: left; white-space: normal; cursor: pointer; }
.aia-row .btn-violet { flex-shrink: 0; }
.aia-answer { display: grid; gap: 10px; scroll-margin-top: 12px; }
.aia-q { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--bg);
  font-size: 14px; font-weight: 600; color: var(--text); }
.aia-q .i { flex-shrink: 0; margin-top: 2px; color: var(--muted); }
.aia-thinking { display: flex; gap: 12px; align-items: center; padding: 14px 4px; }
.aia-thinking b { display: block; font-size: 14.5px; }
.aia-thinking small { color: var(--muted); font-size: 12.5px; }
.aia-spin { width: 26px; height: 26px; flex-shrink: 0; border-radius: 50%; border: 3px solid #e0e7ff; border-top-color: #7c5cf6;
  animation: aia-spin .9s linear infinite; }
@keyframes aia-spin { to { transform: rotate(360deg); } }
.aia-text { font-size: 14.5px; line-height: 1.55; overflow-wrap: anywhere; }
.aia-text p { margin: 0 0 8px; }
.aia-text ul { margin: 0 0 10px; padding-left: 20px; }
.aia-text li { margin: 3px 0; }
.aia-text b { font-weight: 800; }
.aia-err { margin: 0; color: var(--red); font-size: 14px; display: flex; gap: 6px; align-items: flex-start; }
.aia-steps summary { cursor: pointer; font-size: 12.5px; font-weight: 700; color: var(--muted); }
.aia-steps ul { margin: 6px 0 0; padding-left: 18px; font-size: 12.5px; color: var(--muted); }
.aia-meta { margin: 0; font-size: 11.5px; color: var(--muted); }
.aia-note { display: flex; gap: 6px; align-items: flex-start; }
@media (max-width: 959px) {
  .aia-row .btn-violet { width: 100%; }
  .aia-text { font-size: 14px; }
}
.ai-ask { display: flex; gap: 6px; margin-top: 10px; }
.ai-ask input { flex: 1; min-width: 0; height: 40px; padding: 0 12px; border: 1px solid #dfe3f7; border-radius: 10px; background: #fff;
  font: inherit; font-size: 13px; color: var(--text); }
.ai-ask input:focus { outline: 0; border-color: #a5b4fc; }
.ai-ask button { flex-shrink: 0; width: 40px; height: 40px; border: 0; border-radius: 10px; background: #7c5cf6; color: #fff; cursor: pointer;
  display: inline-grid; place-items: center; }
.ai-ask-more { display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; font-size: 12.5px; font-weight: 700; color: #6d28d9; }

/* «Нужно ваше решение» и «Мои вопросы» (этап 1, 2026-10-15) */
.qcard-box { padding: 14px 16px; }
.qcard { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.qcard-text { flex: 1; min-width: 0; }
.qcard-text b { display: block; font-size: 16px; }
.qcard-text small { display: block; color: var(--muted); font-size: 13px; }
.qcard .btn-dark { flex-shrink: 0; height: 36px; padding: 0 14px; font-size: 13px; font-weight: 600; }
.qcard + .qctl { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.qctl h3 { margin: 0 0 6px; font-size: 14px; color: var(--muted); font-weight: 600; }
.qctl ul { list-style: none; margin: 0; padding: 0; }
.qctl li a { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; color: inherit; text-decoration: none; font-size: 14px; }
.qctl li + li a { border-top: 1px solid var(--line); }
.qctl .late { color: var(--red); font-weight: 600; }
.qctl .ok { color: var(--green); }
.qst .bkc-bulk { align-items: center; }
.qst-note { font-size: 12.5px; }
@media (max-width: 640px) {
  .qcard { flex-wrap: wrap; }
  .qcard .btn-dark { width: 100%; justify-content: center; }
}

/* «Мои вопросы» — перевод из группы «Переводы» (2026-10-16) */
.qtr-form { display: grid; gap: 8px; margin-top: 8px; }
.qtr-form label { display: grid; gap: 4px; font-size: 13px; color: var(--muted); }
.qtr-form input, .qtr-form select { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); color: var(--text); min-width: 0; }
.qtr-row { display: flex; gap: 8px; align-items: end; }
.qtr-row > :first-child { flex: 1; min-width: 0; }
.qtr-row input[name^="amount_"] { width: 130px; flex: none; }
.qtr .field-hint { margin: 6px 0 0; }
.qtr-form .combo { width: 100%; }
.qtr-row .combo { flex: 1; min-width: 0; }
.qtr-line { display: grid; gap: 6px; padding: 8px 0; border-top: 1px dashed var(--line); }
.qtr-line .qtr-row > :last-child { flex: none; width: 46%; }
.qtr-line .qtr-row:first-child > :last-child { width: 130px; }

/* «Подключения» (владелец, 2026-10-26): на телефоне — свет, газ, вода, канализация плашками под названием дома */
.oc-mlist li.conn-m a { padding-bottom: 4px; }
.conn-pills { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 0 10px; }
.oc-mlist .conn-pills a.pill { display: inline-flex; height: 22px; padding: 0 9px; font-size: 11px; }

/* Риэлторы в боте («Продажи», 2026-10-27) */
.rb .bkc-file label input[type=text] { min-width: 160px; }
.rb-invite { margin-top: 10px; font-size: 13px; }
.rb-invite summary { cursor: pointer; color: var(--muted); }
.rb-invite pre, .rb-pre { white-space: pre-wrap; font: inherit; font-size: 13px; background: var(--bg-soft, var(--line)); padding: 10px 12px; border-radius: 10px; margin: 8px 0 0; }
