:root {
  --brand-dark: #1d2124;
  --brand-charcoal: #2e3133;
  --brand-gray: #505059;
  --orange: #d9773a;
  --orange-hover: #c4682f;
  --orange-soft: #f4e8df;
  --orange-muted: #e8a06a;
  --gray-bg: #d8d7d3;
  --gray-50: #f0efec;
  --gray-100: #e4e2de;
  --gray-200: #d4d0cb;
  --gray-300: #c8c4be;
  --gray-400: #8a8680;
  --gray-500: #6a6660;
  --gray-600: #505059;
  --gray-700: #3d3f42;
  --gray-800: #2e3133;
  --gray-900: #1d2124;
  --white: #ffffff;
  --paper: #fbfaf7;
  --peach: #fff6ef;
  --line: #eeeae4;
  --ok: #3d6b4a;
  --ok-bg: #edf4ef;
  --err: #b44a3d;
  --err-bg: #faf0ee;
  --text-primary: var(--gray-800);
  --text-secondary: var(--gray-600);
  --font-sans: "Segoe UI", system-ui, sans-serif;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 14px;
  --text-lg: 16px;
  --text-xl: 18px;
  --text-2xl: 20px;
  --text-3xl: 24px;
  --text-kpi: 24px;
  --text-kpi-lg: 28px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --control-h: 40px;
  --control-h-compact: 36px;
  --control-pad-x: 12px;
  --control-pad-y: 8px;
  --btn-pad-x: 14px;
  --btn-pad-y: 8px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: auto;
  min-height: 100%;
  margin: 0;
  padding: 0;
  font-family: var(--font-sans);
  background: var(--paper);
  color: var(--gray-800);
  line-height: 1.45;
  font-size: var(--text-base);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

html.bitrix-embed,
body.bitrix-embed {
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
  --ogonyok-frame-h: 100%;
}

button,
input,
select {
  font-family: inherit;
}

.app {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
  background: var(--gray-50);
  overflow: visible;
}

.app.bitrix-embed {
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.app-shell {
  display: grid;
  grid-template-columns: 272px minmax(0, 1fr);
  width: 100%;
  flex: 1 1 auto;
  align-items: stretch;
  min-height: 100%;
}

.bitrix-embed .app-shell {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  align-items: stretch;
  overflow: hidden;
}

/* Единственный вертикальный скролл страницы в Bitrix — у .dept-page-body разделов */
.bitrix-embed .app-main {
  min-height: 0;
  height: 100%;
  max-height: 100%;
  flex: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.bitrix-embed .app-main.dept-switching {
  min-height: 0;
}

.bitrix-embed .dept-nav {
  align-self: stretch;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.bitrix-embed .dept-section.active {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  height: auto;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.bitrix-embed #dept-import {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

/* Data Center: высота окна фиксирована, скролл внутри активной вкладки */
.bitrix-embed .dept-section.active#dept-import {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.bitrix-embed #dept-import .import-tab-stage,
.bitrix-embed #dept-import .import-module-shell,
.bitrix-embed #dept-import .module-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.bitrix-embed #dept-import .tab-panel.active {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.bitrix-embed #dept-wiki.active .wiki-page-body {
  flex: 1 1 auto;
  min-height: 0;
}

.bitrix-embed #dept-wiki.active .wiki-layout {
  flex: 0 0 auto;
  min-height: 0;
  height: auto;
}

.ogonyok-server-warning {
  grid-column: 1 / -1;
  margin: 0;
  padding: 12px 16px;
  background: #faf0ee;
  border-bottom: 1px solid #e8b4a8;
  color: #7a2e1f;
  font: 14px/1.45 var(--font-sans, "Segoe UI", sans-serif);
}

.ogonyok-server-warning[hidden] {
  display: none;
}

.import-queue-banner {
  margin: 0 0 14px;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid #d7dde3;
  background: #f4f6f8;
  color: #3a424a;
  font: 14px/1.45 var(--font-sans, "Segoe UI", sans-serif);
}

.import-queue-banner[data-queue-state="free"] {
  border-color: #b7d4c2;
  background: #eef7f1;
  color: #1f5a36;
}

.import-queue-banner[data-queue-state="busy"] {
  border-color: #e2c48a;
  background: #fff7e8;
  color: #6a4b12;
}

.import-queue-banner[data-queue-state="full"] {
  border-color: #e8b4a8;
  background: #faf0ee;
  color: #7a2e1f;
}

.import-queue-banner[data-queue-state="unknown"] {
  border-color: #d7dde3;
  background: #f4f6f8;
  color: #3a424a;
}

.dept-nav {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 16px 0 12px;
  background: var(--brand-charcoal);
  color: #eceae6;
  border-right: 1px solid #3a3d40;
  min-width: 228px;
  align-self: stretch;
  min-height: 0;
  height: auto;
}

.dept-nav-title {
  margin: 0 16px 8px;
  padding: 0;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a8680;
}

.dept-nav-btn {
  appearance: none;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 0;
  padding: 9px 16px;
  text-align: left;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  white-space: normal;
  color: #ddd9d4;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s ease, color 0.2s ease;
}

.dept-nav-btn-logo {
  display: flex;
  align-items: center;
  gap: 8px;
}

.wiki-nav-logo {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  filter: drop-shadow(0 0 4px rgba(240, 160, 74, 0.85));
}

.wiki-page-heading {
  display: flex;
  align-items: center;
  gap: 12px;
}

.wiki-logo {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  filter: drop-shadow(0 0 10px rgba(240, 160, 74, 0.55));
}

.dept-nav-btn:hover {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}

.dept-nav-btn.active {
  background: rgba(255, 196, 150, 0.16);
  color: #fff;
  border-left-color: var(--orange-muted);
}

.app-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 100%;
  background: var(--paper);
  pointer-events: auto;
}

.app-main button,
.app-main .module-tab,
.app-main .dev-module-tab,
.app-main label.drop-zone,
.app-main a[href] {
  pointer-events: auto;
}

#dept-import {
  flex: 1;
  min-height: 0;
}

.import-tab-stage {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: visible;
  background: var(--paper);
}

.dept-section {
  display: none;
  flex-direction: column;
  min-width: 0;
  flex: 0 1 auto;
  min-height: 0;
}

.dept-section.active {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}

.bitrix-embed .dept-section.active {
  animation: none;
}

@keyframes dept-section-enter {
  from {
    opacity: 0.72;
  }
  to {
    opacity: 1;
  }
}

.dept-section.active#dept-import {
  flex: 1 0 auto;
  min-height: 0;
  overflow: visible;
}

/* База знаний: высота ограничена родителем, скролл только у .dept-page-body.
   Не использовать flex-shrink:0 / overflow:visible — иначе контент растёт
   без прокрутки и «подвисает» в iframe Bitrix. */
.dept-section.active#dept-wiki {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.dept-page-bar {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
}

.dept-page-bar .brand-accent {
  height: 4px;
  background: linear-gradient(90deg, var(--orange) 0%, var(--orange-muted) 100%);
}

.dept-page-bar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 72px 14px 28px;
}

.dept-page-title {
  margin: 0;
  font-size: var(--text-xl);
  font-weight: 600;
  color: var(--brand-charcoal);
}

.dept-page-subtitle {
  margin: 4px 0 0;
  font-size: var(--text-sm);
  color: var(--gray-600);
}

.dept-page-body {
  flex: 1 1 auto;
  min-height: 0;
  background: var(--paper);
}

/* В Bitrix: тело раздела — единственная полоса прокрутки (кроме «Перспективных проектов») */
.bitrix-embed .dept-page-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.marketing-page,
.technical-page {
  padding: 22px 28px 36px;
}

.marketing-layout-single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 720px;
}

.marketing-upload-field {
  position: relative;
}

.marketing-upload-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.marketing-files-summary {
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--gray-600);
}

.marketing-file-list.collapsed {
  display: none;
}

.marketing-filters-title {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray-600);
}

.marketing-agent-filters-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 12px;
}

.marketing-developer-panel .marketing-agent-filters-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1100px) {
  .marketing-agent-filters-grid,
  .marketing-developer-panel .marketing-agent-filters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .marketing-agent-filters-grid,
  .marketing-developer-panel .marketing-agent-filters-grid {
    grid-template-columns: 1fr;
  }
}

.marketing-agent-filters-stack {
  grid-template-columns: 1fr;
}

.marketing-agent-block .marketing-agent-filters {
  display: block;
  margin-top: 10px;
}

.marketing-agent-block .marketing-agent-filters .field-compact {
  max-width: none;
}

.marketing-layout {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 18px;
  margin-top: 18px;
}

.marketing-card,
.technical-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 18px 20px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.marketing-card-wide {
  min-height: 220px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.marketing-agent-panel {
  padding: 4px 0 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--gray-200);
}

.marketing-report-row-label-only {
  padding-top: 4px;
}

.marketing-report-row-label-only .marketing-report-label {
  color: var(--gray-600);
}

.marketing-agent-panel .card-title {
  margin-bottom: 6px;
}

.marketing-agent-panel .card-desc {
  margin-bottom: 14px;
}

.marketing-agent-panel .marketing-agent-filters {
  margin: 14px 0 8px;
}

.marketing-agent-panel .marketing-report-row-detailed {
  margin-top: 4px;
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

.marketing-agent-filter-hint {
  margin: 0 0 12px;
}

.marketing-agent-filter-hint.hidden {
  display: none;
}

.marketing-summaries-section {
  flex: 1;
  min-height: 120px;
}

.marketing-summaries-section .card-title {
  margin-bottom: 10px;
}

.card-title {
  margin: 0 0 8px;
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--brand-charcoal);
}

.card-desc {
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--gray-600);
}

.marketing-result {
  min-height: 140px;
}

.marketing-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.marketing-totals-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin: 4px 0 10px;
}

.marketing-totals-board .marketing-stat {
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #fffefb 0%, #faf8f5 100%);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}

.marketing-stat--large .marketing-stat-value {
  font-size: var(--text-kpi);
  line-height: 1.15;
}

.marketing-totals-note {
  margin-top: 4px;
}

.marketing-totals-board--compact {
  grid-template-columns: minmax(0, 280px);
  max-width: 300px;
  margin-bottom: 8px;
}

.marketing-totals-board--compact .marketing-stat-value {
  font-size: var(--text-2xl);
}

.marketing-stat {
  background: var(--gray-50);
  border-radius: 8px;
  padding: 10px 12px;
}

.marketing-stat-label {
  font-size: 12px;
  color: var(--gray-600);
}

.marketing-stat-value {
  font-size: var(--text-2xl);
  font-weight: 600;
  color: var(--brand-charcoal);
}

.marketing-hints {
  margin-top: 16px;
  font-size: 13px;
  color: var(--gray-600);
}

.marketing-summary-title {
  margin: 14px 0 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-charcoal);
}

.marketing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.marketing-file-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.marketing-file-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 10px;
  margin-bottom: 6px;
  background: var(--gray-50);
  border-radius: 8px;
  font-size: 13px;
}

.marketing-file-empty {
  color: var(--gray-600);
  font-size: 13px;
  padding: 4px 0;
}

.marketing-file-list button {
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: var(--gray-600);
  cursor: pointer;
  font-size: 12px;
}

.marketing-file-list button:hover {
  color: var(--err);
}

.btn-marketing-add {
  position: relative;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: var(--control-h);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  box-sizing: border-box;
  font-size: var(--text-base);
}

.marketing-file-picker {
  user-select: none;
}

.marketing-upload-status {
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--gray-600);
}

.marketing-upload-status.is-error {
  color: var(--err);
}

.marketing-upload-status.is-ok {
  color: #166534;
}

.marketing-upload-field.is-dragover .btn-marketing-add {
  border-color: var(--orange-muted);
  background: var(--orange-soft);
}

.btn-marketing-add.is-disabled,
.btn-marketing-add[aria-disabled="true"] {
  pointer-events: none;
  opacity: 0.55;
}

.marketing-report-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--gray-200);
}

.marketing-report-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.marketing-report-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-charcoal);
}

.marketing-report-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.marketing-report-buttons .btn-marketing-action {
  flex: 1 1 120px;
}

.marketing-agent-block {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--gray-200);
}

.marketing-agent-block .marketing-report-row {
  margin-top: 0;
}

.marketing-report-row-actions-only {
  justify-content: flex-end;
}

.marketing-agent-panel .marketing-report-row {
  margin-top: 10px;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.marketing-agent-panel .marketing-report-buttons {
  flex: 0 0 auto;
  min-width: 220px;
}

.marketing-agent-panel .marketing-report-row-detailed .marketing-report-label-block {
  flex: 1;
  min-width: 0;
}

.marketing-agent-block-title {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--brand-charcoal);
}

.marketing-agent-block-desc {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--gray-600);
}

.marketing-report-row-detailed {
  margin-top: 4px;
}

.marketing-report-label-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.marketing-report-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--gray-500);
}

.marketing-agent-filters {
  display: block;
  margin-top: 4px;
  padding: 12px 14px 14px;
  border-radius: 10px;
  background: linear-gradient(180deg, #fffefb 0%, #f8f5f1 100%);
  border: 1px solid var(--gray-200);
  box-shadow: inset 3px 0 0 var(--orange, #d9773a);
}

.marketing-agent-filters .field-compact {
  min-width: 0;
  max-width: none;
  margin: 0;
}

.marketing-agent-filters .field-label {
  margin-bottom: 4px;
  font-size: 12px;
  color: var(--gray-600);
}

.marketing-agent-filters select {
  width: 100%;
  min-height: 36px;
  border-radius: 8px;
  border-color: var(--gray-200);
  background: var(--white);
}

.marketing-tab-dashboard {
  margin-top: 18px;
}

.marketing-tab-dashboard-placeholder {
  margin: 0;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--gray-50);
  border: 1px dashed var(--gray-200);
}

.marketing-history-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.marketing-history-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  background: var(--white);
}

.marketing-history-item-copy {
  min-width: 0;
}

.marketing-history-item-title {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-800);
}

.marketing-history-item-meta {
  margin: 0;
  font-size: 13px;
  color: var(--gray-500);
}

.marketing-funnel-block .quality-note {
  margin-top: 0;
}

.marketing-funnel {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.marketing-funnel-step-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
  font-size: 13px;
  color: var(--gray-700);
}

.marketing-funnel-step-head strong {
  font-size: 18px;
  color: var(--brand-charcoal);
}

.marketing-funnel-bar {
  height: 10px;
  border-radius: 999px;
  background: var(--gray-200);
  overflow: hidden;
}

.marketing-funnel-bar > div {
  height: 100%;
  border-radius: inherit;
  transition: width 0.2s ease;
}

.marketing-funnel-bar-primary > div {
  background: linear-gradient(90deg, #f59e0b, #ea580c);
}

.marketing-funnel-bar-amber > div {
  background: linear-gradient(90deg, #fbbf24, #d97706);
}

.marketing-funnel-bar-success > div {
  background: linear-gradient(90deg, #34d399, #059669);
}

.marketing-funnel-bar-warn > div {
  background: linear-gradient(90deg, #f0a36b, #d9773a);
}

.marketing-funnel-table th.num,
.marketing-funnel-table td.num {
  width: 88px;
}

.marketing-agent-panel .marketing-report-buttons .btn-marketing-action {
  flex: 1 1 140px;
  width: auto;
}

.marketing-view-switch {
  display: inline-flex;
  gap: 2px;
  margin: 4px 0 8px;
  padding: 3px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 10px;
}

.marketing-view-btn {
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-600);
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
}

.marketing-view-btn.active {
  background: var(--orange-soft, #f4e8df);
  color: var(--brand-charcoal, #2e3133);
  box-shadow: inset 0 -2px 0 var(--orange, #d9773a);
}

.marketing-developer-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 900px) {
  .marketing-developer-dashboard-grid {
    grid-template-columns: 1fr;
  }
}

.marketing-developer-dashboard-grid .marketing-dashboard-block.wide {
  grid-column: 1 / -1;
}

.marketing-mini-table tr.is-highlight td {
  background: var(--orange-soft, #f4e8df);
}

.marketing-bar-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.marketing-bar-row {
  display: grid;
  grid-template-columns: minmax(110px, 150px) 1fr 44px;
  gap: 8px;
  align-items: center;
  font-size: 12px;
}

.marketing-bar-track {
  height: 8px;
  background: var(--gray-100, #f1efec);
  border-radius: 999px;
  overflow: hidden;
}

.marketing-bar-fill {
  height: 100%;
  background: var(--orange, #d9773a);
  border-radius: 999px;
}

.marketing-dashboard-block {
  margin: 14px 0;
  padding: 12px 14px;
  background: var(--gray-50);
  border-radius: 10px;
}

.marketing-mini-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-top: 8px;
}

.marketing-mini-table th,
.marketing-mini-table td {
  padding: 6px 8px;
  text-align: left;
  border-bottom: 1px solid var(--gray-200);
}

.marketing-mini-table th {
  color: var(--gray-600);
  font-weight: 600;
}

.marketing-mini-table td.num {
  text-align: right;
  white-space: nowrap;
}

.marketing-built-links {
  margin: 12px 0 0;
  padding-left: 18px;
}

.marketing-built-links li {
  margin-bottom: 6px;
}

.btn-marketing-action {
  width: 100%;
  flex: none;
  text-align: center;
}

.marketing-actions .btn-primary,
.marketing-actions .btn-secondary {
  flex: none;
}

.marketing-hints p {
  margin: 0 0 6px;
}

.technical-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 18px;
  margin-bottom: 8px;
}

.technical-intro {
  margin: 0 0 4px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  font-size: 14px;
  color: var(--gray-600);
}

.technical-card-soon {
  position: relative;
  opacity: 0.92;
}

.handover-page .technical-summary-grid {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.handover-kpi-sub {
  margin: 6px 0 0;
  font-size: 14px;
  color: var(--gray-600);
}

.technical-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 0 18px;
}

.technical-summary .technical-intro {
  margin: 0 0 12px;
}

.technical-card .card-title-long {
  font-size: 13px;
  line-height: 1.35;
  max-width: 14em;
}

.technical-kpi {
  margin: 0;
  font-size: var(--text-kpi-lg);
  font-weight: 700;
  color: var(--brand-charcoal);
}

.technical-kpi-ok {
  color: #3d8f63;
}

.technical-kpi-warn {
  color: #d9773a;
}

.technical-filters {
  margin-top: 12px;
}

.technical-toolbar {
  margin: 14px 0 18px;
}

.btn-tech-actualize {
  flex-shrink: 0;
  align-self: flex-start;
  min-width: 0;
  min-height: var(--control-h);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border: none;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, #c94a3d 0%, var(--err) 100%);
  color: var(--white);
  font-size: var(--text-base);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.01em;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(180, 74, 61, 0.28);
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
  white-space: nowrap;
}

.btn-tech-actualize:hover {
  background: linear-gradient(135deg, #b84236 0%, #9a3f34 100%);
  box-shadow: 0 4px 12px rgba(180, 74, 61, 0.34);
}

.btn-tech-actualize:active {
  transform: translateY(1px);
}

.btn-tech-actualize:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}

.technical-page .quality-header {
  align-items: flex-start;
}

.technical-toolbar-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px 16px;
}

.field-compact {
  flex: 0 1 200px;
  min-width: 160px;
  max-width: 220px;
  margin: 0;
}

.field-compact select,
.field-compact input[type="text"] {
  width: 100%;
  min-height: var(--control-h);
  padding: var(--control-pad-y) var(--control-pad-x);
  font-size: var(--text-base);
  box-sizing: border-box;
}

.technical-upload-row,
.technical-upload-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
  margin-bottom: 18px;
}

.technical-upload-row .technical-upload-card,
.technical-upload-grid .technical-upload-card {
  margin-bottom: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.technical-upload-card-compact {
  padding: 16px;
}

.technical-upload-card-head {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.technical-upload-grid .technical-upload-card-head {
  min-height: 6.25rem;
}

.technical-upload-grid .technical-upload-card-head > div {
  flex: 1;
  min-width: 0;
}

.technical-upload-grid .technical-upload-card-head .card-desc {
  min-height: calc(2 * 1.35 * 12px);
}

.technical-upload-badge {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.technical-upload-card-accept .technical-upload-badge {
  background: linear-gradient(135deg, #059669, #047857);
}

.technical-upload-card-meters .technical-upload-badge {
  background: linear-gradient(135deg, #d97706, #b45309);
}

.technical-upload-card-head .card-title {
  margin: 0 0 4px;
  font-size: var(--text-lg);
}

.technical-upload-card-head .card-desc {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--gray-600);
}

.technical-upload-grid .technical-upload-form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(5, auto);
  gap: 10px;
  width: 100%;
  flex: 1;
  align-items: stretch;
}

.technical-upload-grid .technical-upload-form .field-compact {
  flex: none;
  min-width: 0;
  max-width: none;
  width: 100%;
  margin: 0;
}

.technical-upload-grid .technical-upload-row-mkd {
  grid-row: 1;
}

.technical-upload-grid .technical-upload-row-extra {
  grid-row: 2;
}

.technical-upload-grid .technical-upload-row-file {
  grid-row: 3;
}

.technical-upload-grid .technical-upload-row-options {
  grid-row: 4;
}

.technical-upload-grid .technical-upload-row-actions {
  grid-row: 5;
  align-self: start;
}

.technical-upload-grid .technical-upload-spacer {
  visibility: hidden;
  pointer-events: none;
  margin: 0;
  padding: 0;
}

.technical-upload-grid .technical-upload-spacer.checkbox-row {
  padding: 4px 2px;
}

.technical-upload-grid .technical-upload-spacer-control {
  display: block;
  width: 100%;
  min-height: var(--control-h);
  box-sizing: border-box;
}

.technical-upload-card-seed .technical-upload-form,
.technical-upload-card-accept .technical-upload-form,
.technical-upload-card-meters .technical-upload-form {
  grid-template-columns: minmax(0, 1fr);
  flex: 1;
}

.technical-upload-card-compact .technical-upload-form {
  gap: 10px;
}

.technical-upload-grid .technical-upload-form .field:last-of-type {
  grid-column: auto;
}

.technical-upload-grid .actions-compact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: var(--control-h);
}

.drop-zone-compact {
  min-height: 72px;
  padding: 10px 12px;
}

.drop-zone-compact strong {
  font-size: 13px;
}

.checkbox-compact {
  font-size: 13px;
  margin: 0;
}

.actions-compact {
  gap: 8px;
}

.btn-sm {
  min-height: var(--control-h-compact);
  padding: 6px 12px;
  font-size: var(--text-sm);
}

.status-block-compact {
  margin-top: 10px;
}

.status-block-compact .results-bar,
#status-techdoc .results-bar,
#status-tech-accept .results-bar {
  min-height: var(--control-h-compact);
  font-size: var(--text-sm);
}

@media (max-width: 1200px) {
  .technical-upload-row,
  .technical-upload-grid {
    grid-template-columns: 1fr 1fr;
  }

  .technical-upload-card-meters {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .technical-upload-row,
  .technical-upload-grid {
    grid-template-columns: 1fr;
  }

  .technical-upload-card-meters {
    grid-column: auto;
  }
}

.technical-upload-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 18px 20px 14px;
  margin-bottom: 18px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.technical-upload-head {
  margin-bottom: 14px;
}

.technical-upload-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px 16px;
  align-items: end;
}

.technical-upload-form .field:last-of-type {
  grid-column: 1 / -1;
}

.technical-upload-form .actions {
  grid-column: 1 / -1;
  margin-top: 4px;
}

.technical-upload-card-compact .status-block {
  margin-top: auto;
  padding-top: 8px;
}

.technical-table-wrap {
  margin-top: 18px;
  overflow-x: auto;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: var(--white);
}

.technical-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.technical-table th,
.technical-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--gray-200);
  text-align: left;
}

.technical-table th {
  background: #faf9f7;
  font-weight: 600;
}

.field-hint {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--gray-600);
}

.drop-zone-secondary {
  border-style: dashed;
  background: #faf9f7;
}

.badge-soon {
  display: inline-block;
  margin-top: 10px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--orange-soft);
  color: var(--orange-hover);
}

@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .dept-nav {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    padding: 10px 12px;
    min-height: auto;
    height: auto;
    align-self: stretch;
  }

  .dept-nav-title {
    width: 100%;
    margin-bottom: 4px;
  }

  .marketing-layout {
    grid-template-columns: 1fr;
  }

  .ogonyok-assistant {
    margin-top: 10px;
    padding-top: 10px;
    width: auto;
    order: 99;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    border-top: none;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    padding-left: 10px;
    margin-left: auto;
  }

  .ogonyok-widget {
    flex-direction: row;
    gap: 8px;
    width: auto;
  }

  .ogonyok-widget-caption {
    align-items: flex-start;
    text-align: left;
  }

  .ogonyok-assistant-panel {
    left: auto;
    right: 12px;
    bottom: 72px;
    width: min(340px, calc(100vw - 24px));
  }
}

.instructions-preview {
  margin: 16px 0 20px;
  padding-left: 1.25rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

.instruction-cards {
  display: grid;
  gap: 14px;
  margin: 20px 0 12px;
}

.instruction-card {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  padding: 16px 18px;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  background: #fff;
}

.instruction-card-body {
  flex: 1 1 220px;
  min-width: 0;
}

.instruction-card-title {
  margin: 0 0 6px;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-primary);
}

.instruction-card-subtitle {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

.instruction-card-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.instructions-footnote {
  margin-top: 8px;
}

.link-instruction-download {
  color: var(--orange);
  text-decoration: underline;
  cursor: pointer;
}

.link-instruction-download:hover {
  color: var(--orange-muted);
}

.app-bar {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  border-bottom: 1px solid var(--gray-200);
  background: linear-gradient(180deg, #f5f3f0 0%, #eeedeb 100%);
}

.brand-accent {
  height: 4px;
  background: linear-gradient(90deg, var(--orange) 0%, var(--orange-muted) 55%, #f4c9a8 100%);
}

.app-bar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 28px;
}

.brand-group {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  flex: 1;
}

.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: var(--brand-charcoal);
  flex-shrink: 0;
}

.logo-mark {
  display: block;
  flex-shrink: 0;
}

.logo em {
  font-style: normal;
  color: var(--orange);
}

.hint {
  font-size: 13px;
  color: var(--gray-400);
}

.split-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  align-items: stretch;
}

.column {
  padding: 22px 28px 26px;
  border-right: 1px solid var(--gray-200);
  min-width: 0;
  background: var(--white);
}

.column:last-child {
  border-right: none;
}

.column-badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--orange-soft);
  color: var(--orange);
  margin-bottom: 10px;
}

.column-badge.muted {
  background: var(--gray-100);
  color: var(--gray-600);
}

.section-title {
  font-size: var(--text-lg);
  font-weight: 600;
  margin: 0 0 3px;
}

.section-desc {
  font-size: 14px;
  color: var(--gray-400);
  margin: 0 0 14px;
}

.form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  padding: 2px 0;
}

.field-label {
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--gray-600);
  padding-left: 2px;
  line-height: 1.35;
}

.field-optional {
  font-weight: 400;
  color: var(--gray-400);
}

select,
.form input[type="text"],
.form input[type="date"],
.form input[type="month"],
.field-input,
.wiki-search-input,
.wiki-acquaintance-date,
.wiki-acquaintance-comment,
.import-new-input {
  width: 100%;
  box-sizing: border-box;
  min-height: var(--control-h);
  padding: var(--control-pad-y) var(--control-pad-x);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  font-size: var(--text-base);
  background-color: var(--white);
  color: var(--gray-800);
}

select {
  padding-right: 32px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239a9590' d='M3 5l3 3 3-3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

select:disabled {
  background-color: var(--gray-50);
  color: var(--gray-400);
}

.dev-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  width: 100%;
}

.dev-chip {
  padding: 7px 5px;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  font-size: 13px;
  text-align: center;
  color: var(--gray-600);
  background: var(--white);
  line-height: 1.25;
  cursor: pointer;
}

.dev-chip:hover {
  border-color: var(--orange-muted);
}

.dev-chip.active {
  border-color: var(--orange);
  background: var(--orange-soft);
  color: var(--gray-800);
  font-weight: 500;
}

.import-new-input {
  margin-top: var(--space-2);
}

.import-new-input.hidden {
  display: none;
}

.drop-zone {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 100%;
  min-height: 72px;
  border: 1px dashed var(--gray-200);
  border-radius: 8px;
  padding: 14px 12px;
  text-align: center;
  background: var(--gray-50);
  cursor: pointer;
}

.drop-zone:hover,
.drop-zone.dragover {
  border-color: var(--orange-muted);
  background: var(--orange-soft);
}

.drop-zone strong {
  font-size: 14px;
  font-weight: 500;
  color: var(--gray-600);
}

.drop-hint {
  font-size: 13px;
  color: var(--gray-400);
}

.drop-zone.has-file strong {
  color: var(--gray-800);
  word-break: break-all;
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 2px;
  font-size: 14px;
  color: var(--gray-600);
  cursor: pointer;
}

.checkbox-row input {
  width: 14px;
  height: 14px;
  accent-color: var(--orange);
  margin: 0;
}

.checkbox-dry-run em {
  font-style: normal;
  color: var(--gray-400);
}

.dry-run-hint {
  margin: 0;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.4;
  color: #8a5a00;
  background: #fff8e6;
  border: 1px solid #f0d78c;
}

.dry-run-hint.hidden {
  display: none;
}

.results-bar.dry-run {
  border-color: #f0d78c;
  background: #fffdf5;
}

.results-banner {
  flex: 1 1 100%;
  width: 100%;
  margin-bottom: 4px;
  padding: 6px 8px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
}

.results-banner.warn {
  color: #8a5a00;
  background: #fff8e6;
}

.results-banner.ok {
  color: var(--ok);
  background: var(--ok-bg);
}

.actions {
  display: flex;
  gap: 8px;
  width: 100%;
}

.btn-primary {
  flex: 1;
  min-height: var(--control-h);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border: 1px solid var(--orange);
  border-radius: var(--radius-md);
  background: var(--orange);
  color: var(--white);
  font-size: var(--text-base);
  font-weight: 600;
  cursor: pointer;
  line-height: 1.25;
  transition: background 0.2s ease;
}

.btn-primary:hover {
  background: var(--orange-hover);
  border-color: var(--orange-hover);
}

.btn-primary:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.btn-secondary:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.btn-secondary {
  min-height: var(--control-h);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--gray-600);
  font-size: var(--text-base);
  cursor: pointer;
  white-space: nowrap;
  line-height: 1.25;
}

.btn-secondary:hover {
  background: var(--gray-50);
}

.status-block {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--gray-100);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.progress-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
  color: var(--gray-600);
  margin-bottom: 8px;
}

.progress-pct {
  font-weight: 600;
  color: var(--orange);
  font-variant-numeric: tabular-nums;
}

.progress-label {
  margin: 0 0 6px;
  font-size: 12px;
  color: var(--gray-400);
  min-height: 1.2em;
}

.progress-track {
  height: 14px;
  background: var(--gray-100);
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--gray-200);
}

.progress-fill {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--orange) 0%, var(--orange-muted) 100%);
  border-radius: 7px;
  transition: width 0.25s ease;
}

.mkd-steps-hint {
  margin: 0 0 14px;
  padding-left: 1.2rem;
  font-size: 13px;
  color: var(--gray-700);
  line-height: 1.5;
}

.mkd-steps-hint li {
  margin-bottom: 4px;
}

.actions-mkd {
  flex-wrap: wrap;
  gap: 8px;
}

.mkd-preview {
  margin: 12px 0;
  padding: 12px;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  font-size: 13px;
}

.mkd-preview-title {
  margin: 0 0 8px;
}

.mkd-preview-download {
  margin: 0 0 10px;
}

.mkd-preview-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.mkd-preview-table th,
.mkd-preview-table td {
  border: 1px solid var(--gray-200);
  padding: 6px 8px;
  text-align: left;
  vertical-align: top;
}

.mkd-preview-table th {
  background: #fff;
  font-weight: 600;
}

.mkd-preview-missing td {
  background: #ffebee;
}

.mkd-preview-warn {
  margin: 10px 0 0;
  color: var(--err);
}

.mkd-preview-ok {
  margin: 10px 0 0;
  color: var(--ok);
}

.mkd-result-summary,
.mkd-result-download,
.mkd-result-bitrix,
.mkd-result-links {
  flex: 1 1 100%;
  width: 100%;
  margin-top: 8px;
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid var(--gray-200);
}

.mkd-result-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.mkd-result-meta {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--gray-600);
}

.mkd-result-note {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--gray-700);
}

.mkd-result-filename {
  margin: 0 0 10px;
  font-size: 14px;
}

.mkd-download-btn,
.mkd-bitrix-link {
  display: inline-block;
  flex: 0 0 auto;
  width: auto;
  min-width: 200px;
  text-align: center;
  text-decoration: none;
}

.mkd-next-steps {
  margin: 0 0 12px;
  padding-left: 1.2rem;
  font-size: 13px;
  color: var(--gray-700);
  line-height: 1.5;
}

.mkd-next-steps li {
  margin-bottom: 4px;
}

.results-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  padding: var(--control-pad-y) var(--control-pad-x);
  background: var(--gray-50);
  border-radius: var(--radius-md);
  min-height: var(--control-h);
}

.results-bar.done {
  background: var(--ok-bg);
}

.results-bar.error {
  background: var(--err-bg);
}

.results-placeholder {
  font-size: 13px;
  color: var(--gray-400);
}

.quality-load-prompt {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 8px 0 16px;
}

.quality-cache-hint {
  margin: 0;
  font-size: 13px;
  color: var(--gray-500);
}

.field-scenario {
  max-width: 520px;
  margin-bottom: 20px;
}

.exchange-primary-scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 20px;
}

.exchange-primary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(260px, 1fr));
  gap: 16px;
  align-items: start;
  min-width: 1080px;
}

.exchange-steps-grid {
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  min-width: 580px;
}

.exchange-step1-wrap {
  width: 100%;
  margin-bottom: 20px;
}

.exchange-stage-mkd {
  padding: 16px 20px;
  border: 1px solid var(--gray-200, #e8e4df);
  border-radius: 10px;
  background: var(--gray-50, #faf9f7);
}

.mkd-horizontal-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 16px;
  margin-bottom: 14px;
}

.mkd-horizontal-head .section-title {
  margin: 0;
}

.mkd-horizontal-desc {
  margin: 0;
  flex: 1 1 240px;
  font-size: 13px;
  color: var(--gray-600);
}

.mkd-step1-layout {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mkd-step1-columns {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.15fr);
  gap: 20px 28px;
  align-items: start;
  padding-bottom: 16px;
}

.mkd-step1-col {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mkd-step1-col-title {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--gray-500);
}

.mkd-step1-col-filters .field {
  margin: 0;
}

.mkd-field-hint {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--gray-500);
}

.mkd-step1-col-upload .drop-zone-compact {
  min-height: 100px;
  margin: 0;
}

.mkd-step1-col-upload .checkbox-dry-run {
  margin-top: 2px;
}

.mkd-step1-col-upload .actions-mkd {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.mkd-step1-col-upload .mkd-preview {
  max-height: 200px;
  overflow: auto;
  margin: 0;
}

.mkd-step1-footer {
  border-top: 1px solid var(--gray-200, #e8e4df);
  padding-top: 14px;
}

.mkd-step1-footer .status-block {
  margin: 0;
}

.mkd-step1-footer .results-bar {
  min-height: 84px;
}

.mkd-step1-footer .mkd-result-links {
  margin-top: 10px;
}

.drop-zone-compact {
  min-height: 88px;
  padding: 14px 16px;
}

#exchange-scenario-wrap.hidden {
  display: none;
}

.actualization-layout {
  width: 100%;
  max-width: 720px;
}

.actualization-toolbar {
  margin-bottom: 18px;
}

.actualization-panels {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.actualization-panel {
  padding: 20px 22px 24px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.actualization-panel .section-title {
  margin: 8px 0 6px;
}

.actualization-soon {
  padding: 20px 22px;
}

.actualization-page {
  background: transparent;
  min-height: 360px;
}

.exchange-stage {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--gray-200, #e8e4df);
  border-radius: 10px;
  background: var(--gray-50, #faf9f7);
}

.field-inline-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(64px, 88px);
  gap: 10px;
  align-items: end;
}

.field-inline-pair > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.exchange-layout {
  width: 100%;
  max-width: none;
  margin: 0;
}

.exchange-toolbar-split {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 24px;
  margin-bottom: 20px;
}

.exchange-toolbar-col {
  min-width: 0;
  flex: 0 1 280px;
  max-width: 320px;
  width: 100%;
}

.exchange-toolbar-col .field {
  margin: 0;
}

.exchange-toolbar-col select {
  width: 100%;
}

.exchange-toolbar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}

.exchange-panels .exchange-panel {
  padding: 0;
  border: none;
  background: transparent;
  min-width: 0;
}

.exchange-panels .exchange-panel.column {
  border-right: none;
}

.exchange-panels .form {
  max-width: 100%;
}

.exchange-panels .exchange-panel.hidden {
  display: none;
}

.exchange-soon {
  padding: 16px 0 8px;
}

.btn-cancel-progress {
  margin-top: 10px;
  padding: 6px 14px;
  font-size: 13px;
  border: 1px solid var(--err, #c0392b);
  background: transparent;
  color: var(--err, #c0392b);
  border-radius: 6px;
  cursor: pointer;
}

.btn-cancel-progress:hover {
  background: var(--err-bg, #fdecea);
}

.app-loading-card .btn-cancel-progress {
  width: 100%;
}

.results-bar .stat {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.results-bar .stat b {
  font-size: 16px;
  color: var(--ok);
  font-weight: 600;
  line-height: 1.1;
}

.results-bar.error .stat b {
  color: var(--err);
}

.results-bar .stat span {
  font-size: 12px;
  color: var(--gray-400);
}

.app-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  min-width: 0;
}

.app-tab {
  border: 1px solid var(--gray-200);
  background: var(--white);
  color: var(--gray-600);
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
}

.app-tab.tab-wide {
  font-size: 13px;
  max-width: 280px;
  white-space: normal;
  line-height: 1.25;
  text-align: left;
}

.app-tab.active {
  border-color: var(--orange);
  background: var(--orange-soft);
  color: var(--gray-800);
  font-weight: 500;
}

.app-loading {
  position: relative;
  z-index: 20;
  margin: 0;
  padding: 20px 28px 8px;
  background: linear-gradient(180deg, #fff9f4 0%, var(--white) 100%);
  border-bottom: 1px solid var(--gray-200);
}

.app-loading[hidden] {
  display: none !important;
  pointer-events: none !important;
}

.app-loading-card {
  max-width: none;
}

.app-loading-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 4px;
}

.app-loading-title {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--gray-800);
  flex: 1;
  min-width: 0;
}

.app-loading-scope {
  margin: 0;
  flex-shrink: 0;
  max-width: 48%;
  font-size: 12px;
  line-height: 1.4;
  color: var(--gray-600);
  text-align: right;
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--orange-soft);
  border: 1px solid #e8c4a8;
}

.app-loading-scope strong {
  color: var(--gray-800);
  font-weight: 600;
}

.app-loading-msg {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--gray-600);
  min-height: 1.3em;
}

.app-loading-track {
  margin-bottom: 6px;
}

.app-loading-pct {
  margin: 0;
  font-size: 12px;
  color: var(--gray-400);
  text-align: right;
}

.export-progress {
  margin-top: 4px;
}

.export-progress .progress-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 12px;
  color: var(--gray-600);
}

.export-progress .progress-header b {
  font-size: 12px;
  color: var(--gray-800);
  font-weight: 600;
}

.tab-panel {
  display: none !important;
  height: 0;
  overflow: hidden;
  flex: 0;
}

.dept-page-body.wiki-page-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  background: var(--white);
  position: relative;
}

.wiki-layout {
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  flex: 1;
  min-height: 0;
  height: 100%;
}

.wiki-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px 16px 24px;
  border-right: 1px solid var(--gray-200);
  background: var(--gray-50);
  min-height: 0;
  overflow: hidden;
}

.wiki-search-input {
  width: 100%;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
  background: var(--white);
}

.wiki-search-input:focus {
  outline: none;
  border-color: var(--orange-muted);
  box-shadow: 0 0 0 2px rgba(217, 119, 58, 0.12);
}

.wiki-tree {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.wiki-tree-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.wiki-tree-type {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--brand-charcoal);
}

.wiki-tree-topic {
  margin: 8px 0 2px;
  padding-left: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-600);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.wiki-tree-bundle {
  margin: 0 0 4px;
  padding-left: 8px;
  font-size: 12px;
  color: var(--gray-400);
}

.wiki-tree-link {
  appearance: none;
  border: none;
  width: 100%;
  text-align: left;
  border-radius: 8px;
  padding: 8px 10px;
  background: transparent;
  color: var(--gray-800);
  font-size: 14px;
  line-height: 1.35;
  cursor: pointer;
}

.wiki-tree-link:hover {
  background: rgba(217, 119, 58, 0.08);
}

.wiki-tree-link.is-active {
  background: var(--orange-soft);
  color: var(--orange-hover);
  font-weight: 600;
}

.wiki-tree-link.is-missing,
.wiki-tree-link.is-unpublished {
  opacity: 0.55;
}

.wiki-archive-note {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--gray-600);
}

.wiki-main {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  padding: 24px 28px 36px;
}

.bitrix-embed .wiki-main,
.bitrix-embed .wiki-tree {
  overflow: visible;
}

/* В Bitrix скролл у .dept-page-body: сайдбар и дерево не режем flex-ом,
   иначе дерево схлопывается и прокрутка «подвисает». */
.bitrix-embed #dept-wiki.active .wiki-sidebar {
  overflow: visible;
  min-height: auto;
}

.bitrix-embed #dept-wiki.active .wiki-tree {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}

.bitrix-embed #dept-wiki.active .wiki-main {
  overflow: visible;
  min-height: auto;
}

.wiki-home-title {
  margin: 0 0 8px;
  font-size: 22px;
  color: var(--brand-charcoal);
}

.wiki-home-lead {
  margin: 0 0 18px;
  color: var(--gray-600);
  max-width: 720px;
}

.wiki-home-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.wiki-home-card {
  appearance: none;
  border: 1px solid rgba(217, 119, 58, 0.18);
  border-radius: 12px;
  padding: 16px 18px;
  background: linear-gradient(165deg, #faf6f2 0%, #f3ebe3 52%, #eadfce 100%);
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease, background 0.15s ease;
}

.wiki-home-card:hover {
  border-color: rgba(217, 119, 58, 0.42);
  background: linear-gradient(155deg, #f8e4d2 0%, #efcfa8 42%, #e5b888 100%);
  box-shadow: 0 8px 24px rgba(217, 119, 58, 0.14);
  transform: translateY(-1px);
}

.wiki-home-card strong {
  display: block;
  margin-bottom: 6px;
  font-size: 16px;
  color: var(--brand-charcoal);
}

.wiki-home-card span {
  display: block;
  font-size: 13px;
  color: var(--gray-600);
  line-height: 1.45;
}

.wiki-article-head {
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--gray-200);
}

.wiki-article-breadcrumb {
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--gray-400);
}

.wiki-article-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
}

.wiki-article-title {
  margin: 0;
  min-width: 0;
  flex: 1 1 16rem;
  font-size: 24px;
  color: var(--brand-charcoal);
}

.wiki-btn-unpublish {
  flex: 0 0 auto;
  margin-top: 2px;
  color: #9a3412;
  border-color: #fdba74;
  background: #fff7ed;
}

.wiki-btn-unpublish:hover {
  background: #ffedd5;
  border-color: #fb923c;
}

.wiki-article-subtitle {
  margin: 6px 0 0;
  font-size: 15px;
  color: var(--gray-600);
}

.wiki-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.wiki-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 600;
  background: var(--gray-100);
  color: var(--gray-600);
}

.wiki-badge.is-approved {
  background: var(--ok-bg);
  color: var(--ok);
}

.wiki-upload-panel {
  margin: 0;
  max-width: 720px;
  padding: 0 0 8px;
  background: transparent;
  border: 0;
  border-radius: 0;
  display: grid;
  gap: 12px;
}

.wiki-upload-panel[hidden] {
  display: none;
}

.wiki-upload-lead {
  margin: 0;
  color: var(--gray-600);
  font-size: 14px;
  line-height: 1.45;
}

.wiki-upload-panel .field-label {
  display: grid;
  gap: 6px;
}

#wiki-upload-status.field-hint.is-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.wiki-upload-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.8fr);
  gap: 12px;
}

.wiki-upload-picker {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  width: fit-content;
}

.wiki-upload-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.wiki-upload-actions .btn-primary,
.wiki-upload-actions .btn-secondary {
  flex: 0 0 auto;
  width: auto;
}

.wiki-file-card {
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.wiki-file-card p:last-child {
  margin-bottom: 0;
}

.wiki-article-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.wiki-article-actions .btn-primary,
.wiki-article-actions .btn-secondary {
  flex: 0 0 auto;
  width: auto;
}

.wiki-viewer {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f7f6f4;
  overflow: hidden;
  min-height: 70vh;
}

.wiki-viewer iframe {
  display: block;
  width: 100%;
  min-height: 70vh;
  border: 0;
  background: #fff;
}

.wiki-viewer img {
  display: block;
  width: 100%;
  height: auto;
  background: #fff;
}

.wiki-viewer-fallback {
  padding: 28px 22px;
}

.wiki-viewer-fallback p:last-child {
  margin-bottom: 0;
}

.wiki-viewer--doc {
  min-height: 0;
  padding: 8px 4px 12px;
  background: #fff;
}

.wiki-viewer--doc img {
  width: auto;
  max-width: 100%;
  min-height: 0;
}

.wiki-viewer-download {
  margin: 20px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 13px;
}

.wiki-article-body {
  color: var(--gray-800);
  line-height: 1.6;
  font-size: 15px;
}

.wiki-article-body h2,
.wiki-article-body h3,
.wiki-article-body h4 {
  margin: 1.4em 0 0.6em;
  color: var(--brand-charcoal);
}

.wiki-article-body p,
.wiki-article-body ul,
.wiki-article-body ol,
.wiki-article-body blockquote,
.wiki-article-body table {
  margin: 0 0 12px;
}

.wiki-article-body blockquote {
  border-left: 3px solid var(--orange-muted);
  padding: 8px 12px;
  background: var(--gray-50);
  color: var(--gray-600);
}

.wiki-article-body code {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--gray-100);
  font-size: 0.92em;
}

.wiki-article-body a {
  color: var(--orange-hover);
}

.wiki-table {
  width: 100%;
  border-collapse: collapse;
}

.wiki-table th,
.wiki-table td {
  border: 1px solid var(--gray-200);
  padding: 8px 10px;
  text-align: left;
}

.wiki-related {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--gray-200);
}

.wiki-related h4 {
  margin: 0 0 10px;
  font-size: 15px;
}

.wiki-related-list {
  margin: 0;
  padding-left: 1.2rem;
}

.wiki-related-list a {
  color: var(--orange-hover);
  cursor: pointer;
}

.wiki-acquaintance-panel {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(29, 33, 36, 0.42);
}

.wiki-acquaintance-panel[hidden] {
  display: none !important;
}

.wiki-acquaintance-card {
  width: min(520px, 100%);
  max-height: calc(100% - 40px);
  overflow-y: auto;
  border-radius: 14px;
  background: var(--white);
  padding: 18px 20px 20px;
  box-shadow: 0 18px 48px rgba(29, 33, 36, 0.18);
}

.wiki-acquaintance-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.wiki-acquaintance-head h3 {
  margin: 0;
  font-size: 18px;
}

.wiki-acquaintance-close {
  appearance: none;
  border: none;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: var(--gray-600);
}

.wiki-acquaintance-doc {
  margin: 0 0 14px;
  font-size: 13px;
  color: var(--gray-600);
}

.wiki-acquaintance-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  margin: 0 0 14px;
}

.wiki-acquaintance-field--comment {
  margin-top: 4px;
  margin-bottom: 18px;
}

label.wiki-acquaintance-field {
  cursor: default;
}

.wiki-acquaintance-field .field-label {
  margin: 0;
}

.wiki-acquaintance-date {
  width: min(220px, 100%);
  box-sizing: border-box;
  padding: 9px 12px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  font-size: 14px;
  background: var(--white);
  color: var(--gray-800);
}

.wiki-acquaintance-comment {
  min-height: 84px;
  resize: vertical;
  width: 100%;
  box-sizing: border-box;
  padding: 9px 12px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  font-size: 14px;
  background: var(--white);
  color: var(--gray-800);
}

.wiki-acquaintance-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}

#wiki-acquaintance-status.field-hint {
  padding: 8px 12px;
  border-radius: 8px;
}

#wiki-acquaintance-status.field-hint.is-ok {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}

#wiki-acquaintance-status.field-hint.is-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

body.wiki-acquaintance-open {
  overflow: hidden;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 900px) {
  .wiki-layout {
    grid-template-columns: 1fr;
  }

  .wiki-upload-grid {
    grid-template-columns: 1fr;
  }

  .wiki-sidebar {
    max-height: 240px;
    border-right: none;
    border-bottom: 1px solid var(--gray-200);
  }
}

.tab-panel.active {
  display: flex !important;
  flex-direction: column;
  flex: 0 1 auto;
  height: auto;
  overflow: visible;
  min-height: 0;
  background: transparent;
}

.panel-section {
  padding: 24px 32px 36px;
  flex: 0 1 auto;
}

.quality-page,
.health-page,
.exchange-page,
.actualization-page,
.exports-page,
.reports-page {
  padding: 24px 32px 36px;
}

.quality-page {
  background: transparent;
}

.health-page {
  background: transparent;
}

.exchange-page {
  background: transparent;
}

.quality-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 12px;
}

.quality-header .btn-tech-actualize,
.quality-header .btn-secondary {
  flex-shrink: 0;
  align-self: flex-start;
}

.quality-header-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.scope-filter-summary {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--gray-600);
  text-align: right;
  padding: 6px 10px;
  border-radius: 6px;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  max-width: 360px;
}

.scope-filter-summary strong {
  color: var(--gray-800);
  font-weight: 600;
}

.quality-scope-chip {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--gray-600);
}

.quality-scope-chip strong {
  color: var(--gray-800);
}

.filter-bar.is-locked {
  opacity: 0.72;
  pointer-events: none;
}

.quality-note {
  font-size: 14px;
  color: var(--gray-600);
  margin: 0 0 14px;
}

.quality-grid,
.quality-dashboard {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.quality-kpi {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border-radius: 10px;
  border: 1px solid #e8c4a8;
  border-left: 4px solid var(--orange);
  background: linear-gradient(135deg, #fff9f4 0%, #f4e8df 100%);
}

.kpi-ring {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: 700;
  color: var(--gray-800);
  background: var(--white);
  border: 4px solid var(--orange);
  flex-shrink: 0;
}

.kpi-ring span {
  font-size: 16px;
  font-weight: 600;
  margin-left: 1px;
}

.quality-kpi p {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--gray-600);
}

.quality-block {
  border: 1px solid var(--gray-200);
  border-left: 4px solid var(--orange-muted);
  border-radius: 10px;
  padding: 14px 16px 16px;
  background: var(--white);
}

.quality-block-head h3 {
  margin: 0;
  font-size: 16px;
}

.quality-block-desc {
  margin: 4px 0 10px;
  font-size: 14px;
  color: var(--gray-600);
}

.quality-inline {
  margin: 0 0 10px;
  font-size: 14px;
}

.warn-text {
  color: #9a6b00;
}

.quality-metrics {
  margin-bottom: 8px;
}

.mini-chart-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.filter-bar-wrap {
  margin-bottom: 14px;
}

.export-filter-wrap,
.scope-filter-wrap {
  width: 100%;
}

.export-filters,
.filter-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
  width: 100%;
  max-width: none;
  margin-bottom: 0;
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-top: 3px solid var(--orange-soft);
}

.filter-bar-stack {
  grid-template-columns: 1fr;
}

.field-filter {
  margin: 0;
  width: 100%;
  max-width: none;
}

.field-filter-inline .field-label {
  font-size: 12px;
  margin-bottom: 4px;
  color: var(--gray-600);
}

.field-filter-inline select {
  width: 100%;
  min-width: 0;
}

.filter-bar-note {
  grid-column: 1 / -1;
  margin: 2px 0 0;
  padding: 0;
  font-size: 12px;
  color: var(--gray-600);
  line-height: 1.45;
}

.filter-bar-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.filter-bar-actions .filter-bar-note {
  grid-column: auto;
  flex: 1;
  min-width: 220px;
  margin: 0;
}

.filter-bar-actions .btn-primary {
  flex-shrink: 0;
}

.filter-bar--gantt {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
  margin: 0 0 0 auto;
  padding: 0;
  gap: 8px;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.gantt-filter-chip {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  border: 1px solid var(--gray-200);
  background: var(--white);
  border-radius: 10px;
  padding: 5px 8px 5px 12px;
  min-width: max-content;
}

.gantt-filter-chip span {
  display: block;
  color: var(--gray-600);
  font-size: 11px;
  line-height: 1.1;
  font-weight: 400;
}

.filter-bar--gantt select {
  field-sizing: content;
  border: 0;
  background: transparent;
  height: 20px;
  min-height: 0;
  padding: 0 16px 0 0;
  font-size: 13px;
  font-weight: 650;
  width: auto;
}

.filter-bar--gantt .btn-secondary {
  align-self: stretch;
  min-height: 44px;
  height: auto;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 650;
  border-radius: 10px;
}

.filter-bar-reset {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.filter-bar-reset .btn-secondary {
  min-height: 36px;
  height: 36px;
  padding: 0 14px;
}

.filter-bar--gantt .filter-bar-reset .btn-secondary {
  min-height: 30px;
  height: 30px;
  padding: 0 12px;
  font-size: 13px;
}

@media (max-width: 1100px) {
  .dev-module-tabs {
    flex-wrap: wrap;
  }

  .filter-bar--gantt {
    flex-wrap: wrap;
    margin-left: 0;
    justify-content: flex-start;
  }

  #dept-development .dev-module-tabs,
  #dept-development .filter-bar--gantt {
    flex-wrap: nowrap;
  }

  #dept-development .filter-bar--gantt {
    margin-left: auto;
    justify-content: flex-end;
  }
}

.export-filter-note {
  margin: 0 0 14px;
  padding: 0 2px;
  font-size: 13px;
  color: var(--gray-600);
  line-height: 1.5;
}

.health-connectivity-block {
  margin-top: 18px;
}

.health-connectivity-block h4 {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
}

.export-error {
  color: var(--err) !important;
}

.report-filters {
  margin-bottom: 0;
}

.report-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.report-item {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 8px 16px;
  align-items: start;
  padding: 14px 16px 16px;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  background: var(--white);
}

.report-item-main {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

.report-item-main .export-card-title {
  margin-top: 6px;
}

.report-item-desc {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--gray-600);
  line-height: 1.45;
}

.report-item-action {
  grid-column: 2;
  grid-row: 1;
  flex-shrink: 0;
}

.report-item-action .btn-primary {
  white-space: nowrap;
  min-width: 168px;
}

.report-item-body {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
}

.inline-link {
  color: var(--orange);
  text-decoration: none;
}

.inline-link:hover {
  text-decoration: underline;
}

.mini-chart-card {
  border: 1px solid var(--gray-100);
  border-radius: 8px;
  padding: 8px;
  background: var(--gray-50);
  height: 200px;
  overflow: hidden;
}

.mini-chart-card .chart-wrap-sm {
  position: relative;
  height: 140px;
  overflow: hidden;
}

.mini-chart-note,
.mini-chart-sub {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--gray-600);
  text-align: center;
}

.quality-criteria {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  font-size: 13px;
  color: var(--gray-600);
  line-height: 1.5;
}

.quality-criteria strong {
  color: var(--gray-800);
}

.quality-drill-wrap {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.quality-drill {
  border: 1px solid var(--gray-100);
  border-radius: 8px;
  background: var(--white);
  overflow: hidden;
}

.quality-drill summary {
  cursor: pointer;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 500;
  color: var(--gray-800);
  list-style: none;
}

.quality-drill summary::-webkit-details-marker {
  display: none;
}

.quality-drill summary::before {
  content: "▸ ";
  color: var(--orange);
}

.quality-drill[open] summary::before {
  content: "▾ ";
}

.quality-drill-filled summary {
  color: #2d6a4a;
}

.quality-drill-missing summary {
  color: #9a4a2a;
}

.quality-drill-list {
  margin: 0;
  padding: 0 10px 10px 10px;
  list-style: none;
  max-height: 200px;
  overflow-y: auto;
}

.quality-drill-list li {
  margin: 4px 0;
  font-size: 13px;
}

.quality-drill-list a {
  color: var(--orange);
  text-decoration: none;
}

.quality-drill-list a:hover {
  text-decoration: underline;
}

.quality-drill-more {
  padding: 0 10px 8px;
  font-size: 12px;
  color: var(--gray-400);
}

.chart-wrap {
  position: relative;
  height: 220px;
  max-height: 220px;
  margin-top: 4px;
  overflow: hidden;
}

.chart-wrap canvas,
.mini-chart-card canvas {
  display: block;
  max-height: 100% !important;
  width: 100% !important;
}

.quality-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.quality-card {
  border: 1px solid var(--gray-100);
  border-radius: 8px;
  padding: 14px;
  background: var(--gray-50);
}

.quality-card h3 {
  margin: 0 0 6px;
  font-size: 16px;
}

.q-total {
  margin: 0 0 10px;
  font-size: 14px;
  color: var(--gray-600);
}

.q-metric {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 14px;
  padding: 4px 0;
  border-top: 1px solid var(--gray-100);
}

.q-metric em {
  font-style: normal;
  color: var(--gray-400);
  font-weight: 400;
}

.quality-bi {
  margin-top: 18px;
  padding: 14px;
  border-radius: 8px;
  border: 1px dashed var(--gray-200);
  background: var(--white);
  font-size: 14px;
  color: var(--gray-600);
}

.quality-bi h3 {
  margin: 0 0 8px;
  font-size: 15px;
  color: var(--gray-800);
}

/* ── Цифровизация: кольца и свежесть ── */
.digit-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 4px;
}

.digit-kpi {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: 0 1px 2px rgba(46, 49, 51, 0.04);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.digit-kpi:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(46, 49, 51, 0.07);
}

.digit-kpi.accent {
  box-shadow: inset 2px 0 0 #e8c9b0, 0 1px 2px rgba(46, 49, 51, 0.04);
}

.digit-kpi.ok {
  box-shadow: inset 2px 0 0 #c5d4c8, 0 1px 2px rgba(46, 49, 51, 0.04);
}

.digit-kpi.warn {
  box-shadow: inset 2px 0 0 #e6d3b8, 0 1px 2px rgba(46, 49, 51, 0.04);
}

.digit-kpi-label {
  font-size: 12px;
  color: var(--gray-600);
}

.digit-kpi-value {
  font-size: 26px;
  font-weight: 650;
  margin: 4px 0 2px;
  font-variant-numeric: tabular-nums;
}

.digit-kpi-sub {
  font-size: 12px;
  color: var(--gray-400);
}

@media (max-width: 980px) {
  .digit-kpi-row {
    grid-template-columns: 1fr;
  }
}

.digit-chart-card {
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 12px;
  background: var(--white);
}

.digit-chart-card .chart-wrap-sm {
  position: relative;
  height: 148px;
}

.digit-chart-card .mini-chart-sub {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--gray-600);
  text-align: center;
}

.digit-drill-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.digit-drill-card {
  border: 1px solid var(--gray-100);
  border-radius: 8px;
  padding: 10px 12px;
  background: var(--gray-50);
}

.digit-drill-card h4 {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-800);
}

.health-kpi-card {
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 148px;
}

.health-kpi-value {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--gray-800);
}

.health-kpi-card-err .health-kpi-value {
  color: var(--err);
}

.health-kpi-card-warn .health-kpi-value {
  color: var(--warn);
}

.health-kpi-card-ok .health-kpi-value {
  color: var(--ok);
}

.freshness-chart {
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 14px 16px;
  background: var(--white);
}

.freshness-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.freshness-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
}

.freshness-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  color: var(--gray-600);
}

.freshness-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.legend-dot-fresh { background: var(--orange); }
.legend-dot-stale { background: var(--ok); opacity: 0.35; }

.freshness-wrap {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 8px;
  align-items: end;
}

.freshness-y {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 120px;
  font-size: 10px;
  color: var(--gray-400);
  text-align: right;
  margin-bottom: 34px;
}

.freshness-body {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gray-200);
}

.freshness-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}

.freshness-bar-pair {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  height: 120px;
  width: 100%;
  max-width: 64px;
  margin: 0 auto;
}

.freshness-bar-pair .bar {
  width: 18px;
  border-radius: 4px 4px 0 0;
  min-height: 2px;
}

.bar-fresh { background: var(--orange); }
.bar-stale { background: var(--ok); opacity: 0.28; }

.freshness-label {
  margin-top: 8px;
  font-size: 12px;
  color: var(--gray-600);
  text-align: center;
}

/* ── Качество данных ── */
.health-page,
.health-dashboard {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.health-alert-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.health-kpi-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.health-kpi-row .health-alert {
  min-width: 0;
  flex: none;
}

.health-connectivity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

.health-connectivity-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.health-connectivity-col .health-alert {
  flex: none;
  min-width: 0;
  width: 100%;
}

.health-connectivity-col .digit-drill-card {
  flex: 1;
}

.health-alert {
  flex: 1;
  min-width: 160px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 12px;
  border: 1px solid;
}

.health-alert b {
  display: block;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 2px;
}

.health-alert-err {
  background: var(--err-bg);
  border-color: #e8b4ad;
  color: var(--err);
}

.health-alert-warn {
  background: var(--warn-bg);
  border-color: #f0d78c;
  color: var(--warn);
}

.health-alert-ok {
  background: var(--ok-bg);
  border-color: #b8d4c0;
  color: var(--ok);
}

.health-level-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.health-level-card {
  border: 1px solid var(--gray-200);
  border-left: 4px solid var(--orange-muted);
  border-radius: 10px;
  padding: 14px 16px;
  background: var(--white);
}

.health-level-card h4 {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 600;
}

.health-readiness-row {
  margin-bottom: 10px;
}

.health-readiness-row:last-child { margin-bottom: 0; }

.health-readiness-head {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  margin-bottom: 4px;
  color: var(--gray-600);
}

.health-readiness-head b {
  color: var(--gray-800);
  font-weight: 600;
}

.health-readiness-track {
  height: 8px;
  background: var(--gray-100);
  border-radius: 4px;
  overflow: hidden;
}

.health-readiness-fill {
  height: 100%;
  border-radius: 4px;
  background: var(--orange);
}

.health-table-wrap {
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
}

.health-table-wrap h4 {
  margin: 0;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 600;
  border-bottom: 1px solid var(--gray-100);
  background: var(--gray-50);
}

.health-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.health-table th {
  text-align: left;
  padding: 9px 14px;
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-600);
  border-bottom: 1px solid var(--gray-100);
}

.health-table td {
  padding: 9px 14px;
  border-bottom: 1px solid var(--gray-100);
}

.health-table tr:last-child td { border-bottom: 0; }

.health-table a {
  color: var(--orange);
  text-decoration: none;
}

.health-table a:hover { text-decoration: underline; }

.health-reglament-note {
  margin: 0;
  padding: 10px 12px;
  font-size: 12px;
  color: var(--gray-600);
  background: var(--orange-soft);
  border-radius: 8px;
  line-height: 1.45;
}

.reports-generated {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--gray-200);
}

.reports-generated .export-card-body {
  margin-top: 10px;
}

.exports-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}

.exports-header .btn-secondary {
  flex-shrink: 0;
}

.export-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.export-card-actions {
  margin: 10px 0 12px;
}

.export-card-actions .btn-primary {
  width: 100%;
}

.export-card {
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 16px 18px 18px;
  background: var(--white);
}

.export-card-muted {
  background: #f8f7f5;
  border-style: dashed;
}

.export-card-title {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 600;
}

.export-card-body {
  margin: 12px 0 10px;
  padding: 12px;
  border-radius: 8px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
}

.export-latest p {
  margin: 0 0 10px;
  font-size: 14px;
}

.export-date {
  font-size: 13px;
  color: var(--gray-400);
}

.export-history {
  margin: 12px 0 0;
  padding-left: 18px;
  font-size: 14px;
}

.export-history li {
  margin: 6px 0;
}

.export-history a {
  color: var(--orange);
  text-decoration: none;
}

.export-history a:hover {
  text-decoration: underline;
}

.export-soon {
  margin: 0;
  font-size: 13px;
  color: var(--gray-400);
}

/* АУС: единая страница — фильтры, дашборд передачи и выгрузки в одном блоке */
.admin-page {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  gap: 0;
  width: 100%;
  min-width: 0;
  min-height: 0;
}

/* Чтобы длинный контент не сжимался во flex и скролл оставался у .dept-page-body */
.bitrix-embed .dept-page-body > .panel-section,
.bitrix-embed .dept-page-body > .exports-page,
.bitrix-embed .dept-page-body > .admin-page,
.bitrix-embed .dept-page-body > .filter-bar-wrap {
  flex: 0 0 auto;
  min-height: 0;
}

.admin-page .filter-bar-wrap {
  margin-bottom: 20px;
}

.admin-block + .admin-block {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--gray-200);
}

#dept-admin .quality-header,
#dept-admin .exports-header {
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

#dept-admin .quality-header > div:first-child,
#dept-admin .exports-header > div:first-child {
  flex: 1;
  min-width: 0;
}

#dept-admin .quality-header .section-desc,
#dept-admin .exports-header .section-desc {
  margin-bottom: 0;
}

#dept-admin .export-cards {
  align-items: stretch;
}

#dept-admin .export-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

#dept-admin .export-card .section-desc {
  flex: 1 0 auto;
  margin-bottom: 0;
}

#dept-admin .export-card-actions {
  margin-top: 14px;
  margin-bottom: 12px;
}

#dept-admin .export-card-body {
  flex: 1 1 auto;
  min-height: 72px;
}

#dept-admin .export-card .export-soon {
  margin-top: auto;
  padding-top: 8px;
}

#dept-admin .export-cards .export-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.export-link {
  display: inline-block;
  flex: none;
  width: auto;
  padding-left: 16px;
  padding-right: 16px;
  text-decoration: none;
  text-align: center;
}

.link-btn {
  border: none;
  padding: 0;
  background: none;
  color: var(--orange);
  font: inherit;
  font-weight: 500;
  cursor: pointer;
  text-decoration: underline;
}

.link-btn:hover {
  color: var(--orange-hover);
}

.warn-list {
  margin: 8px 0 0;
  padding-left: 18px;
  font-size: 13px;
  color: var(--gray-600);
}

.hidden {
  display: none !important;
}

@media (max-width: 900px) {
  .mkd-step1-columns {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .exchange-primary-grid {
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .exchange-steps-grid {
    min-width: 0;
  }
}

@media (max-width: 860px) {
  .mini-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .digit-chart-row,
  .digit-drill-row,
  .health-kpi-row,
  .health-level-grid {
    grid-template-columns: 1fr;
  }

  .health-connectivity-grid {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .freshness-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .quality-grid {
    grid-template-columns: 1fr;
  }

  .export-cards {
    grid-template-columns: 1fr;
  }

  .exchange-primary-grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    min-width: 0;
  }

  .technical-summary-grid {
    grid-template-columns: 1fr;
  }

  .exchange-toolbar-split {
    flex-direction: column;
    align-items: flex-start;
  }

  .exchange-toolbar-col {
    max-width: 100%;
  }

  .exchange-toolbar {
    grid-template-columns: 1fr;
  }

  .app-loading-head {
    flex-direction: column;
    align-items: stretch;
  }

  .app-loading-scope {
    max-width: none;
    text-align: left;
  }

  .quality-header-actions {
    align-items: stretch;
    width: 100%;
  }

  .quality-header,
  .exports-header {
    flex-direction: column;
    align-items: stretch;
  }

  .quality-header .btn-tech-actualize,
  .exports-header .btn-secondary {
    width: 100%;
  }

  .scope-filter-summary {
    max-width: none;
    text-align: left;
  }

  .logo-mark {
    width: 28px;
    height: auto;
  }

  .brand-group {
    flex-wrap: wrap;
  }

  .app-tabs {
    width: 100%;
  }

  .app-bar-row {
    flex-wrap: wrap;
  }

  .export-filters,
  .filter-bar {
    grid-template-columns: 1fr;
  }

  .report-item {
    grid-template-columns: 1fr;
  }

  .report-item-action {
    grid-column: 1;
    grid-row: 2;
  }

  .report-item-action .btn-primary {
    width: 100%;
    min-width: 0;
  }

  .report-item-body {
    grid-row: 3;
  }

  .field-filter {
    max-width: 100%;
  }

  .split-body {
    grid-template-columns: 1fr;
  }

  .column {
    border-right: none;
    border-bottom: 1px solid var(--gray-100);
  }

  .column:last-child {
    border-bottom: none;
  }

  .dev-grid {
    grid-template-columns: 1fr;
  }
}

/* --- Администрирование: доступ к разделам --- */

.dept-nav-btn.is-hidden,
.dept-nav-btn[hidden] {
  display: none !important;
}

.access-admin-page {
  background: var(--white);
}

.access-admin-note {
  margin: 0 0 12px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  font-size: 13px;
  color: var(--gray-700);
}

.access-compact-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  background: var(--gray-50);
}

.access-toggle-compact {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-800);
  white-space: nowrap;
}

.access-compact-field {
  flex: 1 1 280px;
  min-width: 220px;
}

.access-compact-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-600);
}

.access-compact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

.access-split-layout {
  display: grid;
  grid-template-columns: minmax(260px, 34%) 1fr;
  gap: 14px;
  align-items: start;
}

.access-left-panel,
.access-right-panel {
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  background: var(--white);
  padding: 12px 14px;
  min-width: 0;
}

.access-panel-title {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--gray-900);
}

.access-table-wrap {
  overflow: auto;
  max-height: 520px;
}

.access-sections-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.access-sections-table th,
.access-sections-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--gray-100);
  text-align: left;
  vertical-align: top;
}

.access-sections-table th {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-600);
  background: var(--gray-50);
  position: sticky;
  top: 0;
}

.access-sections-table td:first-child {
  font-weight: 600;
  color: var(--gray-900);
  white-space: nowrap;
}

.access-sections-table td:last-child {
  color: var(--gray-600);
  line-height: 1.4;
}

.access-rules-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.access-rules-hint {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--gray-600);
}

.access-rules-overview {
  margin-bottom: 12px;
}

.access-rules-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.access-rules-table th,
.access-rules-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--gray-100);
  text-align: left;
  vertical-align: top;
}

.access-rules-table th {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-600);
  background: var(--gray-50);
}

.access-rules-table td strong {
  color: var(--gray-900);
}

.access-rules-table .access-rule-row-actions {
  white-space: nowrap;
  text-align: right;
}

.access-rules-table .access-rule-row-actions button {
  margin-left: 6px;
}

.access-empty {
  margin: 0;
  padding: 14px 12px;
  border: 1px dashed var(--gray-300);
  border-radius: 8px;
  font-size: 13px;
  color: var(--gray-600);
  text-align: center;
}

.access-rule-editor {
  margin-top: 12px;
  padding: 12px 14px;
  border: 2px solid #fed7aa;
  border-radius: 10px;
  background: #fffaf5;
}

.access-rule-editor-title {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 700;
  color: var(--gray-900);
}

.access-rule-editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #fed7aa;
}

.access-rules-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.access-rule-card {
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--gray-200);
  background: var(--gray-50);
}

.access-rule-top {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) 110px auto;
  gap: 8px;
  align-items: end;
  margin-bottom: 8px;
}

.access-rule-top .field {
  margin: 0;
}

.access-rule-remove {
  justify-self: end;
}

.access-sections-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 4px;
}

.access-section-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--gray-800);
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid var(--gray-200);
  background: var(--white);
}

.access-section-check input {
  margin: 0;
}

.access-picker {
  position: relative;
}

.access-picker-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 6px;
}

.access-picker-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  font-size: 12px;
  color: var(--gray-800);
}

.access-picker-chip button {
  border: none;
  background: transparent;
  color: var(--gray-500);
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 0;
}

.access-picker-chip button:hover {
  color: var(--gray-900);
}

.access-picker-input-wrap {
  position: relative;
}

.access-picker-input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--gray-300);
  border-radius: 8px;
  font-size: 13px;
}

.access-picker-suggest {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  z-index: 30;
  max-height: 220px;
  overflow: auto;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

.access-picker-option {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  background: var(--white);
  padding: 8px 10px;
  font-size: 13px;
  color: var(--gray-800);
  cursor: pointer;
}

.access-picker-option:hover,
.access-picker-option.is-active {
  background: var(--gray-50);
}

.access-picker-empty {
  padding: 8px 10px;
  font-size: 12px;
  color: var(--gray-500);
}

.access-text-input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--gray-300);
  border-radius: 8px;
  font-size: 13px;
}

.btn-compact {
  min-height: var(--control-h-compact);
  padding: 6px 12px;
  font-size: var(--text-sm);
}

.access-save-status {
  margin-top: 12px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 13px;
}

.access-save-status.is-ok {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}

.access-save-status.is-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.access-denied-banner {
  margin: 24px 32px;
  padding: 24px 28px;
  border-radius: 12px;
  border: 1px solid var(--gray-200);
  background: var(--white);
  text-align: center;
}

.access-denied-banner h2 {
  margin: 0 0 8px;
  font-size: 20px;
}

.access-denied-banner p {
  margin: 0;
  color: var(--gray-600);
}

@media (max-width: 960px) {
  .access-split-layout {
    grid-template-columns: 1fr;
  }

  .access-rule-top {
    grid-template-columns: 1fr;
  }
}

/* ── Огонёк: чат-помощник (в боковом меню) ── */
.ogonyok-assistant {
  position: relative;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-top: auto;
  flex-shrink: 0;
  padding: 14px 8px 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.dept-nav-fullscreen,
.ogonyok-screen-btn {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--gray-200);
  background: var(--white);
  color: var(--charcoal, #2e3133);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.ogonyok-screen-btn {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 40;
}

.ogonyok-screen-btn:hover,
.ogonyok-screen-btn[aria-pressed="true"] {
  background: #fff6ef;
  border-color: #f0c9a8;
  color: #d9773a;
}

.app {
  position: relative;
}

html.ogonyok-screen-fill,
html.bitrix-embed.ogonyok-screen-fill,
body.bitrix-embed.ogonyok-screen-fill,
.app.bitrix-embed.ogonyok-screen-fill,
.app:fullscreen,
.app:-webkit-full-screen,
.app.ogonyok-screen-fill {
  position: fixed;
  inset: 0;
  z-index: 100000;
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
  max-height: none;
  background: var(--gray-50);
  overflow: hidden;
}

html.ogonyok-screen-fill,
html.ogonyok-screen-fill body {
  overflow: hidden;
}

.app:fullscreen .app-shell,
.app:-webkit-full-screen .app-shell,
.app.ogonyok-screen-fill .app-shell {
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.ogonyok-widget {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.ogonyok-assistant-fab {
  appearance: none;
  border: none;
  padding: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  box-shadow: 0 6px 24px rgba(217, 119, 58, 0.35), 0 2px 8px rgba(0, 0, 0, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  animation: ogonyok-fab-float 2.6s ease-in-out infinite;
}

.ogonyok-assistant-fab:hover {
  transform: scale(1.06);
  box-shadow: 0 8px 28px rgba(217, 119, 58, 0.45);
}

.ogonyok-flame {
  display: block;
  width: 52px;
  height: 52px;
  object-fit: contain;
  border-radius: 50%;
}

.ogonyok-widget-caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
  pointer-events: none;
}

.ogonyok-fab-label {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  line-height: 1.2;
}

.ogonyok-fab-hint {
  font-size: 11px;
  font-weight: 400;
  color: #e8a06a;
  line-height: 1.25;
}

.ogonyok-assistant.is-open .ogonyok-assistant-fab {
  animation: none;
  box-shadow: 0 0 0 2px var(--orange-muted), 0 4px 16px rgba(217, 119, 58, 0.35);
}

.ogonyok-assistant-panel {
  position: fixed;
  left: 14px;
  bottom: 108px;
  z-index: 1200;
  width: min(320px, calc(100vw - 28px));
  max-height: min(420px, 58vh);
  display: none;
  flex-direction: column;
  border-radius: 14px;
  border: 1px solid var(--gray-200);
  background: var(--white);
  box-shadow: 0 16px 48px rgba(29, 33, 36, 0.22);
  overflow: hidden;
}

.ogonyok-assistant-panel:not([hidden]) {
  display: flex;
}

.ogonyok-assistant-panel.is-menu {
  background: #1a1410;
  border-color: #4a3020;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.38), 0 0 0 1px rgba(232, 140, 60, 0.18);
}

.ogonyok-menu-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 12px 8px 16px;
}

.ogonyok-menu-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ogonyok-menu-bulb {
  display: grid;
  place-items: center;
  color: #f0a04a;
  filter: drop-shadow(0 0 6px rgba(240, 160, 74, 0.75));
}

.ogonyok-assistant-panel.is-menu .ogonyok-assistant-close {
  color: #f3e6da;
}

.ogonyok-assistant-panel.is-menu .ogonyok-assistant-close:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.ogonyok-menu {
  display: grid;
  gap: 8px;
  padding: 6px 14px 16px;
}

.ogonyok-menu[hidden] {
  display: none;
}

.ogonyok-menu-btn {
  appearance: none;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 40px;
  padding: 6px 14px 6px 8px;
  border-radius: 999px;
  border: 1px solid #e08a3c;
  background: #241910;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
}

.ogonyok-menu-btn:hover {
  background: #322218;
  border-color: #f0a04a;
}

.ogonyok-menu-ico {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  color: #f0a04a;
}

.ogonyok-assistant-panel.is-chat .ogonyok-menu-head {
  background: #faf9f7;
  border-bottom: 1px solid var(--gray-200);
}

.ogonyok-assistant-panel.is-chat .ogonyok-menu-brand {
  color: var(--gray-800);
  letter-spacing: 0.08em;
}

.ogonyok-assistant-panel.is-chat .ogonyok-menu-bulb {
  filter: none;
}

.ogonyok-assistant-panel.is-chat .ogonyok-assistant-close {
  color: var(--gray-600);
}

.ogonyok-chat {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--white);
}

.ogonyok-chat[hidden] {
  display: none;
}

.ogonyok-chat-back {
  appearance: none;
  border: 0;
  border-bottom: 1px solid var(--gray-200);
  background: #faf9f7;
  color: var(--gray-600);
  text-align: left;
  padding: 8px 14px;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

.ogonyok-chat-back:hover {
  color: var(--orange-hover);
}

.ogonyok-assistant-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--gray-200);
  background: linear-gradient(180deg, #fff 0%, #faf9f7 100%);
}

.ogonyok-assistant-avatar {
  flex-shrink: 0;
  border-radius: 50%;
}

.ogonyok-assistant-name {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--gray-800);
}

.ogonyok-assistant-status {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--gray-400);
}

.ogonyok-assistant-close {
  appearance: none;
  border: none;
  margin-left: auto;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: transparent;
  color: var(--gray-600);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.ogonyok-assistant-close:hover {
  background: var(--gray-100);
}

.ogonyok-messages {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 120px;
  background: #faf9f7;
}

.ogonyok-msg {
  max-width: 92%;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.4;
  animation: ogonyok-msg-in 0.25s ease;
}

.ogonyok-msg--bot {
  align-self: flex-start;
  background: var(--white);
  border: 1px solid var(--gray-200);
  color: var(--gray-800);
}

.ogonyok-msg--user {
  align-self: flex-end;
  background: var(--orange);
  color: #fff;
}

.ogonyok-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 12px 10px;
}

.ogonyok-quick-btn {
  appearance: none;
  border: 1px solid var(--gray-200);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  background: var(--white);
  color: var(--gray-800);
  cursor: pointer;
}

.ogonyok-quick-btn:hover {
  border-color: var(--orange-muted);
  color: var(--orange-hover);
}

.ogonyok-input-row {
  display: flex;
  gap: 8px;
  padding: 10px 12px 12px;
  border-top: 1px solid var(--gray-200);
  background: var(--white);
}

.ogonyok-input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 14px;
}

.ogonyok-input:focus {
  outline: none;
  border-color: var(--orange-muted);
  box-shadow: 0 0 0 2px rgba(217, 119, 58, 0.15);
}

.ogonyok-send {
  appearance: none;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--orange);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}

.ogonyok-send:hover {
  background: var(--orange-hover);
}

@keyframes ogonyok-fab-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes ogonyok-msg-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ——— Перспективные проекты ——— */
.dept-section.active#dept-development {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  min-height: 0;
  overflow: visible;
  --dev-gantt-viewport-offset: 168px;
}

.development-page-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 20px 16px;
  overflow: visible;
}

.dept-section.active#dept-development .dept-page-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.dev-module-shell {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.dev-module-tabs,
.module-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  padding: 12px 0 0;
  margin-bottom: 14px;
  flex-shrink: 0;
}

.dev-module-tab,
.module-tab {
  appearance: none;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  color: var(--gray-800);
  padding: 9px 14px;
  cursor: pointer;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  min-width: 140px;
  min-height: 0;
  box-sizing: border-box;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.22s ease;
  box-shadow: none;
}

.dev-module-tab[hidden],
.module-tab[hidden] {
  display: none !important;
}

.dev-module-tab:hover:not(.active),
.module-tab:hover:not(.active) {
  background: var(--white);
  color: var(--gray-800);
  border-color: #f0c9a8;
  transform: translateY(-1px);
  box-shadow: none;
}

.dev-module-tab.active,
.module-tab.active {
  background: var(--peach);
  color: var(--gray-800);
  border-color: #f0c9a8;
  box-shadow: none;
  z-index: 2;
  padding-bottom: 9px;
  margin-bottom: 0;
}

.dev-module-tab-kicker,
.module-tab-kicker {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: #9a9590;
}

.dev-module-tab:hover:not(.active) .dev-module-tab-kicker,
.module-tab:hover:not(.active) .module-tab-kicker {
  color: #9a9590;
}

.dev-module-tab.active .dev-module-tab-kicker,
.module-tab.active .module-tab-kicker {
  color: var(--orange);
  font-weight: 600;
}

.dev-module-tab-title,
.module-tab-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}

.dev-module-tab.active .dev-module-tab-title,
.module-tab.active .module-tab-title {
  color: var(--gray-800);
}

.dev-module-tab:focus-visible,
.module-tab:focus-visible {
  outline: 2px solid rgba(217, 119, 58, 0.55);
  outline-offset: 2px;
}

.dev-module-body,
.module-body {
  flex: 1 0 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  overflow: visible;
  box-shadow: 0 1px 2px rgba(46, 49, 51, 0.04);
}

.bitrix-embed .dev-module-body,
.bitrix-embed .module-body {
  overflow: hidden;
}

.bitrix-embed .dept-section.active#dept-development .dev-module-shell {
  flex: 1 1 auto;
  min-height: 0;
}

.bitrix-embed .dept-section.active#dept-development .dev-module-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.dev-module-shell,
.module-shell {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: 0;
}

.development-tab-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 14px 16px 16px;
}

.development-tab-panel[hidden] {
  display: none !important;
}

.dept-section.active#dept-development .dev-module-tabs {
  position: sticky;
  top: 0;
  z-index: 24;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  background: var(--paper);
  padding: 10px 0 8px;
  margin-bottom: 8px;
}

#dept-development .dev-tab-groups {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

#dept-development .dev-tab-group {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}

#dept-development .dev-module-tab {
  flex-direction: row;
  align-items: center;
  min-width: 0;
  min-height: 32px;
  padding: 6px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
  text-align: center;
}

#dept-development .dev-module-tab:hover:not(.active) {
  transform: none;
  background: #faf9f7;
  border-color: transparent;
  box-shadow: none;
}

#dept-development .dev-module-tab.active {
  background: var(--peach);
  border-color: transparent;
  color: var(--gray-800);
  padding: 6px 12px;
}

#dept-development .filter-bar--gantt {
  flex: 1 1 auto;
  min-width: 0;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  overflow-x: auto;
  margin-left: auto;
  scrollbar-width: none;
}

#dept-development .filter-bar--gantt::-webkit-scrollbar {
  display: none;
}

#dept-development .gantt-filter-chip {
  flex-direction: row;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 4px 8px 4px 10px;
  border-radius: 9px;
}

#dept-development .gantt-filter-chip span {
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

#dept-development .filter-bar--gantt .btn-secondary {
  align-self: center;
  min-height: 34px;
  height: 34px;
}

.dept-section.active#dept-development .development-tab-panel--gantt {
  overflow: hidden;
  padding: 12px;
  min-height: 520px;
  flex: 1 1 auto;
}

.bitrix-embed .dept-section.active#dept-development .development-tab-panel--gantt {
  min-height: 0;
  max-height: none;
  flex: 1 1 auto;
  overflow: hidden;
}

.development-tab-panel--gantt .development-gantt-root,
.development-tab-panel--gantt .development-gantt-root--full {
  border: none;
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px var(--gray-200);
  flex: 1 1 auto;
  min-height: 0;
}

.development-tab-panel--gcp,
.development-tab-panel--intake,
.development-tab-panel--checklist,
.development-tab-panel--project {
  flex: 1 1 auto;
  min-height: 0;
  align-items: stretch;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.development-project-panel[hidden] {
  display: none !important;
}

.dev-project-paths {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.dev-project-path {
  appearance: none;
  font: inherit;
  color: var(--gray-800);
  cursor: pointer;
  text-align: left;
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: 10px;
  padding: 9px 14px;
  min-width: 160px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.22s ease;
}

.dev-project-path:hover {
  transform: translateY(-1px);
  border-color: #f0c9a8;
}

.dev-project-path.active {
  border-color: #f0c9a8;
  background: var(--peach);
}

.dev-project-path-kicker {
  font-size: 11px;
  color: #9a9590;
}

.dev-project-path.active .dev-project-path-kicker {
  color: var(--orange);
  font-weight: 600;
}

.dev-project-path-title {
  font-size: 13px;
  font-weight: 600;
}

.bitrix-embed .development-tab-panel--gcp,
.bitrix-embed .development-tab-panel--intake,
.bitrix-embed .development-tab-panel--checklist,
.bitrix-embed .development-tab-panel--project {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.development-panel--standalone.development-panel--project {
  max-width: none;
}

.development-tab-panel--checklist {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.development-gcp-fields--project {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.dev-project-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.dev-user-pick {
  position: relative;
  min-width: 220px;
}

.dev-user-pick-input {
  width: 100%;
  height: 36px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  padding: 0 10px;
  background: var(--white);
  color: var(--charcoal, #2e3133);
}

.dev-user-pick-menu {
  position: absolute;
  z-index: 8;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(46, 49, 51, 0.12);
  max-height: 220px;
  overflow: auto;
}

.dev-user-pick-menu button {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: #fff;
  padding: 7px 10px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
}

.dev-user-pick-menu button:hover {
  background: #fff6ef;
}

.dev-user-pick-empty {
  margin: 0;
  padding: 8px 10px;
  color: #5c5854;
  font-size: 13px;
}

.dev-stage-responsibles {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 12px 0 4px;
}

.dev-stage-documents {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--gray-200);
}

.dev-stage-documents-title {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray-600);
}

.dev-stage-documents-hint {
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--gray-500);
  line-height: 1.45;
}

.dev-stage-documents-empty {
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--gray-500);
  line-height: 1.45;
}

.dev-stage-documents-list {
  margin: 0;
  padding-left: 18px;
  font-size: 12px;
  line-height: 1.45;
}

.dev-topic-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 10px;
}

.dev-topic-row,
.dev-topic-add-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(160px, 190px) 128px 146px 96px;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.dev-topic-row > .dev-fix-assign,
.dev-topic-add-row > .dev-fix-assign,
.dev-topic-row > .dev-topic-due,
.dev-topic-add-row > .dev-topic-due,
.dev-topic-add-row > .btn-compact {
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}

.dev-topic-row > .dev-topic-remove {
  width: 100%;
  text-align: center;
}

.dev-topic-add-row {
  margin-top: 8px;
  background: transparent;
  border-style: dashed;
}

.dev-topic-group {
  margin: 0 0 10px;
  padding: 8px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: #faf9f7;
}

.dev-topic-group-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.dev-topic-group-title {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
}

.dev-topic-group-count {
  min-width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--gray-200);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: var(--gray-600);
}

.dev-topic-row .dev-topic-name {
  flex: 1;
  min-width: 160px;
}

.dev-topic-row .dev-user-pick,
.dev-topic-add-row .dev-user-pick {
  min-width: 0;
  width: 100%;
  margin-left: 0;
}

.dev-topic-group-head .dev-user-pick {
  min-width: 160px;
  width: 190px;
  margin-left: auto;
}

.dev-fix-assign.is-fixed {
  background: #eef8f1;
  border-color: #b7dfc4;
  color: #1f7a45;
}

.dev-topic-due {
  height: 36px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  padding: 0 8px;
  background: #fff;
  color: var(--charcoal, #2e3133);
}

.dev-topic-add-group,
.dev-add-stage-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.dev-topic-add-row .development-upload-input,
.dev-topic-add-group .development-upload-input,
.dev-add-stage-row .development-upload-input {
  flex: 1;
  min-width: 160px;
}

.dev-chart-etalon-due {
  flex: 0 0 auto;
  font-size: 12px;
  color: #5c5854;
}

.dev-chart-head-wrap {
  position: relative;
  min-width: 0;
}

.dev-gantt-zoom {
  position: absolute;
  top: 4px;
  right: 8px;
  z-index: 6;
  display: flex;
  gap: 4px;
}

.dev-gantt-zoom-btn {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 1px solid var(--gray-200);
  background: #fff;
  color: var(--gray-800);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.dev-gantt-zoom-btn:hover {
  border-color: #f0c9a8;
  color: #d9773a;
}

.dev-gantt-zoom-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.dev-topic-main {
  flex: 1;
  min-width: 180px;
}

.dev-topic-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.dev-topic-name {
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
}

.dev-topic-meta {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--gray-500);
}

.dev-topic-remove {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--gray-400);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  padding: 4px 4px;
}

.dev-topic-remove:hover {
  color: var(--err);
}

.dev-archive-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dev-archive-empty {
  margin: 0;
  color: var(--gray-500);
  font-size: 14px;
}

.dev-archive-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.dev-archive-title {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
}

.dev-archive-meta {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--gray-500);
}

.dev-archive-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.dev-archive-delete {
  color: #9b3a2f;
}

.dev-checklist-topic-row--stage {
  padding: 8px 0;
}

.dev-stage-responsible-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(46, 49, 51, 0.04);
}

.dev-stage-responsible-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.dev-stage-responsible-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  flex-shrink: 0;
}

.dev-stage-responsible-title {
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}

.dev-stage-responsible-hint {
  font-size: 11px;
  color: var(--gray-500);
  margin: 0 0 6px;
}

.dev-checklist-topic-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 220px) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--gray-100);
}

.dev-checklist-topic-row:last-child {
  border-bottom: none;
}

.dev-checklist-topic-label {
  font-size: 13px;
  line-height: 1.35;
}

.dev-checklist-topic-meta {
  font-size: 11px;
  color: var(--ok);
  margin-top: 2px;
}

.import-module-shell,
.marketing-module-shell,
.wiki-module-shell {
  margin-top: 4px;
}

.marketing-module-shell {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.import-tab-stage .import-module-shell {
  flex: 1;
  min-height: 0;
}

.import-tab-stage .module-tabs {
  padding-left: 16px;
  padding-right: 16px;
}

.import-tab-stage .module-body {
  flex: 1;
  min-height: 0;
  margin: 0 16px 16px;
}

.import-tab-stage .tab-panel {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 14px 16px 16px;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.import-tab-stage .tab-panel[hidden] {
  display: none !important;
}

.marketing-tab-panel {
  padding: 14px 16px 28px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.marketing-tab-panel[hidden] {
  display: none !important;
}

/* Вне Bitrix страница должна расти и скроллиться целиком — не запирать overflow. */
.dept-section.active#dept-marketing .marketing-page.panel-section {
  overflow: visible;
  flex: 0 1 auto;
  min-height: auto;
}

.dept-section.active#dept-marketing .marketing-module-shell,
.dept-section.active#dept-marketing .marketing-module-shell .module-body {
  overflow: visible;
  flex: 0 1 auto;
  min-height: auto;
}

.dept-section.active#dept-marketing .marketing-module-shell .marketing-tab-panel {
  overflow: visible;
  flex: 0 1 auto;
  min-height: auto;
}

.marketing-agent-panel {
  padding-top: 4px;
}

.marketing-agent-filter-stale {
  color: #8a5a2b;
}

.wiki-module-shell {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.bitrix-embed #dept-wiki.active .wiki-module-shell,
.bitrix-embed #dept-wiki.active .wiki-module-body {
  flex: 0 0 auto;
  min-height: auto;
  height: auto;
  overflow: visible;
}

.wiki-module-shell .wiki-layout {
  flex: 1;
  min-height: 0;
}

.wiki-home-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
}

.wiki-home-card {
  border: 1px solid rgba(217, 119, 58, 0.18);
  border-radius: 12px;
  padding: 14px;
  text-align: left;
  background: linear-gradient(165deg, #faf6f2 0%, #f3ebe3 52%, #eadfce 100%);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease, background 0.15s ease;
}

.wiki-home-card:hover {
  border-color: rgba(217, 119, 58, 0.42);
  background: linear-gradient(155deg, #f8e4d2 0%, #efcfa8 42%, #e5b888 100%);
  box-shadow: 0 8px 20px rgba(217, 119, 58, 0.14);
  transform: translateY(-1px);
}

.development-panel--standalone {
  max-width: 980px;
  width: 100%;
  margin: 0;
  border: none;
  background: transparent;
  padding: 0;
  gap: 10px;
}

.development-panel--standalone.development-panel--checklist {
  max-width: none;
  display: flex;
  flex-direction: column;
  overflow: visible;
}

.development-panel--standalone.development-panel--gcp,
.development-panel--standalone.development-panel--checklist {
  border-top: none;
}

.development-panel--standalone .development-panel-head {
  padding-bottom: 2px;
}

.development-load-error {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 18px 20px;
}

.development-load-error .btn-secondary {
  min-width: 140px;
}

.development-gantt-root {
  flex: 1 1 auto;
  min-height: 480px;
  height: 100%;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: var(--white);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.bitrix-embed .development-gantt-root {
  min-height: 0;
  max-height: 100%;
}

.development-gantt-root--full {
  flex: 1 1 auto;
  min-height: 480px;
  height: 100%;
}

.marketing-module-shell .module-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.marketing-module-shell .marketing-tab-panel {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.bitrix-embed .marketing-module-shell .marketing-tab-panel {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.marketing-page.panel-section {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding-bottom: 24px;
  overflow: hidden;
}

.bitrix-embed .dept-section.active#dept-marketing .marketing-page.panel-section {
  padding-bottom: 0;
  overflow: hidden;
  flex: 1 1 auto;
  min-height: 0;
}

.bitrix-embed .dept-section.active#dept-marketing .marketing-module-shell,
.bitrix-embed .dept-section.active#dept-marketing .marketing-module-shell .module-body {
  overflow: hidden;
  flex: 1 1 auto;
  min-height: 0;
}

.bitrix-embed .dept-section.active#dept-marketing .marketing-module-shell .marketing-tab-panel {
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1 1 auto;
  min-height: 0;
}

.dept-section.active#dept-marketing .dept-page-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.dept-section.active#dept-technical .dept-page-body,
.dept-section.active#dept-finance .dept-page-body,
.dept-section.active#dept-legal .dept-page-body,
.dept-section.active#dept-admin .dept-page-body,
.dept-section.active#dept-archive .dept-page-body,
.dept-section.active#dept-settings .dept-page-body,
.dept-section.active#dept-zastro .dept-page-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.technical-page.panel-section {
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  min-height: 0;
  padding-bottom: 24px;
}

.bitrix-embed .dept-section.active#dept-marketing,
.bitrix-embed .dept-section.active#dept-technical,
.bitrix-embed .dept-section.active#dept-finance,
.bitrix-embed .dept-section.active#dept-legal,
.bitrix-embed .dept-section.active#dept-admin,
.bitrix-embed .dept-section.active#dept-archive,
.bitrix-embed .dept-section.active#dept-settings,
.bitrix-embed .dept-section.active#dept-development,
.bitrix-embed .dept-section.active#dept-wiki,
.bitrix-embed .dept-section.active#dept-zastro {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.bitrix-embed .dept-section.active#dept-technical .dept-page-body,
.bitrix-embed .dept-section.active#dept-finance .dept-page-body,
.bitrix-embed .dept-section.active#dept-legal .dept-page-body,
.bitrix-embed .dept-section.active#dept-admin .dept-page-body,
.bitrix-embed .dept-section.active#dept-archive .dept-page-body,
.bitrix-embed .dept-section.active#dept-settings .dept-page-body,
.bitrix-embed .dept-section.active#dept-wiki .dept-page-body,
.bitrix-embed .dept-section.active#dept-zastro .dept-page-body {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.bitrix-embed .dept-section.active#dept-development .dept-page-body,
.bitrix-embed .dept-section.active#dept-marketing .dept-page-body {
  overflow: hidden;
}

.dev-gcp-mode-switch {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 4px;
  margin: 12px 0 14px;
  border-radius: 10px;
  background: var(--gray-100);
  border: 1px solid var(--gray-200);
}

.dev-gcp-mode-btn {
  appearance: none;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--gray-600);
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.dev-gcp-mode-btn:hover:not(.active) {
  color: var(--gray-800);
  background: rgba(255, 255, 255, 0.65);
}

.dev-gcp-mode-btn.active {
  background: var(--white);
  color: var(--gray-800);
  box-shadow: 0 1px 4px rgba(46, 49, 51, 0.08);
}

.development-gcp-shared {
  margin-bottom: 4px;
}

.dev-gcp-mode-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dev-gcp-mode-panel[hidden] {
  display: none !important;
}

.dev-gcp-mode-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--gray-500);
}

.dev-gcp-manual-grid {
  display: grid;
  grid-template-columns: minmax(180px, 240px) auto;
  gap: 8px;
  align-items: end;
}

.dev-gcp-manual-action {
  padding-bottom: 1px;
}

.dev-chart-tool-btn--primary {
  border-color: rgba(245, 124, 0, 0.45);
  background: rgba(245, 124, 0, 0.08);
  color: var(--orange-hover);
}

.development-panels {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  flex-shrink: 0;
}

.development-panels--tools {
  padding-top: 4px;
  border-top: none;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: stretch;
}

.development-panels--tools .development-panel {
  padding: 10px 12px;
  background: var(--white);
  border-top-width: 2px;
  gap: 8px;
}

.development-panel-head--compact {
  gap: 2px;
}

.development-panel-head--compact .development-panel-title,
.development-panels--tools .development-panel-title {
  font-size: 13px;
}

.development-panel-head--compact .development-panel-lead,
.development-panels--tools .development-panel-lead {
  font-size: 11px;
  line-height: 1.35;
  margin: 0;
}

.development-gcp-toolbar {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.development-gcp-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
}

.development-gcp-file-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.development-gcp-toolbar.is-dragover,
.development-gcp-toolbar.dragover {
  outline: 2px dashed var(--orange-muted);
  outline-offset: 2px;
  border-radius: 8px;
}

.development-gcp-toolbar-action {
  display: flex;
  align-items: flex-end;
  padding-bottom: 1px;
}

.development-gcp-file-pick {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 34px;
  padding: 5px 10px;
  border: 1px dashed var(--gray-300);
  border-radius: 8px;
  background: var(--gray-50);
  cursor: pointer;
  box-sizing: border-box;
}

.development-gcp-file-pick strong {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.development-gcp-file-pick .drop-hint {
  font-size: 10px;
  color: var(--gray-500);
}

.development-upload-field--file {
  position: relative;
  cursor: pointer;
}

.development-checklist-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px 12px;
}

.development-checklist-stages {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.development-checklist-stages-label {
  margin: 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray-500);
}

.development-checklist-stages-empty {
  margin: 0;
  font-size: 11px;
  color: var(--gray-500);
}

.dev-checklist-stage-rail .dev-stage-rail {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 4px;
}

.dev-checklist-stage-rail .dev-stage-rail-item {
  width: auto;
  min-height: 0;
  padding: 4px 8px 4px 6px;
  border: 1px solid var(--gray-200);
  border-radius: 999px;
  font-size: 11px;
  background: var(--gray-50);
  gap: 5px;
}

.dev-stage-pick-caret {
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid var(--gray-500);
  margin-left: 2px;
  flex-shrink: 0;
  transition: transform 0.15s ease;
}

.dev-stage-pick-btn.is-selected .dev-stage-pick-caret {
  transform: rotate(90deg);
}

.dev-stage-topics-hint {
  flex-shrink: 0;
  margin: 0;
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(59, 130, 246, 0.06);
  border: 1px dashed rgba(59, 130, 246, 0.25);
  font-size: 11px;
  color: var(--gray-600);
}

.dev-stage-topics-list .dev-stage-topics-section {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}

.dev-stage-topics-list .dev-stage-topics-section > strong {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gray-600);
}

.dev-stage-topics-list .dev-stage-topics-section ul {
  margin: 0;
  padding-left: 16px;
}

.dev-stage-topics-list .dev-stage-topics-section li {
  margin-bottom: 2px;
}

.dev-checklist-stage-rail .dev-stage-rail-item.is-selected {
  border-color: rgba(59, 130, 246, 0.45);
  background: rgba(59, 130, 246, 0.08);
  outline: none;
}

.dev-checklist-stage-rail .dev-stage-rail-dot {
  width: 7px;
  height: 7px;
  margin-top: 1px;
}

.development-checklist-copy {
  min-width: 220px;
  flex: 1 1 280px;
}

.development-checklist-toolbar .development-panel-body--actions {
  flex: 0 1 auto;
  margin-left: auto;
}

.development-upload-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

@media (max-width: 1180px) {
  .development-gcp-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .development-gcp-fields--project {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 960px) {
  .development-panels--tools {
    grid-template-columns: 1fr;
  }

  .development-gcp-fields {
    grid-template-columns: 1fr;
  }

  .development-gcp-fields--project {
    grid-template-columns: 1fr;
  }

  .development-gcp-file-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .dept-section.active#dept-development {
    --dev-gantt-viewport-offset: 168px;
  }

  .development-upload-fields {
    grid-template-columns: 1fr;
  }

  .development-checklist-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .development-checklist-toolbar .development-panel-body--actions {
    margin-left: 0;
  }
}

.development-upload-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.development-upload-field-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--gray-600);
}

.development-upload-select,
.development-upload-input {
  width: 100%;
  min-height: var(--control-h);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: var(--control-pad-y) var(--control-pad-x);
  font-size: var(--text-base);
  background: var(--white);
  color: var(--gray-800);
  box-sizing: border-box;
}

.development-upload-input::placeholder {
  color: var(--gray-400);
}

@media (max-width: 960px) {
  .development-panels {
    grid-template-columns: 1fr;
  }
}

.development-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: var(--gray-50);
  min-width: 0;
}

.development-panel--gcp {
  border-top: 3px solid var(--orange);
}

.development-panel--checklist {
  border-top: 3px solid #3b82f6;
}

.development-panel-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.development-panel-title {
  margin: 0;
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--gray-900);
}

.development-panel-lead {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--gray-600);
}

.development-panel-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.development-panel-body--actions {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.development-gcp-drop {
  width: 100%;
}

.development-panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.development-upload-status {
  font-size: 12px;
  line-height: 1.4;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  color: var(--gray-700);
}

.development-upload-status.is-ok {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.development-upload-status.is-error {
  border-color: #fca5a5;
  background: #fef2f2;
  color: #991b1b;
}

.development-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: var(--gray-50);
}

.development-toolbar-note p {
  margin: 0;
  max-width: 720px;
  font-size: 13px;
  color: var(--gray-700);
}

.development-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.development-mockup-tabs {
  display: none;
}

.development-mockup-tab {
  appearance: none;
  border: 1px solid var(--gray-300);
  border-radius: 999px;
  background: var(--white);
  color: var(--gray-700);
  font-size: 12px;
  padding: 7px 12px;
  cursor: pointer;
}

.development-mockup-tab.active {
  border-color: var(--orange);
  background: rgba(245, 124, 0, 0.1);
  color: var(--orange-hover);
  font-weight: 600;
}

.dev-chart-v2 {
  --dev-side-width: 460px;
  --dev-gantt-row-h: 48px;
  --dev-tree-base-padding: 8px;
  --dev-tree-indent-step: 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  background: #f7f6f4;
}

.dev-chart-header-row {
  display: grid;
  grid-template-columns: var(--dev-side-width) minmax(0, 1fr);
  flex: 0 0 auto;
  z-index: 30;
  border-bottom: 1px solid var(--gray-200);
  background: #f3f2f0;
  box-shadow: 0 6px 18px rgba(46, 49, 51, 0.08);
}

.development-gantt-root .dev-chart-v2 {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
}

.dev-chart-with-dates {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.dev-gantt-main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.dev-mile-add-form {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
}

.dev-mile-add-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 28px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 13px;
}

.dev-mile-task-remove {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: var(--gray-600);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.dev-chart-side-row--milestone,
.dev-chart-track-row--milestone {
  height: 80px;
  min-height: 80px;
  max-height: 80px;
}

.dev-chart-side-row--milestone {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: center;
  row-gap: 4px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.dev-chart-side-row--milestone > .dev-tree-v2-toggle {
  flex: 0 0 auto;
  width: 100%;
  max-width: none;
  height: 22px;
  min-height: 22px;
  font-size: 13px;
  font-weight: 600;
}

.dev-mile-inline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  width: 100%;
  min-width: 0;
  padding-left: 26px;
  box-sizing: border-box;
}

.dev-mile-inline label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  margin: 0;
}

.dev-mile-inline-k {
  font-size: 11px;
  font-weight: 600;
  line-height: 1.1;
  color: #6f6a65;
}

.dev-mile-inline .dev-mile-monthpair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 4px;
  min-width: 0;
}

.dev-mile-inline .dev-mile-monthpair select {
  width: 100%;
  height: 28px;
  min-height: 28px;
  max-width: none;
  margin: 0;
  padding: 0 18px 0 8px;
  border: 1px solid #e4dfd8;
  border-radius: 8px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239a9590' d='M3 5l3 3 3-3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 5px center;
  background-size: 10px 10px;
  box-sizing: border-box;
  font-size: 12px;
  font-weight: 600;
  line-height: 26px;
  color: var(--gray-800);
  appearance: none;
  cursor: pointer;
}

.dev-mile-inline .dev-mile-monthpair select.is-placeholder {
  color: #9a948e;
  font-weight: 500;
}

.dev-mile-inline .dev-mile-monthpair select:hover {
  border-color: #d4cdc4;
}

.dev-mile-inline .dev-mile-monthpair select:focus-visible {
  outline: none;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(217, 119, 58, 0.18);
}

.dev-chart-track-row--milestone .dev-mile-wrap {
  top: 34px;
}

.dev-chart-track-row--milestone .dev-mile-bar {
  top: 35px;
}

.development-gantt-root .dev-chart-scroll-area {
  min-height: 0;
  overflow: hidden;
  grid-template-rows: minmax(0, 1fr);
}

.dev-chart-scroll-area {
  display: grid;
  grid-template-columns: var(--dev-side-width) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.dev-chart-corner {
  padding: 10px 12px;
  border-right: 1px solid var(--gray-200);
  background: #f3f2f0;
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-700);
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
}

.dev-chart-corner-top {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.dev-chart-corner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.dev-chart-tool-btn {
  appearance: none;
  border: 1px solid var(--gray-300);
  border-radius: 6px;
  background: #fff;
  color: var(--gray-700);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  padding: 3px 7px;
  cursor: pointer;
}

.dev-chart-tool-btn:hover:not(:disabled) {
  border-color: var(--gray-400);
  background: var(--gray-50);
}

.dev-chart-tool-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.dev-chart-tool-btn--done {
  color: #2e7d32;
  border-color: rgba(46, 125, 50, 0.35);
}

.dev-chart-tool-btn--archive {
  color: var(--gray-600);
  border-style: dashed;
}

.dev-chart-object-check input {
  width: 14px;
  height: 14px;
  margin: 0;
  cursor: pointer;
}

.dev-tree-v2-toggle--uk {
  font-size: 13px;
  font-weight: 700;
}

.dev-tree-v2-toggle--developer {
  font-size: 12px;
  font-weight: 600;
}

.dev-tree-v2-toggle--jk {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-700);
}

.dev-chart-corner-note {
  font-size: 12px;
  font-weight: 500;
  color: var(--gray-500);
}

.dev-chart-head-track {
  overflow-x: auto;
  overflow-y: hidden;
  background: #f3f2f0;
  cursor: grab;
}

.dev-chart-head-track.is-panning {
  cursor: grabbing;
  user-select: none;
}

.dev-chart-head-inner {
  position: relative;
  min-width: 100%;
}

.dev-timeline-scale {
  display: flex;
  flex-direction: column;
}

.dev-timeline-scale-row {
  display: grid;
  grid-template-columns: repeat(var(--dev-timeline-months, 24), 1fr);
  min-height: 22px;
}

.dev-timeline-scale-row--year {
  min-height: 30px;
  font-size: 14px;
  font-weight: 700;
  color: var(--gray-800);
  background: #e8e6e2;
  border-bottom: 1px solid var(--gray-200);
}

.dev-timeline-scale-row--quarter {
  min-height: 26px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-700);
  background: #f0eeeb;
  border-bottom: 1px solid var(--gray-200);
}

.dev-timeline-scale-row--month {
  min-height: 28px;
  font-size: 13px;
  font-weight: 500;
  color: var(--gray-600);
  background: #f7f6f4;
}

.dev-timeline-scale-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid rgba(212, 208, 203, 0.65);
  padding: 0 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}

.dev-stage-bands-row {
  position: relative;
  height: 30px;
  border-bottom: 1px solid var(--gray-200);
  background: #faf9f8;
}

.dev-stage-band {
  position: absolute;
  top: 4px;
  bottom: 4px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
  overflow: hidden;
}

.dev-stage-band span {
  display: block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dev-chart-v2 .dev-gantt-months {
  display: grid;
  grid-template-columns: repeat(var(--dev-timeline-months, 24), 1fr);
  min-height: 28px;
}

.dev-chart-tree {
  min-height: 0;
  height: 100%;
  overflow: auto;
  padding: 0;
  border-right: 1px solid var(--gray-200);
  background: #faf9f8;
  display: flex;
  flex-direction: column;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.dev-chart-body-inner {
  position: relative;
  display: flex;
  flex-direction: column;
}

.dev-chart-now-line {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 14px;
  margin-left: -7px;
  border: 0;
  background: rgba(217, 119, 58, 0.16);
  z-index: 8;
  pointer-events: none;
}

.dev-chart-now-label {
  position: absolute;
  top: 4px;
  left: 6px;
  font-size: 10px;
  font-weight: 700;
  color: #2e3133;
  white-space: nowrap;
  background: rgba(251, 250, 247, 0.92);
  padding: 1px 5px;
  border-radius: 4px;
}

.dev-chart-side-row {
  display: flex;
  align-items: center;
  height: var(--dev-gantt-row-h);
  min-height: var(--dev-gantt-row-h);
  max-height: var(--dev-gantt-row-h);
  padding-left: calc(var(--dev-tree-base-padding) + var(--dev-tree-indent-step) * var(--dev-tree-depth, 0));
  padding-right: 8px;
  border-bottom: 1px solid var(--gray-100);
  box-sizing: border-box;
  flex-shrink: 0;
  overflow: hidden;
}

.dev-chart-side-row.dev-chart-side-row--milestone {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: center;
  height: 80px;
  min-height: 80px;
  max-height: 80px;
  row-gap: 4px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.dev-chart-side-row--uk {
  background: #f3f2f0;
}

.dev-chart-side-row--lane {
  background: linear-gradient(90deg, #d9773a 0%, #c96a2e 55%, #b85c22 100%);
  color: #fff;
}

.dev-chart-side-row--lane .dev-tree-v2-toggle--lane {
  color: #fff;
}

.dev-chart-side-row--lane .dev-tree-v2-caret {
  border-left-color: rgba(255, 255, 255, 0.92);
}

.dev-chart-track-row.dev-chart-track-row--lane {
  background: rgba(217, 119, 58, 0.08);
}

.dev-tree-v2-toggle .dev-tree-v2-label,
.dev-chart-object-name--solo {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.development-intake-summary {
  margin-top: 16px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 12px 14px;
  background: var(--gray-50);
}

.development-intake-summary-title {
  margin: 0 0 4px;
  font-size: 14px;
}

.development-intake-summary-meta {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--gray-600);
}

.development-intake-table-wrap {
  overflow: auto;
  max-height: 360px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  background: #fff;
}

.development-intake-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.development-intake-table th,
.development-intake-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--gray-100);
  text-align: left;
  vertical-align: top;
}

.development-intake-table th {
  position: sticky;
  top: 0;
  background: #f3f2f0;
  font-size: 11px;
  color: var(--gray-700);
  z-index: 1;
}

.development-intake-table td:first-child {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dev-chart-side-row--developer {
  background: #f7f6f4;
}

.dev-chart-side-row--jk {
  background: #faf9f8;
}

.dev-chart-side-row--object {
  gap: 6px;
  background: #fff;
}

.dev-tree-v2-toggle--object {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 600;
  padding-right: 4px;
}

.dev-chart-object-name--solo {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border-left: 2px solid var(--orange-muted);
  padding-left: 8px;
}

.dev-chart-side-row--stage {
  gap: 6px;
  background: #fff;
}

.dev-chart-side-row--summary {
  gap: 6px;
  background: #fffaf5;
  font-weight: 650;
}

.dev-chart-side-row--inner-stage {
  background: #fff;
}

.dev-tree-v2-toggle--summary {
  font-size: 13px;
  font-weight: 650;
  max-width: calc(100% - 156px);
}

.dev-chart-side-row--etalon {
  gap: 6px;
  background: #fefefe;
}

.dev-chart-side-row--etalon-group {
  gap: 6px;
  background: #fffdfb;
}

.dev-tree-v2-toggle--etalon-group {
  width: auto;
  flex: 0 0 auto;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-700);
}

.dev-chart-etalon-group-label {
  flex: 1;
  min-width: 0;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dev-chart-etalon-group-count {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  color: var(--gray-500);
  background: var(--gray-100);
  border-radius: 999px;
  padding: 1px 7px;
}

.dev-chart-track-row--etalon-group {
  background: #fffdfb;
}

.dev-chart-gcp-badge {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.2;
  color: #8a5530;
  background: #fff6ef;
  border: 1px solid #e8c9b0;
  border-radius: 999px;
  padding: 2px 7px;
}

.dev-chart-task-check {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
}

.dev-chart-task-check input {
  width: 12px;
  height: 12px;
  margin: 0;
  accent-color: var(--orange);
  cursor: pointer;
}

.dev-chart-side-row--etalon.is-done .dev-chart-etalon-label,
.dev-chart-side-row--etalon.is-checked .dev-chart-etalon-label {
  color: var(--gray-400);
  text-decoration: line-through;
}

.dev-chart-side-row.is-selected,
.dev-chart-side-row--object.is-selected,
.dev-chart-side-row--etalon.is-selected,
.dev-chart-side-row--etalon-group.is-selected {
  background: #fff4ea;
}

.dev-chart-track-row--etalon.is-done .dev-gantt-bar-prof {
  opacity: 0.45;
}

.dev-chart-etalon-label {
  flex: 1;
  min-width: 0;
  font-size: 11px;
  line-height: 1.25;
  color: var(--gray-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dev-chart-track-row--etalon {
  background: #fefefe;
}

.dev-chart-object-check {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
  margin-left: auto;
}

.dev-chart-stage-dot {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  flex-shrink: 0;
}

.dev-chart-stage-label {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--gray-700);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dev-tree-v2-toggle--inline {
  width: auto;
  flex-shrink: 0;
  padding: 0;
}

.dev-tree-v2-caret-spacer {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.dev-chart-track-row {
  height: var(--dev-gantt-row-h);
  min-height: var(--dev-gantt-row-h);
  max-height: var(--dev-gantt-row-h);
  border-bottom: 1px solid var(--gray-100);
  box-sizing: border-box;
  flex-shrink: 0;
  overflow: hidden;
}

.dev-chart-track-row.dev-chart-track-row--milestone {
  height: 62px;
  min-height: 62px;
  max-height: 62px;
}

.dev-chart-track-row--uk {
  background: #f8f7f5;
}

.dev-chart-track-row--developer {
  background: #f9f8f7;
}

.dev-chart-track-row--jk {
  background: #fcfcfb;
}

.dev-chart-track-row--object,
.dev-chart-track-row--stage {
  background: #fff;
}

.dev-chart-track-row--object .dev-gantt-bar-prof,
.dev-chart-track-row--stage .dev-gantt-bar-prof {
  height: 22px;
}

.dev-gantt-bar-summary {
  position: absolute;
  top: 14px;
  bottom: 14px;
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(148, 163, 184, 0.35), rgba(148, 163, 184, 0.2));
  border: 1px dashed rgba(100, 116, 139, 0.45);
  pointer-events: none;
}

.dev-tree-v2-toggle {
  appearance: none;
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 4px;
  border-radius: 6px;
  cursor: pointer;
  color: var(--gray-800);
  font-size: 14px;
  font-weight: 600;
  min-height: 0;
  height: 100%;
}

button.dev-tree-v2-toggle.dev-tree-v2-toggle--etalon-group {
  width: auto;
  flex: 0 0 auto;
  padding: 0;
}

label.dev-tree-v2-toggle,
button.dev-tree-v2-toggle {
  margin: 0;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  appearance: none;
}

.dev-tree-v2-caret-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.dev-tree-v2-caret {
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid var(--gray-600);
  transition: transform 0.15s ease;
  margin-left: 1px;
}

button.dev-tree-v2-toggle[aria-expanded="true"] .dev-tree-v2-caret {
  transform: rotate(90deg);
}

.dev-tree-v2-toggle:hover .dev-tree-v2-caret-box {
  border-color: var(--orange);
  background: rgba(245, 124, 0, 0.08);
}

.dev-tree-v2-caret-spacer {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dev-gantt-assign-chip {
  flex-shrink: 0;
  max-width: 148px;
  margin-left: auto;
  padding: 2px 7px;
  border: 1px solid var(--gray-200);
  border-radius: 999px;
  background: #fff;
  color: var(--gray-600);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}

.dev-gantt-assign-chip:hover {
  border-color: var(--orange);
  color: var(--orange);
}

.dev-gantt-assign-chip.is-assigned {
  border-color: rgba(46, 125, 50, 0.28);
  background: rgba(46, 125, 50, 0.08);
  color: #2e7d32;
}

.dev-gantt-assign-pop {
  position: fixed;
  z-index: 100001;
  width: min(320px, calc(100vw - 24px));
  padding: 14px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(29, 33, 36, 0.22);
  border: 1px solid var(--gray-200);
}

.dev-gantt-assign-pop[hidden] {
  display: none;
}

.dev-gantt-assign-pop h4 {
  margin: 0 0 4px;
  font-size: 14px;
}

.dev-gantt-assign-pop-lead {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--gray-600);
  line-height: 1.35;
}

.dev-gantt-assign-pop .development-upload-field {
  margin-bottom: 8px;
}

.dev-gantt-assign-pop .development-upload-select,
.dev-gantt-assign-pop .development-upload-input,
.dev-gantt-assign-pop input[type="date"] {
  width: 100%;
}

.dev-gantt-assign-pop-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}

.dev-gantt-assign-pop-status {
  margin: 8px 0 0;
  font-size: 12px;
}

.dev-gantt-assign-pop-status.is-error {
  color: #b42318;
}

.dev-gantt-bar-prof {
  cursor: pointer;
}

.dev-tree-v2-toggle.dev-tree-v2-toggle--inline {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  height: auto;
  padding: 0;
}

.dev-tree-v2-toggle--stage {
  font-size: 12px;
  font-weight: 500;
  max-width: calc(100% - 156px);
}

.dev-tree-v2-toggle--stage .dev-chart-stage-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dev-tree-v2-toggle:hover {
  background: rgba(46, 49, 51, 0.05);
}

.dev-tree-v2-toggle:hover .dev-tree-v2-caret-box {
  border-color: var(--orange);
  background: rgba(245, 124, 0, 0.08);
}

.dev-tree-v2-toggle--uk {
  font-size: 15px;
}

.dev-tree-v2-toggle--developer {
  margin-left: 0;
  padding-left: 10px;
  border-left: 2px solid var(--gray-200);
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-800);
}

.dev-tree-v2-toggle--jk {
  margin-left: 0;
  padding-left: 10px;
  border-left: 2px solid var(--gray-200);
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-800);
}

.dev-tree-v2-caret-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.dev-tree-v2-caret {
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid var(--gray-600);
  transition: transform 0.15s ease;
  margin-left: 1px;
}

.dev-tree-v2-toggle[aria-expanded="true"] .dev-tree-v2-caret {
  transform: rotate(90deg);
}

.dev-tree-v2-objects {
  list-style: none;
  margin: 0 0 6px 28px;
  padding: 0;
}

.dev-tree-v2-object {
  padding: 5px 8px;
  font-size: 12px;
  color: var(--gray-700);
  border-left: 2px solid var(--gray-200);
  margin-bottom: 2px;
}

.dev-chart-body-track {
  min-height: 0;
  height: 100%;
  overflow: auto;
  cursor: grab;
  background: #fff;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.dev-chart-body-track.is-panning {
  cursor: grabbing;
  user-select: none;
}

.dev-chart-body-inner {
  position: relative;
  min-width: 100%;
}

.dev-chart-row {
  min-height: var(--dev-gantt-row-h);
  border-bottom: 1px solid var(--gray-100);
}

.dev-chart-row-track {
  position: relative;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  box-sizing: border-box;
  background-image: linear-gradient(to right, rgba(212, 208, 203, 0.45) 1px, transparent 1px);
  background-size: calc(100% / var(--dev-timeline-months, 24)) 100%;
}

.dev-chart-row-side {
  display: none;
}

.dev-chart-empty {
  padding: 24px 16px;
}

.dev-gantt-wrap {
  min-width: 960px;
  padding: 14px;
}

.dev-gantt-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 11px;
  color: var(--gray-600);
}

.dev-gantt-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.dev-gantt-legend i {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
}

.dev-gantt-grid {
  display: grid;
  gap: 0;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  overflow: hidden;
}

.dev-gantt-head,
.dev-gantt-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  border-bottom: 1px solid var(--gray-200);
}

.dev-gantt-head {
  background: var(--gray-100);
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-700);
}

.dev-gantt-head .dev-gantt-label,
.dev-gantt-row .dev-gantt-label {
  padding: 8px 10px;
  border-right: 1px solid var(--gray-200);
}

.dev-gantt-timeline {
  position: relative;
  min-height: 34px;
  background-image: linear-gradient(to right, var(--gray-100) 1px, transparent 1px);
  background-size: calc(100% / 12) 100%;
}

.dev-gantt-months {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  font-size: 10px;
  color: var(--gray-500);
  border-bottom: 1px solid var(--gray-200);
}

.dev-gantt-months span {
  padding: 4px 2px;
  text-align: center;
  border-right: 1px solid var(--gray-100);
}

.dev-gantt-bar {
  position: absolute;
  top: 6px;
  height: 22px;
  border-radius: 4px;
  font-size: 10px;
  color: #fff;
  padding: 0 6px;
  line-height: 22px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}

.dev-gantt-bar:hover {
  filter: brightness(0.95);
}

.dev-tree-group {
  margin-bottom: 8px;
}

.dev-tree-uk {
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 4px;
}

.dev-tree-jk {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-700);
  margin: 0 0 2px 10px;
}

.dev-tree-obj {
  font-size: 12px;
  color: var(--gray-600);
  margin: 0 0 6px 20px;
}

.dev-swimlane {
  border-bottom: 1px solid var(--gray-200);
  padding: 10px;
}

.dev-swimlane-title {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
}

.dev-stage-board {
  display: grid;
  grid-template-columns: repeat(7, minmax(140px, 1fr));
  gap: 8px;
  min-width: 980px;
  padding: 10px;
}

.dev-stage-col {
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  background: var(--gray-50);
  min-height: 220px;
}

.dev-stage-col h4 {
  margin: 0;
  padding: 8px 10px;
  font-size: 11px;
  border-bottom: 1px solid var(--gray-200);
  background: var(--white);
}

.dev-stage-card {
  margin: 8px;
  padding: 8px;
  border-radius: 6px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  font-size: 11px;
}

.dev-stage-card strong {
  display: block;
  margin-bottom: 4px;
}

.dev-cards-timeline {
  padding: 10px;
}

.dev-cards-months {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
  margin-bottom: 10px;
}

.dev-cards-month {
  height: 4px;
  border-radius: 2px;
  background: var(--gray-200);
}

.dev-cards-month.is-active {
  background: var(--orange);
}

.dev-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
}

.dev-object-card {
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  padding: 10px;
  background: var(--white);
}

.dev-object-card h4 {
  margin: 0 0 6px;
  font-size: 12px;
}

.dev-object-card p {
  margin: 0 0 8px;
  font-size: 11px;
  color: var(--gray-600);
}

.dev-mini-bars {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.dev-mini-bar {
  height: 8px;
  border-radius: 4px;
  flex: 1 1 24px;
  min-width: 24px;
}

.dev-master-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  min-height: 380px;
}

.dev-master-list {
  border-right: 1px solid var(--gray-200);
  padding: 10px;
  background: var(--gray-50);
}

.dev-master-item {
  width: 100%;
  text-align: left;
  appearance: none;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  padding: 8px 10px;
  margin-bottom: 4px;
  cursor: pointer;
  font-size: 12px;
}

.dev-master-item.active {
  border-color: var(--orange);
  background: rgba(245, 124, 0, 0.08);
}

.dev-task-action {
  margin-top: 6px;
  font-size: 10px;
  color: var(--orange-hover);
  cursor: pointer;
}

/* ——— Профессиональный Гант (развитие / приёмка) ——— */
.dev-gantt-pro {
  --dev-gantt-row-h: 34px;
  min-width: 880px;
  padding: 12px 14px 16px;
  background: #f7f6f4;
}

.dev-gantt-layout {
  display: grid;
  grid-template-columns: 148px 210px minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(46, 49, 51, 0.05);
}

.dev-sidebar-uk,
.dev-sidebar-stages {
  border-right: 1px solid var(--gray-200);
  background: #faf9f8;
  padding: 10px 8px;
}

.dev-sidebar-title {
  margin: 0 0 8px;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gray-600);
}

.dev-sidebar-uk .dev-master-item {
  width: 100%;
  text-align: left;
  appearance: none;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  padding: 7px 8px;
  margin-bottom: 3px;
  cursor: pointer;
  font-size: 12px;
  color: var(--gray-800);
}

.dev-sidebar-uk .dev-master-item.active {
  border-color: #c9d3de;
  background: #fff;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(46, 49, 51, 0.06);
}

.dev-stage-rail {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dev-sidebar-stages .dev-stage-rail {
  padding-top: 34px;
}

.dev-stage-rail-item {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  min-height: var(--dev-gantt-row-h);
  padding: 5px 6px;
  border-radius: 5px;
  font-size: 10px;
  line-height: 1.35;
  color: var(--gray-700);
}

.dev-stage-rail-dot {
  width: 8px;
  height: 8px;
  margin-top: 2px;
  border-radius: 2px;
  flex-shrink: 0;
  background: var(--dev-stage-color, #64748b);
}

.dev-gantt-main {
  min-width: 0;
  padding: 10px 12px 12px;
  background: #fff;
}

.dev-object-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.dev-object-tab {
  appearance: none;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  background: #faf9f8;
  color: var(--gray-700);
  font-size: 11px;
  padding: 5px 9px;
  cursor: pointer;
}

.dev-object-tab.active {
  border-color: #b8c4d0;
  background: #eef2f6;
  color: var(--gray-800);
  font-weight: 600;
}

.dev-gantt-pro .dev-gantt-grid {
  border: 1px solid #dde1e6;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.dev-gantt-pro .dev-gantt-head {
  background: #f3f2f0;
  font-size: 10px;
}

.dev-gantt-grid--waterfall .dev-gantt-head,
.dev-gantt-grid--waterfall .dev-gantt-row {
  grid-template-columns: 220px var(--dev-track-width, 960px);
}

.dev-gantt-grid--compact.dev-gantt-grid--waterfall .dev-gantt-head,
.dev-gantt-grid--compact.dev-gantt-grid--waterfall .dev-gantt-row {
  grid-template-columns: 0 var(--dev-track-width, 960px);
}

.dev-gantt-scroll-outer {
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  border-radius: 8px;
}

.dev-gantt-scroll-outer.is-panning {
  cursor: grabbing;
  user-select: none;
}

.dev-gantt-pro .dev-gantt-months {
  display: grid;
  grid-template-columns: repeat(var(--dev-timeline-months, 24), 1fr);
}

.dev-gantt-pro .dev-gantt-timeline {
  min-height: var(--dev-gantt-row-h);
  background-image: linear-gradient(to right, rgba(212, 208, 203, 0.45) 1px, transparent 1px);
  background-size: calc(100% / var(--dev-timeline-months, 24)) 100%;
}

.dev-gantt-label--stage,
.dev-stage-rail-item {
  appearance: none;
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
  cursor: pointer;
}

.dev-gantt-label--stage.is-selected,
.dev-stage-rail-item.is-selected {
  background: rgba(245, 124, 0, 0.08);
  outline: 1px solid rgba(245, 124, 0, 0.35);
}

.dev-stage-topics-panel {
  margin-top: 12px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: #fff;
  padding: 14px 16px 16px;
}

.dev-stage-topics-panel--embedded {
  margin-top: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 12px 14px 14px;
  border-radius: 10px;
  background: var(--gray-50);
}

.dev-stage-topics-panel--embedded .dev-stage-topics-title {
  font-size: 16px;
}

.dev-stage-topics-panel--embedded .dev-stage-topics-list {
  flex: 1;
  min-height: 0;
  max-height: none;
  overflow: auto;
  font-size: 13px;
  columns: 1;
  column-gap: 0;
}

.dev-stage-topics-panel--embedded .dev-stage-topics-list .dev-stage-topics-section {
  margin-bottom: 14px;
}

.dev-stage-topics-panel--embedded .dev-checklist-topic-row {
  grid-template-columns: minmax(0, 1fr) minmax(200px, 280px) auto;
  padding: 10px 0;
}

.dev-stage-topics-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.dev-stage-topics-kicker {
  margin: 0 0 4px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gray-600);
}

.dev-stage-topics-title {
  margin: 0;
  font-size: 17px;
}

.dev-stage-topics-close {
  appearance: none;
  border: none;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: var(--gray-600);
}

.dev-stage-topics-lead {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--gray-700);
}

.dev-stage-topics-list {
  margin: 0;
  padding-left: 20px;
  columns: 2;
  column-gap: 24px;
}

.dev-stage-topics-list li {
  break-inside: avoid;
  margin-bottom: 6px;
  font-size: 13px;
  line-height: 1.4;
}

@media (max-width: 900px) {
  .dev-stage-topics-list {
    columns: 1;
  }
}

.dev-gantt-label--empty {
  padding: 0;
  border-right: none;
}

.dev-gantt-pro .dev-gantt-months span {
  font-size: 10px;
  font-weight: 600;
  color: var(--gray-600);
  padding: 6px 2px;
}

.dev-gantt-pro .dev-gantt-timeline {
  min-height: var(--dev-gantt-row-h);
}

.dev-gantt-timeline--muted {
  background: #faf9f8;
  min-height: 28px;
}

.dev-gantt-row--object .dev-gantt-label--object {
  background: #f7f6f4;
  font-weight: 600;
}

.dev-gantt-row--stage .dev-gantt-label--stage {
  font-size: 11px;
  color: var(--gray-700);
  gap: 7px;
}

.dev-stage-dot {
  width: 7px;
  height: 7px;
  border-radius: 2px;
  flex-shrink: 0;
}

.dev-object-block {
  border-top: 1px solid var(--gray-200);
}

.dev-object-block:first-of-type {
  border-top: none;
}

.dev-gantt-waterfall {
  position: relative;
}

.dev-gantt-waterfall-connectors {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

.dev-gantt-waterfall-connectors path {
  fill: none;
  stroke-width: 1.1;
  opacity: 0.75;
}

.dev-gantt-bar-prof {
  border: none;
  padding: 0 4px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 18px;
  border-radius: 5px;
  box-shadow: 0 1px 4px rgba(30, 35, 40, 0.12);
  cursor: help;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.dev-gantt-bar-prof:hover {
  box-shadow: 0 2px 10px rgba(217, 119, 58, 0.28);
  z-index: 4;
}

.dev-gantt-bar-prof--etalon {
  height: 14px;
  opacity: 0.92;
}

.dev-gantt-bar-prof--etalon.dev-gantt-bar-prof--task {
  opacity: 0.85;
}

.dev-chart-track-row--etalon .dev-chart-row-track {
  min-height: 22px;
}

.dev-gantt-tooltip {
  position: fixed;
  z-index: 100000;
  max-width: 320px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(29, 33, 36, 0.94);
  color: #fff;
  font-size: 12px;
  line-height: 1.45;
  pointer-events: none;
  box-shadow: 0 10px 28px rgba(29, 33, 36, 0.28);
}

.dev-gantt-tooltip strong {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
}

.dev-gantt-tooltip span {
  display: block;
}

.dev-gantt-bar-prof-label {
  font-size: 9px;
  font-weight: 600;
  color: #fff;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  pointer-events: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.18);
}

.dev-gantt-bar-prof-person {
  flex-shrink: 1;
  margin-left: 4px;
  font-size: 8px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.22);
}


.dev-gantt-diamond {
  position: absolute;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  margin-left: -6px;
  transform: rotate(45deg);
  background: #fff;
  border: 1.5px solid var(--dev-diamond-color, #64748b);
  box-shadow: 0 1px 3px rgba(30, 35, 40, 0.1);
  z-index: 3;
}

.dev-gantt-diamond span {
  display: none;
}

.dev-tree-uk {
  font-size: 12px;
  font-weight: 700;
  margin: 0 0 2px;
}

.dev-tree-jk {
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-700);
  margin: 0 0 1px 8px;
}

.dev-tree-obj {
  font-size: 11px;
  color: var(--gray-600);
  margin: 0;
  margin-left: 16px;
}

/* —— Архив документов (витрина S:) —— */
.archive-page {
  padding: 22px 28px 36px;
}

.archive-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  margin-bottom: 12px;
  padding: 12px 14px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
}

.archive-search-field {
  flex: 1 1 260px;
  min-width: 200px;
}

.archive-search-field input[type="search"] {
  width: 100%;
  height: var(--control-h);
  padding: var(--control-pad-y) var(--control-pad-x);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  font-size: var(--text-base);
  background: var(--white);
  color: var(--gray-800);
}

.archive-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin: 0 0 12px;
  font-size: var(--text-sm);
  color: var(--gray-600);
}

.archive-crumb-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--orange);
  font: inherit;
  font-weight: 500;
  padding: 0;
  cursor: pointer;
}

.archive-crumb-sep { color: var(--gray-400); }
.archive-crumb-current { font-weight: 600; color: var(--brand-charcoal); }

.archive-status {
  margin: 0 0 12px;
  font-size: var(--text-sm);
  color: var(--gray-600);
}

.archive-status.is-error {
  color: var(--err);
  background: var(--err-bg);
  border: 1px solid #e8b4a8;
  border-radius: var(--radius-md);
  padding: 10px 12px;
}

.archive-layout {
  display: grid;
  grid-template-columns: minmax(240px, 1.05fr) minmax(280px, 1.35fr);
  gap: 14px;
  align-items: start;
}

.archive-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
  padding: 16px;
  min-width: 0;
}

.archive-folder-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.archive-folder-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: 1px solid var(--gray-100);
  border-radius: var(--radius-md);
  background: var(--gray-50);
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.archive-folder-row:hover {
  border-color: var(--orange-muted);
  background: var(--orange-soft);
}

.archive-folder-ico {
  width: 20px;
  height: 15px;
  border-radius: 3px 3px 2px 2px;
  background: linear-gradient(180deg, #f0c49a 0%, var(--orange) 100%);
}

.archive-folder-name {
  display: block;
  font-weight: 600;
  color: var(--brand-charcoal);
}

.archive-folder-meta {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--gray-400);
}

.archive-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--gray-100);
  border-radius: var(--radius-md);
}

.archive-files-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: var(--text-sm);
}

.archive-files-table th,
.archive-files-table td {
  padding: 10px 12px;
  vertical-align: middle;
  text-align: left;
  box-sizing: border-box;
}

.archive-files-table th {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gray-400);
  background: var(--gray-50);
  border-bottom: 1px solid var(--gray-100);
}

.archive-files-table td {
  border-bottom: 1px solid var(--gray-100);
}

.archive-files-table tr:last-child td { border-bottom: 0; }

.archive-col-name { width: auto; }
.archive-col-type { width: 72px; }
.archive-col-size { width: 88px; }
.archive-col-actions { width: 196px; }

.archive-file-name {
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-file-name .archive-file-link {
  display: inline;
  max-width: 100%;
}
.archive-muted { color: var(--gray-400); }
.archive-open-btn {
  display: inline-flex;
  text-decoration: none;
  white-space: nowrap;
}

.archive-empty,
.archive-empty-cell {
  margin: 0;
  color: var(--gray-400);
  font-size: var(--text-sm);
}

.archive-foot {
  margin: 14px 0 0;
  padding: 12px 14px;
  border: 1px dashed var(--gray-200);
  border-radius: var(--radius-md);
  background: var(--white);
  font-size: var(--text-sm);
  color: var(--gray-600);
}

@media (max-width: 900px) {
  .archive-layout { grid-template-columns: 1fr; }
  .archive-page { padding: 16px; }
}

.archive-folder-row--reg {
  border-color: var(--orange-muted);
  background: var(--orange-soft);
}
.archive-folder-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ok);
  background: var(--ok-bg);
  vertical-align: middle;
}

.archive-toolbar .field-compact select {
  min-width: 180px;
  height: var(--control-h);
  padding: var(--control-pad-y) var(--control-pad-x);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--gray-800);
  font-size: var(--text-base);
}
.archive-dir-field select { min-width: 240px; }
.archive-folder-path {
  margin: 0 0 12px;
  font-size: 12px;
  color: var(--gray-400);
  word-break: break-all;
}
.archive-file-link {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  font-weight: 500;
  color: var(--orange);
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.archive-file-link:hover { color: var(--orange-hover); }
.archive-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  white-space: nowrap;
  vertical-align: middle;
}

.archive-actions .archive-folder-btn,
.archive-actions .archive-download-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  height: 32px;
  min-height: 32px;
  margin: 0;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  border-radius: var(--radius-md);
  text-decoration: none;
  white-space: nowrap;
  vertical-align: middle;
}

.archive-actions .archive-folder-btn {
  border: 1px solid var(--gray-200);
  background: var(--white);
  color: var(--gray-600);
  cursor: pointer;
}

.archive-actions .archive-folder-btn:hover {
  background: var(--gray-50);
}

.archive-actions .archive-download-btn {
  border: 1px solid var(--orange);
  background: var(--orange);
  color: var(--white);
}

.archive-actions .archive-download-btn:hover {
  background: var(--orange-hover);
  border-color: var(--orange-hover);
  color: var(--white);
}

a.archive-file-link {
  color: var(--orange);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
a.archive-file-link:hover { color: var(--orange-hover); }

.dept-nav-sep {
  height: 1px;
  margin: 8px 16px;
  background: rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
}

.zastro-panel[hidden],
.zastro-placeholder[hidden],
.zastro-room-tl[hidden] {
  display: none !important;
}

.zastro-page-body {
  padding: 16px 22px 28px;
}

#zastro-btn-xlsx {
  flex: 0 0 auto;
  width: auto;
  min-width: 148px;
}

#zastro-tabs {
  margin: 0 0 14px;
}

.zastro-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 14px;
  align-items: end;
}

.zastro-filters label {
  display: block;
  font-size: 11px;
  color: var(--gray-600);
  margin-bottom: 4px;
}

.zastro-filters select {
  width: 100%;
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--gray-200);
  padding: 0 10px;
  background: #fff;
  font: inherit;
}

.zastro-lead {
  margin: 0 0 14px;
  font-size: 13px;
  color: var(--gray-600);
  max-width: 78ch;
  line-height: 1.45;
}

.zastro-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.zastro-chip {
  font: inherit;
  font-size: 13px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  cursor: pointer;
  color: var(--gray-600);
  transition: background 0.2s ease, transform 0.22s ease, border-color 0.2s ease;
}

.zastro-chip span {
  font-weight: 700;
  margin-left: 6px;
}

.zastro-chip:hover {
  transform: translateY(-1px);
  border-color: #f0c9a8;
}

.zastro-chip.active {
  background: var(--peach);
  color: var(--orange-hover);
  border-color: #f0c9a8;
}

.zastro-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.zastro-kpi {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 12px 14px;
}

.zastro-kpi.accent {
  box-shadow: inset 2px 0 0 #e8c9b0;
}

.zastro-kpi-label {
  font-size: 12px;
  color: var(--gray-600);
}

.zastro-kpi-value {
  font-size: 26px;
  font-weight: 650;
  margin: 4px 0 2px;
  font-variant-numeric: tabular-nums;
}

.zastro-kpi-sub {
  font-size: 12px;
  color: var(--gray-400);
}

.zastro-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 12px;
}

.zastro-card {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 14px;
}

.zastro-card h3 {
  margin: 0 0 4px;
  font-size: 14px;
}

.zastro-note {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--gray-600);
}

.zastro-year-grid {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 8px 12px;
  align-items: center;
  font-size: 13px;
  margin: 8px 0 14px;
}

.zastro-bar-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(72px, 1fr) 48px;
  gap: 12px;
  align-items: center;
  font-size: 13px;
  margin: 8px 0;
  min-height: 36px;
}

.zastro-bar-row > span:first-child {
  line-height: 1.3;
}

.zastro-bar-row .n {
  text-align: right;
  color: var(--gray-600);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
}

.zastro-bar-track {
  height: 6px;
  background: #f3f1ee;
  border-radius: 99px;
  overflow: hidden;
}

.zastro-bar-fill {
  height: 100%;
  background: #d7b49a;
}

.zastro-bar-fill.muted {
  background: #d8d4ce;
}

.zastro-hist {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 12px;
  align-items: center;
  width: 100%;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid #f3f1ee;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.zastro-hist:hover .zastro-addr {
  color: var(--orange);
}

.zastro-addr {
  display: block;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.3;
}

.zastro-hist-meta {
  display: block;
  font-size: 12px;
  color: var(--gray-600);
  line-height: 1.35;
}

.zastro-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  height: 26px;
  font-size: 11px;
  border-radius: 999px;
  padding: 0 10px;
  background: #f7f6f4;
  color: var(--gray-600);
  border: 1px solid var(--gray-200);
}

.zastro-room-tl {
  margin-top: 10px;
  font-size: 12px;
  color: var(--gray-600);
}

.zastro-room-tl div {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 8px;
  padding: 4px 0;
}

.zastro-subtabs {
  display: flex;
  gap: 8px;
  margin: 0 0 12px;
}

.zastro-subtab {
  border: 1px solid var(--gray-200);
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

.zastro-subtab.active {
  background: var(--orange-soft);
  border-color: #f0c9a8;
  color: var(--orange-hover);
}

.zastro-placeholder {
  background: repeating-linear-gradient(-45deg, #fff, #fff 8px, #f7f6f4 8px, #f7f6f4 16px);
  border: 1px dashed #e6e0d8;
  border-radius: 12px;
  padding: 22px;
  color: var(--gray-600);
  font-size: 13px;
}

.zastro-placeholder h3 {
  margin: 0 0 6px;
}

.zastro-placeholder p {
  margin: 0;
}

.zastro-soon {
  font-size: 11px;
  font-weight: 600;
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.module-tab.is-disabled {
  opacity: 0.55;
}

.dev-mile-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin: 0;
  padding: 8px 12px;
  flex: 0 0 auto;
  border-bottom: 1px solid var(--gray-200);
  background: #fff;
  font-size: 12px;
  line-height: 1.4;
  color: var(--gray-600);
}

.dev-mile-legend-k {
  font-weight: 650;
  color: var(--gray-800);
}

.dev-mile-card-decode {
  margin-top: 2px;
  font-size: 12px;
  font-weight: 500;
  color: var(--gray-600);
}

.dev-chart-row-track {
  position: relative;
}

.dev-mile-wrap {
  position: absolute;
  top: 10px;
  width: 0;
  height: 28px;
  z-index: 2;
}

.dev-mile {
  position: absolute;
  top: 0;
  left: -6px;
  width: 12px;
  height: 12px;
  background: #2e3133;
  transform: rotate(45deg);
}

.dev-mile--current {
  background: #d9773a;
  box-shadow: 0 0 0 4px rgba(217, 119, 58, 0.22);
}

.dev-mile--future {
  background: #fff;
  border: 1.5px solid #2e3133;
  box-shadow: none;
}

.dev-mile--late {
  background: #b44a3d;
}

.dev-mile--done {
  background: #2e3133;
}

.dev-mile-tag {
  position: absolute;
  top: 16px;
  left: 0;
  transform: translateX(-50%);
  font-size: 10px;
  font-weight: 650;
  color: #5c5854;
  white-space: nowrap;
}

.dev-mile--current ~ .dev-mile-tag {
  color: #c4682f;
}

.dev-mile-bar {
  position: absolute;
  top: 16px;
  height: 10px;
  border-radius: 99px;
  z-index: 1;
}

.dev-mile-bar--done { background: #2e3133; }
.dev-mile-bar--current { background: #e8a06a; }
.dev-mile-bar--future { background: #d4d0cb; }
.dev-mile-bar--late { background: #e7a39a; }

.dev-work-bar {
  position: absolute;
  top: 16px;
  height: 14px;
  border-radius: 99px;
  background: rgba(109, 94, 245, 0.28);
  border: 1px solid #6d5ef5;
}

.dev-tree-v2-toggle--mile-caret {
  width: auto;
  flex: 0 0 auto;
  padding: 0;
}

.dev-mile-plus {
  width: 18px;
  height: 18px;
  margin-right: 6px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--gray-800);
  font: inherit;
  font-size: 14px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  flex: 0 0 auto;
}

.dev-mile-plus:hover {
  border-color: var(--orange);
  color: var(--orange);
}

.dev-mile-panel {
  height: 100%;
  max-height: none;
  margin-top: 0;
  padding: 14px 16px 16px;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  overflow: auto;
}

.dev-mile-panel h3 {
  margin: 0 0 2px;
  font-size: 15px;
}

.dev-mile-panel-meta,
.dev-mile-panel-empty,
.dev-mile-panel-hint {
  margin: 0;
  font-size: 12px;
  color: var(--gray-600);
}

.dev-mile-panel-hint,
.dev-mile-panel-error {
  margin-top: 10px;
}

.dev-mile-panel-error {
  color: #b42318;
  font-size: 12px;
}

.dev-mile-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 12px;
}

.dev-mile-card,
.dev-mile-work {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
  background: #fafaf8;
}

.dev-mile-card--current {
  background: #fbf3ec;
  border-color: #f0c9a8;
}

.dev-mile-card-k {
  font-size: 11px;
  color: #9a9590;
  font-weight: 650;
}

.dev-mile-card-t {
  margin-top: 2px;
  font-size: 13px;
  font-weight: 650;
}

.dev-mile-card label,
.dev-mile-work label,
.dev-mile-done {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 8px;
  font-size: 11px;
  color: var(--gray-600);
}

.dev-mile-done {
  flex-direction: row;
  align-items: center;
  gap: 6px;
}

.dev-mile-monthpair {
  display: flex;
  gap: 4px;
}

.dev-mile-monthpair select {
  flex: 1 1 0;
  min-width: 0;
  font: inherit;
  font-size: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 4px 6px;
  background: #fff;
  color: var(--gray-800);
}

.dev-mile-ctrl {
  display: inline-block;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 650;
  padding: 2px 7px;
  border-radius: 99px;
  background: var(--gray-100);
  color: var(--gray-600);
}

.dev-mile-ctrl--done { background: #edf4ef; color: #3d6b4a; }
.dev-mile-ctrl--current { background: #fff; color: #c4682f; }
.dev-mile-ctrl--late { background: #faf0ee; color: #b44a3d; }

.dev-mile-work {
  display: grid;
  grid-template-columns: minmax(160px, 1.2fr) 160px 190px;
  gap: 10px;
  align-items: end;
  margin-top: 10px;
  background: #f7f6fd;
  border-color: #d9d4f5;
}

@media (max-width: 980px) {
  .dev-chart-with-dates {
    grid-template-columns: 1fr;
  }

  .dev-mile-panel {
    height: auto;
    max-height: 320px;
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .dev-mile-cards,
  .dev-mile-work {
    grid-template-columns: 1fr 1fr;
  }
}

.fes-sheet-card {
  margin-top: 16px;
}

.fes-dash-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}

.fes-dash-card {
  border: 1px solid var(--gray-100);
  border-radius: 10px;
  padding: 12px 14px;
  background: var(--gray-50);
}

.fes-dash-card h4 {
  margin: 0 0 4px;
  font-size: 14px;
}

.fes-dash-lead {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--gray-600);
}

.fes-bar-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
  font-size: 13px;
}

.fes-bar-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fes-bar {
  grid-column: 1 / -1;
  height: 8px;
  border-radius: 99px;
  background: #efeae4;
  overflow: hidden;
}

.fes-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--orange);
}

.fes-gap {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  font-size: 13px;
}

.fes-gap strong {
  font-weight: 650;
}

.fes-dash-note {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--gray-600);
}

@media (max-width: 980px) {
  .fes-dash-grid,
  .zastro-filters,
  .zastro-kpi-row,
  .zastro-grid {
    grid-template-columns: 1fr;
  }
}

/* --- Редизайн 2026-10 --- */

.dept-nav-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.nav-ico {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--gray-400);
}

.dept-nav-btn:hover .nav-ico {
  color: #ddd9d4;
}

.dept-nav-btn.active .nav-ico {
  color: #fff;
}

.wiki-nav-logo {
  width: 16px;
  height: 16px;
}

.page-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.page-ico {
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-md);
  background: var(--orange-soft);
  color: var(--orange);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-ico-svg {
  width: 20px;
  height: 20px;
}

.scope-bar {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-top: 3px solid var(--orange-soft);
  border-radius: var(--radius-md);
  padding: 12px 14px;
  margin-bottom: 16px;
}

.scope-bar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.scope-bar-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--gray-700);
}

.scope-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
}

.scope-hints {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: var(--text-sm);
  color: var(--gray-600);
}

.scope-hint {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.scope-hint .column-badge {
  margin: 0;
  font-size: 11px;
}

.step-n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--orange-soft);
  color: var(--orange);
  font-size: 12px;
  font-weight: 700;
}

.step-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin: 12px 0 0;
  font-size: var(--text-sm);
  color: var(--gray-600);
}

.step-line .step {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.step-line .arrow {
  color: var(--gray-300);
}

.svc-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.svc-block {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 16px 18px 18px;
}

.svc-head-text {
  min-width: 0;
}

.svc-title {
  margin: 0 0 3px;
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--gray-800);
}

.svc-desc {
  margin: 0;
  max-width: 860px;
  font-size: var(--text-base);
  color: var(--gray-400);
}

.action-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 14px 0 0;
  padding: 12px 14px;
  border-radius: var(--radius-md);
  background: var(--gray-50);
  border: 1px solid var(--line);
}

.action-row .btn-primary,
.action-row .btn-secondary,
.scope-bar .btn-secondary {
  flex: none;
}

.action-row .btn-primary {
  min-width: 168px;
}

.latest-file {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1 1 0;
  padding-left: 12px;
  border-left: 1px solid var(--gray-200);
  font-size: var(--text-sm);
  color: var(--gray-600);
}

.latest-file strong {
  color: var(--gray-800);
  font-weight: 600;
  white-space: nowrap;
}

.latest-file .file-name {
  min-width: 10em;
  flex: 1 1 10em;
  color: var(--gray-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.latest-file .export-date {
  color: var(--gray-400);
  white-space: nowrap;
}

.latest-file .btn-link {
  color: var(--orange);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.latest-file.is-empty {
  color: var(--gray-400);
}

.action-row .history-btn {
  margin-left: auto;
}

.action-hint {
  width: 100%;
  margin: 0;
  font-size: var(--text-xs);
  color: var(--gray-500);
}

.svc-section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 16px 0 10px;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--gray-700);
}

.svc-section-label .muted {
  font-weight: 400;
  color: var(--gray-400);
}

.export-inline-status:empty {
  display: none;
}

.export-inline-status {
  margin-top: 8px;
}

.svc-block .fes-dash-grid {
  margin: 0;
}

.svc-block .export-history {
  margin: 8px 0 0;
}

.svc-block .export-history[hidden] {
  display: none;
}

@media (max-width: 1100px) {
  .scope-fields {
    grid-template-columns: 1fr;
  }

  .latest-file {
    flex-basis: 100%;
    padding-left: 0;
    border-left: 0;
  }
}

/* --- Редизайн 2026-10: Перспективные проекты — «Сроки дома» --- */
.dept-section#dept-development .development-tab-panel--gantt {
  position: relative;
}

.og-drawer {
  position: absolute;
  top: 0;
  right: 0;
  width: 400px;
  height: min(640px, calc(100% - 8px));
  min-height: 320px;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border-left: 1px solid var(--gray-200);
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
  box-shadow: -12px 0 28px rgba(29, 33, 36, 0.1);
  z-index: 30;
}

.og-drawer[hidden] {
  display: none;
}

.og-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--line);
}

.og-drawer-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--orange);
}

.og-drawer-head h3 {
  margin: 2px 0 0;
  font-size: var(--text-lg);
  color: var(--gray-900);
}

.og-drawer-sub {
  margin: 2px 0 0;
  font-size: var(--text-xs);
  color: var(--gray-500);
}

.og-drawer-x {
  border: none;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  color: var(--gray-500);
  cursor: pointer;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
}

.og-drawer-x:hover {
  background: var(--gray-50);
  color: var(--gray-800);
}

.og-drawer-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.og-drawer-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-top: 1px solid var(--line);
  background: var(--paper);
  border-radius: 0 0 0 var(--radius-lg);
}

.og-drawer-hint {
  margin-right: auto;
  font-size: var(--text-xs);
  color: var(--gray-500);
}

.og-drawer-hint.is-ok {
  color: var(--ok);
  font-weight: 600;
}

.og-drawer-hint.is-warn {
  color: var(--err);
  font-weight: 600;
}

.sroki-svod {
  border: 1px solid #f0c9a8;
  background: var(--peach);
  border-radius: 10px;
  padding: 10px 12px;
}

.sroki-svod--empty {
  border-color: var(--line);
  background: var(--paper);
}

.sroki-svod h4,
.sroki-h {
  margin: 0 0 6px;
  font-size: var(--text-sm);
  font-weight: 650;
  color: var(--gray-800);
  display: flex;
  align-items: center;
  gap: 8px;
}

.sroki-ro {
  margin-left: auto;
  white-space: nowrap;
  flex: none;
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-500);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0 8px;
}

.sroki-dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 3px 12px;
  margin: 0;
  font-size: var(--text-xs);
}

.sroki-dl dt {
  color: var(--gray-500);
}

.sroki-dl dd {
  margin: 0;
  color: var(--gray-800);
  font-weight: 600;
}

.sroki-note {
  margin: 0 0 6px;
  font-size: var(--text-xs);
  color: var(--gray-500);
}

.sroki-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ms-card {
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 10px 12px 10px;
  background: var(--white);
}

.ms-card.is-set {
  background: linear-gradient(180deg, var(--peach) 0%, var(--white) 70%);
  border-color: #f0c9a8;
}

.ms-card-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-bottom: 8px;
}

.ms-card-head .k {
  font-size: 11px;
  font-weight: 700;
  color: var(--orange);
  background: var(--orange-soft);
  border-radius: 4px;
  padding: 1px 6px;
}

.ms-card-head .t {
  font-weight: 600;
  font-size: var(--text-sm);
}

.ms-card-head .d {
  font-size: var(--text-xs);
  color: var(--gray-500);
}

.ms-card-head .state {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-500);
  background: var(--gray-50);
  border-radius: 999px;
  padding: 1px 8px;
  white-space: nowrap;
}

.ms-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
}

.ms-fields label {
  font-size: var(--text-xs);
  color: var(--gray-600);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ms-card .dev-mile-done {
  margin-top: 6px;
  font-size: var(--text-xs);
}

.ms-tags {
  display: inline-flex;
  gap: 3px;
  flex: none;
}

.ms-tag {
  font-size: 10px;
  font-weight: 700;
  line-height: 14px;
  padding: 0 4px;
  border-radius: 4px;
  background: var(--gray-50);
  color: var(--gray-400);
  border: 1px solid var(--line);
}

.ms-tag.set {
  background: var(--orange-soft);
  color: var(--orange);
  border-color: #f0c9a8;
}

.ms-tag.set-manual {
  background: var(--white);
  color: var(--orange);
  border: 1px dashed var(--orange-muted);
}

.ms-date {
  flex: none;
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-700);
  white-space: nowrap;
}

.ms-date.is-manual {
  color: var(--gray-500);
}

.sroki-btn {
  flex: none;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid var(--gray-200);
  background: var(--white);
  border-radius: 7px;
  padding: 1px 7px;
  color: var(--gray-700);
  cursor: pointer;
}

.sroki-btn:hover,
.dev-chart-side-row--object.is-sroki-open .sroki-btn {
  border-color: var(--orange);
  color: var(--orange);
}

.dev-chart-side-row--object.is-sroki-open {
  background: var(--peach);
  box-shadow: inset 3px 0 0 var(--orange);
}

.dev-chart-object-name--solo[data-dev-open-sroki] {
  cursor: pointer;
}

.dev-chart-object-name--solo[data-dev-open-sroki]:hover {
  color: var(--orange);
}

.dev-vv-chip {
  flex: none;
  margin-left: auto;
  margin-right: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-600);
  background: var(--gray-50);
  border-radius: 999px;
  padding: 0 8px;
  white-space: nowrap;
}

.dev-mile--svod {
  background: var(--orange);
  border: 1.5px solid var(--orange);
}

.dev-mile--rnv {
  background: var(--white);
  border: 2px solid var(--ok);
  box-shadow: none;
}

@container (max-width: 999px) {
  .og-drawer {
    width: min(400px, calc(100% - 120px));
  }
}

@media (max-width: 1000px) {
  .og-drawer {
    width: min(400px, calc(100% - 120px));
  }
}

/* --- Окно диспетчера (этап 1, локальный мок) — стили только внутри #dept-dispatcher --- */
#dept-dispatcher .dw { position: relative; display: flex; flex-direction: column; gap: 12px; font-size: 13px; color: var(--text-primary); }
#dept-dispatcher .dw-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
#dept-dispatcher .dw-syncpill { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--gray-200); background: var(--white); border-radius: 14px; padding: 4px 12px; font: inherit; font-size: 12px; color: var(--gray-700); cursor: pointer; }
#dept-dispatcher .dw-syncpill .dot { width: 8px; height: 8px; border-radius: 50%; background: #5fae6e; box-shadow: 0 0 0 3px rgba(95, 174, 110, 0.2); }
#dept-dispatcher .dw-syncpill .dot.warn { background: #e8b23a; box-shadow: 0 0 0 3px rgba(232, 178, 58, 0.25); }
#dept-dispatcher .dw-work { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 12px; align-items: start; }
#dept-dispatcher .dw-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg, 10px); box-shadow: 0 1px 2px rgba(29, 33, 36, 0.05); min-width: 0; }
#dept-dispatcher .dw-card { position: relative; min-height: 640px; }
#dept-dispatcher .dw-qtabs { display: flex; border-bottom: 1px solid var(--line); padding: 0 8px; }
#dept-dispatcher .dw-qtab, #dept-dispatcher .dw-ctab { border: 0; background: none; font: inherit; padding: 12px 10px 10px; color: var(--gray-500); font-weight: 600; border-bottom: 2px solid transparent; margin-bottom: -1px; display: flex; align-items: center; gap: 6px; cursor: pointer; }
#dept-dispatcher .dw-qtab.on, #dept-dispatcher .dw-ctab.on { color: var(--gray-900); border-color: var(--orange); }
#dept-dispatcher .dw-cnt { background: var(--gray-50); color: var(--gray-600); border-radius: 9px; padding: 0 7px; font-size: 11px; line-height: 18px; font-weight: 700; }
#dept-dispatcher .dw-cnt.red { background: var(--err); color: #fff; }
#dept-dispatcher .dw-filters { padding: 10px 12px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#dept-dispatcher .dw-filters .full { grid-column: 1 / 3; }
#dept-dispatcher .dw-filters .frow { display: flex; justify-content: space-between; align-items: center; }
#dept-dispatcher .dw-inp, #dept-dispatcher .dw-sel { height: 32px; border: 1px solid var(--gray-200); border-radius: 6px; padding: 0 9px; background: var(--white); width: 100%; font: inherit; font-size: 13px; color: var(--text-primary); outline: none; }
#dept-dispatcher .dw-inp:focus, #dept-dispatcher .dw-sel:focus, #dept-dispatcher .dw-tarea:focus { border-color: var(--orange); }
#dept-dispatcher .dw-chk { display: inline-flex; align-items: center; gap: 6px; color: var(--gray-600); font-size: 12.5px; cursor: pointer; user-select: none; }
#dept-dispatcher .dw-chk input { accent-color: var(--orange); margin: 0; }
#dept-dispatcher .dw-qitem { padding: 10px 12px 10px 14px; border-bottom: 1px solid var(--line); cursor: pointer; position: relative; }
#dept-dispatcher .dw-qitem:last-child { border-bottom: 0; }
#dept-dispatcher .dw-qitem:hover { background: var(--paper); }
#dept-dispatcher .dw-qitem.active { background: var(--peach); }
#dept-dispatcher .dw-qitem.active::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--orange); }
#dept-dispatcher .dw-qitem .l1 { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
#dept-dispatcher .dw-qitem .num { font-weight: 700; }
#dept-dispatcher .dw-qitem .tm { color: var(--gray-400); font-size: 12px; }
#dept-dispatcher .sp { flex: 1; }
#dept-dispatcher .dw-qitem .addr { color: var(--gray-600); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#dept-dispatcher .dw-qitem .rsn { font-size: 12.5px; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#dept-dispatcher .dw-qitem .l3 { display: flex; gap: 5px; margin-top: 6px; flex-wrap: wrap; }
#dept-dispatcher .dw-qempty, #dept-dispatcher .dw-empty { padding: 40px 20px; text-align: center; color: var(--gray-400); }
#dept-dispatcher .dw-pill { display: inline-flex; align-items: center; gap: 4px; border-radius: 10px; padding: 0 8px; line-height: 19px; font-size: 11px; font-weight: 600; white-space: nowrap; }
#dept-dispatcher .dw-st-Принята { background: #e7f0f6; color: #2d6a8f; }
#dept-dispatcher .dw-st-Назначена { background: #efeaf7; color: #5d4a8a; }
#dept-dispatcher .dw-st-Вработе { background: var(--orange-soft); color: #9a4f1f; }
#dept-dispatcher .dw-st-Выполнена { background: var(--ok-bg); color: var(--ok); }
#dept-dispatcher .dw-st-Закрыта { background: var(--gray-50); color: var(--gray-600); }
#dept-dispatcher .dw-st-Отменена { background: var(--gray-50); color: var(--gray-400); text-decoration: line-through; }
#dept-dispatcher .dw-pill.tp { border: 1px solid var(--gray-200); color: var(--gray-600); background: var(--white); }
#dept-dispatcher .dw-pill.tp-аварийная { border-color: #e9b8b0; color: var(--err); background: var(--err-bg); }
#dept-dispatcher .dw-pill.tp-платная { border-color: #b9d3bf; color: var(--ok); }
#dept-dispatcher .dw-pill.tp-гарантийная { border-color: #d3c8e6; color: #5d4a8a; }
#dept-dispatcher .dw-pill.over { background: var(--err); color: #fff; }
#dept-dispatcher .dw-pill.bind { background: #fbefd9; color: #8f5a10; }
#dept-dispatcher .dw-pill.okp { background: var(--ok-bg); color: var(--ok); }
#dept-dispatcher .dw-pill.grey { background: var(--gray-50); color: var(--gray-600); }
#dept-dispatcher .dw-pill.demo { background: #fff3cd; color: #7a5a00; }
#dept-dispatcher .dw-chead { padding: 14px 18px 0; border-bottom: 1px solid var(--line); }
#dept-dispatcher .dw-chead .r1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#dept-dispatcher .dw-h { margin: 0; font-size: 18px; font-weight: 600; color: var(--gray-900); }
#dept-dispatcher .dw-meta { margin-left: auto; align-self: center; color: var(--gray-400); font-size: 12px; }
#dept-dispatcher .dw-btn { height: 32px; border-radius: 16px; padding: 0 15px; border: 1px solid transparent; font: inherit; font-weight: 600; font-size: 12px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; }
#dept-dispatcher .dw-btn-xs { height: 26px; padding: 0 11px; font-size: 11.5px; border-radius: 13px; }
#dept-dispatcher .dw-btn-p { background: var(--orange); color: #fff; }
#dept-dispatcher .dw-btn-p:hover { background: var(--orange-hover); }
#dept-dispatcher .dw-btn-s { background: var(--ok); color: #fff; }
#dept-dispatcher .dw-btn-s:hover { filter: brightness(1.08); }
#dept-dispatcher .dw-btn-l { background: var(--white); border-color: var(--gray-300); color: var(--gray-700); }
#dept-dispatcher .dw-btn-l:hover { background: var(--gray-50); }
#dept-dispatcher .dw-btn[disabled] { opacity: 0.5; cursor: not-allowed; filter: none; }
#dept-dispatcher .dw-link { border: 0; background: none; padding: 0; font: inherit; font-size: 12px; color: var(--orange-hover); cursor: pointer; }
#dept-dispatcher .dw-link:hover { text-decoration: underline; }
#dept-dispatcher .ml-auto { margin-left: auto; }
#dept-dispatcher .dw-chips { display: flex; gap: 8px; margin: 10px 0 2px; flex-wrap: wrap; }
#dept-dispatcher .dw-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--gray-200); border-radius: 14px; padding: 3px 10px 3px 8px; font: inherit; font-size: 12px; color: var(--gray-600); background: var(--white); cursor: pointer; }
#dept-dispatcher .dw-chip b { color: var(--gray-900); font-weight: 600; }
#dept-dispatcher .ic { width: 16px; height: 16px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; font-weight: 700; flex: none; }
#dept-dispatcher .ic.ok { background: var(--ok); }
#dept-dispatcher .ic.no { background: #e8a23a; }
#dept-dispatcher .dw-stages { display: flex; margin: 12px 0 0; gap: 2px; cursor: default; }
#dept-dispatcher .dw-stage { flex: 1; height: 28px; display: flex; align-items: center; justify-content: center; background: var(--gray-50); color: var(--gray-600); font-size: 12px; font-weight: 600; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%); padding-left: 8px; }
#dept-dispatcher .dw-stage:first-child { clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%); border-radius: 4px 0 0 4px; padding-left: 0; }
#dept-dispatcher .dw-stage.done { background: var(--orange-soft); color: #9a4f1f; }
#dept-dispatcher .dw-stage.cur { background: var(--orange); color: #fff; }
#dept-dispatcher .dw-stage.cur.ov { background: var(--err); }
#dept-dispatcher .dw-stage.cancel { flex: none; width: 110px; clip-path: none; border-radius: 0 4px 4px 0; background: var(--paper); color: var(--gray-400); padding-left: 0; }
#dept-dispatcher .dw-stage.cancel.cur { background: var(--gray-400); color: #fff; }
#dept-dispatcher .dw-ctabs { display: flex; gap: 4px; margin-top: 8px; flex-wrap: wrap; }
#dept-dispatcher .dw-cbody { padding: 14px 18px 18px; background: var(--paper); border-radius: 0 0 var(--radius-lg, 10px) var(--radius-lg, 10px); }
#dept-dispatcher .dw-grid2, #dept-dispatcher .dw-mcols, #dept-dispatcher .dw-rules { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
#dept-dispatcher .dw-rules { gap: 12px; margin-bottom: 12px; }
#dept-dispatcher .dw-rules ul { margin: 0; padding-left: 18px; line-height: 1.6; }
#dept-dispatcher .dw-box { background: var(--white); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; min-width: 0; }
#dept-dispatcher .dw-box.flush { padding: 0; overflow: hidden; }
#dept-dispatcher .dw-box h4, #dept-dispatcher .dw-out h4 { margin: 0 0 10px; font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 8px; color: var(--gray-900); }
#dept-dispatcher .dw-src { font-weight: 600; font-size: 10.5px; border-radius: 4px; padding: 1px 6px; text-transform: uppercase; letter-spacing: 0.3px; }
#dept-dispatcher .dw-src.d24 { background: var(--orange-soft); color: #9a4f1f; }
#dept-dispatcher .dw-src.b24 { background: #e7f0f6; color: #2d6a8f; }
#dept-dispatcher .dw-fld { display: grid; grid-template-columns: 136px minmax(0, 1fr); gap: 6px 10px; align-items: center; margin-bottom: 7px; }
#dept-dispatcher .dw-fld.top { align-items: start; }
#dept-dispatcher .dw-fld > label { color: var(--gray-400); font-size: 12px; }
#dept-dispatcher .dw-text { background: var(--paper); border: 1px solid var(--line); border-radius: 6px; padding: 6px 9px; line-height: 1.4; }
#dept-dispatcher .dw-tarea { width: 100%; box-sizing: border-box; border: 1px solid var(--gray-200); border-radius: 6px; padding: 7px 9px; resize: vertical; min-height: 54px; font: inherit; outline: none; line-height: 1.4; }
#dept-dispatcher .dw-hint { background: var(--peach); border: 1px solid var(--orange-soft); border-radius: 6px; padding: 8px 10px; font-size: 12px; color: var(--gray-600); line-height: 1.45; margin: 4px 0 8px; }
#dept-dispatcher .dw-hint.warn { background: #fff8ec; border-color: #f3dcae; }
#dept-dispatcher .dw-hint b { color: var(--gray-900); }
#dept-dispatcher .dw-hint .hr { margin-top: 4px; }
#dept-dispatcher .dw-small { font-size: 11.5px; color: var(--gray-400); }
#dept-dispatcher .dw-small.dark { color: var(--gray-600); }
#dept-dispatcher .dw-small.full { flex-basis: 100%; }
#dept-dispatcher .dw-small.pad { padding: 4px 0 2px; }
#dept-dispatcher .dw-warn { color: #8f5a10; font-size: 12px; margin-top: 3px; }
#dept-dispatcher .dw-warn.red { color: var(--err); }
#dept-dispatcher .dw-settings { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; font-size: 12px; background: var(--paper); border: 1px dashed var(--gray-200); border-radius: 6px; padding: 8px 10px; margin-top: 4px; }
#dept-dispatcher .dw-settings span { color: var(--gray-400); }
#dept-dispatcher .dw-task { display: flex; gap: 10px; align-items: flex-start; }
#dept-dispatcher .dw-task .tic { width: 34px; height: 34px; border-radius: 8px; flex: none; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; background: var(--ok); }
#dept-dispatcher .dw-task .tic.wait { background: #e8a23a; }
#dept-dispatcher .dw-task .tic.none { background: var(--gray-300); }
#dept-dispatcher .dw-feedc { display: flex; flex-direction: column; gap: 8px; }
#dept-dispatcher .dw-fitem { display: flex; gap: 10px; }
#dept-dispatcher .dw-fitem .fa { width: 28px; height: 28px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #fff; background: var(--gray-400); }
#dept-dispatcher .dw-fitem .fb { background: var(--white); border: 1px solid var(--line); border-radius: 8px; padding: 7px 10px; flex: 1; min-width: 0; }
#dept-dispatcher .dw-fitem .fh { font-size: 11.5px; color: var(--gray-400); margin-bottom: 2px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
#dept-dispatcher .dw-sendrow { display: flex; gap: 12px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
#dept-dispatcher .dw-cand { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; background: var(--white); }
#dept-dispatcher .dw-cand.best { border-color: var(--orange-muted); box-shadow: 0 0 0 2px var(--orange-soft); }
#dept-dispatcher .dw-cand.chosen { border-color: #9cc2a5; background: var(--ok-bg); }
#dept-dispatcher .dw-cand .ct { display: flex; align-items: center; gap: 8px; }
#dept-dispatcher .dw-cand .cd { font-size: 12px; color: var(--gray-600); line-height: 1.45; }
#dept-dispatcher .dw-cand .ca { display: flex; gap: 8px; margin-top: 8px; align-items: center; }
#dept-dispatcher .dw-score { font-weight: 700; font-size: 12px; border-radius: 10px; padding: 1px 8px; }
#dept-dispatcher .sc-h { background: var(--ok-bg); color: var(--ok); }
#dept-dispatcher .sc-m { background: var(--orange-soft); color: #9a4f1f; }
#dept-dispatcher .sc-l { background: var(--gray-50); color: var(--gray-500); }
#dept-dispatcher .dw-bar { height: 4px; background: var(--gray-50); border-radius: 2px; margin: 7px 0; overflow: hidden; }
#dept-dispatcher .dw-bar i { display: block; height: 100%; background: var(--orange); }
#dept-dispatcher .dw-crit { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 8px; }
#dept-dispatcher .dw-crit .cr { font-size: 11px; border-radius: 4px; padding: 1px 6px; border: 1px solid; }
#dept-dispatcher .cr.y { border-color: #b9d3bf; color: var(--ok); background: var(--ok-bg); }
#dept-dispatcher .cr.p { border-color: #f0d29a; color: #8f5a10; background: #fffaf0; }
#dept-dispatcher .cr.n { border-color: #e9b8b0; color: var(--err); background: var(--err-bg); }
#dept-dispatcher .cr.u { border-color: var(--gray-200); color: var(--gray-400); background: var(--paper); }
#dept-dispatcher .dw-d24src { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; font-size: 12px; }
#dept-dispatcher .dw-d24src div span { display: block; color: var(--gray-400); font-size: 11px; margin-bottom: 2px; }
#dept-dispatcher .dw-d24src .miss { color: var(--err); display: inline; font-size: 12px; }
#dept-dispatcher .dw-appl { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
#dept-dispatcher .dw-done { display: flex; gap: 10px; align-items: center; background: var(--ok-bg); border: 1px solid #c6dccb; border-radius: 8px; padding: 10px 14px; margin-bottom: 12px; }
#dept-dispatcher .dw-done .ic { width: 22px; height: 22px; font-size: 12px; }
#dept-dispatcher .dw-conflict { display: flex; gap: 10px; align-items: center; background: var(--err-bg); border-bottom: 1px solid #e9b8b0; color: var(--err); padding: 10px 18px; border-radius: var(--radius-lg, 10px) var(--radius-lg, 10px) 0 0; }
#dept-dispatcher .dw-seg { display: inline-flex; border: 1px solid var(--gray-200); border-radius: 16px; overflow: hidden; }
#dept-dispatcher .dw-seg button { border: 0; background: var(--white); padding: 6px 14px; color: var(--gray-600); font: inherit; font-weight: 600; font-size: 12px; cursor: pointer; }
#dept-dispatcher .dw-seg button.on { background: var(--orange); color: #fff; }
#dept-dispatcher .dw-seg button[disabled] { color: var(--gray-300); cursor: not-allowed; }
#dept-dispatcher .dw-t { width: 100%; border-collapse: collapse; background: var(--white); font-size: 12.5px; border: 1px solid var(--line); }
#dept-dispatcher .dw-t th { text-align: left; color: var(--gray-400); font-weight: 600; font-size: 11.5px; padding: 8px 10px; border-bottom: 1px solid var(--line); background: var(--paper); }
#dept-dispatcher .dw-t td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
#dept-dispatcher .dw-t tr.cur td { background: var(--peach); }
#dept-dispatcher .dw-t tr.clk { cursor: pointer; }
#dept-dispatcher .dw-t tr.clk:hover td { background: var(--paper); }
#dept-dispatcher .dw-t code { font-size: 11.5px; background: var(--gray-50); border-radius: 3px; padding: 0 4px; }
#dept-dispatcher .dw-kpis { display: flex; gap: 10px; margin-bottom: 12px; }
#dept-dispatcher .dw-kpi { flex: 1; background: var(--white); border: 1px solid var(--line); border-radius: 8px; padding: 9px 12px; }
#dept-dispatcher .dw-kpi b { display: block; font-size: 19px; font-weight: 600; }
#dept-dispatcher .dw-kpi b.sm { font-size: 13px; line-height: 1.35; padding-top: 3px; }
#dept-dispatcher .dw-kpi span { font-size: 11.5px; color: var(--gray-400); }
#dept-dispatcher .dw-syncrow { display: grid; grid-template-columns: 96px 92px minmax(0, 1fr) 150px; gap: 10px; align-items: start; padding: 9px 12px; border-bottom: 1px solid var(--line); }
#dept-dispatcher .dw-syncrow:last-child { border-bottom: 0; }
#dept-dispatcher .dw-dir { font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 6px; display: inline-block; }
#dept-dispatcher .dw-dir.out { background: var(--orange-soft); color: #9a4f1f; }
#dept-dispatcher .dw-dir.in { background: var(--gray-50); color: var(--gray-600); }
#dept-dispatcher .dw-dir.b24 { background: #e7f0f6; color: #2d6a8f; }
#dept-dispatcher .dw-sstate { font-size: 11.5px; font-weight: 600; }
#dept-dispatcher .dw-sstate.ok { color: var(--ok); }
#dept-dispatcher .dw-sstate.err { color: var(--err); }
#dept-dispatcher .dw-sstate.loc, #dept-dispatcher .dw-sstate.mock { color: var(--gray-400); }
#dept-dispatcher .dw-out { padding: 12px 14px; }
#dept-dispatcher .dw-out-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
#dept-dispatcher .dw-out-head h4 { margin: 0; }
#dept-dispatcher .dw-drawer { top: 8px; }
#dept-dispatcher .dw-room-pick { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; width: 100%; border: 1px solid var(--line); background: var(--white); border-radius: 8px; padding: 8px 10px; font: inherit; cursor: pointer; }
#dept-dispatcher .dw-room-pick:hover { border-color: var(--orange-muted); }
#dept-dispatcher .dw-room-pick.on { border-color: #9cc2a5; background: var(--ok-bg); }
#dept-dispatcher .dw-room-pick span { font-size: 12px; color: var(--gray-600); }
#dept-dispatcher .dw-denied { padding: 40px; text-align: center; color: var(--gray-600); }
#dept-dispatcher .dw-toast-dock { position: sticky; bottom: 12px; height: 0; display: flex; justify-content: flex-end; padding-right: 16px; z-index: 40; }
#dept-dispatcher .dw-toast { transform: translateY(-100%); background: var(--gray-800); color: #fff; padding: 11px 16px; border-radius: 8px; font-size: 13px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25); opacity: 0; transition: opacity 0.25s; pointer-events: none; max-width: min(440px, 80%); box-sizing: border-box; }
#dept-dispatcher .dw-toast.show { opacity: 1; }
#dept-dispatcher .dw-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
#dept-dispatcher .dw-row.between { justify-content: space-between; }
#dept-dispatcher .mt4 { margin-top: 4px; }
#dept-dispatcher .mt8 { margin-top: 8px; }
#dept-dispatcher .mt12 { margin-top: 12px; }
#dept-dispatcher .mb8 { margin-bottom: 8px; }
#dept-dispatcher .nowrap { white-space: nowrap; }
@media (max-width: 1100px) {
  #dept-dispatcher .dw-work { grid-template-columns: minmax(0, 1fr); }
  #dept-dispatcher .dw-grid2, #dept-dispatcher .dw-mcols, #dept-dispatcher .dw-rules { grid-template-columns: minmax(0, 1fr); }
  #dept-dispatcher .dw-d24src { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
#dept-dispatcher .dw-demo-badge { display: inline-block; vertical-align: middle; margin-left: 8px; background: #fff3cd; color: #7a5a00; border-radius: 12px; padding: 2px 10px; font-size: 11.5px; font-weight: 600; letter-spacing: 0; }

/* --- База знаний: состав документа (Приказ / Регламент / Схема), 2026-10-14 --- */
.wiki-tree-link { display: flex; align-items: center; gap: 8px; }
.wiki-tree-title { flex: 1 1 auto; min-width: 0; }
.wiki-tree-parts { display: inline-flex; gap: 3px; flex: 0 0 auto; }
.wiki-tree-parts i { width: 6px; height: 6px; border-radius: 50%; background: var(--gray-200); }
.wiki-tree-parts i.is-on { background: var(--orange-muted); }
.wiki-doc-parts { display: flex; flex-direction: column; gap: 14px; }
.wiki-doc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.wiki-doc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); color: var(--gray-500); font-size: 12px; font-weight: 600; text-decoration: none; }
.wiki-doc-chip i { width: 7px; height: 7px; border-radius: 50%; background: var(--gray-200); }
.wiki-doc-chip.is-on { color: var(--gray-800); border-color: var(--orange-muted); }
.wiki-doc-chip.is-on i { background: var(--orange); }
.wiki-doc-part { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); }
.wiki-doc-part-head { display: flex; align-items: baseline; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.wiki-doc-part-title { font-weight: 700; font-size: 14px; color: var(--gray-800); }
.wiki-doc-part-hint { font-size: 12px; color: var(--gray-500); }
.wiki-doc-part-state { margin-left: auto; font-size: 11px; color: var(--gray-400); text-transform: uppercase; letter-spacing: .04em; }
.wiki-doc-part-body { padding: 12px 14px; }
.wiki-doc-part--reg .wiki-doc-part-body { padding: 4px 14px 14px; }
.wiki-doc-part-line { margin: 0 0 6px; font-weight: 600; }
.wiki-doc-part.is-empty { border-style: dashed; background: var(--paper); }
.wiki-doc-part.is-empty .wiki-doc-part-head { border-bottom: none; }
.wiki-doc-part-empty { margin: 0; padding: 0 14px 12px; font-size: 13px; color: var(--gray-500); }
.wiki-part-link { appearance: none; border: none; background: none; padding: 0; color: var(--orange-hover); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.wiki-part-link:hover { text-decoration: underline; }

/* --- Вики: смысловые блоки, 2026-10-14 --- */
.viki-block + .viki-block { margin-top: 12px; }
.viki-block-title { margin: 4px 10px 0; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gray-500); }
.viki-block-lead { margin: 2px 10px 6px; font-size: 12px; color: var(--gray-400); }
.viki-ex-tag { flex: 0 0 auto; font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--orange-hover); background: var(--orange-soft); border-radius: 999px; padding: 1px 6px; }
.viki-badge-ex { background: var(--orange-soft); color: var(--orange-hover); }
.viki-h { margin: 18px 0 8px; font-size: 15px; }
.viki-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.viki-step { display: flex; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); }
.viki-step-n { flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--orange-soft); color: var(--orange-hover); font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.viki-step p { margin: 4px 0 0; }

/* --- База знаний: Вики как вкладка, 2026-10-14 --- */
#wiki-main-layout[hidden],
.viki-pane[hidden] { display: none !important; }
.viki-pane { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* --- Финансы: ставка содержания дома, 2026-10-14 --- */
.fes-rate-grid { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(140px, 1fr) minmax(140px, 1fr); gap: 12px; margin-bottom: 12px; }
.fes-rate-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 10px; }
.fes-rate-table th { text-align: left; font-weight: 600; color: var(--gray-600); padding: 6px 8px; border-bottom: 1px solid var(--line); }
.fes-rate-table td { padding: 6px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.fes-rate-table .field-input { width: 100%; }
.fes-rate-kind { font-size: 12px; color: var(--gray-500); white-space: nowrap; }

/* --- База знаний: штамп, просмотр документа, схема; Вики блоками, 2026-10-14 --- */
.wiki-stamp { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1.5px solid var(--ok); border-radius: var(--radius-sm); color: var(--ok); background: var(--ok-bg); font-size: 12px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.wiki-stamp.is-pending { border-color: var(--gray-300); color: var(--gray-500); background: var(--gray-50); }
.wiki-doc-part-act { margin-left: auto; }
.wiki-doc-viewer { padding: 12px; background: var(--gray-50); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
.wiki-doc-viewer.is-text > * { max-width: 860px; }
.wiki-doc-viewer.is-text { background: var(--white); padding: 4px 22px 18px; }
.wiki-doc-viewer .wiki-viewer,
.wiki-doc-viewer .wiki-viewer iframe { min-height: 720px; }
.wiki-doc-viewer .wiki-viewer--doc { min-height: 0; padding: 16px 28px; box-shadow: 0 1px 3px rgba(0, 0, 0, .06); }
.wiki-scheme-window { margin: 0; padding: 24px; background: var(--paper); font-family: var(--font-sans); }
.viki-block { margin-bottom: 4px; }
.viki-block-btn { appearance: none; border: none; background: transparent; width: 100%; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; font: inherit; font-size: 14px; font-weight: 700; color: var(--gray-800); text-align: left; cursor: pointer; }
.viki-block-btn:hover { background: rgba(217, 119, 58, 0.08); }
.viki-block-btn.is-active { background: var(--orange-soft); color: var(--orange-hover); }
.viki-caret { width: 12px; color: var(--gray-400); }
.viki-count { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--gray-400); }
.viki-block-items { padding: 0 0 6px 18px; }
.viki-sec-title { margin: 8px 10px 2px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gray-500); }

/* --- База знаний: файл схемы, 2026-10-14 --- */
.wiki-upload-scheme { margin-top: 10px; }
.wiki-doc-part-act { display: inline-flex; gap: 8px; align-items: center; }
.wiki-scheme-pick { cursor: pointer; }
.wiki-doc-part .wiki-scheme-viewer { min-height: 0; }
.wiki-doc-part .wiki-scheme-viewer iframe { min-height: 640px; }
.wiki-scheme-viewer.is-image { background: var(--white); padding: 8px; }
.wiki-scheme-viewer.is-image img { width: auto; max-width: 100%; margin: 0 auto; }
.wiki-scheme-status { margin: 0; padding: 0 14px 12px; }
.wiki-scheme-status.is-error { color: var(--err); }

/* --- Финансы: подсказки к ставке содержания, 2026-10-14 --- */
.fes-rate-hint { display: block; margin-top: 4px; font-size: 12px; font-weight: 400; line-height: 1.35; color: var(--gray-500); text-transform: none; letter-spacing: 0; }
.fes-rate-lead { margin: 4px 0 8px; font-size: 13px; color: var(--gray-600); }
.fes-rate-example { margin: 4px 0 12px; padding: 10px 12px; border-left: 3px solid var(--orange); background: var(--peach); border-radius: var(--radius-sm); font-size: 13px; line-height: 1.45; color: var(--gray-700); }
.fes-rows-card { grid-column: 1 / -1; }

/* --- Редизайн 2026-10: боковые отступы (B1) --- */
.dispatcher-page-body { padding: 16px 22px 28px; }
.dept-page-body.wiki-page-body { padding: 16px 22px 28px; background: var(--paper); }
.dept-page-body.wiki-page-body > .wiki-layout { height: auto; }

/* --- База знаний: ссылка ознакомления и факт ознакомления (A1–A4) --- */
.wiki-link-diag { margin: 16px 22px; padding: 14px 16px; border: 1px solid var(--gray-200); border-radius: var(--radius-sm); background: var(--white); }
.wiki-link-diag-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 10px; }
.wiki-link-diag-title { margin: 0; font-size: 15px; }
.wiki-link-diag-sub { flex: 1 1 320px; font-size: 12px; color: var(--gray-500); }
.wiki-link-diag-list { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: 13px; }
.wiki-link-diag-list dt { color: var(--gray-500); }
.wiki-link-diag-list dd { margin: 0; overflow-wrap: anywhere; }
.wiki-link-diag-warn { margin: 10px 0 0; padding: 8px 12px; border-left: 3px solid var(--orange); background: var(--peach); border-radius: var(--radius-sm); font-size: 13px; line-height: 1.45; color: var(--gray-700); }
.wiki-acquaintance-card .wiki-link-diag-warn { margin: 0 0 10px; }
.wiki-acq-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 20px; padding: 10px 14px 14px; }
.wiki-acq-cols h4 { margin: 0 0 6px; font-size: 13px; color: var(--gray-600); }
.wiki-acq-cols ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.wiki-acq-cols li { display: flex; flex-direction: column; padding: 6px 10px; border-radius: var(--radius-sm); background: var(--gray-50, #f7f6f3); font-size: 13px; }
.wiki-acq-cols li.is-done { border-left: 3px solid #3a8a5a; }
.wiki-acq-cols li.is-pending { border-left: 3px solid var(--orange); }
.wiki-acq-cols li.is-empty { color: var(--gray-500); background: none; padding-left: 0; }
.wiki-acq-when { font-size: 12px; color: var(--gray-500); }
#dept-settings .dept-page-body > .panel-section.wiki-link-diag { margin: 16px 22px 0; width: auto; }

/* --- Окно диспетчера: реальные заявки Б24, только чтение (C1–C6) --- */
#dept-dispatcher .dw-demo-badge.is-live { background: #e6f4ea; color: #1e6b3a; }
#dept-dispatcher .dw-live { flex-wrap: wrap; gap: 8px; align-items: center; }
#dept-dispatcher .dw-sel-xs { width: auto; min-width: 0; padding: 2px 6px; font-size: 12px; margin-left: 4px; }

/* --- Окно диспетчера · Шахматка дома (D) --- */
#dept-dispatcher .dw-views { padding-top: 0; margin-bottom: 0; }
#dept-dispatcher .dw-views .module-tab { min-width: 160px; }
#dept-dispatcher .dw-sh { position: relative; min-height: 640px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
#dept-dispatcher .dw-sh-pick { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
#dept-dispatcher .dw-sh-pick label { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--gray-500); min-width: 150px; }
#dept-dispatcher .dw-sh-pick label.wide { min-width: 260px; flex: 0 1 320px; }
#dept-dispatcher .dw-sh-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
#dept-dispatcher .dw-sh-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
#dept-dispatcher .dw-sh-legend { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12px; color: var(--gray-600, #555); }
#dept-dispatcher .dw-sh-legend span { display: inline-flex; align-items: center; gap: 6px; }
#dept-dispatcher .dw-sh-legend .sw { width: 18px; height: 14px; border-radius: 3px; border: 1px solid #cfc9e6; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-size: 10px; font-weight: 700; }
#dept-dispatcher .dw-sh-legend .sw.mkx { background: #fff; color: #c0392b; border-color: #e7b3ab; }
#dept-dispatcher .dw-sh-scroll { overflow-x: auto; overflow-y: visible; padding: 4px 2px 6px; }
#dept-dispatcher .dw-sh-blocks { display: flex; gap: 36px; align-items: flex-end; width: max-content; padding-right: 8px; }
#dept-dispatcher .dw-sh-block { display: flex; flex-direction: column; gap: 10px; }
#dept-dispatcher .dw-sh-rows { display: flex; flex-direction: column; gap: 4px; }
#dept-dispatcher .dw-sh-row { display: flex; gap: 4px; align-items: center; }
#dept-dispatcher .dw-sh-fl { width: 24px; text-align: right; padding-right: 6px; font-size: 11px; font-weight: 700; color: var(--gray-700, #444); flex: 0 0 auto; }
#dept-dispatcher .dw-sh-ent { margin-left: 30px; border: 1px solid var(--gray-300, #c9c9c9); border-radius: 10px; text-align: center; padding: 5px 10px; font-size: 12px; color: var(--gray-700, #444); background: var(--white); }
#dept-dispatcher .dw-sh-cell { position: relative; width: 38px; height: 26px; flex: 0 0 38px; border-radius: 4px; border: 1px solid #d9d4ee; background: #eeebf8; color: #4a4470; font: inherit; font-size: 11px; font-weight: 600; padding: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
#dept-dispatcher .dw-sh-cell.empty { background: #f6f6f8; border-color: #efeff2; cursor: default; }
#dept-dispatcher .dw-sh-cell:hover:not(.empty) { border-color: var(--orange); }
#dept-dispatcher .dw-sh-cell .n { max-width: 34px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#dept-dispatcher .dw-sh-cell .mk { position: absolute; top: -6px; min-width: 13px; height: 13px; border-radius: 7px; font-size: 9px; line-height: 13px; font-weight: 700; padding: 0 3px; box-sizing: border-box; }
#dept-dispatcher .dw-sh-cell .mk.open { right: -5px; background: #c0392b; color: #fff; }
#dept-dispatcher .dw-sh-cell .mk.noown { left: -5px; background: #fff; color: #c0392b; border: 1px solid #e7b3ab; line-height: 11px; }
#dept-dispatcher .c-none, #dept-dispatcher .sw.c-none { background: #eeebf8; }
#dept-dispatcher .c-hist, #dept-dispatcher .sw.c-hist { background: #fbe9d9; border-color: #f0c9a8; color: #8a4b1c; }
#dept-dispatcher .c-open, #dept-dispatcher .sw.c-open { background: #f6c7bd; border-color: #e39a8c; color: #7d2216; }
#dept-dispatcher .c-own, #dept-dispatcher .sw.c-own { background: #dcefe0; border-color: #b5d9bd; color: #255c33; }
#dept-dispatcher .c-noown, #dept-dispatcher .sw.c-noown { background: #f4f4f6; border-color: #dcdce2; color: #8b8b95; }
#dept-dispatcher .c-full, #dept-dispatcher .sw.c-full { background: #dcefe0; border-color: #b5d9bd; color: #255c33; }
#dept-dispatcher .c-part, #dept-dispatcher .sw.c-part { background: #fdf0cf; border-color: #f0dc9c; color: #7a5d10; }
#dept-dispatcher .c-poor, #dept-dispatcher .sw.c-poor { background: #f6d4cc; border-color: #e7a99b; color: #7d2216; }
#dept-dispatcher .sw.c-hl { background: #fff; border: 2px solid var(--orange); }
#dept-dispatcher .dw-sh-cell.hl { box-shadow: 0 0 0 2px var(--orange); }
#dept-dispatcher .dw-sh-cell.sel { box-shadow: 0 0 0 2px #4a4470; }
#dept-dispatcher .dw-sh-cell.hit { outline: 2px dashed #2b6cb0; outline-offset: 1px; }
#dept-dispatcher .dw-sh-group h4 { margin: 4px 0 6px; font-size: 13px; }
#dept-dispatcher .dw-sh-flow { display: flex; flex-wrap: wrap; gap: 4px; }
#dept-dispatcher .dw-sh-drawer { top: 8px; }
#dept-dispatcher .dw-sh-drawer .dw-box h4 { margin: 0 0 8px; font-size: 13px; display: flex; gap: 6px; align-items: baseline; }
#dept-dispatcher .dw-kv { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; font-size: 12px; }
#dept-dispatcher .dw-kv span { display: block; font-size: 11px; color: var(--gray-500); }
#dept-dispatcher .dw-sh-person { padding: 7px 0; border-top: 1px solid var(--line); }
#dept-dispatcher .dw-sh-person:first-of-type { border-top: 0; padding-top: 0; }
#dept-dispatcher .dw-sh-person .r1 { display: flex; gap: 8px; align-items: center; justify-content: space-between; }
#dept-dispatcher .dw-sh-req { display: flex; gap: 8px; align-items: flex-start; width: 100%; text-align: left; border: 1px solid var(--line); border-radius: 6px; background: var(--white); padding: 6px 8px; margin-bottom: 6px; font: inherit; font-size: 12px; cursor: pointer; }
#dept-dispatcher .dw-sh-req > span:nth-child(2) { flex: 1 1 auto; min-width: 0; }
#dept-dispatcher .dw-sh-req:hover { border-color: var(--orange); }
#dept-dispatcher .dw-sh-flow .dw-sh-cell { width: auto; min-width: 38px; flex: 0 0 auto; padding: 0 5px; }
#dept-dispatcher .dw-sh-flow .dw-sh-cell .n { max-width: none; }

/* --- Шахматка: фильтр ячеек и компактный вид (D2) --- */
#dept-dispatcher .dw-sh { padding: 8px 10px; gap: 6px; }
#dept-dispatcher .dw-sh-pick { gap: 6px; align-items: center; }
#dept-dispatcher .dw-sh-pick label { flex-direction: row; align-items: center; gap: 4px; min-width: 0; font-size: 11px; }
#dept-dispatcher .dw-sh-pick label.wide { min-width: 0; flex: 0 1 300px; }
#dept-dispatcher .dw-sh-pick .dw-sel, #dept-dispatcher .dw-sh-pick .dw-inp { height: 26px; font-size: 12px; padding: 0 6px; }
#dept-dispatcher .dw-sh-pick #sh-uk, #dept-dispatcher .dw-sh-pick #sh-jk { max-width: 170px; }
#dept-dispatcher .dw-sh-pick #sh-q { width: 64px; }
#dept-dispatcher .dw-sh-main { gap: 5px; }
#dept-dispatcher .dw-sh-head .dw-h { font-size: 14px; margin: 0; }
#dept-dispatcher .dw-sh-main .dw-hint { padding: 4px 8px; font-size: 11px; }
#dept-dispatcher .dw-sh-legend { gap: 10px; font-size: 11px; }
#dept-dispatcher .dw-sh-legend .sw { width: 14px; height: 11px; }
#dept-dispatcher .dw-sh-chips { display: flex; flex-wrap: wrap; gap: 4px; }
#dept-dispatcher .dw-sh-chip { border: 1px solid var(--line); background: var(--white); border-radius: 12px; padding: 2px 9px; font: inherit; font-size: 11px; color: var(--gray-700, #444); cursor: pointer; }
#dept-dispatcher .dw-sh-chip b { font-weight: 700; margin-left: 2px; }
#dept-dispatcher .dw-sh-chip.on { background: #fbe9d9; border-color: var(--orange); color: #8a4b1c; }
#dept-dispatcher .dw-sh-chip.clr { border-style: dashed; }
#dept-dispatcher .dw-sh-scroll { padding: 6px 2px 4px; }
#dept-dispatcher .dw-sh-blocks { gap: 18px; }
#dept-dispatcher .dw-sh-block { gap: 5px; }
#dept-dispatcher .dw-sh-rows, #dept-dispatcher .dw-sh-row, #dept-dispatcher .dw-sh-flow { gap: 2px; }
#dept-dispatcher .dw-sh-fl { width: 18px; padding-right: 3px; font-size: 10px; }
#dept-dispatcher .dw-sh-ent { margin-left: 21px; padding: 2px 6px; font-size: 11px; border-radius: 7px; }
#dept-dispatcher .dw-sh-cell { width: 31px; height: 19px; flex: 0 0 31px; font-size: 10px; border-radius: 3px; }
#dept-dispatcher .dw-sh-cell .n { max-width: 29px; }
#dept-dispatcher .dw-sh-flow .dw-sh-cell { min-width: 31px; padding: 0 3px; }
#dept-dispatcher .dw-sh-cell .mk { top: -5px; min-width: 11px; height: 11px; font-size: 8px; line-height: 11px; padding: 0 2px; }
#dept-dispatcher .dw-sh-cell .mk.noown { line-height: 9px; }
#dept-dispatcher .dw-sh-cell.dim { opacity: 0.22; filter: grayscale(0.6); }
#dept-dispatcher .dw-sh-cell.dim .mk { display: none; }
#dept-dispatcher .dw-sh-group h4 { margin: 2px 0 3px; font-size: 12px; }
#dept-dispatcher .dw-views .module-tab { min-width: 120px; padding: 5px 10px; }
#dept-dispatcher .dw-views { gap: 6px; }

/* --- Окно диспетчера: моушн (D3). Только transform/opacity, без перерасчёта раскладки --- */
@keyframes dwShCellIn { from { opacity: 0; transform: scale(0.82); } to { opacity: 1; transform: none; } }
@keyframes dwDrawerIn { from { opacity: 0.4; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes dwShPulse { 0% { box-shadow: 0 0 0 2px var(--orange), 0 0 0 2px rgba(217, 119, 58, 0.45); } 70% { box-shadow: 0 0 0 2px var(--orange), 0 0 0 7px rgba(217, 119, 58, 0); } 100% { box-shadow: 0 0 0 2px var(--orange), 0 0 0 7px rgba(217, 119, 58, 0); } }
@keyframes dwShimmer { from { background-position: -240px 0; } to { background-position: 240px 0; } }
@keyframes dwFadeIn { from { opacity: 0; } to { opacity: 1; } }
#dept-dispatcher .dw-sh-cell { transition: opacity 200ms ease, filter 200ms ease, transform 150ms ease, box-shadow 150ms ease, border-color 150ms ease; }
#dept-dispatcher .dw-sh-cell:not(.empty):hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(29, 33, 36, 0.14); z-index: 1; }
#dept-dispatcher .dw-sh-cell .mk { transition: opacity 200ms ease; }
#dept-dispatcher .dw-sh-cell.dim .mk { display: inline-block; opacity: 0; }
#dept-dispatcher .dw-sh-blocks.anim-in .dw-sh-row > .dw-sh-cell, #dept-dispatcher .dw-sh-blocks.anim-in .dw-sh-fl { animation: dwShCellIn 180ms ease-out backwards; animation-delay: var(--d, 0ms); }
#dept-dispatcher .dw-sh-blocks.anim-in .dw-sh-ent { animation: dwFadeIn 200ms ease-out 200ms backwards; }
#dept-dispatcher .dw-sh-cell.hl { animation: dwShPulse 900ms ease-out 3; }
#dept-dispatcher .dw-sh-drawer.slide-in { animation: dwDrawerIn 220ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
#dept-dispatcher .dw-sh-drawer .og-drawer-body > * { animation: dwFadeIn 180ms ease-out backwards; }
#dept-dispatcher .dw-sh-chip { transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, opacity 180ms ease, transform 150ms ease; }
#dept-dispatcher .dw-sh-chip:active { transform: scale(0.96); }
#dept-dispatcher .dw-sh-chip.clr.off { opacity: 0; pointer-events: none; }
#dept-dispatcher .dw-qtab, #dept-dispatcher .dw-ctab { transition: color 180ms ease, border-color 180ms ease; }
#dept-dispatcher .dw-views .module-tab { transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
#dept-dispatcher .dw-sh-main > .dw-sh-head, #dept-dispatcher .dw-sh-main > .dw-hint, #dept-dispatcher .dw-sh-main > .dw-sh-chips, #dept-dispatcher .dw-sh-main > .dw-sh-legend { animation: dwFadeIn 200ms ease-out backwards; }
#dept-dispatcher .dw-sh-skel { display: flex; flex-direction: column; gap: 6px; }
#dept-dispatcher .dw-sh-skc { display: inline-block; width: 31px; height: 19px; border-radius: 3px; background: linear-gradient(90deg, #efeef4 0%, #f8f7fb 40%, #efeef4 80%) #efeef4; background-size: 480px 100%; animation: dwShimmer 1.1s linear infinite; }
#dept-dispatcher .dw-sh-skc.head { width: 220px; height: 16px; }
#dept-dispatcher .dw-sh-skc.line { width: 60%; height: 22px; }
#dept-dispatcher .dw-sh-skc.ent { width: 80px; height: 20px; margin-left: 21px; border-radius: 7px; }
@media (prefers-reduced-motion: reduce) {
  #dept-dispatcher *, #dept-dispatcher *::before, #dept-dispatcher *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; animation-delay: 0ms !important; transition-duration: 0.01ms !important; }
  #dept-dispatcher .dw-sh-cell:not(.empty):hover { transform: none; }
  #dept-dispatcher .dw-sh-skc { animation: none !important; }
}
#dept-dispatcher .dw-sh-pick .dw-sel, #dept-dispatcher .dw-sh-pick .dw-inp, #dept-dispatcher .dw-sh-pick .dw-btn { box-sizing: border-box; height: 26px; min-height: 26px; font-size: 12px; line-height: 24px; border-radius: 6px; }
#dept-dispatcher .dw-sh-pick .dw-btn { padding: 0 10px; display: inline-flex; align-items: center; }
#dept-dispatcher .dw-sh-pick #sh-q { width: 96px; -webkit-appearance: none; appearance: none; }

/* --- Окно диспетчера: шахматка вертикальная (D, макеты m5/m5b/m5c). Этажи строками, подъезды колонками --- */
#dept-dispatcher .dw-sh { --cw: 60px; --ch: 46px; }
#dept-dispatcher .dw-sh-pick { display: block; background: var(--white); border: 1px solid var(--gray-200, #e4e1db); border-radius: 10px; padding: 10px 14px 12px; }
#dept-dispatcher .dw-sh-pick-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 13px; }
#dept-dispatcher .dw-sh-pick-head .sp { flex: 1 1 auto; }
#dept-dispatcher .dw-sh-step { width: 20px; height: 20px; border-radius: 50%; background: var(--orange-soft, #fbe9d9); color: var(--orange, #d9773a); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
#dept-dispatcher .dw-sh-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
#dept-dispatcher .dw-sh-pick label, #dept-dispatcher .dw-sh-pick label.wide { flex-direction: column; align-items: stretch; gap: 3px; min-width: 0; font-size: 11px; color: var(--gray-500); }
#dept-dispatcher .dw-sh-pick .dw-sel, #dept-dispatcher .dw-sh-pick .dw-inp { width: 100%; height: 32px; min-height: 32px; font-size: 13px; }
#dept-dispatcher .dw-sh-pick #sh-q, #dept-dispatcher .dw-sh-pick #sh-uk, #dept-dispatcher .dw-sh-pick #sh-jk { width: 100%; max-width: none; }
#dept-dispatcher .dw-sh-house { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 18px; background: var(--white); border: 1px solid var(--gray-200, #e4e1db); border-radius: 10px; padding: 8px 14px; }
#dept-dispatcher .dw-sh-house .k { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
#dept-dispatcher .dw-sh-house b { font-size: 16px; }
#dept-dispatcher .dw-sh-fill { display: inline-block; width: 80px; height: 6px; border-radius: 3px; background: var(--gray-100, #f0eee9); overflow: hidden; align-self: center; }
#dept-dispatcher .dw-sh-fill i { display: block; height: 100%; background: var(--orange, #d9773a); }
#dept-dispatcher .dw-sh-sec { background: var(--white); border: 1px solid var(--gray-200, #e4e1db); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
#dept-dispatcher .dw-sh-sec h4 { margin: 0; font-size: 14px; display: flex; gap: 6px; align-items: baseline; }
#dept-dispatcher .dw-sh-sec > .dw-small { margin: 0; }
#dept-dispatcher .dw-sh-legend .sw { position: relative; width: 14px; height: 14px; background: var(--white); border-color: var(--gray-200, #e4e1db); overflow: hidden; }
#dept-dispatcher .dw-sh-legend .sw.t-nonres { background: var(--peach, #fbeee2); }
#dept-dispatcher .dw-sh-legend .sw.c-hl { box-shadow: 0 0 0 2px var(--orange); }
#dept-dispatcher .dw-sh-legend .sw .dot { position: absolute; top: 2px; right: 2px; width: 6px; height: 6px; border-radius: 50%; background: var(--err, #c0392b); }
#dept-dispatcher .dw-sh-legend .sw .cor { position: absolute; right: 0; bottom: 0; border-style: solid; border-width: 0 0 8px 8px; border-color: transparent transparent var(--orange-muted, #e9a774) transparent; }
#dept-dispatcher .dw-sh-scroll { overflow-x: auto; overflow-y: visible; padding: 4px 2px 6px; }
#dept-dispatcher .dw-sh-vgrid { display: inline-flex; flex-direction: column; gap: 4px; min-width: max-content; }
#dept-dispatcher .dw-sh-vrow { display: flex; gap: 20px; align-items: center; }
#dept-dispatcher .dw-sh-vgrp { display: flex; gap: 4px; flex: 0 0 auto; }
#dept-dispatcher .dw-sh-vrow > .dw-sh-fl { position: sticky; left: 0; z-index: 3; width: 30px; flex: 0 0 30px; align-self: stretch; display: flex; align-items: center; justify-content: flex-end; padding-right: 8px; margin-right: -12px; box-sizing: border-box; font-size: 12px; font-weight: 600; color: var(--gray-500); background: var(--white); }
#dept-dispatcher .dw-sh-vlab { width: calc(var(--w) * var(--cw) + (var(--w) - 1) * 4px); flex-direction: column; align-items: center; gap: 1px; margin-top: 6px; padding-top: 6px; border-top: 2px solid var(--gray-200, #e4e1db); font-size: 12px; color: var(--gray-600, #555); }
#dept-dispatcher .dw-sh-vlab span { font-size: 11px; color: var(--gray-500); }
#dept-dispatcher .dw-sh-cell, #dept-dispatcher .dw-sh-flow .dw-sh-cell { position: relative; width: var(--cw); height: var(--ch); flex: 0 0 var(--cw); box-sizing: border-box; border: 1px solid var(--gray-200, #e4e1db); border-radius: 6px; background: var(--white); color: var(--gray-900, #2e3133); padding: 4px 6px; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; text-align: left; overflow: hidden; }
#dept-dispatcher .dw-sh-cell.t-nonres { background: var(--peach, #fbeee2); }
#dept-dispatcher .dw-sh-cell.empty { background: transparent; border-color: transparent; }
#dept-dispatcher .dw-sh-cell .n { max-width: 100%; font-size: 15px; font-weight: 700; line-height: 1; }
#dept-dispatcher .dw-sh-cell .a { font-size: 10px; color: var(--gray-500); line-height: 1; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
#dept-dispatcher .dw-sh-cell .dot { position: absolute; top: 5px; right: 5px; width: 7px; height: 7px; border-radius: 50%; background: var(--err, #c0392b); transition: opacity 200ms ease; }
#dept-dispatcher .dw-sh-cell .cor { position: absolute; right: 0; bottom: 0; width: 0; height: 0; border-style: solid; border-width: 0 0 12px 12px; border-color: transparent transparent var(--orange-muted, #e9a774) transparent; }
#dept-dispatcher .dw-sh-cell.dim .dot, #dept-dispatcher .dw-sh-cell.dim .cor { opacity: 0; }
#dept-dispatcher .dw-sh-cell:hover:not(.empty) { border-color: var(--orange); }
#dept-dispatcher .dw-sh-cell.sel { border-color: var(--orange); background: var(--orange-soft, #fbe9d9); box-shadow: 0 0 0 2px var(--orange); }
#dept-dispatcher .dw-sh-cell.hit { outline: 2px solid #2b6cb0; outline-offset: 1px; }
#dept-dispatcher .dw-sh-flow { gap: 6px; }
#dept-dispatcher .dw-sh-flow .dw-sh-cell { width: auto; min-width: var(--cw); flex: 0 0 auto; }
#dept-dispatcher .dw-sh-scroll.dense { --cw: 44px; --ch: 34px; }
#dept-dispatcher .dw-sh-scroll.dense .dw-sh-cell { padding: 3px 4px; }
#dept-dispatcher .dw-sh-scroll.dense .dw-sh-cell .n { font-size: 12px; }
#dept-dispatcher .dw-sh-scroll.dense .dw-sh-cell .a { display: none; }
#dept-dispatcher .dw-sh-vgrid.anim-in .dw-sh-vrow > .dw-sh-vgrp > .dw-sh-cell { animation: dwShCellIn 180ms ease-out backwards; animation-delay: var(--d, 0ms); }
#dept-dispatcher .dw-sh-drawer { width: 400px; max-width: 100%; }
#dept-dispatcher .dw-sh-dbar { padding: 8px 18px; border-bottom: 1px solid var(--line); display: flex; gap: 8px; }
#dept-dispatcher .dw-sh-dsec h5 { margin: 0 0 8px; font-size: 13px; display: flex; gap: 6px; align-items: baseline; }
#dept-dispatcher .dw-sh-dsec > .dw-small { margin: 6px 0 0; }
#dept-dispatcher .dw-sh-dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 0; }
#dept-dispatcher .dw-sh-dl dt { font-size: 11px; color: var(--gray-500); }
#dept-dispatcher .dw-sh-dl dd { margin: 1px 0 0; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
#dept-dispatcher .dw-nodata { font-style: italic; font-weight: 400; color: var(--gray-500); }
#dept-dispatcher .dw-sh-person { border: 1px solid var(--line); border-radius: 8px; padding: 9px 12px; margin-bottom: 8px; }
#dept-dispatcher .dw-sh-person:first-of-type { border-top: 1px solid var(--line); padding-top: 9px; }
#dept-dispatcher .dw-sh-person .r1 { align-items: flex-start; }
#dept-dispatcher .dw-sh-role { flex: 0 0 auto; font-size: 11px; font-weight: 600; border-radius: 4px; padding: 1px 6px; background: var(--gray-100, #f0eee9); color: var(--gray-700, #444); }
#dept-dispatcher .dw-sh-role.own { background: var(--orange-soft, #fbe9d9); color: #8a4b1c; }
#dept-dispatcher .dw-sh-role.none { background: transparent; border: 1px dashed var(--gray-300, #c9c9c9); color: var(--gray-500); }
#dept-dispatcher .dw-sh-req { align-items: flex-start; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 7px 0; margin: 0; background: transparent; }
#dept-dispatcher .dw-sh-req .lnk { color: var(--orange, #d9773a); white-space: nowrap; font-weight: 500; }
#dept-dispatcher .dw-sh-miss { display: flex; flex-wrap: wrap; gap: 6px; }
#dept-dispatcher .dw-sh-miss span { font-size: 12px; color: #8a4b1c; border: 1px dashed var(--orange-muted, #e9a774); background: #fff8f0; border-radius: 6px; padding: 2px 8px; }
@media (max-width: 760px) {
  #dept-dispatcher .dw-sh { --cw: 52px; --ch: 42px; }
  #dept-dispatcher .dw-sh-fields { grid-template-columns: 1fr; }
  #dept-dispatcher .dw-sh-vrow { gap: 12px; }
  #dept-dispatcher .dw-sh-vrow > .dw-sh-fl { margin-right: -6px; width: 24px; flex-basis: 24px; }
  #dept-dispatcher .dw-sh-drawer { width: 100%; border-radius: 0; }
}

/* Документы на ознакомление: компактная строка вверху .app-main (не в сетке .app-shell) */
.og-acq-banner {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 4px 56px 4px 12px; /* справа — место под кнопку полноэкранного режима */
  border-bottom: 1px solid #f0d9bf;
  background: #fff8f0;
  font-size: 13px;
  line-height: 1.35;
}
.og-acq-banner[hidden] { display: none; }
.og-acq-banner-list[hidden] { display: none; }
.og-acq-banner-row { display: flex; align-items: center; gap: 10px; min-width: 0; height: 26px; }
.og-acq-banner-toggle {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 8px;
  border: 1px solid #ecc9a2;
  border-radius: 6px;
  background: #fff;
  color: #7a4a1d;
  font: inherit;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.og-acq-banner-caret { display: inline-block; transition: transform 180ms ease; }
.og-acq-banner.is-open .og-acq-banner-caret { transform: rotate(90deg); }
.og-acq-banner-first { flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.og-acq-banner.is-open .og-acq-banner-first { visibility: hidden; }
.og-acq-link { color: #9a4a10; text-decoration: none; }
.og-acq-link:hover, .og-acq-link:focus-visible { text-decoration: underline; }
.og-acq-banner-list { margin: 2px 0 4px; padding: 0 0 0 28px; list-style: none; display: grid; gap: 2px; }
.og-acq-banner-list li { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.og-acq-banner-close { flex: 0 0 auto; margin-left: auto; border: 0; background: none; font-size: 18px; line-height: 1; cursor: pointer; color: #8a6a4a; padding: 0 2px; }
@media (prefers-reduced-motion: reduce) { .og-acq-banner-caret { transition: none; } }

/* --- F. Перспективные проекты: «Список домов» (одна строка = один дом). Без fixed/vh, вертикальный скролл общий --- */
.development-houses-root { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.development-houses-root .dev-chart-v2 { --dev-side-width: 380px; --dev-gantt-row-h: 56px; border: 1px solid var(--gray-200); border-radius: 10px; background: var(--white); overflow: hidden; }
.development-houses-root .dev-chart-header-row { display: grid; grid-template-columns: var(--dev-side-width) minmax(0, 1fr); border-bottom: 1px solid var(--gray-200); }
.development-houses-root .dev-chart-v2 { --dev-houses-h: max(360px, calc(var(--ogonyok-frame-h, 900px) - 300px)); height: auto; }
/* Свои скроллы списка домов внутри рамки Битрикс24 (высота от рамки, без фиксированного позиционирования): правый бегунок — по домам, нижний — по времени. */
.development-houses-root .dev-chart-scroll-area { overflow: hidden; max-height: var(--dev-houses-h); }
.development-houses-root .dev-chart-tree { height: auto; max-height: var(--dev-houses-h); overflow-x: hidden; overflow-y: auto; scrollbar-width: none; border-right: 1px solid var(--gray-200); }
.development-houses-root .dev-chart-tree::-webkit-scrollbar { display: none; }
.development-houses-root .dev-houses-tree-tail { flex: 0 0 18px; }
.development-houses-root .dev-chart-head-track { overflow: hidden; }
.development-houses-root .dev-chart-body-track { height: auto; max-height: var(--dev-houses-h); overflow: auto; scrollbar-width: auto; scrollbar-color: #b9b3ab #f3f2f0; overscroll-behavior: contain; }
.dev-houses-corner { font-size: 13px; }
.dev-houses-corner span { font-weight: 400; font-size: 12px; color: var(--gray-500); }
.dev-houses-side { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 10px; align-content: center; flex: 0 0 auto; width: 100%; height: var(--dev-gantt-row-h, 56px); box-sizing: border-box; padding: 6px 12px; border: 0; border-bottom: 1px solid var(--gray-100); background: var(--white); text-align: left; font: inherit; cursor: default; }
.dev-houses-addr { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dev-houses-meta { grid-column: 1; font-size: 11px; color: var(--gray-500); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dev-houses-nums { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; font-size: 11px; color: var(--gray-600); white-space: nowrap; }
.dev-houses-track .dev-chart-row-track { position: relative; height: 100%; }
.dev-houses-track { height: var(--dev-gantt-row-h); min-height: var(--dev-gantt-row-h); max-height: var(--dev-gantt-row-h); }
.dev-houses-bar { position: absolute; top: 18px; bottom: 18px; border-radius: 6px; background: var(--orange-soft, #fbe9d9); border: 1px solid var(--orange-muted, #e9a774); }
.dev-houses-vv { position: absolute; top: 12px; bottom: 12px; border-radius: 4px; background: var(--orange, #d9773a); opacity: 0.85; }
.dev-houses-undated { border: 1px solid var(--gray-200); border-radius: 10px; background: var(--white); padding: 10px 0 0; }
.dev-houses-undated h4 { margin: 0 12px 4px; font-size: 14px; }
.dev-houses-undated h4 span { font-weight: 400; color: var(--gray-500); }
.dev-houses-undated .field-hint { margin: 0 12px 6px; }
@media (max-width: 760px) { .development-houses-root .dev-chart-v2 { --dev-side-width: 200px; } .dev-houses-nums { display: none; } }

/* --- E. Сводка дома (m6/m6b/m6c): общий .og-drawer 400px, без fixed/vh --- */
.og-hc-host { position: relative; }
.og-hc-drawer { z-index: 30; }
.og-hc-drawer .og-drawer-body, .dw-hc-drawer .og-drawer-body { display: flex; flex-direction: column; gap: 16px; }
.og-hc-drawer .dw-sh-dbar { padding: 8px 18px; border-bottom: 1px solid var(--line); }
.og-q { display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border-radius: 50%; border: 1px solid var(--gray-300, #c9c9c9); color: var(--gray-500); font-size: 10px; font-weight: 700; cursor: help; vertical-align: 1px; }
.og-q:focus-visible { outline: 2px solid var(--orange); outline-offset: 1px; }
.og-src { display: inline-block; font-size: 10px; font-weight: 600; padding: 0 5px; border-radius: 4px; background: var(--gray-100, #f0eee9); color: var(--gray-600, #555); vertical-align: 1px; }
.hc-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hc-tile { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; }
.hc-tile b { font-size: 16px; }
.hc-tile span { font-size: 11px; color: var(--gray-500); }
.hc-list, .hc-kv { margin: 10px 0 0; display: flex; flex-direction: column; }
.hc-list > div, .hc-kv > div { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; font-size: 13px; border-bottom: 1px solid var(--line); }
.hc-list dd, .hc-kv dd { margin: 0; font-weight: 600; text-align: right; }
.hc-list dt, .hc-kv dt { color: var(--gray-600, #555); }
.hc-list .tot dt, .hc-list .tot dd { font-weight: 700; color: inherit; }
.hc-fill { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; }
.hc-fill > span:first-child { flex: 1 1 auto; color: var(--gray-600, #555); }
.hc-fill .dw-sh-fill, #dept-dispatcher .hc-fill .dw-sh-fill { display: inline-block; width: 80px; height: 6px; border-radius: 3px; background: var(--gray-100, #f0eee9); overflow: hidden; }
.hc-fill .dw-sh-fill i { display: block; height: 100%; background: var(--orange, #d9773a); }
.hc-total { border: 1px solid var(--orange-muted, #e9a774); background: #fff8f0; border-radius: 10px; padding: 12px 14px; }
.hc-total > span { font-size: 12px; color: var(--gray-600, #555); }
.hc-total > b { display: block; font-size: 24px; margin: 2px 0 6px; }
.hc-total small { font-size: 13px; font-weight: 400; }
.hc-total p { margin: 0; font-size: 12px; line-height: 1.5; }
.hc-empty { border: 1px dashed var(--gray-300, #c9c9c9); border-radius: 10px; padding: 12px 14px; }
.hc-empty p { margin: 4px 0 0; font-size: 12px; }
.hc-hist > div { display: flex; gap: 12px; padding: 5px 0; font-size: 13px; border-bottom: 1px solid var(--line); }
.hc-hist > div > span:first-child { min-width: 92px; color: var(--gray-600, #555); }
#dept-dispatcher .dw-sh-house .sp { flex: 1 1 auto; }
@media (max-width: 760px) { .og-hc-drawer { width: 100%; border-radius: 0; } }
/* Вкладки «Строительные проекты» / «Дома (...)» длиннее прежних: фильтры переносятся на вторую строку, а не прячутся под вкладками. */
.dept-section.active#dept-development .dev-module-tabs { flex-wrap: wrap; row-gap: 8px; }
#dept-development .filter-bar--gantt { flex: 1 1 860px; }
/* --- Шахматка: дубли помещений в Битриксе (разные элементы с одним номером) --- */
#dept-dispatcher .dw-sh-cell .dup { position: absolute; top: 3px; right: 15px; font-style: normal; font-size: 9px; line-height: 12px; font-weight: 700; padding: 0 3px; border-radius: 6px; background: #2b6cb0; color: #fff; }
#dept-dispatcher .dw-sh-cell.dim .dup { opacity: 0; }
#dept-dispatcher .dw-sh-legend .sw.sw-dup { width: 20px; background: #2b6cb0; border-color: #2b6cb0; color: #fff; font-size: 8px; }
#dept-dispatcher .dw-sh-house .dw-sh-dupk b { color: #2b6cb0; }
#dept-dispatcher .dw-sh-dbtns { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }

/* Окно диспетчера: верхний фильтр УК → ЖК → Дом; селекты той же высоты, что кнопки рядом (26px) */
#dept-dispatcher .dw-live .dw-sel-xs { box-sizing: border-box; width: auto; height: 26px; min-height: 26px; line-height: 24px; padding: 0 22px 0 10px; font-size: 11.5px; border-radius: 13px; margin-left: 4px; }
#dept-dispatcher .dw-topf { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#dept-dispatcher .dw-topf label { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--text-secondary, #666); }
#dept-dispatcher .dw-topf .dw-sel-xs { max-width: 210px; }
#dept-dispatcher .dw-topf .dw-sel-house { max-width: 280px; }
#dept-dispatcher .dw-period { display: inline-flex; align-items: center; }
/* Окно диспетчера · срезы Д24 → Б24 (полоса справа от вкладки «Шахматка») */
#dept-dispatcher .dw-viewsrow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; }
#dept-dispatcher .dw-viewsrow > .dw-views { flex: 0 0 auto; }
#dept-dispatcher .dw-slices { flex: 1 1 360px; min-width: 0; display: flex; align-items: center; gap: 6px 10px; flex-wrap: wrap; font-size: 12px; color: var(--text-secondary, #666); }
#dept-dispatcher .dw-sl-kicker { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
#dept-dispatcher .dw-sl-days { display: inline-flex; border: 1px solid var(--gray-200, #e5e5e5); border-radius: 13px; overflow: hidden; }
#dept-dispatcher .dw-sl-days button { height: 24px; min-width: 26px; padding: 0 6px; border: 0; background: var(--white, #fff); font: inherit; font-size: 11.5px; cursor: pointer; color: inherit; }
#dept-dispatcher .dw-sl-days button + button { border-left: 1px solid var(--gray-200, #e5e5e5); }
#dept-dispatcher .dw-sl-days button.on { background: var(--orange, #f26b1d); color: #fff; }
#dept-dispatcher .dw-sl-n { white-space: nowrap; }
#dept-dispatcher .dw-sl-n b { color: var(--text-primary, #222); font-size: 13px; }
#dept-dispatcher .dw-sl-total b { color: var(--orange, #f26b1d); }

/* --- Финансовая служба · «Ставка содержания»: методика ФЭС и сравнение по УК --- */
#fr-root { display: flex; flex-direction: column; gap: 12px; }
.fr-lead { margin: 0; font-size: 13px; color: var(--gray-700, #444); }
.fr-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.fr-tile { border: 1px solid var(--line, #e7e3dc); border-radius: 10px; background: var(--white, #fff); padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.fr-tile b { font-size: 18px; } .fr-tile b small { font-size: 12px; font-weight: 500; color: var(--gray-500); }
.fr-tile span { font-size: 11.5px; color: var(--gray-500); }
.fr-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 12px; }
.fr-bar label { display: inline-flex; align-items: center; gap: 6px; }
.fr-bar select { height: 28px; border-radius: 8px; padding: 0 8px; font-size: 12px; }
.fr-src { color: var(--gray-500); font-size: 11px; }
.fr-card { border: 1px solid var(--line, #e7e3dc); border-radius: 10px; background: var(--white, #fff); padding: 10px 12px; min-width: 0; }
.fr-card h4 { margin: 0 0 4px; font-size: 14px; } .fr-card h4 span { font-weight: 400; color: var(--gray-500); }
.fr-formula { margin: 4px 0; padding: 6px 10px; border-radius: 8px; background: #fff8f0; border: 1px solid var(--orange-muted, #e9a774); font-size: 12.5px; font-weight: 600; }
.fr-note { margin: 4px 0 8px; font-size: 11.5px; color: var(--gray-500); line-height: 1.45; }
.fr-scroll { overflow-x: auto; max-width: 100%; }
.fr-scroll--tall { max-height: 520px; overflow-y: auto; }
.fr-table { border-collapse: collapse; width: 100%; font-size: 12px; }
.fr-table th { position: sticky; top: 0; background: var(--paper, #faf8f5); text-align: left; font-weight: 600; font-size: 11px; color: var(--gray-600, #555); padding: 5px 8px; border-bottom: 1px solid var(--line, #e7e3dc); white-space: nowrap; }
.fr-table td { padding: 5px 8px; border-bottom: 1px solid var(--gray-100, #f0eee9); vertical-align: top; }
.fr-table td small { color: var(--gray-500); }
.fr-table tr.fr-dim td { color: var(--gray-500); }
.fr-table tr.fr-on td { background: #fff8f0; }
.fr-miss { font-size: 11px; color: #8a5a2b; max-width: 320px; }
.fr-pct { white-space: nowrap; } .fr-warm { color: #b7791f; font-weight: 600; } .fr-hot { color: #c0392b; font-weight: 700; }
.fr-link { border: 0; background: none; padding: 0; font: inherit; color: var(--orange, #d9773a); cursor: pointer; text-align: left; }
.fr-check { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; margin: 0 0 6px; }

/* --- Перспективные проекты: компактный блок вкладок и фильтра (2026-10-21). Только CSS, без наблюдателей размеров --- */
.dept-section.active#dept-development .dev-module-tabs { flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 6px 8px; margin: 0 0 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--white, #fff); }
#dept-development .dev-tab-groups { flex: 0 1 auto; flex-wrap: wrap; gap: 6px; }
#dept-development .dev-tab-group { padding: 2px; border-radius: 10px; }
#dept-development .dev-module-tab, #dept-development .dev-module-tab.active { min-height: 28px; padding: 4px 10px; font-size: 12.5px; }
#dept-development .filter-bar--gantt { flex: 1 1 100%; flex-wrap: wrap; justify-content: flex-start; margin-left: 0; gap: 6px; overflow: visible; }
#dept-development .gantt-filter-chip { min-height: 28px; padding: 2px 6px 2px 8px; }
#dept-development .gantt-filter-chip select { max-width: 200px; }
#dept-development .filter-bar--gantt .btn-secondary { min-height: 28px; height: 28px; padding: 0 10px; }
#dept-development .filter-bar--gantt[hidden] { display: none !important; }
/* «Дома»: высота графика = видимая часть окна (ставит JS один раз при показе и при resize), нижний бегунок всегда виден */
.development-houses-root .dev-chart-body-track { scrollbar-gutter: stable; }

.fr-link { color: inherit; text-decoration: underline dotted; text-underline-offset: 2px; }
.fr-link:hover { color: var(--orange, #d9773a); }

/* Окно диспетчера: «Статус» и «Тип» — в общей строке фильтров рядом с УК/ЖК/Дом */
#dept-dispatcher .dw-topf #dw-fst, #dept-dispatcher .dw-topf #dw-ftype { max-width: 150px; }

/* КВП-24: «Изменения за период» */
.kvp-changes-period { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 12px; }
.kvp-period-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--border, #d9dde3); border-radius: 999px; cursor: pointer; font-size: 14px; }
.kvp-period-chip:has(input:checked) { border-color: var(--accent, #e8590c); background: rgba(232, 89, 12, .08); font-weight: 600; }
.kvp-period-date { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.kvp-period-date .field-input { width: auto; min-width: 140px; }
