/* Shared calendar, scheduler, form, assignment, and modal controls. */
/* Loaded in both frontend and wp-admin plugin calendar/scheduler contexts. */

:root {
	--gce-icon-close: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.3 5.7 12 12l6.3 6.3-1.4 1.4L10.6 13.4 4.3 19.7 2.9 18.3 9.2 12 2.9 5.7 4.3 4.3l6.3 6.3 6.3-6.3 1.4 1.4Z'/%3E%3C/svg%3E");
}

.gce-calendar,
.gce-scheduler,
.gce-admin-calendar-page,
.gce-admin-page,
.gce-scheduler-quick-edit-modal,
.gce-absence-modal {
	--gce-control-bg: #fff;
	--gce-control-border: #cbd5e1;
	--gce-control-border-strong: #8c8f94;
	--gce-control-text: #1d2327;
	--gce-control-muted: #50575e;
	--gce-control-primary: #2271b1;
	--gce-control-primary-hover: #135e96;
	--gce-control-ring: rgba(34, 113, 177, 0.22);
	--gce-control-soft: #f6f7f7;
	--gce-control-radius: 6px;
	--gce-control-height: 38px;
	color: var(--gce-control-text);
}

.gce-control-search::-webkit-search-cancel-button,
.gce-control-search::-webkit-search-decoration,
.gce-calendar input[type="search"]::-webkit-search-cancel-button,
.gce-calendar input[type="search"]::-webkit-search-decoration,
.gce-scheduler input[type="search"]::-webkit-search-cancel-button,
.gce-scheduler input[type="search"]::-webkit-search-decoration,
.gce-admin-calendar-page input[type="search"]::-webkit-search-cancel-button,
.gce-admin-calendar-page input[type="search"]::-webkit-search-decoration,
.gce-scheduler-quick-edit-form input[type="search"]::-webkit-search-cancel-button,
.gce-scheduler-quick-edit-form input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
	appearance: none;
	display: none;
}

.gce-control-search::-ms-clear,
.gce-calendar input[type="search"]::-ms-clear,
.gce-scheduler input[type="search"]::-ms-clear,
.gce-admin-calendar-page input[type="search"]::-ms-clear,
.gce-scheduler-quick-edit-form input[type="search"]::-ms-clear {
	display: none;
	height: 0;
	width: 0;
}

.gce-control,
.gce-form-row,
.gce-filter-row {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gce-control-input,
.gce-control-search,
.gce-control-select,
.gce-control-textarea,
.gce-calendar input[type="text"],
.gce-calendar input[type="search"],
.gce-calendar input[type="date"],
.gce-calendar input[type="time"],
.gce-calendar input[type="number"],
.gce-calendar select,
.gce-calendar textarea,
.gce-scheduler input[type="text"],
.gce-scheduler input[type="search"],
.gce-scheduler input[type="date"],
.gce-scheduler input[type="time"],
.gce-scheduler input[type="number"],
.gce-scheduler select,
.gce-scheduler textarea,
.gce-admin-calendar-page input[type="text"],
.gce-admin-calendar-page input[type="search"],
.gce-admin-calendar-page input[type="date"],
.gce-admin-calendar-page input[type="time"],
.gce-admin-calendar-page input[type="number"],
.gce-admin-calendar-page select,
.gce-admin-calendar-page textarea,
.gce-user-token-combobox,
.gce-user-token-source,
.gce-scheduler-quick-edit-form input[type="text"],
.gce-scheduler-quick-edit-form input[type="search"],
.gce-scheduler-quick-edit-form select,
.gce-scheduler-quick-edit-form textarea,
.gce-absence-dialog input[type="text"],
.gce-absence-dialog input[type="date"],
.gce-absence-dialog select,
.gce-absence-dialog textarea {
	appearance: none;
	background-color: var(--gce-control-bg);
	border: 1px solid var(--gce-control-border);
	border-radius: var(--gce-control-radius);
	box-shadow: none;
	box-sizing: border-box;
	color: var(--gce-control-text);
	font: inherit;
	font-size: 14px;
	line-height: 1.4;
	margin: 0;
	min-height: var(--gce-control-height);
	padding: 7px 10px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gce-control-select,
.gce-calendar select,
.gce-scheduler select,
.gce-admin-calendar-page select,
.gce-scheduler-quick-edit-form select,
.gce-absence-dialog select {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.4 1.2 6 5.8l4.6-4.6' fill='none' stroke='%231d2327' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 10px center;
	background-repeat: no-repeat;
	background-size: 12px 8px;
	padding-right: 30px;
}

.gce-control-input:focus,
.gce-control-search:focus,
.gce-control-select:focus,
.gce-control-textarea:focus,
.gce-calendar input:focus,
.gce-calendar select:focus,
.gce-calendar textarea:focus,
.gce-scheduler input:focus,
.gce-scheduler select:focus,
.gce-scheduler textarea:focus,
.gce-admin-calendar-page input:focus,
.gce-admin-calendar-page select:focus,
.gce-admin-calendar-page textarea:focus,
.gce-user-token-combobox:focus,
.gce-scheduler-quick-edit-form input:focus,
.gce-scheduler-quick-edit-form select:focus,
.gce-scheduler-quick-edit-form textarea:focus,
.gce-absence-dialog input:focus,
.gce-absence-dialog select:focus,
.gce-absence-dialog textarea:focus {
	border-color: var(--gce-control-primary);
	box-shadow: 0 0 0 3px var(--gce-control-ring);
	outline: 0;
}

.gce-control-checkbox,
.gce-calendar input[type="checkbox"],
.gce-scheduler input[type="checkbox"],
.gce-admin-calendar-page input[type="checkbox"],
.gce-absence-dialog input[type="checkbox"] {
	accent-color: var(--gce-control-primary);
	height: 16px;
	margin: 0;
	min-height: 0;
	width: 16px;
}

.gce-button,
.gce-button-secondary,
.gce-calendar .button,
.gce-calendar button,
.gce-calendar a.button,
.gce-scheduler .button,
.gce-scheduler button,
.gce-scheduler a.button,
.gce-admin-calendar-page .button,
.gce-scheduler-quick-edit-form .button,
.gce-absence-dialog .button {
	align-items: center;
	appearance: none;
	background: #fff;
	border: 1px solid var(--gce-control-border);
	border-radius: var(--gce-control-radius);
	box-shadow: none;
	box-sizing: border-box;
	color: var(--gce-control-text);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	gap: 6px;
	justify-content: center;
	line-height: 1.2;
	min-height: var(--gce-control-height);
	padding: 8px 12px;
	text-align: center;
	text-decoration: none;
}

.gce-calendar button.gce-calendar-cell-menu-button {
	background: #000;
}

.gce-button-primary,
.gce-calendar .button-primary,
.gce-scheduler .button-primary,
.gce-admin-calendar-page .button-primary,
.gce-scheduler-quick-edit-form .button-primary,
.gce-absence-dialog .button-primary {
	background: var(--gce-control-primary);
	border-color: var(--gce-control-primary);
	color: #fff;
}

.gce-button:hover,
.gce-button:focus,
.gce-calendar .button:hover,
.gce-calendar .button:focus,
.gce-scheduler .button:hover,
.gce-scheduler .button:focus,
.gce-admin-calendar-page .button:hover,
.gce-admin-calendar-page .button:focus,
.gce-scheduler-quick-edit-form .button:hover,
.gce-scheduler-quick-edit-form .button:focus,
.gce-absence-dialog .button:hover,
.gce-absence-dialog .button:focus {
	border-color: var(--gce-control-primary);
	box-shadow: 0 0 0 3px var(--gce-control-ring);
	outline: 0;
}

.gce-button-primary:hover,
.gce-button-primary:focus,
.gce-calendar .button-primary:hover,
.gce-calendar .button-primary:focus,
.gce-scheduler .button-primary:hover,
.gce-scheduler .button-primary:focus,
.gce-admin-calendar-page .button-primary:hover,
.gce-admin-calendar-page .button-primary:focus,
.gce-scheduler-quick-edit-form .button-primary:hover,
.gce-scheduler-quick-edit-form .button-primary:focus,
.gce-absence-dialog .button-primary:hover,
.gce-absence-dialog .button-primary:focus {
	background: var(--gce-control-primary-hover);
	border-color: var(--gce-control-primary-hover);
	color: #fff;
}

.gce-pill,
.gce-user-token,
.gce-date-pill,
.gce-scheduler-assignment-pill {
	align-items: center;
	border-radius: 0.8em;
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 700;
	gap: 6px;
	line-height: 1.2;
	padding: 4px 10px;
}

.gce-modal,
.gce-scheduler-quick-edit-modal,
.gce-absence-modal {
	align-items: center;
	background: rgba(15, 23, 42, 0.45);
	display: flex;
	inset: 0;
	justify-content: center;
	position: fixed;
	z-index: 100000;
}

.gce-modal[hidden],
.gce-scheduler-quick-edit-modal[hidden],
.gce-absence-modal[hidden] {
	display: none !important;
}

.gce-modal-dialog,
.gce-scheduler-quick-edit-dialog,
.gce-absence-dialog {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 22px 55px rgba(15, 23, 42, 0.25);
	box-sizing: border-box;
	max-width: 720px;
	padding: 22px;
	width: calc(100% - 32px);
}

.gce-user-token-controls select.gce-user-token-source {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	left: 0;
	overflow: hidden;
	padding: 0;
	pointer-events: none;
	position: absolute;
	top: 100%;
	white-space: nowrap;
	width: 1px;
}

.gce-calendar {
	margin: 0 auto;
	max-width: 1080px;
	min-width: 200px;
	padding: 1px;
}

.gce-scheduler {
	margin: 0 auto;
	max-width: 1080px;
	min-width: 200px;
}

.gce-scheduler-header {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 18px;
	justify-content: space-between;
	margin-bottom: 16px;
}

.gce-scheduler-header h2 {
	margin: 0;
}

.gce-scheduler-view-toggle {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
}

.gce-scheduler-view-toggle a,
.gce-scheduler-filters button {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	color: #1d2327;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	padding: 8px 10px;
	text-decoration: none;
}

.gce-scheduler-view-toggle a.is-active,
.gce-scheduler-filters button {
	background: #2271b1;
	border-color: #2271b1;
	color: #fff;
}

.gce-scheduler-filters {
	align-items: end;
	background: #f6f7f7;
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(4, minmax(0, auto));
	margin-bottom: 18px;
	padding: 12px;
}

.gce-scheduler-filters label {
	display: grid;
	gap: 4px;
}

.gce-scheduler-filters span {
	font-size: 0.85rem;
	font-weight: 700;
}

.gce-scheduler-my-filter {
	align-items: center;
	display: flex !important;
	gap: 8px;
	padding-bottom: 8px;
}

.gce-scheduler-items {
	display: grid;
	gap: 12px;
}

.gce-scheduler-item {
	border: 1px solid #dcdcde;
	background: #fff;
}

.gce-scheduler-item.has-warning {
	border-left: 4px solid #b32d2e;
}

.gce-scheduler-item-summary {
	appearance: none;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: grid;
	font: inherit;
	gap: 6px;
	grid-template-columns: minmax(130px, 0.5fr) minmax(180px, 1fr) minmax(150px, 0.8fr) auto;
	padding: 14px;
	text-align: left;
	width: 100%;
}

.gce-scheduler-item-summary:hover,
.gce-scheduler-item-summary:focus-visible {
	background: #f6f7f7;
	outline: 2px solid #2271b1;
	outline-offset: -2px;
}

.gce-scheduler-item-date,
.gce-scheduler-item-title {
	font-weight: 700;
}

.gce-scheduler-item-departments,
.gce-scheduler-comment,
.gce-scheduler-unassigned,
.gce-scheduler-form-message {
	color: #50575e;
}

.gce-scheduler-item-detail {
	border-top: 1px solid #dcdcde;
	padding: 16px;
}

.gce-scheduler-item-detail[hidden] {
	display: none !important;
}

.gce-scheduler-event-details h3,
.gce-scheduler-department h4 {
	margin-top: 0;
}

.gce-scheduler-warning-summary {
	background: #fff8e5;
	border-left: 4px solid #b32d2e;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 12px 0;
	padding: 10px 12px;
}

.gce-scheduler-department {
	border-top: 1px solid #e5e5e5;
	margin-top: 16px;
	padding-top: 16px;
}

.gce-scheduler-position {
	border: 1px solid #e5e5e5;
	margin-top: 10px;
	padding: 12px;
}

.gce-scheduler-position-heading {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}

.gce-scheduler-required-label,
.gce-scheduler-status-label,
.gce-scheduler-warning-label {
	border-radius: 999px;
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1;
	padding: 4px 8px;
}

.gce-scheduler-required-label,
.gce-scheduler-status-label {
	background: #f0f0f1;
	color: #1d2327;
}

.gce-scheduler-warning-label {
	background: #b32d2e;
	color: #fff;
}

.gce-scheduler-assignment-list {
	display: grid;
	gap: 10px;
}

.gce-scheduler-assignment-row {
	border-top: 1px solid #f0f0f1;
	display: grid;
	gap: 10px;
	padding-top: 10px;
}

.gce-scheduler-assignment-row:first-child {
	border-top: 0;
	padding-top: 0;
}

.gce-scheduler-assignment-main {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gce-scheduler-assignment-row.status-confirmed .gce-scheduler-status-label {
	background: #d1e7dd;
	color: #0f5132;
}

.gce-scheduler-assignment-row.status-unavailable .gce-scheduler-status-label {
	background: #f8d7da;
	color: #842029;
}

.gce-scheduler-filters input,
.gce-scheduler-filters select {
	max-width: 100%;
	width: 100%;
}

.gce-scheduler-empty,
.gce-scheduler-access-message {
	background: #f6f7f7;
	border-left: 4px solid #2271b1;
	padding: 12px 14px;
}

.gce-calendar-nav {
	align-items: center;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 16px;
	margin-bottom: 16px;
}

.gce-calendar-nav-center {
	align-items: center;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}

.gce-calendar-view-control {
	align-items: center;
	display: inline-flex;
	font-size: 0.9rem;
	font-weight: 700;
	gap: 6px;
	white-space: nowrap;
}

.gce-calendar-view-control select {
	min-height: 36px;
	width: auto;
}

.gce-calendar-arrow,
.gce-calendar-today {
	border: 1px solid #ddd;
	border-radius: 4px;
	line-height: 1;
	padding: 8px 10px;
	text-decoration: none;
}

.gce-calendar-today {
	justify-self: end;
	text-align: center;
}

.gce-calendar-month-control {
	align-items: center;
	display: inline-flex;
	position: relative;
}

.gce-calendar-month-button {
	appearance: none;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	font: inherit;
	font-size: 1.4rem;
	font-weight: 700;
	margin: 0;
	padding: 0;
	text-align: center;
	text-decoration: none;
}

.gce-calendar-date-control {
	align-items: center;
	cursor: pointer;
	display: inline-grid;
	font-size: 1.4rem;
	font-weight: 700;
	justify-items: center;
	line-height: 1.2;
	min-height: 2.25rem;
	min-width: 11rem;
	position: relative;
	text-align: center;
}

.gce-calendar-date-control-mobile {
	display: none;
}

.gce-calendar-date-label {
	color: inherit;
	padding: 0.35rem 0.5rem;
	pointer-events: none;
}

.gce-calendar-title-date {
	appearance: none;
	background: transparent;
	border: 0;
	cursor: pointer;
	font: inherit;
	height: 100%;
	inset: 0;
	margin: 0;
	opacity: 0;
	position: absolute;
	width: 100%;
	z-index: 1;
}

.gce-calendar-date-control:focus-within .gce-calendar-date-label {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.gce-calendar-ajax-results,
.gce-calendar-search-results {
	background: #fff;
	border: 1px solid #d7dde5;
	margin: 1rem 0;
	padding: 0.75rem;
}

.gce-calendar-ajax-results[hidden],
.gce-calendar-search-results[hidden],
.gce-calendar-ajax-results:empty {
	display: none !important;
}

.gce-calendar-ajax-results:not([hidden]) + .gce-calendar-search-results {
	display: none !important;
}

.gce-calendar-search-results ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gce-calendar-search-results li {
	display: flex;
	gap: 0.65rem;
	align-items: center;
	flex-wrap: wrap;
	padding: 0.4rem 34px 0.4rem 0;
	position: relative;
}

.gce-calendar-search-item-menu {
	position: absolute;
	right: 0;
	top: 0.35rem;
}

.gce-calendar-search-title {
	font-weight: 700;
}

.gce-calendar-search-meta {
	color: #526070;
}

.gce-calendar-search-view {
	border: 1px solid #cbd5e1;
	background: #fff;
	color: #1f2937;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.4rem 0.65rem;
	text-decoration: none;
}

.gce-absence-modal {
	align-items: center;
	background: rgba(15, 23, 42, 0.45);
	display: flex;
	inset: 0;
	justify-content: center;
	position: fixed;
	z-index: 100000;
}

.gce-absence-modal[hidden] {
	display: none;
}

.gce-absence-dialog {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 22px 55px rgba(15, 23, 42, 0.25);
	max-width: 720px;
	padding: 1.25rem;
	width: calc(100% - 2rem);
}

.gce-absence-dialog h2 {
	margin: 0;
}

.gce-absence-header {
	align-items: flex-start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.gce-absence-person {
	color: #50575e;
	font-size: 1rem;
	margin: 0.35rem 0 0;
}

.gce-absence-message,
.gce-absence-save-notice {
	background: #f0f6fc;
	border-left: 4px solid #2271b1;
	color: #1d2327;
	margin: 0 0 1rem;
	padding: 0.55rem 0.75rem;
}

.gce-absence-message:empty,
.gce-absence-save-notice[hidden] {
	display: none;
}

.gce-absence-field,
.gce-absence-actions,
.gce-mobile-events-heading {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.gce-absence-field label {
	display: grid;
	flex: 1 1 220px;
	gap: 0.25rem;
}

.gce-absence-field input {
	min-height: 38px;
	width: 100%;
}

.gce-absence-field button,
.gce-absence-actions button {
	min-height: 38px;
}

.gce-absence-user-select {
	display: grid;
	font-weight: 700;
	gap: 0.25rem;
	margin-bottom: 0.75rem;
}

.gce-absence-list {
	display: grid;
	gap: 0.5rem;
	margin: 1rem 0;
}

.gce-absence-row {
	align-items: center;
	display: grid;
	gap: 0.5rem;
	grid-template-columns: minmax(130px, 0.7fr) minmax(160px, 1fr) auto auto;
}

.gce-absence-row input {
	min-height: 38px;
	width: 100%;
}

.gce-date-pill {
	align-items: center;
	background: #f0f6fc;
	border: 1px solid #72aee6;
	border-radius: 999px;
	display: inline-flex;
	gap: 0.5rem;
	margin: 0.2rem;
	padding: 0.35rem 0.65rem;
}

.gce-mobile-events-heading {
	justify-content: space-between;
}

.gce-calendar-month-popover {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 6px;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
	left: 50%;
	margin-top: 10px;
	min-width: 260px;
	padding: 12px;
	position: absolute;
	top: 100%;
	transform: translateX(-50%);
	z-index: 20;
}

.gce-calendar-month-popover[hidden] {
	display: none;
}

.gce-calendar-month-popover-header {
	align-items: center;
	display: grid;
	gap: 8px;
	grid-template-columns: 36px 1fr 36px;
	margin-bottom: 10px;
}

.gce-calendar-month-year {
	font-weight: 700;
	text-align: center;
}

.gce-calendar-month-year-button,
.gce-calendar-month-option,
.gce-calendar-month-today,
.gce-calendar-month-close {
	appearance: none;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	color: inherit;
	cursor: pointer;
	font: inherit;
	line-height: 1;
	margin: 0;
	text-align: center;
}

.gce-calendar-month-year-button {
	height: 36px;
	padding: 0;
}

.gce-calendar-month-grid {
	display: grid;
	gap: 6px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gce-calendar-month-option {
	min-height: 38px;
	padding: 9px 8px;
}

.gce-calendar-month-option.is-selected {
	background: #2271b1;
	border-color: #2271b1;
	color: #fff;
	font-weight: 700;
}

.gce-calendar-month-year-button:hover,
.gce-calendar-month-option:hover,
.gce-calendar-month-today:hover,
.gce-calendar-month-close:hover,
.gce-calendar-month-year-button:focus-visible,
.gce-calendar-month-option:focus-visible,
.gce-calendar-month-today:focus-visible,
.gce-calendar-month-close:focus-visible,
.gce-calendar-month-button:focus-visible {
	border-color: #2271b1;
	outline: 2px solid #2271b1;
	outline-offset: 2px;
}

.gce-calendar-month-actions {
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr 1fr;
	margin-top: 10px;
}

.gce-calendar-month-today,
.gce-calendar-month-close {
	min-height: 36px;
	padding: 9px 10px;
}

.gce-calendar-grid {
	background: #fff;
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gce-calendar-head,
.gce-calendar-day {
	border: 1px solid #ddd;
	min-height: 112px;
	padding: 8px;
}

.gce-calendar-day.is-today {
	box-shadow: inset 0 -2px 0 #2271b1;
}

.gce-calendar-day.is-selected:not(.is-today) {
	background: #fff;
}

.gce-calendar-head {
	background: #f6f7f7;
	font-weight: 700;
	min-height: 0;
	text-align: center;
}

.gce-calendar-head-short {
	display: none;
}

.gce-calendar-date {
	font-weight: 700;
	margin-bottom: 6px;
}

.gce-calendar-events {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gce-calendar-events li {
	font-size: 0.9rem;
	line-height: 1.35;
	margin-bottom: 8px;
	position: relative;
}

.gce-calendar-events li.is-expired,
.gce-mobile-events li.is-expired {
	opacity: 0.3;
}

.gce-calendar-events li.is-cancelled .gce-calendar-event-title,
.gce-mobile-events li.is-cancelled .gce-calendar-event-title,
.gce-upcoming-services li.is-cancelled .gce-upcoming-title {
	text-decoration: line-through;
}

.gce-upcoming-services {
	min-width: 200px;
}

.gce-calendar-event-link {
	display: block;
}

.gce-calendar-event-title,
.gce-calendar-event-time {
	display: block;
}

.gce-calendar-scheduler-toolbar {
	align-items: end;
	display: flex;
	gap: 10px;
	margin: 0;
	justify-content: flex-end;
}

.gce-calendar-scheduler-toolbar.gce-calendar-toolbar-empty {
	display: none;
}

.gce-calendar-scheduler-toolbar.gce-calendar-toolbar-empty.gce-admin-filters,
.gce-admin-filters.gce-calendar-toolbar-empty {
	background: transparent;
	border: 0;
	display: contents;
	margin: 0;
	padding: 0;
}

.gce-calendar-scheduler-toolbar label {
	display: flex;
	font-size: 0.9rem;
	font-weight: 700;
	gap: 4px;
}

.gce-calendar-scheduler-toolbar input,
.gce-calendar-scheduler-toolbar select {
	min-height: 38px;
	max-width: 100%;
	width: auto;
}

.gce-calendar-scheduler-checkbox {
	align-items: center;
	display: flex !important;
	gap: 8px;
	padding-bottom: 8px;
}

.gce-calendar-scheduler-checkbox input[type="checkbox"] {
	flex: 0 0 16px;
	height: 16px;
	min-height: 0;
	width: 16px;
}

.gce-calendar-scheduler-toolbar button,
.gce-calendar-filter-open,
.gce-calendar-scheduler-clear {
	background: #fff;
	border: 1px solid #d7dde5;
	;
	border-radius: 4px;
	color: inherit;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	padding: 8px 10px;
	text-align: center;
	text-decoration: none;
}

.gce-calendar-scheduler-clear {
	background: #fff;
	border-color: #dcdcde;
	color: #1d2327;
}

.gce-calendar-toolbar-spacer {
	flex: 1 1 auto;
}

.gce-calendar-nav-actions {
	align-items: center;
	display: flex;
	gap: 0.5rem;
	justify-content: flex-end;
}

.gce-calendar-search-control {
	position: relative;
}

.gce-calendar-search-open,
.gce-calendar-search-close,
.gce-calendar-search-clear,
.gce-calendar-filter-close,
.gce-scheduler-quick-edit-close,
.gce-user-picker-close,
.gce-toast-close,
.gce-modal-close {
	align-items: center;
	display: inline-flex;
	justify-content: center;
}

.gce-calendar-search-open,
.gce-calendar-search-close {
	height: 38px;
	width: 42px;
}

.gce-calendar-search-close::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.42-1.41L7.83 13H20v-2Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.42-1.41L7.83 13H20v-2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.gce-calendar-search-open::before,
.gce-calendar-search-close::before,
.gce-calendar-search-clear::before,
.gce-calendar-filter-close::before,
.gce-scheduler-quick-edit-close::before,
.gce-user-picker-close::before,
.gce-toast-close::before {
	background: currentColor;
	content: "";
	display: block;
	height: 18px;
	width: 18px;
}

.gce-calendar-search-open::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m21 20-5.6-5.6a7 7 0 1 0-1.4 1.4L20 21l1-1ZM5 10a5 5 0 1 1 10 0 5 5 0 0 1-10 0Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m21 20-5.6-5.6a7 7 0 1 0-1.4 1.4L20 21l1-1ZM5 10a5 5 0 1 1 10 0 5 5 0 0 1-10 0Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.gce-calendar-search-clear::before {
	-webkit-mask: var(--gce-icon-close) center / contain no-repeat;
	mask: var(--gce-icon-close) center / contain no-repeat;
}

.gce-calendar-filter-close::before,
.gce-scheduler-quick-edit-close::before,
.gce-user-picker-close::before,
.gce-toast-close::before {
	-webkit-mask: var(--gce-icon-close) center / contain no-repeat;
	mask: var(--gce-icon-close) center / contain no-repeat;
}

.gce-calendar-search-panel {
	align-items: end;
	display: flex;
	gap: 6px;
}

.gce-calendar-search-field {
	display: block;
	position: relative;
}

.gce-calendar-search-field input[type="search"] {
	padding-right: 34px;
}

.gce-calendar .gce-calendar-search-clear {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--gce-control-primary);
	cursor: pointer;
	font-size: 0;
	height: 38px;
	padding: 0;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 38px;
}

.gce-calendar .gce-calendar-search-clear[hidden] {
	display: none !important;
}

.gce-calendar .gce-calendar-search-clear::before {
	height: 22px;
	width: 22px;
}

.gce-calendar .gce-calendar-search-clear:focus-visible {
	box-shadow: 0 0 0 2px var(--gce-control-ring);
	outline: 0;
}

.gce-calendar-filter-open,
.gce-calendar-filter-close {
	min-height: 38px;
}

.gce-calendar-filter-close {
	font-size: 0;
	min-width: 38px;
	padding: 8px;
}

.gce-modal-close {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: inherit;
	cursor: pointer;
	min-height: 32px;
	padding: 4px;
}

.gce-modal-close .gce-icon-close {
	height: 18px;
	width: 18px;
}

.gce-calendar-filter-overlay {
	background: rgba(15, 23, 42, 0.35);
	inset: 0;
	position: fixed;
	z-index: 99998;
}

.gce-calendar-filter-drawer {
	background: #fff;
	box-shadow: -16px 0 36px rgba(15, 23, 42, 0.22);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	height: 100vh;
	max-width: min(520px, calc(100vw - 2rem));
	overflow-y: auto;
	padding: 1rem;
	position: fixed;
	right: 0;
	top: 0;
	width: 480px;
	z-index: 99999;
}

.gce-calendar-filter-drawer[hidden],
.gce-calendar-filter-overlay[hidden] {
	display: none !important;
}

.gce-calendar-filter-header {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.gce-calendar-filter-header h2 {
	font-size: 1.1rem;
	margin: 0;
}

.gce-calendar-search-open[hidden],
.gce-calendar-search-panel[hidden],
.gce-calendar.is-searching .gce-calendar-nav-center,
.gce-calendar.is-searching .gce-calendar-grid,
.gce-calendar.is-searching>.gce-calendar-agenda,
.gce-calendar.is-searching>.gce-mobile-events,
.gce-calendar.is-searching>.gce-subscribe {
	display: none !important;
}

.gce-calendar-day {
	background: #fff;
	position: relative;
}

.gce-calendar-cell-menu {
	position: relative;
	z-index: 80;
}

.gce-event-title-row {
	align-items: center;
	display: inline-flex;
	gap: 8px;
}

.gce-event-title-row h1 {
	margin: 0;
}

.gce-calendar-day .gce-calendar-cell-menu {
	position: absolute;
	right: 4px;
	top: 4px;
}

.gce-calendar-cell-menu.is-open {
	z-index: 1000;
}

.gce-calendar-cell-menu-button {
	appearance: none;
	background-color: currentColor;
	border: 0;
	border-radius: 0;
	color: #1d2327;
	cursor: pointer;
	height: 28px;
	line-height: 1;
	padding: 0;
	width: 28px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' width='135.486mm' height='135.486mm' viewBox='0 0 512 512'%3E%3Cpath fill='black' d='M 244.00,48.46 C 265.06,45.56 286.63,50.71 301.96,66.04 311.63,75.70 319.83,92.15 320.00,106.00 320.00,106.00 320.00,118.00 320.00,118.00 319.74,140.14 304.15,160.18 285.00,169.75 272.17,176.17 264.89,176.16 251.00,176.00 225.73,175.70 202.52,156.62 194.75,133.00 191.36,122.70 191.95,117.50 192.00,107.00 192.14,77.24 216.28,54.45 244.00,48.46 Z M 244.00,192.46 C 265.06,189.56 286.63,194.71 301.96,210.04 311.63,219.70 319.83,236.15 320.00,250.00 320.00,250.00 320.00,262.00 320.00,262.00 319.74,284.14 304.15,304.18 285.00,313.75 272.17,320.17 264.89,320.16 251.00,320.00 225.73,319.70 202.52,300.62 194.75,277.00 191.36,266.70 191.95,261.50 192.00,251.00 192.14,221.24 216.28,198.45 244.00,192.46 Z M 244.00,336.46 C 265.06,333.56 286.63,338.71 301.96,354.04 311.63,363.70 319.83,380.15 320.00,394.00 320.00,394.00 320.00,406.00 320.00,406.00 319.74,428.14 304.15,448.18 285.00,457.75 272.17,464.17 264.89,464.16 251.00,464.00 225.73,463.70 202.52,444.62 194.75,421.00 191.36,410.70 191.95,405.50 192.00,395.00 192.14,365.24 216.28,342.45 244.00,336.46 Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' width='135.486mm' height='135.486mm' viewBox='0 0 512 512'%3E%3Cpath fill='black' d='M 244.00,48.46 C 265.06,45.56 286.63,50.71 301.96,66.04 311.63,75.70 319.83,92.15 320.00,106.00 320.00,106.00 320.00,118.00 320.00,118.00 319.74,140.14 304.15,160.18 285.00,169.75 272.17,176.17 264.89,176.16 251.00,176.00 225.73,175.70 202.52,156.62 194.75,133.00 191.36,122.70 191.95,117.50 192.00,107.00 192.14,77.24 216.28,54.45 244.00,48.46 Z M 244.00,192.46 C 265.06,189.56 286.63,194.71 301.96,210.04 311.63,219.70 319.83,236.15 320.00,250.00 320.00,250.00 320.00,262.00 320.00,262.00 319.74,284.14 304.15,304.18 285.00,313.75 272.17,320.17 264.89,320.16 251.00,320.00 225.73,319.70 202.52,300.62 194.75,277.00 191.36,266.70 191.95,261.50 192.00,251.00 192.14,221.24 216.28,198.45 244.00,192.46 Z M 244.00,336.46 C 265.06,333.56 286.63,338.71 301.96,354.04 311.63,363.70 319.83,380.15 320.00,394.00 320.00,394.00 320.00,406.00 320.00,406.00 319.74,428.14 304.15,448.18 285.00,457.75 272.17,464.17 264.89,464.16 251.00,464.00 225.73,463.70 202.52,444.62 194.75,421.00 191.36,410.70 191.95,405.50 192.00,395.00 192.14,365.24 216.28,342.45 244.00,336.46 Z'/%3E%3C/svg%3E");
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 18px 18px;
	mask-size: 18px 18px;
}

.gce-calendar-cell-menu-button:hover,
.gce-calendar-cell-menu-button:focus-visible {
	outline: 2px solid #2271b1;
	outline-offset: 1px;
}

.gce-calendar-cell-menu-list {
	background: #fff;
	border: 1px solid #dcdcde;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
	min-width: 150px;
	padding: 6px 0;
	position: fixed;
	z-index: 100000;
}

.gce-calendar-cell-menu-list[hidden] {
	display: none !important;
}

.gce-calendar-cell-menu-list a {
	color: #1d2327;
	display: block;
	line-height: 1.3;
	padding: 8px 12px;
	text-decoration: none;
	white-space: nowrap;
}

.gce-calendar-cell-menu-list a:hover,
.gce-calendar-cell-menu-list a:focus {
	background: #f0f0f1;
	color: #1d2327;
	outline: 0;
}

.gce-calendar-view-month .gce-calendar-grid .gce-calendar-search-item-menu,
.gce-calendar-view-week > .gce-calendar-agenda .gce-calendar-search-item-menu {
	display: none;
}

.gce-calendar-view-day .gce-calendar-search-item-menu {
	position: absolute;
	right: 8px;
	top: 8px;
}

.gce-calendar-event-actions {
	display: inline-flex;
	float: right;
	gap: 4px;
	margin-left: 4px;
}

.gce-calendar-event-action {
	align-items: center;
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	color: #1d2327;
	display: inline-flex;
	height: 22px;
	justify-content: center;
	text-decoration: none;
	width: 22px;
}

.gce-calendar-event-action svg {
	height: 13px;
	width: 13px;
}

.gce-calendar-scheduling-edit {
	color: #2271b1;
}

.gce-calendar-scheduler-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-top: 5px;
}

.gce-scheduler-assignment-pill {
	--gce-position-color: #2563eb;
	--gce-position-text-color: #fff;
	align-items: center;
	background: var(--gce-position-color);
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 0.8em;
	color: #fff;
	display: inline-flex;
	font-size: 11px;
	font-weight: 600;
	gap: 4px;
	line-height: 1.25;
	max-width: 100%;
	padding: 2px 7px;
}

.gce-scheduler-assignment-pill[hidden] {
	display: none !important;
}

.gce-scheduler-assignment-pill.is-open {
	background: #fff;
	border-color: var(--gce-position-color, #c3c4c7);
	color: var(--gce-position-color, #c3c4c7);
	font-weight: 500;
}

.gce-scheduler-pill-indicator {
	align-items: center;
	background: rgba(255, 255, 255, .22);
	border-radius: 50%;
	display: inline-flex;
	flex: 0 0 auto;
	height: 15px;
	justify-content: center;
	width: 15px;
	margin-left: -4px;
}

.gce-scheduler-assignment-pill.is-open .gce-scheduler-pill-indicator {
	background: #fff;
	border: 1px solid currentColor;
	color: var(--gce-position-color, #646970);
}

.gce-scheduler-pill-text {
	display: inline-flex;
	flex-direction: column;
	overflow-wrap: anywhere;
}

.gce-scheduler-pill-position {
	font-size: 80%;
	opacity: 0.6;
	white-space: nowrap;
	margin-top: -0.3em;
}

.gce-calendar-scheduler-pills .gce-scheduler-assignment-pill {
	font-size: 0.78rem;
	max-width: 100%;
}

.gce-scheduler-assignment-pill[data-gce-scheduler-quick-edit] {
	cursor: pointer;
}

.gce-scheduler-quick-edit-modal {
	align-items: center;
	background: rgba(0, 0, 0, .42);
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	padding: 20px;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 100000;
}

.gce-scheduler-quick-edit-modal[hidden] {
	display: none;
}

.gce-scheduler-quick-edit-dialog {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 40px);
	max-width: 560px;
	overflow: hidden;
	padding: 0;
	position: relative;
	width: 100%;
}

.gce-scheduler-quick-edit-form {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-height: 0;
}

.gce-scheduler-quick-edit-header,
.gce-scheduler-quick-edit-footer {
	background: #fff;
	flex: 0 0 auto;
	padding: 16px 20px;
}

.gce-scheduler-quick-edit-header {
	align-items: center;
	border-bottom: 1px solid #d7dde5;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.gce-scheduler-quick-edit-heading {
	min-width: 0;
}

.gce-scheduler-quick-edit-title {
	font-size: 1.25rem;
	line-height: 1.25;
	margin: 0;
	overflow-wrap: anywhere;
}

.gce-scheduler-quick-edit-body {
	border-left: 4px solid var(--gce-position-color, transparent);
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 18px 20px;
}

.gce-scheduler-quick-edit-footer {
	border-top: 1px solid #d7dde5;
}

.gce-scheduler-quick-edit-close {
	background: transparent;
	border: 0;
	cursor: pointer;
	flex: 0 0 auto;
	font-size: 0;
	line-height: 1;
	min-height: 32px;
	padding: 2px 8px;
}

.gce-scheduler-quick-edit-context,
.gce-scheduler-quick-edit-message {
	color: #50575e;
}

.gce-scheduler-readonly-assignment {
	display: grid;
	gap: 6px;
	margin-top: 16px;
}

.gce-scheduler-readonly-label,
.gce-scheduler-custom-field-readonly > span:first-child {
	color: #1d2327;
	font-weight: 600;
}

.gce-scheduler-readonly-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.gce-scheduler-custom-fields-readonly {
	display: grid;
}

.gce-scheduler-custom-field-readonly {
	gap: 6px;
}

.gce-scheduler-custom-field-value {
	color: #50575e;
	overflow-wrap: anywhere;
}

.gce-scheduler-quick-edit-message.is-error {
	color: #b32d2e;
}

.gce-scheduler-quick-edit-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}

.gce-user-picker-modal {
	z-index: 100001;
}

.gce-user-picker-dialog {
	display: flex;
	flex-direction: column;
	max-height: min(640px, calc(100vh - 48px));
	overflow: hidden;
	padding: 0;
}

.gce-user-picker-header {
	align-items: center;
	background: #fff;
	border-bottom: 1px solid #d7dde5;
	display: flex;
	flex: 0 0 auto;
	gap: 10px;
	padding: 14px;
	position: sticky;
	top: 0;
	z-index: 1;
}

.gce-user-picker-header input {
	flex: 1 1 auto;
}

.gce-user-picker-close {
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 0;
	line-height: 1;
	padding: 0 4px;
}

.gce-user-picker-results {
	display: grid;
	gap: 4px;
	overflow-y: auto;
	padding: 10px;
}

.gce-user-picker-option {
	background: #fff;
	border: 0;
	border-radius: 4px;
	color: #1d2327;
	cursor: pointer;
	font: inherit;
	padding: 10px;
	text-align: left;
}

.gce-user-picker-option:hover,
.gce-user-picker-option:focus {
	background: #f0f0f1;
	outline: 0;
}

.gce-user-picker-option.is-disabled,
.gce-user-token-option.is-disabled {
	color: #646970;
	cursor: not-allowed;
	opacity: 0.72;
}

.gce-user-picker-option.is-disabled:hover,
.gce-user-picker-option.is-disabled:focus,
.gce-user-token-option.is-disabled:hover,
.gce-user-token-option.is-disabled:focus {
	background: #fff;
}

@media (max-width: 600px) {
	.gce-scheduler-quick-edit-modal {
		padding: 10px;
	}

	.gce-scheduler-quick-edit-dialog {
		max-height: calc(100vh - 20px);
		max-height: calc(100dvh - 20px);
	}

	.gce-scheduler-quick-edit-header,
	.gce-scheduler-quick-edit-body,
	.gce-scheduler-quick-edit-footer {
		padding-left: 14px;
		padding-right: 14px;
	}
}

.gce-user-token-select {
	margin: 0;
}

.gce-user-token-controls {
	position: relative;
}

.gce-user-token-combobox {
	box-sizing: border-box;
	width: 100%;
}

.gce-user-token-dropdown {
	background: #fff;
	border: 1px solid #c3c4c7;
	box-shadow: 0 8px 18px rgba(0, 0, 0, .12);
	left: 0;
	max-height: 220px;
	overflow-y: auto;
	position: absolute;
	right: 0;
	top: calc(100% + 2px);
	z-index: 5;
}

.gce-user-token-dropdown[hidden] {
	display: none;
}

.gce-user-token-option {
	background: #fff;
	border: 0;
	cursor: pointer;
	display: block;
	padding: 8px 10px;
	text-align: left;
	width: 100%;
}

.gce-user-token-option:hover,
.gce-user-token-option:focus {
	background: #f0f6fc;
}

.gce-user-token-option.is-disabled,
.gce-user-token-option.is-disabled:hover,
.gce-user-token-option.is-disabled:focus {
	background: #fff;
	color: #646970;
	cursor: not-allowed;
	opacity: 0.72;
}

.gce-user-token-empty {
	color: #646970;
	padding: 8px 10px;
}

.gce-user-token-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
}

.gce-user-token-assignment-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}

.gce-user-token-assignment-row .gce-user-token-list {
	margin-top: 0;
}

.gce-user-picker-trigger {
	flex: 0 0 auto;
	width: auto;
}

.gce-scheduler-quick-edit-form .gce-user-picker-trigger {
	width: auto;
}

.gce-user-token .button-link {
	color: inherit;
	min-height: 0;
	padding: 0;
}

.gce-user-token-remove,
.gce-user-token .gce-user-token-remove,
.gce-user-token-select.has-position-color .gce-user-token .gce-user-token-remove {
	appearance: none;
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: inherit !important;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	font: inherit;
	height: 20px;
	justify-content: center;
	line-height: 1;
	margin: 0;
	min-height: 0;
	min-width: 0;
	outline: 0;
	padding: 2px;
	text-decoration: none;
	width: 20px;
	-webkit-appearance: none;
}

.gce-user-token-remove:hover,
.gce-user-token-remove:active,
.gce-user-token-remove:focus,
.gce-user-token .gce-user-token-remove:hover,
.gce-user-token .gce-user-token-remove:active,
.gce-user-token .gce-user-token-remove:focus {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: inherit !important;
	outline: 0;
}

.gce-user-token-remove:focus-visible,
.gce-user-token .gce-user-token-remove:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.gce-icon-close {
	background-color: currentColor;
	display: inline-block;
	height: 12px;
	mask-image: var(--gce-icon-close);
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	vertical-align: -0.125em;
	width: 12px;
	-webkit-mask-image: var(--gce-icon-close);
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
}

.gce-calendar-grid .gce-calendar-event-time,
.gce-calendar-grid .gce-calendar-local-time {
	display: none;
}

.gce-calendar-local-time {
	color: #50575e;
	font-size: 0.9em;
	margin-top: 3px;
}

.gce-calendar-events .gce-watch-now-button,
.gce-mobile-events .gce-watch-now-button,
.gce-upcoming-services .gce-watch-now-button {
	font-size: 0.85rem;
}

.gce-calendar-events .gce-watch-now-button {
	margin-top: 5px;
}

.gce-countdown .gce-watch-now-button {
	margin-top: 0;
}

.gce-calendar-day.is-today .gce-calendar-date {
	color: #2271b1;
}

.gce-calendar-day.is-selected:not(.is-today) .gce-calendar-date {
	background: transparent;
	border-radius: 0;
	color: #1d2327;
	display: inline-flex;
	min-width: 1.8rem;
	justify-content: center;
}

.gce-calendar-day.is-selected.is-today .gce-calendar-date,
.gce-calendar-day.is-today .gce-calendar-date {
	background: #2271b1;
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	justify-content: center;
	min-width: 1.8rem;
}

.gce-scheduler-calendar-legend {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.gce-calendar-filter-drawer .gce-scheduler-calendar-legend {
	flex-direction: column;
	margin-bottom: 0;
	justify-content: flex-start;
	align-items: flex-start;
}

.gce-calendar-filter-drawer .gce-scheduler-legend-mobile-toggle {
	display: none;
}

.gce-scheduler-legend-mobile-toggle {
	display: none;
}

.gce-scheduler-legend-item {
	align-items: center;
	background: #fff;
	border: 1px solid #d7dde5;
	border-radius: 999px;
	color: #1f2937;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.88rem;
	gap: 0.4rem;
	padding: 0.3rem 0.6rem;
	min-width: 0;
	white-space: nowrap;
}

.gce-scheduler-legend-control {
	align-items: stretch;
	border-radius: 999px;
	display: inline-grid;
	grid-template-columns: minmax(12rem, 1fr) minmax(8rem, auto);
	overflow: hidden;
	width: 100%;
}

.gce-scheduler-legend-control .gce-scheduler-legend-item {
	border-bottom-right-radius: 0;
	border-right: 0;
	border-top-right-radius: 0;	
	border-top-left-radius: 999px;
    border-bottom-left-radius: 999px;
	justify-content: flex-start;
}

button.gce-scheduler-legend-item {
	font: inherit;
}

.gce-scheduler-legend-control.is-active .gce-scheduler-legend-item {
	border-color: var(--gce-position-color, #4b5563);
}

.gce-scheduler-legend-item.is-active .gce-scheduler-color-swatch::after {
	color: #fff;
	content: "\2713";
	display: block;
	font-size: 0.65rem;
	font-weight: 800;
	line-height: 0.85rem;
	text-align: center;
}

.gce-scheduler-legend-item.is-unassigned {
	background: #fff;
	border-color: var(--gce-position-color, #d97706);
	box-shadow: inset 0 0 0 1px rgba(217, 119, 6, 0.12);
}

.gce-scheduler-legend-item.is-unassigned .gce-scheduler-color-swatch {
	background: #fff;
	border-color: var(--gce-position-color, #d97706);
	box-shadow: inset 0 0 0 2px #fff;
}

.gce-scheduler-legend-item.is-unassigned .gce-scheduler-color-swatch::after {
	color: var(--gce-position-color, #d97706);
	content: "!";
	display: block;
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 0.82rem;
	text-align: center;
}

.gce-scheduler-legend-my:not(.is-active),
.gce-scheduler-legend-item.is-hidden,
.gce-scheduler-legend-item.is-disabled,
.gce-scheduler-legend-item.is-muted-by-mine {
	background: #fff;
	color: inherit;
	border-top-left-radius: 999px;
	border-bottom-left-radius: 999px;
}

.gce-scheduler-legend-control.is-disabled {
	opacity: 0.78;
}

.gce-scheduler-legend-item.is-hidden .gce-scheduler-color-swatch {
	background: transparent;
}

.gce-scheduler-legend-filter {
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.4 1.2 6 5.8l4.6-4.6' fill='none' stroke='%231f2937' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 0.75rem center;
	background-repeat: no-repeat;
	background-size: 0.75rem 0.5rem;
	border: 1px solid #d7dde5;
	border-bottom-right-radius: 999px;
	border-left: 0;
	border-top-right-radius: 999px;
	color: #1f2937;
	cursor: pointer;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.2;
	min-height: 100%;
	padding: 0.25rem 1.5rem 0.25rem 0.45rem;
	width: 100%;
}

.gce-scheduler-legend-control.is-active .gce-scheduler-legend-filter {
	border-color: var(--gce-position-color, #4b5563);
	border-left-width: 1px !important;
	border-left-style: solid !important;
	border-top-right-radius: 999px;
    border-bottom-right-radius: 999px;
}

.gce-scheduler-legend-filter:disabled {
	background-color: #f3f4f6;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.4 1.2 6 5.8l4.6-4.6' fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 0.75rem center;
	background-repeat: no-repeat;
	background-size: 0.75rem 0.5rem;
	color: #6b7280;
	cursor: not-allowed;
	opacity: 1;
}

.gce-scheduler-legend-state {
	display: none !important;
}

.gce-scheduler-legend-label {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}

.gce-scheduler-legend-my-checkbox {
	align-items: center;
	display: flex;
	font-size: 0.95rem;
	font-weight: 700;
	gap: 0.5rem;
	line-height: 1.3;
	padding: 0.25rem 0;
	word-break: normal;
	overflow-wrap: normal;
}

.gce-scheduler-legend-my-checkbox input[type="checkbox"] {
	flex: 0 0 16px;
	height: 16px;
	min-height: 0;
	width: 16px;
}

.gce-scheduler-color-swatch {
	background: var(--gce-position-color, #2563eb);
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 50%;
	display: inline-block;
	height: 0.85rem;
	width: 0.85rem;
}

.gce-scheduler-color-swatch.is-my-assignments {
	background: #111827;
}

.gce-day-timeline {
	background: #fff;
	border: 1px solid #e5e7eb;
}

.gce-day-all-day {
	background: #f8fafc;
	border-bottom: 1px solid #e5e7eb;
	padding: 10px 12px;
}

.gce-day-time-slot {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	min-height: 52px;
}

.gce-day-time-slot+.gce-day-time-slot {
	border-top: 1px solid #eef2f7;
}

.gce-day-time-label {
	background: #f8fafc;
	border-right: 1px solid #e5e7eb;
	color: #4b5563;
	font-size: 0.82rem;
	padding: 8px;
	text-align: right;
}

.gce-day-time-events {
	padding: 8px 10px;
}

.gce-calendar-mobile-dots {
	display: none;
}

.gce-calendar-filter-empty,
.gce-calendar-search-empty {
	background: #f6f7f7;
	border-left: 4px solid #2271b1;
	margin: 0 0 1rem;
	padding: 12px 14px;
}

.gce-calendar-agenda {
	display: grid;
	gap: 0.85rem;
}

.gce-calendar-agenda-day {
	background: #fff;
	border: 1px solid #d7dde5;
	border-radius: 8px;
	padding: 0.85rem;
}

.gce-calendar-view-week.gce-calendar-hide-empty-days>.gce-calendar-agenda>.gce-calendar-agenda-day:not(.has-visible-events) {
	display: none;
}

.gce-calendar-agenda-day-heading {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	margin-bottom: 0.55rem;
}

.gce-calendar-agenda-day-heading h3 {
	font-size: 1rem;
	margin: 0;
}

.gce-calendar-empty-day {
	color: #6b7280;
	margin: 0;
}


/* Admin scheduler/form layouts shared with frontend quick edit and calendar controls. */
.gce-scheduler-occurrence-card {
	background: #ffffff;
	border: 1px solid #dcdcde;
	margin: 16px 0;
	max-width: 980px;
	padding: 18px;
}

.gce-scheduler-occurrence-card h2 {
	font-size: 18px;
	line-height: 1.3;
	margin: 0 0 8px;
}

.gce-scheduler-department-block {
	border: 1px solid #dcdcde;
	border-radius: 4px;
	flex: 1 1 280px;
	padding: 14px;
}

.gce-scheduler-position-checks {
	margin: 10px 0 0;
	padding-top: 10px;
}

.gce-scheduler-department-header {
	align-items: center;
	display: flex;
	gap: 10px;
	justify-content: space-between;
}

.gce-scheduler-department-header h3 {
	font-size: 16px;
	line-height: 1.35;
	margin: 0;
}

.gce-scheduler-position-toggle {
	align-items: center;
	display: flex;
	gap: 8px;
	margin: 0;
}

.gce-scheduler-position-row {
	display: grid;
	gap: 7px;
	padding: 2px 0 6px;
    width: 100%;
}

.gce-scheduler-position-toggle {
	min-height: 30px;
}

.gce-scheduler-position-assignment {
	border-left: 3px solid var(--gce-position-color, #dcdcde);
	display: grid;
	gap: 6px;
	margin-left: 25px;
	padding-left: 12px;
}

.gce-scheduler-position-assignment.is-disabled {
	display: none;
	opacity: .55;
}

.gce-scheduler-position-assignment.is-disabled select,
.gce-scheduler-position-assignment.is-disabled .gce-user-token {
	border-color: #c3c4c7;
	color: #646970;
}

.gce-scheduler-department-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	max-width: 1180px;
}

.gce-scheduler-department-grid .gce-scheduler-department-block {
	display: grid;
	min-width: 0;
	grid-template-rows: auto 1fr;
}

.gce-scheduler-department-grid .gce-scheduler-position-checks {
	display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
	gap: 8px;
}

.gce-scheduler-event-details,
.gce-scheduler-add-date {
	background: #fff;
	border: 1px solid #dcdcde;
	margin: 16px 0;
	max-width: 980px;
	padding: 16px;
}

.gce-scheduler-occurrence-batch-form {
	display: grid;
	gap: 14px;
}

.gce-scheduler-selected-occurrences {
	display: grid;
	gap: 14px;
}

.gce-scheduler-occurrence-card {
	position: relative;
}

.gce-scheduler-occurrence-card .gce-scheduler-occurrence-remove {
	position: absolute;
	right: 16px;
	top: 16px;
}

.gce-scheduler-occurrence-card > h2,
.gce-scheduler-occurrence-card > p:first-of-type {
	padding-right: 80px;
}

.gce-scheduler-batch-actions {
	margin: 0;
}

.gce-scheduler-occurrence-selector {
	align-items: flex-start;
	display: grid;
	gap: 12px;
}

.gce-admin-filters.gce-scheduler-occurrence-selector {
	align-items: flex-start;
	display: grid;
}

.gce-scheduler-datepicker {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 320px));
	max-width: 680px;
}

.gce-scheduler-datepicker-month {
	border: 1px solid #dcdcde;
	border-radius: 4px;
	padding: 10px;
}

.gce-scheduler-datepicker-month h3 {
	font-size: 14px;
	margin: 0 0 8px;
}

.gce-scheduler-datepicker-nav,
.gce-scheduler-overview-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0;
}

.gce-scheduler-datepicker-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gce-scheduler-datepicker-legend span {
	border: 1px solid #dcdcde;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	padding: 3px 9px;
}

.gce-scheduler-datepicker-legend .needs-scheduling {
	background: #fff8e5;
	border-color: #dba617;
}

.gce-scheduler-datepicker-legend .has-scheduling {
	background: #edfaef;
	border-color: #68de7c;
}

.gce-scheduler-occurrence-weekdays,
.gce-scheduler-occurrence-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gce-scheduler-occurrence-weekdays {
	color: #646970;
	font-size: 11px;
	font-weight: 600;
	margin-bottom: 4px;
	text-align: center;
	text-transform: uppercase;
}

.gce-scheduler-occurrence-day {
	align-items: center;
	aspect-ratio: 1;
	background: #f6f7f7;
	border: 1px solid #dcdcde;
	color: #50575e;
	display: flex;
	justify-content: center;
	margin: -1px 0 0 -1px;
	min-height: 34px;
	position: relative;
}

.gce-scheduler-occurrence-day input {
	inset: 0;
	opacity: 0;
	position: absolute;
}

.gce-scheduler-occurrence-day.is-valid {
	cursor: pointer;
	font-weight: 600;
}

.gce-scheduler-occurrence-day.is-disabled {
	background: #fbfbfb;
	color: #a7aaad;
}

.gce-scheduler-occurrence-option.needs-scheduling {
	background: #fff8e5;
	border-color: #dba617;
	color: #1d2327;
}

.gce-scheduler-occurrence-option.has-scheduling {
	background: #edfaef;
	border-color: #68de7c;
	color: #1d2327;
}

.gce-scheduler-occurrence-option.is-past {
	opacity: .62;
}

.gce-scheduler-occurrence-option.is-selected {
	box-shadow: inset 0 0 0 2px #2271b1;
	z-index: 1;
}

.gce-scheduler-occurrence-day input:focus-visible + .gce-scheduler-occurrence-day-number {
	outline: 2px solid #2271b1;
	outline-offset: 2px;
}

.gce-scheduler-event-details h2,
.gce-scheduler-add-date h2 {
	margin: 0 0 12px;
}

.gce-scheduler-event-details dl {
	display: grid;
	gap: 10px 18px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin: 0;
}

.gce-scheduler-event-details dl > div {
	display: grid;
	gap: 3px;
}

.gce-scheduler-event-details dt {
	color: #646970;
	font-weight: 600;
}

.gce-scheduler-event-details dd {
	margin: 0;
}

.gce-checkbox-stack {
	align-items: flex-start;
	flex-direction: column;
}

.gce-event-visibility-fields {
	gap: 8px;
}

.gce-event-visibility-option {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.gce-checkbox-list label,
.gce-checkbox-group label,
.gce-meta-box label:has(input[type="checkbox"]),
.gce-meta-box label:has(input[type="radio"]) {
	align-items: center;
	display: inline-flex;
	font-weight: 400;
	gap: 6px;
	margin: 0;
	width: auto;
}

.gce-checkbox-list label span,
.gce-meta-box label:has(input[type="checkbox"]) span {
	display: inline;
	font-weight: 400;
	margin-bottom: 0;
}

.gce-timing-all-day {
	margin-bottom: 14px;
}

.gce-inline-add-field {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
	max-width: 680px;
}

.gce-inline-add-field .gce-field {
	flex: 1 1 240px;
	margin-bottom: 0;
}

.gce-inline-add-field .description {
	flex-basis: 100%;
	margin: 0;
}

.gce-inline-resource-header {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	max-width: 760px;
    flex-direction: column;
}

.gce-inline-resource-header > .gce-field,
.gce-inline-resource-header > .gce-checkbox-group {
	margin-bottom: 0;
}

.gce-inline-panel {
	background: #fff;
	border: 1px solid #dcdcde;
	margin-top: 14px;
	max-width: 760px;
	padding: 14px;
}

.gce-inline-panel-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(180px, 1fr));
}

.gce-inline-panel .gce-field {
	margin-bottom: 0;
	max-width: none;
}

.gce-inline-panel .gce-field-name,
.gce-inline-panel .gce-field-map_url,
.gce-inline-panel .gce-field-bio,
.gce-inline-panel .gce-field-is_default {
	grid-column: 1 / -1;
}

.gce-inline-panel-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.gce-inline-message,
.gce-inline-status {
	color: #00a32a;
}

.gce-inline-message.is-error {
	color: #b32d2e;
}

.gce-inline-status {
	margin-top: 10px;
}

.gce-exclusion-row {
	align-items: center;
	display: flex;
	gap: 8px;
	margin-bottom: 8px;
}

.gce-exclusion-row input[type="date"] {
	max-width: 180px;
}

.gce-pill-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.gce-event-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 180px;
}

.gce-event-tags-cell {
	white-space: normal;
}

.gce-date-pill {
	align-items: center;
	background: #f0f0f1;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	display: inline-flex;
	gap: 8px;
	padding: 5px 9px;
}

.gce-cancellation-row {
	align-items: center;
	background: #f0f0f1;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	display: flex;
	gap: 10px;
	margin-top: 12px;
	max-width: 760px;
	padding: 6px 9px;
}

.gce-cancellation-row input[type="text"] {
	flex: 1 1 260px;
	max-width: none;
	min-width: 180px;
	width: auto;
}

.gce-cancellation-row .button-link {
	flex: 0 0 auto;
}

.gce-delete-action {
	margin-top: 18px;
}

.gce-delete-action a {
	background: transparent;
	border: 0;
	box-shadow: none;
	display: inline;
	height: auto;
	line-height: inherit;
	min-height: 0;
	padding: 0;
	text-decoration: underline;
	width: auto;
}

.gce-editor-field {
	margin-top: 22px;
	max-width: 760px;
}

.gce-admin-table {
	min-width: 100%;
	table-layout: auto;
	width: max-content;
}

.gce-admin-table th,
.gce-admin-table td {
	padding: 7px 8px;
	vertical-align: middle;
	white-space: nowrap;
}

.gce-grid-wrap {
	background: #fff;
	border: 1px solid #c3c4c7;
	overflow-x: auto;
}

.gce-admin-searchbar {
	align-items: center;
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 12px 0;
	padding: 12px 18px;
}

.gce-admin-filters {
	align-items: flex-end;
	background: #fff;
	border: 1px solid #dcdcde;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 12px 0;
	padding: 12px 18px;
}

.gce-admin-filters label {
	display: flex;
	font-weight: 600;
	gap: 5px;
}

.gce-admin-table-search {
	max-width: 440px;
	min-height: 36px;
	width: 100%;
}

.gce-admin-table-search-results,
.gce-admin-table-status {
	color: #3c434a;
	white-space: nowrap;
}

.gce-pager {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
}

.gce-pager select {
	min-width: 80px;
}

.gce-admin-table-page-info {
	color: #3c434a;
	margin: 0 0 12px;
}

.gce-admin-table-bottom-pager {
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	justify-content: flex-end;
	margin: 12px 0;
	padding: 12px 14px;
}

.gce-admin-table-page-select {
	min-width: 88px;
}

.gce-sortable {
	cursor: pointer;
	user-select: none;
}

.gce-sort-indicator {
	display: inline-block;
	font-size: 12px;
	margin-left: 5px;
}

#gce-events-grid .gce-status-pill,
.gce-event-form .gce-status-pill {
	border-radius: 999px;
	display: inline-flex;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	padding: 3px 8px;
	white-space: nowrap;
	border: 1px solid transparent;
	background: #fff;
}

#gce-events-grid .gce-status-upcoming,
.gce-event-form .gce-status-upcoming {
	border-color: #0d6efd;
	color: #0d6efd;
}

#gce-events-grid .gce-status-in-progress,
.gce-event-form .gce-status-in-progress {
	border-color: #198754;
	color: #198754;
}

#gce-events-grid .gce-status-past,
.gce-event-form .gce-status-past {
	border-color: #6c757d;
	color: #6c757d;
}

#gce-events-grid .gce-status-ongoing,
.gce-event-form .gce-status-ongoing {
	border-color: #ffc107;
	color: #ffc107;
}

#gce-events-grid .gce-status-cancelled,
.gce-event-form .gce-status-cancelled {
	border-color: #dc3545;
	color: #dc3545;
}

#gce-events-grid .gce-event-tag {
	background: #f6f7f7;
	border-color: #c3c4c7;
	color: #1d2327;
}

#gce-events-grid .gce-event-tag-cancelled {
	border-color: #dc3545;
	color: #dc3545;
}

.gce-toast-stack {
	bottom: 24px;
	display: grid;
	gap: 10px;
	position: fixed;
	right: 24px;
	z-index: 100000;
}

.gce-toast {
	align-items: center;
	background: #fff;
	border: 1px solid #198754;
	border-radius: 6px;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
	color: #1d2327;
	display: flex;
	font-size: 14px;
	gap: 12px;
	max-width: min(360px, calc(100vw - 32px));
	overflow: hidden;
	padding: 10px 12px;
	position: relative;
}

.gce-toast.is-warning {
	border-color: #dba617;
}

.gce-toast-close {
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	font-size: 0;
	line-height: 1;
	margin-left: auto;
	padding: 0 2px;
}

.gce-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gce-actions a {
	white-space: nowrap;
}

.gce-absence-edit-link {
	display: inline-flex;
	align-items: center;
	background: transparent;
	border: 0;
	box-shadow: none;
	cursor: pointer;
	padding: 0;
	text-decoration: none;
}

.gce-actions-cell {
	min-width: 110px;
}

#gce-scheduler-event-overview-grid {
	width: 100%;
}

#gce-scheduler-event-overview-grid th,
#gce-scheduler-event-overview-grid td {
	white-space: normal;
}

.gce-scheduler-overview-main {
	display: grid;
	gap: 4px;
	min-width: 220px;
}

.gce-scheduler-overview-main span {
	color: #50575e;
}

.gce-scheduler-overview-assignment-cell {
	min-width: 420px;
}

.gce-scheduler-overview-assignments {
	display: grid;
	gap: 6px;
}

.gce-scheduler-overview-assignment-row {
	align-items: center;
	background: #f6f7f7;
	border-left: 3px solid #72aee6;
	display: grid;
	gap: 6px 10px;
	grid-template-columns: minmax(100px, 1fr) minmax(110px, 1fr) minmax(130px, 1.3fr) minmax(90px, auto);
	margin-left: 12px;
	padding: 7px 10px;
}

.gce-scheduler-overview-assignment-department,
.gce-scheduler-overview-assignment-position {
	font-weight: 600;
}

.gce-scheduler-overview-assignment-status {
	color: #50575e;
}

@media (max-width: 782px) {
	.gce-scheduler-datepicker {
		grid-template-columns: minmax(0, 1fr);
	}

	.gce-scheduler-overview-assignment-cell {
		min-width: 280px;
	}

	.gce-scheduler-overview-assignment-row {
		grid-template-columns: 1fr;
	}
}

.gce-scheduler-department-form .gce-form-card,
.gce-scheduler-position-form .gce-form-card {
	box-sizing: border-box;
	grid-template-columns: 1fr;
	max-width: min(900px, 100%);
	overflow-x: clip;
}

.gce-scheduler-form-row {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	grid-column: 1 / -1;
}

.gce-scheduler-form-row .gce-field {
	margin: 0;
}

.gce-scheduler-form-row .gce-field-name,
.gce-scheduler-form-row .gce-field-department {
	flex: 1 1 260px;
}

.gce-scheduler-form-row .gce-field-order {
	flex: 0 1 130px;
}

.gce-scheduler-form-row input,
.gce-scheduler-form-row select {
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

.gce-scheduler-position-form .gce-scheduler-form-row,
.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
	max-width: 100%;
	min-width: 0;
}

.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
	align-items: start;
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(140px, 1.4fr) minmax(120px, 1fr) minmax(90px, .75fr) minmax(64px, .45fr) minmax(80px, max-content) minmax(72px, max-content) minmax(86px, max-content);
	width: 100%;
}

.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row input,
.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row select,
.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row label {
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
}

.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row input,
.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row select {
	width: 100%;
}

.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row .button,
.gce-scheduler-position-form .submit {
	max-width: 100%;
	white-space: normal;
}

@media (max-width: 1024px) {
	.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.gce-scheduler-position-form .gce-scheduler-form-row,
	.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
		grid-template-columns: 1fr;
	}
}

.gce-user-token-select {
	display: grid;
	gap: 0;
	max-width: 760px;
}

.gce-user-token-controls {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	position: relative;
}

.gce-user-token-controls[hidden] {
	display: none !important;
}

.gce-user-token-controls select {
	height: 1px;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	top: 100%;
	width: 1px;
}

.gce-user-token-controls .gce-user-token-combobox {
	flex: 1 1 260px;
	max-width: 360px;
	min-height: 36px;
}

.gce-user-token-dropdown {
	background: #fff;
	border: 1px solid #8c8f94;
	border-radius: 4px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
	left: 0;
	max-height: 220px;
	overflow: auto;
	position: absolute;
	top: calc(100% + 4px);
	width: min(360px, 100%);
	z-index: 20;
}

.gce-user-token-dropdown[hidden] {
	display: none;
}

.gce-user-token-option {
	background: #fff;
	border: 0;
	cursor: pointer;
	display: block;
	padding: 8px 10px;
	text-align: left;
	width: 100%;
}

.gce-user-token-option:hover,
.gce-user-token-option:focus {
	background: #f0f6fc;
}

.gce-user-token-option.is-disabled,
.gce-user-token-option.is-disabled:hover,
.gce-user-token-option.is-disabled:focus {
	background: #fff;
	color: #646970;
	cursor: not-allowed;
	opacity: 0.72;
}

.gce-user-token-empty {
	color: #6b7280;
	padding: 8px 10px;
}

.gce-absence-modal {
	align-items: center;
	background: rgba(0, 0, 0, 0.45);
	display: flex;
	inset: 0;
	justify-content: center;
	position: fixed;
	z-index: 100000;
}

.gce-absence-modal[hidden] {
	display: none;
}

.gce-absence-dialog {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
	max-width: 720px;
	padding: 22px;
	width: calc(100% - 32px);
}

.gce-absence-dialog h2 {
	margin: 0;
}

.gce-absence-header {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 16px;
}

.gce-absence-person {
	color: #50575e;
	font-size: 16px;
	margin: 6px 0 0;
}

.gce-absence-message,
.gce-absence-save-notice {
	background: #f0f6fc;
	border-left: 4px solid #2271b1;
	color: #1d2327;
	margin: 0 0 16px;
	padding: 9px 12px;
}

.gce-absence-message:empty,
.gce-absence-save-notice[hidden] {
	display: none;
}

.gce-absence-field,
.gce-absence-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.gce-absence-field label {
	display: grid;
	flex: 1 1 220px;
	gap: 4px;
}

.gce-absence-field input {
	min-height: 36px;
	width: 100%;
}

.gce-absence-field .button,
.gce-absence-actions .button {
	min-height: 34px;
	padding-left: 12px;
	padding-right: 12px;
}

.gce-absence-user-select {
	display: grid;
	font-weight: 700;
	gap: 4px;
	margin-bottom: 12px;
}

.gce-absence-list {
	display: grid;
	gap: 8px;
	margin: 16px 0;
}

.gce-absence-row {
	align-items: center;
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(130px, 0.7fr) minmax(160px, 1fr) auto auto;
}

.gce-absence-row input {
	min-height: 36px;
	width: 100%;
}

.gce-absence-pills,
.gce-absence-summary-pills {
	margin-top: 12px;
}

.gce-date-pill {
	align-items: center;
	background: #f0f6fc;
	border: 1px solid #72aee6;
	border-radius: 999px;
	display: inline-flex;
	gap: 8px;
	margin: 3px;
	padding: 5px 10px;
}

.gce-admin-calendar-page .gce-calendar {
	margin: 16px 0 0;
	max-width: none;
}

.gce-admin-page input[type="text"],
.gce-admin-page input[type="search"],
.gce-admin-page input[type="date"],
.gce-admin-page input[type="time"],
.gce-admin-page input[type="number"],
.gce-admin-page input[type="url"],
.gce-admin-page select,
.gce-admin-page textarea {
	min-height: 36px;
}

.gce-user-token-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gce-user-token {
	align-items: center;
	background: #000;
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	gap: 8px;
	padding: 4px 10px;
}

.gce-user-token-select.has-position-color .gce-user-token {
	background: var(--gce-position-color, #000);
	color: #fff;
}

.gce-user-token-select.has-position-color .gce-user-token .button-link {
	color: inherit;
}

.gce-user-token-select.has-position-color .gce-user-token .gce-user-token-remove {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: inherit !important;
}

.gce-admin-page .gce-scheduler-legend-filter,
.gce-admin-page .gce-scheduler-legend-filter:disabled {
	background-repeat: no-repeat !important;
}

.gce-shortcodes-table {
	margin-top: 18px;
	max-width: 1120px;
}

.gce-shortcodes-table td {
	vertical-align: top;
}

.gce-shortcodes-table code,
.gce-shortcode-wrap code {
	background: #f6f7f7;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	color: #1d2327;
	display: inline-block;
	line-height: 1.4;
	padding: 4px 8px;
	user-select: all;
}

.gce-shortcode-params {
	margin: 0;
}

.gce-shortcode-params li {
	margin-bottom: 10px;
}

.gva-shortcode-wrap,
.gce-shortcode-wrap {
	align-items: center;
	display: inline-flex;
	gap: 6px;
	margin-top: 4px;
}

.gva-copy-shortcode.button,
.gce-copy-shortcode.button {
	align-items: center;
	display: inline-flex;
	height: 28px;
	justify-content: center;
	min-height: 28px;
	padding: 0;
	width: 30px;
}

.gva-copy-icon,
.gce-copy-icon {
	background: currentColor;
	display: block;
	height: 16px;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6.35007mm' height='6.35007mm' viewBox='0 0 512 512'%3E%3Cpath fill='black' d='M133 112c0-12.28-.03-20.02 4.08-32C148 48.17 178.38 26.4 212 26h171c42.04.07 80.93 32.34 81 76v223c-.05 30.14-21.51 58.41-49 69.55-14.37 5.82-21.15 5.45-36 5.45 0 12.28.03 20.02-4.08 32C364.02 463.8 333.57 485.6 300 486H129c-42.07-.07-80.93-32.39-81-76V187c.05-30.14 21.51-58.41 49-69.55 14.37-5.82 21.15-5.45 36-5.45Zm246 256c7.69-.35 16.9-1.47 24-4.46 21.69-9.14 28.97-29.75 29-51.54V115c-.01-5.21-.98-17.26-2.52-22C422.48 71.45 404.38 59.11 382 59H234c-11.73 0-23.63-.97-35 2.44-18.62 5.57-32.77 24.09-33 43.56v7h137c41.29.06 75.94 38.55 76 79v177ZM129 144.09c-8.26 1.38-12.89 1.09-21 4.81-21.07 9.67-27.97 29.52-28 51.1v197c.01 5.21.98 17.26 2.52 22 7.23 22.25 25.59 33.96 48.48 34h146c12.02 0 24.34 1.05 36-2.44 20.13-6.03 32.97-24.92 33-45.56V193c-.03-21.38-11.63-38.6-32-45.91-5.8-2.08-16.74-3.08-23-3H129Zm15 53.56 44-.65h86c10.45.02 18.62 3.04 19.8 15 1.31 13.24-9.67 17.98-20.8 18H154c-6.32-.01-12.01-.36-16.78-5.21-8.7-8.85-3.88-22.67 6.78-27.14Zm2 84.88 44-.53h84c9.94.05 18.69 3.86 19.8 15 .77 7.73-4.22 15.46-11.8 17.44-2.44.64-5.47.56-8 .56H153c-5.86-.01-10.27.05-14.9-4.22-8.39-7.74-7.57-23.63 7.9-28.25Zm-3 86.17 44-.7h88c5.79.01 9.36-.06 13.89 4.21 8.17 7.7 6.18 21.28-3.89 26.34-3.26 1.64-6.47 1.44-10 1.45H152c-5.15-.01-9.55.14-13.67-3.56-9.12-8.15-6.28-22.69 4.67-27.74Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6.35007mm' height='6.35007mm' viewBox='0 0 512 512'%3E%3Cpath fill='black' d='M133 112c0-12.28-.03-20.02 4.08-32C148 48.17 178.38 26.4 212 26h171c42.04.07 80.93 32.34 81 76v223c-.05 30.14-21.51 58.41-49 69.55-14.37 5.82-21.15 5.45-36 5.45 0 12.28.03 20.02-4.08 32C364.02 463.8 333.57 485.6 300 486H129c-42.07-.07-80.93-32.39-81-76V187c.05-30.14 21.51-58.41 49-69.55 14.37-5.82 21.15-5.45 36-5.45Zm246 256c7.69-.35 16.9-1.47 24-4.46 21.69-9.14 28.97-29.75 29-51.54V115c-.01-5.21-.98-17.26-2.52-22C422.48 71.45 404.38 59.11 382 59H234c-11.73 0-23.63-.97-35 2.44-18.62 5.57-32.77 24.09-33 43.56v7h137c41.29.06 75.94 38.55 76 79v177ZM129 144.09c-8.26 1.38-12.89 1.09-21 4.81-21.07 9.67-27.97 29.52-28 51.1v197c.01 5.21.98 17.26 2.52 22 7.23 22.25 25.59 33.96 48.48 34h146c12.02 0 24.34 1.05 36-2.44 20.13-6.03 32.97-24.92 33-45.56V193c-.03-21.38-11.63-38.6-32-45.91-5.8-2.08-16.74-3.08-23-3H129Zm15 53.56 44-.65h86c10.45.02 18.62 3.04 19.8 15 1.31 13.24-9.67 17.98-20.8 18H154c-6.32-.01-12.01-.36-16.78-5.21-8.7-8.85-3.88-22.67 6.78-27.14Zm2 84.88 44-.53h84c9.94.05 18.69 3.86 19.8 15 .77 7.73-4.22 15.46-11.8 17.44-2.44.64-5.47.56-8 .56H153c-5.86-.01-10.27.05-14.9-4.22-8.39-7.74-7.57-23.63 7.9-28.25Zm-3 86.17 44-.7h88c5.79.01 9.36-.06 13.89 4.21 8.17 7.7 6.18 21.28-3.89 26.34-3.26 1.64-6.47 1.44-10 1.45H152c-5.15-.01-9.55.14-13.67-3.56-9.12-8.15-6.28-22.69 4.67-27.74Z'/%3E%3C/svg%3E");
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	width: 16px;
}

.gva-copy-shortcode.is-copied,
.gce-copy-shortcode.is-copied {
	border-color: #00a32a;
	color: #00a32a;
	gap: 5px;
	padding: 0 8px;
	width: auto;
}

.gva-copy-shortcode.is-copied::after,
.gce-copy-shortcode.is-copied::after {
	content: attr(data-copy-state);
}

.gce-admin-calendar-subscriptions {
	background: #fff;
	border: 1px solid #c3c4c7;
	margin-top: 24px;
	max-width: 960px;
	padding: 18px;
}

.gce-admin-calendar-subscriptions > h2 {
	font-size: 1.3em;
	margin: 0 0 16px;
}

.gce-admin-calendar-subscription-list {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.gce-admin-calendar-subscription-item {
	border: 1px solid #dcdcde;
	padding: 14px;
}

.gce-admin-calendar-subscription-item h3 {
	margin: 0 0 10px;
}

.gce-admin-subscribe-dropdown {
	display: inline-block;
	position: relative;
}

.gce-admin-subscribe-dropdown-toggle {
	align-items: center;
	display: inline-flex !important;
	gap: 8px;
	line-height: 1.2 !important;
	min-height: 32px;
	text-align: left;
}

.gce-admin-subscribe-dropdown-toggle::after {
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	content: "";
	margin-top: 2px;
}

.gce-admin-subscribe-dropdown-menu {
	background: #fff;
	border: 1px solid #c3c4c7;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
	left: 0;
	margin-top: 4px;
	min-width: 190px;
	padding: 6px 0;
	position: absolute;
	top: 100%;
	z-index: 100;
}

.gce-admin-subscribe-dropdown-menu[hidden] {
	display: none !important;
}

.gce-admin-subscribe-dropdown-link {
	color: #1d2327;
	display: block;
	line-height: 1.3;
	padding: 8px 12px;
	text-decoration: none;
	white-space: nowrap;
}

.gce-admin-subscribe-dropdown-link:hover,
.gce-admin-subscribe-dropdown-link:focus {
	background: #f0f0f1;
	color: #1d2327;
	outline: 0;
}

.gce-admin-calendar-subscription-item .gce-admin-subscribe-url {
	display: block;
	margin-top: 10px;
	max-width: 100%;
	width: 100%;
}

.gce-admin-subscribe-message,
.gce-admin-subscribe-warning {
	margin: 10px 0 0;
}

.gce-admin-subscribe-warning {
	color: #8a5a00;
	font-size: 0.92em;
}

.gce-admin-subscribe-regenerate {
	display: inline-block;
	font-size: 0.92em;
	margin-top: 8px;
}

.gce-scheduler-warning-label {
	background: #fcf0c8;
	border: 1px solid #dba617;
	border-radius: 3px;
	color: #6f4e00;
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	margin-left: 6px;
	padding: 2px 6px;
	vertical-align: middle;
}

.gce-scheduler-warning-summary {
	background: #fff8e5;
	border-left: 4px solid #dba617;
	margin: 10px 0 14px;
	padding: 8px 10px;
}

.gce-scheduler-status-label {
	border: 1px solid transparent;
	border-radius: 3px;
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	padding: 2px 6px;
	white-space: nowrap;
}

.gce-scheduler-status-label.is-ok {
	background: #edfaef;
	border-color: #68de7c;
	color: #075c17;
}

.gce-scheduler-status-label.is-warning {
	background: #fff8e5;
	border-color: #dba617;
	color: #6f4e00;
}

.gce-scheduler-dashboard-filters .gce-admin-checkbox-filter {
	align-items: center;
	display: inline-flex;
	gap: 6px;
	min-height: 36px;
}

.gce-scheduler-calendar-nav {
	display: flex;
	gap: 8px;
	margin-top: 12px;
}

.gce-scheduler-calendar-controls {
	align-items: stretch;
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(260px, .8fr) minmax(320px, 1.2fr);
	margin: 12px 0;
}

.gce-scheduler-calendar-control-box {
	align-items: flex-end;
	background: #fff;
	border: 1px solid #dcdcde;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	padding: 12px 18px;
}

.gce-scheduler-calendar-control-box label {
	display: grid;
	font-weight: 600;
	gap: 5px;
}

.gce-scheduler-calendar-control-box .gce-admin-checkbox-filter {
	align-items: center;
	display: inline-flex;
	gap: 6px;
	min-height: 36px;
	white-space: nowrap;
}

.gce-scheduler-calendar-control-box .gce-admin-checkbox-filter input {
	height: 16px;
	margin: 0;
	min-height: 0;
	width: 16px;
}

.gce-admin-checkbox-filter input[type="checkbox"] {
	height: 16px;
	min-height: 0;
	width: 16px;
}

.gce-scheduler-calendar {
	background: #fff;
	border: 1px solid #c3c4c7;
	margin-top: 14px;
	padding: 14px;
}

.gce-scheduler-calendar h2 {
	font-size: 18px;
	line-height: 1.3;
	margin: 0 0 12px;
}

.gce-scheduler-month-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(140px, 1fr));
}

.gce-scheduler-calendar-day {
	border-right: 1px solid #dcdcde;
	border-top: 1px solid #dcdcde;
	min-height: 138px;
	padding: 8px;
}

.gce-scheduler-calendar-day:nth-child(7n) {
	border-right: 0;
}

.gce-scheduler-calendar-day.is-outside-month {
	background: #f6f7f7;
	color: #646970;
}

.gce-scheduler-calendar-day-heading {
	font-weight: 600;
	margin-bottom: 8px;
}

.gce-scheduler-calendar-items {
	display: grid;
	gap: 6px;
}

.gce-scheduler-calendar-item {
	background: #f6f7f7;
	border-left: 4px solid #2271b1;
	color: #1d2327;
	display: grid;
	gap: 5px;
	padding: 6px 8px;
	text-decoration: none;
}

.gce-scheduler-calendar-item:hover,
.gce-scheduler-calendar-item:focus-within {
	background: #f0f6fc;
	color: #1d2327;
}

.gce-scheduler-calendar-item.has-warning {
	background: #fff8e5;
	border-left-color: #dba617;
}

.gce-scheduler-calendar-time,
.gce-scheduler-calendar-departments,
.gce-scheduler-calendar-warning {
	font-size: 12px;
}

.gce-scheduler-calendar-title-row {
	align-items: flex-start;
	display: flex;
	gap: 6px;
	justify-content: space-between;
}

.gce-scheduler-calendar-title {
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
}

.gce-scheduler-calendar-edit {
	align-items: center;
	background: #fff;
	border: 1px solid #8c8f94;
	border-radius: 4px;
	color: #1d2327;
	display: inline-flex;
	flex: 0 0 auto;
	height: 26px;
	justify-content: center;
	width: 26px;
}

.gce-scheduler-calendar-edit:hover,
.gce-scheduler-calendar-edit:focus {
	background: #f0f6fc;
	border-color: #2271b1;
	color: #0a4b78;
}

.gce-scheduler-calendar-edit svg {
	display: block;
	height: 14px;
	width: 14px;
}

.gce-scheduler-calendar-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

@media (max-width: 900px) {
	.gce-scheduler-calendar-controls {
		grid-template-columns: 1fr;
	}
}

#gce-scheduler-positions-grid .gce-scheduler-color-swatch {
	background: var(--gce-position-color);
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 50%;
	display: inline-block;
	height: 14px;
	margin-right: 6px;
	vertical-align: -2px;
	width: 14px;
}

.gce-scheduler-calendar-warning {
	color: #6f4e00;
	font-weight: 600;
}

.gce-scheduler-agenda-day {
	border-top: 1px solid #dcdcde;
	padding: 12px 0;
}

.gce-scheduler-agenda-day h3 {
	font-size: 15px;
	margin: 0 0 10px;
}

.gce-scheduler-assignments {
	border-top: 1px solid #dcdcde;
	margin-top: 16px;
	padding-top: 14px;
}

.gce-scheduler-assignments h3,
.gce-scheduler-assignment-department h4,
.gce-scheduler-assignment-position h5 {
	margin: 0 0 8px;
}

.gce-scheduler-assignment-department {
	background: #fff;
	border: 1px solid #dcdcde;
	margin: 12px 0;
	padding: 12px;
}

.gce-scheduler-assignment-position {
	border-top: 1px solid #f0f0f1;
	margin-top: 10px;
	padding-top: 10px;
}

.gce-scheduler-assignment-row,
.gce-scheduler-assignment-add-form {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 8px 0;
}

.gce-scheduler-assignment-row textarea,
.gce-scheduler-assignment-add-form input[type="text"] {
	min-width: 220px;
}

.gce-scheduler-custom-fields,
.gce-scheduler-custom-field-definitions {
	margin-top: 12px;
}

.gce-scheduler-custom-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	width: 100%;
}

.gce-scheduler-custom-field {
	display: grid;
	gap: 4px;
	flex: 1 1 100%;
	width: 100%;
}

.gce-scheduler-custom-field input {
	box-sizing: border-box;
	width: 100%;
}

.gce-scheduling-department-group {
	margin: 0 0 12px;
}

.gce-scheduling-department-group > strong {
	display: block;
	margin: 0 0 6px;
}

.gce-scheduler-custom-field-definition-grid {
	display: grid;
	gap: 10px;
}

.gce-scheduler-custom-field-definition-row {
	align-items: end;
	border: 1px solid #dcdcde;
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(160px, 1.5fr) minmax(120px, 1fr) minmax(100px, .75fr) minmax(80px, .5fr) auto auto auto;
	padding: 12px;
}

.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
	align-items: start;
	grid-template-columns: minmax(140px, 1.4fr) minmax(120px, 1fr) minmax(90px, .75fr) minmax(64px, .45fr) minmax(80px, max-content) minmax(72px, max-content) minmax(86px, max-content);
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

@media (max-width: 1024px) {
	.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.gce-scheduler-position-form .gce-scheduler-form-row,
	.gce-scheduler-position-form .gce-scheduler-custom-field-definition-row {
		grid-template-columns: 1fr;
	}
}


/* Shared responsive calendar/scheduler rules moved from frontend.css. */
.gce-mobile-events {
	display: none;
}

@media (max-width: 700px) {
	.gce-calendar-scheduler-toolbar {
		grid-template-columns: 1fr;
	}

	.gce-calendar-nav-actions,
	.gce-absence-row {
		grid-template-columns: 1fr;
	}

	.gce-calendar-nav-actions {
		flex-wrap: wrap;
	}

	.gce-calendar-search-panel {
		align-items: stretch;
	}

	.gce-calendar-search-panel label {
		flex: 1 1 auto;
	}

	.gce-scheduler-calendar-legend-wrap {
		margin-bottom: 1rem;
		position: relative;
	}

	.gce-scheduler-legend-mobile-toggle {
		background: #fff;
		border: 1px solid #d7dde5;
		border-radius: 4px;
		color: #1f2937;
		cursor: pointer;
		display: inline-flex;
		font: inherit;
		font-weight: 700;
		min-height: 38px;
		padding: 8px 10px;
	}

	.gce-scheduler-calendar-legend {
		background: #fff;
		border: 1px solid #d7dde5;
		box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
		display: none;
		left: 0;
		max-width: calc(100vw - 32px);
		padding: 10px;
		position: absolute;
		top: calc(100% + 4px);
		z-index: 900;
	}

	.gce-scheduler-calendar-legend-wrap.is-open .gce-scheduler-calendar-legend {
		display: flex;
	}

	.gce-calendar-filter-drawer .gce-scheduler-calendar-legend {
		border: 0;
		box-shadow: none;
		display: flex;
		left: auto;
		max-width: none;
		padding: 0;
		position: static;
		top: auto;
	}

	.gce-calendar-filter-drawer .gce-scheduler-legend-control {
		grid-template-columns: minmax(9rem, 1fr) minmax(7.5rem, auto);
	}

	.gce-calendar-scheduler-checkbox {
		padding-bottom: 0;
	}

	.gce-scheduler-filters,
	.gce-scheduler-item-summary {
		grid-template-columns: 1fr;
	}

	.gce-scheduler-my-filter {
		padding-bottom: 0;
	}

	.gce-scheduler-item-summary {
		gap: 4px;
	}

	.gce-calendar-nav {
		gap: 8px;
		grid-template-columns: auto 1fr auto;
	}

	.gce-calendar-nav-spacer {
		width: 0;
	}

	.gce-calendar-nav-center {
		min-width: 0;
	}

	.gce-calendar-month-button {
		font-size: 1.1rem;
	}

	.gce-calendar-view-month .gce-calendar-month-control {
		display: none;
	}

	.gce-calendar-view-month .gce-calendar-date-control-mobile {
		display: inline-grid;
	}

	.gce-calendar-month-popover {
		min-width: min(260px, calc(100vw - 24px));
	}

	.gce-calendar-grid {
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
	}

	.gce-calendar-head {
		align-items: center;
		display: flex;
		justify-content: center;
		min-height: 0;
		padding: 4px;
		text-align: center;
	}

	.gce-calendar-head-full {
		display: none;
	}

	.gce-calendar-head-short {
		display: inline;
	}

	.gce-calendar-today {
		display: none;
	}

	.gce-calendar-day {
		align-items: center;
		aspect-ratio: 0;
		cursor: pointer;
		display: flex;
		justify-content: flex-start;
		min-height: 0;
		padding: 4px;
		position: relative;
		flex-direction: column;
	}

	.gce-calendar-cell-menu {
		display: none;
	}

	.gce-calendar-cell-menu-button {
		font-size: 0.8rem;
		height: 22px;
		padding-bottom: 2px;
		width: 22px;
	}

	.gce-calendar-cell-menu-list {
		top: 26px;
	}

	.gce-mobile-events .gce-calendar-cell-menu {
		display: block;
		position: relative;
		right: auto;
		top: auto;
	}

	.gce-calendar-day.is-today {
		background: #2271b1;
		border-color: #2271b1;
		box-shadow: none;
		color: #fff;
	}

	.gce-calendar-day-empty {
		display: block;
		pointer-events: none;
	}

	.gce-calendar-events {
		display: none;
	}

	.gce-calendar-mobile-dots {
		align-items: center;
		display: flex;
		gap: 3px;
		justify-content: center;
		min-height: 7px;
		        flex-wrap: wrap;
	}

	.gce-calendar-main-dot,
	.gce-calendar-assignment-dot {
		border-radius: 999px;
		display: inline-block;
		height: 5px;
		width: 5px;
	}

	.gce-calendar-main-dot {
		background: currentColor;
	}

	.gce-calendar-assignment-dot {
		background: var(--gce-position-color, #2563eb);
	}

	.gce-calendar-assignment-dot[hidden] {
		display: none !important;
	}

	.gce-calendar-assignment-dot.is-unassigned {
		background: #fff;
		border: 1px solid var(--gce-position-color, #646970);
	}

	.gce-calendar-day.is-selected:not(.is-today) {
		background: #f0f0f1;
		border-color: #dcdcde;
		box-shadow: none;
		color: #1d2327;
		outline: 0;
	}

	.gce-calendar-day.is-selected.is-today {
		outline: 0;
	}

	.gce-calendar-day.is-selected .gce-calendar-date {
		background: transparent;
		border-radius: 0;
		color: #1d2327;
		display: inline-flex;
		justify-content: center;
		min-width: 1.8rem;
		padding: 0;
	}

	.gce-calendar-day.is-today .gce-calendar-date {
		background: transparent;
		color: #fff;
	}

	.gce-mobile-events {
		display: block;
		margin-top: 14px;
	}

	.gce-mobile-events h3 {
		font-size: 1rem;
		margin: 0 0 8px;
	}

	.gce-mobile-events ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.gce-mobile-events li {
		border-bottom: 1px solid #e5e5e5;
		padding: 10px 0;
	}

	.gce-mobile-events .gce-calendar-event-time,
	.gce-mobile-events .gce-calendar-local-time {
		display: block;
	}

	.gce-mobile-events .gce-calendar-event-time {
		margin-top: 3px;
	}
}

@container (max-width: 330px) {
	.gce-countdown-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Shared subscribe/mobile calendar controls moved from frontend.css. */
.gce-subscribe {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.gce-subscribe-item {
	align-items: center;
	display: flex;
	flex: 1 1 320px;
	flex-wrap: wrap;
	gap: 8px 10px;
}

.gce-subscribe-button {
	background: #2271b1;
	border-radius: 4px;
	color: #fff;
	display: inline-block;
	font-weight: 700;
	padding: 8px 12px;
	text-decoration: none;
}

.gce-subscribe-button:hover,
.gce-subscribe-button:focus {
	background: #135e96;
	color: #fff;
}

.gce-subscribe-url {
	flex: 1 1 260px;
	max-width: 100%;
}

.gce-subscribe-label {
	font-weight: 700;
}

.gce-subscribe-message,
.gce-subscribe-warning {
	flex-basis: 100%;
	margin: 0;
}

.gce-subscribe-warning {
	color: #8a5a00;
	font-size: 0.9em;
}

.gce-subscribe-regenerate {
	font-size: 0.92em;
}

.gce-subscribe-dropdown {
	display: inline-block;
	position: relative;
}

.gce-subscribe-dropdown-toggle {
	appearance: none;
	background: #2271b1;
	border: 1px solid #2271b1;
	border-radius: 4px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	gap: 8px;
	line-height: 1.2;
	min-height: 38px;
	padding: 8px 12px;
	text-align: left;
	text-decoration: none;
}

.gce-subscribe-dropdown-toggle::after {
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	content: "";
	margin-top: 0.45em;
}

.gce-subscribe-dropdown-toggle:hover,
.gce-subscribe-dropdown-toggle:focus {
	background: #135e96;
	border-color: #135e96;
	color: #fff;
}

.gce-subscribe-dropdown-menu {
	background: #fff;
	border: 1px solid #dcdcde;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
	left: 0;
	margin-top: 4px;
	min-width: 190px;
	padding: 6px 0;
	position: absolute;
	top: 100%;
	z-index: 99;
}

.gce-subscribe-dropdown-menu[hidden] {
	display: none !important;
}

.gce-subscribe-dropdown-link {
	color: #1d2327;
	display: block;
	line-height: 1.3;
	padding: 8px 12px;
	text-decoration: none;
	white-space: nowrap;
}

.gce-subscribe-dropdown-link:hover,
.gce-subscribe-dropdown-link:focus {
	background: #f0f0f1;
	color: #1d2327;
	outline: 0;
}

.gce-calendar-subscriptions {
	background: #fff;
	border: 1px solid #dcdcde;
	margin-top: 24px;
	max-width: 920px;
	padding: 18px;
}

.gce-calendar-subscriptions>h2 {
	font-size: 1.3em;
	margin: 0 0 16px;
}

.gce-calendar-subscription-list {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.gce-calendar-subscription-item {
	border: 1px solid #dcdcde;
	padding: 14px;
}

.gce-calendar-subscription-item h3 {
	margin: 0 0 10px;
}

.gce-calendar-subscription-item .gce-subscribe-url {
	display: block;
	margin-top: 10px;
	width: 100%;
}

.gce-calendar-subscription-item .gce-subscribe-message,
.gce-calendar-subscription-item .gce-subscribe-warning {
	margin-top: 10px;
}

/* Scheduler follow-up fixes. */
.gce-scheduler-quick-edit-form .gce-scheduler-custom-fields,
.gce-scheduler-quick-edit-form .gce-scheduler-custom-field,
.gce-scheduler-quick-edit-form .gce-scheduler-custom-field input {
	box-sizing: border-box;
	width: 100%;
}

.gce-scheduler-quick-edit-form .gce-scheduler-custom-field {
	display: block;
	margin-top: 12px;
}

.gce-scheduler-quick-edit-form .gce-scheduler-custom-field span {
	display: block;
	margin-bottom: 4px;
}

.gce-toast.has-position-color {
	border-color: var(--gce-toast-color, #2271b1);
}

.gce-toast.has-position-color::before {
	background: var(--gce-toast-color, #2271b1);
	border-bottom-left-radius: inherit;
	border-top-left-radius: inherit;
	bottom: 0;
	content: "";
	left: 0;
	position: absolute;
	top: 0;
	width: 4px;
}
