/* Tom Holding CRM для агентства недвижимости. Тема поверх общей дизайн-системы (../assets/core.css).
 * Общие компоненты приложения здесь, стили экранов ниже по разделам (каждый экран дописывает свой блок). */

:root {
  --blue: #2f4bd8; --blue2: #5670f0; --blue-soft: #a9b6ff; --blue-bg: #eef1ff;
  --gold: #b88a3e; --gold-bg: #fbf4e7;
  --side-bg: radial-gradient(520px 340px at 0% 0%, rgba(184,138,62,.28), transparent 70%), radial-gradient(600px 400px at 100% 100%, rgba(47,75,216,.22), transparent 70%), #0a1028;
  --brand: linear-gradient(140deg, #d6ab5f, #9b6e27); --brand-ink: #fff;
  --hero: radial-gradient(360px 220px at 100% 0%, rgba(184,138,62,.45), transparent 70%), #0a1028;
}

/* ---------- роль ---------- */
.role-sw { display: flex; flex-direction: column; gap: 6px; }
.role-b { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 10px; border-radius: 14px; border: 1px solid var(--side-line); color: var(--side-ink); }
.role-b:hover { background: var(--side-on); }
.role-b b { display: block; font-size: 13px; line-height: 1.2; } .role-b small { display: block; font-size: 11px; color: var(--side-mute); }
.role-b svg.i { width: 16px; height: 16px; color: var(--side-mute); }
.role-o { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 12px; border: 1px solid var(--line); border-radius: 14px; }
.role-o:hover { border-color: var(--blue); } .role-o.on { border-color: var(--blue); background: var(--blue-bg); }
.role-o b { display: block; } .role-o small { display: block; }

/* ---------- мелочи ---------- */
.mt4 { margin-top: 4px; } .mt20 { margin-top: 20px; } .mt32 { margin-top: 32px; }
.chn { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; color: var(--c); white-space: nowrap; }
.chn::before { content: ""; width: 8px; height: 8px; border-radius: 3px; background: var(--c); }
.tag.gold { background: var(--gold-bg); color: var(--gold); }
.price { font: 600 15px/1.2 var(--head); letter-spacing: -.02em; }
.kv { display: grid; grid-template-columns: minmax(120px, 40%) 1fr; gap: 8px 14px; font-size: 13.5px; }
.kv dt { color: var(--mute); } .kv dd { margin: 0; font-weight: 600; }
.lst { display: flex; flex-direction: column; }
.lst > * { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line2); }
.lst > *:last-child { border-bottom: 0; }
.lst a:hover b, .lst button:hover b { color: var(--blue); }
.lst button { width: 100%; text-align: left; }
.dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--c, var(--mute)); }
.pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 99px; background: var(--bg2); font-size: 12px; font-weight: 700; color: var(--ink2); }

/* вкладки-фильтры */
.tabs { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 14px; background: var(--bg2); }
.tabs button { padding: 8px 14px; border-radius: 11px; font-weight: 700; font-size: 13px; color: var(--ink2); }
.tabs button i { font-style: normal; font: 600 11px var(--mono); margin-left: 4px; color: var(--mute); }
.tabs button.on { background: var(--paper); color: var(--ink); box-shadow: 0 4px 12px -6px rgba(11,18,48,.25); }
.tabs button.on i { color: var(--blue); }

/* обложка объекта (схема вместо фото) */
.thumb { position: relative; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: linear-gradient(150deg, color-mix(in srgb, var(--c) 16%, #fff), color-mix(in srgb, var(--c) 30%, #f4f5fa)); }
.thumb svg { position: absolute; inset: 14% 10% 12%; width: 80%; height: 74%; fill: rgba(255,255,255,.55); stroke: color-mix(in srgb, var(--c) 55%, #fff); stroke-width: .8; }
.thumb-t { position: absolute; left: 10px; top: 10px; font: 600 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb, var(--c) 80%, #000); background: rgba(255,255,255,.85); padding: 4px 8px; border-radius: 8px; }
.thumb-x { position: absolute; right: 10px; top: 10px; font-size: 11px; font-weight: 800; color: #fff; background: var(--gold); padding: 4px 8px; border-radius: 8px; }
.thumb-p { position: absolute; right: 10px; bottom: 10px; display: inline-flex; gap: 4px; align-items: center; font-size: 11px; font-weight: 700; color: var(--ink2); background: rgba(255,255,255,.85); padding: 3px 8px; border-radius: 8px; }
.thumb-p svg.i { width: 13px; height: 13px; }
.thumb.big { aspect-ratio: 16 / 8; border-radius: 18px; }

/* боковая карточка */
.dw-ov { position: fixed; inset: 0; z-index: 80; background: rgba(6,11,32,0); transition: background .22s var(--ease); }
.dw-ov.on { background: rgba(6,11,32,.38); }
.dw { position: absolute; right: 0; top: 0; bottom: 0; width: min(560px, 100%); background: var(--bg); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .26s var(--ease); box-shadow: -30px 0 80px -30px rgba(6,11,32,.5); }
.dw.wide { width: min(820px, 100%); }
.dw-ov.on .dw { transform: none; }
.dw-h { display: flex; align-items: flex-start; gap: 12px; padding: 22px 24px 16px; background: var(--paper); border-bottom: 1px solid var(--line); }
.dw-h h2 { font-size: 19px; }
.dw-b { flex: 1; overflow-y: auto; padding: 20px 24px 32px; display: flex; flex-direction: column; gap: 16px; }
.dw-f { display: flex; gap: 8px; flex-wrap: wrap; padding: 14px 24px; background: var(--paper); border-top: 1px solid var(--line); }
.sec-t { font: 600 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); margin-bottom: 10px; }

/* тост автоматики */
.toast.auto { background: linear-gradient(135deg, #1b2459, #0a1028); }
.toast.auto svg.i { color: #e9c27a; }

@media (max-width: 860px) {
  .dw { width: 100%; } .dw-b { padding: 16px; } .dw-h { padding: 16px; } .dw-f { padding: 12px 16px; }
  .kv { grid-template-columns: 1fr; gap: 2px 0; } .kv dd { margin-bottom: 8px; }
}

/* ===== ниже стили экранов: каждый экран в своём блоке ===== */

/* логотип Том Холдинг в меню */
.brand-m:has(img) { background: #fff; box-shadow: 0 6px 16px -8px rgba(0,0,0,.5); }
.brand-m img { width: 26px; height: 26px; display: block; }
