#tab-entities { background: var(--bg, #f6f7fb); min-height: 100%; color: var(--text, #172033); }
#tab-entities.is-active { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; }
#tab-entities .ent-wrap { display:flex; flex:1 1 auto; flex-direction:column; width:100%; max-width:none; min-height:0; margin:0; padding:22px 20px 12px; box-sizing:border-box; }
#tab-entities .ent-head { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
#tab-entities .ent-title { margin:0; font-size:18px; font-weight:500; }
#tab-entities .ent-sub { color:var(--muted,#64748b); font-size:13px; }
#tab-entities .ent-btn { border:1px solid var(--border, #dce1ea); border-radius:var(--btn-radius,10px); background:var(--card, #fff); color:var(--text,#172033); min-height:36px; padding:0 12px; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
#tab-entities .ent-btn:hover { border-color:#818cf8; color:var(--primary-ink, #4338ca); }
#tab-entities .ent-btn:disabled { opacity:.55; cursor:not-allowed; }
#tab-entities .ent-btn--primary { background:#4f46e5; border-color:#4f46e5; color:#fff; }
#tab-entities .ent-btn--primary:hover { background:#4338ca; border-color:#4338ca; color:#fff; }
#tab-entities .ent-btn--danger { color:#b42318; }
#tab-entities .ent-layout { display:grid; flex:1 1 auto; min-height:0; grid-template-columns:260px minmax(0,1fr); gap:16px; align-items:stretch; }
#tab-entities .ent-types, #tab-entities .ent-main { background:var(--card, #fff); border:1px solid var(--border,#e2e6ef); border-radius:14px; box-shadow:0 1px 2px rgba(15,23,42,.03); }
#tab-entities .ent-types { align-self:start; padding:8px; }
#tab-entities .ent-types__head { display:flex; align-items:center; gap:8px; min-height:40px; padding:0 4px 6px 10px; color:var(--muted,#64748b); font-size:12px; }
#tab-entities .ent-types__head strong { font-weight:600; }
#tab-entities .ent-types__head .ent-create-type { flex:0 0 32px; width:32px; height:32px; font-size:20px; margin-left:auto; }
#tab-entities .ent-types__toggle { display:inline-flex; flex:0 0 32px; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:1px solid var(--border,#dce1ea); border-radius:var(--btn-radius,10px); background:#fff; color:var(--muted,#64748b); cursor:pointer; }
#tab-entities .ent-types__toggle:hover { border-color:#818cf8; color:#4338ca; }
#tab-entities .ent-types__toggle svg { transition:transform .16s ease; }
#tab-entities .ent-types__list { display:flex; flex-direction:column; gap:2px; }
#tab-entities .ent-type-row { display:flex; align-items:center; gap:4px; min-width:0; }
#tab-entities .ent-type { flex:1 1 auto; min-width:0; width:100%; display:flex; align-items:center; gap:10px; padding:10px; border:0; border-radius:var(--btn-radius,10px); background:transparent; text-align:left; font:inherit; color:inherit; cursor:pointer; }
#tab-entities .ent-type:hover,#tab-entities .ent-type.is-active { background:var(--primary-soft, #eef2ff); color:var(--primary-ink, #3730a3); }
#tab-entities .ent-dot { width:10px; height:10px; flex:0 0 auto; border-radius:50%; background:var(--c,#4f46e5); }
#tab-entities .ent-type__name { min-width:0; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
#tab-entities .ent-type-actions { display:flex; flex:0 0 auto; align-items:center; gap:2px; }
#tab-entities .ent-icon-btn { display:inline-flex; flex:0 0 34px; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border:1px solid transparent; border-radius:var(--btn-radius,10px); background:transparent; color:#64748b; cursor:pointer; }
#tab-entities .ent-icon-btn:hover:not(:disabled) { border-color:#d9ddfa; background:#f5f6ff; color:#4338ca; }
#tab-entities .ent-icon-btn:disabled { opacity:.5; cursor:wait; }
#tab-entities .ent-icon-btn .ic { display:block; }
#tab-entities .ent-main { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
#tab-entities .ent-toolbar { display:flex; gap:10px; align-items:center; padding:14px 16px; border-bottom:1px solid var(--border,#e2e6ef); }
#tab-entities .ent-toolbar h2 { font-size:17px; margin:0; }
#tab-entities .ent-toolbar__heading { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
#tab-entities .ent-toolbar__search { display:flex; flex:1 1 260px; align-items:center; gap:8px; max-width:440px; min-width:0; margin-left:auto; }
#tab-entities .ent-search-wrap { position:relative; display:flex; flex:1 1 auto; align-items:center; min-width:0; }
#tab-entities .ent-search { flex:1 1 auto; width:100%; min-width:0; height:40px; margin:0; border:1px solid var(--border,#dce1ea); border-radius:9px; padding:0 40px 0 10px; font:inherit; }
#tab-entities .ent-search-clear { position:absolute; top:50%; right:6px; display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; transform:translateY(-50%); border:1px solid var(--border,#dce1ea); border-radius:50%; background:#fff; color:var(--muted,#64748b); cursor:pointer; }
#tab-entities .ent-search-clear:hover { border-color:#818cf8; background:#f5f6ff; color:#4338ca; }
#tab-entities .ent-search-clear[hidden] { display:none; }
#tab-entities .crm-add { display:inline-flex; flex:none; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:var(--primary); color:#fff; cursor:pointer; box-shadow:0 2px 6px rgba(79,70,229,.28); transition:transform .08s ease; font:inherit; font-size:22px; line-height:1; }
#tab-entities .crm-add:hover { filter:brightness(1.06); }
#tab-entities .crm-add:disabled { opacity:.55; cursor:not-allowed; }
#tab-entities .ent-pagination { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:8px; padding:10px 16px; border-top:1px solid #edf0f5; }
#tab-entities .ent-pagination__range { margin-right:auto; color:var(--muted,#64748b); font-size:13px; }
#tab-entities .ent-pagination__number { min-width:56px; color:var(--muted,#64748b); font-size:13px; text-align:center; }
#tab-entities .ent-table { width:100%; border-collapse:collapse; font-size:14px; }
#tab-entities .ent-table th { text-align:left; font-weight:600; color:var(--muted,#64748b); font-size:12px; background:var(--surface-subtle, #fafbff); }
#tab-entities .ent-table th,.ent-table td { padding:11px 16px; border-bottom:1px solid var(--border, #edf0f5); vertical-align:middle; }
#tab-entities .ent-table tr[data-record] { cursor:pointer; }
#tab-entities .ent-table tr[data-record]:hover { background:var(--surface-subtle, #fafbff); }
#tab-entities .ent-record-links { min-width:150px; }
#tab-entities .ent-record-links__cell { white-space:nowrap; }
#tab-entities .ent-record-links__summary { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
#tab-entities .ent-record-link { display:inline-flex; align-items:center; gap:6px; color:#4338ca; text-decoration:none; white-space:nowrap; }
#tab-entities .ent-record-link__icon { width:16px; height:16px; flex:0 0 16px; }
#tab-entities .ent-record-link:hover { text-decoration:underline; }
#tab-entities .ent-record-links__more { display:inline-flex; align-items:center; justify-content:center; min-width:30px; height:26px; padding:0 8px; border:1px solid #d9ddfa; border-radius:var(--btn-radius,10px); background:#eef2ff; color:#3730a3; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
#tab-entities .ent-record-links__more:hover { background:#e0e7ff; }
#tab-entities .ent-links-popover { display:none; position:fixed; inset:auto; margin:0; width:min(420px,calc(100vw - 24px)); max-height:min(340px,calc(100dvh - 24px)); overflow:auto; padding:12px; border:1px solid var(--border,#dce1ea); border-radius:12px; background:#fff; color:var(--text,#172033); box-shadow:0 12px 32px rgba(15,23,42,.2); }
#tab-entities .ent-links-popover:popover-open { display:block; }
#tab-entities .ent-links-popover__title { display:block; margin-bottom:8px; font-size:13px; }
#tab-entities .ent-links-popover__list { display:flex; flex-direction:column; gap:2px; }
#tab-entities .ent-links-popover .ent-record-link { min-height:38px; padding:6px 8px; border-radius:var(--btn-radius,10px); white-space:normal; }
#tab-entities .ent-links-popover .ent-record-link:hover { background:#f6f7fb; }
#tab-entities .ent-links-popover .ent-record-link span { overflow-wrap:anywhere; }
#tab-entities .ent-empty { padding:50px 20px; text-align:center; color:var(--muted,#64748b); }
#tab-entities .ent-modal { position:fixed; inset:0; z-index:75; display:none; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.42); box-sizing:border-box; }
#tab-entities .ent-modal.is-open { display:flex; }
#tab-entities .ent-dialog { width:min(720px,100%); max-height:min(86dvh,780px); overflow:auto; box-sizing:border-box; background:var(--card, #fff); border-radius:16px; box-shadow:0 24px 60px rgba(15,23,42,.28); }
#tab-entities .ent-dialog__head { display:flex; align-items:center; gap:10px; padding:18px 20px; border-bottom:1px solid var(--border, #e8ebf0); }
#tab-entities .ent-dialog__head h2 { margin:0; font-size:18px; }.ent-dialog__head .ent-btn { margin-left:auto; }
#tab-entities .ent-modal__close { flex:none; width:40px; height:40px; padding:0; margin-left:auto; border:1px solid var(--border,#dce1ea); border-radius:var(--btn-radius,10px); background:#fff; color:var(--muted,#64748b); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
#tab-entities .ent-modal__close:hover { border-color:var(--primary,#4f46e5); color:var(--primary,#4f46e5); }
#tab-entities .ent-form { padding:20px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#tab-entities .ent-form .wide { grid-column:1/-1; }
#tab-entities .ent-field { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; }
#tab-entities .ent-field input,.ent-field textarea,.ent-field select { width:100%; box-sizing:border-box; padding:9px 10px; border:1px solid var(--border, #dce1ea); border-radius:var(--btn-radius,10px); background:var(--card, #fff); font:inherit; font-size:14px; color:inherit; }
#tab-entities .ent-field textarea { resize:vertical; min-height:72px; }.ent-field small { color:var(--muted,#64748b); font-weight:400; }
#tab-entities .ent-check { display:flex; gap:8px; align-items:center; font-size:13px; font-weight:500; }.ent-form__foot { grid-column:1/-1; display:flex; justify-content:flex-end; gap:8px; padding-top:6px; }
#tab-entities .ent-fields { padding:0 20px 18px; }.ent-fields__row { display:flex; align-items:center; gap:9px; padding:9px 0; border-bottom:1px solid var(--border, #edf0f5); font-size:13px; }.ent-fields__kind { color:var(--muted,#64748b); margin-left:auto; }
#tab-entities .ent-notice { padding:10px 14px; margin:0 0 12px; background:var(--warning-bg, #fef3c7); border-radius:9px; font-size:13px; color:var(--warning-ink, #92400e); }
@media (max-width:1023px) { #tab-entities .ent-wrap { padding-bottom:var(--bnav-clear,68px); } }
.ent-picker-overlay { position:fixed; inset:0; z-index:9700; display:none; align-items:center; justify-content:center; box-sizing:border-box; padding:16px; background:rgba(27,31,36,.5); }
.ent-picker-overlay.is-open { display:flex; }
.ent-picker { display:flex; flex-direction:column; width:min(760px,100%); max-height:min(88dvh,820px); min-height:min(360px,72dvh); overflow:hidden; box-sizing:border-box; background:#fff; border:1px solid var(--border,#e2e6ef); border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.25); color:var(--text,#172033); }
.ent-picker__head { display:flex; align-items:flex-start; gap:16px; padding:18px 20px; border-bottom:1px solid #e8ebf0; }
.ent-picker__head h2 { margin:0; font-size:18px; font-weight:700; }
.ent-picker__hint { margin-top:4px; color:var(--muted,#64748b); font-size:13px; }
.ent-picker__close { flex:0 0 auto; width:36px; height:36px; padding:0; margin-left:auto; font-size:22px; line-height:1; }
.ent-picker__filters { display:grid; grid-template-columns:minmax(170px,.8fr) minmax(200px,1.2fr); gap:12px; padding:14px 20px; border-bottom:1px solid #edf0f5; }
.ent-picker__filters label { display:flex; flex-direction:column; gap:5px; color:var(--muted,#64748b); font-size:12px; font-weight:600; }
.ent-picker__filters select,.ent-picker__filters input { width:100%; height:38px; box-sizing:border-box; padding:0 10px; border:1px solid var(--border,#dce1ea); border-radius:9px; background:#fff; color:var(--text,#172033); font:inherit; font-size:14px; }
.ent-picker__list { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
.ent-picker__message { display:flex; min-height:150px; align-items:center; justify-content:center; padding:24px; color:var(--muted,#64748b); text-align:center; font-size:14px; }
.ent-picker__message.is-error,.ent-picker__status.is-error { color:#b42318; }
.ent-picker__table { width:max-content; min-width:100%; table-layout:auto; border-collapse:separate; border-spacing:0; font-size:14px; }
.ent-picker__table th { position:sticky; top:0; z-index:1; background:#f6f8fc; color:var(--muted,#64748b); font-size:12px; font-weight:600; white-space:nowrap; box-shadow:inset 0 -1px 0 var(--border,#e2e6ef); }
.ent-picker__table th,.ent-picker__table td { padding:11px 16px; border-bottom:1px solid #edf0f5; text-align:left; vertical-align:middle; white-space:nowrap; }
.ent-picker__table tbody tr:hover td { background:#fafbff; }
.ent-picker__table td:first-child { width:1%; }
.ent-picker__table td:first-child .btn { padding:7px 11px; font-size:13px; white-space:nowrap; }
.ent-picker__foot { display:flex; align-items:center; gap:12px; min-height:60px; padding:10px 20px; border-top:1px solid #e8ebf0; }
.ent-picker__status { flex:1; min-width:0; color:#166534; font-size:13px; }
@media (max-width:760px) { #tab-entities .ent-wrap { padding:14px 12px var(--bnav-clear,68px); } #tab-entities .ent-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)} #tab-entities .ent-types{align-self:stretch;padding:7px} #tab-entities .ent-types__head{min-height:36px;padding:0 5px 5px} #tab-entities .ent-types__list{display:flex;flex-direction:row;gap:4px;overflow:auto;overscroll-behavior-x:contain} #tab-entities .ent-type-row{flex:0 0 auto;gap:2px} #tab-entities .ent-type{flex:0 0 auto;width:auto;white-space:nowrap} #tab-entities .ent-type-actions{gap:0} #tab-entities .ent-icon-btn{flex-basis:32px;width:32px;height:36px} #tab-entities .ent-toolbar{flex-wrap:wrap} #tab-entities .ent-toolbar__search{order:3;flex:1 1 100%;max-width:none;margin-left:0} #tab-entities .ent-table th:nth-child(n+3),#tab-entities .ent-table td:nth-child(n+3){display:none} #tab-entities .ent-form{grid-template-columns:1fr} #tab-entities .ent-form .wide{grid-column:auto} #tab-entities .ent-pagination{gap:6px;padding:8px 10px} #tab-entities .ent-pagination .ent-btn{min-height:34px;padding:0 9px} #tab-entities .ent-pagination__range{font-size:12px} }
@media (max-width:600px) { .ent-picker-overlay { padding:0; align-items:flex-end; } .ent-picker { width:100%; max-height:92dvh; min-height:60dvh; border-radius:16px 16px 0 0; } .ent-picker__head,.ent-picker__filters,.ent-picker__foot { padding-left:14px; padding-right:14px; } .ent-picker__filters { grid-template-columns:1fr; gap:10px; } .ent-picker__table th,.ent-picker__table td { padding:9px 12px; } .ent-picker__table td:first-child .btn { padding:6px 9px; } }

/* Таблицы реестра ведут себя как таблицы заявок: ширина определяется полями,
   а узкий контейнер прокручивается вместо сжатия или скрытия колонок. */
#tab-entities .ent-main { min-width:0; }
#tab-entities .ent-records-content { display:flex; flex:1 1 auto; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
#tab-entities .ent-records-content > .ent-empty { display:flex; flex:1 1 auto; align-items:center; justify-content:center; }
#tab-entities .ent-table-scroll { display:block; flex:1 1 auto; width:100%; max-width:100%; min-width:0; min-height:0; max-height:none; overflow:auto; border-radius:12px; background:#fff;
    box-shadow:0 1px 4px rgba(15,23,42,.10),0 1px 2px rgba(15,23,42,.06); -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
#tab-entities .ent-table { width:max-content; min-width:100%; table-layout:auto; border-collapse:separate; border-spacing:0; font-size:14px; }
#tab-entities .ent-table th { position:sticky; top:0; z-index:2; white-space:nowrap; background:#f6f8fc; box-shadow:inset 0 -1px 0 var(--border,#e2e6ef); }
#tab-entities .ent-table td { white-space:nowrap; background:#fff; box-shadow:inset 0 -1px 0 var(--border,#e2e6ef); }
#tab-entities .ent-table tbody tr:hover td { background:#fafbff; }
@media (max-width:760px) {
  #tab-entities .ent-table th:nth-child(n+3),#tab-entities .ent-table td:nth-child(n+3) { display:table-cell; }
}

/* Сжатый режим оставляет цветные маркеры типов и отдаёт реестру освободившуюся ширину. */
#entityApp.is-types-collapsed .ent-layout { grid-template-columns:64px minmax(0,1fr); }
#entityApp.is-types-collapsed .ent-types { padding:8px 5px; }
#entityApp.is-types-collapsed .ent-types__head { justify-content:center; padding:0 0 6px; }
#entityApp.is-types-collapsed .ent-types__head strong,
#entityApp.is-types-collapsed .ent-types__head .ent-create-type,
#entityApp.is-types-collapsed .ent-type__name,
#entityApp.is-types-collapsed .ent-type-actions { display:none; }
#entityApp.is-types-collapsed .ent-types__list { align-items:center; }
#entityApp.is-types-collapsed .ent-type-row { justify-content:center; }
#entityApp.is-types-collapsed .ent-type { flex:0 0 42px; justify-content:center; width:42px; padding:10px 0; }
#entityApp.is-types-collapsed .ent-types__toggle svg { transform:rotate(180deg); }
#tab-entities .ent-main > .ent-empty { display:flex; flex:1 1 auto; align-items:center; justify-content:center; }

/* Карточка редактирования фиксирует заголовок и действия, а историю прокручивает внутри таблицы. */
#tab-entities .ent-dialog--record { display:flex; flex-direction:column; width:min(900px,100%); height:auto; min-height:0; max-height:min(86dvh,820px); overflow:hidden; }
#tab-entities .ent-dialog--record .ent-dialog__head { flex:0 0 auto; }
#tab-entities .ent-dialog--record #entModalBody { display:flex; flex:0 1 auto; flex-direction:column; width:100%; min-height:0; overflow:hidden; }
#tab-entities .ent-record-form { display:flex; flex:0 1 auto; flex-direction:column; width:100%; min-height:0; box-sizing:border-box; overflow:hidden; padding:0; gap:0; }
#tab-entities .ent-record-form > .ent-notice { flex:0 0 auto; margin:12px 20px 0; }
#tab-entities .ent-record-fields { display:grid; flex:0 1 auto; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; min-height:0; max-height:min(360px,42dvh); overflow:auto; padding:18px 20px; }
#tab-entities .ent-record-fields .wide { grid-column:1/-1; }
#tab-entities .ent-record-files { flex:0 1 auto; min-height:0; max-height:120px; overflow:auto; padding:0 20px 10px; }
#tab-entities .ent-record-files h3,#tab-entities .ent-history h3 { margin:4px 0 8px; font-size:14px; }
#tab-entities .ent-record-files > div { max-height:82px; overflow:auto; }
#tab-entities .ent-history { display:flex; flex:0 1 140px; flex-direction:column; height:140px; min-height:0; max-height:140px; overflow:hidden; padding:8px 20px 10px; }
#tab-entities .ent-history__scroll { flex:1 1 auto; min-height:0; overflow:auto; border:1px solid var(--border,#e2e6ef); border-radius:10px; overscroll-behavior:contain; }
#tab-entities .ent-history-table { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
#tab-entities .ent-history-table th { position:sticky; top:0; z-index:1; background:#f6f8fc; color:var(--muted,#64748b); text-align:left; font-size:12px; font-weight:600; }
#tab-entities .ent-history-table th,#tab-entities .ent-history-table td { padding:9px 12px; border-bottom:1px solid #edf0f5; vertical-align:top; }
#tab-entities .ent-history-table th:first-child,#tab-entities .ent-history-table td:first-child { width:180px; white-space:nowrap; }
#tab-entities .ent-record-form .ent-form__foot { flex:0 0 auto; padding:12px 20px 18px; border-top:1px solid #e8ebf0; }
@media (max-width:760px) {
  #entityApp.is-types-collapsed .ent-layout { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); }
  #entityApp.is-types-collapsed .ent-types__head { justify-content:flex-end; }
  #entityApp.is-types-collapsed .ent-types__toggle { margin-left:auto; }
  #entityApp.is-types-collapsed .ent-types__list { align-items:center; }
  #entityApp.is-types-collapsed .ent-type { flex-basis:38px; width:38px; padding:8px 0; }
  #tab-entities .ent-type__name { white-space:normal; }
  #tab-entities .ent-dialog--record { width:100%; height:auto; max-height:min(92dvh,900px); border-radius:16px; }
  #tab-entities .ent-record-fields { grid-template-columns:1fr; max-height:min(260px,34dvh); padding:14px; }
  #tab-entities .ent-record-fields .wide { grid-column:auto; }
  #tab-entities .ent-record-form > .ent-notice { margin:10px 14px 0; }
  #tab-entities .ent-record-files { padding-right:14px; padding-left:14px; }
  #tab-entities .ent-history { flex-basis:100px; height:100px; max-height:100px; padding-right:14px; padding-left:14px; }
  #tab-entities .ent-record-form .ent-form__foot { flex-wrap:wrap; padding:10px 14px 14px; }
}
