/*
 * Pool UI-kit — design tokens
 * Version: see VERSION file
 *
 * Бренд: фирменная палитра компании.
 * #3A4249 / #5B666F / #6C7882 — структура (header, текст, границы);
 * #F06841 — акценты (ссылки, focus); #9F1C31 — ошибки.
 * SPA-сервисы могут импортировать только :root-переменные.
 */

:root {
  /* Brand — фирменные серые + оранжевый + красный */
  --color-brand-primary: #3a4249;
  --color-brand-primary-hover: #2f363c;
  --color-brand-primary-subtle: #e8eaec;
  --color-brand-secondary: #5b666f;
  --color-brand-accent: #f06841;
  --color-brand-accent-hover: #d85a38;
  --color-brand-accent-subtle: #fdeee9;
  --color-surface: #f5f6f7;
  --color-surface-elevated: #ffffff;
  --color-border: #c8ced3;
  --color-text: #3a4249;
  --color-text-muted: #6c7882;
  --color-text-inverse: #ffffff;

  /* Status */
  --color-status-online: #2d8a4e;
  --color-status-offline: #6c7882;
  --color-status-degraded: #f06841;
  --color-status-error: #9f1c31;
  --color-status-blocked: #5b666f;
  --color-rating-low: #5dade2;

  /* Focus ring (a11y) */
  --focus-ring: 0 0 0 3px rgba(240, 104, 65, 0.32);

  /* Typography */
  --font-family-base: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;

  /* Layout */
  --header-height: 3.5rem;
  --catalog-sticky-filters-height: 0px;
  --max-content-width: 72rem;
  --main-padding-block-start: 1.375rem;
  --main-padding-inline: var(--space-6);
  --main-padding-block-end: 2.5rem;
  --chrome-z-index: 90;
  --radius-button: 9999px;
  --filter-label-size: 0.68rem;
  --filter-control-size: 0.78rem;
  --filter-action-size: 0.74rem;
  --filter-control-height: 1.65rem;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --shadow-sm: 0 1px 2px rgba(58, 66, 73, 0.06);
  --shadow-md: 0 4px 12px rgba(58, 66, 73, 0.08);

  /* Portal */
  --portal-card-min-width: 280px;
  --portal-card-gap: var(--space-6);
}

/* Base reset (minimal) */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  color: var(--color-text);
  background: var(--color-surface);
  max-width: 100%;
}

html {
  max-width: 100%;
}

/* Header */
.pool-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  height: var(--header-height);
  padding: 0 var(--space-6);
  background: linear-gradient(180deg, var(--color-brand-secondary) 0%, var(--color-brand-primary) 100%);
  color: var(--color-text-inverse);
  box-shadow: var(--shadow-sm);
}

.pool-header__brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.pool-header__logo {
  width: auto;
  height: 36px;
  max-width: 120px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  object-fit: contain;
  background: transparent;
}

.pool-header__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  margin: 0;
  letter-spacing: -0.01em;
}

.pool-header__user {
  font-size: var(--font-size-sm);
  opacity: 0.9;
}

/* Sticky header shell + in-header navigation */
.pool-chrome {
  position: sticky;
  top: 0;
  z-index: var(--chrome-z-index);
  width: 100%;
}

.pool-header__nav {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-left: auto;
  margin-right: var(--space-4);
  flex-wrap: wrap;
}

.pool-header__link {
  color: var(--color-text-inverse);
  text-decoration: none;
  font-size: var(--font-size-sm);
  opacity: 0.92;
  white-space: nowrap;
}

.pool-header__link:hover,
.pool-header__link--active {
  opacity: 1;
  text-decoration: underline;
}

.pool-header__brand-link {
  color: inherit;
  text-decoration: none;
  min-width: 0;
}

.pool-header__brand-link:hover {
  opacity: 0.92;
  text-decoration: none;
}

.pool-header__brand-link:hover .pool-header__title {
  text-decoration: underline;
}

.pool-header__logout {
  display: inline;
  margin: 0;
}

.pool-header__link--button {
  border: none;
  padding: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

@media (max-width: 900px) {
  .pool-header {
    flex-wrap: wrap;
    height: auto;
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
  }

  .pool-header__nav {
    order: 3;
    width: 100%;
    margin: var(--space-2) 0 0;
  }
}

/* Footer */
.pool-footer {
  padding: var(--space-4) var(--space-6);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  border-top: 1px solid var(--color-border);
  text-align: center;
}

/* Service card (portal) */
.pool-card {
  display: flex;
  flex-direction: column;
  min-width: var(--portal-card-min-width);
  padding: var(--space-6);
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.pool-card:not(.pool-card--blocked):hover {
  border-color: var(--color-brand-accent-subtle);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.pool-card--blocked {
  opacity: 0.65;
  background: var(--color-surface);
}

.pool-card__header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.pool-card__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.pool-card__title-row {
  flex: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-2);
}

.pool-card__title {
  margin: 0;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.pool-card__desc {
  margin: 0 0 var(--space-4);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.pool-card__access {
  font-size: var(--font-size-sm);
  margin-bottom: var(--space-4);
}

.pool-card__access--allowed { color: var(--color-status-online); }
.pool-card__access--denied { color: var(--color-status-blocked); }

/* Status dot */
.pool-status {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

.pool-status::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-status-offline);
}

.pool-status--online::before { background: var(--color-status-online); }
.pool-status--offline::before { background: var(--color-status-offline); }
.pool-status--degraded::before { background: var(--color-status-degraded); }

/* Buttons */
.pool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-4);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
}

.pool-btn--primary {
  background: var(--color-brand-primary);
  color: var(--color-text-inverse);
}

.pool-btn--primary:hover { background: var(--color-brand-primary-hover); }

.pool-btn--ghost {
  background: transparent;
  border-color: var(--color-border);
  color: var(--color-text);
}

.pool-btn--sm {
  padding: var(--space-1) var(--space-3);
  font-size: var(--font-size-xs);
  min-height: 1.75rem;
}

.pool-btn:focus-visible,
.pool-back-link:focus-visible,
.pool-form-group input:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.pool-btn--disabled,
.pool-btn--disabled:hover {
  background: var(--color-border);
  color: var(--color-text-muted);
  cursor: not-allowed;
}

/* Portal grid */
.pool-services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--portal-card-min-width), 1fr));
  gap: var(--portal-card-gap);
  max-width: var(--max-content-width);
  margin: 0 auto;
}

.pool-main {
  min-height: calc(100vh - var(--header-height) - 4rem);
  padding: var(--main-padding-block-start) var(--main-padding-inline) var(--main-padding-block-end);
  font-size: var(--font-size-sm);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.pool-main > h1:first-child {
  margin: 0 0 var(--space-4);
  font-size: var(--font-size-2xl);
}

/* Shared content blocks (service pages) */
.card {
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
  box-shadow: var(--shadow-sm);
}

.muted {
  color: var(--color-text-muted);
}

/* Service pages — filters, controls, tables, buttons (ESP / Tails / …) */
.pool-main > h2:first-child,
.pool-main h2.section-title {
  margin: 0 0 var(--space-3);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.pool-main a:not(.button):not(.pool-btn):not(.pagination-page):not(.pagination-btn):not(.pool-header__link):not(.pool-header__brand-link):not(.table-sort-link) {
  color: var(--color-brand-accent);
}

.filters-toolbar { display: block; width: 100%; max-width: 100%; min-width: 0; }

.filters-card {
  padding: var(--space-2) var(--space-3);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Up to 2 compact rows — primary fields on row 1, rest + actions on row 2 */
.filters-stack {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.filters-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.35rem 0.45rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.filters-row--tail .filter-actions,
.filters-row--single .filter-actions {
  margin-left: auto;
}

.filters-row--single {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 0.1rem;
}

/* Facet panels are position:absolute; overflow-x:auto on --single forces overflow-y:auto
   and clips dropdown content (email-stat /reports/oati, /email-records, /change, /admin). */
.filters-row--single:has(.facet-drop),
.filters-stack:has(.facet-drop) {
  overflow: visible;
}

/* EMAIL records / change — many filters; wrap instead of horizontal scroll */
.filters-row--records.filters-row--single,
.filters-row--change {
  flex-wrap: wrap;
  overflow: visible;
}

.filters-row--change .filter-inline--search,
.filters-row--change .filter-inline--text,
.filters-row--change .filter-inline--text-wide {
  flex: 0 0 7rem;
  max-width: 7rem;
}

.filters-row--change .filter-actions {
  flex: 0 0 auto;
  margin-left: auto;
  align-self: flex-end;
}

.card:has(.facet-drop) {
  overflow: visible;
}

.filters-row--emails .filter-inline--select,
.filters-row--records .filter-inline--select {
  flex: 0 0 6.5rem;
  max-width: 6.5rem;
}

.filters-row--emails .filter-inline--search,
.filters-row--records .filter-inline--text,
.filters-row--records .filter-inline--text-wide {
  flex: 0 0 7rem;
  max-width: 7rem;
}

.filters-row--tails {
  display: grid;
  grid-template-columns:
    minmax(4.5rem, 0.85fr)
    repeat(5, minmax(4.5rem, 1fr))
    repeat(3, minmax(4.5rem, 0.95fr))
    minmax(5rem, 1.05fr)
    minmax(4.5rem, 0.8fr)
    auto;
  align-items: end;
  gap: 0.35rem 0.4rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
}

.filters-row--tails.filters-row--single {
  overflow: visible;
  flex-wrap: unset;
}

.filters-row--tails .filter-inline--text,
.filters-row--tails .filter-inline--search,
.filters-row--tails .filter-inline--facet {
  flex: unset;
  max-width: none;
  width: 100%;
}

.filters-row--tails .filter-actions {
  margin-left: 0;
  justify-self: end;
}

.filters-card {
  overflow: visible;
}

/* Catalog main pages — sticky filters above long result tables */
.pool-main .card.filters-card:has(~ :is(.suppliers-table-card, .aircraft-table-card, .email-records-table-card)) {
  position: sticky;
  top: var(--header-height);
  z-index: 30;
  margin-bottom: var(--space-2);
  box-shadow: 0 2px 8px rgb(58 66 73 / 8%);
}

.filters-card .filters-toolbar {
  overflow: visible;
}

@media (max-width: 72rem) {
  .filters-row--tails {
    grid-template-columns: repeat(6, minmax(4.75rem, 1fr));
  }

  .filters-row--tails .filter-actions {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

/* Fixed control widths — predictable 1–2 row layout on desktop */
.filter-inline--date { flex: 0 0 8.25rem; max-width: 8.25rem; }
.filter-inline--select { flex: 0 0 7.25rem; max-width: 7.25rem; }
.filter-inline--search { flex: 1 1 10rem; min-width: 9rem; max-width: 16rem; }
.filter-inline--text { flex: 0 0 7.5rem; max-width: 7.5rem; }
.filter-inline--text-wide { flex: 0 0 9.5rem; max-width: 9.5rem; }
.filter-inline--number { flex: 0 0 5.5rem; max-width: 5.5rem; }
.filter-inline--facet { flex: 0 0 6.75rem; max-width: 6.75rem; }
.filter-inline--flag { flex: 0 0 5.75rem; max-width: 6.25rem; }

.filters-toolbar .filter-inline--flag input[type="checkbox"] {
  width: auto;
  height: auto;
  min-height: 0;
  margin: 0.15rem 0 0;
  accent-color: var(--color-brand-primary);
}

.card > .filters-card {
  margin-bottom: var(--space-2);
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 52rem) {
  .filter-inline--date,
  .filter-inline--select,
  .filter-inline--search,
  .filter-inline--text,
  .filter-inline--text-wide,
  .filter-inline--number,
  .filter-inline--facet {
    flex: 1 1 calc(50% - 0.5rem);
    max-width: none;
  }

  .filters-row--tail .filter-actions,
  .filters-row--single .filter-actions {
    margin-left: 0;
    width: 100%;
    justify-content: flex-end;
  }
}

.filter-inline {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  margin: 0;
}

.filter-inline--facet { min-width: 0; overflow: visible; }

.filter-label {
  font-size: var(--filter-label-size);
  line-height: 1.1;
  color: var(--color-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Compact filter controls — beats .pool-main input/select (higher specificity) */
.filters-toolbar .filter-inline input:not([type="checkbox"]):not([type="radio"]),
.filters-toolbar .filter-inline select,
.filters-toolbar .facet-drop summary {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0.2rem 0.4rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface-elevated);
  color: var(--color-text);
  font-family: var(--font-family-base);
  font-size: var(--filter-control-size);
  font-weight: var(--font-weight-normal);
  line-height: 1.2;
  min-height: var(--filter-control-height);
  height: var(--filter-control-height);
}

.filters-toolbar .filter-inline input:not([type="checkbox"]):not([type="radio"]):focus,
.filters-toolbar .filter-inline select:focus,
.filters-toolbar .facet-drop summary:focus-visible {
  outline: none;
  border-color: var(--color-brand-accent);
  box-shadow: var(--focus-ring);
}

.filter-actions {
  display: flex;
  gap: 0.35rem;
  flex-wrap: nowrap;
  flex: 0 0 auto;
  align-self: end;
  white-space: nowrap;
}

.filter-actions button,
.filter-actions .button {
  padding: 0.28rem 0.75rem;
  font-size: var(--filter-action-size);
  min-height: var(--filter-control-height);
  height: var(--filter-control-height);
  line-height: 1.2;
}

.facet-drop {
  position: relative;
  width: 100%;
  min-width: 0;
}

.filters-toolbar .facet-drop summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
}

.facet-drop summary::-webkit-details-marker { display: none; }

.facet-drop summary::after {
  content: " ▾";
  font-size: 0.65em;
  opacity: 0.65;
  flex-shrink: 0;
}

.facet-drop[open] summary {
  border-color: var(--color-brand-primary);
  background: var(--color-brand-primary-subtle);
}

.facet-drop[open] summary::after { content: " ▴"; }

.facet-panel {
  position: absolute;
  z-index: 100;
  top: calc(100% + 1px);
  left: 0;
  min-width: 100%;
  width: max-content;
  max-width: 14rem;
  max-height: 12rem;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.25rem 0.35rem;
  box-shadow: var(--shadow-sm);
  display: grid;
  gap: 0.08rem;
}

.facet-option {
  display: flex;
  gap: 0.3rem;
  align-items: flex-start;
  font-size: 0.72rem;
  color: inherit;
  cursor: pointer;
  line-height: 1.15;
  margin: 0;
}

.facet-option input {
  margin: 0.08rem 0 0;
  flex-shrink: 0;
  width: 0.75rem;
  height: 0.75rem;
  min-height: 0;
  padding: 0;
}

.facet-panel__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding-bottom: 0.2rem;
  margin-bottom: 0.15rem;
  border-bottom: 1px solid var(--color-border);
}

.facet-option--select-all {
  font-weight: var(--font-weight-semibold);
  margin: 0;
}

.facet-clear-all {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.72rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-brand-primary);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.facet-clear-all:hover {
  color: var(--color-brand-primary-hover, var(--color-brand-primary));
}

.facet-empty {
  font-size: 0.72rem;
  padding: 0.15rem 0.1rem;
}

.summary {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  margin: 0.35rem 0 0;
}

.summary--compact {
  font-size: var(--filter-action-size);
  line-height: 1.35;
  margin-bottom: 0;
}

.pool-main input:not([type="checkbox"]):not([type="radio"]),
.pool-main select,
.pool-main textarea {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-3);
  font: inherit;
  font-size: var(--font-size-sm);
  background: var(--color-surface-elevated);
  color: var(--color-text);
}

.pool-main select[multiple] { min-height: 4.5rem; }

.pool-main fieldset { border: none; }

button,
.button,
a.button,
.pool-main .pool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  box-sizing: border-box;
  border: 1px solid var(--color-brand-primary);
  border-radius: var(--radius-button);
  padding: var(--space-2) var(--space-4);
  font: inherit;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1.25;
  background: var(--color-brand-primary);
  color: var(--color-text-inverse);
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
}

button:hover,
.button:hover:not(.disabled),
a.button:hover {
  background: var(--color-brand-primary-hover);
  border-color: var(--color-brand-primary-hover);
  color: var(--color-text-inverse);
}

button:focus-visible,
.button:focus-visible,
a.button:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.button-secondary,
button.button-secondary,
a.button-secondary {
  background: var(--color-surface-elevated);
  color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
}

.button-secondary:hover,
button.button-secondary:hover,
a.button-secondary:hover {
  background: var(--color-brand-primary-subtle);
  color: var(--color-brand-primary);
  border-color: var(--color-brand-primary-hover);
}

.button.disabled,
span.button.disabled,
button:disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

.table-scroll,
.table-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Wide tables — opt-in horizontal scroll (email-stat UUID columns, …) */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-scroll > table {
  width: max-content;
  min-width: 100%;
}

/* Default catalog tables — fit page width, columns sized by content */
.table-card:not(.catalog-table-card),
.pool-main .card:not(.catalog-table-card):has(> table:only-child) {
  padding: 0;
  overflow-x: clip;
}

.table-card:not(.catalog-table-card) > table,
.pool-main .card:not(.catalog-table-card):has(> table:only-child) > table {
  width: 100%;
  max-width: 100%;
  table-layout: auto;
  margin: 0;
}

/* Wide catalog tables — horizontal scroll (MRO EU, …) */
.pool-main .card.catalog-table-card,
.pool-main .table-card.catalog-table-card {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Suppliers / aircraft / email-records — page scroll, sticky thead below filters */
.pool-main .card.suppliers-table-card,
.pool-main .table-card.suppliers-table-card,
.pool-main .card.aircraft-table-card,
.pool-main .table-card.aircraft-table-card,
.pool-main .card.email-records-table-card,
.pool-main .table-card.email-records-table-card {
  padding: 0;
  overflow: visible;
}

.pool-main .suppliers-table-card .suppliers-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.pool-main .suppliers-table-card .suppliers-table-scroll > table {
  width: 100%;
  max-width: 100%;
  margin: 0;
  table-layout: fixed;
}

.pool-main .suppliers-table-card .suppliers-table-scroll :is(th, td).actions-col {
  position: sticky;
  right: 0;
  width: 7.5rem;
  min-width: 7.5rem;
  max-width: 7.5rem;
  background: var(--color-surface-elevated);
  box-shadow: -1px 0 0 var(--color-border);
}

.pool-main .suppliers-table-card .suppliers-table-scroll th.actions-col {
  z-index: 27;
  background: var(--color-brand-primary-subtle);
}

.pool-main .suppliers-table-card .suppliers-table-scroll td.actions-col {
  z-index: 20;
}

.pool-main .suppliers-table-card .suppliers-table-scroll .supplier-actions {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  white-space: normal;
}

.pool-main .suppliers-table-card .suppliers-table-scroll .supplier-actions :is(.button, button) {
  width: 100%;
  justify-content: center;
}

.pool-main .aircraft-table-card .aircraft-table-scroll,
.pool-main .email-records-table-card .email-records-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.pool-main .aircraft-table-card .aircraft-table-scroll > table,
.pool-main .email-records-table-card .email-records-table-scroll > table {
  width: 100%;
  max-width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
}

.pool-main .aircraft-table-card .aircraft-table-scroll > table {
  table-layout: auto;
}

.pool-main .email-records-table-card .email-records-table-scroll > table {
  table-layout: fixed;
}

.pool-main .aircraft-table-card .aircraft-table-scroll :is(th, td).actions-col {
  position: sticky;
  right: 0;
  width: 7.5rem;
  min-width: 7.5rem;
  max-width: 7.5rem;
  background: var(--color-surface-elevated);
  box-shadow: -1px 0 0 var(--color-border);
}

.pool-main .aircraft-table-card .aircraft-table-scroll th.actions-col {
  z-index: 27;
  background: var(--color-brand-primary-subtle);
}

.pool-main .aircraft-table-card .aircraft-table-scroll td.actions-col {
  z-index: 20;
}

.pool-main .aircraft-table-card .aircraft-table-scroll .tail-actions {
  width: 100%;
  align-items: stretch;
}

.pool-main .aircraft-table-card .aircraft-table-scroll .tail-actions__row {
  width: 100%;
  flex-direction: column;
  align-items: stretch;
}

.pool-main .aircraft-table-card .aircraft-table-scroll .tail-actions :is(form, button) {
  width: 100%;
}

.pool-main .aircraft-table-card .aircraft-table-scroll .tail-actions button {
  justify-content: center;
}

.pool-main .card.suppliers-table-card > table,
.pool-main .table-card.suppliers-table-card > table,
.pool-main .card.aircraft-table-card > table,
.pool-main .table-card.aircraft-table-card > table,
.pool-main .card.email-records-table-card > table,
.pool-main .table-card.email-records-table-card > table,
.pool-main table.email-records-table {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.pool-main .card.suppliers-table-card > table,
.pool-main .table-card.suppliers-table-card > table {
  table-layout: fixed;
}

.pool-main .card.aircraft-table-card > table,
.pool-main .table-card.aircraft-table-card > table {
  table-layout: auto;
}

.pool-main .card.email-records-table-card > table,
.pool-main .table-card.email-records-table-card > table,
.pool-main table.email-records-table {
  table-layout: fixed;
}

.pool-main .suppliers-table-card th,
.pool-main .suppliers-table-card th.sortable a.table-sort-link,
.pool-main .suppliers-table-card th.sortable a.table-sort-link .sort-label,
.pool-main .aircraft-table-card th,
.pool-main .aircraft-table-card th.sortable a.table-sort-link,
.pool-main .aircraft-table-card th.sortable a.table-sort-link .sort-label,
.pool-main .email-records-table th {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}

/* Long catalog lists — keep column headers visible under the sticky site header */
.pool-main .card.suppliers-table-card > table,
.pool-main .table-card.suppliers-table-card > table,
.pool-main .card.aircraft-table-card > table,
.pool-main .table-card.aircraft-table-card > table,
.pool-main .card.email-records-table-card > table,
.pool-main .table-card.email-records-table-card > table {
  border-collapse: separate;
  border-spacing: 0;
}

.pool-main .suppliers-table-card .suppliers-table-scroll > table {
  border-collapse: separate;
  border-spacing: 0;
}

.pool-main :is(.suppliers-table-card, .aircraft-table-card, .email-records-table-card) thead th {
  position: sticky;
  top: calc(var(--header-height) + var(--catalog-sticky-filters-height, 0px));
  z-index: 25;
  background: var(--color-brand-primary-subtle);
  box-shadow: 0 1px 0 var(--color-border);
}

/* Suppliers only: predictable horizontal table scroll on small laptops. */
@media (max-width: 90rem) {
  .pool-main :is(.suppliers-table-card, .aircraft-table-card, .email-records-table-card)
    .catalog-scroll-body {
    scrollbar-width: none;
  }

  .pool-main :is(.suppliers-table-card, .aircraft-table-card, .email-records-table-card)
    .catalog-scroll-body::-webkit-scrollbar {
    height: 0;
  }

  .pool-main .suppliers-table-card .suppliers-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }

  .pool-main .suppliers-table-card .suppliers-table-scroll > table {
    width: 90rem;
    min-width: 90rem;
    max-width: none;
    table-layout: fixed;
  }

  .pool-main .suppliers-table-card .suppliers-table-scroll thead th {
    position: static;
    top: auto;
  }

  .pool-main .suppliers-table-card .suppliers-table-scroll thead th.actions-col {
    position: sticky;
    right: 0;
  }

  .pool-main .aircraft-table-card .aircraft-table-scroll,
  .pool-main .email-records-table-card .email-records-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }

  .pool-main .aircraft-table-card .aircraft-table-scroll > table {
    width: 110rem;
    min-width: 110rem;
    max-width: none;
    table-layout: fixed;
  }

  .pool-main .email-records-table-card .email-records-table-scroll > table {
    width: 100rem;
    min-width: 100rem;
    max-width: none;
    table-layout: fixed;
  }

  .pool-main .aircraft-table-card .aircraft-table-scroll thead th,
  .pool-main .email-records-table-card .email-records-table-scroll thead th {
    position: static;
    top: auto;
  }

  .pool-main .aircraft-table-card .aircraft-table-scroll thead th.actions-col {
    position: sticky;
    right: 0;
  }
}

.catalog-scrollbar-viewport {
  position: fixed;
  right: var(--main-padding-inline);
  bottom: 0;
  left: var(--main-padding-inline);
  z-index: 60;
  height: 1rem;
  overflow-x: scroll;
  overflow-y: hidden;
  scrollbar-color: var(--color-brand-secondary) var(--color-surface);
  scrollbar-width: auto;
  background: var(--color-surface);
  box-shadow: 0 -1px 0 var(--color-border);
}

.catalog-scrollbar-viewport[hidden] {
  display: none;
}

.catalog-scrollbar-viewport__spacer {
  height: 1px;
}

.catalog-scrollbar-viewport::-webkit-scrollbar {
  height: 0.85rem;
}

.catalog-scrollbar-viewport::-webkit-scrollbar-track {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}

.catalog-scrollbar-viewport::-webkit-scrollbar-thumb {
  background: var(--color-brand-secondary);
  border: 2px solid var(--color-surface);
  border-radius: var(--radius-sm);
}

body.has-catalog-viewport-scrollbar .pool-main {
  padding-bottom: calc(var(--main-padding-block-end) + 1rem);
}

/* Aircraft catalog — hide legend block once sticky filters scroll under the header */
.filters-card--aircraft-catalog.catalog-filters--compact .catalog-company-legend {
  display: none;
}

.filters-card--aircraft-catalog.catalog-filters--compact .catalog-filter-footer {
  margin-top: 0;
  justify-content: flex-end;
}

.filters-card--aircraft-catalog.catalog-filters--compact {
  padding-top: var(--space-1);
  padding-bottom: var(--space-1);
}

.pool-main .suppliers-table-card td,
.pool-main .aircraft-table-card td,
.pool-main .email-records-table td {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}

.pool-main .email-records-table td.mono,
.pool-main .email-records-table td.cell-ids,
.pool-main .email-records-table td.cell-errors {
  overflow-wrap: anywhere;
  word-break: break-all;
}

.pool-main .email-records-table .nowrap {
  white-space: normal;
}

.pool-main .suppliers-table-card .supplier-actions {
  flex-wrap: wrap;
}

.pool-main .card.catalog-table-card > table,
.pool-main .table-card.catalog-table-card > table {
  max-width: none;
}

.pool-main .catalog-table-card th,
.pool-main .catalog-table-card th.sortable a.table-sort-link,
.pool-main .catalog-table-card th.sortable a.table-sort-link .sort-label {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.pool-main .catalog-table-card td {
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.pool-main .catalog-table-card td.mono {
  overflow-wrap: anywhere;
  word-break: break-all;
}

.table-card .clip {
  display: block;
  max-width: 100%;
}

.table-card :is(.comments-cell, .history-cell) .comment-drop {
  min-width: 0;
  max-width: 100%;
}

/* Card blocks with a direct table — keep card padding for headings/toolbars; table full-bleed */
.pool-main .card:not(.table-card):not(:has(> table:only-child)):has(> table) {
  overflow-x: clip;
  max-width: 100%;
}

.pool-main .card:not(.table-card):not(:has(> table:only-child)) > table {
  width: calc(100% + 2 * var(--space-4));
  max-width: calc(100% + 2 * var(--space-4));
  margin-left: calc(-1 * var(--space-4));
  margin-right: calc(-1 * var(--space-4));
  table-layout: auto;
}

.pool-main .card:not(.table-card):not(:has(> table:only-child)) > table:not(:first-child) {
  margin-top: var(--space-3);
}

.pool-main .card:not(.table-card):not(:has(> table:only-child)) > table:last-child {
  margin-bottom: calc(-1 * var(--space-4));
}

.pool-main .card:not(.table-card):not(:has(> table:only-child)) > table:first-child:last-child {
  margin-top: calc(-1 * var(--space-4));
}

.pool-main table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-family-base);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-normal);
  background: var(--color-surface-elevated);
}

.pool-main th,
.pool-main td {
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-2) var(--space-3);
  text-align: left;
  vertical-align: top;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: var(--color-text);
}

.pool-main th {
  background: var(--color-brand-primary-subtle);
  font-weight: var(--font-weight-semibold);
  white-space: nowrap;
}

/* Fit-page tables: headers wrap, cells break at word boundaries */
.pool-main .table-card th,
.pool-main .card:has(> table) th {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  vertical-align: bottom;
}

.pool-main .table-card td,
.pool-main .card:has(> table) td {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}

.pool-main .table-card td.nowrap:not(.actions-col),
.pool-main .card:has(> table) td.nowrap:not(.actions-col) {
  white-space: normal;
}

/* Action columns — never squeeze header text letter-by-letter */
.actions-col {
  white-space: nowrap;
  width: 1%;
  min-width: 6.5rem;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.pool-main .table-card th.actions-col,
.pool-main .table-card td.actions-col,
.pool-main .card:has(> table) th.actions-col,
.pool-main .card:has(> table) td.actions-col {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.pool-main th.sortable a.table-sort-link {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.pool-main th.sortable a.table-sort-link .sort-label {
  font: inherit;
  font-weight: inherit;
  color: inherit;
}

.pool-main th.sortable a.table-sort-link:hover { text-decoration: none; }

.pool-main th.sortable a.table-sort-link:hover .sort-label { text-decoration: underline; }

.sort-arrows {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  line-height: 1;
  font-size: 0.52em;
  opacity: 1;
  color: var(--color-text-muted);
  flex-shrink: 0;
}

.sort-up,
.sort-down {
  display: block;
  line-height: 0.95;
  opacity: 0.38;
}

.pool-main th.sortable:hover .sort-up,
.pool-main th.sortable:hover .sort-down { opacity: 0.55; }

.pool-main th.sortable--active.sortable--asc .sort-up {
  opacity: 1;
  color: var(--color-brand-primary);
}

.pool-main th.sortable--active.sortable--asc .sort-down { opacity: 0.22; }

.pool-main th.sortable--active.sortable--desc .sort-down {
  opacity: 1;
  color: var(--color-brand-primary);
}

.pool-main th.sortable--active.sortable--desc .sort-up { opacity: 0.22; }

.pool-main tbody tr:hover td {
  background: color-mix(in srgb, var(--color-brand-primary-subtle) 45%, white);
}

.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: var(--font-size-xs);
}

/* Data tables: one typography for all columns (ignore .mono size/family in cells) */
.pool-main table .mono {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.pool-main table a:not(.button):not(.table-sort-link):not(.pagination-page):not(.pagination-btn) {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.nowrap { white-space: nowrap; }

.clip {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* List summary + pagination (filters toolbar) */
.list-summary {
  display: flex;
  gap: var(--space-3);
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: var(--space-2);
}

.list-summary--nav-only {
  justify-content: flex-end;
}

.list-summary__text {
  margin: 0;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-tight);
  color: var(--color-text-muted);
}

.pagination {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  flex-wrap: wrap;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-tight);
}

.pagination .pagination-btn,
.pagination button.pagination-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 1.75rem;
  min-height: var(--filter-control-height);
  padding: 0.2rem 0.45rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface-elevated);
  color: var(--color-text);
  font: inherit;
  font-size: var(--font-size-xs);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
}

.pagination a.pagination-btn:hover {
  background: var(--color-brand-primary-subtle);
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.pagination-btn.disabled,
.pagination .pagination-btn.disabled,
.pagination span.pagination-btn.disabled {
  opacity: 0.45;
  cursor: default;
  pointer-events: none;
}

.pagination-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  min-height: var(--filter-control-height);
  padding: 0.2rem 0.4rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  text-align: center;
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-surface-elevated);
  font-size: var(--font-size-xs);
  line-height: 1.2;
}

.pagination a.pagination-page:hover {
  background: var(--color-brand-primary-subtle);
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.pagination-page.current {
  background: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: var(--color-text-inverse);
  font-weight: var(--font-weight-semibold);
}

.pagination-jump {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  margin-left: 0.1rem;
  flex-shrink: 0;
}

.pagination-jump__label {
  display: inline-flex;
  margin: 0;
}

.pagination-jump__input {
  box-sizing: border-box;
  width: 2.35rem;
  min-height: var(--filter-control-height);
  padding: 0.15rem 0.25rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface-elevated);
  color: var(--color-text);
  font: inherit;
  font-size: var(--font-size-xs);
  line-height: 1.2;
  text-align: center;
}

.pagination-jump__input:focus-visible {
  outline: 2px solid var(--color-brand-accent);
  outline-offset: 1px;
  border-color: var(--color-brand-accent);
}

.pagination-jump__input--error {
  border-color: var(--color-status-error);
}

.pagination-jump__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 1.6rem;
  min-height: var(--filter-control-height);
  padding: 0.15rem 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface-elevated);
  color: var(--color-text);
  font: inherit;
  font-size: var(--font-size-xs);
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pagination-jump__btn:hover {
  background: var(--color-brand-primary-subtle);
  border-color: var(--color-brand-primary);
  color: var(--color-brand-primary);
}

.pagination-jump__error {
  position: absolute;
  top: calc(100% + 2px);
  right: 0;
  max-width: 12rem;
  font-size: 0.65rem;
  line-height: 1.2;
  color: var(--color-status-error);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  z-index: 2;
}

/* Catalog toolbar — filter row + actions (Apply / Reset / Create) */
.filters-toolbar .filter-actions--catalog {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  margin-top: 0.35rem;
  box-sizing: border-box;
}

.filters-toolbar .filter-actions--catalog .filter-actions__create {
  margin-right: auto;
}

.button-accent,
.filters-toolbar .filter-actions--catalog .button-accent {
  background: var(--color-brand-accent);
  border-color: var(--color-brand-accent);
  color: var(--color-text-inverse);
}

.button-accent:hover,
.filters-toolbar .filter-actions--catalog .button-accent:hover {
  background: var(--color-brand-accent-hover);
  border-color: var(--color-brand-accent-hover);
  color: var(--color-text-inverse);
}

/* Suppliers catalog — 9-column filter grid */
.filters-row--suppliers {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  align-items: end;
  gap: 0.35rem 0.4rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
  flex-wrap: unset;
}

.filters-row--suppliers .filter-inline,
.filters-row--suppliers .filter-inline--search,
.filters-row--suppliers .filter-inline--facet {
  flex: unset;
  max-width: none;
  width: 100%;
  min-width: 0;
}

.filters-row--suppliers .filter-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.filters-row--suppliers .filter-inline input:not([type="checkbox"]):not([type="radio"]),
.filters-row--suppliers .facet-drop,
.filters-row--suppliers .facet-drop summary {
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 72rem) {
  .filters-row--suppliers {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 40rem) {
  .filters-row--suppliers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.facet-option--disabled {
  color: var(--color-text-muted);
  background: color-mix(in srgb, var(--color-status-error) 8%, white);
  border-radius: var(--radius-sm);
  opacity: 0.78;
}

.filters-toolbar .facet-drop summary {
  min-width: 0;
  overflow: hidden;
}

.filters-toolbar .facet-drop summary .facet-summary-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
  min-width: 0;
}

/* Grade badges (suppliers rating) */
.grade-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  min-height: 1.75rem;
  padding: 0.15rem 0.45rem;
  border-radius: 2px;
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
  background: color-mix(in srgb, var(--color-brand-primary) 12%, white);
}

.grade-badge--A { background: color-mix(in srgb, var(--color-status-online) 22%, white); }
.grade-badge--B { background: color-mix(in srgb, var(--color-status-degraded) 35%, white); }
.grade-badge--C { background: color-mix(in srgb, var(--color-rating-low) 35%, white); }
.grade-badge--D { background: color-mix(in srgb, var(--color-status-error) 18%, white); }
.grade-badge--none {
  color: var(--color-text-muted);
  background: color-mix(in srgb, var(--color-text-muted) 18%, white);
}

/* Inline row actions (Edit / Delete / Open) */
.inline-actions,
.supplier-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0.25rem;
  align-items: center;
  white-space: nowrap;
}

.report-links {
  font-size: var(--font-size-sm);
  min-width: 9rem;
  max-width: 14rem;
}

/* Catalog table — expandable comment / history cells */
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comments-cell,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-cell {
  overflow: visible;
  vertical-align: top;
}

.pool-main .catalog-table-card .comments-cell,
.pool-main .catalog-table-card .history-cell {
  max-width: 16rem;
  min-width: 10rem;
}

.pool-main .suppliers-table-card .comments-cell,
.pool-main .aircraft-table-card .comments-cell {
  max-width: none;
  min-width: 0;
}

.pool-main .suppliers-table-card tr.supplier-row--blocked td {
  background: color-mix(in srgb, var(--color-status-error) 14%, white);
}

.pool-main .suppliers-table-card .supplier-email-cell--blocked {
  user-select: none;
  -webkit-user-select: none;
  cursor: not-allowed;
}

.pool-main .suppliers-table-card :is(.history-col, .history-cell) {
  width: 18rem;
  max-width: 18rem;
  min-width: 12rem;
  overflow: hidden;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-line,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-summary,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-line {
  display: block;
  line-height: 1.35;
  min-width: 0;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-line--compact,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .report-line,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-line--compact {
  overflow-wrap: break-word;
  word-break: normal;
  color: inherit;
  text-decoration: none;
}

.pool-main .suppliers-table-card .history-cell .history-line--compact {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .report-line:hover {
  text-decoration: underline;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-meta-line {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-preview-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  margin-top: 0.1rem;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-preview-row .comment-preview {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
  white-space: normal;
}

.pool-main :is(.catalog-table-card, .aircraft-table-card) .history-cell .comment-preview-row .comment-preview {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* History — one text block: clamped preview when closed, full text when open */
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop:not([open]) .comment-preview-row {
  display: flex;
  align-items: flex-end;
  gap: 0;
  min-width: 0;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop:not([open]) .comment-preview {
  flex: 1 1 auto;
  min-width: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.pool-main .suppliers-table-card .history-drop:not([open]) .comment-preview {
  -webkit-line-clamp: 3;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop[open] .comment-preview-row {
  display: inline;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop[open] .comment-preview {
  display: inline;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop[open] .comment-expand-icon {
  display: inline;
}

.pool-main .suppliers-table-card .history-cell:has(.history-drop[open]) {
  overflow: visible;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop--static > summary {
  cursor: default;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop--static .comment-expand-icon {
  display: none;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-cell .comment-drop {
  min-width: 0;
  max-width: 100%;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-cell .comment-summary {
  overflow: visible;
  max-width: 100%;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop:not([open]) .comment-expand-icon {
  flex-shrink: 0;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-expand-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  min-height: 1.25rem;
  margin-left: 0.1rem;
  color: var(--color-status-degraded);
  font-size: 1.2em;
  font-weight: 700;
  line-height: 1;
  transition: transform 0.15s ease, color 0.15s ease;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-drop > summary:hover .comment-expand-icon,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-drop > summary:hover .comment-expand-icon {
  color: #c2410c;
}

/* Collapsible inline / stacked lists (email-records IDs, suppliers reports) */
.collapsible-ids__toggle {
  display: inline-block;
  margin-left: 2px;
  padding: 0;
  border: none;
  background: none;
  color: #ea580c;
  cursor: pointer;
  font-size: 11px;
  line-height: 1;
  vertical-align: middle;
  transition: transform 0.15s ease;
}

.collapsible-ids__toggle:hover {
  color: #c2410c;
}

.collapsible-ids__toggle[aria-expanded="true"] {
  transform: rotate(180deg);
}

.collapsible-ids--stacked {
  display: block;
}

.collapsible-ids--stacked .collapsible-ids__preview {
  display: block;
}

.collapsible-ids--stacked .collapsible-ids__more[hidden] {
  display: none;
}

.collapsible-ids--stacked .collapsible-ids__toggle {
  margin-left: 0;
  margin-top: 0.1rem;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-drop > summary {
  cursor: pointer;
  list-style: none;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-drop > summary::-webkit-details-marker {
  display: none;
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-drop[open] .comment-expand-icon {
  transform: rotate(180deg);
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-author {
  font-weight: var(--font-weight-medium);
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-sep,
.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .comment-date {
  color: var(--color-text-muted);
}

.pool-main :is(.catalog-table-card, .suppliers-table-card, .aircraft-table-card) .history-body {
  margin-top: 0.35rem;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  font-size: var(--font-size-sm);
  line-height: 1.35;
}

.table-row--highlight td,
.report-row--highlight td {
  background: color-mix(in srgb, var(--color-status-degraded) 12%, white);
}

/* Modal dialog (<dialog>) */
.pool-dialog,
.report-dialog,
.tail-card-dialog {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0;
  max-width: min(52rem, 96vw);
  box-shadow: var(--shadow-sm);
}

.pool-dialog::backdrop,
.report-dialog::backdrop,
.tail-card-dialog::backdrop {
  background: rgba(0, 0, 0, 0.35);
}

.pool-dialog-panel,
.report-dialog-panel,
.tail-card-dialog-panel {
  margin: 0;
  padding: var(--space-4);
  min-width: min(48rem, 92vw);
}

.pool-dialog-header,
.report-dialog-header,
.tail-card-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.pool-dialog-header h2,
.pool-dialog-header h3,
.report-dialog-header h2,
.report-dialog-header h3,
.tail-card-dialog-header h2,
.tail-card-dialog-header h3 {
  margin: 0;
  font-size: var(--font-size-lg);
}

.pool-dialog-actions,
.report-dialog-actions,
.tail-card-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

/* Wide detail table (reports, audit views) */
.report-detail-card {
  margin-bottom: var(--space-3);
}

.report-detail-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.report-detail-header h2 {
  margin: 0;
  font-size: var(--font-size-lg);
}

.report-detail-table-wrap {
  padding: 0;
  border: 0;
  box-shadow: none;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.report-detail-table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  margin: 0;
}

.report-detail-table th,
.report-detail-table td {
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-2) var(--space-3);
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.report-detail-table thead th {
  background: var(--color-brand-primary-subtle);
  font-weight: var(--font-weight-semibold);
  white-space: normal;
  min-width: 6rem;
  max-width: 12rem;
  line-height: 1.25;
}

.report-detail-table tbody td {
  white-space: normal;
  max-width: 14rem;
}

.report-dialog-grid label.report-dialog-field {
  display: grid;
  gap: 0.35rem;
  align-content: start;
}

.report-dialog-field strong {
  font-weight: var(--font-weight-medium);
  line-height: 1.25;
}

.report-dialog-field small {
  line-height: 1.3;
}

/* Compact text button (dialog close, table links) */
.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  padding: 0.22rem 0.75rem;
  border: 1px solid var(--color-brand-primary);
  border-radius: var(--radius-button);
  background: var(--color-surface-elevated);
  color: var(--color-brand-primary);
  font: inherit;
  font-size: 0.72rem;
  font-weight: var(--font-weight-medium);
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.button-link:hover {
  background: var(--color-brand-primary-subtle);
  text-decoration: none;
}

.button-link.danger {
  color: var(--color-status-error);
  border-color: color-mix(in srgb, var(--color-status-error) 40%, var(--color-border));
}

.button-link.danger:hover {
  background: color-mix(in srgb, var(--color-status-error) 10%, white);
  border-color: var(--color-status-error);
}

.button-link--icon {
  min-width: 1.75rem;
  padding-inline: 0.35rem;
}

/* Required fields and opt-in inline validation */
.required-marker {
  margin-left: 0.15em;
  color: var(--color-status-error);
  font-weight: var(--font-weight-semibold);
}

.pool-main .form-control--invalid,
.pool-form-group .form-control--invalid {
  border-color: var(--color-status-error);
}

.form-control--invalid[type="checkbox"],
.form-control--invalid[type="radio"] {
  outline: 2px solid var(--color-status-error);
  outline-offset: 2px;
}

.pool-main .form-control--invalid:focus,
.pool-form-group .form-control--invalid:focus {
  border-color: var(--color-status-error);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-status-error) 24%, transparent);
}

.form-field-error {
  display: block;
  margin-top: var(--space-1);
  color: var(--color-status-error);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-tight);
}

/* Admin / entity forms */
.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-3);
}

.detail-grid__item strong {
  display: block;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  margin-bottom: 0.15rem;
}

.admin-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-3);
}

.admin-form > button[type="submit"] { margin-top: var(--space-2); }

.admin-form-grid--companies {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: end;
}

.admin-form-grid label,
.admin-form-field {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  margin: 0;
}

.admin-form-label {
  font-weight: var(--font-weight-medium);
}

.admin-form-grid input,
.admin-form-grid select,
.admin-form-grid textarea,
.admin-form-grid--companies .admin-form-field:not(.admin-form-field--facet) input,
.admin-form-grid--companies .admin-form-field:not(.admin-form-field--facet) select,
.admin-form-grid--companies .admin-form-field:not(.admin-form-field--facet) textarea {
  width: 100%;
  box-sizing: border-box;
}

.admin-form-field--full {
  grid-column: 1 / -1;
}

.admin-form-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: var(--space-2);
}

.admin-form-actions .button,
.admin-form-actions button {
  width: auto;
  flex: 0 0 auto;
  margin-top: 0;
}

@media (max-width: 640px) {
  .admin-form-grid--companies {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}

/* Form facet multiselect (supplier form, admin pickers) */
.admin-form-field--facet .admin-form-facet {
  position: relative;
  width: 100%;
  min-width: 0;
}

.admin-form-field--facet .facet-drop {
  position: relative;
  width: 100%;
  min-width: 0;
}

.admin-form-field--facet .facet-drop summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  min-height: 2rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface-elevated);
  font-size: var(--font-size-sm);
  line-height: 1.2;
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
}

.admin-form-field--facet .facet-drop summary::-webkit-details-marker {
  display: none;
}

.admin-form-field--facet .facet-drop summary::after {
  content: "▾";
  font-size: 0.65em;
  opacity: 0.65;
  flex-shrink: 0;
  margin-left: auto;
}

.admin-form-field--facet .facet-drop[open] summary {
  border-color: var(--color-brand-primary);
  background: var(--color-brand-primary-subtle);
}

.admin-form-field--facet .facet-drop[open] summary::after {
  content: "▴";
}

.admin-form-field--facet .facet-summary-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
  min-width: 0;
}

.admin-form-field--facet .facet-panel {
  position: absolute;
  z-index: 100;
  top: calc(100% + 1px);
  left: 0;
  min-width: 100%;
  width: max-content;
  max-width: min(100%, 28rem);
  max-height: 16rem;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.25rem 0.35rem;
  box-shadow: var(--shadow-sm);
  display: grid;
  gap: 0;
}

.admin-form-field--facet .facet-panel__search {
  position: sticky;
  top: 0;
  z-index: 1;
  padding-bottom: 0.35rem;
  margin-bottom: 0.15rem;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface-elevated);
}

.admin-form-field--facet .facet-panel__search input {
  width: 100%;
  box-sizing: border-box;
  min-height: 1.75rem;
}

.admin-form-field--facet .facet-panel__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding-bottom: 0.25rem;
  margin-bottom: 0.15rem;
  border-bottom: 1px solid var(--color-border);
}

.admin-form-field--facet .facet-panel__options {
  display: grid;
}

.admin-form-field--facet .facet-option {
  display: flex;
  gap: 0.45rem;
  align-items: center;
  font-size: var(--font-size-sm);
  line-height: 1.25;
  color: inherit;
  cursor: pointer;
  margin: 0;
  padding: 0.4rem 0.25rem;
  border-bottom: 1px solid var(--color-border);
}

.admin-form-field--facet .facet-panel__options .facet-option:last-of-type {
  border-bottom: 0;
}

.admin-form-field--facet .facet-option--select-all {
  border-bottom: 0;
  font-weight: var(--font-weight-medium);
}

.admin-form-field--facet .facet-option input[type="checkbox"] {
  width: 0.85rem;
  height: 0.85rem;
  min-height: 0;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}

.admin-form-field--facet .facet-option span {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-form-field--facet .facet-clear-all {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-brand-primary);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.admin-form-field--facet .facet-option[hidden],
.admin-form-field--facet .facet-search-empty[hidden] {
  display: none;
}

.admin-form-field--facet .facet-search-empty {
  padding: 0.5rem 0.25rem;
  border-bottom: 0;
}

/* Reference admin tables */
.reference-table {
  width: 100%;
  table-layout: fixed;
}

.reference-table th:first-child,
.reference-table td:first-child {
  width: 75%;
  min-width: 28rem;
  padding-right: var(--space-3);
}

.reference-table td:first-child {
  padding-left: var(--space-2);
}

.reference-table td:first-child input.name {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.reference-table .actions-col {
  width: 11rem;
  white-space: nowrap;
}

.reference-new-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem;
  margin-top: var(--space-2);
  max-width: 100%;
}

.reference-new-form__field {
  display: grid;
  gap: 0.35rem;
  flex: 1 1 20rem;
  min-width: min(100%, 20rem);
  max-width: 42rem;
  margin: 0;
}

.reference-new-form__label {
  font-weight: var(--font-weight-medium);
}

.reference-new-form .new-name {
  width: 100%;
  box-sizing: border-box;
}

.reference-new-form .button {
  flex: 0 0 auto;
}

/* Inline status messages */
.status-text--success,
.mail-status--success { color: var(--color-status-online); }

.status-text--error,
.mail-status--error { color: var(--color-status-error); }

/* Back link (legacy partial; prefer pool-header__link «Корп. Сервисы») */
.pool-back-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  margin: var(--space-4) var(--space-6);
  font-size: var(--font-size-sm);
  color: var(--color-brand-accent);
  text-decoration: none;
}

.pool-back-link:hover { text-decoration: underline; }

/* Login form */
.pool-login {
  max-width: 24rem;
  margin: var(--space-12) auto;
  padding: var(--space-8);
  background: var(--color-surface-elevated);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}

.pool-login__title {
  margin: 0 0 var(--space-6);
  font-size: var(--font-size-xl);
  text-align: center;
}

.pool-form-group {
  margin-bottom: var(--space-4);
}

.pool-form-group label {
  display: block;
  margin-bottom: var(--space-1);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

.pool-form-group input {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--font-size-base);
  background: var(--color-surface-elevated);
  color: var(--color-text);
  transition: border-color 0.15s ease;
}

.pool-form-group input:focus {
  border-color: var(--color-brand-accent);
}

.pool-banner--warning {
  padding: var(--space-3) var(--space-4);
  background: var(--color-brand-accent-subtle);
  border: 1px solid var(--color-brand-accent);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  margin-bottom: var(--space-4);
}

/* Planned maintenance warning, injected by maintenance_notice.js. */
:root {
  --maintenance-notice-height: 2.75rem;
}

.pool-maintenance-notice {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: calc(var(--chrome-z-index) + 20);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  width: 100%;
  min-height: var(--maintenance-notice-height);
  padding: var(--space-2) var(--space-6);
  border-bottom: 2px solid var(--color-brand-accent-hover);
  background: linear-gradient(
    90deg,
    var(--color-brand-accent-hover) 0%,
    var(--color-brand-accent) 50%,
    var(--color-brand-accent-hover) 100%
  );
  color: #fff;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.01em;
  box-shadow: 0 4px 14px rgba(240, 104, 65, 0.45);
}

body:has(.pool-maintenance-notice) {
  padding-top: var(--maintenance-notice-height);
}

body:has(.pool-maintenance-notice) .pool-chrome {
  top: var(--maintenance-notice-height);
}

.pool-maintenance-notice__message {
  text-align: center;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.18);
}

button.pool-maintenance-notice__close {
  flex: 0 0 auto;
  min-width: 1.75rem;
  min-height: 1.75rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: var(--font-size-xl);
  line-height: 1;
}

button.pool-maintenance-notice__close:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.24);
  color: #fff;
}
