/* ═══════════════════════════════════════════════════════════════════════════
   ЦВЕТОВЫЕ ПЕРЕМЕННЫЕ
   ═══════════════════════════════════════════════════════════════════════════ */

:root,
[data-md-color-scheme="default"] {
  --md-primary-fg-color:        #2c3e50;
  --md-primary-fg-color--light: #34495e;
  --md-primary-fg-color--dark:  #1a252f;
  --md-primary-bg-color:        #ffffff;

  --md-accent-fg-color:              #2980b9;
  --md-accent-fg-color--transparent: #2980b912;

  --heading-color-h2: #1a252f;
  --heading-color-h3: #2c3e50;
  --heading-color-h4: #34495e;
  --heading-color-h5: #1a252f;

  --md-default-bg-color: #f8f9fa;

  /* Блоки */
  --block-proc-bg:     #eaf4fb;
  --block-proc-border: #2980b9;
  --block-param-bg:    #f4f6f7;
  --block-param-border:#7f8c8d;
  --block-error-bg:    #fef9f0;
  --block-error-border:#e67e22;
  --table-header-bg:   #2c3e50;
  --table-stripe-bg:   #eaf4fb;
}

[data-md-color-scheme="slate"] {
  --md-primary-fg-color:        #1e3a5f;
  --md-primary-fg-color--light: #2a4a75;
  --md-primary-fg-color--dark:  #152b47;
  --md-primary-bg-color:        #ffffff;

  --md-accent-fg-color:              #5dade2;
  --md-accent-fg-color--transparent: #5dade212;

  --heading-color-h2: #aed6f1;
  --heading-color-h3: #85c1e9;
  --heading-color-h4: #5dade2;
  --heading-color-h5: #d6eaf8;

  --block-proc-bg:     #1a2e40;
  --block-proc-border: #5dade2;
  --block-param-bg:    #1e2d3d;
  --block-param-border:#566573;
  --block-error-bg:    #2d1f0e;
  --block-error-border:#e59866;
  --table-header-bg:   #1e3a5f;
  --table-stripe-bg:   #1a2e40;
}


/* ═══════════════════════════════════════════════════════════════════════════
   ЗАГОЛОВКИ
   ═══════════════════════════════════════════════════════════════════════════ */

.md-typeset h1,
.md-typeset h1 strong {
  font-weight: 800;
  letter-spacing: -.02em;
}

/* h2 — главный раздел: жирная линия снизу + воздух сверху */
.md-typeset h2,
.md-typeset h2 strong {
  color: var(--heading-color-h2);
  font-weight: 700;
  border-bottom: 2px solid var(--md-accent-fg-color);
  padding-bottom: .25em;
  margin-top: 3rem !important;
}

/* h3 — подраздел */
.md-typeset h3,
.md-typeset h3 strong {
  color: var(--heading-color-h3);
  font-weight: 600;
  margin-top: 2.2rem !important;
}

/* h4 — секция параметров / CRUD: верхняя линия + цвет */
.md-typeset h4,
.md-typeset h4 strong {
  color: var(--heading-color-h4);
  font-weight: 600;
  margin-top: 1.8rem !important;
  padding-top: .5em;
  border-top: 1px solid var(--block-param-border);
}

/* h5 — процедура: яркая карточка-заголовок */
.md-typeset h5,
.md-typeset h5 strong {
  color: var(--heading-color-h5);
  font-weight: 700;
  font-size: .85rem;
  text-transform: none;
  letter-spacing: normal;
  background-color: var(--block-proc-bg);
  border-left: 4px solid var(--block-proc-border);
  border-radius: 0 .4em .4em 0;
  padding: .5em 1em;
  margin-top: 2rem !important;
  margin-bottom: .3rem !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   БЛОК ПРОЦЕДУРЫ — шаги и таблица ошибок внутри одного визуального блока
   ═══════════════════════════════════════════════════════════════════════════ */

/* Нумерованный список сразу после h5 */
.md-typeset h5 + ol,
.md-typeset h5 + p + ol {
  background-color: var(--block-proc-bg);
  border-left: 4px solid var(--block-proc-border);
  border-radius: 0 0 .4em .4em;
  margin-top: 0 !important;
  padding: .8em 1em .8em 2.4em;
}



/* ═══════════════════════════════════════════════════════════════════════════
   ТАБЛИЦЫ
   ═══════════════════════════════════════════════════════════════════════════ */

/* Контейнер таблицы: тень + прокрутка на узких экранах */
.md-typeset__table,
.md-typeset table:not([class]) {
  display: block;
  overflow-x: auto;
  border-radius: .4em;
  box-shadow: 0 1px 6px rgba(0,0,0,.10);
  margin: 1.4em 0 2em;
}

.md-typeset table:not([class]) {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
}

/* Шапка таблицы */
.md-typeset table:not([class]) th {
  background-color: var(--table-header-bg);
  color: #ffffff;
  font-weight: 600;
  white-space: nowrap;
  padding: .55em .9em;
}

/* Чередование строк */
.md-typeset table:not([class]) tbody tr:nth-child(even) {
  background-color: var(--table-stripe-bg);
}

.md-typeset table:not([class]) td {
  padding: .45em .9em;
  vertical-align: top;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

/* Таблица ошибок — шапка оранжевая (первая колонка = «Код ошибки») */
.md-typeset table:not([class]) th:first-child[scope="col"]:where([align="left"]):empty,
.md-typeset table:not([class]):has(th:first-child) th {
  /* fallback — окрашиваем все шапки одинаково выше */
}

/* Принудительная оранжевая полоса для таблиц ошибок через :has() */
.md-typeset table:not([class]):has(th:first-child) {
  border-top: 3px solid var(--block-proc-border);
}


/* ═══════════════════════════════════════════════════════════════════════════
   СПИСКИ
   ═══════════════════════════════════════════════════════════════════════════ */

.md-content ol                { list-style-type: decimal; }
.md-content ol ol             { list-style-type: lower-alpha; }
.md-content ol ol ol          { list-style-type: lower-roman; }
.md-content ol ol ol ol       { list-style-type: decimal; }


/* ═══════════════════════════════════════════════════════════════════════════
   ССЫЛКИ
   ═══════════════════════════════════════════════════════════════════════════ */

.md-typeset a { color: var(--md-accent-fg-color); }
.md-typeset a:hover { text-decoration: underline; }

/* Параметры-ссылки [`snake_case`](url) — убрать фон кода, оставить только цвет */
.md-typeset a code {
  background: none;
  padding: 0;
  border-radius: 0;
  color: inherit;
  font-size: .9em;
  border: none;
  box-shadow: none;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SWAGGER UI — светлая тема
   ═══════════════════════════════════════════════════════════════════════════ */

.swagger-ui .information-container,
.swagger-ui .scheme-container {
  background: var(--md-default-bg-color);
  box-shadow: none;
  padding: 1em 0;
}

/* Убираем зелёный фон у таблицы ответов */
.swagger-ui .responses-inner,
.swagger-ui .response-col_description__inner div.markdown,
.swagger-ui table.responses-table {
  background: transparent;
}

.swagger-ui table.responses-table td,
.swagger-ui table.responses-table th {
  background: transparent;
  border-color: rgba(0,0,0,.1);
  color: var(--md-typeset-color);
  padding: .5em .8em;
}

.swagger-ui table.responses-table thead tr th {
  border-bottom: 2px solid rgba(0,0,0,.15);
  font-weight: 600;
  font-size: .85em;
  color: var(--md-default-fg-color--light);
}

/* Описания и параметры */
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p,
.swagger-ui .parameter__name,
.swagger-ui .parameter__type,
.swagger-ui label,
.swagger-ui .response-col_status {
  color: var(--md-typeset-color);
}

.swagger-ui .opblock .opblock-summary-description {
  color: var(--md-default-fg-color--light);
}

/* Блок модели/схемы */
.swagger-ui .model-box,
.swagger-ui section.models .model-container {
  background: var(--block-param-bg);
  border-radius: .4em;
}

.swagger-ui .model-title,
.swagger-ui .model {
  color: var(--md-typeset-color);
}

/* JSON пример — светлая тема */
.swagger-ui .highlight-code {
  border: 1px solid #dde1e4 !important;
  border-radius: .4em !important;
  overflow: hidden;
}

.swagger-ui .microlight {
  background: #f4f6f7 !important;
  padding: 1em !important;
  color: #2c3e50 !important;
}

.swagger-ui .microlight span {
  filter: saturate(0.65) brightness(0.85);
}

/* Таблицы внутри Swagger — сбрасываем Material-стили */
.swagger-ui table {
  display: table;
  overflow-x: visible;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  width: 100%;
  min-width: unset;
  border-collapse: collapse;
}

.swagger-ui table th {
  background-color: unset;
  color: unset;
  font-weight: unset;
  white-space: unset;
  padding: unset;
}

.swagger-ui table tbody tr:nth-child(even) { background-color: unset; }
.swagger-ui table td { padding: unset; vertical-align: unset; border-bottom: unset; }

/* Заголовки внутри Swagger — сбрасываем Material */
.md-typeset .swagger-ui h2,
.md-typeset .swagger-ui h3,
.md-typeset .swagger-ui h4,
.md-typeset .swagger-ui h5 {
  color: unset; font-weight: unset; border: none;
  padding: unset; margin: unset; background: none;
}

/* Ссылки внутри Swagger */
.md-typeset .swagger-ui a       { color: unset; }
.md-typeset .swagger-ui a:hover { text-decoration: unset; }

/* Списки внутри Swagger */
.md-content .swagger-ui ol { list-style-type: unset; }

/* ═══════════════════════════════════════════════════════════════════════════
   SWAGGER UI — тёмная тема (slate)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Базовый цвет текста */
[data-md-color-scheme="slate"] .swagger-ui,
[data-md-color-scheme="slate"] .swagger-ui .opblock-tag,
[data-md-color-scheme="slate"] .swagger-ui .opblock-tag small,
[data-md-color-scheme="slate"] .swagger-ui .info .title,
[data-md-color-scheme="slate"] .swagger-ui .info li,
[data-md-color-scheme="slate"] .swagger-ui .info p,
[data-md-color-scheme="slate"] .swagger-ui label,
[data-md-color-scheme="slate"] .swagger-ui p,
[data-md-color-scheme="slate"] .swagger-ui table thead tr th,
[data-md-color-scheme="slate"] .swagger-ui table thead tr td { color: #e0e0e0; }

/* Info и servers */
[data-md-color-scheme="slate"] .swagger-ui .information-container { background: transparent; box-shadow: none; }
[data-md-color-scheme="slate"] .swagger-ui .scheme-container      { background: #1f1f1f; box-shadow: none; }
[data-md-color-scheme="slate"] .swagger-ui .servers label         { color: #ccc; }
[data-md-color-scheme="slate"] .swagger-ui .servers select        { background: #2d2d2d; color: #e0e0e0; border-color: #555; }

/* Тег-группа */
[data-md-color-scheme="slate"] .swagger-ui .opblock-tag { border-bottom-color: rgba(255,255,255,.1); }

/* Операции — цветные фоны как в стандартном Swagger тёмной теме */
[data-md-color-scheme="slate"] .swagger-ui .opblock { box-shadow: none !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock.opblock-post   { border-color: #49cc90 !important; background: rgba(73,204,144,.15) !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock.opblock-get    { border-color: #61affe !important; background: rgba(97,175,254,.15) !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock.opblock-put    { border-color: #fca130 !important; background: rgba(252,161,48,.15) !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock.opblock-patch  { border-color: #50e3c2 !important; background: rgba(80,227,194,.15) !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock.opblock-delete { border-color: #f93e3e !important; background: rgba(249,62,62,.15) !important; }

[data-md-color-scheme="slate"] .swagger-ui .opblock .opblock-summary              { background: transparent !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock-summary-path                  { color: #fff !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock-summary-description           { color: #d0d0d0 !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock-summary-path__deprecated      { color: #aaa !important; }

/* Тело операции — тёмный нейтральный фон */
[data-md-color-scheme="slate"] .swagger-ui .opblock-body                          { background: #1f1f1f !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock-section-header                { background: #2a2a2a !important; box-shadow: none !important; border-bottom: 1px solid rgba(255,255,255,.07) !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock-section-header h4             { color: #ccc !important; }
[data-md-color-scheme="slate"] .swagger-ui .opblock-description-wrapper p  { color: #ccc; }

/* Ссылка "Процедура:" внутри description */
[data-md-color-scheme="slate"] .swagger-ui .opblock-description-wrapper a  { color: #61affe; }

/* Параметры */
[data-md-color-scheme="slate"] .swagger-ui .parameter__name             { color: #e0e0e0; }
[data-md-color-scheme="slate"] .swagger-ui .parameter__type             { color: #aaa; }
[data-md-color-scheme="slate"] .swagger-ui .parameter__deprecated       { color: #888; }
[data-md-color-scheme="slate"] .swagger-ui .parameters-col_description  { color: #ccc; }
[data-md-color-scheme="slate"] .swagger-ui table thead tr th            { border-bottom: 1px solid rgba(255,255,255,.1); background: transparent; }
[data-md-color-scheme="slate"] .swagger-ui table tbody tr td            { background: transparent; color: #ccc; }

/* Поля ввода */
[data-md-color-scheme="slate"] .swagger-ui input[type=text],
[data-md-color-scheme="slate"] .swagger-ui textarea,
[data-md-color-scheme="slate"] .swagger-ui select {
  background: #2d2d2d; border: 1px solid #555; color: #e0e0e0;
}

/* Ответы */
[data-md-color-scheme="slate"] .swagger-ui .responses-inner                            { background: transparent; }
[data-md-color-scheme="slate"] .swagger-ui table.responses-table td,
[data-md-color-scheme="slate"] .swagger-ui table.responses-table th                    { background: transparent; border-color: rgba(255,255,255,.08); color: #ccc; }
[data-md-color-scheme="slate"] .swagger-ui .response-col_status                        { color: #e0e0e0; }
[data-md-color-scheme="slate"] .swagger-ui .response-col_description__inner div.markdown p { color: #ccc; }

/* JSON пример */
[data-md-color-scheme="slate"] .swagger-ui .highlight-code { border: 1px solid rgba(255,255,255,.1) !important; border-radius: .4em !important; overflow: hidden; }
[data-md-color-scheme="slate"] .swagger-ui .microlight      { background: #1a1a1a !important; color: #abb2bf !important; padding: 1em !important; }
[data-md-color-scheme="slate"] .swagger-ui .microlight span { filter: saturate(0.85) brightness(1.05); }

/* Кнопки */
[data-md-color-scheme="slate"] .swagger-ui .btn            { color: #e0e0e0; border-color: rgba(255,255,255,.3); background: transparent; }
[data-md-color-scheme="slate"] .swagger-ui .btn:hover      { background: rgba(255,255,255,.07); }
[data-md-color-scheme="slate"] .swagger-ui .btn.execute    { background: #4990e2; border-color: #4990e2; color: #fff; }
[data-md-color-scheme="slate"] .swagger-ui .btn.cancel     { border-color: #f93e3e; color: #f93e3e; }
[data-md-color-scheme="slate"] .swagger-ui .btn.authorize  { color: #49cc90; border-color: #49cc90; }

/* Модели */
[data-md-color-scheme="slate"] .swagger-ui .model-box,
[data-md-color-scheme="slate"] .swagger-ui section.models .model-container { background: #252525; }
[data-md-color-scheme="slate"] .swagger-ui .model,
[data-md-color-scheme="slate"] .swagger-ui .model-title,
[data-md-color-scheme="slate"] .swagger-ui .prop-type      { color: #e0e0e0; }
[data-md-color-scheme="slate"] .swagger-ui section.models  { border-color: rgba(255,255,255,.1); }
[data-md-color-scheme="slate"] .swagger-ui section.models h4 { color: #e0e0e0; }

/* ═══════════════════════════════════════════════════════════════════════════
   НАВИГАЦИЯ
   ═══════════════════════════════════════════════════════════════════════════ */

.md-nav__item .md-nav__link--active {
  color: var(--md-accent-fg-color);
  font-weight: 600;
}


/* ═══════════════════════════════════════════════════════════════════════════
   КАРТОЧКИ ГЛАВНОЙ СТРАНИЦЫ
   ═══════════════════════════════════════════════════════════════════════════ */

.doc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .85rem;
  margin: 1.2rem 0 2rem;
}

.doc-card {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding: 1rem 1.1rem;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.1);
  background: var(--md-default-bg-color);
  box-shadow: 0 1px 4px rgba(0,0,0,.07);
  text-decoration: none !important;
  transition: box-shadow .15s, border-color .15s, transform .1s;
  color: var(--md-typeset-color) !important;
}

.doc-card:hover {
  border-color: var(--md-accent-fg-color);
  box-shadow: 0 3px 12px rgba(0,0,0,.12);
  transform: translateY(-1px);
  text-decoration: none !important;
}

.doc-card__num {
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
  color: var(--md-accent-fg-color);
  opacity: .5;
}

.doc-card__title {
  font-size: .9rem;
  font-weight: 600;
  color: var(--md-typeset-color);
}

.doc-card__sub {
  font-size: .78rem;
  color: var(--md-default-fg-color--light);
  line-height: 1.3;
}

.doc-card__badge {
  display: inline-block;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: var(--md-accent-fg-color);
  color: #fff;
  border-radius: .25rem;
  padding: .15em .5em;
  width: fit-content;
}

.doc-card__icon {
  font-size: 1.5rem;
  line-height: 1;
}

/* API-карточки — чуть шире */
.doc-card--api {
  grid-column: span 2;
}

@media (max-width: 600px) {
  .doc-card--api { grid-column: span 1; }
}

/* Агент-карточки — тонкий акцент слева */
.doc-card--skill {
  border-left: 3px solid var(--md-accent-fg-color);
}

[data-md-color-scheme="slate"] .doc-card {
  border-color: rgba(255,255,255,.1);
  background: var(--md-code-bg-color);
}

[data-md-color-scheme="slate"] .doc-card:hover {
  border-color: var(--md-accent-fg-color);
}


/* ═══════════════════════════════════════════════════════════════════════════
   СВОРАЧИВАЕМОЕ ОГЛАВЛЕНИЕ
   ═══════════════════════════════════════════════════════════════════════════ */

.toc-toggle {
  display: inline-block;
  margin-left: .3em;
  width: .85em;
  height: .85em;
  vertical-align: middle;
  cursor: pointer;
  flex-shrink: 0;
  opacity: .5;
  transition: opacity .15s, transform .2s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%232980b9' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.toc-toggle:hover { opacity: 1; }

.toc-item--closed > a.md-nav__link .toc-toggle {
  transform: rotate(-90deg);
}

.toc-nav--closed { display: none !important; }

[data-md-color-scheme="slate"] .toc-toggle {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235dade2' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
}

/* Стрелка на названии активной страницы (сворачивает всё оглавление) */
.toc-toggle--page {
  opacity: .4;
  width: .8em;
  height: .8em;
}

.toc-toggle--page:hover { opacity: .9; }

.toc-item--closed > label > a.md-nav__link .toc-toggle--page,
.toc-item--closed > a.md-nav__link .toc-toggle--page {
  transform: rotate(-90deg);
}


/* ═══════════════════════════════════════════════════════════════════════════
   ПРОГРЕСС РЕАЛИЗАЦИИ
   ═══════════════════════════════════════════════════════════════════════════ */

.progress-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .85rem;
  margin: 1.2rem 0 2rem;
}

.progress-stat {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  padding: 1rem 1.2rem;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.1);
  background: var(--md-default-bg-color);
  box-shadow: 0 1px 4px rgba(0,0,0,.07);
}

.progress-stat__label {
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--md-default-fg-color--light);
}

.progress-stat__value {
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1;
  color: var(--md-accent-fg-color);
}

.progress-stat__sub {
  font-size: .78rem;
  color: var(--md-default-fg-color--light);
}

.progress-platform {
  margin: 1rem 0 1.6rem;
}

.progress-platform__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: .4rem;
}

.progress-platform__name {
  font-size: .88rem;
  font-weight: 600;
  color: var(--md-typeset-color);
}

.progress-platform__pct {
  font-size: .78rem;
  font-weight: 700;
  color: var(--md-default-fg-color--light);
}

.progress-bar-wrap {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.progress-bar-row {
  display: flex;
  align-items: center;
  gap: .6rem;
}

.progress-bar-row__layer {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  width: 3rem;
  flex-shrink: 0;
  color: var(--md-default-fg-color--light);
}

.progress-bar {
  flex: 1;
  height: 8px;
  background: rgba(0,0,0,.08);
  border-radius: 4px;
  overflow: hidden;
}

.progress-bar__fill {
  height: 100%;
  border-radius: 4px;
  transition: width .3s ease;
}

.progress-bar__fill--bek  { background: var(--md-accent-fg-color); }
.progress-bar__fill--front { background: #27ae60; }
.progress-bar__fill--warn  { background: #e67e22; }

.progress-bar-row__count {
  font-size: .72rem;
  color: var(--md-default-fg-color--light);
  width: 3.5rem;
  text-align: right;
  flex-shrink: 0;
}

[data-md-color-scheme="slate"] .progress-stat {
  border-color: rgba(255,255,255,.1);
  background: var(--md-code-bg-color);
}

[data-md-color-scheme="slate"] .progress-bar {
  background: rgba(255,255,255,.1);
}
