:root{
  --z-font-sans:"IBM Plex Sans",Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --z-spine-w:264px; --z-row-h:44px; --z-pad-main:24px; --z-pad-card:18px;
}
:root[data-theme="light"], :root[data-theme="hybrid"]{
}
:root[data-density="compact"]{ --z-row-h:34px; --z-pad-main:14px; --z-pad-card:12px; }

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; height:100%; }
body{
  font-family:var(--z-font-sans); background:var(--z-bg-flat); color:var(--z-ink);
  -webkit-font-smoothing:antialiased; overflow:hidden;
}
button,input,select,textarea{ font:inherit; color:inherit; }
button{ cursor:pointer; }
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:var(--z-scrollbar-thumb-bg); border-radius:8px; border:2px solid transparent; background-clip:padding-box; }

@keyframes envDrift{ 0%{ background-position:0 0; } 100%{ background-position:120px 80px; } }
@keyframes envFloat{ 0%,100%{ transform:translate3d(0,0,0); } 50%{ transform:translate3d(0,-14px,0); } }
@keyframes pulseDot{ 0%,100%{ opacity:.4; } 50%{ opacity:1; } }
@keyframes shimmer{ 0%{ transform:translateX(-60%); } 100%{ transform:translateX(160%); } }
@keyframes riseIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

.scenery{ position:fixed; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.scenery__bg{ position:absolute; inset:0; background:radial-gradient(120% 90% at 78% -8%, var(--z-env-b), var(--z-env-a) 62%); transition:background .8s ease; }
.scenery__grid{ position:absolute; inset:-40px; background-image:linear-gradient(var(--z-env-grid) 1px, transparent 1px), linear-gradient(90deg, var(--z-env-grid) 1px, transparent 1px); background-size:44px 44px; animation:envDrift var(--z-env-motion) linear infinite alternate; transition:background-image .8s ease; }
.scenery__orb{ position:absolute; width:560px; height:560px; border-radius:50%; filter:blur(22px); animation:envFloat var(--z-env-pulse) ease-in-out infinite; }
.scenery__orb--a{ right:-120px; top:-160px; background:radial-gradient(circle, var(--z-scenery-orb-bg-a), transparent 68%); }
.scenery__orb--b{ left:140px; bottom:-220px; background:radial-gradient(circle, var(--z-scenery-orb-bg-b), transparent 70%); animation-direction:reverse; }
.scenery__vignette{ position:absolute; inset:0; box-shadow:inset 0 0 240px 40px var(--z-env-vignette); transition:box-shadow .6s ease; }
.scenery__shade{ position:absolute; inset:0; background:radial-gradient(140% 120% at 50% 120%, var(--z-scenery-shade-bg), transparent 55%); }

.app-shell{ position:relative; z-index:1; display:flex; height:100dvh; width:100%; overflow:hidden; }

.spine{ width:var(--z-spine-w); flex:0 0 var(--z-spine-w); height:100%; display:flex; flex-direction:column; background:var(--z-rail-bg); backdrop-filter:blur(18px); border-right:1px solid var(--z-line); }
:root[data-theme="light"] .spine{ background:linear-gradient(180deg, var(--z-surface-opaque), var(--z-level-result-soft)); }
.brand{ display:flex; align-items:center; gap:11px; padding:18px 16px 15px; border-bottom:1px solid var(--z-line); }
.brand__mark{ width:32px; height:32px; border-radius:9px; background:linear-gradient(135deg, var(--z-accent), var(--z-accent-2)); display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--z-brand-mark-ink); box-shadow:var(--z-brand-mark-glow); flex:0 0 auto; }
.brand__layer{ display:none; }
.brand__title{ font-weight:700; font-size:15px; letter-spacing:.02em; }
.brand__subtitle{ font-family:var(--z-font-mono); font-size:9.5px; color:var(--z-ink-3); letter-spacing:.1em; }

.spine__search{ margin:12px 12px 6px; display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:10px; background:var(--z-rail-field-bg); border:1px solid var(--z-line); color:var(--z-ink-2); }
.spine__search:hover{ background:var(--z-rail-field-bg-hover); }
.spine__search span:first-of-type{ flex:1; font-size:12.5px; }
.spine__search kbd{ font-family:var(--z-font-mono); font-size:10px; padding:1px 6px; border:1px solid var(--z-line-2); border-radius:5px; }

.spine__nav{ flex:1; overflow-y:auto; padding:6px 10px 16px; }
.nav-group{ margin-top:14px; }
.nav-group__label{ font-family:var(--z-font-mono); font-size:9.5px; letter-spacing:.13em; color:var(--z-ink-3); padding:0 8px 6px; text-transform:uppercase; }
.nav-item{ width:100%; display:flex; align-items:center; gap:10px; padding:8px 9px; border-radius:9px; font-size:12.5px; background:transparent; border:1px solid transparent; color:var(--z-ink-2); margin-bottom:1px; text-align:left; text-decoration:none; transition:background .15s; }
.nav-item:hover:not(.is-disabled){ background:var(--z-nav-item-bg-hover); }
.nav-item.is-active{ color:var(--z-ink); background:var(--z-nav-item-bg-active); border-color:var(--z-nav-item-line-active); }
.nav-item.is-disabled{ color:var(--z-ink-3); cursor:default; opacity:.7; }
.nav-item .dot{ width:6px; height:6px; border-radius:50%; flex:0 0 auto; background:var(--z-ink-3); }
.nav-item.is-active .dot{ background:var(--z-dot-bg-active); box-shadow:var(--z-dot-glow-active); }
/* Название раздела не режется ради метки-приписки: «Исполнители» превращалось
   в «Исполни…», потому что чип «Только владелец» отнимал ширину. Теперь при
   нехватке места переносится чип, а не название. */
.nav-item{ flex-wrap:wrap; row-gap:3px; }
.nav-item .label{ flex:1 1 auto; min-width:max-content; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-item .tag{ font-family:var(--z-font-mono); font-size:8px; letter-spacing:.05em; border:1px solid var(--z-line); border-radius:5px; padding:1px 5px; color:var(--z-ink-3); text-transform:uppercase; }

.spine__footer{ padding:12px 14px; border-top:1px solid var(--z-line); display:flex; flex-direction:column; gap:8px; }
.mini-status{ display:flex; align-items:center; gap:9px; font-size:11px; color:var(--z-ink-2); }
.mini-status .pulse{ width:8px; height:8px; border-radius:50%; background:var(--z-level-result); box-shadow:0 0 10px var(--z-level-result); animation:pulseDot 2.4s ease-in-out infinite; flex:0 0 auto; }
.mini-status.muted{ color:var(--z-ink-3); font-size:10.5px; }

.workspace-col{ flex:1; min-width:0; display:flex; flex-direction:column; height:100%; position:relative; }

.topbar{ flex:0 0 auto; display:flex; align-items:center; gap:16px; flex-wrap:wrap; row-gap:10px; padding:12px 22px; background:var(--z-topbar-bg); backdrop-filter:blur(16px); border-bottom:1px solid var(--z-line); }
:root[data-theme="light"] .topbar{ background:var(--z-topbar-bg-2); }
.topbar__title{ min-width:0; flex:1 1 260px; }
.breadcrumb{ display:flex; align-items:center; gap:6px; font-family:var(--z-font-mono); font-size:10.5px; color:var(--z-ink-3); margin-bottom:3px; flex-wrap:wrap; }
.breadcrumb .current{ color:var(--z-ink-2); }
.topbar__heading{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.topbar__heading h1{ margin:0; font-size:19px; font-weight:700; letter-spacing:.01em; }
.atmosphere-chip{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-atmosphere-chip-ink); padding:2px 8px; border:1px solid var(--z-atmosphere-chip-line); border-radius:999px; background:var(--z-scenery-orb-bg-b); white-space:nowrap; }
.topbar__badges{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; justify-content:flex-end; margin-left:auto; }
.topbar__controls{ display:flex; align-items:center; gap:14px; padding-left:14px; margin-left:4px; border-left:1px solid var(--z-line); flex-wrap:wrap; }
.control-group{ display:flex; flex-direction:column; gap:2px; }
.control-group__label{ font-family:var(--z-font-mono); font-size:8.5px; letter-spacing:.1em; color:var(--z-ink-3); text-transform:uppercase; }
.seg{ display:inline-flex; gap:2px; padding:2px; background:var(--z-nested); border:1px solid var(--z-line-2); border-radius:8px; }
.seg button{ font-family:var(--z-font-mono); font-size:10px; letter-spacing:.03em; text-transform:uppercase; padding:4px 8px; border-radius:6px; border:0; background:transparent; color:var(--z-ink-3); }
.seg button.is-on{ color:var(--z-atmosphere-chip-ink); background:var(--z-seg-bg-on); font-weight:600; }
.state-select{ font-family:var(--z-font-mono); font-size:11px; background:var(--z-nested); border:1px solid var(--z-line-2); border-radius:8px; padding:5px 8px; }
.icon-btn{ position:relative; width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--z-icon-btn-bg); border:1px solid var(--z-line); color:var(--z-ink-2); }
.icon-btn:hover{ background:var(--z-icon-btn-bg-2); }
.icon-btn .count{ position:absolute; top:-5px; right:-5px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--z-warn); color:var(--z-count-ink); font-size:9.5px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.switcher-btn{ display:flex; align-items:center; gap:8px; padding:6px 10px; border-radius:10px; background:var(--z-icon-btn-bg); border:1px solid var(--z-line); }
.switcher-btn .swatch{ width:7px; height:7px; border-radius:2px; background:var(--z-swatch-bg); }
.switcher-btn .lines{ display:flex; flex-direction:column; line-height:1.15; text-align:left; }
.switcher-btn .lines small{ font-family:var(--z-font-mono); font-size:8px; letter-spacing:.08em; color:var(--z-ink-3); }
.switcher-btn .lines strong{ font-size:12px; font-weight:600; }
.edit-toggle{ display:flex; align-items:center; gap:7px; padding:7px 12px; border-radius:var(--z-r-11); background:var(--z-edit-toggle-bg); border:1px solid var(--z-line); color:var(--z-ink-2); font-size:12px; font-weight:600; }
.edit-toggle:disabled{ cursor:not-allowed; color:var(--z-ink-3); opacity:.72; }

.section-tabs{ max-width:1320px; margin:0 auto 16px; display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; }
.section-tabs button{ font-family:var(--z-font-mono); font-size:11px; padding:6px 12px; border-radius:999px; white-space:nowrap; background:transparent; border:1px solid var(--z-line); color:var(--z-ink-2); }
.section-tabs button.is-active{ color:var(--z-atmosphere-chip-ink); background:var(--z-seg-bg-on); border-color:var(--z-atmosphere-chip-line); }

main.workspace{ flex:1; min-height:0; overflow-y:auto; padding:var(--z-pad-main); }
.screen{ display:none; }
.screen.is-visible{ display:block; max-width:1320px; margin:0 auto; animation:riseIn .35s ease; }
.screen--narrow.is-visible{ max-width:1120px; }
.workos-screen-host.is-visible{ max-width:none; min-height:680px; padding:0; overflow:hidden; border-radius:var(--z-r-16); }

.hero-card{ position:relative; overflow:hidden; border-radius:var(--z-r-16); background:var(--z-surface); backdrop-filter:blur(14px); border:var(--z-card-outline); box-shadow:var(--z-shadow-card); padding:24px; display:flex; justify-content:space-between; gap:22px; margin-bottom:18px; }
.hero-card__right{ display:flex; flex-direction:column; gap:8px; align-items:flex-end; flex:0 0 auto; }
.hero-card h2{ font-size:26px; margin:8px 0; line-height:1.15; }
.hero-card p{ max-width:640px; color:var(--z-ink-2); margin:0; }
.eyebrow{ font-family:var(--z-font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--z-ink-3); }

.metric-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(190px,1fr)); gap:14px; margin-bottom:16px; }
.metric-card{ position:relative; border-radius:var(--z-r-16); background:var(--z-surface); backdrop-filter:blur(14px); border:var(--z-card-outline); box-shadow:var(--z-shadow-card); padding:var(--z-pad-card); }
.metric-card__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.metric-card__label{ font-size:12px; color:var(--z-ink-2); font-weight:500; }
.metric-card__value{ font-size:30px; font-weight:700; margin:10px 0 2px; letter-spacing:-.01em; }
.metric-card__value.small{ font-size:22px; }
.metric-card__hint{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-3); }

.layout-grid{ display:grid; gap:16px; margin-top:16px; align-items:start; }
.layout-grid--two{ grid-template-columns:1fr 1fr; }
.layout-grid--main{ grid-template-columns:1.4fr 1fr; }
.layout-grid--dispatcher{ grid-template-columns:minmax(280px,.65fr) 1.35fr; }

.panel{ position:relative; border-radius:var(--z-r-16); background:var(--z-surface); backdrop-filter:blur(14px); border:var(--z-card-outline); box-shadow:var(--z-shadow-card); padding:var(--z-pad-card); }
.panel__header{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }
.panel__header h3{ margin:0; font-size:14px; font-weight:600; }
.panel__header--tight{ margin-bottom:6px; }
.panel--flush{ padding:0; overflow:hidden; }
.panel--flush .panel__header{ padding:13px 16px; border-bottom:1px solid var(--z-line); margin-bottom:0; }
.widget-handle{ position:absolute; top:-9px; left:12px; font-family:var(--z-font-mono); font-size:9px; letter-spacing:.1em; color:var(--z-tag-teal); background:var(--z-bg-flat); border:1px solid var(--z-widget-handle-line); border-radius:6px; padding:2px 7px; }

.row-list .row{ display:flex; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--z-line); }
.row-list .row{ min-height:var(--z-row-h); padding:calc((var(--z-row-h) - 28px) / 2) 0; }
.dashboard-order{ width:100%; border-right:0; border-bottom:0; border-left:0; background:transparent; color:var(--z-ink); text-align:left; }
.dashboard-order:hover{ background:var(--z-edit-toggle-bg); }
.row-list .row:first-child{ border-top:0; }
.row-title{ font-size:13px; font-weight:500; }
.row-meta{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-3); }

.action-link{ font-size:12px; color:var(--z-tag-teal); background:none; border:0; padding:0; }
.button{ display:inline-flex; align-items:center; gap:8px; justify-content:center; border-radius:var(--z-r-11); border:1px solid var(--z-line-2); background:var(--z-nested); color:var(--z-ink); padding:9px 14px; font-size:12.5px; font-weight:600; min-height:var(--z-control-compact); }
.button:hover{ border-color:var(--z-button-line); }
.button--primary{ background:linear-gradient(135deg, var(--z-accent), var(--z-accent-light)); color:var(--z-button-ink-primary); border:0; }
.button--ghost{ background:var(--z-edit-toggle-bg); }
.button--secondary{ background:var(--z-nested); }
.button--danger{ color:var(--z-danger); border-color:var(--z-button-line-danger); background:transparent; }
.button--disabled, .button:disabled{ color:var(--z-ink-3); border:1px dashed var(--z-ink-4); background:transparent; cursor:not-allowed; opacity:.75; }
.button--block{ width:100%; }
.button-row{ display:flex; gap:8px; margin-top:14px; }
.button-row .button{ flex:1; }

.badge{ display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:var(--z-r-pill); font-size:10px; font-weight:600; letter-spacing:.03em; font-family:var(--z-font-mono); white-space:nowrap; border:1px solid; text-transform:none; }
.badge--runtime{ color:var(--z-level-result); background:var(--z-badge-bg-result); border-color:var(--z-badge-line-result); }
.badge--foundation{ color:var(--z-badge-ink-completion); background:var(--z-badge-bg-completion); border-color:var(--z-badge-line-completion); }
.badge--contract, .badge--mock{ color:var(--z-tag-violet); background:var(--z-badge-bg-draft); border-color:var(--z-badge-line-draft); }
.badge--preview, .badge--response_marker{ color:var(--z-tag-violet); background:var(--z-badge-bg-draft); border-color:var(--z-badge-line-draft); }
.badge--runtime_pending, .badge--disabled, .badge--empty{ color:var(--z-ink-4); background:var(--z-badge-bg-off); border-color:var(--z-badge-line-off); }
.badge--approval_required{ color:var(--z-warn); background:var(--z-badge-bg-pending); border-color:var(--z-badge-line-pending); }
.badge--error, .badge--real_ai_not_connected, .badge--not_allowed{ color:var(--z-danger); background:var(--z-badge-bg-failed); border-color:var(--z-badge-line-failed); }
.badge--loading, .badge--local_preview{ color:var(--z-tag-teal); background:var(--z-badge-bg-busy); border-color:var(--z-badge-line-busy); }
.badge--degraded, .badge--no_external_publishing{ color:var(--z-warn); background:var(--z-badge-bg-pending); border-color:var(--z-badge-line-pending); }
.badge--person_first, .badge--persisted{ color:var(--z-level-result); background:var(--z-badge-bg-result); border-color:var(--z-badge-line-result); }
.badge--requires_owner, .badge--audit_required{ color:var(--z-warn); background:var(--z-badge-bg-pending); border-color:var(--z-badge-line-pending); }
.badge--redacted, .badge--locked_by_policy, .badge--api_gap, .badge--future{ color:var(--z-ink-3); background:var(--z-badge-bg-hidden); border-color:var(--z-badge-line-hidden); border-style:dashed; }

.dot{ display:inline-block; width:9px; height:9px; border-radius:3px; flex:0 0 auto; }
.dot--ok{ background:var(--z-level-result); box-shadow:var(--z-dot-glow-ok); }
.dot--warn{ background:var(--z-warn); box-shadow:var(--z-dot-glow-warn); }
.dot--err{ background:var(--z-danger); box-shadow:var(--z-dot-glow-err); }
.dot--ai{ background:var(--z-accent-2); box-shadow:var(--z-dot-glow-ai); }
.dot--pending{ background:var(--z-ink-4); }
.dot--future{ background:var(--z-dot-bg-future); }

.pipeline{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:16px; padding:12px 16px; border-radius:var(--z-r-16); background:var(--z-surface); backdrop-filter:blur(14px); border:var(--z-card-outline); }
.pipeline__label{ font-family:var(--z-font-mono); font-size:10.5px; letter-spacing:.1em; color:var(--z-ink-3); }
.pipeline__step{ font-family:var(--z-font-mono); font-size:10.5px; padding:4px 9px; border-radius:7px; background:var(--z-icon-btn-bg); border:1px solid var(--z-line); }
.pipeline__step.is-future{ color:var(--z-ink-3); }
.pipeline__arrow{ color:var(--z-ink-3); font-size:11px; }

.table-head{ display:grid; gap:8px; padding:9px 16px; font-family:var(--z-font-mono); font-size:9.5px; letter-spacing:.07em; color:var(--z-ink-3); border-bottom:1px solid var(--z-line); text-transform:uppercase; }
.table-row{ display:grid; gap:8px; align-items:center; padding:12px 16px; border-bottom:1px solid var(--z-line); font-size:12.5px; min-height:var(--z-row-h); }
.table-row:hover{ background:var(--z-table-row-bg); }
.table-row--dispatcher, .table-head--dispatcher{ grid-template-columns:64px minmax(140px,1fr) 150px 130px; }
.table-row--activity, .table-head--activity{ grid-template-columns:64px 120px 1fr 110px 120px; }
.table-row--people{ }
.table-empty{ padding:28px 16px; text-align:center; color:var(--z-ink-2); }
.table-empty__title{ font-size:13px; font-weight:600; color:var(--z-ink); margin-bottom:4px; }
.foundation-strip{ display:flex; align-items:center; gap:10px; padding:12px 16px; background:var(--z-foundation-strip-bg); flex-wrap:wrap; }
.foundation-strip__label{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-4); white-space:nowrap; }
.foundation-strip .chip{ font-size:11.5px; color:var(--z-ink-3); padding:4px 10px; border:1px dashed var(--z-ink-4); border-radius:8px; opacity:.75; }

.field-list{ display:flex; flex-direction:column; gap:9px; }
.field-row{ display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid var(--z-line); font-size:12.5px; }
.field-row span:first-child{ color:var(--z-ink-2); }
.callout{ margin-top:14px; padding:12px 13px; border-radius:11px; background:var(--z-callout-bg); border:1px solid var(--z-callout-line); font-size:12px; }
.callout--info{ background:var(--z-callout-bg-info); border-color:var(--z-callout-line-info); }
.callout--warn{ background:var(--z-callout-bg-warn); border-color:var(--z-callout-line-warn); }
.callout strong{ display:block; font-family:var(--z-font-mono); font-size:9.5px; letter-spacing:.08em; color:var(--z-warn); margin-bottom:4px; text-transform:uppercase; }
.callout--info strong{ color:var(--z-tag-violet); }

.ai-hero{ position:relative; overflow:hidden; display:flex; align-items:center; gap:12px; margin-bottom:16px; padding:14px 18px; border-radius:var(--z-r-16); background:var(--z-ai-hero-bg); border:1px solid var(--z-ai-hero-line); }
.ai-hero__shimmer{ position:absolute; top:0; bottom:0; width:40%; background:linear-gradient(90deg, transparent, var(--z-ai-hero-shimmer-bg), transparent); animation:shimmer 3.4s linear infinite; }
.ai-orb{ position:relative; width:36px; height:36px; border-radius:10px; background:var(--z-ai-orb-bg); border:1px solid var(--z-ai-orb-line); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ai-orb .ring{ width:14px; height:14px; border:2px solid var(--z-accent-2); border-radius:50%; border-top-color:transparent; }
.ai-hero__text{ flex:1; position:relative; }
.ai-hero__text strong{ font-size:14px; }
.ai-hero__text div{ font-family:var(--z-font-mono); font-size:10.5px; color:var(--z-ink-2); }
.confidence-bar{ height:8px; border-radius:999px; background:var(--z-confidence-bar-bg); overflow:hidden; margin-bottom:14px; }
.confidence-bar__fill{ height:100%; background:linear-gradient(90deg, var(--z-accent-2), var(--z-tag-teal)); }
.explanation-box{ border-radius:var(--z-r-16); background:var(--z-explanation-box-bg); border:1px solid var(--z-explanation-box-line); padding:16px; }
.explanation-box__label{ font-family:var(--z-font-mono); font-size:9.5px; letter-spacing:.1em; color:var(--z-accent-2); margin-bottom:7px; text-transform:uppercase; }
.explanation-box p{ font-size:13px; line-height:1.55; margin:0; }
.explanation-box__note{ font-family:var(--z-font-mono); font-size:9.5px; color:var(--z-ink-3); margin-top:10px; text-align:center; }

.people-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:14px; }
.person-card{ border-radius:var(--z-r-16); background:var(--z-surface); backdrop-filter:blur(14px); border:var(--z-card-outline); box-shadow:var(--z-shadow-card); padding:16px; text-align:left; }
.person-card__top{ display:flex; align-items:center; gap:12px; }
.person-avatar{ width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex:0 0 auto; color:var(--z-tag-teal); background:var(--z-person-avatar-bg); border:1px solid var(--z-person-avatar-line); }
.person-card__name{ font-size:14px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.person-card__id{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-3); }
.person-card__footer{ display:flex; gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid var(--z-line); }
.person-card__footer > div{ flex:1; }
.person-card__footer label{ display:block; font-family:var(--z-font-mono); font-size:9px; color:var(--z-ink-3); }
.person-card__footer span{ font-size:12px; color:var(--z-ink-2); }

.filter-bar{ display:flex; align-items:center; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.filter-bar__label{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-3); margin-right:4px; }
.filter-chip{ font-size:11.5px; font-family:var(--z-font-mono); padding:5px 11px; border-radius:999px; background:var(--z-filter-chip-bg); border:1px solid var(--z-line); color:var(--z-ink-2); }
.filter-chip.is-active{ color:var(--z-ink); background:var(--z-seg-bg-on); border-color:var(--z-atmosphere-chip-line); }
.legend{ display:flex; gap:16px; margin-top:12px; font-size:11.5px; color:var(--z-ink-3); flex-wrap:wrap; }
.legend span{ display:flex; align-items:center; gap:6px; }

.module-row{ display:flex; align-items:center; gap:10px; padding:10px 0; border-top:1px solid var(--z-line); }
.module-row:first-child{ border-top:0; }
.module-row__name{ font-size:13px; }
.module-row__dep{ font-family:var(--z-font-mono); font-size:9.5px; color:var(--z-ink-3); }

.scene-preset-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:12px; }
.scene-preset{ border-radius:12px; padding:12px; background:var(--z-filter-chip-bg); border:1px solid var(--z-line); text-align:left; }
.scene-preset.is-active{ border-color:var(--z-scene-preset-line-active); }
.scene-preset__swatch{ height:52px; border-radius:9px; background:var(--z-scene-preset-swatch-bg); border:1px solid var(--z-atmosphere-chip-line); }
.scene-preset__name{ font-size:12.5px; font-weight:600; margin-top:9px; }
.scene-preset__motion{ font-family:var(--z-font-mono); font-size:9px; color:var(--z-ink-3); }

.owner-tools-block{ border:1px dashed var(--z-owner-tools-block-line); border-radius:var(--z-r-16); background:var(--z-owner-tools-block-bg); padding:16px; margin-top:16px; }
.owner-tools-block.is-collapsed .owner-tools-block__body{ display:none; }
.owner-tools-block__header{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; cursor:pointer; }
.connection-grid{ display:grid; grid-template-columns:1fr 1fr auto auto; gap:10px; align-items:end; margin-top:12px; }
.field{ display:grid; gap:6px; }
.field span{ font-family:var(--z-font-mono); font-size:9.5px; letter-spacing:.08em; color:var(--z-ink-3); text-transform:uppercase; }
.field input, .field textarea, .field select{ width:100%; border:1px solid var(--z-line-2); background:var(--z-edit-toggle-bg); border-radius:10px; color:var(--z-ink); padding:10px 11px; font:inherit; }
.field input, .field select{ height:var(--z-control-compact); }
.field textarea{ resize:vertical; min-height:92px; line-height:1.45; }
.field select option{ color:var(--z-field-ink); }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible, .button:focus-visible, .dispatcher-row:focus-visible{ outline:var(--z-field-input-ring-focus); outline-offset:2px; }

.dispatcher-head{ display:grid; grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr); gap:16px; }
.dispatcher-connect, .dispatcher-create{ display:flex; flex-direction:column; gap:10px; }
.dispatcher-connect .connection-grid{ grid-template-columns:1fr 1fr auto; margin:0; }
/* Пока входа нет, все формы модуля серые. Причина обязана быть заметной,
   иначе экран читается как сломанный, а не как запертый. */
.connect-callout{ margin:0; padding:11px 13px; border-radius:10px; font-size:12px; line-height:1.5;
  color:var(--z-ink); background:var(--z-connect-callout-bg); border:1px solid var(--z-connect-callout-line); }
.connect-callout strong{ display:block; margin-bottom:3px; }
.connect-callout code{ padding:1px 5px; border-radius:5px; background:var(--z-connect-callout-bg-2);
  font-family:var(--z-font-mono); font-size:11px; overflow-wrap:anywhere; }
/* Заблокированный контрол объясняет себя подсказкой — курсор это подтверждает. */
.dispatcher-backend-tools :disabled{ cursor:not-allowed; }
/* Главное действие карточки: доводит разобранную заявку до готовности.
   Стоит сразу под причинами неготовности, поэтому должно читаться первым. */
.review-accept{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
  margin:12px 0 0; padding:12px 14px; border-radius:10px;
  background:var(--z-review-accept-bg); border:1px solid var(--z-review-accept-line); }
.review-accept__text{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1 1 260px; }
.review-accept__text strong{ font-size:13px; }
.review-accept .button{ flex:0 0 auto; }
.review-accept--done{ background:var(--z-review-accept-bg-done); border-color:var(--z-review-accept-line-done); }
.dispatcher-message{ margin:14px 0 0; padding:11px 14px; border-radius:10px; color:var(--z-ink); background:var(--z-dispatcher-message-bg); border:1px solid var(--z-dispatcher-message-line); font-size:12px; }
.dispatcher-message strong{ margin-right:8px; }
.dispatcher-message--error{ color:var(--z-danger); background:var(--z-dispatcher-message-bg-error); border-color:var(--z-dispatcher-message-line-error); }
.dispatcher-queue-head > div{ min-width:0; }
.dispatcher-filter{ padding:12px 16px; border-bottom:1px solid var(--z-line); }
.dispatcher-row{ width:100%; border:0; border-bottom:1px solid var(--z-line); border-radius:0; background:transparent; color:var(--z-ink); text-align:left; cursor:pointer; }
.dispatcher-row.is-selected{ background:var(--z-dispatcher-row-bg-selected); box-shadow:var(--z-dispatcher-row-shadow-selected); }
.dispatcher-detail-title{ align-items:flex-start; }
.dispatcher-section{ padding:16px 0; border-top:1px solid var(--z-line); }
.dispatcher-section:first-of-type{ border-top:0; padding-top:4px; }
.dispatcher-section-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.dispatcher-raw, .dispatcher-draft{ margin:10px 0 6px; padding:13px; border-radius:11px; border:1px solid var(--z-line); background:var(--z-dispatcher-draft-bg); color:var(--z-ink); font:12px/1.55 var(--z-font-mono); white-space:pre-wrap; overflow-wrap:anywhere; }
.dispatcher-fingerprint{ overflow-wrap:anywhere; }
.dispatcher-profile-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.dispatcher-profile-save{ grid-column:1/-1; }
.dispatcher-reasons{ margin:8px 0 12px; padding-left:20px; color:var(--z-warn); font-size:12px; }
.dispatcher-review-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.dispatcher-review-grid .callout{ margin-top:0; overflow-wrap:anywhere; }
.dispatcher-actions{ flex-wrap:wrap; }
.dispatcher-actions .button{ flex:1 1 150px; }
.dispatcher-candidate-form{ display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:10px; align-items:end; margin-top:12px; }
.dispatcher-candidates, .dispatcher-audit{ display:grid; gap:10px; }
.dispatcher-candidate{ padding:13px; border-radius:11px; border:1px solid var(--z-line); background:var(--z-dispatcher-candidate-bg); }
.dispatcher-audit-row{ display:grid; grid-template-columns:auto 1fr; gap:10px; padding:10px 0; border-top:1px solid var(--z-line); font-size:12px; }
.dispatcher-audit-row:first-child{ border-top:0; }
.raw-json{ white-space:pre-wrap; background:var(--z-raw-json-bg); border:1px solid var(--z-line); border-radius:12px; padding:12px; color:var(--z-ink-2); font-family:var(--z-font-mono); font-size:11px; max-height:280px; overflow:auto; margin-top:12px; }

/* Owner-approved Dispatcher / Center of decisions */
:root[data-dispatcher-view]{
  --z-spine-w:160px;
  --z-pad-main:0;
  --z-font-sans:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
:root[data-dispatcher-view] body{
  display:grid; place-items:center; overflow:hidden;
  background:var(--z-soft-accent);
}
:root[data-dispatcher-view] .app-shell{
  width:min(100vw,1448px); height:min(100dvh,1086px);
  background:var(--z-surface-opaque); box-shadow:var(--z-app-shell-shadow);
}
:root[data-dispatcher-view="inbox"] .app-shell{
  width:min(100vw,1586px); height:min(100dvh,992px);
}
:root[data-dispatcher-view] .scenery{ display:none; }
:root[data-dispatcher-view] .spine{
  background:linear-gradient(180deg,var(--z-surface-opaque) 0%,var(--z-soft) 100%);
  border-right:1px solid var(--z-line);
  backdrop-filter:none;
  color:var(--z-rail-ink);
}
:root[data-dispatcher-view] .brand{ height:96px; padding:22px 24px; border:0; }
:root[data-dispatcher-view] .brand__mark{
  position:relative; width:30px; height:32px; color:transparent; border-radius:0;
  background:transparent; box-shadow:none;
}
:root[data-dispatcher-view] .brand__letter{ display:none; }
:root[data-dispatcher-view] .brand__layer{
  position:absolute; left:4px; width:22px; height:12px; display:block;
  clip-path:polygon(50% 0,100% 30%,100% 62%,50% 100%,0 62%,0 30%);
}
:root[data-dispatcher-view] .brand__layer--top{ top:1px; z-index:3; background:var(--z-brand-layer-1); }
:root[data-dispatcher-view] .brand__layer--middle{ top:9px; z-index:2; background:var(--z-brand-layer-2); }
:root[data-dispatcher-view] .brand__layer--bottom{ top:17px; z-index:1; background:var(--z-brand-layer-3); }
:root[data-dispatcher-view] .brand__title,
:root[data-dispatcher-view] .brand__subtitle,
:root[data-dispatcher-view] .spine__search{ display:none; }
:root[data-dispatcher-view] .spine__nav{ padding:14px 7px 16px; overflow:hidden; }
:root[data-dispatcher-view] .nav-group{ margin:0; }
/* Заголовок группы больше не прячется режимом: у групп меню диспетчера он
   пустой, и оболочка теперь просто не рисует пустой элемент (renderNav).
   Прятать его здесь означало, что базовые экраны показывают пустую полоску в
   6px, а режимные нет — из-за этого первый пункт меню стоял то на 139-й точке,
   то на 145-й. */
:root[data-dispatcher-view] .nav-group__label{ display:block; }
:root[data-dispatcher-view] .nav-item{
  min-height:52px; margin:0 0 2px; padding:9px 14px; gap:11px; border-radius:8px;
  color:var(--z-nav-item-ink); font-size:11px; font-weight:500; opacity:1;
}
:root[data-dispatcher-view] .nav-item[data-nav-gap]{ margin-top:22px; }
:root[data-dispatcher-view] .nav-item.is-active{
  color:var(--z-accent); background:var(--z-soft-accent); border-color:transparent; box-shadow:inset 3px 0 var(--z-accent);
}
:root[data-dispatcher-view] .nav-item.is-disabled{ color:var(--z-nav-item-ink); cursor:default; }
:root[data-dispatcher-view] .nav-symbol{ width:18px; text-align:center; font-size:18px; line-height:1; color:currentColor; }
:root[data-dispatcher-view] .nav-symbol .dispatcher-icon{ width:18px; height:18px; }
:root[data-dispatcher-view] .nav-count{
  min-width:20px; height:20px; display:grid; place-items:center; padding:0 5px; border-radius:10px;
  background:var(--z-soft-accent); color:var(--z-accent); font-size:9px;
}
:root[data-dispatcher-view] .spine__footer{ border:0; padding:14px 24px 24px; }
:root[data-dispatcher-view] .spine__footer .mini-status:last-child{ display:none; }
:root[data-dispatcher-view] .spine__footer .mini-status{ font-size:10px; }
:root[data-dispatcher-view] .spine__footer .pulse{
  width:16px; height:16px; display:grid; place-items:center; background:transparent; box-shadow:none; animation:none;
}
:root[data-dispatcher-view] .spine__footer .pulse::before{ content:"↩"; color:var(--z-nav-item-ink); font-size:14px; }
:root[data-dispatcher-view] .topbar,
:root[data-dispatcher-view] .floating-cluster{ display:none; }
:root[data-dispatcher-view] .workspace-col{ background:var(--z-surface-opaque); }
:root[data-dispatcher-view] main.workspace{
  padding:0 40px 0 19px; overflow:auto; background:linear-gradient(120deg,var(--z-surface-opaque),var(--z-surface-opaque));
}
:root[data-dispatcher-view] .dispatcher-screen-host.is-visible{
  display:block; width:100%; min-width:0; max-width:none; margin:0; animation:none;
}
:root[data-dispatcher-view="inbox"]{ --z-spine-w:180px; }
:root[data-dispatcher-view="inbox"] main.workspace{ padding:0 18px 0 19px; }
:root[data-dispatcher-view="inbox"] .dispatcher-inbox-host.is-visible{
  display:block; width:100%; min-width:0; max-width:none; margin:0; animation:none;
}
.inbox-page{ width:100%; min-height:969px; padding-top:18px; color:var(--z-ink); font-size:10px; }
.dispatcher-icon{
  width:17px; height:17px; display:block; flex:0 0 auto; fill:none; stroke:currentColor;
  stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round;
}
.inbox-header{
  position:relative; height:100px; display:grid; grid-template-columns:minmax(390px,1fr) auto;
  grid-template-rows:48px 40px; column-gap:18px;
}
.inbox-header__title h2{ margin:0 0 4px; color:var(--z-inbox-title-ink); font-size:22px; line-height:1.15; letter-spacing:-.02em; }
.inbox-header__title p{ margin:0; color:var(--z-inbox-ink-5); font-size:10px; }
.inbox-header__tools{ display:flex; align-items:flex-start; justify-content:flex-end; gap:10px; }
.inbox-search{
  width:292px; height:35px; display:flex; align-items:center; gap:9px; padding:0 12px;
  border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-inbox-search-ink);
}
.inbox-search input{ min-width:0; flex:1; border:0; outline:0; background:transparent; color:var(--z-inbox-strong-ink); font-size:10px; }
.inbox-search input::placeholder{ color:var(--z-inbox-placeholder-ink); }
.inbox-filter,.inbox-bell{
  height:35px; display:flex; align-items:center; justify-content:center; gap:8px; padding:0 14px;
  border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-inbox-ink-3); font-size:10px;
}
.inbox-filter .dispatcher-icon{ width:15px; height:15px; }
.inbox-filter.is-active{ border-color:var(--z-inbox-line-active); background:var(--z-soft-accent); color:var(--z-accent-hover); }
.inbox-bell{ position:relative; width:39px; padding:0; font-size:16px; }
.inbox-bell .dispatcher-icon{ width:17px; height:17px; }
.inbox-bell span{
  position:absolute; top:-6px; right:-5px; width:17px; height:17px; display:grid; place-items:center;
  border-radius:50%; background:var(--z-inbox-bell-mark-bg); color:var(--z-ink-inverse); font-size:8px;
}
.inbox-header__selectors{ display:flex; align-items:center; gap:12px; }
.inbox-header__selectors button{
  height:32px; display:flex; align-items:center; gap:7px; padding:0 12px; border:1px solid var(--z-line);
  border-radius:7px; background:var(--z-surface-opaque); color:var(--z-inbox-ink-4); font-size:9px;
}
.inbox-header__selectors button>.dispatcher-icon{ width:15px; height:15px; color:var(--z-accent); }
.inbox-header__selectors button strong{ color:var(--z-inbox-selector-strong-ink); }
.inbox-header__selectors button small{ margin-left:18px; }
.inbox-layout{
  display:grid; grid-template-columns:minmax(0,2.1126fr) minmax(360px,1fr); column-gap:15px; row-gap:35px;
  align-items:stretch; margin-top:12px;
}
.inbox-list-card,.inbox-inspector{
  min-width:0; height:709px; overflow:hidden; border:1px solid var(--z-line); border-radius:11px; background:var(--z-surface-opaque);
  box-shadow:var(--z-inbox-card-shadow);
}
.inbox-list-card{ display:flex; flex-direction:column; }
.inbox-list-head,.inbox-row{
  display:grid; grid-template-columns:270px 112px 142px 120px 115px minmax(155px,1fr);
}
.inbox-list-head{
  height:48px; flex:0 0 48px; align-items:center; border-bottom:1px solid var(--z-line);
  background:var(--z-surface-opaque); color:var(--z-inbox-ink-5); font-size:8px; font-weight:700; letter-spacing:.02em;
}
.inbox-list-head span{ padding:0 12px; }
.inbox-list-body{ min-height:0; flex:1; display:block; }
.inbox-row{
  width:100%; height:80px; min-height:80px; align-items:center; padding:0; border:0;
  border-bottom:1px solid var(--z-soft-2); border-radius:0; background:var(--z-surface-opaque); color:var(--z-inbox-ink); text-align:left;
}
.inbox-row:hover{ background:var(--z-surface-opaque); }
.inbox-row.is-selected{ position:relative; background:var(--z-soft); box-shadow:inset 3px 0 var(--z-accent); }
.inbox-row.is-selected::after{ content:""; position:absolute; inset:5px; border:1px solid var(--z-inbox-row-line-selected); border-radius:7px; pointer-events:none; }
.inbox-row:focus-visible{ z-index:1; outline:2px solid var(--z-accent); outline-offset:-3px; }
.inbox-cell{ min-width:0; padding:0 12px; color:var(--z-inbox-ink-2); font-size:8.5px; line-height:1.4; }
.inbox-cell--signal{ display:grid; grid-template-columns:25px minmax(0,1fr); gap:9px; align-items:center; }
.inbox-cell--signal>span:last-child{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.inbox-cell--signal strong{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--z-inbox-strong-ink); font-size:10px; }
.inbox-signal-snippet{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--z-inbox-ink-3); font-size:7.5px; }
.inbox-cell--signal small{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--z-ink-4); font-size:7.5px; }
.inbox-source-mark{
  width:23px; height:23px; display:grid; place-items:center; border-radius:7px;
  background:var(--z-soft-accent); color:var(--z-accent); font-size:8px;
}
.inbox-source-mark .dispatcher-icon{ width:14px; height:14px; stroke-width:1.9; }
.inbox-source-mark--secondary{ background:var(--z-level-result-soft); color:var(--z-inbox-source-ink-secondary); }
.inbox-source-mark--web{ background:var(--z-inbox-source-bg-web); color:var(--z-inbox-source-ink-web); }
.inbox-source-mark--mail{ background:var(--z-inbox-source-bg-mail); color:var(--z-inbox-source-ink-mail); }
.inbox-source-mark--call{ background:var(--z-soft-accent); color:var(--z-inbox-source-ink-call); }
.inbox-cell--received,.inbox-cell--evidence,.inbox-cell--risk{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.inbox-cell--received strong{ color:var(--z-inbox-received-ink); font-size:8.5px; }
.inbox-cell--received small{ color:var(--z-inbox-ink-6); font-size:7px; }
.inbox-cell--evidence strong{ color:var(--z-accent); font-size:10px; }
.inbox-evidence-bar{ width:52px; height:3px; overflow:hidden; border-radius:2px; background:var(--z-line); }
.inbox-evidence-bar i{ display:block; height:100%; border-radius:inherit; background:var(--z-accent); }
.inbox-cell--risk small{ color:var(--z-inbox-ink-6); font-size:7px; }
.inbox-cell--risk strong{ color:var(--z-inbox-risk-ink-low); font-size:9px; }
.inbox-cell--risk.is-medium strong{ color:var(--z-inbox-risk-ink-medium); }
.inbox-cell--risk.is-high strong{ color:var(--z-inbox-risk-ink-high); }
.inbox-status{ display:inline-flex; align-items:center; min-height:21px; padding:0 8px; border-radius:11px; font-size:7.5px; font-style:normal; font-weight:700; white-space:nowrap; }
.inbox-status.is-new{ background:var(--z-soft-accent); color:var(--z-accent); }
.inbox-status.is-review{ background:var(--z-inbox-status-bg-review); color:var(--z-inbox-status-ink-review); }
.inbox-status.is-incomplete{ background:var(--z-inbox-status-bg-incomplete); color:var(--z-inbox-status-ink-incomplete); }
.inbox-list-empty{ min-height:0; flex:1; display:grid; place-items:center; color:var(--z-inbox-ink-5); font-size:10px; }
.inbox-list-card>footer{
  height:38px; flex:0 0 38px; display:flex; align-items:center; justify-content:space-between; padding:0 14px;
  border-top:1px solid var(--z-soft-2); color:var(--z-ink-4); font-size:8px;
}
.inbox-list-card>footer button{ border:0; background:transparent; color:var(--z-accent); font-size:8px; }
.inbox-inspector{ position:relative; padding:14px 17px 76px; overflow:hidden; }
.inbox-inspector__content{ height:100%; }
.inbox-inspector__head{ display:flex; align-items:flex-start; justify-content:space-between; }
.inbox-inspector__head h3{ margin:0; color:var(--z-inbox-inspector-title-ink); font-size:16px; line-height:23px; white-space:nowrap; }
.inbox-inspector__close{
  width:24px; height:24px; display:grid; place-items:center; padding:0; border:0; border-radius:6px;
  background:transparent; color:var(--z-ink-4);
}
.inbox-inspector__close:hover{ background:var(--z-soft); color:var(--z-accent); }
.inbox-inspector__close .dispatcher-icon{ width:14px; height:14px; }
.inbox-source-evidence{ margin-top:7px; }
.inbox-source-evidence h4{ margin:0 0 5px; color:var(--z-inbox-subtitle-ink); font-size:8px; }
.inbox-inspector__source{
  display:grid; grid-template-columns:23px minmax(0,1fr) auto; gap:8px; align-items:center;
  padding:7px 9px; border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque);
}
.inbox-inspector__source div{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.inbox-inspector__source strong{ color:var(--z-inbox-ink); font-size:9px; }
.inbox-inspector__source small{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--z-ink-4); font-size:7px; }
.inbox-inspector__source em{ padding:3px 6px; border-radius:9px; background:var(--z-soft-accent); color:var(--z-accent); font-size:7px; font-style:normal; font-weight:700; }
.inbox-inspector__message{ margin:8px 0 3px; color:var(--z-inbox-ink-2); font-size:8px; line-height:1.5; }
.inbox-show-more{ padding:0; border:0; background:transparent; color:var(--z-accent); font-size:7.5px; }
.inbox-disclosure{ margin-top:5px; padding:5px 7px; border-radius:6px; background:var(--z-soft); color:var(--z-inbox-ink-2); font-size:7px; line-height:1.35; }
.inbox-extracted,.inbox-files,.inbox-ai-route{ margin-top:7px; padding:8px 9px; border:1px solid var(--z-line); border-radius:8px; }
.inbox-extracted h4,.inbox-files h4{ margin:0 0 6px; color:var(--z-inbox-subtitle-ink); font-size:9px; }
.inbox-extracted dl{ display:grid; grid-template-columns:78px 1fr; gap:4px 8px; margin:0; font-size:8px; }
.inbox-extracted dt{ color:var(--z-ink-4); }
.inbox-extracted dd{ margin:0; color:var(--z-inbox-value-ink); font-weight:600; }
.inbox-files h4 span{ margin-left:4px; color:var(--z-ink-4); font-weight:400; }
.inbox-files>div{ display:flex; flex-wrap:wrap; gap:5px; }
.inbox-file-pill{ padding:3px 6px; border-radius:6px; background:var(--z-soft); color:var(--z-inbox-ink-2); font-size:7px; }
.inbox-muted{ color:var(--z-ink-4); font-size:8px; }
.inbox-ai-route{ border-style:dashed; border-color:var(--z-inbox-ai-route-line); background:var(--z-surface-opaque); }
.inbox-ai-route header{ display:flex; gap:9px; align-items:center; }
.inbox-ai-route header>span{ color:var(--z-inbox-ai-route-ink); font-size:16px; }
.inbox-ai-route header div{ min-width:0; display:flex; flex:1; flex-direction:column; gap:3px; }
.inbox-ai-route header em{ padding:3px 6px; border-radius:9px; background:var(--z-inbox-ai-route-mark-bg); color:var(--z-inbox-ai-route-mark-ink); font-size:6.5px; font-style:normal; font-weight:700; }
.inbox-ai-route small{ color:var(--z-ink-4); font-size:7px; }
.inbox-ai-route strong{ color:var(--z-inbox-ink); font-size:8px; }
.inbox-ai-route p{ margin:6px 0 0 25px; color:var(--z-inbox-ink-4); font-size:7px; line-height:1.35; }
.inbox-completeness{
  display:grid; grid-template-columns:22px 1fr; gap:7px; margin-top:7px; padding:8px 9px;
  border:1px solid var(--z-inbox-completeness-line); border-radius:8px; background:var(--z-inbox-completeness-bg); color:var(--z-inbox-completeness-ink);
}
.inbox-completeness>span{ width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:var(--z-inbox-completeness-fill-bg); color:var(--z-ink-inverse); font-weight:800; }
.inbox-completeness p{ display:flex; flex-direction:column; gap:3px; margin:0; font-size:7.5px; line-height:1.35; }
.inbox-completeness strong{ font-size:8px; }
.inbox-inspector__actions{
  position:absolute; top:631px; left:17px; right:17px; display:grid;
  grid-template-columns:1fr 1fr; gap:8px; margin:0;
}
.inbox-action{ height:32px; border:1px solid var(--z-line-2); border-radius:7px; background:var(--z-surface-opaque); color:var(--z-inbox-action-ink); font-size:8px; font-weight:700; }
.inbox-action--primary{ border-color:var(--z-accent); background:var(--z-accent); color:var(--z-ink-inverse); }
.inbox-action-notice{ position:absolute; top:669px; left:17px; right:17px; margin:0; color:var(--z-inbox-action-notice-ink); font-size:7.5px; text-align:center; }
.inbox-action-notice[hidden]{ display:none; }
.inbox-inspector__empty{ display:grid; place-items:center; height:100%; color:var(--z-ink-4); }
.inbox-workflow{
  grid-column:1/-1; height:95px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:46px; margin:0;
}
.inbox-workflow article{
  position:relative; min-width:0; display:flex; align-items:center; gap:10px; padding:0 12px;
  border:1px solid var(--z-line); border-radius:10px; background:var(--z-surface-opaque); color:var(--z-inbox-workflow-ink);
}
.inbox-workflow article:not(:first-child)::before{
  content:"→"; position:absolute; left:-34px; top:36px; width:22px; height:22px; display:grid; place-items:center;
  border:1px solid var(--z-inbox-workflow-line); border-radius:50%; background:var(--z-surface-opaque); color:var(--z-accent); font-size:10px;
}
.inbox-workflow article>span{
  width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%;
  background:var(--z-inbox-workflow-mark-bg); color:var(--z-inbox-ink-4); font-size:10px; font-weight:800;
}
.inbox-workflow article>div{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.inbox-workflow strong{ color:var(--z-inbox-workflow-strong-ink); font-size:8.5px; line-height:1.2; }
.inbox-workflow em{ color:var(--z-ink-4); font-size:6.5px; font-style:normal; font-weight:700; }
.inbox-workflow small{ color:var(--z-inbox-ink-6); font-size:6.7px; line-height:1.3; }
.inbox-workflow article.is-active{ border-color:var(--z-inbox-line-active); background:var(--z-surface-opaque); }
.inbox-workflow article.is-active>span{ background:var(--z-accent); color:var(--z-ink-inverse); }
.inbox-workflow article.is-active em{ color:var(--z-accent); }
.decision-center{ width:100%; min-height:1064px; padding-top:18px; color:var(--z-ink); font-size:11px; }
.decision-header{
  position:relative; height:86px; display:grid; grid-template-columns:minmax(360px,1fr) auto;
  grid-template-rows:44px 34px; column-gap:18px;
}
.decision-header__intro h2{ margin:0 0 4px; color:var(--z-decision-header-intro-title-ink); font-size:20px; line-height:1.2; letter-spacing:-.02em; }
.decision-header__intro p{ margin:0; color:var(--z-decision-header-intro-text-ink); font-size:10px; }
.decision-header__tools{ display:flex; align-items:flex-start; justify-content:flex-end; gap:9px; }
.decision-search{
  width:280px; height:34px; display:flex; align-items:center; gap:9px; padding:0 12px;
  border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-decision-search-ink);
}
.decision-search input{ min-width:0; flex:1; border:0; outline:0; background:transparent; color:var(--z-decision-search-input-ink); font-size:10px; }
.decision-search input::placeholder{ color:var(--z-decision-placeholder-ink); }
.decision-search .dispatcher-icon,.inbox-search .dispatcher-icon{ width:15px; height:15px; }
.decision-tool{
  height:34px; padding:0 15px; display:flex; align-items:center; gap:8px; border:1px solid var(--z-line);
  border-radius:8px; background:var(--z-surface-opaque); color:var(--z-decision-tool-ink); font-size:10px;
}
.decision-tool.is-active{ border-color:var(--z-decision-tool-line-active); background:var(--z-soft-accent); color:var(--z-accent-hover); }
.decision-tool .dispatcher-icon{ width:15px; height:15px; }
.decision-tool--bell{ position:relative; width:38px; padding:0; justify-content:center; font-size:16px; }
.decision-tool--bell span{ position:absolute; top:-6px; right:-5px; width:17px; height:17px; display:grid; place-items:center; border-radius:50%; background:var(--z-decision-tool-mark-bg-bell); color:var(--z-ink-inverse); font-size:8px; }
.decision-header__selectors{ display:flex; align-items:center; gap:12px; }
.decision-header__selectors button{
  height:32px; display:flex; align-items:center; gap:7px; padding:0 12px; border:1px solid var(--z-line);
  border-radius:7px; background:var(--z-surface-opaque); color:var(--z-decision-header-selectors-button-ink); font-size:9px;
}
.decision-header__selectors button>.dispatcher-icon{ width:15px; height:15px; color:var(--z-accent); }
.decision-header__selectors button strong{ color:var(--z-decision-header-selectors-strong-ink); }
.decision-header__selectors button small{ margin-left:18px; }
.decision-header__selectors p{ margin:0; color:var(--z-decision-header-selectors-text-ink); font-size:8px; }
.dispatcher-preview-banner{
  position:absolute; left:390px; top:1px; display:inline-flex; align-items:center; gap:5px; max-width:260px;
  padding:3px 8px; border:1px solid var(--z-dispatcher-preview-banner-line); border-radius:999px;
  background:var(--z-soft); color:var(--z-dispatcher-preview-banner-ink); font-size:7.5px; font-weight:600;
}
.inbox-header .dispatcher-preview-banner{ left:112px; }
.dispatcher-preview-banner>span{ width:5px; height:5px; border-radius:50%; background:var(--z-dispatcher-preview-banner-mark-bg); box-shadow:var(--z-dispatcher-preview-banner-mark-shadow); }
.decision-kpis{
  grid-column:1/-1;
  height:76px; display:grid; grid-template-columns:repeat(5,minmax(126px,1fr)) minmax(245px,1.35fr);
  align-items:center; margin:0; padding:0 10px; border:1px solid var(--z-line); border-radius:11px;
  background:var(--z-decision-kpis-bg); box-shadow:var(--z-decision-kpis-shadow);
}
.decision-metric{ min-width:0; height:46px; display:flex; align-items:center; gap:10px; padding:0 12px; border-right:1px solid var(--z-line); }
.decision-metric__icon{ width:35px; height:35px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:var(--z-soft); color:var(--z-accent); font-size:17px; }
.decision-metric__icon .dispatcher-icon{ width:18px; height:18px; }
.decision-metric:nth-child(3) .decision-metric__icon{ color:var(--z-warn); background:var(--z-decision-metric-icon-bg-attention); }
.decision-metric:nth-child(4) .decision-metric__icon{ color:var(--z-danger); background:var(--z-decision-metric-icon-bg-failed); }
.decision-metric:nth-child(5) .decision-metric__icon{ color:var(--z-level-result); background:var(--z-level-result-soft); }
.decision-metric div{ min-width:0; display:grid; grid-template-columns:auto auto; column-gap:8px; align-items:end; }
.decision-metric span:not(.decision-metric__icon){ grid-column:1/-1; color:var(--z-decision-header-selectors-button-ink); font-size:8px; white-space:nowrap; }
.decision-metric strong{ color:var(--z-decision-metric-strong-ink); font-size:17px; line-height:1.15; }
.decision-metric small{ align-self:center; color:var(--z-decision-header-intro-text-ink); font-size:7px; white-space:nowrap; }
.decision-metric--health{ border-right:0; justify-content:space-between; }
.decision-metric--health svg{ width:154px; height:36px; color:var(--z-decision-metric-icon-ink-health); overflow:visible; }
.decision-alert{ position:absolute; z-index:6; top:196px; right:40px; max-width:520px; margin:0; box-shadow:var(--z-decision-alert-shadow); }
.decision-layout{
  display:grid; grid-template-columns:258px 322px minmax(0,1fr); column-gap:11px; row-gap:11px;
  align-items:stretch; margin-top:11px;
}
.decision-layout:not(:has([data-layout-block="queue"])){ grid-template-columns:322px minmax(0,1fr); }
.decision-layout:not(:has([data-layout-block="order"])){ grid-template-columns:258px minmax(0,1fr); }
.decision-layout:not(:has([data-layout-block="checks"])){ grid-template-columns:258px minmax(0,1fr); }
.decision-layout:not(:has([data-layout-block="queue"])):not(:has([data-layout-block="order"])),
.decision-layout:not(:has([data-layout-block="queue"])):not(:has([data-layout-block="checks"])),
.decision-layout:not(:has([data-layout-block="order"])):not(:has([data-layout-block="checks"])){ grid-template-columns:minmax(0,1fr); }
.inbox-layout:not(:has([data-layout-block="signals"])),
.inbox-layout:not(:has([data-layout-block="inspector"])){ grid-template-columns:minmax(0,1fr); }
.decision-queue,.decision-order,.decision-checks{
  min-width:0; height:590px; margin-top:6px; overflow:hidden; border:1px solid var(--z-line); border-radius:11px; background:var(--z-surface-opaque);
  box-shadow:var(--z-decision-kpis-shadow);
}
.decision-card-head{ height:45px; display:flex; align-items:center; gap:4px; padding:0 14px; border-bottom:1px solid var(--z-line); }
.decision-card-head strong{ font-size:10px; }
.decision-card-head span{ color:var(--z-ink-4); font-size:8px; }
.decision-card-head button{ margin-left:auto; border:0; background:transparent; color:var(--z-ink-3); }
.decision-queue{ display:flex; flex-direction:column; }
.decision-queue-list{ min-height:0; flex:1; overflow:hidden; padding:5px 7px; }
.decision-queue-item{
  width:100%; height:68px; display:grid; grid-template-columns:18px 1fr auto; gap:8px; align-items:start;
  padding:10px 9px; border:1px solid transparent; border-bottom-color:var(--z-soft-2); border-radius:8px;
  background:var(--z-surface-opaque); color:var(--z-decision-search-input-ink); text-align:left;
}
.decision-queue-item:hover:not(:disabled){ background:var(--z-surface-opaque); }
.decision-queue-item.is-selected{ border-color:var(--z-decision-queue-item-line-selected); background:var(--z-surface-opaque); box-shadow:var(--z-decision-queue-item-shadow-selected); }
.decision-queue-item__icon{ width:14px; height:14px; display:grid; place-items:center; margin-top:1px; border-radius:50%; background:var(--z-accent); color:var(--z-ink-inverse); font-size:8px; }
.decision-queue-item:not(.is-selected) .decision-queue-item__icon{ background:var(--z-surface-opaque); color:var(--z-warn); border:1px solid var(--z-warn); }
.decision-queue-item__body{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.decision-queue-item__body strong{ font-size:10px; color:var(--z-decision-search-input-ink); }
.decision-queue-item__body small{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--z-decision-header-intro-text-ink); font-size:8px; }
.decision-queue-item__body em{ color:var(--z-warn); font-size:8px; font-style:normal; }
.decision-queue-item time{ color:var(--z-accent); font-size:8px; }
.decision-queue footer{ height:35px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-top:1px solid var(--z-soft-2); color:var(--z-ink-4); font-size:8px; }
.decision-queue footer button{ border:0; background:transparent; color:var(--z-accent); font-size:8px; }
.decision-order{ padding:16px 12px; overflow-y:auto; }
.decision-order__content{ min-height:100%; }
.decision-order__title{ min-height:55px; }
.decision-order__title h3{ margin:0 0 4px; font-size:18px; color:var(--z-decision-order-title-ink); }
.decision-order__title span{ display:block; color:var(--z-warn); font-size:9px; }
.decision-order__title small{ color:var(--z-ink-4); font-size:8px; }
.decision-goal{ display:flex; gap:10px; margin:8px 0 10px; padding:12px; border:1px solid var(--z-line); border-radius:8px; }
.decision-goal__icon{ width:28px; height:28px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:var(--z-soft-accent); color:var(--z-accent); font-size:18px; }
.decision-goal strong,.decision-subcard h4,.decision-files h4{ font-size:9px; }
.decision-goal p{ margin:4px 0 0; color:var(--z-decision-header-intro-text-ink); font-size:8px; line-height:1.5; }
.decision-subcard{ margin-top:9px; padding:11px; border:1px solid var(--z-line); border-radius:8px; }
.decision-subcard h4,.decision-files h4{ margin:0 0 8px; color:var(--z-decision-files-title-ink); }
.decision-subcard h4 small{ color:var(--z-ink-4); font-weight:400; }
.decision-subcard dl{ display:grid; grid-template-columns:100px 1fr; gap:5px 8px; margin:0; font-size:8px; }
.decision-subcard dt{ color:var(--z-ink-4); }
.decision-subcard dd{ margin:0; color:var(--z-decision-subcard-value-ink); }
.decision-subcard details{ margin-top:5px; color:var(--z-accent); font-size:8px; }
.decision-subcard details p{ color:var(--z-decision-tool-ink); line-height:1.45; }
.decision-evidence div{ display:grid; grid-template-columns:13px 1fr auto; gap:5px; align-items:center; padding:3px 0; color:var(--z-decision-tool-ink); font-size:7.5px; }
.decision-evidence div span{ color:var(--z-accent); }
.decision-evidence div em{ padding:2px 5px; border-radius:8px; background:var(--z-level-result-soft); color:var(--z-decision-evidence-mark-ink); font-size:6.5px; font-style:normal; }
.decision-files{ margin-top:8px; padding:8px 10px; border:1px solid var(--z-line); border-radius:8px; }
.decision-files button{ width:100%; display:flex; gap:7px; padding:4px 0; border:0; background:transparent; color:var(--z-decision-tool-ink); font-size:7.5px; }
.decision-files button span{ color:var(--z-danger); }.decision-files button em{ margin-left:auto; color:var(--z-decision-files-mark-ink); }
.decision-checks{ padding:0 14px 12px; }
.decision-checks__content{ height:100%; }
.decision-checks__content>.decision-card-head{ margin:0 -14px 10px; }
.decision-checks__grid{ height:402px; display:grid; grid-template-columns:minmax(250px,1fr) minmax(240px,1fr); gap:24px; }
.decision-check-chain{ position:relative; display:grid; grid-template-rows:repeat(4,1fr); gap:11px; padding-left:0; }
.decision-check-chain::before{ content:""; position:absolute; left:0; top:28px; bottom:28px; border-left:1px solid var(--z-decision-check-chain-mark-line-left); }
.check-step{ position:relative; display:grid; grid-template-columns:34px 1fr auto; gap:9px; align-items:center; padding:10px 12px; border:1px solid var(--z-line); border-radius:9px; background:var(--z-surface-opaque); }
.check-step>span{ width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--z-level-result-soft); color:var(--z-level-result); font-size:15px; }
.check-step div{ display:flex; flex-direction:column; gap:4px; }.check-step strong{ font-size:9px; }.check-step small{ color:var(--z-check-step-small-ink); font-size:7.5px; }
.check-step em{ color:var(--z-level-result); font-size:8px; font-style:normal; }
.check-step.is-waiting{ border-color:var(--z-check-step-line-waiting); }.check-step.is-waiting>span{ background:var(--z-check-step-mark-bg-waiting); color:var(--z-accent); }.check-step.is-waiting em{ color:var(--z-warn); }
.check-step.is-pending>span{ background:var(--z-level-result-soft); color:var(--z-check-step-small-ink); }.check-step.is-pending em{ color:var(--z-check-step-small-ink); }
.decision-route{ padding:11px; border:1px dashed var(--z-decision-route-line); border-radius:10px; background:var(--z-surface-opaque); }
.decision-route__title{ display:flex; justify-content:space-between; gap:8px; margin-bottom:12px; }.decision-route__title strong{ font-size:9px; }.decision-route__title span{ color:var(--z-decision-route-title-mark-ink); font-size:7px; }
.decision-route>div:not(.decision-route__title){ padding:8px 0; border-bottom:1px solid var(--z-soft-2); }
.decision-route small{ color:var(--z-ink-4); font-size:7px; }.decision-route p{ margin:4px 0 0; color:var(--z-decision-route-text-ink); font-size:8px; line-height:1.45; }
.decision-route footer{ margin-top:11px; padding:9px; border:1px solid var(--z-line); border-radius:7px; color:var(--z-decision-header-intro-text-ink); font-size:7px; }
.decision-note{ position:relative; display:block; margin-top:13px; padding-top:13px; border-top:1px solid var(--z-line); }
.decision-note strong{ display:block; margin-bottom:7px; font-size:9px; }.decision-note textarea{ width:100%; height:49px; resize:none; padding:9px; border:1px solid var(--z-line); border-radius:7px; color:var(--z-decision-subcard-value-ink); font-size:8px; }
.decision-note>span{ position:absolute; right:9px; bottom:8px; color:var(--z-decision-note-mark-ink); font-size:7px; }
.decision-empty{ display:grid; place-items:center; height:100%; color:var(--z-ink-4); }
.decision-unavailable{ margin:6px 0; color:var(--z-ink-4); font-size:7.5px; }
.decision-workflow{ grid-column:1/-1; height:199px; margin:0; }
.decision-workflow__content{ height:100%; display:grid; grid-template-columns:208px 268px repeat(3,minmax(190px,1fr)); gap:27px; }
.workflow-proposal,.workflow-stage{ position:relative; min-width:0; padding:14px 12px; border:1px solid var(--z-line); border-radius:10px; background:var(--z-surface-opaque); color:var(--z-workflow-stage-ink); }
.workflow-proposal{ display:grid; grid-template-columns:22px 1fr; gap:8px; border-color:var(--z-workflow-proposal-line); }.workflow-proposal>span{ color:var(--z-accent); font-size:20px; }
.workflow-proposal strong,.workflow-stage header strong{ color:var(--z-workflow-stage-strong-ink); font-size:9px; }.workflow-proposal p,.workflow-stage p{ margin:8px 0; font-size:7.5px; line-height:1.55; }
.workflow-proposal h5{ margin:14px 0 7px; color:var(--z-workflow-proposal-ink); font-size:7px; }.workflow-proposal ul,.workflow-stage ul{ margin:7px 0 0; padding-left:15px; font-size:7px; line-height:1.8; }
.workflow-stage::before{ content:"→"; position:absolute; left:-19px; top:64px; width:20px; height:20px; display:grid; place-items:center; border:1px solid var(--z-workflow-stage-mark-line); border-radius:50%; background:var(--z-surface-opaque); color:var(--z-accent); }
.workflow-stage header{ display:grid; grid-template-columns:16px 1fr; gap:5px; align-items:center; }.workflow-stage header>span{ color:var(--z-accent); }.workflow-stage header em{ grid-column:2; color:var(--z-ink-4); font-size:6.5px; font-style:normal; }
.workflow-stage--active{ border-color:var(--z-workflow-stage-line-active); }.workflow-stage--active header em{ color:var(--z-warn); }
.workflow-stage dl{ display:grid; grid-template-columns:64px 1fr; gap:7px; margin:13px 0 9px; font-size:7px; }.workflow-stage dt{ color:var(--z-ink-4); }.workflow-stage dd{ margin:0; color:var(--z-workflow-stage-value-ink); }
.decision-confirm{ width:100%; height:30px; border:0; border-radius:6px; background:var(--z-accent); color:var(--z-ink-inverse); font-size:8px; font-weight:700; }
.decision-confirm:disabled{ background:var(--z-line-3); cursor:not-allowed; }
.workflow-stage.is-future{ background:var(--z-surface-opaque); opacity:.72; }
.decision-footer{ height:36px; display:flex; align-items:center; gap:8px; margin-top:20px; padding:0 14px; border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-ink-4); font-size:8px; }
.dispatcher-backend-tools{ margin:16px 0 40px; padding:12px; border:1px solid var(--z-line); border-radius:10px; background:var(--z-surface-opaque); }
.dispatcher-operations__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:2px 2px 14px; }
.dispatcher-operations__head h2{ margin:3px 0 4px; font-size:20px; color:var(--z-dispatcher-operations-head-title-ink); }
.dispatcher-operations__head p{ margin:0; color:var(--z-dispatcher-operations-head-text-ink); }
.dispatcher-backend-tools .dispatcher-head{ margin-top:0; }
.decision-header__actions{ display:flex; gap:8px; align-items:center; }
.dispatcher-standardization-editor{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:4px 0; padding:12px; border:1px solid var(--z-line); border-radius:9px; }
.dispatcher-standardization-editor legend{ padding:0 6px; color:var(--z-dispatcher-operations-head-title-ink); font-weight:700; }
.dispatcher-standardization-editor__checks{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; color:var(--z-dispatcher-standardization-editor-checks-ink); font-size:12px; }
.dispatcher-standardization-editor__checks label{ display:flex; align-items:center; gap:6px; }
.dispatcher-advanced-json>summary{ margin:4px 0 8px; color:var(--z-dispatcher-advanced-json-ink); font-weight:600; cursor:pointer; }
.layout-config-button{
  width:auto; min-width:110px; height:35px; display:flex; align-items:center; justify-content:center; gap:7px;
  flex:0 0 auto; padding:0 11px;
  border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-dispatcher-operations-head-text-ink); font-size:15px;
}
.layout-config-button:hover,.layout-config-button.is-active{ border-color:var(--z-layout-config-button-line-active); background:var(--z-soft-accent); color:var(--z-accent-hover); }
.layout-config-button>span{ font-size:9px; font-weight:700; white-space:nowrap; }
.layout-config-svg{ width:15px; height:15px; display:block; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.layout-block{ position:relative; transition:box-shadow .16s ease,border-color .16s ease,opacity .16s ease; }
.is-layout-editing .layout-block{ border-color:var(--z-layout-block-line-layout-editing); box-shadow:var(--z-layout-block-shadow); }
.layout-block.is-dragging,.layout-config-item.is-dragging{ opacity:.45; }
.layout-block.is-drag-over,.layout-config-item.is-drag-over{ border-color:var(--z-accent); box-shadow:var(--z-layout-config-item-shadow-drag-over); }
[data-layout-block][hidden]{ display:none!important; }
.layout-block-controls{
  position:absolute; z-index:8; top:7px; right:7px; height:29px; display:flex; align-items:center; gap:6px;
  padding:3px 5px; border:1px solid var(--z-layout-block-controls-line); border-radius:8px; background:var(--z-layout-block-controls-bg);
  box-shadow:var(--z-layout-block-controls-shadow); color:var(--z-workflow-stage-value-ink);
}
.layout-block-controls strong{ max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:8px; }
.layout-block-controls button{
  height:21px; padding:0 6px; border:0; border-radius:5px; background:var(--z-soft); color:var(--z-dispatcher-advanced-json-ink); font-size:8px;
}
.layout-block-controls .layout-drag-handle{ width:22px; padding:0; color:var(--z-accent); font-size:14px; cursor:grab; touch-action:none; }
.layout-block-controls .layout-drag-handle:active{ cursor:grabbing; }
.layout-config-backdrop{ position:fixed; inset:0; z-index:79; display:none; background:var(--z-layout-config-backdrop-bg); backdrop-filter:blur(1px); }
.layout-config-backdrop.is-open{ display:block; }
.layout-configurator{
  position:fixed; z-index:80; top:18px; right:18px; bottom:18px; width:min(390px,calc(100vw - 36px));
  display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--z-dispatcher-preview-banner-line); border-radius:16px;
  background:var(--z-surface-opaque); box-shadow:var(--z-layout-configurator-shadow); color:var(--z-layout-configurator-ink);
  transform:translateX(calc(100% + 30px)); opacity:0; pointer-events:none;
  transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.layout-configurator.is-open{ transform:translateX(0); opacity:1; pointer-events:auto; }
.layout-configurator>header{ display:flex; align-items:center; justify-content:space-between; padding:20px 20px 15px; border-bottom:1px solid var(--z-soft-2); }
.layout-configurator>header small{ color:var(--z-ink-4); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.layout-configurator>header h3{ margin:3px 0 0; color:var(--z-layout-configurator-title-ink); font-size:20px; }
.layout-configurator>header button{ width:32px; height:32px; border:0; border-radius:8px; background:var(--z-soft); color:var(--z-workflow-stage-ink); font-size:21px; }
.layout-configurator__lead{ margin:0; padding:14px 20px 8px; color:var(--z-dispatcher-preview-banner-ink); font-size:11px; line-height:1.5; }
.layout-configurator__list{ min-height:0; flex:1; overflow:auto; padding:8px 12px; }
.layout-config-item{
  min-height:53px; display:grid; grid-template-columns:30px minmax(0,1fr) 28px 28px auto; gap:6px; align-items:center;
  margin:7px 0; padding:7px 8px; border:1px solid var(--z-line); border-radius:10px; background:var(--z-surface-opaque);
}
.layout-config-item.is-hidden{ background:var(--z-surface-opaque); color:var(--z-ink-4); }
.layout-config-item>span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:700; }
.layout-config-item>button{ height:28px; border:1px solid var(--z-line); border-radius:7px; background:var(--z-surface-opaque); color:var(--z-workflow-stage-ink); font-size:12px; }
.layout-config-item>button:disabled{ opacity:.35; cursor:not-allowed; }
.layout-config-item>.layout-drag-handle{ color:var(--z-accent); cursor:grab; font-size:16px; touch-action:none; }
.layout-config-item label{ display:flex; align-items:center; gap:5px; color:var(--z-dispatcher-operations-head-text-ink); font-size:9px; white-space:nowrap; }
.layout-config-item input{ accent-color:var(--z-accent); }
.layout-configurator>footer{ display:grid; grid-template-columns:1fr auto; gap:9px; padding:14px 18px 18px; border-top:1px solid var(--z-soft-2); }
.layout-configurator>footer p{ grid-column:1/-1; margin:0 0 3px; color:var(--z-ink-4); font-size:9px; line-height:1.45; }
.layout-configurator>footer button{ min-height:35px; padding:0 12px; border:1px solid var(--z-line-2); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-workflow-stage-ink); font-size:10px; font-weight:700; }
.layout-configurator>footer button.is-primary{ border-color:var(--z-accent); background:var(--z-accent); color:var(--z-ink-inverse); }
.layout-canvas-toolbar{
  position:fixed; z-index:78; left:50%; bottom:22px; display:flex; align-items:center; gap:8px;
  min-height:45px; padding:6px 7px 6px 12px; border:1px solid var(--z-layout-canvas-toolbar-line); border-radius:12px;
  background:var(--z-layout-block-controls-bg); box-shadow:var(--z-layout-canvas-toolbar-shadow);
  color:var(--z-workflow-stage-value-ink); transform:translateX(-50%);
}
.layout-canvas-toolbar>span{ display:flex; align-items:center; gap:6px; margin-right:5px; font-size:9px; font-weight:800; white-space:nowrap; }
.layout-canvas-toolbar .dispatcher-icon{ width:15px; height:15px; color:var(--z-accent); }
.layout-canvas-toolbar button{
  min-height:31px; padding:0 11px; border:1px solid var(--z-line-2); border-radius:7px;
  background:var(--z-surface-opaque); color:var(--z-workflow-stage-ink); font-size:9px; font-weight:700;
}
.layout-canvas-toolbar button.is-primary{ border-color:var(--z-accent); background:var(--z-accent); color:var(--z-ink-inverse); }
.layout-empty-state{
  grid-column:1/-1; min-height:280px; display:grid; place-content:center; gap:8px; text-align:center;
  border:1px dashed var(--z-layout-empty-state-line); border-radius:12px; background:var(--z-surface-opaque); color:var(--z-check-step-small-ink);
}
.layout-empty-state strong{ color:var(--z-workflow-stage-value-ink); font-size:14px; }
.layout-empty-state span{ font-size:10px; }

/* Dispatcher screens 09–15. Reference canvas: 1672 × 941.
   The canvas is the size the compositions were drawn at, not a ceiling on the
   window: pinning the shell to it left two thirds of a wide screen empty while
   the list beside it stayed squeezed into one narrow column. The proportions
   below still describe the composition; the shell now fills what it is given. */
:root[data-dispatcher-view="reference"]{ --z-spine-w:212px; }
:root[data-dispatcher-view="reference"] .app-shell{ width:100%; height:100dvh; }
:root[data-dispatcher-view="reference"] .brand{
  height:86px; justify-content:flex-start; gap:12px; padding:20px 20px; border-bottom:1px solid var(--z-line);
}
:root[data-dispatcher-view="reference"] .brand__mark{
  width:31px; height:31px; border-radius:8px; color:var(--z-ink-inverse); background:var(--z-brand-mark-bg);
  box-shadow:none;
}
:root[data-dispatcher-view="reference"] .brand__mark::after{ content:"◇"; color:var(--z-ink-inverse); font-size:20px; line-height:1; }
:root[data-dispatcher-view="reference"] .brand__layer{ display:none; }
:root[data-dispatcher-view="reference"] .brand__title{
  display:block; max-width:135px; color:var(--z-brand-title-ink); font-size:16px; line-height:1.25; letter-spacing:0; text-transform:none;
}
:root[data-dispatcher-view="reference"] .brand__subtitle{ display:none; }
:root[data-dispatcher-view="reference"] .spine__nav{ padding:8px 10px 18px; overflow:auto; }
:root[data-dispatcher-view="reference"] .nav-item{ min-height:49px; padding:8px 12px; font-size:11px; }
:root[data-dispatcher-view="reference"] .nav-item[data-nav-gap]{ margin-top:0; }
:root[data-dispatcher-view="reference"] .spine__footer{ padding:14px 22px 21px; }
:root[data-dispatcher-view="reference"] main.workspace{ padding:0; overflow:auto; background:var(--z-surface-opaque); }
:root[data-dispatcher-view="reference"] .dispatcher-reference-host.is-visible{ display:block; width:100%; max-width:none; margin:0; animation:none; }
.dispatcher-reference-page{
  width:100%; min-height:941px; padding:0 30px 24px; color:var(--z-dispatcher-reference-page-ink); background:var(--z-surface-opaque); font-size:13px;
}
.ref-page__header{
  min-height:112px; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:26px 0 18px;
  border-bottom:1px solid var(--z-line);
}
.ref-page__header h2{ margin:0 0 6px; color:var(--z-ref-page-header-title-ink); font-size:31px; line-height:1.1; letter-spacing:-.035em; }
.ref-page__header p{ margin:0; color:var(--z-ink-3); font-size:13px; }
.ref-page__tools{ display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.ref-variant-switch{
  height:42px; display:flex; overflow:hidden; padding:3px; border:1px solid var(--z-line); border-radius:9px; background:var(--z-surface-opaque);
}
.ref-variant-switch button{
  padding:0 14px; border:0; border-radius:6px; background:transparent; color:var(--z-ink-2); font-size:11px; white-space:nowrap;
}
.ref-variant-switch button.is-active{ background:var(--z-soft-accent); color:var(--z-ref-variant-switch-ink-active); font-weight:700; }
.ref-page__tools .layout-config-button{ height:42px; min-width:132px; font-size:12px; }
.ref-page__context{
  height:42px; display:flex; align-items:center; gap:24px; color:var(--z-ink-3); font-size:10px;
}
.ref-page__context span{ position:relative; }
.ref-page__context span:not(:last-child)::after{ content:""; position:absolute; top:4px; right:-13px; width:1px; height:11px; background:var(--z-line); }
.ref-layout{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px; align-items:start; }
.ref-card{
  min-width:0; overflow:hidden; border:1px solid var(--z-classic-line-3); border-radius:10px; background:var(--z-surface-opaque);
  box-shadow:var(--z-ref-card-shadow);
}
.ref-span-2{ grid-column:span 2; }.ref-span-3{ grid-column:span 3; }.ref-span-4{ grid-column:span 4; }
.ref-span-5{ grid-column:span 5; }.ref-span-6{ grid-column:span 6; }.ref-span-7{ grid-column:span 7; }
.ref-span-8{ grid-column:span 8; }.ref-span-9{ grid-column:span 9; }.ref-span-12{ grid-column:1/-1; }
.ref-card h2,.ref-card h3,.ref-card h4{ color:var(--z-ref-page-header-title-ink); }
.ref-card h2{ margin:0; font-size:22px; }.ref-card h3{ margin:0 0 16px; font-size:16px; }.ref-card h4{ margin:17px 0 10px; font-size:12px; }
.ref-card p{ color:var(--z-ink-2); line-height:1.45; }
.ref-card a,.ref-link,.ref-bottom-link{ border:0; background:transparent; color:var(--z-ref-variant-switch-ink-active); text-decoration:none; cursor:pointer; }
.ref-card__head{ min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 16px; border-bottom:1px solid var(--z-line); }
.ref-card__head h3{ margin:0; }
.ref-button{
  min-height:38px; padding:0 17px; border:1px solid var(--z-line-3); border-radius:7px; background:var(--z-surface-opaque); color:var(--z-ink); font-size:12px; font-weight:600;
}
.ref-button--primary{ border-color:var(--z-accent); background:var(--z-ref-button-bg-primary); color:var(--z-ink-inverse); box-shadow:var(--z-ref-button-shadow-primary); }
.ref-status{
  display:inline-flex; align-items:center; min-height:23px; padding:2px 8px; border-radius:6px; background:var(--z-ref-status-bg); color:var(--z-ink-2); font-size:10px; font-weight:600; white-space:nowrap;
}
.ref-status--blue{ background:var(--z-soft-accent); color:var(--z-ref-variant-switch-ink-active); }.ref-status--green{ background:var(--z-level-result-soft); color:var(--z-ref-status-ink-green); }
.ref-status--amber{ background:var(--z-ref-status-bg-amber); color:var(--z-ref-status-ink-amber); }.ref-status--red{ background:var(--z-ref-status-bg-red); color:var(--z-ref-status-ink-red); }
.ref-status--neutral{ background:var(--z-ref-status-bg); color:var(--z-ref-status-ink-neutral); }
.ref-state-dot{
  width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:var(--z-ref-state-dot-bg); color:var(--z-ink-inverse); font-size:12px; font-style:normal;
}
.ref-state-dot--blue{ background:var(--z-ref-state-dot-bg-blue); }.ref-state-dot--green{ background:var(--z-ref-state-dot-bg-green); }.ref-state-dot--amber{ background:var(--z-ref-state-dot-bg-amber); }
.ref-state-dot--neutral{ background:var(--z-ref-state-dot-bg); }
.ref-search{
  min-width:260px; height:40px; display:flex; align-items:center; gap:9px; padding:0 12px; border:1px solid var(--z-line-2); border-radius:7px; background:var(--z-surface-opaque); color:var(--z-ink-3);
}
.ref-search input{ min-width:0; flex:1; border:0; outline:0; background:transparent; color:var(--z-ref-search-input-ink); font-size:12px; }
.ref-search--large{ height:54px; border-color:var(--z-ref-search-line-large); box-shadow:var(--z-ref-search-shadow-large); font-size:20px; }
.ref-search--large input{ font-size:15px; }.ref-search--large>button:not(.ref-button){ border:0; background:transparent; color:var(--z-ink-3); }
.ref-search--large .ref-button{ height:48px; margin-right:-9px; }
.ref-info-strip{
  padding:13px 16px; border:1px solid var(--z-ref-info-strip-line); border-radius:7px; background:var(--z-soft); color:var(--z-ref-info-strip-ink); font-size:11px; line-height:1.35;
}
.ref-warning-strip{ padding:11px 14px; border:1px solid var(--z-ref-warning-strip-line); border-radius:7px; background:var(--z-ref-warning-strip-bg); color:var(--z-ref-warning-strip-ink); font-size:11px; }
/* Подпись занимала 220 пикселей независимо от содержимого, и после того как
   боковое меню вернулось к общей ширине, значению оставалось два пикселя —
   даже одна цифра не помещалась. Колонка подписи теперь по содержимому, но не
   шире трети блока; значение переносится, а не вылезает на соседа. */
.ref-kv{ display:grid; grid-template-columns:minmax(0,max-content) minmax(0,1fr); gap:12px 16px; margin:20px 0 0; font-size:12px; }
.ref-kv dt{ color:var(--z-ink-3); max-width:34ch; overflow-wrap:anywhere; }
.ref-kv dd{ min-width:0; margin:0; color:var(--z-ref-kv-value-ink); overflow-wrap:anywhere; }.ref-kv dd a{ color:var(--z-accent); }.ref-kv dd small{ color:var(--z-ref-kv-small-ink); }
.ref-success-title{ display:flex; align-items:center; gap:15px; }
.ref-success-title>span{
  width:44px; height:44px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:var(--z-soft-accent); border:1px solid var(--z-ref-success-title-mark-line); color:var(--z-accent); font-size:25px;
}
.ref-success-title h3{ margin:0 0 4px; font-size:23px; }.ref-success-title p{ margin:0; color:var(--z-accent-hover); }
.ref-field-label{ display:flex; flex-direction:column; gap:8px; color:var(--z-ref-field-label-ink); font-size:12px; font-weight:700; }
.ref-field-label input{ height:39px; padding:0 12px; border:1px solid var(--z-line-2); border-radius:7px; background:var(--z-surface-opaque); color:var(--z-ref-kv-value-ink); font-size:12px; font-weight:400; }
.ref-toast{
  position:fixed; z-index:75; right:24px; bottom:24px; max-width:360px; padding:12px 16px; border:1px solid var(--z-ref-toast-line); border-radius:10px;
  background:var(--z-soft); box-shadow:var(--z-ref-toast-shadow); color:var(--z-ref-toast-ink); font-size:11px;
}

/* Results */
.ref-crumb-strip{ min-height:42px; display:flex; align-items:center; gap:14px; padding:0 6px; border:0; background:transparent; box-shadow:none; color:var(--z-ink-3); }
.ref-crumb-strip span{ color:var(--z-accent); }.ref-crumb-strip time{ margin-left:auto; font-size:10px; }
.ref-results-workspace{ min-height:678px; padding:30px 28px 22px; }
.ref-results-workspace .ref-kv{ margin-top:32px; }.ref-divider-title{ padding-top:16px; border-top:1px solid var(--z-line); }
.ref-timeline{ margin-top:10px; }.ref-timeline__item{ position:relative; display:grid; grid-template-columns:18px 112px 1fr; gap:12px; min-height:40px; }
.ref-timeline__item::before{ content:""; position:absolute; left:7px; top:15px; bottom:-3px; width:1px; background:var(--z-line-3); }
.ref-timeline__item:last-child::before{ display:none; }.ref-timeline__item i{ width:9px; height:9px; margin-top:4px; border:1px solid var(--z-ref-timeline-item-icon-line); border-radius:50%; background:var(--z-surface-opaque); }
.ref-timeline__item time{ color:var(--z-ref-timeline-item-ink); font-size:10px; }.ref-timeline__item strong,.ref-timeline__item small{ display:block; font-size:10px; }.ref-timeline__item small{ color:var(--z-ref-kv-small-ink); margin-top:2px; }
.ref-evaluation{ min-height:512px; padding:22px 20px; }.ref-evaluation--compact{ min-height:490px; padding:32px; }
.ref-evaluation--compact .ref-kv{ grid-template-columns:118px 1fr; padding-top:15px; border-top:1px solid var(--z-line); }
.ref-evaluation--compact .ref-button{ width:100%; margin-top:28px; }.ref-evaluation--compact>.ref-link{ margin-top:15px; }
.ref-hourglass{ width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--z-ref-hourglass-bg); color:var(--z-ref-hourglass-ink); font-size:20px; }
.ref-eval-section{ padding:18px 2px; border:1px solid var(--z-line); border-radius:9px; }.ref-eval-section+.ref-eval-section{ margin-top:12px; }
.ref-eval-section h4{ margin:0 0 16px; padding:0 18px; }.ref-eval-section p{ padding:0 18px; font-size:10px; }
.ref-unknown{ display:flex; align-items:center; gap:18px; padding:0 18px; color:var(--z-ref-unknown-ink); font-size:29px; }
.ref-unknown::first-letter{ width:51px; height:51px; }.ref-unknown strong{ font-size:15px; }.ref-evaluation>.ref-info-strip{ margin-top:16px; }.ref-evaluation>.ref-button{ width:100%; margin-top:18px; }
.ref-process-strip{ min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 22px; border:0; background:transparent; box-shadow:none; }
.ref-process-strip div{ position:relative; display:flex; align-items:center; gap:8px; color:var(--z-ref-process-strip-ink); font-size:10px; }
.ref-process-strip div:not(:last-child)::after{ content:"→"; position:absolute; left:calc(100% + 24px); color:var(--z-ink-4); }
.ref-process-strip span{ width:31px; height:31px; display:grid; place-items:center; border:1px solid var(--z-line-3); border-radius:50%; background:var(--z-surface-opaque); }
.ref-process-strip .is-active{ color:var(--z-ref-variant-switch-ink-active); }.ref-process-strip .is-active span{ border-color:var(--z-ref-process-strip-mark-line-active); background:var(--z-soft-accent); }
.ref-process-strip--seven{ padding-right:8px; padding-left:8px; }
.ref-results-ledger{ min-height:665px; }.ref-list-row{
  width:100%; min-height:88px; display:grid; grid-template-columns:25px minmax(0,1fr) auto; gap:10px; align-items:start; padding:16px 14px; border:0; border-bottom:1px solid var(--z-line); background:var(--z-surface-opaque); text-align:left;
}
.ref-list-row.is-selected{ background:var(--z-soft-accent); box-shadow:inset 3px 0 var(--z-accent-hover); }.ref-list-row strong,.ref-list-row small{ display:block; }.ref-list-row strong{ margin-bottom:7px; font-size:12px; }.ref-list-row small{ color:var(--z-ref-list-row-small-ink); font-size:10px; line-height:1.7; }
.ref-results-ledger footer{ padding:9px 20px; color:var(--z-ink-4); font-size:10px; }
.ref-results-detail{ min-height:665px; padding:20px 14px; }.ref-results-detail .ref-success-title{ padding:0 2px 8px; }.ref-results-detail .ref-lead{ margin:4px 0 14px; font-size:11px; }
.ref-state-change{ display:flex; align-items:center; gap:16px; }.ref-state-change>span{ flex:1; padding:10px 12px; border:1px solid var(--z-line); border-radius:7px; color:var(--z-ink-2); }
.ref-state-change span small{ display:block; }.ref-state-change .is-current{ border-color:var(--z-ref-state-change-line-current); background:var(--z-soft); color:var(--z-ref-state-change-ink-current); }
.ref-evidence-row{ display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:9px; align-items:center; padding:9px 10px; border:1px solid var(--z-line); }
.ref-evidence-row+.ref-evidence-row{ border-top:0; }.ref-evidence-row>span{ color:var(--z-ref-evidence-row-mark-ink); }.ref-evidence-row strong,.ref-evidence-row small{ display:block; }.ref-evidence-row small{ color:var(--z-ref-timeline-item-ink); }
.ref-evidence-row button{ border:0; background:transparent; color:var(--z-accent); }.ref-person{ display:flex; align-items:center; gap:10px; }.ref-person>span{ width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:var(--z-soft-2); color:var(--z-ref-person-mark-ink); }
.ref-person small{ color:var(--z-ref-timeline-item-ink); }.ref-knowledge{ display:grid; grid-template-columns:38px 1fr auto; gap:12px; align-items:center; margin-top:16px; padding:12px; border:1px solid var(--z-ref-knowledge-line); border-radius:8px; background:var(--z-ref-knowledge-bg); }
.ref-knowledge>span{ width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--z-ref-knowledge-mark-bg); color:var(--z-ink-inverse); }.ref-knowledge small{ display:block; color:var(--z-ref-knowledge-small-ink); }.ref-knowledge button{ border:0; background:transparent; color:var(--z-accent); }

/* Registry and context. */
.ref-order-registry,.ref-object-inspector,.ref-registry-list,.ref-context-map{ min-height:726px; }
.ref-context-chip{ display:inline-flex; padding:5px 9px; border:1px solid var(--z-ref-info-strip-line); border-radius:5px; background:var(--z-soft); color:var(--z-accent); font-size:10px; }
.ref-order-table-head{ display:grid; grid-template-columns:230px 105px 150px 170px 170px 160px; gap:12px; padding:17px 20px; color:var(--z-ink-3); font-size:10px; }
.ref-order-row{ width:100%; min-height:116px; display:grid; grid-template-columns:42px 175px 95px 140px 158px 160px 150px; gap:10px; align-items:center; padding:12px 20px; border:0; border-top:1px solid var(--z-line); background:var(--z-surface-opaque); text-align:left; color:var(--z-ref-order-row-ink); font-size:10px; }
.ref-order-row.is-selected{ background:var(--z-soft); box-shadow:inset 4px 0 var(--z-accent-hover); }.ref-order-row strong,.ref-order-row small{ display:block; }.ref-order-row small{ margin-top:7px; color:var(--z-ref-list-row-small-ink); }
.ref-object-icon{ width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--z-line-2); border-radius:8px; background:var(--z-surface-opaque); color:var(--z-ref-object-icon-ink); font-size:18px; }
.ref-order-registry footer,.ref-registry-list footer{ padding:20px; color:var(--z-ink-3); font-size:10px; }
.ref-object-inspector{ position:relative; padding:24px 25px; }.ref-object-inspector>.ref-close{ position:absolute; top:20px; right:20px; border:0; background:transparent; font-size:20px; color:var(--z-ref-process-strip-ink); }
.ref-object-inspector h3{ font-size:19px; line-height:1.4; }.ref-object-inspector>.ref-kv{ grid-template-columns:120px 1fr; gap:16px 12px; margin-top:34px; }
.ref-route-mini{ display:flex; align-items:flex-start; justify-content:space-between; margin:20px 0; }.ref-route-mini span{ position:relative; flex:1; display:flex; flex-direction:column; align-items:center; gap:7px; font-size:9px; }
.ref-route-mini span:not(:last-child)::after{ content:""; position:absolute; top:14px; left:65%; right:-35%; height:1px; background:var(--z-line-3); }.ref-route-mini i{ z-index:1; width:29px; height:29px; display:grid; place-items:center; border:1px solid var(--z-line-3); border-radius:50%; background:var(--z-surface-opaque); font-style:normal; }
.ref-route-mini .is-active i{ border-color:var(--z-ref-route-mini-icon-line-active); background:var(--z-soft-accent); color:var(--z-ref-state-change-ink-current); }.ref-related{ margin-top:26px; padding:14px; border:1px solid var(--z-line); border-radius:8px; }.ref-related h4{ margin:0 0 13px; }.ref-related h4 b{ float:right; }.ref-related p{ display:flex; justify-content:space-between; margin:11px 0; }.ref-bottom-link{ display:block; margin-top:27px; padding-top:22px; border-top:1px solid var(--z-line); }
.ref-registry-list .ref-card__head{ padding:11px 16px; }.ref-table-head--registry{ display:grid; grid-template-columns:1.8fr .9fr .7fr .7fr; gap:10px; padding:12px 16px; color:var(--z-ink-3); font-size:10px; }
.ref-registry-row{ width:100%; min-height:59px; display:grid; grid-template-columns:34px minmax(170px,1.7fr) .85fr .58fr .58fr 14px; gap:8px; align-items:center; padding:8px 14px; border:0; border-top:1px solid var(--z-line); background:var(--z-surface-opaque); color:var(--z-ink); text-align:left; font-size:10px; }
.ref-registry-row.is-selected{ background:var(--z-soft-accent); box-shadow:inset 3px 0 var(--z-accent); }.ref-registry-row strong,.ref-registry-row small{ display:block; }.ref-registry-row small{ color:var(--z-ref-list-row-small-ink); line-height:1.5; }
.ref-context-map{ padding:16px 18px; }.ref-object-title{ display:flex; align-items:center; gap:14px; padding-bottom:18px; border-bottom:1px solid var(--z-line); }.ref-object-title>span{ width:52px; height:52px; display:grid; place-items:center; border-radius:10px; background:var(--z-soft); color:var(--z-accent); font-size:24px; }.ref-object-title>div{ flex:1; }.ref-object-title h3{ margin:0; font-size:18px; }.ref-object-title p{ margin:4px 0 0; }
.ref-more{ width:40px; height:40px; border:1px solid var(--z-line-2); border-radius:7px; background:var(--z-surface-opaque); }.ref-fact-line{ display:flex; gap:24px; align-items:center; padding:16px 0; border-bottom:1px solid var(--z-line); color:var(--z-level-completion); font-size:10px; }
.ref-context-flow{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; padding:28px 0 20px; }.ref-context-flow article{ position:relative; min-height:252px; padding:72px 12px 14px; border:1px solid var(--z-line); border-radius:8px; }.ref-context-flow article::before{ content:""; position:absolute; top:35px; left:50%; right:-60%; height:2px; background:var(--z-ref-context-flow-item-bg); }.ref-context-flow article:last-child::before{ display:none; }
.ref-context-flow article>span{ position:absolute; top:18px; left:calc(50% - 19px); z-index:1; width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--z-line-3); border-radius:50%; background:var(--z-soft); color:var(--z-accent); }.ref-context-flow .is-success>span{ background:var(--z-ref-context-flow-mark-bg-success); color:var(--z-ref-status-ink-green); }
.ref-context-flow h4{ margin:0 0 14px; }.ref-context-flow p{ min-height:104px; color:var(--z-ref-context-flow-text-ink); font-size:10px; line-height:1.7; }.ref-context-flow a{ font-size:9px; }
.ref-context-footer{ padding:14px; border:1px solid var(--z-line); border-radius:8px; }.ref-context-footer h4{ margin:0 0 14px; }.ref-context-footer>div{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.ref-context-footer span{ color:var(--z-ref-list-row-small-ink); font-size:9px; }.ref-context-footer strong{ display:block; margin-top:5px; color:var(--z-ref-kv-value-ink); }

/* Search. */
.ref-search-query{ padding:0; border:0; background:transparent; box-shadow:none; overflow:visible; }.ref-search-query>.ref-search{ width:100%; }
.ref-filter-chips{ display:flex; gap:9px; align-items:center; padding:18px 0; }.ref-filter-chips span{ padding:8px 13px; border-radius:18px; background:var(--z-soft-accent); color:var(--z-ref-filter-chips-mark-ink); font-size:11px; }.ref-filter-chips button{ margin-left:auto; border:0; background:transparent; color:var(--z-accent); }
.ref-search-results{ min-height:588px; }.ref-search-row{ width:100%; min-height:102px; display:grid; grid-template-columns:1.45fr 1.1fr 1.25fr .82fr 18px; gap:16px; align-items:center; padding:12px 15px; border:0; border-top:1px solid var(--z-line); background:var(--z-surface-opaque); text-align:left; color:var(--z-ink); }
.ref-search-row.is-selected{ border:1px solid var(--z-accent-hover); border-radius:4px; }.ref-search-row>span{ display:flex; flex-direction:column; gap:3px; }.ref-search-row strong{ color:var(--z-ref-kv-value-ink); font-size:12px; }.ref-search-row small{ color:var(--z-ink-3); font-size:10px; }.ref-search-row>span:first-child>.ref-status{ align-self:flex-start; }
.ref-search-row>span:nth-child(3) small{ color:var(--z-ref-search-row-small-ink); }.ref-search-row>span:nth-child(4) strong{ margin-top:5px; font-size:11px; }.ref-search-row .is-green{ color:var(--z-ref-search-row-ink-green); }.ref-search-row .is-amber{ color:var(--z-ref-search-row-ink-amber); }
.ref-search-results footer{ display:flex; justify-content:space-between; padding:18px; color:var(--z-ink-2); }.ref-search-results footer b{ padding:8px 14px; border:1px solid var(--z-ref-search-results-strong-line); border-radius:6px; color:var(--z-ref-search-results-strong-ink); }
.ref-filter-panel{ min-height:725px; padding:18px 20px; }.ref-filter-panel h3{ display:flex; justify-content:space-between; }.ref-filter-panel>label{ display:flex; flex-direction:column; gap:7px; margin:14px 0; font-size:10px; font-weight:700; }.ref-filter-panel>label>span{ min-height:38px; display:flex; align-items:center; padding:0 10px; border:1px solid var(--z-line-2); border-radius:5px; background:var(--z-surface-opaque); color:var(--z-ink); font-weight:400; }
.ref-date-range{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }.ref-date-range label{ display:flex; flex-direction:column; gap:5px; }.ref-date-range input{ width:100%; height:36px; border:1px solid var(--z-line-2); border-radius:5px; padding:0 8px; }
.ref-search-query--saved{ padding-top:0; }.ref-suggestions{ padding:12px 14px; border:1px solid var(--z-line); border-radius:7px; }.ref-suggestions small{ display:block; margin-bottom:10px; color:var(--z-ink-3); }.ref-suggestions span{ display:inline-flex; margin:0 6px 8px 0; padding:6px 10px; border:1px solid var(--z-line); border-radius:6px; color:var(--z-ink); font-size:10px; }.ref-suggestions button{ display:block; border:0; background:transparent; color:var(--z-ink-2); }
.ref-saved-head{ display:flex; justify-content:space-between; margin:22px 0 10px; }.ref-saved-head button{ border:0; background:transparent; color:var(--z-accent); }.ref-saved-views{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.ref-saved-views button{ display:flex; gap:9px; min-height:58px; align-items:center; padding:10px; border:1px solid var(--z-line); border-radius:7px; background:var(--z-surface-opaque); text-align:left; }.ref-saved-views button.is-selected{ border-color:var(--z-ref-saved-views-line-selected); background:var(--z-soft); }.ref-saved-views span{ flex:1; }.ref-saved-views strong,.ref-saved-views small{ display:block; }.ref-saved-views small{ color:var(--z-ref-list-row-small-ink); }
.ref-search-results--saved{ min-height:520px; border:0; box-shadow:none; background:transparent; }.ref-result-section h3{ margin:0 0 8px; }.ref-result-section h3 b{ padding:2px 7px; border-radius:10px; background:var(--z-ref-status-bg); color:var(--z-ink-2); font-size:9px; }.ref-result-section{ margin-bottom:22px; }.ref-result-section>a{ display:block; padding:8px 14px; border:1px solid var(--z-line); border-top:0; }
.ref-compact-result{ width:100%; min-height:51px; display:grid; grid-template-columns:25px minmax(0,1.8fr) .55fr .55fr .48fr 15px; gap:10px; align-items:center; padding:8px 14px; border:1px solid var(--z-line); border-bottom:0; background:var(--z-surface-opaque); text-align:left; }.ref-compact-result.is-selected{ border-color:var(--z-ref-route-mini-icon-line-active); background:var(--z-surface-opaque); }.ref-compact-result strong,.ref-compact-result small{ display:block; }.ref-compact-result small{ color:var(--z-ref-list-row-small-ink); }.ref-compact-result em{ color:var(--z-ref-compact-result-mark-ink); font-style:normal; }
.ref-current-view{ min-height:707px; padding:20px 18px; }.ref-current-view>.ref-kv{ grid-template-columns:1fr; gap:4px; }.ref-current-view>.ref-kv dt{ margin-top:11px; }.ref-actions{ display:flex; align-items:center; gap:20px; margin-top:20px; }.ref-selected-preview{ position:relative; margin-top:18px; padding:17px; border:1px solid var(--z-line); border-radius:8px; }.ref-selected-preview>.ref-close{ position:absolute; top:12px; right:12px; border:0; background:transparent; }.ref-selected-preview .ref-kv{ grid-template-columns:1fr; gap:5px; }.ref-selected-preview a{ display:block; margin-top:16px; }

/* Scenarios. */
.ref-scenario-about,.ref-route-canvas,.ref-scenario-check,.ref-scenario-library,.ref-scenario-template,.ref-scenario-meta{ min-height:716px; }
.ref-scenario-about{ padding:22px 24px; }.ref-scenario-about hr{ margin:19px 0; border:0; border-top:1px solid var(--z-line); }.ref-scenario-about h4{ color:var(--z-ink-2); }.ref-scenario-about a{ display:block; margin:9px 0; }
.ref-route-canvas{ padding:0 32px; }.ref-breadcrumb{ min-height:50px; display:flex; align-items:center; gap:12px; color:var(--z-accent); font-size:10px; }.ref-breadcrumb small{ color:var(--z-ref-process-strip-ink); }
.ref-route-nodes{ width:520px; max-width:90%; margin:0 auto; padding:23px 0; }.ref-route-nodes article{ position:relative; min-height:78px; display:flex; align-items:center; gap:16px; margin:0 auto 31px; padding:13px 16px; border:1px solid var(--z-line-2); border-radius:8px; background:var(--z-surface-opaque); }.ref-route-nodes article::after{ content:""; position:absolute; top:100%; left:50%; height:31px; border-left:1px dashed var(--z-ref-route-nodes-item-line-left); }.ref-route-nodes article:last-child::after{ display:none; }
.ref-route-nodes article>span{ width:40px; height:40px; display:grid; place-items:center; flex:0 0 auto; border-radius:9px; background:var(--z-soft-accent); color:var(--z-accent); }.ref-route-nodes strong,.ref-route-nodes small{ display:block; }.ref-route-nodes small{ margin-top:5px; color:var(--z-ink-2); line-height:1.35; }.ref-route-nodes .is-human{ border-color:var(--z-ref-route-nodes-line-human); background:var(--z-ref-knowledge-bg); }.ref-route-nodes .is-approved{ border-color:var(--z-ref-route-nodes-line-approved); }.ref-route-nodes aside{ position:absolute; left:calc(100% + 56px); width:140px; padding:13px; border:1px dashed var(--z-ref-route-nodes-line); border-radius:7px; color:var(--z-ink-2); font-size:10px; }.ref-route-nodes aside::before{ content:""; position:absolute; top:50%; right:100%; width:56px; border-top:1px dashed var(--z-ref-route-nodes-mark-line-top); }
.ref-bottom-note{ margin-top:auto; padding:15px; border-top:1px solid var(--z-line); text-align:center; color:var(--z-ink-3); }
.ref-scenario-check{ padding:24px; }.ref-scenario-check>p b{ color:var(--z-ref-scenario-check-strong-ink); }.ref-check-line{ display:grid; grid-template-columns:26px 1fr 20px; gap:9px; align-items:center; margin:14px 0; padding:13px; border:1px solid var(--z-line); border-radius:8px; }.ref-check-line>span{ color:var(--z-ref-check-line-mark-ink); }.ref-check-line strong,.ref-check-line small{ display:block; }.ref-check-line small{ margin-top:4px; color:var(--z-ref-list-row-small-ink); }
.ref-success-box{ display:flex; gap:12px; padding:14px; border:1px solid var(--z-ref-success-box-line); border-radius:8px; background:var(--z-level-result-soft); color:var(--z-ref-check-line-mark-ink); }.ref-success-box strong,.ref-success-box small{ display:block; }.ref-success-box small{ margin-top:4px; color:var(--z-ref-success-box-small-ink); }
.ref-scenario-library{ position:relative; padding:18px 10px 58px; }.ref-scenario-library>.ref-search{ width:100%; min-width:0; margin-bottom:12px; }.ref-scenario-library>button:not(.ref-button){ width:100%; min-height:108px; display:grid; grid-template-columns:1fr auto; gap:6px; padding:16px; border:0; border-bottom:1px solid var(--z-line); background:var(--z-surface-opaque); text-align:left; }.ref-scenario-library>button.is-selected{ background:var(--z-soft-accent); border-left:3px solid var(--z-accent); }.ref-scenario-library strong,.ref-scenario-library small{ display:block; }.ref-scenario-library small{ color:var(--z-ink-3); line-height:1.5; }.ref-scenario-library time{ grid-column:2; grid-row:1/4; align-self:end; color:var(--z-ink-3); font-size:9px; }.ref-scenario-library>.ref-button{ position:absolute; left:12px; right:12px; bottom:12px; width:calc(100% - 24px); }
.ref-scenario-template{ padding:18px 20px; }.ref-scenario-template h2{ margin-top:10px; }.ref-route-template article{ position:relative; min-height:77px; display:flex; gap:16px; align-items:center; margin:0 0 8px 45px; padding:14px; border:1px solid var(--z-line); border-radius:7px; }.ref-route-template article::before{ content:""; position:absolute; top:-9px; bottom:-9px; left:-29px; border-left:2px solid var(--z-ref-route-template-item-line-left); }.ref-route-template article>span{ width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:var(--z-soft-accent); color:var(--z-accent); }.ref-route-template article strong,.ref-route-template article small{ display:block; }.ref-route-template article small{ margin-top:5px; color:var(--z-ink-3); }.ref-route-template .is-human{ border-color:var(--z-ref-route-template-line-human); background:var(--z-ref-knowledge-bg); }
.ref-scenario-meta{ padding:0 0 80px; border:0; background:transparent; box-shadow:none; }.ref-side-box{ padding:18px; border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); }.ref-side-box+.ref-side-box{ margin-top:13px; }.ref-side-box hr{ border:0; border-top:1px solid var(--z-line); }.ref-side-box p{ font-size:10px; }.ref-side-box h4{ line-height:1.35; }.ref-side-box .ref-status{ float:right; }.ref-sticky-actions{ position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:flex-end; gap:12px; padding-top:14px; }.ref-scenario-meta{ position:relative; }

/* Checks. */
.ref-rule-explainer,.ref-logic-canvas,.ref-rule-test,.ref-condition-library,.ref-condition-builder,.ref-simulation{ min-height:726px; }
.ref-rule-explainer{ padding:22px; }.ref-rule-point{ display:flex; gap:12px; margin:17px 0; }.ref-rule-point>span{ color:var(--z-ref-evidence-row-mark-ink); font-size:18px; }.ref-rule-point strong,.ref-rule-point small{ display:block; }.ref-rule-point small{ margin-top:4px; color:var(--z-ink-2); line-height:1.4; }.ref-rule-point.is-human>span{ color:var(--z-ref-rule-point-mark-ink-human); }
.ref-rule-explainer hr,.ref-rule-test hr{ border:0; border-top:1px solid var(--z-line); }.ref-logic-canvas{ display:grid; place-items:center; padding:28px; border:0; box-shadow:none; background:transparent; }.ref-logic-nodes{ width:350px; max-width:90%; }.ref-logic-nodes article{ position:relative; min-height:59px; display:flex; align-items:center; gap:17px; margin-bottom:38px; padding:14px 22px; border:1px solid var(--z-line-2); border-radius:8px; background:var(--z-surface-opaque); box-shadow:var(--z-ref-logic-nodes-item-shadow); }.ref-logic-nodes article::after{ content:""; position:absolute; top:100%; left:50%; height:38px; border-left:2px solid var(--z-ref-logic-nodes-item-line-left); }.ref-logic-nodes article:last-child::after{ display:none; }.ref-logic-nodes span{ width:28px; height:28px; display:grid; place-items:center; border:2px solid var(--z-ref-logic-nodes-mark-line); border-radius:50%; color:var(--z-ref-evidence-row-mark-ink); }.ref-logic-nodes .is-human{ border-color:var(--z-ref-logic-nodes-line-human); background:var(--z-ref-knowledge-bg); color:var(--z-ref-warning-strip-ink); }.ref-logic-nodes .is-human span{ background:var(--z-ref-logic-nodes-mark-bg-human); color:var(--z-ink-inverse); border-color:var(--z-ref-logic-nodes-mark-bg-human); }.ref-logic-nodes .is-dashed{ border-style:dashed; border-color:var(--z-ref-logic-nodes-line-dashed); }
.ref-rule-test{ padding:22px; }.ref-test-row{ display:grid; grid-template-columns:22px 1fr auto; gap:9px; margin:13px 0; color:var(--z-ref-context-flow-text-ink); }.ref-test-row>span{ color:var(--z-ref-search-row-ink-green); }.ref-test-row small{ color:var(--z-ref-test-row-small-ink); }.ref-human-result{ display:flex; gap:12px; padding:13px; border:1px solid var(--z-ref-human-result-line); border-radius:8px; color:var(--z-ref-human-result-ink); }.ref-human-result strong,.ref-human-result small{ display:block; }.ref-human-result small{ margin-top:5px; color:var(--z-ink-2); }
.ref-condition-library{ padding:20px 22px; }.ref-condition-library>p{ margin-top:-10px; }.ref-condition-library h4{ margin:20px 0 8px; }.ref-condition-group{ border:1px solid var(--z-line); border-radius:8px; overflow:hidden; }.ref-condition-group button{ width:100%; display:grid; grid-template-columns:30px 1fr 15px; gap:9px; align-items:center; padding:12px; border:0; border-bottom:1px solid var(--z-line); background:var(--z-surface-opaque); text-align:left; }.ref-condition-group button:last-child{ border-bottom:0; }.ref-condition-group>button>span{ color:var(--z-accent); font-size:19px; }.ref-condition-group p{ margin:0; }.ref-condition-group strong,.ref-condition-group small{ display:block; }.ref-condition-group small{ margin-top:4px; color:var(--z-ink-3); }
.ref-condition-builder{ padding:20px 24px; }.ref-builder-shell{ margin-top:20px; padding:14px; border:1px solid var(--z-line); border-radius:8px; }.ref-condition-set{ padding:10px; border:1px solid var(--z-line); border-radius:7px; }.ref-condition-set header{ display:flex; align-items:center; gap:12px; padding-bottom:10px; }.ref-condition-set header>div{ flex:1; }.ref-condition-set header strong,.ref-condition-set header small{ display:block; }.ref-condition-set header small{ margin-top:3px; color:var(--z-ink-3); }.ref-condition-set header button{ border:0; background:transparent; color:var(--z-accent); }
.ref-condition-row{ min-height:46px; display:grid; grid-template-columns:22px 1fr 1.5fr auto 16px; gap:10px; align-items:center; padding:6px 10px; border:1px solid var(--z-line); border-bottom:0; }.ref-condition-row:last-child{ border-bottom:1px solid var(--z-line); }.ref-condition-row>span{ color:var(--z-ref-condition-row-mark-ink); }.ref-condition-row>small{ color:var(--z-ref-process-strip-ink); }.ref-logic-and{ width:27px; height:27px; display:grid; place-items:center; margin:0 auto; border:1px solid var(--z-line-3); border-radius:50%; background:var(--z-surface-opaque); font-size:9px; }
.ref-human-control{ display:flex; align-items:center; gap:14px; margin-top:18px; padding:17px; border:1px solid var(--z-ref-human-control-line); border-radius:8px; background:var(--z-ref-knowledge-bg); }.ref-human-control>span{ flex:1; }.ref-human-control strong,.ref-human-control small{ display:block; }.ref-human-control small{ margin-top:4px; color:var(--z-ink-3); }.ref-how{ margin-top:18px; padding:15px; border:1px solid var(--z-line); border-radius:8px; }.ref-how>div{ display:flex; align-items:center; gap:12px; }.ref-how span{ flex:1; color:var(--z-ink-2); font-size:9px; }
.ref-simulation{ padding:20px; }.ref-simulation>.ref-kv{ grid-template-columns:130px 1fr; padding:12px; border:1px solid var(--z-line); border-radius:8px; gap:8px; }.ref-simulation .ref-side-box{ padding:12px; }.ref-simulation .ref-side-box p{ display:flex; justify-content:space-between; }.ref-simulation-result{ display:flex; gap:13px; padding:14px; border:1px solid var(--z-line); border-radius:8px; }.ref-simulation-result>span{ display:flex; flex-direction:column; }.ref-simulation-result>span>strong{ font-size:16px; }.ref-simulation-result p{ margin-bottom:0; }

/* Sources. */
.ref-source-catalog,.ref-source-detail,.ref-adapter-editor,.ref-adapter-status{ min-height:724px; }
.ref-source-head{ display:grid; grid-template-columns:1.5fr 1fr .8fr .85fr 1fr; gap:14px; padding:20px 24px; border-bottom:1px solid var(--z-line); color:var(--z-ink-2); font-size:10px; }.ref-source-row{ width:100%; min-height:106px; display:grid; grid-template-columns:52px 1.45fr 1fr .8fr .8fr 15px; gap:14px; align-items:center; padding:12px 20px; border:0; border-bottom:1px solid var(--z-line); background:var(--z-surface-opaque); text-align:left; }.ref-source-row.is-selected{ background:var(--z-soft); box-shadow:inset 3px 0 var(--z-accent); }.ref-source-row>span:first-child{ width:50px; height:50px; display:grid; place-items:center; border:1px solid var(--z-line-2); border-radius:9px; background:var(--z-surface-opaque); color:var(--z-ref-source-row-mark-ink); font-size:24px; }.ref-source-row strong,.ref-source-row small{ display:block; }.ref-source-row small{ margin-top:5px; color:var(--z-ink-3); line-height:1.5; }.ref-source-row em{ padding:6px 10px; border:1px solid var(--z-line-2); border-radius:5px; color:var(--z-ref-source-row-mark-ink-2); font-style:normal; font-size:10px; }.ref-source-row time{ color:var(--z-ref-process-strip-ink); font-size:10px; }.ref-source-catalog footer{ text-align:center; padding:17px; color:var(--z-ref-timeline-item-ink); }
.ref-source-detail{ padding:28px 24px 20px; }.ref-adapter-title{ display:flex; gap:16px; align-items:center; }.ref-adapter-title>span{ width:53px; height:53px; display:grid; place-items:center; border:1px solid var(--z-ref-toast-line); border-radius:9px; background:var(--z-soft-accent); color:var(--z-accent); font-size:29px; }.ref-adapter-title h2{ margin:0 0 5px; font-size:20px; }.ref-adapter-title p,.ref-adapter-title small{ display:block; margin:0; }.ref-tabs{ display:flex; gap:24px; margin:22px 0; border-bottom:1px solid var(--z-line); }.ref-tabs button{ padding:0 4px 12px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--z-ink-2); font-size:11px; }.ref-tabs .is-active{ border-color:var(--z-accent); color:var(--z-accent); }.ref-source-detail ul{ padding-left:18px; color:var(--z-ink); line-height:1.7; font-size:10px; }.ref-source-detail hr{ border:0; border-top:1px solid var(--z-line); }.ref-map-preview,.ref-mapping-row{ display:grid; grid-template-columns:1fr 25px 1fr; gap:8px; align-items:center; min-height:29px; }.ref-map-preview span:last-child,.ref-mapping-row span{ padding:6px 10px; border:1px solid var(--z-line); border-radius:5px; background:var(--z-surface-opaque); }.ref-map-preview span:first-child{ border:0; background:transparent; }.ref-source-detail>.ref-button{ float:right; margin-top:18px; }
.ref-secret-note{ display:flex; gap:12px; align-items:center; margin-top:18px; padding:14px; border:1px solid var(--z-ref-info-strip-line); border-radius:8px; background:var(--z-soft); color:var(--z-accent); }.ref-secret-note strong,.ref-secret-note small{ display:block; }.ref-secret-note small{ margin-top:4px; color:var(--z-ref-secret-note-small-ink); }
.ref-adapter-editor{ position:relative; padding:18px 24px 90px; }.ref-adapter-editor .ref-breadcrumb{ padding:0; }.ref-adapter-editor .ref-adapter-title{ padding:8px 0 20px; }.ref-adapter-editor .ref-adapter-title>div{ flex:1; }.ref-adapter-editor>.ref-kv{ grid-template-columns:240px 1fr; max-width:700px; padding-bottom:18px; border-bottom:1px solid var(--z-line); }.ref-select{ display:inline-flex; min-width:230px; padding:10px; border:1px solid var(--z-line-2); border-radius:6px; }.ref-mapping-head{ display:grid; grid-template-columns:1fr 40px 1fr; margin-top:20px; color:var(--z-ink-3); }.ref-mapping-row{ grid-template-columns:1fr 40px 1fr; max-width:650px; margin:10px 0; }.ref-mapping-row span:first-child,.ref-mapping-row span:last-child{ padding:10px 14px; }.ref-adapter-status{ border:0; background:transparent; box-shadow:none; }.ref-adapter-status .ref-side-box{ min-height:210px; padding:24px; }.ref-adapter-status .ref-success-title>span{ background:var(--z-ref-success-title-mark-bg); color:var(--z-ink-inverse); border-color:var(--z-ref-success-title-mark-bg); }.is-green{ color:var(--z-tone-ink-green)!important; }.is-amber{ color:var(--z-tone-ink-amber)!important; }

/* Analytics. */
.ref-analytics-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; border:0; background:transparent; box-shadow:none; overflow:visible; }.ref-analytics-metrics article{ position:relative; min-height:142px; padding:23px; border:1px solid var(--z-line); border-radius:8px; background:var(--z-surface-opaque); }.ref-analytics-metrics small,.ref-analytics-metrics strong,.ref-analytics-metrics p{ display:block; }.ref-analytics-metrics small{ color:var(--z-ref-process-strip-ink); }.ref-analytics-metrics strong{ margin-top:18px; font-size:27px; }.ref-analytics-metrics article>span{ position:absolute; top:50px; right:27px; font-size:34px; }.ref-analytics-metrics p{ margin:8px 0 0; font-size:11px; }
.ref-flow-overview{ min-height:507px; padding:42px 4px 20px; border:0; background:transparent; box-shadow:none; }.ref-flow-line{ display:grid; grid-template-columns:repeat(7,1fr); gap:20px; }.ref-flow-line article{ position:relative; text-align:center; }.ref-flow-line article>h3{ min-height:48px; font-size:14px; }.ref-flow-line article>i{ position:relative; z-index:1; display:block; width:19px; height:19px; margin:0 auto 42px; border:2px solid var(--z-accent); border-radius:50%; background:var(--z-surface-opaque); }.ref-flow-line article>i::after{ content:""; position:absolute; top:7px; left:17px; width:calc(100vw / 10); height:2px; background:var(--z-ref-flow-line-icon-bg); }.ref-flow-line article:last-child>i::after{ display:none; }.ref-flow-line article.is-warning>i{ border-color:var(--z-ref-flow-line-icon-line-warning); box-shadow:var(--z-ref-flow-line-icon-shadow-warning); }.ref-flow-line article>.ref-status{ position:absolute; top:96px; left:50%; transform:translateX(-50%); }
.ref-flow-line article>div{ min-height:224px; padding:22px 12px; border:1px solid var(--z-line); border-radius:7px; background:var(--z-surface-opaque); text-align:left; }.ref-flow-line article.is-warning>div{ border-color:var(--z-ref-flow-line-line-warning); }.ref-flow-line article>div small,.ref-flow-line article>div strong{ display:block; }.ref-flow-line article>div strong{ margin:12px 0 18px; font-size:23px; }.ref-flow-line article>div hr{ border:0; border-top:1px solid var(--z-line); }.ref-flow-line article>p{ text-align:left; font-size:10px; }.ref-observed-note{ margin-top:28px; color:var(--z-ink-2); }
.ref-flow-signals{ min-height:714px; padding:22px 18px; }.ref-flow-signals article{ padding:18px 12px; border:1px solid var(--z-line); border-radius:7px; }.ref-flow-signals article+article{ margin-top:10px; }.ref-flow-signals article strong{ font-size:12px; }.ref-flow-signals article strong::first-letter{ color:var(--z-ref-flow-signals-strong-ink); }.ref-flow-signals article p{ font-size:10px; }.ref-flow-signals>a{ display:block; margin-top:24px; }
.ref-analytics-toolbar{ min-height:65px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; }.ref-analytics-toolbar h2{ font-size:19px; }.ref-analytics-toolbar>div{ display:flex; height:42px; }.ref-analytics-toolbar button,.ref-analytics-toolbar strong{ min-width:44px; display:grid; place-items:center; padding:0 14px; border:1px solid var(--z-line-2); background:var(--z-surface-opaque); font-weight:500; }.ref-analytics-toolbar button:last-child{ margin-left:14px; border-radius:7px; }
.ref-sla-map{ min-height:665px; }.ref-sla-head,.ref-sla-row{ display:grid; grid-template-columns:215px repeat(7,1fr); align-items:center; }.ref-sla-head{ min-height:63px; border-bottom:1px solid var(--z-line); color:var(--z-ref-search-row-small-ink); font-size:10px; text-align:center; }.ref-sla-row{ min-height:75px; border-bottom:1px solid var(--z-line); }.ref-sla-row>strong{ padding:0 20px; font-size:11px; }.ref-sla-cell{ position:relative; display:block; height:15px; margin:0 13px; border-radius:2px; background:var(--z-ref-sla-cell-bg); }.ref-sla-cell i{ position:absolute; left:55%; top:-4px; height:23px; border-left:1px solid var(--z-ref-sla-cell-icon-line-left); }.ref-sla-cell.is-bad{ background:var(--z-ref-sla-cell-bg-bad); }.ref-sla-cell.is-warn{ background:var(--z-ref-sla-cell-bg-warn); }
.ref-sla-legend{ display:flex; gap:28px; padding:17px 22px; color:var(--z-ref-sla-legend-ink); font-size:10px; }.ref-sla-legend span::before{ content:""; display:inline-block; width:25px; height:9px; margin-right:7px; border-radius:2px; background:var(--z-ref-sla-legend-mark-bg); }.ref-sla-legend .is-green::before{ background:var(--z-ref-sla-legend-mark-bg-green); }.ref-sla-legend .is-red::before{ background:var(--z-ref-sla-legend-mark-bg-red); }.ref-sla-legend .is-amber::before{ background:var(--z-ref-sla-legend-mark-bg-amber); }
.ref-scenario-compare{ margin:12px 0 0; border:1px solid var(--z-line); border-radius:8px; }.ref-scenario-compare h3{ margin:0; padding:16px 20px; }.ref-scenario-compare>div{ display:grid; grid-template-columns:1.5fr 1.2fr 1.2fr 1fr; gap:18px; align-items:center; min-height:61px; padding:10px 20px; border-top:1px solid var(--z-line); }.ref-scenario-compare strong,.ref-scenario-compare small{ display:block; }.ref-scenario-compare small{ color:var(--z-ink-3); }.ref-scenario-compare>div>span:not(:first-child){ display:flex; align-items:center; gap:8px; }.ref-scenario-compare i{ display:inline-block; height:4px; border-radius:2px; background:var(--z-accent-hover); }.ref-scenario-compare>div>span:nth-child(3) i,.ref-scenario-compare>div>span:nth-child(4) i{ background:var(--z-ref-scenario-compare-icon-bg); }
.ref-sla-attention{ min-height:758px; padding:22px; }.ref-sla-attention article{ display:flex; gap:14px; margin-bottom:14px; padding:18px 12px; border:1px solid var(--z-line); border-radius:8px; }.ref-sla-attention article>span{ width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border-radius:9px; background:var(--z-soft-accent); font-size:22px; }.ref-sla-attention article>div{ flex:1; }.ref-sla-attention strong,.ref-sla-attention small,.ref-sla-attention a{ display:block; }.ref-sla-attention small{ margin:10px 0; color:var(--z-ink-2); line-height:1.6; }

@media (max-width:1439px){
  :root[data-dispatcher-view="reference"]{ --z-spine-w:164px; }
  :root[data-dispatcher-view="reference"] .brand__title{ font-size:13px; }
  .dispatcher-reference-page{ padding-right:18px; padding-left:18px; }
  .ref-page__header h2{ font-size:27px; }
  .ref-order-table-head{ display:none; }
  .ref-order-row{ grid-template-columns:38px minmax(150px,1.5fr) .7fr 1fr 1fr 1fr 1fr; padding:10px 12px; }
  .ref-context-flow article{ padding-right:8px; padding-left:8px; }
}
@media (max-width:1180px){
  :root[data-dispatcher-view="reference"]{ --z-spine-w:108px; }
  :root[data-dispatcher-view="reference"] .brand__title{ display:none; }
  .ref-span-2,.ref-span-3,.ref-span-4,.ref-span-5,.ref-span-6,.ref-span-7,.ref-span-8,.ref-span-9{ grid-column:span 6; }
  .ref-page__header{ min-height:100px; }.ref-page__header h2{ font-size:24px; }
  .ref-variant-switch button{ padding:0 10px; font-size:10px; }
  .ref-flow-line,.ref-context-flow{ grid-template-columns:repeat(3,1fr); }
  .ref-flow-line article>i::after,.ref-context-flow article::before{ display:none; }
  .ref-analytics-metrics{ grid-template-columns:repeat(2,1fr); }
  .ref-order-row{ grid-template-columns:38px 1.4fr 1fr 1fr; }.ref-order-row>*:nth-child(n+5){ display:none; }
  .ref-search-row{ grid-template-columns:1.4fr 1fr 1.2fr 16px; }.ref-search-row>span:nth-child(4){ display:none; }
}
@media (max-width:760px){
  :root[data-dispatcher-view="reference"]{ --z-spine-w:68px; }
  :root[data-dispatcher-view="reference"] .brand{ height:64px; padding:14px; }
  :root[data-dispatcher-view="reference"] main.workspace{ overflow:visible; }
  .dispatcher-reference-page{ min-height:0; padding:0 12px 30px; }
  .ref-page__header{ flex-direction:column; padding:17px 0 12px; }.ref-page__tools{ width:100%; justify-content:space-between; overflow:auto; }.ref-page__context{ overflow:auto; white-space:nowrap; }
  .ref-layout{ grid-template-columns:1fr; }.ref-span-2,.ref-span-3,.ref-span-4,.ref-span-5,.ref-span-6,.ref-span-7,.ref-span-8,.ref-span-9,.ref-span-12{ grid-column:1; }
  .ref-order-row,.ref-registry-row,.ref-source-row,.ref-search-row,.ref-compact-result{ display:flex; flex-wrap:wrap; }
  .ref-kv{ grid-template-columns:1fr; }.ref-context-flow,.ref-flow-line,.ref-analytics-metrics,.ref-saved-views{ grid-template-columns:1fr; }
  .ref-sla-head,.ref-sla-row{ grid-template-columns:150px repeat(7,100px); min-width:850px; }.ref-sla-map{ overflow:auto; }
  .ref-process-strip{ overflow:auto; justify-content:flex-start; }.ref-process-strip div{ min-width:130px; }
  .ref-page__tools .layout-config-button>span{ display:none; }.ref-page__tools .layout-config-button{ min-width:44px; }
}

/* WorkOS already contains its own contextual actions; the shell FABs covered
   those actions on compact widths. */
:root[data-screen="workos"] .floating-cluster{ display:none; }

.context-panel-backdrop{ position:fixed; inset:0; background:var(--z-context-panel-backdrop-bg); backdrop-filter:blur(2px); z-index:40; display:none; }
.context-panel-backdrop.is-open{ display:block; }
.context-panel{ position:fixed; top:0; right:0; bottom:0; width:380px; max-width:92vw; z-index:41; background:var(--z-nested); backdrop-filter:blur(24px); border-left:1px solid var(--z-line-2); box-shadow:var(--z-shadow-far); display:flex; flex-direction:column; transform:translateX(24px); opacity:0; pointer-events:none; transition:transform .36s cubic-bezier(.16,1,.3,1), opacity .28s ease; }
.context-panel.is-open{ transform:translateX(0); opacity:1; pointer-events:auto; }
.context-panel__head{ display:flex; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--z-line); }
.context-panel__head .close{ width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:7px; border:1px solid var(--z-line); color:var(--z-ink-2); background:transparent; }
.context-panel__body{ padding:18px; overflow-y:auto; flex:1; }
.context-panel__body h2{ margin:0 0 4px; font-size:17px; }
.context-panel__sub{ font-family:var(--z-font-mono); font-size:11px; color:var(--z-ink-2); margin-bottom:14px; }
.context-tabs{ display:flex; gap:16px; border-bottom:1px solid var(--z-line); margin-bottom:14px; overflow-x:auto; }
.context-tabs button{ background:none; border:0; border-bottom:2px solid transparent; font-size:11.5px; font-weight:600; padding:7px 2px; color:var(--z-ink-3); white-space:nowrap; }
.context-tabs button.is-active{ color:var(--z-ink); border-bottom-color:rgb(var(--z-env-tint)); }
.context-panel__note{ margin-top:16px; padding:13px; border-radius:12px; background:var(--z-edit-toggle-bg); border:1px solid var(--z-line); font-size:12px; color:var(--z-ink-2); line-height:1.5; }
.context-panel__foot{ padding:14px 18px; border-top:1px solid var(--z-line); display:flex; gap:8px; }

.palette-backdrop{ position:fixed; inset:0; background:var(--z-palette-backdrop-bg); backdrop-filter:blur(4px); z-index:60; display:none; align-items:flex-start; justify-content:center; padding-top:14vh; }
.palette-backdrop.is-open{ display:flex; }
.palette{ width:560px; max-width:92vw; border-radius:16px; background:var(--z-nested); border:1px solid var(--z-line-2); box-shadow:var(--z-shadow-far); overflow:hidden; animation:riseIn .22s ease; }
.palette__input-row{ display:flex; align-items:center; gap:10px; padding:15px 18px; border-bottom:1px solid var(--z-line); }
.palette__input-row input{ flex:1; background:transparent; border:none; outline:none; color:var(--z-ink); font-size:15px; font-family:inherit; }
.palette__input-row kbd{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-3); padding:2px 7px; border:1px solid var(--z-line); border-radius:5px; }
.palette__list{ padding:8px; max-height:52vh; overflow-y:auto; }
.palette__group-label{ font-family:var(--z-font-mono); font-size:9.5px; letter-spacing:.1em; color:var(--z-ink-3); padding:8px 10px 4px; text-transform:uppercase; }
.palette__item{ width:100%; display:flex; align-items:center; gap:11px; padding:10px 11px; border-radius:9px; background:none; border:0; color:var(--z-ink); text-align:left; }
.palette__item:hover{ background:var(--z-palette-item-bg); }
.palette__item span:first-child{ width:7px; height:7px; border-radius:2px; background:var(--z-swatch-bg); flex:0 0 auto; }
.palette__item .label{ flex:1; font-size:13.5px; }
.palette__item .hint{ font-family:var(--z-font-mono); font-size:10px; color:var(--z-ink-3); }

.notif-backdrop, .switcher-backdrop{ position:fixed; inset:0; z-index:45; display:none; }
.notif-backdrop.is-open, .switcher-backdrop.is-open{ display:block; }
.notif-tray{ position:fixed; top:64px; right:22px; width:340px; max-width:90vw; z-index:46; border-radius:16px; background:var(--z-nested); border:1px solid var(--z-line-2); box-shadow:var(--z-shadow-far); overflow:hidden; display:none; animation:riseIn .22s ease; }
.notif-tray.is-open{ display:block; }
.notif-tray__head{ display:flex; align-items:center; gap:8px; padding:13px 16px; border-bottom:1px solid var(--z-line); }
.notif-tray__head strong{ font-size:13.5px; }
.notif-tray__head span{ font-family:var(--z-font-mono); font-size:9.5px; color:var(--z-ink-3); }
.notif-tray__list{ max-height:60vh; overflow-y:auto; }
.notif-row{ display:flex; gap:10px; padding:12px 16px; border-bottom:1px solid var(--z-line); }
.notif-row .cat{ font-family:var(--z-font-mono); font-size:8.5px; letter-spacing:.1em; color:var(--z-ink-3); text-transform:uppercase; }
.notif-row .text{ font-size:12.5px; margin:1px 0 2px; }
.notif-row .meta{ font-size:11px; color:var(--z-ink-3); }

.switcher-panel{ position:fixed; top:64px; right:250px; width:300px; max-width:90vw; z-index:46; border-radius:16px; background:var(--z-nested); border:1px solid var(--z-line-2); box-shadow:var(--z-shadow-far); overflow:hidden; display:none; animation:riseIn .22s ease; }
.switcher-panel.is-open{ display:block; }
.switcher-panel__head{ padding:13px 16px; border-bottom:1px solid var(--z-line); font-weight:700; font-size:13.5px; }
.switcher-row{ display:flex; align-items:center; gap:8px; padding:9px 16px; }
.switcher-row .k{ font-family:var(--z-font-mono); font-size:8.5px; letter-spacing:.1em; color:var(--z-ink-3); }
.switcher-row .v{ font-size:13px; }
.switcher-panel__future{ padding:10px 16px 14px; border-top:1px solid var(--z-line); }
.switcher-panel__future-label{ font-family:var(--z-font-mono); font-size:9px; letter-spacing:.1em; color:var(--z-ink-3); margin-bottom:7px; }
.switcher-panel__future-item{ display:flex; align-items:center; gap:8px; padding:6px 0; font-size:12.5px; color:var(--z-ink-3); }
.switcher-panel__future-item .dot{ width:6px; height:6px; border-radius:50%; background:var(--z-ink-4); }

.agentera-backdrop{ position:fixed; inset:0; z-index:55; display:none; }
.agentera-backdrop.is-open{ display:block; }
.agentera{ position:fixed; right:22px; bottom:92px; width:360px; max-width:92vw; z-index:56; border-radius:18px; background:var(--z-nested); border:1px solid var(--z-line-2); box-shadow:var(--z-shadow-far); overflow:hidden; display:none; animation:riseIn .24s ease; }
.agentera.is-open{ display:block; }
.agentera__head{ position:relative; padding:14px 16px; border-bottom:1px solid var(--z-line); overflow:hidden; }
.agentera__head-bg{ position:absolute; inset:0; background:var(--z-agentera-head-bg); }
.agentera__head-row{ position:relative; display:flex; align-items:center; gap:10px; }
.agentera__body{ padding:14px 16px; }
.agentera__reasoning{ margin-top:12px; font-size:12.5px; line-height:1.55; color:var(--z-ink-2); }
.agentera__flag{ margin-top:12px; display:flex; align-items:center; gap:7px; font-family:var(--z-font-mono); font-size:9.5px; color:var(--z-ink-3); }
.agentera__flag .dot{ width:8px; height:8px; border-radius:3px; background:var(--z-tag-violet); }
.agentera__note{ margin-top:8px; text-align:center; font-family:var(--z-font-mono); font-size:9px; color:var(--z-ink-3); }

.floating-cluster{ position:fixed; right:22px; bottom:22px; z-index:50; display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
:root[data-screen="workos"] .floating-cluster{ display:none; }
.action-dock{ display:none; flex-direction:column; gap:8px; padding:12px; border-radius:16px; background:var(--z-nested); border:1px solid var(--z-line-2); box-shadow:var(--z-shadow-far); min-width:210px; animation:riseIn .2s ease; }
.action-dock.is-open{ display:flex; }
.action-dock__label{ font-family:var(--z-font-mono); font-size:9px; letter-spacing:.1em; color:var(--z-ink-3); padding:0 2px 2px; text-transform:uppercase; }
.action-dock__item{ display:flex; align-items:center; gap:9px; padding:9px 12px; border-radius:10px; background:var(--z-edit-toggle-bg); border:1px solid var(--z-line); color:var(--z-ink); white-space:nowrap; }
.action-dock__item:disabled{ color:var(--z-ink-3); cursor:default; opacity:.75; }
.action-dock__item span:first-child{ flex:1; text-align:left; font-size:12.5px; }
.fab-row{ display:flex; gap:10px; }
.fab{ width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; border:0; }
.fab--agentera{ background:var(--z-fab-bg-agentera); box-shadow:var(--z-fab-shadow-agentera); }
.fab--agentera .ring{ width:16px; height:16px; border:2px solid var(--z-ring-line); border-radius:50%; border-top-color:transparent; }
.fab--command{ background:linear-gradient(135deg, var(--z-accent), var(--z-accent-2)); box-shadow:var(--z-fab-shadow-command); color:var(--z-ink-inverse); font-size:26px; font-weight:300; }

@media (max-width:1180px){
  .layout-grid--two, .layout-grid--main, .layout-grid--dispatcher{ grid-template-columns:1fr; }
  .dispatcher-head{ grid-template-columns:1fr; }
  .metric-grid{ grid-template-columns:repeat(2,1fr); }
  .topbar__controls{ display:none; }
}
@media (max-width:760px){
  body{ overflow:auto; }
  .app-shell{ display:block; height:auto; }
  .spine{ height:auto; }
  .spine__nav{ overflow:visible; }
  main.workspace{ height:auto; overflow:visible; }
  .context-panel{ width:100%; }
  .floating-cluster{ right:14px; bottom:14px; }
  .dispatcher-connect .connection-grid, .dispatcher-profile-grid, .dispatcher-review-grid, .dispatcher-candidate-form{ grid-template-columns:1fr; }
  .dispatcher-profile-save{ grid-column:auto; }
  .table-head--dispatcher{ display:none; }
  .table-row--dispatcher{ grid-template-columns:58px minmax(0,1fr); }
  .table-row--dispatcher > .badge{ justify-self:start; }
  .button-row{ flex-wrap:wrap; }
}

/* Dispatcher responsive system: exact desktop references, fluid tablet and mobile projections. */
@media (max-width:1439px){
  :root[data-dispatcher-view]{ --z-spine-w:148px; }
  :root[data-dispatcher-view="inbox"]{ --z-spine-w:160px; }
  :root[data-dispatcher-view] main.workspace{ padding-right:18px; padding-left:18px; }
  .decision-layout{ grid-template-columns:minmax(220px,.82fr) minmax(270px,1fr) minmax(430px,1.9fr); }
  .decision-kpis{ grid-template-columns:repeat(5,minmax(112px,1fr)) minmax(205px,1.25fr); }
  .decision-metric{ padding-right:8px; padding-left:8px; gap:7px; }
  .decision-metric--health svg{ width:120px; }
  .decision-workflow__content{ grid-template-columns:minmax(160px,.82fr) minmax(210px,1fr) repeat(3,minmax(155px,1fr)); gap:20px; }
  .inbox-layout{ grid-template-columns:minmax(0,2.15fr) minmax(340px,1fr); }
  .inbox-list-head,.inbox-row{
    grid-template-columns:minmax(200px,2.25fr) minmax(74px,.78fr) minmax(90px,1fr) minmax(80px,.88fr) minmax(78px,.82fr) minmax(92px,1fr);
  }
  .inbox-header__tools{ gap:7px; }
  .inbox-search{ width:min(260px,24vw); }
}

@media (max-width:1180px){
  :root[data-dispatcher-view]{ --z-spine-w:108px; }
  :root[data-dispatcher-view="inbox"]{ --z-spine-w:108px; }
  :root[data-dispatcher-view] .brand{ height:78px; justify-content:center; padding:16px; }
  :root[data-dispatcher-view] .spine__nav{ padding-right:5px; padding-left:5px; }
  :root[data-dispatcher-view] .nav-item{ min-height:47px; padding:7px 8px; gap:6px; font-size:9px; }
  :root[data-dispatcher-view] .nav-symbol{ width:16px; font-size:16px; }
  :root[data-dispatcher-view] .nav-count{ min-width:17px; height:17px; padding:0 4px; font-size:7px; }
  :root[data-dispatcher-view] .spine__footer{ padding:10px; }
  .decision-header{ grid-template-columns:minmax(300px,1fr) auto; }
  .decision-search{ width:220px; }
  .decision-tool{ padding-right:10px; padding-left:10px; }
  .decision-layout{ grid-template-columns:minmax(205px,.72fr) minmax(245px,.92fr) minmax(0,1.8fr); }
  .decision-kpis{ height:auto; min-height:76px; grid-template-columns:repeat(3,minmax(0,1fr)); padding:8px; }
  .decision-metric:nth-child(3){ border-right:0; }
  .decision-metric--health{ border-right:0; }
  .decision-checks__grid{ grid-template-columns:minmax(210px,1fr) minmax(210px,1fr); gap:14px; }
  .decision-workflow__content{ grid-template-columns:minmax(150px,.8fr) minmax(190px,1fr) repeat(3,minmax(145px,1fr)); gap:14px; }
  .workflow-stage::before{ left:-12px; }
  .inbox-header{ grid-template-columns:minmax(250px,1fr) auto; }
  .inbox-search{ width:210px; }
  .inbox-layout{ grid-template-columns:minmax(0,1.75fr) minmax(315px,1fr); }
  .inbox-list-head,.inbox-row{
    grid-template-columns:minmax(190px,2.3fr) minmax(66px,.8fr) minmax(78px,1fr) minmax(70px,.85fr) minmax(66px,.8fr) minmax(82px,1fr);
  }
  .inbox-cell,.inbox-list-head span{ padding-right:8px; padding-left:8px; }
  .inbox-workflow{ gap:28px; }
  .inbox-workflow article:not(:first-child)::before{ left:-25px; }
}

@media (max-width:980px){
  :root[data-dispatcher-view]{ --z-spine-w:76px; }
  :root[data-dispatcher-view] .brand{ height:68px; padding:14px; }
  :root[data-dispatcher-view] .nav-item{ min-height:46px; justify-content:center; padding:6px; }
  :root[data-dispatcher-view] .nav-item .label,:root[data-dispatcher-view] .nav-count{ display:none; }
  :root[data-dispatcher-view] .nav-symbol{ width:auto; font-size:19px; }
  :root[data-dispatcher-view] .spine__footer{ display:none; }
  :root[data-dispatcher-view] main.workspace{ padding:0 14px 24px; }
  .decision-center,.inbox-page{ min-height:0; padding-top:14px; }
  .decision-header,.inbox-header{
    height:auto; min-height:118px; display:flex; flex-wrap:wrap; align-content:flex-start; gap:10px;
  }
  .decision-header__intro,.inbox-header__title{ flex:1 1 280px; }
  .decision-header__tools,.inbox-header__tools{ order:2; flex:1 1 100%; justify-content:flex-start; }
  .decision-header__selectors,.inbox-header__selectors{ order:3; flex:1 1 100%; overflow-x:auto; padding-bottom:2px; }
  .decision-header__selectors p{ white-space:nowrap; }
  .dispatcher-preview-banner{ position:static; order:4; flex:1 1 100%; max-width:none; }
  .decision-search,.inbox-search{ width:auto; flex:1 1 230px; }
  .decision-layout{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); margin-top:12px; }
  .decision-kpis{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .decision-queue,.decision-order{ height:510px; }
  .decision-checks{ grid-column:1/-1; height:auto; min-height:540px; }
  .decision-workflow{ grid-column:1/-1; height:auto; overflow-x:auto; padding-bottom:4px; }
  .decision-workflow__content{ min-width:900px; height:199px; }
  .decision-footer{ margin-top:12px; }
  .inbox-layout{ grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr); row-gap:18px; }
  .inbox-list-card,.inbox-inspector{ height:650px; }
  .inbox-workflow{ height:auto; min-height:110px; gap:14px; overflow-x:auto; padding-bottom:4px; }
  .inbox-workflow article{ min-width:190px; min-height:100px; }
  .inbox-workflow article:not(:first-child)::before{ display:none; }
}

@media (max-width:760px){
  :root[data-dispatcher-view] body{ display:block; overflow:auto; }
  :root[data-dispatcher-view] .app-shell{ display:block; min-height:100dvh; height:auto; overflow:visible; }
  :root[data-dispatcher-view] .spine{
    position:sticky; z-index:30; top:0; width:100%; height:62px; display:flex; flex-direction:row;
    border-right:0; border-bottom:1px solid var(--z-line);
  }
  :root[data-dispatcher-view] .brand{ width:62px; height:62px; flex:0 0 62px; padding:15px; }
  :root[data-dispatcher-view] .spine__nav{ display:flex; flex:1; overflow-x:auto; overflow-y:hidden; padding:7px 8px; }
  :root[data-dispatcher-view] .nav-group,:root[data-dispatcher-view] .nav-group>div{ display:flex; margin:0; }
  :root[data-dispatcher-view] .nav-item{ width:46px; min-width:46px; min-height:46px; height:46px; margin:0 3px 0 0; border-radius:9px; }
  :root[data-dispatcher-view] .nav-item[data-nav-gap]{ margin-top:0; margin-left:14px; }
  :root[data-dispatcher-view] .workspace-col{ height:auto; min-height:calc(100dvh - 62px); }
  :root[data-dispatcher-view] main.workspace{ height:auto; overflow:visible; padding:0 12px 30px; }
  .decision-header__intro h2{ font-size:18px; }
  .inbox-header__title h2{ font-size:20px; }
  .decision-header__tools,.inbox-header__tools{ display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:7px; }
  .decision-search,.inbox-search{ width:100%; min-width:0; }
  .decision-tool span,.inbox-filter span{ display:none; }
  .layout-config-button{ min-width:36px; width:36px; padding:0; }
  .layout-config-button>span{ display:none; }
  .decision-header__selectors,.inbox-header__selectors{ gap:7px; }
  .decision-header__selectors button,.inbox-header__selectors button{ min-width:max-content; }
  .decision-header__selectors p{ display:none; }
  .decision-layout,.inbox-layout{ grid-template-columns:1fr; row-gap:12px; }
  .decision-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); min-height:0; }
  .decision-metric{ height:58px; border-right:0; border-bottom:1px solid var(--z-line); }
  .decision-metric--health{ min-height:68px; }
  .decision-metric--health svg{ width:100px; }
  .decision-queue,.decision-order{ height:auto; min-height:470px; }
  .decision-checks{ grid-column:auto; min-height:0; height:auto; padding-bottom:14px; }
  .decision-checks__grid{ height:auto; grid-template-columns:1fr; }
  .decision-check-chain{ min-height:370px; }
  .decision-note textarea{ height:70px; }
  .decision-workflow{ grid-column:auto; }
  .decision-workflow__content{ min-width:0; height:auto; display:grid; grid-template-columns:1fr; gap:10px; overflow:visible; }
  .workflow-proposal,.workflow-stage{ min-height:150px; }
  .workflow-stage::before{ display:none; }
  .inbox-list-card,.inbox-inspector,.inbox-workflow{ grid-column:auto; width:100%; }
  .inbox-list-card{ height:auto; min-height:520px; }
  .inbox-list-head{ display:none; }
  .inbox-list-body{ overflow:visible; }
  .inbox-row{
    height:auto; min-height:132px; display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(95px,.7fr); gap:8px; padding:12px;
  }
  .inbox-cell{ padding:0; }
  .inbox-cell--signal{ grid-column:1/-1; }
  .inbox-cell--evidence,.inbox-cell--risk,.inbox-cell--received{ align-self:start; }
  .inbox-inspector{ height:auto; min-height:680px; overflow:visible; padding-bottom:16px; }
  .inbox-inspector__content{ height:auto; }
  .inbox-inspector__actions,.inbox-action-notice{ position:static; margin-top:10px; }
  .inbox-inspector__actions{ grid-template-columns:1fr; }
  .inbox-workflow{ display:grid; grid-template-columns:1fr; overflow:visible; }
  .inbox-workflow article{ min-width:0; min-height:95px; }
  .layout-configurator{ inset:8px; width:auto; }
  .layout-block-controls strong{ display:none; }
}

/* Responsive Dispatcher hardening: preserve usable controls instead of scaling the whole canvas. */
@media (max-width:980px){
  .inbox-layout{ grid-template-columns:1fr; }
  .inbox-list-card,.inbox-inspector,.inbox-workflow{ grid-column:1; width:100%; }
  .ref-route-nodes aside{
    position:static; width:auto; margin-top:10px; padding:11px 13px;
  }
  .ref-route-nodes aside::before{ display:none; }
  .ref-source-head{ display:none; }
  .ref-source-row{ display:flex; flex-wrap:wrap; }
  .ref-source-row>span:nth-child(2){ flex:1 1 210px; }
  .ref-source-row>span:nth-child(n+3){ flex:1 1 120px; }
  .ref-adapter-editor>.ref-kv{ grid-template-columns:1fr; }
  .ref-select{ width:100%; min-width:0; }
  .ref-sla-map{ overflow:auto; }
  .ref-sla-head,.ref-sla-row{ grid-template-columns:180px repeat(7,100px); min-width:880px; }
  .ref-scenario-compare>div{ grid-template-columns:1.3fr repeat(3,1fr); gap:10px; }
}

@media (max-width:760px){
  .ref-how>div{ display:grid; grid-template-columns:1fr; }
  .ref-how b{ display:none; }
  .ref-scenario-compare>div{ grid-template-columns:1fr; }
}

/* Dispatcher screens 09–15: keep the approved desktop compositions route-specific. */
@media (min-width:981px){
  .dispatcher-reference-page{ position:relative; }
  .dispatcher-reference-page .ref-page__header{
    min-height:92px; padding:24px 0 14px;
  }
  .dispatcher-reference-page .ref-page__context{ display:none; }
  .dispatcher-reference-page .ref-page__tools{
    position:absolute; z-index:24; top:18px; right:18px; gap:6px;
  }
  .dispatcher-reference-page .ref-page__reference-tools{ display:flex; align-items:center; gap:8px; }
  .dispatcher-reference-page .ref-page__preview-controls{
    position:absolute; top:42px; right:0; display:flex; align-items:center; gap:6px;
    opacity:.14; transition:opacity .18s ease;
  }
  .dispatcher-reference-page .ref-page__preview-controls:hover,
  .dispatcher-reference-page .ref-page__preview-controls:focus-within{ opacity:1; }
  .dispatcher-reference-page .ref-variant-switch{ height:34px; padding:2px; box-shadow:var(--z-ref-variant-switch-shadow); }
  .dispatcher-reference-page .ref-variant-switch button{ padding:0 9px; font-size:9px; }
  .dispatcher-reference-page .ref-page__tools .layout-config-button{
    width:34px; min-width:34px; height:34px; padding:0;
    box-shadow:var(--z-ref-variant-switch-shadow);
  }
  .dispatcher-reference-page .ref-page__tools .layout-config-button>span{ display:none; }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--search{
    grid-template-columns:minmax(0,1fr) 340px;
    grid-template-areas:"query filters" "results filters";
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--search.ref-layout--variant-2{ grid-template-columns:minmax(0,1fr) 375px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--search>.ref-search-query{ grid-area:query; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--search>.ref-search-results{ grid-area:results; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--search>.ref-filter-panel,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--search>.ref-current-view{ grid-area:filters; align-self:start; }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-1{
    grid-template-columns:minmax(0,1fr) 290px;
    grid-template-areas:"metrics signals" "flow signals";
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-1>.ref-analytics-metrics{ grid-area:metrics; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-1>.ref-flow-overview{ grid-area:flow; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-1>.ref-flow-signals{ grid-area:signals; align-self:start; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-2{
    grid-template-columns:minmax(0,1fr) 348px;
    grid-template-areas:"metrics metrics" "flow signals";
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-2>.ref-analytics-toolbar{ grid-area:metrics; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-2>.ref-sla-map{ grid-area:flow; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--analytics.ref-layout--variant-2>.ref-sla-attention{ grid-area:signals; align-self:start; }
}

@media (min-width:1440px){
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--results[data-reference-variant="1"]){ --z-spine-w:212px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--results[data-reference-variant="2"]){ --z-spine-w:140px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--registry[data-reference-variant="1"]){ --z-spine-w:137px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--registry[data-reference-variant="2"]){ --z-spine-w:116px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--search[data-reference-variant="1"]){ --z-spine-w:159px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--search[data-reference-variant="2"]){ --z-spine-w:0px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--scenarios[data-reference-variant="1"]){ --z-spine-w:190px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--scenarios[data-reference-variant="2"]){ --z-spine-w:64px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="1"]){ --z-spine-w:86px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="2"]){ --z-spine-w:0px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--sources[data-reference-variant="1"]){ --z-spine-w:196px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--sources[data-reference-variant="2"]){ --z-spine-w:235px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="1"]){ --z-spine-w:82px; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="2"]){ --z-spine-w:165px; }

  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--search[data-reference-variant="2"]) .spine,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="2"]) .spine{ display:none; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--search[data-reference-variant="2"]) .dispatcher-reference-page{
    padding-right:102px; padding-left:228px;
  }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--scenarios[data-reference-variant="2"]) .spine__nav,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--scenarios[data-reference-variant="2"]) .spine__footer{ display:none; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--scenarios[data-reference-variant="2"]) .brand{
    width:64px; height:72px; justify-content:center; padding:16px;
  }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="1"]) .brand__title,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="1"]) .brand__title,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="1"]) .nav-item .label,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="1"]) .nav-item .label,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="1"]) .nav-count,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="1"]) .nav-count{ display:none; }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="1"]) .brand,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="1"]) .brand{
    justify-content:center; padding-right:12px; padding-left:12px;
  }
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--checks[data-reference-variant="1"]) .nav-item,
  :root[data-dispatcher-view="reference"]:has(.dispatcher-reference-page--analytics[data-reference-variant="1"]) .nav-item{
    justify-content:center; padding-right:8px; padding-left:8px;
  }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-1{ grid-template-columns:minmax(0,1fr) 480px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-1>.ref-crumb-strip,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-1>.ref-process-strip{ grid-column:1/-1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-1>.ref-results-workspace{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-1>.ref-evaluation{ grid-column:2; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-2{ grid-template-columns:392px minmax(0,1fr) 420px; column-gap:22px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-2>.ref-results-ledger{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-2>.ref-results-detail{ grid-column:2; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-2>.ref-evaluation{ grid-column:3; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results.ref-layout--variant-2>.ref-process-strip{ grid-column:1/-1; }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-1{ grid-template-columns:minmax(0,1fr) 428px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-1>.ref-order-registry{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-1>.ref-object-inspector{ grid-column:2; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-2{ grid-template-columns:560px minmax(0,1fr); }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-2>.ref-registry-list{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-2>.ref-context-map{ grid-column:2; }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios.ref-layout--variant-1{ grid-template-columns:380px minmax(0,1fr) 300px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios.ref-layout--variant-2{ grid-template-columns:294px minmax(0,1fr) 404px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios>.ref-scenario-library,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios>.ref-scenario-about{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios>.ref-scenario-template,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios>.ref-route-canvas{ grid-column:2; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios>.ref-scenario-meta,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--scenarios>.ref-scenario-check{ grid-column:3; }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks.ref-layout--variant-1{ grid-template-columns:342px minmax(0,1fr) 430px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks.ref-layout--variant-2{ grid-template-columns:376px minmax(0,1fr) 387px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>.ref-condition-library,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>.ref-rule-explainer{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>.ref-condition-builder,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>.ref-logic-canvas{ grid-column:2; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>.ref-simulation,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>.ref-rule-test{ grid-column:3; }

  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--sources.ref-layout--variant-1{ grid-template-columns:minmax(0,1fr) 566px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--sources.ref-layout--variant-2{ grid-template-columns:minmax(0,1fr) 403px; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--sources>.ref-source-catalog,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--sources>.ref-adapter-editor{ grid-column:1; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--sources>.ref-source-detail,
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--sources>.ref-adapter-status{ grid-column:2; }
}

:root[data-dispatcher-view] .dispatcher-lifecycle__track{
  display:grid;
  grid-template-columns:repeat(6,minmax(120px,1fr));
  gap:8px;
  margin:12px 0;
  overflow-x:auto;
  padding-bottom:4px;
}
:root[data-dispatcher-view] .dispatcher-lifecycle__track span{
  border:1px solid var(--z-classic-line);
  border-radius:10px;
  color:var(--z-classic-ink-2);
  font-size:12px;
  min-height:42px;
  padding:9px 10px;
}
:root[data-dispatcher-view] .dispatcher-lifecycle__track span.is-current{
  background:var(--z-classic-hover);
  border-color:var(--z-classic-accent);
  color:var(--z-classic-ink);
  font-weight:700;
}
:root[data-dispatcher-view] .dispatcher-lifecycle__form{
  display:grid;
  gap:10px;
  grid-template-columns:minmax(180px,.8fr) minmax(260px,1.4fr) minmax(180px,.8fr);
}
:root[data-dispatcher-view] .dispatcher-lifecycle__form .button-row{ grid-column:1/-1; }
@media (max-width:900px){
  :root[data-dispatcher-view] .dispatcher-lifecycle__form{ grid-template-columns:1fr; }
  :root[data-dispatcher-view] .dispatcher-lifecycle__form .button-row{ grid-column:auto; }
}

/* P1 real context and configuration controls; inherits the approved Dispatcher system. */
:root[data-dispatcher-view] .dispatcher-context-select{
  display:inline-flex;
  min-width:190px;
  min-height:40px;
  align-items:center;
  gap:7px;
  padding:0 10px;
  border:1px solid var(--z-classic-line);
  border-radius:var(--z-r-11);
  background:var(--z-classic-surface);
  color:var(--z-classic-ink-2);
}
:root[data-dispatcher-view] .dispatcher-context-select .dispatcher-icon{
  width:16px;
  height:16px;
  flex:0 0 auto;
  color:var(--z-classic-accent);
}
:root[data-dispatcher-view] .dispatcher-context-select strong{
  white-space:nowrap;
  color:var(--z-classic-ink);
  font-size:11px;
}
:root[data-dispatcher-view] .dispatcher-context-select select{
  min-width:0;
  max-width:250px;
  flex:1;
  border:0;
  outline:0;
  background:transparent;
  color:var(--z-classic-ink);
  font:inherit;
}
:root[data-dispatcher-view] .dispatcher-configuration{
  margin-top:14px;
  padding:16px;
  border:1px solid var(--z-classic-line);
  border-radius:var(--z-r-20);
  background:var(--z-classic-surface-soft);
}
:root[data-dispatcher-view] .dispatcher-configuration__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
:root[data-dispatcher-view] .dispatcher-configuration__head h3{ margin:0 0 4px; }
:root[data-dispatcher-view] .dispatcher-configuration__head p{ margin:0; color:var(--z-classic-ink-2); }
:root[data-dispatcher-view] .dispatcher-configuration__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
:root[data-dispatcher-view] .dispatcher-channel-status-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:8px;
  margin:0 0 12px;
}
:root[data-dispatcher-view] .dispatcher-channel-status{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--z-classic-line);
  border-radius:var(--z-r-16);
  background:var(--z-classic-surface);
}
:root[data-dispatcher-view] .dispatcher-channel-status__badges{
  display:flex;
  align-items:flex-end;
  gap:4px;
  flex-direction:column;
}
:root[data-dispatcher-view] .dispatcher-source-endpoint{
  display:block;
  padding:8px 10px;
  overflow-wrap:anywhere;
  border:1px solid var(--z-classic-line);
  border-radius:var(--z-r-11);
  background:var(--z-classic-surface-soft);
  color:var(--z-classic-ink-2);
  font-size:11px;
}
:root[data-dispatcher-view="reference"] .ref-live-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
:root[data-dispatcher-view="reference"] .ref-live-head h2,
:root[data-dispatcher-view="reference"] .ref-live-head p{ margin:0; }
:root[data-dispatcher-view="reference"] .ref-live-head p{ margin-top:4px; color:var(--z-classic-ink-2); }
:root[data-dispatcher-view="reference"] .ref-live-list{ display:grid; gap:6px; }
:root[data-dispatcher-view="reference"] .ref-live-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  width:100%;
  min-width:0;
  padding:11px 12px;
  border:1px solid var(--z-classic-line);
  border-radius:var(--z-r-11);
  background:var(--z-classic-surface);
  color:var(--z-classic-ink);
  text-align:left;
}
:root[data-dispatcher-view="reference"] button.ref-live-row{ cursor:pointer; }
:root[data-dispatcher-view="reference"] .ref-live-row:hover,
:root[data-dispatcher-view="reference"] .ref-live-row.is-selected{ border-color:var(--z-classic-accent); background:var(--z-classic-accent-soft); }
:root[data-dispatcher-view="reference"] .ref-live-row>span{ min-width:0; }
:root[data-dispatcher-view="reference"] .ref-live-row>span:first-child{ display:grid; gap:3px; }
:root[data-dispatcher-view="reference"] .ref-live-row>span:last-child{ display:flex; align-items:flex-end; gap:4px; flex-direction:column; flex:0 0 auto; }
/* strong рядом с small: обрезалась только подпись, а заголовок строки — нет,
   и длинный заголовок красился поверх правой колонки со статусом и временем.
   Тот же приём, что строкой ниже, просто он не был доведён до заголовка. */
:root[data-dispatcher-view="reference"] .ref-live-row strong,
:root[data-dispatcher-view="reference"] .ref-live-row small{ overflow:hidden; color:var(--z-classic-ink-2); text-overflow:ellipsis; white-space:nowrap; }
:root[data-dispatcher-view="reference"] .ref-live-row strong{ color:var(--z-classic-ink); }
:root[data-dispatcher-view="reference"] .ref-live-row time{ color:var(--z-classic-ink-3); font-size:10px; }
:root[data-dispatcher-view="reference"] .ref-live-empty{ padding:24px; border:1px dashed var(--z-classic-line-2); border-radius:var(--z-r-16); text-align:center; }
:root[data-dispatcher-view="reference"] .ref-live-empty p{ margin:6px 0 0; color:var(--z-classic-ink-2); }
:root[data-dispatcher-view="reference"] .ref-live-search{ display:flex; width:100%; }
:root[data-dispatcher-view="reference"] .ref-live-search input{ min-width:0; flex:1; }
:root[data-dispatcher-view="reference"] .ref-live-search button{ border:0; background:transparent; color:var(--z-classic-accent); font-weight:700; cursor:pointer; }
:root[data-dispatcher-view="reference"] .ref-live-metrics{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
:root[data-dispatcher-view="reference"] .ref-live-metrics article{ padding:14px; border:1px solid var(--z-classic-line); border-radius:var(--z-r-16); background:var(--z-classic-surface); }
:root[data-dispatcher-view="reference"] .ref-live-metrics small{ display:block; color:var(--z-classic-ink-2); }
:root[data-dispatcher-view="reference"] .ref-live-metrics strong{ display:block; margin-top:6px; font-size:24px; }
:root[data-dispatcher-view] .dispatcher-config-card{
  display:grid;
  align-content:start;
  gap:10px;
  padding:14px;
  border:1px solid var(--z-classic-line);
  border-radius:var(--z-r-16);
  background:var(--z-classic-surface);
}
:root[data-dispatcher-view] .dispatcher-config-card textarea{
  min-height:112px;
  resize:vertical;
  font-family:var(--z-font-mono);
  font-size:11px;
}
:root[data-dispatcher-view] .dispatcher-intake-edit{
  display:grid;
  gap:10px;
  margin-top:10px;
}
:root[data-dispatcher-view] .dispatcher-intake-edit textarea{
  resize:vertical;
}

@media (max-width:1180px){
  :root[data-dispatcher-view] .dispatcher-configuration__grid{ grid-template-columns:1fr; }
  :root[data-dispatcher-view] .decision-header__selectors,
  :root[data-dispatcher-view] .inbox-header__selectors{ align-items:stretch; }
  :root[data-dispatcher-view] .dispatcher-context-select{ min-width:0; flex:1 1 220px; }
}

@media (max-width:720px){
  :root[data-dispatcher-view] .dispatcher-context-select{ width:100%; }
  :root[data-dispatcher-view] .dispatcher-context-select select{ max-width:none; }
  :root[data-dispatcher-view] .dispatcher-configuration{ padding:12px; }
  :root[data-dispatcher-view] .dispatcher-configuration__head{ flex-direction:column; }
  :root[data-dispatcher-view] .dispatcher-config-card .button-row{ flex-direction:column; }
  :root[data-dispatcher-view] .dispatcher-config-card .button-row .button{ width:100%; }
  :root[data-dispatcher-view="reference"] .ref-live-head,
  :root[data-dispatcher-view="reference"] .ref-live-row{ align-items:stretch; flex-direction:column; }
  :root[data-dispatcher-view="reference"] .ref-live-row>span:last-child{ align-items:flex-start; }
  :root[data-dispatcher-view="reference"] .ref-live-metrics{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1180px){
  .ref-route-nodes article:has(aside){
    flex-wrap:wrap;
  }
  .ref-route-nodes article:has(aside)>div{
    min-width:0;
    flex:1;
  }
  .ref-route-nodes aside{
    position:static;
    flex:1 0 100%;
    width:auto;
    margin-top:10px;
    padding:11px 13px;
  }
  .ref-route-nodes aside::before{
    display:none;
  }
}

/* Arena Dispatcher design system: three visual environments share one token contract. */
:root[data-dispatcher-view]{
  --z-workspace-accent-rgb:37,99,235;
}
:root[data-theme="dark"][data-dispatcher-view]{
}
:root[data-theme="hybrid"][data-dispatcher-view]{
}
:root[data-workspace-atmosphere="blue"]{ --z-workspace-accent-rgb:37,99,235; }
:root[data-workspace-atmosphere="cyan"]{ --z-workspace-accent-rgb:8,145,178; }
:root[data-workspace-atmosphere="violet"]{ --z-workspace-accent-rgb:124,58,237; }
:root[data-workspace-atmosphere="warm"]{ --z-workspace-accent-rgb:217,119,6; }

:root[data-dispatcher-view] body{ background:var(--z-classic-bg); color:var(--z-classic-ink); }
:root[data-dispatcher-view] .app-shell,
:root[data-dispatcher-view] .workspace-col{ background:var(--z-classic-bg); }
:root[data-dispatcher-view] .dispatcher-reference-page{ background:transparent; }
:root[data-dispatcher-view] .spine{
  background:var(--z-classic-rail);
  border-color:var(--z-classic-line);
  color:var(--z-classic-ink-2);
}
:root[data-dispatcher-view] main.workspace{
  position:relative;
  isolation:isolate;
  background:var(--z-classic-bg);
}
:root[data-dispatcher-view] main.workspace::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:
    var(--z-workspace-mark-bg);
  background-size:auto,44px 44px,44px 44px;
  opacity:.48;
}
:root[data-workspace-motion="living"][data-dispatcher-view] main.workspace::before{
  animation:envDrift 14s ease-in-out infinite alternate;
}
:root[data-workspace-motion="calm"][data-dispatcher-view] main.workspace::before{ animation:none; opacity:.25; }
:root[data-workspace-motion="auto"][data-dispatcher-view] main.workspace::before{ animation:envDrift 24s ease-in-out infinite alternate; opacity:.34; }

:root[data-dispatcher-view] :is(
  .decision-center,.inbox-page,.dispatcher-reference-page,
  .decision-queue,.decision-order,.decision-checks,.decision-workflow,
  .inbox-list-card,.inbox-inspector,.inbox-workflow,
  .ref-card,.ref-order-row,.ref-registry-row,.ref-condition-group button,
  .ref-condition-row,.ref-logic-nodes article,.layout-configurator
){
  color:var(--z-classic-ink);
}
:root[data-dispatcher-view] :is(
  .decision-kpis,.decision-queue,.decision-order,.decision-checks,.decision-workflow,
  .workflow-proposal,.workflow-stage,.decision-goal,.decision-subcard,.decision-files,
  .check-step,.decision-route,.decision-footer,
  .inbox-list-card,.inbox-inspector,.inbox-workflow article,
  .inbox-inspector__source,.inbox-extracted,.inbox-files,.inbox-ai-route,
  .ref-card,.ref-order-row,.ref-registry-row,.ref-condition-group button,
  .ref-condition-row,.ref-logic-nodes article,.layout-configurator
){
  background:var(--z-classic-surface);
  border-color:var(--z-classic-line);
  box-shadow:var(--z-classic-shadow);
}
:root[data-dispatcher-view] :is(
  .decision-header__intro h2,.decision-order__title h3,.decision-card-head strong,
  .decision-goal strong,.decision-subcard h4,.decision-files h4,
  .workflow-proposal strong,.workflow-stage header strong,
  .inbox-header__title h2,.inbox-inspector__head h3,.inbox-inspector__source strong,
  .inbox-extracted h4,.inbox-files h4,.inbox-ai-route strong,.inbox-workflow strong,
  .ref-page__header h2,.ref-card h2,.ref-card h3,.ref-card h4,
  .ref-order-row strong,.ref-registry-row strong,.ref-object-title h3,
  .layout-configurator h3,.layout-configurator h4
){ color:var(--z-classic-ink); }
:root[data-dispatcher-view] :is(
  .decision-header__intro p,.decision-header__selectors p,.decision-card-head span,
  .decision-goal p,.decision-subcard dt,.workflow-proposal,.workflow-stage,
  .inbox-header__title p,.inbox-cell,.inbox-list-head,.inbox-inspector__message,
  .inbox-inspector__source small,.inbox-extracted dt,.inbox-ai-route p,.inbox-workflow small,
  .ref-page__header p,.ref-card p,.ref-card small,.ref-kv dt,.ref-order-row small,.ref-registry-row small,
  .layout-configurator__lead,.layout-configurator small
){ color:var(--z-classic-ink-2); }
:root[data-dispatcher-view] :is(
  .decision-search,.decision-tool,.decision-header__selectors button,
  .inbox-search,.inbox-filter,.inbox-bell,.inbox-header__selectors button,
  .layout-config-button,.layout-config-item,.layout-config-item>button,
  .ref-search,.ref-button,.ref-select
){
  background:var(--z-classic-surface-raised);
  border-color:var(--z-classic-line-2);
  color:var(--z-classic-ink-2);
}
:root[data-dispatcher-view] :is(button,input,select,textarea):focus-visible{
  outline:var(--z-focus-ring-app);
  outline-offset:2px;
}
:root[data-dispatcher-view] .nav-item:hover{ background:var(--z-classic-hover); color:var(--z-classic-ink); }
:root[data-dispatcher-view] .nav-item.is-active{
  background:var(--z-classic-accent-soft);
  color:var(--z-classic-accent);
  box-shadow:inset 3px 0 var(--z-classic-accent);
}
:root[data-dispatcher-view] :is(.decision-queue-item.is-selected,.inbox-row.is-selected,.ref-order-row.is-selected,.ref-registry-row.is-selected){
  background:var(--z-classic-accent-soft);
}
:root[data-dispatcher-view] :is(.decision-queue-item,.inbox-row,.ref-order-row,.ref-registry-row,.ref-condition-group button):hover{
  background:var(--z-classic-hover);
}
:root[data-dispatcher-view] :is(.ref-button--primary,.decision-confirm,.inbox-action--primary){
  border-color:var(--z-classic-accent);
  background:var(--z-classic-accent);
  color:var(--z-ink-inverse);
}
:root[data-dispatcher-view] :is(.ref-status--green,.inbox-status.is-new){ color:var(--z-classic-ok); background:var(--z-classic-ok-soft); }
:root[data-dispatcher-view] :is(.ref-status--amber,.inbox-status.is-review){ color:var(--z-classic-warn); background:var(--z-classic-warn-soft); }
:root[data-dispatcher-view] :is(.ref-status--red,.inbox-status.is-incomplete){ color:var(--z-classic-danger); background:var(--z-classic-danger-soft); }
:root[data-density="compact"][data-dispatcher-view] .decision-queue-item{ height:60px; }
:root[data-density="compact"][data-dispatcher-view] .inbox-row{ height:70px; min-height:70px; }
:root[data-density="compact"][data-dispatcher-view] :is(.ref-order-row,.ref-registry-row,.ref-condition-row){ min-height:48px; }
:root[data-density="compact"][data-dispatcher-view] :is(.ref-card,.decision-subcard,.inbox-extracted,.inbox-files){ --z-pad-card:12px; }

/* Appearance controls live inside the existing workspace configurator. */
.layout-appearance{ padding:14px 18px 5px; border-bottom:1px solid var(--z-classic-line); }
.layout-appearance__heading{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.layout-appearance__heading h4{ margin:3px 0 0; font-size:15px; }
.layout-appearance__heading>span{ padding:5px 8px; border-radius:999px; background:var(--z-classic-accent-soft); color:var(--z-classic-accent); font-size:9px; font-weight:800; }
.layout-theme-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:11px; }
.layout-theme-card{
  min-width:0; min-height:110px; display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  padding:8px; border:1px solid var(--z-classic-line); border-radius:10px; background:var(--z-classic-surface-soft);
  color:var(--z-classic-ink-2); text-align:left;
}
.layout-theme-card.is-active{ border-color:var(--z-classic-accent); box-shadow:0 0 0 2px var(--z-classic-accent-soft); }
.layout-theme-card strong{ color:var(--z-classic-ink); font-size:9px; line-height:1.2; }
.layout-theme-card small{ font-size:8px; line-height:1.25; }
.layout-theme-card__preview{ position:relative; width:100%; height:42px; overflow:hidden; border-radius:6px; background:var(--z-surface-opaque); }
.layout-theme-card__preview i{ position:absolute; inset:0 auto 0 0; width:24%; background:var(--z-theme-sample-light-rail); }
.layout-theme-card__preview b{ position:absolute; top:7px; right:7px; bottom:7px; left:31%; border:1px solid var(--z-line); border-radius:4px; background:var(--z-theme-sample-light-panel); }
.layout-theme-card__preview em{ position:absolute; right:14px; bottom:12px; width:26px; height:6px; border-radius:3px; background:var(--z-theme-sample-light-mark); }
.layout-theme-card--dark .layout-theme-card__preview{ background:var(--z-theme-sample-dark-bg); }
.layout-theme-card--dark .layout-theme-card__preview i{ background:var(--z-theme-sample-dark-rail); }
.layout-theme-card--dark .layout-theme-card__preview b{ border-color:var(--z-theme-sample-dark-line); background:var(--z-theme-sample-dark-panel); }
.layout-theme-card--dark .layout-theme-card__preview em{ background:var(--z-theme-sample-dark-mark); }
.layout-theme-card--hybrid .layout-theme-card__preview{ background:var(--z-theme-sample-hybrid-bg); }
.layout-theme-card--hybrid .layout-theme-card__preview i{ background:var(--z-theme-sample-hybrid-rail); }
.layout-theme-card--hybrid .layout-theme-card__preview b{ border-color:var(--z-theme-sample-hybrid-line); background:var(--z-theme-sample-hybrid-panel); }
.layout-theme-card--hybrid .layout-theme-card__preview em{ background:var(--z-theme-sample-hybrid-mark); }
.layout-appearance__controls{ display:grid; gap:8px; margin-top:12px; }
.layout-appearance__controls fieldset{
  min-width:0; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; border:0;
}
.layout-appearance__controls legend{ width:82px; float:left; padding:8px 8px 0 0; color:var(--z-classic-ink-2); font-size:9px; font-weight:800; }
.layout-appearance__controls button{
  min-width:44px; min-height:44px; padding:0 10px; border:1px solid var(--z-classic-line);
  border-radius:8px; background:var(--z-classic-surface-soft); color:var(--z-classic-ink-2); font-size:9px;
}
.layout-appearance__controls button.is-active{
  border-color:var(--z-classic-accent); background:var(--z-classic-accent-soft); color:var(--z-classic-accent); font-weight:800;
}
.appearance-swatch{ width:44px; min-width:44px!important; padding:0!important; }
.appearance-swatch span{ width:15px; height:15px; display:block; margin:auto; border-radius:50%; background:var(--z-appearance-swatch-mark-bg); }
.appearance-swatch--cyan span{ background:var(--z-appearance-swatch-mark-bg-cyan); }.appearance-swatch--violet span{ background:var(--z-appearance-swatch-mark-bg-violet); }.appearance-swatch--warm span{ background:var(--z-appearance-swatch-mark-bg-warm); }
.layout-configurator__list{ min-height:150px; }
.layout-configurator>footer{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.layout-configurator>footer button{ min-width:0; }

/* Readability floor: reference pixels must never become 6–9px product text. */
@media (max-width:1439px){
  :root[data-dispatcher-view] .app-shell{ width:100vw; height:100dvh; }
  :root[data-dispatcher-view] main.workspace{ padding-right:18px; padding-left:18px; }
  .decision-center,.inbox-page,.dispatcher-reference-page{ font-size:13px; }
  .decision-header__intro h2{ font-size:25px; }
  .decision-header__intro p,.inbox-header__title p{ font-size:12px; }
  .decision-header__selectors button,.decision-tool,.decision-search input,
  .inbox-header__selectors button,.inbox-filter,.inbox-search input{ font-size:11px; }
  .dispatcher-preview-banner{ position:static; max-width:none; font-size:10px; }
  .decision-metric span:not(.decision-metric__icon),.decision-metric small{ font-size:11px; }
  .decision-card-head strong,.decision-queue-item__body strong,.decision-goal strong,
  .decision-subcard h4,.decision-files h4,.check-step strong,
  .workflow-proposal strong,.workflow-stage header strong{ font-size:12px; }
  .decision-card-head span,.decision-queue-item__body small,.decision-queue-item__body em,
  .decision-goal p,.decision-subcard dl,.decision-evidence div,.decision-files button,
  .check-step small,.check-step em,.decision-route small,.decision-route p,
  .workflow-proposal p,.workflow-stage p,.workflow-proposal ul,.workflow-stage ul,
  .workflow-stage dl,.workflow-stage header em{ font-size:11px; }
  .inbox-list-head,.inbox-cell,.inbox-cell--signal strong,.inbox-cell--received strong,
  .inbox-cell--evidence strong,.inbox-cell--risk strong,.inbox-status,
  .inbox-inspector__source strong,.inbox-inspector__message,.inbox-extracted dl,
  .inbox-ai-route strong,.inbox-completeness p,.inbox-action,
  .inbox-workflow strong{ font-size:12px; }
  .inbox-signal-snippet,.inbox-cell--signal small,.inbox-cell--received small,
  .inbox-cell--risk small,.inbox-inspector__source small,.inbox-show-more,
  .inbox-disclosure,.inbox-file-pill,.inbox-ai-route small,.inbox-ai-route p,
  .inbox-workflow em,.inbox-workflow small{ font-size:11px; }
  .inbox-list-head{ min-height:52px; font-size:11px; }
  .inbox-row{ min-height:94px; height:94px; }
  .inbox-cell{ font-size:11.5px; }
  .inbox-cell--signal strong{ font-size:12.5px; }
  .inbox-inspector__head h3{ font-size:20px; }
  .inbox-source-evidence h4,.inbox-extracted h4,.inbox-files h4{ font-size:12px; }
  .ref-page__header{ min-height:0; flex-wrap:wrap; }
  .ref-page__header h2{ font-size:27px; }
  .dispatcher-reference-page .ref-page__tools{
    position:static; width:100%; display:flex; flex-wrap:wrap; justify-content:flex-start;
  }
  .dispatcher-reference-page .ref-page__reference-tools,
  .dispatcher-reference-page .ref-page__preview-controls{
    position:static; display:flex; flex-wrap:wrap; opacity:1;
  }
  .ref-card{ font-size:12px; }
  .ref-card p,.ref-card small,.ref-order-row,.ref-registry-row,.ref-condition-row,
  .ref-test-row,.ref-status,.ref-context-chip{ font-size:12px; }
  .ref-order-row strong,.ref-registry-row strong,.ref-condition-group strong{ font-size:13px; }
}

/* Compact desktop: recompose instead of squeezing the approved 1672px geometry. */
@media (min-width:981px) and (max-width:1279px){
  :root[data-dispatcher-view]{ --z-spine-w:126px; }
  :root[data-dispatcher-view] .nav-item{ min-height:48px; padding:8px 9px; gap:7px; font-size:10px; }
  :root[data-dispatcher-view] .nav-count{ display:none; }
  .decision-header,.inbox-header{
    height:auto; min-height:138px; display:flex; flex-wrap:wrap; align-content:flex-start; gap:10px;
  }
  .decision-header__intro,.inbox-header__title{ flex:1 1 360px; }
  .decision-header__tools,.inbox-header__tools{ flex:1 1 100%; order:2; justify-content:flex-start; }
  .decision-header__selectors,.inbox-header__selectors{ flex:1 1 100%; order:3; overflow-x:auto; }
  .decision-search,.inbox-search{ width:auto; flex:1 1 280px; }
  .decision-layout{ grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr); }
  .decision-kpis,.decision-checks,.decision-workflow{ grid-column:1/-1; }
  .decision-kpis{ grid-template-columns:repeat(3,minmax(0,1fr)); height:auto; min-height:122px; }
  .decision-metric{ min-height:54px; }
  .decision-queue,.decision-order{ height:560px; }
  .decision-checks{ height:auto; min-height:650px; }
  .decision-checks__grid{ height:auto; min-height:520px; }
  .decision-workflow{ height:auto; }
  .decision-workflow__content{ height:auto; grid-template-columns:repeat(2,minmax(260px,1fr)); gap:12px; }
  .workflow-proposal,.workflow-stage{ min-height:180px; }
  .workflow-stage::before{ display:none; }
  .inbox-layout{ grid-template-columns:1fr; row-gap:16px; }
  .inbox-list-card,.inbox-inspector,.inbox-workflow{ grid-column:1; width:100%; }
  .inbox-list-card{ min-height:680px; }
  .inbox-inspector{ min-height:720px; }
  .inbox-workflow{ min-height:130px; }
  .dispatcher-reference-page{ padding-right:20px; padding-left:20px; }
  .dispatcher-reference-page .ref-layout{
    grid-template-columns:1fr;
    grid-template-areas:none;
  }
  .dispatcher-reference-page .ref-layout>*{
    grid-column:1!important;
    grid-area:auto!important;
    width:100%;
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-1{
    grid-template-columns:minmax(0,1fr) minmax(350px,34%);
    gap:14px;
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-1>.ref-order-registry{ grid-column:1!important; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--registry.ref-layout--variant-1>.ref-object-inspector{ grid-column:2!important; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks{
    grid-template-columns:minmax(250px,.8fr) minmax(0,1.65fr) minmax(330px,1fr);
    gap:14px;
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>:nth-child(1){ grid-column:1!important; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>:nth-child(2){ grid-column:2!important; }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--checks>:nth-child(3){ grid-column:3!important; }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-layout--scenarios,.ref-layout--sources,.ref-layout--search,.ref-layout--analytics){
    grid-template-columns:minmax(240px,.8fr) minmax(0,1.7fr) minmax(250px,.9fr);
    gap:14px;
  }
  .dispatcher-reference-page:not(.has-custom-layout) .ref-layout--results{
    grid-template-columns:minmax(260px,.85fr) minmax(0,1.5fr) minmax(280px,.9fr);
    gap:14px;
  }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-crumb-strip,.ref-process-strip,.ref-analytics-toolbar){ grid-column:1/-1!important; }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-results-ledger,.ref-scenario-library,.ref-scenario-about,.ref-condition-library,.ref-rule-explainer){ grid-column:1!important; }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-results-workspace,.ref-results-detail,.ref-scenario-template,.ref-route-canvas,.ref-condition-builder,.ref-logic-canvas){ grid-column:2!important; }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-evaluation,.ref-scenario-meta,.ref-scenario-check,.ref-simulation,.ref-rule-test){ grid-column:3!important; }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-source-catalog,.ref-adapter-editor,.ref-search-query,.ref-search-results,.ref-analytics-metrics,.ref-flow-overview,.ref-sla-map){ grid-column:1/3!important; }
  .dispatcher-reference-page:not(.has-custom-layout) :is(.ref-source-detail,.ref-adapter-status,.ref-filter-panel,.ref-current-view,.ref-flow-signals,.ref-sla-attention){ grid-column:3!important; }
  .ref-card,.ref-order-registry,.ref-registry-list,.ref-condition-builder{ min-width:0; }
  .ref-order-registry,.ref-registry-list{ overflow-x:auto; }
  .ref-order-row{ min-width:1000px; }
  .ref-registry-row{ min-width:780px; }
  .ref-rule-explainer,.ref-logic-canvas,.ref-rule-test,
  .ref-condition-library,.ref-condition-builder,.ref-simulation{ min-height:0; }
  .ref-condition-row{
    grid-template-columns:22px minmax(0,1fr) auto 16px;
    min-height:64px;
  }
  .ref-condition-row>small{ grid-column:2/4; }
  .ref-simulation .ref-kv{ grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr); }
  .ref-simulation .ref-kv dd{ overflow-wrap:anywhere; }
  .ref-side-box p{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; }
}

@media (max-width:980px){
  .dispatcher-reference-page .ref-layout{
    grid-template-columns:1fr;
    grid-template-areas:none;
  }
  .dispatcher-reference-page .ref-layout>*{
    grid-column:1!important;
    grid-area:auto!important;
    width:100%;
  }
  .ref-rule-explainer,.ref-logic-canvas,.ref-rule-test,
  .ref-condition-library,.ref-condition-builder,.ref-simulation{ min-height:0; }
  .ref-order-registry,.ref-registry-list{ overflow-x:auto; }
  .ref-side-box p{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
}

@media (max-width:1439px){
  :root[data-density="compact"][data-dispatcher-view] .decision-queue-item{ height:62px; }
  :root[data-density="compact"][data-dispatcher-view] .inbox-row{ height:78px; min-height:78px; }
  :root[data-density="compact"][data-dispatcher-view] :is(.decision-layout,.inbox-layout,.ref-layout){ gap:9px; }
  :root[data-density="compact"][data-dispatcher-view] :is(.ref-order-row,.ref-registry-row,.ref-condition-row){ padding-top:7px; padding-bottom:7px; }
}

@media (max-width:1439px){
  .inbox-list-card>footer,.inbox-list-card>footer button,
  .inbox-muted,.inbox-completeness strong,.inbox-action-notice,
  .decision-queue-item time,.decision-queue footer,.decision-queue footer button,
  .decision-order__title span,.decision-order__title small,.decision-subcard details,
  .decision-route__title strong,.decision-route__title span,.decision-route footer,
  .decision-note strong,.decision-note textarea,.workflow-proposal h5,
  .decision-confirm,.decision-footer,
  .dispatcher-reference-page .ref-variant-switch button,.ref-route-mini span,
  .ref-context-flow a,.ref-context-footer span,.ref-scenario-library time,
  .ref-result-section h3 b,.ref-how span,.ref-route-nodes aside,
  .ref-flow-line article>p,.ref-flow-signals article p,.ref-sla-head,.ref-sla-legend{
    font-size:11px;
  }
  .layout-theme-card strong,.layout-theme-card small,
  .layout-appearance__controls legend,.layout-appearance__controls button,
  .layout-config-button>span,.layout-block-controls strong,.layout-block-controls button,
  .layout-configurator>header small,.layout-config-item label,.layout-configurator>footer p,
  .layout-canvas-toolbar>span,.layout-canvas-toolbar button,
  :root[data-dispatcher-view] .nav-item{
    font-size:11px;
  }
  .inbox-inspector__source em,.decision-note>span{ font-size:10px; }
}

@media (max-width:760px){
  .layout-theme-grid{ grid-template-columns:1fr; }
  .layout-theme-card{ min-height:88px; display:grid; grid-template-columns:88px 1fr; align-items:center; }
  .layout-theme-card__preview{ grid-row:1/3; }
  .layout-appearance__controls legend{ width:100%; float:none; }
  .layout-configurator>footer{ grid-template-columns:1fr; }
  .layout-configurator>footer p{ grid-column:1; }
  .inbox-row,:root[data-density="compact"][data-dispatcher-view] .inbox-row{ min-height:132px; height:auto; }
  .ref-order-row,.ref-registry-row{
    min-width:0; height:auto; display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px;
  }
  .ref-order-row>*:not(:first-child),.ref-registry-row>*:not(:first-child){ flex:1 1 140px; }
}

@media (prefers-reduced-motion:reduce){
  :root[data-dispatcher-view] main.workspace::before{ animation:none!important; }
}
/* Stage-02B: final adaptive product composition. */
:root[data-dispatcher-view]{
}
:root[data-dispatcher-view] body{ font-size:14px; }
:root[data-dispatcher-view] .spine{ min-width:0; }
:root[data-dispatcher-view] main.workspace{
  min-width:0;
  overflow-x:hidden;
  overscroll-behavior:contain;
}
:root[data-dispatcher-view] :is(.decision-center,.inbox-page,.dispatcher-reference-page){
  min-width:0;
  min-height:100%;
  font-size:13px;
}
:root[data-dispatcher-view] :is(
  .decision-tool,.decision-search,.decision-header__selectors button,
  .inbox-filter,.inbox-search,.inbox-header__selectors button,
  .layout-config-button,.inbox-action,.ref-button,.ref-select
){ min-height:var(--z-control); }
:root[data-dispatcher-view] :is(
  .decision-header__intro p,.inbox-header__title p,.decision-header__selectors p,
  .decision-card-head span,.decision-queue-item__body small,.decision-queue-item__body em,
  .decision-goal p,.decision-subcard dl,.decision-subcard details,.decision-evidence div,
  .decision-files button,.check-step small,.check-step em,.decision-route small,.decision-route p,
  .decision-route footer,.decision-note textarea,.workflow-proposal p,.workflow-proposal h5,
  .workflow-proposal ul,.workflow-stage p,.workflow-stage ul,.workflow-stage dl,.workflow-stage header em,
  .inbox-list-head,.inbox-cell,.inbox-signal-snippet,.inbox-cell--signal small,
  .inbox-cell--received small,.inbox-cell--risk small,.inbox-inspector__source small,
  .inbox-inspector__message,.inbox-show-more,.inbox-disclosure,.inbox-extracted dl,
  .inbox-file-pill,.inbox-ai-route small,.inbox-ai-route p,.inbox-completeness p,
  .inbox-action-notice,.inbox-workflow em,.inbox-workflow small,
  .ref-card p,.ref-card small,.ref-status,.ref-context-chip
){
  font-size:var(--z-fs-13);
  line-height:var(--z-lh-text);
}
:root[data-dispatcher-view] :is(
  .decision-card-head strong,.decision-queue-item__body strong,.decision-goal strong,
  .decision-subcard h4,.decision-files h4,.check-step strong,.decision-route__title strong,
  .workflow-proposal strong,.workflow-stage header strong,
  .inbox-cell--signal strong,.inbox-cell--received strong,.inbox-cell--evidence strong,
  .inbox-cell--risk strong,.inbox-inspector__source strong,.inbox-source-evidence h4,
  .inbox-extracted h4,.inbox-files h4,.inbox-ai-route strong,.inbox-completeness strong,
  .inbox-workflow strong
){ font-size:var(--z-fs-body); line-height:var(--z-lh-card-title); }
.inbox-cell--risk.is-unknown strong{ color:var(--z-classic-ink-3); }
.ref-api-gap{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:28px;
  border-style:dashed;
  text-align:left;
}
.ref-api-gap__icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:var(--z-classic-accent-soft);
  color:var(--z-classic-accent);
}
.ref-api-gap__icon .dispatcher-icon{ width:21px; height:21px; }
.ref-api-gap h3{ margin:0 0 6px; }
.ref-api-gap p{ max-width:520px; margin:0; }
.decision-queue-list,.inbox-list-body{ overflow:auto; scrollbar-gutter:stable; }
.decision-order,.decision-checks,.inbox-inspector{ overscroll-behavior:contain; }
.decision-check-chain{ grid-template-rows:repeat(4,minmax(0,1fr)); }
.decision-check-chain.has-automatic{ grid-template-rows:repeat(5,minmax(0,1fr)); }
.decision-checks__grid{ min-height:0; }
.check-step{ min-height:0; padding:6px 9px; column-gap:7px; }
.check-step div{ gap:2px; }
.check-step strong{ font-size:var(--z-fs-body); line-height:var(--z-lh-title); }
.check-step small{ font-size:var(--z-fs-13); line-height:var(--z-lh-text); }
.inbox-inspector__head h3{ white-space:normal; overflow-wrap:anywhere; }
.inbox-inspector__actions{
  top:auto;
  bottom:38px;
}
.inbox-action-notice{
  top:auto;
  bottom:12px;
}
.inbox-inspector__content{ overflow:auto; scrollbar-gutter:stable; }
.inbox-inspector__actions,.inbox-action-notice{ background:var(--z-classic-surface); }
.inbox-list-card>footer,.decision-queue footer{ font-size:11px; }
.layout-block-controls{ min-height:36px; }
.layout-block-controls button{ min-height:28px; }

@media (max-width:1023px){
  :root[data-dispatcher-view]{ --z-spine-w:64px; }
  :root[data-dispatcher-view] .brand{ height:72px; justify-content:center; padding:14px 8px; }
  :root[data-dispatcher-view] .brand__mark{ transform:scale(.9); }
  :root[data-dispatcher-view] .spine__nav{ padding:8px 6px; }
  :root[data-dispatcher-view] .nav-item{ min-height:46px; justify-content:center; padding:7px; }
  :root[data-dispatcher-view] .nav-item .label,
  :root[data-dispatcher-view] .nav-count,
  :root[data-dispatcher-view] .spine__footer{ display:none; }
  :root[data-dispatcher-view] main.workspace{ padding:14px; }
  .decision-header,.inbox-header{
    min-height:0;
    height:auto;
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-bottom:16px;
  }
  .decision-header__tools,.inbox-header__tools,
  .decision-header__selectors,.inbox-header__selectors{ width:100%; flex-wrap:wrap; justify-content:flex-start; }
  .decision-header__actions{ width:100%; flex-wrap:wrap; }
  .dispatcher-standardization-editor{ grid-template-columns:1fr; }
  .decision-search,.inbox-search{ width:100%; flex:1 1 100%; }
  .decision-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); min-height:0; height:auto; padding:8px; }
  .decision-metric{ min-height:68px; border-bottom:1px solid var(--z-classic-line); }
  .decision-layout,.inbox-layout{ display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
  .decision-layout>*,
  .inbox-layout>*{ grid-column:1!important; width:100%; }
  .decision-queue{ height:440px; }
  .decision-order,.decision-checks,.inbox-list-card,.inbox-inspector{ height:auto; min-height:540px; }
  .decision-checks__grid{ height:auto; grid-template-columns:1fr; }
  .decision-check-chain{ grid-template-rows:none; grid-auto-rows:minmax(76px,auto); }
  .decision-route{ min-height:0; }
  .decision-workflow{ height:auto; }
  .decision-workflow__content,.inbox-workflow{ grid-template-columns:1fr; gap:10px; }
  .workflow-stage::before,.inbox-workflow article:not(:first-child)::before{ display:none; }
  .workflow-proposal,.workflow-stage,.inbox-workflow article{ min-height:120px; }
  .inbox-list-head{ display:none; }
  .inbox-row{
    min-height:152px;
    height:auto;
    grid-template-columns:minmax(0,1fr) minmax(110px,.45fr);
    gap:8px;
    padding:14px;
  }
  .inbox-cell{ padding:0; }
  .inbox-cell--signal{ grid-column:1/-1; }
  .inbox-inspector{ padding-bottom:18px; }
  .inbox-inspector__content{ overflow:visible; }
  .inbox-inspector__actions,.inbox-action-notice{ position:static; margin-top:10px; }
  .ref-layout{ grid-template-columns:1fr!important; }
  .ref-layout>*{ grid-column:1!important; grid-area:auto!important; min-width:0; }
  .ref-card{ overflow-wrap:anywhere; }
  .ref-order-registry,.ref-registry-list,.ref-source-catalog,.ref-sla-map{ overflow:auto; }
}

@media (max-width:639px){
  :root[data-dispatcher-view]{ --z-spine-w:0px; }
  :root[data-dispatcher-view] .app-shell{ width:100%; max-width:100%; }
  :root[data-dispatcher-view] main.workspace{ padding:10px; }
  .decision-header__intro h2,.inbox-header__title h2,.ref-page__header h2{ font-size:22px; }
  .decision-header__tools>button,.inbox-header__tools>button{ flex:1 1 auto; }
  .decision-header__actions>button{ flex:1 1 100%; }
  .decision-header__selectors button,.inbox-header__selectors button{ width:100%; justify-content:flex-start; }
  .decision-kpis{ grid-template-columns:1fr; }
  .decision-metric{ border-right:0; }
  .decision-checks{ padding-right:10px; padding-left:10px; }
  .decision-checks__grid{ gap:12px; }
  .check-step{ grid-template-columns:34px minmax(0,1fr); }
  .check-step>em{ grid-column:2; }
  .inbox-row{ grid-template-columns:1fr; }
  .inbox-cell--signal{ grid-column:1; }
  .inbox-inspector__source{ grid-template-columns:32px minmax(0,1fr); }
  .inbox-inspector__source em{ grid-column:2; justify-self:start; }
  .inbox-inspector__actions{ grid-template-columns:1fr; }
  .layout-configurator{ inset:6px; width:auto; }
  .ref-api-gap{ align-items:flex-start; flex-direction:column; }
}

/* Compact screens keep a readability floor; approved desktop compositions keep their component scale. */
@media (max-width:1439px){
  :root[data-dispatcher-view] :is(.decision-center,.inbox-page,.dispatcher-reference-page){
    font-size:13px;
    line-height:1.4;
  }
  :root[data-dispatcher-view] :is(.decision-center,.inbox-page,.dispatcher-reference-page,.layout-configurator)
    :is(span,small,dt,dd,time,label,em){
    font-size:11px;
    line-height:1.35;
  }
  :root[data-dispatcher-view] :is(.decision-center,.inbox-page,.dispatcher-reference-page,.layout-configurator)
    :is(p,li){
    font-size:12px;
    line-height:1.45;
  }
  :root[data-dispatcher-view] :is(.decision-center,.inbox-page,.dispatcher-reference-page,.layout-configurator) button{
    min-height:40px;
    font-size:11px;
  }
  :root[data-dispatcher-view] :is(.layout-config-item,.layout-block-controls)>button,
  :root[data-dispatcher-view] .layout-configurator>header button{
    min-width:40px;
    min-height:40px;
    height:40px;
  }
}
:root[data-dispatcher-preview] :is(.decision-header__tools,.inbox-header__tools) .layout-config-button,
:root[data-dispatcher-preview] .decision-header__selectors .dispatcher-context-select:nth-of-type(3),
:root[data-dispatcher-preview] .dispatcher-preview-banner{ display:none; }
:root[data-dispatcher-view] .layout-config-item.is-locked{
  border-color:var(--z-classic-line-2);
  background:var(--z-classic-surface-soft);
}
:root[data-dispatcher-view] .layout-config-item.is-locked>span::after{
  content:" · обязательный блок";
  color:var(--z-classic-ink-3);
  font-size:11px;
}

/* Every visual environment uses the same surface contract; no light-only islands. */
:root[data-dispatcher-view] :is(
  .inbox-toolbar,.inbox-list-card,.inbox-row,.inbox-inspector,.inbox-inspector__source,
  .inbox-extracted,.inbox-files,.inbox-ai-route,.inbox-action,
  .decision-kpis,.decision-queue,.decision-queue-item,.decision-order,.decision-checks,
  .check-step,.workflow-proposal,.workflow-stage,.decision-footer,.dispatcher-backend-tools,
  .ref-card,.ref-order-row,.ref-registry-row,.ref-search-row,.ref-compact-result,
  .ref-scenario-library>button:not(.ref-button),.ref-side-box,.ref-logic-nodes article,
  .ref-condition-group button,.ref-condition-row,.ref-source-row,.ref-analytics-metrics article,
  .ref-flow-line article>div,.ref-saved-views button,.ref-filter-panel>label>span,
  .layout-configurator,.layout-config-item,.layout-config-item>button,.layout-configurator>footer button
){
  border-color:var(--z-classic-line);
  background:var(--z-classic-surface);
  color:var(--z-classic-ink);
}
:root[data-dispatcher-view] :is(
  .inbox-row.is-selected,.decision-queue-item.is-selected,.ref-order-row.is-selected,
  .ref-registry-row.is-selected,.ref-search-row.is-selected,.ref-compact-result.is-selected,
  .ref-source-row.is-selected,.ref-saved-views button.is-selected
){
  border-color:var(--z-classic-accent);
  background:var(--z-classic-hover);
}
:root[data-dispatcher-view] :is(
  .inbox-row,.decision-queue-item,.ref-order-row,.ref-registry-row,.ref-search-row,
  .ref-compact-result,.ref-source-row,.ref-condition-row,.ref-condition-group button
) :is(small,time,em){
  color:var(--z-classic-ink-2);
}
:root[data-theme="dark"][data-dispatcher-view] :is(.layout-theme-card,.appearance-swatch),
:root[data-theme="hybrid"][data-dispatcher-view] :is(.layout-theme-card,.appearance-swatch){
  border-color:var(--z-classic-line);
  background:var(--z-classic-surface-raised);
  color:var(--z-classic-ink);
}

@media (min-width:1440px){
  .decision-workflow{
    height:199px;
    min-height:199px;
    overflow:hidden;
  }
  .decision-workflow__content{ height:199px; }
  .workflow-proposal,.workflow-stage{
    height:199px;
    min-height:0;
    overflow:auto;
    padding:11px 10px;
  }
  .workflow-proposal p,.workflow-stage p{ margin:5px 0; font-size:11px; line-height:1.35; }
}

/* ══════════════════════════════════════════════════════════════════════════
   TASK-ZONTIUM-DISPATCHER-UI-POLISH-001 — вёрстка диспетчера, аудит 09.08.2026

   Одно правило под всем разделом: значение никогда не покидает свою колонку.
   Оно обрезается, а не наезжает на соседа; полное — в подсказке по наведению.
   Проверяется scripts/verify-dispatcher-layout-integrity.mjs, не на глаз.
   ══════════════════════════════════════════════════════════════════════════ */

/* Находки 1–3. Треки уже объявлены как minmax(0,…), поэтому колонка ужаться
   может — а вот элемент внутри неё по умолчанию держит min-width:auto и ниже
   своего содержимого не опускается. Именно поэтому cuid печатался поверх
   require_agreement, а значение required_people_count оказывалось внутри
   названия поля. Разрешаем ячейке ужиматься и обрезаем текст. */
.table-head > *,
.table-row > * { min-width:0; }

/* Обрезка — не для всего подряд. Первая правка поставила многоточие на каждую
   ячейку разом: наложения ушли, но вместе с ними ушёл и текст — резались дата,
   счётчик, название поля, заголовок колонки, то есть всё то, чему места
   хватало. Экран из одних многоточий читается не лучше, чем экран из
   наложений.

   Режется только то, что бывает длинным по существу: заголовок записи и
   свободный текст. Всё остальное получает свою ширину (см. liveGridTemplate)
   и переносится, а не обрезается. */
.table-row strong,
.table-row small,
.cell-clip {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Короткое значение переносится на вторую строку, но никогда не теряется. */
.table-head > *,
.table-row > * { overflow-wrap:anywhere; }
.table-head > * { white-space:normal; line-height:1.25; }
.table-row .cell{ min-width:0; }

/* ── Телефон: таблица перестаёт быть таблицей ─────────────────────────────
   Пять колонок на 420 px нечитаемы в любом исполнении, а подсказки по
   наведению на телефоне не существует — значит обрезанное там значение
   потеряно совсем, взять его негде. Строка раскладывается в пары
   «подпись — значение»; подпись берётся из дескриптора, который эту колонку
   и назвал. Оболочка уже делает так со своими другими таблицами
   (.table-row--dispatcher, .inbox-row) — приём не новый.

   !important: ширину колонок строке проставляет сама оболочка инлайном,
   из дескриптора; перебить её иначе нельзя. */
@media (max-width:760px){
  .table-head{ display:none; }
  .table-row{
    grid-template-columns:minmax(0,1fr) !important;
    gap:4px; padding:12px 14px; align-items:start;
  }
  .table-row .cell{
    display:grid; grid-template-columns:minmax(92px,36%) minmax(0,1fr);
    gap:10px; align-items:baseline;
  }
  .table-row .cell::before{
    content:attr(data-label);
    font-family:var(--z-font-mono); font-size:9px; letter-spacing:.06em;
    text-transform:uppercase; color:var(--z-ink-3); line-height:1.5;
  }
  /* На телефоне место есть по вертикали, значит резать незачем. */
  .table-row strong,
  .table-row small{ white-space:normal; overflow:visible; text-overflow:clip; }
  .table-row .badge{ white-space:normal; }
}

/* Ячейка со значком остаётся строкой из значка и бейджа: обрезается бейдж,
   а не раскладка. Полный текст бейдж и так несёт в title. */
.table-row > * > .dot { flex:0 0 auto; }
/* Бейдж не обрезается: «Ну…» вместо «Нужна проверка владельца» — это не
   информация. Ему даётся его ширина в liveGridTemplate, а на узком экране он
   переносится вместе со строкой. */
.table-row .badge { white-space:nowrap; }

/* Находка 4. Бейдж и метаданные строки жили в неразрывном ряду и наезжали
   друг на друга. Ряд переносится, элементы не сжимаются до нечитаемости. */
.row{ flex-wrap:wrap; }
.row > .row-meta{ flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }

/* Находка 5. Плавающие кнопки прибиты к правому нижнему углу окна. Они не
   обязаны исчезать, но не должны накрывать управляющий элемент и не должны
   упираться в последнюю строку содержимого — рабочая область резервирует их
   след. Ширина кластера: 52px кнопка + 22px отступ. */
main.workspace{ padding-bottom:calc(var(--z-pad-main) + 82px); }

/* Находки 6–7. Ряд «подпись — значение» на узком экране переносится, а не
   уезжает за правый край. Значение там уходило со страницы совсем: страница
   горизонтально не прокручивается, и прокручивать было нечего. */
.field-row{ flex-wrap:wrap; }
.field-row > *{ min-width:0; overflow-wrap:anywhere; }
.field-row > *:last-child{ text-align:right; }

/* Широкий блок прокручивается ВНУТРИ себя, а не тащит за собой страницу. */
.table-scroll{ overflow-x:auto; overscroll-behavior-x:contain; }

/* Находка 18. Заголовок эталона ломался на три строки и наезжал на описание
   под ним. Он всегда одна строка с многоточием. */
.table-row > * > strong{ display:block; }

/* Находка 19. Раскладка тянется по ширине окна вместо того, чтобы держать
   список в узкой колонке слева при двух третях пустоты справа. Панель
   происхождения при этом перестаёт быть приставной полоской: в ней четыре
   колонки, и в прежней доле названия полей не помещались даже по-русски. */
.layout-grid--main{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }

/* Решение владельца 09.08 по находке 19: список во всю ширину, происхождение
   под ним. Рядом эти таблицы делили ширину так, что резалась даже дата, а
   треть экрана под ними пустовала. */
.layout-grid--stack{ grid-template-columns:minmax(0,1fr); }

/* Сообщение о состоянии подключения висело абсолютом на 196px сверху и
   накрывало плитку показателей вместе с её числом. В разметке оно и так стоит
   между шапкой и раскладкой — там ему и место, в общем потоке. */
.decision-alert{ position:static; margin:0 0 11px; max-width:none; }

/* ── Узкий экран ───────────────────────────────────────────────────────────
   Находка 8: боковое меню занимало весь первый экран телефона, содержимое
   начиналось ниже сгиба. Меню сворачивается и открывается поверх содержимого
   тем же приёмом, что и остальные панели оболочки. */
.spine-toggle{ display:none; }

@media (max-width:760px){
  /* На телефоне прокручивается документ, а не прибитая к высоте окна внутренняя
     область. auto оставляет низ формы достижимым при изменении высоты
     адресной строки; 100dvh задаёт только минимальную видимую высоту. */
  html,body{ height:auto; min-height:100%; }
  body{ overflow-x:hidden; overflow-y:auto; }
  .app-shell{
    height:auto; min-height:100dvh;
    overflow-x:hidden; overflow-y:visible;
  }

  .spine-toggle{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    min-height:38px; padding:0 12px; border-radius:10px;
    border:1px solid var(--z-line-2); background:var(--z-nested); color:var(--z-ink);
    font-size:13px; font-weight:600;
  }

  .app-shell{ display:flex; }
  .spine{
    position:fixed; z-index:47; top:0; left:0; bottom:0;
    width:min(280px,86vw); height:100%;
    transform:translateX(-102%); transition:transform .28s cubic-bezier(.16,1,.3,1);
    box-shadow:var(--z-shadow-far);
  }
  :root[data-spine-open="1"] .spine{ transform:translateX(0); }
  .spine-backdrop{
    position:fixed; inset:0; z-index:46; display:none;
    background:var(--z-spine-backdrop-bg); backdrop-filter:blur(2px);
  }
  :root[data-spine-open="1"] .spine-backdrop{ display:block; }

  .workspace-col{ width:100%; min-width:0; height:auto; }
  main.workspace{ flex:none; overflow-y:visible; padding-bottom:calc(var(--z-pad-main) + 74px); }

  /* Плотные сетки эталонных экранов на телефоне — в одну колонку. */
  .layout-grid--two, .layout-grid--main, .layout-grid--dispatcher{ grid-template-columns:minmax(0,1fr); }
}

/* Меню, свёрнутое на телефоне, на широком экране всегда развёрнуто:
   состояние узкого экрана не должно переезжать вместе с окном. */
@media (min-width:761px){
  .spine{ transform:none; }
  .spine-backdrop{ display:none; }
}

/* Находка 11. Идентификатор на экране — короткая форма «начало…конец».
   Полная лежит в подсказке, нажатие копирует её целиком. Выглядит как
   метаданные строки, а не как кнопка: это по-прежнему значение, просто
   забираемое одним действием. */
.id-copy{
  font-size:11px; color:var(--z-ink-3); background:none;
  border:1px solid var(--z-line); border-radius:8px; padding:3px 9px;
  white-space:nowrap; cursor:copy;
}
.id-copy:hover{ color:var(--z-ink); border-color:var(--z-line-2); }
.id-copy.is-copied{ color:var(--z-level-result); border-color:var(--z-level-result); }

/* Названия разделов обрезались до «Центр ре…» на средних ширинах, где меню было
   узким. Теперь оно везде 264px, и переносить нечего — правило снято: остались
   только выравнивание и перенос как страховка, без min-height. Именно эта
   высота и оставляла последнюю разницу между разделами: 40px против 36px. */
@media (min-width:981px) and (max-width:1439px){
  .nav-item{ align-items:center; }
  .nav-item .label{ white-space:normal; overflow:visible; line-height:1.2; }
}

/* ══════════════════════════════════════════════════════════════════════════
   ЕДИНАЯ ОБОЛОЧКА — решение владельца 09.08.2026

   Оболочка перерисовывала саму себя при переходе между разделами. Экраны
   делились на три семьи по атрибуту data-dispatcher-view, и вместе с
   содержимым менялась ВСЯ рама: пропадала верхняя панель с хлебными крошками,
   темой, плотностью и штампом сборки; знак и название продукта подменялись
   другими; боковое меню сжималось со 264 до 160 пикселей, из-за чего названия
   разделов ломались на две строки; исчезал «Поиск и команды»; менялся фон.
   Владелец описал это как «при переключении вкладок всё пляшет» и указал
   образцом экран «Эталонные записи» — единственный, у которого атрибута нет,
   то есть базовую раму оболочки.

   Здесь рама возвращается всем разделам. Атрибут остаётся и продолжает
   управлять ВНУТРЕННЕЙ раскладкой экранов — он для этого и заводился; отменена
   только его власть над оболочкой. Селекторы по атрибуту равны по весу, поэтому
   блок стоит последним и перекрывает их, не трогая шестьдесят с лишним правил
   поимённо. Убрать единый вид — значит удалить этот блок.
   ══════════════════════════════════════════════════════════════════════════ */

:root[data-dispatcher-view]{ --z-spine-w:264px; --z-pad-main:24px; }

/* Окно, а не прибитый холст: рама у всех разделов одна и во всю ширину. */
:root[data-dispatcher-view] .app-shell{
  width:100%; height:100dvh; background:none; box-shadow:none;
}
:root[data-dispatcher-view] .scenery{ display:block; }

/* Боковое меню — базовое: тот же фон, та же ширина, тот же поиск. */
:root[data-dispatcher-view] .spine{
  background:var(--z-rail-bg);
  border-right:1px solid var(--z-line);
  backdrop-filter:blur(18px);
  color:inherit;
}
:root[data-theme="light"] :root[data-dispatcher-view] .spine,
:root[data-dispatcher-view][data-theme="light"] .spine{
  background:linear-gradient(180deg, var(--z-surface-opaque), var(--z-level-result-soft));
}
:root[data-dispatcher-view] .spine__search{ display:flex; }
:root[data-dispatcher-view] .spine__nav{ padding:6px 10px 16px; overflow-y:auto; }
:root[data-dispatcher-view] .spine__footer{
  padding:12px 14px; border-top:1px solid var(--z-line);
}
:root[data-dispatcher-view] .spine__footer .mini-status{ display:flex; font-size:11px; }
:root[data-dispatcher-view] .spine__footer .mini-status:last-child{ display:flex; }
:root[data-dispatcher-view] .spine__footer .pulse{
  width:8px; height:8px; display:block; background:var(--z-level-result);
  box-shadow:0 0 10px var(--z-level-result); animation:pulseDot 2.4s ease-in-out infinite;
}
:root[data-dispatcher-view] .spine__footer .pulse::before{ content:none; }

/* Знак и название продукта — одни и те же везде. */
:root[data-dispatcher-view] .brand{
  height:auto; padding:18px 16px 15px; border-bottom:1px solid var(--z-line);
  justify-content:flex-start; gap:11px;
}
:root[data-dispatcher-view] .brand__mark{
  width:32px; height:32px; border-radius:9px; transform:none;
  background:linear-gradient(135deg, var(--z-accent), var(--z-accent-2));
  box-shadow:var(--z-brand-mark-glow);
}
:root[data-dispatcher-view] .brand__mark::after{ content:none; }
:root[data-dispatcher-view] .brand__letter{ display:block; }
:root[data-dispatcher-view] .brand__layer{ display:none; }
:root[data-dispatcher-view] .brand__title{
  display:block; font-weight:700; font-size:15px; letter-spacing:.02em; color:inherit;
}
:root[data-dispatcher-view] .brand__subtitle{
  display:block; font-family:var(--z-font-mono); font-size:9.5px;
  color:var(--z-ink-3); letter-spacing:.1em;
}

/* Верхняя панель — на месте: хлебные крошки, тема, плотность, штамп сборки. */
:root[data-dispatcher-view] .topbar{ display:flex; }
:root[data-dispatcher-view] .workspace-col{ background:none; }
:root[data-dispatcher-view] main.workspace{ padding:var(--z-pad-main); }

/* Те же значения внутри границ, где режимы сужали меню отдельно. */
@media (min-width:981px) and (max-width:1439px){
  :root[data-dispatcher-view]{ --z-spine-w:264px; }
}
@media (max-width:1180px){
  :root[data-dispatcher-view]{ --z-spine-w:264px; }
}
@media (max-width:1023px){
  :root[data-dispatcher-view]{ --z-spine-w:264px; }
  :root[data-dispatcher-view] .brand{ height:auto; justify-content:flex-start; padding:18px 16px 15px; }
  :root[data-dispatcher-view] .nav-item{ min-height:auto; justify-content:flex-start; padding:8px 10px; }
  :root[data-dispatcher-view] .nav-item .label,
  :root[data-dispatcher-view] .nav-count,
  :root[data-dispatcher-view] .spine__footer{ display:revert; }
}
@media (max-width:760px){
  /* Ранний responsive-блок Диспетчера превращал меню в sticky-строку. После
     перехода оболочки на общий drawer эти более специфичные правила продолжали
     держать 62px в потоке и выпускали части поиска/статуса за сдвинутую панель.
     На телефоне восстанавливаем весь контракт drawer с той же специфичностью. */
  :root[data-dispatcher-view] .spine{
    position:fixed; z-index:47; top:0; right:auto; bottom:0; left:0;
    width:min(280px,86vw); height:100%; display:flex; flex-direction:column;
    transform:translateX(-102%); border-right:1px solid var(--z-line); border-bottom:0;
  }
  :root[data-dispatcher-view][data-spine-open="1"] .spine{ transform:translateX(0); }
  :root[data-dispatcher-view] .brand{
    width:auto; height:auto; flex:0 0 auto; padding:18px 16px 15px;
  }
  :root[data-dispatcher-view] .spine__nav{
    display:block; flex:1; overflow-x:hidden; overflow-y:auto; padding:6px 10px 16px;
  }
  :root[data-dispatcher-view] .nav-group,
  :root[data-dispatcher-view] .nav-group>div{ display:block; }
  :root[data-dispatcher-view] .nav-item{
    width:100%; min-width:0; min-height:0; height:auto; justify-content:flex-start;
    margin:0 0 1px; padding:8px 9px;
  }
  /* Из работы кодекса-1: высоту оболочки на телефоне задаёт содержимое,
     иначе нижняя часть списка уезжает под край экрана. Правило нашему
     контракту drawer не противоречит и его дополняет. */
  :root[data-dispatcher-view] .app-shell{ height:auto; min-height:100dvh; }
}

/* Левое меню — те же метрики на всех разделах.
   Рама выровнялась, а сами пункты — нет: режим задавал .nav-group{margin:0},
   .nav-item{min-height:52px; padding:9px 14px; font-size:11px} и лишние 22px
   шестому пункту. Из-за этого первый пункт начинался то на 125-й точке, то на
   145-й, список кончался на 636, 723 или 743, и на двух разделах меню ещё и
   прокручивалось. Владелец описал это как «левое меню пляшет» — три состояния
   вместо одного. Ниже базовые значения оболочки, те самые, что на экране,
   который он назвал образцом. */
:root[data-dispatcher-view] .nav-group{ margin-top:14px; }
:root[data-dispatcher-view] .nav-item{
  min-height:0; margin:0 0 1px; padding:8px 9px; gap:10px; border-radius:9px;
  font-size:12.5px; font-weight:400;
}
:root[data-dispatcher-view] .nav-item[data-nav-gap]{ margin-top:0; }
:root[data-dispatcher-view] .nav-item .label{ display:block; }
/* Значок пункта одного размера везде. Режим задавал ему 18px, база оставляла
   собственный 17px — один пиксель на пункт, двенадцать пунктов, одиннадцать
   пикселей разницы в высоте списка. */
.nav-symbol{ width:18px; text-align:center; font-size:18px; line-height:1; color:currentColor; }
.nav-symbol .dispatcher-icon{ width:18px; height:18px; }

/* Те же значения там, где режим сужал меню отдельно по ширине окна. */
@media (max-width:1439px){
  :root[data-dispatcher-view] .nav-item{ min-height:0; padding:8px 9px; font-size:12.5px; }
  :root[data-dispatcher-view] .nav-item[data-nav-gap]{ margin-top:0; }
}
@media (max-width:1180px){
  :root[data-dispatcher-view] .nav-item{ min-height:0; padding:8px 9px; font-size:12.5px; }
  :root[data-dispatcher-view] .nav-item .label{ display:block; }
}
@media (max-width:1023px){
  :root[data-dispatcher-view] .nav-item{ min-height:0; padding:8px 9px; font-size:12.5px; justify-content:flex-start; }
  :root[data-dispatcher-view] .nav-group{ margin-top:14px; }
}

/* Подсказка «!» у поля формы: маленький кружок, текст по наведению.
   TASK-ZONTIUM-EXECUTOR-MACHINE-001 — что вписывать читают там, где заполняют. */
.field-hint {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; margin-left: 6px; border-radius: 50%;
  font-size: 11px; font-weight: 700; cursor: help;
  color: var(--z-ink-inverse); background: var(--z-field-hint-bg); vertical-align: middle;
}
/* Направления — вертикальным списком, а не строкой: девять пунктов в строку
   переносились и читались плохо. */
.chip-column { display: flex; flex-direction: column; gap: 6px; }
.chip-column .chip-check { display: flex; align-items: center; gap: 8px; padding: 4px 0; }

  /* Союз: наш контракт drawer Диспетчера и раскладки страниц из
     работы кодекса-1 — наборы селекторов не пересекаются. */
/* TASK-WORKOS-SHELL-UX-003: the shell owns one collapsible navigation rail.
   WorkOS keeps its own sections inside the module and no longer consumes a
   second vertical strip. */
[hidden]{ display:none!important; }

.spine-toggle{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:38px; padding:0 11px; border:1px solid var(--z-line-2);
  border-radius:10px; color:var(--z-ink); background:var(--z-nested);
  font-size:13px; font-weight:600;
}

@media (min-width:761px){
  :root[data-spine-collapsed]{ --z-spine-w:72px; }
  :root[data-dispatcher-view][data-spine-collapsed]{ --z-spine-w:72px; }
  :root[data-spine-collapsed] .spine{ width:72px; flex-basis:72px; }
  :root[data-spine-collapsed] .brand,
  :root[data-dispatcher-view][data-spine-collapsed] .brand{
    justify-content:center; padding-inline:10px;
  }
  :root[data-spine-collapsed] .brand>div:not(.brand__mark){ display:none; }
  :root[data-spine-collapsed] .spine__search,
  :root[data-dispatcher-view][data-spine-collapsed] .spine__search{
    display:grid; place-items:center; width:44px; height:40px;
    margin:12px auto 6px; padding:0;
  }
  :root[data-spine-collapsed] .spine__search::before{ content:"⌕"; font-size:22px; line-height:1; }
  :root[data-spine-collapsed] .spine__search>*{ display:none; }
  :root[data-spine-collapsed] .spine__nav,
  :root[data-dispatcher-view][data-spine-collapsed] .spine__nav{ padding-inline:8px; }
  :root[data-spine-collapsed] .nav-group{ margin-top:9px; }
  :root[data-spine-collapsed] .nav-group__label,
  :root[data-spine-collapsed] .nav-item .label,
  :root[data-spine-collapsed] .nav-item .badge{ display:none!important; }
  :root[data-spine-collapsed] .nav-item,
  :root[data-dispatcher-view][data-spine-collapsed] .nav-item{
    position:relative; justify-content:center; flex-wrap:nowrap;
    width:54px; min-height:44px; margin:2px auto; padding:8px;
  }
  :root[data-spine-collapsed] .nav-item .nav-symbol{ width:22px; font-size:20px; }
  :root[data-spine-collapsed] .nav-item .nav-count{
    position:absolute; top:2px; right:2px; min-width:16px; padding-inline:4px;
  }
  :root[data-spine-collapsed] .spine__footer,
  :root[data-dispatcher-view][data-spine-collapsed] .spine__footer{
    display:flex; align-items:center; padding:12px 8px;
  }
  :root[data-spine-collapsed] .spine__footer .mini-status{ display:none!important; }
  :root[data-spine-collapsed] .spine__footer .mini-status:first-child{ display:flex!important; }
  :root[data-spine-collapsed] .spine__footer .mini-status:first-child span:last-child{ display:none; }
  :root[data-spine-collapsed] .spine-toggle__label{ display:none; }
}

@media (max-width:760px){
  :root[data-spine-collapsed]{ --z-spine-w:264px; }
  :root[data-spine-collapsed] .spine,
  :root[data-dispatcher-view][data-spine-collapsed] .spine{ width:min(280px,86vw); }

  /* The mobile drawer wins over the historical Dispatcher compact rail. */
  :root[data-dispatcher-view] body{ overflow:hidden; }
  :root[data-dispatcher-view] .app-shell{ display:flex; height:100dvh; min-height:0; overflow:hidden; }
  :root[data-dispatcher-view] .spine{
    position:fixed; z-index:47; inset:0 auto 0 0;
    width:min(280px,86vw); height:100dvh; min-height:0;
    display:flex; flex-direction:column;
    border-right:1px solid var(--z-line); border-bottom:0;
    transform:translateX(-102%);
  }
  :root[data-dispatcher-view][data-spine-open="1"] .spine{ transform:translateX(0); }
  :root[data-dispatcher-view] .brand{
    width:auto; height:auto; flex:0 0 auto;
    justify-content:flex-start; padding:18px 16px 15px;
  }
  :root[data-dispatcher-view] .spine__nav{
    display:block; flex:1 1 auto; min-height:0;
    overflow-x:hidden; overflow-y:auto; padding:6px 10px 16px;
    overscroll-behavior:contain; scrollbar-gutter:stable;
  }
  :root[data-dispatcher-view] .nav-group,
  :root[data-dispatcher-view] .nav-group>div{ display:block; margin-top:14px; }
  :root[data-dispatcher-view] .nav-item{
    width:100%; min-width:0; min-height:44px; height:auto;
    justify-content:flex-start; margin:0 0 2px; padding:8px 9px;
  }
  :root[data-dispatcher-view] .nav-item[data-nav-gap]{ margin-left:0; }
  :root[data-dispatcher-view] .workspace-col{ width:100%; height:100dvh; min-height:0; }
  :root[data-dispatcher-view] main.workspace{
    height:auto; min-height:0; overflow-y:auto; overscroll-behavior:contain;
    padding:0 12px 30px;
  }
}

/* Dispatcher acceptance boundary: the workspace owns vertical scrolling.
   Decision cards expand with live content, so a wheel reaching a card edge
   continues through the workspace instead of being trapped in a fixed pane. */
:root[data-dispatcher-view] .decision-layout{ align-items:stretch; }
:root[data-dispatcher-view] :is(.decision-queue,.decision-order,.decision-checks){ height:auto; overflow:visible; overscroll-behavior:auto; }
:root[data-dispatcher-view] .decision-queue-list{ overflow:visible; }
:root[data-dispatcher-view] .decision-queue-item{ height:auto; min-height:var(--z-row-compact); padding:var(--z-space-2); }
:root[data-dispatcher-view] .decision-queue-item__body strong{ font-size:var(--z-fs-11); line-height:var(--z-lh-title); }
:root[data-dispatcher-view] :is(.decision-queue-item__body small,.decision-queue-item__body em,.decision-queue-item time){ font-size:var(--z-fs-11); line-height:var(--z-lh-title); }
:root[data-dispatcher-view] .decision-queue-item__body :is(strong,small,em){ overflow:hidden!important; text-overflow:ellipsis!important; white-space:nowrap!important; }
:root[data-dispatcher-view] .decision-kpis{ display:block; height:auto; }
:root[data-dispatcher-view] .decision-flow-summary{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--z-space-3); }
:root[data-dispatcher-view] .decision-flow-summary article{ min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:var(--z-space-2); padding:var(--z-space-2); }
:root[data-dispatcher-view] .decision-flow-summary article span{ grid-column:1/-1; color:var(--z-ink-2); font-size:var(--z-fs-11); }
:root[data-dispatcher-view] .decision-flow-summary article strong{ color:var(--z-ink); font-size:var(--z-fs-shell); }
:root[data-dispatcher-view] .decision-flow-summary article p{ margin:0; color:var(--z-ink-2); font-size:var(--z-fs-11); line-height:var(--z-lh-title); }
:root[data-dispatcher-view] .decision-center :is(.decision-goal p,.decision-subcard dl,.decision-subcard details,.decision-evidence div,.decision-files button,.check-step small,.check-step em,.decision-route small,.decision-route p,.decision-route footer){ font-size:var(--z-fs-11); line-height:var(--z-lh-title); }
:root[data-dispatcher-view] .decision-center :is(.decision-goal strong,.decision-subcard h4,.decision-files h4,.check-step strong,.decision-route__title strong){ font-size:var(--z-fs-12); line-height:var(--z-lh-title); }
:root[data-dispatcher-view] .decision-order{ padding:var(--z-space-3); }
:root[data-dispatcher-view] :is(.decision-goal,.decision-subcard,.decision-files){ margin-block:var(--z-space-2); padding:var(--z-space-2); }
:root[data-dispatcher-view] .decision-order__title{ min-height:0; }
:root[data-dispatcher-view] .decision-checks__grid{ height:auto; min-height:0; }
:root[data-dispatcher-view] .decision-journey-route{ height:calc(var(--z-row) + var(--z-space-10)); }
:root[data-dispatcher-view] .decision-journey-route :is(.z-node__label,.z-node__state){ font-size:var(--z-fs-11); }
:root[data-dispatcher-view] .decision-workflow{ height:auto; min-height:0; }
.spine > .app-switcher {
  display:grid;
  gap:4px;
  padding:0 12px 14px;
  border-bottom:1px solid var(--z-line);
}
.spine > .app-switcher a {
  padding:8px 10px;
  border-radius:8px;
  color:var(--z-ink-2);
  text-decoration:none;
  font-size:12px;
}
.spine > .app-switcher a:hover,
.spine > .app-switcher a.is-active {
  color:var(--z-app-switcher-ink-active);
  background:var(--z-app-switcher-bg-active);
}
/* Canonical owner-app switcher; retained in the Dispatcher-only build. */
.spine > .app-switcher {
  display:grid;
  gap:4px;
  padding:0 12px 14px;
  border-bottom:1px solid var(--z-line);
}
.spine > .app-switcher a {
  padding:8px 10px;
  border-radius:8px;
  color:var(--z-ink-2);
  text-decoration:none;
  font-size:12px;
}
.spine > .app-switcher a:hover,
.spine > .app-switcher a.is-active {
  color:var(--z-app-switcher-ink-active);
  background:var(--z-app-switcher-bg-active);
}

/* Accepted owner-shell behavior: WorkOS supplies its own contextual actions,
   and the Dispatcher rail can be collapsed without hiding its icon targets. */
:root[data-screen="workos"] .floating-cluster{ display:none; }
[hidden]{ display:none!important; }

.spine-toggle{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:38px; padding:0 11px; border:1px solid var(--z-line-2);
  border-radius:10px; color:var(--z-ink); background:var(--z-nested);
  font-size:13px; font-weight:600;
}

@media (min-width:761px){
  :root[data-spine-collapsed]{ --z-spine-w:72px; }
  :root[data-dispatcher-view][data-spine-collapsed]{ --z-spine-w:72px; }
  :root[data-spine-collapsed] .spine{ width:72px; flex-basis:72px; }
  :root[data-spine-collapsed] .brand,
  :root[data-dispatcher-view][data-spine-collapsed] .brand{
    justify-content:center; padding-inline:10px;
  }
  :root[data-spine-collapsed] .brand>div:not(.brand__mark){ display:none; }
  :root[data-spine-collapsed] .spine__search,
  :root[data-dispatcher-view][data-spine-collapsed] .spine__search{
    display:grid; place-items:center; width:44px; height:40px;
    margin:12px auto 6px; padding:0;
  }
  :root[data-spine-collapsed] .spine__search::before{ content:"⌕"; font-size:22px; line-height:1; }
  :root[data-spine-collapsed] .spine__search>*{ display:none; }
  :root[data-spine-collapsed] .spine__nav,
  :root[data-dispatcher-view][data-spine-collapsed] .spine__nav{ padding-inline:8px; }
  :root[data-spine-collapsed] .nav-group{ margin-top:9px; }
  :root[data-spine-collapsed] .nav-group__label,
  :root[data-spine-collapsed] .nav-item .label,
  :root[data-spine-collapsed] .nav-item .badge{ display:none!important; }
  :root[data-spine-collapsed] .nav-item,
  :root[data-dispatcher-view][data-spine-collapsed] .nav-item{
    position:relative; justify-content:center; flex-wrap:nowrap;
    width:54px; min-height:44px; margin:2px auto; padding:8px;
  }
  :root[data-spine-collapsed] .nav-item .nav-symbol{ width:22px; font-size:20px; }
  :root[data-spine-collapsed] .nav-item .nav-count{
    position:absolute; top:2px; right:2px; min-width:16px; padding-inline:4px;
  }
  :root[data-spine-collapsed] .spine__footer,
  :root[data-dispatcher-view][data-spine-collapsed] .spine__footer{
    display:flex; align-items:center; padding:12px 8px;
  }
  :root[data-spine-collapsed] .spine__footer .mini-status{ display:none!important; }
  :root[data-spine-collapsed] .spine__footer .mini-status:first-child{ display:flex!important; }
  :root[data-spine-collapsed] .spine__footer .mini-status:first-child span:last-child{ display:none; }
  :root[data-spine-collapsed] .spine-toggle__label{ display:none; }
}

@media (max-width:760px){
  :root[data-spine-collapsed]{ --z-spine-w:264px; }
  :root[data-spine-collapsed] .spine,
  :root[data-dispatcher-view][data-spine-collapsed] .spine{ width:min(280px,86vw); }
}
/* Общие owner-настройки: один набор параметров во всех приложениях. */
.owner-preferences-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.owner-preferences-grid .field{min-width:0}.owner-preferences-grid select{width:100%}
@media(max-width:760px){.owner-preferences-grid{grid-template-columns:1fr}}

/* Canonical owner-app switcher; retained in the Dispatcher-only build. */
.spine > .app-switcher {
  display:grid;
  gap:4px;
  padding:0 12px 14px;
  border-bottom:1px solid var(--z-line);
}
.spine > .app-switcher a {
  padding:8px 10px;
  border-radius:8px;
  color:var(--z-ink-2);
  text-decoration:none;
  font-size:12px;
}
.spine > .app-switcher a:hover,
.spine > .app-switcher a.is-active {
  color:var(--z-app-switcher-ink-active);
  background:var(--z-app-switcher-bg-active);
}
/* Adaptive shell contract (23.08.2026).
   Text and controls used to have independent, screen-specific floors. That left
   8–11px labels and 28–40px click targets scattered through otherwise fluid
   layouts. The shell owns these usability limits, so a section added tomorrow
   inherits them without another route-specific media query. `1em` preserves a
   larger inherited scale; 12px is only the lower bound. */
/* Dispatcher typography now follows the shared scalable foundation. Keep the
   legacy floor only on carriers not migrated to it; do not flatten its scale. */
:root:not([data-dispatcher-view]) .app-shell *{ font-size:12px !important; }
:root:not([data-dispatcher-view]) .app-shell h1{ font-size:22px !important; }
:root:not([data-dispatcher-view]) .app-shell h2{ font-size:20px !important; }
:root:not([data-dispatcher-view]) .app-shell h3{ font-size:16px !important; }
:root:not([data-dispatcher-view]) .app-shell h4{ font-size:14px !important; }
:root:not([data-dispatcher-view]) .app-shell :is(h5,h6){ font-size:12px !important; }
.app-shell :is(button,input,select,textarea,a[href],[role="button"]){
  min-inline-size:44px !important;
  min-block-size:44px !important;
}
.screen :is(span,small,time,em,strong,p,li,dt,dd,label){
  overflow:visible !important;
  overflow-wrap:anywhere;
  text-overflow:clip !important;
  white-space:normal !important;
}

/* A flex/grid child must be allowed to shrink before the document itself can
   overflow. Wide data sets keep their own local scroll container. */
.screen,
.screen > *,
.layout-grid > *,
.ref-layout > *,
.decision-layout > *,
.inbox-layout > *{ min-width:0; max-width:100%; }

/* New dispatcher forms use the same controls as the order card. */
:is(#channel-secret-card,#mention-registry-card,#billing-card,#performer-tools-card) .input {
  min-width:0; min-height:44px; box-sizing:border-box;
  border:1px solid var(--z-line-2); border-radius:10px;
  background:var(--z-nested); color:var(--z-ink); padding:10px 11px; font:inherit;
}
:is(#channel-secret-card,#mention-registry-card,#billing-card,#performer-tools-card) .input:focus-visible {
  outline:var(--z-field-input-ring-focus); outline-offset:2px;
}
#performer-tools-card details { margin:12px 0; }
#performer-tools-card summary { cursor:pointer; padding:8px 0; }
:root[data-screen="dispatcher-channels"] .floating-cluster { display:none; }

@media (max-width:760px) {
  :is(#channel-secret-card,#mention-registry-card,#billing-card,#performer-tools-card) :is(.input,.field) {
    flex:1 1 100% !important; width:100% !important; max-width:100% !important;
  }
  :is(#channel-secret-card,#mention-registry-card,#billing-card,#performer-tools-card) .field-row {
    flex-wrap:wrap; gap:8px;
  }
}

@media (max-width:760px){
  /* The document is the only vertical scroll owner through the exact 760px
     boundary. Dynamic viewport units follow the mobile browser chrome. */
  .workspace-col{ min-height:100dvh; }
  main.workspace{ overflow:visible !important; }
  .screen *{ min-width:0; max-width:100%; }
  .screen :is(button,input,select,textarea,a[href],[role="button"]){ min-width:44px; }
  .topbar{ align-items:flex-start; padding:10px 12px; }
  .topbar__title,.topbar__badges,.topbar__controls{ flex:1 1 100%; margin-left:0; }
  .topbar__badges{ justify-content:flex-start; }
  .topbar__controls{ padding-left:0; border-left:0; }
  .hero-card{ flex-direction:column; padding:var(--z-pad-card); }
  .hero-card__right{ align-items:flex-start; }
  .metric-grid,.people-grid{ grid-template-columns:minmax(0,1fr); }
  .button-row{ flex-wrap:wrap; }
  .screen .button-row{ width:100%; max-width:100%; flex-direction:column; }
  .screen .button-row .button{ width:100% !important; max-width:100%; flex:1 1 auto !important; }
  .field-row > *:last-child{ text-align:left; }
  .context-panel,.notif-tray,.switcher-panel,.agentera,.palette{ max-width:calc(100vw - 16px); }
  .floating-cluster{ right:10px; bottom:10px; }
}

/* The shell remains fixed on phones; its workspace is the single vertical
   scroll owner and the document never gains a horizontal scrollbar. */
@media (max-width:760px){
  :root[data-dispatcher-view] main.workspace{ overflow-x:hidden!important; overflow-y:auto!important; }
}
