/* PTN treatment for the Frappe Learning application sidebar. The marker is
   attached by lms_batch_management.js so these overrides cannot leak into
   unrelated navigation rendered by the LMS SPA. */
[data-portal-lms-sidebar] {
	--portal-lms-accent: #008fc4;
	--portal-lms-accent-strong: #007ba8;
	--portal-lms-sidebar-bg: var(--surface-sidebar, #f8fafc);
	--portal-lms-card-bg: var(--surface-base, #fff);
	--portal-lms-border: var(--outline-gray-2, #e2e8f0);
	--portal-lms-text: var(--ink-gray-8, #334155);
	--portal-lms-muted: var(--ink-gray-6, #64748b);
	--portal-lms-section-bg: var(--sidebar-section-bg, #a7bc4d);
	--portal-lms-section-border: var(--sidebar-section-border, #94a73e);
	--portal-lms-section-hover: var(--sidebar-section-hover, #96a941);
	--portal-lms-section-text: var(--sidebar-section-text, #fff);
	width: 15.75rem !important;
	border-color: var(--portal-lms-border) !important;
	background: var(--portal-lms-sidebar-bg) !important;
	box-shadow: 0.125rem 0 0.625rem rgb(15 23 42 / 4%);
	color: var(--portal-lms-text);
	transition: width 220ms cubic-bezier(0.16, 1, 0.3, 1), background-color 150ms ease !important;
}

[data-portal-lms-sidebar].w-14 {
	width: 3.625rem !important;
}

[data-portal-lms-sidebar] > div:first-child {
	padding-block: 0.125rem 0.5rem;
	scrollbar-color: transparent transparent;
	scrollbar-width: thin;
}

[data-portal-lms-sidebar] > div:first-child:hover {
	scrollbar-color: rgb(100 116 139 / 25%) transparent;
}

[data-portal-lms-sidebar] > div:first-child::-webkit-scrollbar {
	width: 0.25rem;
}

[data-portal-lms-sidebar] > div:first-child::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: transparent;
}

[data-portal-lms-sidebar] > div:first-child:hover::-webkit-scrollbar-thumb {
	background: rgb(100 116 139 / 25%);
}

/* LMS workspace/user switcher */
[data-portal-lms-sidebar] > div:first-child > div:first-child {
	padding: 0.625rem !important;
}

[data-portal-lms-sidebar] > div:first-child > div:first-child button {
	width: 100% !important;
	height: 2.875rem !important;
	padding-inline: 0.5rem !important;
	border: 1px solid transparent;
	border-radius: 0.5625rem !important;
	background: transparent;
	color: var(--portal-lms-text);
	transition: background-color 150ms ease, border-color 150ms ease, transform 100ms ease !important;
}

[data-portal-lms-sidebar] > div:first-child > div:first-child button:hover {
	border-color: var(--portal-lms-border);
	background: var(--surface-gray-2, #f1f5f9) !important;
}

[data-portal-lms-sidebar] > div:first-child > div:first-child button:active {
	transform: scale(0.985);
}

[data-portal-lms-sidebar] > div:first-child > div:first-child button:focus-visible,
[data-portal-lms-sidebar] [data-portal-lms-group-toggle]:focus-visible,
[data-portal-lms-sidebar] [data-portal-lms-nav] > div > button:focus-visible {
	outline: 2px solid var(--portal-lms-accent) !important;
	outline-offset: 2px;
	box-shadow: none !important;
}

[data-portal-lms-section] {
	margin: 0.5rem 0.625rem 0 !important;
}

[data-portal-lms-section-label] {
	display: flex;
	width: 100%;
	min-height: 1.875rem;
	height: 1.875rem;
	margin: 0 !important;
	padding: 0 0.625rem !important;
	align-items: center;
	justify-content: space-between;
	border: 1px solid var(--portal-lms-section-border);
	border-radius: 0.4375rem;
	background: var(--portal-lms-section-bg);
	box-shadow: 0 1px 3px rgb(35 45 8 / 14%), 0 1px 2px rgb(15 23 42 / 4%);
	color: var(--portal-lms-section-text) !important;
	cursor: pointer;
	font-size: 0.6875rem !important;
	font-weight: 750 !important;
	letter-spacing: 0.07em;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

[data-portal-lms-group-toggle]:hover {
	border-color: var(--portal-lms-section-border);
	background: var(--portal-lms-section-hover);
	transform: translateY(-0.5px);
}

.portal-lms-sidebar__group-heading {
	display: inline-flex;
	min-width: 0;
	align-items: center;
	gap: 0.375rem;
}

.portal-lms-sidebar__group-icon {
	display: inline-flex;
	width: 1.125rem;
	height: 1.125rem;
	flex: 0 0 1.125rem;
	align-items: center;
	justify-content: center;
	color: currentcolor;
}

.portal-lms-sidebar__group-icon::before {
	width: 0.90625rem;
	height: 0.90625rem;
}

.portal-lms-sidebar__group-label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.portal-lms-sidebar__group-chevron {
	width: 0.4rem;
	height: 0.4rem;
	margin-inline-end: 0.25rem;
	flex: 0 0 auto;
	border-right: 1.5px solid currentcolor;
	border-bottom: 1.5px solid currentcolor;
	transform: rotate(45deg) translateY(-0.0625rem);
	transition: transform 150ms ease;
}

[data-portal-lms-group-toggle][aria-expanded="false"] .portal-lms-sidebar__group-chevron {
	transform: rotate(-45deg) translateX(-0.0625rem);
}

[data-portal-lms-nav] {
	display: flex;
	flex-direction: column;
	gap: 0.1875rem;
}

[data-portal-lms-group-nav] {
	margin: 0.1875rem 0 0.125rem 0.25rem;
	padding-left: 0.375rem;
	border-left: 2px solid rgb(167 188 77 / 28%);
}

[data-portal-lms-nav][hidden] {
	display: none !important;
}

[data-portal-lms-nav] > div > button {
	position: relative;
	min-height: 1.875rem !important;
	height: 1.875rem !important;
	border: 1px solid var(--portal-lms-border);
	border-radius: 0.4375rem !important;
	background: var(--portal-lms-card-bg) !important;
	box-shadow: 0 1px 2px rgb(15 23 42 / 3%);
	color: var(--portal-lms-text) !important;
	transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease,
		transform 150ms ease !important;
}

[data-portal-lms-nav] > div > button:hover {
	border-color: rgb(0 143 196 / 45%);
	background: var(--portal-lms-card-bg) !important;
	box-shadow: 0 2px 6px rgb(0 143 196 / 8%);
	transform: translateX(2px);
}

[data-portal-lms-nav] > div > button.bg-surface-elevation-3 {
	border: 1.5px solid rgb(0 143 196 / 55%);
	background: var(--portal-lms-card-bg) !important;
	box-shadow: 0 1px 5px rgb(0 143 196 / 14%);
	color: var(--portal-lms-accent-strong) !important;
	font-weight: 600;
}

[data-portal-lms-nav] > div > button.bg-surface-elevation-3::before {
	position: absolute;
	top: 0.1875rem;
	bottom: 0.1875rem;
	left: 0;
	width: 0.21875rem;
	border-radius: 0.1875rem;
	background: var(--portal-lms-accent);
	content: "";
}

[data-portal-lms-nav] > div > button > div {
	padding: 0 0.625rem !important;
	gap: 0.5rem;
}

[data-portal-lms-nav] > div > button span.truncate {
	margin-inline-start: 0 !important;
	font-size: 0.8125rem !important;
	font-weight: 550;
	line-height: 1.25;
}

[data-portal-lms-nav] > div > button svg {
	width: 0.9375rem !important;
	height: 0.9375rem !important;
	color: var(--portal-lms-muted) !important;
	stroke-width: 1.8;
}

[data-portal-lms-nav] > div > button:hover svg,
[data-portal-lms-nav] > div > button.bg-surface-elevation-3 svg {
	color: var(--portal-lms-accent) !important;
}

/* Footer controls retain the LMS behavior but share the Desk divider rhythm. */
[data-portal-lms-sidebar] > div:nth-of-type(2) {
	margin: 0 !important;
	padding: 0.5rem 0.75rem 0.75rem;
	border-top: 1px solid var(--portal-lms-border);
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-section] {
	width: 100%;
	margin: 0.25rem 0 0.375rem !important;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-section-label] {
	display: none !important;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav] {
	margin-inline-start: 0;
	padding-inline-start: 0;
	border-inline-start: 0;
	align-items: center;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav][hidden] {
	display: flex !important;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav] > div {
	width: 100%;
	display: flex;
	justify-content: center;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav] > div > button {
	width: 2.25rem !important;
	min-width: 2.25rem !important;
	height: 1.875rem !important;
	padding: 0 !important;
	justify-content: center;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav] > div > button > div {
	padding: 0 !important;
	justify-content: center;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav] > div > button.bg-surface-elevation-3 {
	border: 0;
	background: var(--portal-lms-accent) !important;
	box-shadow: 0 2px 6px rgb(0 143 196 / 30%);
}

[data-portal-lms-sidebar].w-14
	[data-portal-lms-nav]
	> div
	> button.bg-surface-elevation-3::before {
	display: none;
}

[data-portal-lms-sidebar].w-14 [data-portal-lms-nav] > div > button.bg-surface-elevation-3 svg {
	color: #fff !important;
}

[data-theme="dark"] [data-portal-lms-sidebar] {
	--portal-lms-sidebar-bg: var(--surface-sidebar, #0b0f19);
	--portal-lms-card-bg: var(--surface-elevation-1, #111827);
	--portal-lms-border: var(--outline-gray-2, #334155);
	--portal-lms-text: var(--ink-gray-8, #cbd5e1);
	--portal-lms-muted: var(--ink-gray-6, #94a3b8);
	--portal-lms-section-bg: var(--sidebar-section-bg, #8ea33c);
	--portal-lms-section-border: var(--sidebar-section-border, #a1b745);
	--portal-lms-section-hover: var(--sidebar-section-hover, #9bb143);
}

[data-theme="dark"] [data-portal-lms-section-label] {
	border-color: var(--portal-lms-section-border);
	background: var(--portal-lms-section-bg);
	color: var(--portal-lms-section-text) !important;
}

[data-theme="dark"] [data-portal-lms-group-nav] {
	border-left-color: rgb(167 188 77 / 22%);
}

@media (max-width: 768px) {
	[data-portal-lms-sidebar]:not(.w-14) {
		width: min(15.75rem, 85vw) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	[data-portal-lms-sidebar],
	[data-portal-lms-sidebar] * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

[role="tabpanel"]:not([data-state="active"]) [data-portal-batch-unified-employees] {
	display: none !important;
}

[data-portal-batch-dashboard-grid] {
	grid-template-columns: minmax(0, 1fr) !important;
}

[data-portal-batch-summary-column] {
	display: contents;
}

[data-portal-batch-summary-column] > :first-child:not(:last-child) {
	order: 1 !important;
}

[data-portal-batch-employees-host] {
	order: 2 !important;
}

[data-portal-batch-summary-column] > :last-child {
	order: 3 !important;
}

.portal-batch-manager__notifications {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 10000;
	display: grid;
	width: min(24rem, calc(100vw - 2rem));
	gap: 0.5rem;
	pointer-events: none;
}

.portal-batch-manager__notification {
	position: relative;
	display: flex;
	min-height: 3rem;
	align-items: flex-start;
	gap: 0.625rem;
	padding: 0.75rem 2.5rem 0.75rem 0.875rem;
	border: 1px solid var(--outline-gray-2);
	border-left-width: 3px;
	border-radius: 0.5rem;
	background: var(--surface-elevation-2, var(--surface-base));
	box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 14%);
	color: var(--ink-gray-8);
	font-size: 0.875rem;
	line-height: 1.25rem;
	pointer-events: auto;
}

.portal-batch-manager__notification::before {
	width: 0.5rem;
	height: 0.5rem;
	margin-top: 0.375rem;
	border-radius: 999px;
	background: var(--yellow-500, #e2a336);
	content: "";
	flex: 0 0 auto;
}

.portal-batch-manager__notification--warning {
	border-left-color: var(--yellow-500, #e2a336);
}

.portal-batch-manager__notification-close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	display: inline-flex;
	width: 1.75rem;
	height: 1.75rem;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 0.375rem;
	background: transparent;
	color: var(--ink-gray-6);
	cursor: pointer;
}

.portal-batch-manager__notification-close:hover,
.portal-batch-manager__notification-close:focus-visible {
	background: var(--surface-gray-2);
	color: var(--ink-gray-8);
	outline: none;
}

.portal-batch-manager__notification-close > .lucide-x {
	width: 0.875rem;
	height: 0.875rem;
}

.portal-batch-manager {
	width: 100%;
	margin: 0;
	color: var(--ink-gray-9);
}

.portal-batch-manager__shell {
	display: grid;
	gap: 0.75rem;
}

.portal-batch-manager__dashboard-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.portal-batch-manager__dashboard-title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5rem;
}

.portal-batch-manager__dashboard-actions {
	display: flex;
	min-width: 0;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem;
}

.portal-batch-manager__dashboard-search {
	min-width: 10rem;
	flex: 1 1 20rem;
	width: min(20rem, 40vw);
}

.portal-batch-manager__status-filter {
	position: relative;
	flex: 0 1 11rem;
}

.portal-batch-manager__status-filter-trigger {
	display: flex;
	min-width: 9.5rem;
	min-height: 2rem;
	align-items: center;
	justify-content: space-between;
	gap: 0.375rem;
	padding: 0.25rem 0.625rem;
	border: 1px solid var(--outline-gray-2);
	border-radius: 0.375rem;
	background: var(--control-bg, var(--surface-gray-2));
	color: var(--ink-gray-8);
	font: inherit;
	font-size: 0.875rem;
	cursor: pointer;
}

.portal-batch-manager__dashboard-actions .portal-batch-manager__control,
.portal-batch-manager__status-filter-trigger {
	height: 2rem;
	border-color: transparent;
	border-radius: var(--border-radius-sm, 0.5rem);
	background: var(--control-bg, var(--surface-gray-2));
	font-size: 0.875rem;
}

.portal-batch-manager__dashboard-actions .portal-batch-manager__control:hover,
.portal-batch-manager__status-filter-trigger:hover {
	border-color: var(--outline-gray-2);
	background: var(--surface-gray-3);
}

.portal-batch-manager__dashboard-actions .portal-batch-manager__control:focus,
.portal-batch-manager__dashboard-actions .portal-batch-manager__control:focus-visible,
.portal-batch-manager__status-filter-trigger:focus-visible {
	border-color: var(--outline-gray-4);
	outline: none;
	box-shadow: 0 0 0 2px var(--outline-gray-3);
}

.portal-batch-manager__status-filter-trigger > .lucide-chevron-down {
	width: 1rem;
	height: 1rem;
	flex: 0 0 auto;
	color: var(--ink-gray-5);
}

.portal-batch-manager__status-filter-placeholder {
	color: var(--ink-gray-6);
}

.portal-batch-manager__status-filter-options {
	position: absolute;
	top: calc(100% + 0.25rem);
	right: 0;
	z-index: 30;
	display: grid;
	min-width: 13rem;
	gap: 0.125rem;
	padding: 0.25rem;
	border: 1px solid var(--outline-gray-2);
	border-radius: 0.5rem;
	background: var(--surface-elevation-2, var(--surface-base));
	box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 12%);
}

.portal-batch-manager__status-filter-options[hidden] {
	display: none;
}

.portal-batch-manager__status-filter-option {
	display: flex;
	min-height: 2rem;
	align-items: center;
	gap: 0.625rem;
	padding: 0.375rem 0.5rem;
	border: 0;
	border-radius: 0.375rem;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.portal-batch-manager__status-filter-option:hover,
.portal-batch-manager__status-filter-option:focus-visible {
	background: var(--surface-gray-2);
	outline: none;
}

.portal-batch-manager__status-filter-footer {
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;
	margin: 0.25rem -0.25rem -0.25rem;
	padding: 0.375rem 0.5rem;
	border-top: 1px solid var(--outline-gray-2);
}

.portal-batch-manager__content {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.portal-batch-manager__section {
	display: grid;
	align-content: start;
	gap: 1rem;
	padding: 0;
	border: 0;
	background: transparent;
}

.portal-batch-manager__section:first-child {
	grid-column: 1 / -1;
}

.portal-batch-manager__sources-title {
	color: var(--ink-gray-7);
	font-size: 0.875rem;
	font-weight: 500;
}

.portal-batch-manager__warning {
	margin: 0;
	padding: 0.75rem;
	border: 1px solid var(--outline-amber-3);
	border-radius: 0.5rem;
	background: var(--surface-amber-2);
	color: var(--ink-amber-7);
	font-size: 0.8125rem;
}

.portal-batch-manager__audience-sources {
	display: grid;
	gap: 0.625rem;
}

.portal-batch-manager__sources-title {
	margin: 0;
}

.portal-batch-manager-add {
	width: min(36rem, calc(100vw - 2rem));
	max-height: min(42rem, calc(100vh - 2rem));
	padding: 0;
	border: 1px solid var(--outline-gray-2);
	border-radius: 1rem;
	background: var(--surface-base);
	color: var(--ink-gray-9);
	box-shadow: 0 1rem 3rem rgb(0 0 0 / 18%);
	overflow: visible;
}

.portal-batch-manager-add::backdrop {
	background: rgb(0 0 0 / 42%);
}

.portal-batch-manager-add__shell {
	display: grid;
	max-height: inherit;
	overflow: visible;
}

.portal-batch-manager-add__header,
.portal-batch-manager-add__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.875rem 1rem;
}

.portal-batch-manager-add__header {
	border-bottom: 1px solid var(--outline-gray-2);
}

.portal-batch-manager-add__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5rem;
}

.portal-batch-manager-add__close {
	width: 2rem;
	min-height: 2rem;
	flex: 0 0 auto;
	padding: 0;
	color: var(--ink-gray-6);
}

.portal-batch-manager-add__close > span {
	width: 1rem;
	height: 1rem;
}

.portal-batch-manager-add__form {
	display: grid;
	min-height: 0;
	gap: 1rem;
	overflow: visible;
	padding: 1rem;
}

.portal-batch-manager-remove {
	width: min(28rem, calc(100vw - 2rem));
	overflow: hidden;
}

.portal-batch-manager-remove__description {
	margin: 0;
	color: var(--ink-gray-7);
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.portal-batch-manager-remove__reason {
	height: auto;
	min-height: 5rem;
	padding: 0.5rem 0.625rem;
	border: 1px solid transparent;
	border-radius: var(--border-radius-sm, 0.5rem);
	background: var(--control-bg, var(--surface-gray-2));
	color: var(--ink-gray-9);
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.25rem;
	resize: vertical;
}

.portal-batch-manager-remove__reason::placeholder {
	color: var(--ink-gray-5);
	opacity: 1;
}

.portal-batch-manager-remove__reason:hover {
	border-color: var(--outline-gray-2);
	background: var(--surface-gray-3);
}

.portal-batch-manager-remove__reason:focus,
.portal-batch-manager-remove__reason:focus-visible {
	border-color: var(--outline-gray-4);
	outline: none;
	background: var(--control-bg, var(--surface-gray-2));
	box-shadow: 0 0 0 2px var(--outline-gray-3);
}

.portal-batch-manager__progress-link {
	color: inherit;
	text-decoration: none;
}

.portal-batch-manager__progress-link:hover .portal-batch-manager__row-title,
.portal-batch-manager__progress-link:focus-visible .portal-batch-manager__row-title {
	text-decoration: underline;
}

.portal-batch-manager__progress-link:focus-visible {
	border-radius: 0.25rem;
	outline: 2px solid var(--outline-gray-4);
	outline-offset: 0.25rem;
}

/* Employee Course progress dialog — Figma node 10:4. */
.portal-batch-manager-progress {
	width: min(31.25rem, calc(100vw - 2rem));
	max-height: calc(100vh - 2rem);
	border: 1px solid rgb(226 232 240 / 80%);
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 25px 50px -12px rgb(0 0 0 / 25%);
	color: #0f172a;
	overflow: hidden;
}

.portal-batch-manager-progress::backdrop {
	background: rgb(0 0 0 / 42%);
}

.portal-batch-manager-progress__shell {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	overflow: hidden;
}

.portal-batch-manager-progress__header {
	min-height: 4.0625rem;
	padding: 1rem 1.5rem 1.0625rem;
	border-color: #f1f5f9;
}

.portal-batch-manager-progress__identity {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 0.75rem;
}

.portal-batch-manager-progress__avatar {
	display: inline-flex;
	width: 2rem;
	height: 2rem;
	flex: 0 0 2rem;
	align-items: center;
	justify-content: center;
	border: 1px solid rgb(226 232 240 / 60%);
	border-radius: 9999px;
	background: #f1f5f9;
	color: #334155;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1rem;
}

.portal-batch-manager-progress__title {
	overflow: hidden;
	color: #0f172a;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.portal-batch-manager-progress .portal-batch-manager-add__close {
	width: 1.75rem;
	min-height: 1.75rem;
	border-radius: 0.5rem;
	color: #94a3b8;
}

.portal-batch-manager-progress .portal-batch-manager-add__close:hover {
	background: #f8fafc;
	color: #64748b;
}

.portal-batch-manager-progress__body {
	min-height: 0;
	overflow-y: auto;
}

.portal-batch-manager-progress__row {
	display: flex;
	min-height: 4.5625rem;
	padding: 1.0625rem 1.5rem 1rem;
	align-items: stretch;
	flex-direction: column;
	gap: 0.5rem;
	border-top: 1px solid #f1f5f9;
	background: #fff;
}

.portal-batch-manager-progress__row--overall {
	min-height: 4.5rem;
	padding-block: 1rem;
	border-top: 0;
}

.portal-batch-manager-progress__label {
	overflow: hidden;
	color: #1e293b;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.portal-batch-manager-progress__row--overall .portal-batch-manager-progress__label {
	color: #334155;
}

.portal-batch-manager-progress__metric {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.portal-batch-manager-progress__track {
	display: flex;
	height: 0.5rem;
	min-width: 0;
	flex: 1 1 auto;
	overflow: hidden;
	align-items: center;
	border-radius: 9999px;
	background: #f0f2f5;
}

.portal-batch-manager-progress__fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: #2b85e4;
}

.portal-batch-manager-progress__percentage {
	width: 3rem;
	flex: 0 0 3rem;
	color: #64748b;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1rem;
	text-align: right;
	white-space: nowrap;
}

.portal-batch-manager-progress .portal-batch-manager__progress-link {
	display: block;
}

.portal-batch-manager-progress
	.portal-batch-manager__progress-link:hover
	.portal-batch-manager-progress__row {
	background: #f8fafc;
}

.portal-batch-manager-progress
	.portal-batch-manager__progress-link:hover
	.portal-batch-manager-progress__label,
.portal-batch-manager-progress
	.portal-batch-manager__progress-link:focus-visible
	.portal-batch-manager-progress__label {
	text-decoration: none;
}

.portal-batch-manager-progress .portal-batch-manager__progress-link:focus-visible {
	border-radius: 0;
	outline: 2px solid #2b85e4;
	outline-offset: -2px;
}

.portal-batch-manager-progress__row--assessment {
	min-height: 3.0625rem;
	align-items: center;
	justify-content: space-between;
	flex-direction: row;
	gap: 1rem;
}

.portal-batch-manager-progress__assessment-value {
	flex: 0 0 auto;
	color: #64748b;
	font-size: 0.75rem;
	line-height: 1rem;
	text-align: right;
}

.portal-batch-manager-progress__footer {
	display: flex;
	min-height: 3.8125rem;
	padding: 0.9375rem 1.5rem 0.875rem;
	align-items: center;
	justify-content: flex-end;
	border-top: 1px solid #f1f5f9;
	background: #f8fafc;
}

.portal-batch-manager-progress__done.portal-batch-manager__button {
	min-height: 2rem;
	padding: 0.5rem 1rem;
	border: 0;
	border-radius: 0.5rem;
	background: #0f172a;
	box-shadow: none;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1rem;
}

.portal-batch-manager-progress__done.portal-batch-manager__button:hover {
	background: #1e293b;
}

.portal-batch-manager-add__search {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.5rem;
}

.portal-batch-manager-add__selected {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.625rem;
}

.portal-batch-manager__target-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding-left: 0.625rem;
	border-radius: 999px;
	background: var(--surface-gray-2);
	color: var(--ink-gray-8);
	font-size: 0.8125rem;
}

.portal-batch-manager__target-chip .portal-batch-manager__button {
	min-height: 1.75rem;
	padding-inline: 0.375rem 0.625rem;
}

.portal-batch-manager-add__shell > .portal-batch-manager__feedback {
	padding-inline: 1rem;
}

.portal-batch-manager-add__actions {
	justify-content: flex-end;
	border-top: 1px solid var(--outline-gray-2);
}

.portal-batch-manager__section-heading {
	display: grid;
	gap: 0.25rem;
}

.portal-batch-manager__section-title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5rem;
}

.portal-batch-manager__section-description,
.portal-batch-manager__empty,
.portal-batch-manager__feedback,
.portal-batch-manager__row-description {
	margin: 0;
	color: var(--ink-gray-6);
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.portal-batch-manager__feedback {
	min-height: 1.25rem;
	padding: 0;
}

.portal-batch-manager__feedback--error {
	color: var(--ink-red-3);
}

.portal-batch-manager__target-controls {
	display: grid;
	grid-template-columns: minmax(9rem, 0.7fr) minmax(14rem, 2fr) auto;
	align-items: end;
	gap: 0.75rem;
}

.portal-batch-manager__field {
	display: grid;
	gap: 0.375rem;
}

.portal-batch-manager__label {
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1rem;
}

.portal-batch-manager__field-description {
	margin: 0;
	color: var(--ink-gray-5);
	font-size: 0.75rem;
	line-height: 1.25rem;
}

.portal-batch-manager__control {
	width: 100%;
	height: 2rem;
	padding: 0 0.625rem;
	border: 1px solid var(--outline-gray-2);
	border-radius: 0.375rem;
	background: var(--surface-base);
	color: var(--ink-gray-9);
	font: inherit;
}

.portal-batch-manager__control:hover {
	border-color: var(--outline-gray-3);
}

.portal-batch-manager__control:focus,
.portal-batch-manager__control:focus-visible {
	border-color: var(--outline-gray-4);
	outline: none;
	box-shadow: 0 0 0 1px var(--outline-gray-4);
}

.portal-batch-manager-add .portal-batch-manager__control,
.portal-batch-manager__combobox,
.portal-batch-manager__multiselect {
	min-height: 1.75rem;
	border: 1px solid transparent;
	border-radius: var(--border-radius-sm, 0.5rem);
	background: var(--control-bg, var(--surface-gray-2));
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.25rem;
	transition: none;
}

.portal-batch-manager__select,
.portal-batch-manager__picker {
	position: relative;
}

.portal-batch-manager__select-input {
	height: 1.75rem;
	padding-right: 2rem;
	border-color: transparent;
	background: var(--control-bg, var(--surface-gray-2));
	appearance: none;
	cursor: pointer;
}

.portal-batch-manager__select-input:hover {
	border-color: var(--outline-gray-2);
	background: var(--surface-gray-3);
}

.portal-batch-manager-add .portal-batch-manager__select-input:focus,
.portal-batch-manager-add .portal-batch-manager__select-input:focus-visible {
	border-color: var(--outline-gray-4);
	outline: none;
	box-shadow: 0 0 0 2px var(--outline-gray-3);
	transition: none;
}

.portal-batch-manager__control-icon {
	width: 1rem;
	height: 1rem;
	flex: 0 0 auto;
	color: var(--ink-gray-5);
	pointer-events: none;
}

.portal-batch-manager__select > .portal-batch-manager__control-icon {
	position: absolute;
	top: 50%;
	right: 0.625rem;
	transform: translateY(-50%);
}

.portal-batch-manager__combobox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0 0.5rem;
}

.portal-batch-manager__combobox:hover,
.portal-batch-manager__multiselect:hover {
	border-color: var(--outline-gray-2);
	background: var(--surface-gray-3);
}

.portal-batch-manager__combobox:focus-within,
.portal-batch-manager__multiselect:focus-within {
	border-color: var(--outline-gray-4);
	box-shadow: 0 0 0 2px var(--outline-gray-3);
}

.portal-batch-manager__combobox-input {
	min-width: 0;
	height: 1.625rem;
	flex: 1;
	padding: 0;
	border: 0;
	outline: none;
	background: transparent;
	color: var(--ink-gray-9);
	font: inherit;
}

.portal-batch-manager__combobox-input:focus,
.portal-batch-manager__multiselect-input:focus {
	border: 0;
	outline: none;
	box-shadow: none;
}

.portal-batch-manager__button:focus-visible {
	outline: 2px solid var(--outline-gray-4);
	outline-offset: 2px;
}

.portal-batch-manager__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.portal-batch-manager__employee-actions {
	display: flex;
	gap: 0.25rem;
	justify-content: center;
	white-space: nowrap;
}

.portal-batch-manager__button {
	display: inline-flex;
	min-height: 2rem;
	align-items: center;
	justify-content: center;
	padding: 0.375rem 0.75rem;
	border: 1px solid transparent;
	border-radius: 0.375rem;
	font: inherit;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1rem;
	white-space: nowrap;
	cursor: pointer;
}

.portal-batch-manager__button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.portal-batch-manager__button--primary {
	background: var(--ink-gray-9);
	color: var(--surface-base);
}

.portal-batch-manager__button--primary:hover:not(:disabled) {
	background: var(--ink-gray-8);
}

.portal-batch-manager__button--secondary {
	border-color: var(--outline-gray-2);
	background: var(--surface-base);
	color: var(--ink-gray-8);
}

.portal-batch-manager__button--secondary:hover:not(:disabled),
.portal-batch-manager__button--ghost:hover:not(:disabled) {
	background: var(--surface-gray-2);
}

.portal-batch-manager__button--ghost {
	background: transparent;
	color: var(--ink-gray-7);
}

.portal-batch-manager__button--danger {
	border-color: var(--outline-red-1);
	background: var(--surface-red-1);
	color: var(--ink-red-3);
}

.portal-batch-manager__employee-action {
	position: relative;
	align-items: center;
	background: transparent !important;
	border: 1px solid var(--border-color, var(--outline-gray-2)) !important;
	border-radius: var(--border-radius-sm, 0.375rem) !important;
	box-shadow: none !important;
	display: inline-flex;
	height: 1.5rem;
	justify-content: center;
	padding: 0;
	transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease;
	width: 1.5rem;
}

.portal-batch-manager__employee-action:hover:not(:disabled),
.portal-batch-manager__employee-action:focus:not(:disabled) {
	background: var(--subtle-fg, var(--surface-gray-2)) !important;
	border-color: var(--gray-300, var(--outline-gray-3)) !important;
	box-shadow: none !important;
}

.portal-batch-manager__employee-action:active:not(:disabled) {
	background: var(--subtle-fg, var(--surface-gray-2)) !important;
	transform: translateY(1px);
}

.portal-batch-manager__employee-action:focus-visible {
	outline: 2px solid var(--primary-color, var(--outline-gray-4));
	outline-offset: 2px;
}

.portal-batch-manager__employee-action:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.portal-batch-manager__employee-action:not(.portal-batch-manager__employee-action--danger) {
	--icon-stroke: var(--text-on-green, var(--ink-green-7, #15803d));
	color: var(--text-on-green, var(--ink-green-7, #15803d));
}

.portal-batch-manager__employee-action--danger {
	--icon-stroke: var(--red-500, var(--text-danger, var(--ink-red-5, #dc2626)));
	color: var(--red-500, var(--text-danger, var(--ink-red-5, #dc2626)));
}

.portal-batch-manager__employee-action > svg,
.portal-batch-manager__employee-action > span,
.portal-batch-manager__employee-action > span::before {
	display: block;
	width: 0.75rem;
	height: 0.75rem;
	flex: 0 0 0.75rem;
}

.portal-batch-manager__employee-action.portal-batch-manager__is-loading > svg,
.portal-batch-manager__employee-action.portal-batch-manager__is-loading > span {
	opacity: 0;
}

.portal-batch-manager__employee-action.portal-batch-manager__is-loading::after {
	position: absolute;
	width: 0.75rem;
	height: 0.75rem;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	content: "";
	animation: portal-batch-manager-spin 650ms linear infinite;
}

.portal-batch-manager__employee-table-row.portal-batch-manager__is-loading {
	cursor: wait;
	opacity: 0.65;
}

@keyframes portal-batch-manager-spin {
	to {
		transform: rotate(360deg);
	}
}

.portal-batch-manager__list,
.portal-batch-manager__search-results {
	display: grid;
	border: 1px solid var(--outline-gray-2);
	border-radius: 0.5rem;
}

.portal-batch-manager__search-results:empty {
	display: none;
}

.portal-batch-manager__search-results[hidden] {
	display: none;
}

.portal-batch-manager__multiselect {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.375rem;
	padding: 0.0625rem 0.375rem;
}

.portal-batch-manager__multiselect:focus-within {
	border-color: var(--outline-gray-4);
	box-shadow: 0 0 0 2px var(--outline-gray-3);
}

.portal-batch-manager__multiselect-input {
	min-width: 10rem;
	height: 1.5rem;
	flex: 1;
	padding: 0 0.25rem;
	border: 0;
	outline: none;
	background: transparent;
	color: var(--ink-gray-9);
	font: inherit;
}

.portal-batch-manager__multiselect .portal-batch-manager-add__selected {
	display: contents;
}

.portal-batch-manager__multiselect .portal-batch-manager__target-chip {
	min-height: 1.5rem;
	padding-left: 0.5rem;
	border-radius: 0.375rem;
}

.portal-batch-manager__multiselect
	.portal-batch-manager__target-chip
	.portal-batch-manager__button {
	min-height: 1.5rem;
}

.portal-batch-manager__row.portal-batch-manager__multiselect-option {
	width: 100%;
	min-height: 2rem;
	justify-content: flex-start;
	gap: 0.625rem;
	padding: 0.5rem;
	border: 0;
	border-radius: 0.375rem;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.portal-batch-manager__multiselect-option:hover,
.portal-batch-manager__multiselect-option:focus-visible {
	background: var(--surface-gray-2);
	outline: none;
}

.portal-batch-manager__search-results {
	max-height: 16rem;
	margin-top: 0.25rem;
	padding: 0.25rem;
	overflow-y: auto;
	background: var(--surface-elevation-2, var(--surface-base));
	box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 12%);
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.portal-batch-manager__search-results .portal-batch-manager__row-description {
	font-size: 0.8125rem;
}

.portal-batch-manager__picker > .portal-batch-manager__search-results {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	width: 100%;
}

.portal-batch-manager__option-check {
	display: inline-flex;
	width: 0.875rem;
	height: 0.875rem;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--outline-gray-4);
	border-radius: 0.25rem;
	background: var(--surface-base);
}

.portal-batch-manager__option-check--selected {
	border-color: var(--ink-gray-9);
	background: var(--ink-gray-9);
	color: var(--surface-base);
}

.portal-batch-manager__option-check > span {
	width: 0.75rem;
	height: 0.75rem;
}

.portal-batch-manager__picker-footer {
	display: flex;
	justify-content: flex-end;
	margin: 0.25rem -0.25rem -0.25rem;
	padding: 0.375rem 0.5rem;
	border-top: 1px solid var(--outline-gray-2);
}

.portal-batch-manager__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem;
	border-bottom: 1px solid var(--outline-gray-2);
}

.portal-batch-manager__row:last-child {
	border-bottom: 0;
}

.portal-batch-manager__row-copy {
	display: grid;
	min-width: 0;
	gap: 0.125rem;
}

.portal-batch-manager__row-title {
	overflow: hidden;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.25rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.portal-batch-manager__empty {
	padding: 1rem;
	text-align: center;
}

@media (max-width: 639px) {
	.portal-batch-manager {
		width: 100%;
		margin: 0;
	}

	.portal-batch-manager__section {
		padding: 0;
	}

	.portal-batch-manager__content {
		grid-template-columns: 1fr;
	}

	.portal-batch-manager__dashboard-header {
		align-items: stretch;
		flex-direction: column;
	}

	.portal-batch-manager__dashboard-actions {
		align-items: stretch;
		flex-direction: row;
	}

	.portal-batch-manager__dashboard-search {
		min-width: 0;
		width: auto;
	}

	.portal-batch-manager__status-filter {
		min-width: 8rem;
	}

	.portal-batch-manager__status-filter-trigger {
		width: 100%;
	}

	.portal-batch-manager__status-filter-options {
		left: 0;
		right: auto;
		width: 100%;
	}

	.portal-batch-manager__section:first-child {
		grid-column: auto;
	}

	.portal-batch-manager-add {
		width: calc(100vw - 1rem);
		max-height: calc(100vh - 1rem);
		overflow: hidden;
	}

	.portal-batch-manager-add__shell {
		overflow: hidden;
	}

	.portal-batch-manager-add__form {
		overflow-y: auto;
	}

	.portal-batch-manager__picker > .portal-batch-manager__search-results {
		position: static;
		width: auto;
	}

	.portal-batch-manager__target-controls {
		grid-template-columns: 1fr;
	}

	.portal-batch-manager__row {
		align-items: flex-start;
		flex-direction: column;
	}

	.portal-batch-manager__row-actions {
		width: 100%;
	}
}

/* Allocation-style employee list */

.portal-batch-manager__feedback:empty {
	display: none;
}

.portal-batch-manager__section--employees {
	grid-column: 1 / -1;
	gap: 0.5rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.portal-batch-manager__employee-table-scroll {
	width: 100%;
	overflow-x: auto;
}

.portal-batch-manager__employee-table {
	display: table;
	width: 100%;
	min-width: 40rem;
	overflow: visible;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 0;
	font-size: 0.8125rem;
	line-height: 1.35;
}

.portal-batch-manager__employee-table-header {
	display: table-header-group;
	min-height: 0;
	border: 0;
	background: transparent;
}

.portal-batch-manager__employee-table-row {
	display: table-row;
	min-height: 0;
	padding: 0;
	border: 0;
	transition: background-color 120ms ease;
}

.portal-batch-manager__employee-table-heading,
.portal-batch-manager__employee-table-cell,
.portal-batch-manager__employee-table-empty {
	padding: 0.5rem 0.625rem;
	border-bottom: 1px solid var(--outline-gray-2);
	text-align: left;
	vertical-align: middle;
}

.portal-batch-manager__employee-table-heading {
	height: 2rem;
	background: var(--surface-gray-2);
	color: var(--ink-gray-6);
	font-size: 0.75rem;
	font-weight: 500;
	white-space: nowrap;
}

.portal-batch-manager__employee-sort {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0;
	border: 0;
	outline: none;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.portal-batch-manager__employee-sort:hover {
	color: var(--ink-gray-9);
	text-decoration: underline;
}

.portal-batch-manager__employee-sort:focus-visible {
	border-radius: 0.125rem;
	outline: 2px solid var(--outline-gray-4);
	outline-offset: 2px;
}

.portal-batch-manager__employee-sort-indicator {
	min-width: 0.75rem;
	text-align: center;
}

.portal-batch-manager__employee-table-heading:first-child {
	border-top-left-radius: 0.5rem;
}

.portal-batch-manager__employee-table-heading:last-child {
	border-top-right-radius: 0.5rem;
}

.portal-batch-manager__employee-table-cell {
	display: table-cell;
	height: 2.5rem;
	min-width: 0;
	overflow: visible;
	color: var(--ink-gray-8);
	font-size: 0.8125rem;
	text-overflow: clip;
	white-space: nowrap;
}

.portal-batch-manager__employee-table-row:hover .portal-batch-manager__employee-table-cell {
	background: var(--surface-gray-1);
}

.portal-batch-manager__employee-table-row--interactive {
	cursor: pointer;
}

.portal-batch-manager__employee-table-row--interactive:focus-visible {
	outline: 2px solid var(--outline-gray-4);
	outline-offset: -2px;
}

.portal-batch-manager__employee-table-cell--identity {
	width: 30%;
	color: var(--ink-gray-9);
}

.portal-batch-manager__employee-name,
.portal-batch-manager__employee-email {
	display: block;
}

.portal-batch-manager__employee-name {
	font-weight: 500;
}

.portal-batch-manager__employee-email {
	margin-top: 0.125rem;
	color: var(--ink-gray-5);
	font-size: 0.75rem;
	line-height: 1rem;
}

.portal-batch-manager__employee-table-empty {
	height: 3.5rem;
	color: var(--ink-gray-5);
	text-align: center;
}

.portal-batch-manager__status {
	display: inline-flex;
	align-items: center;
	min-height: 1.25rem;
	padding: 0.125rem 0.375rem;
	border-radius: 0.375rem;
	font-size: 0.75rem;
	border: 1px solid transparent;
	font-weight: 600;
	line-height: 1rem;
	white-space: nowrap;
}

.portal-batch-manager__status--neutral {
	background: var(--surface-gray-2);
	border-color: var(--outline-gray-2);
	color: var(--ink-gray-8);
}

.portal-batch-manager__status--info {
	background: var(--surface-blue-2);
	border-color: var(--outline-blue-2);
	color: var(--ink-blue-7);
}

.portal-batch-manager__status--success {
	background: var(--surface-green-2);
	border-color: var(--outline-green-2);
	color: var(--ink-green-7);
}

.portal-batch-manager__status--warning {
	background: var(--surface-amber-2);
	border-color: var(--outline-amber-2);
	color: var(--ink-amber-7);
}

.portal-batch-manager__status--danger {
	background: var(--surface-red-1);
	border-color: var(--outline-red-2);
	color: var(--ink-red-7);
}

.portal-batch-manager__employee-toolbar {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem;
	margin-top: 0;
}

.portal-batch-manager__employee-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding-top: 0.25rem;
}

.portal-batch-manager__employee-toolbar .portal-batch-manager__control {
	min-width: 12rem;
	max-width: 20rem;
}

.portal-batch-manager__employee-toolbar .portal-batch-manager__button {
	min-height: 1.875rem;
	padding: 0.375rem 0.625rem;
	font-size: 0.8125rem;
}

.portal-batch-manager__audience-sources {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--outline-gray-2);
}

.portal-batch-manager__sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* The upstream Dashboard action uses display utility classes, so the marker
   needs equal certainty while Portal owns batch enrolment. */
[data-portal-native-batch-enroll] {
	display: none !important;
}

[data-portal-managed-self-enrollment="true"] {
	display: none !important;
}

@media (min-width: 768px) {
	[data-portal-managed-enrollment-layout="true"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
