/* EventReg frontend — themed via CSS custom properties (TZ 3.7). */
.er-calendar, .er-form, .er-card, .er-list {
	font-family: var(--er-font, inherit);
	color: var(--er-text, #1e1e1e);
	background: var(--er-bg, transparent);
}

/* Toolbar: nav row (centered) → date-range row (centered) → filters (left) / views (right) */
.er-cal__bar { display: flex; flex-direction: column; gap: var(--er-density, 12px); margin-bottom: var(--er-density, 12px); }
.er-cal__row--nav, .er-cal__row--title { display: flex; justify-content: center; }
.er-cal__row--bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--er-density, 12px); }
.er-cal__filters-slot { display: flex; }
.er-cal__filters-slot .er-filters { margin-bottom: 0; }
.er-cal__title { font-weight: 600; font-size: 1.1em; }
.er-cal__btn {
	border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 20%, transparent);
	background: var(--er-bg, #fff); color: var(--er-text, #1e1e1e);
	border-radius: var(--er-radius, 8px); padding: 6px 12px; cursor: pointer; font: inherit;
}
.er-cal__btn:hover { border-color: var(--er-accent, #3858e9); color: var(--er-accent, #3858e9); }
.er-cal__btn--view.is-active { background: var(--er-accent, #3858e9); border-color: var(--er-accent, #3858e9); color: #fff; }
.er-cal__nav, .er-cal__views { display: flex; gap: 4px; }
.er-cal__loading { min-height: 80px; }

/* Week view */
.er-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.er-week__day { border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 12%, transparent); border-radius: var(--er-radius, 8px); padding: var(--er-density, 12px); min-height: 120px; }
.er-week__day.is-today { border-color: var(--er-accent, #3858e9); box-shadow: 0 0 0 1px var(--er-accent, #3858e9); }
.er-week__head { font-size: 0.85em; opacity: 0.7; margin-bottom: 6px; }

/* Month view */
.er-month { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.er-month__weekday { font-size: 0.8em; opacity: 0.6; text-align: center; padding: 4px 0; }
.er-month__cell { border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 10%, transparent); border-radius: calc(var(--er-radius, 8px) / 2); min-height: 84px; padding: 4px; font-size: 0.85em; }
.er-month__cell.is-other { opacity: 0.4; }
.er-month__cell.is-today { border-color: var(--er-accent, #3858e9); }
.er-month__num { font-weight: 600; margin-bottom: 2px; }
.er-month__more { font-size: 0.8em; color: var(--er-accent, #3858e9); }

/* Agenda view */
.er-agenda__date { font-weight: 700; margin: var(--er-density, 12px) 0 4px; }
.er-agenda__row { display: flex; align-items: center; gap: 8px; padding: 2px 0; }
.er-agenda__loc { font-size: 0.85em; opacity: 0.7; }

/* Event chip */
.er-chip { display: block; text-decoration: none; background: color-mix(in srgb, var(--er-accent, #3858e9) 10%, transparent); border-left: 3px solid var(--er-accent, #3858e9); border-radius: calc(var(--er-radius, 8px) / 2); padding: 4px 6px; margin: 2px 0; color: inherit; font-size: 0.9em; }
.er-chip:hover { background: color-mix(in srgb, var(--er-accent, #3858e9) 20%, transparent); }
.er-chip__time { font-weight: 600; margin-right: 6px; }
.er-chip__spots { display: block; font-size: 0.8em; opacity: 0.7; }
.er-chip__spots--full { color: #b32d2e; }

/* List shortcode */
.er-list { list-style: none; padding: 0; margin: 0; }
.er-list__item { padding: var(--er-density, 12px) 0; border-bottom: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 10%, transparent); }
.er-list__date { font-weight: 600; margin-right: 8px; }

/* Card */
.er-card { border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 12%, transparent); border-radius: var(--er-radius, 8px); padding: calc(var(--er-density, 12px) * 1.5); }

/* Form */
.er-form { display: flex; flex-direction: column; gap: var(--er-density, 12px); max-width: 480px; }
.er-form__label { font-weight: 600; }
.er-form__input { padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 25%, transparent); border-radius: var(--er-radius, 8px); font: inherit; }
.er-form__input:focus { outline: 2px solid var(--er-accent, #3858e9); outline-offset: 1px; }
.er-form__input.is-error { border-color: #b32d2e; }
.er-form__slots { border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 15%, transparent); border-radius: var(--er-radius, 8px); padding: var(--er-density, 12px); display: flex; flex-direction: column; gap: 6px; }
.er-form__slot, .er-form__check { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.er-form__hint { font-size: 0.9em; opacity: 0.75; margin: 0; }
.er-form__hint.is-error { color: #b32d2e; opacity: 1; }
.er-form__submit { background: var(--er-accent, #3858e9); color: #fff; border: 0; border-radius: var(--er-radius, 8px); padding: 10px 18px; font: inherit; font-weight: 600; cursor: pointer; }
.er-form__submit:hover { filter: brightness(1.1); }

.er-form__price {
	border: 1px solid color-mix(in srgb, var(--er-accent, #3858e9) 30%, transparent);
	background: color-mix(in srgb, var(--er-accent, #3858e9) 6%, transparent);
	border-radius: var(--er-radius, 8px);
	padding: var(--er-density, 12px);
}
.er-form__price-value { font-weight: 700; }
.er-form__price-note { font-size: 0.9em; opacity: 0.8; margin-top: 4px; }

.er-price-table { border-collapse: collapse; width: 100%; }
.er-price-table th, .er-price-table td { text-align: left; padding: 8px 12px; border-bottom: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 12%, transparent); }
.er-card__price { font-weight: 600; }
.er-list__price { font-weight: 600; }

/* Filters bar */
.er-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--er-density, 12px); }
.er-filters__select { padding: 6px 10px; border: 1px solid color-mix(in srgb, var(--er-text, #1e1e1e) 20%, transparent); border-radius: var(--er-radius, 8px); font: inherit; background: var(--er-bg, #fff); color: var(--er-text, #1e1e1e); }
.er-filters__select:hover { border-color: var(--er-accent, #3858e9); color: var(--er-accent, #3858e9); }

/* Modal */
.er-modal { position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.er-modal[hidden] { display: none !important; }
.er-modal__box { position: relative; background: var(--er-bg, #fff); color: var(--er-text, #1e1e1e); border-radius: var(--er-radius, 8px); max-width: 520px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 24px; font-family: var(--er-font, inherit); }
.er-modal__close { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 24px; line-height: 1; cursor: pointer; color: inherit; opacity: 0.6; }
.er-modal__close:hover { opacity: 1; }
.er-modal__title { margin: 0 0 4px; }
.er-modal__meta { margin: 0 0 var(--er-density, 12px); opacity: 0.7; }
body.er-modal-open { overflow: hidden; }

/* Chip extras */
.er-chip__org { display: block; font-size: 0.8em; opacity: 0.75; }
.er-slot__badge { font-size: 0.8em; opacity: 0.7; margin-left: 4px; }
.er-slot__badge--full { color: #b32d2e; opacity: 1; }
.er-full { color: #b32d2e; }

/* Collapsed form (details/summary) */
.er-collapse { max-width: 480px; }
.er-collapse__btn { display: inline-block; list-style: none; cursor: pointer; background: var(--er-accent, #3858e9); color: #fff; border-radius: var(--er-radius, 8px); padding: 10px 18px; font-weight: 600; user-select: none; }
.er-collapse__btn::-webkit-details-marker { display: none; }
.er-collapse[open] .er-collapse__btn { margin-bottom: var(--er-density, 12px); opacity: 0.85; }
.er-form__submit--wl { background: #996800; }

/* Event page blocks */
.er-event-block { margin: calc(var(--er-density, 12px) * 1.5) 0; }
.er-event-block__title { margin: 0 0 6px; font-size: 1.05em; }
.er-event-block__text { margin: 0; }
.er-event-block--schedule .er-series-summary { font-weight: 600; }
.er-event-block--schedule .er-event-location { opacity: 0.85; margin-top: 4px; }
.er-event-register { margin-top: calc(var(--er-density, 12px) * 1.5); }

/* Description + featured image, side by side on wide screens */
.er-event-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 300px); gap: calc(var(--er-density, 12px) * 2); align-items: start; }
.er-event-body__image-el { display: block; width: 100%; height: auto; border-radius: var(--er-radius, 8px); }
@media (max-width: 782px) {
	.er-event-body { grid-template-columns: 1fr; }
	.er-event-body__image { order: -1; }
}

/* Notices */
.er-notice { border-radius: var(--er-radius, 8px); padding: 10px 14px; margin-bottom: var(--er-density, 12px); }
.er-notice--ok { background: #edfaef; border: 1px solid #4ab866; }
.er-notice--wait { background: #fef8ee; border: 1px solid #f0b849; }
.er-notice--err { background: #fcf0f1; border: 1px solid #cc1818; }
.er-empty { opacity: 0.7; font-style: italic; }

/* Mobile (TZ 3.2 responsive) */
@media (max-width: 782px) {
	.er-week { grid-template-columns: 1fr; }
	.er-month { font-size: 0.8em; }
	.er-month__cell { min-height: 56px; }
	.er-cal__row--bottom { flex-direction: column; align-items: stretch; }
	.er-cal__nav, .er-cal__views, .er-cal__filters-slot { justify-content: center; }
}
