/* Шрифты локально: раздел договоров хранит паспортные данные, внешние
   домены (в т.ч. Google Fonts) со страниц CRM убраны */
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('fonts/golostext-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('fonts/golostext-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('fonts/golostext-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('fonts/golostext-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+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Martian Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('fonts/martianmono-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Martian Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('fonts/martianmono-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Martian Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('fonts/martianmono-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Martian Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('fonts/martianmono-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+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--ink:#12333B;--soft:#5b7077;--line:#dbe3e5;--accent:#2F8F5B;--bg:#fff}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
.top{border-bottom:1px solid var(--line);background:#fff}
.top nav{display:flex;gap:16px;align-items:center;height:52px;flex-wrap:wrap}
.top a{color:var(--ink);text-decoration:none;font-size:15px}
.top .brand{font-weight:700}
.right{margin-left:auto}
h1{font-size:24px}
.flash{padding:10px 14px;border-radius:8px;margin:12px 0}
.flash.ok{background:#e7f5ec;color:#1d6b40}
.flash.error{background:#fdecea;color:#b3261e}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.filters input,.filters select{padding:8px;border:1px solid var(--line);border-radius:8px;max-width:130px}
.filters button,.btn{padding:8px 16px;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;text-decoration:none;font-size:14px;display:inline-block}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:16px 0}
.card{border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--ink)}
.card img{width:100%;height:160px;object-fit:cover;display:block}
.card-body{padding:12px;display:flex;flex-direction:column;gap:4px}
.price{color:var(--accent);font-weight:700}
.price-big{font-size:26px;font-weight:700;color:var(--accent);margin:4px 0}
.approx{color:var(--soft)}
.gallery{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.gallery img{max-width:220px;border-radius:8px}
table.props td:first-child{color:var(--soft);padding-right:16px}
table.list{width:100%;border-collapse:collapse;margin:12px 0}
table.list td{border-bottom:1px solid var(--line);padding:10px 8px;vertical-align:top;font-size:14.5px}
/* по умолчанию th центрируется — из-за этого шапка не совпадала со столбцами */
table.list th{text-align:left;padding:0 8px 8px;font-size:11.5px;font-weight:600;
  color:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap}
/* курсы: узкая таблица с фиксированными колонками, числа — столбиком по правому краю,
   иначе на широком экране дата и валюта разъезжаются в разные концы строки */
.rt-hint{max-width:660px}
.rt-rates{table-layout:fixed;max-width:660px}
.rt-rates th:nth-child(1),.rt-rates td:nth-child(1){width:120px}
.rt-rates th:nth-child(2),.rt-rates td:nth-child(2){width:90px}
.rt-rates th:nth-child(3),.rt-rates td:nth-child(3),
.rt-rates th:nth-child(4),.rt-rates td:nth-child(4){width:110px;text-align:right}
.rt-rates td:nth-child(5){color:var(--soft)}
@media(max-width:700px){.rt-rates{table-layout:auto}
  .rt-rates th:nth-child(5),.rt-rates td:nth-child(5){display:none}}
tr.off{opacity:.45}
.ok{color:var(--accent)}
.mut{background:#eef2f3;border:none;border-radius:6px;padding:6px 10px;cursor:pointer}
.actions form{display:inline-block;margin-right:6px}
.chip{display:inline-block;padding:5px 12px;border:1px solid var(--line);border-radius:999px;margin-right:6px;text-decoration:none;color:var(--ink);font-size:14px}
.chip.on{background:var(--ink);color:#fff}
.lead-form,.edit-form{display:flex;flex-direction:column;gap:10px;max-width:520px;margin:16px 0}
.lead-form input,.lead-form textarea,.edit-form input,.edit-form select,.edit-form textarea{padding:9px;border:1px solid var(--line);border-radius:8px;font:inherit;width:100%}
.edit-form label{font-size:14px;color:var(--soft);display:flex;flex-direction:column;gap:4px}
.edit-form .check{flex-direction:row;align-items:center}
.edit-form .check input{width:auto}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.inline-form input,.inline-form select{padding:8px;border:1px solid var(--line);border-radius:8px}
.admin-nav{display:flex;gap:14px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line);margin-bottom:8px}
.admin-nav a{color:var(--ink);text-decoration:none;font-size:14.5px}
.stats{display:flex;gap:20px;flex-wrap:wrap;margin:16px 0}
.stats div{border:1px solid var(--line);border-radius:12px;padding:14px 20px;text-align:center}
.stats b{font-size:22px;display:block}
.stats span{color:var(--soft);font-size:13px}
@media(max-width:600px){.filters input,.filters select{max-width:47%}}

/* ── Шапка CRM (дизайн «Риелти») ────────────────────────────────────────── */
.crm-top{height:58px;display:flex;align-items:center;gap:26px;padding:0 22px;background:#fff;border-bottom:1px solid #e6e8ec;position:sticky;top:0;z-index:30;font-family:'Golos Text',system-ui,sans-serif}
.crm-brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px;letter-spacing:-.03em;color:#1a1d24;text-decoration:none}
.crm-logo{width:27px;height:27px;border-radius:8px;background:#1a1d24;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800}
.crm-nav{display:flex;gap:2px}
.crm-nav a,.crm-nav .soon{font-size:13.5px;font-weight:600;padding:7px 12px;border-radius:8px;color:#6b7280;text-decoration:none}
.crm-nav a.on{color:#1a1d24;background:#f1f2f4}
.crm-nav .soon{color:#c3c7cf;cursor:default}
.crm-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.crm-search{display:flex;align-items:center;gap:8px;width:230px;height:36px;background:#f1f2f4;border:1px solid #e6e8ec;border-radius:9px;padding:0 12px;color:#9aa0ab;font-size:13px}
.crm-user{position:relative}
.crm-avatar{width:34px;height:34px;border-radius:50%;background:#1f9d57;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;cursor:pointer;list-style:none;user-select:none}
.crm-avatar::-webkit-details-marker{display:none}
.crm-menu{position:absolute;right:0;top:42px;background:#fff;border:1px solid #e6e8ec;border-radius:12px;box-shadow:0 12px 40px rgba(16,24,40,.14);padding:6px;min-width:210px;display:flex;flex-direction:column;z-index:40}
.crm-menu a{font-size:13.5px;font-weight:500;color:#1a1d24;text-decoration:none;padding:8px 12px;border-radius:8px}
.crm-menu a:hover{background:#f1f2f4}
.crm-menu hr{border:none;border-top:1px solid #f0f1f4;margin:5px 6px}
@media(max-width:900px){.crm-search{display:none}}

/* ── Канбан сделок (дизайн «Риелти») ────────────────────────────────────── */
.kb{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;padding:4px 0 48px}
.kb .mono{font-family:'Martian Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.kb-toolbar{display:flex;align-items:center;gap:14px;margin:18px 0;flex-wrap:wrap}
.kb-title{font-size:23px;font-weight:800;margin:0;letter-spacing:-.03em}
.kb-seg{display:flex;gap:3px;background:#fff;border:1px solid #e6e8ec;border-radius:10px;padding:3px}
.kb-seg a{font-size:13px;font-weight:600;padding:6px 13px;border-radius:7px;color:#6b7280;text-decoration:none;display:flex;align-items:center;gap:6px}
.kb-seg a.on{color:#fff;background:#1a1d24}
.kb-hotdot{width:6px;height:6px;border-radius:50%;background:#e0413a}
.kb-new{margin-left:auto;border:none;background:#2f6df0;color:#fff;font-size:13px;font-weight:600;padding:9px 15px;border-radius:9px;cursor:pointer;display:flex;align-items:center;gap:6px;text-decoration:none}
.kb-board{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:10px}
.kb-col{flex:none;width:250px;border-radius:13px;padding:9px;background:#eef0f2;border:1.5px dashed transparent;transition:background .12s}
.kb-col.over{background:#eaf1ff;border-color:#9cc0ff}
.kb-col-head{display:flex;align-items:center;gap:8px;padding:5px 7px 11px}
.kb-col-dot{width:9px;height:9px;border-radius:50%}
.kb-col-name{font-size:13.5px;font-weight:700;letter-spacing:-.01em}
.kb-col-count{margin-left:auto;font-size:12px;font-weight:700;color:#9aa0ab;background:#fff;border:1px solid #e6e8ec;min-width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:7px;padding:0 6px}
.kb-cards{display:flex;flex-direction:column;gap:9px}
.kb-card{display:block;background:#fff;border:1px solid #e6e8ec;border-left:3px solid #8a92a3;border-radius:11px;padding:12px 13px;box-shadow:0 1px 2px rgba(16,24,40,.04);cursor:grab;text-decoration:none;color:#1a1d24}
.kb-card.dragging{opacity:.35}
.kb-card-top{display:flex;align-items:flex-start;gap:8px}
.kb-price{font-size:17px;font-weight:600;letter-spacing:-.02em;flex:1}
.kb-tag{font-size:10.5px;font-weight:700;padding:3px 7px;border-radius:6px;white-space:nowrap}
.kb-addr{font-size:12.5px;color:#6b7280;margin-top:4px;line-height:1.35}
.kb-alert{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:7px;background:#fdf3df;color:#b9770a}
.kb-alert .kb-alert-dot{width:5px;height:5px;border-radius:50%;background:#e0930f}
.kb-alert.overdue{background:#fdeceb;color:#d2362f}
.kb-alert.overdue .kb-alert-dot{background:#e0413a}
.kb-card-foot{display:flex;align-items:center;gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid #f0f1f4}
.kb-dots{display:flex;gap:3px}
.kb-dot{width:6px;height:6px;border-radius:50%;background:#e2e5ea}
.kb-dot.done{background:#1f9d57}
.kb-dot.next-urgent{background:#e0930f}
.kb-dot.next-overdue{background:#e0413a}
.kb-count-label{margin-left:auto;font-size:11.5px;font-weight:700;color:#6b7280}
.kb-add{display:flex;align-items:center;gap:6px;padding:9px 7px 4px;font-size:12.5px;font-weight:600;color:#9aa0ab;text-decoration:none}

/* ── «В работе»: кейсы услуг ────────────────────────────────────────────── */
.kb-type-filter select{height:36px;border:1px solid #e6e8ec;border-radius:9px;padding:0 10px;font-family:inherit;font-size:12.5px;background:#fff;outline:none;cursor:pointer;max-width:220px}
.kb-case-type{font-size:14px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.kb-case-cost{margin-left:auto;font-size:11.5px;font-weight:600;color:#1a1d24}
.kb-card-foot .kb-case-cost{margin-left:auto}
/* комиссия агентства — доход, поэтому цветом дохода и отдельно от стоимости услуг */
.kb-case-fee{margin-left:auto;font-size:11.5px;font-weight:600;color:#1f9d57}
.kb-case-cost + .kb-case-fee{margin-left:6px}
.kb-tag-fee{background:#e8f6ee;color:#1f7a48}
.cs-status-bar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.cs-status{font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:9px;background:#fff;color:#4a5160;border:1px solid #e6e8ec;cursor:pointer}
.cs-status.on{background:var(--sc, #1a1d24);border-color:var(--sc, #1a1d24);color:#fff}
.cs-status.cancel.on{background:#e0413a;border-color:#e0413a}
.cs-add-stage{display:flex;gap:8px;padding-top:10px;border-top:1px solid #f0f1f4;flex-wrap:wrap}
.cs-add-stage input[name=name]{flex:1;min-width:160px;border:1px solid #e6e8ec;border-radius:8px;padding:8px 11px;font:inherit;font-size:12.5px}
.cs-add-stage input[name=cost]{width:130px;border:1px solid #e6e8ec;border-radius:8px;padding:8px 11px;font:inherit;font-size:12.5px}
.cs-cost-log{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#9aa0ab}
.cs-logged{font-style:normal;color:#e0930f;cursor:help}
.cs-flags{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0 10px;border-bottom:1px solid #f0f1f4;margin-bottom:6px}
.cs-orphan-logs{display:flex;flex-direction:column;gap:3px;margin-top:12px;padding-top:10px;border-top:1px solid #f0f1f4}
.cs-orphan-logs b{font-size:11.5px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.04em}
.cs-orphan-logs span{font-size:11.5px;color:#6b7280}
.cs-approx{font-size:11px;color:#9aa0ab;margin-top:6px;display:block}
/* управление фото: миниатюры с кнопками — главная, порядок, удаление */
.od-pm{display:flex;gap:10px;flex-wrap:wrap;margin:2px 0 16px}
.od-pm-item{display:flex;flex-direction:column;align-items:center;gap:4px}
.od-pm-item img{width:96px;height:70px;object-fit:cover;border-radius:8px;display:block;border:1px solid #e6e8ec}
.od-pm-item:first-child img{border-color:#1f9d57}
.od-pm-acts{display:flex;gap:4px;align-items:center}
.od-pm-btn{border:1px solid #e6e8ec;background:#fff;border-radius:6px;font-size:11px;cursor:pointer;padding:2px 7px;color:#4a5160;line-height:1.5}
.od-pm-btn:hover{border-color:#2f6df0;color:#2f6df0}
.od-pm-btn.del:hover{border-color:#f3c6c3;color:#d2362f;background:#fdeceb}
.od-pm-main{font-size:10px;font-weight:700;color:#1f9d57;background:#e7f6ee;border-radius:6px;padding:2px 8px}
/* фото для внешних площадок: ярлык на снимке и включённая кнопка */
.od-pm-item{position:relative}
.od-pm-flag{position:absolute;top:6px;left:6px;font-size:10px;font-weight:700;color:#fff;background:#2f6df0;border-radius:6px;padding:2px 8px;pointer-events:none}
.od-pm-btn.on{background:#2f6df0;border-color:#2f6df0;color:#fff}

/* пересчёт под ценой объекта — подпись, а не самостоятельная сумма */
.ob-approx{font-size:10.5px;color:#9aa0ab;margin-top:2px}
.od-approx{font-size:11.5px;color:#8a92a3;margin-top:4px}
.st-card-approx{font-size:11px;color:#9aa0ab;margin-top:2px}
.cs-currency-note{font-size:11.5px;color:#b9770a;background:#fdf3df;border-radius:8px;padding:8px 10px;margin:10px 0 0;line-height:1.45}
.off-card{opacity:.6}
/* журнал аудита */
.au-filter{margin-left:auto}
.au-filter select{height:36px;border:1px solid #e6e8ec;border-radius:9px;padding:0 10px;font-family:inherit;font-size:12.5px;background:#fff;outline:none;cursor:pointer}
.au-table{padding:6px 20px}
.au-row{display:flex;align-items:flex-start;gap:14px;padding:10px 0;border-top:1px solid #f0f1f4;font-size:12.5px}
.au-row:first-child{border-top:none}
.au-time{flex:none;width:128px;color:#9aa0ab;font-size:11.5px;padding-top:2px}
.au-user{flex:none;width:190px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.au-user i{font-style:normal;font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px}
.au-action{flex:1;min-width:0}
.au-action b{font-weight:600;display:block}
.au-action small{color:#9aa0ab;font-size:10.5px}
.au-details summary{font-size:11px;color:#2f6df0;cursor:pointer;margin-top:2px}
.au-details span{font-size:10.5px;color:#6b7280;word-break:break-all}
.au-ip{flex:none;width:110px;color:#9aa0ab;font-size:10.5px;text-align:right;padding-top:2px}
.au-pager{display:flex;align-items:center;gap:12px;margin-top:12px;justify-content:center}

/* ── Детальная сделка (дизайн «Риелти») ─────────────────────────────────── */
.dd{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;max-width:1280px;margin:0 auto;padding:16px 0 56px}
.dd .mono{font-family:'Martian Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.dd-crumbs{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#9aa0ab;font-weight:500;margin-bottom:14px}
.dd-back{width:28px;height:28px;border-radius:8px;border:1px solid #e6e8ec;background:#fff;color:#6b7280;display:flex;align-items:center;justify-content:center;margin-right:4px;flex:none}
.dd-back:hover{color:#1a1d24;background:#f4f5f7}
.dd-crumbs a{color:#6b7280;text-decoration:none}
.dd-crumbs b{color:#1a1d24;font-weight:600}
.dd-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:20px}
.dd-head-main{flex:1;min-width:0}
.dd-head h1{font-size:24px;font-weight:800;letter-spacing:-.03em;margin:0}
.dd-meta{display:flex;align-items:center;gap:14px;margin-top:8px;font-size:13.5px;color:#6b7280;font-weight:500}
.dd-meta-price{font-weight:600;color:#1a1d24;font-size:14px}
.dd-sep{width:4px;height:4px;border-radius:50%;background:#c7ccd6}
.dd-resp{display:flex;align-items:center;gap:6px}
.dd-resp-ava{width:20px;height:20px;border-radius:50%;background:#1f9d57;color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700}
.dd-head-actions{display:flex;align-items:center;gap:8px}
.dd-icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid #e6e8ec;background:#fff;display:flex;align-items:center;justify-content:center}
.dd-cta{border:none;background:#2f6df0;color:#fff;font-family:inherit;font-size:13.5px;font-weight:600;padding:0 17px;height:38px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:7px}
.dd-rail{background:#fff;border:1px solid #e6e8ec;border-radius:14px;padding:20px 24px;margin-bottom:18px;display:flex;align-items:flex-start}
.dd-step{flex:1;display:flex;flex-direction:column;align-items:center}
.dd-step-row{display:flex;align-items:center;width:100%}
.dd-line{flex:1;height:2px}
.dd-circle{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none;background:#fff;border:2px solid #d4d8e0;color:#9aa0ab}
.dd-circle.done{background:#1f9d57;border-color:#1f9d57}
.dd-circle.now{background:#e0930f;border-color:#e0930f;color:#fff}
.dd-step-name{font-size:12.5px;font-weight:600;margin-top:9px}
.dd-step-now{font-size:10.5px;font-weight:700;color:#b9770a;margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
.dd-grid{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.dd-col{display:flex;flex-direction:column;gap:18px}
.dd-card{background:#fff;border:1px solid #e6e8ec;border-radius:14px;padding:18px 20px}
.dd-card h2{font-size:15.5px;font-weight:700;margin:0 0 14px;letter-spacing:-.01em}
.dd-card h3{font-size:13px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.05em;margin:0 0 14px}
.dd-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.dd-card-head h2,.dd-card-head h3{margin:0}
.dd-badge{font-size:12px;font-weight:700;color:#7c5cdb;background:#f3eefb;padding:3px 9px;border-radius:7px}
.dd-add-item{margin-left:auto;display:flex;gap:6px}
.dd-add-item input{border:1px solid #e6e8ec;border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;width:180px}
.dd-add-item button,.dd-add-dl button{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font-size:14px;font-weight:600;width:30px;border-radius:8px;cursor:pointer}
.dd-check-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #f0f1f4}
.dd-checkbox{width:22px;height:22px;border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #d4d8e0;cursor:pointer;padding:0}
.dd-checkbox.received{background:#1f9d57;border-color:#1f9d57}
.dd-checkbox.requested{border-color:#e0930f}
.dd-checkbox.problem{border-color:#e0413a}
.dd-cb-dot{width:7px;height:7px;border-radius:50%;background:#e0930f}
.dd-cb-bang{font-size:13px;font-weight:800;color:#e0413a}
.dd-check-title{flex:1;font-size:13.5px;font-weight:500}
.dd-check-meta{font-size:12px;font-weight:600;color:#9aa0ab}
.dd-check-meta.received{color:#6b7280}
.dd-check-meta.requested{color:#b9770a}
.dd-check-meta.problem{color:#d2362f}
.dd-part-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #f0f1f4}
.dd-part-ava{width:36px;height:36px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}
.dd-part-info{flex:1;min-width:0}
.dd-part-name{font-size:13.5px;font-weight:600}
.dd-part-phone{font-size:12px;color:#9aa0ab;margin-top:1px}
.dd-part-role{font-size:11px;font-weight:700;padding:4px 9px;border-radius:7px}
.dd-act-row{display:flex;gap:14px;padding:9px 0}
.dd-act-time{width:54px;flex:none;font-size:11.5px;font-weight:600;color:#9aa0ab;padding-top:1px}
.dd-act-dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:5px;background:#c7ccd6}
.dd-act-dot.ok{background:#1f9d57}
.dd-act-dot.req{background:#e0930f}
.dd-act-dot.problem{background:#e0413a}
.dd-act-text{font-size:13px;line-height:1.4}
.dd-open{font-size:12px;font-weight:600;color:#2f6df0;text-decoration:none;margin-left:auto}
.dd-photo{width:100%;height:96px;border-radius:10px;object-fit:cover;margin-bottom:14px;display:block}
.dd-photo-empty{background:repeating-linear-gradient(135deg,#eef0f3,#eef0f3 9px,#e7e9ee 9px,#e7e9ee 18px);display:flex;align-items:center;justify-content:center;font-size:10px;color:#9aa0ab}
.dd-kv{display:flex;flex-direction:column;gap:9px;font-size:13px}
.dd-kv div{display:flex;justify-content:space-between;gap:10px}
.dd-kv span{color:#9aa0ab}
.dd-kv b{font-weight:600}
.dd-kv-total{padding-top:9px;border-top:1px solid #f0f1f4}
.dd-income{color:#1f9d57;font-weight:700}
.dd-dl-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #f0f1f4}
.dd-dl-dot{width:8px;height:8px;border-radius:50%;flex:none}
.dd-dl-name{flex:1;font-size:13px;font-weight:500}
.dd-dl-date{font-size:12px;font-weight:700}
.dd-dl-done{border:none;background:none;color:#c7ccd6;font-size:14px;cursor:pointer;padding:2px 4px}
.dd-dl-done:hover{color:#1f9d57}
.dd-add-dl{display:flex;gap:6px;margin-top:12px}
.dd-add-dl input{border:1px solid #e6e8ec;border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px}
.dd-add-dl input[name=title]{flex:1;min-width:0}
.dd-empty{font-size:13px;color:#9aa0ab;margin:4px 0}
@media(max-width:900px){.dd-grid{grid-template-columns:1fr}}

/* ── Клиенты (дизайн «Риелти») ──────────────────────────────────────────── */
.cl{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;max-width:1080px;margin:0 auto;padding:20px 0 48px}
.cl .mono{font-family:'Martian Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.cl-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.cl-title{font-size:23px;font-weight:800;margin:0;letter-spacing:-.03em}
.cl-count{font-size:13px;color:#9aa0ab;font-weight:500}
.cl-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.cl-search{display:flex;align-items:center;gap:8px;width:250px;height:38px;background:#fff;border:1px solid #e6e8ec;border-radius:9px;padding:0 12px}
.cl-search input{border:none;outline:none;font:inherit;font-size:13px;flex:1;min-width:0}
.cl-new{border:none;background:#2f6df0;color:#fff;font-size:13px;font-weight:600;padding:9px 15px;border-radius:9px;display:flex;align-items:center;gap:6px;text-decoration:none}
.cl-tabs{display:flex;gap:4px;border-bottom:1px solid #e6e8ec;margin-bottom:18px}
.cl-tabs a{font-size:13.5px;font-weight:600;padding:11px 14px;border-bottom:2px solid transparent;margin-bottom:-1px;color:#6b7280;text-decoration:none;display:flex;align-items:center;gap:7px}
.cl-tabs a.on{color:#1a1d24;border-color:#1a1d24}
.cl-tabs a span{font-size:11px;font-weight:700;color:#9aa0ab;background:#eef0f3;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0 5px}
.cl-list{display:flex;flex-direction:column;gap:9px}
.cl-row{display:flex;align-items:center;gap:15px;padding:13px 16px;background:#fff;border:1px solid #e6e8ec;border-radius:13px;box-shadow:0 1px 2px rgba(16,24,40,.03);text-decoration:none;color:#1a1d24}
.cl-ava{width:42px;height:42px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff}
.cl-ava.big{width:52px;height:52px;font-size:17px}
.cl-col-name{flex:1.4;min-width:0}
.cl-name{font-size:14px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-sub{display:flex;align-items:center;gap:8px;margin-top:4px}
.cl-role{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}
.cl-mut{font-size:12px;color:#9aa0ab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-col-contact,.cl-col-deal{flex:1;min-width:0}
.cl-phone{font-size:12.5px;font-weight:500}
.cl-col-contact .cl-mut,.cl-col-deal .cl-mut{margin-top:3px}
.cl-deal{font-size:12.5px;font-weight:600}
.cl-deal.none{color:#9aa0ab}
.cl-act{width:34px;height:34px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;cursor:pointer}
.cl-act.tel{background:#e7f6ee}
.cl-act.msg{background:#eaf1ff}
.cl-chev{flex:none}
.cl-empty{text-align:center;padding:60px 20px;display:flex;flex-direction:column;gap:6px}
.cl-empty b{font-size:15px;font-weight:600;color:#6b7280}
.cl-empty span{font-size:13px;color:#9aa0ab}
/* модалки */
.rl-overlay{position:fixed;inset:0;z-index:60;background:rgba(20,24,33,.45);display:flex;align-items:center;justify-content:center;padding:20px}
.rl-modal{width:500px;max-width:100%;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(16,24,40,.35);overflow:hidden;max-height:calc(100vh - 60px);display:flex;flex-direction:column;font-family:'Golos Text',system-ui,sans-serif}
.rl-modal-head{padding:22px 24px 18px;border-bottom:1px solid #eef0f3;flex:none}
.rl-modal-body{flex:1;overflow-y:auto;padding:18px 24px 22px;display:flex;flex-direction:column;gap:18px}
.rl-close{width:34px;height:34px;border-radius:10px;background:#f1f2f4;display:flex;align-items:center;justify-content:center;flex:none}
.cl-m-top{display:flex;align-items:flex-start;gap:14px}
.cl-m-info{flex:1;min-width:0}
.cl-m-info h2{font-size:18px;font-weight:800;margin:0;letter-spacing:-.02em;line-height:1.25}
.cl-m-info .cl-sub{margin-top:6px}
.cl-m-actions{display:flex;gap:9px;margin-top:16px}
.cl-m-btn{flex:1;border:none;font-size:13px;font-weight:600;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}
.cl-m-btn.call{background:#1f9d57;color:#fff}
.cl-m-btn.write{background:#2f6df0;color:#fff}
.cl-m-btn.edit{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;flex:none;padding:0 15px}
.cl-m-sec h4{font-size:11px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.05em;margin:0 0 9px}
.cl-m-kv{font-size:13.5px;margin-bottom:8px}
.cl-m-kv.mono{font-size:13px}
.cl-m-deal{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #f0f1f4;border-radius:10px;text-decoration:none;color:#1a1d24;margin-bottom:7px}
.cl-m-deal b{font-size:13px;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-m-deal span:last-child{font-size:12.5px;font-weight:500}
.cl-m-dot{width:8px;height:8px;border-radius:50%;flex:none}
.cl-m-note{font-size:13px;color:#4a5160;line-height:1.55;background:#f7f8fa;border:1px solid #f0f1f4;border-radius:10px;padding:12px 13px}
.cl-f-head{display:flex;align-items:center}
.cl-f-head h2{font-size:18px;font-weight:800;margin:0;flex:1;letter-spacing:-.02em}
.cl-form{gap:14px}
.cl-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#6b7280}
.cl-form label b{display:none}
.cl-form input,.cl-form textarea{height:40px;border:1px solid #e6e8ec;border-radius:9px;padding:0 12px;font-family:inherit;font-size:13.5px;outline:none;color:#1a1d24}
.cl-form textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}
.cl-form input:focus,.cl-form textarea:focus{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.cl-f-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cl-f-label{font-size:12px;font-weight:600;color:#6b7280}
.cl-f-role{display:flex;flex-direction:column;gap:8px}
.cl-f-seg{display:flex;gap:8px;flex-wrap:wrap}
.cl-f-seg label{flex-direction:row;gap:0}
.cl-f-seg input{display:none}
.cl-f-seg span{display:flex;align-items:center;min-height:38px;padding:0 14px;font-size:13px;font-weight:600;border-radius:10px;cursor:pointer;background:#fff;color:#1a1d24;border:1px solid #e6e8ec}
.cl-f-seg span:hover{border-color:#c9d3e6}
.cl-f-seg input:checked+span{background:#eaf1ff;color:#2f6df0;border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
/* каналы связи и источник — чипы из дизайн-макета */
.ms-field,.src-field{display:flex;flex-direction:column;gap:8px}
.ms-head{display:flex;align-items:center;gap:10px}
.ms-head .cl-f-label{flex:1}
.ms-add{width:34px;height:34px;flex:none;border:1px dashed #d5dae2;background:#fff;color:#6b7280;font:inherit;font-size:18px;line-height:1;border-radius:9px;cursor:pointer}
.ms-add:hover{border-color:#2f6df0;color:#2f6df0}
.ms-list{display:flex;flex-wrap:wrap;gap:8px}
.ms-list:empty{display:none}
.ms-chip{display:flex;align-items:center;gap:2px;min-height:44px;padding:5px 6px 5px 5px;border:1px solid #e6e8ec;border-radius:12px;background:#fff;max-width:100%}
.ms-chip:hover{border-color:#c9d3e6;box-shadow:0 2px 8px rgba(20,25,40,.06)}
.ms-chip-a{display:flex;align-items:center;gap:9px;text-decoration:none;min-width:0;flex:1}
.ms-ico{width:34px;height:34px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center}
.ms-ico svg{width:19px;height:19px;display:block}
.ms-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.ms-txt b{font-size:13px;font-weight:700;color:#1a1d24;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-txt span{font-size:11px;color:#9aa0ab;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.ms-chip:hover .ms-txt b{color:#2f6df0}
.ms-del{flex:none;border:none;background:none;color:#c1c6cf;font:inherit;font-size:16px;line-height:1;width:30px;height:30px;border-radius:8px;cursor:pointer}
.ms-del:hover{background:#fdeceb;color:#d2362f}
.ms-none{font-size:12.5px;font-weight:500;color:#9aa0ab;margin:0}
.ms-none[hidden]{display:none}
.ms-form{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid #e6e8ec;border-radius:12px;background:#fafbfc}
.ms-form[hidden]{display:none}
.ms-pick{display:flex;flex-wrap:wrap;gap:8px}
.ms-opt{width:44px;height:44px;border:1px solid #e6e8ec;background:#fff;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.ms-opt .ms-ico{background:none!important}
.ms-opt svg{width:20px;height:20px}
.ms-opt[aria-pressed=true]{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.14)}
.ms-inp{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#6b7280}
.ms-inp input{height:40px;border:1px solid #e6e8ec;border-radius:9px;padding:0 12px;font-family:inherit;font-size:13.5px;outline:none;color:#1a1d24;background:#fff}
.ms-inp input:focus{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.ms-foot{display:flex;align-items:center;gap:8px}
.ms-ok{flex:1;border:none;background:#2f6df0;color:#fff;font:inherit;font-size:13px;font-weight:600;height:42px;border-radius:10px;cursor:pointer}
.ms-cancel{width:42px;height:42px;flex:none;border:1px solid #e6e8ec;background:#fff;color:#9aa0ab;font:inherit;font-size:18px;line-height:1;border-radius:10px;cursor:pointer}
.ms-cancel:hover{color:#d2362f;border-color:#f3c6c3}
.src-list{display:flex;flex-wrap:wrap;gap:8px}
.src-opt{min-height:38px;padding:0 14px;border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font:inherit;font-size:13px;font-weight:600;border-radius:10px;cursor:pointer}
.src-opt:hover{border-color:#c9d3e6}
.src-opt[aria-pressed=true]{border-color:#2f6df0;background:#eaf1ff;color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.src-form{display:flex;align-items:center;gap:8px}
.src-form[hidden]{display:none}
.src-new{flex:1;height:42px;border:1px solid #e6e8ec;border-radius:10px;padding:0 12px;font-family:inherit;font-size:13.5px;outline:none;color:#1a1d24;background:#fff}
.src-new:focus{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.src-ok{flex:none;padding:0 18px}
.cl-f-foot{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}
.cl-f-submit{border:none;background:#2f6df0;color:#fff;font-family:inherit;font-size:13.5px;font-weight:700;padding:0 20px;height:42px;border-radius:11px;cursor:pointer}
@media(max-width:800px){.cl-col-contact{display:none}}

/* ── Объекты: список (дизайн «Риелти») ──────────────────────────────────── */
.ob{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;max-width:1180px;margin:0 auto;padding:20px 0 48px}
.ob .mono{font-family:'Martian Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.ob-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.ob-title{font-size:23px;font-weight:800;margin:0;letter-spacing:-.03em}
.ob-found{font-size:13px;color:#9aa0ab;font-weight:500}
.ob-new{margin-left:auto;border:none;background:#2f6df0;color:#fff;font-size:13px;font-weight:600;padding:9px 15px;border-radius:9px;display:flex;align-items:center;gap:6px;text-decoration:none}
.ob-tabs{display:flex;gap:4px;border-bottom:1px solid #e6e8ec;margin-bottom:16px;flex-wrap:wrap}
.ob-tabs a{font-size:13.5px;font-weight:600;padding:11px 14px;border-bottom:2px solid transparent;margin-bottom:-1px;color:#6b7280;text-decoration:none;display:flex;align-items:center;gap:7px}
.ob-tabs a.on{color:#1a1d24;border-color:#1a1d24}
.ob-tabs a span{font-size:11px;font-weight:700;color:#9aa0ab;background:#eef0f3;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0 5px}
.ob-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.ob-chip{font-size:12.5px;font-weight:600;padding:8px 13px;border-radius:9px;background:#fff;color:#4a5160;border:1px solid #e6e8ec;text-decoration:none;display:flex;align-items:center;gap:6px}
.ob-chip.on{background:#1a1d24;color:#fff;border-color:#1a1d24}
.ob-chip.prob.on{background:#fdeceb;color:#d2362f;border-color:#f4c4c0}
.ob-div{width:1px;height:22px;background:#e6e8ec;margin:0 3px}
.ob-list{display:flex;flex-direction:column;gap:10px}
.ob-row{display:flex;align-items:center;gap:16px;padding:13px 16px;background:#fff;border:1px solid #e6e8ec;border-radius:13px;box-shadow:0 1px 2px rgba(16,24,40,.03);text-decoration:none;color:#1a1d24}
.ob-photo{width:66px;height:66px;border-radius:10px;flex:none;background:repeating-linear-gradient(135deg,#eceef1,#eceef1 7px,#e4e7eb 7px,#e4e7eb 14px);position:relative;overflow:hidden}
.ob-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ob-photo-n{position:absolute;bottom:4px;right:4px;font-size:9px;font-weight:700;color:#fff;background:rgba(26,29,36,.62);padding:2px 5px;border-radius:5px}
.ob-main{flex:1;min-width:0}
.ob-addr{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.ob-specs{font-size:12.5px;color:#9aa0ab;margin-top:3px}
.ob-badges{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}
.ob-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 9px;border-radius:7px}
.ob-badge-dot{width:6px;height:6px;border-radius:50%}
.ob-badge.deal{background:#f3eefb;color:#7c5cdb;font-weight:600}
.ob-right{text-align:right;flex:none;width:150px}
.ob-price{font-size:16px;font-weight:600;letter-spacing:-.02em}
.ob-views{font-size:11.5px;color:#9aa0ab;margin-top:4px}
.ob-chev{flex:none}
.ob-empty{text-align:center;padding:60px 20px;display:flex;flex-direction:column;gap:6px}
.ob-empty b{font-size:15px;font-weight:600;color:#6b7280}
.ob-empty span{font-size:13px;color:#9aa0ab}

/* ── Объекты: карточка (дизайн «Риелти») ────────────────────────────────── */
.od{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;max-width:1280px;margin:0 auto;padding:16px 0 56px}
.od .mono{font-family:'Martian Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.od-status-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.od-status{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:7px;text-transform:uppercase;letter-spacing:.04em}
.od-deal-ref{font-size:12.5px;color:#9aa0ab;font-weight:600}
.od-deal-ref a{color:#2f6df0;text-decoration:none}
.od-edit{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font-size:13px;font-weight:600;padding:0 16px;height:38px;border-radius:10px;display:flex;align-items:center;text-decoration:none}
/* удаление — действие директора: цветом проблемы, но не кричит, пока не наведёшь */
.od-danger{font-family:inherit;cursor:pointer;color:#d2362f}
.od-danger:hover{background:#fdeceb;border-color:#f3c6c3}
.cl-m-btn.danger{background:#fdeceb;color:#d2362f;font-family:inherit;width:100%}
/* экран связей: строка = одна ссылка на запись плюс действие с ней */
.lk-card{padding:4px 0}
.lk-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid #f0f1f4;flex-wrap:wrap}
.lk-row:last-child{border-bottom:none}
.lk-main{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px}
.lk-title{font-size:14px;font-weight:600;color:#1a1d24;text-decoration:none}
.lk-title:hover{color:#2f6df0}
.lk-label{font-size:11.5px;color:#9aa0ab}
.lk-act{display:flex;gap:8px;align-items:center}
.lk-act select{padding:7px 10px;border:1px solid #e6e8ec;border-radius:9px;font:inherit;font-size:12.5px;max-width:240px}
.lk-delete{margin-top:16px;display:flex;align-items:center;gap:12px}
.lk-danger{background:#d2362f}
.lk-danger:disabled{background:#e6e8ec;color:#9aa0ab;cursor:not-allowed}
.od-pub{border:1px solid #e6e8ec;background:#fff;color:#6b7280;font-family:inherit;font-size:13px;font-weight:600;padding:0 16px;height:38px;border-radius:10px;display:flex;align-items:center;gap:7px;cursor:pointer}
.od-pub.on{background:#1f9d57;border-color:#1f9d57;color:#fff}
.od-pub-warn{margin:-8px 0 16px;background:#fdf3df;color:#b9770a;font-size:12.5px;font-weight:600;padding:9px 13px;border-radius:9px;font-family:'Golos Text',system-ui,sans-serif}
.ob-badge.pub{background:#e7f6ee;color:#1f9d57}
.ob-badge.unpub{background:#f4f5f7;color:#9aa0ab}
.ob-row{cursor:pointer}
.ob-pub-btn{width:34px;height:34px;border-radius:9px;border:1px solid #e6e8ec;background:#fff;color:#c7ccd6;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.ob-pub-btn.on{background:#e7f6ee;border-color:#d3ecdd;color:#1f9d57}
.od-gallery{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-bottom:10px;align-items:start}
.od-cover{height:300px;border-radius:12px;overflow:hidden}
.od-cover img{width:100%;height:100%;object-fit:cover;display:block}
.od-cover.ph{background:repeating-linear-gradient(135deg,#eef0f3,#eef0f3 9px,#e7e9ee 9px,#e7e9ee 18px);display:flex;align-items:center;justify-content:center;font-size:10px;color:#9aa0ab}
.od-thumbs{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:12px;height:300px}
.od-thumb{border-radius:10px;overflow:hidden;min-height:0}
.od-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.od-thumb.ph{background:repeating-linear-gradient(135deg,#eef0f3,#eef0f3 7px,#e7e9ee 7px,#e7e9ee 14px)}
.od-thumb.more{background:#1a1d24;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700}
.od-gal-actions{display:flex;gap:14px;margin-bottom:18px;font-size:12.5px;font-weight:600}
.od-gal-actions a{color:#2f6df0;text-decoration:none}
.od-gal-actions .soon{color:#c3c7cf;cursor:default}
.od-grid{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.od-chars{display:grid;grid-template-columns:1fr 1fr;gap:9px 32px;font-size:13px}
.od-chars div{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid #f7f8fa}
.od-chars span{color:#9aa0ab}
.od-chars b{font-weight:600;text-align:right}
.od-desc{font-size:13px;color:#4a5160;line-height:1.55;background:#f7f8fa;border:1px solid #f0f1f4;border-radius:10px;padding:12px 13px;margin-bottom:12px;white-space:pre-line}
.od-desc.empty{color:#9aa0ab}
.od-gen{display:inline-block;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:9px;background:#f3eefb;color:#b9a3e8;cursor:default}
.od-legal{border:1.5px solid #e0930f;box-shadow:0 0 0 4px rgba(224,147,15,.1)}
.od-legal-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.od-legal-head h2{font-size:15.5px;font-weight:700;margin:0;letter-spacing:-.01em}
.od-legal-badge{margin-left:auto;font-size:11px;font-weight:700;padding:4px 9px;border-radius:7px;background:#fdf3df;color:#b9770a}
.od-check-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #f0f1f4}
.od-check-dot{width:14px;height:14px;border-radius:50%;flex:none;border:none;cursor:pointer;padding:0}
.od-check-main{flex:1;min-width:0}
.od-check-name{font-size:13.5px;font-weight:500}
.od-check-note{font-size:12px;color:#9aa0ab;margin-top:2px}
.od-doc{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #f0f1f4;text-decoration:none;color:#1a1d24}
.od-doc:first-of-type{border-top:none}
.od-doc-icon{width:38px;height:46px;border-radius:7px;background:#fdeceb;color:#d2362f;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.od-doc-name{flex:1;font-size:13.5px;font-weight:600;min-width:0}
.od-doc-date{font-size:12px;color:#9aa0ab}
.od-owner-btn{display:block;text-align:center;border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font-size:13px;font-weight:600;padding:10px;border-radius:10px;text-decoration:none;margin-top:12px}
.od-src-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.od-src-head h3{margin:0;flex:1}
.od-src-add,.od-lg-add{width:28px;height:28px;flex:none;border:1px solid #e6e8ec;background:#fff;color:#1a1d24;border-radius:9px;font:inherit;font-size:16px;line-height:1;cursor:pointer}
.od-src-add:hover,.od-lg-add:hover{border-color:#2f6df0;color:#2f6df0}
.od-src-list{display:flex;flex-direction:column}
.od-src-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #f0f1f4}
.od-src-link{flex:1;min-width:0;min-height:40px;font-size:13.5px;font-weight:600;color:#2f6df0;text-decoration:none;display:flex;align-items:center;gap:9px}
.od-src-link i{font-style:normal;font-size:14px;line-height:1;width:30px;height:30px;flex:none;border-radius:9px;background:#f4f5f7;display:flex;align-items:center;justify-content:center}
.od-src-link:hover i{background:#2f6df0;color:#fff}
.od-src-link:hover{text-decoration:underline}
.od-src-link.plain{color:#1a1d24}
.od-src-host{font-size:11.5px;color:#9aa0ab;flex:none}
.od-src-del,.od-lg-del{flex:none;border:none;background:none;color:#9aa0ab;font:inherit;font-size:15px;line-height:1;padding:3px 5px;border-radius:7px;cursor:pointer}
.od-src-del:hover,.od-lg-del:hover{background:#fdeceb;color:#d2362f}
.od-src-none,.od-lg-none{font-size:13px;color:#9aa0ab;margin:10px 0 0}
.od-src-form,.od-lg-form{display:flex;flex-direction:column;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid #f0f1f4}
.od-src-form[hidden],.od-lg-form[hidden]{display:none}
.od-src-form label,.od-lg-form label{display:flex;flex-direction:column;gap:5px;font-size:11.5px;font-weight:600;color:#9aa0ab}
.od-src-form input,.od-lg-form input{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;border-radius:9px;padding:9px 11px;font:inherit;font-size:13px;outline:none;width:100%}
.od-src-form input:focus,.od-lg-form input:focus{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.14)}
.od-src-form-foot{display:flex;align-items:center;gap:8px}
.od-src-ok{flex:1;border:none;background:#2f6df0;color:#fff;font:inherit;font-size:13px;font-weight:600;height:38px;border-radius:10px;cursor:pointer}
.od-src-cancel,.od-lg-cancel{width:38px;height:38px;flex:none;border:1px solid #e6e8ec;background:#fff;color:#6b7280;border-radius:10px;font:inherit;font-size:16px;line-height:1;cursor:pointer}
.od-src-cancel:hover,.od-lg-cancel:hover{color:#d2362f;border-color:#f3c6c3}
.od-legal-acts{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.od-lg-tpl{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font:inherit;font-size:12px;font-weight:600;padding:0 11px;height:32px;border-radius:9px;cursor:pointer}
.od-lg-tpl:hover{border-color:#2f6df0;color:#2f6df0}
.od-legal .od-check-row{min-height:44px}
.od-legal .ob-badge{cursor:pointer;user-select:none}
/* строки площадок автопубликации — те же строки источников, но с кнопкой действия */
.od-pl-state.done{color:#1f9d55}
.od-pl-state.error{color:#d2362f}
.od-pl-state.pending,.od-pl-state.working{color:#2f6df0}
.od-pl-go{flex:none;border:1px solid #2f6df0;background:#fff;color:#2f6df0;font:inherit;font-size:12px;font-weight:600;height:32px;padding:0 12px;border-radius:9px;cursor:pointer}
.od-pl-go:hover{background:#2f6df0;color:#fff}
.od-pl-lock,.od-pl-wait{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:13px;color:#9aa0ab;cursor:help}
.od-pl-err{margin:0 0 8px;font-size:11.5px;color:#d2362f}
.od-pl-draft{flex:none;min-height:32px;display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;color:#6b7280;text-decoration:none;border-bottom:1px dashed #c7ccd6}
.od-pl-draft:hover{color:#2f6df0;border-color:#2f6df0}
/* экран «Площадки» в кабинете директора */
.ig-list{margin:14px 0 6px}
.ig-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #f0f1f4}
.ig-row.off .ig-name b{color:#6b7280}
.ig-name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:14px}
.ig-tag{font-size:10.5px;font-weight:600;color:#8a6d1f;background:#fdf3d7;border-radius:6px;padding:2px 7px}
.ig-state{text-align:right;font-size:12px}
.ig-ok{color:#1f9d55;font-weight:600}
.ig-off{color:#9aa0ab;font-weight:600}
/* Широкие таблицы справочников прокручиваются, а не обрезаются: колонок в них
   до шести, и на узком экране ноутбука правые столбцы уезжали за край без
   возможности их увидеть. Порог выше мобильного — проблема начинается раньше */
@media(max-width:1000px){
  table.list{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
}
/* черновик объявления для площадки */
.dg-warn{margin:14px 0;padding:12px 16px;border:1px solid #f3c6c3;border-radius:11px;background:#fdf6f5;font-size:13.5px}
.dg-warn ul{margin:8px 0 10px;padding-left:20px;line-height:1.6}
.dg-ok{margin:14px 0;padding:12px 16px;border:1px solid #bfe6cd;border-radius:11px;background:#f3faf5;font-size:13.5px}
.dr-table td{vertical-align:top}
.dr-key{width:38%;color:#6b7280}
@media(max-width:700px){.dr-key{width:44%}}
/* блок формы объекта «Для площадок объявлений» */
.pf-block{margin:18px 0 4px;padding:14px 16px;border:1px solid #e6e8ec;border-radius:12px;background:#fbfbfc}
.pf-block h3{margin:0;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#6b7280}
.pf-block-note{margin:6px 0 12px;font-size:12px;color:#9aa0ab;line-height:1.5}
.pf-kind[hidden],.pf-rent[hidden]{display:none}
.pf-block .check{display:flex;align-items:center;gap:8px;min-height:32px;font-weight:600}
.pf-pair{display:flex;gap:8px}
.pf-pair input{flex:1;min-width:0}
.pf-pair select{flex:none;width:104px}
/* пояснения абзацами: cl-mut сюда не годится — он режет текст в одну строку */
.ig-hint{font-size:12.5px;color:#6b7280;line-height:1.5;margin:6px 0 0}
.ig-key{font-size:13.5px}
.ig-key.ig-none{color:#9aa0ab}
.ig-check{margin-top:14px;padding:12px 14px;border:1px solid #e6e8ec;border-radius:11px;background:#fff;font-size:13.5px}
.ig-check p{margin:0 0 6px}
.ig-warn{color:#d2362f}
@media(max-width:700px){.od-src-link{min-height:44px}.od-src-link i{width:36px;height:36px;font-size:16px}.od-src-del,.od-lg-del{font-size:18px;padding:8px 10px}.od-legal .od-check-dot{width:30px;height:30px}
.od-pl-go{height:38px}.od-pl-lock,.od-pl-wait{width:38px;height:38px}
.ig-row{flex-wrap:wrap;gap:6px}.ig-state{text-align:left;width:100%}
.ig-actions .chip,.ig-actions .mut{min-height:38px;display:inline-flex;align-items:center}}
/* длинные имена переменных и адреса в тексте не должны распирать страницу */
code{overflow-wrap:anywhere}
/* форма правки в строке — используется и стоимостью этапов кейса */
.od-src-edit{padding:10px 0;border-top:1px solid #f0f1f4;display:flex;flex-direction:column;gap:8px}
.od-src-edit b{font-size:13.5px;font-weight:600}
.od-src-edit input{border:1px solid #e6e8ec;border-radius:8px;padding:8px 11px;font:inherit;font-size:12.5px;width:100%}
.od-src-edit input:focus{outline:none;border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.od-src-edit-row{display:flex;gap:8px;align-items:center}
.od-src-edit-row input{width:110px}
@media(max-width:900px){.od-grid{grid-template-columns:1fr}.od-gallery{grid-template-columns:1fr}.od-thumbs{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;height:160px}.od-chars{grid-template-columns:1fr}.dd-col{min-width:0}}

/* ── Календарь (дизайн «Риелти») ────────────────────────────────────────── */
.ca{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;padding:20px 0 40px}
.ca-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.ca-title{font-size:23px;font-weight:800;margin:0;letter-spacing:-.03em}
.ca-nav{display:flex;align-items:center;gap:8px}
.ca-arr{width:34px;height:34px;border-radius:9px;border:1px solid #e6e8ec;background:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none}
.ca-today{font-size:13px;font-weight:600;color:#1a1d24;border:1px solid #e6e8ec;background:#fff;padding:8px 14px;border-radius:9px;text-decoration:none}
.ca-period{font-size:15px;font-weight:700;letter-spacing:-.01em}
.ca-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.ca-seg{display:flex;gap:2px;background:#eef0f3;border-radius:9px;padding:3px}
.ca-seg a{font-size:12.5px;font-weight:700;padding:6px 14px;border-radius:6px;color:#6b7280;text-decoration:none}
.ca-seg a.on{background:#fff;color:#1a1d24;box-shadow:0 1px 2px rgba(16,24,40,.08)}
.ca-new{border:none;background:#2f6df0;color:#fff;font-size:13px;font-weight:600;padding:9px 15px;border-radius:9px;display:flex;align-items:center;gap:6px;text-decoration:none}
.ca-grid{display:grid;grid-template-columns:248px 1fr;gap:18px;align-items:start}
.ca-side{display:flex;flex-direction:column;gap:18px}
.ca-mini-title{font-size:13.5px;font-weight:700;margin-bottom:10px}
.ca-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.ca-mini-wd{font-size:10px;font-weight:700;color:#9aa0ab;padding:3px 0}
.ca-mini-day{font-size:11.5px;font-weight:500;padding:4px 0;border-radius:50%;position:relative;width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin:0 auto}
.ca-mini-day.today{background:#1a1d24;color:#fff;font-weight:700}
.ca-mini-day i{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#2f6df0}
.ca-mini-day.today i{background:#fff}
.ca-filter{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:500;padding:5px 0;cursor:pointer}
.ca-filter input{accent-color:#1a1d24}
.ca-f-dot{width:8px;height:8px;border-radius:50%}
.ca-up{display:block;border-left:3px solid #8a92a3;padding:6px 10px;margin-bottom:8px;text-decoration:none;color:#1a1d24;background:#f7f8fa;border-radius:0 8px 8px 0}
.ca-up b{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-up span{font-size:11.5px;color:#9aa0ab}
.ca-main{padding:0;overflow:hidden}
.ca-week-head{display:grid;grid-template-columns:52px repeat(7,1fr);border-bottom:1px solid #eef0f3}
.ca-day-head{font-size:12px;font-weight:600;color:#6b7280;text-align:center;padding:10px 4px}
.ca-day-head span{font-weight:700;color:#1a1d24;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%}
.ca-day-head span.today{background:#1a1d24;color:#fff}
.ca-week-body{display:grid;grid-template-columns:52px repeat(7,1fr);position:relative}
.ca-axis{position:relative}
.ca-axis span{position:absolute;right:8px;font-size:10.5px;color:#9aa0ab;font-weight:600;transform:translateY(-50%)}
.ca-day-col{position:relative;border-left:1px solid #f0f1f4}
.ca-day-col.today{background:#fafbff}
.ca-hline{position:absolute;left:0;right:0;height:1px;background:#f4f5f7}
.ca-ev{position:absolute;left:3px;right:3px;border-left:3px solid;border-radius:7px;padding:3px 7px;font-size:11px;line-height:1.3;color:#1a1d24;text-decoration:none;overflow:hidden;z-index:2}
.ca-ev b{font-weight:700;margin-right:3px}
.ca-ev.done{opacity:.45}
.ca-month-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #eef0f3}
.ca-month-head span{font-size:12px;font-weight:600;color:#6b7280;text-align:center;padding:10px 4px}
.ca-month{display:grid;grid-template-columns:repeat(7,1fr)}
.ca-cell{min-height:108px;border-left:1px solid #f0f1f4;border-bottom:1px solid #f0f1f4;padding:6px;display:flex;flex-direction:column;gap:3px}
.ca-cell.off{background:#fafbfc}
.ca-cell-day{font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%}
.ca-cell-day.today{background:#1a1d24;color:#fff}
.ca-chip{font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:6px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-chip.done{opacity:.45}
.ca-more{font-size:10.5px;font-weight:600;color:#9aa0ab}
.ca-modal .rl-modal-body{gap:12px}
.ca-m-head{display:flex;align-items:center;justify-content:space-between}
.ca-m-title{font-size:18px;font-weight:800;margin:0;letter-spacing:-.02em}
.ca-m-when{font-size:13px;color:#6b7280}
.ca-m-foot{display:flex;justify-content:space-between;padding-top:6px}
.ca-m-del{border:1px solid #f4c4c0;background:#fff;color:#d2362f;font-family:inherit;font-size:13px;font-weight:600;padding:0 16px;height:38px;border-radius:10px;cursor:pointer}
.ca-m-done{border:none;background:#1f9d57;color:#fff;font-family:inherit;font-size:13px;font-weight:600;padding:0 18px;height:38px;border-radius:10px;cursor:pointer}
.ca-f-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.ca-f-grid3 select,.cl-form select{height:40px;border:1px solid #e6e8ec;border-radius:9px;padding:0 12px;font-family:inherit;font-size:13.5px;outline:none;background:#fff}
@media(max-width:900px){.ca-grid{grid-template-columns:1fr}}

/* ── База документов (дизайн «Риелти») ──────────────────────────────────── */
.dc,.dcf{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;padding:20px 0 48px}
.dc .mono,.dcf .mono{font-family:'Martian Mono',ui-monospace,monospace}
.dc-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.dc-title{font-size:23px;font-weight:800;margin:0;letter-spacing:-.03em}
.dc-count{font-size:13px;color:#9aa0ab;font-weight:500}
.dc-new{margin-left:auto;border:none;background:#2f6df0;color:#fff;font-size:13px;font-weight:600;padding:9px 15px;border-radius:9px;display:flex;align-items:center;gap:6px;text-decoration:none}
.dc-grid{display:grid;grid-template-columns:240px 1fr 320px;gap:18px;align-items:start}
.dc-tree{display:flex;flex-direction:column;gap:2px;padding:10px}
.dc-cat{display:flex;align-items:center;font-size:13.5px;font-weight:600;color:#4a5160;padding:9px 12px;border-radius:9px;text-decoration:none}
.dc-cat.on{background:#eef0f3;color:#1a1d24}
.dc-cat span{margin-left:auto;font-size:11px;font-weight:700;color:#9aa0ab}
.dc-search{display:flex;align-items:center;gap:8px;height:40px;background:#fff;border:1px solid #e6e8ec;border-radius:9px;padding:0 12px;margin-bottom:12px}
.dc-search input{border:none;outline:none;font:inherit;font-size:13px;flex:1;min-width:0}
.dc-list{display:flex;flex-direction:column;gap:9px}
.dc-row{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#fff;border:1px solid #e6e8ec;border-radius:13px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.dc-row.sel{border-color:#2f6df0;background:#f6f9ff}
.dc-icon{width:38px;height:46px;border-radius:7px;background:#eaf1ff;color:#2f6df0;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.dc-row-main{flex:1;min-width:0}
.dc-name{font-size:14px;font-weight:700;letter-spacing:-.01em}
.dc-meta{font-size:12px;color:#9aa0ab;margin-top:3px}
.dc-btn{font-size:12.5px;font-weight:600;padding:8px 13px;border-radius:9px;border:1px solid #e6e8ec;background:#fff;color:#1a1d24;text-decoration:none;flex:none}
.dc-btn.gen{background:#1f9d57;border-color:#1f9d57;color:#fff}
.dc-side{position:sticky;top:76px}
.dc-prev-head{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}
.dc-prev-head h3{font-size:14px;font-weight:700;margin:0;flex:1;letter-spacing:-.01em;color:#1a1d24;text-transform:none}
.dc-edit{width:30px;height:30px;border-radius:8px;border:1px solid #e6e8ec;background:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.dc-preview{font-size:11px;line-height:1.7;color:#4a5160;background:#fafbfc;border:1px solid #eef0f3;border-radius:10px;padding:14px;white-space:pre-wrap;max-height:320px;overflow-y:auto;font-family:'Times New Roman',serif}
.dc-ph{background:#fdf3df;color:#b9770a;font-weight:700;border-radius:4px;padding:0 3px;font-family:'Martian Mono',monospace;font-size:9.5px}
.dc-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.dc-chip{font-size:10px;font-weight:600;padding:4px 7px;border-radius:6px;background:#f3eefb;color:#7c5cdb;border:none}
.dc-cta{display:block;text-align:center;background:#1f9d57;color:#fff;font-size:13.5px;font-weight:700;padding:12px;border-radius:11px;text-decoration:none;margin-top:14px;font-family:inherit}
.dc-gen-hint{font-size:12.5px;color:#9aa0ab;line-height:1.5;margin:0}
.dc-form-grid{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start}
.dc-body{min-height:380px;font-size:12.5px !important;line-height:1.6}
.dc-known h3{font-size:13px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px}
.dc-known-chip{cursor:pointer;margin:0 4px 6px 0}
.dcf-check{flex-direction:row !important;align-items:center;gap:8px !important;font-size:13px !important;color:#1a1d24 !important}
.dcf-check input{height:auto !important;width:auto}
.dd-tpl-btn{margin-left:0;font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:8px;border:1px solid #e6e8ec;background:#fff;color:#1a1d24;text-decoration:none;flex:none}
@media(max-width:1000px){.dc-grid{grid-template-columns:200px 1fr}.dc-side{display:none}}
@media(max-width:900px){.dc-grid{grid-template-columns:1fr}.dc-form-grid{grid-template-columns:1fr}}

/* ── Договоры (конструктор) ─────────────────────────────────────────────── */
.dg-tabs{display:flex;gap:2px;background:#eef0f2;border-radius:10px;padding:3px;margin-left:6px}
.dg-tabs a{font-size:12.5px;font-weight:600;color:#6b7280;padding:6px 13px;border-radius:8px;text-decoration:none}
.dg-tabs a.on{background:#fff;color:#1a1d24;box-shadow:0 1px 4px rgba(16,24,40,.1)}
.dg-filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:14px 0}
.dg-filters .st-chip b{font-weight:700;opacity:.65;margin-left:2px}
.dg-search{margin-left:auto;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e6e8ec;border-radius:10px;height:38px;padding:0 12px;min-width:280px}
.dg-search input{border:none;outline:none;font:inherit;font-size:13px;flex:1;min-width:0}
.dg-list{display:flex;flex-direction:column;gap:8px}
.dg-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:12px 16px;text-decoration:none;color:#1a1d24}
.dg-row:hover{border-color:#c9d3e6;box-shadow:0 3px 12px rgba(16,24,40,.06)}
.dg-num{flex:none;min-width:64px;font-size:13px;font-weight:600;color:#6b7280}
.dg-row-main{flex:1;min-width:0}
.dg-name{font-size:14px;font-weight:700}
.dg-meta{font-size:12px;color:#9aa0ab;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dg-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:8px;flex:none;white-space:nowrap}
.dg-badge i{width:7px;height:7px;border-radius:50%}
.dg-badge.big{font-size:12.5px;padding:7px 12px}
.dg-when{font-size:12px;color:#9aa0ab;flex:none}
.dg-author{font-size:12px;color:#6b7280;flex:none;min-width:70px;text-align:right}
.dg-doc-ico{font-size:10px;font-weight:800;letter-spacing:.06em;color:#7c5cdb;background:#f3eefb;border-radius:8px;padding:6px 0;text-align:center}
/* карточка-конструктор в библиотеке шаблонов */
.dc-ctor{border:1.5px solid #e4d9f7;background:#fbfaff}
.dc-icon.ctor{background:#f3eefb;color:#7c5cdb}
/* модалка нового договора */
.dg-new-modal{width:460px}
.dg-new-head{display:flex;align-items:center;justify-content:space-between}
.dg-new-head b{font-size:17px;font-weight:800}
.dg-new-form select{width:100%;height:42px;border:1px solid #e6e8ec;border-radius:10px;padding:0 10px;font:inherit;font-size:13.5px;background:#fff}
.dg-lab{display:block;font-size:12px;font-weight:600;color:#6b7280;margin-bottom:6px}
.dg-hint{font-size:12px;color:#9aa0ab;line-height:1.5}
.dg-foot{display:flex;justify-content:flex-end;gap:8px}
.dg-btn{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 16px;border-radius:10px;border:none;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;background:#f1f2f4;color:#1a1d24}
.dg-btn.primary{background:#2f6df0;color:#fff}
.dg-btn.primary:hover{background:#1e56cc}
.dg-btn.ghost{background:#fff;border:1px solid #e6e8ec;color:#1a1d24}
.dg-btn.danger{background:#fdeceb;color:#d2362f}
/* карточка договора */
.dg-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.dg-back{width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid #e6e8ec;display:flex;align-items:center;justify-content:center;flex:none}
.dg-head-main{flex:1;min-width:240px}
.dg-head-main h1{font-size:20px;font-weight:800;letter-spacing:-.02em;margin:0}
.dg-sub{font-size:12.5px;color:#6b7280;margin-top:3px}
.dg-sub a{color:#2f6df0;text-decoration:none}
/* предпросмотр: документ выглядит как документ — Times, A4, выключка */
.dg-doc-wrap{display:flex;justify-content:center;background:#eceef1;border-radius:14px;padding:26px 16px;overflow-x:auto}
.dg-doc{background:#fff;width:210mm;max-width:100%;padding:18mm 16mm;box-shadow:0 2px 18px rgba(15,34,51,.16);font-family:"Times New Roman",Times,serif;font-size:11pt;line-height:1.45;color:#111;text-align:justify}
.dg-doc h2{font-size:12pt;text-align:center;margin:16px 0 8px;font-family:inherit;letter-spacing:0}
.dg-doc h3{font-size:13pt;text-align:center;margin:0 0 6px}
.dg-doc .ttl{text-align:center;font-weight:bold;font-size:15pt;margin-bottom:4px}
.dg-doc .ttl2{text-align:center;font-weight:bold;font-size:13pt;margin-bottom:4px}
.dg-doc .ttl3{text-align:center;font-weight:bold;font-size:12pt;margin-bottom:14px}
.dg-doc p{margin:0 0 6px}
.dg-doc .ind{margin-left:8mm}
.dg-doc .cd{display:flex;justify-content:space-between;margin:10px 0 14px}
.dg-doc .right{text-align:right}
.dg-doc table{border-collapse:collapse;width:100%;margin:6px 0 12px;font-size:9.5pt}
.dg-doc th{background:#e8e8e8;border:1px solid #888;padding:3pt 5pt;text-align:left;font-size:9pt}
.dg-doc td{border:1px solid #888;padding:3pt 5pt;vertical-align:top}
.dg-doc .sign{width:100%;border:0}
.dg-doc .sign td{border:0;width:50%;padding:0 8mm 0 0;font-size:10pt}
.dg-doc .val{font-weight:bold}
.dg-doc .blank{color:#666}
.dg-doc hr.pb{border:0;border-top:1px dashed #bbb;margin:26px 0}
/* форма конструктора: слева поля, справа живой предпросмотр */
.dg-split{display:grid;grid-template-columns:400px minmax(0,1fr);gap:16px;align-items:start}
.dg-form{background:#fff;border:1px solid #eef0f3;border-radius:14px;padding:6px 18px 18px;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto}
.dg-form fieldset{border:0;border-top:1px solid #eef0f3;margin:0;padding:14px 0 8px}
.dg-form fieldset:first-of-type{border-top:0}
.dg-form legend{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#2f6df0;font-weight:700;padding-right:8px}
.dg-form label{display:block;font-size:11.5px;color:#6b7280;font-weight:600;margin:10px 0 4px}
.dg-form input,.dg-form select{width:100%;font:inherit;font-size:13px;height:36px;padding:0 10px;border-radius:8px;border:1px solid #e6e8ec;background:#fff;color:#1a1d24}
.dg-form input:focus,.dg-form select:focus{outline:2px solid rgba(47,109,240,.35);outline-offset:-1px;border-color:#2f6df0}
.dg-r2{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end}
.dg-r3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:end}
.dg-words{font-size:10.5px;color:#b9770a;margin-top:3px;min-height:13px}
/* проверка даты 17.1: спокойная подпись, красная — расхождение с п. 3.2 */
.dg-date-check{color:#6b7280}
.dg-date-check.bad{color:#d2362f;font-weight:600}
.dg-form .dg-hint{margin-top:6px}
.dg-live{position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto}
.dg-save-state{font-size:12px;color:#9aa0ab;flex:none}
.dg-save-state.ok{color:#1f9d57;font-weight:600}
.dg-btn.sign{background:#1f9d57;color:#fff}
.dg-btn.sign:hover{background:#1a8b4c}
.dg-links{display:flex;flex-direction:column;gap:4px;background:#f3eefb;border:1px solid #e4d9f7;border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:13px;color:#6b7280}
.dg-links a{color:#7c5cdb;font-weight:600;text-decoration:none}
/* живые приложения договора: история цены и реестр покупателей */
.dg-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;align-items:start}
.dg-block{padding:16px 18px}
.dg-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.dg-block-head b{font-size:14.5px;font-weight:800}
.dg-actual{font-size:14px;font-weight:600;color:#1f9d57}
.dg-count-badge{font-size:12px;font-weight:700;background:#eef0f2;color:#6b7280;padding:3px 9px;border-radius:8px}
.dg-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:10px}
.dg-tbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#9aa0ab;padding:4px 8px 6px;border-bottom:1px solid #eef0f3}
.dg-tbl td{padding:7px 8px;border-bottom:1px solid #f4f5f7;vertical-align:middle}
.dg-tbl tr.deal td{background:#f5fbf7}
.dg-none{font-size:12.5px;color:#9aa0ab;line-height:1.5;margin-bottom:10px}
.dg-inline-form{display:flex;gap:6px;flex-wrap:nowrap}
.dg-inline-form.wrap{flex-wrap:wrap}
.dg-inline-form input,.dg-inline-form select{height:36px;border:1px solid #e6e8ec;border-radius:9px;padding:0 9px;font:inherit;font-size:12.5px;min-width:0;flex:1}
.dg-inline-form input[type=date],.dg-inline-form input[type=datetime-local]{flex:none;width:150px}
.dg-inline-form .dg-btn{flex:none;height:36px}
.dg-deal-btn{font:inherit;font-size:11px;font-weight:700;border:1px solid #e6e8ec;background:#fff;color:#6b7280;border-radius:8px;padding:4px 9px;cursor:pointer;white-space:nowrap}
.dg-deal-btn.on{background:#e7f6ee;border-color:#c8ebd8;color:#1f9d57}
.dg-x{border:none;background:none;color:#c7ccd6;font-size:13px;cursor:pointer;padding:4px}
.dg-x:hover{color:#d2362f}
/* договор в юр-блоке карточки объекта: первый шаг юридической готовности */
.od-contract{display:flex;align-items:center;gap:10px;padding:11px 12px;margin-bottom:10px;background:#f9f7fd;border:1px solid #e4d9f7;border-radius:11px}
.od-contract-main{flex:1;min-width:0}
.od-contract-main b{display:block;font-size:13px;font-weight:700}
.od-contract-main span{display:block;font-size:11.5px;color:#6b7280;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.od-contract-new{background:#7c5cdb;border-color:#7c5cdb;color:#fff}
/* подсветка незаполненных полей формы договора */
.dg-form .miss{background:#fffdf4;border-color:#ecdfb9}
.dg-form .miss.req{background:#fdf7ea;border-color:#e0930f}
.dg-form-note{font-size:11.5px;color:#9aa0ab;line-height:1.5;margin:10px 0 2px}
.dg-form-note i{display:inline-block;width:10px;height:10px;border-radius:3px;background:#fdf7ea;border:1px solid #e0930f;vertical-align:-1px;font-style:normal}
/* клиенты: фильтр подбора (тип + бюджет) и поля договора в форме */
.cl-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-6px 0 14px}
.cl-f-cap{font-size:12.5px;font-weight:600;color:#9aa0ab}
.cl-bud{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:12.5px;color:#6b7280}
.cl-bud input{width:110px;height:34px;border:1px solid #e6e8ec;border-radius:9px;padding:0 9px;font:inherit;font-size:12.5px}
.cl-bud select{height:34px;border:1px solid #e6e8ec;border-radius:9px;font:inherit;font-size:12.5px;background:#fff;padding:0 6px}
.cl-bud-ok{height:34px;padding:0 13px;border:none;border-radius:9px;background:#1a1d24;color:#fff;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.cl-bud-x{color:#9aa0ab;text-decoration:none;font-size:13px;padding:4px}
.cl-bud-x:hover{color:#d2362f}
.cl-f-search[hidden]{display:none}
.cl-kinds{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.cl-kind{cursor:pointer}
.cl-kind input{position:absolute;opacity:0;pointer-events:none}
.cl-kind span{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid #e6e8ec;border-radius:10px;font-size:13px;font-weight:600;color:#4a5160;background:#fff}
.cl-kind input:checked + span{background:#eaf1ff;border-color:#2f6df0;color:#2f6df0;box-shadow:0 0 0 1px #2f6df0 inset}
.cl-bud-row{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px;margin-top:10px}
.cl-bud-row label{display:block;font-size:11.5px;color:#6b7280;font-weight:600}
.cl-bud-row input,.cl-bud-row select{width:100%;height:38px;margin-top:4px;border:1px solid #e6e8ec;border-radius:9px;padding:0 10px;font:inherit;font-size:13px;background:#fff}
.cl-pass-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:8px 0}
.cl-f-pass > label,.cl-pass-row label{display:block;font-size:11.5px;color:#6b7280;font-weight:600}
.cl-f-pass input{width:100%;height:38px;margin-top:4px;border:1px solid #e6e8ec;border-radius:9px;padding:0 10px;font:inherit;font-size:13px}
.cl-mut-sm{font-size:11px;color:#9aa0ab;font-weight:500}
.cl-pass-old{font-size:11.5px;color:#b9770a;background:#fdf3df;border-radius:8px;padding:7px 10px;margin-top:8px;line-height:1.45}
/* правоустанавливающие документы объекта: добавляемые строки «название + дата» */
.td-field{display:flex;flex-direction:column;gap:6px}
.td-label{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:#6b7280;font-weight:600}
.td-add{width:26px;height:26px;border:1px dashed #c9d3e6;border-radius:8px;background:#fff;color:#2f6df0;font-size:15px;font-weight:700;cursor:pointer;line-height:1}
.td-add:hover{border-style:solid;background:#eaf1ff}
.td-row{display:grid;grid-template-columns:1fr 150px 30px;gap:6px;align-items:center;margin-top:4px}
.td-row input{height:38px;border:1px solid #e6e8ec;border-radius:9px;padding:0 10px;font:inherit;font-size:13px}
.td-del{border:none;background:none;color:#c7ccd6;font-size:13px;cursor:pointer;padding:4px}
.td-del:hover{color:#d2362f}
.td-none{font-size:11.5px;color:#9aa0ab;margin:2px 0 0;line-height:1.45}
/* поиск в списке объектов: адрес, улица, название, кадастр */
.ob-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e6e8ec;border-radius:10px;height:38px;padding:0 10px}
.ob-search input{border:none;outline:none;font:inherit;font-size:13px;flex:1;min-width:0}
.ob-search select{border:none;outline:none;font:inherit;font-size:13px;background:none;max-width:170px;color:#1a1d24;border-right:1px solid #eef0f3;padding-right:8px;height:24px}
.ob-search .ob-house{flex:none;width:56px}
.ob-addr-line{font-size:12.5px;color:#4a5160;margin-top:3px}
/* кабинет → сайт → водяной знак: настройки и живой предпросмотр */
.wm-grid{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:16px;align-items:start}
.wm-toggle{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;cursor:pointer}
.wm-toggle input{width:17px;height:17px;accent-color:#2f6df0;flex:none}
/* галочка со своей подписью — прижата влево, а не по центру сетки формы */
.st-legacy{align-self:start;text-align:left}
.ph-row{grid-template-columns:1fr 30px}
.wm-preview h3{font-size:15px;font-weight:800;margin:0 0 12px}
.wm-preview img{width:100%;border-radius:12px;display:block;margin-bottom:10px}
@media(max-width:900px){.wm-grid{grid-template-columns:1fr}}
.ob-search-go{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:none;border-radius:8px;background:#2f6df0;color:#fff;font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;flex:none}
.ob-search-go:hover{background:#1e56cc}
.ob-search-x{color:#9aa0ab;text-decoration:none;font-size:13px;padding:2px 4px;flex:none}
.ob-search-x:hover{color:#d2362f}
@media(max-width:700px){.ob-search{min-width:0;flex:1;order:5;width:100%;flex-wrap:nowrap}.ob-search select{max-width:110px}}
@media(max-width:700px){.cl-bud{margin-left:0;width:100%}.cl-bud input{flex:1;width:auto}.cl-pass-row,.cl-bud-row{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.dg-side-grid{grid-template-columns:1fr}}
@media(max-width:1000px){.dg-split{grid-template-columns:1fr}.dg-form,.dg-live{position:static;max-height:none}}

/* ── Кабинет директора (дизайн «Риелти») ────────────────────────────────── */
.cb{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24;max-width:900px;margin:0 auto;padding:20px 0 48px}
.cb .mono{font-family:'Martian Mono',ui-monospace,monospace}
.cb-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.cb-title{font-size:23px;font-weight:800;margin:0;letter-spacing:-.03em}
.cb-admin-badge{font-size:10.5px;font-weight:800;letter-spacing:.06em;background:#1a1d24;color:#fff;padding:4px 9px;border-radius:6px}
.cb-managers{display:flex;flex-direction:column;gap:9px}
.cb-mrow{display:flex;align-items:center;gap:15px;padding:13px 16px;background:#fff;border:1px solid #e6e8ec;border-radius:13px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.cb-mrow.off{opacity:.6}
/* правка сотрудника прямо в строке: та же карточка, но с полями */
.cb-medit{flex-wrap:wrap;gap:8px}
.cb-medit input,.cb-medit select{border:1px solid #e6e8ec;border-radius:9px;padding:8px 11px;font:inherit;font-size:13px}
.cb-medit input[name=full_name]{flex:1.4;min-width:170px}
.cb-medit input[name=username],.cb-medit select{width:150px}
.cb-medit input[name=phone],.cb-medit input[name=email]{width:170px}
.cb-medit input[name=password]{flex:1;min-width:200px}
/* контакты сотрудника: список строк и кнопки добавления по видам */
.cb-contacts{flex-basis:100%;border-top:1px solid #f0f1f4;padding-top:10px;margin-top:2px}
.cb-c-title{font-size:11.5px;font-weight:600;color:#9aa0ab;text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}
.cb-c-row{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.cb-c-row select{width:130px}
.cb-c-row input{flex:1;min-width:180px}
.cb-c-del{flex-direction:row;align-items:center;gap:5px;font-size:12px;color:#9aa0ab;margin:0}
.cb-c-del input{width:auto;min-width:0;flex:none}
.cb-c-add{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.cb-c-btn{border:1px dashed #d5dae2;background:#fff;color:#4a5160;font:inherit;font-size:12px;
  padding:5px 10px;border-radius:8px;cursor:pointer}
.cb-c-btn:hover{border-color:#2f6df0;color:#2f6df0}
.cb-medit-foot{flex-basis:100%;display:flex;gap:10px;align-items:center}
.cb-c-chips{display:flex;gap:4px;margin-top:4px}
.cb-c-chip{width:20px;height:20px;border-radius:6px;background:#eef0f3;color:#4a5160;font-size:10.5px;
  font-weight:700;display:flex;align-items:center;justify-content:center}
.cb-m-main{flex:1.3;min-width:0}
.cb-m-name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cb-role{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px}
.cb-m-status{font-size:12px;color:#9aa0ab;margin-top:4px}
.cb-m-status.ok{color:#1f9d57}
.cb-m-contact{flex:1;min-width:0;font-size:12.5px}
.cb-m-deals{flex:none;width:90px;font-size:12.5px;font-weight:600;color:#6b7280;text-align:right}
.cb-toggle{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 13px;border-radius:9px;cursor:pointer;flex:none}
.cb-toggle.off{color:#d2362f;border-color:#f4c4c0}
.cb-add{display:flex;align-items:center;justify-content:center;gap:7px;padding:13px;border:1.5px dashed #cfd4dd;border-radius:13px;font-size:13px;font-weight:600;color:#6b7280;text-decoration:none}
.cb-seg{display:flex;gap:2px;background:#eef0f3;border-radius:9px;padding:3px;width:fit-content;margin-bottom:16px}
.cb-seg a{font-size:12.5px;font-weight:700;padding:6px 16px;border-radius:6px;color:#6b7280;text-decoration:none}
.cb-seg a.on{background:#fff;color:#1a1d24;box-shadow:0 1px 2px rgba(16,24,40,.08)}
.cb-builder{display:flex;flex-direction:column;gap:14px}
.cb-sec-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.cb-sec-head h2{font-size:15.5px;font-weight:700;margin:0;letter-spacing:-.01em;flex:1}
.cb-sys-badge{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px;background:#fdf3df;color:#b9770a}
.cb-field{display:flex;align-items:center;gap:11px;padding:9px 0;border-top:1px solid #f0f1f4}
.cb-f-icon{width:26px;height:26px;border-radius:7px;background:#eef0f3;color:#6b7280;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.cb-f-name{flex:1;font-size:13.5px;font-weight:500}
.cb-f-type{font-size:11.5px;font-weight:600;color:#9aa0ab}
/* порядок полей и разделов: стрелки заметны только при наведении на строку */
.cb-move{border:none;background:none;color:#c2c7d0;cursor:pointer;padding:2px 5px;border-radius:7px;
  font:inherit;font-size:13px;line-height:1}
.cb-field:hover .cb-move,.cb-sec-head:hover .cb-move{color:#6b7280}
.cb-move:hover{background:#eef0f3;color:#1a1d24}
.cb-del{border:none;background:none;color:#9aa0ab;cursor:pointer;padding:5px;border-radius:7px;display:flex}
.cb-del:hover{background:#fdeceb;color:#d2362f}
.cb-edit{color:#9aa0ab;padding:5px;border-radius:7px;display:flex;text-decoration:none}
.cb-edit:hover{background:#eef0f3;color:#1a1d24}
.cb-edit-form{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex:1}
.cb-edit-form input[name=name]{border:1px solid #2f6df0;border-radius:8px;padding:7px 11px;font:inherit;font-size:12.5px;width:180px;outline:none;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.cb-cancel{font-size:12px;font-weight:600;color:#9aa0ab;text-decoration:none;padding:6px 4px}
.cb-lock{color:#c7ccd6;padding:5px;display:flex}
.cb-hidden .cb-f-icon,.cb-hidden .cb-f-name,.cb-hidden .cb-f-type{opacity:.45}
.cb-hid-badge{font-size:10px;font-weight:700;padding:3px 7px;border-radius:6px;background:#eef0f3;color:#6b7280}
.cb-f-orig{font-style:normal;font-size:11.5px;color:#9aa0ab;font-weight:400}
.cb-hide-check{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#6b7280;cursor:pointer}
.cb-hide-check input{accent-color:#1a1d24}
.cb-opts{width:100%;border:1px solid #e6e8ec;border-radius:8px;padding:8px 11px;font:inherit;font-size:12.5px;resize:vertical;line-height:1.5}
.cb-opts:focus{outline:none;border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.cb-refs{display:flex;flex-direction:column;gap:9px}
.cb-ref{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1px solid #e6e8ec;border-radius:13px;box-shadow:0 1px 2px rgba(16,24,40,.03);text-decoration:none;color:#1a1d24}
.cb-ref-main{flex:1;min-width:0}
.cb-ref-name{font-size:14px;font-weight:700;letter-spacing:-.01em}
.cb-ref-main .cl-mut{margin-top:3px}
.cb-ref-count{font-size:12px;font-weight:700;color:#9aa0ab;background:#eef0f3;min-width:26px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;padding:0 8px}
/* безымянная группа: заголовок — служебная подпись, а не название раздела */
.cb-sec-none{color:#9aa0ab;font-weight:600!important;font-size:13px!important}
.cb-loose{border-top:none;padding-top:14px}
.cb-loose input[name=name]{width:260px}
.cb-add-field{display:flex;align-items:center;gap:9px;padding-top:10px;border-top:1px solid #f0f1f4;flex-wrap:wrap}
.cb-add-field input[name=name]{border:1px solid #e6e8ec;border-radius:8px;padding:7px 11px;font:inherit;font-size:12.5px;width:180px}
.cb-type-chips{display:flex;gap:5px;flex-wrap:wrap}
.cb-type-chips label{display:flex}
.cb-type-chips input{display:none}
.cb-type-chips span{font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:8px;cursor:pointer;background:#fff;color:#4a5160;border:1px solid #e6e8ec}
.cb-type-chips input:checked+span{background:#1a1d24;color:#fff;border-color:#1a1d24}
.cb-f-add{border:1px solid #e6e8ec;background:#fff;color:#1a1d24;font-family:inherit;font-size:12px;font-weight:600;padding:7px 12px;border-radius:8px;cursor:pointer}
.cb-new-section{display:flex;gap:8px;padding:13px;border:1.5px dashed #cfd4dd;border-radius:13px}
.cb-new-section input{flex:1;border:none;background:none;outline:none;font:inherit;font-size:13px}
.cb-new-section button{border:1px solid #e6e8ec;background:#fff;font-size:14px;font-weight:600;width:32px;border-radius:8px;cursor:pointer}
/* своё поле-файл: ссылка на вложение и галочка «убрать» над выбором нового */
.cf-file{display:flex;align-items:center;gap:10px;font-size:12.5px;margin:2px 0 6px}
.cf-file label{flex-direction:row;align-items:center;gap:5px;font-size:12px;color:#6b7280;margin:0}
.cf-file input[type=checkbox]{width:auto}
/* поле-список: кнопка «+» дописывает вариант в справочник поля, не покидая форму */
.cf-select{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cf-select select{flex:1;min-width:150px}
.cf-add-opt{border:1px dashed #d5dae2;background:#fff;color:#6b7280;font:inherit;font-size:15px;
  line-height:1;width:32px;height:32px;border-radius:8px;cursor:pointer;flex:none}
.cf-add-opt:hover{border-color:#2f6df0;color:#2f6df0}
.cf-opt-new{display:flex;gap:6px;flex-basis:100%;margin-top:5px}
.cf-opt-new input{flex:1;border:1px solid #e6e8ec;border-radius:8px;padding:7px 10px;font:inherit;font-size:13px}
.cf-opt-new button{border:none;background:#2f6df0;color:#fff;font:inherit;font-size:12.5px;
  padding:0 12px;border-radius:8px;cursor:pointer}
.cf-section{font-size:12px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.05em;margin-top:8px}

/* ── Публичный сайт (дизайн «Риелти») ───────────────────────────────────── */
.st-main{max-width:none;margin:0;padding:0}
.st,.st-top,.st-footer{font-family:'Golos Text',system-ui,sans-serif;color:#1a1d24}
.st .mono,.st-top .mono,.st-footer .mono{font-family:'Martian Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.st-top{height:64px;display:flex;align-items:center;gap:30px;padding:0 40px;border-bottom:1px solid #eef0f3;position:sticky;top:0;background:#fff;z-index:30}
.st-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:-.03em;color:#1a1d24;text-decoration:none}
.st-logo{width:30px;height:30px;border-radius:9px;background:#1a1d24;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800}
.st-nav{display:flex;gap:24px;font-size:14px;font-weight:600}
.st-nav a{color:#6b7280;text-decoration:none}
.st-nav a.on,.st-nav a:hover{color:#1a1d24}
.st-top-right{margin-left:auto;display:flex;align-items:center;gap:16px}
.st-phone{font-size:13px;font-weight:600;color:#1a1d24;text-decoration:none}
.st-crm{font-size:13.5px;font-weight:600;color:#6b7280;text-decoration:none}
.st-cta{border:none;background:#2f6df0;color:#fff;font-size:13.5px;font-weight:600;padding:10px 18px;border-radius:10px;white-space:nowrap;text-decoration:none}
.st-hero{background:#f4f5f7;padding:52px 40px 44px}
.st-hero-in{max-width:1120px;margin:0 auto}
.st-hero h1{font-size:38px;font-weight:900;letter-spacing:-.04em;margin:0;line-height:1.1}
.st-hero p{font-size:15.5px;color:#6b7280;margin:14px 0 26px;max-width:520px;line-height:1.55}
.st-filter{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:#fff;border:1px solid #e6e8ec;border-radius:16px;padding:12px;box-shadow:0 4px 18px rgba(16,24,40,.06)}
.st-chips{display:flex;gap:6px;flex-wrap:wrap}
.st-chip{font-size:13px;font-weight:600;padding:10px 15px;border-radius:10px;white-space:nowrap;background:#fff;color:#4a5160;border:1px solid #e6e8ec;text-decoration:none}
.st-chip.on{background:#1a1d24;color:#fff;border-color:#1a1d24}
.st-filter-div{width:1px;height:26px;background:#e6e8ec}
/* чипы комнатности — радио внутри label, чтобы фильтр уходил одной формой */
.st-chip input{position:absolute;opacity:0;pointer-events:none}
.st-chip{cursor:pointer}
.st-chip:has(input:checked){background:#1a1d24;color:#fff;border-color:#1a1d24}
/* валюта фильтра: короткие символы, по умолчанию евро */
.st-cur{display:flex;gap:4px;background:#f1f2f4;border-radius:10px;padding:3px}
.st-cur-opt{display:flex;align-items:center;justify-content:center;min-width:36px;height:32px;
  border-radius:8px;font-size:13px;font-weight:700;color:#6b7280;cursor:pointer}
.st-cur-opt input{position:absolute;opacity:0;pointer-events:none}
.st-cur-opt:has(input:checked){background:#fff;color:#1a1d24;box-shadow:0 1px 4px rgba(16,24,40,.12)}
/* свободный диапазон цены с подсказкой реального разброса */
.st-price{display:flex;align-items:center;gap:6px;border:1px solid #e6e8ec;border-radius:10px;
  height:38px;padding:0 10px;background:#fff}
.st-price input{width:104px;border:none;outline:none;font:inherit;font-size:13px;min-width:0}
.st-price input::placeholder{color:#b4b9c2;font-size:12px}
.st-price-dash{color:#c7ccd6}
.st-price-cur{font-size:13px;font-weight:700;color:#6b7280}
.st-apply{height:38px;padding:0 16px;border:none;border-radius:10px;background:#1a1d24;color:#fff;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}
.st-apply:hover{background:#000}
.lf-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.pv-call{border:none;cursor:pointer;width:100%;font-family:inherit}
.st-reset{color:#9aa0ab;text-decoration:none;font-size:14px;padding:4px 6px}
.st-reset:hover{color:#e0413a}
.st-found{margin-left:auto;font-size:13px;font-weight:600;color:#6b7280;padding:0 8px;white-space:nowrap}
.st-grid-wrap{max-width:1120px;margin:0 auto;padding:36px 40px 70px}
.st-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.st-card{border:1px solid #eef0f3;border-radius:16px;overflow:hidden;background:#fff;transition:box-shadow .15s;text-decoration:none;color:#1a1d24;display:block}
.st-card:hover{box-shadow:0 8px 28px rgba(16,24,40,.1)}
.st-card-photo{height:190px;background:repeating-linear-gradient(135deg,#eceef1,#eceef1 9px,#e4e7eb 9px,#e4e7eb 18px);background-size:cover;background-position:center;background-repeat:no-repeat;position:relative}
.st-verified{position:absolute;top:12px;left:12px;font-size:11px;font-weight:700;padding:5px 10px;border-radius:8px;background:rgba(255,255,255,.94);color:#1f9d57;display:flex;align-items:center;gap:6px}
.st-photos-n{position:absolute;bottom:10px;right:12px;font-size:10px;font-weight:700;color:#fff;background:rgba(26,29,36,.62);padding:3px 8px;border-radius:6px}
.st-card-body{padding:16px 17px 18px}
.st-card-price{font-size:19px;font-weight:600;letter-spacing:-.02em}
.st-card-title{font-size:14px;font-weight:600;margin-top:6px}
.st-card-addr{font-size:12.5px;color:#9aa0ab;margin-top:3px}
.st-card-specs{display:flex;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid #f0f1f4;font-size:12px;color:#6b7280;font-weight:600;flex-wrap:wrap}
.st-empty{text-align:center;padding:70px 20px;display:flex;flex-direction:column;gap:6px}
.st-empty b{font-size:16px;font-weight:600;color:#6b7280}
.st-empty span{font-size:13.5px;color:#9aa0ab}
.st-trust{border-top:1px solid #eef0f3;background:#f4f5f7;padding:44px 40px}
.st-trust-in{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.st-trust-item{display:flex;gap:14px;align-items:flex-start}
.st-trust-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none}
.st-trust-item b{font-size:14.5px;font-weight:700;display:block}
.st-trust-item span{font-size:12.5px;color:#6b7280;margin-top:4px;line-height:1.5;display:block}
.st-footer{border-top:1px solid #eef0f3;padding:26px 40px;background:#fff}
.st-footer-in{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.st-brand.small{font-size:15px}
.st-brand.small .st-logo{width:24px;height:24px;font-size:12px;border-radius:7px}
.st-copy{font-size:12.5px;color:#9aa0ab}
.st-footer .st-phone{margin-left:auto}
@media(max-width:900px){.st-price input{width:84px}.st-grid{grid-template-columns:repeat(2,1fr)}.st-trust-in{grid-template-columns:1fr}.st-nav{display:none}.st-hero{padding:34px 18px 28px}.st-hero h1{font-size:27px}.st-grid-wrap{padding:22px 18px 50px}.st-top{padding:0 18px}}
@media(max-width:560px){.st-grid{grid-template-columns:1fr}.st-cta{display:none}}

/* ── Публичная страница объекта (макет В1 «Витрина») ────────────────────── */
.pv-bg{background:#f6f7f9}
.pv-in{max-width:1180px;margin:0 auto;padding:0 40px 60px}
.pv-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:12.5px;color:#9aa0ab;font-weight:500;padding:16px 0 14px}
.pv-crumbs a{color:#6b7280;text-decoration:none}
.pv-crumbs a:hover{color:#1a1d24}
.pv-crumbs b{color:#1a1d24;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}
.pv-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.pv-head-main{flex:1;min-width:260px}
.pv-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.pv-tag{font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:8px;background:#eaf1ff;color:#2f6df0}
.pv-tag.g{background:#e7f6ee;color:#1f9d57}
.pv-head h1{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0;line-height:1.15}
.pv-addr{font-size:14.5px;color:#6b7280;margin-top:8px}
.pv-acts{display:flex;gap:8px}
.pv-icon-btn{width:44px;height:44px;border:1px solid #e6e8ec;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280}
.pv-icon-btn:hover{border-color:#c9d3e6;color:#1a1d24}
.pv-icon-btn[aria-pressed=true]{border-color:#f3c6c3;background:#fdeceb;color:#e0413a}
/* галерея: большое фото и два малых; клик открывает полноэкранный просмотр */
.pv-gal{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:460px;margin-bottom:22px}
.pv-gal figure{margin:0;border-radius:14px;overflow:hidden;position:relative;background:#e9ebef;cursor:zoom-in}
.pv-gal figure:first-child{grid-row:span 2}
.pv-gal.one{grid-template-columns:1fr}
.pv-gal.two figure{grid-row:span 2}
.pv-gal img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.pv-gal figure:hover img{transform:scale(1.03)}
.pv-gal-more{position:absolute;inset:0;background:rgba(16,20,28,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;backdrop-filter:blur(2px)}
.pv-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start;padding-bottom:40px}
.pv-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.pv-card{background:#fff;border:1px solid #e6e8ec;border-radius:14px;padding:22px}
.pv-card h2{font-size:19px;font-weight:800;letter-spacing:-.02em;margin:0 0 14px}
.pv-keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pv-key{border:1px solid #e6e8ec;border-radius:12px;padding:13px 14px;background:#fff;display:flex;flex-direction:column;gap:3px}
.pv-key span{font-size:11.5px;font-weight:600;color:#9aa0ab}
.pv-key b{font-size:18px;font-weight:700;letter-spacing:-.02em}
.pv-desc{font-size:15px;color:#333a45;line-height:1.6;white-space:pre-line;position:relative}
.pv-desc.clamped{max-height:250px;overflow:hidden}
.pv-desc.clamped.open{max-height:none}
.pv-desc-fade{display:none}
.pv-desc.clamped:not(.open) .pv-desc-fade{display:block;position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(rgba(255,255,255,0),#fff)}
.pv-more{margin-top:12px;font-size:14px;font-weight:700;background:none;border:none;padding:0;color:#2f6df0;cursor:pointer;font-family:inherit}
.pv-chars{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.pv-chars div{display:flex;align-items:baseline;gap:8px;padding:11px 0;border-bottom:1px solid #f0f1f4;font-size:14px}
.pv-chars span{color:#6b7280;white-space:nowrap}
.pv-chars i{flex:1;border-bottom:1px dotted #d8dbe1;transform:translateY(-3px);min-width:20px}
.pv-chars b{font-weight:700;text-align:right}
.pv-legal{border:1.5px solid #d3ecdd;background:#f5fbf7}
.pv-legal-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.pv-legal-head b{font-size:15.5px;font-weight:800;display:block}
.pv-legal-head span{font-size:12px;color:#6b7280;display:block}
.pv-legal-head .st-trust-icon{width:32px;height:32px;border-radius:10px}
.pv-legal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
.pv-legal-item{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:500}
.pv-check{width:17px;height:17px;border-radius:5px;background:#1f9d57;display:flex;align-items:center;justify-content:center;flex:none}
.pv-sim{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pv-sim a{border:1px solid #e6e8ec;border-radius:12px;overflow:hidden;background:#fff;color:#1a1d24;display:block;text-decoration:none}
.pv-sim a:hover{border-color:#c9d3e6;box-shadow:0 4px 16px rgba(16,24,40,.07)}
.pv-sim-photo{display:block;height:150px;background:repeating-linear-gradient(135deg,#eceef1,#eceef1 9px,#e4e7eb 9px,#e4e7eb 18px);background-size:cover;background-position:center}
.pv-sim-b{display:block;padding:12px 14px 14px}
.pv-sim-p{font-size:17px;font-weight:700;letter-spacing:-.03em;display:block}
.pv-sim-t{font-size:13.5px;margin-top:3px;display:block}
.pv-sim-a{font-size:12.5px;color:#9aa0ab;margin-top:2px;display:block}
.pv-aside{display:flex;flex-direction:column;gap:14px;position:sticky;top:80px}
.pv-box{background:#fff;border:1px solid #e6e8ec;border-radius:14px;padding:22px;box-shadow:0 4px 18px rgba(16,24,40,.06)}
.pv-price{font-size:32px;font-weight:700;letter-spacing:-.04em;line-height:1.05}
.pv-price-sub{margin-top:7px;font-size:13px;color:#6b7280}
.pv-cur{display:flex;gap:6px;margin-top:14px}
.pv-cur button{flex:1;min-height:38px;border:1px solid #e6e8ec;background:#fff;border-radius:10px;font-family:inherit;font-size:13px;font-weight:700;color:#6b7280;cursor:pointer}
.pv-cur button[aria-pressed=true]{border-color:#2f6df0;background:#eaf1ff;color:#2f6df0}
.pv-rate{margin-top:10px;font-size:12px;color:#9aa0ab}
.pv-agent{display:flex;align-items:center;gap:12px;margin:18px 0 14px;padding-top:18px;border-top:1px solid #f0f1f4}
.pv-agent b{display:block;font-size:15px;font-weight:700}
/* только подпись под именем: аватар — тоже span, ему flex-центровку не ломаем */
.pv-agent > div span{font-size:12.5px;color:#9aa0ab;display:block}
.pv-call{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:11px;background:#1a1d24;color:#fff;font-size:13.5px;font-weight:700;text-decoration:none}
.pv-call:hover{background:#000}
.pv-chan{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.pv-chan a{flex:1;min-width:45%;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid #e6e8ec;border-radius:11px;font-size:13.5px;font-weight:600;color:#1a1d24;text-decoration:none}
.pv-chan a:hover{border-color:#c9d3e6}
.pv-chan svg{width:17px;height:17px}
.pv-box .so-lead{margin-top:16px;padding-top:16px;border-top:1px solid #f0f1f4}
.pv-box .so-sent{margin-top:16px}
.pv-meta div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;border-bottom:1px solid #f0f1f4}
.pv-meta div:first-child{padding-top:0}
.pv-meta div:last-child{border:none;padding-bottom:0}
.pv-meta span{color:#6b7280}
.pv-bar{display:none}
@media(max-width:1080px){.pv-grid{grid-template-columns:1fr}.pv-aside{position:static}.pv-gal{height:380px}}
@media(max-width:760px){
  .pv-in{padding:0 14px 60px}
  .pv-head h1{font-size:22px}
  .pv-gal{display:flex;gap:8px;height:250px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -14px 18px;padding:0 14px;-webkit-overflow-scrolling:touch}
  .pv-gal::-webkit-scrollbar{display:none}
  .pv-gal figure{flex:0 0 88%;scroll-snap-align:center;height:250px}
  .pv-card{padding:16px 15px;border-radius:12px}
  .pv-card h2{font-size:17px}
  .pv-keys{grid-template-columns:1fr 1fr}
  .pv-chars{grid-template-columns:1fr}
  .pv-legal-grid{grid-template-columns:1fr}
  .pv-sim{grid-template-columns:1fr}
  .pv-price{font-size:26px}
  .pv-grid{padding-bottom:96px;gap:16px}
  .pv-bar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid #eef0f3;padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .pv-bar-price{display:flex;flex:none;white-space:nowrap;flex-direction:column;justify-content:center;line-height:1.15;padding-right:4px}
  .pv-bar-price b{font-size:16px;font-weight:700;letter-spacing:-.03em}
  .pv-bar-price span{font-size:11px;color:#9aa0ab}
  .pv-bar-btn{flex:1;min-height:48px;border-radius:12px;background:#2f6df0;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;text-decoration:none}
  .pv-bar-btn.o{background:#fff;color:#1a1d24;border:1px solid #e6e8ec}
}
/* полноэкранный просмотр фото объекта */
.pv-gal figure[data-i]{cursor:zoom-in}
.so-lb{position:fixed;inset:0;background:rgba(10,12,16,.93);z-index:90;display:flex;align-items:center;justify-content:center}
.so-lb[hidden]{display:none}
.so-lb img{max-width:92vw;max-height:86vh;border-radius:10px;object-fit:contain}
.so-lb-x{position:absolute;top:14px;right:18px;border:none;background:none;color:#c7ccd6;font-size:22px;cursor:pointer;padding:6px}
.so-lb-x:hover{color:#fff}
.so-lb-nav{position:absolute;top:50%;transform:translateY(-50%);border:none;background:rgba(255,255,255,.08);color:#e6e8ec;font-size:30px;line-height:1;cursor:pointer;width:46px;height:64px;border-radius:10px}
.so-lb-nav:hover{background:rgba(255,255,255,.16);color:#fff}
.so-lb-nav.prev{left:12px}
.so-lb-nav.next{right:12px}
.so-lb-n{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#c7ccd6;font-size:12.5px}
.so-agent-ava{width:48px;height:48px;border-radius:50%;background:#1f9d57;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex:none}
.so-lead{display:flex;flex-direction:column;gap:10px}
.so-lead input{width:100%;height:44px;border:1px solid #e6e8ec;border-radius:11px;padding:0 14px;font-family:inherit;font-size:13.5px;outline:none}
.so-lead input.mono{font-size:12.5px}
.so-lead input:focus{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
.so-lead-btn{border:none;font-family:inherit;font-size:14px;font-weight:700;height:46px;border-radius:11px;cursor:pointer;background:#2f6df0;color:#fff}
.so-lead-btn:disabled{background:#e2e5ea;color:#9aa0ab;cursor:default}
.so-disclaimer{font-size:11px;color:#b4b9c2;text-align:center;line-height:1.5}
.so-disclaimer a{color:#8a92a3;text-decoration:underline}
.st-privacy{text-decoration:underline;color:inherit}
.so-sent{background:#e7f6ee;border-radius:12px;padding:16px;text-align:center}
.so-sent b{font-size:14.5px;font-weight:700;color:#1f9d57;display:block}
.so-sent span{font-size:12.5px;color:#6b7280;margin-top:5px;line-height:1.5;display:block}

/* ── Публичный сайт: мобильная пересборка ───────────────────────────────── */
.st-m-search,.st-m-tags,.st-m-meta{display:none}
@media(max-width:560px){
  .st-hero h1{font-size:22px}
  .st-hero p{font-size:13.5px;margin:10px 0 18px}
  .st-filter{display:none}
  .st-m-search{display:flex;gap:9px}
  .st-m-search-form{flex:1;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e6e8ec;border-radius:14px;height:46px;padding:0 14px}
  .st-m-search-form input{border:none;outline:none;font:inherit;font-size:13.5px;flex:1;min-width:0;background:none}
  .st-m-filter-btn{width:46px;height:46px;border-radius:14px;background:#1a1d24;display:flex;align-items:center;justify-content:center;flex:none;position:relative;text-decoration:none}
  .st-m-filter-btn i{position:absolute;top:-4px;right:-4px;background:#2f6df0;color:#fff;font-size:10px;font-weight:700;font-style:normal;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center}
  .st-m-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;align-items:center}
  .st-m-tag{font-size:12px;font-weight:600;padding:7px 11px;border-radius:9px;background:#1a1d24;color:#fff;text-decoration:none}
  .st-m-reset{font-size:12.5px;font-weight:600;color:#6b7280;text-decoration:none;padding:7px 4px}
  .st-m-meta{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:12.5px;font-weight:600;color:#6b7280}
  .st-m-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#1f9d57;background:#e7f6ee;padding:4px 9px;border-radius:7px}
}
.st-sheet-overlay{position:fixed;inset:0;z-index:60;background:rgba(20,24,33,.45);display:flex;align-items:flex-end}
.st-sheet{width:100%;background:#fff;border-radius:24px 24px 0 0;padding:10px 18px calc(20px + env(safe-area-inset-bottom));font-family:'Golos Text',system-ui,sans-serif}
.st-sheet-handle{width:40px;height:4px;border-radius:3px;background:#e2e5ea;margin:0 auto 14px}
.st-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.st-sheet-head b{font-size:17px;font-weight:800}
.st-sheet-head a{font-size:13px;font-weight:600;color:#6b7280;text-decoration:none}
.st-sheet-sec{margin-bottom:16px}
.st-sheet-label{font-size:12px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:9px}
.st-sheet-apply{display:flex;align-items:center;justify-content:center;height:48px;width:100%;border:none;border-radius:12px;background:#2f6df0;color:#fff;font-family:inherit;font-size:14px;font-weight:700;text-decoration:none;cursor:pointer}
.st-sheet .st-price{height:44px}
.st-sheet .st-price input{flex:1;width:auto}
.st-sheet .st-cur-opt{flex:1;height:36px}
.st-form-hero{min-height:calc(100vh - 200px)}
.st-logo-img{height:32px;display:block}
/* конструктор сайта (кабинет) */
.site-swatches{display:flex;gap:8px}
.site-swatches label{display:flex}
.site-swatches input{display:none}
.site-swatches span{width:34px;height:34px;border-radius:10px;cursor:pointer;border:2px solid transparent}
.site-swatches input:checked+span{outline:2px solid #2f6df0;outline-offset:2px}
.site-editor{display:grid;grid-template-columns:1fr 260px;gap:14px;align-items:start}
.site-editor-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.site-editor-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:76px}
.site-block-head{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.site-block-head b{font-size:14px;font-weight:700;flex:1}
.site-block-head .cb-edit,.site-block-head .cb-del{border:none;background:none;font-size:14px;cursor:pointer}
.site-add-blocks{display:flex;gap:7px;flex-wrap:wrap}
.site-add-blocks .ob-chip{border:1px solid #e6e8ec;cursor:pointer;font-family:inherit}
.site-version{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid #f0f1f4}
.site-version span{flex:1;font-size:12.5px;color:#6b7280}
@media(max-width:900px){.site-editor{grid-template-columns:1fr}.site-editor-side{position:static}}
/* блоки страниц конструктора (публичные) */
.sp-draft-bar{background:#fdf3df;color:#b9770a;font-size:12.5px;font-weight:700;text-align:center;padding:8px}
.sp-hero{padding-bottom:36px}
.sp-text{max-width:760px;margin:0 auto;padding:36px 40px}
.sp-text h2{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px}
.sp-text p{font-size:14.5px;color:#4a5160;line-height:1.65;margin:0;white-space:pre-line}
.sp-cta{background:#f4f5f7;padding:36px 40px}
.sp-cta-in{max-width:760px;margin:0 auto;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.sp-cta-in b{font-size:20px;font-weight:800;letter-spacing:-.02em;flex:1}
.sp-faq{max-width:760px;margin:0 auto;padding:36px 40px}
.sp-faq h2{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0 0 14px}
.sp-faq-item{border-bottom:1px solid #f0f1f4;padding:12px 0}
.sp-faq-item summary{font-size:14.5px;font-weight:600;cursor:pointer}
.sp-faq-item p{font-size:13.5px;color:#4a5160;line-height:1.6;margin:10px 0 0}
.sp-lead{padding:36px 40px;display:flex;justify-content:center}
.sp-lead h2{font-size:18px;font-weight:800;margin:0 0 14px}
.sp-lead .st-form-card{width:460px;max-width:100%}
.sp-team{max-width:1120px;margin:0 auto;padding:36px 40px}
.sp-team h2{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0 0 18px}
.sp-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.sp-team-card{border:1px solid #eef0f3;border-radius:16px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.sp-team-card b{font-size:14px;font-weight:700}
.sp-team-card a{font-size:12.5px;color:#6b7280;text-decoration:none}
@media(max-width:560px){.sp-text,.sp-faq,.sp-cta,.sp-team{padding:26px 18px}}
.st-form-card{max-width:460px;background:#fff;border:1px solid #e6e8ec;border-radius:16px;padding:22px;box-shadow:0 4px 18px rgba(16,24,40,.06)}
.st-form-card textarea{width:100%;border:1px solid #e6e8ec;border-radius:11px;padding:12px 14px;font-family:inherit;font-size:13.5px;outline:none;resize:vertical;line-height:1.5}
.st-form-card textarea:focus{border-color:#2f6df0;box-shadow:0 0 0 3px rgba(47,109,240,.12)}
@media(min-width:561px){.st-sheet-overlay{align-items:center;justify-content:center;padding:20px}.st-sheet{max-width:420px;border-radius:20px}}

/* ── Мобильная версия CRM (дизайн «Риелти», нижний бар + пересборки) ────── */
.mb-bar{display:none}
.kb-mob{display:none}
.ca-agenda{display:none}
@media(max-width:700px){
  /* журнал действий */
  .au-user{width:auto}
  .au-ip{display:none}
  .au-time{width:84px}
  /* нижний бар */
  .mb-bar{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;background:#fff;border-top:1px solid #e6e8ec;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .mb-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:600;color:#9aa0ab;text-decoration:none;padding:4px 0;min-height:44px}
  .mb-bar a.on{color:#1a1d24}
  .mb-ico{position:relative;display:flex}
  .mb-ico i{position:absolute;top:-4px;right:-8px;background:#e0413a;color:#fff;font-size:9px;font-weight:700;font-style:normal;min-width:15px;height:15px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px}
  body{background:#f4f5f7}
  main.wrap{padding-bottom:84px}
  /* шапка: логотип + аватар */
  .crm-top{gap:12px;padding:0 14px}
  .crm-nav,.crm-search{display:none}
  /* сделки: канбан → табы этапов + карточки */
  .kb-board{display:none}
  .kb-mob{display:block}
  .kb-mob-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:10px;-webkit-overflow-scrolling:touch}
  .kb-mob-tabs button{flex:none;font-family:inherit;font-size:12.5px;font-weight:600;padding:9px 14px;border-radius:9px;background:#fff;color:#4a5160;border:1px solid #e6e8ec;cursor:pointer;min-height:38px}
  .kb-mob-tabs button.on{background:#1a1d24;color:#fff;border-color:#1a1d24}
  .kb-mob-tabs button span{opacity:.65;font-size:11px}
  .kb-mob-list{display:flex;flex-direction:column;gap:10px}
  .kb-mob-card{display:flex;align-items:stretch;background:#fff;border:1px solid #e6e8ec;border-left:3px solid #8a92a3;border-radius:13px;padding:14px 15px;box-shadow:0 1px 3px rgba(16,24,40,.05);gap:10px}
  .kb-mob-main{flex:1;min-width:0;text-decoration:none;color:#1a1d24}
  .kb-mob-top{display:flex;align-items:center;gap:8px}
  .kb-mob-price{font-size:19px;font-weight:600;letter-spacing:-.02em;flex:1}
  .kb-mob-docs{font-size:11.5px;font-weight:700;color:#6b7280;margin-top:9px}
  .kb-mob-actions{display:flex;flex-direction:column;gap:8px;justify-content:center}
  .kb-toolbar{position:static}
  /* детальная сделка */
  .dd-rail{overflow-x:auto;padding:16px 14px}
  .dd-badge{white-space:nowrap}
  .dd-card-head{flex-wrap:wrap}
  .dd-card-head h2{white-space:nowrap}
  .dd-add-item{margin-left:0;width:100%}
  .dd-add-item input{flex:1;width:auto}
  .dd-step{min-width:76px}
  .dd-head{flex-wrap:wrap}
  .dd-head-actions{width:100%;flex-wrap:wrap}
  .dd-head-actions form{flex:1 1 auto}
  .dd-head-actions .od-edit,.dd-head-actions .od-pub{flex:1 1 auto;justify-content:center;white-space:nowrap}
  /* длинный телефон и email не должны растягивать строку клиента */
  .cl-col-contact{min-width:0}
  .cl-col-contact .cl-phone,.cl-col-contact .cl-mut{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dd-cta{width:100%;justify-content:center}
  /* объекты: компактные строки */
  .ob-photo{width:58px;height:58px}
  .ob-right{width:auto}
  .ob-views,.ob-chev{display:none}
  .ob-row{gap:11px;padding:11px 12px}
  .ob-price{font-size:14px}
  /* календарь: сетки → агенда */
  .ca-grid{display:none}
  .ca-agenda{display:flex;flex-direction:column;gap:16px}
  .ca-seg{display:none}
  /* клиенты */
  .cl-col-deal{display:none}
  .cl-row .cl-act.msg{display:none}
  /* документы: категории горизонтально, без предпросмотра */
  .dc-grid{display:flex;flex-direction:column;gap:12px}
  /* горизонтальная прокрутка спасает только вместе с ограничением ширины:
     иначе контейнер сам растягивается по содержимому и уносит страницу */
  .dc-tree{flex-direction:row;overflow-x:auto;gap:6px;padding:8px;max-width:100%}
  .dc-cat{flex:none;padding:8px 12px}
  .dc-cat span{margin-left:6px}
  .dc-side{display:none}
  .dc-btn:not(.gen){display:none}
  /* объекты: фильтр улица+дом и строка списка в одну колонку */
  .ob-toolbar{gap:10px}
  .ob-search{order:5;width:100%;flex-wrap:wrap;height:auto;padding:8px 10px;gap:8px}
  .ob-search select{max-width:none;flex:1 1 100%;border-right:0;height:34px}
  .ob-search .ob-house{flex:1 1 auto;width:auto}
  .ob-search-go{flex:none}
  .ob-found{order:4}
  .ob-approx{display:none}                 /* длинный пересчёт не влезает в строку */
  .ob-right{align-items:flex-end;text-align:right;flex:none}
  .ob-addr-line{font-size:12px}
  /* клиенты: вкладки и фильтры подбора прокручиваются, а не рвут ширину */
  .cl-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:2px;scrollbar-width:none}
  .cl-tabs::-webkit-scrollbar{display:none}
  .cl-tabs a{flex:none;white-space:nowrap;padding:11px 10px}
  .cl-filters{flex-wrap:wrap;gap:6px}    /* чипы переносятся, бюджет — строкой ниже */
  /* подпись «ищет … до N» переносится, а не растягивает строку списка */
  .cl-sub{flex-wrap:wrap;gap:6px}
  .cl-sub .cl-mut{white-space:normal;min-width:0}
  .cl-sub .cl-mut b{white-space:nowrap}
  .cl-f-grid,.cl-bud-row,.cl-pass-row{grid-template-columns:1fr}
  /* документы и договоры */
  .dg-tabs{margin-left:0}
  .dg-filters{flex-wrap:wrap;gap:6px}
  .dg-search{margin-left:0;min-width:0;width:100%;order:9}
  .dg-author,.dg-when{display:none}
  .dg-row{gap:10px;padding:11px 12px}
  .dg-num{min-width:52px;font-size:12px}
  .dg-head-main{min-width:0}
  .dg-doc-wrap{padding:12px 8px;border-radius:10px}
  .dg-doc{width:auto;padding:14px 12px;font-size:10.5pt}
  .dg-doc table{font-size:8.5pt}
  .dg-side-grid{gap:10px}
  .dg-tbl{display:block;overflow-x:auto}   /* таблицы приложений шире экрана — прокрутка */
  .dg-inline-form{flex-wrap:wrap}
  .dg-inline-form input,.dg-inline-form select{flex:1 1 100%}
  .dg-inline-form input[type=date],.dg-inline-form input[type=datetime-local]{width:auto}
  .td-row{grid-template-columns:1fr 120px 26px}
  /* кабинет → сайт → водяной знак */
  .wm-grid{grid-template-columns:1fr}
  /* попасть пальцем: мелкие кнопки-плюсы и точки статусов крупнее */
  .ob-search-go{height:38px}
  .od-lg-add,.od-src-add,.td-add{width:34px;height:34px;font-size:17px}
  .td-del{font-size:17px;padding:6px 4px}
  .mut{min-height:34px;padding:8px 12px}
  .od-pm-btn{min-height:32px;padding:6px 10px;font-size:12px}
  .cb-move{min-width:30px;min-height:30px;padding:6px}
  .cb-add-field,.cb-add-sec,.st-add{min-height:32px}
  table.list td,table.list th{white-space:nowrap}
  table.list td .ig-hint,table.list td p{white-space:normal}
  /* журнал действий: путь запроса длинный и в строку не помещается.
     Правило намеренно узкое — общее «.au-row .mono» перебивало скрытие IP */
  .au-row{flex-wrap:wrap}
  .au-row small.mono{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .cb-del{min-width:30px;min-height:30px;align-items:center;justify-content:center}
  .cb-new-section button{min-height:34px}
  /* кабинет → справочники: подпись под названием переносится, а не режется */
  .cb-ref-main .cl-mut{white-space:normal;overflow:visible}
  /* клиенты: кнопка бюджета встаёт в строку фильтра, а не за край */
  .cl-bud-ok{flex:none}
  .cl-bud{flex-wrap:wrap}
  /* прочее */
  .cb-m-contact{display:none}
  .rl-overlay{padding:10px;align-items:flex-end}
  .rl-modal{max-height:calc(100vh - 20px)}
}
.ca-ag-day{background:#fff;border:1px solid #e6e8ec;border-radius:13px;padding:14px 15px}
.ca-ag-label{font-size:12px;font-weight:700;color:#9aa0ab;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.ca-ag-ev{display:flex;align-items:center;gap:10px;padding:10px 10px;border-left:3px solid #8a92a3;background:#f7f8fa;border-radius:0 9px 9px 0;margin-bottom:7px;text-decoration:none;color:#1a1d24;min-height:40px}
.ca-ag-ev b{font-size:12px;font-weight:600;flex:none}
.ca-ag-ev span{flex:1;font-size:13px;font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-ag-ev i{font-style:normal;font-size:10px;font-weight:700;padding:3px 7px;border-radius:6px;flex:none}
.ca-ag-ev.done{opacity:.5}
