.gcc-calendar {
	--gcc-closed: #e83e8c;
	--gcc-open-day: #ffffff;
	--gcc-closed-text: #ffffff;
	--gcc-header: #ffffff;
	--gcc-weekday: #f0f0f0;
	--gcc-border: #d2d2d2;
	--gcc-text: #222222;
	--gcc-weekday-text: #222222;
	--gcc-weekday-header-text: #222222;
	--gcc-weekday-header-sunday-text: #d83b45;
	--gcc-weekday-header-saturday-text: #2764b7;
	--gcc-sunday: #d83b45;
	--gcc-saturday: #2764b7;
	--gcc-today-background: #fff3cd;
	--gcc-legend-text: #222222;
	--gcc-base-font-size: 1em;
	--gcc-month-font-size: 1em;
	--gcc-nav-font-size: 1em;
	--gcc-weekday-font-size: 1em;
	--gcc-day-font-size: 1em;
	--gcc-day-font-weight: 400;
	--gcc-legend-font-size: 1em;
	--gcc-status-font-size: 1em;
	--gcc-margin-top: 0em;
	--gcc-margin-right: 0em;
	--gcc-margin-bottom: 0em;
	--gcc-margin-left: 0em;
	--gcc-padding-top: 0em;
	--gcc-padding-right: 0em;
	--gcc-padding-bottom: 0em;
	--gcc-padding-left: 0em;
	--gcc-calendar-border-radius: 0px;
	--gcc-closed-fill-padding: 0px;
	--gcc-closed-fill-border-radius: 0px;
	--gcc-legend-swatch-border-radius: 0px;
	--gcc-legend-swatch-margin: .6em;
	--gcc-month-cell-padding: 1px;
	--gcc-weekday-cell-padding: 4px;
	--gcc-day-cell-padding: 10px;
	display: block !important;
	width: auto !important;
	max-width: none;
	box-sizing: border-box;
	margin: var(--gcc-margin-top) var(--gcc-margin-right) var(--gcc-margin-bottom) var(--gcc-margin-left) !important;
	color: var(--gcc-text);
	font-family: inherit;
	font-size: var(--gcc-base-font-size);
	line-height: 1.35;
	padding: var(--gcc-padding-top) var(--gcc-padding-right) var(--gcc-padding-bottom) var(--gcc-padding-left);
}

.gcc-calendar *,
.gcc-calendar *::before,
.gcc-calendar *::after {
	box-sizing: border-box;
}

.gcc-panel {
	width: 100%;
	border: 1px solid var(--gcc-border);
	background: #fff;
	border-radius: var(--gcc-calendar-border-radius);
	overflow: hidden;
}

.gcc-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5em;
	min-height: 0;
	padding: var(--gcc-month-cell-padding) .65em;
	background: var(--gcc-header);
	border-bottom: 1px solid var(--gcc-border);
}

.gcc-month-label {
	font-size: var(--gcc-month-font-size);
	font-weight: 700;
	white-space: nowrap;
}

.gcc-nav {
	display: flex;
	align-items: center;
	gap: .08em;
}

.gcc-nav button {
	min-width: 2em;
	height: 2em;
	margin: 0;
	padding: 0 .35em;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: inherit;
	font-family: inherit;
	font-size: var(--gcc-nav-font-size);
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.gcc-nav button:hover,
.gcc-nav button:focus-visible {
	background: rgba(0, 0, 0, .07);
	outline: none;
}

.gcc-nav button:disabled {
	opacity: .45;
	cursor: wait;
}

.gcc-nav .gcc-prev,
.gcc-nav .gcc-next,
.gcc-nav .gcc-today {
	font-size: var(--gcc-nav-font-size);
}

.gcc-nav .gcc-today {
	font-weight: 600;
}

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

.gcc-weekday {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: var(--gcc-weekday-cell-padding) .05em;
	background: var(--gcc-weekday);
	border-right: 1px solid var(--gcc-border);
	font-size: var(--gcc-weekday-font-size);
	font-weight: 700;
}

.gcc-weekday:nth-child(7) {
	border-right: 0;
}

.gcc-weekday:not(.gcc-sunday):not(.gcc-saturday) {
	color: var(--gcc-weekday-header-text);
}

.gcc-weekday.gcc-sunday {
	color: var(--gcc-weekday-header-sunday-text);
}

.gcc-weekday.gcc-saturday {
	color: var(--gcc-weekday-header-saturday-text);
}

.gcc-day.gcc-weekday-day {
	color: var(--gcc-weekday-text);
}

.gcc-day {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	min-width: 0;
	min-height: 0;
	padding: var(--gcc-day-cell-padding) .05em;
	background: var(--gcc-open-day);
	border-top: 1px solid var(--gcc-border);
	border-right: 1px solid var(--gcc-border);
	font-size: var(--gcc-day-font-size);
	font-variant-numeric: tabular-nums;
}

.gcc-day-number {
	position: relative;
	z-index: 1;
	font-weight: var(--gcc-day-font-weight);
}

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

.gcc-days .gcc-day:nth-last-child(-n+7) {
	border-bottom: 0;
}

.gcc-day.gcc-empty {
	background: var(--gcc-open-day);
}

.gcc-sunday {
	color: var(--gcc-sunday);
}

.gcc-saturday {
	color: var(--gcc-saturday);
}

.gcc-day.gcc-closed {
	background: var(--gcc-open-day);
	color: var(--gcc-closed-text);
}

.gcc-day.gcc-closed::before {
	content: "";
	position: absolute;
	inset: var(--gcc-closed-fill-padding);
	background: var(--gcc-closed);
	border-radius: var(--gcc-closed-fill-border-radius);
	pointer-events: none;
}

.gcc-day.gcc-is-today.gcc-today-underline .gcc-day-number {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: .18em;
}

.gcc-day.gcc-is-today.gcc-today-background:not(.gcc-closed) {
	background: var(--gcc-today-background);
}

.gcc-status {
	min-height: 1.25em;
	margin-top: .35em;
	font-size: var(--gcc-status-font-size);
	line-height: 1.45;
	color: #b42318;
}

.gcc-status:empty {
	display: none;
}

.gcc-legend {
	display: flex;
	align-items: center;
	gap: 0;
	margin-top: .55em;
	font-size: var(--gcc-legend-font-size);
	color: var(--gcc-legend-text);
}

.gcc-legend-swatch {
	display: inline-block;
	width: 1.7em;
	height: 1.2em;
	flex: 0 0 auto;
	background: var(--gcc-closed);
	border: 1px solid color-mix(in srgb, var(--gcc-closed), #000 10%);
	border-radius: var(--gcc-legend-swatch-border-radius);
	margin-right: var(--gcc-legend-swatch-margin);
}

@supports not (color: color-mix(in srgb, #000, #fff)) {
	.gcc-legend-swatch {
		border-color: var(--gcc-border);
	}
}
