/* Presets never apply to unstyled saved calendars. */

/* Inspector spacing is independent of components' legacy margins. */
.pcwp-style-panel .pcwp-style-field {
	margin-block: 0 24px;
}

.pcwp-style-panel .pcwp-style-field .components-base-control,
.pcwp-style-panel .pcwp-style-field .components-base-control__field {
	margin-bottom: 0;
}

.pcwp-style-font-size {
	padding: 0;
	margin: 0;
	border: 0;
	min-width: 0;
}

.pcwp-style-preset-control {
	display: grid;
	gap: 12px;
}

.pcwp-style-font-size legend {
	padding: 0;
	margin-bottom: 8px;
	font-weight: 600;
}


/* Context-specific preset overrides intentionally follow legacy defaults. */
/* stylelint-disable no-descending-specificity */
.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) {
	--pcwp-theme-accent: currentcolor;
	--pcwp-color-accent: var(--pcwp-accent-color, var(--pcwp-theme-accent));
	--pcwp-color-text: currentcolor;
	--pcwp-color-muted: currentcolor;
	--pcwp-color-surface: var(--pcwp-theme-surface, Canvas);
	--pcwp-color-border: color-mix(in srgb, currentcolor 16%, transparent);
	--pcwp-preset-event-background: transparent;
	--pcwp-preset-event-text: currentcolor;
	--pcwp-preset-event-border: var(--pcwp-color-accent);
	--pcwp-preset-event-radius: 3px;
	--pcwp-preset-event-padding: 7px;
	--pcwp-preset-grid-line: var(--pcwp-color-border);
	--pcwp-preset-today-background: var(--pcwp-color-accent);
	--pcwp-preset-today-text: var(--pcwp-contrast-color, #fff);
	--pcwp-preset-navigation-background: transparent;
}

.pcwp-presentation.is-style-soft {
	--pcwp-preset-event-background: color-mix(in srgb, var(--pcwp-color-accent) 10%, transparent);
	--pcwp-preset-event-border: color-mix(in srgb, var(--pcwp-color-accent) 25%, transparent);
	--pcwp-preset-event-radius: 9px;
	--pcwp-preset-grid-line: color-mix(in srgb, currentcolor 10%, transparent);
	--pcwp-preset-navigation-background: color-mix(in srgb, currentcolor 5%, transparent);
}

.pcwp-presentation.is-style-outlined {
	--pcwp-preset-event-border: currentcolor;
	--pcwp-preset-event-radius: 0;
	--pcwp-preset-grid-line: color-mix(in srgb, currentcolor 35%, transparent);
}

.pcwp-presentation .pcwp-filters {
	--pcwp-color-accent: var(--pcwp-accent-color, var(--pcwp-theme-accent, #2457d6));
}

.pcwp-presentation .pcwp-calendar {
	color: var(--pcwp-color-text);
}

.pcwp-presentation .pcwp-navigation,
.pcwp-presentation .pcwp-week-heading,
.pcwp-presentation .pcwp-week-corner {
	background: var(--pcwp-headings-background-color, transparent);
}

.pcwp-presentation .pcwp-navigation a {
	color: var(--pcwp-headings-text-color, var(--pcwp-accent-color, inherit));
}

.pcwp-presentation .pcwp-week-navigation a {
	background: var(--pcwp-headings-background-color, var(--pcwp-preset-navigation-background, #fff));
	border-color: var(--pcwp-headings-border-color, #e5e7eb);
	border-width: var(--pcwp-headings-border-width, 1px);
	border-style: var(--pcwp-headings-border-style, solid);
	border-radius: var(--pcwp-headings-radius, 8px);
}

.pcwp-presentation .pcwp-month-grid {
	background: var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, var(--pcwp-color-border)));
	gap: var(--pcwp-grid-border-width, 1px);
	border-color: var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, var(--pcwp-color-border)));
	border-width: var(--pcwp-grid-border-width, 1px);
	border-style: var(--pcwp-grid-border-style, solid);
}

.pcwp-presentation .pcwp-month-day {
	background: var(--pcwp-grid-background-color, var(--pcwp-color-surface));
}

.pcwp-presentation .pcwp-week-scroll {
	background: var(--pcwp-grid-background-color, var(--pcwp-color-surface));
	border-color: var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, #e5e7eb));
	color: var(--pcwp-native-text, var(--pcwp-preset-event-text, #283344));
}

.pcwp-presentation .pcwp-week-day {
	border-inline-start-color: var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, #edf0f3));
	border-inline-start-width: var(--pcwp-grid-border-width, 1px);
	border-inline-start-style: var(--pcwp-grid-border-style, solid);
	background-image: none;
}

.pcwp-week-grid-line {
	position: absolute;
	inset-inline: 0;
	pointer-events: none;
	border-top: var(--pcwp-grid-border-width, 1px) var(--pcwp-grid-border-style, solid) var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, #edf0f3));
}

.pcwp-presentation[data-pcwp-style*="headings-border"] .pcwp-navigation a {
	border: var(--pcwp-headings-border-width, 1px) var(--pcwp-headings-border-style, solid) var(--pcwp-headings-border-color, currentcolor);
}

.pcwp-presentation[data-pcwp-style~="headings-radius"] .pcwp-navigation a {
	border-radius: var(--pcwp-headings-radius);
}

.pcwp-presentation[data-pcwp-style~="events-textColor"] .pcwp-event-card a {
	color: var(--pcwp-events-text-color);
}

.pcwp-presentation .pcwp-week-axis {
	background: var(--pcwp-grid-background-color, var(--pcwp-color-surface));
}

.pcwp-presentation .pcwp-week-heading,
.pcwp-presentation .pcwp-week-corner {
	border-color: var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, #e5e7eb));
}

.pcwp-presentation .pcwp-week-event {
	background: var(--pcwp-events-background-color, var(--pcwp-preset-event-background, var(--pcwp-event-bg)));
	color: var(--pcwp-events-text-color, var(--pcwp-preset-event-text, var(--pcwp-event-ink)));
	border-color: var(--pcwp-events-border-color, var(--pcwp-preset-event-border, var(--pcwp-event-line)));
	border-width: var(--pcwp-events-border-width, 1px);
	border-inline-start-width: var(--pcwp-events-border-width, 3px);
	border-style: var(--pcwp-events-border-style, solid);
	border-radius: var(--pcwp-events-radius, var(--pcwp-preset-event-radius, 5px));
	padding: var(--pcwp-events-padding, var(--pcwp-preset-event-padding, 7px));
}

.pcwp-presentation .pcwp-month-grid:not(.pcwm-month-grid) .pcwp-month-event {
	background: var(--pcwp-events-background-color, var(--pcwp-preset-event-background, transparent));
	color: var(--pcwp-events-text-color, inherit);
	border-color: var(--pcwp-events-border-color, var(--pcwp-preset-event-border, transparent));
	border-width: var(--pcwp-events-border-width, 0);
	border-inline-start-width: var(--pcwp-events-border-width, 3px);
	border-inline-start-color: var(--pcwp-events-border-color, var(--pcwp-category-color, transparent));
	border-style: var(--pcwp-events-border-style, solid);
	border-radius: var(--pcwp-events-radius, var(--pcwp-preset-event-radius, 0));
	padding: var(--pcwp-events-padding, var(--pcwp-preset-event-padding, 0.25rem 0.4rem));
}

.pcwp-presentation .pcwp-event-card {
	background: var(--pcwp-events-background-color, var(--pcwp-preset-event-background, var(--pcwp-color-surface)));
	color: var(--pcwp-events-text-color, inherit);
	border-color: var(--pcwp-events-border-color, var(--pcwp-preset-event-border, var(--pcwp-color-border)));
	border-width: var(--pcwp-events-border-width, 1px);
	border-style: var(--pcwp-events-border-style, solid);
	border-radius: var(--pcwp-events-radius, var(--pcwp-preset-event-radius, var(--pcwp-radius)));
	padding: var(--pcwp-events-padding, var(--pcwp-preset-event-padding, 1rem));
}

.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-month-event,
.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-event-card {
	border-width: var(--pcwp-events-border-width, 1px);
	border-inline-start-width: var(--pcwp-events-border-width, 3px);
	text-decoration: none;
}

.pcwp-presentation .pcwp-week-heading.is-today strong {
	background: var(--pcwp-today-background-color, var(--pcwp-accent-color, var(--pcwp-preset-today-background, #354cba)));
	color: var(--pcwp-today-text-color, var(--pcwp-preset-today-text, #fff));
}

.pcwp-presentation .pcwp-month-day.is-today h3 {
	background: var(--pcwp-today-background-color, var(--pcwp-preset-today-background, transparent));
	color: var(--pcwp-today-text-color, var(--pcwp-preset-today-text, inherit));
	border-radius: 3px;
}

.pcwp-presentation[data-pcwp-style~="today-backgroundColor"] .pcwp-week-heading.is-today strong,
.pcwp-presentation[data-pcwp-style~="today-backgroundColor"] .pcwp-month-day.is-today h3,
.pcwp-presentation[data-pcwp-style~="accent-color"] .pcwp-week-heading.is-today strong {
	color: var(--pcwp-today-text-color, var(--pcwp-contrast-color, #fff));
}

/* Explicit grid styles also apply to internal Month cell dividers. */
.pcwp-presentation[data-pcwp-style~="grid-borderStyle"] .pcwp-month-grid {
	gap: 0;
	background: transparent;
}

.pcwp-presentation[data-pcwp-style~="grid-borderStyle"] .pcwp-month-day {
	box-shadow: none;
	border-inline-end: var(--pcwp-grid-border-width, 1px) var(--pcwp-grid-border-style) var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, var(--pcwp-color-border)));
	border-bottom: var(--pcwp-grid-border-width, 1px) var(--pcwp-grid-border-style) var(--pcwp-grid-border-color, var(--pcwp-preset-grid-line, var(--pcwp-color-border)));
}

.pcwp-presentation .pcwp-week-day.is-today,
.pcwp-presentation .pcwp-month-day.is-today {
	background-color: var(--pcwp-today-day-background-color, var(--pcwp-grid-background-color, var(--pcwp-color-surface)));
}

.pcwp-presentation .pcwp-week-event-image,
.pcwp-presentation .pcwp-month-event-image,
.pcwp-presentation .pcwm-calendar-photo {
	border-radius: var(--pcwp-images-radius, 3px);
	aspect-ratio: var(--pcwp-images-aspect-ratio, 16 / 10);
	object-fit: cover;
}

.pcwp-presentation .pcwp-month-event-image {
	height: auto;
	aspect-ratio: var(--pcwp-images-aspect-ratio, 1 / 1);
}

.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-week-event,
.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-month-event {
	font-family: inherit;
	font-size: 0.875em;
}

.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-week-event strong,
.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-week-event-time {
	font-size: inherit;
}

.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-week-heading time > span,
.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-week-axis span,
.pcwp-presentation:is(.is-style-minimal, .is-style-soft, .is-style-outlined) .pcwp-week-timezone {
	color: inherit;
}

/* Theme styles and custom fields use explicit property flags to preserve legacy
 * typography when no choice has been made. These selectors are shared by PHP
 * rendering and editor previews. */

/* Colorful preserves the original Week palette, consistently across views. */
.pcwp-presentation.is-style-colorful :is(.pcwp-event-color-0, .pcwp-week-color-0) {
	--pcwp-colorful-background: #e9e7fc;
	--pcwp-colorful-text: #47417e;
	--pcwp-colorful-border: #b3aaec;
}

.pcwp-presentation.is-style-colorful :is(.pcwp-event-color-1, .pcwp-week-color-1) {
	--pcwp-colorful-background: #fce6ed;
	--pcwp-colorful-text: #863852;
	--pcwp-colorful-border: #efb5c9;
}

.pcwp-presentation.is-style-colorful :is(.pcwp-event-color-2, .pcwp-week-color-2) {
	--pcwp-colorful-background: #e2f3e8;
	--pcwp-colorful-text: #285c40;
	--pcwp-colorful-border: #a6d7b8;
}

.pcwp-presentation.is-style-colorful :is(.pcwp-event-color-3, .pcwp-week-color-3) {
	--pcwp-colorful-background: #e3effc;
	--pcwp-colorful-text: #345b86;
	--pcwp-colorful-border: #adcbee;
}

.pcwp-presentation.is-style-colorful :is(.pcwp-event-color-4, .pcwp-week-color-4) {
	--pcwp-colorful-background: #fff2d9;
	--pcwp-colorful-text: #76551e;
	--pcwp-colorful-border: #ebd098;
}

.pcwp-presentation.is-style-colorful :is(.pcwp-week-event, .pcwp-month-event, .pcwp-event-card) {
	--pcwp-category-background: color-mix(in srgb, var(--pcwp-category-color) 12%, #fff);
	--pcwp-category-text: color-mix(in srgb, var(--pcwp-category-color) 30%, #000);
	background: var(--pcwp-events-background-color, var(--pcwp-category-background, var(--pcwp-colorful-background)));
	color: var(--pcwp-events-text-color, var(--pcwp-category-text, var(--pcwp-colorful-text)));
	border: var(--pcwp-events-border-width, 1px) var(--pcwp-events-border-style, solid) var(--pcwp-events-border-color, var(--pcwp-category-color, var(--pcwp-colorful-border)));
	border-inline-start-width: var(--pcwp-events-border-width, 3px);
	border-radius: var(--pcwp-events-radius, 5px);
	padding: var(--pcwp-events-padding, 7px);
}

.pcwp-presentation.is-style-colorful .pcwp-event-card a {
	color: inherit;
}
