/**
 * Reusable ADAM component utilities.
 *
 * These classes contain no literal colours and can be used by every ADAM
 * plugin without recreating theme-specific component CSS.
 */
.adam-ui-component {
	color: var(--adam-text);
	font-family: var(--adam-font-body);
	line-height: var(--adam-line-height);
	transition-duration: var(--adam-transition-duration);
	transition-property: background-color, border-color, box-shadow, color;
	transition-timing-function: var(--adam-transition-timing);
}

.adam-ui-component *,
.adam-ui-component *::before,
.adam-ui-component *::after {
	box-sizing: border-box;
}

.adam-card:not(.adam-digital-card-section),
.adam-button,
.adam-input,
.adam-select,
.adam-textarea,
.adam-table,
.adam-badge,
.adam-notice,
.adam-modal,
.adam-tabs,
.adam-tabs__tab,
.adam-tabs__panel {
	transition-duration: var(--adam-transition-duration);
	transition-property: background-color, border-color, box-shadow, color;
	transition-timing-function: var(--adam-transition-timing);
}

/* Preset effects generated by the Theme Component Registry. */
.adam-status-badge {
	display: inline-flex;
	align-items: center;
	padding: var(--adam-badge-padding-y) var(--adam-badge-padding-x);
	color: var(--adam-on-secondary);
	background-color: var(--adam-secondary);
	border-radius: var(--adam-badge-radius);
	font-size: var(--adam-font-size-sm);
	font-weight: var(--adam-font-weight-semibold);
	line-height: 1.25;
}

.adam-status-badge--success { color: var(--adam-success); background-color: var(--adam-success-bg); }
.adam-status-badge--warning { color: var(--adam-warning); background-color: var(--adam-warning-bg); }
.adam-status-badge--danger,
.adam-status-badge--error { color: var(--adam-danger); background-color: var(--adam-danger-bg); }

.adam-search-bar {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--adam-space-2);
}

.adam-search-bar :where(.adam-input, input[type="search"]) {
	flex: 1 1 auto;
	min-width: 0;
}

.adam-side-panel {
	position: fixed;
	inset-block: 0;
	inset-inline-end: 0;
	z-index: var(--adam-z-modal);
	width: min(28rem, 100vw);
	padding: var(--adam-space-5);
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border-inline-start: var(--adam-border-width) solid var(--adam-border);
	box-shadow: var(--adam-shadow-lg);
	overflow: auto;
}

.adam-card:not(.adam-digital-card-section) {
	padding: var(--adam-card-padding, var(--adam-space-5));
	border-width: var(--adam-card-border-width);
	border-color: color-mix(in srgb, var(--adam-card-bg) 78%, white);
}

.adam-section,
.adam-section--base {
	padding-block: var(--adam-section-padding, var(--adam-space-8));
	border-width: var(--adam-section-border-width, 0);
	border-style: solid;
	border-color: color-mix(in srgb, var(--adam-section-standard-bg) 78%, white);
	box-shadow: var(--adam-section-shadow, none);
}

.adam-section--feature {
	padding: var(--adam-feature-padding, var(--adam-space-8));
	border-width: var(--adam-feature-border-width, 0);
	border-style: solid;
	border-color: color-mix(in srgb, var(--adam-section-feature-bg) 76%, white);
}

.adam-section--feature :where(.adam-icon, svg) {
	width: var(--adam-feature-icon-size, var(--adam-icon-size-xl));
	height: var(--adam-feature-icon-size, var(--adam-icon-size-xl));
}

.adam-hero {
	display: grid;
	grid-template-columns: var(--adam-hero-layout-columns, 1fr);
	gap: var(--adam-space-6);
	padding: var(--adam-hero-padding, var(--adam-space-8));
	color: var(--adam-hero-text);
	background: var(--adam-hero-bg);
	border: var(--adam-hero-border-width, 0) solid var(--adam-border);
}

.adam-hero :where(h1, h2, h3) { color: var(--adam-hero-heading); }
.adam-hero :where(.adam-button-primary, .adam-button--primary) {
	color: var(--adam-hero-primary-text);
	background: var(--adam-hero-primary);
}
.adam-hero :where(.adam-button-primary, .adam-button--primary):hover {
	color: var(--adam-hero-primary-hover-text);
	background: var(--adam-hero-primary-hover);
}
.adam-hero :where(.adam-button-secondary, .adam-button--secondary) {
	color: var(--adam-hero-secondary-text);
	background: var(--adam-hero-secondary);
}
.adam-hero :where(.adam-button-secondary, .adam-button--secondary):hover {
	color: var(--adam-hero-secondary-hover-text);
	background: var(--adam-hero-secondary-hover);
}
.adam-footer {
	padding: var(--adam-footer-padding, var(--adam-space-8));
	color: var(--adam-footer-text);
	background: var(--adam-footer-bg);
}

.adam-footer__copyright {
	border-top: var(--adam-footer-divider-width, 1px) solid var(--adam-footer-divider);
}

.adam-button {
	border-width: var(--adam-button-border-width, var(--adam-border-width));
	box-shadow: var(--adam-button-shadow, none);
}

.adam-input,
.adam-select,
.adam-textarea {
	border-width: var(--adam-form-border-width, var(--adam-border-width));
	box-shadow: var(--adam-form-shadow, none);
	background-color: color-mix(in srgb, var(--adam-input-bg) var(--adam-form-surface-opacity, 100%), transparent);
}

/* Canonical aliases retain compatibility with the Phase 4 modifier syntax. */
.adam-button-primary {
	color: var(--adam-on-primary);
	background-color: color-mix(in srgb, var(--adam-primary) var(--adam-button-fill-opacity, 100%), transparent);
	border-color: var(--adam-primary);
}

.adam-button.adam-button-secondary,
.adam-button--secondary {
	color: var(--adam-on-secondary);
	background-color: color-mix(in srgb, var(--adam-secondary) var(--adam-button-fill-opacity, 100%), transparent);
	border-color: var(--adam-border);
}

.adam-button.adam-button-danger,
.adam-button--danger {
	color: var(--adam-on-danger);
	background-color: var(--adam-danger);
	border-color: var(--adam-danger);
}

.adam-button.adam-button-success,
.adam-button--success {
	color: var(--adam-on-success);
	background-color: var(--adam-success);
	border-color: var(--adam-success);
}

.adam-button.adam-button-warning {
	color: var(--adam-on-warning);
	background-color: var(--adam-warning);
	border-color: var(--adam-warning);
}

.adam-button.adam-button-secondary:hover,
.adam-button.adam-button-secondary:focus-visible,
.adam-button--secondary:hover,
.adam-button--secondary:focus-visible {
	color: var(--adam-on-secondary);
	background-color: var(--adam-secondary-hover);
	border-color: var(--adam-border-strong);
}

.adam-button.adam-button-danger:hover,
.adam-button.adam-button-danger:focus-visible,
.adam-button--danger:hover,
.adam-button--danger:focus-visible {
	color: var(--adam-on-danger);
	background-color: var(--adam-danger-hover);
	border-color: var(--adam-danger-hover);
}

.adam-button[aria-busy="true"],
.adam-button:disabled {
	color: var(--adam-text-disabled);
	background-color: var(--adam-input-disabled-bg);
	border-color: var(--adam-border);
	cursor: wait;
}

.adam-card-header,
.adam-card-footer,
.adam-card__header,
.adam-card__footer {
	padding: var(--adam-space-4) var(--adam-space-5);
	background-color: var(--adam-surface-2);
	border-color: var(--adam-border);
}

.adam-card-header,
.adam-card__header {
	border-bottom: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius-lg) var(--adam-radius-lg) 0 0;
}

.adam-card-body,
.adam-card__body {
	padding: var(--adam-space-5);
}

.adam-card-footer,
.adam-card__footer {
	border-top: var(--adam-border-width) solid var(--adam-border);
	border-radius: 0 0 var(--adam-radius-lg) var(--adam-radius-lg);
}

/* Semantic page sections preserve hierarchy without page-specific palettes. */
.adam-section,
.adam-section--base {
	color: var(--adam-on-section-base);
	background: var(--adam-section-base);
}

.adam-section--muted {
	color: var(--adam-on-section-base);
	background: var(--adam-section-muted);
}

.adam-section--soft {
	color: var(--adam-on-section-soft);
	background: var(--adam-section-soft);
}

.adam-section--pale {
	color: var(--adam-on-section-soft);
	background: var(--adam-section-pale);
}

.adam-section--feature {
	color: var(--adam-on-section-feature);
	background: var(--adam-section-feature);
}

.adam-section--accent {
	color: var(--adam-on-section-accent);
	background: var(--adam-section-accent);
}

.adam-section--deep {
	color: var(--adam-on-section-deep);
	background: var(--adam-section-deep);
}

.adam-section--gradient-feature {
	color: var(--adam-on-section-feature);
	background: var(--adam-section-gradient-feature);
}

.adam-section--gradient-soft {
	color: var(--adam-on-section-soft);
	background: var(--adam-section-gradient-soft);
}

.adam-section--gradient-neutral {
	color: var(--adam-on-section-base);
	background: var(--adam-section-gradient-neutral);
}

:where(
	.adam-section--feature,
	.adam-section--accent,
	.adam-section--deep,
	.adam-section--gradient-feature
) :where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, label, legend) {
	color: inherit;
}

:where(
	.adam-section--feature,
	.adam-section--accent,
	.adam-section--deep,
	.adam-section--gradient-feature
) :where(a:not(.adam-button)) {
	color: inherit;
	text-decoration-color: var(--adam-primary);
}

/* Standard ADAM-owned admin page composition. */
.adam-admin-page,
.adam-admin-wrap {
	box-sizing: border-box;
	width: min(100%, var(--adam-content-width));
	margin: 0;
	padding: var(--adam-space-6) var(--adam-space-5) var(--adam-space-7);
	color: var(--adam-text);
}

.adam-page-header,
.adam-section-header,
.adam-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--adam-space-4);
}

.adam-page-header {
	margin-bottom: var(--adam-space-6);
}

.adam-page-header__content,
.adam-section-header__content {
	min-width: 0;
}

.adam-page-title,
.adam-section-header__title,
.adam-admin-wrap > h1 {
	margin: 0;
	color: var(--adam-text);
	line-height: var(--adam-line-height-tight);
}

.adam-page-title {
	font-size: var(--adam-font-size-2xl);
}

.adam-admin-wrap > h1 {
	font-size: var(--adam-font-size-2xl);
}

.adam-page-description,
.adam-section-header__description {
	margin: var(--adam-space-2) 0 0;
	color: var(--adam-text-muted);
}

.adam-page-actions,
.adam-section-header__actions,
.adam-toolbar__group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--adam-space-2);
}

.adam-admin-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--adam-sidebar-width);
	gap: var(--adam-space-6);
}

.adam-admin-layout--single {
	grid-template-columns: minmax(0, 1fr);
}

.adam-toolbar {
	flex-wrap: wrap;
	padding: var(--adam-space-3) var(--adam-space-4);
	color: var(--adam-text);
	background-color: var(--adam-surface-2);
	border: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius);
}

/* Breadcrumbs and pagination. */
.adam-breadcrumbs ol,
.adam-pagination {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--adam-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.adam-breadcrumbs li {
	display: inline-flex;
	align-items: center;
	gap: var(--adam-space-2);
	color: var(--adam-text-muted);
}

.adam-breadcrumbs li:not(:last-child)::after {
	content: "/";
	color: var(--adam-border-strong);
}

.adam-breadcrumbs [aria-current="page"] {
	color: var(--adam-text);
	font-weight: var(--adam-font-weight-semibold);
}

.adam-pagination a,
.adam-pagination button,
.adam-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--adam-control-height);
	min-height: var(--adam-control-height);
	padding: 0 var(--adam-space-3);
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius);
}

.adam-pagination [aria-current="page"] {
	color: var(--adam-on-primary);
	background-color: var(--adam-primary);
	border-color: var(--adam-primary);
}

/* Search, dropdown menus, and compact form composition. */
.adam-search {
	position: relative;
	display: flex;
	align-items: center;
	min-width: min(100%, 16rem);
}

.adam-search .adam-icon {
	position: absolute;
	inset-inline-start: var(--adam-space-3);
	pointer-events: none;
}

.adam-search .adam-input {
	padding-inline-start: calc(var(--adam-icon-size) + var(--adam-space-5));
}

.adam-dropdown {
	position: relative;
}

.adam-dropdown__menu {
	position: absolute;
	z-index: var(--adam-z-dropdown);
	inset-block-start: calc(100% + var(--adam-space-2));
	inset-inline-end: 0;
	min-width: 12rem;
	padding: var(--adam-space-2);
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius);
	box-shadow: var(--adam-shadow-lg);
	animation: adam-dropdown-in var(--adam-transition-fast) var(--adam-transition-emphasized);
}

.adam-dropdown__menu[hidden] {
	display: none;
}

.adam-dropdown__item {
	display: flex;
	align-items: center;
	width: 100%;
	padding: var(--adam-space-2) var(--adam-space-3);
	color: var(--adam-text);
	background: var(--adam-transparent);
	border: 0;
	border-radius: var(--adam-radius-sm);
	text-align: start;
	text-decoration: none;
}

.adam-dropdown__item:hover,
.adam-dropdown__item:focus-visible {
	color: var(--adam-text);
	background-color: var(--adam-surface-hover);
}

/* Alerts retain Phase 4 notice aliases. */
.adam-alert,
.adam-notice {
	padding: var(--adam-space-3) var(--adam-space-4);
	color: var(--adam-text);
	background-color: var(--adam-info-bg);
	border-inline-start: calc(var(--adam-border-width) * 4) solid var(--adam-info);
	border-radius: var(--adam-radius-sm);
}

.adam-alert-success,
.adam-notice--success {
	background-color: var(--adam-success-bg);
	border-color: var(--adam-success);
}

.adam-alert-warning,
.adam-notice--warning {
	background-color: var(--adam-warning-bg);
	border-color: var(--adam-warning);
}

.adam-alert-error,
.adam-notice--danger {
	background-color: var(--adam-danger-bg);
	border-color: var(--adam-danger);
}

/* Component Theme Editor bindings. These rules are the public component contract. */
.adam-card:not(.adam-digital-card-section) {
	color: var(--adam-card-text);
	background-color: color-mix(in srgb, var(--adam-card-bg) var(--adam-card-surface-opacity, 100%), transparent);
	border-color: var(--adam-card-border);
	border-width: var(--adam-card-border-width);
	border-radius: var(--adam-card-radius);
	box-shadow: var(--adam-card-shadow);
}

.adam-card--muted,
.adam-card__header,
.adam-card__footer,
.adam-card-header,
.adam-card-footer {
	background-color: var(--adam-card-elevated-bg);
	border-color: var(--adam-card-border);
}

.adam-card:not(.adam-digital-card-section) :where(h1, h2, h3, h4, h5, h6):not(.adam-digital-card-section *) { color: var(--adam-card-heading); }
.adam-card:not(.adam-digital-card-section) :where(p, li, dt, dd):not(.adam-digital-card-section *) { color: var(--adam-card-text); }
.adam-card:not(.adam-digital-card-section) a:not(.adam-button):not(.adam-card-link):not(.adam-digital-card-section *) { color: var(--adam-card-link); }

.adam-section,
.adam-section--base {
	color: var(--adam-section-standard-text);
	background: var(--adam-section-standard-bg);
}
.adam-section--muted,
.adam-section--soft {
	color: var(--adam-section-alternate-text);
	background: var(--adam-section-alternate-bg);
}
.adam-section--pale,
.adam-section--feature {
	color: var(--adam-section-feature-text);
	background: var(--adam-section-feature-bg);
}
.adam-section--accent {
	color: var(--adam-section-cta-text);
	background: var(--adam-section-cta-bg);
}
.adam-section--deep {
	color: var(--adam-section-overlay-text);
	background: var(--adam-section-overlay-bg);
}
.adam-section :where(h1, h2, h3, h4, h5, h6),
.adam-section--base :where(h1, h2, h3, h4, h5, h6) { color: var(--adam-section-standard-heading); }
.adam-section--muted :where(h1, h2, h3, h4, h5, h6),
.adam-section--soft :where(h1, h2, h3, h4, h5, h6) { color: var(--adam-section-alternate-heading); }
.adam-section--pale :where(h1, h2, h3, h4, h5, h6),
.adam-section--feature :where(h1, h2, h3, h4, h5, h6) { color: var(--adam-section-feature-heading); }
.adam-section--accent :where(h1, h2, h3, h4, h5, h6) { color: var(--adam-section-cta-heading); }
.adam-section--deep :where(h1, h2, h3, h4, h5, h6) { color: var(--adam-section-overlay-heading); }
.adam-section a:not(.adam-button):not(.adam-card-link),
.adam-section--base a:not(.adam-button):not(.adam-card-link) { color: var(--adam-section-standard-link); }
.adam-section--muted a:not(.adam-button):not(.adam-card-link),
.adam-section--soft a:not(.adam-button):not(.adam-card-link) { color: var(--adam-section-alternate-link); }
.adam-section--pale a:not(.adam-button):not(.adam-card-link),
.adam-section--feature a:not(.adam-button):not(.adam-card-link) { color: var(--adam-section-feature-link); }
.adam-section--accent a:not(.adam-button):not(.adam-card-link) { color: var(--adam-section-cta-link); }
.adam-section--deep a:not(.adam-button):not(.adam-card-link) { color: var(--adam-section-overlay-link); }

.adam-button,
.adam-button-primary,
.adam-button--primary {
	color: var(--adam-btn-primary-text);
	background-color: var(--adam-btn-primary-bg);
	border-color: var(--adam-btn-primary-border);
}
.adam-button:hover,
.adam-button:focus-visible,
.adam-button-primary:hover,
.adam-button-primary:focus-visible,
.adam-button--primary:hover,
.adam-button--primary:focus-visible {
	color: var(--adam-btn-primary-hover-text);
	background-color: var(--adam-btn-primary-hover-bg);
	border-color: var(--adam-btn-primary-hover-border);
}
.adam-button-secondary,
.adam-button--secondary {
	color: var(--adam-btn-secondary-text);
	background-color: var(--adam-btn-secondary-bg);
	border-color: var(--adam-btn-secondary-border);
}
.adam-button-secondary:hover,
.adam-button-secondary:focus-visible,
.adam-button--secondary:hover,
.adam-button--secondary:focus-visible {
	color: var(--adam-btn-secondary-hover-text);
	background-color: var(--adam-btn-secondary-hover-bg);
	border-color: var(--adam-btn-secondary-hover-border);
}
.adam-button-outline,
.adam-button--outline {
	color: var(--adam-btn-outline-text);
	background-color: var(--adam-btn-outline-bg);
	border-color: var(--adam-btn-outline-border);
}
.adam-button-outline:hover,
.adam-button-outline:focus-visible,
.adam-button--outline:hover,
.adam-button--outline:focus-visible {
	color: var(--adam-btn-outline-hover-text);
	background-color: var(--adam-btn-outline-hover-bg);
	border-color: var(--adam-btn-outline-hover-border);
}
.adam-button-danger,
.adam-button--danger {
	color: var(--adam-btn-danger-text);
	background-color: var(--adam-btn-danger-bg);
	border-color: var(--adam-btn-danger-border);
}
.adam-button-danger:hover,
.adam-button-danger:focus-visible,
.adam-button--danger:hover,
.adam-button--danger:focus-visible {
	color: var(--adam-btn-danger-hover-text);
	background-color: var(--adam-btn-danger-hover-bg);
	border-color: var(--adam-btn-danger-hover-border);
}
.adam-button-success,
.adam-button--success {
	color: var(--adam-btn-success-text);
	background-color: var(--adam-btn-success-bg);
	border-color: var(--adam-btn-success-border);
}
.adam-button-success:hover,
.adam-button-success:focus-visible,
.adam-button--success:hover,
.adam-button--success:focus-visible {
	color: var(--adam-btn-success-hover-text);
	background-color: var(--adam-btn-success-hover-bg);
	border-color: var(--adam-btn-success-hover-border);
}

.adam-field__label { color: var(--adam-form-label); }
.adam-input,
.adam-select,
.adam-textarea {
	color: var(--adam-form-input-text);
	background-color: var(--adam-form-input-bg);
	border-color: var(--adam-form-border);
	border-radius: var(--adam-input-radius);
}
.adam-input::placeholder,
.adam-textarea::placeholder { color: var(--adam-form-placeholder); }
.adam-input:focus,
.adam-select:focus,
.adam-textarea:focus {
	border-color: var(--adam-form-focus);
	box-shadow: 0 0 0 1px var(--adam-form-focus);
	outline-color: var(--adam-form-focus);
}

.adam-input:disabled,
.adam-select:disabled,
.adam-textarea:disabled {
	color: var(--adam-form-disabled-text);
	background-color: var(--adam-form-disabled-bg);
	border-color: var(--adam-form-disabled-bg);
}
.adam-form .adam-button,
.adam-field .adam-button { color: var(--adam-form-button-text); background-color: var(--adam-form-button); }

.adam-table { background-color: var(--adam-table-row-bg); }
.adam-table :where(th, td) { border-color: var(--adam-table-border); }
.adam-table :where(thead, tfoot) { background-color: var(--adam-table-header-bg); }
.adam-table tbody tr { background-color: var(--adam-table-row-bg); }
.adam-table tbody tr:nth-child(even) { background-color: var(--adam-table-alt-row-bg); }

.adam-alert,
.adam-notice {
	color: var(--adam-notice-info-text);
	background-color: var(--adam-notice-info-bg);
	border-color: var(--adam-notice-info-border);
}
.adam-alert-success,
.adam-notice--success {
	color: var(--adam-notice-success-text);
	background-color: var(--adam-notice-success-bg);
	border-color: var(--adam-notice-success-border);
}
.adam-alert-warning,
.adam-notice--warning {
	color: var(--adam-notice-warning-text);
	background-color: var(--adam-notice-warning-bg);
	border-color: var(--adam-notice-warning-border);
}
.adam-alert-error,
.adam-notice--danger,
.adam-notice--error {
	color: var(--adam-notice-error-text);
	background-color: var(--adam-notice-error-bg);
	border-color: var(--adam-notice-error-border);
}

/* Empty states, statistics, and loading. */
.adam-empty-state {
	padding: var(--adam-space-7) var(--adam-space-5);
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border: var(--adam-border-width) dashed var(--adam-border-strong);
	border-radius: var(--adam-radius-lg);
	text-align: center;
}

.adam-empty-state__icon {
	width: var(--adam-icon-size-xl);
	height: var(--adam-icon-size-xl);
	margin: 0 auto var(--adam-space-3);
	color: var(--adam-text-muted);
}

.adam-empty-state__title {
	margin: 0;
	font-size: var(--adam-font-size-lg);
}

.adam-empty-state__description {
	max-width: 36rem;
	margin: var(--adam-space-2) auto 0;
	color: var(--adam-text-muted);
}

.adam-empty-state__actions {
	display: flex;
	justify-content: center;
	gap: var(--adam-space-2);
	margin-top: var(--adam-space-4);
}

.adam-stat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: var(--adam-space-4);
}

.adam-stat-card {
	display: flex;
	align-items: center;
	gap: var(--adam-space-4);
	padding: var(--adam-space-5);
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius-lg);
	box-shadow: var(--adam-shadow);
}

.adam-stat-card__icon {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: calc(var(--adam-icon-size-xl) + var(--adam-space-4));
	height: calc(var(--adam-icon-size-xl) + var(--adam-space-4));
	color: var(--adam-primary);
	background-color: var(--adam-primary-soft);
	border-radius: var(--adam-radius);
}

.adam-stat-card__content {
	display: grid;
	gap: var(--adam-space-1);
	min-width: 0;
}

.adam-stat-card__label,
.adam-stat-card__trend {
	color: var(--adam-text-muted);
	font-size: var(--adam-font-size-sm);
}

.adam-stat-card__value {
	color: var(--adam-text);
	font-size: var(--adam-font-size-xl);
	line-height: var(--adam-line-height-tight);
}

.adam-loading {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.adam-loading__spinner {
	box-sizing: border-box;
	width: var(--adam-icon-size);
	height: var(--adam-icon-size);
	border: 2px solid var(--adam-border);
	border-top-color: var(--adam-primary);
	border-radius: 50%;
	animation: adam-spin var(--adam-animation-spin) linear infinite;
}

.adam-loading--small .adam-loading__spinner {
	width: var(--adam-icon-size-sm);
	height: var(--adam-icon-size-sm);
}

.adam-loading--large .adam-loading__spinner {
	width: var(--adam-icon-size-xl);
	height: var(--adam-icon-size-xl);
}

.adam-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Icons inherit text colour; SVG authors should use currentColor. */
.adam-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: var(--adam-icon-size);
	height: var(--adam-icon-size);
	color: inherit;
	line-height: 1;
}

.adam-icon :where(svg) {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
	stroke: currentColor;
}

/* Native dialog supplies keyboard semantics and focus containment. */
.adam-modal,
.adam-confirmation {
	max-width: min(32rem, calc(100vw - var(--adam-space-6)));
	padding: 0;
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius-lg);
	box-shadow: var(--adam-shadow-lg);
}

.adam-modal[open] {
	animation: adam-modal-in var(--adam-transition-duration) var(--adam-transition-emphasized);
}

.adam-modal::backdrop {
	background-color: var(--adam-overlay);
}

.adam-modal__title {
	margin: 0;
	font-size: var(--adam-font-size-lg);
}

.adam-modal__footer {
	display: flex;
	justify-content: flex-end;
	gap: var(--adam-space-2);
}

@keyframes adam-spin {
	to { transform: rotate(360deg); }
}

@keyframes adam-modal-in {
	from { opacity: 0; transform: translateY(var(--adam-space-2)) scale(0.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes adam-dropdown-in {
	from { opacity: 0; transform: translateY(calc(var(--adam-space-1) * -1)); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 782px) {
	.adam-admin-page,
	.adam-admin-wrap {
		padding: var(--adam-space-5) var(--adam-space-3) var(--adam-space-6);
	}

	.adam-admin-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.adam-page-header,
	.adam-section-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.adam-page-actions,
	.adam-section-header__actions {
		width: 100%;
	}
}

@media (max-width: 480px) {
	.adam-toolbar,
	.adam-toolbar__group,
	.adam-page-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.adam-toolbar :where(.adam-input, .adam-select, .adam-button),
	.adam-page-actions .adam-button {
		width: 100%;
	}

	.adam-table-responsive {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

@media (prefers-reduced-motion: reduce) {
	.adam-ui *,
	.adam-admin-page *,
	.adam-admin-wrap *,
	.adam-modal,
	.adam-dropdown__menu {
		animation-duration: 1ms !important;
		transition-duration: 1ms !important;
	}
}

.adam-modal {
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border: var(--adam-border-width) solid var(--adam-border);
	border-radius: var(--adam-radius-lg);
	box-shadow: var(--adam-shadow-lg);
}

.adam-modal__header,
.adam-modal__footer {
	padding: var(--adam-space-4);
	background-color: var(--adam-surface-2);
	border-color: var(--adam-border);
}

.adam-modal__body {
	padding: var(--adam-space-4);
}

.adam-tabs {
	color: var(--adam-text);
}

.adam-tabs__list {
	display: flex;
	gap: var(--adam-space-2);
	border-bottom: var(--adam-border-width) solid var(--adam-border);
}

.adam-tabs__tab {
	padding: var(--adam-space-3) var(--adam-space-4);
	color: var(--adam-text-muted);
	background-color: var(--adam-surface-2);
	border-color: var(--adam-border);
}

.adam-tabs__tab:hover,
.adam-tabs__tab:focus-visible,
.adam-tabs__tab[aria-selected="true"],
.adam-tabs__tab.is-active {
	color: var(--adam-link);
	background-color: var(--adam-surface);
	border-color: var(--adam-primary);
}

.adam-tabs__panel {
	padding: var(--adam-space-4);
	color: var(--adam-text);
	background-color: var(--adam-surface);
}

.adam-card:not(.adam-digital-card-section) {
	color: var(--adam-text);
	background-color: color-mix(in srgb, var(--adam-surface) var(--adam-card-surface-opacity, 100%), transparent);
	padding: var(--adam-card-padding, var(--adam-space-5));
	border: var(--adam-card-border-width) solid var(--adam-card-border);
	border-radius: var(--adam-radius-lg);
	box-shadow: var(--adam-card-shadow);
}

:where(a.adam-card:not(.adam-digital-card-section), button.adam-card:not(.adam-digital-card-section), .adam-card--interactive):not(.adam-digital-card-section *):hover {
	background-color: var(--adam-card-hover-bg);
}

.adam-card--muted,
.adam-card__header,
.adam-card__footer {
	background-color: var(--adam-surface-2);
	border-color: var(--adam-border);
}

.adam-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--adam-control-height);
	padding: 0.5rem 1rem;
	color: var(--adam-button-primary-text-display, var(--adam-on-primary));
	background-color: color-mix(in srgb, var(--adam-primary) var(--adam-button-fill-opacity, 100%), transparent);
	border: var(--adam-button-border-width, var(--adam-border-width)) solid var(--adam-primary);
	border-radius: var(--adam-radius);
	box-shadow: var(--adam-button-shadow, none);
	font: inherit;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.adam-button:hover,
.adam-button:focus-visible {
	color: var(--adam-btn-primary-hover-text);
	background-color: var(--adam-btn-primary-hover-bg);
	border-color: var(--adam-btn-primary-hover-border);
}

.adam-button--secondary {
	color: var(--adam-button-secondary-text-display, var(--adam-on-secondary));
	background-color: color-mix(in srgb, var(--adam-secondary) var(--adam-button-fill-opacity, 100%), transparent);
	border-color: var(--adam-secondary);
}

.adam-button--secondary:hover,
.adam-button--secondary:focus-visible {
	color: var(--adam-btn-secondary-hover-text);
	background-color: var(--adam-btn-secondary-hover-bg);
	border-color: var(--adam-btn-secondary-hover-border);
}

.adam-button--danger {
	color: var(--adam-on-danger);
	background-color: var(--adam-danger);
	border-color: var(--adam-danger);
}

.adam-button--danger:hover,
.adam-button--danger:focus-visible {
	color: var(--adam-on-danger);
	background-color: var(--adam-danger-hover);
	border-color: var(--adam-danger-hover);
}

.adam-button--success {
	color: var(--adam-on-success);
	background-color: var(--adam-success);
	border-color: var(--adam-success);
}

.adam-button:focus-visible {
	outline-color: var(--adam-button-focus);
}

.adam-button:disabled,
.adam-button[aria-disabled="true"] {
	color: var(--adam-button-disabled-text);
	background-color: var(--adam-button-disabled-bg);
	border-color: var(--adam-button-disabled-bg);
}

.adam-input,
.adam-select,
.adam-textarea {
	width: 100%;
	min-height: var(--adam-control-height);
	padding: 0.5rem 0.75rem;
	color: var(--adam-text);
	background-color: color-mix(in srgb, var(--adam-input-bg) var(--adam-form-surface-opacity, 100%), transparent);
	border: var(--adam-form-border-width, var(--adam-border-width)) solid var(--adam-border);
	border-radius: var(--adam-radius);
	box-shadow: var(--adam-form-shadow, none);
	font: inherit;
}

.adam-input::placeholder,
.adam-textarea::placeholder {
	color: var(--adam-placeholder);
	opacity: 1;
}

.adam-input:focus,
.adam-select:focus,
.adam-textarea:focus {
	border-color: var(--adam-focus-ring);
	box-shadow: 0 0 0 1px var(--adam-focus-ring);
	outline: 2px solid var(--adam-focus-ring);
	outline-offset: 2px;
}

.adam-field__label {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--adam-text);
	font-weight: 600;
}

.adam-field__help {
	color: var(--adam-text-muted);
}

.adam-table {
	width: 100%;
	color: var(--adam-text);
	background-color: var(--adam-surface);
	border-collapse: collapse;
}

.adam-table :where(th, td) {
	padding: 0.625rem 0.75rem;
	border: var(--adam-border-width) solid var(--adam-border);
	text-align: start;
}

.adam-table :where(thead, tfoot) {
	background-color: var(--adam-surface-2);
}

.adam-table tbody tr:nth-child(even) {
	background-color: var(--adam-table-stripe);
}

.adam-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.125rem 0.5rem;
	color: var(--adam-on-secondary);
	background-color: var(--adam-secondary);
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.5;
}

.adam-badge--success {
	color: var(--adam-success);
	background-color: var(--adam-success-bg);
}

.adam-badge--warning {
	color: var(--adam-warning);
	background-color: var(--adam-warning-bg);
}

.adam-badge--danger {
	color: var(--adam-danger);
	background-color: var(--adam-danger-bg);
}

.adam-notice {
	padding: 0.75rem 1rem;
	color: var(--adam-text);
	background-color: var(--adam-info-bg);
	border-inline-start: 0.25rem solid var(--adam-info);
	border-radius: var(--adam-radius-sm);
}

.adam-notice--success {
	background-color: var(--adam-success-bg);
	border-color: var(--adam-success);
}

.adam-notice--warning {
	background-color: var(--adam-warning-bg);
	border-color: var(--adam-warning);
}

.adam-notice--danger {
	background-color: var(--adam-danger-bg);
	border-color: var(--adam-danger);
}
