*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --blue-dark: #0a5691;
  --blue-mid: #2d6ea8;
  --blue-light: #5a8ab5;
  --blue-pale: #7aaad0;
  --bg: #f0f4f8;
  --bg-card: #ffffff;
  --border: #c8daea;
  --border-light: #dceaf5;
  --green: #2d8a4e;
  --green-bg: #d4edda;
  --text: #0a5691;
  --text-muted: #5a8ab5;
}

body { font-family: 'Segoe UI', system-ui, sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; font-size: 14px; }

/* ── ШАПКА ── */
.header { background: var(--blue-dark); color: #fff; padding: 14px 32px; display: flex; align-items: center; gap: 16px; position: sticky; top: 0; z-index: 100; }
.header-logo { font-size: 17px; font-weight: 700; }
.header-sub { font-size: 12px; opacity: 0.65; margin-top: 2px; }
.header-badge { margin-left: auto; background: rgba(255,255,255,0.12); border-radius: 20px; padding: 4px 14px; font-size: 11px; }

/* ── РАЗМЕТКА ── */
.layout { display: flex; min-height: calc(100vh - 52px); }

/* ── САЙДБАР ── */
.sidebar { width: 240px; background: var(--bg-card); border-right: 1px solid var(--border-light); padding: 28px 0; flex-shrink: 0; }
.steps-label { font-size: 10px; font-weight: 700; color: var(--blue-pale); text-transform: uppercase; letter-spacing: 1px; padding: 0 20px 14px; }
.step { display: flex; align-items: flex-start; gap: 12px; padding: 10px 20px; cursor: pointer; transition: background .15s; }
.step:hover { background: #f5f8fa; }
.step.active { background: #e8f0f7; }
.step.inactive { opacity: .55; cursor: default; }
.step-num { width: 26px; height: 26px; border-radius: 50%; background: var(--border-light); color: var(--blue-pale); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; margin-top: 1px; }
.step.done .step-num { background: var(--green); color: #fff; }
.step.active .step-num { background: var(--blue-dark); color: #fff; }
.step-title { font-size: 12px; font-weight: 600; color: var(--text); }
.step.inactive .step-title { color: var(--blue-pale); }
.step-desc { font-size: 10px; color: var(--blue-pale); margin-top: 2px; }
.sidebar-divider { border: none; border-top: 1px solid var(--border-light); margin: 12px 20px; }

/* ── САЙДБАР: ДОПОЛНИТЕЛЬНЫЕ ПУНКТЫ ── */
.sidebar-extra-label { font-size: 10px; font-weight: 700; color: var(--blue-pale); text-transform: uppercase; letter-spacing: 1px; padding: 18px 20px 8px; border-top: 1px solid var(--border-light); margin-top: 8px; }
.step-extra-icon { width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; margin-top: 1px; }

/* ── TAB-BAR ── */
.tab-bar { display: flex; border-bottom: 2px solid var(--border-light); margin-bottom: 28px; overflow-x: auto; }
.tab { padding: 9px 16px; font-size: 12px; font-weight: 600; color: var(--blue-pale); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s; white-space: nowrap; }
.tab.active { color: var(--blue-dark); border-bottom-color: var(--blue-dark); }
.tab:hover:not(.active) { color: var(--blue-mid); }

/* ── ОСНОВНАЯ ОБЛАСТЬ ── */
.main { flex: 1; padding: 36px 44px; overflow-y: auto; max-width: 900px; }
.screen { display: none; }
.screen.active { display: block; }
.page-title { font-size: 20px; font-weight: 700; color: var(--blue-dark); margin-bottom: 4px; }
.page-subtitle { font-size: 13px; color: var(--text-muted); margin-bottom: 28px; }

/* ── КАРТОЧКИ ── */
.card { background: var(--bg-card); border-radius: 12px; padding: 24px; box-shadow: 0 1px 4px rgba(12,45,79,.07); margin-bottom: 18px; }
.card-title { font-size: 11px; font-weight: 700; color: var(--blue-dark); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 16px; }

/* ── КНОПКИ ── */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 22px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; border: none; transition: all .15s; font-family: inherit; }
.btn-primary { background: var(--blue-dark); color: #fff; }
.btn-primary:hover { background: var(--blue-mid); }
.btn-secondary { background: var(--border-light); color: var(--blue-dark); }
.btn-secondary:hover { background: #d0dcea; }
.btn-outline { background: transparent; color: var(--blue-dark); border: 1.5px solid var(--border); }
.btn-outline:hover { border-color: var(--blue-mid); background: #f5f8fa; }
.btn-danger { background: #fde8e8; color: #c0392b; }
.btn-danger:hover { background: #f5c6c6; }
.btn-success { background: var(--green); color: #fff; }
.btn-success:hover { background: #247a42; }
.btn-sm { padding: 7px 14px; font-size: 12px; }
.btn-group { display: flex; gap: 10px; margin-top: 24px; }

/* ── ПОЛЯ ФОРМЫ ── */
.field { margin-bottom: 16px; }
.field-label { font-size: 11px; font-weight: 600; color: var(--blue-mid); margin-bottom: 6px; display: block; }
.field-required::after { content: ' *'; color: #c0392b; }
.field input, .field select, .field textarea {
  width: 100%; border: 1.5px solid var(--border); border-radius: 7px;
  padding: 9px 12px; font-size: 13px; color: var(--text);
  font-family: inherit; background: #fff; transition: border-color .15s;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--blue-dark); }
.field textarea { resize: vertical; min-height: 80px; }
.field-hint { font-size: 11px; color: var(--blue-pale); margin-top: 4px; }
.form-input { width: 100%; border: 1.5px solid var(--border); border-radius: 7px; padding: 9px 12px; font-size: 13px; color: var(--text); font-family: inherit; background: #fff; transition: border-color .15s; }
.form-input:focus { outline: none; border-color: var(--blue-dark); }
.fields-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fields-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }

/* ── S1: СТОРОНЫ (entry-block) ── */
.entry-block { margin-bottom: 22px; }
.entry-block:last-child { margin-bottom: 0; }
.entry-block-label { font-size: 11px; font-weight: 700; color: var(--blue-mid); text-transform: uppercase; letter-spacing: .6px; margin-bottom: 10px; }
.entry-selector { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: flex-start; }
.entry-option { border: 2px solid var(--border-light); border-radius: 10px; padding: 14px 16px; cursor: pointer; transition: all .15s; display: flex; align-items: flex-start; gap: 12px; }
.entry-option.selected { border-color: var(--blue-dark); background: #f0f4f8; }
.entry-option:hover:not(.selected) { border-color: var(--blue-mid); }
.entry-icon { font-size: 18px; flex-shrink: 0; margin-top: 2px; }
.entry-sub { flex: 1; min-width: 0; }
.entry-title { font-size: 13px; font-weight: 600; color: var(--blue-dark); }
.entry-hint { font-size: 11px; color: var(--blue-pale); margin-top: 2px; }
.db-search { margin-top: 10px; }
.db-search input { width: 100%; border: 1.5px solid var(--border); border-radius: 6px; padding: 6px 10px; font-size: 12px; color: var(--text); font-family: inherit; background: white; outline: none; }
.db-search input:focus { border-color: var(--blue-dark); }
.db-results { margin-top: 6px; border: 1.5px solid var(--border-light); border-radius: 8px; overflow: hidden; background: white; }
.db-result-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; cursor: pointer; border-bottom: 1px solid #f0f4f8; font-size: 12px; color: var(--text); transition: background .1s; }
.db-result-item:last-of-type { border-bottom: none; }
.db-result-item:hover { background: #f5f8fa; }
.db-result-item.selected { background: #f0f4f8; font-weight: 600; }
.db-check { width: 14px; color: var(--green); font-weight: 700; flex-shrink: 0; }
.db-meta { margin-left: auto; font-size: 10px; color: var(--blue-pale); white-space: nowrap; }
.db-result-new { padding: 8px 12px; font-size: 12px; font-weight: 600; color: var(--blue-dark); cursor: pointer; background: #f8fafc; border-top: 1px solid var(--border-light); }
.db-result-new:hover { background: #e8f0f7; }

/* ── S1: ЧЕКЛИСТ ── */
.checklist { display: flex; flex-direction: column; gap: 10px; }
.check-row { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--text); }
.check-box { width: 20px; height: 20px; border-radius: 5px; border: 2px solid var(--border); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: var(--blue-pale); }
.check-box.ok { background: var(--green); border-color: var(--green); color: white; }

/* ── S1: ВЫБОР ТИПА ── */
#executor-type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
#contract-model-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* Зелёная галочка на выбранных карточках */
#executor-type-grid .type-card.selected::before,
#contract-model-grid .type-card.selected::before {
  content: '✓';
  position: absolute;
  top: 8px; left: 10px;
  width: 22px; height: 22px;
  background: #2d8a4e;
  color: #fff;
  border-radius: 50%;
  font-size: 13px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  z-index: 1;
}

/* Стрелка-подсказка "кликабельно" на карточках типа исполнителя */
#executor-type-grid .type-card:not(.locked):not(.selected)::after {
  content: '›';
  position: absolute;
  bottom: 12px; right: 14px;
  font-size: 22px; line-height: 1;
  color: var(--blue-pale);
  font-weight: 700;
}

/* Золотой border-top для карточек моделей договора */
#contract-model-grid .type-card {
  border-top-color: #c07c1e;
}
#contract-model-grid .type-card:hover:not(.locked) {
  border-top-color: #a0660f;
}
#contract-model-grid .type-card.selected {
  border-top-color: #e09a30;
}

.type-card {
  border: 1.5px solid var(--border);
  border-top: 4px solid var(--blue-mid);
  border-radius: 10px;
  padding: 18px 16px 14px;
  cursor: pointer;
  transition: all .18s;
  position: relative;
  background: #fff;
}
.type-card:hover:not(.locked) {
  border-color: var(--blue-mid);
  border-top-color: var(--blue-dark);
  background: #c8dff5;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(12,45,79,.13);
}
.type-card.selected {
  background: var(--blue-dark);
  border-color: var(--blue-dark);
  border-top-color: var(--blue-light);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(12,45,79,.22);
}
.type-card.locked { opacity: .35; cursor: not-allowed; }
.type-card.locked:hover { transform: none; box-shadow: none; background: #fff; }

.locked-badge { position: absolute; top: 10px; right: 12px; background: var(--border-light); color: var(--blue-pale); font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 10px; }

/* аватар-плашка */
.type-avatar {
  width: 44px; height: 44px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; color: #fff;
  margin-bottom: 12px; letter-spacing: .5px;
}
.type-avatar-npd  { background: #2d8a4e; }
.type-avatar-ip   { background: #2d6ea8; }
.type-avatar-org  { background: #0a5691; }
.type-avatar-ta   { background: #c07000; }
.type-avatar-san  { background: #6b4fbb; }
.type-avatar-fl   { background: #0a5691; }
.type-card.selected .type-avatar { opacity: .85; }

.type-name { font-size: 13px; font-weight: 700; color: var(--blue-dark); margin-bottom: 5px; line-height: 1.3; }
.type-desc { font-size: 11px; color: var(--text-muted); line-height: 1.5; }
.type-docs { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 5px; }
.doc-chip { background: #e8f0f7; color: var(--blue-mid); font-size: 10px; padding: 2px 8px; border-radius: 20px; font-weight: 500; }

/* цвета текста на тёмной карточке */
.type-card.selected .type-name { color: #fff; }
.type-card.selected .type-desc { color: rgba(255,255,255,.7); }
.type-card.selected .doc-chip  { background: rgba(255,255,255,.12); color: rgba(255,255,255,.85); }
.type-card.selected .locked-badge { background: rgba(255,255,255,.15); color: rgba(255,255,255,.6); }

.npd-badge { display: inline-block; background: var(--green-bg); color: var(--green); font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 10px; margin-bottom: 8px; }

/* ── S3: ПАКЕТЫ ── */
.pkg-tabs { display: flex; border-bottom: 2px solid var(--border-light); margin-bottom: 18px; flex-wrap: wrap; }
.pkg-tab { padding: 8px 18px; font-size: 12px; font-weight: 600; color: var(--blue-pale); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s; }
.pkg-tabs-4 .pkg-tab { padding: 8px 12px; font-size: 11.5px; }
.pkg-tab.active { color: var(--blue-dark); border-bottom-color: var(--blue-dark); }
.pkg-pane { display: none; }
.pkg-pane.active { display: block; }
/* S3 price pane: filter pills */
.s3-price-filterbar { display: flex; gap: 10px; align-items: center; margin-bottom: 4px; flex-wrap: wrap; }
.s3-pill-group { display: flex; gap: 3px; background: #f0f4f8; border-radius: 20px; padding: 3px; }
.s3-pill { padding: 5px 13px; border-radius: 16px; border: none; font-size: 12px; font-weight: 600; cursor: pointer; background: transparent; color: var(--text-muted); transition: .15s; }
.s3-pill.active { background: #fff; color: var(--blue-dark); box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.s3-pill.s3-pill-once.active { background: var(--blue-mid); color: #fff; }
.s3-pill.s3-pill-sub.active { background: var(--green); color: #fff; }
.packages-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pkg-card { border: 2px solid var(--border-light); border-radius: 10px; padding: 14px; cursor: pointer; transition: all .15s; }
.pkg-card:hover { border-color: var(--blue-mid); background: #f8fafc; }
.pkg-card.selected { border-color: var(--blue-dark); background: #f0f4f8; }
.pkg-num { font-size: 10px; font-weight: 700; color: var(--blue-pale); margin-bottom: 5px; }
.pkg-name { font-size: 12px; font-weight: 600; color: var(--blue-dark); margin-bottom: 5px; line-height: 1.3; }
.pkg-price { font-size: 13px; font-weight: 700; color: var(--blue-mid); }
.pkg-price span { font-size: 10px; font-weight: 400; color: var(--blue-pale); }
.items-list { list-style: none; }
.items-list li { padding: 6px 0; border-bottom: 1px solid var(--border-light); font-size: 12px; color: var(--text); display: flex; align-items: flex-start; gap: 8px; }
.items-list li:last-child { border-bottom: none; }
.items-list li::before { content: '—'; color: var(--blue-pale); flex-shrink: 0; }
.item-add-row { display: flex; gap: 8px; margin-top: 10px; }
.item-add-row input { flex: 1; }

/* ── S5: ПРЕДПРОСМОТР ── */
.preview-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--border-light); margin-bottom: 20px; }
.preview-tab { padding: 8px 18px; font-size: 12px; font-weight: 600; color: var(--blue-pale); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.preview-tab.active { color: var(--blue-dark); border-bottom-color: var(--blue-dark); }
.preview-doc { display: none; }
.preview-doc.active { display: block; }
.preview-content { background: #fff; border: 1px solid var(--border-light); border-radius: 8px; padding: 32px 40px; font-family: 'Times New Roman', serif; font-size: 13px; line-height: 1.7; color: #111; min-height: 500px; max-height: 70vh; overflow-y: auto; }
.preview-content h1 { font-size: 14px; text-align: center; margin-bottom: 16px; }
.preview-content h2 { font-size: 13px; margin: 16px 0 8px; }
.preview-content p { text-indent: 1.5em; margin-bottom: 8px; }
.preview-content .no-indent { text-indent: 0; }
.tag-placeholder { background: #fff3cd; border-radius: 3px; padding: 0 3px; color: #856404; font-style: normal; }

/* ── S6: СКАЧАТЬ ── */
.download-pkg { text-align: center; padding: 32px; }
.download-icon { font-size: 48px; margin-bottom: 16px; }
.download-title { font-size: 20px; font-weight: 700; color: var(--blue-dark); margin-bottom: 6px; }
.download-desc { font-size: 13px; color: var(--text-muted); margin-bottom: 24px; }
.download-files { display: flex; flex-direction: column; gap: 8px; max-width: 500px; margin: 0 auto 24px; text-align: left; }
.download-file-row { display: flex; align-items: center; gap: 10px; background: var(--bg); border-radius: 8px; padding: 10px 14px; }
.download-file-icon { font-size: 18px; flex-shrink: 0; }
.download-file-name { flex: 1; font-size: 12px; color: var(--text); }
.doc-date-row { display: flex; justify-content: space-between; align-items: baseline; }
.preamble-p { margin-top: 4px; margin-bottom: 4px; }

/* ── S7: РЕЕСТР ── */
.registry-toolbar { display: flex; gap: 10px; margin-bottom: 16px; align-items: center; flex-wrap: wrap; }
.registry-toolbar input { border: 1.5px solid var(--border); border-radius: 7px; padding: 8px 12px; font-size: 12px; color: var(--text); font-family: inherit; width: 200px; }
.registry-table-wrap { border: 1px solid var(--border-light); border-radius: 8px; overflow: auto; }
.registry-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.registry-table th { background: #f5f8fa; padding: 10px 12px; text-align: left; font-weight: 700; color: var(--blue-mid); border-bottom: 1px solid var(--border-light); white-space: nowrap; }
.registry-table td { padding: 10px 12px; border-bottom: 1px solid var(--border-light); color: var(--text); }
.registry-table tr:last-child td { border-bottom: none; }
.registry-table tr:hover td { background: #f8fafc; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 10px; font-weight: 700; }
.badge-npd     { background: var(--green-bg); color: var(--green); }
.badge-ip      { background: #e8f0f7; color: var(--blue-mid); }
.badge-org     { background: #f0e8f7; color: #6a3d9a; }
.badge-ta      { background: #fde8cc; color: #c07000; }
.badge-san     { background: #ede8f7; color: #6b4fbb; }
.badge-framework { background: #fff3cd; color: #856404; }
.badge-oneshot   { background: #fde8e8; color: #c0392b; }
.badge-manual    { background: #e8f5e9; color: #2d8a4e; }
.registry-empty { text-align: center; padding: 40px; color: var(--blue-pale); font-size: 13px; }

/* Кнопка Файлы */
.btn-attach     { background: #edf3fa; border-color: #b8d0ea !important; color: var(--blue-mid) !important; }
.btn-attach-has { background: #d4edda !important; border-color: #b8dfc7 !important; color: var(--green) !important; }

/* S7: панель файлов */
.s7-file-panel-row td { padding: 0; }
.s7-panel-inner { padding: 12px 16px 14px 32px; background: #f5f8fc; border-bottom: 1.5px solid var(--border-light); }
.s7-panel-title { font-size: 10px; font-weight: 700; color: var(--blue-mid); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 10px; }
.s7-file-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.s7-file-empty { font-size: 12px; color: var(--blue-pale); margin-bottom: 10px; }
.s7-file-item { display: flex; align-items: center; gap: 8px; background: #fff; border: 1.5px solid var(--border-light); border-radius: 7px; padding: 7px 10px; }
.s7-file-icon { font-size: 15px; flex-shrink: 0; }
.s7-file-badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 6px; white-space: nowrap; flex-shrink: 0; }
.ft-contract { background: #d4edda; color: #2d8a4e; }
.ft-addendum { background: #ede8f7; color: #6b4fbb; }
.ft-appendix { background: #fde8cc; color: #c07000; }
.ft-price    { background: #e0f2f7; color: #1a7a9a; }
.ft-act      { background: #fff3cd; color: #856404; }
.ft-other    { background: #f0f0f0; color: #6c757d; }
.s7-file-name { flex: 1; font-size: 12px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.s7-file-meta { font-size: 11px; color: var(--blue-pale); white-space: nowrap; flex-shrink: 0; }
.s7-upload-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; border: 2px dashed var(--border); border-radius: 7px; padding: 7px 12px; background: #fff; }
.s7-dtype-select { border: 1.5px solid var(--border); border-radius: 6px; padding: 5px 8px; font-size: 12px; font-family: inherit; color: var(--text); background: #fff; }
.s7-pick-btn { display: inline-flex; align-items: center; gap: 5px; padding: 5px 12px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; background: #edf3fa; border: 1.5px solid #b8d0ea; color: var(--blue-mid); }
.s7-pick-btn:hover { background: #d4e6f7; }
.s7-upload-hint { font-size: 11px; color: var(--blue-pale); }
.danger-zone { border: 1.5px solid #f5c6c6; border-radius: 10px; padding: 16px 20px; background: #fff8f8; margin-top: 24px; }
.danger-zone-title { font-size: 11px; font-weight: 700; color: #c0392b; text-transform: uppercase; letter-spacing: .8px; margin-bottom: 12px; }
.danger-zone-row { display: flex; gap: 10px; flex-wrap: wrap; }

/* ── S8: ЧАТ ── */
.chat-wrap { display: flex; flex-direction: column; height: 520px; background: var(--bg-card); border-radius: 12px; border: 1px solid var(--border-light); overflow: hidden; }
.chat-messages { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.chat-msg { max-width: 78%; padding: 10px 14px; border-radius: 12px; font-size: 13px; line-height: 1.6; }
.chat-msg.user { background: var(--blue-dark); color: #fff; align-self: flex-end; border-bottom-right-radius: 4px; }
.chat-msg.assistant { background: var(--border-light); color: var(--text); align-self: flex-start; border-bottom-left-radius: 4px; }
.chat-msg.system { background: #fff3cd; color: #856404; align-self: center; font-size: 11px; border-radius: 8px; text-align: center; }
.chat-input-row { display: flex; gap: 10px; padding: 14px 16px; border-top: 1px solid var(--border-light); background: #f8fafc; }
.chat-input-row textarea { flex: 1; border: 1.5px solid var(--border); border-radius: 8px; padding: 9px 12px; font-size: 13px; font-family: inherit; resize: none; height: 44px; color: var(--text); }
.chat-input-row textarea:focus { outline: none; border-color: var(--blue-dark); }
.chat-disclaimer { font-size: 11px; color: var(--blue-pale); padding: 6px 16px; background: #fffbf0; border-top: 1px solid #fdedc0; text-align: center; }
.chat-typing { display: none; align-items: center; gap: 8px; padding: 10px 14px; background: var(--border-light); border-radius: 12px; max-width: 120px; border-bottom-left-radius: 4px; }
.chat-typing.visible { display: flex; }
.typing-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--blue-pale); animation: bounce .8s infinite; }
.typing-dot:nth-child(2) { animation-delay: .15s; }
.typing-dot:nth-child(3) { animation-delay: .3s; }
@keyframes bounce { 0%,80%,100% { transform: translateY(0); } 40% { transform: translateY(-6px); } }

/* ── S2: БЛОКИ ── */
.s2-card { margin-bottom: 20px; }
.s2-block-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--border-light);
}
.s2-block-label { font-size: 11px; font-weight: 700; color: var(--blue-dark); text-transform: uppercase; letter-spacing: .8px; }
.s2-block-sub { font-size: 12px; color: var(--text-muted); margin-top: 3px; }
.s2-type-badge { display: inline-block; color: #fff; font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 20px; }

/* Загрузка карточки организации (заказчик) */
.customer-upload-row {
  display: flex; align-items: center; justify-content: space-between;
  border: 1.5px dashed var(--border); border-radius: 8px;
  padding: 12px 16px; margin-bottom: 18px; background: #fafbfc;
}
.customer-upload-info { display: flex; flex-direction: column; gap: 3px; }
.customer-upload-label { font-size: 12px; font-weight: 600; color: var(--blue-dark); }
.customer-upload-hint { font-size: 11px; color: var(--text-muted); }
.customer-upload-btn {
  font-size: 12px; font-weight: 600; color: var(--blue-mid);
  border: 1.5px solid var(--border); border-radius: 6px;
  padding: 6px 14px; cursor: pointer; white-space: nowrap;
  transition: all .15s; flex-shrink: 0;
}
.customer-upload-btn:hover { border-color: var(--blue-mid); background: #f0f4f8; }
.customer-upload-btn.has-file { border-color: var(--green); color: var(--green); }

/* Пустое состояние базы исполнителей */
.db-empty-state {
  border: 1.5px solid var(--border-light); border-radius: 8px;
  padding: 20px 18px; background: #f8fafc; text-align: center;
  margin-bottom: 4px;
}
.db-empty-text { font-size: 13px; font-weight: 600; color: var(--blue-dark); margin-bottom: 6px; }
.db-empty-hint { font-size: 12px; color: var(--text-muted); line-height: 1.5; }

/* ── S2: MODE TOGGLE ── */
.mode-toggle {
  display: flex; margin-bottom: 18px;
  border: 1.5px solid var(--border); border-radius: 8px; overflow: hidden; width: fit-content;
}
.mode-btn {
  padding: 8px 20px; font-size: 12px; font-weight: 600; color: var(--blue-pale);
  background: #fff; border: none; cursor: pointer; font-family: inherit; transition: all .15s;
}
.mode-btn.active { background: var(--blue-dark); color: #fff; }
.mode-btn:not(.active):hover { background: #f0f4f8; color: var(--blue-mid); }

/* ── S2: SAVE ROW ── */
.save-row {
  display: flex; flex-direction: column; gap: 4px;
  margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border-light);
}
.save-checkbox-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 600; color: var(--blue-dark); cursor: pointer;
}
.save-checkbox-label input[type="checkbox"] { width: 15px; height: 15px; cursor: pointer; accent-color: var(--blue-dark); }
.save-hint { font-size: 11px; color: var(--blue-pale); margin-left: 23px; }

/* ── S2: ПОИСК ИЗ БД ── */
.s2-search-block { margin-bottom: 0; }
.exec-search-input {
  width: 100%; border: 1.5px solid var(--border); border-radius: 7px;
  padding: 9px 12px; font-size: 13px; color: var(--text);
  font-family: inherit; background: #fff; transition: border-color .15s; outline: none;
}
.exec-search-input:focus { border-color: var(--blue-dark); }

/* ── S2: ВЫБРАННЫЙ ИСПОЛНИТЕЛЬ ── */
.exec-selected-card {
  display: flex; align-items: center; justify-content: space-between;
  background: #e8f0f7; border: 1.5px solid var(--border);
  border-radius: 8px; padding: 12px 14px; margin-bottom: 16px;
}
.exec-selected-info { display: flex; flex-direction: column; gap: 2px; }
.exec-selected-name { font-size: 13px; font-weight: 700; color: var(--blue-dark); }
.exec-selected-inn { font-size: 11px; color: var(--text-muted); }

/* ── S2: ДОКУМЕНТЫ ИСПОЛНИТЕЛЯ ── */
.doc-slots-section { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border-light); }
.doc-slots-header { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.doc-slots-label { font-size: 11px; font-weight: 700; color: var(--blue-dark); text-transform: uppercase; letter-spacing: .8px; }
.doc-slots-opt { font-size: 10px; color: var(--blue-pale); background: var(--border-light); padding: 2px 8px; border-radius: 10px; }
.doc-slots-notice { font-size: 11px; color: var(--text-muted); margin-bottom: 10px; padding: 6px 10px; background: #f0f4f8; border-radius: 6px; }
.doc-slots-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.doc-slot {
  display: flex; align-items: center; gap: 10px;
  border: 1.5px dashed var(--border); border-radius: 8px;
  padding: 12px 14px; cursor: pointer; transition: all .15s; background: #fafbfc;
}
.doc-slot:hover { border-color: var(--blue-mid); background: #f0f4f8; }
.doc-slot-has-file { border-style: solid; border-color: var(--green); background: #f4fbf7; }
.doc-slot-icon { font-size: 18px; flex-shrink: 0; }
.doc-slot-info { flex: 1; min-width: 0; }
.doc-slot-name { font-size: 12px; font-weight: 600; color: var(--blue-dark); }
.doc-slot-hint { font-size: 11px; color: var(--text-muted); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-slot-btn { font-size: 11px; font-weight: 600; color: var(--blue-mid); white-space: nowrap; flex-shrink: 0; }

/* ── КАСТОМНЫЙ МОДАЛ ── */
.modal-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(10,45,80,.45);
  z-index: 1000;
  align-items: center; justify-content: center;
}
.modal-overlay.visible { display: flex; }
.modal-box {
  background: #fff;
  border-radius: 14px;
  padding: 32px 36px 28px;
  max-width: 400px; width: 90%;
  box-shadow: 0 12px 48px rgba(10,45,80,.25);
}
.modal-title {
  font-size: 16px; font-weight: 700;
  color: var(--blue-dark);
  margin-bottom: 12px;
}
.modal-msg {
  font-size: 14px; color: var(--blue-mid);
  line-height: 1.6; margin-bottom: 24px;
}
.modal-close-btn { width: 100%; justify-content: center; }

/* ── УТИЛИТЫ ── */
.alert { padding: 10px 14px; border-radius: 8px; font-size: 12px; margin-bottom: 14px; }
.alert-info { background: #e8f0f7; color: var(--blue-mid); }
.alert-warning { background: #fff3cd; color: #856404; }
.alert-success { background: var(--green-bg); color: var(--green); }
.divider { border: none; border-top: 1px solid var(--border-light); margin: 20px 0; }
.text-muted { color: var(--text-muted); font-size: 12px; }
.mt-8 { margin-top: 8px; }
.mt-16 { margin-top: 16px; }

/* ── S1: LAYOUT С ПОДСКАЗКОЙ И ШАГИ ── */
.s1-layout { display: flex; gap: 28px; align-items: flex-start; }
.s1-main { flex: 1; min-width: 0; }
.s1-aside { width: 230px; flex-shrink: 0; display: flex; flex-direction: column; }
.s1-step-block { margin-bottom: 0; }
.s1-step-block + .s1-step-block { padding-top: 24px; margin-top: 24px; border-top: 1px solid var(--border); }
.step-label { font-size: 11px; font-weight: 700; color: var(--blue-pale); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
.step-title { font-size: 17px; font-weight: 700; color: var(--blue-dark); margin-bottom: 4px; }
.step-subtitle { font-size: 13px; color: var(--text-muted); margin-bottom: 18px; }
.s1-step-block:first-child .step-subtitle {
  font-size: 14px; font-weight: 600;
  color: var(--blue-dark);
  background: #dce9f5;
  border-left: 3px solid var(--blue-mid);
  padding: 7px 12px;
  border-radius: 0 6px 6px 0;
  margin-bottom: 20px;
}
.tooltip-panel { background: #e8f4f0; border: 1.5px solid #b8ddd0; border-radius: 12px; padding: 18px; position: sticky; top: 80px; }
.tooltip-panel-title { font-size: 10px; font-weight: 700; color: var(--green); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 10px; }
.tooltip-panel-text { font-size: 12px; color: var(--blue-dark); line-height: 1.7; }
.check-box.warn { border-color: #e67e22; color: #e67e22; }

/* ── S1: TOOLTIP-КНОПКА ? ── */
.type-tooltip-btn {
  position: absolute; top: 10px; right: 10px;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--blue-light); color: #fff;
  font-size: 11px; font-weight: 700; font-family: inherit;
  border: none; cursor: pointer; display: flex;
  align-items: center; justify-content: center;
  z-index: 2; transition: background .15s;
  line-height: 1;
}
.type-tooltip-btn:hover { background: var(--blue-dark); }
.type-card.selected .type-tooltip-btn { background: rgba(255,255,255,.25); }
.type-card.selected .type-tooltip-btn:hover { background: rgba(255,255,255,.4); }

.type-tooltip {
  display: none;
  position: absolute;
  bottom: calc(100% + 10px);
  left: 0; right: 0;
  background: var(--blue-dark);
  color: #fff;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 11px; line-height: 1.65;
  z-index: 200;
  box-shadow: 0 6px 24px rgba(12,45,79,.28);
  pointer-events: none;
}
.type-tooltip::after {
  content: '';
  position: absolute;
  top: 100%; left: 18px;
  border: 7px solid transparent;
  border-top-color: var(--blue-dark);
}
.type-tooltip.visible { display: block; }

/* ── S3: ПАКЕТ УСЛУГ — ТАБЛИЦА УСЛУГ ── */
.svc-search-bar { position: relative; margin-bottom: 10px; }
.svc-search-input { width: 100%; box-sizing: border-box; padding: 8px 12px 8px 36px; border: 1px solid var(--border-light); border-radius: 8px; font-size: 13px; color: var(--text); background: #fff; outline: none; }
.svc-search-input:focus { border-color: var(--blue-mid); box-shadow: 0 0 0 2px rgba(45,74,110,.12); }
.svc-search-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); font-size: 14px; pointer-events: none; }
.svc-table-wrap { overflow-x: auto; margin: 0 -4px; }
.svc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.svc-table thead th { background: #e8f0f7; color: var(--blue-dark); font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; padding: 8px 10px; border-bottom: 2px solid var(--border-light); text-align: left; }
.svc-th-cb { width: 36px; }
.svc-th-market { width: 120px; white-space: nowrap; text-align: right; }
.svc-th-price { width: 140px; text-align: right; }
.svc-group-row td { background: #dce9f5; color: var(--blue-dark); font-weight: 700; font-size: 12px; padding: 7px 10px; }
.svc-row td { padding: 6px 10px; border-bottom: 1px solid #f0f4f8; vertical-align: middle; }
.svc-row:hover td { background: #f8fafc; }
.svc-row-checked td { background: #f0f7f4; }
.svc-td-name { line-height: 1.4; color: var(--text); }
.svc-td-market { color: var(--text-muted); font-size: 12px; white-space: nowrap; text-align: right; }
.svc-td-price { white-space: nowrap; text-align: right; }
.svc-td-cb { width: 36px; }
.svc-cb { width: 15px; height: 15px; cursor: pointer; accent-color: var(--blue-dark); }
.svc-price-input { width: 110px; padding: 5px 8px; border: 1px solid var(--border-light); border-radius: 6px; font-size: 13px; color: var(--blue-dark); text-align: right; }
.svc-price-input:disabled { background: #f8fafc; color: var(--text-muted); border-color: transparent; }
.svc-price-input:focus { outline: none; border-color: var(--blue-mid); }
.svc-total-row td { border-top: 2px solid var(--border); padding: 10px; font-weight: 700; background: #f8fafc; }
.svc-total-label { text-align: right; color: var(--text-muted); font-size: 12px; }
.svc-total-market { text-align: right; color: var(--text-muted); font-size: 11px; }
.svc-total-val { text-align: right; font-size: 16px; color: var(--blue-dark); }
.svc-user-badge { font-size: 10px; background: #e8f0f7; color: var(--blue-mid); border-radius: 4px; padding: 1px 5px; margin-left: 5px; font-weight: 600; }

/* ── S3: APPLY BAR И СОХРАНЕНИЕ ── */
.custom-apply-bar { display: flex; align-items: center; gap: 10px; padding: 14px 0 6px; border-top: 2px solid var(--border-light); margin-top: 14px; flex-wrap: wrap; }
.apply-total-block { display: flex; align-items: baseline; gap: 6px; flex: 1; min-width: 140px; }
.apply-total-label { font-size: 13px; color: var(--text-muted); }
.apply-total-val { font-size: 22px; font-weight: 700; color: var(--blue-dark); }
.custom-save-row { display: flex; align-items: center; gap: 10px; padding: 12px 0 0; border-top: 1px solid var(--border-light); margin-top: 6px; flex-wrap: wrap; }

/* ── S3: ДЕТАЛИ ПАКЕТА ── */
.pkg-detail-panel { margin-top: 18px; border: 2px solid var(--blue-dark); border-radius: 12px; padding: 18px 20px; background: #f8fafc; }
.pkg-detail-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 6px; }
.pkg-detail-title { font-size: 14px; font-weight: 700; color: var(--blue-dark); }
.pkg-detail-clear { font-size: 12px; color: #c0392b; background: none; border: none; cursor: pointer; padding: 0; }
.pkg-detail-clear:hover { text-decoration: underline; }
.pkg-detail-edit { font-size: 12px; color: var(--blue-mid); background: none; border: 1px solid var(--border-light); border-radius: 6px; cursor: pointer; padding: 3px 9px; }
.pkg-detail-edit:hover { background: var(--blue-pale); }
.pkg-detail-desc { font-size: 12px; color: var(--text-muted); margin-bottom: 10px; line-height: 1.5; }
.pkg-detail-items { font-size: 12px; color: var(--text); margin: 0 0 14px 18px; line-height: 1.9; }
.pkg-detail-price-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--border-light); }
.pkg-detail-price-label { font-size: 12px; color: var(--text-muted); }
.pkg-detail-price-input { width: 150px; padding: 7px 10px; border: 2px solid var(--blue-mid); border-radius: 8px; font-size: 15px; font-weight: 600; color: var(--blue-dark); text-align: right; }
.pkg-detail-price-input:focus { outline: none; border-color: var(--blue-dark); }
.pkg-detail-market { font-size: 11px; color: var(--text-muted); }

/* ── S3: КАРТОЧКИ ПАКЕТОВ — НАДСТРОЙКИ ── */
.pkg-card { position: relative; }
.pkg-selected-check { position: absolute; top: 8px; left: 10px; width: 20px; height: 20px; background: var(--green); color: #fff; border-radius: 50%; font-size: 12px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.pkg-custom-badge { position: absolute; top: 8px; right: 10px; background: #c07c1e; color: #fff; border-radius: 4px; font-size: 10px; font-weight: 700; padding: 2px 6px; }

/* ── МОДАЛ ШИРОКИЙ (S3) ── */
.modal-box-wide { max-width: 480px; }
.modal-field { margin-bottom: 14px; }
.modal-field-label { font-size: 12px; font-weight: 600; color: var(--text); margin-bottom: 5px; display: block; }
.modal-field-input { width: 100%; padding: 8px 12px; border: 1px solid var(--border-light); border-radius: 8px; font-size: 13px; color: var(--blue-dark); }
.modal-field-input:focus { outline: none; border-color: var(--blue-mid); }
.modal-field-select { width: 100%; padding: 8px 12px; border: 1px solid var(--border-light); border-radius: 8px; font-size: 13px; color: var(--blue-dark); background: #fff; }
.modal-actions { display: flex; gap: 10px; margin-top: 20px; }

/* ── S9: НОРМАТИВНАЯ БАЗА ── */

/* Внутренние вкладки */
.s9-inner-tabs { display: flex; border-bottom: 2px solid var(--border-light); margin-bottom: 28px; gap: 0; }
.s9-inner-tab { padding: 10px 20px; font-size: 13px; font-weight: 600; color: var(--blue-pale); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s; white-space: nowrap; }
.s9-inner-tab.active { color: var(--blue-dark); border-bottom-color: var(--blue-dark); background: #f5f8fa; }
.s9-inner-tab:hover:not(.active) { color: var(--blue-mid); }
.s9-tabs-active { display: block; }
.s9-tabs-hidden { display: none; }

/* Поиск */
.s9-search-row { display: flex; gap: 10px; margin-bottom: 20px; }
.s9-search-input { flex: 1; padding: 9px 14px; border: 1.5px solid var(--border); border-radius: 8px; font-size: 13px; color: var(--text); font-family: inherit; background: #fff; }
.s9-search-input:focus { outline: none; border-color: var(--blue-mid); }

/* Аккордеон */
.s9-accordion { margin-bottom: 12px; background: var(--bg-card); border-radius: 12px; box-shadow: 0 1px 4px rgba(12,45,79,.07); overflow: hidden; }
.s9-accordion-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; cursor: pointer; user-select: none; border-bottom: 1px solid transparent; transition: background .15s; }
.s9-accordion-header:hover { background: #f5f8fa; }
.s9-accordion-header.open { border-bottom-color: var(--border-light); }
.s9-accordion-title { font-size: 13px; font-weight: 700; color: var(--blue-dark); display: flex; align-items: center; gap: 10px; }
.s9-accordion-count { font-size: 10px; background: var(--border-light); color: var(--blue-mid); border-radius: 10px; padding: 2px 8px; font-weight: 600; }
.s9-accordion-arrow { font-size: 11px; color: var(--blue-pale); transition: transform .2s; }
.s9-accordion-arrow.open { transform: rotate(180deg); }
.s9-accordion-body { display: none; }
.s9-accordion-body.open { display: block; padding: 8px 18px 14px; }

/* Элемент закона */
.s9-law-item { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border-light); cursor: pointer; border-radius: 6px; transition: background .12s; flex-wrap: wrap; }
.s9-law-item:last-child { border-bottom: none; }
.s9-law-item:hover { background: #f0f7ff; padding-left: 6px; }
.s9-law-item > .s9-user-tpl-list { flex: 0 0 100%; margin-top: 4px; border-top: 1px solid var(--border-light); }
.s9-law-item:hover .s9-law-name { color: var(--blue-mid); }
.s9-law-icon { font-size: 18px; flex-shrink: 0; margin-top: 2px; }
.s9-law-meta { flex: 1; min-width: 0; }
.s9-law-name { font-size: 13px; font-weight: 600; color: var(--blue-dark); }
.s9-law-desc { font-size: 11px; color: var(--text-muted); margin-top: 3px; line-height: 1.4; }
.s9-law-articles { font-size: 10px; color: var(--blue-pale); margin-top: 4px; }
.s9-law-badge { font-size: 10px; background: var(--border-light); color: var(--blue-mid); border-radius: 10px; padding: 2px 8px; white-space: nowrap; flex-shrink: 0; margin-top: 3px; }
.s9-law-badge-mintrud { background: #fff3cd; color: #856404; }
.s9-law-user-badge { font-size: 10px; background: #d4edda; color: #2d8a4e; border-radius: 10px; padding: 2px 8px; white-space: nowrap; flex-shrink: 0; margin-top: 3px; }

/* AI-панель загрузки */
.s9-ai-panel { background: #f0f7ff; border: 1.5px solid var(--blue-pale); border-radius: 12px; padding: 20px; margin-bottom: 20px; display: none; }
.s9-ai-panel.visible { display: block; }
.s9-ai-panel-title { font-size: 12px; font-weight: 700; color: var(--blue-dark); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.s9-ai-spinner { width: 14px; height: 14px; border: 2px solid var(--blue-pale); border-top-color: var(--blue-dark); border-radius: 50%; animation: s9spin .7s linear infinite; display: inline-block; }
@keyframes s9spin { to { transform: rotate(360deg); } }
.s9-ai-result-field { margin-bottom: 10px; }
.s9-ai-result-label { font-size: 10px; font-weight: 700; color: var(--blue-pale); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; }
.s9-ai-result-input { width: 100%; padding: 8px 12px; border: 1.5px solid var(--border); border-radius: 8px; font-size: 12px; color: var(--text); font-family: inherit; background: #fff; }
.s9-ai-result-input:focus { outline: none; border-color: var(--blue-mid); }
.s9-ai-result-textarea { width: 100%; padding: 8px 12px; border: 1.5px solid var(--border); border-radius: 8px; font-size: 12px; color: var(--text); font-family: inherit; background: #fff; min-height: 60px; resize: vertical; }
.s9-ai-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }

/* Зона загрузки файла */
.s9-upload-area { border: 2px dashed var(--border); border-radius: 12px; padding: 28px; text-align: center; color: var(--text-muted); cursor: pointer; transition: all .15s; margin-bottom: 12px; }
.s9-upload-area:hover { border-color: var(--blue-mid); background: #f5f8fa; }
.s9-upload-area-icon { font-size: 32px; margin-bottom: 8px; }
.s9-upload-area-text { font-size: 13px; font-weight: 600; color: var(--blue-mid); }
.s9-upload-area-sub { font-size: 11px; margin-top: 4px; }

/* Пользовательские шаблоны договоров (S9 upload + S6 selector) */
.s9-user-tpl-list { background: #f8fafc; border-top: 1px solid var(--border-light); }
.s9-user-tpl-row { display: flex; align-items: center; gap: 8px; padding: 8px 16px 8px 28px; border-bottom: 1px dashed #e0e8f0; flex-wrap: wrap; }
.s9-user-tpl-row:last-child { border-bottom: none; }
.s9-user-tpl-name { flex: 1; font-size: 12px; color: #2a3a4a; font-weight: 500; min-width: 120px; }
.s9-user-tpl-date { font-size: 11px; color: #9aabbd; }
.s9-active-marker { font-size: 11px; font-weight: 700; color: #2d8a4e; white-space: nowrap; }
.s9-upload-zone { border: 2px dashed var(--border); border-radius: 8px; padding: 11px 14px; margin: 8px 16px 12px; text-align: center; color: #9aabbd; font-size: 12px; transition: border-color .15s, color .15s; }
.s9-upload-zone:hover { border-color: var(--blue-mid); color: var(--blue-mid); }
.s9-upload-label { cursor: pointer; display: block; }
.s9-tpl-row-active { background: #f0faf4; border-left: 3px solid #2d8a4e; padding-left: 25px; }
.s9-tpl-upload-btn { background: #fff8e8; border-color: #e8c97a; color: #8a5e00; }
.s9-tpl-upload-btn:hover { background: #fff3cd; border-color: var(--gold); }
.s6-tpl-selector { background: #fff; border: 1.5px solid var(--border); border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.s6-tpl-title { font-size: 13px; font-weight: 700; color: var(--blue-dark); margin-bottom: 12px; }
.s6-radio-list { display: flex; flex-direction: column; gap: 8px; }
.s6-radio-row { display: flex; align-items: flex-start; gap: 10px; border: 1.5px solid var(--border); border-radius: 8px; padding: 10px 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.s6-radio-row.s6-selected { border-color: var(--blue-mid); background: #edf3fa; }
.s6-radio-row input[type=radio] { margin-top: 3px; accent-color: var(--blue-mid); flex-shrink: 0; }
.s6-radio-name { font-weight: 600; font-size: 13px; color: var(--blue-dark); }
.s6-radio-sub { font-size: 11px; color: #7a8fa6; margin-top: 2px; }

/* Выбор шаблона на S1 */
.s1-tpl-list { display: flex; flex-direction: column; gap: 8px; }
.s1-tpl-row { display: flex; align-items: flex-start; gap: 12px; border: 1.5px solid var(--border); border-radius: 8px; padding: 12px 14px; cursor: pointer; transition: border-color .15s, background .15s; }
.s1-tpl-row:hover { border-color: var(--blue-mid); background: #f5f8fc; }
.s1-tpl-row.s1-tpl-selected { border-color: var(--blue-mid); background: #edf3fa; }
.s1-tpl-radio { font-size: 16px; color: var(--blue-mid); margin-top: 1px; flex-shrink: 0; }
.s1-tpl-info { flex: 1; min-width: 0; }
.s1-tpl-name { font-size: 13px; font-weight: 600; color: var(--blue-dark); margin-bottom: 6px; }
.s1-tpl-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.s1-tpl-badge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 3px; letter-spacing: 0.3px; }

/* Уведомление */
.s9-notice-info { background: #e8f0f7; border-left: 4px solid var(--blue-mid); border-radius: 8px; padding: 12px 16px; font-size: 12px; color: var(--blue-dark); margin-bottom: 16px; }

/* Фильтр категории */
.s9-filter-row { display: flex; gap: 10px; margin-bottom: 12px; align-items: center; flex-wrap: wrap; }
.s9-filter-select { padding: 7px 12px; border: 1.5px solid var(--border); border-radius: 8px; font-size: 12px; color: var(--text); font-family: inherit; background: #fff; flex: 1; min-width: 160px; }

/* Кнопка в шаблоне (в строке) */
.s9-law-item .btn { flex-shrink: 0; }

/* Модал закона */
.s9-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(10,40,70,.45); z-index: 1100; align-items: center; justify-content: center; }
.s9-modal-overlay.visible { display: flex; }
.s9-modal-box { background: #fff; border-radius: 16px; width: 620px; max-width: 95vw; max-height: 85vh; overflow-y: auto; box-shadow: 0 8px 40px rgba(10,40,70,.2); }
.s9-modal-header { padding: 20px 24px 16px; border-bottom: 1px solid var(--border-light); display: flex; align-items: flex-start; gap: 12px; }
.s9-modal-header-icon { font-size: 24px; flex-shrink: 0; margin-top: 2px; }
.s9-modal-header-meta { flex: 1; }
.s9-modal-title { font-size: 15px; font-weight: 700; color: var(--blue-dark); line-height: 1.3; }
.s9-modal-subtitle { font-size: 11px; color: var(--text-muted); margin-top: 4px; }
.s9-modal-close { font-size: 20px; color: var(--blue-pale); cursor: pointer; flex-shrink: 0; line-height: 1; padding: 2px 6px; border-radius: 6px; }
.s9-modal-close:hover { background: #f0f4f8; color: var(--blue-dark); }
.s9-modal-body { padding: 20px 24px; }
.s9-modal-section-title { font-size: 10px; font-weight: 700; color: var(--blue-pale); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 10px; margin-top: 16px; }
.s9-modal-section-title:first-child { margin-top: 0; }
.s9-modal-article { background: #f5f8fa; border-radius: 8px; padding: 12px 14px; margin-bottom: 8px; font-size: 12px; line-height: 1.6; color: var(--text); }
.s9-modal-article strong { color: var(--blue-dark); display: block; margin-bottom: 4px; font-size: 12px; }
.s9-modal-risk { background: #fff8e8; border-left: 3px solid #f0a500; border-radius: 8px; padding: 10px 14px; margin-bottom: 8px; font-size: 12px; color: #7a5000; line-height: 1.5; }
.s9-modal-footer { padding: 14px 24px; border-top: 1px solid var(--border-light); display: flex; gap: 10px; align-items: center; }
.s9-modal-source-link { font-size: 11px; color: var(--blue-pale); margin-left: auto; text-decoration: none; }
.s9-modal-source-link:hover { color: var(--blue-mid); text-decoration: underline; }

/* ── PRICE LIST (sprice) ── */
.price-toolbar { display: flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid var(--border); border-radius: 10px 10px 0 0; padding: 12px 16px; flex-wrap: wrap; }
.price-search { flex: 1; min-width: 200px; border: 1.5px solid var(--border); border-radius: 7px; padding: 8px 12px; font-size: 13px; outline: none; font-family: inherit; color: var(--text); background: #fff; }
.price-search:focus { border-color: var(--blue-dark); }
.price-filter { border: 1.5px solid var(--border); border-radius: 7px; padding: 8px 12px; font-size: 12px; background: #fff; cursor: pointer; font-family: inherit; color: var(--text); }
.price-table-wrap { border: 1.5px solid var(--border); border-top: none; border-radius: 0 0 10px 10px; overflow: hidden; margin-bottom: 4px; }
.price-table { width: 100%; border-collapse: collapse; background: #fff; }
.price-table thead th { background: var(--blue-dark); color: #fff; padding: 10px 12px; font-size: 11px; font-weight: 700; text-align: left; text-transform: uppercase; letter-spacing: .4px; }
.price-table tbody tr { border-bottom: 1px solid var(--border-light); }
.price-table tbody tr:last-child { border-bottom: none; }
.price-table tbody tr:hover:not(.cat-row) { background: #f8fafc; }
.price-table td { padding: 9px 12px; font-size: 13px; vertical-align: middle; }
.cat-row td { background: #f0f5fa; font-weight: 700; font-size: 12px; color: var(--blue-mid); padding: 8px 12px; }
.price-name { font-weight: 600; color: var(--blue-dark); }
.price-desc { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.price-val { font-weight: 700; color: var(--blue-dark); white-space: nowrap; }
.badge-sub { background: var(--green-bg); color: var(--green); font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 8px; display: inline-block; white-space: nowrap; }
.badge-once { background: var(--border-light); color: var(--blue-mid); font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 8px; display: inline-block; white-space: nowrap; }
.price-empty { text-align: center; padding: 40px; color: var(--blue-pale); font-size: 13px; }

/* Import panel */
.import-panel { background: #fff; border: 1.5px solid var(--border); border-radius: 10px; overflow: hidden; margin: 18px 0; }
.import-panel-header { background: var(--blue-dark); color: #fff; padding: 12px 16px; font-weight: 700; font-size: 14px; display: flex; align-items: center; gap: 10px; justify-content: space-between; }
.import-panel-body { padding: 16px; }
.import-stats { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.stat-box { flex: 1; min-width: 90px; border-radius: 8px; padding: 10px 14px; text-align: center; }
.stat-box.new-stat { background: var(--green-bg); }
.stat-box.changed-stat { background: #fff8e1; }
.stat-box.dup-stat { background: #fdf3f3; }
.stat-box.same-stat { background: #f4f6f9; }
.stat-num { font-size: 22px; font-weight: 800; color: var(--blue-dark); }
.stat-label { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.import-diff-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.import-diff-table th { background: #f0f5fa; padding: 7px 10px; text-align: left; font-size: 11px; color: var(--text-muted); font-weight: 700; text-transform: uppercase; }
.import-diff-table td { padding: 8px 10px; border-top: 1px solid var(--border-light); vertical-align: middle; }
.diff-new td { background: #f0faf4; }
.diff-changed td { background: #fffbf0; }
.diff-dup td { background: #fdf3f3; }
.diff-label { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 6px; }
.diff-label.dl-new { background: var(--green-bg); color: var(--green); }
.diff-label.dl-changed { background: #fff3cd; color: #856404; }
.diff-label.dl-dup { background: #f8d7da; color: #c0392b; }
.price-old { text-decoration: line-through; color: var(--text-muted); margin-right: 6px; }
.price-new { font-weight: 700; color: var(--green); }

/* Add form */
.price-add-form { background: #fff; border: 1.5px solid var(--border); border-radius: 10px; padding: 20px; margin-top: 16px; }
.price-add-form-title { font-size: 14px; font-weight: 700; color: var(--blue-dark); margin-bottom: 16px; }

/* Inline edit row */
.price-edit-row td { background: #f0f5ff; padding: 12px 12px !important; }
.price-edit-inner { display: flex; flex-direction: column; gap: 10px; }
.price-edit-row-fields { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 10px; }
.price-edit-row-fields2 { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; }
.price-edit-row .field-label { font-size: 10px; font-weight: 700; color: var(--blue-mid); text-transform: uppercase; letter-spacing: .4px; display: block; margin-bottom: 3px; }
.price-edit-row .form-input { font-size: 12px; padding: 5px 9px; }
.notice-box { background: #fff8e1; border-left: 3px solid #c07c1e; border-radius: 0 7px 7px 0; padding: 10px 14px; font-size: 12px; color: #5a4010; margin-bottom: 14px; line-height: 1.5; }
.btn-gold { background: #c07c1e; color: #fff; border: none; }
.btn-gold:hover { background: #a06818; }

/* ── S3 SUBSCRIPTION TARIFFS (Модуль Б) ── */
.tariff-tabs { display: flex; border-bottom: 2px solid var(--border-light); margin-bottom: 18px; }
.tariff-tab { padding: 9px 18px; font-size: 13px; font-weight: 600; color: var(--blue-pale); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s; }
.tariff-tab.active { color: var(--blue-dark); border-bottom-color: var(--blue-dark); }
.tariff-tab:hover:not(.active) { color: var(--blue-mid); }
.tariff-pane { display: none; }
.tariff-pane.active { display: block; }
.tariff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.tariff-card { background: #fff; border: 2px solid var(--border); border-radius: 10px; padding: 16px; cursor: pointer; transition: all .15s; }
.tariff-card:hover { border-color: var(--blue-mid); }
.tariff-card.selected { border-color: var(--blue-dark); background: #f0f4f8; }
.tariff-card.custom-slot { border-style: dashed; background: #f8fafc; cursor: default; }
.tariff-card.custom-slot:hover { border-color: var(--border); }
.tariff-name { font-size: 14px; font-weight: 700; color: var(--blue-dark); margin-bottom: 4px; }
.tariff-desc { font-size: 12px; color: var(--text-muted); margin-bottom: 10px; line-height: 1.4; }
.tariff-price { font-size: 18px; font-weight: 800; color: var(--blue-dark); }
.tariff-period { font-size: 11px; color: var(--text-muted); font-weight: 400; }
.tariff-chips { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 5px; }
.tariff-chip { background: var(--green-bg); color: var(--green); font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 6px; }
.tariff-details-btn { margin-top: 10px; background: none; border: none; padding: 0; font-size: 11px; font-weight: 600; color: var(--blue-mid); cursor: pointer; text-decoration: underline dotted; }
.tariff-details-btn:hover { color: var(--blue-dark); }
.tariff-details-list { display: none; margin: 8px 0 0; padding: 0 0 0 1.2em; list-style: disc; }
.tariff-details-list.open { display: block; }
.tariff-details-list li { font-size: 12px; color: var(--text-muted); margin-bottom: 4px; line-height: 1.4; }

/* ─── PRАЙС-ЛИСТ: ТАБЫ ЭКРАНА ─────────────────────────────────────────────── */
.sprice-screen-tabs { display: flex; gap: 2px; background: #e8edf3; border-radius: 8px; padding: 3px; width: fit-content; margin-bottom: 20px; }
.sprice-tab { padding: 7px 22px; border-radius: 6px; font-size: 13px; font-weight: 500; color: #6b7f96; cursor: pointer; border: none; background: transparent; }
.sprice-tab.active { background: #fff; color: #0c2d4f; font-weight: 700; box-shadow: 0 1px 3px rgba(0,0,0,.1); }

/* ─── ТАРИФНЫЙ РЕДАКТОР ───────────────────────────────────────────────────── */
.tariff-editor-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; }
.tariff-add-slot { border: 2px dashed #c5d0dc; border-radius: 10px; padding: 16px; text-align: center; color: #8a9ab0; cursor: pointer; font-size: 13px; font-weight: 600; transition: .15s; }
.tariff-add-slot:hover { border-color: var(--blue-dark); color: var(--blue-dark); background: #f5f8fc; }

.tariff-editor-card { background: #fff; border: 1.5px solid #dde3ea; border-radius: 10px; overflow: hidden; }
.tariff-editor-card.expanded { border-color: var(--blue-dark); }

.tec-head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; flex-wrap: wrap; }
.tec-name { flex: 1; font-size: 15px; font-weight: 700; color: var(--blue-dark); }
.tec-price-view { font-size: 16px; font-weight: 800; color: var(--blue-dark); white-space: nowrap; }
.tec-per { font-size: 11px; color: var(--text-muted); font-weight: 400; margin-left: 2px; }
.tec-actions { display: flex; gap: 6px; flex-shrink: 0; }
.tec-chips-row { padding: 0 18px 14px; display: flex; flex-wrap: wrap; gap: 5px; }
.tec-chip { background: var(--green-bg); color: var(--green); font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 6px; }
.tec-chip-more { background: #e8edf3; color: #6b7f96; }

.tec-name-input { flex: 1; font-size: 15px; font-weight: 700; color: var(--blue-dark); border: 1.5px solid #b0c4e0; border-radius: 6px; padding: 5px 10px; outline: none; min-width: 160px; }
.tec-name-input:focus { border-color: var(--blue-dark); }
.tec-price-edit { display: flex; align-items: center; gap: 4px; }
.tec-price-input { width: 100px; font-size: 15px; font-weight: 800; color: var(--blue-dark); border: 1.5px solid #b0c4e0; border-radius: 6px; padding: 5px 8px; outline: none; text-align: right; }
.tec-price-input:focus { border-color: var(--blue-dark); }

.tec-body { padding: 0 18px 18px; border-top: 1px solid #edf0f4; }
.tec-body-hint { font-size: 12px; color: var(--text-muted); margin: 12px 0 10px; }
.tec-svc-table { width: 100%; border-collapse: collapse; }
.tec-svc-table th { font-size: 11px; font-weight: 700; color: #6b7f96; text-transform: uppercase; letter-spacing: .4px; padding: 6px 8px; background: #f5f8fb; text-align: left; }
.tec-svc-table td { padding: 8px 8px; border-bottom: 1px solid #f0f3f7; font-size: 13px; }
.tec-svc-table tr:last-child td { border-bottom: none; }
.tec-cat-row td { background: #f5f8fb; font-size: 11px; font-weight: 700; color: #8a9ab0; text-transform: uppercase; letter-spacing: .4px; padding: 5px 8px; }
.tec-svc-name { color: #1a2a3a; }
.tec-svc-price { text-align: right; color: #3a6090; font-weight: 600; white-space: nowrap; }
.tec-footer { margin-top: 12px; padding-top: 10px; border-top: 1.5px dashed #dde3ea; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 32px; }
.tec-mismatch { font-size: 12px; color: #c07000; background: #fff8ee; border: 1px solid #ffe0a0; border-radius: 5px; padding: 4px 10px; }
.tec-match { font-size: 12px; color: var(--green); font-weight: 600; }

.svc-picker-wrap { background: #fff; border: 1.5px solid var(--border); border-radius: 10px; overflow: hidden; }
.svc-picker-header { background: #f0f5fa; padding: 10px 14px; font-size: 12px; font-weight: 700; color: var(--blue-mid); text-transform: uppercase; letter-spacing: .4px; }
.svc-picker-row { display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-top: 1px solid var(--border-light); }
.svc-picker-row input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--blue-dark); flex-shrink: 0; cursor: pointer; }
.svc-picker-label { flex: 1; font-size: 13px; color: var(--text); cursor: pointer; }
.svc-picker-price { font-size: 13px; font-weight: 600; color: var(--blue-dark); white-space: nowrap; }
.tariff-total-notice { background: #fff8e1; border-left: 3px solid #c07c1e; border-radius: 0 7px 7px 0; padding: 10px 14px; font-size: 13px; color: #5a4010; margin-top: 14px; line-height: 1.5; }

/* ── ONBOARDING (sonboard) ── */
.ob-quickstart { background: #fff; border: 1.5px solid var(--border-light); border-radius: 12px; padding: 20px 24px; margin-bottom: 22px; box-shadow: 0 1px 4px rgba(12,45,79,.07); }
.ob-qs-title { font-size: 11px; font-weight: 700; color: var(--blue-dark); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 16px; }
.ob-steps { display: flex; align-items: flex-start; }
.ob-step { display: flex; flex-direction: column; align-items: center; flex: 1; position: relative; cursor: pointer; }
.ob-step:not(:last-child)::after { content: ''; position: absolute; top: 14px; left: calc(50% + 14px); width: calc(100% - 28px); height: 2px; background: var(--border-light); }
.ob-num { width: 28px; height: 28px; border-radius: 50%; background: var(--blue-dark); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; position: relative; z-index: 1; transition: transform .15s, background .15s; }
.ob-step:hover .ob-num { background: var(--blue-mid); transform: scale(1.15); }
.ob-step.ob-active .ob-num { background: #c07c1e; transform: scale(1.15); }
.ob-label { font-size: 11px; color: var(--text-muted); margin-top: 6px; text-align: center; line-height: 1.3; }
.ob-step:hover .ob-label { color: var(--blue-mid); }
.ob-step.ob-active .ob-label { color: #c07c1e; font-weight: 700; }
.ob-section-label { font-size: 10px; font-weight: 700; color: var(--blue-mid); text-transform: uppercase; letter-spacing: .8px; margin: 22px 0 10px; }
.ob-card { background: #fff; border: 1.5px solid var(--border-light); border-radius: 12px; margin-bottom: 10px; overflow: hidden; box-shadow: 0 1px 4px rgba(12,45,79,.05); }
.ob-header { display: flex; align-items: center; gap: 14px; padding: 14px 18px; cursor: pointer; user-select: none; }
.ob-header:hover { background: #f8fafc; }
.ob-step-num { width: 34px; height: 34px; border-radius: 50%; background: var(--blue-dark); color: #fff; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ob-step-meta { flex: 1; }
.ob-step-title { font-size: 14px; font-weight: 700; color: var(--blue-dark); }
.ob-step-sub { font-size: 12px; color: var(--text-muted); margin-top: 1px; }
.ob-arrow { font-size: 12px; color: var(--text-muted); transition: transform .2s; }
.ob-arrow.open { transform: rotate(180deg); }
.ob-body { display: none; border-top: 1px solid var(--border-light); padding: 18px 18px 18px 66px; }
.ob-body.open { display: block; }
.ob-what { font-size: 13px; font-weight: 700; color: var(--blue-dark); margin: 14px 0 8px; }
.ob-what:first-child { margin-top: 0; }
.ob-list { list-style: none; display: flex; flex-direction: column; gap: 7px; margin-bottom: 4px; }
.ob-list li { display: flex; gap: 8px; font-size: 13px; line-height: 1.5; }
.ob-list li::before { content: '—'; color: var(--blue-mid); flex-shrink: 0; font-weight: 700; }
.ob-list li strong { color: var(--blue-dark); }
.ob-tip { background: #fff8e1; border-left: 3px solid #c07c1e; border-radius: 0 6px 6px 0; padding: 10px 14px; font-size: 12px; color: #5a4010; line-height: 1.5; margin-top: 12px; }
.ob-tip strong { display: block; margin-bottom: 3px; color: #c07c1e; }
.ob-warn { background: #fdf3f3; border-left: 3px solid #c0392b; border-radius: 0 6px 6px 0; padding: 10px 14px; font-size: 12px; color: #6b1c1c; line-height: 1.5; margin-top: 10px; }
.ob-warn strong { display: block; margin-bottom: 3px; color: #c0392b; }
.ob-info { background: var(--border-light); border-left: 3px solid var(--blue-mid); border-radius: 0 6px 6px 0; padding: 10px 14px; font-size: 12px; color: #1a3a5a; line-height: 1.5; margin-top: 10px; }
.ob-info strong { display: block; margin-bottom: 3px; color: var(--blue-mid); }
.ob-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 12px; }
.ob-table th { background: #f0f5fa; padding: 7px 10px; text-align: left; font-weight: 700; color: var(--blue-mid); font-size: 11px; text-transform: uppercase; letter-spacing: .4px; }
.ob-table td { padding: 8px 10px; border-top: 1px solid var(--border-light); vertical-align: top; }
.ob-table tr:hover td { background: #f8fafc; }
.ob-code { font-family: monospace; font-weight: 700; color: var(--blue-dark); background: var(--border-light); padding: 2px 8px; border-radius: 4px; }
.ob-risk { color: #c0392b; font-weight: 600; }
.ob-chip { display: inline-block; background: var(--border-light); color: var(--blue-mid); font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: 6px; margin: 1px 2px 1px 0; }
.ob-chip.green { background: var(--green-bg); color: var(--green); }
.ob-type-group { font-weight: 700; color: var(--blue-dark); }
.ob-locked td { opacity: .55; }
.ob-locked-badge { display: inline-block; background: #eee; color: #999; font-size: 10px; padding: 1px 7px; border-radius: 6px; }
.ob-extra-card { background: #fff; border: 1.5px solid var(--border-light); border-radius: 12px; margin-bottom: 10px; padding: 16px 18px; display: flex; gap: 14px; align-items: flex-start; box-shadow: 0 1px 4px rgba(12,45,79,.05); }
.ob-extra-icon { font-size: 22px; flex-shrink: 0; margin-top: 2px; }
.ob-extra-title { font-size: 14px; font-weight: 700; color: var(--blue-dark); margin-bottom: 5px; }
.ob-extra-desc { font-size: 12px; color: var(--text-muted); line-height: 1.5; }
.ob-extra-list { list-style: none; margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.ob-extra-list li { font-size: 12px; display: flex; gap: 7px; }
.ob-extra-list li::before { content: '✓'; color: var(--green); font-weight: 700; flex-shrink: 0; }
.ob-goto-btn { margin-top: 10px; }

/* ── S9 NEW TEMPLATES CATALOG ─────────────────────────────────────────────── */
.s9-new-annot { background: #1a2a4a; color: #fff; border-radius: 10px; padding: 14px 18px; margin-bottom: 20px; font-size: 12px; line-height: 1.7; }
.s9-new-annot strong { color: #7ec8f0; }
.s9-new-annot-title { font-size: 13px; font-weight: 700; margin-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,0.15); padding-bottom: 6px; }

.s9-new-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.s9-new-section-title { font-size: 13px; font-weight: 700; color: #1a2a4a; text-transform: uppercase; letter-spacing: 0.5px; }
.s9-new-section-count { font-size: 12px; color: #888; background: #f0f2f5; padding: 2px 8px; border-radius: 10px; }
.s9-new-section-note { font-size: 11px; color: #aaa; }

.s9-new-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 28px; }

.s9-new-card { background: #fff; border: 1.5px solid #e0e6f0; border-radius: 10px; padding: 16px; position: relative; transition: border-color 0.15s; }
.s9-new-card:hover { border-color: #4a7ab5; }
.s9-new-system { border-left: 4px solid #4a7ab5; }
.s9-new-my { border-left: 4px solid #2d8a4e; }
.s9-new-selected { border-color: #2d6eb5; box-shadow: 0 0 0 3px rgba(45,110,181,0.12); }

.s9-new-select-mark { position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; background: #2d6eb5; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 11px; font-weight: 700; }

.s9-new-badge-row { display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap; }
.s9-new-badge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 3px; letter-spacing: 0.5px; }
.s9-new-badge-npd { background: #e8f4ff; color: #1a5ea8; }
.s9-new-badge-ip { background: #fff3e0; color: #b36200; }
.s9-new-badge-org { background: #f3e5f5; color: #6a1b9a; }
.s9-new-badge-kind-r { background: #e8f5e9; color: #2d6a3f; }
.s9-new-badge-kind-rm { background: #f3f8ff; color: #1a4a7a; }
.s9-new-badge-kind-sub { background: #fff8e1; color: #795548; }
.s9-new-badge-kind-agent { background: #fde8cc; color: #c07000; }
.s9-new-badge-system { background: #e0e6f0; color: #3a5a8a; }
.s9-new-badge-my { background: #e8f5e9; color: #2d6a3f; }

.s9-new-card-name { font-size: 13px; font-weight: 600; color: #1a2a4a; margin-bottom: 4px; }
.s9-new-card-desc { font-size: 11px; color: #777; margin-bottom: 8px; line-height: 1.5; }
.s9-new-card-meta { font-size: 10px; color: #aaa; margin-bottom: 12px; }

.s9-new-card-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.s9-new-btn { font-size: 11px; padding: 5px 10px; border-radius: 5px; border: none; cursor: pointer; font-weight: 600; }
.s9-new-btn-outline { background: #fff; border: 1.5px solid #4a7ab5; color: #4a7ab5; }
.s9-new-btn-outline:hover { background: #f0f5ff; }
.s9-new-btn-primary { background: #2d6eb5; color: #fff; }
.s9-new-btn-primary:hover { background: #1a5ea8; }
.s9-new-btn-danger { background: #fff; border: 1.5px solid #e74c3c; color: #e74c3c; }
.s9-new-btn-danger:hover { background: #fff5f5; }
.s9-new-btn-selected { background: #2d8a4e; color: #fff; cursor: default; }

.s9-new-divider { border: none; border-top: 1px solid #e0e6f0; margin: 4px 0 24px; }

.s9-new-add-card { background: #f8faff; border: 2px dashed #b0c4de; border-radius: 10px; padding: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; cursor: pointer; min-height: 140px; color: #7a9cc4; transition: border-color 0.15s, background 0.15s; }
.s9-new-add-card:hover { border-color: #4a7ab5; background: #f0f5ff; color: #2d6eb5; }
.s9-new-add-icon { font-size: 24px; margin-bottom: 8px; font-weight: 700; }
.s9-new-add-text { font-size: 12px; font-weight: 600; }
.s9-new-add-sub { font-size: 11px; opacity: 0.7; margin-top: 4px; }

/* ── S1 TEMPLATE BLOCK (новый wireframe стиль) ────────────────────────────── */
.s9-new-step1-block { background: #f8faff; border: 1.5px solid #b0c4de; border-radius: 10px; padding: 18px 20px; margin-top: 20px; }
.s9-new-step1-label { font-size: 13px; font-weight: 700; color: #1a2a4a; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.s9-new-step1-hint { font-size: 11px; font-weight: 400; color: #888; }
.s9-new-radio-list { display: flex; flex-direction: column; gap: 8px; }
.s9-new-radio-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1.5px solid #e0e6f0; border-radius: 8px; cursor: pointer; }
.s9-new-radio-card:hover { border-color: #4a7ab5; }
.s9-new-radio-card.active { border-color: #2d6eb5; background: #f0f5ff; }
.s9-new-radio-card input[type=radio] { accent-color: #2d6eb5; width: 16px; height: 16px; flex-shrink: 0; }
.s9-new-radio-info { flex: 1; }
.s9-new-radio-name { font-size: 13px; font-weight: 600; color: #1a2a4a; }
.s9-new-radio-sub { font-size: 11px; color: #888; margin-top: 2px; }
.s9-new-radio-badges { display: flex; gap: 5px; margin-top: 6px; flex-wrap: wrap; }
.s9-new-step1-footer { margin-top: 12px; font-size: 11px; color: #aaa; }
.s9-new-step1-footer a { color: #4a7ab5; text-decoration: none; }
.s9-new-step1-footer a:hover { text-decoration: underline; }

/* ── S9 SET-GROUP CARDS (комплекты: Договор + Приложение + Акт) ─────────────── */
.s9-new-set-group { background: #fff; border: 1.5px solid #c3e6cb; border-left: 4px solid #2d8a4e; border-radius: 10px; margin-bottom: 14px; overflow: hidden; }
.s9-new-set-selected { border-color: #2d6eb5; border-left-color: #2d6eb5; box-shadow: 0 0 0 3px rgba(45,110,181,0.1); }
.s9-new-set-selected .s9-new-set-header { background: #f0f6ff; }

.s9-new-set-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; gap: 12px; background: #f8fffe; border-bottom: 1px solid #e8f5e9; flex-wrap: wrap; }
.s9-new-set-header-actions { display: flex; gap: 6px; flex-shrink: 0; }

.s9-new-set-slots { }

.s9-new-slot-row { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid #f0f6f0; }
.s9-new-slot-row:last-child { border-bottom: none; }
.s9-new-slot-empty { background: #fafafa; }

.s9-new-slot-icon { font-size: 16px; text-align: center; }
.s9-new-slot-info { min-width: 0; }
.s9-new-slot-type { font-size: 10px; font-weight: 700; color: #4a6080; text-transform: uppercase; letter-spacing: 0.06em; }
.s9-new-slot-name { font-size: 12px; font-weight: 600; color: #1a2a4a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.s9-new-slot-name-empty { font-size: 12px; color: #aaa; font-style: italic; }
.s9-new-slot-sub { font-size: 11px; color: #888; margin-top: 1px; }
.s9-new-slot-btns { display: flex; gap: 5px; flex-shrink: 0; }
.s9-new-btn-upload { background: #f8faff; border: 1.5px dashed #b0c4de; color: #4a7ab5; font-weight: 700; }
.s9-new-btn-upload:hover { background: #e8f4ff; border-color: #4a7ab5; }

/* ── UPLOAD FORM SLOTS ──────────────────────────────────────────────────────── */
.s9-add-slots-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.s9-add-slot { border: 2px dashed #b0c4de; border-radius: 8px; padding: 16px 12px; text-align: center; background: #f8faff; }
.s9-add-slot-required { border-color: #4a7ab5; background: #f0f5ff; }
.s9-add-slot-icon { font-size: 24px; margin-bottom: 6px; }
.s9-add-slot-type { font-size: 11px; font-weight: 700; color: #4a6080; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 10px; }
.s9-add-slot-filename { font-size: 11px; color: #2d8a4e; font-weight: 600; margin-bottom: 6px; word-break: break-all; }
.s9-add-slot-btn { background: #fff; border: 1.5px solid #b0c4de; border-radius: 5px; padding: 5px 10px; font-size: 11px; color: #4a7ab5; cursor: pointer; font-weight: 600; }
.s9-add-slot-btn:hover { background: #e8f4ff; border-color: #4a7ab5; }
.s9-add-slot-hint { font-size: 10px; color: #aaa; margin-top: 6px; }

/* ── S5 DATA CHECK CARD ─────────────────────────────────────────────────────── */
.s5-dc-wrap { padding: 20px 24px; }
.s5-dc-head { font-size: 13px; font-weight: 700; color: #1a2a4a; background: #e8f4ff; border: 1.5px solid #b0d4f0; border-radius: 7px; padding: 10px 14px; margin-bottom: 18px; }
.s5-dc-section-title { font-size: 10px; font-weight: 700; color: #4a6080; text-transform: uppercase; letter-spacing: 0.08em; margin: 16px 0 8px; border-bottom: 1px solid #e8edf4; padding-bottom: 4px; }
.s5-dc-row { display: flex; gap: 12px; padding: 4px 0; border-bottom: 1px solid #f0f3f8; }
.s5-dc-label { font-size: 12px; color: #888; width: 160px; flex-shrink: 0; }
.s5-dc-value { font-size: 12px; color: #1a2a4a; font-weight: 600; flex: 1; }

/* ═══ КОНТРАГЕНТЫ (sub-*) ══════════════════════════════════════════════════ */
.sub-card{background:var(--bg-card);border-radius:12px;box-shadow:0 1px 4px rgba(12,45,79,.07);margin-bottom:18px;}
.sub-card-body{padding:24px;}
.sub-card-title{font-size:11px;font-weight:700;color:var(--blue-dark);text-transform:uppercase;letter-spacing:.8px;margin-bottom:16px;}
.sub-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s;font-family:inherit;}
.sub-btn-primary{background:var(--blue-dark);color:#fff;}
.sub-btn-primary:hover{background:var(--blue-mid);}
.sub-btn-success{background:var(--green);color:#fff;}
.sub-btn-success:hover{filter:brightness(.92);}
.sub-btn-outline{background:transparent;color:var(--blue-dark);border:1.5px solid var(--border);}
.sub-btn-outline:hover{border-color:var(--blue-mid);background:#f5f8fa;}
.sub-btn-sm{padding:6px 14px;font-size:12px;}
.sub-btn-icon{background:none;border:none;cursor:pointer;font-size:15px;padding:4px 6px;border-radius:6px;color:var(--blue-pale);}
.sub-btn-icon:hover{background:var(--border-light);color:var(--blue-dark);}
.sub-btn:disabled{opacity:.55;cursor:not-allowed;}
.sub-table{width:100%;border-collapse:collapse;}
.sub-table th{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--blue-dark);padding:10px 14px;border-bottom:2px solid var(--border-light);}
.sub-table td{padding:11px 14px;border-bottom:1px solid var(--border-light);vertical-align:middle;color:var(--text);font-size:13px;}
.sub-table tr:hover td{background:var(--border-light);}
.sub-table-foot{padding:10px 14px;font-size:12px;color:var(--text-muted);border-top:1px solid var(--border-light);}
.sub-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.sub-form-group{display:flex;flex-direction:column;gap:6px;}
.sub-form-group.full{grid-column:1/-1;}
.sub-label{font-size:11px;font-weight:600;color:var(--blue-mid);display:block;}
.sub-input,.sub-select{width:100%;border:1.5px solid var(--border);border-radius:7px;padding:9px 12px;font-size:13px;color:var(--text);font-family:inherit;background:#fff;transition:border-color .15s;outline:none;}
.sub-input:focus,.sub-select:focus{border-color:var(--blue-dark);}
.sub-divider{border:none;border-top:1px solid var(--border-light);margin:20px 0;}
.sub-breadcrumb{font-size:12px;color:var(--text-muted);margin-bottom:16px;display:flex;align-items:center;gap:6px;}
.sub-breadcrumb span{cursor:pointer;color:var(--blue-dark);font-weight:600;}
.sub-breadcrumb span:hover{text-decoration:underline;}
.sub-subpage{display:none;}
.sub-subpage.active{display:block;}
.sub-totals{background:var(--border-light);border-radius:10px;padding:14px 18px;margin-top:16px;display:flex;justify-content:space-between;align-items:center;}
.sub-docs-list{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0;}
.sub-doc-chip{display:flex;align-items:center;gap:6px;background:var(--border-light);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--blue-dark);}
.sub-page-title{font-size:20px;font-weight:700;color:var(--blue-dark);margin-bottom:4px;}
.sub-page-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px;}
.sub-period-note{margin-top:10px;font-size:13px;color:var(--text-muted);}
.sub-totals-label{font-size:13px;color:var(--text-muted);}
.sub-totals-vat{font-size:12px;color:var(--text-muted);}
.sub-totals-amount{font-size:22px;font-weight:700;color:var(--blue-dark);}
.sub-docs-note{font-size:12px;color:var(--text-muted);}
.sub-section-title{font-size:14px;font-weight:700;color:var(--blue-dark);text-transform:none;letter-spacing:0;margin-bottom:12px;}
