/**
 * TM Event Calendar - Layout & Design Manager presets.
 *
 * Depends on design-system.css (--tec-* tokens), calendar/variables.css,
 * calendar/layout.css and calendar/components.css for the base structure
 * these rules modify. Every selector here is a `.tmec-calendar--*` modifier
 * class applied by templates/frontend/calendar.php from
 * TMEC_Settings::get_layout_config() — no selector duplicates a rule
 * already declared in layout.css/components.css, only overrides specific
 * properties for the active modifier.
 *
 * The `--tmec-layout-*` custom properties consumed below are admin-entered
 * numeric values, emitted at runtime by TMEC_Layout::enqueue_inline_style()
 * as a small :root declaration block (via wp_add_inline_style(), not
 * style="" attributes), falling back to the static defaults here whenever
 * that inline block hasn't been enqueued (e.g. a theme override page).
 */

/* ---------------------------------------------------------------------- */
/* Typography (admin-entered sizes)                                      */
/* ---------------------------------------------------------------------- */

.tmec-calendar {
	font-size: var(--tmec-layout-font-size, var(--tec-font-size-base));
}

.tmec-calendar__title {
	font-size: var(--tmec-layout-heading-size, var(--tec-font-size-2xl));
}

.tmec-calendar__event-badge {
	font-size: var(--tmec-layout-event-font-size, var(--tec-font-size-xs));
}

/* ---------------------------------------------------------------------- */
/* Named Layouts (Classic / Modern / Minimal / Sidebar / Full Width)     */
/* ---------------------------------------------------------------------- */

.tmec-calendar--preset-modern .tmec-calendar__month {
	border: none;
	box-shadow: var(--tec-shadow-lg);
}

.tmec-calendar--preset-minimal .tmec-calendar__month {
	border: none;
	box-shadow: none;
	background: transparent;
}

.tmec-calendar--preset-minimal .tmec-calendar__day {
	background: transparent;
}

.tmec-calendar--preset-full_width {
	max-width: none;
}

/* ---------------------------------------------------------------------- */
/* Calendar Layout mode (Grid / Compact / Cards / Monthly)               */
/* ---------------------------------------------------------------------- */

.tmec-calendar--mode-compact .tmec-calendar__day {
	min-height: calc(var(--tmec-day-min-height) * 0.6);
	padding: var(--tec-space-1);
}

.tmec-calendar--mode-compact .tmec-calendar__event-badge {
	padding: 0.1rem 0.35rem;
}

.tmec-calendar--mode-cards .tmec-calendar__day {
	border-radius: var(--tec-radius-md);
	box-shadow: var(--tec-shadow-xs);
	margin: 2px;
}

.tmec-calendar--mode-monthly .tmec-calendar__months {
	grid-template-columns: 1fr;
}

/* ---------------------------------------------------------------------- */
/* Day Cell Style                                                        */
/* ---------------------------------------------------------------------- */

.tmec-calendar--cell-rounded .tmec-calendar__day {
	border-radius: var(--tec-radius-md);
}

.tmec-calendar--cell-square .tmec-calendar__day {
	border-radius: 0;
}

.tmec-calendar--cell-bordered .tmec-calendar__day {
	border: 1px solid var(--tec-border);
}

.tmec-calendar--cell-filled .tmec-calendar__day {
	background: var(--tec-bg-subtle);
}

.tmec-calendar--cell-filled .tmec-calendar__day--today {
	background: var(--tec-primary-soft);
}

/* ---------------------------------------------------------------------- */
/* Header Style                                                          */
/* ---------------------------------------------------------------------- */

.tmec-calendar--header-dark .tmec-calendar__header {
	padding: var(--tec-space-4) var(--tec-space-5);
	background: var(--tec-text);
	border-radius: var(--tec-radius-lg);
	color: var(--tec-on-primary);
}

.tmec-calendar--header-dark .tmec-calendar__title,
.tmec-calendar--header-dark .tmec-calendar__current-month {
	color: var(--tec-on-primary);
}

.tmec-calendar--header-accent .tmec-calendar__header {
	padding: var(--tec-space-4) var(--tec-space-5);
	background: var(--tec-primary-soft);
	border-radius: var(--tec-radius-lg);
}

/* ---------------------------------------------------------------------- */
/* Navigation Style                                                      */
/* ---------------------------------------------------------------------- */

.tmec-calendar--nav-icons .tmec-calendar__nav {
	min-width: 2.75rem;
	padding: 0;
}

.tmec-calendar--nav-icons .tmec-calendar__nav-label {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.tmec-calendar--nav-minimal .tmec-calendar__nav {
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.tmec-calendar--nav-minimal .tmec-calendar__nav:hover,
.tmec-calendar--nav-minimal .tmec-calendar__nav:focus-visible {
	background: var(--tec-bg-subtle);
	color: var(--tec-primary);
	box-shadow: none;
}

/* ---------------------------------------------------------------------- */
/* Sidebar Position (generic layout affordance; when a filter bar is also */
/* rendered in the same left/right slot, filters.css controls its sizing)*/
/* ---------------------------------------------------------------------- */

.tmec-calendar--sidebar-left,
.tmec-calendar--sidebar-right {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tec-space-6);
}

.tmec-calendar--sidebar-left .tmec-calendar__body,
.tmec-calendar--sidebar-right .tmec-calendar__body {
	flex: 1 1 640px;
	min-width: 0;
}

/* ---------------------------------------------------------------------- */
/* Button Style (calendar nav buttons + reset-filters button)            */
/* ---------------------------------------------------------------------- */

.tmec-calendar--btn-square .tmec-calendar__nav,
.tmec-calendar--btn-square .tmec-filters__reset {
	border-radius: var(--tec-radius-sm);
}

.tmec-calendar--btn-outline .tmec-calendar__nav,
.tmec-calendar--btn-outline .tmec-filters__reset {
	background: transparent;
	box-shadow: none;
}

.tmec-calendar--btn-filled .tmec-calendar__nav,
.tmec-calendar--btn-filled .tmec-filters__reset {
	background: var(--tec-primary);
	border-color: var(--tec-primary);
	color: var(--tec-on-primary);
}

/* ---------------------------------------------------------------------- */
/* Card Radius / Shadow (calendar month card)                           */
/* ---------------------------------------------------------------------- */

.tmec-calendar__month {
	border-radius: var(--tmec-layout-card-radius, var(--tec-radius-xl));
}

.tmec-calendar--shadow-none .tmec-calendar__month {
	box-shadow: none;
}

.tmec-calendar--shadow-sm .tmec-calendar__month {
	box-shadow: var(--tec-shadow-xs);
}

.tmec-calendar--shadow-md .tmec-calendar__month {
	box-shadow: var(--tec-shadow-sm);
}

.tmec-calendar--shadow-lg .tmec-calendar__month {
	box-shadow: var(--tec-shadow-md);
}

/* ---------------------------------------------------------------------- */
/* Calendar Width                                                        */
/* ---------------------------------------------------------------------- */

.tmec-calendar--width-full_width {
	max-width: none;
}

.tmec-calendar--width-custom {
	max-width: var(--tmec-layout-width, 1200px);
}

@media (max-width: 900px) {
	.tmec-calendar--sidebar-left,
	.tmec-calendar--sidebar-right {
		flex-direction: column;
	}
}
