/* Racing catalogue — new section in the language of A3 (tiles, chips, element tiles). */
.filters { display: grid; gap: 12px; }
.filters__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filters__row .chips { margin-left: auto; }
@media (max-width: 1099px) { .filters__row .chips { margin-left: 0; width: 100%; } }
.filters__sum { font-size: 13px; color: var(--ink-2); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.datepick { display: flex; gap: 6px; align-items: center; }
.datepick input { height: 40px; padding: 0 10px; border-radius: var(--r-s); border: 1px solid var(--line-strong); background: var(--surface); }
.datepick input:focus { outline: none; border-color: var(--ink); box-shadow: var(--focus-ring); }

.meetings { display: grid; gap: 12px; }
.meet { padding: 14px; overflow: hidden; transition: box-shadow var(--t2); }
.meet.is-open { box-shadow: var(--shadow-2); }
.meet__head { display: flex; gap: 12px; align-items: center; }
.meet__title { flex: 1; min-width: 0; }
.meet__title h2 { font-size: 18px; line-height: 22px; font-weight: 800; }
.meet__title h2 a { text-decoration: none; }
.meet__title h2 a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.meet__head { position: relative; }
.meet__title h2 a:hover { color: var(--brand-ink); }
.meet__title p { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; font-size: 13px; color: var(--ink-2); }
.meet__title p .icon { width: 15px; height: 15px; }
.meet__chev { color: var(--ink-2); transition: transform var(--t2) var(--ease); }
.meet.is-open .meet__chev { transform: rotate(180deg); }

/* race-number strip: horizontal scroll is allowed here (ТЗ §6.4) */
.rstrip { display: flex; gap: 6px; margin-top: 12px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; scroll-snap-type: x proximity; }
.rn {
  position: relative; display: grid; justify-items: center; gap: 1px; min-width: 64px; padding: 7px 8px; border-radius: 12px; flex: none; scroll-snap-align: start;
  background: var(--surface-2); border: 1px solid transparent; text-decoration: none; transition: background var(--t), border-color var(--t), transform var(--t) var(--ease);
}
.rn:hover { border-color: var(--line-strong); transform: translateY(-1px); }
.rn b { font-size: 14px; font-weight: 800; }
.rn span { font-size: 12px; font-weight: 600; color: var(--ink-2); }
.rn--open span { color: var(--success); }
.rn--soon { background: var(--warn-bg); }
.rn--soon span { color: var(--warn-ink); }
.rn--suspended { background: var(--warn-bg); border-color: var(--warn-line); }
.rn--started span, .rn--provisional span { color: var(--ink); }
.rn--official { background: var(--surface); border-color: var(--line); }
.rn--abandoned { background: var(--error-bg); }
.rn--abandoned span { color: var(--error); }
.rn--nofixed { background: transparent; border: 1px dashed var(--line-strong); }

.meet__body { display: grid; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.rcard { display: grid; gap: 10px; padding: 12px; border-radius: var(--r-m); background: var(--surface-2); align-content: start; }
.rcard__top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rcard__name { flex: 1 1 100%; font-size: 14px; text-decoration: none; min-width: 0; }
.rcard__name:hover { color: var(--brand-ink); }
.rcard__time { margin-left: auto; font-weight: 800; }
.rcard__fav { display: flex; gap: 10px; align-items: center; }
.rcard__fav span { flex: 1; min-width: 0; font-size: 14px; }
.rcard__fav b { display: block; }
.rcard__fav small { color: var(--ink-2); font-size: 12px; }
.rcard__res { display: grid; gap: 4px; font-size: 13px; }
.rcard__res span { display: flex; gap: 8px; align-items: center; }
.rcard__res b { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: var(--ink); color: #fff; font-size: 12px; }
.rcard .fillbar { height: 3px; }
.filters { grid-template-columns: minmax(0, 1fr); }
.filters__row > * { min-width: 0; }
