/* The company directory "Фирми" and the free-account pages on the platform site (F-056).
   Tokens only (CLAUDE.md rule 7): every colour, size and radius comes from the direction file. */
@layer tb-directory {
  /* Flash messages and statuses */
  .tb-flash { display: grid; gap: var(--space-2); }
  .tb-flash__item { padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--color-info-bg); color: var(--color-info-text); }
  .tb-flash__item--success { background: var(--color-success-bg); color: var(--color-success-text); }
  .tb-flash__item--error { background: var(--color-danger-bg); color: var(--color-danger-text); }
  .tb-status { justify-self: start; padding: var(--space-1) var(--space-3); border-radius: var(--radius-sm); background: var(--color-surface-sunken); font-weight: var(--font-weight-medium); }
  .tb-status--ok { background: var(--color-success-bg); color: var(--color-success-text); }
  .tb-status--warn { background: var(--color-warning-bg); color: var(--color-warning-text); }
  .tb-notice { margin-inline: auto; }
  .tb-notice .tb-form { display: grid; gap: var(--space-4); }

  /* My account */
  .tb-account { display: grid; gap: var(--space-5); max-width: 46rem; }
  .tb-account__email { font-weight: var(--font-weight-bold); overflow-wrap: anywhere; }
  .tb-account__signout { justify-self: start; }
  .tb-mycompanies { display: grid; gap: var(--space-2); }
  .tb-mycompanies li { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); overflow-wrap: anywhere; }
  .tb-danger { border: var(--border-width) solid var(--color-danger-text); }
  .tb-btn--danger { background: var(--color-danger-bg); color: var(--color-danger-text); border-color: var(--color-danger-text); }

  /* Directory list */
  .tb-dir { display: grid; gap: var(--space-5); }
  .tb-dir__filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--color-band-bg); }
  .tb-dir__submit { align-self: end; }
  .tb-dir__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); align-items: start; }
  .tb-dir__aside { display: grid; gap: var(--space-5); align-content: start; }
  .tb-dir__count { font-size: var(--font-size-md); font-weight: var(--font-weight-bold); }
  .tb-dir__cards { display: grid; gap: var(--space-3); }
  .tb-dcard { display: grid; gap: var(--space-2); padding: var(--space-4); border: var(--border-width) solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
  .tb-dcard__name { font-size: var(--font-size-lg); line-height: 1.2; overflow-wrap: anywhere; }
  .tb-dcard__name a { color: var(--color-link); }
  .tb-dcard__meta, .tb-dcard__text { font-size: var(--font-size-sm); overflow-wrap: anywhere; }

  /* Badges: what was checked (directory.presentation) */
  .tb-dbadges { display: flex; flex-wrap: wrap; gap: var(--space-2); }
  .tb-dbadge { padding: var(--space-1) var(--space-2); border-radius: var(--radius-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); background: var(--color-surface-sunken); color: var(--color-text); }
  .tb-dbadge--verified { background: var(--color-success-bg); color: var(--color-success-text); }
  .tb-dbadge--registered { background: var(--color-info-bg); color: var(--color-info-text); }
  .tb-dbadge--shop { background: var(--color-primary); color: var(--color-on-primary); }

  /* Company page */
  .tb-dfacts { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
  .tb-dfacts dt { color: var(--color-text-muted); font-size: var(--font-size-sm); }
  .tb-dfacts dd { margin-bottom: var(--space-2); overflow-wrap: anywhere; }
  .tb-panel .tb-dfacts { grid-template-columns: minmax(0, 1fr); font-size: var(--font-size-md); }
  .tb-dtags { display: flex; flex-wrap: wrap; gap: var(--space-2); }
  .tb-dtags li { padding: var(--space-1) var(--space-2); border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: var(--font-size-sm); background: var(--color-surface); }
  .tb-dexplain { display: grid; gap: var(--space-2); padding-inline-start: var(--space-4); list-style: disc; }
  .tb-dsource { font-size: var(--font-size-xs); }
  .tb-panel a { overflow-wrap: anywhere; }
  /* On a phone the contacts and the shop link come before the long sections, not after them. */
  @container site (max-width: 63.99rem) { .tb-dcompany__aside { order: -1; } }

  /* Application form */
  .tb-dchecks { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--space-4); }
  .tb-dchecks .tb-check { padding-block: var(--space-1); line-height: 1.3; }
  /* Rows as tall as their labels: in a height-capped grid, stretched rows would overlap the long ETIM names. */
  .tb-dchecks--scroll { grid-auto-rows: max-content; align-content: start; max-height: 20rem; overflow-y: auto; padding: var(--space-2); border: var(--border-width) solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); }
  .tb-dchecks--scroll:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
  .tb-radios--stack { flex-direction: column; align-items: flex-start; }
  fieldset[disabled] .tb-check { color: var(--color-text-muted); cursor: not-allowed; }

  @container site (min-width: 40rem) {
    .tb-dchecks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tb-dir__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tb-dir__query { grid-column: 1 / -1; }
    .tb-dfacts { grid-template-columns: auto minmax(0, 1fr); column-gap: var(--space-4); }
    .tb-panel .tb-dfacts { grid-template-columns: auto minmax(0, 1fr); }
  }
  @container site (min-width: 64rem) {
    .tb-dir__filters { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; }
    .tb-dir__query { grid-column: auto; }
    .tb-dir__layout { grid-template-columns: minmax(0, 8fr) minmax(0, 3fr); }
    .tb-dchecks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
}
