/* Relto CRM — макет у стилі попередньої CRM (AdminLTE): темне бокове меню, світлий контент, компактні таблиці. */
.crm-object-photo { display: block; width: 100%; height: auto; }
.crm-object-photo.is-portrait { height: 440px; object-fit: contain; background: #222; }
:root {
  --crm-sidebar: #343a40;
  --crm-sidebar-hover: #494e53;
  --crm-accent: #28a745;
  --crm-accent-dark: #1e7e34;
  --crm-bg: #f4f6f9;
  --crm-border: #dee2e6;
  --crm-muted: #6c757d;
  --crm-sidebar-w: 280px;
  --crm-surface: #fff;
  --crm-surface-2: #f8f9fa;
  --crm-text-2: #495057;
  --crm-text-strong: #343a40;
  --crm-ticker-bg: #fff3cd;
  --crm-ticker-border: #ffe69c;
  --crm-dup-bg: #fde2e2;
  --crm-important-bg: #e8f7e8;
  --crm-soft-bg: #e9f7ef;
  --crm-thumb-bg: #e9ecef;
  --crm-shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);
}
body.crm { background: var(--crm-bg); font-size: .92rem; }
.crm-wrapper { display: flex; min-height: 100vh; }

/* ---------- бокове меню ---------- */
.crm-sidebar { width: var(--crm-sidebar-w); background: var(--crm-sidebar); color: #c2c7d0; flex-shrink: 0; position: sticky; top: 0;
  height: 100vh; overflow-y: auto; z-index: 1030; }
.crm-brand { display: block; padding: .9rem 1rem; color: #fff; font-weight: 600; font-size: 1.15rem; text-decoration: none;
  border-bottom: 1px solid #4b545c; }
.crm-brand i { color: var(--crm-accent); margin-right: .4rem; }
.crm-nav { padding: .5rem 0 2rem; }
.crm-nav-header { padding: .8rem 1rem .3rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #8a939c; }
.crm-nav-link { display: flex; align-items: center; gap: .6rem; padding: .45rem 1rem; color: #c2c7d0; text-decoration: none; border-radius: .25rem;
  margin: 1px .5rem; }
.crm-nav-link i { width: 1.1rem; text-align: center; opacity: .85; }
.crm-nav-link:hover { background: var(--crm-sidebar-hover); color: #fff; }
.crm-nav-link.active { background: var(--crm-accent); color: #fff; }
.crm-nav-sub { padding-left: 1.2rem; }

/* ---------- верхня панель ---------- */
.crm-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.crm-topbar { display: flex; align-items: center; gap: .5rem; background: var(--crm-surface); border-bottom: 1px solid var(--crm-border); padding: .45rem 1rem;
  position: sticky; top: 0; z-index: 1020; }
.crm-search { display: flex; align-items: center; gap: .4rem; background: var(--crm-bg); border-radius: 2rem; padding: .25rem .8rem; width: min(360px, 60vw); }
.crm-search input { border: 0; background: transparent; outline: 0; width: 100%; }
.crm-search i { color: var(--crm-muted); }
.crm-user { display: flex; align-items: center; gap: .45rem; color: var(--crm-text-strong); text-decoration: none; }
.crm-user img, .crm-avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.crm-avatar { display: inline-flex; align-items: center; justify-content: center; background: var(--crm-accent); color: #fff; font-weight: 600; }
.crm-topbar-icon { position: relative; color: var(--crm-muted); font-size: 1.1rem; padding: .3rem .5rem; }
.crm-topbar-icon .badge { position: absolute; top: -2px; right: -4px; font-size: .62rem; }
.crm-ticker { background: var(--crm-ticker-bg); border-bottom: 1px solid var(--crm-ticker-border); overflow: hidden; white-space: nowrap; font-size: .85rem; }
.crm-ticker-text { display: inline-block; padding: .25rem 0; padding-left: 100%; animation: crm-ticker 25s linear infinite; }
@keyframes crm-ticker { to { transform: translateX(-100%); } }

/* ---------- контент ---------- */
.crm-content { padding: 1rem; }
.crm-page-title { font-size: 1.4rem; font-weight: 400; margin: 0 0 .75rem; }
/* «До списку» і вкладки рубрики прилипають під шапкою з пошуком (висоти — з crm.js) */
.crm-sticky-head { position: sticky; top: var(--crm-topbar-h, 52px); z-index: 1010; background: var(--crm-bg); margin: 0 -1rem; padding: .35rem 1rem 0; }
.crm-sticky-side { top: calc(var(--crm-topbar-h, 52px) + var(--crm-head-h, 0px) + .75rem); }
.crm-breadcrumb { font-size: .8rem; color: var(--crm-muted); margin-bottom: .25rem; }
.crm-breadcrumb a { color: var(--crm-muted); }
.card { border: 0; box-shadow: var(--crm-shadow); margin-bottom: 1rem; }
.card-header { background: var(--crm-surface); font-weight: 500; }
.card-outline { border-top: 3px solid var(--crm-accent); }
.btn-crm { background: var(--crm-accent); border-color: var(--crm-accent); color: #fff; }
.btn-crm:hover { background: var(--crm-accent-dark); border-color: var(--crm-accent-dark); color: #fff; }
a { color: var(--bs-link-color); text-decoration: none; }
a:hover { text-decoration: underline; }

/* вкладки рубрики (Актуальні / Архів / …) */
.crm-tabs { border-bottom: 1px solid var(--crm-border); margin-bottom: .75rem; }
.crm-tabs .nav-link { color: var(--crm-text-2); padding: .45rem .9rem; }
.crm-tabs .nav-link.active { color: var(--crm-accent-dark); border-color: var(--crm-border) var(--crm-border) var(--crm-bg); font-weight: 500; }

/* таблиці */
.crm-table { background: var(--crm-surface); margin: 0; }
.crm-table th { font-weight: 500; font-size: .8rem; color: var(--crm-text-2); background: var(--crm-surface-2); white-space: nowrap; vertical-align: middle; }
.crm-table td { vertical-align: middle; }
.crm-table tr.dup td { background: var(--crm-dup-bg) !important; }
.crm-table .code { font-weight: 600; white-space: nowrap; }
.crm-actions { white-space: nowrap; }
.crm-actions a, .crm-actions button { color: var(--crm-muted); padding: 0 .25rem; background: none; border: 0; }
.crm-actions a:hover, .crm-actions button:hover { color: #212529; }
.crm-icon-red { color: #dc3545 !important; }
.crm-icon-green { color: var(--crm-accent) !important; }
.crm-icon-orange { color: #fd7e14 !important; }
.crm-icon-grey { color: #adb5bd !important; }
.crm-blink { animation: crm-blink 1s steps(2, start) infinite; }
@keyframes crm-blink { to { visibility: hidden; } }
.crm-thumb { width: 72px; height: 54px; object-fit: cover; border-radius: .2rem; background: var(--crm-thumb-bg); }
.crm-realtor-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.crm-presence { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #9ca3af; margin-right: 6px; vertical-align: middle; flex: none; }
.crm-presence.is-on { background: #22c55e; box-shadow: 0 0 0 3px rgba(34, 197, 94, .22); animation: crm-pulse 2.4s ease-in-out infinite; }
@keyframes crm-pulse { 50% { box-shadow: 0 0 0 5px rgba(34, 197, 94, .08); } }
@media (prefers-reduced-motion: reduce) { .crm-presence.is-on { animation: none; } }

/* фільтр */
.crm-filter .form-label { font-size: .75rem; color: #495057; margin-bottom: .1rem; }
.crm-filter .form-control, .crm-filter .form-select { font-size: .85rem; padding: .25rem .5rem; }
.crm-range { display: flex; gap: .25rem; }
.crm-range input { min-width: 0; }

/* форми */
.crm-form .form-label { font-size: .8rem; margin-bottom: .15rem; color: var(--crm-text-2); }
.crm-form .important .form-control, .crm-form .important .form-select { background-color: var(--crm-important-bg); }
.crm-form fieldset { background: var(--crm-surface); border-radius: .35rem; padding: .9rem 1rem .4rem; margin-bottom: 1rem;
  box-shadow: var(--crm-shadow); }
.crm-form legend { font-size: 1rem; font-weight: 600; float: none; width: auto; margin-bottom: .6rem; color: var(--crm-text-strong); }
.crm-quality { color: #fd7e14; }

/* дрібниці */
.text-muted-2 { color: #8a939c; }
.badge-soft { background: var(--crm-soft-bg); color: var(--crm-accent-dark); font-weight: 500; }
.crm-stat { display: flex; align-items: center; gap: .8rem; background: var(--crm-surface); border-radius: .35rem; padding: .8rem 1rem;
  box-shadow: var(--crm-shadow); height: 100%; color: inherit; text-decoration: none; }
.crm-stat i { font-size: 1.6rem; width: 2.5rem; text-align: center; }
.crm-stat .num { font-size: 1.4rem; font-weight: 600; line-height: 1; }
.crm-stat .lbl { font-size: .8rem; color: var(--crm-muted); }
.htmx-request .htmx-indicator { display: inline-block; }
.htmx-indicator { display: none; }

/* мобільний */
@media (max-width: 991.98px) {
  .crm-sidebar { position: fixed; left: calc(-1 * var(--crm-sidebar-w)); transition: left .2s; }
  body.sidebar-open .crm-sidebar { left: 0; box-shadow: 0 0 20px rgba(0,0,0,.3); }
  .crm-content { padding: .6rem; }
  .crm-sticky-head { margin: 0 -.6rem; padding: .35rem .6rem 0; }
}


/* ---------- темна тема (data-bs-theme="dark" на <html>) ---------- */
[data-bs-theme="dark"] {
  --crm-bg: #16191d;
  --crm-border: #2e343b;
  --crm-muted: #9aa4ae;
  --crm-surface: #1f2328;
  --crm-surface-2: #262b31;
  --crm-text-2: #c5ccd3;
  --crm-text-strong: #e6e9ec;
  --crm-sidebar: #111418;
  --crm-sidebar-hover: #23282e;
  --crm-ticker-bg: #3a3218;
  --crm-ticker-border: #5a4b1c;
  --crm-dup-bg: #4a2227;
  --crm-important-bg: #1e3b26;
  --crm-soft-bg: #1d3a2a;
  --crm-thumb-bg: #2b3036;
  --crm-shadow: 0 0 0 1px rgba(255,255,255,.06), 0 1px 3px rgba(0,0,0,.5);
  --bs-body-bg: #16191d;
  --bs-body-color: #dee2e6;
  --bs-link-color: #6ea8fe;
  --bs-link-color-rgb: 110,168,254;
}
[data-bs-theme="dark"] .crm-table th { color: var(--crm-text-2); }
[data-bs-theme="dark"] .text-muted-2 { color: #7d8791; }
[data-bs-theme="dark"] .badge-soft { color: #75d392; }
[data-bs-theme="dark"] .crm-brand { border-bottom-color: #2a2f35; }
[data-bs-theme="dark"] .ts-control, [data-bs-theme="dark"] .ts-dropdown { background: var(--crm-surface-2); color: var(--bs-body-color); border-color: var(--crm-border); }
[data-bs-theme="dark"] .ts-control input { color: var(--bs-body-color); }
[data-bs-theme="dark"] .ts-dropdown .active { background: #2f3740; color: #fff; }

/* кнопка теми */
.crm-theme-btn { background: none; border: 0; }
.crm-theme-btn .fa-sun { display: none; }
[data-bs-theme="dark"] .crm-theme-btn .fa-sun { display: inline; }
[data-bs-theme="dark"] .crm-theme-btn .fa-moon { display: none; }

/* ---------- бокове меню: розділи, що згортаються, і підпункти рубрик ---------- */
.crm-nav-group-btn { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: 0;
  padding: .75rem 1rem .35rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #8a939c; text-align: left; }
.crm-nav-group-btn:hover { color: #c2c7d0; }
.crm-nav-group-btn .fa-chevron-down { font-size: .65rem; transition: transform .15s; transform: rotate(-90deg); }
.crm-nav-group.open > .crm-nav-group-btn .fa-chevron-down { transform: none; }
.crm-nav-group-body { display: none; }
.crm-nav-group.open > .crm-nav-group-body { display: block; }
.crm-nav-parent.current { color: #fff; background: var(--crm-sidebar-hover); }
.crm-nav-caret { font-size: .75rem; transition: transform .15s; opacity: .7; }
.crm-nav-item.open > .crm-nav-parent .crm-nav-caret { transform: rotate(90deg); }
.crm-nav-subs { display: none; margin: 1px 0 4px; }
.crm-nav-item.open > .crm-nav-subs { display: block; }
.crm-nav-sublink { padding-left: 2.1rem; font-size: .88rem; }
.crm-nav-group-body > .crm-nav-sublink { padding-left: 1.4rem; }
.crm-nav-sublink i { font-size: .75rem; }

/* ---------- згорнуте бокове меню («рейка» з іконками), лише на десктопі ---------- */
:root { --crm-sidebar-mini-w: 64px; }
.crm-mini-btn { background: none; border: 0; }
.crm-brand:hover { text-decoration: none; }
@media (min-width: 992px) {
  html.sidebar-mini .crm-sidebar { position: fixed; left: 0; top: 0; width: var(--crm-sidebar-mini-w); overflow-x: hidden;
    transition: width .15s ease, box-shadow .15s ease; scrollbar-width: none; }
  html.sidebar-mini .crm-sidebar::-webkit-scrollbar { display: none; }
  html.sidebar-mini .crm-main { margin-left: var(--crm-sidebar-mini-w); }
  html.sidebar-mini .crm-sidebar.expanded { width: var(--crm-sidebar-w); box-shadow: 4px 0 18px rgba(0,0,0,.35); scrollbar-width: thin; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-brand { text-align: center; padding-left: 0; padding-right: 0; white-space: nowrap; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-brand i { margin: 0; }
  html.sidebar-mini .crm-sidebar:not(.expanded) :is(.crm-brand-text, .crm-nav-text, .crm-nav-caret, .crm-nav-subs, .crm-nav-group-btn .fa-chevron-down) { display: none !important; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-link { justify-content: center; padding: .55rem 0; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-link i { font-size: 1rem; width: auto; }
  /* заголовки розділів рубрик — тонкий роздільник; розділи сервісів — лише іконка */
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group-btn { justify-content: center; padding: .55rem 0; font-size: 1rem; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group-btn .crm-nav-group-icon { margin: 0 !important; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group-btn[data-mini="divider"] { height: 0; padding: 0; margin: .45rem .9rem; width: auto;
    border-top: 1px solid rgba(255,255,255,.12); overflow: hidden; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group-body > .crm-nav-sublink { display: none; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group:has(> .crm-nav-group-body > .crm-nav-sublink.active) > .crm-nav-group-btn:not([data-mini]) {
    color: #fff; background: var(--crm-accent); border-radius: .25rem; margin: 1px .5rem; width: auto; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-parent.current { background: var(--crm-accent); color: #fff; }
  html.sidebar-mini .crm-sidebar .crm-nav-link, html.sidebar-mini .crm-sidebar .crm-nav-group-btn { white-space: nowrap; }
}

/* ---------- підказка з фото (сторінка дублів) ---------- */
.crm-hover-card { position: fixed; z-index: 1085; left: 0; top: 0; width: 300px; pointer-events: none; opacity: 0; visibility: hidden;
  transition: opacity .12s; background: var(--crm-surface); color: var(--bs-body-color); border: 1px solid var(--crm-border);
  border-radius: .5rem; box-shadow: 0 8px 28px rgba(0,0,0,.22); overflow: hidden; font-size: .82rem; }
.crm-hover-card.show { opacity: 1; visibility: visible; }
.crm-hc-img { display: block; width: 100%; height: 180px; object-fit: cover; background: var(--crm-thumb-bg); }
.crm-hc-nophoto { display: flex; align-items: center; justify-content: center; color: var(--crm-muted); font-size: 2rem; height: 90px; }
.crm-hc-body { padding: .5rem .7rem .6rem; display: grid; gap: .15rem; }
[data-bs-theme="dark"] .crm-hover-card { box-shadow: 0 8px 28px rgba(0,0,0,.6); }
.crm-dups td { vertical-align: middle; }
.crm-dups .crm-actions form { margin: 0; }
.crm-dups .crm-actions button, .crm-dups .crm-actions a { padding: .15rem .35rem; }

/* ---------- швидкий перегляд об'єкта (модалка) ---------- */
.crm-qp-carousel { position: relative; border-radius: .35rem; overflow: hidden; background: var(--crm-thumb-bg); }
.crm-qp-carousel .carousel-item img { height: 280px; object-fit: cover; }
.crm-qp-nophoto { height: 220px; border-radius: .35rem; background: var(--crm-thumb-bg); color: var(--crm-muted); display: flex; flex-direction: column;
  align-items: center; justify-content: center; }
.crm-qp-chars td { padding: .15rem .3rem; }
.crm-qp-chars td:first-child { width: 45%; }
.crm-qp-descr { white-space: normal; color: var(--crm-text-2); }
.crm-qp-contacts { background: var(--crm-surface-2); border: 1px solid var(--crm-border); }
@media (max-width: 575.98px) { .crm-qp-carousel .carousel-item img { height: 210px; } }

/* перемикач мови: прапор + код */
.crm-lang-btn { display: inline-flex; align-items: center; gap: .4rem; height: 32px; padding: 0 .55rem; border: 1px solid var(--crm-border, rgba(128,128,128,.3));
  border-radius: 6px; background: transparent; color: inherit; font-size: .8rem; font-weight: 600; letter-spacing: .03em; line-height: 1; }
.crm-lang-btn:hover { background: rgba(128,128,128,.12); }
.crm-lang-btn .fa-chevron-down { font-size: .6rem; opacity: .6; }
.crm-flag { display: inline-flex; width: 20px; height: 14px; flex: 0 0 20px; border-radius: 2px; overflow: hidden; box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.crm-flag svg { width: 100%; height: 100%; display: block; }
.crm-lang-menu { min-width: 170px; }
.crm-lang-menu .dropdown-item { display: flex; align-items: center; gap: .6rem; }
.crm-lang-menu .dropdown-item b { width: 1.8rem; font-size: .8rem; }
.crm-lang-menu .dropdown-item span:last-child { opacity: .75; font-size: .85rem; }

/* ---------- вирівнювання: дашборд, картки, форми ---------- */
.crm-dash .crm-widget > .card, .crm-dash .crm-widget > .crm-stat { height: auto !important; margin: 0; }
.crm-dash .crm-widget > .crm-stat { min-height: 76px; }
.crm-stat { min-height: 76px; }
.card-header { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; padding: .6rem 1rem; }
.card-footer { background: var(--crm-surface); border-top: 1px solid var(--crm-border); padding: .5rem 1rem; }
.card-body > .table:last-child tr:last-child > td, .card-body > .table-responsive:last-child tr:last-child > td { border-bottom: 0; }
.card > .card-body.p-0 > .table td:first-child, .card > .card-body.p-0 > .table th:first-child { padding-left: 1rem; }
.btn.w-100 { white-space: normal; }

/* групи галочок (CheckboxSelectMultiple): «чіпи» в рядок */
.crm-checks { display: flex; flex-wrap: wrap; gap: .35rem .5rem; padding: .35rem 0; }
.crm-check { display: inline-flex; align-items: center; gap: .4rem; margin: 0; padding: .25rem .6rem; border: 1px solid var(--crm-border);
  border-radius: 999px; background: var(--crm-surface-2); font-size: .82rem; cursor: pointer; user-select: none; }
.crm-check .form-check-input { margin: 0; float: none; flex: 0 0 auto; }
.crm-check:has(input:checked) { border-color: var(--crm-accent); background: var(--crm-soft-bg); }

/* поля форм у темній темі — рівний фон */
[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select { background-color: var(--crm-surface-2); border-color: var(--crm-border); }
[data-bs-theme="dark"] .form-control:focus, [data-bs-theme="dark"] .form-select:focus { background-color: var(--crm-surface-2); }
[data-bs-theme="dark"] .card-header, [data-bs-theme="dark"] .card-footer { border-color: var(--crm-border); }
[data-bs-theme="dark"] .crm-actions a:hover, [data-bs-theme="dark"] .crm-actions button:hover { color: #fff; }
[data-bs-theme="dark"] .crm-filter .form-label { color: var(--crm-text-2); }

/* форми: поля в рядку вирівнюються по низу, галочки — на рівні полів, заголовок блоку — всередині картки */
.crm-form fieldset > .row, .crm-form .row.align-end { align-items: flex-end; }
.crm-check-field { display: flex; align-items: center; gap: .45rem; min-height: calc(1.5em + .5rem + 2px); margin: 0; padding-left: 0; }
.crm-check-field .form-check-input { float: none; margin: 0; flex: 0 0 auto; }
.crm-check-field .form-check-label { font-size: .85rem; }
.crm-form legend { float: left; width: 100%; padding-bottom: .5rem; margin-bottom: .75rem; border-bottom: 1px solid var(--crm-border); font-size: .95rem; }
.crm-form legend + * { clear: both; }
.crm-form fieldset { padding: .9rem 1rem .5rem; }

/* без горизонтального «пливу» сторінки; вкладки на телефоні — прокручуються в один рядок */
.crm-content { overflow-x: clip; }
@media (max-width: 767.98px) {
  .crm-content .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .crm-content .nav-tabs::-webkit-scrollbar { display: none; }
  .crm-content .nav-tabs .nav-link { white-space: nowrap; }
  .crm-page-title { font-size: 1.15rem; }
}

/* сортування кліком по заголовку */
.crm-th-sort { color: inherit; text-decoration: none; white-space: nowrap; }
.crm-th-sort i { opacity: .35; font-size: .75em; }
.crm-th-sort:hover i, .crm-th-sort.active i { opacity: 1; }
.crm-th-sort.active { color: var(--crm-accent-dark); }
[data-bs-theme="dark"] .crm-th-sort.active { color: #75d392; }
th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
th[data-sort]::after { content: "\f0dc"; font: var(--fa-font-solid); margin-left: .3rem; opacity: .35; font-size: .75em; }
th[data-sort].asc::after { content: "\f885"; opacity: 1; }
th[data-sort].desc::after { content: "\f884"; opacity: 1; }

/* гортання фото в плитках */
.crm-card-carousel { position: relative; }
.crm-card-carousel img { height: 170px; object-fit: cover; }
.crm-card-carousel .carousel-control-prev, .crm-card-carousel .carousel-control-next { width: 18%; opacity: 0; transition: opacity .15s; }
.crm-card-carousel:hover .carousel-control-prev, .crm-card-carousel:hover .carousel-control-next { opacity: .9; }
@media (hover: none) { .crm-card-carousel .carousel-control-prev, .crm-card-carousel .carousel-control-next { opacity: .8; } }
.crm-car-count { position: absolute; right: .4rem; bottom: .4rem; background: rgba(0,0,0,.55); color: #fff; font-size: .7rem; padding: .05rem .4rem; border-radius: 999px; pointer-events: none; }

/* рядок логотипу з кнопкою згортання меню; кнопка «Перейти на сайт» унизу меню */
.crm-sidebar { display: flex; flex-direction: column; }
.crm-nav { flex: 1 0 auto; }
.crm-brand-row { display: flex; align-items: center; border-bottom: 1px solid #4b545c; }
[data-bs-theme="dark"] .crm-brand-row { border-bottom-color: #2a2f35; }
.crm-brand-row .crm-brand { flex: 1; min-width: 0; border-bottom: 0; }
.crm-brand-row .crm-mini-btn { width: 32px; height: 32px; margin-right: .6rem; align-items: center; justify-content: center; border-radius: 6px;
  color: #8a939c; transition: transform .15s, background .15s; }
.crm-brand-row .crm-mini-btn:hover { background: var(--crm-sidebar-hover); color: #fff; }
.crm-sidebar-foot { position: sticky; bottom: 0; padding: .6rem .5rem; background: var(--crm-sidebar); border-top: 1px solid #4b545c; }
[data-bs-theme="dark"] .crm-sidebar-foot { border-top-color: #2a2f35; }
.crm-site-link { display: flex; align-items: center; gap: .6rem; padding: .5rem .75rem; border-radius: .3rem; border: 1px solid #4b545c;
  color: #c2c7d0; text-decoration: none; }
.crm-site-link:hover { background: var(--crm-accent); border-color: var(--crm-accent); color: #fff; text-decoration: none; }
/* «Розширення для браузера» — виділений пункт над «Перейти на сайт» */
.crm-ext-link { margin-bottom: .4rem; border-color: #28a745; color: #fff; background: rgba(40, 167, 69, .18); }
.crm-ext-link i { color: #5dd879; }
.crm-ext-link:hover i, .crm-ext-link.active i { color: #fff; }
.crm-ext-link.active { background: #28a745; border-color: #28a745; color: #fff; }
@media (min-width: 992px) {
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-brand { display: none; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-brand-row { justify-content: center; padding: .75rem 0; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-brand-row .crm-mini-btn { margin: 0; transform: rotate(180deg); }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-site-link { justify-content: center; padding: .5rem 0; }
}

/* лічильник можливих дублів біля коду */
.crm-dup-badge { font-size: .68rem; font-weight: 600; vertical-align: middle; text-decoration: none; }
.crm-dup-badge:hover { text-decoration: none; filter: brightness(1.1); }
.crm-actions .dropdown-menu form { margin: 0; }
.crm-actions .dropdown-menu .dropdown-item { padding-left: .9rem; padding-right: .9rem; }

/* кнопки-джерела замість довгих посилань у примітці */
.crm-note { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .35rem; }
.crm-src-btn { display: inline-flex; align-items: center; gap: .3rem; padding: .05rem .45rem; border: 1px solid var(--crm-border); border-radius: 999px;
  background: var(--crm-surface-2); color: var(--crm-text-2); font-size: .72rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.crm-src-btn i { font-size: .65rem; opacity: .7; }
.crm-src-btn:hover { border-color: var(--crm-accent); color: var(--crm-accent-dark); text-decoration: none; }
[data-bs-theme="dark"] .crm-src-btn:hover { color: #75d392; }

/* ---------- розділи бокового меню — кожен свого кольору ---------- */
.crm-nav-group { --tone: #8a939c; margin: 4px .5rem; border-radius: .4rem; }
.crm-nav-group[data-tone="sale"]        { --tone: #22c55e; }
.crm-nav-group[data-tone="rent"]        { --tone: #3b82f6; }
.crm-nav-group[data-tone="fa-handshake"] { --tone: #f59e0b; }
.crm-nav-group[data-tone="fa-toolbox"]  { --tone: #14b8a6; }
.crm-nav-group[data-tone="fa-sliders"]  { --tone: #a855f7; }
.crm-nav-group[data-tone="fa-gear"]     { --tone: #f43f5e; }
.crm-nav-group > .crm-nav-group-btn { color: #e5e7eb; font-weight: 700; letter-spacing: .06em; padding: .6rem .75rem; border-radius: .4rem;
  border-left: 3px solid var(--tone); background: color-mix(in srgb, var(--tone) 12%, transparent); }
.crm-nav-group > .crm-nav-group-btn:hover { background: color-mix(in srgb, var(--tone) 22%, transparent); color: #fff; }
.crm-nav-group > .crm-nav-group-btn i:first-child, .crm-nav-group > .crm-nav-group-btn .crm-nav-text i { color: var(--tone); }
.crm-nav-group.open > .crm-nav-group-btn { background: color-mix(in srgb, var(--tone) 20%, transparent); color: #fff; }
.crm-nav-group.open > .crm-nav-group-body { border-left: 3px solid color-mix(in srgb, var(--tone) 45%, transparent); margin: 2px 0 6px; padding-top: 2px; }
.crm-nav-group > .crm-nav-group-body .crm-nav-link { margin-left: .25rem; margin-right: 0; }
.crm-nav-group > .crm-nav-group-body .crm-nav-link.active { background: var(--tone); }
.crm-nav-group > .crm-nav-group-body .crm-nav-parent.current { box-shadow: inset 3px 0 0 var(--tone); }
@media (min-width: 992px) {
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group { margin: 4px .35rem; }
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-nav-group > .crm-nav-group-btn { justify-content: center; padding: .45rem 0; }
}

/* ширина меню не «стрибає» при появі прокрутки: місце під смугу зарезервоване завжди, смуга тонка */
.crm-sidebar { scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.18) transparent; overflow-x: hidden; }
.crm-sidebar::-webkit-scrollbar { width: 6px; }
.crm-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 3px; }
.crm-sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.3); }
.crm-sidebar::-webkit-scrollbar-track { background: transparent; }
.crm-nav-link .crm-nav-text { min-width: 0; }

/* підказки глобального пошуку */
.crm-suggest { top: calc(100% + .25rem); left: 0; right: 0; z-index: 1060; max-height: 70vh; overflow-y: auto; min-width: 280px; }
.crm-suggest .list-group-item.active .text-muted { color: rgba(255,255,255,.85) !important; }
/* Підтримка Relto: пункт у нижній частині меню зі значком непрочитаних відповідей */
.crm-support-link { margin-bottom: .4rem; position: relative; }
.crm-support-link.active { background: var(--crm-accent); border-color: var(--crm-accent); color: #fff; }
@media (min-width: 992px) {
  html.sidebar-mini .crm-sidebar:not(.expanded) .crm-support-badge { position: absolute; top: -6px; right: -6px; font-size: .6rem; }
}

/* переноси рядків: заголовки рівними рядками, текст без «висячих» слів */
h1, h2, h3, h4, h5, .card-title, .modal-title { text-wrap: balance; }
p, li, .form-text, .alert, .small, .text-muted, td, dd { text-wrap: pretty; }

/* форма об'єкта: компактні контакти власника — Viber / WhatsApp перемикачами в полі телефону */
.crm-owner .crm-msgr { padding: 0 .45rem; color: var(--bs-secondary-color); }
.crm-owner .btn-check:checked + .crm-msgr-viber { background: #7360f2; border-color: #7360f2; color: #fff; }
.crm-owner .btn-check:checked + .crm-msgr-whatsapp { background: #25d366; border-color: #25d366; color: #fff; }
.crm-owner .important > .form-label { font-weight: 600; }

/* підказки «?» біля налаштувань і полів ({% tip %}, tip поля форми) */
.crm-tip, .crm-tip-icon { color: var(--bs-secondary-color); cursor: help; font-size: .85em; margin-left: .2rem; }
.crm-tip:hover, .crm-tip:focus { color: var(--bs-success); outline: none; }
.tooltip .tooltip-inner { max-width: 340px; text-align: left; }

/* список об'єктів: контакти ріелтора — телефони й месенджери / соцмережі іконками */
.crm-realtor-links { display: flex; gap: .45rem; margin-top: .15rem; font-size: 1rem; }
.crm-realtor-links a { color: var(--bs-secondary-color); text-decoration: none; }
.crm-realtor-links .fa-telegram { color: #229ed9; } .crm-realtor-links .fa-viber { color: #7360f2; }
.crm-realtor-links .fa-whatsapp { color: #25d366; } .crm-realtor-links .fa-instagram { color: #d6249f; }
.crm-realtor-links .fa-facebook { color: #1877f2; } .crm-realtor-links .fa-linkedin { color: #0a66c2; } .crm-realtor-links .fa-youtube { color: #ff0000; }

/* повернення до списку з картки об'єкта («← До списку»): рядок, з якого перейшли, — у полі зору й підсвічений */
tr[id^="obj-"] { scroll-margin-top: 90px; }
tr[id^="obj-"]:target > td { background: rgba(25, 135, 84, .12) !important; transition: background 1.5s; }
div[id^="obj-"] { scroll-margin-top: 90px; }
div[id^="obj-"]:target > .card { box-shadow: 0 0 0 3px rgba(25, 135, 84, .45); }

/* підказки вулиць зі старою / народною назвою (модуль geo_names): «стар. …» сірим під офіційною назвою */
.crm-geo-via { font-size: .8em; color: var(--bs-secondary-color); line-height: 1.2; }
.crm-geo-via-i { cursor: help; opacity: .7; }
.crm-geo-confirm .btn { white-space: normal; text-align: left; }
