/* Shared overlay surface contract. Route content stays route-owned; the frame,
   keyboard destination and async states are intentionally one family. */
.ui-surface-layer {
  isolation:isolate;
}
.ui-surface {
  min-width:0;
  min-height:0;
}
.ui-surface:focus-visible {
  outline:3px solid color-mix(in srgb,var(--accent,#0b8068) 28%,transparent);
  outline-offset:2px;
}
dialog.ui-surface[data-ui-surface-bridge="1"] {
  box-sizing:border-box;
  width:min(760px,calc(100vw - 48px));
  max-width:none;
  max-height:calc(100dvh - 48px);
  border:1px solid var(--line,#dde7e3);
  border-radius:16px;
  background:var(--surface,#fff);
  color:var(--text,#17231f);
  box-shadow:0 2px 6px rgba(23,35,31,.06),0 24px 60px -24px rgba(23,35,31,.3);
  overflow:auto;
}
dialog.ui-surface[data-ui-surface="inspector"] { width:min(920px,calc(100vw - 48px)); }
dialog.ui-surface[data-ui-surface="drill"] { width:min(1040px,calc(100vw - 48px)); }
dialog.ui-surface[data-ui-surface-bridge="1"]::backdrop {
  background:color-mix(in srgb,var(--bg,#0f172a) 42%,transparent);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}
.ui-surface-layer--popover {
  align-items:start;
  justify-items:end;
  padding:12px;
  pointer-events:none;
}
.ui-surface-layer--popover > .ui-surface { pointer-events:auto; }
.manager-overlay > .ui-surface {
  display:grid;
  grid-template-rows:minmax(0,1fr);
  isolation:isolate;
}
.manager-overlay > .ui-surface[data-ui-surface="inspector"] {
  width:min(760px,100%);
}
.manager-overlay > .ui-surface[data-ui-surface="drill"] {
  width:min(720px,100%);
}
.ui-surface-state {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:12px;
  min-height:112px;
  padding:20px;
  border:1px dashed var(--line,var(--border,#dfe8e4));
  border-radius:14px;
  background:var(--surface-2,#f8fafc);
  color:var(--text,#17231f);
}
.ui-surface-state h3 { margin:0; font-size:16px; line-height:1.3; }
.ui-surface-state p { margin:5px 0 0; color:var(--muted,var(--text-dim,#64746f)); font-size:13px; line-height:1.45; }
.ui-surface-state--error { border-color:color-mix(in srgb,var(--bad,#c2410c) 38%,var(--line,#dfe8e4)); }
.ui-surface-state-action {
  min-height:32px;
  margin-top:14px;
  padding:6px 10px;
  border:1px solid var(--line,var(--border,#dfe8e4));
  border-radius:9px;
  background:var(--surface,#fff);
  color:var(--text,#17231f);
  font:700 12px/1 var(--font-ui,Inter,system-ui,sans-serif);
  cursor:pointer;
}
.ui-surface-state-action:hover { border-color:var(--accent,#0b8068); }
.ui-surface-state-action:focus-visible,
.manager-overlay > .ui-surface:focus-visible {
  outline:3px solid color-mix(in srgb,var(--accent,#0b8068) 28%,transparent);
  outline-offset:2px;
}
.ui-surface-state-spinner {
  width:18px;
  height:18px;
  margin-top:2px;
  border:2px solid color-mix(in srgb,var(--accent,#0b8068) 20%,transparent);
  border-top-color:var(--accent,#0b8068);
  border-radius:50%;
  animation:ui-surface-spin .8s linear infinite;
}
.ui-surface-lineage {
  display:grid;
  gap:9px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid var(--line,var(--border,#dfe8e4));
  border-radius:12px;
  background:var(--surface-2,#f8fafc);
  color:var(--text,#17231f);
  font-size:12px;
  line-height:1.4;
}
.ui-surface-lineage h3 { margin:0; font-size:12px; letter-spacing:.05em; text-transform:uppercase; }
.ui-surface-lineage dl { display:grid; gap:6px; margin:0; }
.ui-surface-lineage dl > div { display:grid; grid-template-columns:minmax(92px,max-content) minmax(0,1fr); gap:10px; }
.ui-surface-lineage dt { color:var(--muted,var(--text-dim,#64746f)); }
.ui-surface-lineage dd { min-width:0; margin:0; }
.ui-surface-lineage-sources,
.ui-surface-lineage-references { display:flex; flex-wrap:wrap; gap:6px 9px; align-items:baseline; }
.ui-surface-lineage-sources > span,
.ui-surface-lineage-sources > a,
.ui-surface-lineage-references > span,
.ui-surface-lineage-references > a { color:var(--muted,var(--text-dim,#64746f)); }
.ui-surface-lineage a { color:var(--accent,#0b8068); text-underline-offset:2px; }
@keyframes ui-surface-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
  .ui-surface-state-spinner,
  .task-draft-close { animation:none; transition:none; }
}

/* ═══ ОДНО СЕМЕЙСТВО МОДАЛОК (18.09.2026) — см. openSurface в ui_surface.js ═══
   Токены — из макета (maket-tri-ekrana): тень shadow-3, радиус 16, анимация
   появления .22s cubic-bezier(.2,.8,.2,1); цвета — переменные темы с запасом. */
.ui-surface-layer[data-ui-surface-layer] {
  position:fixed; inset:0; z-index:2000;
  display:grid; place-items:center; padding:24px;
  background:color-mix(in srgb, var(--bg, #0f172a) 42%, transparent);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  opacity:0; transition:opacity .2s ease;
}
.ui-surface-layer[data-ui-surface-layer][data-state="open"] { opacity:1; }
.ui-surface-layer[data-ui-surface-layer] > .ui-surface {
  display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  width:min(720px, 100%); max-height:min(88vh, calc(100dvh - 48px));
  border:1px solid var(--line, #dde7e3); border-radius:var(--r-2xl, 16px);
  background:var(--surface, #fff); color:var(--text, #17231f);
  box-shadow:0 2px 6px rgba(23,35,31,.06), 0 24px 60px -24px rgba(23,35,31,.3);
  overflow:hidden; outline:none;
  transform:translateY(6px) scale(.985); opacity:0;
  transition:transform .22s cubic-bezier(.2,.8,.2,1), opacity .22s ease;
}
.ui-surface-layer[data-ui-surface-layer][data-state="open"] > .ui-surface { transform:none; opacity:1; }
.ui-surface-layer[data-ui-surface-layer] > .ui-surface--size-wide,
.ui-surface-layer[data-ui-surface-layer] > .ui-surface--size-drill { width:min(1040px, 100%); }
.ui-surface-layer[data-ui-surface-layer] > .ui-surface--size-narrow { width:min(520px, 100%); }
/* Боковая карточка: справа, во всю высоту, въезжает слева направо. */
.ui-surface-layer--inspector[data-ui-surface-layer] { place-items:stretch end; padding:0; }
.ui-surface-layer--inspector[data-ui-surface-layer] > .ui-surface {
  width:min(760px, 100%); height:100dvh; max-height:none; border-radius:0; border-width:0 0 0 1px;
  transform:translateX(24px); box-shadow:0 0 0 1px var(--line,#dde7e3), -24px 0 60px -24px rgba(23,35,31,.35);
}
.ui-surface-layer--inspector[data-ui-surface-layer][data-state="open"] > .ui-surface { transform:none; }
/* Малая всплывашка у элемента: без подложки, без блокировки страницы. */
.ui-surface-layer--popover[data-ui-surface-layer] { background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; pointer-events:none; padding:0; display:block; }
.ui-surface-layer--popover[data-ui-surface-layer] > .ui-surface { pointer-events:auto; width:min(360px, calc(100vw - 24px)); max-height:min(60vh, 480px); border-radius:12px; box-shadow:0 1px 2px rgba(23,35,31,.05), 0 10px 30px -14px rgba(23,35,31,.16); }
.ui-surface-layer--popover[data-ui-surface-layer] > .ui-surface .ui-surface-head { padding:10px 12px 8px; }
.ui-surface-layer--popover[data-ui-surface-layer] > .ui-surface .ui-surface-body { padding:10px 12px; }

.ui-surface-head {
  display:flex; align-items:flex-start; gap:12px;
  padding:16px 18px 12px; border-bottom:1px solid var(--line, #dde7e3);
  background:var(--surface, #fff);
}
.ui-surface-head-text { min-width:0; flex:1 1 auto; }
.ui-surface-title {
  margin:0; font-size:17px; line-height:1.3; font-weight:650; letter-spacing:-.02em;
  min-width:0; max-width:100%; overflow-wrap:anywhere;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ui-surface-subtitle {
  margin:3px 0 0; font-size:12.5px; line-height:1.45; color:var(--muted, #64746f);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ui-surface-technical-title { display:grid; gap:4px; margin:0 0 14px; padding:10px 12px; border:1px solid var(--line,#dce4e1); border-radius:10px; background:var(--surface-soft,#f5f8f7); color:var(--muted,#62716c); overflow-wrap:anywhere; }
.ui-surface-technical-title b { color:var(--ink,#20312d); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.ui-surface-close {
  flex:0 0 auto; width:32px; height:32px; margin:-4px -6px 0 0;
  display:grid; place-items:center; border:1px solid var(--line, #dde7e3); border-radius:9px;
  background:var(--surface-2, #f2f7f5); color:var(--muted, #64746f); font:600 13px/1 var(--font-ui, Inter, system-ui, sans-serif);
  cursor:pointer; transition:border-color .15s, color .15s, background .15s;
}
.ui-surface-close:hover { color:var(--text, #17231f); border-color:var(--accent, #0e8067); background:var(--surface, #fff); }
.ui-surface-close:focus-visible { outline:3px solid color-mix(in srgb, var(--accent, #0e8067) 28%, transparent); outline-offset:2px; }
.ui-surface-body {
  min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable;
  padding:14px 18px 16px; font-size:13px; line-height:1.5;
}
.ui-surface-body > * { min-width:0; }
.ui-surface-body :is(h1,h2,h3,h4,p,dt,dd,td,th,a,code) { overflow-wrap:anywhere; }
.ui-surface-body > :first-child { margin-top:0; }
.ui-surface-body table { width:100%; border-collapse:collapse; font-size:12.5px; }
.ui-surface-body th { position:sticky; top:0; z-index:1; text-align:left; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted,#64746f); background:var(--surface,#fff); padding:7px 10px 6px; border-bottom:1px solid var(--line,#dde7e3); white-space:nowrap; }
.ui-surface-body td { padding:6px 10px; border-bottom:1px solid var(--line-soft, var(--line, #eaf1ee)); vertical-align:middle; }
.ui-surface-body td.n, .ui-surface-body th.n { text-align:right; font-variant-numeric:tabular-nums; }
.ui-surface-foot {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px;
  padding:10px 18px 12px; border-top:1px solid var(--line, #dde7e3); background:var(--surface, #fff);
}
.ui-surface-foot[hidden] { display:none; }
.ui-surface-action {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:34px; padding:6px 13px; border:1px solid var(--line, #dde7e3); border-radius:9px;
  background:var(--surface, #fff); color:var(--text, #17231f);
  font:600 12.5px/1.3 var(--font-ui, Inter, system-ui, sans-serif); text-decoration:none; cursor:pointer;
  transition:border-color .15s, background .15s, color .15s;
}
.ui-surface-action:hover { border-color:var(--accent, #0e8067); }
.ui-surface-action--primary { background:var(--accent, #0e8067); border-color:var(--accent, #0e8067); color:#fff; }
.ui-surface-action--primary:hover { filter:brightness(1.05); }
.ui-surface-action--danger { color:var(--bad, #b5341f); border-color:color-mix(in srgb, var(--bad, #b5341f) 40%, var(--line, #dde7e3)); }
.ui-surface-action:disabled { opacity:.5; cursor:default; }
.ui-surface-action:focus-visible { outline:3px solid color-mix(in srgb, var(--accent, #0e8067) 28%, transparent); outline-offset:2px; }
.ui-surface-text-label{display:grid;gap:7px;font-weight:650}
.ui-surface-text-label input{min-height:38px;padding:7px 10px;border:1px solid var(--line,#dce2e7);border-radius:8px;font:inherit}
.ui-surface-text-error{margin:8px 0 0;color:var(--bad,#b42318)}

/* Факты в первом экране: сетка «подпись — значение». */
.ui-surface-facts {
  display:grid; grid-template-columns:repeat(var(--ui-surface-facts-cols, 2), minmax(0, 1fr));
  gap:8px 16px; margin:0 0 14px;
}
.ui-surface-fact { min-width:0; padding:8px 10px; border:1px solid var(--line, #dde7e3); border-radius:10px; background:var(--surface-2, #f8fafc); }
.ui-surface-fact--wide { grid-column:1 / -1; }
.ui-surface-fact dt { margin:0; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted, #64746f); }
.ui-surface-fact dd { margin:2px 0 0; font-size:13.5px; font-weight:600; overflow-wrap:anywhere; }
.ui-surface-note { margin:0 0 12px; font-size:12.5px; color:var(--muted, #64746f); }
.ui-surface-note summary { cursor:pointer; font-weight:600; color:var(--text, #17231f); }
.ui-surface-note > div { margin-top:6px; line-height:1.5; }
.ui-surface-section { margin:14px 0 0; }
.ui-surface-section > h3 { margin:0 0 8px; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted, #64746f); }

/* Старые оболочки внутри нового тела: убираем их собственные рамки/отступы. */
.ui-surface-body > .manager-modal, .ui-surface-body > .registry-modal, .ui-surface-body > .vision-workflow-dialog { border:0; box-shadow:none; padding:0; width:auto; max-height:none; background:transparent; }
.ui-surface-body .registry-modal-head, .ui-surface-body .workflow-dialog-header { display:none; }
.ui-surface-body .registry-modal-body, .ui-surface-body .workflow-dialog-body { padding:0; }
.ui-surface-body .registry-modal-foot, .ui-surface-body .workflow-dialog-footer { padding:12px 0 0; margin-top:12px; }
.ui-surface-body .manager-modal-close { display:none; }
body.ui-surface-open { overflow:hidden; }

/* Строки таблиц: кликабельная и «немая». */
tr.ui-row-drill { cursor:pointer; }
tr.ui-row-drill:hover > td { background:color-mix(in srgb, var(--accent, #0e8067) 6%, var(--surface, #fff)); }
tr.ui-row-drill:focus-visible { outline:2px solid var(--accent, #0e8067); outline-offset:-2px; }
table tbody tr.ui-row-inert, table.mk-dannye tbody tr.ui-row-inert[data-mk-drill-row], table.kp-dannye tbody tr.ui-row-inert[data-kp-drill-row], tr.ui-row-inert > td { cursor:default; }
tr.ui-row-inert:hover > td { background:inherit; }

@media (max-width:760px) {
  .ui-surface-layer[data-ui-surface-layer] { padding:8px; }
  .ui-surface-layer[data-ui-surface-layer] > .ui-surface { max-height:calc(100dvh - 16px); }
  .ui-surface-layer--inspector[data-ui-surface-layer] > .ui-surface { width:100%; }
  .ui-surface-facts { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .ui-surface-layer[data-ui-surface-layer], .ui-surface-layer[data-ui-surface-layer] > .ui-surface { transition:none; transform:none; opacity:1; }
}
/* Карточка клиента в боковой поверхности: шапка карточки — одной колонкой (её h2 ушёл в заголовок поверхности). */
.ui-surface-body .entity-command-header { grid-template-columns:1fr !important; }
.ui-surface-body .entity-command-metrics { display:flex; flex-wrap:wrap; gap:8px; }
/* Карточка 360 сделки/лида (entity_drawer_controller) в боковой поверхности: шире, старая
   рамка дровера внутри тела снята. */
.ui-surface-layer.deal-drawer-layer[data-ui-surface-layer] > .ui-surface { width:min(1120px, 100%); }
.ui-surface-body > .deal-drawer--surface { width:auto; height:auto; max-height:none; background:transparent; border:0; box-shadow:none; border-radius:0; display:block; }
.ui-surface-body > .deal-drawer--surface > .deal-drawer-body { padding:0; overflow:visible; }
.ui-surface-layer.deal-drawer-layer .entity-command-header { grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr); }
/* «Связь клиента с 1С» внутри поверхности: рамка старого <dialog> снята, поля/заголовки остаются. */
.ui-surface-body.customer-source-link-dialog { width:auto; max-height:none; padding:14px 18px 16px; border:0; border-radius:0; box-shadow:none; overflow:auto; }
.ui-surface-body.customer-source-link-dialog h4:first-child { margin-top:0; }
/* Подвал маршрута (registry-modal-foot) внутри подвала поверхности: без своей рамки. */
.ui-surface-foot > .ui-surface-foot-route { display:contents; }
.ui-surface-foot > .ui-surface-foot-route.registry-modal-foot { border:0; padding:0; }
.ui-surface-body > .registry-modal-body { padding:0; }
