/* ═══════════════════════════════════════════════════════════════════
   Портал — Kontur-inspired minimalist design
   ═══════════════════════════════════════════════════════════════════ */

:root {
    --accent:       #009C3B;
    --accent-hover: #00802F;
    --accent-light: #E6F5EC;
    --accent-subtle:#F0FAF4;

    --text:         #1A1A1A;
    --text-2:       #5C5C5C;
    --text-3:       #8A8A8A;
    --border:       #E5E5E5;
    --border-focus: #B3B3B3;
    --bg:           #FFFFFF;
    --bg-2:         #FAFAFA;
    --bg-3:         #F2F2F2;

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;

    --shadow-sm: 0 1px 3px rgba(0,0,0,.06);
    --shadow-md: 0 4px 16px rgba(0,0,0,.08);
    --shadow-lg: 0 8px 32px rgba(0,0,0,.10);
    --shadow-dropdown: 0 8px 40px rgba(0,0,0,.12);

    --font: 'Golos Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --transition: 180ms cubic-bezier(.4,0,.2,1);
}

/* ─── Reset ─────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body {
    font-family: var(--font);
    color: var(--text);
    background: var(--bg);
    line-height: 1.55;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: inherit; }
input { font-family: inherit; }

/* ─── Header ────────────────────────────────────────────────────── */
.header {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 32px;
    padding: 0 40px;
    height: 60px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
}

.header__logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -.02em;
    color: var(--text);
    flex-shrink: 0;
}

.header__nav {
    display: flex;
    gap: 4px;
}
.header__nav-link {
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-2);
    transition: all var(--transition);
}
.header__nav-link:hover { color: var(--text); background: var(--bg-3); }
.header__nav-link--active { color: var(--text); background: var(--bg-3); }

.header__right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 16px;
}
.header__stats {
    font-size: 13px;
    color: var(--text-3);
}

/* ─── Buttons ───────────────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 500;
    border: none;
    border-radius: var(--radius-sm);
    transition: all var(--transition);
    white-space: nowrap;
}
.btn--sm { padding: 7px 18px; font-size: 13px; }
.btn--md { padding: 10px 24px; font-size: 14px; }

.btn--outline {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text);
}
.btn--outline:hover { border-color: var(--text); }

.btn--primary {
    background: var(--accent);
    color: #fff;
}
.btn--primary:hover { background: var(--accent-hover); }

/* ─── Hero ──────────────────────────────────────────────────────── */
.hero {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 40px 40px;
    position: relative;
    overflow: hidden;
    min-height: calc(100vh - 60px - 240px);
}

.hero__content {
    width: 100%;
    max-width: 640px;
    text-align: center;
    position: relative;
    z-index: 1;
}

.hero__title {
    font-size: 40px;
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -.03em;
    margin-bottom: 14px;
    color: var(--text);
}
.hero__title--accent {
    color: var(--accent);
}

.hero__subtitle {
    font-size: 16px;
    line-height: 1.55;
    color: var(--text-2);
    max-width: 480px;
    margin: 0 auto 36px;
}

/* Background pattern */
.hero__bg-pattern {
    position: absolute;
    top: -200px;
    right: -200px;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--accent-subtle) 0%, transparent 70%);
    opacity: .6;
    pointer-events: none;
}

/* ─── Search ────────────────────────────────────────────────────── */
.search {
    position: relative;
    width: 100%;
}

.search__input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.search__icon {
    position: absolute;
    left: 18px;
    color: var(--text-3);
    pointer-events: none;
    transition: color var(--transition);
}

.search__input {
    width: 100%;
    padding: 16px 50px 16px 50px;
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    font-size: 16px;
    color: var(--text);
    background: var(--bg);
    outline: none;
    transition: all var(--transition);
    box-shadow: var(--shadow-sm);
}
.search__input::placeholder {
    color: var(--text-3);
}
.search__input:hover {
    border-color: var(--border-focus);
}
.search__input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(0,156,59,.12), var(--shadow-md);
}
.search__input:focus ~ .search__icon {
    color: var(--accent);
}
.search__input:focus ~ .search__kbd {
    opacity: 0;
}

.search__kbd {
    position: absolute;
    right: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 5px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-3);
    font-size: 12px;
    font-family: inherit;
    pointer-events: none;
    transition: opacity var(--transition);
}

/* Dropdown */
.search__dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-dropdown);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: all var(--transition);
    z-index: 50;
    max-height: 420px;
    overflow-y: auto;
}
.search__dropdown--visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.search__result-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 18px;
    cursor: pointer;
    transition: background var(--transition);
    border-bottom: 1px solid var(--bg-3);
    text-align: left;
}
.search__result-item:last-child { border-bottom: none; }
.search__result-item:hover { background: var(--accent-subtle); }

.search__result-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--accent-light);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-weight: 700;
    font-size: 14px;
    margin-top: 2px;
}

.search__result-info { flex: 1; min-width: 0; }
.search__result-name {
    font-weight: 600;
    font-size: 14px;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.search__result-meta {
    font-size: 13px;
    color: var(--text-3);
    margin-top: 2px;
}
.search__result-inn {
    font-size: 13px;
    color: var(--text-2);
    font-weight: 500;
    flex-shrink: 0;
    margin-top: 2px;
}

.search__no-results {
    padding: 28px 18px;
    text-align: center;
    color: var(--text-3);
    font-size: 14px;
}

.search__loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 22px;
    color: var(--text-3);
    font-size: 14px;
}

/* ─── Hints (quick search tags) ─────────────────────────────────── */
.hero__hints {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}
.hero__hint {
    padding: 5px 14px;
    background: var(--bg-3);
    border-radius: 100px;
    font-size: 13px;
    color: var(--text-2);
    cursor: pointer;
    transition: all var(--transition);
    user-select: none;
}
.hero__hint:hover {
    background: var(--accent-light);
    color: var(--accent);
}

/* ─── Features ──────────────────────────────────────────────────── */
.features {
    padding: 60px 40px 80px;
    background: var(--bg-2);
    border-top: 1px solid var(--border);
}
.features__grid {
    max-width: 960px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.features__card {
    padding: 28px 24px;
    background: var(--bg);
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
    transition: all var(--transition);
}
.features__card:hover {
    box-shadow: var(--shadow-md);
    border-color: var(--accent);
    transform: translateY(-2px);
}
.features__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--accent-light);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.features__card h3 {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 6px;
    letter-spacing: -.01em;
}
.features__card p {
    font-size: 13px;
    color: var(--text-2);
    line-height: 1.5;
}

/* ─── Tabs ──────────────────────────────────────────────────────── */
.tabs {
    display: flex;
    /* Все вкладки в одном ряду: переноса нет, ширину делят поровну. Скролла
       тоже нет (он вёл себя по-разному в macOS и Windows), вместо него —
       сжатие вкладок, см. flex ниже. */
    flex-wrap: nowrap;
    gap: 2px;
    margin-bottom: -1px;
    position: relative;
    z-index: 2;
}

.tabs__item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Базис 0 + рост поровну: все вкладки в одном ряду и одинаковой ширины.
       min-width: 0 разрешает сжиматься ниже ширины текста, потолок в 1/4 —
       чтобы у ролей с двумя-тремя разделами вкладки не расползались на пол-экрана. */
    flex: 1 1 0;
    min-width: 0;
    max-width: calc(25% - 2px);
    gap: 6px;
    padding: 12px 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-3);
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    cursor: pointer;
    transition: all var(--transition);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    user-select: none;
}
/* Иконка и счётчик не сжимаются — ужимается только подпись. */
.tabs__item > svg,
.tabs__badge { flex-shrink: 0; }
.tabs__item:hover {
    color: var(--text-2);
    background: var(--bg-3);
}
.tabs__item--active {
    color: var(--accent);
    background: var(--bg);
    border-color: var(--border);
    border-bottom-color: var(--bg);
    z-index: 3;
}
.tabs__item--active:hover {
    color: var(--accent);
    background: var(--bg);
}
.tabs__item--active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 8px;
    right: 8px;
    height: 2px;
    background: var(--accent);
    border-radius: 2px 2px 0 0;
}
.tabs__icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    opacity: .6;
}
.tabs__item--active .tabs__icon { opacity: 1; }

.tabs__badge {
    padding: 1px 7px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 600;
    background: var(--bg-3);
    color: var(--text-3);
    line-height: 1.5;
}
/* Счётчик до загрузки данных пуст — не занимаем под него место в ряду. */
.tabs__badge:empty { display: none; }

/* Узкие экраны: ряд остаётся одним, место освобождают иконки — подпись важнее.
   Без этого «Контрагенты» и «Документы» обрезались бы многоточием. */
@media (max-width: 1150px) {
    .tabs__icon { display: none; }
    .tabs__item { padding: 12px 6px; }
}
.tabs__item--active .tabs__badge {
    background: var(--accent-light);
    color: var(--accent);
}

/* Tab panels */
.tab-panel {
    display: none;
    animation: tabFadeIn .25s ease-out;
}
.tab-panel--active {
    display: block;
}
@keyframes tabFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Placeholder for future tabs */
.tab-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 32px;
    text-align: center;
}
.tab-placeholder__icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: var(--bg-3);
    color: var(--text-3);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.tab-placeholder__title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 6px;
}
.tab-placeholder__text {
    font-size: 14px;
    color: var(--text-3);
    max-width: 320px;
    line-height: 1.5;
}

/* ─── Company page ──────────────────────────────────────────────── */
.company-page {
    flex: 1;
    max-width: 1240px;
    margin: 0 auto;
    padding: 32px 40px 80px;
    width: 100%;
}
.company-page__back a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--text-2);
    margin-bottom: 24px;
    transition: color var(--transition);
}
.company-page__back a:hover { color: var(--accent); }

.company-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.company-card__loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 60px;
    color: var(--text-3);
    font-size: 14px;
}

.company-card__header {
    padding: 32px;
    border-bottom: 1px solid var(--border);
}
.company-card__status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.company-card__status--active {
    background: var(--accent-light);
    color: var(--accent);
}
.company-card__status--inactive {
    background: #FEE2E2;
    color: #DC2626;
}
.company-card__name {
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -.02em;
    margin-bottom: 4px;
}
.company-card__director {
    font-size: 14px;
    color: var(--text-2);
}

.company-card__section {
    padding: 28px 32px;
    border-bottom: 1px solid var(--border);
}
.company-card__section:last-child { border-bottom: none; }
.company-card__section-title {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-3);
    margin-bottom: 16px;
}

.company-card__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 32px;
}
.company-card__field {}
.company-card__label {
    font-size: 12px;
    color: var(--text-3);
    margin-bottom: 2px;
}
.company-card__label-note {
    color: var(--text-3);
    opacity: 0.75;
}
.company-card__value {
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    word-break: break-word;
}
.company-card__value a {
    color: var(--accent);
    transition: color var(--transition);
}
.company-card__value a:hover { color: var(--accent-hover); text-decoration: underline; }
.company-card__empty {
    font-size: 13px;
    color: var(--text-3);
}

/* Таблицы участников и ЕИО в разделе «Основное» */
.people-table-wrap { overflow-x: auto; }
.people-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.people-table thead th {
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-3);
    padding: 0 12px 8px 0;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}
.people-table tbody td {
    padding: 9px 12px 9px 0;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.people-table tbody tr:last-child td { border-bottom: none; }
.people-table__fio { font-weight: 500; color: var(--text); }
.people-table__meta {
    margin-top: 2px;
    font-size: 12px;
    color: var(--text-3);
}
.people-table__num { text-align: right; white-space: nowrap; padding-right: 0; }
/* Акционеры: ИНН и доля — вплотную к наименованию. Свободную ширину забирает
   пустая колонка-распорка справа, а наименование не растягивает таблицу. */
.people-table--owners { table-layout: fixed; min-width: 620px; }
.people-table--owners th, .people-table--owners td { padding-right: 28px; }
.people-table--owners th:nth-child(1) { width: 380px; }
.people-table--owners th:nth-child(2) { width: 130px; }
.people-table--owners th:nth-child(3) { width: 70px; }
.people-table--owners .people-table__spacer { width: auto; padding: 0; border-bottom: none; }
.people-table__note {
    margin-top: 10px;
    font-size: 12px;
    color: var(--text-3);
}

/* Контакты: несколько телефонов/почт в одном поле + пометка проверки почты */
.contact-line + .contact-line { margin-top: 3px; }
.contact-mark {
    display: inline-block;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 500;
    line-height: 17px;
    color: var(--text-3);
    background: var(--bg-3);
    cursor: help;
}
.contact-mark--ok  { color: #157347; background: rgba(21, 115, 71, 0.12); }
.contact-mark--bad { color: #b42318; background: rgba(180, 35, 24, 0.12); }
.contact-mark--main { color: #007a2e; background: rgba(0, 156, 59, 0.12); }

/* Карандаш правки контактов рядом с подписью поля */
.contact-edit {
    margin-left: 6px;
    padding: 0;
    border: none;
    background: none;
    color: var(--text-3);
    cursor: pointer;
    vertical-align: -2px;
}
.contact-edit:hover { color: var(--accent); }

/* Модалка правки контактов */
.contacts-modal__hint {
    margin-bottom: 14px;
    font-size: 12px;
    color: var(--text-3);
}
.contacts-modal__list { display: flex; flex-direction: column; gap: 8px; }
.contacts-row {
    display: grid;
    grid-template-columns: auto 1fr 28px;
    align-items: center;
    column-gap: 10px;
}
.contacts-row__primary {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--text-3);
    cursor: pointer;
    white-space: nowrap;
}
.contacts-row__input {
    width: 100%;
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-family: inherit;
    color: var(--text);
    background: var(--bg);
}
.contacts-row__input:focus { outline: none; border-color: var(--accent); }
.contacts-row__note {
    grid-row: 2;
    grid-column: 2;
    font-size: 11px;
    color: var(--text-3);
}
.contacts-row__note--bad { color: #b42318; }
.contacts-row__note:empty { display: none; }
.contacts-row__del {
    grid-row: 1;
    grid-column: 3;
    border: none;
    background: none;
    font-size: 20px;
    line-height: 1;
    color: var(--text-3);
    cursor: pointer;
}
.contacts-row__del:hover { color: #b42318; }
.contacts-modal__add,
.owners-modal__add { margin-top: 12px; }

/* Модалка состава участников: строка-кнопка открывает профиль физлица */
.owners-modal__list { display: flex; flex-direction: column; gap: 6px; }
.owners-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg);
    font-family: inherit;
    font-size: 14px;
    color: var(--text);
    text-align: left;
    cursor: pointer;
}
.owners-row:hover { border-color: var(--accent); }
.owners-row--static { background: var(--bg-3); cursor: default; }
.owners-row--static:hover { border-color: var(--border); }
.owners-row__name { display: flex; flex-direction: column; gap: 2px; font-weight: 500; }
.owners-row__meta { font-size: 12px; font-weight: 400; color: var(--text-3); }
.owners-row__share { white-space: nowrap; color: var(--text-3); }
.contacts-modal__invalid { margin: 6px 0 10px 18px; }

/* ─── Spinner ───────────────────────────────────────────────────── */
.spinner {
    width: 24px;
    height: 24px;
    border: 2.5px solid var(--bg-3);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ─── Диаграмма финпоказателей ──────────────────────────────────── */
.fin-chart { position: relative; }
.fin-chart__loading {
    display: flex;
    justify-content: center;
    padding: 48px 0;
}

.fin-chart__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.fin-chart__legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    flex: 1;
}

/* Переключатель представлений «Год / Кварталы». */
.fin-toggle {
    display: inline-flex;
    flex-shrink: 0;
    padding: 3px;
    gap: 2px;
    background: var(--bg-3);
    border-radius: 999px;
}
.fin-toggle__btn {
    padding: 6px 14px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--text-2);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), box-shadow var(--transition);
}
.fin-toggle__btn:hover:not(.is-active):not(:disabled) { color: var(--text); }
.fin-toggle__btn.is-active {
    background: var(--bg);
    color: var(--text);
    box-shadow: 0 1px 3px rgba(0,0,0,.1);
}
.fin-toggle__btn:disabled { opacity: .4; cursor: default; }

.fin-axis-x__year { fill: var(--text-3); font-weight: 500; }
.fin-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 6px 5px 10px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--bg);
    font-size: 13px;
    color: var(--text);
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition), opacity var(--transition);
}
.fin-legend__item:hover { border-color: var(--border-focus); }
.fin-legend__item--off { opacity: .45; }
.fin-legend__item--off .fin-legend__name { text-decoration: line-through; }
.fin-legend__dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}
.fin-legend__name { line-height: 1; }
.fin-legend__x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    color: var(--text-3);
    font-size: 14px;
    line-height: 1;
}
.fin-legend__x:hover { background: var(--bg-3); color: var(--text); }

.fin-chart__add {
    appearance: none;
    -webkit-appearance: none;
    width: 156px;
    padding: 6px 30px 6px 13px;
    text-overflow: ellipsis;
    border: 1px solid var(--accent);
    border-radius: 999px;
    background-color: var(--accent-subtle);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none' stroke='%23009C3B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
    color: var(--accent);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.fin-chart__add:hover {
    background-color: var(--accent-light);
    border-color: var(--accent-hover);
    box-shadow: 0 2px 8px rgba(0, 156, 59, .18);
}
.fin-chart__add:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--accent-light);
}
.fin-chart__add option { color: var(--text); font-weight: 400; }

.fin-chart__plot {
    position: relative;
    padding: 8px 4px 0;
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 70%);
}
.fin-svg { display: block; width: 100%; height: auto; overflow: visible; }
.fin-grid {
    stroke: var(--border);
    stroke-width: 1;
    stroke-dasharray: 3 5;
    opacity: .8;
}
.fin-zero { stroke: var(--border-focus); stroke-width: 1.25; }
.fin-axis-y {
    fill: var(--text-3);
    font-size: 11px;
    text-anchor: end;
    font-family: inherit;
}
.fin-axis-x {
    fill: var(--text-2);
    font-size: 12px;
    font-weight: 600;
    text-anchor: middle;
    font-family: inherit;
}

/* Подсветка колонки года при наведении на группу. */
.fin-group__band {
    fill: var(--accent);
    opacity: 0;
    transition: opacity .18s ease;
}
.fin-group:hover .fin-group__band { opacity: .06; }

/* Столбцы: «вырастают» от нулевой линии при загрузке. */
.fin-bar {
    cursor: pointer;
    transition: opacity .18s ease, filter .18s ease;
    transform-box: fill-box;
    transform-origin: center var(--fin-origin);
    animation: finGrow .55s cubic-bezier(.22,.61,.36,1) backwards;
    animation-delay: var(--fin-delay, 0ms);
}
@keyframes finGrow {
    from { transform: scaleY(0); }
    to   { transform: scaleY(1); }
}
.fin-chart__plot:has(.fin-bar:hover) .fin-bar { opacity: .32; }
.fin-chart__plot .fin-bar:hover {
    opacity: 1;
    filter: drop-shadow(0 3px 6px rgba(0,0,0,.18));
}
@media (prefers-reduced-motion: reduce) {
    .fin-bar { animation: none; }
}

/* Иконка «требует внимания» над столбцом. */
.fin-warn {
    pointer-events: none;
    animation: finWarnIn .35s ease-out backwards;
    animation-delay: calc(var(--fin-delay, 0ms) + .45s);
    filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.2));
}
@keyframes finWarnIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .fin-warn { animation: none; }
}

.fin-chart__empty {
    padding: 40px 0;
    text-align: center;
    color: var(--text-3);
    font-size: 14px;
}

.fin-chart__tip {
    position: absolute;
    z-index: 20;
    min-width: 168px;
    max-width: 260px;
    padding: 11px 13px;
    background: rgba(26, 26, 26, .96);
    color: #fff;
    border-radius: var(--radius-md);
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
    pointer-events: none;
    font-size: 13px;
    backdrop-filter: blur(4px);
}
.fin-tip__year { font-weight: 600; margin-bottom: 7px; font-size: 12px; opacity: .65; }
.fin-tip__row { display: flex; align-items: center; gap: 8px; }
.fin-tip__dot { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }
.fin-tip__name { opacity: .9; }
.fin-tip__foot {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
}
.fin-tip__val { font-weight: 700; font-size: 15px; white-space: nowrap; }
.fin-tip__delta {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    padding: 2px 6px;
    border-radius: 999px;
}
.fin-tip__delta--up   { color: #6EE7A8; background: rgba(0, 156, 59, .22); }
.fin-tip__delta--down { color: #FCA5A5; background: rgba(220, 38, 38, .22); }
.fin-tip__yoy { opacity: .6; font-weight: 500; }
.fin-tip__warn {
    display: flex;
    gap: 6px;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: 12px;
    line-height: 1.35;
    color: #FCD34D;
}
.fin-tip__warn-ico { flex-shrink: 0; }

/* ─── Footer ────────────────────────────────────────────────────── */
.footer {
    border-top: 1px solid var(--border);
    padding: 24px 40px;
    background: var(--bg-2);
}
.footer__inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.footer__copy {
    font-size: 13px;
    color: var(--text-3);
}
.footer__links {
    display: flex;
    gap: 24px;
}
.footer__links a {
    font-size: 13px;
    color: var(--text-3);
    transition: color var(--transition);
}
.footer__links a:hover { color: var(--accent); }

/* ─── Animations ────────────────────────────────────────────────── */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
.hero__content {
    animation: fadeInUp .6s ease-out;
}
.features__card {
    animation: fadeInUp .5s ease-out backwards;
}
.features__card:nth-child(1) { animation-delay: .1s; }
.features__card:nth-child(2) { animation-delay: .2s; }
.features__card:nth-child(3) { animation-delay: .3s; }
.features__card:nth-child(4) { animation-delay: .4s; }

/* ─── Documents storage ────────────────────────────────────────── */
    .docs-section__head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
    }
    .docs-section__head .company-card__section-title {
        margin-bottom: 0;
    }
    .docs-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .docs-empty {
        padding: 18px;
        text-align: center;
        color: var(--text-3);
        font-size: 13px;
        background: var(--bg-2);
        border-radius: var(--radius-sm);
        border: 1px dashed var(--border);
    }
    .docs-item {
        position: relative;
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 12px 14px;
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        background: var(--bg);
        transition: all var(--transition);
    }
    .docs-item:hover {
        border-color: var(--accent);
        box-shadow: var(--shadow-sm);
    }
    .docs-item__icon {
        width: 38px;
        height: 38px;
        border-radius: 8px;
        background: var(--accent-light);
        color: var(--accent);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }
    /* Значок проблемы документа — треугольник в левом верхнем углу всей записи */
    .docs-item__warn {
        position: absolute;
        top: 6px;
        left: 6px;
        width: 18px;
        height: 18px;
        padding: 0;
        border: none;
        background: transparent;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 0;
        filter: drop-shadow(0 1px 1.5px rgba(0, 0, 0, .3));
        transition: transform var(--transition);
    }
    .docs-item__warn:hover { transform: scale(1.15); }
    .docs-item__body { flex: 1; min-width: 0; }
    .docs-item__name {
        font-weight: 500;
        font-size: 14px;
        color: var(--text);
        display: flex;
        align-items: center;
        min-width: 0;
    }
    /* Текст имени обрезается троеточием, но не «съедает» карандаш справа */
    .docs-item__name-text {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        min-width: 0;
    }
    .docs-item__meta {
        font-size: 12px;
        color: var(--text-3);
        margin-top: 2px;
    }
    .docs-item__actions {
        display: flex;
        gap: 8px;
        flex-shrink: 0;
        align-items: flex-start;
    }

    /* Плашка результата распознавания в модале */
    .docs-modal__rec-result .ai-result {
        margin-top: 0;
    }

    /* Кнопка «Распознать» — отключённое состояние */
    .docs-rec-btn:disabled,
    .docs-rec-upload-btn:disabled {
        opacity: 0.55;
        cursor: default;
        background: var(--bg-2, #f5f5f5);
        color: var(--text-3);
        border-color: var(--border);
    }

    /* AI-результат распознавания */
    .ai-result {
        margin-top: 8px;
        background: var(--bg-2, #f8f9fb);
        border: 1px solid var(--border);
        border-radius: 6px;
        padding: 8px 10px;
        font-size: 12px;
    }
    .ai-result--ok {
        background: #f0fdf4;
        border-color: #86efac;
        color: #15803d;
    }
    .ai-result--error {
        background: #fff5f5;
        border-color: #fca5a5;
        color: #b91c1c;
    }
    .ai-result__label { font-weight: 600; margin-right: 4px; }
    .ai-result__grid {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 2px 10px;
    }
    .ai-result__row { display: contents; }
    .ai-result__key {
        color: var(--text-3);
        white-space: nowrap;
        padding: 1px 0;
    }
    .ai-result__val {
        color: var(--text);
        font-weight: 500;
        padding: 1px 0;
        word-break: break-word;
    }

    /* Пакетная загрузка отчётности (архив/папка) */
    .docs-batch__hint {
        font-size: 12px;
        color: var(--text-3);
        margin-bottom: 14px;
        line-height: 1.4;
    }
    .docs-batch__or {
        text-align: center;
        font-size: 12px;
        color: var(--text-3);
        margin: 8px 0;
        text-transform: uppercase;
        letter-spacing: .04em;
    }
    .docs-batch__picked {
        margin-top: 10px;
        font-size: 12px;
        font-weight: 600;
        color: var(--text-2, var(--text));
    }
    .docs-batch__result {
        margin-top: 12px;
        max-height: 320px;
        overflow-y: auto;
        border: 1px solid var(--border);
        border-radius: 8px;
        padding: 10px 12px;
        background: var(--bg-2, #f8f9fb);
    }
    .batch-summary { font-weight: 600; font-size: 13px; margin-bottom: 8px; }
    .batch-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
    .batch-chip {
        font-size: 11px;
        padding: 2px 8px;
        border-radius: 10px;
        background: var(--bg-3, #eceef2);
        color: var(--text-2, var(--text));
        white-space: nowrap;
    }
    .batch-chip--ok   { background: #f0fdf4; color: #15803d; }
    .batch-chip--warn { background: #fffbeb; color: #b45309; }
    .batch-chip--err  { background: #fff5f5; color: #b91c1c; }
    .batch-rows { display: flex; flex-direction: column; gap: 3px; }
    .batch-row {
        display: flex;
        gap: 8px;
        align-items: baseline;
        font-size: 12px;
        padding: 2px 0;
        border-top: 1px solid var(--border);
    }
    .batch-row:first-child { border-top: none; }
    .batch-row__name {
        flex: 1;
        min-width: 0;
        color: var(--text-3);
        word-break: break-all;
    }
    .batch-row__ok  { color: #15803d; font-weight: 500; white-space: nowrap; }
    .batch-row__bad { color: #b91c1c; font-weight: 500; }

    /* Modal */
    .docs-modal {
        position: fixed;
        inset: 0;
        z-index: 200;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .docs-modal__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,.4);
        backdrop-filter: blur(2px);
    }
    .docs-modal__box {
        position: relative;
        background: var(--bg);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-lg);
        width: 552px;
        max-width: calc(100vw - 32px);
        padding: 28px;
    }
    .docs-modal__title {
        font-size: 18px;
        font-weight: 600;
        margin-bottom: 20px;
        letter-spacing: -.01em;
    }
    .docs-form {
        display: flex;
        flex-direction: column;
        gap: 14px;
    }
    .docs-field {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }
    /* display:flex перекрывает браузерное [hidden]{display:none} — возвращаем скрытие */
    .docs-field[hidden] {
        display: none;
    }
    .docs-field > span {
        font-size: 12px;
        color: var(--text-2);
        font-weight: 500;
    }
    .docs-field input[type="text"],
    .docs-field input[type="number"],
    .docs-field select,
    .docs-field input[type="file"] {
        padding: 10px 12px;
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        font-size: 14px;
        font-family: inherit;
        outline: none;
        background: var(--bg);
        transition: border-color var(--transition);
    }
    .docs-field input:focus,
    .docs-field select:focus {
        border-color: var(--accent);
    }
    .docs-field-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
    .docs-modal__actions {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        margin-top: 4px;
    }
    .docs-modal__error {
        font-size: 13px;
        color: #DC2626;
        min-height: 18px;
    }

    /* ─── Сводная таблица документов (виды × периоды) ──────────────── */
    /* Кнопка-иконка сетки в шапке раздела */
    .docs-matrix-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        padding: 0;
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        background: var(--bg);
        color: var(--text-2);
        cursor: pointer;
        transition: all var(--transition);
    }
    .docs-matrix-btn[hidden] { display: none; }
    .docs-matrix-btn:hover {
        border-color: var(--accent);
        color: var(--accent);
        background: var(--accent-subtle);
    }

    .docs-modal__box--wide {
        width: 880px;
        max-height: calc(100vh - 48px);
        display: flex;
        flex-direction: column;
    }

    .docs-matrix__legend {
        display: flex;
        align-items: center;
        gap: 16px;
        flex-wrap: wrap;
        margin-bottom: 14px;
        font-size: 12px;
        color: var(--text-2);
    }
    .docs-matrix__legend-item {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    .docs-matrix__legend-hint {
        margin-left: auto;
        color: var(--text-3);
    }
    .docs-matrix__swatch {
        width: 16px;
        height: 16px;
        border-radius: 4px;
        border: 1px solid var(--border);
        background: var(--bg);
    }
    .docs-matrix__swatch--on {
        background: var(--accent-light);
        border-color: var(--accent);
    }
    .docs-matrix__swatch--gen {
        background: #E4F0FB;
        border-color: #4A9BE0;
    }

    /* Прокручиваемая обёртка: заголовок и первый столбец липкие */
    .docs-matrix__scroll {
        overflow: auto;
        max-height: 62vh;
        border: 1px solid var(--border);
        border-radius: var(--radius-md);
    }
    .docs-matrix {
        border-collapse: separate;
        border-spacing: 4px;
        padding: 4px;
    }
    .docs-matrix th,
    .docs-matrix td {
        font-size: 12px;
        font-weight: 500;
    }
    .docs-matrix__colh {
        min-width: 66px;
        vertical-align: bottom;
        padding: 6px 6px 10px;
        color: var(--text-2);
        text-align: center;
        line-height: 1.2;
        position: sticky;
        top: 0;
        background: var(--bg);
        z-index: 2;
    }
    .docs-matrix__col-p { display: block; white-space: nowrap; }
    .docs-matrix__col-y { display: block; color: var(--text-3); font-size: 11px; }
    .docs-matrix__rowh {
        position: sticky;
        left: 0;
        z-index: 1;
        background: var(--bg);
        text-align: right;
        white-space: nowrap;
        padding: 0 12px 0 8px;
        color: var(--text);
    }
    .docs-matrix__corner {
        position: sticky;
        top: 0;
        left: 0;
        z-index: 3;
        background: var(--bg);
    }
    .docs-matrix__cell {
        width: 66px;
        height: 34px;
        border: 1px solid var(--border);
        border-radius: 6px;
        background: var(--bg);
        text-align: center;
        color: var(--accent-hover);
    }
    .docs-matrix__cell--on {
        background: var(--accent-light);
        border-color: var(--accent);
    }
    .docs-matrix__cell--gen {
        background: #E4F0FB;
        border-color: #4A9BE0;
    }
    .docs-matrix__n {
        font-weight: 600;
        font-size: 12px;
    }
    /* Кликабельные ячейки (есть документ / можно сгенерировать) */
    .docs-matrix__cell[data-ti] {
        cursor: pointer;
        transition: filter var(--transition), box-shadow var(--transition);
    }
    .docs-matrix__cell[data-ti]:hover {
        filter: brightness(.96);
        box-shadow: var(--shadow-sm);
    }
    .docs-matrix__cell--on[data-ti]:hover { color: var(--accent); }

    /* Выбор документа, когда в ячейке их несколько */
    .docs-cell-picker {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-bottom: 16px;
        max-height: 50vh;
        overflow: auto;
    }
    .docs-cell-picker__row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 10px 12px;
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
    }
    .docs-cell-picker__name {
        font-size: 13px;
        color: var(--text);
    }

    /* Карандаш правки рядом с именем документа */
    .docs-edit-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        vertical-align: middle;
        flex-shrink: 0;
        margin-left: 8px;
        padding: 2px;
        width: 22px;
        height: 22px;
        border: none;
        border-radius: 5px;
        background: transparent;
        color: var(--text-3);
        cursor: pointer;
        transition: all var(--transition);
    }
    .docs-edit-btn:hover {
        background: var(--accent-light);
        color: var(--accent);
    }

    /* Свёрнутый блок детализации адреса в модалке pers_data */
    .pers-addr {
        border-top: 1px solid var(--border);
        padding-top: 12px;
    }
    .pers-addr__toggle {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        background: none;
        border: none;
        padding: 0;
        font-family: inherit;
        font-size: 13px;
        font-weight: 500;
        color: var(--text-2);
        cursor: pointer;
    }
    .pers-addr__toggle:hover { color: var(--accent); }
    .pers-addr__chevron {
        transition: transform var(--transition);
    }
    .pers-addr__toggle--open .pers-addr__chevron {
        transform: rotate(180deg);
    }
    .pers-addr__fields {
        display: flex;
        flex-direction: column;
        gap: 14px;
        margin-top: 14px;
    }
    /* hidden-атрибут даёт display:none, но его перебивает правило выше —
       возвращаем скрытие явным правилом с большей специфичностью */
    .pers-addr__fields[hidden] {
        display: none;
    }

    /* Выпадающие подсказки адреса (DaData) */
    .addr-suggest-wrap {
        position: relative;
        display: flex;
        flex-direction: column;
    }
    .addr-suggest {
        position: absolute;
        top: calc(100% + 4px);
        left: 0;
        right: 0;
        z-index: 30;
        background: var(--bg);
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        box-shadow: var(--shadow-lg);
        max-height: 240px;
        overflow-y: auto;
        padding: 4px;
    }
    .addr-suggest__item {
        padding: 8px 10px;
        font-size: 13px;
        color: var(--text);
        border-radius: 6px;
        cursor: pointer;
        line-height: 1.35;
    }
    .addr-suggest__item:hover,
    .addr-suggest__item--active {
        background: var(--accent-light);
        color: var(--accent);
    }

    /* Блок адреса проживания с галочкой «совпадает с регистрацией» */
    .pers-addr-section {
        display: flex;
        flex-direction: column;
        gap: 14px;
        border-top: 1px solid var(--border);
        padding-top: 12px;
    }
    /* Роли физлица в компании — набор галочек в модалке персданных */
    .pers-roles {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 18px;
        padding: 4px 0;
    }
    .pers-role {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 14px;
        color: var(--text);
        cursor: pointer;
        user-select: none;
    }
    .pers-role input[type="checkbox"] {
        width: 16px;
        height: 16px;
        accent-color: var(--accent);
        cursor: pointer;
    }
    .pers-addr__same {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 13px;
        color: var(--text-2);
        cursor: pointer;
        user-select: none;
    }
    .pers-addr__same input[type="checkbox"] {
        width: 16px;
        height: 16px;
        accent-color: var(--accent);
        cursor: pointer;
    }
    /* Когда адрес дублируется — приглушаем заблокированные поля */
    .pers-addr-section--locked .docs-field input:disabled,
    .pers-addr-section--locked .pers-addr__fields input:disabled {
        background: var(--bg-2, #f5f5f5);
        color: var(--text-3);
        cursor: not-allowed;
    }

    /* Подтверждение перед записью в базу */
    .pers-confirm {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-left: auto;
    }
    .pers-confirm__text {
        font-size: 13px;
        color: var(--text-2);
        margin-right: auto;
    }

    /* Длинная форма pers_data может прокручиваться */
    .pers-modal-body {
        max-height: calc(100vh - 160px);
        overflow-y: auto;
        margin: -4px -4px 0;
        padding: 4px;
    }

    /* Заголовок-кликабельная зона */
    .docs-section__title-wrap {
        display: flex;
        align-items: center;
        gap: 8px;
        user-select: none;
    }
    .docs-section__title-wrap .company-card__section-title {
        margin-bottom: 0;
    }
    .docs-section__count {
        font-size: 12px;
        color: var(--text-3);
        font-weight: 500;
    }
    .docs-section__chevron {
        color: var(--text-3);
        transition: transform var(--transition);
        flex-shrink: 0;
        visibility: hidden;       /* по умолчанию скрыта */
    }

    /* Если категория сворачиваемая — стрелка видна и заголовок кликабелен */
    .docs-section--collapsible .docs-section__chevron { visibility: visible; }
    .docs-section--collapsible .docs-section__title-wrap { cursor: pointer; }
    .docs-section--collapsible .docs-section__title-wrap:hover .company-card__section-title {
        color: var(--text);
    }

    /* Свёрнутое состояние */
    .docs-section--collapsed .docs-list { display: none; }
    .docs-section--collapsed .docs-section__chevron { transform: rotate(-90deg); }

    /* ─── Bank picker ───────────────────────────────────────────────── */
    .bank-picker {
        position: relative;
    }
    .bank-picker__input-wrap {
        position: relative;
        display: flex;
    }
    .bank-picker__input {
        flex: 1;
        padding-right: 32px !important;
    }
    .bank-picker__clear {
        position: absolute;
        right: 8px;
        top: 50%;
        transform: translateY(-50%);
        width: 22px;
        height: 22px;
        border: none;
        border-radius: 50%;
        background: var(--bg-3);
        color: var(--text-2);
        font-size: 16px;
        line-height: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all var(--transition);
    }
    .bank-picker__clear:hover {
        background: var(--text-3);
        color: #fff;
    }

    .bank-picker__dropdown {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        margin-top: 4px;
        background: var(--bg);
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        box-shadow: var(--shadow-dropdown);
        max-height: 280px;
        overflow-y: auto;
        z-index: 250;
    }
    .bank-picker__item {
        padding: 10px 14px;
        cursor: pointer;
        border-bottom: 1px solid var(--bg-3);
        transition: background var(--transition);
    }
    .bank-picker__item:last-child { border-bottom: none; }
    .bank-picker__item:hover,
    .bank-picker__item--active {
        background: var(--accent-subtle);
    }
    .bank-picker__item-name {
        font-size: 13px;
        font-weight: 500;
        color: var(--text);
        line-height: 1.3;
    }
    .bank-picker__item-meta {
        font-size: 12px;
        color: var(--text-3);
        margin-top: 2px;
    }
    .bank-picker__empty {
        padding: 14px;
        text-align: center;
        color: var(--text-3);
        font-size: 13px;
    }

    /* Недавние (чипы) */
    .bank-picker__recent {
        margin-top: 6px;
    }
    .bank-picker__recent-title {
        font-size: 11px;
        color: var(--text-3);
        margin-bottom: 6px;
        text-transform: uppercase;
        letter-spacing: .04em;
    }
    .bank-picker__recent-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }
    .bank-picker__chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 5px 10px;
        border: 1px solid var(--border);
        border-radius: 100px;
        background: var(--bg-2);
        color: var(--text);
        font-size: 12px;
        font-family: inherit;
        cursor: pointer;
        transition: all var(--transition);
    }
    .bank-picker__chip:hover {
        border-color: var(--accent);
        background: var(--accent-subtle);
        color: var(--accent);
    }
    .bank-picker__chip-bik {
        color: var(--text-3);
        font-weight: 500;
    }
    .bank-picker__chip:hover .bank-picker__chip-bik {
        color: var(--accent);
    }

    /* Модальное окно для капчи с p */
    .pb-modal {
    position: fixed; inset: 0;
    z-index: 1000;
    display: flex; align-items: center; justify-content: center;
    }

    .pb-modal__backdrop {
        position: absolute; inset: 0;
        background: rgba(0, 0, 0, 0.45);
    }
    .pb-modal__dialog {
        position: relative;
        background: #fff;
        border-radius: var(--radius-lg);
        padding: 32px;
        /* Размер модалки фиксирован и одинаков для всех порталов (ПБ, ФНС,
           ФССП, КАД) — под картинку подгоняется только сама картинка
           (company.js: fitCaptcha), не диалог. */
        width: 360px;
        max-width: 92vw;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    }
    .pb-modal__title {
        margin: 0 0 8px; font-size: 18px;
    }
    .pb-modal__hint {
        margin: 0 0 16px;
        color: var(--text-3); font-size: 13px;
    }
    .pb-modal__captcha {
        display: block; margin: 0 auto 16px;
        border: 1px solid var(--border);
        border-radius: var(--radius-md);
        max-width: 100%;
        height: auto;            /* ширину задаёт скрипт, высота — по пропорции */
        background: #fff;
    }
    .pb-modal__input {
        width: 100%; padding: 10px 12px;
        border: 1px solid var(--border);
        border-radius: var(--radius-md);
        font-size: 14px; font-family: inherit;
        box-sizing: border-box;
    }
    .pb-modal__input:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
    .pb-modal__error {
        color: #DC2626; font-size: 12px;
        min-height: 18px; margin: 8px 0;
    }
    .pb-modal__buttons {
        display: flex; gap: 8px; justify-content: flex-end;
    }
    .pb-refresh-status {
        font-size: 12px; color: var(--text-3); margin-top: 6px;
    }
    .pb-refresh-status--ok {
        color: #16a34a; font-weight: 600;
    }

/* ─── Responsive ────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .header { padding: 0 20px; gap: 16px; }
    .header__nav { display: none; }
    .hero { padding: 40px 20px 30px; }
    .hero__title { font-size: 28px; }
    .hero__subtitle { font-size: 14px; }
    .features { padding: 40px 20px 60px; }
    .features__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .company-page { padding: 20px 20px 60px; }
    .company-card__grid { grid-template-columns: 1fr; }
    .company-card__header { padding: 24px; }
    .company-card__section { padding: 20px 24px; }
    .footer { padding: 20px; }
    .footer__inner { flex-direction: column; gap: 8px; }

    /* Телефон: девять вкладок в один ряд дали бы по ~79px с обрезкой подписей,
       поэтому здесь (и только здесь) возвращаем перенос — по три в ряд. */
    .tabs { flex-wrap: wrap; }
    .tabs__item {
        flex-basis: calc(33.333% - 2px);
        max-width: calc(50% - 2px);
        padding: 10px 8px;
        font-size: 13px;
    }

    .docs-item { flex-wrap: wrap; }
    .docs-item__actions { width: 100%; justify-content: flex-end; }
    .docs-field-row { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .features__grid { grid-template-columns: 1fr; }
    .company-card__name { font-size: 20px; }
}

/* ─── Document Generator (wizard) ─────────────────────────── */
.docs-section__actions {
    display: flex;
    gap: 8px;
    align-items: center;
}
.docs-modal__box--lg {
    width: 667px;
}
.docs-gen__loader {
    padding: 32px 0;
    text-align: center;
    color: var(--text-3);
    font-size: 14px;
}
.docs-gen-step {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.docs-gen-radios {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.docs-gen-radio {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition);
    font-size: 14px;
}
.docs-gen-radio:hover {
    border-color: var(--border-focus);
}
.docs-gen-radio input[type="radio"] {
    accent-color: var(--accent);
    margin: 0;
}
.docs-gen-radio small {
    color: var(--text-3);
}
.docs-gen-radio:has(input:checked) {
    border-color: var(--accent);
    background: var(--accent-subtle);
}
.docs-gen-coverage {
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.docs-gen-coverage__big {
    font-size: 14px;
    color: var(--text-2);
}
.docs-gen-coverage__big b {
    font-size: 16px;
    color: var(--text);
}
.docs-gen-coverage__big small {
    color: var(--text-3);
    margin-left: 4px;
}
.docs-gen-forms {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.docs-gen-form-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    padding: 4px 0;
}
.docs-gen-form-row__title {
    color: var(--text-2);
}
.docs-gen-pct {
    font-weight: 600;
    font-size: 13px;
    padding: 2px 10px;
    border-radius: 999px;
}
.docs-gen-pct--good { color: var(--accent);  background: var(--accent-light); }
.docs-gen-pct--mid  { color: #B45309;        background: #FEF3C7; }
.docs-gen-pct--low  { color: #B91C1C;        background: #FEE2E2; }

.docs-gen-overrides {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 280px;
    overflow-y: auto;
    padding-right: 4px;
}
.docs-gen-override {
    display: grid;
    grid-template-columns: 200px 1fr;
    align-items: center;
    gap: 12px;
    font-size: 13px;
}
.docs-gen-override > span {
    color: var(--text-2);
}
.docs-gen-override input[type="text"] {
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-family: inherit;
    outline: none;
    transition: border-color var(--transition);
}
.docs-gen-override input[type="text"]:focus {
    border-color: var(--accent);
}
.docs-gen-allgood {
    background: var(--accent-subtle);
    border: 1px solid var(--accent-light);
    color: var(--accent-hover);
    font-size: 13px;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
}
.docs-gen-missing-sources {
    background: var(--warn-subtle, #fff7ed);
    border: 1px solid var(--warn-light, #fed7aa);
    color: var(--warn-hover, #9a3412);
    font-size: 13px;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
}
.docs-gen-missing-sources > span {
    font-weight: 600;
}
.docs-gen-missing-sources ul {
    margin: 8px 0 0;
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.docs-gen-result {
    align-items: center;
    text-align: center;
    padding: 8px 0;
}
.docs-gen-result__icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-light);
    color: var(--accent);
    border-radius: 50%;
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 4px;
}
.docs-gen-result__title {
    font-size: 18px;
    font-weight: 600;
}
.docs-gen-result__text {
    color: var(--text-2);
    font-size: 14px;
}
.docs-gen-result__list {
    margin: 8px 0;
    padding-left: 24px;
    align-self: stretch;
    color: var(--text-2);
    font-size: 13px;
}
.docs-gen-result__list li {
    margin: 2px 0;
}

@media (max-width: 600px) {
    .docs-modal__box--lg { width: calc(100vw - 32px); }
    .docs-gen-override { grid-template-columns: 1fr; gap: 4px; }
}
/* ─── Раздел «Контрагенты» ─────────────────────────────────────── */
.cp-section { padding: 24px 32px 32px; }

.cp-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.cp-toolbar__left { display: flex; flex-direction: column; gap: 4px; }
.cp-toolbar .company-card__section-title { margin-bottom: 0; }
.cp-period { font-size: 13px; color: var(--text-3); }

/* Переключатель окна (3/6/9/12 мес.) */
.cp-switch {
    display: inline-flex;
    background: var(--bg-3);
    border-radius: var(--radius-sm);
    padding: 3px;
    gap: 2px;
}
.cp-switch__btn {
    border: none;
    background: transparent;
    color: var(--text-2);
    font-size: 13px;
    font-weight: 500;
    padding: 6px 14px;
    border-radius: 6px;
    cursor: pointer;
    transition: background .15s, color .15s, box-shadow .15s;
    white-space: nowrap;
}
.cp-switch__btn:hover { color: var(--text); }
.cp-switch__btn--active {
    background: var(--bg);
    color: var(--accent);
    box-shadow: var(--shadow-sm);
}

/* Сетка из 4 блоков */
.cp-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
.cp-block {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.cp-block__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px 12px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}
.cp-block__title-wrap .company-card__section-title { margin-bottom: 2px; }
.cp-block__hint { font-size: 11px; color: var(--text-3); }
.cp-block__hint--warn { color: #B45309; }
.cp-block__total {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
}
.cp-block__body { flex: 1; }
.cp-block__loader {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 140px;
}
.cp-block__empty {
    padding: 32px 18px;
    text-align: center;
    color: var(--text-3);
    font-size: 13px;
}

/* Таблица контрагентов */
.cp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.cp-table thead th {
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-3);
    padding: 9px 12px;
    border-bottom: 1px solid var(--border);
    background: var(--bg);
    position: sticky;
    top: 0;
}
.cp-table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.cp-table tbody tr:last-child td { border-bottom: none; }
.cp-table tbody tr:hover { background: var(--accent-subtle); }
.cp-row-others td { background: var(--bg-2); }
.cp-row-others:hover td { background: var(--bg-2); }

.cp-td-num { width: 36px; color: var(--text-3); text-align: right; }
.cp-td-vol { width: 180px; }
.cp-td-act { width: 22%; }
.cp-td-risk { width: 22%; }

.cp-td-name { min-width: 200px; }
.cp-name {
    display: block;
    font-weight: 500;
    color: var(--text);
    line-height: 1.3;
}
.cp-inn {
    display: block;
    font-size: 11px;
    color: var(--text-3);
    margin-top: 1px;
}
.cp-vol {
    display: block;
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
}
.cp-vol-meta {
    display: block;
    font-size: 11px;
    color: var(--text-3);
    margin-top: 1px;
}
.cp-td-act { color: var(--text-2); }
.cp-muted { color: var(--text-3); }

/* Чипы сложностей */
.cp-risk {
    display: inline-block;
    font-size: 11px;
    font-weight: 500;
    padding: 2px 8px;
    border-radius: 20px;
    line-height: 1.5;
}
.cp-risk--none { color: var(--text-3); background: var(--bg-3); }
.cp-risk--info { color: #1D4ED8; background: #EAF1FE; }
.cp-risk--warning { color: #B45309; background: #FEF3E2; }
.cp-risk--danger { color: #B91C1C; background: #FDECEC; }

/* ─── Отношения с банками ────────────────────────────────────────── */
.br-bar {
    display: flex;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    overflow: hidden;
    margin: 10px 0 16px;
    background: var(--bg-3);
}
.br-bar__seg { height: 100%; min-width: 2px; }
.br-bar__seg:not(:last-child) { border-right: 1px solid var(--bg); }

.br-legend {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}
.br-legend__row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.br-legend__dot {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}
.br-legend__name { flex: 1 1 auto; color: var(--text); line-height: 1.3; }
.br-legend__name .cp-inn { display: inline; margin-left: 4px; }
.br-legend__val { flex: 0 0 auto; text-align: right; }

.br-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}
.br-stat {
    padding: 14px 16px;
    border-radius: 10px;
    background: var(--bg-3);
}
.br-stat__label { font-size: 12px; color: var(--text-3); margin-bottom: 6px; }
.br-stat__value {
    font-size: 18px;
    font-weight: 600;
    color: var(--text);
}
.br-stat__meta {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-3);
    margin-left: 8px;
}

/* Раздел «СБ»: исполнительные производства ФССП */
.fssp-subject { margin-bottom: 26px; }
.fssp-subject:last-child { margin-bottom: 0; }
.fssp-subject__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.fssp-subject__name { font-weight: 600; font-size: 14px; }
.fssp-subject__sum { margin-left: auto; font-weight: 600; color: #B91C1C; }
.fssp-note {
    font-size: 12px;
    color: #B45309;
    background: #FEF3E2;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 10px;
}
/* Строка, где однофамильца отсечь не удалось (поиск по ФИО без даты рождения),
   а в блоке Федресурса — аннулированное сообщение */
.fssp-row--unconfirmed td { opacity: 0.72; }
/* Номер ИП (440433/26/50021-ИП) должен влезать в строку без переноса */
.fssp-td-ip { width: 190px; }
.fssp-td-ip .cp-name { white-space: nowrap; }

/* Раздел «СБ»: Федресурс */
.fr-block { margin: 10px 0 16px; }
.fr-block:last-child { margin-bottom: 0; }
.fr-block__title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-2);
    margin-bottom: 8px;
}
.fr-pubs > summary { cursor: pointer; list-style: revert; }
.fr-candidates {
    margin: 0 0 6px 18px;
    padding: 0;
    font-size: 13px;
    color: var(--text-2);
}
.fr-candidates li { margin: 2px 0; }

/* Проверка блокировок ФНС */
.br-blocks-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 4px 0 14px;
}
.br-blocks-status { font-size: 12px; color: var(--text-3); }

.br-banner {
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 13px;
}
.br-banner--ok { color: #15803D; background: #ECFDF3; }
.br-banner--danger { color: #B91C1C; background: #FDECEC; }
.br-banner__title { font-weight: 600; margin-bottom: 8px; }
.br-banner__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.br-banner__list li { display: flex; flex-wrap: wrap; gap: 10px; align-items: baseline; }
.br-banner__bank { font-weight: 600; }
.br-banner__acc, .br-banner__doc { color: #9B1C1C; opacity: 0.85; }
.br-banner__sum { font-weight: 600; }

.br-blocked-chip {
    display: inline-block;
    margin-left: 6px;
    font-size: 11px;
    font-weight: 500;
    color: #B91C1C;
    background: #FDECEC;
    padding: 1px 8px;
    border-radius: 20px;
    vertical-align: middle;
}

@media (prefers-color-scheme: dark) {
    .br-banner--ok { color: #86EFAC; background: rgba(34,197,94,0.12); }
    .br-banner--danger { color: #FCA5A5; background: rgba(220,38,38,0.14); }
    .br-banner__acc, .br-banner__doc { color: #FCA5A5; }
    .br-blocked-chip { color: #FCA5A5; background: rgba(220,38,38,0.16); }
}

@media (max-width: 700px) {
    .cp-section { padding: 20px 16px 24px; }
    .cp-block__body { overflow-x: auto; }
    .cp-table { min-width: 600px; }
}

/* ─── Страница входа ─────────────────────────────────────────────── */
.auth {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background:
        radial-gradient(1200px 500px at 50% -10%, var(--accent-subtle), transparent 60%),
        var(--bg);
}
.auth__card {
    width: 100%;
    max-width: 380px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 36px 32px 32px;
}
.auth__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: -.02em;
    margin-bottom: 6px;
}
.auth__title {
    text-align: center;
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 4px;
}
.auth__subtitle {
    text-align: center;
    color: var(--text-3);
    font-size: 13px;
    margin-bottom: 24px;
}
.auth__field { margin-bottom: 14px; }
.auth__label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-2);
    margin-bottom: 6px;
}
.auth__input {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    font-size: 15px;
    color: var(--text);
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    transition: border-color var(--transition), background var(--transition);
}
.auth__input:focus {
    outline: none;
    border-color: var(--accent);
    background: var(--bg);
}
.auth__submit {
    width: 100%;
    height: 44px;
    font-size: 15px;
    margin-top: 8px;
}
.auth__submit:disabled { opacity: .6; cursor: default; }
.auth__error {
    min-height: 18px;
    margin: 4px 0 10px;
    color: #DC2626;
    font-size: 13px;
    text-align: center;
}

@media (prefers-color-scheme: dark) {
    .auth__error { color: #FCA5A5; }
}

/* ─── Экран администрирования пользователей ──────────────────────── */
.admin-page {
    flex: 1;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 32px 40px 64px;
}
.admin-page__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}
.admin-page__title { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.admin-page__subtitle { color: var(--text-3); font-size: 14px; margin-top: 2px; }

.admin-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}
.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table th {
    text-align: left;
    font-weight: 500;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-3);
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}
.admin-table td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
.admin-table tbody tr:last-child td { border-bottom: none; }
.admin-table tbody tr:hover { background: var(--bg-2); }
.admin-table__empty { text-align: center; color: var(--text-3); padding: 32px 16px; }
.admin-table__username { font-weight: 600; }
.admin-table__actions-col { text-align: right; }
.admin-table__actions { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }

.admin-role {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    background: var(--accent-light);
    color: var(--accent-hover);
}
.admin-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}
.admin-status::before {
    content: '';
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--text-3);
}
.admin-status--active { color: var(--accent-hover); }
.admin-status--active::before { background: var(--accent); }
.admin-status--off { color: var(--text-3); }

.admin-btn {
    font-size: 12px;
    padding: 5px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--text-2);
    transition: all var(--transition);
}
.admin-btn:hover { border-color: var(--text-3); color: var(--text); }
.admin-btn--danger:hover { border-color: #DC2626; color: #DC2626; }
.admin-btn:disabled { opacity: .4; cursor: default; }

/* Модалка администрирования */
.admin-modal { position: fixed; inset: 0; z-index: 200; display: flex;
    align-items: center; justify-content: center; }
.admin-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.admin-modal__dialog {
    position: relative;
    width: 100%;
    max-width: 420px;
    background: var(--bg);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 28px 26px 22px;
}
.admin-modal__title { font-size: 18px; font-weight: 600; margin-bottom: 18px; }
.admin-field { margin-bottom: 14px; }
.admin-field__label { display: block; font-size: 13px; font-weight: 500;
    color: var(--text-2); margin-bottom: 6px; }
.admin-field__input {
    width: 100%;
    height: 42px;
    padding: 0 12px;
    font-size: 14px;
    color: var(--text);
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}
select.admin-field__input { cursor: pointer; }
.admin-field__input:focus { outline: none; border-color: var(--accent); background: var(--bg); }
.admin-field__hint { font-size: 12px; color: var(--text-3); margin-top: 5px; }
.admin-modal__error { min-height: 18px; color: #DC2626; font-size: 13px; margin: 4px 0 8px; }
.admin-modal__buttons { display: flex; justify-content: flex-end; gap: 10px; margin-top: 8px; }

@media (prefers-color-scheme: dark) {
    .admin-modal__error { color: #FCA5A5; }
    .admin-btn--danger:hover { border-color: #FCA5A5; color: #FCA5A5; }
}
@media (max-width: 700px) {
    .admin-page { padding: 24px 16px 48px; }
    .admin-card { overflow-x: auto; }
    .admin-table { min-width: 640px; }
}

/* ─── Блок пользователя в шапке ──────────────────────────────────── */
.header__user {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.2;
    margin-right: 4px;
}
.header__user-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}
.header__user-role {
    font-size: 11px;
    color: var(--text-3);
}

/* ─── Выпадающий список администратора в шапке ────────────────────── */
.header__menu { position: relative; }
.header__menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border: 1px solid transparent;
    border-radius: var(--radius-sm, 8px);
    background: none;
    cursor: pointer;
    font: inherit;
    color: var(--text);
    transition: all var(--transition);
}
.header__menu-toggle:hover { background: var(--bg-3); }
.header__menu--open .header__menu-toggle {
    background: var(--bg-3);
    border-color: var(--border);
}
.header__menu-caret {
    width: 12px;
    height: 12px;
    color: var(--text-3);
    transition: transform var(--transition);
}
.header__menu--open .header__menu-caret { transform: rotate(180deg); }

.header__menu-list {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 60;
    min-width: 250px;
    padding: 6px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius, 10px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
}
.header__menu--open .header__menu-list { display: block; }
.header__menu-item {
    display: block;
    padding: 8px 10px;
    border-radius: var(--radius-sm, 8px);
    text-decoration: none;
    color: var(--text);
    transition: background var(--transition);
}
.header__menu-item:hover { background: var(--bg-3); }
.header__menu-item--active { background: var(--bg-3); }
.header__menu-item-title { display: block; font-size: 14px; font-weight: 500; }
.header__menu-item-hint {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: var(--text-3);
}

/* ─── Экран «Настройки портала» ───────────────────────────────────── */
/* .admin-card рассчитан на таблицу и паддинга не имеет — форме он нужен. */
.admin-card--form { padding: 4px 0 0; }

.admin-section { padding: 24px 28px; }
.admin-section + .admin-section { border-top: 1px solid var(--border); }
.admin-section__head { margin-bottom: 20px; }
.admin-section__title {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.01em;
    margin: 0 0 6px;
}
.admin-section__subtitle {
    font-size: 13.5px;
    color: var(--text-2);
    margin: 0;
    max-width: 68ch;
    line-height: 1.6;
}

/* Поля в две колонки на широком экране: значения длинные, но однострочные. */
.admin-section__fields {
    display: grid;
    /* min(...) — чтобы на узком экране колонка сжималась, а не вылезала за край */
    grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
    gap: 20px 28px;
}
.admin-section .admin-field { margin-bottom: 0; }
.admin-field__label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}
.admin-section .admin-field__label { margin: 0; }
.admin-field__input--mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px;
    letter-spacing: .01em;
}
.admin-section .admin-field__hint {
    margin-top: 7px;
    line-height: 1.55;
    max-width: 60ch;
}

/* Откуда взято действующее значение — компактной плашкой у подписи поля. */
.admin-badge {
    flex: none;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.4;
    padding: 2px 8px;
    border-radius: 100px;
    white-space: nowrap;
    color: var(--text-3);
    background: var(--bg-3);
}
.admin-badge--db { color: var(--accent-hover); background: var(--accent-light); }

/* Справка «откуда взять значения» — выноска, а не абзац в тексте. */
.admin-help {
    margin-top: 24px;
    padding: 18px 20px 20px;
    background: var(--accent-subtle);
    border: 1px solid var(--accent-light);
    border-radius: var(--radius-md);
}
.admin-help__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 12px;
}
.admin-help__icon {
    flex: none;
    width: 18px;
    height: 18px;
    color: var(--accent);
}
.admin-help__steps {
    margin: 0;
    padding-left: 22px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--text-2);
    max-width: 78ch;
}
.admin-help__steps li { margin-bottom: 8px; }
.admin-help__steps li:last-child { margin-bottom: 0; }
.admin-help__steps b { color: var(--text); font-weight: 600; }
.admin-help__note {
    margin: 14px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--accent-light);
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--text-3);
    max-width: 78ch;
}
.admin-help__note b { color: var(--text-2); font-weight: 600; }

/* Блок закладки-помощника: сама «кнопка» — ссылка javascript:, её перетаскивают
   на панель закладок (кликнуть по ней со страницы браузеры не дают). */
.admin-help--bm { background: var(--bg-2, #f7f8fa); border-color: var(--border, #e3e6ea); }
.admin-bm__row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0 0 14px;
}
.admin-bm__link {
    display: inline-block;
    padding: 8px 16px;
    background: var(--accent);
    color: #fff;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius-sm, 6px);
    cursor: grab;
    user-select: none;
}
.admin-bm__link:active { cursor: grabbing; }
.admin-bm__hint { font-size: 12.5px; color: var(--text-3); }

.admin-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 28px;
    border-top: 1px solid var(--border);
    background: var(--bg-2);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}
.admin-actions__status { font-size: 13px; color: var(--text-3); }
.admin-actions__status--ok { color: var(--accent-hover); }
.admin-actions__status--error { color: #DC2626; }

@media (prefers-color-scheme: dark) {
    .admin-actions__status--error { color: #FCA5A5; }
}
@media (max-width: 700px) {
    .admin-section { padding: 20px 16px; }
    .admin-actions { padding: 16px; flex-wrap: wrap; }
}

/* ─── Арбитражи: точечная диаграмма исков ───────────────────────── */
.kad-chart { margin-bottom: 16px; }
.kad-chart__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 13px;
}
.kad-chart__title { font-weight: 600; }
.kad-chart__note { margin-top: 8px; font-size: 12.5px; color: var(--text-3); }

/* Подписи осей мельче, чем у финансовой диаграммы (11px → 8.8px), и обе оси
   набраны одинаково: поле здесь ниже, крупные подписи забирали бы его заметную
   часть. Классы общие с финансовой диаграммой, поэтому правим только внутри
   .kad-chart. */
.kad-chart .fin-axis-y,
.kad-chart .fin-axis-x {
    font-size: 8.8px;
    font-weight: 400;
    fill: var(--text-3);
}

/* Точки «проявляются» при отрисовке, как столбцы финансовой диаграммы. */
.kad-dot {
    cursor: pointer;
    fill-opacity: .75;
    stroke: var(--bg);
    stroke-width: 1.25;
    transition: fill-opacity .18s ease, filter .18s ease;
    animation: kadDotIn .4s ease-out backwards;
    animation-delay: var(--fin-delay, 0ms);
}
.kad-chart__plot:has(.kad-dot:hover) .kad-dot { fill-opacity: .28; }
.kad-chart__plot .kad-dot:hover {
    fill-opacity: 1;
    filter: drop-shadow(0 3px 6px rgba(0,0,0,.22));
}
@keyframes kadDotIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .kad-dot { animation: none; }
}

/* Стороны дела в подсказке — отбиты чертой, как блок предупреждения у
   финансовой диаграммы. */
.kad-chart__plot .fin-chart__tip { max-width: 320px; }
.kad-tip__sides {
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: 12px;
    line-height: 1.4;
}
.kad-tip__side { display: flex; gap: 6px; }
.kad-tip__side + .kad-tip__side { margin-top: 4px; }
.kad-tip__label { flex-shrink: 0; opacity: .6; }

.kad-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-top: 10px;
    font-size: 12.5px;
    color: var(--text-2);
}
.kad-legend__item { display: inline-flex; align-items: center; gap: 6px; }
.kad-legend__dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
}
.kad-outcome {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 12.5px;
}

/* ─── Арбитражи: плашки-фильтры и таблица дел с раскрытием ──────── */
/* Плашек в шапке раздела больше, чем в «СБ» (четыре фильтра и галочка), —
   переносим их на вторую строку вместо сжатия в столбик. */
.fssp-subject__head.kad-head { flex-wrap: wrap; }
.fssp-subject__head.kad-head .fssp-subject__sum { white-space: nowrap; }
.kad-chip {
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    border: 1px solid transparent;
    transition: box-shadow var(--transition), border-color var(--transition), opacity var(--transition);
}
.kad-chip:hover { opacity: .85; }
.kad-chip--on {
    border-color: currentColor;
    box-shadow: 0 0 0 2px var(--accent-light);
}
.kad-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--text-2);
    cursor: pointer;
    user-select: none;
}
.kad-check input { cursor: pointer; }

.cp-table--kad tbody tr.kad-row { cursor: pointer; }
.cp-table--kad tbody tr.kad-row--open { background: var(--accent-subtle); }
/* Колонка «Сумма иска»: миллиардные иски в картотеке редки, но сотни миллионов
   («999 999 999 ₽», а под ними «Взыскано: …») должны влезать одной строкой. */
.cp-table--kad th:nth-child(2),
.cp-table--kad tbody td:nth-child(2) {
    min-width: 170px;
    white-space: nowrap;
    text-align: left;
}
/* Статус и роль — по центру колонки: там плашки, а не текст, и в ряд из
   разноширинных плашек по левому краю читается хуже. */
.cp-table--kad th:nth-child(3),
.cp-table--kad tbody td:nth-child(3),
.cp-table--kad th:nth-child(4),
.cp-table--kad tbody td:nth-child(4) { text-align: center; }
.cp-table--kad tbody td:nth-child(3) .kad-outcome { justify-content: center; }
.kad-sum { font-weight: 600; }
.kad-hearing { font-size: 12px; color: #B45309; margin-top: 2px; }

.kad-detail > td { background: var(--bg-2); padding: 0 !important; }
.kad-detail__body { padding: 16px 18px; }
.kad-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 24px;
    font-size: 13px;
    margin-bottom: 12px;
}
.kad-detail__title {
    font-weight: 600;
    font-size: 13px;
    margin: 14px 0 8px;
}
.kad-detail__title:first-child { margin-top: 0; }

.kad-inst {
    padding: 8px 10px;
    margin-bottom: 8px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}
.kad-inst__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
}
.kad-inst__court { font-weight: 600; }
.kad-inst__final { font-size: 13px; margin-top: 4px; }

.kad-doc {
    padding: 8px 10px;
    margin-bottom: 6px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}
.kad-doc__head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
}
.kad-doc__date { color: var(--text-3); white-space: nowrap; }
.kad-doc__title { font-weight: 600; }
.kad-doc__links { margin-left: auto; white-space: nowrap; }
.kad-annot { margin-top: 8px; }
.kad-annot__text {
    font-size: 13px;
    line-height: 1.5;
    padding: 8px 10px;
    background: var(--accent-subtle);
    border-radius: var(--radius-sm);
}
