.cai-public {
  --cai-navy: #000947;
  --cai-navy-2: #081b63;
  --cai-yellow: #ffcc00;
  --cai-ink: #17191f;
  --cai-muted: #686d7d;
  --cai-soft: #f5f6f9;
  --cai-line: #e3e5ec;
  --cai-success: #0b7a53;
  --cai-danger: #b42318;
  --cai-shadow: 0 22px 60px rgba(0, 9, 71, .12), 0 2px 8px rgba(0, 9, 71, .06);
  box-sizing: border-box;
  width: min(1200px, calc(100% - 40px));
  max-width: 1200px;
  margin: 32px auto 72px;
  color: var(--cai-ink);
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.55;
}

.cai-public *, .cai-public *::before, .cai-public *::after { box-sizing: border-box; }
.cai-public h1, .cai-public h2, .cai-public h3, .cai-public h4 { font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; }
.cai-public a { color: var(--cai-navy); }
.cai-public button, .cai-public input, .cai-public select, .cai-public textarea { font: inherit; }
.cai-public button, .cai-public a { -webkit-tap-highlight-color: transparent; }
.cai-public :focus-visible { outline: 3px solid rgba(255, 204, 0, .7); outline-offset: 3px; }
.cai-public [hidden] { display: none !important; }
.cai-public-back { display: inline-flex; margin: 0 0 18px; color: var(--cai-muted) !important; font-size: 13px; font-weight: 700; text-decoration: none !important; }
.cai-public-back:hover { color: var(--cai-navy) !important; }
.cai-public-kicker, .cai-section-kicker { display: inline-block; color: var(--cai-navy); font-size: 11px; font-weight: 850; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.cai-public-notice, .cai-public-empty { max-width: 900px; margin: 30px auto; padding: 28px; border: 1px solid var(--cai-line); border-radius: 18px; background: var(--cai-soft); color: var(--cai-muted); }
.cai-public-empty strong, .cai-public-empty span { display: block; }
.cai-public-empty strong { margin-bottom: 4px; color: var(--cai-ink); }

/* Calendar and chronological list */
.cai-timetable { --cai-calendar-border: #dfe2eb; }
.cai-public-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.cai-public-heading h2 { margin: 5px 0 4px; color: var(--cai-navy); font-size: clamp(38px, 5vw, 56px); font-weight: 700; line-height: .98; letter-spacing: -.025em; }
.cai-public-heading p { max-width: 600px; margin: 9px 0 0; color: var(--cai-muted); font-size: 14px; }
.cai-calendar-subscribe { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 15px; border: 1px solid var(--cai-navy); border-radius: 10px; color: var(--cai-navy) !important; font-size: 12px; font-weight: 700; text-decoration: none !important; white-space: nowrap; }
.cai-calendar-subscribe:hover { background: var(--cai-navy); color: #fff !important; }
.cai-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding: 7px; border: 1px solid var(--cai-line); border-radius: 14px; background: #fff; box-shadow: 0 6px 24px rgba(0,9,71,.055); }
.cai-calendar-search { display: flex; flex: 1; align-items: center; gap: 9px; min-width: 0; padding-left: 10px; color: var(--cai-muted); }
.cai-calendar-search > span { font-size: 22px; line-height: 1; transform: rotate(-15deg); }
.cai-calendar-search input { width: 100%; min-height: 38px; padding: 5px 0; border: 0 !important; background: transparent !important; color: var(--cai-ink); font-size: 13px; box-shadow: none !important; outline: 0; }
.cai-calendar-search input::placeholder { color: #8b8f9d; }
.cai-public-view-switch { display: flex; flex: 0 0 auto; padding: 3px; border-radius: 10px; background: #eef0f5; }
.cai-public-view-switch button { min-width: 86px; min-height: 44px; padding: 7px 13px; border: 0; border-radius: 8px; background: transparent; color: var(--cai-muted); font-size: 12px; font-weight: 700; cursor: pointer; }
.cai-public-view-switch button.is-active { background: #fff; color: var(--cai-navy); box-shadow: 0 2px 8px rgba(0,9,71,.11); }
.cai-calendar-panel { overflow: hidden; border: 1px solid var(--cai-calendar-border); border-radius: 20px; background: #fff; box-shadow: 0 14px 42px rgba(0,9,71,.07); }
.cai-month-navigation { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 74px; padding: 12px 18px; border-bottom: 1px solid var(--cai-calendar-border); }
.cai-month-navigation > div { display: flex; gap: 8px; }
.cai-month-navigation h3 { margin: 0; color: var(--cai-navy); font-size: 25px; font-weight: 700; letter-spacing: -.015em; text-align: center; }
.cai-month-arrow, .cai-month-today { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid var(--cai-line); background: #fff; color: var(--cai-navy) !important; font-size: 12px; font-weight: 700; text-decoration: none !important; }
.cai-month-arrow { width: 44px; border-radius: 50%; font-size: 17px; }
.cai-month-navigation > .cai-month-arrow { justify-self: end; }
.cai-month-today { padding: 7px 12px; border-radius: 9px; }
.cai-month-arrow:hover, .cai-month-today:hover { border-color: var(--cai-navy); box-shadow: 0 4px 12px rgba(0,9,71,.08); }
.cai-calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); border-bottom: 1px solid var(--cai-calendar-border); background: #f7f8fb; }
.cai-calendar-weekdays span { padding: 10px 12px; border-right: 1px solid var(--cai-calendar-border); color: var(--cai-muted); font-size: 10px; font-weight: 700; letter-spacing: .09em; text-align: right; text-transform: uppercase; }
.cai-calendar-weekdays span:last-child { border-right: 0; }
.cai-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); }
.cai-calendar-day { min-width: 0; min-height: 155px; padding: 9px; border-right: 1px solid var(--cai-calendar-border); border-bottom: 1px solid var(--cai-calendar-border); background: #fff; }
.cai-calendar-day:nth-child(7n) { border-right: 0; }
.cai-calendar-day:nth-last-child(-n+7) { border-bottom: 0; }
.cai-calendar-day.is-outside { background: #fafbfc; }
.cai-calendar-day.is-outside > header, .cai-calendar-day.is-outside .cai-calendar-event { opacity: .48; }
.cai-calendar-day > header { display: flex; align-items: center; justify-content: flex-end; gap: 6px; min-height: 26px; margin-bottom: 5px; }
.cai-calendar-day > header span { display: none; color: var(--cai-muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.cai-calendar-day > header b { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: var(--cai-ink); font-size: 11px; }
.cai-calendar-day > header i { display: none; }
.cai-calendar-day.is-today > header b { background: var(--cai-yellow); color: var(--cai-navy); }
.cai-calendar-events { display: grid; gap: 5px; max-height: 116px; overflow: auto; scrollbar-width: thin; }
.cai-calendar-event { display: block; min-width: 0; padding: 7px 8px; border-left: 3px solid var(--cai-event-color, var(--cai-yellow)); border-radius: 7px; background: var(--cai-event-tint, #f1f3f9); color: var(--cai-navy) !important; text-decoration: none !important; transition: background .16s, transform .16s, box-shadow .16s; }
.cai-calendar-event:hover { background: #fff8d9; box-shadow: 0 5px 15px rgba(0,9,71,.09); transform: translateY(-1px); }
.cai-calendar-event > span { display: flex; justify-content: space-between; gap: 5px; }
.cai-calendar-event time, .cai-calendar-event > span b { overflow: hidden; color: var(--cai-muted); font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cai-calendar-event strong, .cai-calendar-event small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cai-calendar-event strong { margin: 2px 0; font-size: 10px; line-height: 1.3; }
.cai-calendar-event small { color: var(--cai-muted); font-size: 8px; }
.cai-calendar-event.is-exception { border-left-color: #d68b13; }
.cai-calendar-event.is-sold-out { border-left-color: #a6a9b3; filter: grayscale(.5); }
.cai-month-empty { display: flex; align-items: center; gap: 16px; margin: 18px; padding: 18px; border-radius: 14px; background: var(--cai-soft); }
.cai-month-empty > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #fff; color: var(--cai-navy); font-size: 22px; }
.cai-month-empty div { flex: 1; }
.cai-month-empty strong, .cai-month-empty p { display: block; margin: 0; }
.cai-month-empty p { margin-top: 2px; color: var(--cai-muted); font-size: 11px; }
.cai-month-empty a { font-size: 11px; font-weight: 700; text-decoration: none; }
.cai-mobile-month-agenda { display: none; }
.cai-list-panel { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--cai-calendar-border); border-radius: 20px; background: #fff; box-shadow: 0 14px 42px rgba(0,9,71,.07); }
.cai-list-day { display: grid; grid-template-columns: 92px minmax(0,1fr); border-bottom: 1px solid var(--cai-calendar-border); }
.cai-list-day:last-child { border-bottom: 0; }
.cai-list-date { padding: 25px 18px; border-right: 1px solid var(--cai-calendar-border); background: #fafbfc; text-align: center; }
.cai-list-date span, .cai-list-date strong, .cai-list-date small { display: block; }
.cai-list-date span { color: var(--cai-muted); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cai-list-date strong { margin: 2px 0; color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", sans-serif; font-size: 31px; line-height: 1; }
.cai-list-date small { color: var(--cai-muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.cai-list-events { min-width: 0; }
.cai-list-event { display: grid; grid-template-columns: 106px minmax(0,1fr) 120px; gap: 18px; align-items: center; min-height: 118px; padding: 16px 20px; border-bottom: 1px solid var(--cai-calendar-border); color: var(--cai-ink) !important; text-decoration: none !important; transition: background .16s, padding .16s; }
.cai-list-event:last-child { border-bottom: 0; }
.cai-list-event:hover { padding-left: 26px; background: #fafbfe; }
.cai-list-image { width: 106px; height: 78px; border-radius: 11px; background-position: center; background-size: cover; }
.cai-list-image.is-placeholder { display: grid; place-items: center; background: var(--cai-navy); color: var(--cai-yellow); }
.cai-list-image i { font-style: normal; font-weight: 800; }
.cai-list-copy { min-width: 0; }
.cai-list-copy small, .cai-list-copy strong, .cai-list-copy em { display: block; }
.cai-list-copy small { color: var(--cai-muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.cai-list-copy strong { margin: 5px 0; color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", sans-serif; font-size: 21px; line-height: 1.15; }
.cai-list-copy em { overflow: hidden; color: var(--cai-muted); font-size: 11px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.cai-list-meta { display: grid; justify-items: end; gap: 6px; }
.cai-list-meta > b { color: var(--cai-navy); font-size: 12px; }
.cai-list-meta > small { padding: 4px 7px; border-radius: 999px; background: #eaf8f2; color: var(--cai-success); font-size: 9px; font-weight: 700; }
.cai-list-meta > small.is-limited, .cai-list-meta > small.is-waitlist { background: #fff5d6; color: #805f00; }
.cai-list-meta > small.is-sold-out { background: #f0f1f4; color: var(--cai-muted); }
.cai-list-meta > small.is-notice { background: #eef2f9; color: #405071; }
.cai-list-meta > i { color: var(--cai-navy); font-size: 18px; font-style: normal; }
.cai-search-empty { margin: 18px 0; padding: 24px; border-radius: 14px; background: var(--cai-soft); text-align: center; }
.cai-search-empty strong, .cai-search-empty span { display: block; }
.cai-search-empty span { margin-top: 3px; color: var(--cai-muted); font-size: 11px; }

/* Event story */
.cai-event-detail { overflow: visible; }
.cai-event-hero { position: relative; min-height: clamp(430px, 55vw, 650px); overflow: hidden; border-radius: 28px; background: radial-gradient(circle at 85% 18%, #243c8b 0, transparent 34%), linear-gradient(135deg, var(--cai-navy), #06155d 62%, #12277a); color: #fff; isolation: isolate; }
.cai-event-hero.has-image { background-image: var(--cai-hero-image); background-position: center; background-size: cover; }
.cai-event-hero-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0, 9, 71, .94) 0%, rgba(0, 9, 71, .62) 48%, rgba(0, 9, 71, .08) 85%), linear-gradient(0deg, rgba(0, 0, 20, .45), transparent 55%); }
.cai-event-hero-copy { display: flex; flex-direction: column; justify-content: flex-end; min-height: inherit; width: min(720px, 80%); padding: clamp(34px, 7vw, 86px); }
.cai-event-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.cai-event-badges span { display: inline-flex; padding: 7px 11px; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; background: rgba(0, 9, 71, .48); color: #fff; font-size: 11px; font-weight: 850; letter-spacing: .04em; backdrop-filter: blur(9px); }
.cai-event-badges .is-availability { border-color: var(--cai-yellow); background: var(--cai-yellow); color: var(--cai-navy); }
.cai-event-hero h1 { max-width: 720px; margin: 0; color: #fff; font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; font-size: clamp(42px, 6.5vw, 78px); font-weight: 700; letter-spacing: -.035em; line-height: .98; text-wrap: balance; }
.cai-event-hero p { max-width: 650px; margin: 22px 0 0; color: rgba(255,255,255,.9); font-size: clamp(16px, 2vw, 20px); line-height: 1.5; }
.cai-mobile-book { display: none; }
.cai-event-facts { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: calc(100% - 64px); margin: -38px auto 0; border: 1px solid rgba(0,9,71,.08); border-radius: 18px; background: #fff; box-shadow: var(--cai-shadow); }
.cai-event-facts > div { min-width: 0; padding: 22px 24px; border-right: 1px solid var(--cai-line); }
.cai-event-facts > div:last-child { border-right: 0; }
.cai-event-facts span, .cai-event-facts strong { display: block; }
.cai-event-facts span { margin-bottom: 5px; color: var(--cai-muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cai-event-facts strong { overflow: hidden; color: var(--cai-navy); font-size: 14px; line-height: 1.35; text-overflow: ellipsis; }
.cai-event-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: clamp(42px, 7vw, 92px); align-items: start; padding: clamp(52px, 7vw, 90px) 32px 0; }
.cai-event-content { min-width: 0; }
.cai-event-lead { margin: 0 0 54px; color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; font-size: clamp(24px, 3vw, 34px); font-weight: 600; line-height: 1.25; }
.cai-event-section { padding: 0 0 52px; }
.cai-event-section + .cai-event-section { padding-top: 52px; border-top: 1px solid var(--cai-line); }
.cai-event-section h2 { margin: 9px 0 22px; color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; font-size: clamp(29px, 3.5vw, 42px); font-weight: 700; line-height: 1.05; letter-spacing: -.02em; }
.cai-event-section h3 { margin: 0 0 6px; color: var(--cai-navy); font-size: 18px; }
.cai-event-description { color: #3f424c; font-size: 17px; line-height: 1.75; }
.cai-event-description > :first-child { margin-top: 0; }
.cai-event-description > :last-child { margin-bottom: 0; }
.cai-event-video > div { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 18px; background: var(--cai-navy); }
.cai-event-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cai-event-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cai-event-highlights > div { display: flex; gap: 12px; min-height: 86px; padding: 17px; border-radius: 14px; background: var(--cai-soft); font-size: 14px; font-weight: 650; }
.cai-event-highlights i { display: grid; flex: 0 0 24px; height: 24px; place-items: center; border-radius: 50%; background: var(--cai-yellow); color: var(--cai-navy); font-size: 12px; font-style: normal; font-weight: 900; }
.cai-event-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 24px; padding: 0; list-style: none; }
.cai-event-checklist li { position: relative; padding: 10px 0 10px 28px; border-bottom: 1px solid var(--cai-line); }
.cai-event-checklist li::before { position: absolute; left: 2px; color: var(--cai-success); content: "✓"; font-weight: 900; }
.cai-public-agenda { margin: 0; background: transparent; }
.cai-public-agenda > div { display: grid; grid-template-columns: 94px 1fr; gap: 20px; padding: 18px 0; border-top: 1px solid var(--cai-line); }
.cai-public-agenda time { color: var(--cai-navy); font-size: 13px; font-weight: 850; }
.cai-public-agenda span strong, .cai-public-agenda span small { display: block; }
.cai-public-agenda span small { margin-top: 4px; color: var(--cai-muted); font-size: 13px; }
.cai-organizer-card { display: grid; grid-template-columns: 82px 1fr; gap: 20px; align-items: start; padding: 24px; border-radius: 18px; background: var(--cai-soft); }
.cai-organizer-card img, .cai-organizer-avatar { width: 82px; height: 82px; border-radius: 50%; object-fit: cover; }
.cai-organizer-avatar { display: grid; place-items: center; background: var(--cai-navy); color: var(--cai-yellow); font-weight: 900; }
.cai-organizer-card p { margin: 7px 0 12px; color: var(--cai-muted); font-size: 14px; }
.cai-organizer-links { display: flex; flex-wrap: wrap; gap: 14px; }
.cai-organizer-links a, .cai-inline-action { font-size: 12px; font-weight: 800; text-decoration: none; }
.cai-venue-card { overflow: hidden; border: 1px solid var(--cai-line); border-radius: 18px; }
.cai-venue-card iframe { display: block; width: 100%; height: 260px; border: 0; filter: saturate(.75); }
.cai-venue-card > div { padding: 22px; }
.cai-venue-card p { margin: 5px 0 12px; color: var(--cai-muted); font-size: 14px; }
.cai-event-faqs details { border-top: 1px solid var(--cai-line); }
.cai-event-faqs details:last-child { border-bottom: 1px solid var(--cai-line); }
.cai-event-faqs summary { display: flex; justify-content: space-between; gap: 24px; padding: 19px 0; color: var(--cai-navy); font-weight: 800; cursor: pointer; list-style: none; }
.cai-event-faqs summary::-webkit-details-marker { display: none; }
.cai-event-faqs summary span { font-size: 20px; transition: transform .2s; }
.cai-event-faqs details[open] summary span { transform: rotate(45deg); }
.cai-event-faqs details p { margin: -4px 0 22px; color: var(--cai-muted); }
.cai-event-actions { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 8px; }
.cai-event-actions a, .cai-event-actions button, .cai-confirmation-actions a, .cai-confirmation-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 14px; border: 1px solid var(--cai-line); border-radius: 10px; background: #fff; color: var(--cai-navy); font-size: 12px; font-weight: 800; text-decoration: none; cursor: pointer; }
.cai-event-actions a:hover, .cai-event-actions button:hover { border-color: var(--cai-navy); }

/* Progressive reservation card */
.cai-booking-aside { position: sticky; top: 28px; }
.cai-booking-card { margin: 0; padding: 28px; border: 1px solid rgba(0,9,71,.1); border-radius: 22px; background: #fff; box-shadow: var(--cai-shadow); }
.cai-booking-card h2 { margin: 6px 0 18px; color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; font-size: 31px; font-weight: 700; line-height: 1.05; }
.cai-booking-card.is-closed p { color: var(--cai-muted); font-size: 14px; }
.cai-booking-progress { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 0 0 26px; padding: 0; list-style: none; }
.cai-booking-progress li { position: relative; padding-top: 8px; border-top: 3px solid var(--cai-line); color: #9296a5; font-size: 9px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.cai-booking-progress li b { display: none; }
.cai-booking-progress li.is-active, .cai-booking-progress li.is-complete { border-color: var(--cai-yellow); color: var(--cai-navy); }
.cai-booking-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.cai-booking-form fieldset + fieldset { margin-top: 24px; }
.cai-booking-form legend { margin: 0 0 11px; color: var(--cai-navy); font-size: 12px; font-weight: 850; }
.cai-occurrence-options, .cai-ticket-types { display: grid; gap: 8px; }
.cai-occurrence-options label, .cai-ticket-types > label { display: flex; gap: 11px; align-items: center; min-height: 62px; padding: 12px; border: 1px solid var(--cai-line); border-radius: 12px; background: #fff; cursor: pointer; transition: border .16s, box-shadow .16s, transform .16s; }
.cai-occurrence-options label:hover, .cai-ticket-types > label:hover { border-color: #a9aec0; }
.cai-occurrence-options label:has(input:checked), .cai-ticket-types > label:has(input:checked) { border-color: var(--cai-navy); box-shadow: 0 0 0 2px rgba(0,9,71,.08); }
.cai-occurrence-options label.is-full:not(:has(input:not(:disabled))), .cai-ticket-types > label.is-unavailable { opacity: .48; cursor: not-allowed; }
.cai-occurrence-options input[type="radio"], .cai-ticket-types input[type="radio"] { display: inline-block !important; flex: 0 0 16px; width: 16px !important; min-width: 16px !important; max-width: 16px !important; height: 16px !important; min-height: 16px !important; margin: 0 !important; padding: 0 !important; border-radius: 50%; accent-color: var(--cai-navy); appearance: auto; }
.cai-occurrence-options span, .cai-ticket-types > label span { flex: 1; min-width: 0; }
.cai-occurrence-options strong, .cai-occurrence-options small, .cai-ticket-types strong, .cai-ticket-types small { display: block; }
.cai-occurrence-options strong, .cai-ticket-types strong { color: var(--cai-ink); font-size: 12px; line-height: 1.35; }
.cai-occurrence-options small, .cai-ticket-types small { margin-top: 3px; color: var(--cai-muted); font-size: 10px; line-height: 1.35; }
.cai-ticket-types > label > b { color: var(--cai-navy); font-size: 12px; }
.cai-ticket-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: end; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--cai-line); }
.cai-ticket-footer > label { color: var(--cai-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.cai-quantity { display: grid; grid-template-columns: 44px 44px 44px; width: max-content; margin-top: 6px; overflow: hidden; border: 1px solid var(--cai-line); border-radius: 9px; }
.cai-quantity button, .cai-quantity input { width: 100%; height: 44px; padding: 0; border: 0; background: #fff; color: var(--cai-navy); text-align: center; }
.cai-quantity button { font-size: 18px; font-weight: 700; cursor: pointer; }
.cai-quantity input { border-right: 1px solid var(--cai-line); border-left: 1px solid var(--cai-line); font-size: 12px; font-weight: 800; appearance: textfield; }
.cai-price-summary { text-align: right; }
.cai-price-summary span, .cai-price-summary strong, .cai-price-summary small { display: block; }
.cai-price-summary span, .cai-price-summary small { color: var(--cai-muted); font-size: 9px; }
.cai-price-summary strong { margin: 2px 0; color: var(--cai-navy); font-size: 20px; }
.cai-booking-step > h3 { margin: 0 0 5px; color: var(--cai-navy); font-size: 20px; }
.cai-booking-step > p { margin: 0 0 20px; color: var(--cai-muted); font-size: 12px; }
.cai-booking-fields, .cai-custom-booking-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cai-custom-booking-fields { margin-top: 14px; }
.cai-additional-attendees { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--cai-line); }
.cai-additional-attendees h4 { margin: 0 0 11px; color: var(--cai-navy); font-size: 12px; }
.cai-additional-attendees + .cai-additional-attendees { margin-top: 14px; }
.cai-field, .cai-booking-fields > label { display: block; color: #454956; font-size: 11px; font-weight: 750; }
.cai-field-wide { grid-column: 1 / -1; }
.cai-field input:not([type="checkbox"]):not([type="radio"]), .cai-field select, .cai-field textarea, .cai-booking-fields input { display: block; width: 100%; min-height: 44px; margin-top: 6px; padding: 9px 11px; border: 1px solid #d7dae3; border-radius: 9px; background: #fff; color: var(--cai-ink); }
.cai-field textarea { min-height: 92px; resize: vertical; }
.cai-field input:focus, .cai-field select:focus, .cai-field textarea:focus, .cai-booking-fields input:focus { border-color: var(--cai-navy); outline: 0; box-shadow: 0 0 0 3px rgba(0,9,71,.09); }
.cai-choice-field { display: grid; gap: 7px; }
.cai-choice-field legend { margin-bottom: 2px; }
.cai-choice-field label, .cai-agreement-field, .cai-terms-confirm { display: flex; gap: 9px; align-items: flex-start; padding: 10px 11px; border-radius: 9px; background: var(--cai-soft); font-size: 11px; font-weight: 650; }
.cai-choice-field input, .cai-agreement-field input, .cai-terms-confirm input { flex: 0 0 auto; margin-top: 3px; accent-color: var(--cai-navy); }
.cai-choice-field input[type="checkbox"], .cai-choice-field input[type="radio"], .cai-agreement-field input[type="checkbox"], .cai-terms-confirm input[type="checkbox"] { display: inline-block !important; flex: 0 0 16px; width: 16px !important; min-width: 16px !important; max-width: 16px !important; height: 16px !important; min-height: 16px !important; margin: 2px 0 0 !important; padding: 0 !important; appearance: auto; }
.cai-agreement-field span, .cai-terms-confirm span { flex: 1; min-width: 0; }
.cai-booking-review { border: 1px solid var(--cai-line); border-radius: 13px; }
.cai-booking-review > div { display: grid; grid-template-columns: 72px 1fr; gap: 12px; padding: 11px 13px; border-bottom: 1px solid var(--cai-line); }
.cai-booking-review > div:last-child { border-bottom: 0; }
.cai-booking-review span { color: var(--cai-muted); font-size: 10px; }
.cai-booking-review strong { color: var(--cai-ink); font-size: 11px; text-align: right; }
.cai-booking-review .is-total { background: var(--cai-soft); }
.cai-booking-review .is-total strong { color: var(--cai-navy); font-size: 15px; }
.cai-terms-confirm { margin-top: 16px; }
.cai-booking-security { margin: 14px 0 0 !important; color: var(--cai-muted); font-size: 9px !important; text-align: center; }
.cai-form-error { margin: 0 0 16px; padding: 10px 12px; border-radius: 9px; background: #fef3f2; color: var(--cai-danger); font-size: 11px; font-weight: 700; }
.cai-booking-nav { display: flex; gap: 9px; margin-top: 22px; }
.cai-public-button, .cai-booking-back { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 17px; border: 0; border-radius: 11px; font-size: 12px; font-weight: 850; text-decoration: none !important; cursor: pointer; }
.cai-public-button { flex: 1; background: var(--cai-yellow); color: var(--cai-navy) !important; box-shadow: 0 8px 20px rgba(255,204,0,.22); }
.cai-public-button:hover { background: #f3c300; transform: translateY(-1px); }
.cai-public-button:disabled { opacity: .6; cursor: wait; transform: none; }
.cai-booking-back { flex: 0 0 auto; border: 1px solid var(--cai-line); background: #fff; color: var(--cai-navy); }

/* Confirmation ticket */
.cai-ticket-confirmation { width: min(940px, calc(100% - 40px)); margin: 30px auto; padding: 26px; border: 1px solid #bde8d7; border-radius: 22px; background: #f2fbf7; color: var(--cai-ink); box-shadow: 0 18px 45px rgba(11,122,83,.11); }
.cai-confirmation-status { display: flex; gap: 13px; align-items: center; margin-bottom: 20px; }
.cai-confirmation-status i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: var(--cai-success); color: #fff; font-style: normal; font-weight: 900; }
.cai-confirmation-status span, .cai-confirmation-status strong { display: block; }
.cai-confirmation-status span { color: var(--cai-success); font-size: 11px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cai-confirmation-status strong { color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; font-size: 24px; font-weight: 700; }
.cai-confirmation-ticket { display: grid; grid-template-columns: 1fr 260px; overflow: hidden; border: 1px solid var(--cai-line); border-radius: 16px; background: #fff; }
.cai-confirmation-main { padding: 24px; }
.cai-confirmation-main h2 { margin: 5px 0 18px; color: var(--cai-navy); font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif; font-size: 28px; font-weight: 700; line-height: 1.1; }
.cai-confirmation-main dl { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin: 0; }
.cai-confirmation-main dt { color: var(--cai-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.cai-confirmation-main dd { margin: 2px 0 0; color: var(--cai-ink); font-size: 12px; font-weight: 750; }
.cai-confirmation-code { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: 20px; border-left: 1px dashed #b8bdca; color: var(--cai-navy); text-align: center; }
.cai-confirmation-scan { margin-bottom: 9px; color: var(--cai-navy); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.cai-qrcode { display: grid; width: 168px; height: 168px; place-items: center; padding: 12px; border: 1px solid var(--cai-line); border-radius: 13px; background: #fff; color: var(--cai-muted); font-size: 11px; font-weight: 800; }
.cai-qrcode canvas { display: block; width: 144px; height: 144px; image-rendering: pixelated; }
.cai-confirmation-barcode { width: 100%; margin-top: 11px; padding-top: 8px; border-top: 1px solid var(--cai-line); }
.cai-confirmation-barcode small { display: block; margin-bottom: 3px; color: var(--cai-muted); font-size: 7px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.cai-barcode { display: block; width: 100%; max-height: 42px; opacity: .7; }
.cai-confirmation-code > span { margin-top: 8px; font: 700 10px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.cai-confirmation-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.cai-ticket-confirmation.is-waitlist { border-color: #f0d78d; background: #fff9e9; box-shadow: 0 18px 45px rgba(166,115,0,.09); }
.cai-ticket-confirmation.is-waitlist .cai-confirmation-status i { background: #a66b00; }
.cai-ticket-confirmation.is-waitlist .cai-confirmation-status span { color: #8b5b00; }

@media (max-width: 960px) {
  .cai-calendar-day { min-height: 140px; padding: 7px; }
  .cai-calendar-event { padding: 6px; }
  .cai-list-event { grid-template-columns: 90px minmax(0,1fr) 105px; }
  .cai-list-image { width: 90px; height: 70px; }
  .cai-event-facts { grid-template-columns: repeat(2, 1fr); }
  .cai-event-facts > div:nth-child(2) { border-right: 0; }
  .cai-event-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--cai-line); }
  .cai-event-layout { grid-template-columns: minmax(0, 1fr) 350px; gap: 38px; padding-inline: 10px; }
}

@media (max-width: 780px) {
  .cai-public { width: min(100% - 24px, 1200px); margin-top: 18px; }
  .cai-public-heading { align-items: flex-start; flex-direction: column; }
  .cai-public-heading h2 { font-size: clamp(37px, 12vw, 51px); }
  .cai-calendar-subscribe { width: 100%; }
  .cai-calendar-toolbar { align-items: stretch; flex-direction: column; padding: 8px; }
  .cai-calendar-search { min-height: 44px; border-bottom: 1px solid var(--cai-line); }
  .cai-public-view-switch { width: 100%; }
  .cai-public-view-switch button { flex: 1; }
  .cai-calendar-panel { overflow: hidden; }
  .cai-month-navigation { grid-template-columns: 1fr auto 1fr; min-height: 64px; padding: 5px; }
  .cai-month-navigation > div { gap: 4px; }
  .cai-month-navigation h3 { font-size: 19px; }
  .cai-month-arrow { width: 44px; min-height: 44px; }
  .cai-month-today { min-width: 46px; min-height: 44px; padding: 5px 6px; }
  .cai-calendar-weekdays span { padding: 8px 2px; font-size: 8px; text-align: center; }
  .cai-calendar-day { min-height: 62px; padding: 4px 2px; }
  .cai-calendar-day > header { justify-content: center; min-height: 24px; margin: 0; }
  .cai-calendar-day > header b { width: 24px; height: 24px; font-size: 10px; }
  .cai-calendar-events { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; max-height: 22px; overflow: hidden; padding: 3px 1px; }
  .cai-calendar-event { width: 18px; height: 18px; min-height: 18px; padding: 0; border: 0; border-radius: 50%; background: radial-gradient(circle, var(--cai-event-color, var(--cai-yellow)) 0 4px, transparent 5px); box-shadow: none; }
  .cai-calendar-event > * { display: none !important; }
  .cai-calendar-event.is-exception { background: radial-gradient(circle, #d68b13 0 4px, transparent 5px); }
  .cai-calendar-event.is-sold-out { background: radial-gradient(circle, #a6a9b3 0 4px, transparent 5px); }
  .cai-month-empty { align-items: flex-start; flex-direction: column; margin: 12px; }
  .cai-mobile-month-agenda { display: block; padding: 18px 14px; border-top: 1px solid var(--cai-calendar-border); }
  .cai-mobile-month-agenda h4 { margin: 0 0 10px; color: var(--cai-navy); font-size: 19px; }
  .cai-mobile-month-agenda > p { margin: 0; color: var(--cai-muted); font-size: 11px; }
  .cai-mobile-month-agenda > a { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 12px 0; border-top: 1px solid var(--cai-line); color: var(--cai-ink) !important; text-decoration: none !important; }
  .cai-mobile-month-agenda time { display: grid; width: 39px; height: 45px; place-items: center; align-content: center; border-radius: 9px; background: var(--cai-navy); color: #fff; }
  .cai-mobile-month-agenda time b, .cai-mobile-month-agenda time span { line-height: 1; }
  .cai-mobile-month-agenda time b { font-size: 16px; }
  .cai-mobile-month-agenda time span { margin-top: 3px; color: var(--cai-yellow); font-size: 8px; font-weight: 700; text-transform: uppercase; }
  .cai-mobile-month-agenda > a > span { min-width: 0; }
  .cai-mobile-month-agenda small, .cai-mobile-month-agenda strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cai-mobile-month-agenda small { color: var(--cai-muted); font-size: 8px; text-transform: uppercase; }
  .cai-mobile-month-agenda strong { margin-top: 3px; color: var(--cai-navy); font-size: 11px; }
  .cai-mobile-month-agenda em { color: var(--cai-navy); font-size: 9px; font-style: normal; font-weight: 700; white-space: nowrap; }
  .cai-list-day { grid-template-columns: 64px minmax(0,1fr); }
  .cai-list-date { padding: 20px 9px; }
  .cai-list-date strong { font-size: 27px; }
  .cai-list-event { grid-template-columns: 70px minmax(0,1fr); gap: 12px; min-height: 102px; padding: 13px; }
  .cai-list-event:hover { padding-left: 13px; }
  .cai-list-image { width: 70px; height: 65px; }
  .cai-list-copy strong { font-size: 18px; }
  .cai-list-copy em { display: none; }
  .cai-list-meta { grid-column: 2; grid-template-columns: auto auto 1fr; justify-items: start; margin-top: -6px; }
  .cai-list-meta > i { justify-self: end; }
  .cai-event-hero { min-height: 520px; border-radius: 20px; }
  .cai-event-hero-shade { background: linear-gradient(0deg, rgba(0,9,71,.96) 0%, rgba(0,9,71,.6) 64%, rgba(0,9,71,.12) 100%); }
  .cai-event-hero-copy { width: 100%; padding: 28px 24px; }
  .cai-event-hero h1 { font-size: clamp(39px, 12vw, 58px); }
  .cai-mobile-book { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: 22px; border-radius: 11px; background: var(--cai-yellow); color: var(--cai-navy) !important; font-size: 13px; font-weight: 850; text-decoration: none !important; }
  .cai-event-facts { width: calc(100% - 20px); margin-top: -22px; }
  .cai-event-facts > div { padding: 16px; }
  .cai-event-layout { display: flex; flex-direction: column; gap: 52px; padding: 52px 4px 0; }
  .cai-booking-aside { position: static; order: -1; width: 100%; }
  .cai-event-content { width: 100%; }
  .cai-event-highlights, .cai-event-checklist { grid-template-columns: 1fr; }
  .cai-booking-fields, .cai-custom-booking-fields { grid-template-columns: 1fr; }
  .cai-ticket-confirmation { width: min(100% - 24px, 940px); padding: 18px; }
  .cai-confirmation-ticket { grid-template-columns: 1fr; }
  .cai-confirmation-code { border-top: 1px dashed #b8bdca; border-left: 0; }
}

@media (max-width: 480px) {
  .cai-list-event { grid-template-columns: 1fr; }
  .cai-list-image { display: none; }
  .cai-list-meta { grid-column: 1; }
  .cai-event-facts strong { font-size: 12px; }
  .cai-booking-card { padding: 22px 18px; }
  .cai-booking-card h2 { font-size: 28px; }
  .cai-booking-nav { display: grid; grid-template-columns: 1fr; padding-right: 58px; }
  .cai-booking-nav > button { width: 100%; }
  .cai-booking-nav .cai-public-button { order: 1; }
  .cai-booking-nav .cai-booking-back { order: 2; }
  .cai-ticket-footer { grid-template-columns: 1fr; }
  .cai-price-summary { text-align: left; }
  .cai-organizer-card { grid-template-columns: 58px 1fr; padding: 18px; }
  .cai-organizer-card img, .cai-organizer-avatar { width: 58px; height: 58px; }
  .cai-confirmation-main dl { grid-template-columns: 1fr; }
  .cai-confirmation-actions > * { flex: 1 1 calc(50% - 5px); }
}

@media (min-width: 600px) and (max-width: 780px) {
  .cai-public-heading { align-items: end; flex-direction: row; }
  .cai-public-heading h2 { font-size: 48px; }
  .cai-calendar-subscribe { width: auto; }
  .cai-calendar-toolbar { align-items: center; flex-direction: row; padding: 7px; }
  .cai-calendar-search { border-bottom: 0; }
  .cai-public-view-switch { width: auto; }
  .cai-public-view-switch button { flex: 0 0 auto; min-width: 92px; }
  .cai-calendar-day { min-height: 112px; padding: 6px; }
  .cai-calendar-day > header { justify-content: flex-end; margin-bottom: 4px; }
  .cai-calendar-events { display: grid; justify-content: stretch; max-height: 76px; overflow: auto; padding: 0; }
  .cai-calendar-event { display: block; width: auto; height: auto; min-height: 0; padding: 6px; border-left: 3px solid var(--cai-event-color, var(--cai-yellow)); border-radius: 7px; background: var(--cai-event-tint, #f1f3f9); box-shadow: none; }
  .cai-calendar-event > * { display: block !important; }
  .cai-calendar-event > span { display: flex !important; }
  .cai-calendar-event strong { font-size: 9px; }
  .cai-calendar-event small { display: none !important; }
  .cai-calendar-event.is-exception { background: #f1f3f9; border-left-color: #d68b13; }
  .cai-calendar-event.is-sold-out { background: #f1f3f9; border-left-color: #a6a9b3; }
  .cai-mobile-month-agenda { display: none; }
  .cai-event-layout { padding-inline: 10px; }
  .cai-booking-aside { width: min(100%, 640px); margin-inline: auto; }
  .cai-booking-fields, .cai-custom-booking-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cai-confirmation-ticket { grid-template-columns: minmax(0, 1fr) 240px; }
  .cai-confirmation-code { border-top: 0; border-left: 1px dashed #b8bdca; }
}

@media (min-width: 781px) and (max-width: 1023px) {
  .cai-event-layout { display: flex; flex-direction: column; gap: 58px; padding: 58px 10px 0; }
  .cai-booking-aside { position: static; order: -1; width: min(100%, 640px); margin-inline: auto; }
  .cai-event-content { width: 100%; }
  .cai-mobile-book { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: 22px; border-radius: 11px; background: var(--cai-yellow); color: var(--cai-navy) !important; font-size: 13px; font-weight: 850; text-decoration: none !important; }
}

@media (max-width: 360px) {
  .cai-public-heading h2 { font-size: 36px; }
  .cai-event-hero-copy { padding: 26px 20px; }
  .cai-event-hero h1 { font-size: 36px; }
  .cai-event-hero p { font-size: 15px; }
  .cai-event-facts > div { padding: 14px 12px; }
  .cai-mobile-month-agenda { padding-inline: 12px; }
  .cai-mobile-month-agenda > a { grid-template-columns: 40px minmax(0, 1fr); }
  .cai-mobile-month-agenda em { grid-column: 2; }
}

@media print {
  body * { visibility: hidden !important; }
  .cai-ticket-confirmation, .cai-ticket-confirmation * { visibility: visible !important; }
  .cai-ticket-confirmation { position: absolute; inset: 0 auto auto 0; width: 100%; margin: 0; border: 0; box-shadow: none; }
  .cai-confirmation-actions { display: none; }
}

/* ── Split view (calendar left · event detail right) — the default view ── */
/* Tighter chrome in split mode — the dense layout doesn't need display-size headings */
.cai-timetable[data-view="split"] .cai-public-heading{margin-bottom:16px}
.cai-timetable[data-view="split"] .cai-public-heading h2{font-size:clamp(30px,3.4vw,42px)}
.cai-timetable[data-view="split"] .cai-public-heading p{margin-top:5px}
.cai-timetable[data-view="split"] .cai-calendar-toolbar{margin-bottom:14px}

/* One joined panel, MEC-style: calendar left, preview right, shared border */
.cai-timetable[data-view="split"] .cai-calendar-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);align-items:stretch}
.cai-timetable[data-view="split"] .cai-month-navigation,
.cai-timetable[data-view="split"] .cai-calendar-weekdays,
.cai-timetable[data-view="split"] .cai-calendar-grid,
.cai-timetable[data-view="split"] .cai-mobile-month-agenda,
.cai-timetable[data-view="split"] .cai-month-empty{grid-column:1}
.cai-split-detail{display:none}
.cai-timetable[data-view="split"] .cai-split-detail{display:block;grid-column:2;grid-row:1/span 5;border-left:1px solid var(--cai-calendar-border);background:#fff}
.cai-split-card,.cai-split-empty{position:sticky;top:0}

/* Compact calendar cells so the month doesn't tower over the preview */
.cai-timetable[data-view="split"] .cai-month-navigation{min-height:56px;padding:8px 14px}
.cai-timetable[data-view="split"] .cai-month-navigation h3{font-size:20px}
.cai-timetable[data-view="split"] .cai-month-arrow,
.cai-timetable[data-view="split"] .cai-month-today{min-height:38px}
.cai-timetable[data-view="split"] .cai-calendar-day{min-height:104px;padding:6px}
.cai-timetable[data-view="split"] .cai-calendar-events{max-height:78px;gap:4px}
.cai-timetable[data-view="split"] .cai-calendar-event{padding:5px 7px}
.cai-timetable[data-view="split"] .cai-calendar-event small{display:none}
.cai-timetable[data-view="split"] .cai-calendar-event.is-selected{outline:2px solid #e30613;outline-offset:1px;border-radius:8px}

/* Preview card */
.cai-split-empty{padding:38px 24px;text-align:center;color:#5b6274}
.cai-split-empty span{display:block;font-size:26px;margin-bottom:8px;color:#aab0c0}
.cai-split-empty strong{display:block;margin-bottom:6px;color:#000947}
.cai-split-image{height:clamp(170px,17vw,240px);background-size:cover;background-position:center}
.cai-split-body{padding:22px 26px 26px}
.cai-split-badges{display:flex;gap:8px;margin-bottom:10px}
.cai-split-badges span{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;background:#f0f2f8;color:#000947}
.cai-split-badges .is-open{background:#e8f6ec;color:#14632c}
.cai-split-badges .is-limited{background:#fff4e0;color:#8a5b00}
.cai-split-badges .is-sold-out,.cai-split-badges .is-waitlist{background:#fdeaea;color:#a01212}
.cai-split-body h3{margin:0 0 14px;font-size:23px;line-height:1.25;color:#000947}
.cai-split-body dl{display:grid;gap:8px;margin:0 0 12px}
.cai-split-body dl div{display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:baseline}
.cai-split-body dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8a90a3}
.cai-split-body dd{margin:0;font-weight:600;color:#1d2333;font-size:15px}
.cai-split-body dd small{display:block;font-weight:400;color:#5b6274}
.cai-split-body p{font-size:15px;line-height:1.55;color:#3c4257;margin:0 0 16px}
.cai-split-body .cai-public-button{display:block;text-align:center}

/* Mid width: keep the split, shrink the preview minimum */
@media (max-width:1199px){
  .cai-timetable[data-view="split"] .cai-calendar-panel{grid-template-columns:minmax(0,1.1fr) minmax(280px,1fr)}
  .cai-timetable[data-view="split"] .cai-calendar-day{min-height:92px;padding:5px}
  .cai-split-body{padding:16px 18px 20px}
  .cai-split-body h3{font-size:19px}
  .cai-split-body p,.cai-split-body dd{font-size:14px}
}

/* Narrow: preview stacks below the calendar, appears on tap, scrolls into view */
@media (max-width:959px){
  .cai-timetable[data-view="split"] .cai-calendar-panel{display:flex;flex-direction:column}
  .cai-timetable[data-view="split"] .cai-split-detail{order:99;border-left:0;border-top:1px solid var(--cai-calendar-border)}
  .cai-timetable[data-view="split"] .cai-split-detail:not(.has-selection){display:none}
  .cai-split-card,.cai-split-empty{position:static}
  .cai-split-image{height:clamp(150px,32vw,220px)}
}

/* ── Activity-type colours (CoachingMate/Coachly standards) ── */
.cai-type-swim{--cai-event-color:#0000ff;--cai-event-tint:#e9efff}
.cai-type-ride{--cai-event-color:#ff0000;--cai-event-tint:#ffeaea}
.cai-type-run{--cai-event-color:#00cc00;--cai-event-tint:#e8f8e8}
.cai-type-brick{--cai-event-color:#9c27b0;--cai-event-tint:#f6eaf9}
.cai-type-strength{--cai-event-color:#ff9900;--cai-event-tint:#fff2df}
.cai-type-race{--cai-event-color:#000947;--cai-event-tint:#e9ebf5}
.cai-type-other{--cai-event-color:#8a90a3;--cai-event-tint:#f1f3f9}
/* Exceptions keep their amber marker over the type colour */
.cai-calendar-event.is-exception{border-left-color:#d68b13}
/* Mobile agenda rows carry the same accent */
.cai-mobile-month-agenda > a{border-left:3px solid var(--cai-event-color,transparent);padding-left:9px}

/* ── Split view: tighter top chrome ── */
.cai-timetable[data-view="split"]{margin-top:12px}
.cai-timetable[data-view="split"] .cai-public-kicker{display:none}
.cai-timetable[data-view="split"] .cai-public-heading{margin-bottom:12px}
.cai-timetable[data-view="split"] .cai-public-heading h2{margin-top:0;font-size:clamp(26px,2.7vw,34px)}
.cai-timetable[data-view="split"] .cai-public-heading p{margin-top:4px;font-size:13px}
.cai-timetable[data-view="split"] .cai-calendar-toolbar{margin-bottom:12px}

/* ── Membership (squad) sessions ── */
.cai-split-badges .is-membership{background:#000947;color:#ffcc00}
.cai-list-meta small.is-membership{color:#000947;font-weight:800}
.cai-booking-card.is-membership .cai-membership-actions{display:grid;gap:10px;margin-top:18px}
.cai-membership-join{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--cai-navy);border-radius:11px;color:var(--cai-navy) !important;font-size:12px;font-weight:800;text-decoration:none !important}
.cai-membership-join:hover{background:var(--cai-navy);color:#fff !important}
