/* Афиша встреч на сайте (/afisha/). Страницы отдаёт бот (internal/app/pub_afisha.go), этот файл — по адресу
   /afisha/afisha.css, после общего /site.css сайта. Здесь только классы .af-: карточка встречи (.g-ev),
   день (.g-day), факты (.g-facts), текст (.g-text), метки (.g-chip), кнопки (.btn) и токены (--accent, --chip,
   --mint, --shadow…) — из site.css, сам site.css не меняется. Внутри .g-page сайт обнуляет отступы у p и h1–h3,
   расстояния задают gap и отступы ниже. Без JS: фильтры — ссылки-капсулы высотой 44 px; на телефоне (360 px)
   карточки в одну колонку, горизонтальной прокрутки нет. */

.af-page { padding-top: 8px; }
.af-head { padding-bottom: 12px; }

/* Фильтры: вид, формат и направление — три ряда капсул с подписью слева (на телефоне — над рядом); выбранная —
   мятная, как текущий раздел меню */
.af-filters { display: flex; flex-direction: column; gap: 8px; }
.af-filter-row { display: flex; align-items: flex-start; gap: 4px 16px; }
.af-filter-name { flex: none; width: 120px; padding-top: 11px; color: var(--muted); font-size: 0.9rem; font-weight: 500; }
.af-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.af-filter li { margin: 0; }
.af-chip {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--chip);
  color: var(--fg);
  font-size: 0.95rem;
  text-decoration: none;
}
.af-chip:hover { background: #e3ebe8; }
.af-chip[aria-current="page"] { background: var(--mint); color: var(--accent); font-weight: 600; }
.af-note { padding-top: 12px; }

/* Направления (сферы колеса, docs/meetings-design.md 12): цветная точка в капсуле фильтра и в метке встречи
   (.g-chip). Цвета — из wheel.Spheres (бренд-пакет, те же, что .s-<ключ> в site.css): класс .af-s-<ключ>
   задаёт --af-sphere (TestAfishaSphereCSS); в разметке стилей нет. */
.af-dot {
  display: inline-block;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--af-sphere, var(--muted));
}
.af-chip .af-dot { margin-right: 8px; }
.af-s-health  { --af-sphere: #d06359; }
.af-s-career  { --af-sphere: #dca744; }
.af-s-finance { --af-sphere: #48823b; }
.af-s-family  { --af-sphere: #e281ad; }
.af-s-friends { --af-sphere: #1775ae; }
.af-s-growth  { --af-sphere: #683b92; }
.af-s-rest    { --af-sphere: #42b2ae; }
.af-s-meaning { --af-sphere: #844b07; }

/* День и встречи: время слева, справа места и кнопки записи — «Записаться на сайте», под ней «Записаться
   в Telegram» (сетка .g-ev из site.css, правая колонка шире под них; на iPad и телефоне site.css ставит всё в одну
   колонку) */
.af-day { gap: 16px; padding: 24px 0 8px; }
.af-time { font-size: 1.25rem; font-weight: 700; }
.af-seats { font-weight: 600; }
@media (min-width: 901px) {
  .af-ev { grid-template-columns: 140px minmax(0, 1fr) 250px; }
}

/* Клуб встречи (платформа клубов, docs/clubs-design.md 4.1): строка «Клуб «…»» под названием у встречи не
   основного клуба — ссылка на страницу клуба */
.af-club { color: var(--muted); font-size: 0.95rem; }
.af-club a { color: var(--accent); font-weight: 600; }

/* Места и запись: свободно — акцент, лист ожидания — янтарный, остальное — приглушённо; контраст ≥ 4,5:1 */
.af-open { color: var(--accent); }
.af-full { color: #7a4a05; }
.af-closed, .af-soon, .af-past { color: var(--muted); }
.af-canceled { color: var(--danger); }
.af-live { background: var(--mint); color: #0f6e5b; }

/* Страница встречи: заголовок скромнее, чем у страниц форматов; плашка «прошла» или «отменена» */
.af-event h1 { font-size: 2.6rem; line-height: 1.1; }
.af-alert { padding: 14px 18px; border-left: 4px solid var(--muted); border-radius: 0 16px 16px 0; background: var(--chip); }
.af-alert-canceled { border-left-color: var(--danger); background: #fdecea; color: #8a1f14; }
.af-alert-canceled a { color: inherit; }
@media (max-width: 900px) {
  .af-event h1 { font-size: 2.2rem; }
}
@media (max-width: 640px) {
  .af-event h1 { font-size: 1.9rem; }
  .af-filter-row { flex-direction: column; }
  .af-filter-name { width: auto; padding-top: 0; }
}
