/* ============================================================
 * Satya v26 — Events discovery (/events) per-view styles
 * ============================================================
 * The v26 chrome auto-loads only  core → theme → button → v26/base.css.
 * This sheet is <link>ed from app/Views/v26/events/index.php for the few
 * structural primitives the date-forward events catalogue needs that base.css
 * deliberately does not ship. TOKENS ONLY — every value below is geometry or
 * layout, never a raw color, so light/dark and every theme keep working by
 * swapping :root alone.
 *
 * Justified exceptions (each genuinely absent from v26/base.css):
 *
 *  1. .ev-filters / .ev-filters__actions — an inline multi-field filter bar
 *     (search + category + date + actions). base.css .s-row centres its items
 *     (misaligning label-topped fields) and .s-grid uses equal fractions; a
 *     filter bar wants bottom-aligned fields that grow, wrap, and push the
 *     actions to the trailing edge. No base primitive expresses that.
 *
 *  2. .ev-card — the date-forward event row: a fixed date tile beside a fluid
 *     body. base.css has no "leading fixed tile + fluid body" surface (.s-list
 *     row is icon-sized, not a 3.75rem calendar block; .s-grid is uniform).
 *     Selector is .s-card.ev-card so it beats a.s-card's display:block.
 *
 *  3. .ev-date (+ __month/__day) — the calendar date tile (month over day).
 *     A token-built analogue of the legacy dashboard's .dash-event-date; base
 *     ships no calendar/date-tile primitive.
 *
 *  4. .ev-body — a min-width:0 stack so long titles/meta truncate inside the
 *     grid column instead of forcing overflow (grid children default min-width
 *     is auto). base has no truncation-safe stack.
 *
 *  5. .ev-card .ev-title — 2-line clamp for event titles (same rationale as
 *     dashboard.css's title-clamp exception); also re-asserts the card-title
 *     scale over base's larger .s-main h2.
 *
 *  6. .ev-price — price emphasis on the card (weight + primary text tone),
 *     mirroring dashboard.css's .dash-rec__price. base has no price primitive.
 * ============================================================ */

/* ── Filter bar ─────────────────────────────────────────────── */
.ev-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-space-4);
  align-items: end;
  margin-bottom: var(--s-space-6);
}
.ev-filters .s-field { flex: 1 1 12rem; min-width: 0; }
.ev-filters__actions {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--s-space-3);
}

/* ── Event row (date tile + body) ───────────────────────────── */
.s-card.ev-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--s-space-4);
  align-items: center;
}

.ev-date {
  flex-shrink: 0;
  width: 3.75rem;
  padding: var(--s-space-2) 0;
  text-align: center;
  border-radius: var(--radius-md);
  background: var(--primary-50);
  line-height: 1.1;
}
.ev-date__month {
  display: block;
  font-size: var(--s-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--brand-primary);
}
.ev-date__day {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
}

.ev-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-space-2);
}
.ev-card .ev-title {
  font-size: var(--s-text-lg);
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.3;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ev-price {
  font-weight: 700;
  color: var(--text-primary);
}
