.cc-month-calendar {
	--cc-border: #dcdcde;
	--cc-muted: #646970;
	--cc-surface: #ffffff;
	--cc-surface-subtle: #f6f7f7;
	--cc-weekend: #f8f8f8;
	--cc-today: #2271b1;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	background: var(--cc-surface);
	border: 1px solid var(--cc-border);
	border-radius: 12px;
	padding: clamp(10px, 2vw, 18px);
	container-type: inline-size;
}

.cc-month-calendar *,
.cc-month-calendar *::before,
.cc-month-calendar *::after {
	box-sizing: border-box;
	min-width: 0;
}

.cc-month-calendar__toolbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.cc-month-calendar__heading {
	flex: 1 1 240px;
}

.cc-month-calendar__heading h2,
.cc-month-calendar__heading h3 {
	margin: 0;
	overflow-wrap: anywhere;
}

.cc-month-calendar__heading h2 {
	font-size: clamp(.9rem, 2cqi, 1.15rem);
	color: var(--cc-muted);
	margin-bottom: 2px;
}

.cc-month-calendar__heading h3 {
	font-size: clamp(1.35rem, 4cqi, 1.8rem);
}

.cc-month-calendar__nav {
	display: flex;
	flex: 0 1 auto;
	align-items: center;
	gap: clamp(4px, 1cqi, 8px);
}

.cc-calendar-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: clamp(34px, 6cqi, 42px);
	height: clamp(36px, 6cqi, 42px);
	padding-inline: clamp(9px, 2cqi, 14px);
	border: 1px solid var(--cc-border);
	border-radius: 8px;
	background: #fff;
	text-decoration: none;
	font-weight: 700;
	color: inherit;
	white-space: nowrap;
}

.cc-calendar-button:hover,
.cc-calendar-button:focus {
	background: var(--cc-surface-subtle);
}

.cc-month-calendar__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px clamp(10px, 2cqi, 16px);
	margin-bottom: 14px;
	font-size: clamp(.78rem, 1.8cqi, .9rem);
}

.cc-legend-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cc-legend-item i {
	width: .7em;
	height: .7em;
	flex: 0 0 auto;
	border-radius: 50%;
}

.cc-month-calendar__scroll {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
}

.cc-month-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	width: 100%;
	max-width: 100%;
	min-width: 0;
	border-top: 1px solid var(--cc-border);
	border-left: 1px solid var(--cc-border);
}

.cc-month-grid__weekday,
.cc-day-cell {
	min-width: 0;
	border-right: 1px solid var(--cc-border);
	border-bottom: 1px solid var(--cc-border);
}

.cc-month-grid__weekday {
	padding: clamp(6px, 1.5cqi, 10px) 3px;
	text-align: center;
	font-size: clamp(.68rem, 1.8cqi, 1rem);
	font-weight: 700;
	background: var(--cc-surface-subtle);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cc-weekday-short {
	display: none;
}

.cc-day-cell {
	display: flex;
	flex-direction: column;
	min-height: clamp(72px, 14cqi, 132px);
	padding: clamp(3px, 1cqi, 8px);
	background: #fff;
	position: relative;
	overflow: hidden;
}

.cc-day-cell:focus-within {
	overflow: visible;
	z-index: 2;
}

.cc-day-cell--outside {
	background: #fafafa;
	color: #8c8f94;
}

.cc-day-cell--weekend:not(.cc-day-cell--outside) {
	background: var(--cc-weekend);
}

.cc-day-cell--today {
	box-shadow: inset 0 0 0 2px var(--cc-today);
}

.cc-day-cell__header {
	display: flex;
	justify-content: flex-end;
	margin-bottom: clamp(2px, .8cqi, 6px);
}

.cc-day-cell__header time {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(22px, 4cqi, 28px);
	aspect-ratio: 1;
	border-radius: 50%;
	font-size: clamp(.72rem, 1.8cqi, 1rem);
	font-weight: 700;
}

.cc-day-cell--today .cc-day-cell__header time {
	background: var(--cc-today);
	color: #fff;
}

.cc-day-cell__events {
	display: grid;
	margin-top: auto;
	gap: clamp(2px, .6cqi, 5px);
	min-width: 0;
}

.cc-event-pill {
	--cc-event-color: #2271b1;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: clamp(2px, .5cqi, 4px);
	padding: clamp(2px, .55cqi, 4px);
	border: 1px solid color-mix(in srgb, var(--cc-event-color) 35%, #dcdcde);
	border-left: clamp(2px, .7cqi, 4px) solid var(--cc-event-color);
	border-radius: 5px;
	background: color-mix(in srgb, var(--cc-event-color) 9%, #fff);
	text-align: left;
	color: inherit;
	cursor: pointer;
	font: inherit;
	overflow: hidden;
}

.cc-event-pill:hover,
.cc-event-pill:focus {
	background: color-mix(in srgb, var(--cc-event-color) 16%, #fff);
}


.cc-event-pill__title {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 600;
	font-size: clamp(.62rem, 1.55cqi, .82rem);
}

.cc-event-pill__time {
	grid-column: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: clamp(.58rem, 1.35cqi, .72rem);
	color: var(--cc-muted);
}

.cc-day-cell__more {
	max-width: 100%;
	border: 0;
	background: transparent;
	padding: 2px 0;
	color: #2271b1;
	font-size: clamp(.62rem, 1.5cqi, .82rem);
	font-weight: 600;
	cursor: pointer;
	text-align: left;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cc-day-cell__overflow {
	display: grid;
	gap: clamp(2px, .6cqi, 5px);
}

.cc-calendar-dialog {
	width: min(520px, calc(100% - 32px));
	max-width: calc(100% - 32px);
	border: 0;
	border-radius: 12px;
	padding: 0;
	box-shadow: 0 20px 60px rgba(0,0,0,.28);
}

.cc-calendar-dialog::backdrop {
	background: rgba(0,0,0,.45);
}

.cc-calendar-dialog__content {
	padding: 22px;
	overflow-wrap: anywhere;
}

.cc-calendar-dialog__close {
	position: absolute;
	top: 10px;
	right: 12px;
	border: 0;
	background: transparent;
	font-size: 1.6rem;
	cursor: pointer;
}

.cc-calendar-dialog h3 {
	margin-top: 0;
	padding-right: 36px;
}

.cc-calendar-dialog__meta {
	color: var(--cc-muted);
}

/* Narrow calendar containers, including pages with sidebars. */
@container (max-width: 720px) {
	.cc-weekday-full {
		display: none;
	}

	.cc-weekday-short {
		display: inline;
	}

	.cc-event-pill__time {
		display: none;
	}

	.cc-month-calendar__legend {
		gap-block: 6px;
	}
}

@container (max-width: 560px) {
	.cc-month-calendar__toolbar {
		align-items: stretch;
	}

	.cc-month-calendar__nav {
		width: 100%;
	}

	.cc-calendar-button--today {
		flex: 1;
	}

	.cc-event-pill {
		grid-template-columns: minmax(0, 1fr);
		border-left-width: 3px;
	}


	.cc-event-pill__title {
		font-size: clamp(.56rem, 2.2cqi, .72rem);
	}

	.cc-day-cell {
		min-height: clamp(62px, 15cqi, 92px);
	}
}

@container (max-width: 430px) {
	.cc-month-calendar {
		padding: 8px;
	}

	.cc-month-calendar__legend {
		font-size: .72rem;
	}

	.cc-day-cell {
		padding: 2px;
	}

	.cc-event-pill {
		padding: 2px;
	}

	.cc-event-pill__title {
		font-size: .56rem;
	}

	.cc-day-cell__more {
		font-size: .56rem;
	}
}


.cc-calendar-footer {
	margin-top: 10px;
	color: var(--cc-muted);
	font-size: .72rem;
	line-height: 1.4;
	text-align: center;
}

.cc-calendar-signature {
	opacity: .82;
}

.cc-calendar-dev-details {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px 12px;
	margin-top: 6px;
	padding: 7px 10px;
	border: 1px dashed var(--cc-border);
	border-radius: 6px;
	background: var(--cc-surface-subtle);
	text-align: left;
}

.cc-calendar-dev-details span {
	white-space: nowrap;
}

@container (max-width: 430px) {
	.cc-calendar-dev-details {
		display: grid;
		gap: 3px;
		text-align: center;
	}

	.cc-calendar-dev-details span {
		white-space: normal;
	}
}


.cc-event-pill__icon,
.cc-legend-item__icon {
	display: inline;
	font-size: 1em;
	line-height: 1;
	vertical-align: -0.08em;
}

.cc-event-pill__icon {
	margin-right: .18em;
}

.cc-admin-emoji,
.cc-emoji-input {
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}


/* Phase 4.0 smart popup and compact schedule objects. */
.cc-event-pill--compact {
	display: inline-flex;
	width: auto;
	max-width: 100%;
	justify-self: start;
	padding: 2px 6px;
	border-left-width: 3px;
	background: color-mix(in srgb, var(--cc-event-color) 14%, #fff);
}
.cc-event-pill__badge { font-size: clamp(.6rem, 1.45cqi, .78rem); font-weight: 800; white-space: nowrap; }
.cc-calendar-dialog { max-height: min(82vh, 760px); overflow: auto; }
.cc-calendar-dialog__date { margin: 0 42px 18px 0; font-size: 1.25rem; }
.cc-calendar-dialog__sections { display: grid; gap: 14px; }
.cc-popup-section { display: grid; grid-template-columns: 7px minmax(0,1fr); overflow: hidden; border: 1px solid #dcdcde; border-radius: 9px; background: #fff; }
.cc-popup-section__bar { background: var(--cc-section-color); }
.cc-popup-section__body { padding: 14px 16px; }
.cc-popup-section h3 { margin: 0 0 3px; padding: 0; font-size: 1.08rem; }
.cc-popup-section__category { margin: 0 0 8px; color: #646970; font-size: .88rem; font-weight: 600; }
.cc-popup-section__meta, .cc-popup-section__location { margin: 5px 0; }
.cc-popup-section__notes { margin-top: 10px; }
.cc-popup-section__notes > :first-child { margin-top: 0; }
.cc-popup-section__notes > :last-child { margin-bottom: 0; }
.cc-popup-section__support { margin: 12px 0 0; font-weight: 700; }
.cc-popup-section a { overflow-wrap: anywhere; }
@media (max-width: 480px) {
	.cc-calendar-dialog { width: calc(100% - 18px); max-width: calc(100% - 18px); }
	.cc-calendar-dialog__content { padding: 17px; }
	.cc-popup-section__body { padding: 12px; }
}

/* Phase 4.1 category-driven compact emoji badges. */
.cc-event-pill--compact .cc-event-pill__badge { display: inline-flex; align-items: center; gap: .22em; line-height: 1.2; }
.cc-event-pill--highlight { background: color-mix(in srgb, var(--cc-event-color) 22%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cc-event-color) 45%, transparent); }


/* Phase 4.2 layered day popup. */
.cc-day-popup__summary { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 16px; }
.cc-day-popup__chip { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border:1px solid #dcdcde; border-radius:999px; background:#f6f7f7; color:#3c434a; font-size:.82rem; }
.cc-popup-layer + .cc-popup-layer { margin-top:20px; padding-top:18px; border-top:1px solid #dcdcde; }
.cc-popup-layer__title { margin:0 0 9px; font-size:.86rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#646970; }
.cc-popup-layer__items { display:grid; gap:10px; }
.cc-popup-section h4 { margin:0 0 3px; padding:0; font-size:1.08rem; }


.cc-popup-layer--leave_opportunity .cc-popup-layer__title::before { content: "⭐ "; }
.cc-leave-summary { display:flex; flex-wrap:wrap; gap:.5rem; margin:.65rem 0; }
.cc-leave-summary span { background:rgba(0,0,0,.05); border-radius:999px; padding:.35rem .6rem; font-size:.9rem; }
.cc-popup-section__recommendation { margin:.55rem 0; font-weight:600; }
.cc-leave-disclaimer { margin:.8rem 0 .15rem; padding:.7rem .8rem; border:1px solid #dba617; border-left-width:4px; border-radius:4px; background:#fff8e5; color:#3c434a; font-size:.88rem; line-height:1.45; }
.cc-leave-disclaimer strong { display:block; margin-bottom:.15rem; color:#1d2327; }


/* v0.4.7 public calendar polish. */
.cc-calendar-button,
.cc-event-pill,
.cc-day-cell__more,
.cc-calendar-dialog__close {
	transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.cc-calendar-button:focus-visible,
.cc-event-pill:focus-visible,
.cc-day-cell__more:focus-visible,
.cc-calendar-dialog__close:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--cc-today, #2271b1) 45%, transparent);
	outline-offset: 2px;
}

.cc-event-pill:hover {
	transform: translateY(-1px);
}

.cc-day-cell__more {
	border-radius: 4px;
	padding: 3px 5px;
}

.cc-day-cell__more:hover,
.cc-day-cell__more:focus-visible {
	background: color-mix(in srgb, var(--cc-today) 9%, transparent);
}

.cc-calendar-dialog {
	max-height: min(86vh, 780px);
	overscroll-behavior: contain;
}

.cc-calendar-dialog__header {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 17px 18px;
	border-bottom: 1px solid #dcdcde;
	background: rgba(255,255,255,.97);
	backdrop-filter: blur(8px);
}

.cc-calendar-dialog__date {
	margin: 0;
	font-size: clamp(1.1rem, 4vw, 1.35rem);
	line-height: 1.25;
}

.cc-calendar-dialog__close {
	position: static;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid #dcdcde;
	border-radius: 50%;
	background: #fff;
	font-size: 1.5rem;
	line-height: 1;
}

.cc-calendar-dialog__close:hover {
	background: #f0f0f1;
}

.cc-calendar-dialog__content {
	padding: 18px;
}

.cc-popup-section {
	box-shadow: 0 1px 2px rgba(0,0,0,.04);
}

.cc-popup-section__notes ul,
.cc-popup-section__notes ol {
	padding-left: 1.35rem;
}

.cc-popup-section__support a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 7px 10px;
	border: 1px solid currentColor;
	border-radius: 7px;
	text-decoration: none;
}

@media (max-width: 600px) {
	.cc-calendar-dialog {
		width: 100%;
		max-width: 100%;
		max-height: 88vh;
		margin: auto 0 0;
		border-radius: 16px 16px 0 0;
	}

	.cc-calendar-dialog__header {
		padding: 14px 15px;
	}

	.cc-calendar-dialog__content {
		padding: 14px;
	}

	.cc-popup-section {
		grid-template-columns: 6px minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cc-calendar-button,
	.cc-event-pill,
	.cc-day-cell__more,
	.cc-calendar-dialog__close {
		transition: none;
	}

	.cc-event-pill:hover {
		transform: none;
	}
}


/* v0.4.7.1 popup count polish. */
.cc-day-popup > .cc-popup-layer:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.cc-popup-layer__count { font-weight: 600; letter-spacing: 0; }

/* v0.4.8 public category filtering */
.cc-month-calendar__legend {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--cc-border, #dcdcde);
	border-radius: 9px;
	background: var(--cc-surface, #fff);
	color: inherit;
	cursor: pointer;
	text-align: left;
	justify-content: space-between;
	align-items: center;
}
.cc-month-calendar__legend:hover,
.cc-month-calendar__legend:focus-visible { background: var(--cc-surface-subtle, #f6f7f7); }
.cc-month-calendar__legend-items { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.cc-month-calendar__filter-status { margin-left: auto; font-size: .78rem; font-weight: 700; white-space: nowrap; opacity: .72; }
.cc-legend-item.is-filtered { opacity: .35; text-decoration: line-through; }
.cc-category-filter { width: min(430px, calc(100% - 24px)); padding: 0; border: 0; border-radius: 14px; color: inherit; background: #fff; box-shadow: 0 18px 60px rgba(0,0,0,.26); }
.cc-category-filter::backdrop { background: rgba(0,0,0,.48); }
.cc-category-filter__header { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding: 18px 20px 14px; border-bottom: 1px solid #dcdcde; }
.cc-category-filter__header h2 { margin: 0; font-size: 1.25rem; }
.cc-category-filter__header p { margin: 4px 0 0; font-size: .85rem; opacity: .72; }
.cc-category-filter__close { width: 38px; height: 38px; border: 1px solid #c3c4c7; border-radius: 50%; background: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.cc-category-filter__actions { display: flex; gap: 8px; padding: 12px 20px 4px; }
.cc-category-filter__actions button { border: 0; background: transparent; color: #135e96; padding: 6px 0; font-weight: 700; cursor: pointer; }
.cc-category-filter__actions button + button { margin-left: 14px; }
.cc-category-filter__list { display: grid; gap: 2px; padding: 8px 20px 16px; }
.cc-category-filter__item { display: grid; grid-template-columns: auto auto auto 1fr; align-items: center; gap: 9px; padding: 10px 8px; border-radius: 8px; cursor: pointer; }
.cc-category-filter__item:hover { background: #f6f7f7; }
.cc-category-filter__item input { width: 20px; height: 20px; margin: 0; }
.cc-category-filter__item i { width: 11px; height: 11px; border-radius: 50%; }
.cc-category-filter__footer { padding: 12px 20px 18px; border-top: 1px solid #dcdcde; text-align: right; }
.cc-category-filter__done { min-width: 90px; padding: 9px 18px; border: 0; border-radius: 7px; background: #2271b1; color: #fff; font-weight: 700; cursor: pointer; }
.cc-event-pill[hidden], .cc-day-cell__more[hidden], .cc-popup-section[hidden], .cc-popup-layer[hidden] { display: none !important; }
@media (max-width: 600px) {
	.cc-month-calendar__legend { align-items: flex-start; }
	.cc-month-calendar__filter-status { width: 100%; margin: 4px 0 0; }
	.cc-category-filter { width: calc(100% - 12px); max-width: none; margin: auto 6px 6px; border-radius: 16px 16px 10px 10px; }
	.cc-category-filter__item { min-height: 44px; }
}


/* Multi-month shortcode range */
.cc-calendar-range { display: grid; gap: 24px; }
.cc-calendar-range .cc-month-calendar + .cc-month-calendar { margin-top: 0; }

/* v0.7.0.2 adaptive full-page print layout and dynamic month rows. */
.cc-calendar-button--print {
	gap: .35em;
}

.cc-print-root,
.cc-print-page-header,
.cc-print-page-footer {
	display: none;
}

@media print {
	@page {
		size: letter landscape;
		margin: .20in;
	}

	html:has(body.cc-calendar-printing),
	body.cc-calendar-printing {
		margin: 0 !important;
		padding: 0 !important;
		background: #fff !important;
	}

	body.cc-calendar-printing > *:not(.cc-print-root) {
		display: none !important;
	}

	body.cc-calendar-printing .cc-print-root {
		display: block !important;
		width: 100%;
	}

	.cc-print-root .cc-calendar-range,
	.cc-print-root .cc-month-calendar {
		width: 100% !important;
		max-width: none !important;
	}

	.cc-print-root .cc-month-calendar {
		height: 8.08in;
		display: flex;
		flex-direction: column;
		break-inside: avoid;
		page-break-inside: avoid;
		border: 0;
		border-radius: 0;
		padding: 0;
		background: #fff;
	}

	.cc-print-root .cc-calendar-range .cc-month-calendar + .cc-month-calendar {
		break-before: page;
		page-break-before: always;
	}

	.cc-print-root .cc-month-calendar__toolbar,
	.cc-print-root .cc-month-calendar__nav,
	.cc-print-root .cc-month-calendar__legend,
	.cc-print-root .cc-category-filter,
	.cc-print-root template,
	.cc-print-root .cc-calendar-footer,
	.cc-print-root .cc-calendar-dev-details,
	.cc-print-root .cc-day-cell__more {
		display: none !important;
	}

	.cc-print-root .cc-print-page-header {
		display: block;
		flex: 0 0 auto;
		margin: 0 0 .04in;
	}

	.cc-print-root .cc-print-page-title {
		font-size: 13pt;
		font-weight: 700;
		line-height: 1.1;
	}

	.cc-print-root .cc-print-page-month {
		font-size: 21pt;
		font-weight: 700;
		line-height: 1.15;
		margin-top: .03in;
	}

	.cc-print-root .cc-month-calendar__scroll {
		display: flex;
		flex: 1 1 auto;
		min-height: 0;
		overflow: hidden;
	}

	.cc-print-root .cc-month-grid {
		flex: 1 1 auto;
		height: 100%;
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
		grid-template-rows: auto repeat(var(--cc-week-count, 6), minmax(0, 1fr));
	}

	.cc-print-root .cc-month-grid__weekday {
		padding: .06in .02in;
	}

	.cc-print-root .cc-day-cell {
		min-height: 0;
		height: auto;
		padding: .05in;
		print-color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}

	.cc-print-root .cc-event-pill {
		print-color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}

	.cc-print-root .cc-print-page-footer {
		display: block;
		flex: 0 0 auto;
		width: 100%;
		min-width: 0;
		margin-top: .02in;
		overflow: hidden;
		text-align: center;
		text-overflow: ellipsis;
		white-space: nowrap;
		font-size: 8pt;
		line-height: 1;
		color: #646970;
	}

	.cc-print-root--unified-month {
		display: block !important;
		width: 100%;
	}

	.cc-print-root--unified-month .cc-print-svg-page {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 8.08in;
		break-after: page;
		page-break-after: always;
		overflow: hidden;
	}

	.cc-print-root--unified-month .cc-print-svg-page:last-child {
		break-after: auto;
		page-break-after: auto;
	}

	.cc-print-root--unified-month svg {
		display: block;
		width: 100%;
		height: 100%;
		max-width: 100%;
		max-height: 100%;
	}
}

/* v0.7.1: chronological agenda/list view. */
.cc-agenda-list {
	display: grid;
	gap: 0;
	border-top: 1px solid var(--cc-border);
}
.cc-agenda-day {
	display: grid;
	grid-template-columns: clamp(64px, 10cqi, 92px) minmax(0, 1fr);
	gap: clamp(12px, 2cqi, 20px);
	padding: clamp(14px, 2.5cqi, 22px) 0;
	border-bottom: 1px solid var(--cc-border);
}
.cc-agenda-day__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	line-height: 1;
	color: var(--cc-muted);
}
.cc-agenda-day__date strong {
	font-size: clamp(1.75rem, 5cqi, 2.8rem);
	color: #1d2327;
	margin: .15em 0;
}
.cc-agenda-day__weekday,
.cc-agenda-day__date > span:last-child {
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.cc-agenda-day__content h4 {
	margin: 0 0 10px;
	font-size: clamp(1rem, 2.4cqi, 1.25rem);
}
.cc-agenda-items {
	display: grid;
	gap: 8px;
}
.cc-agenda-item {
	--cc-event-color: #2271b1;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 10px 12px;
	border: 1px solid color-mix(in srgb, var(--cc-event-color) 30%, var(--cc-border));
	border-left: 5px solid var(--cc-event-color);
	border-radius: 7px;
	background: color-mix(in srgb, var(--cc-event-color) 7%, #fff);
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}
.cc-agenda-item:hover,
.cc-agenda-item:focus {
	background: color-mix(in srgb, var(--cc-event-color) 14%, #fff);
}
.cc-agenda-item__icon {
	font-size: 1.15rem;
}
.cc-agenda-item__main {
	display: grid;
	gap: 2px;
}
.cc-agenda-item__main > span {
	font-size: .84rem;
	color: var(--cc-muted);
}
.cc-agenda-empty {
	padding: 24px 0;
	color: var(--cc-muted);
}
@media (max-width: 520px) {
	.cc-agenda-day {
		grid-template-columns: 54px minmax(0, 1fr);
		gap: 10px;
	}
	.cc-agenda-day__content h4 { font-size: .95rem; }
}
@media print {
	.cc-agenda-calendar .cc-month-calendar__nav { display: none !important; }
	.cc-agenda-day { break-inside: avoid; }
	.cc-agenda-item { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* v0.7.1.1: agenda category ribbon and live filtering. */
.cc-agenda-category-ribbon { margin-bottom: 0; }
.cc-agenda-item[hidden], .cc-agenda-day[hidden], .cc-agenda-empty--filtered[hidden] { display: none !important; }
.cc-agenda-empty--filtered { margin: 0; border-bottom: 1px solid var(--cc-border); }
@media print {
	.cc-agenda-calendar .cc-month-calendar__legend,
	.cc-agenda-calendar .cc-category-filter { display: none !important; }
}

/* Year-at-a-glance view. */
.cc-year-view__toolbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.cc-year-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 2vw, 22px);
}

.cc-year-month {
	min-width: 0;
	break-inside: avoid;
}

.cc-year-month h4 {
	margin: 0 0 7px;
	font-size: clamp(1rem, 2.2cqi, 1.25rem);
	text-align: center;
}

.cc-year-month__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	border-top: 1px solid var(--cc-border);
	border-left: 1px solid var(--cc-border);
}

.cc-year-month__weekday,
.cc-year-day {
	min-width: 0;
	border-right: 1px solid var(--cc-border);
	border-bottom: 1px solid var(--cc-border);
}

.cc-year-month__weekday {
	padding: 4px 1px;
	background: var(--cc-surface-subtle);
	font-size: .68rem;
	font-weight: 700;
	text-align: center;
}

.cc-year-day {
	position: relative;
	min-height: 34px;
	background: #fff;
}

.cc-year-day--outside {
	background: #fafafa;
}

.cc-year-day__button {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 100%;
	min-height: 34px;
	padding: 3px 1px 2px;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.cc-year-day__button:disabled {
	cursor: default;
}

.cc-year-day__button:not(:disabled):hover,
.cc-year-day__button:not(:disabled):focus-visible {
	background: var(--cc-surface-subtle);
	outline: 2px solid var(--cc-today);
	outline-offset: -2px;
}

.cc-year-day__number {
	font-size: .72rem;
	font-weight: 600;
	line-height: 1;
}

.cc-year-day--today .cc-year-day__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.55em;
	height: 1.55em;
	border-radius: 50%;
	background: var(--cc-today);
	color: #fff;
}

.cc-year-day__markers {
	display: flex;
	justify-content: center;
	gap: 2px;
	min-height: 5px;
}

.cc-year-day__marker {
	display: block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--cc-event-color);
}

@container (max-width: 780px) {
	.cc-year-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container (max-width: 480px) {
	.cc-year-grid { grid-template-columns: 1fr; }
}

@media print {
	.cc-year-view {
		padding: 0 !important;
		border: 0 !important;
	}
	.cc-year-view__toolbar .cc-month-calendar__nav,
	.cc-year-view .cc-month-calendar__legend,
	.cc-year-view .cc-category-filter,
	.cc-year-view .cc-calendar-footer {
		display: none !important;
	}
	.cc-year-view__toolbar {
		margin-bottom: .12in;
	}
	.cc-year-view__toolbar .cc-month-calendar__heading h2,
	.cc-year-view__toolbar .cc-month-calendar__heading h3 {
		display: block !important;
	}
	.cc-year-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: .12in;
	}
	.cc-year-month h4 { font-size: 10pt; margin-bottom: 2px; }
	.cc-year-month__weekday { font-size: 6.5pt; padding: 2px 0; }
	.cc-year-day, .cc-year-day__button { min-height: .29in; }
	.cc-year-day__number { font-size: 6.5pt; }
}

/* v0.7.5: consolidate Leave Opportunities into date-range cards in Agenda view. */
.cc-agenda-item--range .cc-agenda-item__main { gap: .12rem; }
.cc-agenda-item__range {
	display: block;
	font-weight: 700;
	color: #50575e;
}
@media print {
	.cc-agenda-item__range { color: #3c434a; }
}


/* Schedule type groups in day popups. */
.cc-popup-schedule-group { display:grid; gap:8px; }
.cc-popup-schedule-group + .cc-popup-schedule-group { margin-top:4px; padding-top:12px; border-top:1px solid #e2e4e7; }
.cc-popup-schedule-group__title { margin:0; font-size:.78rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; color:#50575e; }
.cc-popup-schedule-group__count { font-weight:600; letter-spacing:0; }
.cc-popup-schedule-group__items { display:grid; gap:10px; }


/* v0.7.5.9: schedule type accents in day popups. */
.cc-popup-schedule-group {
	--cc-schedule-accent: #646970;
	--cc-schedule-tint: #f6f7f7;
	border-radius: 8px;
}
.cc-popup-schedule-group__title {
	padding: 6px 9px;
	border-left: 4px solid var(--cc-schedule-accent);
	border-radius: 4px;
	background: var(--cc-schedule-tint);
}
.cc-popup-schedule-group--school { --cc-schedule-accent: #2271b1; --cc-schedule-tint: #f0f6fc; }
.cc-popup-schedule-group--flex { --cc-schedule-accent: #8c5e00; --cc-schedule-tint: #fcf7e8; }
.cc-popup-schedule-group--holiday { --cc-schedule-accent: #008a20; --cc-schedule-tint: #edfaef; }
.cc-popup-schedule-group--sports { --cc-schedule-accent: #9b51e0; --cc-schedule-tint: #f7f1fc; }
.cc-popup-schedule-group--general { --cc-schedule-accent: #646970; --cc-schedule-tint: #f6f7f7; }
@media (forced-colors: active) {
	.cc-popup-schedule-group__title { border-left-color: CanvasText; }
}


/* v0.7.5.10: recognizable icons for Schedule Type subgroup headings. */
.cc-popup-schedule-group__title {
	display: flex;
	align-items: center;
	gap: .4rem;
}
.cc-popup-schedule-group__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.25em;
	font-size: 1rem;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	flex: 0 0 auto;
}
.cc-popup-schedule-group__count { margin-left: .1rem; }


/* v0.7.5.11: refined popup spacing and typography. */
.cc-popup-layer__items {
	display: grid;
	gap: 12px;
}
.cc-popup-schedule-group {
	gap: 10px;
}
.cc-popup-schedule-group + .cc-popup-schedule-group {
	margin-top: 6px;
	padding-top: 16px;
}
.cc-popup-schedule-group__title {
	min-height: 2.15rem;
	padding: 7px 10px;
	font-size: .8rem;
	line-height: 1.3;
}
.cc-popup-schedule-group__count {
	margin-left: auto;
	padding-left: .5rem;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.cc-popup-schedule-group__items {
	gap: 12px;
	padding-inline: 2px;
}
.cc-popup-schedule-group__items .cc-popup-section h4 {
	line-height: 1.35;
}
.cc-popup-schedule-group__items .cc-popup-section__meta,
.cc-popup-schedule-group__items .cc-popup-section__category {
	line-height: 1.45;
}
@media (max-width: 480px) {
	.cc-popup-schedule-group + .cc-popup-schedule-group {
		padding-top: 13px;
	}
	.cc-popup-schedule-group__title {
		padding: 7px 8px;
	}
	.cc-popup-schedule-group__items {
		gap: 10px;
		padding-inline: 0;
	}
}


/* v0.7.5.12: align Agenda schedule labels with popup Schedule Type styling. */
.cc-agenda-item--schedule {
	--cc-schedule-accent: #646970;
	--cc-schedule-tint: #f6f7f7;
}
.cc-agenda-item--schedule-school { --cc-schedule-accent: #2271b1; --cc-schedule-tint: #f0f6fc; }
.cc-agenda-item--schedule-flex { --cc-schedule-accent: #996800; --cc-schedule-tint: #fcf5e8; }
.cc-agenda-item--schedule-holiday { --cc-schedule-accent: #008a20; --cc-schedule-tint: #edfaef; }
.cc-agenda-item--schedule-sports { --cc-schedule-accent: #7e3aa8; --cc-schedule-tint: #f7f0fb; }
.cc-agenda-schedule-type {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	width: fit-content;
	padding: .16rem .42rem;
	border-left: 3px solid var(--cc-schedule-accent);
	border-radius: 3px;
	background: var(--cc-schedule-tint);
	color: #3c434a;
	font-size: .76rem;
	font-weight: 700;
	line-height: 1.25;
}
.cc-agenda-item__meta { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem; }
@media print {
	.cc-agenda-schedule-type {
		border-color: var(--cc-schedule-accent);
		print-color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}
}


/* v0.7.5.13: improve Agenda spacing and typography for faster scanning. */
.cc-agenda-day {
	align-items: flex-start;
	padding-block: 1rem;
}
.cc-agenda-day + .cc-agenda-day {
	border-top-color: #dcdcde;
}
.cc-agenda-day__date {
	padding-top: .1rem;
	line-height: 1.15;
}
.cc-agenda-day__date strong {
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.cc-agenda-day__content > h4 {
	margin: 0 0 .65rem;
	font-size: .95rem;
	line-height: 1.35;
	letter-spacing: .01em;
}
.cc-agenda-items {
	gap: .65rem;
}
.cc-agenda-item {
	padding: .75rem .8rem;
	line-height: 1.35;
}
.cc-agenda-item__main {
	gap: .25rem;
}
.cc-agenda-item__main > strong {
	font-size: .94rem;
	line-height: 1.35;
}
.cc-agenda-item__range {
	font-size: .82rem;
	line-height: 1.4;
	font-variant-numeric: tabular-nums;
}
.cc-agenda-item__meta {
	font-size: .8rem;
	line-height: 1.4;
}
@media (max-width: 480px) {
	.cc-agenda-day {
		padding-block: .8rem;
	}
	.cc-agenda-day__content > h4 {
		margin-bottom: .5rem;
		font-size: .9rem;
	}
	.cc-agenda-items {
		gap: .5rem;
	}
	.cc-agenda-item {
		padding: .68rem .7rem;
	}
}
@media print {
	.cc-agenda-day {
		padding-block: .45rem;
		break-inside: avoid;
	}
	.cc-agenda-item {
		padding: .4rem .5rem;
		break-inside: avoid;
	}
}

/* v0.7.5.14: accessible popup focus entry without a distracting heading outline. */
.cc-calendar-dialog__date:focus { outline: none; }

/* v0.7.6.7: restrained public planning-score presentation. */
.cc-public-score { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin:.45rem 0 .25rem; }
.cc-public-score__value { display:inline-flex; align-items:baseline; padding:.18rem .45rem; border:1px solid color-mix(in srgb, var(--cc-section-color) 40%, #dcdcde); border-radius:999px; background:color-mix(in srgb, var(--cc-section-color) 8%, #fff); font-size:.82rem; line-height:1.25; }
.cc-public-score__value strong { font-size:1rem; }
.cc-public-score__tier { font-weight:600; font-size:.88rem; }
.cc-public-score-details { margin:.15rem 0 .55rem; font-size:.84rem; }
.cc-public-score-details summary { cursor:pointer; font-weight:600; }
.cc-public-score-details ul { list-style:none; margin:.35rem 0 0; padding:0; max-width:22rem; }
.cc-public-score-details li { display:flex; justify-content:space-between; gap:1rem; padding:.14rem 0; border-bottom:1px dotted #dcdcde; }
.cc-agenda-score { font-weight:600; white-space:nowrap; }
@media print { .cc-public-score-details { display:none !important; } }

/* v0.7.7.0 multi-day month range bars. */
.cc-day-cell__events {
	padding-bottom: calc(var(--cc-range-lanes, 0) * 22px);
}

.cc-month-range {
	--cc-event-color: #2271b1;
	position: relative;
	z-index: 4;
	display: flex;
	align-items: center;
	gap: .3em;
	align-self: end;
	min-width: 0;
	height: 19px;
	margin: 0 3px calc(3px + (var(--cc-range-lane, 0) * 22px));
	padding: 1px 7px;
	border: 1px solid color-mix(in srgb, var(--cc-event-color) 48%, #dcdcde);
	border-radius: 3px;
	background: color-mix(in srgb, var(--cc-event-color) 18%, #fff);
	color: #1d2327;
	font: inherit;
	font-size: clamp(.62rem, 1.45cqi, .78rem);
	font-weight: 800;
	line-height: 15px;
	text-align: left;
	cursor: pointer;
	overflow: hidden;
	white-space: nowrap;
	box-shadow: inset 3px 0 0 var(--cc-event-color);
}

.cc-month-range:hover,
.cc-month-range:focus-visible {
	background: color-mix(in srgb, var(--cc-event-color) 27%, #fff);
	outline: 2px solid color-mix(in srgb, var(--cc-event-color) 58%, transparent);
	outline-offset: 1px;
}

.cc-month-range:not(.cc-month-range--first) {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
	box-shadow: none;
}

.cc-month-range:not(.cc-month-range--last) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.cc-month-range__icon {
	flex: 0 0 auto;
	line-height: 1;
}

.cc-month-range__title {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cc-month-range[hidden] { display: none !important; }

@media (max-width: 600px) {
	.cc-day-cell__events { padding-bottom: calc(var(--cc-range-lanes, 0) * 19px); }
	.cc-month-range {
		height: 16px;
		margin-right: 2px;
		margin-left: 2px;
		margin-bottom: calc(2px + (var(--cc-range-lane, 0) * 19px));
		padding: 0 4px;
		font-size: .6rem;
		line-height: 14px;
	}
}

@media print {
	.cc-day-cell__events { padding-bottom: calc(var(--cc-range-lanes, 0) * 15px); }
	.cc-month-range {
		height: 13px;
		margin: 0 2px calc(2px + (var(--cc-range-lane, 0) * 15px));
		padding: 0 3px;
		font-size: 6.5pt;
		line-height: 11px;
		box-shadow: inset 2px 0 0 var(--cc-event-color);
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
}

.cc-popup-section__group-count { margin:.4rem 0 .25rem; }
.cc-popup-section__group-items { margin:.25rem 0 .55rem 1.2rem; padding:0; }
.cc-popup-section__group-items li { margin:.18rem 0; }
.cc-popup-section__group-items li span { color:#646970; margin-left:.35rem; }

/* Publication export controls */
.cc-publication-export {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.cc-publication-export__resolution {
	min-height: 2.25rem;
	max-width: 10.5rem;
	padding: 0.35rem 1.8rem 0.35rem 0.55rem;
	border: 1px solid #8c8f94;
	border-radius: 4px;
	background: #fff;
	font: inherit;
	font-size: 0.875rem;
}

@media (max-width: 640px) {
	.cc-publication-export {
		flex-wrap: wrap;
	}
	.cc-publication-export__resolution {
		max-width: 9.5rem;
	}
}
