:root {
	color-scheme: light;
	--font-body: 'Source Sans 3', 'Trebuchet MS', 'Lucida Grande', sans-serif;
	--font-heading: 'Barlow Condensed', 'Franklin Gothic Medium', 'Arial Narrow', sans-serif;
	--mpfi-teal-primary: #00827d;
	--mpfi-teal-accent: #31c4b5;
	--mpfi-teal-light: #edf8f7;
	--mpfi-teal-extra-light: #f3fbfa;
	--mpfi-red: #b22f00;
	--mpfi-red-light: #faeae7;
	--text-primary: #1f2430;
	--text-muted: #607a77;
	--focus-ring: 0 0 0 3px rgba(0, 130, 125, 0.25);
	--transition-fast: 0.15s ease;
	--transition-normal: 0.25s ease;
	--shadow-card: 0 6px 16px rgba(0, 130, 125, 0.06);
	--teal: var(--mpfi-teal-primary);
	--teal-accent: var(--mpfi-teal-accent);
	--teal-50: var(--mpfi-teal-light);
	--teal-25: #eef8f7;
	--red: var(--mpfi-red);
	--red-50: var(--mpfi-red-light);
	--text: #1a2632;
	--muted: #5a6a78;
	--border: rgba(0, 0, 0, 0.07);
	--teal-border-soft: rgba(0, 130, 125, 0.1);
	--teal-border-medium: rgba(0, 130, 125, 0.14);
	--teal-border-strong: rgba(0, 130, 125, 0.2);
	--teal-border-hover: rgba(0, 130, 125, 0.28);
	--teal-border-faint: rgba(0, 130, 125, 0.08);
	--red-border-soft: rgba(178, 47, 0, 0.18);
	--card-shadow: 0 1px 4px rgba(0, 0, 0, 0.04), 0 4px 16px rgba(0, 0, 0, 0.04);
	--panel-shadow: 0 8px 30px rgba(0, 0, 0, 0.06), 0 24px 80px rgba(0, 130, 125, 0.08);
	--card-shadow-hover: 0 4px 8px rgba(0, 130, 125, 0.06), 0 12px 32px rgba(0, 130, 125, 0.11);
	--mpfi-field-radius: 8px;
	--mpfi-field-padding: 8px 10px;
	--mpfi-field-min-height: 0;
	--mpfi-field-group-gap: 8px;
	--mpfi-label-gap: 6px;
	--mpfi-label-font-size: 13px;
	--mpfi-label-margin-bottom: 10px;
	--mpfi-helper-font-size: 11.5px;
	--mpfi-helper-color: var(--text-muted);
	--mpfi-helper-border: #b2dbd5;
	--mpfi-helper-background: transparent;
	--mpfi-helper-padding: 1px 0 1px 8px;
	--mpfi-helper-radius: 0;
	--mpfi-helper-margin: 4px 0 8px;
	--mpfi-helper-line-height: 1.5;
	--mpfi-empty-padding: 18px 20px;
	--mpfi-empty-radius: 18px;
	--mpfi-empty-border-style: solid;
	--mpfi-empty-border-color: rgba(0, 130, 125, 0.12);
	--mpfi-empty-background: var(--teal-50);
	--mpfi-empty-color: var(--muted, var(--text-muted));
	--mpfi-empty-align: left;
	--mpfi-empty-font-size: 0.96rem;
	--mpfi-empty-margin: 22px 0 0;
	--mpfi-empty-line-height: 1.6;
	--mpfi-notice-padding: 12px 14px;
	--mpfi-notice-radius: 14px;
	--mpfi-notice-border-color: rgba(0, 130, 125, 0.12);
	--mpfi-notice-background: var(--teal-50);
	--mpfi-notice-color: var(--muted, var(--text-muted));
	--mpfi-notice-line-height: 1.6;
	--mpfi-table-radius: 18px;
	--mpfi-table-border-color: var(--teal-border-soft);
	--mpfi-table-background: var(--surface-card, #ffffff);
	--mpfi-table-cell-padding: 14px 16px;
	--mpfi-table-cell-border: var(--teal-border-faint);
	--mpfi-table-header-background: var(--teal-50);
	--mpfi-table-header-color: var(--teal);
	--mpfi-table-header-letter-spacing: 0.08em;
	--mpfi-table-header-font-size: 0.8rem;
	--mpfi-table-shell-padding-top: 6px;
	--mpfi-table-shell-border-color: var(--border-divider, var(--teal-border-soft));
	--mpfi-callout-radius: 14px;
	--mpfi-callout-padding: 12px 14px;
	--mpfi-callout-margin: 8px 0 12px;
	--mpfi-callout-line-height: 1.6;
	--mpfi-callout-title-size: 1rem;
	--mpfi-callout-warning-background: var(--red-50);
	--mpfi-callout-warning-border: var(--red-border-soft);
	--mpfi-callout-warning-title: var(--red);
	--mpfi-callout-warning-body: var(--muted-strong, var(--text-primary));
	--mpfi-callout-info-background: #f8fbfc;
	--mpfi-callout-info-accent: #a8cdd4;
	--mpfi-callout-info-text: #29474f;
	--mpfi-callout-instruction-background: var(--surface-info, #eef8f5);
	--mpfi-callout-instruction-border: var(--surface-info-border, #c4e2dc);
	--mpfi-callout-instruction-accent: var(--surface-info-accent, #8bc4bb);
	--mpfi-callout-instruction-text: var(--text-teal-soft, var(--mpfi-teal-primary));
	--mpfi-surface-panel-radius: 28px;
	--mpfi-surface-panel-border: var(--teal-border-soft);
	--mpfi-surface-panel-background: var(--surface-panel, rgba(255, 255, 255, 0.92));
	--mpfi-surface-panel-shadow: var(--panel-shadow);
	--mpfi-surface-card-radius: 22px;
	--mpfi-surface-card-border: var(--teal-border-soft);
	--mpfi-surface-card-background: linear-gradient(180deg, var(--surface-card, #ffffff) 0%, var(--surface-card-tint, var(--mpfi-teal-extra-light)) 100%);
	--mpfi-surface-card-shadow: var(--card-shadow);
	--mpfi-surface-section-radius: 10px;
	--mpfi-surface-section-border: var(--border-softest, var(--teal-border-soft));
	--mpfi-surface-section-background: var(--surface-card-subtle, var(--surface-card, #ffffff));
	--mpfi-repeatable-entry-radius: 8px;
	--mpfi-repeatable-entry-border: var(--border-soft-alt, var(--teal-border-soft));
	--mpfi-repeatable-entry-background: var(--surface-card, #ffffff);
	--mpfi-repeatable-entry-header-background: var(--surface-card-muted, var(--mpfi-teal-extra-light));
	--mpfi-repeatable-entry-header-border: var(--border-divider-soft, var(--teal-border-faint));
	--mpfi-brand-header-gap: 14px;
	--mpfi-brand-header-padding: 4px 0 16px;
	--mpfi-brand-header-margin: 0 0 20px;
	--mpfi-brand-header-border: var(--border-form, var(--teal-border-soft));
	--mpfi-brand-logo-width: 240px;
	--mpfi-brand-meta-gap: 8px;
	--mpfi-panel-eyebrow-size: 0.8rem;
	--mpfi-panel-eyebrow-tracking: 0.14em;
	--mpfi-panel-eyebrow-color: var(--teal, var(--mpfi-teal-primary));
	--mpfi-panel-summary-color: var(--muted, var(--text-muted));
	--mpfi-banner-radius: 10px;
	--mpfi-banner-padding: 8px 12px;
	--mpfi-banner-font-size: 12px;
	--mpfi-banner-warning-background: rgba(255, 233, 106, 0.2);
	--mpfi-banner-warning-border: rgba(208, 194, 108, 0.85);
	--mpfi-banner-warning-color: #6f5a00;
	--mpfi-section-chrome-padding: 12px 16px;
	--mpfi-section-chrome-radius: 0;
	--mpfi-section-chrome-background: var(--mpfi-teal-primary);
	--mpfi-section-chrome-background-hover: var(--surface-header-hover, #017572);
	--mpfi-section-chrome-color: #ffffff;
	--mpfi-section-chrome-badge-background: rgba(255, 255, 255, 0.18);
	--mpfi-section-chrome-badge-border: rgba(255, 255, 255, 0.35);
	--mpfi-topbar-height: 118px;
	--mpfi-topbar-background: var(--surface-topbar, rgba(255, 255, 255, 0.85));
	--mpfi-topbar-border: var(--border, rgba(0, 0, 0, 0.07));
	--mpfi-topbar-blur: 14px;
	--mpfi-topbar-max-width: 1020px;
	--mpfi-topbar-padding-inline: 28px;
	--mpfi-topbar-logo-width: 260px;
	--mpfi-topbar-session-gap: 18px;
	--mpfi-session-name-weight: 700;
	--mpfi-session-meta-size: 0.9rem;
	--mpfi-session-meta-color: var(--muted, var(--text-muted));
	--mpfi-data-list-gap: 14px;
	--mpfi-data-list-title-color: var(--text-section, var(--text-primary));
	--mpfi-data-list-title-size: 24px;
	--mpfi-data-list-title-tracking: 0.02em;
	--mpfi-data-list-status-size: 14px;
	--mpfi-data-list-status-color: var(--text-teal-soft, var(--mpfi-teal-primary));
	--mpfi-data-list-status-error-color: var(--mpfi-red);
	--mpfi-data-list-table-gap: 8px;
}

input,
select,
textarea,
button {
	font: inherit;
}

label {
	display: flex;
	flex-direction: column;
	gap: var(--mpfi-label-gap);
	font-size: var(--mpfi-label-font-size);
	margin-bottom: var(--mpfi-label-margin-bottom);
}

.mpfi-toolbar,
.toolbar-row,
.editor-toolbar {
	display: flex;
	align-items: center;
	gap: 12px;
}

.mpfi-toolbar--split,
.editor-toolbar {
	justify-content: space-between;
}

.mpfi-toolbar--surface,
.editor-toolbar--surface {
	margin-bottom: 18px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--border-divider, var(--teal-border-soft));
}

.toolbar-row--surface {
	margin-bottom: 14px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--border-divider, var(--teal-border-soft));
}

.mpfi-topbar,
.topbar {
	height: var(--mpfi-topbar-height);
	background: var(--mpfi-topbar-background);
	-webkit-backdrop-filter: blur(var(--mpfi-topbar-blur));
	backdrop-filter: blur(var(--mpfi-topbar-blur));
	border-bottom: 1px solid var(--mpfi-topbar-border);
	position: sticky;
	top: 0;
	z-index: 100;
}

.mpfi-topbar__inner,
.topbar__inner {
	max-width: var(--mpfi-topbar-max-width);
	height: 100%;
	margin: 0 auto;
	padding: 0 var(--mpfi-topbar-padding-inline);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.mpfi-topbar__logo,
.topbar__logo {
	width: var(--mpfi-topbar-logo-width);
	max-width: 42vw;
	height: auto;
	display: block;
}

.mpfi-session-shell,
.topbar__session {
	display: flex;
	align-items: center;
	gap: var(--mpfi-topbar-session-gap);
}

.mpfi-session-shell__copy,
.topbar__session-copy {
	text-align: right;
}

.mpfi-session-shell__name,
.mpfi-session-shell__meta,
.topbar__session-name,
.topbar__session-email {
	margin: 0;
}

.mpfi-session-shell__name,
.topbar__session-name {
	font-weight: var(--mpfi-session-name-weight);
}

.mpfi-session-shell__meta,
.topbar__session-email {
	font-size: var(--mpfi-session-meta-size);
	color: var(--mpfi-session-meta-color);
}

.mpfi-data-list {
	display: grid;
	gap: var(--mpfi-data-list-gap);
}

.mpfi-data-list__title,
.page-section-title {
	margin: 0;
	color: var(--mpfi-data-list-title-color);
	font-size: var(--mpfi-data-list-title-size);
	font-family: var(--font-heading);
	font-weight: 700;
	letter-spacing: var(--mpfi-data-list-title-tracking);
}

.mpfi-data-list__actions {
	margin: 0;
}

.mpfi-data-list__status,
.status {
	min-height: 20px;
	margin: 0;
	font-size: var(--mpfi-data-list-status-size);
	color: var(--mpfi-data-list-status-color);
}

.mpfi-data-list__status.status-error,
.status-error {
	color: var(--mpfi-data-list-status-error-color);
}

.mpfi-data-list__table {
	margin-top: var(--mpfi-data-list-table-gap);
}

.mpfi-brand-header,
.app-brand-header {
	display: flex;
	align-items: flex-end;
	gap: var(--mpfi-brand-header-gap);
	padding: var(--mpfi-brand-header-padding);
	margin: var(--mpfi-brand-header-margin);
	border-bottom: 1px solid var(--mpfi-brand-header-border);
}

.mpfi-brand-header__logo,
.app-brand-logo {
	width: var(--mpfi-brand-logo-width);
	max-width: 42%;
	height: auto;
}

.mpfi-brand-header__copy,
.app-brand-copy {
	min-width: 0;
}

.mpfi-brand-header__title,
.app-brand-copy h1,
.mpfi-panel-header__title,
.login-panel__title,
.portal-hero__title,
.apps-section__title,
.app-card__title {
	margin: 0;
	font-family: var(--font-heading);
	line-height: 1;
	letter-spacing: 0.02em;
}

.mpfi-brand-header__meta,
.app-brand-meta {
	margin: 8px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--mpfi-brand-meta-gap);
	align-items: center;
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.mpfi-brand-header__meta-separator,
.app-brand-meta-separator {
	color: var(--mpfi-teal-accent);
}

.mpfi-panel-header__eyebrow,
.login-panel__eyebrow,
.portal-hero__eyebrow,
.app-card__eyebrow {
	margin: 0;
	font-size: var(--mpfi-panel-eyebrow-size);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--mpfi-panel-eyebrow-tracking);
	color: var(--mpfi-panel-eyebrow-color);
}

.mpfi-panel-header__summary,
.login-panel__summary,
.portal-hero__summary,
.apps-section__summary,
.app-card__summary,
.apps-empty {
	margin: 0;
	color: var(--mpfi-panel-summary-color);
}

.mpfi-banner,
.dev-testing-banner {
	width: 100%;
	border-radius: var(--mpfi-banner-radius);
	padding: var(--mpfi-banner-padding);
	font-size: var(--mpfi-banner-font-size);
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	border: 1px solid transparent;
}

.mpfi-banner--warning,
.dev-testing-banner {
	background: var(--mpfi-banner-warning-background);
	border-color: var(--mpfi-banner-warning-border);
	color: var(--mpfi-banner-warning-color);
}

.mpfi-section-chrome,
.section-header {
	background: var(--mpfi-section-chrome-background);
	color: var(--mpfi-section-chrome-color);
	padding: var(--mpfi-section-chrome-padding);
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	transition: background var(--transition-fast);
	border-radius: var(--mpfi-section-chrome-radius);
}

.mpfi-section-chrome:hover,
.section-header:hover {
	background: var(--mpfi-section-chrome-background-hover);
}

.mpfi-section-chrome__left,
.section-header-left {
	display: flex;
	align-items: center;
	gap: 10px;
}

.mpfi-section-chrome__title,
.section-header h2 {
	margin: 0;
	font-size: 16px;
	line-height: 1.1;
}

.mpfi-section-chrome__badge,
.section-badge {
	background: var(--mpfi-section-chrome-badge-background);
	color: #ffffff;
	font-size: 11px;
	font-weight: 600;
	padding: 2px 9px;
	border-radius: 999px;
	border: 1px solid var(--mpfi-section-chrome-badge-border);
	letter-spacing: 0.02em;
}

.mpfi-section-chrome__chevron,
.section-chevron {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-right: 2.5px solid rgba(255, 255, 255, 0.85);
	border-bottom: 2.5px solid rgba(255, 255, 255, 0.85);
	transform: rotate(45deg);
	transition: transform 0.3s ease;
	margin-bottom: 2px;
}

.mpfi-section-chrome__chevron[data-open='true'],
.section-chevron[data-open='true'] {
	transform: rotate(-135deg);
	margin-bottom: -2px;
}

.mpfi-button,
.secondary-button,
.danger-button,
.save-button {
	border-radius: 8px;
	padding: 9px 12px;
	font-weight: 600;
	transition: filter var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);
}

.mpfi-button:focus-visible,
.secondary-button:focus-visible,
.danger-button:focus-visible,
.save-button:focus-visible,
.mpfi-pill-button:focus-visible,
.mpfi-large-action:focus-visible,
.mpfi-session-shell__action:focus-visible,
.topbar__admin-link:focus-visible,
.topbar__signout:focus-visible,
.app-card__link:focus-visible,
.species-section-link:focus-visible {
	outline: none;
	box-shadow: var(--focus-ring);
}

.mpfi-button--secondary,
.secondary-button {
	background: var(--surface-card, #ffffff);
	color: var(--text-teal-mid, var(--mpfi-teal-primary));
	border: 1px solid var(--mpfi-teal-primary);
}

.mpfi-button--secondary:hover:not(:disabled),
.secondary-button:hover:not(:disabled) {
	background: var(--mpfi-teal-extra-light);
	filter: none;
}

.mpfi-button--danger,
.danger-button {
	background: var(--mpfi-red);
	color: #ffffff;
}

.mpfi-button--danger:hover:not(:disabled),
.danger-button:hover:not(:disabled) {
	filter: brightness(1.15);
}

.mpfi-button--primary,
.save-button {
	background: var(--mpfi-teal-primary);
	color: #ffffff;
}

.mpfi-status-chip,
.status-chip,
.mpfi-row-status,
.app-card__status {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	border: 1px solid transparent;
}

.mpfi-status-chip--draft,
.status-chip--draft,
.mpfi-row-status--draft {
	background: var(--mpfi-teal-extra-light);
	color: var(--mpfi-teal-primary);
	border-color: var(--mpfi-teal-accent);
}

.mpfi-status-chip--submitted,
.status-chip--submitted,
.mpfi-row-status--submitted,
.mpfi-row-status--available,
.app-card__status--available,
.mpfi-row-status--active {
	background: var(--mpfi-teal-light);
	color: var(--mpfi-teal-primary);
	border-color: var(--mpfi-teal-primary);
}

.mpfi-status-chip--approved,
.status-chip--approved,
.mpfi-row-status--approved {
	background: var(--mpfi-teal-primary);
	color: #ffffff;
	border-color: var(--mpfi-teal-primary);
}

.mpfi-status-chip--modifications,
.status-chip--modifications,
.mpfi-row-status--modifications {
	background: var(--mpfi-red-light);
	color: var(--mpfi-red);
	border-color: var(--mpfi-red);
}

.mpfi-row-status--planned,
.app-card__status--planned,
.mpfi-row-status--inactive {
	background: rgba(96, 122, 119, 0.1);
	color: var(--text-muted);
	border-color: rgba(96, 122, 119, 0.22);
}

.mpfi-empty-state,
.apps-empty,
.empty-state,
.table-empty-state {
	text-align: var(--mpfi-empty-align);
	color: var(--mpfi-empty-color);
	padding: var(--mpfi-empty-padding);
	font-size: var(--mpfi-empty-font-size);
	line-height: var(--mpfi-empty-line-height);
	border: 1px var(--mpfi-empty-border-style) var(--mpfi-empty-border-color);
	border-radius: var(--mpfi-empty-radius);
	background: var(--mpfi-empty-background);
	margin: var(--mpfi-empty-margin);
}

.mpfi-empty-state--compact,
.empty-state--sm {
	--mpfi-empty-padding: 10px;
	--mpfi-empty-margin: 0;
}

.mpfi-empty-state__text,
.table-empty-state-text {
	font-style: italic;
}

.mpfi-notice,
.admin-section__notice,
.mpfi-feedback,
.admin-section__feedback {
	padding: var(--mpfi-notice-padding);
	border-radius: var(--mpfi-notice-radius);
	background: var(--mpfi-notice-background);
	border: 1px solid var(--mpfi-notice-border-color);
	color: var(--mpfi-notice-color);
	line-height: var(--mpfi-notice-line-height);
	margin-top: 14px;
}

.mpfi-notice,
.admin-section__notice {
	--mpfi-notice-background: transparent;
	--mpfi-notice-border-color: transparent;
	padding: 0;
}

.mpfi-feedback[data-tone='error'],
.admin-section__feedback[data-tone='error'] {
	color: var(--red, var(--mpfi-red));
	background: var(--red-50, var(--mpfi-red-light));
	border-color: var(--red-border-soft, rgba(178, 47, 0, 0.18));
}

.mpfi-feedback[data-tone='success'],
.admin-section__feedback[data-tone='success'] {
	color: var(--teal, var(--mpfi-teal-primary));
}

.mpfi-callout,
.login-panel__alert,
.instruction-text,
.assurance-text {
	margin: var(--mpfi-callout-margin);
	padding: var(--mpfi-callout-padding);
	border-radius: var(--mpfi-callout-radius);
	line-height: var(--mpfi-callout-line-height);
}

.mpfi-callout__title,
.login-panel__alert-title,
.mpfi-callout__body,
.login-panel__alert-message {
	margin: 0;
}

.mpfi-callout__title,
.login-panel__alert-title {
	font-weight: 700;
	font-size: var(--mpfi-callout-title-size);
}

.mpfi-callout__body,
.login-panel__alert-message {
	margin-top: 6px;
}

.mpfi-callout--warning,
.login-panel__alert {
	background: var(--mpfi-callout-warning-background);
	border: 1px solid var(--mpfi-callout-warning-border);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.mpfi-callout--warning .mpfi-callout__title,
.login-panel__alert-title {
	color: var(--mpfi-callout-warning-title);
}

.mpfi-callout--warning .mpfi-callout__body,
.login-panel__alert-message {
	color: var(--mpfi-callout-warning-body);
}

.mpfi-callout--instruction,
.instruction-text {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	background: var(--mpfi-callout-instruction-background);
	border: 1px solid var(--mpfi-callout-instruction-border);
	border-left: 4px solid var(--mpfi-callout-instruction-accent);
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--mpfi-callout-instruction-text);
}

.mpfi-callout--instruction::before,
.instruction-text::before {
	content: '\2139';
	font-size: 12px;
	font-weight: 700;
	color: var(--mpfi-teal-primary);
	flex-shrink: 0;
	line-height: 1.5;
	opacity: 0.9;
}

.mpfi-callout--info,
.assurance-text {
	background: var(--mpfi-callout-info-background);
	border-left: 3px solid var(--mpfi-callout-info-accent);
	border-radius: 0 6px 6px 0;
	padding: 10px 14px;
	font-size: 12px;
	line-height: 1.6;
	color: var(--mpfi-callout-info-text);
}

.mpfi-surface-panel,
.login-panel,
.apps-section,
.admin-section {
	border-radius: var(--mpfi-surface-panel-radius);
	background: var(--mpfi-surface-panel-background);
	border: 1px solid var(--mpfi-surface-panel-border);
	box-shadow: var(--mpfi-surface-panel-shadow);
}

.mpfi-surface-card,
.app-card {
	border-radius: var(--mpfi-surface-card-radius);
	background: var(--mpfi-surface-card-background);
	border: 1px solid var(--mpfi-surface-card-border);
	box-shadow: var(--mpfi-surface-card-shadow);
}

.mpfi-surface-section,
.form-section,
.workflow-summary--surface,
.strain-table,
.compact-row {
	border: 1px solid var(--mpfi-surface-section-border);
	border-radius: var(--mpfi-surface-section-radius);
	background: var(--mpfi-surface-section-background);
}

.mpfi-repeatable-entry,
.entry-card {
	border: 1px solid var(--mpfi-repeatable-entry-border);
	border-radius: var(--mpfi-repeatable-entry-radius);
	background: var(--mpfi-repeatable-entry-background);
	overflow: hidden;
	transition: box-shadow var(--transition-normal), border-color var(--transition-fast);
}

.mpfi-repeatable-entry:hover,
.entry-card:hover {
	border-color: var(--mpfi-teal-accent);
	box-shadow: 0 4px 16px rgba(0, 130, 125, 0.10);
}

.mpfi-repeatable-entry__header,
.entry-card-header {
	background: var(--mpfi-repeatable-entry-header-background);
	border-bottom: 1px solid var(--mpfi-repeatable-entry-header-border);
}

.mpfi-table-shell,
.table-shell,
.permissions-table-wrap {
	padding-top: var(--mpfi-table-shell-padding-top);
	border-top: 1px solid var(--mpfi-table-shell-border-color);
}

.mpfi-data-table,
.permissions-table {
	width: 100%;
	border-collapse: collapse;
	border-radius: var(--mpfi-table-radius);
	overflow: hidden;
	background: var(--mpfi-table-background);
	border: 1px solid var(--mpfi-table-border-color);
}

.mpfi-data-table th,
.mpfi-data-table td,
.permissions-table th,
.permissions-table td {
	text-align: left;
	padding: var(--mpfi-table-cell-padding);
	border-bottom: 1px solid var(--mpfi-table-cell-border);
	vertical-align: top;
}

.mpfi-data-table th,
.permissions-table th {
	background: var(--mpfi-table-header-background);
	font-size: var(--mpfi-table-header-font-size);
	text-transform: uppercase;
	letter-spacing: var(--mpfi-table-header-letter-spacing);
	color: var(--mpfi-table-header-color);
}

.mpfi-pill-button,
.mpfi-session-shell__action,
.topbar__admin-link,
.topbar__signout,
.app-card__link {
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid var(--teal-border-medium);
	border-radius: 999px;
	background: var(--surface-card, #ffffff);
	color: var(--teal);
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.mpfi-pill-button:hover,
.mpfi-session-shell__action:hover,
.topbar__admin-link:hover,
.topbar__signout:hover,
.app-card__link:hover {
	transform: translateY(-1px);
	border-color: var(--teal-border-hover);
	box-shadow: var(--card-shadow-hover);
}

.mpfi-field-group,
.mpfi-field-stack {
	display: grid;
	gap: var(--mpfi-field-group-gap);
}

.mpfi-field-label {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--teal);
}

.mpfi-helper-text,
.note-text {
	border-left: 2px solid var(--mpfi-helper-border);
	padding: var(--mpfi-helper-padding);
	font-size: var(--mpfi-helper-font-size);
	font-style: italic;
	line-height: var(--mpfi-helper-line-height);
	color: var(--mpfi-helper-color);
	background: var(--mpfi-helper-background);
	border-radius: var(--mpfi-helper-radius);
	margin: var(--mpfi-helper-margin);
	display: block;
}

.mpfi-field-note,
.field-note {
	display: block;
	font-size: 11px;
	font-style: italic;
	line-height: 1.4;
	color: #607a77;
	background: #f3faf9;
	border: 1px solid var(--border-soft, var(--teal-border-medium));
	border-top: none;
	border-radius: 0 0 8px 8px;
	padding: 5px 10px;
	margin-top: -7px;
}

.mpfi-large-action {
	width: 100%;
	padding: 18px 20px;
	border-radius: 18px;
	border: 1px solid var(--teal-border-medium);
	background: linear-gradient(180deg, var(--surface-card, #ffffff) 0%, var(--surface-card-tint, var(--mpfi-teal-extra-light)) 100%);
	color: var(--text, var(--text-primary));
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	text-align: left;
	cursor: pointer;
	transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.mpfi-large-action:hover:not(:disabled) {
	transform: translateY(-1px);
	border-color: var(--teal-border-hover);
	box-shadow: var(--card-shadow-hover);
}

.mpfi-large-action:focus-visible {
	outline: none;
	box-shadow: var(--focus-ring);
}

.mpfi-large-action:disabled {
	cursor: not-allowed;
	opacity: 0.7;
}

.mpfi-large-action--secondary {
	border-color: rgba(0, 0, 0, 0.08);
}

.mpfi-large-action__label {
	font-size: 1rem;
	font-weight: 700;
}

.mpfi-large-action__meta {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--teal);
}

.mpfi-field-control,
input:not([type='checkbox']):not([type='radio']),
select,
textarea {
	min-height: var(--mpfi-field-min-height);
	padding: var(--mpfi-field-padding);
	border-radius: var(--mpfi-field-radius);
	border: 1px solid var(--mpfi-field-border-color, var(--border-soft, var(--teal-border-medium)));
	background: var(--mpfi-field-background, var(--surface-card, #ffffff));
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.mpfi-field-control:focus,
input:not([type='checkbox']):not([type='radio']):focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: var(--mpfi-field-focus-color, var(--mpfi-teal-primary));
	box-shadow: var(--focus-ring);
}
