/* findata: своё поверх Bootstrap 5.3 — только каркас, таблицы чисел, отступы строк, фокус. */
:root,
[data-bs-theme] {
  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans",
    "Liberation Sans", Arial, sans-serif;
  --fd-topbar-height: 3.5rem;
  --fd-sidebar-width: 17rem;
  --fd-gap: 1.25rem;
}

body { background: var(--bs-tertiary-bg); }

/* Каркас: шапка, левое меню, содержимое */
.fd-topbar { min-height: var(--fd-topbar-height); }
.fd-shell { display: flex; align-items: flex-start; }
.fd-main { flex: 1 1 auto; min-width: 0; padding: var(--fd-gap); }
.fd-title { font-size: 1.5rem; font-weight: 600; margin-bottom: var(--fd-gap); }
.fd-card { margin-bottom: var(--fd-gap); }
.fd-card > .card-header { background: var(--bs-body-bg); }

@media (min-width: 992px) {
  .fd-sidebar {
    position: sticky;
    top: var(--fd-topbar-height);
    flex: 0 0 var(--fd-sidebar-width);
    width: var(--fd-sidebar-width);
    height: calc(100vh - var(--fd-topbar-height));
    overflow-y: auto;
    background: var(--bs-body-bg);
    border-right: var(--bs-border-width) solid var(--bs-border-color);
  }
}

@media (max-width: 575.98px) {
  :root { --fd-gap: 1rem; }
  .fd-title { font-size: 1.25rem; }
}

/* Левое меню */
.fd-nav-link {
  display: block;
  padding: 0.375rem 0.75rem;
  border-radius: var(--bs-border-radius);
  color: var(--bs-body-color);
  text-decoration: none;
}
.fd-nav-link:hover { background: var(--bs-secondary-bg); }
.fd-nav-link.active {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary-text-emphasis);
  font-weight: 600;
}
.fd-sector > summary {
  padding: 0.375rem 0.75rem;
  border-radius: var(--bs-border-radius);
  font-weight: 600;
  cursor: pointer;
}
.fd-sector > summary:hover { background: var(--bs-secondary-bg); }

/* Видимый фокус у ссылок и раскрывашек (у кнопок и полей — свой у Bootstrap) */
a:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
  border-radius: var(--bs-border-radius-sm);
}

/* Таблицы: числа — моноширинные цифры, вправо; таблица прокручивается в своём блоке */
.fd-table th { white-space: nowrap; font-weight: 600; background: var(--bs-secondary-bg); }
/* Скрытый текст для диктора (position: absolute) не должен растягивать страницу из
   прокручиваемой таблицы: блок прокрутки — его опора. */
.fd-table-wrap { position: relative; }
.fd-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fd-table th.fd-num { white-space: normal; min-width: 7rem; }
.fd-lines .fd-line-name { min-width: 16rem; }
.fd-indent-0 { padding-left: 0.5rem; }
.fd-indent-1 { padding-left: 1.5rem; }
.fd-indent-2 { padding-left: 2.5rem; }
.fd-indent-3 { padding-left: 3.5rem; }
.fd-indent-4 { padding-left: 4.5rem; }
.fd-indent-5 { padding-left: 5.5rem; }

/* Бейджи статусов: текст обычного регистра, читаемый размер */
.fd-badge { font-weight: 500; font-size: 0.8125rem; }

/* Сводный Excel: кнопка и пояснение в строку, на телефоне — друг под другом */
.fd-excel { display: grid; gap: 0.5rem; }
.fd-excel-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.fd-excel-row .btn { min-width: 11rem; }

/* Поле, которое распознавание не заполнило */
.fd-unrecognized {
  border-color: var(--bs-warning);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-warning-rgb), 0.25);
}

/* Вход и страницы ошибок */
.fd-bare { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.fd-bare-box { width: 100%; max-width: 26rem; padding: 2rem 0; }
.min-w-0 { min-width: 0; }

/* Отчёты на узком экране — карточки вместо таблицы */
.fd-report-card { padding: 0.75rem 0; border-bottom: var(--bs-border-width) solid var(--bs-border-color); }
.fd-report-card:first-child { padding-top: 0; }
.fd-report-card:last-child { border-bottom: 0; }

/* Проверки итогов: название и причина переносятся, числа — нет */
.fd-checks .fd-check-name { min-width: 12rem; }
.fd-checks .fd-check-reason { min-width: 20rem; }
.fd-check-numbers { display: grid; grid-template-columns: auto 1fr; gap: 0 1rem; max-width: 18rem; }
.fd-check-numbers dt { font-weight: 400; color: var(--bs-secondary-color); }
.fd-check-numbers dd { margin: 0; }
