.athsl-portal {
	--athsl-portal-bg: var(--surface-1, var(--wp--preset--color--base, #f6f9ff));
	--athsl-portal-surface: var(--surface-2, var(--wp--preset--color--base, #fff));
	--athsl-portal-raised: var(--surface-0, #fff);
	--athsl-portal-soft: var(--surface-3, var(--wp--preset--color--contrast-2, #edf4fb));
	--athsl-portal-text: var(--text-high, var(--wp--preset--color--contrast, #172033));
	--athsl-portal-muted: var(--text-mid, var(--wp--preset--color--contrast-2, #3d4a61));
	--athsl-portal-low: var(--text-low, #69758a);
	--athsl-portal-border: var(--border, var(--border-color, #d7e0ed));
	--athsl-portal-accent: var(--accent, var(--ctl-c1, var(--wp--preset--color--primary, #2d5bd1)));
	--athsl-portal-accent-strong: var(--accent-strong, var(--ctl-c2, #087f7a));
	--athsl-portal-success: var(--status-success, #147a52);
	--athsl-portal-warning: var(--status-warning, #9a6700);
	--athsl-portal-danger: var(--status-danger, #b42318);
	--athsl-portal-shadow: var(--drop-sm, 0 8px 24px rgba(31, 54, 86, .08));
	background: linear-gradient(135deg, color-mix(in srgb, var(--athsl-portal-accent) 6%, transparent), transparent 42%), var(--athsl-portal-bg);
	border: 1px solid var(--athsl-portal-border);
	border-radius: var(--radius-lg, 16px);
	box-sizing: border-box;
	color: var(--athsl-portal-text);
	margin: clamp(1.25rem, 4vw, 3rem) auto;
	padding: clamp(.7rem, 2vw, 1rem);
	width: calc(100% - clamp(1.25rem, 5vw, 5rem));
}

.athsl-portal *,
.athsl-portal *::before,
.athsl-portal *::after {
	box-sizing: border-box;
}

.athsl-portal__hero,
.athsl-portal__card,
.athsl-portal__metric,
.athsl-portal__notice {
	background: var(--athsl-portal-surface);
	border: 1px solid var(--athsl-portal-border);
	border-radius: var(--radius, 12px);
	box-shadow: var(--athsl-portal-shadow);
}

.athsl-portal__hero {
	align-items: start;
	display: flex;
	gap: 1.25rem;
	justify-content: space-between;
	padding: clamp(1.15rem, 3vw, 1.8rem);
}

.athsl-portal__eyebrow {
	color: var(--athsl-portal-accent-strong);
	font-size: .73rem;
	font-weight: 800;
	letter-spacing: .08em;
	margin: 0 0 .35rem;
	text-transform: uppercase;
}

.athsl-portal h2,
.athsl-portal h3 {
	color: var(--athsl-portal-text);
	margin: 0;
}

.athsl-portal h2 {
	font-size: clamp(1.45rem, 3vw, 2.25rem);
	line-height: 1.1;
}

.athsl-portal h3 {
	font-size: 1.8rem;
}

.athsl-portal p {
	color: var(--athsl-portal-muted);
	margin: .35rem 0 0;
}

.athsl-portal__hero p {
	max-width: 760px;
}

.athsl-portal__heroActions {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
	justify-content: end;
}

.athsl-portal__locationPicker {
	display: grid;
	gap: .25rem;
	min-width: 180px;
}

.athsl-portal__locationPicker span,
.athsl-portal__form label>span {
	color: var(--athsl-portal-text);
	font-size: 1.2rem;
	font-weight: 750;
}

.athsl-portal select,
.athsl-portal input,
.athsl-portal textarea {
	background: var(--athsl-portal-raised);
	border: 1px solid var(--athsl-portal-border);
	border-radius: var(--control-radius, 8px);
	color: var(--athsl-portal-text);
	font: inherit;
	min-height: 2.45rem;
	padding: .55rem .65rem;
	width: 100%;
}

.athsl-portal input:focus-visible,
.athsl-portal textarea:focus-visible,
.athsl-portal select:focus-visible,
.athsl-portal button:focus-visible {
	border-color: var(--athsl-portal-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--athsl-portal-accent) 26%, transparent);
	outline: none;
}

.athsl-portal textarea {
	min-height: 5rem;
	resize: vertical;
}

.athsl-portal__status,
.athsl-portal__pill {
	align-items: center;
	border: 1px solid var(--athsl-portal-border);
	border-radius: 999px;
	display: inline-flex;
	font-size: .73rem;
	font-weight: 750;
	gap: .25rem;
	padding: .28rem .55rem;
	white-space: nowrap;
}

.athsl-portal__status.is-good,
.athsl-portal__pill.is-good {
	background: color-mix(in srgb, var(--athsl-portal-success) 10%, var(--athsl-portal-surface));
	border-color: color-mix(in srgb, var(--athsl-portal-success) 34%, var(--athsl-portal-border));
	color: var(--athsl-portal-success);
}

.athsl-portal__status.is-review,
.athsl-portal__pill.is-review {
	background: color-mix(in srgb, var(--athsl-portal-warning) 9%, var(--athsl-portal-surface));
	border-color: color-mix(in srgb, var(--athsl-portal-warning) 32%, var(--athsl-portal-border));
	color: var(--athsl-portal-warning);
}

.athsl-portal__status.is-alert,
.athsl-portal__pill.is-alert {
	background: color-mix(in srgb, var(--athsl-portal-danger) 8%, var(--athsl-portal-surface));
	border-color: color-mix(in srgb, var(--athsl-portal-danger) 32%, var(--athsl-portal-border));
	color: var(--athsl-portal-danger);
}

.athsl-portal__pill.is-neutral {
	background: var(--athsl-portal-soft);
	color: var(--athsl-portal-muted);
}

.athsl-portal__notice {
	margin-top: 1rem;
	padding: .85rem 1rem;
}

.athsl-portal__notice h2 {
	font-size: 1.2rem;
}

.athsl-portal__notice--success {
	border-color: color-mix(in srgb, var(--athsl-portal-success) 35%, var(--athsl-portal-border));
	color: var(--athsl-portal-success);
}

.athsl-portal__notice--warning {
	border-color: color-mix(in srgb, var(--athsl-portal-warning) 35%, var(--athsl-portal-border));
	color: var(--athsl-portal-warning);
}

.athsl-portal__notice--info {
	border-color: color-mix(in srgb, var(--athsl-portal-accent) 35%, var(--athsl-portal-border));
}

.athsl-portal__metrics {
	display: none;
	gap: .75rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 1rem;
}

.athsl-portal__metric {
	display: grid;
	gap: .18rem;
	padding: .8rem .9rem;
}

.athsl-portal__metric span,
.athsl-portal__metric small {
	color: var(--athsl-portal-muted);
	font-size: .75rem;
}

.athsl-portal__metric strong {
	color: var(--athsl-portal-text);
	font-size: 1.35rem;
	line-height: 1.05;
}

.athsl-portal__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 1rem;
}

.athsl-portal__grid--top {
	grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr);
}

.athsl-portal__stack {
	align-content: start;
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.athsl-portal__readinessCard,
.athsl-portal__legacySummary {
	display: none !important;
}

.athsl-portal__card {
	min-width: 0;
	padding: clamp(.9rem, 2vw, 1.25rem);
}

.athsl-portal__card--wide {
	min-width: 0;
}

.athsl-portal__cardHead {
	align-items: start;
	display: flex;
	gap: .75rem;
	justify-content: space-between;
	margin-bottom: .85rem;
}

.athsl-portal__cardHead p {
	font-size: 1.1rem;
}

.athsl-portal__count {
	background: var(--athsl-portal-soft);
	border-radius: 999px;
	color: var(--athsl-portal-accent-strong);
	font-weight: 800;
	padding: .3rem .55rem;
}

.athsl-portal__calendarNav {
	align-items: center;
	display: flex;
	gap: .45rem;
}

.athsl-portal__calendarNav a {
	align-items: center;
	border: 1px solid var(--athsl-portal-border);
	border-radius: 7px;
	color: var(--athsl-portal-accent-strong);
	display: inline-flex;
	font-size: 1.15rem;
	height: 1.8rem;
	justify-content: center;
	text-decoration: none;
	width: 1.8rem;
}

.athsl-portal__calendarNav strong {
	font-size: .82rem;
	min-width: 92px;
	text-align: center;
}

.athsl-portal__weekdays,
.athsl-portal__calendar {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.athsl-portal__weekdays {
	color: var(--athsl-portal-low);
	font-size: .68rem;
	font-weight: 800;
	gap: .25rem;
	letter-spacing: .04em;
	padding: 0 .25rem .3rem;
	text-transform: uppercase;
}

.athsl-portal__weekdays span {
	padding: .25rem;
}

.athsl-portal__calendar {
	border-left: 1px solid var(--athsl-portal-border);
	border-top: 1px solid var(--athsl-portal-border);
	gap: 0;
}

.athsl-portal__day {
	background: var(--athsl-portal-raised);
	border-bottom: 1px solid var(--athsl-portal-border);
	border-right: 1px solid var(--athsl-portal-border);
	min-height: 6.1rem;
	padding: .35rem;
}

.athsl-portal__day>strong {
	color: var(--athsl-portal-muted);
	font-size: 1.5rem;
}

.athsl-portal__day--empty {
	background: var(--athsl-portal-soft);
	opacity: .55;
}

.athsl-portal__event {
	background: color-mix(in srgb, var(--athsl-portal-accent) 9%, var(--athsl-portal-surface));
	border-left: 2px solid var(--athsl-portal-accent);
	border-radius: 4px;
	display: grid;
	gap: .08rem;
	margin-top: .25rem;
	overflow: hidden;
	padding: .25rem;
}

.athsl-portal__event span,
.athsl-portal__event small,
.athsl-portal__more {
	color: var(--athsl-portal-muted);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.15;
}

.athsl-portal__event strong {
	color: var(--athsl-portal-text);
	font-size: 1.2rem;
	line-height: 1.15;
}

.athsl-portal__more {
	display: block;
	margin-top: .25rem;
}

.athsl-portal__empty {
	font-size: .85rem;
}

.athsl-portal__empty--calendar {
	margin-top: .7rem;
}

.athsl-portal__checklist,
.athsl-portal__agreementList,
.athsl-portal__spaceList,
.athsl-portal__usageList {
	display: grid;
	gap: .45rem;
}

.athsl-portal__check {
	align-items: center;
	display: grid;
	gap: .45rem;
	grid-template-columns: 1.1rem 1fr auto;
	padding: .3rem 0;
}

.athsl-portal__checkIcon {
	align-items: center;
	border-radius: 50%;
	display: inline-flex;
	font-weight: 900;
	height: 1.1rem;
	justify-content: center;
	width: 1.1rem;
}

.athsl-portal__checkIcon.is-good {
	background: color-mix(in srgb, var(--athsl-portal-success) 15%, transparent);
	color: var(--athsl-portal-success);
}

.athsl-portal__checkIcon.is-review {
	background: color-mix(in srgb, var(--athsl-portal-warning) 15%, transparent);
	color: var(--athsl-portal-warning);
}

.athsl-portal__check span:nth-child(2),
.athsl-portal__check strong {
	font-size: .78rem;
}

.athsl-portal__check strong {
	color: var(--athsl-portal-muted);
}

.athsl-portal__agreementList {
	border-top: 1px solid var(--athsl-portal-border);
	margin-top: .65rem;
	padding-top: .65rem;
}

.athsl-portal__agreement,
.athsl-portal__usage {
	align-items: center;
	border-bottom: 1px solid var(--athsl-portal-border);
	display: flex;
	gap: .65rem;
	justify-content: space-between;
	padding: .45rem 0;
}

.athsl-portal__agreement:last-child,
.athsl-portal__usage:last-child {
	border-bottom: 0;
}

.athsl-portal__agreement strong,
.athsl-portal__usage strong {
	color: var(--athsl-portal-text);
	font-size: 1.2rem;
}

.athsl-portal__agreement span,
.athsl-portal__usage span {
	color: var(--athsl-portal-muted);
	font-size: 1rem;
}

.athsl-portal__space {
	border: 1px solid var(--athsl-portal-border);
	border-radius: 8px;
	padding: .65rem;
}

.athsl-portal__space>div:first-child {
	display: grid;
	gap: .1rem;
}

.athsl-portal__space strong {
	font-size: 1.4rem;
}

.athsl-portal__space span,
.athsl-portal__space small {
	color: var(--athsl-portal-muted);
	font-size: 1rem;
}

.athsl-portal__pills {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	margin-top: .45rem;
}

.athsl-portal__pills .athsl-portal__pill {
	font-size: 1rem;
	padding: .2rem .4rem;
}

.athsl-portal__payoutGrid {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.athsl-portal__payoutGrid>div {
	background: var(--athsl-portal-soft);
	border: 1px solid var(--athsl-portal-border);
	border-radius: 8px;
	display: grid;
	gap: .1rem;
	padding: .55rem;
}

.athsl-portal__payoutGrid strong {
	font-size: 1.5rem;
}

.athsl-portal__payoutGrid span {
	color: var(--athsl-portal-muted);
	font-size: 1rem;
}

.athsl-portal__usageList {
	border-top: 1px solid var(--athsl-portal-border);
	margin-top: .7rem;
	padding-top: .45rem;
}

.athsl-portal__usageAmount {
	align-items: end;
	display: grid;
	gap: .2rem;
	justify-items: end;
}

.athsl-portal__form {
	display: grid;
	gap: .9rem;
}

.athsl-portal__formGrid {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.athsl-portal__formGrid label {
	display: grid;
	gap: .3rem;
	min-width: 0;
}

.athsl-portal__formGrid--wide {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.athsl-portal__formActions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	justify-content: space-between;
}

.athsl-portal__formActions span {
	color: var(--athsl-portal-low);
	font-size: .72rem;
	max-width: 760px;
}

.athsl-portal__button {
	background: var(--athsl-portal-accent);
	border: 1px solid var(--athsl-portal-accent);
	border-radius: var(--control-radius, 8px);
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 800;
	padding: .62rem .85rem;
}

.athsl-portal__addPanel {
	border-top: 1px solid var(--athsl-portal-border);
	margin-top: .85rem;
	padding-top: .8rem;
}

.athsl-portal__addPanel>summary {
	align-items: center;
	background: color-mix(in srgb, var(--athsl-portal-accent) 7%, var(--athsl-portal-surface));
	border: 1px solid var(--athsl-portal-border);
	border-radius: 8px;
	color: var(--athsl-portal-accent-strong);
	cursor: pointer;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .65rem;
	justify-content: space-between;
	list-style: none;
	padding: .62rem .7rem;
}

.athsl-portal__addPanel>summary::-webkit-details-marker { display: none; }
.athsl-portal__addPanel>summary::after { content: '+'; font-size: 1.2rem; font-weight: 800; line-height: 1; }
.athsl-portal__addPanel[open]>summary::after { content: '−'; }
.athsl-portal__addPanel>summary span { color: var(--athsl-portal-muted); font-size: .72rem; margin-right: auto; }

.athsl-portal__spaceForm {
	display: grid;
	gap: .85rem;
	padding: .85rem .2rem .1rem;
}

.athsl-portal__spaceFormGrid {
	display: grid;
	gap: .7rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.athsl-portal__spaceFormGrid--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.athsl-portal__spaceFormGrid label { display: grid; gap: .3rem; min-width: 0; }

.athsl-portal__capabilityField {
	border: 1px solid var(--athsl-portal-border);
	border-radius: 8px;
	margin: 0;
	padding: .65rem;
}

.athsl-portal__capabilityField legend { color: var(--athsl-portal-text); font-size: .78rem; font-weight: 800; padding: 0 .25rem; }
.athsl-portal__capabilityField p { font-size: .72rem; margin: 0 0 .55rem; }
.athsl-portal__capabilityChoices { display: flex; flex-wrap: wrap; gap: .35rem; }
.athsl-portal__capabilityChoice { position: relative; }
.athsl-portal__capabilityChoice input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.athsl-portal__capabilityChoice span { background: var(--athsl-portal-soft); border: 1px solid var(--athsl-portal-border); border-radius: 999px; color: var(--athsl-portal-muted); cursor: pointer; display: inline-flex; font-size: .7rem; font-weight: 700; padding: .28rem .52rem; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.athsl-portal__capabilityChoice input:checked+span { background: color-mix(in srgb, var(--athsl-portal-accent) 13%, var(--athsl-portal-surface)); border-color: color-mix(in srgb, var(--athsl-portal-accent) 42%, var(--athsl-portal-border)); color: var(--athsl-portal-accent-strong); }
.athsl-portal__capabilityChoice input:focus-visible+span { box-shadow: 0 0 0 3px color-mix(in srgb, var(--athsl-portal-accent) 26%, transparent); }

@media (max-width: 900px) {
	.athsl-portal__metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.athsl-portal__grid,
	.athsl-portal__grid--top {
		grid-template-columns: 1fr;
	}

	.athsl-portal__formGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.athsl-portal__spaceFormGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.athsl-portal {
		width: calc(100% - 1rem);
	}

	.athsl-portal__hero {
		display: grid;
	}

	.athsl-portal__heroActions {
		justify-content: start;
	}

	.athsl-portal__metrics,
	.athsl-portal__formGrid,
	.athsl-portal__formGrid--wide,
	.athsl-portal__spaceFormGrid,
	.athsl-portal__spaceFormGrid--wide {
		grid-template-columns: 1fr;
	}

	.athsl-portal__cardHead {
		display: grid;
	}

	.athsl-portal__calendarNav {
		justify-content: start;
	}

	.athsl-portal__day {
		min-height: 4.5rem;
		padding: .22rem;
	}

	.athsl-portal__event {
		border-left-width: 1px;
		padding: .18rem;
	}

	.athsl-portal__event strong {
		font-size: .57rem;
	}

	.athsl-portal__event span,
	.athsl-portal__event small {
		font-size: .54rem;
	}
}
