/*
 * productiveparks-new.css — primary app stylesheet (light mode base)
 *
 * Load order (master.blade.php):
 *   1. palettes.css             — swappable Bootstrap + PP table color tokens
 *   2. productiveparks-new.css  — this file
 *   3. offcanvas.css            — navbar offset, mobile nav
 *   4. layout.css               — dark theme + `[data-theme="dark"]` overrides (wins last)
 *
 * Cascade notes:
 *   - Equal-specificity rules: later in the SAME file wins.
 *   - Section 8 (Legacy / Phase 1) is intentionally at the END of this file so migrated
 *     v3 rules do not override Assign Task or Admin Dashboard rules above.
 *   - Dark mode is NOT defined here; use layout.css for `[data-theme="dark"]`.
 *   - !important is reserved for row highlights and legacy override fights (see Section 8).
 *
 * Sections:
 *   1. Base & typography
 *   2. Assign task
 *   3. Global components (forms, buttons, modals, tables)
 *   4. Admin dashboard & weekly schedule
 *   5. Responsive breakpoints
 *   6. Accordion & asset modals
 *   7. (layout.css — dark mode, loaded separately)
 *   8. Legacy — migrated from productiveparks3.css (Phase 1 layout; Phase 2 colors tokenized)
 */

/* ========== 1. Base & typography ========== */

	/* PP DataTable sizing tokens — colors live in palettes.css */
:root {
	/* Product UI type scale — prefer these four; see page-shell.md → Product UI type scale */
	--pp-font-body: 1rem;       /* primary content, accordion titles */
	--pp-font-ui: 0.875rem;     /* compact UI / Bootstrap .small / DataTables */
	--pp-font-caption: 0.75rem; /* badges, chips, QAB labels — readable floor */
	/* Heading sizes — page-shell.md → Page headings (h1, h2); h3/h4 use body/ui tokens */
	--pp-h1-size: 1.375rem;
	--pp-h1-size-sm: 1.15rem;
	--pp-h2-size: 1rem;
	--pp-h2-size-sm: 0.9rem;
	--pp-dt-font-size: var(--pp-font-ui);
	--pp-dt-cell-padding-y: 0.5rem;
	--pp-dt-cell-padding-x: 0.5rem;
	--pp-dt-sort-header-padding-right: 1.75rem;
	/* PP DataTable toolbar — search, show, export (all breakpoints; ~44px touch floor) */
	--pp-dt-toolbar-control-height: 2.75rem;
	/* Fallback if palette missing — prefer palettes.css / layout.css tokens */
	--pp-dt-row-hot-hover-bg: color-mix(in oklab, var(--bs-primary) 22%, var(--bs-body-bg));
}

/* Non-DataTables Bootstrap tables — opt in with table.pp-table-striped */
noscript {
	display: block;
}
.pp-noscript-banner {
	align-items: center;
	background: var(--bs-danger-bg-subtle);
	border-bottom: 1px solid var(--bs-danger-border-subtle);
	color: var(--bs-body-color);
	display: flex;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
}
.pp-noscript-banner__icon {
	align-self: center;
	color: var(--bs-danger);
	flex-shrink: 0;
	font-size: 1.25rem;
	line-height: 1;
}
.pp-noscript-banner__text {
	font-size: 0.9375rem;
	line-height: 1.5;
}

table.table.pp-table-striped > tbody > tr:nth-of-type(odd) > td,
table.table.pp-table-striped > tbody > tr:nth-of-type(odd) > th {
	background-color: var(--pp-table-stripe-bg);
}
table.table.pp-table-striped > tbody > tr:nth-of-type(even) > td,
table.table.pp-table-striped > tbody > tr:nth-of-type(even) > th {
	background-color: var(--pp-table-row-bg);
}

/* Div / list layouts that behave like tables — wrap row items in .pp-striped-rows */
.pp-striped-rows > *:nth-child(odd) {
	background-color: var(--pp-table-stripe-bg);
}
.pp-striped-rows > *:nth-child(even) {
	background-color: var(--pp-table-row-bg);
}
.pp-striped-rows.pp-table-row-borders > * {
	border-bottom: 1px solid var(--bs-border-color);
}

/* PP link list — bulleted navigable lists; block links for mobile tap targets */
.pp-link-list {
	margin-bottom: 0;
	padding-left: 1.25rem;
}
.pp-link-list > li > a {
	display: block;
	min-height: 2.25rem;
	padding: 0.4375rem 0;
	line-height: 1.375;
}

/* Primary actions — match PP nav pill padding; soft-square corners (inventory CTAs, dashboard headers) */
.btn.btn-primary.pp-nav-pill-match,
.btn.btn-outline-dark.pp-nav-pill-match {
	padding: 0.5rem 1rem;
	font-size: var(--pp-font-body);
	border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
}

/* PP nav pills — global outline inactive / solid active (Bootstrap 5 nav-pills); soft-square corners */
.nav-pills .nav-link:not(.pp-touch-nav-cta) {
	color: var(--bs-primary);
	background-color: transparent;
	border: 1px solid var(--bs-primary);
	border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
}
.nav-pills .nav-link:not(.pp-touch-nav-cta):hover {
	color: var(--bs-primary);
	background-color: color-mix(in oklab, var(--bs-primary) 8%, transparent);
	border-color: var(--bs-primary);
}
.nav-pills .nav-link:not(.pp-touch-nav-cta).active,
.nav-pills .show > .nav-link:not(.pp-touch-nav-cta) {
	color: #fff;
	background-color: var(--bs-primary);
	border-color: var(--bs-primary);
}
.nav-pills .nav-link.pp-touch-nav-cta {
	color: #fff;
	background-color: var(--bs-primary);
	border: 1px solid var(--bs-primary);
	border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
}

/* Touch-friendly defaults — all nav-pills (Report Engine compact override may follow) */
.nav-pills {
	gap: 0.5rem;
}
.nav-pills .nav-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	line-height: 1.2;
	box-sizing: border-box;
}

/* Badge tokens — nav pills and queue list buttons */
.pp-pill-badge-neutral {
	background-color: var(--bs-secondary-bg-subtle, var(--bs-secondary));
	color: var(--bs-body-color);
	border: 1.5px solid var(--bs-border-color);
	box-sizing: border-box;
}
.pp-pill-badge-attention {
	background-color: transparent;
	color: var(--bs-danger);
	border: 1.5px solid var(--bs-danger);
	box-sizing: border-box;
}
.nav-pills .nav-link .badge,
.badge.pp-pill-badge-neutral,
.badge.pp-pill-badge-attention {
	min-width: 1.75rem;
	font-size: var(--pp-font-caption);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	vertical-align: middle;
}
.nav-pills .nav-link.active .pp-pill-badge-neutral,
.nav-pills .show > .nav-link .pp-pill-badge-neutral {
	background-color: rgba(255, 255, 255, 0.25) !important;
	color: #fff;
	border-color: transparent;
}
.nav-pills .nav-link.active .pp-pill-badge-attention,
.nav-pills .show > .nav-link .pp-pill-badge-attention {
	background-color: transparent !important;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
}

/* My staff work board chrome — compact nav pills (schedule card row 2) */
#my-staff-work-board .my-staff-work-board__chrome {
	gap: 0.375rem;
}
/* One wrap flow: ul shells don't create forced line breaks between tabs and link pills */
#my-staff-work-board .my-staff-work-board__chrome > .nav-pills {
	display: contents;
}
#my-staff-work-board .nav-pills .nav-link {
	min-height: 2rem;
	padding: 0.25rem 0.625rem;
	font-size: var(--pp-font-ui);
	gap: 0.25rem;
}
#my-staff-work-board .nav-pills .nav-link .badge {
	min-width: 1.35rem;
	font-size: var(--pp-font-caption);
	padding: 0.15em 0.4em;
}

/* Quiet inactive chrome (body text + border stroke) — tabs + link-out pills */
#my-staff-work-board .nav-pills .nav-link:not(.pp-touch-nav-cta):not(.active) {
	color: var(--bs-body-color);
	border-color: var(--bs-border-color);
	background-color: transparent;
}
#my-staff-work-board .nav-pills .nav-link:not(.pp-touch-nav-cta):not(.active):hover {
	color: var(--bs-body-color);
	border-color: var(--bs-border-color);
	background-color: var(--bs-tertiary-bg);
}

/* ≤768: restore touch floor + spacing between pills */
@media (max-width: 767.98px) {
	#my-staff-work-board .my-staff-work-board__chrome {
		gap: 0.5rem;
	}
	#my-staff-work-board .nav-pills .nav-link {
		min-height: 2.75rem;
		padding: 0.5rem 0.75rem;
		font-size: var(--pp-font-ui);
		gap: 0.375rem;
		touch-action: manipulation;
	}
	#my-staff-work-board .nav-pills .nav-link .badge {
		min-width: 1.5rem;
		font-size: var(--pp-font-caption);
	}
}

/*
 * PP touch nav — opt-in mobile layout extras below md (768px).
 * Global .nav-pills .nav-link already has min-height 2.75rem; this wrapper adds
 * full-width grid cells, 3rem height, and badge scale on field pages when needed.
 */
.pp-touch-nav {
	--pp-touch-nav-font-size: var(--pp-font-ui);
	--pp-touch-nav-link-height: 3rem;
	--pp-touch-nav-badge-scale: 0.857em; /* 0.75rem at 0.875rem base */
	--pp-touch-nav-link-padding-y: 0.75em;
	--pp-touch-nav-link-padding-x: 0.5rem;
	--pp-touch-nav-link-gap: 0.5em;
}

@media (max-width: 767.98px) {
	.pp-touch-nav {
		font-size: var(--pp-touch-nav-font-size);
	}

	.pp-touch-nav .nav-pills .nav-link {
		display: flex;
		align-items: center;
		width: 100%;
		box-sizing: border-box;
		font-size: 1em;
		line-height: 1.2;
		height: var(--pp-touch-nav-link-height);
		min-height: var(--pp-touch-nav-link-height);
		padding: var(--pp-touch-nav-link-padding-y) var(--pp-touch-nav-link-padding-x);
		gap: var(--pp-touch-nav-link-gap);
	}

	.pp-touch-nav .nav-pills .nav-link .text-truncate {
		min-width: 0;
	}

	.pp-touch-nav .nav-pills .nav-link.pp-touch-nav-icon {
		width: var(--pp-touch-nav-link-height);
		min-width: var(--pp-touch-nav-link-height);
		padding-left: 0;
		padding-right: 0;
		justify-content: center;
	}

	.pp-touch-nav .nav-pills .badge {
		flex-shrink: 0;
		min-width: 2em;
		font-size: var(--pp-touch-nav-badge-scale);
		font-weight: 600;
		font-variant-numeric: tabular-nums;
	}

	.pp-touch-nav .nav-pills .nav-link.active .pp-pill-badge-neutral {
		background-color: rgba(255, 255, 255, 0.25) !important;
		color: #fff;
		border-color: transparent;
	}

	.pp-touch-nav .nav-pills .nav-link.active .pp-pill-badge-attention {
		background-color: transparent !important;
		color: #fff;
		border-color: rgba(255, 255, 255, 0.85);
	}

	.pp-touch-nav .nav-pills .nav-link.pp-touch-nav-cta {
		justify-content: center;
		font-weight: 500;
	}

	.pp-touch-nav .pp-touch-nav-more-panel {
		margin-top: 0.75rem;
	}

	.pp-touch-nav .pp-touch-nav-more-chevron {
		transition: transform 0.15s ease;
	}

	.pp-touch-nav [aria-expanded="true"] .pp-touch-nav-more-chevron {
		transform: rotate(180deg);
	}
}

/* Screen-only chrome — hidden on Command+P (export toolbars, Download/Print rows) */
@media print {
	.pp-no-print {
		display: none !important;
	}
}

/* Success notice — alert look without .alert (avoids global auto-dismiss in master layout) */
.pp-success-notice {
	color: var(--bs-success-text-emphasis);
	background-color: var(--bs-success-bg-subtle);
	border: var(--bs-border-width) solid var(--bs-success-border-subtle);
	border-radius: var(--bs-border-radius);
	padding: 1rem 1.25rem;
}

/* Asset hub — Map outline control + square Create button */
.pp-asset-dashboard-nav .pp-asset-dashboard-nav__map {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	line-height: 1.2;
	box-sizing: border-box;
	border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
}
.pp-asset-dashboard-nav .pp-asset-dashboard-nav__map.active,
.pp-asset-dashboard-nav .pp-asset-dashboard-nav__map[aria-current="page"] {
	color: #fff;
	background-color: var(--bs-primary);
	border-color: var(--bs-primary);
}
.pp-asset-dashboard-nav .pp-asset-dashboard-nav__create {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	line-height: 1.2;
	box-sizing: border-box;
	border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
}
/* Asset hub — Browse dropdown (primary-filled trigger + menu; hide current mode in Blade) */
.pp-asset-dashboard-nav__browse {
	--pp-browse-trigger-bg: var(--bs-primary);
	--pp-browse-trigger-color: var(--bs-white);
	--pp-browse-trigger-open-bg: var(--pp-primary-hover);
	--pp-browse-menu-bg: var(--bs-primary);
	--pp-browse-menu-color: var(--bs-white);
	--pp-browse-menu-hover-bg: color-mix(in oklab, var(--bs-white) 14%, var(--bs-primary));
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger {
	align-items: center;
	display: inline-flex;
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger.active,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger[aria-expanded="true"] {
	color: var(--pp-browse-trigger-color);
	background-color: var(--pp-browse-trigger-open-bg);
	border-color: var(--pp-browse-trigger-open-bg);
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger.active:not([aria-expanded="true"]) {
	background-color: var(--pp-browse-trigger-bg);
	border-color: var(--pp-browse-trigger-bg);
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger.active:hover,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger[aria-expanded="true"]:hover,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger.active:focus,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger[aria-expanded="true"]:focus,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger.active:focus-visible,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-trigger[aria-expanded="true"]:focus-visible {
	color: var(--pp-browse-trigger-color);
	background-color: var(--pp-browse-trigger-open-bg);
	border-color: var(--pp-browse-trigger-open-bg);
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-menu {
	background-color: var(--pp-browse-menu-bg);
	border: 1px solid var(--pp-browse-menu-bg);
	border-radius: var(--bs-border-radius, 0.5rem);
	min-width: 100%;
	padding: 0.25rem 0;
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-menu .dropdown-item {
	color: var(--pp-browse-menu-color);
}
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-menu .dropdown-item:hover,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-menu .dropdown-item:focus,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-menu .dropdown-item:focus-visible,
.pp-asset-dashboard-nav__browse .pp-asset-dashboard-nav__browse-menu .dropdown-item:active {
	background-color: var(--pp-browse-menu-hover-bg);
	color: var(--pp-browse-menu-color);
}

main{
  font: -apple-system-body;
}

.container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    /* Page inset only — do not set --bs-gutter-x here (desyncs from .row g-* negative margins) */
    padding-right: calc(var(--pp-page-gutter-x, 1.5rem) * 0.5);
    padding-left: calc(var(--pp-page-gutter-x, 1.5rem) * 0.5);
    max-width: 90rem;
	}

/* Top-level page rows — match container gutter so negative margins do not exceed page padding */
.container > .row,
.container-lg > .row,
.container-md > .row,
.container-sm > .row,
.container-xl > .row,
.container-xxl > .row,
.container-fluid > .row {
	--bs-gutter-x: var(--pp-page-gutter-x, 1.5rem);
}

/* Page body stack — no page-level Bootstrap row (see page-shell.md → pp-page-body) */
.pp-page-body {
	max-width: 100%;
	min-width: 0;
}

/* Gap after page h1 — replaces mt-3 on pp-page-body in Blade */
.container > h1 + .pp-page-body,
.container-fluid > h1 + .pp-page-body {
	margin-top: var(--pp-page-body-gap);
}

/* Dashboard / hub pages — opt-in when touching a route (no h1 → body gap) */
.pp-page-chromeless.pp-page-body,
.container > h1 + .pp-page-body.pp-page-chromeless {
	margin-top: 0;
}

.container .pp-page-body > .row,
.container-fluid .pp-page-body > .row,
.container [class*="col-"] > .row,
.container .row .row,
.container-fluid [class*="col-"] > .row,
.container-fluid .row .row {
	margin-left: 0;
	margin-right: 0;
}

/* PP page shell — structural horizontal overflow containment (site-wide; no overflow-x on html/body) */
.container .card.card-body,
.container-fluid .card.card-body,
.container .card .card-body,
.container-fluid .card .card-body {
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Section cards inside pp-page-body — replaces redundant mb-4 p-3 in Blade
   (direct children; form section cards; asset edit content stack; assign-task workspace) */
.pp-page-body > .card.card-body:not(.pp-datatable-card),
.pp-page-body > form > .card.card-body:not(.pp-datatable-card),
.pp-page-body > form > [id] > .card.card-body:not(.pp-datatable-card),
.pp-page-body > #asset_edit_page_content > .card.card-body:not(.pp-datatable-card),
.pp-page-body .assign-task-workspace > .card.card-body:not(.pp-datatable-card),
.pp-page-body .assign-task-workspace > [id] > .card.card-body:not(.pp-datatable-card) {
	padding: var(--pp-section-card-padding, 1rem) !important;
	margin-bottom: var(--pp-section-card-gap, 1.5rem) !important;
}

.pp-page-body > .card.card-body.p-0,
.pp-page-body > form > .card.card-body.p-0,
.pp-page-body > form > [id] > .card.card-body.p-0,
.pp-page-body > #asset_edit_page_content > .card.card-body.p-0,
.pp-page-body .assign-task-workspace > .card.card-body.p-0,
.pp-page-body .assign-task-workspace > [id] > .card.card-body.p-0 {
	padding: 0 !important;
}

.pp-page-body > .card.card-body.mb-0,
.pp-page-body > form > .card.card-body.mb-0,
.pp-page-body > form > [id] > .card.card-body.mb-0,
.pp-page-body > #asset_edit_page_content > .card.card-body.mb-0,
.pp-page-body .assign-task-workspace > .card.card-body.mb-0,
.pp-page-body .assign-task-workspace > [id] > .card.card-body.mb-0 {
	margin-bottom: 0 !important;
}

/* Datatable section cards — keep Blade p-3 for padding below lg; section gap from token */
.pp-page-body > .card.card-body.pp-datatable-card,
.pp-page-body > #asset_edit_page_content > .card.card-body.pp-datatable-card {
	margin-bottom: var(--pp-section-card-gap, 1.5rem) !important;
}

.pp-page-body > .card.card-body.pp-datatable-card.mb-0,
.pp-page-body > #asset_edit_page_content > .card.card-body.pp-datatable-card.mb-0 {
	margin-bottom: 0 !important;
}

/* Desktop — datatable cards share section padding token (Blade p-3 stays for < lg + mobile flush) */
@media (min-width: 992px) {
	.pp-page-body > .card.card-body.pp-datatable-card,
	.pp-page-body > #asset_edit_page_content > .card.card-body.pp-datatable-card,
	.pp-page-body > .pp-hub--tab .tab-pane > .card.card-body.pp-datatable-card,
	.pp-page-body .pp-hub--board .tab-pane > .card.card-body.pp-datatable-card {
		padding: var(--pp-section-card-padding, 1.25rem 1.5rem) !important;
	}

	/* Schedule chrome — override Blade p-0; L/R minus .table-responsive inset (0.5rem) */
	.pp-page-body > .card.card-body.pp-schedule-chrome,
	.pp-page-body .pp-hub .card.card-body.pp-schedule-chrome {
		padding: var(--pp-section-card-padding, 1.25rem 1.5rem) !important;
		padding-inline: calc(1.5rem - 0.5rem) !important;
	}

	.pp-page-body > .card.card-body.pp-schedule-chrome .weekly-schedule-chrome-nav,
	.pp-page-body .pp-hub .card.card-body.pp-schedule-chrome .weekly-schedule-chrome-nav {
		padding-left: 0;
		padding-right: 0;
		/* Top pad from Blade pt-2 (was pt-3) */
	}
}
/* Report Engine drill (format 7) — category blocks wrap section cards in a bare div */
.report-engine-drill-page.pp-page-body > div > .card.card-body:not(.pp-datatable-card) {
	padding: var(--pp-section-card-padding, 1rem) !important;
	margin-bottom: var(--pp-section-card-gap, 1.5rem) !important;
}

/* Tab / board hub — section cards nest under .tab-content > .tab-pane */
.pp-page-body > .pp-hub--tab .tab-pane > .card.card-body:not(.pp-datatable-card),
.pp-page-body .pp-hub--board .tab-pane > .card.card-body:not(.pp-datatable-card) {
	padding: var(--pp-section-card-padding, 1rem) !important;
	margin-bottom: var(--pp-section-card-gap, 1.5rem) !important;
}

.pp-page-body > .pp-hub--tab .tab-pane > .card.card-body.pp-datatable-card,
.pp-page-body .pp-hub--board .tab-pane > .card.card-body.pp-datatable-card {
	margin-bottom: var(--pp-section-card-gap, 1.5rem) !important;
}

.pp-page-body > .pp-hub--tab .tab-pane > .card.card-body.pp-datatable-card.mb-0,
.pp-page-body > .pp-hub--tab .tab-pane > .card.card-body.mb-0,
.pp-page-body .pp-hub--board .tab-pane > .card.card-body.pp-datatable-card.mb-0,
.pp-page-body .pp-hub--board .tab-pane > .card.card-body.mb-0 {
	margin-bottom: 0 !important;
}

/* Bootstrap .row negative margins inside padded cards — prevent page-level bleed */
.container .card.card-body .row,
.container-fluid .card.card-body .row,
.container .card .card-body .row,
.container-fluid .card .card-body .row {
	margin-left: 0;
	margin-right: 0;
}

.container [class*="col-"],
.container-fluid [class*="col-"] {
	min-width: 0;
}

.container .card.card-body .form-control,
.container .card.card-body .form-select,
.container .card.card-body .input-group,
.container-fluid .card.card-body .form-control,
.container-fluid .card.card-body .form-select,
.container-fluid .card.card-body .input-group {
	max-width: 100%;
	min-width: 0;
}

.container h1,
.container-fluid h1 {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Page titles — centered in app shell; bare h1 stays left (modals, in-card, map). */
.container > h1,
.container-fluid > h1,
.text-center > h1,
h1.assign-task-page-title,
.work-order-edit-page > h1,
.print-tasks-page > h1 {
	text-align: center;
}

.modal-title,
.pp-login-title,
h1.visually-hidden,
.card.card-body > h1 {
	text-align: left;
}

.container .bd-callout,
.container-fluid .bd-callout,
.container .bd-callout p,
.container-fluid .bd-callout p,
.container .form-text.text-muted.small,
.container-fluid .form-text.text-muted.small {
	overflow-wrap: anywhere;
	word-break: break-word;
}

 
body {
	font-family: 'Roboto', sans-serif;
	font-weight:400;
	padding-top: var(--navbar-h, 4.0625rem) !important;
	}
    
h1 {
    padding: var(--pp-h1-padding-top) 0 var(--pp-h1-padding-bottom);
    font-weight: 500;
    font-size: var(--pp-h1-size);
}

h2 {
    border-bottom: 0 solid transparent;
    font-weight: 500;
    font-size: var(--pp-h2-size);
	}

/* Section headings inside cards — one rhythm at all breakpoints (do not use mb-* on h2 in Blade) */
.card.card-body h2:not(.accordion-header):not(.visually-hidden),
.pp-datatable-card > h2:not(.accordion-header) {
	margin-bottom: 1rem;
	font-size: var(--pp-h2-size);
	font-weight: 500;
	line-height: 1.3;
}
	
h3, .h3 {
	margin-top: 0;
	margin-bottom: 0.5rem;
    font-size: var(--pp-font-body);
	font-weight: 500;
	}
	
h4, .h4 {
	margin-top: 0;
	margin-bottom: 0.375rem;
    font-size: var(--pp-font-ui);
	font-weight: 500;
	}

h5, .h5,
h6, .h6 {
	font-weight: 500;
	}

@media (max-width: 767.98px) {
	h1 {
		font-size: var(--pp-h1-size-sm);
		padding: 1rem 0 0.5rem;
	}
	h2 {
		font-size: var(--pp-h2-size-sm);
	}
	.card.card-body h2:not(.accordion-header):not(.visually-hidden),
	.pp-datatable-card > h2:not(.accordion-header) {
		font-size: var(--pp-h2-size-sm);
	}
}

.logo {
	width: 1.625rem;
	height: auto;
	margin-top: -0.25rem;
	margin-left: 0.25rem;
	}

a {
	text-decoration:none;
	}

.btn:focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
	}

.lg-icon {
	color: var(--bs-emphasis-color);
	font-size: 1.25rem;
	display: inline-block;
	margin-right: -0.3125rem;
	margin-left: 0;
	cursor: pointer;
	}

.sm-icon {
	padding: 0;
	color: var(--bs-emphasis-color);
	background: var(--bs-body-bg);
	font-size: 1.125rem;
	}

.navbar .bi.menu-cog {
	color: var(--bs-white);
	font-size: var(--pp-font-caption);
	margin-right: 0.125rem;
	display: inline-block;
	}

.icon-24 {
    width: 2rem;
    height: auto;
	}

.display-none {
	display:none;
	}

/* ========== 2. Assign task ========== */

/* Assign task page title — unified staff switcher (display selected staff) */
.assign-task-page-header {
	text-align: center;
}
.assign-task-page-title-form {
	display: inline-block;
}
.assign-task-page-title-row {
	align-items: center;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	justify-content: center;
	max-width: 100%;
	padding-top: 1.25rem;
}
@media (max-width: 767.98px) {
	.assign-task-page-title-row {
		padding-top: 1rem;
	}
}
.assign-task-staff-details-btn {
	align-items: center;
	background-color: var(--bs-tertiary-bg);
	border: none;
	border-radius: 0.375rem;
	box-shadow: none;
	color: var(--bs-tertiary-color);
	display: inline-flex;
	flex-shrink: 0;
	font-size: var(--pp-font-body);
	height: 2rem;
	justify-content: center;
	line-height: 1;
	min-height: 2rem;
	min-width: 2rem;
	padding: 0;
	width: 2rem;
	-webkit-tap-highlight-color: transparent;
}
.assign-task-staff-details-btn:hover,
.assign-task-staff-details-btn:focus,
.assign-task-staff-details-btn:focus-visible,
.assign-task-staff-details-btn[aria-expanded="true"] {
	background-color: var(--bs-secondary-bg-subtle);
	box-shadow: none;
	color: var(--bs-tertiary-color);
	outline: none;
}
.assign-task-page-header .assign-task-staff-details-btn:active {
	background-color: var(--bs-secondary-bg-subtle);
	color: var(--bs-tertiary-color);
}
.assign-task-page-header__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin-top: 0.5rem;
}
.assign-task-page-title-dropdown {
	display: inline-block;
	max-width: 100%;
	vertical-align: top;
}
.assign-task-page-header .assign-task-page-title {
	padding-bottom: 0;
	line-height: 1.3;
}
.assign-task-page-header .assign-task-staff-dropdown__trigger {
	align-items: baseline;
	border: 0;
	box-shadow: none;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	flex-wrap: wrap;
	font-size: 1.375rem;
	font-weight: 500;
	gap: 0.35rem;
	justify-content: center;
	line-height: 1.3;
	max-width: 100%;
	min-height: 0;
	padding: 0;
	text-align: center;
	text-decoration: none;
	text-wrap: balance;
	vertical-align: top;
	-webkit-tap-highlight-color: transparent;
}
@media (max-width: 767.98px) {
	.assign-task-page-header .assign-task-staff-dropdown__trigger {
		font-size: 1.25rem;
	}
}
.assign-task-staff-dropdown__label {
	display: inline;
}
.assign-task-staff-dropdown__trigger:hover:not(.show),
.assign-task-staff-dropdown__trigger:focus:not(.show),
.assign-task-staff-dropdown__trigger:focus-visible:not(.show) {
	color: var(--bs-primary);
	text-decoration: none;
}
.assign-task-staff-dropdown__trigger:hover:not(.show) .assign-task-staff-chevron,
.assign-task-staff-dropdown__trigger:focus:not(.show) .assign-task-staff-chevron,
.assign-task-staff-dropdown__trigger:focus-visible:not(.show) .assign-task-staff-chevron {
	color: var(--bs-primary);
}
/* Override global open-dropdown chip (layout.css) — staff title trigger only */
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn) {
	background-color: transparent;
	border-color: transparent;
	box-shadow: none;
	color: var(--bs-primary);
	outline: none;
	padding-left: 0;
	padding-right: 0;
	text-decoration: none;
}
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn):hover,
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn):focus,
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn):focus-visible {
	background-color: transparent;
	border-color: transparent;
	box-shadow: none;
	color: var(--bs-primary);
	outline: none;
	text-decoration: none;
}
/* iOS keeps :focus-visible on tap while menu is open — suppress ring; color change is enough */
:root[data-palette="default"] .assign-task-page-header .assign-task-staff-dropdown__trigger:focus,
:root[data-palette="default"] .assign-task-page-header .assign-task-staff-dropdown__trigger:focus-visible,
:root[data-palette="default"] .assign-task-page-header .assign-task-staff-dropdown__trigger:active,
.assign-task-page-header .assign-task-staff-dropdown__trigger:focus,
.assign-task-page-header .assign-task-staff-dropdown__trigger:focus-visible,
.assign-task-page-header .assign-task-staff-dropdown__trigger:active {
	box-shadow: none;
	outline: none;
}
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn) .assign-task-staff-chevron,
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn) .bi,
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn) .pp-lucide,
.assign-task-page-header [data-bs-toggle="dropdown"][aria-expanded="true"]:not(.pp-dt-export-icon-btn) svg.lucide {
	color: var(--bs-primary);
}
.assign-task-staff-chevron {
	color: var(--bs-secondary-color);
	flex-shrink: 0;
	font-size: var(--pp-font-caption);
	line-height: 1;
	transition: transform 0.15s ease;
}
.assign-task-staff-chevron.pp-lucide,
svg.lucide.assign-task-staff-chevron {
	width: 1em;
	height: 1em;
}
.assign-task-page-header .assign-task-staff-dropdown__trigger[aria-expanded="true"] .assign-task-staff-chevron {
	transform: rotate(180deg);
}
.assign-task-staff-dropdown__menu {
	box-shadow: var(--bs-box-shadow);
	max-height: calc(100dvh - var(--navbar-h, 4.0625rem) - 7rem);
	max-width: min(100vw - 2rem, 28rem);
	min-width: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	width: max-content;
}
.assign-task-staff-dropdown__menu .dropdown-item {
	align-items: center;
	column-gap: 0.35rem;
	display: grid;
	font-weight: 600;
	grid-template-columns: 1.25rem 1fr 1.25rem;
	overflow-wrap: anywhere;
	text-align: center;
	white-space: normal;
	word-break: break-word;
}
.assign-task-staff-dropdown__check-slot {
	display: inline-flex;
	grid-column: 1;
	justify-content: center;
}
.assign-task-staff-dropdown__item-label {
	grid-column: 2;
	min-width: 0;
	text-align: center;
}
.assign-task-staff-dropdown__menu .dropdown-item.active .assign-task-staff-dropdown__check-slot {
	color: inherit;
}
@media (max-width: 767.98px) {
	.assign-task-staff-dropdown__menu .dropdown-item {
		padding: 0.625rem 1rem;
	}
}

/* Assign task — header day nav + actions (display selected staff) */
.assign-task-page-header .assign-task-date-nav {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}
.assign-task-page-header .assign-task-date-nav__row {
	align-items: center;
	justify-content: center;
}
.assign-task-page-header .assign-task-date-nav__cluster {
	align-items: center;
	column-gap: 0.25rem;
	flex-wrap: wrap;
	justify-content: center;
}
.assign-task-page-header .assign-task-date-nav__cluster > form {
	align-items: center;
	display: flex;
	margin: 0;
}
.assign-task-page-header .assign-task-date-nav__cluster > form:first-of-type {
	margin-inline-end: 1rem;
}
.assign-task-page-header .assign-task-date-nav__cluster .weekly-schedule-week-nav-step {
	align-items: center;
	display: inline-flex;
	flex-shrink: 0;
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.35rem 0.5rem;
}
.assign-task-page-header .assign-task-date-nav__cluster .weekly-schedule-week-nav-step .bi {
	display: block;
	font-size: 2rem;
	line-height: 1;
	width: 2rem;
}
.assign-task-page-header .assign-task-date-nav__cluster .assign-task-date-nav-trigger {
	align-items: center;
	color: var(--bs-body-color);
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 600;
	justify-content: center;
	letter-spacing: -0.01em;
	line-height: 1.25;
	/* Reserve room for longest common label ("Today — Wed. 12/31/2026" + chevron) across day reloads / font swap */
	min-height: 2.75rem;
	min-width: 15.5rem;
	padding-left: 0.65rem;
	padding-right: 0.65rem;
}
.assign-task-page-header .assign-task-date-nav__cluster .assign-task-date-nav-trigger:hover,
.assign-task-page-header .assign-task-date-nav__cluster .assign-task-date-nav-trigger:focus,
.assign-task-page-header .assign-task-date-nav__cluster .assign-task-date-nav-trigger:focus-visible {
	color: var(--bs-primary);
}
.assign-task-page-header .assign-task-date-nav__cluster .assign-task-date-nav-trigger .week-range-chevron {
	font-size: var(--pp-font-caption);
	line-height: 1;
}
.assign-task-page-header .assign-task-date-nav__cluster .weekly-schedule-week-nav-center {
	align-items: center;
	flex-direction: row;
	flex-grow: 0;
	flex-shrink: 0;
	padding-left: 0;
	padding-right: 0;
}
.assign-task-page-header .assign-task-date-nav-badges {
	align-items: center;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0;
	min-height: 2.75rem;
}
.assign-task-page-header .assign-task-date-nav .assign-task-date-nav-badges:empty {
	display: none;
}

.pp-past-date-dot__icon {
	font-size: 0.4rem;
}
.pp-past-date-dot__icon.pp-lucide,
svg.lucide.pp-past-date-dot__icon {
	width: 0.4rem;
	height: 0.4rem;
	fill: currentColor;
	stroke: none;
}

/* Filled Lucide circle (section markers, status dots) */
.pp-lucide-circle-fill.pp-lucide,
svg.lucide.pp-lucide-circle-fill {
	width: 0.55em;
	height: 0.55em;
	fill: currentColor;
	stroke: none;
	vertical-align: 0.05em;
}

/* Filled Lucide icons (mark-for-delete trash, filled flag, etc.) */
.pp-lucide-icon-fill.pp-lucide,
svg.lucide.pp-lucide-icon-fill {
	fill: currentColor;
	stroke: none;
}

/* Assign task page — section rhythm (mb-3) & consistent headings */
.assign-task-page .assign-task-section {
	margin-bottom: 1rem;
}
.assign-task-page .assign-task-section-title {
	font-size: 1.25rem;
	font-weight: 600;
	margin-top: 0;
	margin-bottom: 1rem;
	text-transform: none;
	text-align: left;
	border-bottom: none;
	padding-bottom: 0;
	line-height: 1.3;
	color: var(--bs-heading-color, inherit);
}
.assign-task-page #task_description,
.assign-task-page #supervisor_notes {
	font-weight: 400;
	font-size: inherit;
	width: 100%;
}

/* Assign to staff — form left, hours/tasks sidebar right (lg+); myself stays single column */
.assign-task-page .assign-task-form-column,
.assign-task-page .assign-task-sidebar-column {
	min-width: 0;
}

.assign-task-page .assign-task-staff-split {
	max-width: 100%;
}

.assign-task-page .assign-task-sidebar-column .card.card-body {
	width: 100%;
}

.assign-task-page .assign-task-sidebar-tasks .dataTables_wrapper {
	width: 100%;
}

.assign-task-page .assign-task-sidebar-tasks table.display {
	width: 100% !important;
}

.assign-task-page .assign-task-sidebar-hours table {
	font-size: var(--pp-dt-font-size);
	margin-bottom: 0;
}
.assign-task-page .assign-task-sidebar-hours table > :not(caption) > * > * {
	padding: var(--pp-dt-cell-padding-y) var(--pp-dt-cell-padding-x);
}

/* Display selected staff — top-align workspace border with sidebar cards */
.assign-task-page--staff .assign-task-form-column .assign-task-form-card {
	margin-top: 0;
	padding-top: 0;
}
.assign-task-page--staff .assign-task-section--header-nav,
.assign-task-page--self .assign-task-section--header-nav {
	margin-bottom: 0;
}
.assign-task-page--staff .assign-task-section--header-nav .assign-task-schedule-block,
.assign-task-page--self .assign-task-section--header-nav .assign-task-schedule-block {
	margin: 0;
	min-height: 0;
	padding: 0;
}
.assign-task-page--staff .assign-task-workspace {
	margin-top: 0;
}

/* PP DataTable — global (Phase 2 Track A) */
.dataTables_wrapper {
	width: 100%;
	max-width: 100%;
}
.dataTables_wrapper .dataTables_scroll {
	width: 100%;
}
/* Disabled 2026-06-30: forced 100% width blocked horizontal scroll on wide rollup tables
   (Report Engine with responsive: false). PP list pages keep width via Bootstrap w-100 on <table>. */
/* table.dataTable.display,
table.display {
	width: 100% !important;
} */
table.dataTable.display thead th,
table.display thead th {
	background-color: var(--pp-table-row-bg);
	border-bottom: 1px solid var(--bs-border-color);
	font-weight: 600;
	vertical-align: top;
}
table.dataTable.display tbody td,
table.display tbody td {
	border-bottom: 1px solid var(--bs-border-color);
	min-width: 0;
}
/* PP list tables — wrap long body text; headers never wrap; dates via Blade text-nowrap */
table.dataTable.display thead th,
table.display thead th {
	white-space: nowrap;
}
/* PP list tables — body cells break at word boundaries only (no mid-word splits); prose opt-in below */
table.dataTable.display tbody td:not(.text-nowrap):not(.pp-table-cell-prose),
table.display tbody td:not(.text-nowrap):not(.pp-table-cell-prose) {
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
}
/* Prose columns (Notes, Explanation, long description) — opt-in on <td> */
table.dataTable.display tbody td.pp-table-cell-prose,
table.display tbody td.pp-table-cell-prose {
	white-space: normal;
	word-break: normal;
	overflow-wrap: break-word;
}
table.dataTable.display .badge:not(.pp-table-status-chip),
table.display .badge:not(.pp-table-status-chip) {
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
	max-width: 100%;
}
/* PP list tables — cell links: body text + tokenized underline; hover → link color (not action buttons) */
table.dataTable.display tbody td a:not(.btn):not(.btn-link),
table.display tbody td a:not(.btn):not(.btn-link) {
	color: var(--pp-dt-cell-link-color);
	text-decoration: underline;
	text-decoration-color: var(--pp-dt-cell-link-underline-color);
	text-underline-offset: 0.12em;
}
table.dataTable.display tbody td a:not(.btn):not(.btn-link):not(.task-table-inline-link),
table.display tbody td a:not(.btn):not(.btn-link):not(.task-table-inline-link) {
	display: block;
	max-width: 100%;
}
table.dataTable.display tbody td a:not(.btn):not(.btn-link):hover,
table.dataTable.display tbody td a:not(.btn):not(.btn-link):focus-visible,
table.display tbody td a:not(.btn):not(.btn-link):hover,
table.display tbody td a:not(.btn):not(.btn-link):focus-visible,
table.dataTable.display tbody td:has(> a:only-child:not(.btn):not(.btn-link)):hover > a,
table.dataTable.display tbody td:has(> div:only-child > a:only-child:not(.btn):not(.btn-link)):hover > div > a,
table.display tbody td:has(> a:only-child:not(.btn):not(.btn-link)):hover > a,
table.display tbody td:has(> div:only-child > a:only-child:not(.btn):not(.btn-link)):hover > div > a {
	color: var(--pp-dt-cell-link-hover-color);
	text-decoration-color: var(--pp-dt-cell-link-hover-underline-color);
}

table.dataTable thead th.sorting,
table.dataTable thead th.sorting_asc,
table.dataTable thead th.sorting_desc {
	position: relative;
	background-image: none;
	padding-left: var(--pp-dt-cell-padding-x);
	padding-right: var(--pp-dt-sort-header-padding-right);
	font-weight: 600;
}
table.dataTable thead th.sorting::before,
table.dataTable thead th.sorting_asc::before,
table.dataTable thead th.sorting_desc::before,
table.dataTable thead th.sorting::after,
table.dataTable thead th.sorting_asc::after,
table.dataTable thead th.sorting_desc::after {
	content: '';
	position: absolute;
	right: 0.35rem;
	width: 1.25rem;
	height: 0.625rem;
	mask-repeat: no-repeat;
	mask-size: 1.25rem 0.625rem;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: 1.25rem 0.625rem;
	-webkit-mask-position: center;
}
table.dataTable thead th.sorting::before,
table.dataTable thead th.sorting_asc::before,
table.dataTable thead th.sorting_desc::before {
	top: 0.45rem;
	mask-image: url("../images/sort_chevron_up.svg");
	-webkit-mask-image: url("../images/sort_chevron_up.svg");
}
table.dataTable thead th.sorting::after,
table.dataTable thead th.sorting_asc::after,
table.dataTable thead th.sorting_desc::after {
	top: calc(0.45rem + 0.625rem);
	mask-image: url("../images/sort_chevron_down.svg");
	-webkit-mask-image: url("../images/sort_chevron_down.svg");
}
table.dataTable thead th.sorting::before,
table.dataTable thead th.sorting::after {
	background-color: var(--pp-table-sort-inactive-color);
}
table.dataTable thead th.sorting_asc::before {
	background-color: var(--pp-table-sort-active-color);
}
table.dataTable thead th.sorting_asc::after {
	background-color: var(--pp-table-sort-inactive-color);
}
table.dataTable thead th.sorting_desc::before {
	background-color: var(--pp-table-sort-inactive-color);
}
table.dataTable thead th.sorting_desc::after {
	background-color: var(--pp-table-sort-active-color);
}
/* Inactive sortable headers: secondary label + chevrons; active column: black label + active chevron */
table.dataTable thead th.sorting {
	color: var(--pp-table-sort-inactive-color, var(--bs-secondary));
}
table.dataTable thead th.sorting_asc,
table.dataTable thead th.sorting_desc {
	color: var(--pp-table-sorted-header-color, var(--bs-emphasis-color));
}
table.dataTable.display tbody tr.even,
table.dataTable.display tbody tr.even > td,
table.dataTable.display tbody tr.even > .sorting_1,
table.dataTable.display tbody tr.even > .sorting_2,
table.dataTable.display tbody tr.even > .sorting_3,
table.display tbody tr.even > td {
	background-color: var(--pp-table-row-bg) !important;
}
table.dataTable.display tbody tr.odd,
table.dataTable.display tbody tr.odd > td,
table.dataTable.display tbody tr.odd > .sorting_1,
table.dataTable.display tbody tr.odd > .sorting_2,
table.dataTable.display tbody tr.odd > .sorting_3,
table.display tbody tr.odd > td {
	background-color: var(--pp-table-stripe-bg) !important;
}
table.dataTable.display tbody tr.child > td,
table.display tbody tr.child > td {
	background-color: var(--pp-table-row-bg) !important;
}
table.dataTable.display tbody tr.danger > td,
table.dataTable.display tbody tr.danger.odd > td,
table.dataTable.display tbody tr.danger.even > td,
table.dataTable.display tbody tr.danger.odd > .sorting_1,
table.dataTable.display tbody tr.danger.odd > .sorting_2,
table.dataTable.display tbody tr.danger.odd > .sorting_3,
table.dataTable.display tbody tr.danger.even > .sorting_1,
table.dataTable.display tbody tr.danger.even > .sorting_2,
table.dataTable.display tbody tr.danger.even > .sorting_3,
table.display tbody tr.danger > td {
	background: var(--pp-row-status-danger-bg) !important;
}
.danger td,
tr.danger > td,
tr.danger.odd > td,
tr.danger.even > td {
	background: var(--pp-row-status-danger-bg) !important;
}
/* Task row status — light mode; gated by html data-pp-table-row-status (pilot: off = zebra + status chips).
   Blade still emits .in-process-task / .completed-task on <tr>. Re-enable fills: remove data-pp-table-row-status="off" from layouts. */
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.odd > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.even > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.odd > .sorting_1,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.odd > .sorting_2,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.odd > .sorting_3,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.even > .sorting_1,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.even > .sorting_2,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.completed-task.even > .sorting_3,
:root:not([data-pp-table-row-status="off"]) table.display tbody tr.completed-task > td,
:root:not([data-pp-table-row-status="off"]) .completed-task td {
	background: var(--pp-row-status-completed-bg) !important;
}
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.even > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > .sorting_1,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > .sorting_2,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > .sorting_3,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.even > .sorting_1,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.even > .sorting_2,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.even > .sorting_3,
:root:not([data-pp-table-row-status="off"]) table.display tbody tr.in-process-task > td,
:root:not([data-pp-table-row-status="off"]) .in-process-task td {
	background: var(--pp-row-status-in-process-bg) !important;
}
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > td,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > .sorting_1,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > .sorting_2,
:root:not([data-pp-table-row-status="off"]) table.dataTable.display tbody tr.in-process-task.odd > .sorting_3,
:root:not([data-pp-table-row-status="off"]) .in-process-task.odd td {
	background: var(--pp-row-status-in-process-bg-odd) !important;
}
:root:not([data-pp-table-row-status="off"]) .in-process-task a:not(.btn) {
	color: var(--pp-row-status-in-process-link);
}
:root:not([data-pp-table-row-status="off"]) .completed-task a:not(.btn) {
	color: var(--pp-row-status-completed-link);
}
/* PP table status chips — outline style (tables only; accordion .status-* unchanged) */
table.dataTable.display .pp-table-status-chip,
table.display .pp-table-status-chip,
table.table .pp-table-status-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 0.15rem 0.5rem;
	font-size: var(--pp-font-caption);
	font-weight: 400;
	line-height: 1.25;
	text-align: center;
	white-space: nowrap;
	border-radius: 0.25rem;
	background-color: var(--bs-body-bg) !important;
	border: 1px solid var(--bs-border-color) !important;
	color: var(--bs-secondary-color) !important;
}
table.dataTable.display .status-outstanding.pp-table-status-chip,
table.display .status-outstanding.pp-table-status-chip,
table.table .status-outstanding.pp-table-status-chip {
	border-color: var(--bs-danger) !important;
	color: var(--bs-danger) !important;
}
table.dataTable.display .status-completed.pp-table-status-chip,
table.display .status-completed.pp-table-status-chip,
table.table .status-completed.pp-table-status-chip {
	border-color: var(--bs-success) !important;
	color: var(--bs-success) !important;
}
table.dataTable.display .status-unassigned.pp-table-status-chip,
table.display .status-unassigned.pp-table-status-chip,
table.table .status-unassigned.pp-table-status-chip {
	border-color: var(--bs-warning) !important;
	color: var(--bs-body-color) !important;
}

/* Inspections Dashboard — longer WO labels may wrap; pending chips use body text */
.inspections-dashboard td.inspection-status-cell .pp-table-status-chip {
	white-space: normal;
	max-width: 100%;
	min-width: 0;
	height: auto;
}
.inspections-dashboard td.inspection-status-cell .pp-table-status-chip:not(.status-completed):not(.status-unassigned) {
	color: var(--bs-body-color) !important;
}

.danger a:not(.btn),
tr.danger a:not(.btn) {
	color: var(--pp-row-status-danger-link);
}
/* Status column cell utilities — scoped to DataTables; beats default link color on <a> */
table.dataTable.display td.pp-status-in-process,
table.display td.pp-status-in-process,
table.table td.pp-status-in-process,
table.dataTable.display td.pp-status-in-process a:not(.btn),
table.display td.pp-status-in-process a:not(.btn),
table.table td.pp-status-in-process a:not(.btn) {
	color: var(--pp-row-status-in-process-emphasis);
	white-space: nowrap;
}
table.dataTable.display td.text-danger,
table.display td.text-danger,
table.table td.text-danger,
table.dataTable.display td.text-danger a:not(.btn),
table.display td.text-danger a:not(.btn),
table.table td.text-danger a:not(.btn),
table.dataTable.display td.text-danger.fw-semibold a:not(.btn),
table.display td.text-danger.fw-semibold a:not(.btn) {
	color: var(--pp-row-status-danger-link);
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
	position: relative;
	padding-left: calc(0.5rem + 1.35rem + 0.25rem);
	cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child::before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child::before {
	top: 0.45rem;
	left: 0.5rem;
	width: 1.35rem;
	height: 1.35rem;
	margin-top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	box-sizing: border-box;
	box-shadow: none;
	border: 1.5px solid var(--bs-border-color);
	border-radius: 50%;
	background-color: var(--bs-body-bg);
	color: var(--bs-secondary-color);
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: normal;
	line-height: 1;
	content: "+";
	text-align: center;
	text-indent: 0;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child::before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child::before {
	content: "\2212";
	background-color: var(--bs-body-bg);
	border-color: var(--bs-emphasis-color);
	color: var(--bs-emphasis-color);
	transform: none;
	top: 0.45rem;
	margin-top: 0;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:hover::before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:focus::before {
	background-color: color-mix(in oklab, var(--bs-border-color) 35%, transparent);
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child a {
	position: relative;
	z-index: 1;
}

/* Responsive control column (dtr-column) — dedicated blank +/- column (site-wide) */
table.dataTable.dtr-column > thead > tr > th.control,
table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > td.control,
table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > th.control {
	position: relative;
	width: 2.75rem;
	min-width: 2.75rem;
	max-width: 2.75rem;
	padding: 0;
	box-sizing: border-box;
	vertical-align: middle;
	cursor: pointer;
}
@media (max-width: 767.98px) {
	table.dataTable.dtr-column > thead > tr > th.control,
	table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > td.control,
	table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > th.control {
		width: 2.5rem;
		min-width: 2.5rem;
		max-width: 2.5rem;
	}
}
/* Control column — never show sort chevrons (default order [[0,'asc']] would otherwise apply sorting_asc) */
table.dataTable.dtr-column thead > tr > th.control::before,
table.dataTable.dtr-column thead > tr > th.control::after {
	display: none !important;
}
table.dataTable.dtr-column thead > tr > th.control.sorting,
table.dataTable.dtr-column thead > tr > th.control.sorting_asc,
table.dataTable.dtr-column thead > tr > th.control.sorting_desc {
	padding-right: var(--pp-dt-cell-padding-x);
	font-weight: inherit;
	color: inherit;
}
/* Edit column — icon-only pencil; header label "Edit", centered cell */
table.dataTable.display th.pp-dt-edit-col,
table.dataTable.display td.pp-dt-edit-col {
	text-align: center;
	vertical-align: middle;
}
table.dataTable.display th.pp-dt-edit-col {
	width: 3rem;
	min-width: 3rem;
}
table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > td.control::before,
table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > th.control::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.35rem;
	height: 1.35rem;
	margin: 0;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	box-shadow: none;
	border: 1.5px solid var(--bs-border-color);
	border-radius: 50%;
	background-color: var(--bs-body-bg);
	color: var(--bs-secondary-color);
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: normal;
	line-height: 1;
	content: "+";
	text-align: center;
	text-indent: 0;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
table.dataTable.dtr-column > tbody > tr.parent > td.control::before,
table.dataTable.dtr-column > tbody > tr.parent > th.control::before {
	content: "\2212";
	background-color: var(--bs-body-bg);
	border-color: var(--bs-emphasis-color);
	color: var(--bs-emphasis-color);
	transform: translate(-50%, -50%);
}
table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > td.control:hover::before,
table.dataTable.dtr-column > tbody > tr[role="row"]:not(.dtrg-group) > td.control:focus::before {
	background-color: color-mix(in oklab, var(--bs-border-color) 35%, transparent);
}
table.dataTable.dtr-column > tbody > tr.dtrg-group > td.control,
table.dataTable.dtr-column > tbody > tr.dtrg-group > th.control {
	width: auto;
	min-width: 0;
	max-width: none;
	padding-left: 0.5rem;
	cursor: default;
}
table.dataTable.dtr-column > tbody > tr.dtrg-group > td.control::before,
table.dataTable.dtr-column > tbody > tr.dtrg-group > th.control::before {
	display: none !important;
}

/* Responsive control column — flat plus/minus (opt-in via .pp-dt-responsive-expand-plain on table) */
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > thead > tr > th.control,
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr[role="row"]:not(.dtrg-group) > td.control,
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr[role="row"]:not(.dtrg-group) > th.control {
	vertical-align: top;
	padding: var(--pp-dt-cell-padding-y) 0;
}
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr[role="row"]:not(.dtrg-group) > td.control::before,
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr[role="row"]:not(.dtrg-group) > th.control::before {
	top: 0.45rem;
	left: 50%;
	width: auto;
	height: auto;
	transform: translateX(-50%);
	border: none;
	border-radius: 0;
	background-color: transparent;
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-ui);
	transition: color 0.15s ease;
}
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr.parent > td.control::before,
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr.parent > th.control::before {
	background-color: transparent;
	border: none;
	color: var(--bs-body-color);
	transform: translateX(-50%);
}
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr[role="row"]:not(.dtrg-group) > td.control:hover::before,
table.dataTable.dtr-column.pp-dt-responsive-expand-plain > tbody > tr[role="row"]:not(.dtrg-group) > td.control:focus::before {
	background-color: transparent;
	color: var(--bs-body-color);
}

/* PP DataTable toolbar — shared shell (site-wide + Report Engine) */
.dataTables_wrapper .pp-dt-toolbar,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar,
.report-engine-drill-page .pp-dt-toolbar {
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius, 0.375rem);
	padding: 0.625rem 0.75rem;
	align-items: center;
	--pp-dt-toolbar-control-font-size: var(--pp-dt-font-size);
	--pp-dt-toolbar-control-padding-y: 0.25rem;
	--pp-dt-toolbar-control-padding-x: 0.5rem;
}
.report-engine-drill-page .pp-dt-toolbar {
	margin-bottom: 0.5rem;
}
/* PP section toolbar — borderless inside section cards; h2 owns top gap, toolbar bottom padding only */
.dataTables_wrapper .pp-dt-toolbar--in-section,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--in-section,
.report-engine-drill-page .pp-dt-toolbar--in-section {
	border: none;
	padding-top: 0;
	padding-bottom: 0.625rem;
	margin-bottom: 0;
}
@media (min-width: 768px) {
	.dataTables_wrapper .pp-dt-toolbar--in-section,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--in-section,
	.report-engine-drill-page .pp-dt-toolbar--in-section {
		padding-left: 0;
		padding-right: 0;
		padding-bottom: 1.25rem;
	}
}
@media (max-width: 767.98px) {
	.dataTables_wrapper .pp-dt-toolbar,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar,
	.report-engine-drill-page .pp-dt-toolbar {
		padding: 0.375rem 1rem;
	}
	.dataTables_wrapper .pp-dt-toolbar--in-section,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--in-section,
	.report-engine-drill-page .pp-dt-toolbar--in-section {
		border-radius: 0;
		border-bottom: 1px solid var(--bs-border-color);
		padding: 0 0 0.625rem;
	}
}
.dataTables_wrapper .pp-dt-toolbar > [class*="col-"],
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar > [class*="col-"] {
	max-width: 100%;
	display: flex;
	align-items: center;
}
.dataTables_wrapper .pp-dt-toolbar .pp-dt-toolbar-actions,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-toolbar-actions,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-toolbar-actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}
.dataTables_wrapper .pp-dt-toolbar .dataTables_filter,
.dataTables_wrapper .pp-dt-toolbar .dataTables_length,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons,
.report-engine-results-page .report-engine-section-toolbar .dataTables_filter,
.report-engine-results-page .report-engine-section-toolbar .dt-buttons {
	float: none;
	margin-bottom: 0;
}
/* Unified toolbar control height — search input-group (scoped to .pp-dt-toolbar) */
.dataTables_wrapper .pp-dt-toolbar .pp-dt-search-group,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-search-group,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group {
	align-items: stretch;
	min-height: var(--pp-dt-toolbar-control-height);
}
.dataTables_wrapper .pp-dt-toolbar .pp-dt-length-dropdown .pp-dt-length-trigger,
.dataTables_wrapper .pp-dt-toolbar .pp-dt-export-dropdown .pp-dt-export-trigger,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-length-dropdown .pp-dt-length-trigger,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-export-dropdown .pp-dt-export-trigger {
	align-self: center;
	height: var(--pp-dt-toolbar-control-height);
}
.dataTables_wrapper .pp-dt-toolbar .pp-dt-search-group .form-control,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-search-group .form-control,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group .form-control,
.dataTables_wrapper .pp-dt-toolbar .dataTables_length select,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dataTables_length select,
.report-engine-drill-page .pp-dt-toolbar .dataTables_length select {
	min-height: var(--pp-dt-toolbar-control-height);
	font-size: var(--pp-dt-toolbar-control-font-size);
	padding-top: var(--pp-dt-toolbar-control-padding-y);
	padding-bottom: var(--pp-dt-toolbar-control-padding-y);
	box-sizing: border-box;
	line-height: 1.25;
}
.dataTables_wrapper .pp-dt-toolbar .pp-dt-search-group .input-group-text,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-search-group .input-group-text,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group .input-group-text {
	min-height: var(--pp-dt-toolbar-control-height);
	font-size: var(--pp-dt-toolbar-control-font-size);
	padding-top: var(--pp-dt-toolbar-control-padding-y);
	padding-bottom: var(--pp-dt-toolbar-control-padding-y);
	box-sizing: border-box;
	display: flex;
	align-items: center;
}
.dataTables_wrapper .dt-buttons,
.report-engine-results-page .report-engine-section-toolbar .dt-buttons {
	margin-bottom: 0;
	padding: 0;
	display: inline-flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: flex-end;
}
.dataTables_wrapper .pp-dt-toolbar--quick-report .dataTables_filter {
	display: flex;
	align-items: center;
	width: 100%;
}
.dataTables_wrapper .pp-dt-toolbar--quick-report .dataTables_filter label {
	width: 100%;
	margin-bottom: 0;
}
@media (min-width: 768px) {
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) > [class*="col-"],
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) > [class*="col-"] {
		flex: 0 0 auto;
		width: auto;
	}
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) > [class*="col-"]:last-child {
		margin-left: auto;
		justify-content: flex-end;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export > .col:first-child,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > .col:first-child {
		flex: 1 1 auto;
		min-width: 0;
		max-width: none;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export > .col-auto:last-child,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > .col-auto:last-child {
		flex: 0 0 auto;
		margin-left: auto;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report > .col:first-child {
		flex: 0 1 16rem;
		min-width: 10rem;
		max-width: 20rem;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report {
		flex-wrap: nowrap;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report > .pp-dt-toolbar-actions {
		flex: 0 0 auto;
		margin-left: auto;
		justify-content: flex-end;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report > .ms-md-auto {
		margin-left: auto;
		justify-content: flex-end;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report .dataTables_filter {
		margin-right: 0;
		width: 100%;
	}
	/* Report Engine section — keep search · show · export on one desktop row */
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export.pp-dt-toolbar--in-section,
	.report-engine-drill-page .report-engine-section-toolbar .pp-dt-toolbar--search-export.pp-dt-toolbar--in-section {
		flex-wrap: nowrap;
		align-items: center;
	}
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > .pp-dt-toolbar-actions,
	.report-engine-drill-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > .pp-dt-toolbar-actions {
		flex: 0 0 auto;
		margin-left: auto;
		justify-content: flex-end;
		align-items: center;
		gap: 0.5rem;
	}
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar > .ms-md-auto {
		margin-left: auto;
		justify-content: flex-end;
	}
	.dataTables_wrapper .dataTables_filter {
		margin-right: 1rem;
	}
}
@media (max-width: 767.98px) {
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export):not(.pp-dt-toolbar--quick-report) > [class*="col-"]:last-child {
		justify-content: flex-start;
	}
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dataTables_filter,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dataTables_filter {
		width: 100%;
	}
	.dataTables_wrapper .dataTables_filter {
		margin-right: 0;
	}
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dataTables_filter label,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dataTables_filter label {
		width: 100%;
	}
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dataTables_filter input,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dataTables_filter input {
		flex: 1 1 auto;
		min-width: 0;
		max-width: none;
	}
	.dataTables_wrapper .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dt-buttons,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar:not(.pp-dt-toolbar--search-export) .dt-buttons {
		width: 100%;
		flex-wrap: wrap;
		justify-content: flex-start;
		margin-bottom: 0;
	}
	/* Mobile search + export row (ppDtDomSearchExport, ppReportEngineDom) — legacy without --in-section */
	.dataTables_wrapper .pp-dt-toolbar--search-export:not(.pp-dt-toolbar--in-section),
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export:not(.pp-dt-toolbar--in-section) {
		flex-wrap: nowrap;
		align-items: center;
		border: none;
		padding-left: 0;
		padding-right: 0;
		padding-top: 0;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export.pp-dt-toolbar--in-section,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export.pp-dt-toolbar--in-section {
		flex-wrap: nowrap;
		align-items: center;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export > [class*="col-"],
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > [class*="col-"] {
		width: auto !important;
		max-width: none;
		margin-bottom: 0 !important;
		flex: 0 1 auto;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export > .col:first-child,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > .col:first-child {
		flex: 1 1 auto;
		min-width: 0;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export > .col-auto:last-child,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export > .col-auto:last-child {
		flex: 0 0 auto !important;
		width: auto !important;
		min-width: 0;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export .dataTables_filter,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export .dataTables_filter {
		width: 100%;
		margin-right: 0;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export .pp-dt-search-group {
		max-width: none;
		width: 100%;
	}
	.dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-export-mount,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export .pp-dt-export-mount {
		width: auto;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		flex-shrink: 0;
	}
	/* Task Status — filter select between search and export on one mobile row */
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--with-filter > .col-auto:not(:last-child) {
		flex: 0 0 auto !important;
		width: auto !important;
	}
	/* Mobile search + length + export on one row (ppQuickReportDom); ≤575 hides length */
	.dataTables_wrapper .pp-dt-toolbar--quick-report {
		flex-wrap: nowrap;
		align-items: center;
		--bs-gutter-x: 0.5rem;
		gap: 0.5rem;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report > [class*="col-"] {
		margin-bottom: 0 !important;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report > .col:first-child {
		flex: 1 1 auto;
		min-width: 0;
		width: auto !important;
		max-width: none;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report > .pp-dt-toolbar-actions {
		flex: 0 0 auto !important;
		width: auto !important;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report .dataTables_filter {
		width: 100%;
		margin-right: 0;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report .pp-dt-search-group {
		max-width: none;
		width: 100%;
	}
	.dataTables_wrapper .pp-dt-toolbar--quick-report .pp-dt-length-mount,
	.dataTables_wrapper .pp-dt-toolbar--quick-report .pp-dt-export-mount {
		width: auto;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		flex-shrink: 0;
		align-self: center;
	}
	.pp-dt-export-dropdown .pp-dt-export-download {
		font-size: 1.125rem;
	}
	.pp-dt-toolbar .pp-dt-export-label {
		display: none;
	}
	.pp-dt-toolbar .pp-dt-export-dropdown .pp-dt-export-trigger {
		padding-inline: 0.5rem;
		gap: 0;
		min-width: var(--pp-dt-toolbar-control-height);
	}
}
@media (max-width: 575.98px) {
	/* Narrow mobile — demote Show; search + export stay one row (pager covers paging) */
	.dataTables_wrapper .pp-dt-toolbar--quick-report .pp-dt-length-mount {
		display: none !important;
	}
}
/* Hidden DT Buttons container — exports triggered via dropdown */
.dataTables_wrapper .pp-dt-toolbar .dt-buttons {
	position: absolute;
	width: 0.0625rem;
	height: 0.0625rem;
	padding: 0;
	margin: -0.0625rem;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.dataTables_wrapper .pp-dt-toolbar .pp-dt-export-mount,
.dataTables_wrapper .pp-dt-toolbar .pp-dt-length-mount,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-export-mount,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-length-mount,
.report-engine-drill-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-export-mount,
.report-engine-drill-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-length-mount {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-shrink: 0;
	align-self: center;
}
.dataTables_wrapper .pp-dt-toolbar .pp-dt-toolbar-actions .pp-dt-length-mount:empty,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-toolbar-actions .pp-dt-length-mount:empty,
.report-engine-drill-page .report-engine-section-toolbar .pp-dt-toolbar .pp-dt-toolbar-actions .pp-dt-length-mount:empty {
	display: none;
}
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-print,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-print,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-print,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf {
	margin: 0;
	border-radius: var(--bs-border-radius);
	font-size: var(--pp-dt-toolbar-control-font-size);
	padding: var(--pp-dt-toolbar-control-padding-y) var(--pp-dt-toolbar-control-padding-x);
	line-height: 1.5;
	border: 1px solid var(--pp-report-total-border-color);
	color: var(--pp-report-total-border-color);
	background-color: var(--bs-body-bg);
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: top;
	min-height: var(--pp-dt-toolbar-control-height);
}
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv:hover,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel:hover,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-print:hover,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf:hover,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv:focus,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel:focus,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-print:focus,
.dataTables_wrapper .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf:focus,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv:hover,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel:hover,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-print:hover,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf:hover,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv:focus,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel:focus,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-print:focus,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf:focus,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv:hover,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel:hover,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-print:hover,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf:hover,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-csv:focus,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-excel:focus,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-print:focus,
.report-engine-drill-page .pp-dt-toolbar .dt-buttons .dt-button.buttons-pdf:focus {
	border-color: var(--pp-report-total-border-color);
	color: var(--bs-white);
	background-color: var(--pp-report-total-border-color);
}
/* Export — Bootstrap dropdown (search + export toolbar) */
.pp-dt-export-dropdown {
	flex-shrink: 0;
}
.pp-dt-export-dropdown .pp-dt-export-trigger,
.pp-dt-export-dropdown .pp-dt-export-icon-btn {
	margin: 0;
	border: none;
	border-radius: var(--bs-border-radius);
	background-color: transparent;
	color: var(--bs-body-color);
	box-shadow: none;
	text-decoration: none;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	line-height: 1;
	white-space: nowrap;
	height: var(--pp-dt-toolbar-control-height);
	min-width: var(--pp-dt-toolbar-control-height);
	padding: 0 0.625rem;
}
.pp-dt-export-dropdown .pp-dt-export-trigger:hover,
.pp-dt-export-dropdown .pp-dt-export-trigger:focus,
.pp-dt-export-dropdown .pp-dt-export-trigger:focus-visible,
.pp-dt-export-dropdown.show .pp-dt-export-trigger,
.pp-dt-export-dropdown .pp-dt-export-trigger[aria-expanded="true"],
.pp-dt-export-dropdown .pp-dt-export-icon-btn:hover,
.pp-dt-export-dropdown .pp-dt-export-icon-btn:focus,
.pp-dt-export-dropdown .pp-dt-export-icon-btn:focus-visible,
.pp-dt-export-dropdown.show .pp-dt-export-icon-btn,
.pp-dt-export-dropdown .pp-dt-export-icon-btn[aria-expanded="true"] {
	border: none;
	background-color: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
	box-shadow: none;
}
.pp-dt-export-dropdown.show .pp-dt-export-trigger .bi,
.pp-dt-export-dropdown .pp-dt-export-trigger[aria-expanded="true"] .bi,
.pp-dt-export-dropdown.show .pp-dt-export-icon-btn .bi,
.pp-dt-export-dropdown .pp-dt-export-icon-btn[aria-expanded="true"] .bi {
	color: var(--bs-body-color);
}
.pp-dt-export-dropdown .pp-dt-export-download {
	font-size: 1.125rem;
	line-height: 1;
	flex-shrink: 0;
}
.pp-dt-export-dropdown .pp-dt-export-download.pp-lucide,
.pp-dt-export-dropdown svg.lucide.pp-dt-export-download {
	width: 1.125rem;
	height: 1.125rem;
}
.pp-dt-export-label {
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
	line-height: 1;
}
/* Rows per page — Bootstrap dropdown (mirrors export toolbar control) */
.pp-dt-length-dropdown {
	flex-shrink: 0;
	--pp-dt-length-menu-active-bg: var(--bs-primary);
	--pp-dt-length-menu-active-color: var(--bs-white);
}
.pp-dt-length-dropdown .pp-dt-length-trigger,
.pp-dt-length-dropdown .pp-dt-toolbar-icon-btn {
	margin: 0;
	border: none;
	border-radius: var(--bs-border-radius);
	background-color: transparent;
	color: var(--bs-body-color);
	box-shadow: none;
	text-decoration: none;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	white-space: nowrap;
	height: var(--pp-dt-toolbar-control-height);
	min-height: var(--pp-dt-toolbar-control-height);
	padding: 0 0.625rem;
}
.pp-dt-length-dropdown .pp-dt-length-trigger:hover,
.pp-dt-length-dropdown .pp-dt-length-trigger:focus,
.pp-dt-length-dropdown .pp-dt-length-trigger:focus-visible,
.pp-dt-length-dropdown.show .pp-dt-length-trigger,
.pp-dt-length-dropdown .pp-dt-length-trigger[aria-expanded="true"],
.pp-dt-length-dropdown .pp-dt-toolbar-icon-btn:hover,
.pp-dt-length-dropdown .pp-dt-toolbar-icon-btn:focus,
.pp-dt-length-dropdown .pp-dt-toolbar-icon-btn:focus-visible,
.pp-dt-length-dropdown.show .pp-dt-toolbar-icon-btn,
.pp-dt-length-dropdown .pp-dt-toolbar-icon-btn[aria-expanded="true"] {
	border: none;
	background-color: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
	box-shadow: none;
}
.pp-dt-length-dropdown.show .pp-dt-length-trigger .bi,
.pp-dt-length-dropdown .pp-dt-length-trigger[aria-expanded="true"] .bi,
.pp-dt-length-dropdown.show .pp-dt-toolbar-icon-btn .bi,
.pp-dt-length-dropdown .pp-dt-toolbar-icon-btn[aria-expanded="true"] .bi {
	color: var(--bs-body-color);
}
.pp-dt-length-trigger-label {
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
	line-height: 1;
}
.pp-dt-length-dropdown .pp-dt-length-menu {
	min-width: 4.5rem;
}
.pp-dt-length-menu .dropdown-item.active,
.pp-dt-length-menu .dropdown-item:active {
	background-color: var(--pp-dt-length-menu-active-bg);
	color: var(--pp-dt-length-menu-active-color);
}
.pp-dt-length-menu .dropdown-item.active:hover,
.pp-dt-length-menu .dropdown-item.active:focus,
.pp-dt-length-menu .dropdown-item.active:focus-visible {
	background-color: var(--pp-dt-length-menu-active-bg);
	color: var(--pp-dt-length-menu-active-color);
}
.dataTables_wrapper .pp-dt-length-native-hidden {
	position: absolute;
	width: 0.0625rem;
	height: 0.0625rem;
	padding: 0;
	margin: -0.0625rem;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
/* PP simple dropdown — compact desktop, touch-friendly mobile (export, schedule view, …) */
.pp-simple-dropdown-menu {
	font-size: var(--pp-dt-font-size);
	padding: 0.25rem 0;
}
.pp-simple-dropdown-menu .dropdown-item {
	padding: 0.375rem 0.75rem;
	font-size: inherit;
	line-height: 1.5;
}
@media (max-width: 767.98px) {
	.pp-simple-dropdown-menu .dropdown-item {
		padding: 0.5rem 0.875rem;
		min-height: 2.75rem;
		display: flex;
		align-items: center;
	}
}

.pp-palette-menu .dropdown-item.active {
	font-weight: 600;
}
.pp-dt-export-dropdown .pp-dt-export-menu {
	min-width: 6.5rem;
}
.dataTables_wrapper .dataTables_length {
	text-align: left;
}
.dataTables_wrapper .dataTables_length label {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem;
	white-space: nowrap;
	margin-bottom: 0;
}
.dataTables_wrapper .dataTables_length select {
	width: auto;
	min-width: 4.5rem;
	flex-shrink: 0;
}
.dataTables_wrapper .dataTables_filter {
	text-align: left;
}
.report-engine-results-page .report-engine-section-toolbar .dataTables_filter {
	text-align: left;
}
.dataTables_wrapper .dataTables_filter label,
.report-engine-results-page .report-engine-section-toolbar .dataTables_filter label,
.report-engine-drill-page .pp-dt-toolbar .dataTables_filter label {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0;
	white-space: nowrap;
}
.dataTables_wrapper .dataTables_filter input,
.report-engine-results-page .report-engine-section-toolbar .dataTables_filter input,
.report-engine-drill-page .pp-dt-toolbar .dataTables_filter input {
	width: auto;
	min-width: 8rem;
	max-width: 14rem;
	margin-left: 0;
}
/* Task list tables — block links inside stacked div layout (tasklist_table_no_modal) */
table.display td div > a:not(.task-table-inline-link) {
	display: block;
}

table.display .task-table-inline-link {
	display: inline;
}

/* Pointer-table — row-hot vs cell-links; see docs/frontend/tables.md */

/* Single-destination row-hot — whole row is the hit target */
.pointer-table:not(.pointer-table--cell-links) tbody > tr:not(.child):not(.dtrg-group):hover > td {
	background-color: var(--pp-dt-row-hot-hover-bg) !important;
	cursor: pointer;
}

/* Multi-destination tables — pointer only on explicit links/controls (Option B) */
.pointer-table--cell-links tbody td:hover {
	cursor: default;
}
.pointer-table--cell-links tbody td a:not(.btn),
.pointer-table--cell-links tbody td .form-check-input {
	cursor: pointer;
}

/* Cell-link list tables — direct <td><a> links wrap at word boundaries (user list, asset list, etc.) */
.pointer-table--cell-links tbody td > a:not(.btn):not(.btn-link):not(.task-table-inline-link) {
	display: block;
	max-width: 100%;
}
.pointer-table--cell-links tbody td:has(> a:only-child:not(.btn):not(.btn-link)):hover > a,
.pointer-table--cell-links tbody td:has(> div:only-child > a:only-child:not(.btn):not(.btn-link)):hover > div > a {
	color: var(--pp-dt-cell-link-hover-color);
	text-decoration-color: var(--pp-dt-cell-link-hover-underline-color);
}

/* Dashboard task search — Task ID without number spinners */
#task-search input[type='number'] {
	-moz-appearance: textfield;
	appearance: textfield;
}

#task-search input[type='number']::-webkit-outer-spin-button,
#task-search input[type='number']::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Inventory quantity — no increment/decrement spinners */
input.inventory-quantity-input[type='number'] {
	-moz-appearance: textfield;
	appearance: textfield;
}

input.inventory-quantity-input[type='number']::-webkit-outer-spin-button,
input.inventory-quantity-input[type='number']::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* PP DataTable search — icon input-group (ppEnhanceDataTableFilter) */
.dataTables_wrapper .dataTables_filter label:has(.pp-dt-search-group),
.report-engine-results-page .report-engine-section-toolbar .dataTables_filter label:has(.pp-dt-search-group),
.report-engine-drill-page .pp-dt-toolbar .dataTables_filter label:has(.pp-dt-search-group) {
	gap: 0;
	width: 100%;
}
.dataTables_wrapper .pp-dt-search-group,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-search-group,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	max-width: 14rem;
}
.dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export .pp-dt-search-group {
	max-width: none;
}
@media (min-width: 768px) {
	.dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export .pp-dt-search-group {
		max-width: 28rem;
	}
}
.dataTables_wrapper .pp-dt-toolbar--search-export .dataTables_filter input,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-toolbar--search-export .dataTables_filter input {
	max-width: none;
}
.dataTables_wrapper .pp-dt-search-group .input-group-text,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-search-group .input-group-text,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group .input-group-text {
	border-color: var(--bs-border-color);
	color: var(--bs-secondary-color);
}
.dataTables_wrapper .pp-dt-search-group .pp-lucide,
.dataTables_wrapper .pp-dt-search-group svg.lucide,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-search-group .pp-lucide,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-search-group svg.lucide,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group .pp-lucide,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group svg.lucide {
	font-size: var(--pp-font-ui);
	width: 1em;
	height: 1em;
	color: var(--bs-secondary-color);
}
.dataTables_wrapper .pp-dt-search-group .form-control,
.report-engine-results-page .report-engine-section-toolbar .pp-dt-search-group .form-control,
.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group .form-control {
	min-width: 0;
	max-width: none;
	width: 1%;
	flex: 1 1 auto;
	margin-left: 0;
}
@media (max-width: 767.98px) {
	.dataTables_wrapper .pp-dt-search-group,
	.report-engine-results-page .report-engine-section-toolbar .pp-dt-search-group,
	.report-engine-drill-page .pp-dt-toolbar .pp-dt-search-group {
		max-width: none;
	}
	.dataTables_wrapper .dataTables_filter input,
	.report-engine-results-page .report-engine-section-toolbar .dataTables_filter input,
	.report-engine-drill-page .pp-dt-toolbar .dataTables_filter input {
		min-width: 0;
		max-width: none;
	}
}

/* Legacy native length control — hidden when ppMountLengthDropdown is active */
table.dataTable tbody tr.dt-control {
	cursor: pointer;
}
table.dataTable tbody tr.child td {
	padding-left: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details {
	display: block;
	width: 100%;
}
table.dataTable > tbody > tr.child ul.dtr-details li {
	display: grid;
	grid-template-columns: minmax(5.5rem, auto) 1fr;
	gap: 0.35rem 0.75rem;
	align-items: start;
}
table.dataTable > tbody > tr.child span.dtr-title {
	display: block;
	min-width: 0;
	font-weight: 600;
}
table.dataTable > tbody > tr.child span.dtr-data {
	min-width: 0;
}
.pp-replacement-year-detail td {
	border-bottom: 1px solid var(--bs-border-color);
	padding: 0.35rem 0.5rem;
	vertical-align: top;
}
.pp-replacement-year-detail tr:last-child td {
	border-bottom: none;
}

/* Assign task add-ons list */
.assign-task-addon-list .assign-task-addon-row {
	cursor: pointer;
}
.assign-task-staff-card .assign-task-addon-icon,
.assign-task-addons-card .assign-task-addon-icon,
.assign-task-addon-list .assign-task-addon-icon {
	color: var(--bs-primary) !important;
}
.assign-task-staff-card .assign-task-addon-icon.pp-lucide,
.assign-task-addons-card .assign-task-addon-icon.pp-lucide,
.assign-task-addon-list .assign-task-addon-icon.pp-lucide,
.assign-task-staff-card svg.lucide.assign-task-addon-icon,
.assign-task-addons-card svg.lucide.assign-task-addon-icon,
.assign-task-addon-list svg.lucide.assign-task-addon-icon {
	width: 1em;
	height: 1em;
}
.assign-task-staff-card .assign-task-addon-row:hover .assign-task-addon-icon,
.assign-task-staff-card .assign-task-addon-row:focus .assign-task-addon-icon,
.assign-task-addons-card .assign-task-addon-row:hover .assign-task-addon-icon,
.assign-task-addons-card .assign-task-addon-row:focus .assign-task-addon-icon,
.assign-task-addon-list .assign-task-addon-row:hover .assign-task-addon-icon,
.assign-task-addon-list .assign-task-addon-row:focus .assign-task-addon-icon {
	color: var(--bs-primary) !important;
}
.assign-task-addon-list .assign-task-addon-row:focus {
	outline: 0.125rem solid var(--bs-primary);
	outline-offset: -0.125rem;
}

/* Override legacy add-on selected styling inside assign-task add-ons list */
.assign-task-addons-card #add_on_assets_selected {
	display: inline !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	color: inherit !important;
	font-weight: inherit !important;
	font-size: inherit !important;
	text-align: inherit !important;
}

.assign-task-addons-card #inventory_item_selected:empty,
.assign-task-addons-card #expenditure_type_selected:empty,
.assign-task-addons-card #expenditure_amount_selected:empty,
.assign-task-addons-card #add_on_assets_selected:empty,
.assign-task-addons-card #upload_files_selected:empty {
	display: none !important;
}

.assign-task-staff-card #staff_selected:empty,
.assign-task-addons-card #staff_selected:empty {
	display: none !important;
}

.assign-task-addon-filenames,
.assign-task-addon-filenames span {
	white-space: normal;
	word-break: break-word;
	overflow-wrap: anywhere;
}

.assign-task-addon-list > #uploads,
.assign-task-addon-list > #inv-wrapper,
.assign-task-addon-list > #exp-wrapper,
.assign-task-addon-list > #involves_add_on_asset {
	margin: 0;
	padding: 0;
}

/* Shared assign-task toggle switches (Specify Time, Log time now, Send Notification) */
.assign-task-form-switch {
	display: flex;
	align-items: center;
	padding-left: 2.75em;
	min-height: 1.5rem;
}
.assign-task-form-switch .form-check-input {
	width: 2.5em;
	height: 1.25em;
	margin-left: -2.75em;
	margin-top: 0;
	flex-shrink: 0;
	align-self: center;
	cursor: pointer;
}
.assign-task-form-switch .form-check-input:checked {
	background-color: var(--pp-form-switch-checked-bg);
	border-color: var(--pp-form-switch-checked-border);
}
.assign-task-form-switch .form-check-label {
	margin-bottom: 0;
	line-height: 1.5rem;
}

/* Log time now panel (assign to yourself) */
.assign-task-hours-panel {
	border: 1px solid var(--bs-border-color);
	background: var(--bs-body-bg);
}
.assign-task-hours-panel #hours-status {
	display: none;
}
.assign-task-hours-panel:has(#hours-now:checked) #hours-status {
	display: block;
}

/* Assign task schedule toolbar (date / floating task / specify time) */
#task-date .date-alert-text {
	display: inline-block;
	padding: 0.2em 0.5em;
	margin-bottom: 0;
	font-size: var(--pp-font-caption);
	font-weight: 600;
	color: var(--bs-warning-text-emphasis);
	background-color: var(--bs-warning-bg-subtle);
	border: 1px solid var(--bs-warning-border-subtle);
	border-radius: 0.375rem;
}
.assign-task-schedule-block {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.assign-task-form-contents {
	display: contents;
}
.assign-task-schedule-grid {
	--assign-task-schedule-col-width: 12rem;
}
@media (max-width: 767.98px) {
	.assign-task-schedule-grid {
		--bs-gutter-y: 1.5rem;
	}
}
.assign-task-schedule-date-col,
.assign-task-schedule-time-col,
.assign-task-schedule-float-col {
	min-width: 0;
}
.assign-task-schedule-field {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.assign-task-schedule-field-heading {
	min-height: 1.5rem;
	display: flex;
	align-items: center;
	margin-bottom: 0.25rem;
}
@media (max-width: 767.98px) {
	.assign-task-workspace-time {
		flex-wrap: nowrap;
		width: 100%;
	}
	.assign-task-workspace-time .assign-task-workspace-time-switch {
		flex-shrink: 0;
	}
	.assign-task-workspace-time .assign-task-workspace-time-field {
		flex: 1 1 auto;
		min-width: 0;
	}
	.assign-task-workspace-time .assign-task-time-picker-wrap {
		width: auto;
		flex: 1 1 auto;
		min-width: 5.5rem;
		max-width: none;
	}
}
.assign-task-quick-assign-toolbar {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0.5rem;
}
.assign-task-quick-assign-toolbar .assign-task-float-date-range {
	flex: 0 0 auto;
	margin-bottom: 0;
	max-width: none;
	width: 100%;
}
.assign-task-float-date-range .assign-task-date-input {
	width: 100%;
}
.assign-task-quick-assign {
	display: flex;
	flex: 0 0 auto;
	justify-content: flex-start;
	min-width: 0;
	width: 100%;
	max-width: none;
}
.assign-task-workspace .assign-task-quick-assign-toolbar {
	justify-content: flex-start;
}
.assign-task-workspace .assign-task-quick-assign {
	justify-content: flex-start;
}
.assign-task-quick-assign .form-select {
	width: 100%;
}
.assign-task-quick-assign-toolbar .assign-task-float-btn {
	align-items: center;
	align-self: flex-start;
	display: inline-flex;
	font-size: var(--pp-font-ui);
	font-weight: 400;
	height: calc(1.5em + 0.5rem + 2px);
	line-height: 1.5;
	margin-inline-start: 0;
	padding: 0.25rem 0.75rem;
	white-space: nowrap;
}
.assign-task-type-header {
	width: 100%;
}
.assign-task-workspace-time {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	max-width: 100%;
}
.assign-task-workspace-time .assign-task-time-picker-wrap {
	width: 12rem;
	max-width: 100%;
}

/* Assign work order as task — Phase 1 layout (reuses assign-task-page styles) */
.assign-work-order-page #involves-expenditure-0,
.assign-work-order-page #inventory-event-0 {
	display: none;
}
/* Expenditure/inventory panels sit inside section cards — drop inner card chrome */
.assign-work-order-page #involves-expenditure-0 > span > .card.card-body,
.assign-work-order-page #inventory-event-0 > .card.card-body {
	padding: 0 !important;
	margin-bottom: 0 !important;
	border: 0;
	background: transparent;
	box-shadow: none;
}
.assign-work-order-page #involves_asset_radio {
	display: none;
}
.assign-work-order-page #inspection,
.assign-work-order-page #project {
	display: none;
}
.assign-work-order-page #involves-inspection:has(#involves_inspection:checked) #inspection,
.assign-work-order-page #involves-project:has(#involves_project:checked) #project {
	margin-bottom: 1.5rem;
}
.assign-work-order-page #involves-inspection:has(#involves_inspection:checked),
.assign-work-order-page #involves-project:has(#involves_project:checked) {
	margin-bottom: 0;
}
.assign-work-order-page #task_type .row:has(#primary_task_category_id option[value="0"]:checked) #primary_task_type_id,
.assign-work-order-page #task_type .row:has(#primary_task_category_id option[value=""]:checked) #primary_task_type_id {
	opacity: 0.65;
	cursor: not-allowed;
	pointer-events: none;
	background-color: var(--bs-secondary-bg);
}

.assign-task-date-row .assign-task-date-picker-wrap,
.assign-task-time-row .assign-task-time-picker-wrap {
	width: 12rem;
	max-width: 100%;
}
/* Half-width assign form (staff sidebar layout) — 2-col grid so time never overlaps Floating */
.assign-task-form-column.col-md-6 .assign-task-schedule-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 0.75rem;
	row-gap: 0.75rem;
	margin-left: 0;
	margin-right: 0;
}
.assign-task-form-column.col-md-6 .assign-task-schedule-grid > [class*="col-"] {
	width: 100%;
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}
.assign-task-form-column.col-md-6 .assign-task-schedule-date-col {
	grid-column: 1;
	grid-row: 1;
}
.assign-task-form-column.col-md-6 .assign-task-schedule-float-col {
	grid-column: 2;
	grid-row: 1;
}
.assign-task-form-column.col-md-6 .assign-task-schedule-grid:not(:has(.assign-task-schedule-date-col)) .assign-task-schedule-float-col {
	grid-column: 1;
	grid-row: 1;
}
.assign-task-form-column.col-md-6 .assign-task-date-row .assign-task-date-picker-wrap,
.assign-task-form-column.col-md-6 .assign-task-time-row .assign-task-time-picker-wrap,
.assign-task-form-column.col-md-6 .assign-task-workspace-time .assign-task-time-picker-wrap {
	width: 100%;
	max-width: 100%;
}
.assign-task-form-column.col-md-6 .assign-task-workspace-time .assign-task-time-picker-wrap:focus-within {
	box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.2);
}
.assign-task-date-row .assign-task-date-picker-wrap .form-control,
.assign-task-time-row .assign-task-time-picker-wrap .form-control {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
}
.assign-task-workspace-time .assign-task-time-picker-wrap .form-control {
	width: 100%;
}
.assign-task-date-row .assign-task-date-picker-wrap .form-control {
	font-weight: 600;
	cursor: pointer;
}
.assign-task-date-row .assign-task-date-picker-wrap .assign-task-date-trigger,
.assign-task-time-row .assign-task-time-picker-wrap .assign-task-time-trigger {
	cursor: pointer;
	padding: 0.25rem 0.5rem;
	background-color: var(--bs-body-bg);
	color: var(--bs-primary);
}
.assign-task-date-row .assign-task-date-picker-wrap .assign-task-date-trigger:hover,
.assign-task-time-row .assign-task-time-picker-wrap .assign-task-time-trigger:hover {
	background-color: rgba(var(--bs-primary-rgb), 0.08);
}
.assign-task-date-row .assign-task-date-picker-wrap:focus-within {
	box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
	border-radius: var(--bs-border-radius-sm, 0.25rem);
}
.assign-task-schedule-float-col .assign-task-float-btn {
	padding: 0.25rem 0.875rem;
	font-size: var(--pp-font-ui);
	font-weight: 400;
	white-space: nowrap;
}
.assign-task-time-row .assign-task-done-by-row {
	min-width: 0;
}
.assign-task-time-row .assign-task-done-by-row:not(.d-none) {
	margin-bottom: 0;
}
.assign-task-time-row .assign-task-time-input {
	font-weight: 400;
	cursor: pointer;
}
.assign-task-time-row .assign-task-time-input::placeholder {
	color: var(--bs-secondary-color);
	font-weight: 400;
}
.assign-task-time-row .assign-task-time-picker-wrap:focus-within {
	box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
	border-radius: var(--bs-border-radius-sm, 0.25rem);
}
.assign-task-float-date-range .assign-task-date-input,
.assign-task-float-date-range .form-control-sm {
	width: 100%;
}
@media (max-width: 767.98px) {
	.assign-task-date-row .assign-task-date-picker-wrap,
	.assign-task-time-row:not(.assign-task-workspace-time) .assign-task-time-picker-wrap {
		width: 100%;
		max-width: none;
	}
	.assign-task-float-date-range .assign-task-date-input,
	.assign-task-float-date-range .form-control-sm {
		min-height: 2.75rem;
	}
	.assign-task-page .assign-task-quick-assign-toolbar {
		align-items: stretch;
		gap: 0.5rem;
	}
	.assign-task-page .assign-task-quick-assign-toolbar .assign-task-quick-assign {
		width: 100%;
		max-width: none;
	}
	.assign-task-page .assign-task-quick-assign-toolbar .assign-task-quick-assign .form-select-sm {
		min-height: 2.75rem;
	}
	.assign-task-page .assign-task-quick-assign-toolbar .assign-task-float-btn {
		align-self: flex-start;
		height: auto;
		margin-inline-start: 0;
		min-height: 2.75rem;
		padding: 0.5rem 0.875rem;
		touch-action: manipulation;
	}
}

/* Scrollable work-order radio lists (create bucket task; defer same on assign task) */
.assign-task-scroll-list {
	max-height: 56vh;
}

/* Select Task Type pills (Task / Project / Work Order / Inspection) */
.sourceable-type-pills {
	display: flex;
	flex-wrap: wrap;
	column-gap: 1rem;
	row-gap: 0.75rem;
}
.sourceable-type-pills label.btn {
	margin-right: 0.25rem;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}
/* Force palette --bs-primary (Bootstrap CDN btn-outline-primary can stay #0d6efd otherwise) */
.sourceable-type-pills .btn-outline-primary {
	--bs-btn-color: var(--bs-primary);
	--bs-btn-border-color: var(--bs-primary);
	--bs-btn-hover-color: var(--bs-white);
	--bs-btn-hover-bg: var(--bs-primary);
	--bs-btn-hover-border-color: var(--bs-primary);
	--bs-btn-active-color: var(--bs-white);
	--bs-btn-active-bg: var(--bs-primary);
	--bs-btn-active-border-color: var(--bs-primary);
}
.sourceable-type-pills .btn-check:checked + .btn-outline-primary {
	--bs-btn-color: var(--bs-white);
	--bs-btn-bg: var(--bs-primary);
	--bs-btn-border-color: var(--bs-primary);
}

/* Phone + tablet: two buttons per row (2×2 when four options) */
@media (max-width: 991.98px) {
	.sourceable-type-pills {
		column-gap: 0.5rem;
		row-gap: 0.75rem;
	}
	.sourceable-type-pills label.btn {
		flex: 0 0 calc(50% - 0.25rem);
		width: calc(50% - 0.25rem);
		max-width: calc(50% - 0.25rem);
		margin-right: 0;
		margin-bottom: 0;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
		justify-content: center;
	}
}

/* Assign task workspace — Section 2 (Select Task Type + form body) */
.assign-task-workspace {
	border: 1px solid var(--bs-tertiary-color);
	border-radius: 0.75rem;
	padding: 1rem;
	margin-top: 0.25rem;
}

/* Select Category & Type — dim Task Type until category is chosen (pure CSS :has) */
#task_type .row:has(#primary_task_category_id option[value="0"]:checked) #primary_task_type_id {
	opacity: 0.65;
	cursor: not-allowed;
	pointer-events: none;
	background-color: var(--bs-secondary-bg);
}

/* Inventory entry cards (assign task modal and other inventory forms) */
.inventory-entry-card {
	background-color: var(--bs-body-bg);
}
.inventory-entry-header .inventory-entry-remove {
	white-space: nowrap;
}

/* Task-row + assign inventory / expenditure / add-on — icon trash Remove */
.pp-inventory-modal-task-row .inventory-existing-remove,
.pp-inventory-modal-task-row .inventory-entry-remove,
.pp-inventory-modal-assign .inventory-entry-remove,
.pp-expenditures-modal-task-row .expenditure-existing-remove,
.pp-expenditures-modal-task-row .expenditure-entry-remove,
.pp-expenditures-modal-assign .expenditure-entry-remove,
.pp-add-on-modal-task-row .add-on-entry-remove,
.pp-add-on-modal-assign .add-on-entry-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	font-size: 1.125rem;
	line-height: 1;
	text-decoration: none;
	touch-action: manipulation;
}

.pp-inventory-modal-task-row .inventory-existing-remove:hover,
.pp-inventory-modal-task-row .inventory-existing-remove:focus,
.pp-inventory-modal-task-row .inventory-entry-remove:hover,
.pp-inventory-modal-task-row .inventory-entry-remove:focus,
.pp-inventory-modal-assign .inventory-entry-remove:hover,
.pp-inventory-modal-assign .inventory-entry-remove:focus,
.pp-expenditures-modal-task-row .expenditure-existing-remove:hover,
.pp-expenditures-modal-task-row .expenditure-existing-remove:focus,
.pp-expenditures-modal-task-row .expenditure-entry-remove:hover,
.pp-expenditures-modal-task-row .expenditure-entry-remove:focus,
.pp-expenditures-modal-assign .expenditure-entry-remove:hover,
.pp-expenditures-modal-assign .expenditure-entry-remove:focus,
.pp-add-on-modal-task-row .add-on-entry-remove:hover,
.pp-add-on-modal-task-row .add-on-entry-remove:focus,
.pp-add-on-modal-assign .add-on-entry-remove:hover,
.pp-add-on-modal-assign .add-on-entry-remove:focus {
	color: var(--bs-danger);
	opacity: 0.75;
}

/* Task-row + assign — compact field touch floor */
.pp-inventory-modal-task-row .form-control-sm,
.pp-inventory-modal-task-row .form-select-sm,
.pp-inventory-modal-task-row textarea.form-control-sm,
.pp-inventory-modal-assign .form-control-sm,
.pp-inventory-modal-assign .form-select-sm,
.pp-inventory-modal-assign textarea.form-control-sm,
.pp-expenditures-modal-task-row .form-control-sm,
.pp-expenditures-modal-task-row .form-select-sm,
.pp-expenditures-modal-task-row textarea.form-control-sm,
.pp-expenditures-modal-task-row .input-group-sm .form-control,
.pp-expenditures-modal-assign .form-control-sm,
.pp-expenditures-modal-assign .form-select-sm,
.pp-expenditures-modal-assign textarea.form-control-sm,
.pp-add-on-modal-task-row .form-control-sm,
.pp-add-on-modal-task-row .form-select-sm,
.pp-add-on-modal-task-row textarea.form-control-sm,
.pp-add-on-modal-assign .form-control-sm,
.pp-add-on-modal-assign .form-select-sm,
.pp-add-on-modal-assign textarea.form-control-sm {
	min-height: 2.75rem;
}

.pp-inventory-modal-task-row .modal-footer .btn,
.pp-expenditures-modal-task-row .modal-footer .btn,
.pp-add-on-modal-task-row .modal-footer .btn {
	min-height: 2.75rem;
	touch-action: manipulation;
}

/* Task-row expenditures — remove column align */
.pp-expenditures-modal-task-row .expenditure-remove-col {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	align-self: stretch;
	min-height: calc(0.875rem * 1.5 + 0.25rem + 2.75rem);
	padding-bottom: 0;
}

/* Task-row add-on modal — save-to-apply trash mark (Perfect modal) */
.pp-add-on-modal-task-row .add-on-remove-col {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	align-self: stretch;
	min-height: calc(0.875rem * 1.5 + 0.25rem + 2.75rem);
	padding-bottom: 0;
}

.pp-add-on-modal-task-row .add-on-remove-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	font-size: 1.125rem;
	line-height: 1;
	text-decoration: none;
	touch-action: manipulation;
}

.pp-add-on-modal-task-row .add-on-remove-btn:hover,
.pp-add-on-modal-task-row .add-on-remove-btn:focus {
	color: var(--bs-body-color);
	opacity: 0.75;
}

.pp-add-on-modal-task-row .ao-existing-row.is-marked-for-remove {
	opacity: 0.45;
}

.pp-add-on-modal-task-row .ao-existing-row.is-marked-for-remove .add-on-remove-btn {
	opacity: 1;
	color: var(--bs-danger);
}

/* Task-row Task Hours modal — flat rows + trash icon Remove */
.pp-task-hours-modal-task-row .task-hours-remove-col {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	align-self: stretch;
	/* Match label + gap + input so the icon sits on the input baseline */
	min-height: calc(0.875rem * 1.5 + 0.25rem + 2.75rem);
	padding-bottom: 0;
}

.pp-task-hours-modal-task-row .task-hours-remove-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	font-size: 1.125rem;
	line-height: 1;
	text-decoration: none;
	touch-action: manipulation;
}

.pp-task-hours-modal-task-row .task-hours-remove-btn:hover,
.pp-task-hours-modal-task-row .task-hours-remove-btn:focus {
	color: var(--bs-body-color);
	opacity: 0.75;
}

.pp-task-hours-modal-task-row .th-row.is-marked-for-remove {
	opacity: 0.45;
}

.pp-task-hours-modal-task-row .th-row.is-marked-for-remove .task-hours-remove-btn {
	opacity: 1;
	color: var(--bs-danger);
}

.pp-task-hours-modal-task-row .modal-footer .btn {
	min-height: 2.75rem;
	touch-action: manipulation;
}

.pp-task-hours-modal-task-row .form-control-sm,
.pp-task-hours-modal-task-row .form-select-sm {
	min-height: 2.75rem;
}

/* Task-row Attachments modal — touch footer */
.pp-file-modal-task-row .modal-footer .btn {
	min-height: 2.75rem;
	touch-action: manipulation;
}

/* Task-row + assign + shared edit-form modals — footer touch floor */
.pp-staff-notes-modal-task-row .modal-footer .btn,
.pp-supervisor-notes-modal-task-row .modal-footer .btn,
.pp-date-edit-modal-task-row .modal-footer .btn,
.pp-task-name-modal-task-row .modal-footer .btn,
.pp-task-category-modal-task-row .modal-footer .btn,
.pp-crew-modal-task-row .modal-footer .btn,
.pp-bulk-hours-modal-task-row .modal-footer .btn,
.pp-add-to-project-modal-task-row .modal-footer .btn,
.pp-bucket-move-modal .modal-footer .btn,
.pp-bucket-change-dates-modal .modal-footer .btn,
.pp-task-delete-modal-task-row .modal-footer .btn,
.pp-add-file-modal .modal-footer .btn,
.pp-inventory-modal-assign .modal-footer .btn,
.pp-expenditures-modal-assign .modal-footer .btn,
.pp-add-on-modal-assign .modal-footer .btn,
.pp-crew-modal-assign .modal-footer .btn,
.pp-asset-select-modal .modal-footer .btn {
	min-height: 2.75rem;
	touch-action: manipulation;
}

/* Task-row Google Map + Multi-Asset — inset fullscreen + Close touch */
.pp-google-map-modal-task-row .modal-dialog.modal-fullscreen,
.pp-multi-asset-modal-task-row .modal-dialog.modal-fullscreen {
	width: calc(100vw - 2rem);
	max-width: none;
	height: calc(100% - 2rem);
	margin: 1rem auto;
}
.pp-google-map-modal-task-row .modal-content,
.pp-multi-asset-modal-task-row .modal-content {
	border-radius: var(--bs-modal-border-radius);
	border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
	height: 100%;
}
.pp-google-map-modal-task-row .modal-body,
.pp-multi-asset-modal-task-row .modal-body {
	flex: 1 1 auto;
	min-height: 0;
}
.pp-google-map-modal-task-row .modal-footer .btn,
.pp-multi-asset-modal-task-row .modal-footer .btn {
	min-height: 2.75rem;
	touch-action: manipulation;
}
@media (max-width: 575.98px) {
	.pp-google-map-modal-task-row .modal-dialog.modal-fullscreen,
	.pp-multi-asset-modal-task-row .modal-dialog.modal-fullscreen {
		width: calc(100vw - 1rem);
		height: calc(100% - 1rem);
		margin: 0.5rem auto;
	}
}

/* .expenditure-entry-card {
	background-color: var(--bs-body-bg);
} */
.expenditure-entry-header .expenditure-entry-remove {
	white-space: nowrap;
}

.add-on-entry-card {
	background-color: var(--bs-body-bg);
}
.add-on-entry-header .add-on-entry-remove {
	white-space: nowrap;
}

/* Modern asset picker — assign task (#activity_center) and reusable .modern-asset-picker wrapper */
#activity_center .assign-asset-toolbar-actions,
.modern-asset-picker .assign-asset-toolbar-actions {
	flex-wrap: nowrap;
}
@media (max-width: 767.98px) {
	#activity_center .assign-asset-toolbar-actions,
	.modern-asset-picker .assign-asset-toolbar-actions {
		flex-wrap: wrap;
	}
	#activity_center .assign-asset-toolbar-actions .assign-asset-search-trigger,
	.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-search-trigger {
		flex: 1 1 100%;
	}
}
#activity_center .assign-asset-toolbar-actions .assign-asset-search-trigger,
#activity_center .assign-asset-toolbar-actions .assign-asset-map-trigger,
#activity_center .assign-asset-toolbar-actions .assign-asset-gps-trigger,
.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-search-trigger,
.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-map-trigger,
.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-gps-trigger {
	height: calc(1.5em + .75rem + 0.125rem);
	min-height: calc(1.5em + .75rem + 0.125rem);
	width: auto;
}
#activity_center .assign-asset-toolbar-actions .assign-asset-search-trigger,
.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-search-trigger {
	flex: 1 1 0;
	min-width: 0;
}
#activity_center .assign-asset-toolbar-actions .assign-asset-map-trigger,
#activity_center .assign-asset-toolbar-actions .assign-asset-gps-trigger,
.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-map-trigger,
.modern-asset-picker .assign-asset-toolbar-actions .assign-asset-gps-trigger {
	flex-shrink: 0;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}
#activity_center .assign-asset-toolbar .search-container,
.modern-asset-picker .assign-asset-toolbar .search-container {
	width: 100%;
}
#activity_center .assign-asset-toolbar-actions .search-container,
.modern-asset-picker .assign-asset-toolbar-actions .search-container {
	flex: 1 1 16rem;
	min-width: 0;
	width: auto;
}
#activity_center .assign-asset-search-trigger,
#activity_center .assign-asset-map-trigger,
#activity_center .assign-asset-gps-trigger,
.modern-asset-picker .assign-asset-search-trigger,
.modern-asset-picker .assign-asset-map-trigger,
.modern-asset-picker .assign-asset-gps-trigger {
	appearance: none;
	background-color: var(--bs-body-bg);
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	color: var(--bs-secondary-color);
	cursor: pointer;
	font-weight: 400;
	min-height: calc(1.5em + .75rem + 0.125rem);
	padding: .375rem .75rem;
}
#activity_center .assign-asset-search-trigger:hover,
#activity_center .assign-asset-search-trigger:focus,
#activity_center .assign-asset-search-trigger:focus-visible,
#activity_center .assign-asset-map-trigger:hover,
#activity_center .assign-asset-map-trigger:focus,
#activity_center .assign-asset-map-trigger:focus-visible,
#activity_center .assign-asset-gps-trigger:hover,
#activity_center .assign-asset-gps-trigger:focus,
#activity_center .assign-asset-gps-trigger:focus-visible,
.modern-asset-picker .assign-asset-search-trigger:hover,
.modern-asset-picker .assign-asset-search-trigger:focus,
.modern-asset-picker .assign-asset-search-trigger:focus-visible,
.modern-asset-picker .assign-asset-map-trigger:hover,
.modern-asset-picker .assign-asset-map-trigger:focus,
.modern-asset-picker .assign-asset-map-trigger:focus-visible,
.modern-asset-picker .assign-asset-gps-trigger:hover,
.modern-asset-picker .assign-asset-gps-trigger:focus,
.modern-asset-picker .assign-asset-gps-trigger:focus-visible {
	background-color: var(--bs-body-bg);
	border-color: var(--bs-border-color);
	box-shadow: none;
	color: var(--bs-secondary-color);
	outline: none;
}
#activity_center .assign-asset-map-trigger:hover .bi,
#activity_center .assign-asset-map-trigger:focus .bi,
#activity_center .assign-asset-map-trigger:focus-visible .bi,
#activity_center .assign-asset-map-trigger:active .bi,
#activity_center .assign-asset-gps-trigger:hover .bi,
#activity_center .assign-asset-gps-trigger:focus .bi,
#activity_center .assign-asset-gps-trigger:focus-visible .bi,
#activity_center .assign-asset-gps-trigger:active .bi,
.modern-asset-picker .assign-asset-map-trigger:hover .bi,
.modern-asset-picker .assign-asset-map-trigger:focus .bi,
.modern-asset-picker .assign-asset-map-trigger:focus-visible .bi,
.modern-asset-picker .assign-asset-map-trigger:active .bi,
.modern-asset-picker .assign-asset-gps-trigger:hover .bi,
.modern-asset-picker .assign-asset-gps-trigger:focus .bi,
.modern-asset-picker .assign-asset-gps-trigger:focus-visible .bi,
.modern-asset-picker .assign-asset-gps-trigger:active .bi {
	color: inherit !important;
}
#activity_center #capture-location,
.modern-asset-picker #capture-location {
	margin-top: 0 !important;
	background: none;
	border: none;
	padding: 0;
	box-shadow: none;
}

/* Assets selected summary — success panel with emphasized asset names */
#activity_center .assign-task-assets-selected,
.modern-asset-picker .assign-task-assets-selected {
	display: none;
}
#activity_center .assign-task-assets-selected.is-visible,
.modern-asset-picker .assign-task-assets-selected.is-visible {
	display: block;
}
#activity_center .assign-task-assets-selected-panel,
.modern-asset-picker .assign-task-assets-selected-panel {
	background-color: var(--bs-success-bg-subtle);
	border-color: var(--bs-success-border-subtle) !important;
}
:root[data-theme="dark"] #activity_center .assign-task-assets-selected-panel,
:root[data-theme="dark"] .modern-asset-picker .assign-task-assets-selected-panel {
	background-color: color-mix(in oklab, var(--bs-success) 18%, var(--pp-surface) 82%);
	border-color: color-mix(in oklab, var(--bs-success) 45%, var(--pp-surface) 55%) !important;
}
#activity_center .assign-task-assets-selected-icon,
.modern-asset-picker .assign-task-assets-selected-icon {
	font-size: var(--pp-font-body);
	line-height: 1;
}
#activity_center .assign-task-assets-selected-label,
.modern-asset-picker .assign-task-assets-selected-label {
	font-size: var(--pp-font-ui);
	line-height: 1.3;
}
#activity_center .assign-task-assets-selected-text,
.modern-asset-picker .assign-task-assets-selected-text {
	display: block !important;
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	font-weight: 400 !important;
	font-size: inherit;
	line-height: 1.5;
	text-align: left !important;
	white-space: normal;
	word-break: break-word;
}
#activity_center .assign-task-assets-selected-text .assign-task-asset-name-emphasis,
.modern-asset-picker .assign-task-assets-selected-text .assign-task-asset-name-emphasis {
	font-weight: 600 !important;
	color: var(--bs-success) !important;
}
#activity_center .assign-task-assets-selected-text .assign-task-asset-path,
.modern-asset-picker .assign-task-assets-selected-text .assign-task-asset-path {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-caption);
	font-weight: 500;
	line-height: 1.2;
}
/* Asset rows — flex layout (checkbox size/stroke is site-wide) */
#activity_center .assign-task-asset-check .form-check-input,
.modern-asset-picker .assign-task-asset-check .form-check-input {
	margin-top: 0;
	margin-left: 0;
	float: none;
	flex-shrink: 0;
}
#activity_center .assign-task-asset-check .form-check-label,
.modern-asset-picker .assign-task-asset-check .form-check-label {
	padding-left: 0;
}
/* Asset pickers — radios match site-wide unchecked stroke (checkboxes use site-wide rule) */
#activity_center #pp-asset-picker-accordion .form-check-input[type="radio"],
.modern-asset-picker #pp-asset-picker-accordion .form-check-input[type="radio"],
#proAccordionFlushModal .form-check-input[type="radio"] {
	width: 1.5rem;
	height: 1.5rem;
	border: 2px solid var(--bs-gray-300) !important;
	background-color: var(--bs-body-bg);
	box-shadow: none;
}
#activity_center #pp-asset-picker-accordion .form-check-input[type="radio"]:checked,
.modern-asset-picker #pp-asset-picker-accordion .form-check-input[type="radio"]:checked,
#proAccordionFlushModal .form-check-input[type="radio"]:checked {
	border-color: var(--bs-primary) !important;
	background-color: var(--bs-primary);
}
#activity_center #pp-asset-picker-accordion .form-check-input[type="radio"]:focus:not(:checked),
.modern-asset-picker #pp-asset-picker-accordion .form-check-input[type="radio"]:focus:not(:checked),
#proAccordionFlushModal .form-check-input[type="radio"]:focus:not(:checked) {
	border-color: var(--bs-gray-300) !important;
	box-shadow: 0 0 0 0.2rem color-mix(in oklab, var(--bs-gray-300) 45%, transparent);
}
#activity_center #pp-asset-picker-accordion .form-check-input[type="radio"]:focus:checked,
.modern-asset-picker #pp-asset-picker-accordion .form-check-input[type="radio"]:focus:checked,
#proAccordionFlushModal .form-check-input[type="radio"]:focus:checked {
	border-color: var(--bs-primary) !important;
	box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb, 13, 110, 253), 0.35);
}
/* Asset child modal — footer */
[id^="myModal"].modal .modal-footer {
	display: flex;
	justify-content: flex-end;
	padding: 0.75rem 1rem;
	border-top: 1px solid var(--bs-border-color);
}

.assign-task-hours-fields:not(:empty) {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-ui);
}
#multi-asset-hours .fieldwrapper {
	border: 1px solid var(--bs-border-color);
	border-radius: .5rem;
	background: var(--bs-light);
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
	box-shadow: none;
}
#multi-asset-hours .fieldwrapper:last-child {
	margin-bottom: 0;
}
#multi-asset-hours .fieldwrapper > label {
	display: block;
	font-weight: 600;
	font-size: .9375rem;
	color: var(--bs-body-color);
	margin-bottom: .75rem;
}
/* Hours / minutes / type use form-select — layout widths only (no appearance: auto) */
#multi-asset-hours .fieldwrapper select[id^="hours_"]:not([id*="hours_type"]) {
	width: 4.25rem;
	display: inline-block;
	margin-right: .5rem;
	vertical-align: middle;
}
#multi-asset-hours .fieldwrapper select[name^="minutes_"] {
	width: 4.75rem;
	display: inline-block;
	vertical-align: middle;
}
#multi-asset-hours .fieldwrapper select[id^="hours_type_"] {
	display: block;
	width: 100%;
	max-width: 16rem;
	margin-top: .75rem;
	margin-bottom: .5rem;
}
#multi-asset-hours .fieldwrapper select[id^="status_"] {
	width: auto;
	min-width: 9rem;
	max-width: 12rem;
	display: inline-block;
	vertical-align: middle;
	margin-top: 0;
	margin-bottom: 0 !important;
}
#multi-asset-hours .fieldwrapper br {
	display: none;
}
	
.initial-hide {
    display: none;
	}
	
.clear-both {
	clear:both;
	}

	
.navbar-dark .navbar-nav .nav-link {
	color:rgba(255,255,255,1);
	}

/* Navbar utility icons (Alerts, Help, Theme, Setup) — 1.25rem desktop + mobile */
.nav-header-util-icon {
	font-size: 1.25rem;
	line-height: 1;
}

.nav-header-util-icon.pp-lucide,
.nav-header-util-icon svg.lucide,
svg.nav-header-util-icon {
	width: 1.25rem;
	height: 1.25rem;
	stroke-width: 1.75;
	flex-shrink: 0;
}

.nav-hamburger-icon.pp-lucide,
.nav-hamburger-icon svg.lucide {
	width: 1.5rem;
	height: 1.5rem;
	stroke-width: 1.75;
	flex-shrink: 0;
}

.nav-util-user-icon.pp-lucide,
.nav-util-user-icon svg.lucide {
	width: 1.25rem;
	height: 1.25rem;
	stroke-width: 1.75;
	flex-shrink: 0;
}

/* Theme toggle — dual Lucide icons; CSS swap (no JS classList) */
[data-theme-toggle] .pp-theme-icon--dark {
	display: none;
}

:root[data-theme="dark"] [data-theme-toggle] .pp-theme-icon--light {
	display: none;
}

:root[data-theme="dark"] [data-theme-toggle] .pp-theme-icon--dark {
	display: inline-flex;
}

/* Offcanvas nav menus — list + title icons at 1.25rem (override .offcanvas .pp-lucide 1em) */
.offcanvas-header .pp-lucide,
.offcanvas-header svg.lucide,
.pp-offcanvas-menu .pp-lucide,
.pp-offcanvas-menu svg.lucide {
	width: 1.25rem;
	height: 1.25rem;
}

@media (min-width: 992px) {
	.nav-utilities .nav-util-btn {
		padding: 0.125rem 0.375rem;
		line-height: 1;
		border: 0;
	}
	.nav-utilities .nav-util-user {
		padding: 0.125rem 0.375rem;
		gap: 0.375rem;
	}
	.nav-utilities .nav-util-user-icon {
		line-height: 1;
		flex-shrink: 0;
	}
}

/* Mobile hamburger collapse menu (not offcanvas panels) */
@media (max-width: 991.98px) {
	#mainNav.navbar-collapse .nav-item {
		width: 100%;
	}

	#mainNav.navbar-collapse .nav-link {
		width: 100%;
		font-size: var(--pp-font-body);
		font-weight: 400;
		padding-top: 0.75rem;
		padding-bottom: 0.75rem;
		justify-content: flex-start;
		text-align: left;
		border-radius: 0;
		transition: background-color 0.15s ease-in-out;
	}

	#mainNav.navbar-collapse .nav-link .bi,
	#mainNav.navbar-collapse .nav-link .pp-lucide,
	#mainNav.navbar-collapse .nav-link svg.lucide {
		font-size: 1.25rem;
		line-height: 1;
		width: 1.25rem;
		height: 1.25rem;
		stroke-width: 1.75;
		flex-shrink: 0;
	}

	#mainNav.navbar-collapse .nav-link:hover,
	#mainNav.navbar-collapse .nav-link:focus-visible {
		opacity: 1;
		background-color: color-mix(in oklab, var(--bs-success) 85%, #000 15%);
		color: var(--bs-white);
	}
}

/* ========== 3. Global components ========== */

/*
 * Buttons — site-wide pill (2026-07).
 * Dense dashboard schedule chips + table row actions stay soft-square via exception selectors below.
 */
.btn,
.btn-sm,
.btn-lg {
	--bs-btn-border-radius: var(--bs-border-radius-pill);
}

.table-weekly-schedule .btn,
.pp-schedule-chrome .btn,
.weekly-schedule-week-nav-btn,
#supervisor-outstanding-tasks-table tbody .btn,
#expiring-scheduled-series-table tbody .btn,
table.display tbody .btn,
table.dataTable.display tbody .btn,
table.table tbody .btn,
.pointer-table tbody .btn,
#assign-staff-date-tasks-table tbody .btn,
#assign-staff-floating-tasks-table tbody .btn,
#assign-staff-outstanding-tasks-table tbody .btn {
	--bs-btn-border-radius: var(--bs-border-radius-sm);
	border-radius: var(--bs-border-radius-sm);
	white-space: nowrap;
}

/* Day-of-week headers + Out/Up chips — same corner radius (beats pill .btn-sm) */
.table-weekly-schedule .weekly-schedule-day-header-btn.btn,
.table-weekly-schedule .staff-badge.btn {
	--bs-btn-border-radius: var(--bs-border-radius-sm);
	border-radius: var(--bs-border-radius-sm);
}

/* Site-wide checkboxes and radios — 1.5rem + primary stroke (matches asset picker) */
.form-check:not(.form-switch) {
	display: flex;
	align-items: center;
	gap: var(--pp-form-check-gap, 0.35rem);
	padding-left: 0;
	min-height: 0;
}
.form-check-input[type="checkbox"]:not([role="switch"]),
.form-check-input[type="radio"] {
	width: 1.5rem;
	height: 1.5rem;
	border: 2px solid var(--bs-gray-300) !important;
	background-color: var(--bs-body-bg);
	box-shadow: none;
	float: none;
	flex-shrink: 0;
}
.form-check:not(.form-switch) .form-check-input[type="checkbox"]:not([role="switch"]),
.form-check:not(.form-switch) .form-check-input[type="radio"] {
	margin-left: 0;
	margin-top: 0;
}
.form-check:not(.form-switch) .form-check-label {
	padding-left: 0;
	margin-bottom: 0;
}
.form-check-input[type="checkbox"]:not([role="switch"]):checked,
.form-check-input[type="radio"]:checked {
	border-color: var(--bs-primary) !important;
	background-color: var(--bs-primary);
}
.form-check-input[type="checkbox"]:not([role="switch"]):focus:not(:checked),
.form-check-input[type="radio"]:focus:not(:checked) {
	border-color: var(--bs-gray-300) !important;
	box-shadow: 0 0 0 0.2rem color-mix(in oklab, var(--bs-gray-300) 45%, transparent);
}
.form-check-input[type="checkbox"]:not([role="switch"]):focus:checked,
.form-check-input[type="radio"]:focus:checked {
	border-color: var(--bs-primary) !important;
	box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb, 13, 110, 253), 0.35);
}

/* Form switches — green "on" track via palette tokens (checkboxes/radios stay primary) */
.form-switch .form-check-input:checked {
	background-color: var(--pp-form-switch-checked-bg);
	border-color: var(--pp-form-switch-checked-border);
}
.form-switch .form-check-input:focus {
	box-shadow: none;
}
.form-switch .form-check-input:focus:checked {
	background-color: var(--pp-form-switch-checked-bg);
	border-color: var(--pp-form-switch-checked-border);
	box-shadow: 0 0 0 0.2rem rgba(var(--pp-form-switch-checked-rgb), 0.35);
}

/* Radio/checkbox with hint — label + hint column beside control (opt-in) */
.form-check.pp-form-check-stack {
	align-items: flex-start;
}

.form-check.pp-form-check-stack .form-check-input {
	flex-shrink: 0;
	margin-top: 0.125rem;
}

.form-check.pp-form-check-stack .pp-form-check-hint {
	margin-top: 0.125rem;
}

/* Full-size field labels — weight via CSS, not fw-semibold / fw-bold utilities */
.form-label:not(.small) {
	font-weight: 500;
}

/* Compact field labels — muted secondary (opt-in via .small or .pp-field-label) */
.form-label.small,
.pp-field-label {
	font-weight: 500;
	font-size: var(--pp-font-ui);
	color: var(--bs-secondary-color);
}

:root[data-theme="dark"] .form-label.small,
:root[data-theme="dark"] .pp-field-label {
	color: var(--pp-muted, var(--bs-secondary-color));
}

/* MISC */


.inactive-icon {
    opacity: .25;
}

.inactive-icon:hover {
    cursor: default;
}

/* Dashboard internal anchor position fix - not very accurate towards the bottom of the page */
a.outstanding_tasks, a.scheduled_tasks {
    display: block;
    position: relative;
    top: -6vh !important;
    visibility: hidden;
	}
	
.capitalize {
	text-transform:capitalize;
	}

/* Messes up the new My Tasks layout 
.truncate-notes {
	width:90%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	}
*/

#change_agency select {
    border: 0;
    border-radius: 0.25rem;
    background: var(--pp-login-accent-bg) !important;
    color: var(--bs-white);
    border: 0px solid transparent;
    padding: 0.25rem;
    margin-right: 0.8125rem;
	}
	
/* LOGIN — “Signal in the dark” shell + teal panel (2026-07 redesign) */

body.guest-login {
	padding-top: 0 !important;
	min-height: 100dvh;
	margin: 0;
	background-color: var(--pp-login-shell-base);
	background-image: radial-gradient(
		ellipse 120% 60% at 50% -10%,
		rgba(var(--pp-nav-header-bg-rgb), 0.35) 0%,
		transparent 55%
	);
	background-repeat: no-repeat;
}

.pp-login-shell {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 100dvh;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 1.5rem;
	padding-left: max(1.5rem, env(safe-area-inset-left, 0px));
	padding-right: max(1.5rem, env(safe-area-inset-right, 0px));
	padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
}

.pp-login-shell > .alert {
	width: 100%;
	max-width: 24rem;
}

.pp-login-card,
.login-box {
	width: 100%;
	max-width: 24rem;
	margin-left: auto;
	margin-right: auto;
	border-radius: 0.75rem;
	padding: 2rem 1.5rem;
	background: var(--pp-login-panel-bg) !important;
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: var(--bs-white) !important;
	box-sizing: border-box;
	box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.35);
	display: flex;
	flex-direction: column;
	min-height: 22rem;
}

.pp-login-form {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.pp-login-form > .mb-4 {
	margin-bottom: 1.5rem !important;
}

.pp-login-actions {
	margin-top: auto;
	padding-top: 2rem;
}

.pp-login-logo-link {
	margin-bottom: 0;
}

.pp-login-logo,
.login-logo {
	width: 8rem;
	max-width: 100%;
	height: auto;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2rem;
}

.pp-login-title {
	padding: 0;
	margin: 0 0 0.5rem;
	font-size: var(--pp-font-body);
	font-weight: 600;
	color: var(--bs-white);
}

.pp-login-lead {
	font-size: var(--pp-font-ui);
	color: rgba(255, 255, 255, 0.65);
	margin-bottom: 1.25rem;
	line-height: 1.45;
}

.pp-login-field,
.pp-login-card .form-control {
	min-height: 2.75rem;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	background-color: var(--bs-white);
	border: none;
	color: var(--bs-emphasis-color);
	border-radius: 0.375rem;
}

.pp-login-field::placeholder,
.pp-login-card .form-control::placeholder {
	color: var(--bs-secondary-color);
	opacity: 1;
}

.pp-login-field:focus,
.pp-login-card .form-control:focus {
	background-color: var(--bs-white);
	border: none;
	color: var(--bs-emphasis-color);
	box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.35);
}

.btn-login {
	width: 100%;
	min-height: 3rem;
	padding-top: 0.625rem;
	padding-bottom: 0.625rem;
	border-radius: 0.5rem;
	font-weight: 600;
	color: var(--pp-login-btn-color);
	background: var(--pp-login-btn-bg);
	border-color: var(--pp-login-btn-border);
}

.btn-login:hover,
.btn-login:focus-visible {
	background: color-mix(in oklab, var(--pp-login-btn-bg) 88%, #fff 12%);
	border-color: var(--pp-login-btn-border);
	color: var(--pp-login-btn-color);
}

.forgot-link {
	color: rgba(255, 255, 255, 0.75) !important;
	display: inline-block;
	font-size: var(--pp-font-ui);
	text-decoration: none;
}

.forgot-link:hover,
.forgot-link:focus-visible {
	color: var(--bs-white) !important;
	text-decoration: underline;
}

.pp-login-footer-links {
	font-size: var(--pp-font-ui);
	line-height: 1.4;
	width: 100%;
}

.pp-login-footer-links .forgot-link {
	flex: 0 1 auto;
	min-width: 0;
}

.pp-login-footer-links .forgot-link.text-end {
	margin-left: auto;
}

.pp-login-error {
	padding: 0.75rem 1rem;
	border-radius: 0.375rem;
	background-color: color-mix(in oklab, var(--bs-warning) 28%, var(--pp-login-shell-base) 72%);
	border: 1px solid color-mix(in oklab, var(--bs-warning) 50%, transparent);
	color: var(--bs-white);
}

.pp-login-success {
	padding: 0.75rem 1rem;
	border-radius: 0.375rem;
	background-color: color-mix(in oklab, var(--bs-success) 28%, var(--pp-login-shell-base) 72%);
	border: 1px solid color-mix(in oklab, var(--bs-success) 50%, transparent);
	color: var(--bs-white);
}

@media (max-width: 767.98px) {
	.pp-login-shell {
		justify-content: flex-start;
		align-items: stretch;
		padding-top: max(2.5rem, env(safe-area-inset-top, 0px));
		padding-left: max(1rem, env(safe-area-inset-left, 0px));
		padding-right: max(1rem, env(safe-area-inset-right, 0px));
	}

	.pp-login-shell > .alert {
		max-width: none;
	}

	.pp-login-card,
	.login-box {
		max-width: none;
		min-height: 0;
		border-radius: 0.75rem;
		padding: 2rem 1.5rem;
		box-shadow: 0 0.35rem 1.25rem rgba(0, 0, 0, 0.28);
	}
}

/* MODALS */

.modal-lg {
    width: 90%;
    max-width:80rem;
    margin-left: auto;
    margin-right: auto;
	}

/* Bootstrap modal-xl is only 1140px from 1200px up; below xl, widen from sm–1199px for smooth resize. */
@media (min-width: 576px) and (max-width: 1199.98px) {
	.modal-xl {
		--bs-modal-width: calc(100vw - 2rem);
	}
}

/* Smaller modal title on small screens so long titles don't dominate the header */
@media (max-width: 575.98px) {
    .modal-title {
        font-size: var(--pp-font-body);
    }
}

.pp-file-upload-dropzone {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 12rem;
	padding: 2rem;
	border: 2px dashed var(--bs-border-color);
	border-radius: var(--bs-border-radius-lg);
	background: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
	transition: border-color 0.15s ease-in-out, background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.pp-file-upload-dropzone:hover,
.pp-file-upload-dropzone:focus-within,
.pp-file-upload-dropzone.is-dragging {
	border-color: var(--bs-success);
	background: rgba(var(--bs-success-rgb), 0.06);
	box-shadow: 0 0 0 0.2rem rgba(var(--bs-success-rgb), 0.12);
}

.pp-file-upload-input {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	max-width: none !important;
	height: 100%;
	min-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	opacity: 0;
	cursor: pointer;
}

.pp-file-upload-content {
	position: relative;
	z-index: 1;
	pointer-events: none;
}

.pp-file-upload-icon {
	display: block;
	margin-bottom: 0.75rem;
	font-size: 2.5rem;
	line-height: 1;
}
.pp-file-upload-icon,
.pp-file-upload-icon.pp-lucide,
svg.lucide.pp-file-upload-icon {
	color: var(--bs-success);
	stroke: currentColor;
}
.pp-file-upload-icon.pp-lucide,
svg.lucide.pp-file-upload-icon {
	width: 2.5rem;
	height: 2.5rem;
	margin-left: auto;
	margin-right: auto;
}

.pp-file-upload-preview-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
	gap: 0.75rem;
}

.pp-file-upload-preview-item {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	background: var(--bs-body-bg);
}

.pp-file-upload-preview-image,
.pp-file-upload-preview-file-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--bs-tertiary-bg);
}

.pp-file-upload-preview-image {
	object-fit: cover;
}

.pp-file-upload-preview-file-icon {
	color: var(--bs-secondary-color);
	font-size: 2rem;
}

.pp-file-upload-preview-name {
	padding: 0.5rem;
	font-size: var(--pp-font-ui);
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.pp-file-upload-existing-heading {
	grid-column: 1 / -1;
	margin-bottom: -0.25rem;
}

.pp-file-upload-existing-item {
	overflow: visible;
}

.pp-file-upload-existing-item .pp-file-upload-preview-image,
.pp-file-upload-existing-item .pp-file-upload-preview-file-icon {
	border-top-left-radius: calc(var(--bs-border-radius) - 1px);
	border-top-right-radius: calc(var(--bs-border-radius) - 1px);
}

.pp-file-upload-existing-actions {
	position: absolute;
	top: 0.35rem;
	right: 0.35rem;
	z-index: 3;
}

.pp-file-upload-existing-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	padding: 0;
	border-radius: 50%;
	line-height: 1;
	box-shadow: 0 0.125rem 0.375rem rgba(0, 0, 0, 0.25);
}

.pp-file-upload-existing-actions .dropdown-toggle::after {
	display: none;
}

.pp-file-upload-preview-remove {
	position: absolute;
	top: 0.35rem;
	right: 0.35rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	min-width: 1.75rem;
	min-height: 1.75rem;
	padding: 0;
	border-radius: 50%;
	line-height: 1;
	aspect-ratio: 1 / 1;
	box-shadow: 0 0.125rem 0.375rem rgba(0, 0, 0, 0.25);
}

.pp-file-upload-preview-remove .bi {
	line-height: 1;
}

@media (max-width: 575.98px) {
	.pp-file-upload-dropzone {
		min-height: 10rem;
		padding: 1.5rem 1rem;
	}
}


/* FORM FIELDS */

.hasDatepicker {
    max-width: 8.75rem;
    margin-right: 0.625rem;
    padding: 0.125rem 0.3125rem;
	}

#staff-select #from.hasDatepicker {
	max-width: none;
	margin-right: 0;
	padding: var(--bs-form-control-padding-y-sm, 0.25rem) var(--bs-form-control-padding-x-sm, 0.5rem);
	cursor: pointer;
}

#expiry_date #days_before {
	max-width: 8.75rem;
}

input[type="checkbox"], input[type="radio"] {
  vertical-align: bottom;
  margin-right: 0.3125rem;
}

.form-select-lg {
	font-size: var(--pp-font-body);
	}
	
	
.accordion-item {
	border: 0;
	}  /* We may want this border on other accordions. I am setting to 0 so the accordions I have in dont show the line */    



/* POINTER OVERRIDES — commented out 2026-06-25: legacy BS3-era workarounds; BS5 nav uses btn/link
   hit areas and flex alignment. Global .bi cursor + line-height caused inconsistent navbar icon sizing.
   Re-enable if standalone clickable icons lose pointer or misalign elsewhere in the app. */
/*
.bi, .cursor-pointer {
	cursor: pointer;
}

.bi {
    font-style: normal;
    line-height: 1.0 !important;
}
*/

hr {
    margin: .5rem 0 .5rem 0;
	}
	
/* BUTTONS */


.btn-light {
	background-color: color-mix(in oklab, var(--bs-light) 45%, transparent);
}

.btn-secondary {
	border: 1px solid var(--bs-border-color);
	background: var(--bs-body-bg);
	color: var(--bs-emphasis-color);
}
	
.btn-xs {
    padding: 0.25rem 0.375rem 0.25rem 0.375rem;
    font-size: var(--pp-font-caption);
    text-transform: uppercase;
    font-weight: 500;
    line-height: 100%;
    vertical-align: top;
    margin-top: -0.125rem;
    margin-left: 0.1875rem;
	}

.btn-add-time {
    font-size: var(--pp-font-ui) !important;
    padding: 0.4375rem 0.3125rem 0.4375rem 0.4375rem; 
	}

.staff-off-btn {
	text-transform: uppercase;
	border: 0 solid var(--bs-border-color);
	background: var(--bs-body-bg);
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-caption);
	padding: 0.25rem;
}

.table-weekly-schedule .staff-off {
	align-items: center;
	display: flex;
	justify-content: center;
}

.table-weekly-schedule .staff-off-btn {
	width: 100%;
}


/* POPOVERS TOOLTIPS */

.popover:not(.pp-task-popover) .popover-body {
    padding: .5rem .5rem;
    color: var(--bs-body-color);
    font-size: var(--pp-font-caption);
}


/* COLOR CODING */

.bg-light {
	background-color: var(--bs-light) !important;
}

.bg-white {
	background-color: var(--bs-body-bg) !important;
}

/* COLOR CODING PRIORITY — P1 red + white dot; P2 amber; P3–P5 gray ramp (P5 hollow) */
.btn-priority-1,
.btn-priority-2,
.btn-priority-3,
.btn-priority-4,
.btn-priority-5 {
	font-weight: 500;
}

.btn-priority-1,
.btn-priority-2,
.btn-priority-3,
.btn-priority-4,
.btn-priority-5 {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.btn-priority-1::before,
.btn-priority-2::before,
.btn-priority-3::before,
.btn-priority-4::before,
.btn-priority-5::before {
	content: "";
	flex-shrink: 0;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
}

.btn-priority-1 {
	color: var(--pp-priority-1-fg) !important;
	background-color: var(--pp-priority-1-bg);
	border: 1px solid var(--pp-priority-1-bg);
	border-color: var(--pp-priority-1-bg);
}

.btn-priority-1::before {
	background-color: var(--pp-priority-1-dot);
}

.btn-priority-2,
.btn-priority-3,
.btn-priority-4,
.btn-priority-5 {
	color: var(--pp-priority-chip-fg) !important;
	background-color: var(--pp-priority-chip-bg);
}

.btn-priority-2 {
	border: 1px solid var(--pp-priority-2-border);
	border-color: var(--pp-priority-2-border);
}

.btn-priority-2::before {
	background-color: var(--pp-priority-2-dot);
}

.btn-priority-3 {
	border: 1px solid var(--pp-priority-3-border);
	border-color: var(--pp-priority-3-border);
}

.btn-priority-3::before {
	background-color: var(--pp-priority-3-dot);
}

.btn-priority-4 {
	border: 1px solid var(--pp-priority-4-border);
	border-color: var(--pp-priority-4-border);
}

.btn-priority-4::before {
	background-color: var(--pp-priority-4-dot);
}

.btn-priority-5 {
	border: 1px solid var(--pp-priority-5-border);
	border-color: var(--pp-priority-5-border);
}

.btn-priority-5::before {
	background-color: transparent;
	box-shadow: inset 0 0 0 0.125rem var(--pp-priority-5-dot);
}

.text-priority-1 {
	color: var(--pp-priority-1-text) !important;
}

.text-priority-2 {
	color: var(--pp-priority-2-dot) !important;
}

.text-priority-3 {
	color: var(--pp-priority-3-dot) !important;
}

.text-priority-4 {
	color: var(--pp-priority-4-dot) !important;
}

.text-priority-5 {
	color: var(--pp-priority-5-dot) !important;
}

.status-icon {
    width: 1.75rem;
    height: auto;
    margin-top: -0.25rem;
}

.btn.btn-light.add-time-icon-text {
    padding: 0.375rem;
}

.add-time-icon-text {
    height: 2rem;
    width: auto;
    border: 1px solid var(--bs-success);
}

.add-time-form .add-time-member + .add-time-member {
    border-top: 1px solid var(--bs-border-color);
    padding-top: 0.75rem;
    margin-top: 0.75rem;
}

.add-time-form .add-time-role-hint {
    line-height: 1.35;
}

.add-time-form .add-time-date-col {
    flex: 0 0 auto;
    width: auto;
    text-align: center;
}

.add-time-form .add-time-date-col .form-label {
    width: 100%;
}

.add-time-form .add-time-date-btn {
    min-width: 2.75rem;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.add-time-form .add-time-date-btn:hover,
.add-time-form .add-time-date-btn:focus-visible {
    text-decoration: none;
}

.add-time-form select.form-select-sm.hours,
.add-time-form .add-time-minutes-col select.form-select-sm,
.add-time-form .add-time-hours-type-select {
    min-height: 2.75rem;
}

.add-time-form .add-time-date-controls {
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.add-time-form .add-time-edit-hours-link {
    min-height: 2.75rem;
    padding: 0.25rem 0.5rem;
    margin: -0.25rem -0.5rem;
}

/* Lucide edit icon — center with adjacent hours text (preview + Add Time) */
.add-time-edit-hours-link .pp-lucide,
.add-time-edit-hours-link svg.lucide,
.task-preview-row--meta .add-time-edit-hours-link .pp-lucide,
.task-preview-row--meta .add-time-edit-hours-link svg.lucide {
	display: block;
	width: 1em;
	height: 1em;
	vertical-align: unset;
	flex-shrink: 0;
}

.add-time-form .add-time-hours-type-select {
    max-width: 9rem;
}

@media (max-width: 767.98px) {
    .add-time-form .add-time-hours-col,
    .add-time-form .add-time-minutes-col {
        min-width: 0;
    }
}

.text-assigned {
    color: var(--bs-secondary-color) !important;
}

.text-in-process {
    color: var(--bs-warning);
}

.text-complete {
    color: var(--bs-success);
}

/* LINK OVERRIDES */
.decoration-none {
    text-decoration: none;
    color: var(--bs-body-color);
}

.decoration-none:hover {
    text-decoration: none;
    color: var(--bs-primary);
	}

.decoration-none-light {
    text-decoration: none;
    color: var(--bs-white);
}

/* LINE HEIGHTS */

.line-height-short {
	line-height: 120%;margin-bottom:0.3125rem;
    list-style-type: circle;
}

/* ASSIGNED BUTTONS — retired (no live Blade refs, 2026-07 legacy cleanup). */

.pp-opacity {
	opacity: 0.75;
	}

.text-secondary {
    color: var(--bs-secondary-color) !important;
}

.rounded-pill {
    min-width: 1.5rem;
}

.badge {
	padding: 0.45em .65em;font-weight:500;
	}

.badge.rounded-pill.bg-light {
	background-color: var(--bs-light) !important;
	box-shadow: inset 0 0 0 0.0625rem color-mix(in oklab, var(--bs-border-color) 85%, var(--bs-body-bg));
}


/*
.task-description {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
*/

#task_description {
	width:100%;
	}

/*
.tooltip-btn {position:relative;width:min-content;height:min-content;}
*/


.dropdown-item { padding: .5rem 1rem;} /* More spacing for advanced option style drop down on mobile */

.accordion-item {
    background-color: inherit;
}


/* INSPECTIONS */

/* fix the padding on draggable sections */
#section_sortable_ {
  padding-left: 0rem !important;
  width: 90%;
}


.inspection-checklist-section {
    border: 2px dashed var(--bs-primary);
    margin-bottom: 1.5rem;
    padding: 1.5rem;
    border-radius: 0.375rem;
    background: var(--bs-body-bg);
    width: 100%;
}

/* Inspection file chips — shared by perform inspection (show2) and approve */
.inspection-file-list-stack {
	padding-left: 0;
	min-width: 0;
}

.inspection-file-chip,
.inspection-file-chip.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.125rem;
	max-width: 4.5rem;
	padding-left: 0;
	padding-right: 0;
	vertical-align: middle;
	line-height: 1.2;
	color: inherit;
}

.inspection-file-list-stack .inspection-file-chip,
.inspection-file-list-stack .inspection-file-chip.btn {
	max-width: 100%;
	width: 100%;
	justify-content: flex-start;
}

.inspection-file-chip.inspection-file-doka,
.inspection-file-chip.inspection-file-doka .small,
.inspection-file-chip.inspection-file-doka .inspection-file-icon {
	color: var(--bs-primary);
}

.inspection-file-chip.inspection-file-doka:hover,
.inspection-file-chip.inspection-file-doka:hover .small,
.inspection-file-chip.inspection-file-doka:hover .inspection-file-icon {
	color: var(--bs-link-hover-color, #0a58ca);
}

.inspection-file-chip .small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.inspection-file-icon {
	font-size: var(--pp-font-caption);
	line-height: 1;
	flex-shrink: 0;
}

.inspection-file-icon.pp-lucide,
.inspection-file-icon.svg.lucide,
svg.lucide.inspection-file-icon {
	width: 1em;
	height: 1em;
}

.inspection-approve .inspection-file-chip {
	min-height: 2.75rem;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

.inspection-approve .inspection-files-col {
	min-width: 5.5rem;
}


/* PRINT BUTTONS — legacy pill style (superseded by .dataTables_wrapper .dt-button rules above on PP pages) */
.dt-button.buttons-csv,
.dt-button.buttons-pdf,
.dt-button.buttons-excel,
.dt-button.buttons-print {
    border: 2px solid var(--bs-border-color);
    border-radius: 6.1875rem;
    padding: 0.125rem 0.625rem;
    margin-right: 0;
    display: inline-block;
    font-size: var(--pp-font-ui);
}

/* ========== 4. Admin dashboard & weekly schedule ========== */

/* ADMIN DASHBOARD */

.dashboard-new-feature {
  width: auto;
  border-radius: 0.3125rem;
  font-size: var(--pp-font-ui);
  padding: 0.5rem 0.5625rem;
  display: block;
  color: var(--bs-white) !important;
  background: var(--bs-secondary);
  font-weight: normal;
}
.btn-dashboard {
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    color: var(--bs-emphasis-color);
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    padding:0.5rem 0.5rem 0.5rem 0.5rem;
    margin:0 -0.0625rem 0 0;
    font-size: var(--pp-font-caption);
    text-align:left;
    width:auto !important;
	}
	
.btn-dashboard:hover {
    background: var(--bs-tertiary-bg);
	}

.task-btn {
	padding: 0.5rem;
	width: 100%;
	border:0;
	border-radius:0.125rem;
	}

.no-tasks {
	background: var(--pp-dashboard-empty-bg);
	color: var(--bs-secondary-color);
	border: 1px solid var(--bs-border-color);
}

.no-tasks:hover {
	background: var(--pp-dashboard-empty-hover-bg);
}

.open-tasks {
	background: var(--pp-dashboard-open-bg);
	border: none;
	color: var(--pp-dashboard-open-color);
}

.open-tasks:hover {
	background: var(--pp-dashboard-open-hover-bg);
	color: var(--pp-dashboard-open-color);
}

.completed-tasks {
	background: var(--pp-dashboard-completed-bg);
	color: var(--bs-white);
	border-bottom: 2px solid var(--pp-dashboard-completed-border);
}

.completed-tasks:hover {
	background: var(--pp-dashboard-completed-hover-bg);
	border-bottom-color: var(--pp-dashboard-completed-hover-border);
	color: var(--bs-white);
}

/* Reports Dashboard — mobile-friendly toolbars (no overflow-x; structural wrap/stack) */
.reports-dashboard-page .pp-reports-dashboard-date-row > div {
	flex: 1 1 100%;
	min-width: 0;
	max-width: 100%;
}

.reports-dashboard-page .pp-reports-dashboard-date-row .form-control {
	width: 100%;
}

.reports-dashboard-page .pp-reports-date-basis-option {
	min-width: 0;
	max-width: 100%;
}

@media (max-width: 767.98px) {
	.reports-dashboard-page .pp-reports-dashboard-options {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.reports-dashboard-page .pp-reports-dashboard-options [role="radiogroup"] {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.reports-dashboard-page .pp-reports-dashboard-options .form-check {
		margin-bottom: 0;
		min-height: 2.75rem;
	}
}

@media (min-width: 768px) {
	.reports-dashboard-page .pp-reports-dashboard-date-row > div {
		flex: 0 1 auto;
		max-width: none;
	}

	.reports-dashboard-page .pp-reports-dashboard-date-basis-row {
		margin-bottom: 1.5rem;
	}

	.reports-dashboard-page .pp-reports-dashboard-date-basis-row [role="radiogroup"] {
		gap: 1rem;
	}
}

/*
 * PP count button — label + count link (soft-square; status lane via modifier).
 * Solid (default): lane colors the whole control. Split (--split): neutral shell + colored count chip.
 * Tokens: --pp-count-btn-* (shell), --pp-count-btn-count-* (chip in split mode).
 */
.pp-count-btn {
	--pp-count-btn-bg: var(--bs-tertiary-bg);
	--pp-count-btn-color: var(--bs-body-color);
	--pp-count-btn-hover-bg: var(--bs-secondary-bg-subtle, var(--bs-tertiary-bg));
	--pp-count-btn-border-color: transparent;
	--pp-count-btn-count-bg: transparent;
	--pp-count-btn-count-color: inherit;
	--pp-count-btn-count-font-weight: 600;

	--bs-btn-border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
	--bs-btn-bg: var(--pp-count-btn-bg);
	--bs-btn-color: var(--pp-count-btn-color);
	--bs-btn-border-color: var(--pp-count-btn-border-color);
	--bs-btn-hover-bg: var(--pp-count-btn-hover-bg);
	--bs-btn-hover-border-color: var(--pp-count-btn-border-color);
	--bs-btn-hover-color: var(--pp-count-btn-color);
	--bs-btn-active-bg: var(--pp-count-btn-hover-bg);
	--bs-btn-active-border-color: var(--pp-count-btn-border-color);
	--bs-btn-active-color: var(--pp-count-btn-color);

	align-items: center;
	background-color: var(--pp-count-btn-bg);
	border: var(--bs-border-width, 0.0625rem) solid var(--pp-count-btn-border-color);
	border-color: var(--pp-count-btn-border-color);
	border-radius: var(--bs-nav-pills-border-radius, var(--bs-border-radius));
	color: var(--pp-count-btn-color);
	display: inline-flex;
	font-size: var(--pp-font-ui);
	font-weight: 400;
	gap: 0.375rem;
	line-height: 1.2;
	padding: 0.25rem 0.5rem;
	text-decoration: none;
	white-space: nowrap;
}

.pp-count-btn--lg {
	font-size: var(--pp-font-body);
	gap: 0.5rem;
	padding: 0.375rem 0.5rem;
}

.pp-count-btn:hover,
.pp-count-btn:focus,
.pp-count-btn:focus-visible,
.pp-count-btn:active {
	background-color: var(--pp-count-btn-hover-bg);
	border-color: var(--pp-count-btn-border-color);
	color: var(--pp-count-btn-color);
	text-decoration: none;
}

.pp-count-btn__label {
	font-weight: 500;
}

.pp-count-btn__count {
	font-variant-numeric: tabular-nums;
	font-weight: var(--pp-count-btn-count-font-weight);
}

/* Split — neutral shell; lane modifier colors the count chip only */
.pp-count-btn--split {
	--pp-count-btn-bg: var(--bs-white);
	--pp-count-btn-color: var(--bs-body-color);
	--pp-count-btn-hover-bg: var(--bs-tertiary-bg);
	--pp-count-btn-border-color: var(--bs-border-color);
}

.pp-count-btn:not(.pp-count-btn--split):not(.pp-count-btn--neutral) {
	border-width: 0;
}

.pp-count-btn--split .pp-count-btn__count {
	background-color: var(--pp-count-btn-count-bg);
	border-radius: var(--bs-border-radius-sm);
	color: var(--pp-count-btn-count-color);
	line-height: inherit;
	padding: 0.1em 0.5em;
}

/* Solid — lane fills the whole control */
.pp-count-btn--open:not(.pp-count-btn--split) {
	--pp-count-btn-bg: var(--pp-dashboard-open-bg);
	--pp-count-btn-color: var(--pp-dashboard-open-color);
	--pp-count-btn-hover-bg: var(--pp-dashboard-open-hover-bg);
}

.pp-count-btn--upcoming:not(.pp-count-btn--split) {
	--pp-count-btn-bg: var(--pp-dashboard-upcoming-bg);
	--pp-count-btn-color: var(--pp-dashboard-upcoming-color);
	--pp-count-btn-hover-bg: var(--pp-dashboard-upcoming-hover-bg);
}

.pp-count-btn--completed:not(.pp-count-btn--split) {
	--pp-count-btn-bg: var(--pp-dashboard-completed-bg);
	--pp-count-btn-color: var(--bs-white);
	--pp-count-btn-hover-bg: var(--pp-dashboard-completed-hover-bg);
}

.pp-count-btn--neutral:not(.pp-count-btn--split) {
	--pp-count-btn-bg: var(--pp-dashboard-empty-bg);
	--pp-count-btn-color: var(--bs-secondary-color);
	--pp-count-btn-hover-bg: var(--pp-dashboard-empty-hover-bg);
	--pp-count-btn-border-color: var(--bs-border-color);
}

/* Split — lane tokens on the count chip */
.pp-count-btn--split.pp-count-btn--open {
	--pp-count-btn-count-bg: var(--pp-dashboard-open-bg);
	--pp-count-btn-count-color: var(--pp-dashboard-open-color);
}

.pp-count-btn--split.pp-count-btn--upcoming {
	--pp-count-btn-count-bg: var(--pp-dashboard-upcoming-bg);
	--pp-count-btn-count-color: var(--pp-dashboard-upcoming-color);
}

.pp-count-btn--split.pp-count-btn--completed {
	--pp-count-btn-count-bg: var(--pp-dashboard-completed-bg);
	--pp-count-btn-count-color: var(--bs-white);
}

.pp-count-btn--split.pp-count-btn--neutral {
	--pp-count-btn-count-bg: var(--pp-dashboard-empty-bg);
	--pp-count-btn-count-color: var(--bs-secondary-color);
}

/* Administrator / Supervisor Dashboard — attention strip */
.pp-attention-strip {
	width: 100%;
	background-color: var(--bs-tertiary-bg);
	padding: 0.5rem 0.75rem;
}

.pp-attention-strip__scroll {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.75rem 1.25rem;
}

.pp-attention-marker {
	flex-shrink: 0;
	background-color: var(--bs-danger);
}

.pp-attention-dot {
	border-radius: 50%;
	display: inline-block;
	flex-shrink: 0;
	height: 0.625rem;
	width: 0.625rem;
	background-color: var(--bs-danger);
}

.pp-attention-item {
	display: inline-grid;
	grid-template-columns: auto 1fr;
	align-items: stretch;
	column-gap: 0.4rem;
	padding: 0.25rem 0;
	color: var(--bs-body-color);
	font-size: var(--pp-font-body);
	line-height: 1.35;
	text-decoration: none;
	white-space: normal;
}

.pp-attention-item > .pp-attention-marker {
	grid-column: 1;
	grid-row: 1;
	align-self: stretch;
	width: 0.1875rem;
	border-radius: 0.1875rem;
	min-height: 1.75rem;
}

.pp-attention-item__body {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	min-width: 0;
}

.pp-attention-item__count {
	font-weight: 600;
	line-height: 1.2;
}

.pp-attention-item__label {
	font-weight: 400;
	line-height: 1.2;
}

.pp-attention-item__label--short {
	display: none;
}

.pp-attention-other__count--md {
	display: none;
}

.pp-attention-strip-row .pp-attention-strip__mobile-search {
	align-self: center;
}

.pp-attention-item:hover,
.pp-attention-item:focus-visible {
	color: var(--bs-primary);
	text-decoration: none;
	box-shadow: 0 0 0 0.0625rem rgba(var(--bs-primary-rgb), 0.2);
	border-radius: var(--bs-border-radius-sm, 0.25rem);
}

.pp-attention-other {
	flex-shrink: 0;
	align-self: flex-start;
}

.pp-attention-other__toggle {
	border: 0;
	background: transparent;
	padding: 0.25rem 0;
	text-align: left;
	color: var(--bs-body-color);
	text-decoration: none;
	line-height: 1.35;
	font-size: var(--pp-font-body);
	font-weight: 400;
	vertical-align: top;
}

.pp-attention-other__toggle.btn {
	display: inline-grid;
	font-size: var(--pp-font-body);
	font-weight: 400;
}

.pp-attention-other__toggle.btn-link:hover,
.pp-attention-other__toggle.btn-link:focus,
.pp-attention-other__toggle.btn-link.show {
	text-decoration: none;
}

.pp-attention-other__toggle.btn-link {
	padding: 0.25rem 0;
}

.pp-attention-other__toggle::after {
	display: none;
}

.pp-attention-other__label-row {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	min-width: 0;
}

.pp-attention-other__chevron {
	flex-shrink: 0;
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
	line-height: 1;
}

.pp-attention-other__toggle:hover .pp-attention-other__chevron,
.pp-attention-other__toggle:focus-visible .pp-attention-other__chevron,
.pp-attention-other__toggle.show .pp-attention-other__chevron {
	color: var(--bs-primary);
}

.pp-attention-other__toggle:hover,
.pp-attention-other__toggle:focus-visible,
.pp-attention-other__toggle.show {
	background-color: transparent;
	box-shadow: 0 0 0 0.0625rem rgba(var(--bs-primary-rgb), 0.2);
	border-radius: var(--bs-border-radius-sm, 0.25rem);
}

.pp-attention-other__menu {
	min-width: 14rem;
	z-index: var(--pp-z-attention-dropdown, 1040);
	font-size: var(--pp-font-body);
	line-height: 1.35;
}

.pp-attention-other__menu .dropdown-item {
	font-size: inherit;
	line-height: 1.35;
}

.pp-attention-menu-item {
	display: flex !important;
	align-items: center;
	gap: 0.5rem;
	color: var(--bs-body-color);
}

.pp-attention-menu-item__label {
	flex: 1;
	min-width: 0;
	font-weight: 400;
	line-height: 1.2;
}

.pp-attention-menu-item__count {
	flex-shrink: 0;
	font-weight: 600;
	line-height: 1.2;
}

.pp-attention-menu-item:hover,
.pp-attention-menu-item:focus-visible {
	color: var(--bs-primary);
}

@media (min-width: 768px) {
	.pp-attention-strip__scroll {
		align-items: center;
	}

	.pp-attention-item {
		display: inline-flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		gap: 0.4rem;
		white-space: nowrap;
	}

	.pp-attention-item > .pp-attention-marker {
		width: 0.625rem;
		height: 0.625rem;
		min-height: 0;
		border-radius: 50%;
		align-self: center;
	}

	.pp-attention-item__body {
		display: inline-flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		gap: 0.4rem;
	}

	.pp-attention-item--other .pp-attention-item__body {
		display: inline-flex;
		flex-direction: row;
		align-items: center;
	}
}

@media (min-width: 768px) and (max-width: 991.98px) {
	.pp-attention-item--tier-minor {
		display: none;
	}

	.pp-attention-item__label--full {
		display: none;
	}

	.pp-attention-item__label--short {
		display: inline;
	}

	.pp-attention-other__menu-item-wrap--tier-secondary {
		display: none;
	}

	.pp-attention-other__count--mobile {
		display: none;
	}

	.pp-attention-other__count--md {
		display: inline;
	}

	.pp-attention-other:not(.pp-attention-other--md-visible) {
		display: none !important;
	}
}

@media (min-width: 992px) {
	.pp-attention-other {
		display: none !important;
	}
}

@media (max-width: 767.98px) {
	.pp-attention-item--tier-secondary,
	.pp-attention-item--tier-minor {
		display: none;
	}

	.pp-attention-other:not(.pp-attention-other--mobile-visible) {
		display: none !important;
	}

	.pp-attention-strip__scroll {
		justify-content: flex-start;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		gap: 0.75rem 1.5rem;
		padding-bottom: 0.125rem;
	}

	.pp-attention-item,
	.pp-attention-other__toggle {
		flex-shrink: 0;
		min-height: 2.25rem;
		padding: 0.25rem 0.2rem 0.2rem;
		font-size: var(--pp-font-ui);
		touch-action: manipulation;
	}

	.pp-attention-other__toggle.btn {
		font-size: var(--pp-font-ui);
	}

	.pp-attention-other__toggle.btn-link {
		padding: 0.25rem 0.2rem 0.2rem;
	}

	.pp-attention-other__menu {
		font-size: var(--pp-font-ui);
	}

	.pp-attention-strip-row {
		--pp-mobile-search-offset: 0.375rem;
	}

	.pp-attention-strip__mobile-search {
		flex-shrink: 0;
		margin-left: 0.5rem;
		margin-right: var(--pp-mobile-search-offset);
	}
}

/* Administrator Dashboard — schedule view toggle (grid / calendar / list) */
.dashboard-view-toggle .btn {
	padding: 0.45rem 0.75rem;
}

/* Administrator Dashboard — schedule header chrome (grid view) */
.pp-schedule-chrome .week-range-trigger {
	color: var(--bs-body-color);
	font-weight: 700;
	line-height: 1.3;
}

.pp-schedule-chrome .week-range-trigger:hover,
.pp-schedule-chrome .week-range-trigger:focus,
.pp-schedule-chrome .week-range-trigger:focus-visible {
	color: var(--bs-primary);
	text-decoration: none;
}

.pp-schedule-chrome .week-range-chevron {
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
	line-height: 1;
}

.pp-schedule-chrome .week-range-trigger:hover .week-range-chevron,
.pp-schedule-chrome .week-range-trigger:focus .week-range-chevron,
.pp-schedule-chrome .week-range-trigger:focus-visible .week-range-chevron {
	color: var(--bs-primary);
}

.week-dashboard-agency {
	line-height: 1.25;
}

/* My Tasks — sticky date nav spans full task scroll (.my-tasks-page wraps nav + stats + main) */
.my-tasks-page {
	margin-top: 0.5rem;
}

.my-tasks-chrome-nav.mobile-sticky-header {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	margin-bottom: 0;
}
.my-tasks-chrome-nav.mobile-sticky-header.is-stuck {
	border-bottom-left-radius: var(--bs-border-radius);
	border-bottom-right-radius: var(--bs-border-radius);
}
.my-tasks-chrome-stats-card {
	border-top: 0;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

.my-tasks-chrome-date-picker {
	position: relative;
	display: inline-flex;
	max-width: 100%;
}

.my-tasks-chrome-date-input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	border: 0;
	padding: 0;
	margin: 0;
	cursor: pointer;
	z-index: 1;
}

.my-tasks-chrome-date-picker .weekly-schedule-week-range {
	position: relative;
	z-index: 0;
	pointer-events: none;
	max-width: 100%;
}

.my-tasks-chrome-today {
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	justify-content: center;
	gap: 0.05rem;
	line-height: 1.15;
	margin-right: 0.5rem;
	white-space: nowrap;
}

.my-tasks-chrome-today__label {
	font-size: var(--pp-font-caption);
}

.my-tasks-chrome-today__value {
	font-size: var(--pp-font-ui);
}

.my-tasks-chrome-queues .pp-count-btn {
	flex: 0 1 auto;
	justify-content: space-between;
	min-height: 2.75rem;
	min-width: 0;
}

.my-tasks-chrome-queues .pp-count-btn__label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.my-tasks-chrome-queues .pp-count-btn__label .bi,
.my-tasks-chrome-queues .pp-count-btn__count .bi {
	display: block;
	flex-shrink: 0;
	font-size: var(--pp-font-ui);
	line-height: 1;
}

.my-tasks-chrome-queues .pp-count-btn__label .pp-lucide,
.my-tasks-chrome-queues .pp-count-btn__label svg.lucide,
.my-tasks-chrome-queues .pp-count-btn__count .pp-lucide,
.my-tasks-chrome-queues .pp-count-btn__count svg.lucide {
	display: block;
	flex-shrink: 0;
	width: var(--pp-font-ui);
	height: var(--pp-font-ui);
	stroke-width: 1.75;
	color: currentColor;
}

.my-tasks-chrome-queues .pp-count-btn__label .week-range-chevron {
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
}

.my-tasks-chrome-queues .pp-count-btn__label .week-range-chevron.pp-lucide,
.my-tasks-chrome-queues .pp-count-btn__label svg.week-range-chevron.lucide {
	width: var(--pp-font-caption);
	height: var(--pp-font-caption);
}

.my-tasks-chrome-nav__step-icon.pp-lucide,
.my-tasks-chrome-nav svg.my-tasks-chrome-nav__step-icon {
	width: 1.5rem;
	height: 1.5rem;
	stroke-width: 1.75;
	color: currentColor;
}

.my-tasks-chrome-date-picker .week-range-chevron.pp-lucide,
.my-tasks-chrome-date-picker svg.week-range-chevron.lucide {
	width: var(--pp-font-caption);
	height: var(--pp-font-caption);
	stroke-width: 1.75;
	color: currentColor;
}

/* Global Lucide default (nav, pages, modals) */
.pp-lucide,
svg.lucide {
	width: 1em;
	height: 1em;
	stroke-width: 1.75;
	color: currentColor;
	flex-shrink: 0;
	vertical-align: -0.125em;
}

/* My Tasks / task modals — default Lucide size when not QAB/header-scoped */
.my-tasks-page .pp-lucide,
.my-tasks-page svg.lucide,
[data-pref-key="task-accordion-1"] .pp-lucide,
[data-pref-key="task-accordion-1"] svg.lucide,
.modal .pp-lucide,
.modal svg.lucide,
.offcanvas .pp-lucide,
.offcanvas svg.lucide {
	width: 1em;
	height: 1em;
	stroke-width: 1.75;
	color: currentColor;
	flex-shrink: 0;
	vertical-align: -0.125em;
}

.my-tasks-chrome-queues .dropdown {
	flex: 0 0 auto;
}

.my-tasks-chrome-queues .my-tasks-chrome-all.pp-count-btn {
	--pp-count-btn-bg: transparent;
	--pp-count-btn-border-color: transparent;
	--pp-count-btn-hover-bg: var(--bs-tertiary-bg);
	border-color: transparent;
}

.pp-schedule-chrome .weekly-schedule-week-nav-center {
	min-width: 0;
}

.pp-schedule-chrome .table-responsive {
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

/*
 * No hairline under day headers (thead bottom / first-body top).
 * Bootstrap reboot + .table cell border-bottom paint that rule; kill it for this grid.
 */
.pp-schedule-chrome .table-weekly-schedule.table > thead,
.pp-schedule-chrome .table-weekly-schedule.table > thead > tr {
	border: 0 !important;
	border-style: none !important;
}

.pp-schedule-chrome .table-weekly-schedule.table > thead > tr > th,
.pp-schedule-chrome .table-weekly-schedule.table > thead > tr > td {
	border: 0 !important;
	border-style: none !important;
	border-bottom: 0 !important;
	border-bottom-width: 0 !important;
}

.pp-schedule-chrome .table-weekly-schedule.table > tbody > tr:first-child > * {
	border-top: 0 !important;
	border-top-width: 0 !important;
	border-top-style: none !important;
}

/* Tighter row padding (half of .table 0.5rem) */
.pp-schedule-chrome .table-weekly-schedule.table > :not(caption) > * > * {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

/* Board hub — week grid sits closer under open pane (match shortcut card density) */
.pp-hub--board #myStaffWorkBoardPanel .dataTables_wrapper {
	margin-bottom: 0;
}

.pp-hub--board #myStaffWorkBoardPanel .dataTables_paginate {
	margin-top: 0.5rem;
	margin-bottom: 0;
}

/* Board pane cards own rhythm — light air under week nav */
.pp-hub--board #myStaffWorkTabContent {
	padding-top: 0.75rem;
}

/* Slice A — swap main stage: hide week grid while a board pane is open */
.pp-schedule-chrome--board-open #dashboard-schedule-grid {
	display: none;
}

/* Insight cards sit below the schedule chrome card; hide with Dashboard View */
.pp-schedule-chrome--board-open + .pp-insight-cards {
	display: none;
}

.pp-schedule-chrome--board-open .weekly-schedule-week-nav {
	border-bottom: none;
}

/* Week nav chevrons — match UI scale (was fs-2) */
.pp-schedule-chrome .weekly-schedule-week-nav-step .pp-lucide {
	width: 1.125rem;
	height: 1.125rem;
}

/* Staff name column — compact type */
.pp-schedule-chrome .table-weekly-schedule .staff-name-toggle {
	font-size: var(--pp-font-ui);
	min-height: 2.25rem;
}

/* Slice A — hide week date row when pane is not week/day-sensitive */
.pp-schedule-chrome--week-nav-muted .weekly-schedule-chrome-nav {
	display: none;
}

/* Board panes — chrome search + schedule view are Dashboard View only */
.pp-schedule-chrome--board-open .weekly-schedule-search-btn,
.pp-schedule-chrome--board-open .weekly-schedule-week-nav-tools {
	display: none !important;
}

/* Dashboard insight cards — below schedule chrome (Dashboard View only) */
.pp-insight-cards {
	margin-top: 0;
}

/* Nested .row margins are zeroed site-wide (.container-fluid .row .row); beat that so outer cards flush with schedule chrome */
.container .pp-insight-cards > .row,
.container-fluid .pp-insight-cards > .row {
	--bs-gutter-x: 1rem;
	--bs-gutter-y: 1rem;
	margin-left: calc(-0.5 * var(--bs-gutter-x)) !important;
	margin-right: calc(-0.5 * var(--bs-gutter-x)) !important;
}

.pp-insight-card {
	display: flex;
	flex-direction: column;
	color: inherit;
	border: var(--bs-border-width) solid var(--bs-border-color);
}

.pp-insight-card__body {
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	color: inherit;
	background: transparent;
	border: 0;
	padding: 0;
	border-radius: 0;
	flex: 1 1 auto;
	min-height: 0;
	cursor: default;
}

.pp-insight-card__headline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin-bottom: 1rem; /* mb-2 + 0.5rem */
	line-height: 1.25;
	color: var(--bs-body-color);
}

.pp-insight-card__headline .pp-lucide {
	width: 1.1em;
	height: 1.1em;
}

.pp-insight-card__count {
	font-size: 1.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.pp-insight-card__count.is-attention {
	color: var(--bs-danger);
}

.pp-insight-card__headline-text {
	font-size: var(--pp-font-ui);
	font-weight: 600;
	color: var(--bs-body-color);
}

/* Inline with title (Today's Progress) — quieter than the label */
.pp-insight-card__headline .pp-insight-card__progress {
	font-size: var(--pp-font-caption);
	font-weight: 400;
	font-variant-numeric: tabular-nums;
	color: var(--bs-secondary-color);
}

.pp-insight-card__empty-hint {
	font-size: var(--pp-font-ui);
	color: var(--bs-secondary-color);
}

.pp-insight-card__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Indented list — titles stay flush left; bullets + text inset (View all stays right) */
.pp-insight-card__item {
	position: relative;
	padding-left: 0.85rem;
	font-size: var(--pp-font-ui);
	line-height: 1.35;
	color: var(--bs-secondary-color);
}

.pp-insight-card__item + .pp-insight-card__item {
	margin-top: 0.65rem;
}

.pp-insight-card__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 0.3rem;
	height: 0.3rem;
	border-radius: 50%;
	background: var(--bs-secondary-color);
	opacity: 0.65;
}

.pp-insight-card__item-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.pp-insight-card__item-link:hover .pp-insight-card__item-main,
.pp-insight-card__item-link:focus-visible .pp-insight-card__item-main {
	color: var(--bs-link-hover-color, var(--bs-primary));
	text-decoration: underline;
}

.pp-insight-card__item-main {
	display: block;
	color: var(--bs-body-color);
}

.pp-insight-card__item-sub {
	display: block;
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
	margin-top: 0.1rem;
}

.pp-insight-card__view-all {
	margin-top: auto;
	padding-top: 0.75rem;
	align-self: flex-end;
}

/* Quiet View all → (insight cards + board pane titles) */
.pp-view-all-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: var(--pp-font-caption);
	font-weight: 500;
	line-height: 1.2;
	color: var(--bs-secondary-color);
	text-decoration: none;
	white-space: nowrap;
}

.pp-view-all-link:hover,
.pp-view-all-link:focus-visible {
	color: var(--bs-body-color);
}

.pp-view-all-link .pp-lucide {
	width: 0.875rem;
	height: 0.875rem;
}

/* Board hub — no collapse height slide */
#myStaffWorkBoardPanel.collapsing {
	transition: none;
	height: auto !important;
}

#myStaffWorkTabContent > .tab-pane.fade {
	transition: none;
}

#myStaffWorkTabContent > .tab-pane.fade.show {
	opacity: 1;
}

.pp-schedule-chrome .table > tbody > tr:last-child > * {
	border-bottom: none;
}

.table > :not(caption) > * > * {
    padding: .5rem .5rem;
    border-bottom-width: 0.0625rem;
    box-shadow: none;
    border-bottom: 1px solid var(--bs-border-color);
}

.th-center {
	text-align:center;
	}

.table-condensed > tbody > tr > td, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > td, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > thead > tr > th {
    padding: 0.25rem;
    vertical-align: middle;
	}

.weekly-schedule-week-nav .weekly-schedule-week-range {
	font-size: 0.9375rem;
	letter-spacing: -0.01em;
	line-height: 1.25;
	background-color: transparent;
	border: 0;
	box-shadow: none;
	color: inherit;
}

.weekly-schedule-week-nav .weekly-schedule-week-range:hover,
.weekly-schedule-week-nav .weekly-schedule-week-range:focus,
.weekly-schedule-week-nav .weekly-schedule-week-range:focus-visible,
.weekly-schedule-week-nav .weekly-schedule-week-range:active {
	background-color: transparent;
	border: 0;
	box-shadow: none;
	color: var(--bs-primary);
}

.weekly-schedule-week-nav-center {
	gap: 0.75rem;
}

.weekly-schedule-week-nav .weekly-schedule-week-picker-trigger {
	cursor: pointer;
}

.weekly-schedule-week-nav .weekly-schedule-week-nav-btn {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	line-height: 1;
}

.weekly-schedule-week-nav .weekly-schedule-week-nav-step {
	background-color: transparent;
	border: 0;
	box-shadow: none;
}

.weekly-schedule-week-nav .weekly-schedule-week-nav-step:hover,
.weekly-schedule-week-nav .weekly-schedule-week-nav-step:focus,
.weekly-schedule-week-nav .weekly-schedule-week-nav-step:focus-visible,
.weekly-schedule-week-nav .weekly-schedule-week-nav-step:active {
	background-color: transparent;
	border: 0;
	box-shadow: none;
	color: var(--bs-primary);
}

.ui-datepicker .weekly-schedule-week-picker-in-range a {
	background: var(--bs-primary-bg-subtle);
	border-color: var(--bs-primary-border-subtle);
	color: var(--bs-primary);
}

.popover.pp-task-popover {
	--bs-popover-bg: var(--bs-dark);
	--bs-popover-body-color: var(--bs-white);
	--bs-popover-border-color: var(--bs-border-color-translucent);
	max-width: 18.75rem;
}

.popover.pp-task-popover .popover-body {
	padding: 0;
	overflow: hidden;
	text-align: left;
}

.popover.pp-task-popover .pp-task-popover-status--open {
	color: var(--pp-dashboard-open-icon-color);
}

.weekly-schedule-th-outup {
	padding-left: 0.25rem;
	padding-right: 0.25rem;
	vertical-align: bottom;
}

.weekly-schedule-week-nav-end {
	gap: 0.5rem;
}

.weekly-schedule-week-nav-tools {
	gap: 0.5rem;
}

.weekly-schedule-view-toggle {
	line-height: 1;
	position: relative;
	z-index: 4;
}

.weekly-schedule-week-nav .weekly-schedule-view-toggle-btn {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.35rem 0.5rem;
}

.weekly-schedule-view-toggle-btn {
	justify-content: center;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

.weekly-schedule-week-nav .weekly-schedule-search-btn:hover,
.weekly-schedule-week-nav .weekly-schedule-search-btn:focus-visible,
.weekly-schedule-week-nav .weekly-schedule-search-btn.show {
	border: none;
	background-color: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
}

.weekly-schedule-view-menu {
	min-width: 0;
}

.weekly-schedule-td-outup {
	text-align: center;
	vertical-align: middle;
}

.table-weekly-schedule .staff-badge {
	flex-shrink: 0;
	font-variant-numeric: tabular-nums;
	justify-content: center;
	min-width: 2.875rem;
	padding-left: 0.25rem;
	padding-right: 0.25rem;
	width: 2.875rem;
	--bs-btn-font-weight: 400;
}

/* Weekly schedule grid — tertiary stroke on outline / empty cells (token: --bs-border-color) */
.table-weekly-schedule .staff-badge.btn-outline-secondary,
.table-weekly-schedule .staff-badge.btn-outline-secondary.disabled {
	--bs-btn-active-bg: var(--bs-tertiary-bg);
	--bs-btn-active-color: var(--bs-body-color);
	--bs-btn-border-color: var(--bs-border-color);
	--bs-btn-color: var(--bs-body-color);
	--bs-btn-disabled-bg: var(--bs-body-bg);
	--bs-btn-disabled-border-color: var(--bs-border-color);
	--bs-btn-disabled-color: var(--bs-body-color);
	--bs-btn-disabled-opacity: 1;
	--bs-btn-hover-bg: var(--bs-tertiary-bg);
	--bs-btn-hover-border-color: var(--bs-border-color);
	--bs-btn-hover-color: var(--bs-body-color);
	border: var(--bs-border-width, 0.0625rem) solid var(--bs-border-color);
	border-color: var(--bs-border-color);
	color: var(--bs-body-color);
}

.table-weekly-schedule .staff-badge.btn-outline-secondary:hover,
.table-weekly-schedule .staff-badge.btn-outline-secondary:focus,
.table-weekly-schedule .staff-badge.btn-outline-secondary:focus-visible {
	background-color: var(--bs-tertiary-bg);
}

.table-weekly-schedule .staff-badge.staff-badge--upcoming-zero.btn-outline-secondary.disabled {
	--bs-btn-color: var(--bs-secondary-color);
	--bs-btn-disabled-color: var(--bs-secondary-color);
	--bs-btn-hover-color: var(--bs-secondary-color);
	--bs-btn-active-color: var(--bs-secondary-color);
	color: var(--bs-secondary-color);
}

.table-weekly-schedule .staff-badge.btn-warning,
.table-weekly-schedule .staff-badge.staff-badge--outstanding {
	--bs-btn-active-bg: var(--pp-dashboard-open-hover-bg);
	--bs-btn-active-border-color: transparent;
	--bs-btn-active-color: var(--pp-dashboard-open-color);
	--bs-btn-bg: var(--pp-dashboard-open-bg);
	--bs-btn-border-color: transparent;
	--bs-btn-color: var(--pp-dashboard-open-color);
	--bs-btn-hover-bg: var(--pp-dashboard-open-hover-bg);
	--bs-btn-hover-border-color: transparent;
	--bs-btn-hover-color: var(--pp-dashboard-open-color);
	background-color: var(--pp-dashboard-open-bg);
	border-color: transparent;
	color: var(--pp-dashboard-open-color);
}

.table-weekly-schedule .staff-badge.btn-warning:hover,
.table-weekly-schedule .staff-badge.btn-warning:focus,
.table-weekly-schedule .staff-badge.btn-warning:focus-visible,
.table-weekly-schedule .staff-badge.staff-badge--outstanding:hover,
.table-weekly-schedule .staff-badge.staff-badge--outstanding:focus,
.table-weekly-schedule .staff-badge.staff-badge--outstanding:focus-visible {
	background-color: var(--pp-dashboard-open-hover-bg);
	border-color: transparent;
	color: var(--pp-dashboard-open-color);
}

.table-weekly-schedule .task-btn.completed-tasks {
	border: none;
	border-bottom: none;
}

.table-weekly-schedule .task-btn.open-tasks {
	background: var(--pp-dashboard-open-bg);
	border: none;
	color: var(--pp-dashboard-open-color);
}

.table-weekly-schedule .task-btn.no-tasks {
	background: var(--pp-dashboard-empty-bg);
	border: 1px solid var(--bs-border-color);
	color: var(--bs-tertiary-color);
	position: relative;
}

.table-weekly-schedule .task-btn.no-tasks:hover {
	background: var(--bs-secondary-bg-subtle);
	border-color: var(--bs-border-color);
	color: var(--bs-tertiary-color);
}

.table-weekly-schedule .task-btn.open-tasks:hover {
	background: var(--pp-dashboard-open-hover-bg);
	border: none;
	color: var(--pp-dashboard-open-color);
}

.table-weekly-schedule .staff-badge.btn-outline-secondary.disabled {
	opacity: 1;
	pointer-events: auto;
	cursor: default;
}

.table-weekly-schedule .staff-status-dot {
	border-radius: 50%;
	display: inline-block;
	flex-shrink: 0;
	height: 0.625rem;
	width: 0.625rem;
}

.table-weekly-schedule .staff-status-dot.has-outstanding {
	background: var(--pp-dashboard-open-icon-color);
}

.table-weekly-schedule .staff-status-dot.zero {
	background: var(--bs-success);
}

.weekly-schedule-th-staff {
	text-align: left;
}

.weekly-schedule-day-header-form {
	width: 100%;
}

.weekly-schedule-th-row th.weekly-schedule-day-col {
	vertical-align: bottom;
}

.weekly-schedule-day-header-btn {
	gap: 0;
	line-height: 1.15;
	text-transform: none;
	font-variant-numeric: tabular-nums;
}

.weekly-schedule-day-header-btn .weekly-schedule-day-name {
	font-size: var(--pp-font-caption);
	font-weight: 400;
}

.weekly-schedule-day-header-btn .weekly-schedule-day-date {
	font-size: var(--pp-font-body);
	font-weight: 700;
}

.weekly-schedule-day-header-btn.btn-outline-secondary {
	--bs-btn-color: var(--bs-body-color);
	--bs-btn-hover-color: var(--bs-body-color);
	--bs-btn-active-color: var(--bs-body-color);
	--bs-btn-border-color: var(--bs-border-color);
	--bs-btn-hover-border-color: var(--bs-border-color);
	--bs-btn-hover-bg: var(--bs-tertiary-bg);
	--bs-btn-active-bg: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
}

.weekly-schedule-day-header-btn.btn-outline-secondary:hover,
.weekly-schedule-day-header-btn.btn-outline-secondary:focus,
.weekly-schedule-day-header-btn.btn-outline-secondary:focus-visible {
	background-color: var(--bs-tertiary-bg);
}

.weekly-schedule-day-header-btn.btn-secondary {
	--bs-btn-color: var(--bs-white);
	--bs-btn-bg: var(--bs-secondary);
	--bs-btn-border-color: var(--bs-secondary);
	--bs-btn-hover-color: var(--bs-white);
	--bs-btn-hover-bg: color-mix(in oklab, var(--bs-secondary) 85%, #000 15%);
	--bs-btn-hover-border-color: color-mix(in oklab, var(--bs-secondary) 85%, #000 15%);
	--bs-btn-active-color: var(--bs-white);
	--bs-btn-active-bg: color-mix(in oklab, var(--bs-secondary) 75%, #000 25%);
	--bs-btn-active-border-color: color-mix(in oklab, var(--bs-secondary) 75%, #000 25%);
	background-color: var(--bs-secondary);
	border-color: var(--bs-secondary);
	color: var(--bs-white);
}

.weekly-schedule-day-header-btn.btn-secondary:hover,
.weekly-schedule-day-header-btn.btn-secondary:focus,
.weekly-schedule-day-header-btn.btn-secondary:focus-visible {
	background-color: color-mix(in oklab, var(--bs-secondary) 85%, #000 15%);
	border-color: color-mix(in oklab, var(--bs-secondary) 85%, #000 15%);
	color: var(--bs-white);
}

.table-weekly-schedule th.current-date-hilight,
.table-weekly-schedule td.current-date-hilight {
	background-color: rgba(var(--bs-secondary-rgb), 0.08);
}

.weekly-schedule-td-staff {
	vertical-align: middle;
	width:100%;
	}

.weekly-schedule-td-staff a {
	color: var(--bs-body-color);
	display: block;
	text-decoration: none;
	white-space: normal;
	line-height: 120%;
}

.table-weekly-schedule .staff-off-btn {
	font-size: var(--pp-font-caption);
	letter-spacing: 0.02em;
}

/* Weekly schedule grid — keep date headers reachable on narrow viewports */
@media (max-width: 767.98px) {
	.weekly-schedule-week-nav {
		gap: 0.75rem;
	}

	.weekly-schedule-week-nav-end {
		gap: 0.75rem;
	}

	.weekly-schedule-week-nav-center {
		gap: 1rem;
	}

	.weekly-schedule-week-nav .weekly-schedule-week-nav-btn,
	.weekly-schedule-week-nav .weekly-schedule-week-range {
		min-height: 2.75rem;
	}

	.weekly-schedule-week-nav .weekly-schedule-week-nav-btn {
		min-width: 2.75rem;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.weekly-schedule-week-nav .weekly-schedule-week-range {
		padding-left: 0.65rem;
		padding-right: 0.65rem;
	}

	.table-weekly-schedule .weekly-schedule-th-row th:nth-child(n+3) {
		min-width: 3.25rem;
	}

	.weekly-schedule-day-header-btn .weekly-schedule-day-name {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		max-width: 100%;
	}

	.table-weekly-schedule .task-btn {
		min-height: 2.75rem;
		padding: 0.35rem 0.25rem;
	}

	/* Empty day cells — hide 0/0; corner day letter orients horizontal scroll (mock ui-10) */
	.table-weekly-schedule .task-btn.no-tasks {
		color: transparent;
	}

	.table-weekly-schedule .task-btn.no-tasks::before {
		color: var(--bs-body-color);
		content: attr(data-day-abbr);
		font-size: var(--pp-font-caption);
		font-weight: 400;
		line-height: 1;
		opacity: 0.52;
		pointer-events: none;
		position: absolute;
		right: 0.25rem;
		top: 0.1875rem;
	}

	.table-weekly-schedule .task-btn.no-tasks:hover {
		color: transparent;
	}

	.table-weekly-schedule .staff-off {
		min-height: 2.75rem;
	}

	.pp-schedule-chrome .table-responsive {
		padding-left: 0;
		padding-right: 0;
	}

	/* Stacked names + inline status dot; single sticky Name column (Out/Up hidden) */
	.table-weekly-schedule {
		--weekly-schedule-name-ch: 12ch;
		--weekly-schedule-name-col-max: calc(12ch + 1.125rem);
		border-collapse: separate;
		border-spacing: 0;
	}

	.table-weekly-schedule .weekly-schedule-th-outup,
	.table-weekly-schedule .weekly-schedule-td-outup {
		display: none;
	}

	.table-weekly-schedule .weekly-schedule-th-staff,
	.table-weekly-schedule .weekly-schedule-td-staff {
		background-color: var(--bs-body-bg);
		left: 0;
		overflow: hidden;
		position: sticky;
		z-index: 2;
	}

	.table-weekly-schedule .weekly-schedule-th-staff {
		overflow: visible;
		padding: 0.25rem;
		vertical-align: middle;
	}

	.weekly-schedule-view-toggle--grid-header {
		line-height: 1;
		margin: 0 auto;
		position: relative;
		z-index: 5;
	}

	.weekly-schedule-view-toggle--grid-header .weekly-schedule-view-toggle-btn {
		min-height: 2.75rem;
		min-width: 2.75rem;
		padding: 0.35rem 0.5rem;
		touch-action: manipulation;
	}

	#dashboardViewToggleMobileMenu {
		z-index: var(--pp-z-attention-dropdown, 1040);
	}

	.table-weekly-schedule thead .weekly-schedule-th-staff {
		z-index: 4;
	}

	.table-weekly-schedule .weekly-schedule-td-staff {
		max-width: var(--weekly-schedule-name-col-max);
		padding-left: 0.375rem;
		padding-right: 0.25rem;
		vertical-align: middle;
		width: auto;
	}

	.table-weekly-schedule .staff-name-toggle__row {
		align-items: center;
		display: flex;
		gap: 0.375rem;
		min-width: 0;
		width: 100%;
	}

	.table-weekly-schedule .staff-status-dot--inline {
		flex-shrink: 0;
		margin-top: 0;
	}

	.table-weekly-schedule .staff-name-toggle__label {
		align-items: flex-start;
		flex: 1;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0.05rem;
		line-height: 1.15;
		max-width: none;
		min-width: 0;
	}

	.table-weekly-schedule .staff-name-toggle__line {
		align-items: center;
		display: flex;
		flex-wrap: nowrap;
		max-width: 100%;
		min-width: 0;
	}

	.table-weekly-schedule .staff-name-toggle__first,
	.table-weekly-schedule .staff-name-toggle__text {
		flex-shrink: 1;
		max-width: var(--weekly-schedule-name-ch);
		min-width: 0;
		overflow: hidden;
		white-space: nowrap;
	}

	.table-weekly-schedule .staff-name-toggle__line.staff-name-toggle__part--fade,
	.table-weekly-schedule .staff-name-toggle__text.staff-name-toggle__part--fade,
	.table-weekly-schedule .staff-name-toggle__first.staff-name-toggle__part--fade {
		display: inline-block;
		vertical-align: bottom;
		-webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 1.25em), transparent 100%);
		mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 1.25em), transparent 100%);
	}

	.table-weekly-schedule .staff-name-toggle {
		align-items: center;
		display: flex;
		max-width: none;
		min-height: 0;
		word-break: break-word;
	}

	.weekly-schedule-td-staff .staff-name-toggle {
		min-height: 0;
	}
}

/* Weekly schedule — extra narrow (576px and below): tighter name cap + day columns */
@media (max-width: 575.98px) {
	.table-weekly-schedule {
		--weekly-schedule-name-ch: 11ch;
		--weekly-schedule-name-col-max: calc(11ch + 1.125rem);
	}

	.table-weekly-schedule .weekly-schedule-th-row th:nth-child(n+3) {
		min-width: 3rem;
	}

	.table-weekly-schedule tbody > tr > td {
		padding-left: 0.15rem;
		padding-right: 0.15rem;
	}

	.table-weekly-schedule .task-btn {
		padding-left: 0.15rem;
		padding-right: 0.15rem;
	}
}

/* Tablet / desktop — compact rows; iPad portrait (768px+) uses this tier */
@media (min-width: 768px) {
	.table-weekly-schedule > :not(caption) > * > * {
		padding-top: 0.25rem;
		padding-bottom: 0.25rem;
		vertical-align: middle;
	}

	.table-weekly-schedule .weekly-schedule-td-outup {
		padding-right: 0.25rem;
		width: 1%;
		white-space: nowrap;
	}

	.table-weekly-schedule .weekly-schedule-td-staff {
		width: auto;
		max-width: none;
		padding-left: 0.25rem;
		white-space: nowrap;
	}

	.weekly-schedule-th-staff {
		width: auto;
	}

	.table-weekly-schedule .task-btn {
		min-height: 2rem;
		padding: 0.2rem 0.35rem;
	}

	.table-weekly-schedule .staff-off {
		min-height: 2rem;
	}
}

@media (min-width: 768px) and (max-width: 991.98px) {
	.table-weekly-schedule .weekly-schedule-th-row th:nth-child(n+3) {
		min-width: 2.75rem;
	}
}

/* Styling on the status button */
#dropdownMenuButtonStatus {
	background: transparent;border: 0;
	} 

.btn-advanced-options {
	padding: 0 0 0 0;
	padding: 0em 0em;
	background: var(--bs-body-bg);
	border: 0;
	line-height: 100%;
	font-weight: 500;
	} /* For the ... button */

/*
.mobile-title {
    text-align: center;
    margin-left: -1.25rem !important;
	}
*/

/* DATE */

/* jQuery UI Datepicker — structural base (replaces Smoothness CDN layout rules; 2026-07-02) */
#ui-datepicker-div {
	display: none;
	z-index: var(--pp-z-datepicker);
}

.ui-datepicker {
	display: none;
	box-sizing: border-box;
}

.ui-datepicker .ui-datepicker-header {
	position: relative;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	position: absolute;
}

.ui-datepicker table.ui-datepicker-calendar {
	width: 100%;
	border-collapse: collapse;
}

.ui-datepicker td span,
.ui-datepicker td a {
	text-decoration: none;
}

/* Day cells — id prefix beats generic table/link rules on heavy pages (select-staff, etc.) */
#ui-datepicker-div.ui-datepicker td span,
#ui-datepicker-div.ui-datepicker td a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	min-width: 2.25rem;
	height: 2.25rem;
	min-height: 2.25rem;
	padding: 0;
	margin: 0 auto;
	font-family: inherit;
	font-size: var(--pp-font-ui);
	line-height: 1;
	text-align: center;
	text-decoration: none;
	border-radius: 0.25rem;
	box-sizing: border-box;
}

.ui-helper-clearfix::before,
.ui-helper-clearfix::after {
	content: "";
	display: table;
	border-collapse: collapse;
}

.ui-helper-clearfix::after {
	clear: both;
}

/* jQuery UI Datepicker — site-wide polish (partials/datepicker.blade.php) */
.ui-datepicker {
	font-family: inherit;
	font-size: var(--pp-font-ui);
	padding: 0.5rem;
	border: 1px solid var(--bs-border-color);
	border-radius: 0.375rem;
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
	width: auto;
	background: var(--bs-body-bg);
}

.ui-datepicker.ui-widget-content {
	background: var(--bs-body-bg);
	border-color: var(--bs-border-color);
}

.ui-datepicker .ui-widget-header {
	font-family: inherit;
	background: var(--bs-light);
	border: 0;
	border-bottom: 1px solid var(--bs-border-color);
	border-radius: 0.375rem 0.375rem 0 0;
	padding: 0.5rem 2.75rem;
	margin: -0.5rem -0.5rem 0.5rem;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
	border: 1px solid var(--bs-border-color);
	border-radius: 0.25rem;
	background: var(--bs-body-bg);
}

.ui-datepicker .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-next:hover,
.ui-datepicker .ui-datepicker-prev.ui-state-hover,
.ui-datepicker .ui-datepicker-next.ui-state-hover {
	background: var(--bs-light);
	border-color: var(--bs-border-color);
}

.ui-datepicker .ui-datepicker-prev {
	left: 0.35rem;
}

.ui-datepicker .ui-datepicker-next {
	right: 0.35rem;
}

.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
	display: none;
}

.ui-datepicker .ui-datepicker-prev::before,
.ui-datepicker .ui-datepicker-next::before {
	font-family: inherit;
	font-size: var(--pp-font-body);
	font-weight: normal;
	line-height: 1;
	color: var(--bs-body-color);
	position: static;
	display: block;
	margin: 0;
	width: auto;
	height: auto;
	text-indent: 0;
	text-align: center;
}

.ui-datepicker .ui-datepicker-prev::before {
	content: "\2039";
}

.ui-datepicker .ui-datepicker-next::before {
	content: "\203A";
}

.ui-datepicker .ui-datepicker-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	line-height: 1.5;
	margin: 0;
}

.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
	font-family: inherit;
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.25rem 1.75rem 0.25rem 0.5rem;
	border: 1px solid var(--bs-border-color);
	border-radius: 0.25rem;
	background-color: var(--bs-body-bg);
	color: var(--bs-body-color);
	min-height: 2rem;
	margin: 0 0.15rem;
}

.ui-datepicker table.ui-datepicker-calendar {
	margin: 0 auto 0.25rem;
}

.ui-datepicker th {
	font-family: inherit;
	font-weight: 600;
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
	padding: 0.35rem 0.15rem;
}

.ui-datepicker td {
	padding: 0.15rem;
	text-align: center;
	vertical-align: middle;
}

#ui-datepicker-div.ui-datepicker td a.ui-state-default {
	background: var(--bs-body-bg);
	border: 1px solid var(--bs-border-color);
	color: var(--bs-body-color);
}

#ui-datepicker-div.ui-datepicker td a.ui-state-hover,
#ui-datepicker-div.ui-datepicker td a.ui-state-focus {
	background: var(--bs-light);
	border-color: var(--bs-border-color);
	color: var(--bs-body-color);
}

#ui-datepicker-div.ui-datepicker td a.ui-state-active {
	background: var(--bs-primary);
	border-color: var(--bs-primary);
	color: var(--bs-white);
	font-weight: 600;
}

.ui-datepicker .ui-datepicker-buttonpane {
	clear: both;
	border-top: 1px solid var(--bs-border-color);
	margin: 0.25rem -0.5rem -0.5rem;
	padding: 0.5rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	background: transparent;
}

.ui-datepicker .ui-datepicker-buttonpane button {
	font-family: inherit;
	font-size: var(--pp-font-ui);
	font-weight: 500;
	padding: 0.25rem 0.75rem;
	margin: 0;
	border: 1px solid var(--bs-border-color);
	border-radius: 0.25rem;
	background: var(--bs-body-bg);
	color: var(--bs-body-color);
	cursor: pointer;
	opacity: 1;
	float: none;
	width: auto;
}

.ui-datepicker .ui-datepicker-buttonpane button:hover,
.ui-datepicker .ui-datepicker-buttonpane button.ui-state-hover {
	background: var(--bs-light);
	border-color: var(--bs-border-color);
	color: var(--bs-body-color);
}

.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-close {
	font-weight: 600;
}

.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
	font-weight: 600;
}

/* Today highlight — light gray fill, bold date, dark stroke (not muted/disabled) */
#ui-datepicker-div.ui-datepicker td.ui-datepicker-today a.ui-state-highlight:not(.ui-state-active),
.ui-datepicker-today a.ui-state-highlight:not(.ui-state-active) {
	background: var(--bs-light) !important;
	color: var(--bs-body-color) !important;
	font-weight: 700;
	border: 2px solid var(--bs-emphasis-color) !important;
}

#ppDatePicker {
    z-index: 999;
    width: 100%;
    min-height: 3.125rem;
    padding-top:0.75rem;
    background: var(--pp-login-accent-bg);
	}

.customDatepicker input {
    color: var(--bs-emphasis-color);
    font-size:0.9375rem;
    font-weight: bold;
    cursor:pointer;
	}

.customDatepicker input::placeholder {
	color: var(--bs-emphasis-color) !important;
	opacity:1;
}

/* CARDS */

/* .card display override removed 2026-07-18 — restore BS5 card flex / .d-none */

.card-body {
    border-bottom: 4px solid var(--bs-border-color);
}

:root[data-theme="dark"] .card-body {
    border-bottom-color: var(--bs-border-color);
}

.no-bullet {
    list-style: none;
    line-height: 200%;
    margin-left: 1.25rem;
	}

/* TABLES */

.dt-buttons {
	margin-bottom:0.625rem;
}

/* Top-align body cells when rows wrap (staff/crew, asset paths, notes) */
table.dataTable tbody td,
table.display tbody td {
	vertical-align: top;
}

/* DataTables site-wide cell typography + padding (do not rely on table-sm in Blade) */
table.dataTable thead th,
table.dataTable tbody td,
table.dataTable tbody th,
table.dataTable tfoot td,
table.dataTable tfoot th,
table.display thead th,
table.display tbody td,
table.display tbody th,
table.display tfoot td,
table.display tfoot th {
	font-size: var(--pp-dt-font-size);
	padding: var(--pp-dt-cell-padding-y) var(--pp-dt-cell-padding-x);
}

/* Wrapper footer chrome — info uses Bootstrap .small; paginate matches grid token */
.dataTables_wrapper .dataTables_info {
	font-size: 0.875em;
	color: var(--bs-secondary-color);
}
.dataTables_wrapper .dataTables_paginate {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	font-size: var(--pp-dt-font-size);
	color: var(--bs-secondary-color);
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
	font-size: inherit;
	color: var(--bs-secondary-color) !important;
	border: none;
	box-shadow: none;
	padding: 0;
	margin-left: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.ellipsis {
	min-width: 0;
	padding-left: 0.35rem;
	padding-right: 0.35rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.previous,
.dataTables_wrapper .dataTables_paginate .paginate_button.next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding-left: 0.25em;
	padding-right: 0.25em;
}
.dataTables_wrapper > .row:last-of-type {
	margin-top: 0.5rem;
}
@media (max-width: 767.98px) {
	.dataTables_wrapper > .row:last-of-type {
		flex-direction: column;
		align-items: center;
		gap: 0.25rem;
	}
	.dataTables_wrapper > .row:last-of-type > [class*="col-"] {
		width: 100%;
		max-width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.dataTables_wrapper .dataTables_info {
		float: none !important;
		width: 100%;
		text-align: center;
		font-size: var(--pp-font-caption);
	}
	.dataTables_wrapper .dataTables_paginate {
		display: flex;
		float: none !important;
		width: 100%;
		text-align: center;
		justify-content: center;
	}
}

/* Supervisor dashboard cards — info + pager footer (select-staff Outstanding / Expiring) */
/* DataTables .row gutters inside section cards (complements global page-shell row containment above) */
.card.card-body .dataTables_wrapper > .row,
.pp-datatable-card .dataTables_wrapper > .row {
	--bs-gutter-x: 0;
	margin-left: 0;
	margin-right: 0;
}
.card.card-body .dataTables_wrapper,
.pp-datatable-card .dataTables_wrapper {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
/* Fluid list cards — flush table + toolbar on mobile (equipment dashboards, expired bucket, WO filtered) */
@media (max-width: 767.98px) {
	.pp-datatable-card.card-body:not(.p-3) {
		padding: 0;
	}
}
/* Shared one-row search·export toolbar: list cards + assign-task sidebar (no marker on sidebar) */
@media (min-width: 768px) {
	:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export {
		flex-wrap: nowrap;
		align-items: center;
	}
}
@media (max-width: 767.98px) {
	:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export.pp-dt-toolbar--in-section {
		flex-wrap: nowrap;
		align-items: center;
	}
	/* Stacked p-3 cards — card padding already insets toolbar; drop extra horizontal + top */
	.card.card-body.p-3 .dataTables_wrapper .pp-dt-toolbar--in-section,
	.pp-datatable-card.p-3 .dataTables_wrapper .pp-dt-toolbar--in-section {
		padding-left: 0;
		padding-right: 0;
		padding-top: 0;
	}
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export > [class*="col-"] {
	width: auto !important;
	max-width: none;
	margin-bottom: 0 !important;
	flex: 0 1 auto;
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export > .col:first-child {
	flex: 1 1 auto;
	min-width: 0;
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export > .col-auto:last-child {
	flex: 0 0 auto !important;
	width: auto !important;
	min-width: 0;
	margin-left: auto;
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export .dataTables_filter {
	width: 100%;
	margin-right: 0;
	float: none;
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export .dataTables_filter label {
	width: 100%;
	margin-bottom: 0;
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group {
	max-width: none;
	width: 100%;
}
@media (min-width: 768px) {
	:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group {
		max-width: 28rem;
	}
}
:is(.pp-datatable-card, .assign-task-page .assign-task-sidebar-tasks) .dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-export-mount {
	width: auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-shrink: 0;
}
.assign-task-page .assign-task-sidebar-tasks .pp-dt-export-label {
	display: none;
}
.pp-datatable-card .dataTables_wrapper > .row:last-of-type {
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
}
.pp-datatable-card .dataTables_wrapper > .row:last-of-type > [class*="col-"] {
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
}
.pp-datatable-card .dataTables_wrapper .dataTables_info {
	padding-top: 0;
}
.pp-datatable-card .dataTables_wrapper .dataTables_paginate {
	float: none !important;
	width: auto;
}
@media (min-width: 768px) {
	.pp-datatable-card .dataTables_wrapper > .row:last-of-type {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
	}
	.pp-datatable-card .dataTables_wrapper > .row:last-of-type > [class*="col-"] {
		width: auto;
		max-width: none;
		flex: 0 0 auto;
	}
	.pp-datatable-card .dataTables_wrapper > .row:last-of-type > .col-md-7 {
		margin-left: auto;
	}
	.pp-datatable-card .dataTables_wrapper .dataTables_info {
		text-align: left;
	}
	.pp-datatable-card .dataTables_wrapper .dataTables_paginate {
		text-align: right;
		justify-content: flex-end;
	}
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
	background: transparent !important;
	border: none !important;
	color: var(--bs-body-color) !important;
	font-weight: 600;
	box-shadow: none;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled):not(.current) {
	background: var(--bs-tertiary-bg) !important;
	border: none !important;
	color: var(--bs-body-color) !important;
	box-shadow: none;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:active:not(.disabled) {
	background: var(--bs-secondary-bg) !important;
	border: none !important;
	color: var(--bs-body-color) !important;
	box-shadow: none;
}

/* Legacy green sort SVGs removed — PP blue sort icons in global PP DataTable block above */

table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
    background-color: inherit;
	}

.th-hilight {
	background-color: var(--bs-tertiary-bg);
}

.table-weekly-schedule td {
	 width: auto;
	}

/* Staff Days off Absence */

#maintain_staff_absences:not(.assign-task-staff-day-off-alert__manage) button:not(.pp-days-off-submit) {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-info-border-subtle);
    border-radius: 6.1875rem;
    color: var(--bs-emphasis-color);
    text-transform: uppercase;
    padding: 0.25rem 0.375rem;
    font-size: var(--pp-font-caption);
    min-width: 1.625rem;
}

.pp-days-off-submit {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	color: var(--bs-body-color);
	text-decoration: none;
	min-height: 2.75rem;
	min-width: 2.75rem;
	justify-content: center;
}
.pp-days-off-submit:hover,
.pp-days-off-submit:focus,
.pp-days-off-submit:focus-visible {
	color: var(--bs-body-color);
	text-decoration: underline;
}
.pp-days-off-submit .bi {
	font-size: var(--pp-font-ui);
	line-height: 1;
}

.assign-task-staff-day-off-alert form {
    display: inline;
}

.assign-task-staff-day-off-alert__link {
    font-size: inherit;
    text-decoration: underline;
    text-transform: none;
    vertical-align: baseline;
}

.assign-task-staff-day-off-alert__link:hover,
.assign-task-staff-day-off-alert__link:focus,
.assign-task-staff-day-off-alert__link:focus-visible {
    text-decoration: underline;
}

/* Back to top button — retired 2026-07 (see master.blade.php). Re-enable if a long page needs it.

.cd-top {display: inline-block;height: 2.5rem;width: 2.5rem;position: fixed;bottom: 2.5rem;left: 0.625rem;box-shadow: 0 0 0.625rem rgba(0, 0, 0, 0.05);overflow: hidden;text-indent: 100%;white-space: nowrap;background: color-mix(in oklab, var(--bs-emphasis-color) 80%, transparent) url(../images/cd-top-arrow.svg) no-repeat center 50%;visibility: hidden;opacity: 0;-webkit-transition: opacity .3s 0s, visibility 0s .3s;-moz-transition: opacity .3s 0s, visibility 0s .3s;transition: opacity .3s 0s, visibility 0s .3s;color:var(--bs-white);}
.cd-top.cd-is-visible, .cd-top.cd-fade-out, .no-touch .cd-top:hover {-webkit-transition: opacity .3s 0s, visibility 0s 0s; -moz-transition: opacity .3s 0s, visibility 0s 0s;transition: opacity .3s 0s, visibility 0s 0s;}
.cd-top.cd-is-visible {visibility: visible;opacity: 1;}
.cd-top.cd-fade-out {opacity: .5;}
.no-touch .cd-top:hover {background-color: var(--bs-danger);opacity: 1;}

*/




/* Animation */

@keyframes fadeInUp {
    from {
        transform: translate3d(0,2.5rem,0)
    }

    to {
        transform: translate3d(0,0,0);
        opacity: 1
    }
}

@-webkit-keyframes fadeInUp {
    from {
        transform: translate3d(0,2.5rem,0)
    }

    to {
        transform: translate3d(0,0,0);
        opacity: 1
    }
}

.animated {
    animation-duration: .5s;
    animation-fill-mode: both;
    -webkit-animation-duration: .5s;
    -webkit-animation-fill-mode: both
	}

.animatedFadeInUp {
    opacity: 0
	}

.fadeInUp {
    opacity: 0;
    animation-name: fadeInUp;
    -webkit-animation-name: fadeInUp;
	}

.delay-1 {
  animation-delay: 0s;
	}

.delay-2 {
  animation-delay: .15s;
	}

.delay-3 {
  animation-delay: .25s;
	}

.delay-4 {
  animation-delay: .40s;
	}

.delay-5 {
  animation-delay: .55s;
	}
/* End Animation */



/* ========== 5. Responsive breakpoints ========== */

/* DESKTOP ONLY */
@media (min-width: 992px) {
	.mobile-title {
		display:none;
		}
	.dropdown-end {
    	margin-left: -3.75rem;
		}	
}

/* FIRST MOBILE BREAKPOINT */



@media (max-width: 992px) {
	
	/* Hide Bootstrap tooltip popups on small screens — use aria-label / visible text */
 	.tooltip {
  		display: none;
 		}
	
	.nav-item {
		font-size: var(--pp-font-ui);
		}

	.offcanvas-collapse {
    	background-color: var(--bs-body-bg) !important;
    	padding-right: 0rem !important;
    	padding-left: 0rem !important;
    	font-size: var(--pp-font-body) !important;
    	border-bottom: 1px solid var(--bs-border-color);
		}

}
                
@media (max-width: 768px) {

	 body {
	 	font-size:var(--pp-font-body);
	 	}
	 	
	 .smallest {
	 	font-size: var(--pp-font-ui);
	 	}
	 	
	 .btn-block { 
		width: 100%;
	 	}

	 
}

/* .hide-responsive — hide below lg (992px), show at lg+; matches Bootstrap lg breakpoint */
@media (max-width: 991.98px) {
	.hide-responsive {
		display: none;
	}
}
@media (min-width: 992px) {
	.hide-responsive {
		display: inline-block;
	}
}

.ui-timepicker-container {
	z-index: 1151 !important;
	font-family: inherit;
}

/* jQuery Timepicker — site-wide polish (assign task, task form, My Tasks; CDN plugin overrides) */
.ui-timepicker-container.ui-timepicker-standard,
.ui-timepicker-container .ui-timepicker-standard {
	background-color: var(--bs-body-bg);
	border: 1px solid var(--bs-border-color);
	border-radius: 0.375rem;
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
	padding: 0.25rem 0;
	margin-top: 0.125rem;
	color: var(--bs-body-color);
	font-family: inherit;
	font-size: var(--pp-font-ui);
}

.ui-timepicker-container .ui-timepicker {
	font-family: inherit;
	font-size: var(--pp-font-ui);
	text-align: left;
	padding: 0;
	margin: 0;
	list-style: none;
}

/* Beat jQuery UI Smoothness .ui-widget-content white panel inside the dropdown */
.ui-timepicker-container .ui-timepicker.ui-widget-content,
.ui-timepicker-container .ui-menu.ui-widget-content {
	background-color: var(--bs-body-bg) !important;
	background-image: none !important;
	border-color: var(--bs-border-color) !important;
	color: var(--bs-body-color) !important;
}

.ui-timepicker-container .ui-timepicker-viewport {
	max-height: 14rem;
	background-color: transparent;
}

.ui-timepicker-container .ui-timepicker li {
	margin: 0;
	padding: 0;
}

.ui-timepicker-container .ui-timepicker a {
	border: none;
	padding: 0.375rem 0.75rem;
	min-height: 2.25rem;
	color: var(--bs-body-color);
	white-space: nowrap;
	display: flex;
	align-items: center;
	text-align: left;
	text-decoration: none;
	border-radius: 0.25rem;
	margin: 0 0.25rem;
}

.ui-timepicker-container .ui-timepicker a.ui-state-hover {
	background-color: rgba(var(--bs-primary-rgb), 0.1);
	border: none;
	color: var(--bs-primary);
	font-weight: 500;
}

.ui-timepicker-container .ui-timepicker li.ui-timepicker-selected a,
.ui-timepicker-container .ui-timepicker li.ui-timepicker-selected a.ui-state-hover {
	background-color: var(--bs-primary);
	border: none;
	color: var(--bs-white);
	font-weight: 600;
}

/* ========== 6. Accordion & asset modals ========== */

/* Inactive accordion — match asset picker header + rows */
#inactive_accordion.accordion,
.pp-asset-inactive-accordion.accordion {
	margin-top: 0;
}
#inactive_accordion .accordion-item,
.pp-asset-inactive-accordion .accordion-item {
	border: none;
	background-color: transparent;
}
#inactive_accordion .accordion-header.pp-asset-group-header,
.pp-asset-inactive-accordion .accordion-header.pp-asset-group-header {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.25rem;
	align-items: center;
	padding: 0;
	border: none;
	border-bottom: 1px solid transparent;
	background-color: transparent;
	min-height: 0;
}
#inactive_accordion .accordion-header:has(+ .accordion-collapse.show),
.pp-asset-inactive-accordion .accordion-header:has(+ .accordion-collapse.show) {
	border-bottom: 1px solid var(--bs-border-color);
}
#inactive_accordion .accordion-header .pp-asset-group-title,
.pp-asset-inactive-accordion .accordion-header .pp-asset-group-title {
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.375rem 0.25rem;
	color: var(--bs-body-color);
	cursor: pointer;
}
#inactive_accordion .toggle-btn,
.pp-asset-inactive-accordion .toggle-btn {
	border: none;
	background: transparent;
	font-size: var(--pp-font-body);
	line-height: 1;
	padding: 0.25rem 0.25rem;
}
#inactive_accordion .toggle-btn .pp-lucide,
.pp-asset-inactive-accordion .toggle-btn .pp-lucide,
#inactive_accordion .toggle-btn svg.lucide,
.pp-asset-inactive-accordion .toggle-btn svg.lucide,
#inactive_accordion .toggle-btn svg.lucide-chevron-right,
.pp-asset-inactive-accordion .toggle-btn svg.lucide-chevron-right {
	color: var(--bs-body-color);
	transition: transform 0.2s ease;
	display: inline-block;
}
#inactive_accordion .toggle-btn .pp-lucide,
.pp-asset-inactive-accordion .toggle-btn .pp-lucide,
#inactive_accordion .toggle-btn svg.lucide,
.pp-asset-inactive-accordion .toggle-btn svg.lucide {
	width: 1em;
	height: 1em;
}
#inactive_accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn .pp-lucide,
.pp-asset-inactive-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn .pp-lucide,
#inactive_accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide,
.pp-asset-inactive-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide,
#inactive_accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide-chevron-right,
.pp-asset-inactive-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide-chevron-right {
	transform: rotate(90deg);
}
#inactive_accordion .pp-inactive-list-body,
.pp-asset-inactive-accordion .pp-inactive-list-body {
	padding-bottom: 0.25rem;
	padding-left: 0.5rem;
}
#inactive_accordion .pp-inactive-list-row,
.pp-asset-inactive-accordion .pp-inactive-list-row {
	align-items: center;
	border-bottom: 1px solid var(--bs-border-color);
	display: flex;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}
#inactive_accordion .pp-inactive-list-row:last-child,
.pp-asset-inactive-accordion .pp-inactive-list-row:last-child {
	border-bottom: none;
}
#inactive_accordion .pp-inactive-list-link,
.pp-asset-inactive-accordion .pp-inactive-list-link {
	color: var(--bs-body-color);
	font-size: var(--pp-font-ui);
}
#inactive_accordion .pp-inactive-list-empty,
.pp-asset-inactive-accordion .pp-inactive-list-empty {
	font-size: var(--pp-font-ui);
	padding: 0.5rem;
}
.modern-asset-picker #inactive_accordion > .accordion-item,
.modern-asset-picker .pp-asset-inactive-accordion > .accordion-item {
	border: 1px solid transparent;
	border-radius: var(--bs-border-radius, 0.375rem);
	margin-bottom: 0.25rem;
}
.modern-asset-picker #inactive_accordion > .accordion-item:has(> .accordion-collapse.show),
.modern-asset-picker .pp-asset-inactive-accordion > .accordion-item:has(> .accordion-collapse.show) {
	border-color: var(--bs-primary);
	overflow: hidden;
}
.modern-asset-picker #inactive_accordion .accordion-header:has(+ .accordion-collapse.show),
.modern-asset-picker .pp-asset-inactive-accordion .accordion-header:has(+ .accordion-collapse.show) {
	border-bottom: 1px solid var(--bs-primary);
}
#inactive_accordion .pp-asset-meta,
.pp-asset-inactive-accordion .pp-asset-meta {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-caption);
	font-weight: 500;
	line-height: 1.2;
}

/* Asset picker accordion + child modal — chevron, title, create */
#pp-asset-picker-accordion .accordion-header,
#proAccordionFlushModal .accordion-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: .25rem;
  align-items: center;
  padding: 0;
  border: none;
  background-color: transparent;
  border-bottom: 1px solid var(--bs-border-color);
}

#pp-asset-picker-accordion .accordion-header .asset-accordion-create-btn,
#pp-asset-picker-accordion .accordion-header .pp-asset-create-btn,
#proAccordionFlushModal .accordion-header .asset-accordion-create-btn,
#proAccordionFlushModal .accordion-header .pp-asset-create-btn {
  margin-left: 0.75rem;
  margin-right: 0.5rem;
}

/* Section title styling */
#pp-asset-picker-accordion .sections-title,
#proAccordionFlushModal .sections-title {
  font-size: var(--pp-font-body);
  padding: .75rem 1rem;
  cursor: pointer;
  color: var(--bs-body-color);
  font-weight: 600;
}

#pp-asset-picker-accordion .sections-title {
  padding-left: 0.25rem;
}

#proAccordionFlushModal .sections-title {
  padding-left: 0.25rem;
}

/* Soft fade for primary open-envelope borders (all asset accordion envelopes) */
#activity_center #pp-asset-picker-accordion > .accordion-item,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item,
.modern-asset-picker #inactive_accordion > .accordion-item,
.modern-asset-picker .pp-asset-inactive-accordion > .accordion-item,
.modern-asset-picker .pp-assets-by-category > .accordion-item,
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item,
.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal.pp-asset-modal-category-accordion > .accordion-item {
	transition: border-color 0.18s ease;
}
#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header,
.modern-asset-picker #inactive_accordion .accordion-header,
.modern-asset-picker .pp-asset-inactive-accordion .accordion-header,
.modern-asset-picker .pp-assets-by-category > .accordion-item > .accordion-header,
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item > .accordion-header,
.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal .pp-asset-category-header {
	transition: border-bottom-color 0.18s ease;
}
@media (prefers-reduced-motion: reduce) {
	#activity_center #pp-asset-picker-accordion > .accordion-item,
	.modern-asset-picker #pp-asset-picker-accordion > .accordion-item,
	.modern-asset-picker #inactive_accordion > .accordion-item,
	.modern-asset-picker .pp-asset-inactive-accordion > .accordion-item,
	.modern-asset-picker .pp-assets-by-category > .accordion-item,
	.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item,
	.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal.pp-asset-modal-category-accordion > .accordion-item,
	#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header,
	.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header,
	.modern-asset-picker #inactive_accordion .accordion-header,
	.modern-asset-picker .pp-asset-inactive-accordion .accordion-header,
	.modern-asset-picker .pp-assets-by-category > .accordion-item > .accordion-header,
	.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item > .accordion-header,
	.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal .pp-asset-category-header {
		transition: none;
	}
}

/* Select Assets picker — envelope when open master group */
#activity_center #pp-asset-picker-accordion > .accordion-item,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item {
	border: 1px solid transparent;
	border-radius: var(--bs-border-radius, 0.375rem);
	margin-bottom: 0.25rem;
}
#activity_center #pp-asset-picker-accordion > .accordion-item:has(> .accordion-collapse.show),
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item:has(> .accordion-collapse.show) {
	border-color: var(--bs-primary);
	overflow: hidden;
}
#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header:has(+ .accordion-collapse.show),
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header:has(+ .accordion-collapse.show) {
	background-color: transparent;
	border-bottom: 1px solid var(--bs-primary);
	box-shadow: none;
}
#activity_center #pp-asset-picker-accordion .pp-asset-group-title,
.modern-asset-picker #pp-asset-picker-accordion .pp-asset-group-title,
#activity_center #pp-asset-picker-accordion .pp-asset-category-title,
.modern-asset-picker #pp-asset-picker-accordion .pp-asset-category-title {
	color: var(--bs-body-color);
}
#activity_center #pp-asset-picker-accordion .assign-task-asset-check a.form-check-label,
.modern-asset-picker #pp-asset-picker-accordion .assign-task-asset-check a.form-check-label {
  color: var(--bs-body-color);
}

/* Prevent icon/button shrinking */
#pp-asset-picker-accordion .btn,
#pp-asset-picker-accordion .bi,
#inactive_accordion .btn,
#inactive_accordion .bi,
#proAccordionFlushModal .btn,
#proAccordionFlushModal .bi {
  flex-shrink: 0;
}

/* Style collapse arrow button */
#pp-asset-picker-accordion .toggle-btn,
#proAccordionFlushModal .toggle-btn {
  border: none;
  background: transparent;
  font-size: 1.25rem;
  padding: .75rem 1rem;
}

#pp-asset-picker-accordion .toggle-btn,
#proAccordionFlushModal .toggle-btn {
  padding-left: 0.75rem;
  padding-right: 0.25rem;
}

#pp-asset-picker-accordion .toggle-btn svg.lucide-chevron-right,
#proAccordionFlushModal .toggle-btn svg.lucide-chevron-right,
#pp-asset-picker-accordion .toggle-btn .pp-lucide,
#proAccordionFlushModal .toggle-btn .pp-lucide {
  transition: transform 0.2s ease;
  display: inline-block;
}

#pp-asset-picker-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide-chevron-right,
#proAccordionFlushModal .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide-chevron-right,
#pp-asset-picker-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn .pp-lucide,
#proAccordionFlushModal .accordion-header:has(+ .accordion-collapse.show) .toggle-btn .pp-lucide {
  transform: rotate(90deg);
}

#pp-asset-picker-accordion .accordion-body,
#proAccordionFlushModal .accordion-body {
  border-bottom: 1px solid var(--bs-border-color);
}

/* Asset child modal — row surfaces mirror main .table / DataTables */
#proAccordionFlushModal .accordion-item {
  background-color: transparent;
  border-color: var(--bs-border-color);
}
#proAccordionFlushModal .accordion-header .pp-asset-category-select-all {
  margin-right: 0.5rem;
}
#proAccordionFlushModal .accordion-header .pp-asset-category-select-all .form-check-label {
  color: var(--bs-body-color);
  cursor: pointer;
}
#proAccordionFlushModal .accordion-body:not(.bg-light) {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  padding: 0.5rem 0.625rem;
  align-items: center;
  gap: 0.5rem;
}
#proAccordionFlushModal .accordion-body.bg-light,
#proAccordionFlushModal .asset-modal-subcategory-row {
  background-color: var(--bs-tertiary-bg) !important;
  color: var(--bs-body-color) !important;
  padding: 0.375rem 0.625rem;
}
#proAccordionFlushModal.asset-modal-browse-mode .sections-title {
  padding: 0.5rem 0.625rem;
}
#proAccordionFlushModal.asset-modal-browse-mode .asset-modal-asset-link,
.asset-child-modal .asset-modal-asset-link {
  color: var(--bs-body-color);
  text-decoration: none;
  cursor: pointer;
}
#proAccordionFlushModal.asset-modal-browse-mode .asset-modal-asset-link:hover,
.asset-child-modal .asset-modal-asset-link:hover {
  text-decoration: underline;
}
#proAccordionFlushModal.asset-modal-browse-mode .asset-modal-asset-row {
  display: block;
}
#proAccordionFlushModal.asset-modal-browse-mode .accordion-body:not(.bg-light) {
  padding: 0.375rem 0.5rem;
}
#proAccordionFlushModal.asset-modal-browse-mode .asset-modal-asset-row--indented {
  padding-left: 0.75rem;
}
#proAccordionFlushModal.asset-modal-browse-mode .child-asset {
  padding-left: 0;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
#proAccordionFlushModal.asset-modal-browse-mode .grandchild-subcategory-div {
  padding-left: 0.5rem;
}
#proAccordionFlushModal .asset-modal-asset-name {
  font-size: 0.9375rem;
  line-height: 1.35;
}
.asset-child-modal .modal-body {
  padding-left: 1rem;
  padding-right: 1rem;
}
.modern-asset-picker .asset-dashboard-master-row,
.modern-asset-picker .asset-dashboard-category-row {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
#proAccordionFlushModal .grandchild-subcategory-div .subcategory-title {
  background-color: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
  border-bottom: 1px solid var(--bs-border-color);
}

/* Asset child modal — larger checkboxes + row spacing (match assign-task asset list) */
#proAccordionFlushModal .parent-line-item-div,
#proAccordionFlushModal .subcategory-line-item-div {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 0;
}
#proAccordionFlushModal .parent-line-item-div > span,
#proAccordionFlushModal .subcategory-line-item-div > span,
#proAccordionFlushModal .child-asset {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  width: 100%;
}
#proAccordionFlushModal .form-check,
#proAccordionFlushModal .checkbox_label label,
#proAccordionFlushModal .radio_label label {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding-left: 0;
  margin-bottom: 0;
  min-height: 0;
}
#proAccordionFlushModal .form-check-input[type="checkbox"],
#proAccordionFlushModal .form-check-input[type="radio"] {
	margin-top: 0;
	margin-left: 0;
	float: none;
	flex-shrink: 0;
	cursor: pointer;
}
#proAccordionFlushModal .form-check-label {
  padding-left: 0;
  cursor: pointer;
}
#proAccordionFlushModal .child-asset {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0;
}
#proAccordionFlushModal .grandchild-subcategory-div {
  padding-left: 1rem;
  line-height: inherit;
}
#proAccordionFlushModal .subcategory-line-item-div {
  padding-left: 0;
}

/* Shared body padding */
.accordion-body {
  padding: .5rem 0 .5rem 1rem;
}

/* Task list accordions — My Tasks, outstanding/upcoming/complete/process, bucket tasks */
[data-pref-key="task-accordion-1"] {
  margin-top: 0;
  margin-bottom: 0.5rem;
}
[data-pref-key="task-accordion-1"] .accordion-button {
  padding: 0.75rem 1rem;
  min-width: 0;
  align-items: flex-start;
}
/* Chevron next to title row (not vertically centered on multi-line header) */
[data-pref-key="task-accordion-1"] .accordion-button::after {
  margin-top: 0.35rem;
}
[data-pref-key="task-accordion-1"] .accordion-button > .d-flex {
  min-width: 0;
  flex: 1 1 auto;
}
[data-pref-key="task-accordion-1"] .task-accordion-header-body {
  min-width: 0;
}
[data-pref-key="task-accordion-1"] .accordion-body {
  padding: 1rem;
  border-bottom-width: 0.0625rem;
}
[data-pref-key="task-accordion-1"] .task-accordion-header-chips {
  gap: 0.25rem;
  margin-bottom: 0.25rem; /* mb-1 — air under status/priority row before title */
}
[data-pref-key="task-accordion-1"] .task-header-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 1.25rem;
  line-height: 1.25;
  margin-bottom: 0 !important;
  font-weight: 400;
  padding: 0.15rem 0.4rem;
}
/* Priority P# — no status dots; tighter gap */
[data-pref-key="task-accordion-1"] .priority-1.task-header-chip,
[data-pref-key="task-accordion-1"] .priority-2.task-header-chip,
[data-pref-key="task-accordion-1"] .priority-3.task-header-chip,
[data-pref-key="task-accordion-1"] .priority-4.task-header-chip,
[data-pref-key="task-accordion-1"] .priority-5.task-header-chip {
  gap: 0;
}
[data-pref-key="task-accordion-1"] .priority-1.task-header-chip::before,
[data-pref-key="task-accordion-1"] .priority-2.task-header-chip::before,
[data-pref-key="task-accordion-1"] .priority-3.task-header-chip::before,
[data-pref-key="task-accordion-1"] .priority-4.task-header-chip::before,
[data-pref-key="task-accordion-1"] .priority-5.task-header-chip::before {
  display: none;
}
/*
 * Accordion header chips — one grammar: tint fill + stroke + colored text.
 * Urgency = hue + mix strength (not solid vs outline).
 * Calm: Assigned, P3–P5 · Active: In Process, P2 · Urgent: P1, Outstanding · Done: Completed
 */
[data-pref-key="task-accordion-1"] .status-assigned.task-header-chip {
  background: var(--bs-body-bg);
  color: var(--bs-secondary);
  border: 1px solid var(--bs-border-color);
}
[data-pref-key="task-accordion-1"] .status-in-process.task-header-chip {
  background: color-mix(in oklab, var(--bs-secondary) 18%, var(--bs-body-bg));
  color: var(--bs-secondary);
  border: 1px solid color-mix(in oklab, var(--bs-secondary) 35%, var(--bs-border-color));
}
[data-pref-key="task-accordion-1"] .status-outstanding.task-header-chip {
  background: color-mix(in oklab, var(--bs-danger) 16%, var(--bs-body-bg));
  color: var(--bs-danger);
  border: 1px solid color-mix(in oklab, var(--bs-danger) 45%, var(--bs-border-color));
}
[data-pref-key="task-accordion-1"] .status-completed.task-header-chip {
  background: color-mix(in oklab, var(--bs-success) 16%, var(--bs-body-bg));
  color: var(--bs-success);
  border: 1px solid color-mix(in oklab, var(--bs-success) 40%, var(--bs-border-color));
}
[data-pref-key="task-accordion-1"] .priority-1.task-header-chip {
  background: color-mix(in oklab, var(--bs-danger) 18%, var(--bs-body-bg));
  color: var(--bs-danger);
  border: 1px solid color-mix(in oklab, var(--bs-danger) 50%, var(--bs-border-color));
}
[data-pref-key="task-accordion-1"] .priority-2.task-header-chip {
  background: color-mix(in oklab, var(--bs-warning) 22%, var(--bs-body-bg));
  color: var(--bs-emphasis-color);
  border: 1px solid color-mix(in oklab, var(--bs-warning) 55%, var(--bs-border-color));
}
[data-pref-key="task-accordion-1"] .priority-3.task-header-chip,
[data-pref-key="task-accordion-1"] .priority-4.task-header-chip,
[data-pref-key="task-accordion-1"] .priority-5.task-header-chip {
  background: var(--bs-body-bg);
  color: var(--bs-secondary);
  border: 1px solid var(--bs-border-color);
}
/* Offline keeps high-contrast solid (utility classes on the chip) */
[data-pref-key="task-accordion-1"] .task-header-chip.bg-dark {
  background-color: var(--bs-dark) !important;
  color: var(--bs-white) !important;
  border-color: var(--bs-dark);
}
[data-pref-key="task-accordion-1"] .task-header-chip--icon {
  padding: 0.15rem 0.25rem;
  min-height: 1.25rem;
  box-sizing: border-box;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.25rem;
  color: var(--bs-secondary-color);
}
[data-pref-key="task-accordion-1"] .task-header-chip--icon .bi {
  font-size: var(--pp-font-ui);
  line-height: 1;
}
[data-pref-key="task-accordion-1"] .task-header-chip--icon .pp-lucide,
[data-pref-key="task-accordion-1"] .task-header-chip--icon svg.lucide {
  width: var(--pp-font-ui);
  height: var(--pp-font-ui);
  stroke-width: 1.75;
  color: currentColor;
}

/* Lucide icons in Options / More dropdown */
.task-quick-action-band .dropdown-menu .dropdown-item .pp-lucide,
.task-quick-action-band .dropdown-menu .dropdown-item svg.lucide {
  width: 1em;
  height: 1em;
  stroke-width: 1.75;
  color: currentColor;
  flex-shrink: 0;
}
[data-pref-key="task-accordion-1"] .task-accordion-header-title {
  font-weight: 500;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-width: 0;
  word-break: break-word;
}
[data-pref-key="task-accordion-1"] .task-accordion-header-meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--bs-body-color);
  font-weight: 400;
  min-width: 0;
}
/* Combined date · asset — allow wrap (no truncate) */
[data-pref-key="task-accordion-1"] .task-accordion-header-meta--date-asset {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}
[data-pref-key="task-accordion-1"] .accordion-button:not(.collapsed) {
  background-color: color-mix(in oklab, var(--bs-primary) 8%, var(--bs-accordion-bg, var(--bs-body-bg)));
  color: var(--bs-body-color);
}
[data-pref-key="task-accordion-1"] .accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: var(--bs-primary);
}

/* view_individual_task — card wraps accordion; no primary open border */
[data-task-detail-page] {
  margin-bottom: 0 !important;
}
[data-task-detail-page] .accordion-item,
[data-task-detail-page] .accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: transparent;
  border-width: 0;
}
[data-task-detail-page] .accordion-button:not(.collapsed) {
  background-color: transparent;
}
[data-task-detail-page][data-pref-key="task-accordion-1"] .accordion-body {
  border-bottom: 0;
  border-bottom-width: 0;
}

/* Task Quick Action Band — My Tasks task row toolbar */
.task-quick-action-band {
  --qab-target: 3rem;
  --qab-icon: 1.25rem;
  --qab-label: var(--pp-font-caption); /* type scale caption — not below 0.75rem */
}

.task-quick-action-band__shell {
  border-radius: var(--bs-border-radius);
}

.task-quick-action-band__shell .task-quick-action-band__btn.btn-light {
  --bs-btn-border-color: transparent;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-border-color: transparent;
  border: 0;
  box-shadow: none;
}

@media (max-width: 767.98px) {
  .task-quick-action-band {
    --qab-target: 3rem;
    --qab-icon: 1.25rem;
    --qab-label: var(--pp-font-caption);
  }

  /* Phase A — mobile: less shell chrome; cell tap via stretched-link; icon-sized btn so has-data dots hug icon */
  .task-quick-action-band__shell {
    border: none;
    border-radius: 0;
    background: transparent;
    padding: 0.5rem 0 0;
    margin-bottom: 1rem;
  }

  .task-quick-action-band__item {
    align-items: center;
  }

  .task-quick-action-band__item .dropdown {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  /* Pin split stays a horizontal btn group (not stacked like More) */
  .task-quick-action-band__item .dropdown.task-quick-action-band__pin-group {
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    max-width: none;
  }

  /* Keep btn at --qab-target (not cell-wide) so ::after has-data dot stays on the icon */
  .task-quick-action-band__btn {
    width: var(--qab-target);
    max-width: var(--qab-target);
    align-self: center;
  }

  .task-quick-action-band__pin-group {
    width: 100%;
  }

  .task-quick-action-band__pin-group > .task-quick-action-band__btn:first-child {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .task-quick-action-band__pin-group > .dropdown-toggle-split {
    width: auto;
    max-width: none;
  }

  .task-quick-action-band__label {
    max-width: none;
    align-self: center;
  }
}

.task-quick-action-band__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem 0.35rem;
  align-items: start;
}

/* After base grid rule so cascade wins on small screens */
@media (max-width: 767.98px) {
  .task-quick-action-band__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.25rem 0.1rem;
    justify-items: stretch;
  }
}

@media (max-width: 767.98px) {
  /* Let toolbar cells stay direct grid children on mobile */
  .task-quick-action-band__main {
    display: contents;
  }
}

@media (min-width: 768px) {
  .task-quick-action-band__grid {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .task-quick-action-band__main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.5rem 1rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  /* Borderless icon taps; shell keeps the grouped frame */
  .task-quick-action-band__btn {
    border: 0;
    background-color: transparent;
    box-shadow: none;
  }

  .task-quick-action-band__btn:hover,
  .task-quick-action-band__btn:focus-visible {
    border: 0;
    background-color: color-mix(in oklab, var(--bs-primary) 12%, transparent);
    color: var(--bs-primary);
    box-shadow: none;
  }

  .task-quick-action-band__pin-group .task-quick-action-band__btn {
    border: 0;
  }

  .task-quick-action-band__item--more {
    flex: 0 0 auto;
    margin-left: 0;
  }

  .task-quick-action-band__item--edit-task {
    flex: 0 0 auto;
  }
}

/* Options gear retired — full task menu lives under More on all breakpoints */
.task-quick-action-band__item--options {
  display: none !important;
}

.task-quick-action-band__item--more {
  order: 10;
}

.task-quick-action-band__item--edit-task {
  order: 9;
}

.task-quick-action-band__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  text-align: center;
  min-width: 0;
}

/* Label is visual only — stretched-link on the primary control covers the cell */
.task-quick-action-band__item > .task-quick-action-band__label {
  pointer-events: none;
}

@media (min-width: 768px) {
  .task-quick-action-band__item {
    flex: 0 0 auto;
  }
}

.task-quick-action-band__btn {
  position: relative;
  min-width: var(--qab-target);
  min-height: var(--qab-target);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  box-shadow: none;
  /* Empty = muted; --has-data = success icon + status dot */
  color: var(--bs-secondary-color);
}

.task-quick-action-band__btn .bi {
  font-size: var(--qab-icon);
  line-height: 1;
}

/* Lucide QAB pilot — SVG replaces data-lucide placeholders */
.task-quick-action-band__btn .pp-lucide,
.task-quick-action-band__btn svg.lucide,
.task-quick-action-band__btn [data-lucide] {
  width: var(--qab-icon);
  height: var(--qab-icon);
  stroke-width: 1.75;
  color: currentColor;
  flex-shrink: 0;
}

.task-quick-action-band__btn:hover,
.task-quick-action-band__btn:focus-visible {
  border: 0;
  background-color: color-mix(in oklab, var(--bs-primary) 12%, transparent);
  color: var(--bs-primary);
  box-shadow: none;
}

.task-quick-action-band__label {
  font-size: var(--qab-label);
  line-height: 1.1;
  color: var(--bs-secondary-color);
  max-width: 5.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.task-quick-action-band__item:hover .task-quick-action-band__label,
.task-quick-action-band__item:focus-within .task-quick-action-band__label {
  color: var(--bs-primary);
}

/* Has data — success icon + status dot; label stays muted; normal stroke */
.task-quick-action-band__item--has-data .task-quick-action-band__btn {
  color: var(--bs-success);
}
.task-quick-action-band__item--has-data .task-quick-action-band__btn::after {
  content: "";
  position: absolute;
  top: 0.2rem;
  right: 0.2rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background-color: var(--bs-success);
  box-shadow: 0 0 0 1.5px var(--bs-body-bg);
  pointer-events: none;
}
.task-quick-action-band__item--has-data:hover .task-quick-action-band__btn,
.task-quick-action-band__item--has-data:focus-within .task-quick-action-band__btn {
  color: var(--bs-success);
}

.task-quick-action-band__pin-group .task-quick-action-band__btn {
  border: 0;
  border-radius: 0;
}

.task-quick-action-band__pin-group {
  position: relative;
  width: auto;
}

.task-quick-action-band__pin-group > .task-quick-action-band__btn:first-child {
  border-top-left-radius: var(--bs-border-radius);
  border-bottom-left-radius: var(--bs-border-radius);
  flex: 1 1 auto;
  min-width: 0;
}

.task-quick-action-band__pin-group > .dropdown-toggle-split {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  min-width: 1.75rem;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  border-top-right-radius: var(--bs-border-radius);
  border-bottom-right-radius: var(--bs-border-radius);
}

.task-quick-action-band__pin-group > .dropdown-menu {
  z-index: 1050;
}

/* Edit Task offcanvas — settings-style rows (My Tasks family) */
.pp-edit-task-offcanvas .pp-edit-task-meta {
  padding: 0.5rem 1rem 0.75rem;
}

.pp-edit-task-offcanvas .pp-edit-task-row__icon,
.pp-edit-task-offcanvas .pp-edit-task-row__icon.pp-lucide,
.pp-edit-task-offcanvas [data-lucide].pp-edit-task-row__icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: var(--bs-secondary-color);
}

.pp-edit-task-offcanvas .pp-edit-task-row__label {
  flex-shrink: 0;
}

.pp-edit-task-offcanvas .pp-edit-task-row__value {
  font-size: var(--pp-font-caption);
  color: var(--bs-secondary-color);
  margin-left: auto;
  max-width: 9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: end;
}

/* Due / float — value under the title, indented with icon column */
.pp-edit-task-offcanvas .pp-edit-task-row--date .pp-edit-task-row__value {
  margin-left: calc(1.25rem + 0.5rem); /* icon + gap */
  max-width: none;
  text-align: start;
  white-space: normal;
}

.pp-edit-task-offcanvas .pp-edit-task-row__chevron,
.pp-edit-task-offcanvas .pp-edit-task-row__chevron.pp-lucide,
.pp-edit-task-offcanvas [data-lucide].pp-edit-task-row__chevron {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--bs-secondary-color);
  opacity: 0.65;
}

.pp-edit-task-offcanvas .pp-edit-task-delete {
  margin-top: 0.5rem;
}

[data-pref-key="task-accordion-1"] .task-preview-stack:has(.task-preview-row) {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
[data-pref-key="task-accordion-1"] .task-preview-row {
  gap: 0.4rem; /* leading middot ↔ text */
}
[data-pref-key="task-accordion-1"] .task-preview-row::before {
  content: "·";
  flex: 0 0 auto;
  line-height: inherit;
  color: var(--bs-secondary-color);
  user-select: none;
}
[data-pref-key="task-accordion-1"] .task-preview-row--meta {
  font-size: var(--pp-font-ui);
  color: var(--bs-body-color);
}
[data-pref-key="task-accordion-1"] .task-preview-row--notes {
  font-size: var(--pp-font-ui);
  color: var(--bs-body-color);
}
[data-pref-key="task-accordion-1"] .task-preview-row--notes .task-preview-label {
  color: var(--bs-body-color);
}
[data-pref-key="task-accordion-1"] .task-preview-row > .lh-sm {
  flex: 1;
  min-width: 0;
}

/* Preview row action labels — scoped; medium weight + body at rest, primary on hover/focus/active (touch) */
[data-pref-key="task-accordion-1"] .task-preview-row .task-preview-label,
[data-pref-key="task-accordion-1"] .task-preview-row .task-preview-field-label {
  font-weight: 500;
}

[data-pref-key="task-accordion-1"] .task-preview-row .task-preview-label {
  color: var(--bs-body-color);
  text-decoration: none;
}

[data-pref-key="task-accordion-1"] .task-preview-row .task-preview-label:hover,
[data-pref-key="task-accordion-1"] .task-preview-row .task-preview-label:focus-visible,
[data-pref-key="task-accordion-1"] .task-preview-row .task-preview-label:active {
  color: var(--bs-primary);
}

[data-pref-key="task-accordion-1"] .task-preview-row--meta .task-preview-label:hover,
[data-pref-key="task-accordion-1"] .task-preview-row--meta .task-preview-label:focus-visible,
[data-pref-key="task-accordion-1"] .task-preview-row--meta .task-preview-label:active {
  color: var(--bs-primary);
}

.accordion-item {
    color: var(--bs-accordion-color);
    background-color: var(--bs-accordion-bg);
    border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
}

/* ==========================================================================
   8. Legacy — migrated from productiveparks3.css (Phase 1 layout)
   Phase 2 (2026-07): hardcoded colors → palette tokens (palettes.css + layout.css).
   Intentionally last in this file — do not move above Sections 2–4.
   Structural globals below (.alert layout, .card display revert, typography) stay
   until a scoped pass — see docs/frontend/palettes-notes.md → Deferred structural.
   Dark-mode companions live in layout.css.
   ========================================================================== */

/* --- Utilities --- */
.inverse-text {
	color: var(--bs-white);
}

.invalid-feedback {
	text-align: center;
	margin-top: 1.25rem;
	display: block;
	color: var(--bs-warning);
	font-size: var(--pp-font-ui);
	font-weight: 300;
	line-height: 1;
}

.pp-date-error-float {
	position: absolute;
	top: 100%;
	left: 0;
	margin-top: 0.125rem;
	white-space: nowrap;
	z-index: 5;
}

.pp-date-row-has-error {
	padding-bottom: 1.5rem;
}

.multi-date,
.total-multi-hours {
	border-radius: 0;
	padding: 0;
	display: inline;
	border: 1px solid var(--bs-border-color);
	font-weight: bold;
}

.expired-bucket-change-date-btn {
	line-height: 1;
}

.expired-bucket-assign-select {
	min-width: 8.75rem;
}

.btn-hilight {
	border: 2px solid var(--bs-emphasis-color);
	padding: 0.4375rem 0.5rem;
	background: var(--bs-warning);
	color: var(--bs-white);
}

.task-assign-dropdown {
	max-width: 80%;
}

input[type="file"] {
	border: none;
	max-width: 13.125rem;
	overflow: hidden;
}

/* Legacy v3 — flush row margins on specific flows only (global .row override removed Batch 3) */
#intro .row,
#work_order .row {
	margin-left: 0;
	margin-right: 0;
}

/* --- Alerts (legacy v3 layout — non-dismissible only; BS5 .alert-dismissible keeps default chrome) --- */
.alert-danger:not(.alert-dismissible) {
	background-color: var(--bs-danger);
	border-color: var(--bs-danger);
	color: var(--bs-white);
	font-size: 1.125rem;
	font-weight: 300;
	text-align: left;
	margin-top: 0.625rem;
}

.alert:not(.alert-dismissible) {
	border: 0 solid transparent;
	margin-bottom: 1.25rem;
	padding: 0.9375rem 1.25rem;
	text-align: left;
}

.alert:not(.alert-dismissible) li {
	margin: 0 0 0 0.3125rem;
	text-align: left;
	font-weight: 300;
	line-height: 130%;
	font-size: var(--pp-font-ui);
	list-style-type: disclosure-closed;
}

.alert-text {
	font-weight: normal;
	padding: 0.125rem 0.6875rem;
	color: var(--bs-danger);
	font-size: var(--pp-font-ui);
	display: inline-block;
	width: auto;
}

.crew-alert-text {
	background: var(--bs-warning-bg-subtle);
	color: var(--bs-warning-text-emphasis);
	text-align: center;
	font-size: var(--pp-font-caption);
	padding: 0.625rem 0.5rem;
	border-radius: 0.25rem;
	line-height: 110%;
	margin-bottom: 0.625rem;
	width: 100%;
	display: inline-block;
	cursor: pointer;
	font-weight: bold;
}

.date-alert-text {
	font-weight: normal;
	padding: 0.1875rem 0.375rem;
	color: var(--bs-white);
	font-size: var(--pp-font-caption);
	display: inline-block;
	width: auto;
	background: var(--bs-emphasis-color);
	border-radius: 0.25rem;
	margin-left: 0;
	margin-right: 0.25rem;
	border: 0 solid var(--bs-warning);
}

.alert h4 {
	color: inherit;
	margin-top: 0;
	font-size: 1.25rem;
	font-weight: 300;
}

.work-order-edit-page #activity_center #capture-location,
.work-order-edit-page .modern-asset-picker #capture-location {
	display: block !important;
}

.work-order-edit-page .work-order-actions-toolbar {
	margin-bottom: 1rem;
	gap: 1.5rem;
}

.work-order-edit-page #explanation,
.work-order-edit-page #supervisor_notes,
.work-order-edit-page #staff_notes {
	height: auto;
	min-height: 3rem;
	overflow-y: hidden;
	resize: vertical;
}

/* Work Orders index — queue list (replaces blue btn-primary row) */
.work-order-queue-list .list-group-item-action {
	background-color: var(--bs-body-bg);
	color: var(--bs-body-color);
	border-color: var(--bs-border-color);
}
.work-order-queue-list .list-group-item-action:hover,
.work-order-queue-list .list-group-item-action:focus {
	background-color: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
}
.work-order-queue-list .badge {
	min-width: 2rem;
	font-size: var(--pp-font-ui);
	font-weight: 600;
}

/* Work Orders hub — /work_order tabs layout (asset edit keeps modals) */
.work-order-hub-tabs .nav-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}
.work-order-hub-tabs .badge {
	min-width: 1.75rem;
	font-size: var(--pp-font-caption);
	font-weight: 600;
	vertical-align: middle;
}

/* Hub layout — left shortcut card (xl+) + touch nav (< xl); tokens on .pp-hub */

.pp-hub {
	/* Active nav accent (card left bar; touch utility open uses border-color) */
	--pp-hub-nav-active-bar: 3px;
	--pp-hub-nav-active-weight: 600;
	/* Touch strip controls */
	--pp-hub-touch-control-gap: 0.5rem;
	--pp-hub-touch-control-pad-y: 0.5rem;
	--pp-hub-touch-control-pad-x: 1rem;
	--pp-hub-touch-track-gap: 0.5rem;
	--pp-hub-touch-more-min: 5.5rem;
	--pp-hub-touch-more-icon-only-min: 2.75rem;
	--pp-hub-touch-chip-gap: 0.25rem;
	--pp-hub-touch-chip-icon-size: 0.875rem;
	--pp-hub-touch-utility-icon-size: 1.25rem;
	--pp-hub-touch-link-height: 2.75rem;
	--pp-hub-touch-more-panel-gap: 0.5rem;
	--pp-hub-card-width: 17rem;
	/* Pane title band (bleed matches card pad) */
	--pp-hub-pane-title-bleed-x: 1rem;
	--pp-hub-pane-title-bleed-y: 1rem;
	--pp-hub-pane-title-pad-top: 1rem;
	--pp-hub-pane-title-pad-bottom: 1rem;
	/* Default title → body air (forms / Search); datatable cards zero this — toolbar owns the strip */
	--pp-hub-pane-title-gap-after: 1rem;
}

/* Hidden page title — keep light top air now that visible h1 padding is gone */
.container > h1.work-orders-page-title + .pp-page-body,
.container-fluid > h1.work-orders-page-title + .pp-page-body {
	margin-top: 1rem;
}

/* Tab hub — queue section titles slightly larger on desktop */
.pp-hub--tab .card.card-body h2:not(.accordion-header):not(.visually-hidden) {
	font-size: 1.125rem;
}

@media (max-width: 767.98px) {
	.pp-hub--tab .card.card-body h2:not(.accordion-header):not(.visually-hidden) {
		font-size: var(--pp-h2-size-sm);
	}
}

/* Pane title band — opt-in; left-aligned (Phase A) */
.pp-hub-pane-title {
	text-align: start;
	background-color: var(--bs-tertiary-bg);
	border-bottom: 1px solid var(--bs-border-color);
	margin: calc(-1 * var(--pp-hub-pane-title-bleed-y, 1rem)) calc(-1 * var(--pp-hub-pane-title-bleed-x, 1rem)) var(--pp-hub-pane-title-gap-after, 1rem);
	padding: var(--pp-hub-pane-title-pad-top, 1rem) var(--pp-hub-pane-title-bleed-x, 1rem) var(--pp-hub-pane-title-pad-bottom, 1rem);
}

/* Beat .card.card-body h2 { margin-bottom: 1rem } so band padding alone sets vertical rhythm */
.card.card-body .pp-hub-pane-title h2:not(.accordion-header):not(.visually-hidden) {
	margin-top: 0;
	margin-bottom: 0;
}

.pp-hub-pane-title .btn {
	margin-top: 0.5rem;
}

/* Tab / board hub: toolbar pad is the post-title gap — don’t double it */
.pp-hub--tab .tab-pane > .card.card-body.pp-datatable-card,
.pp-hub--board .tab-pane.pp-datatable-card,
.pp-hub--board .tab-pane > .card.card-body.pp-datatable-card {
	--pp-hub-pane-title-gap-after: 0;
}

/* Empty queue: no DT toolbar — restore default title → body air */
.pp-hub--tab .tab-pane > .card.card-body.pp-datatable-card:not(:has(.dataTables_wrapper)),
.pp-hub--board .tab-pane.pp-datatable-card:not(:has(.dataTables_wrapper)),
.pp-hub--board .tab-pane > .card.card-body.pp-datatable-card:not(:has(.dataTables_wrapper)) {
	--pp-hub-pane-title-gap-after: 1rem;
}

@media (min-width: 992px) {
	.pp-hub--tab .tab-pane > .card.card-body,
	.pp-hub--board .tab-pane > .card.card-body,
	.pp-hub--board .tab-pane.pp-datatable-card {
		--pp-hub-pane-title-bleed-x: 1.5rem;
		--pp-hub-pane-title-bleed-y: 1.25rem;
		--pp-hub-pane-title-pad-top: 1.25rem;
		--pp-hub-pane-title-pad-bottom: 1.25rem;
	}
}

/* Tab hub table toolbar — equal pad above/below Search·Show·Export; hairline under chrome */
.pp-hub--tab .pp-dt-toolbar--in-section {
	border-bottom: 1px solid var(--bs-border-color);
	align-items: center;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

/* Beat mobile `.pp-datatable-card.p-3 … padding-top: 0` so Search is not flush under the title band */
@media (max-width: 767.98px) {
	.pp-hub--tab .pp-datatable-card.p-3 .dataTables_wrapper .pp-dt-toolbar--in-section,
	.pp-hub--tab .card.card-body.p-3 .dataTables_wrapper .pp-dt-toolbar--in-section {
		padding-top: 0.5rem;
		padding-bottom: 0.5rem;
		padding-left: 0;
		padding-right: 0;
	}
}

.pp-hub--tab .pp-dt-toolbar .dataTables_filter,
.pp-hub--tab .pp-dt-toolbar .dataTables_filter label {
	display: flex;
	align-items: center;
	margin: 0;
	width: 100%;
}

.pp-hub--tab .pp-dt-toolbar .pp-dt-toolbar-actions {
	align-items: center;
}

.pp-hub--tab .pp-dt-toolbar .pp-dt-search-group,
.pp-hub--tab .pp-dt-toolbar .pp-dt-length-dropdown .pp-dt-length-trigger,
.pp-hub--tab .pp-dt-toolbar .pp-dt-export-dropdown .pp-dt-export-trigger {
	min-height: var(--pp-dt-toolbar-control-height);
}

.pp-hub .pp-hub-shortcuts--card {
	position: sticky;
	top: calc(var(--navbar-h, 4.0625rem) + 1rem);
	z-index: 2;
	width: var(--pp-hub-card-width);
	max-width: 100%;
	font-size: var(--pp-font-ui);
}

.pp-hub .pp-hub-shortcuts--card > .card {
	background-color: var(--bs-body-bg);
}

/* Slim nav column — stretches with row so sticky card has a tall containing block */
.pp-hub .pp-hub-nav-col {
	flex: 0 0 auto;
	width: auto;
	max-width: 17rem;
}

.pp-hub .pp-hub-shortcuts__section {
	display: flex;
	align-items: center;
	padding: 0.5rem 1rem 0.35rem;
	margin: 0;
	background: transparent;
	border-top-width: 0;
	cursor: default;
	pointer-events: none;
}

.pp-hub .pp-hub-shortcuts__section-label {
	display: inline-block;
	font-size: var(--pp-font-caption);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1.2;
	color: var(--bs-secondary-color);
}

.pp-hub .pp-hub-queue-badge {
	flex-shrink: 0;
	min-width: 3ch;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	text-align: center;
	font-size: var(--pp-font-caption);
	font-weight: var(--pp-hub-nav-active-weight);
	font-variant-numeric: tabular-nums;
}

/* Hover: darker wash only — no primary green (inactive rows) */
.pp-hub .pp-hub-shortcuts .list-group-item-action:not(.active):not(.pp-hub-nav-utility--open):hover,
.pp-hub .pp-hub-shortcuts .list-group-item-action:not(.active):not(.pp-hub-nav-utility--open):focus-visible {
	color: var(--bs-body-color);
	background-color: var(--bs-tertiary-bg);
}

.pp-hub .pp-hub-shortcuts .list-group-item-action:not(.active):not(.pp-hub-nav-utility--open):hover .pp-lucide:not(.text-danger),
.pp-hub .pp-hub-shortcuts .list-group-item-action:not(.active):not(.pp-hub-nav-utility--open):focus-visible .pp-lucide:not(.text-danger),
.pp-hub .pp-hub-shortcuts .list-group-item-action:not(.active):not(.pp-hub-nav-utility--open):hover svg.lucide:not(.text-danger),
.pp-hub .pp-hub-shortcuts .list-group-item-action:not(.active):not(.pp-hub-nav-utility--open):focus-visible svg.lucide:not(.text-danger) {
	color: var(--bs-body-color);
}

/* Active item: tertiary fill + body text/icon + left accent */
.pp-hub .pp-hub-shortcuts .list-group-item.active,
.pp-hub .pp-hub-shortcuts .list-group-item.active:hover,
.pp-hub .pp-hub-shortcuts .list-group-item.active:focus,
.pp-hub .pp-hub-shortcuts .list-group-item.active:focus-visible {
	z-index: 2;
	color: var(--bs-body-color);
	background-color: var(--bs-tertiary-bg);
	border-color: var(--bs-list-group-border-color, var(--bs-border-color));
	box-shadow: inset var(--pp-hub-nav-active-bar) 0 0 var(--bs-body-color);
	font-weight: var(--pp-hub-nav-active-weight);
}

.pp-hub .pp-hub-shortcuts .list-group-item.active .pp-lucide,
.pp-hub .pp-hub-shortcuts .list-group-item.active svg.lucide,
.pp-hub .pp-hub-shortcuts .list-group-item.active:hover .pp-lucide,
.pp-hub .pp-hub-shortcuts .list-group-item.active:hover svg.lucide,
.pp-hub .pp-hub-shortcuts .list-group-item.active:focus-visible .pp-lucide,
.pp-hub .pp-hub-shortcuts .list-group-item.active:focus-visible svg.lucide {
	color: var(--bs-body-color);
}

.pp-hub .pp-hub-shortcuts .list-group-item.pp-hub-shortcuts__heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.125rem;
	padding-top: 0.875rem;
	padding-bottom: 0.875rem;
	color: var(--bs-body-color);
	font-weight: var(--pp-hub-nav-active-weight);
	background-color: transparent;
	cursor: default;
}

/* Board hub — heading returns to Dashboard View (same action as Dashboard View row) */
.pp-hub--board .pp-hub-shortcuts .list-group-item.pp-hub-shortcuts__heading.list-group-item-action {
	cursor: pointer;
}

.pp-hub--board .pp-hub-shortcuts .list-group-item.pp-hub-shortcuts__heading.list-group-item-action:hover,
.pp-hub--board .pp-hub-shortcuts .list-group-item.pp-hub-shortcuts__heading.list-group-item-action:focus-visible {
	background-color: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
}

.pp-hub .pp-hub-shortcuts__heading-title {
	line-height: 1.25;
}

.pp-hub .pp-hub-shortcuts__heading-sub {
	font-size: var(--pp-font-caption);
	font-weight: 400;
	line-height: 1.2;
	color: var(--bs-secondary-color);
}

.pp-hub .pp-hub-shortcuts .list-group-item-action.pp-hub-nav-utility--open {
	z-index: 2;
	background-color: var(--bs-tertiary-bg);
	color: var(--bs-body-color);
	border-color: var(--bs-list-group-border-color, var(--bs-border-color));
	box-shadow: inset var(--pp-hub-nav-active-bar) 0 0 var(--bs-body-color);
	font-weight: var(--pp-hub-nav-active-weight);
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility--open {
	background-color: var(--bs-tertiary-bg);
	box-shadow: inset var(--pp-hub-nav-active-bar) 0 0 var(--bs-border-color);
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility--open .pp-hub-touch-queue-label {
	font-weight: var(--pp-hub-nav-active-weight);
}

.pp-hub .pp-touch-nav .pp-hub-touch-tablist {
	gap: var(--pp-hub-touch-more-panel-gap);
	min-width: 0;
	width: 100%;
}

.pp-hub .pp-touch-nav .pp-touch-nav-more-panel[hidden] {
	display: none !important;
}

.pp-hub .pp-touch-nav .pp-hub-touch-more-body {
	gap: var(--pp-hub-touch-track-gap);
}

/* More overflow items: full width ≤575; two columns ≥576 — flush with strip (no row gutters) */
.pp-hub .pp-touch-nav .pp-hub-touch-more-item {
	flex: 1 1 100%;
	min-width: 0;
	max-width: 100%;
}

@media (min-width: 576px) {
	.pp-hub .pp-touch-nav .pp-hub-touch-more-item {
		flex: 1 1 calc(50% - (var(--pp-hub-touch-track-gap) / 2));
		max-width: calc(50% - (var(--pp-hub-touch-track-gap) / 2));
	}
}

.pp-hub .pp-touch-nav .nav-link,
.pp-hub .pp-touch-nav .pp-hub-touch-more,
.pp-hub .pp-touch-nav .pp-hub-touch-cta {
	justify-content: space-between;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	text-decoration: none;
	border-radius: var(--bs-border-radius);
	touch-action: manipulation;
}

.pp-hub .pp-touch-nav .badge {
	min-width: 3ch;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	font-variant-numeric: tabular-nums;
}

/* Queue + Search: bordered like More (body stroke); kill sticky hover green */
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:hover,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:focus,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:focus-visible,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:active,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:hover,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:focus,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:focus-visible,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:active {
	justify-content: flex-start;
	gap: var(--pp-hub-touch-control-gap);
	color: var(--bs-body-color);
	background-color: var(--bs-body-bg);
	border: 1.5px solid var(--bs-border-color);
	box-shadow: none;
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility .pp-lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility svg.lucide {
	color: var(--bs-body-color);
}

/* Active queue: tertiary wash; bold label; chip icon primary (attention stays red) */
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active:hover,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active:focus,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active:focus-visible,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active:active {
	color: var(--bs-body-color);
	background-color: var(--bs-tertiary-bg);
	border-color: var(--bs-border-color);
	border-width: 1.5px;
	box-shadow: none;
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-label {
	color: var(--bs-body-color);
	font-weight: var(--pp-hub-nav-active-weight);
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-chip.pp-pill-badge-neutral {
	color: var(--bs-body-color);
	background-color: var(--bs-secondary-bg-subtle, var(--bs-secondary));
	border: none;
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-chip.pp-pill-badge-neutral .pp-lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-chip.pp-pill-badge-neutral svg.lucide {
	color: var(--bs-primary);
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-chip.pp-pill-badge-attention,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue .pp-hub-touch-queue-chip.pp-pill-badge-attention {
	color: var(--bs-danger);
	background-color: transparent;
	border: none;
}

.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-chip.pp-pill-badge-attention .pp-lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue.active .pp-hub-touch-queue-chip.pp-pill-badge-attention svg.lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue .pp-hub-touch-queue-chip.pp-pill-badge-attention .pp-lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue .pp-hub-touch-queue-chip.pp-pill-badge-attention svg.lucide {
	color: var(--bs-danger);
}

.pp-hub .pp-touch-nav .pp-hub-touch-cta {
	justify-content: center;
	font-weight: 500;
	color: #fff;
	background-color: var(--bs-primary);
	border: 1px solid var(--bs-primary);
}

/* More: bordered control in the strip */
.pp-hub .pp-touch-nav .pp-hub-touch-more,
.pp-hub .pp-touch-nav .pp-hub-touch-more:hover,
.pp-hub .pp-touch-nav .pp-hub-touch-more:focus,
.pp-hub .pp-touch-nav .pp-hub-touch-more:focus-visible,
.pp-hub .pp-touch-nav .pp-hub-touch-more:active {
	justify-content: flex-start;
	gap: var(--pp-hub-touch-chip-gap);
	color: var(--bs-body-color);
	background-color: var(--bs-body-bg);
	border: 1.5px solid var(--bs-border-color);
	box-shadow: none;
}

.pp-hub .pp-touch-nav .pp-hub-touch-more .pp-lucide,
.pp-hub .pp-touch-nav .pp-hub-touch-more svg.lucide {
	color: var(--bs-body-color);
}

.pp-hub .pp-touch-nav .pp-hub-touch-priority {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.pp-hub .pp-touch-nav .pp-hub-touch-priority-track {
	overflow: hidden;
	min-width: 0;
	max-width: 100%;
}

.pp-hub .pp-touch-nav .pp-hub-touch-priority-item {
	min-width: 0;
}

.pp-hub .pp-touch-nav .pp-hub-touch-priority-more {
	min-width: var(--pp-hub-touch-more-min);
}

.pp-hub .pp-touch-nav .pp-hub-touch-priority-more[hidden] {
	display: none !important;
}

.pp-hub .pp-touch-nav .pp-hub-touch-label-short {
	display: none;
}

.pp-hub .pp-touch-nav .pp-hub-touch-queue {
	gap: var(--pp-hub-touch-control-gap);
	min-width: 0;
	justify-content: flex-start;
}

.pp-hub .pp-touch-nav .pp-hub-touch-queue-label {
	min-width: 0;
	flex: 1 1 auto;
	text-align: start;
	color: var(--bs-body-color);
}

/* Count pill: icon before number — no border; no left inset before icon */
.pp-hub .pp-touch-nav .pp-hub-touch-queue-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pp-hub-touch-chip-gap);
	min-height: 1.375rem;
	padding: 0.125rem 0.45rem 0.125rem 0;
	line-height: 1;
	font-size: var(--pp-font-caption);
	font-weight: var(--pp-hub-nav-active-weight);
	font-variant-numeric: tabular-nums;
	border: none;
	margin: 0;
}

.pp-hub .pp-touch-nav .pp-hub-touch-queue-chip.pp-pill-badge-neutral {
	border: none;
}

.pp-hub .pp-touch-nav .pp-hub-touch-queue-chip.pp-pill-badge-attention {
	border: none;
	background-color: transparent;
}

.pp-hub .pp-touch-nav .pp-hub-touch-queue-chip .pp-lucide,
.pp-hub .pp-touch-nav .pp-hub-touch-queue-chip svg.lucide {
	width: var(--pp-hub-touch-chip-icon-size);
	height: var(--pp-hub-touch-chip-icon-size);
	flex-shrink: 0;
	color: currentColor;
	margin: 0;
	padding: 0;
}

.pp-hub .pp-touch-nav .pp-hub-touch-more .pp-lucide,
.pp-hub .pp-touch-nav .pp-hub-touch-more svg.lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility .pp-lucide,
.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility svg.lucide {
	width: var(--pp-hub-touch-utility-icon-size);
	height: var(--pp-hub-touch-utility-icon-size);
	flex-shrink: 0;
}

/* Touch nav is the sole chrome below xl — match desktop nav-pill size */
@media (max-width: 1199.98px) {
	.pp-hub .pp-touch-nav {
		--pp-touch-nav-font-size: var(--pp-font-ui);
		--pp-touch-nav-link-height: var(--pp-hub-touch-link-height);
		font-size: var(--pp-touch-nav-font-size);
	}

	.pp-hub .pp-touch-nav .nav-link,
	.pp-hub .pp-touch-nav .pp-hub-touch-more,
	.pp-hub .pp-touch-nav .pp-hub-touch-cta {
		width: 100%;
		font-size: 1em;
		line-height: 1.2;
		height: auto;
		min-height: var(--pp-touch-nav-link-height);
		padding: var(--pp-hub-touch-control-pad-y) var(--pp-hub-touch-control-pad-x);
		gap: var(--pp-hub-touch-control-gap);
	}

	.pp-hub .pp-touch-nav .pp-touch-nav-more-chevron {
		width: var(--pp-hub-touch-utility-icon-size);
		height: var(--pp-hub-touch-utility-icon-size);
		transition: transform 0.15s ease;
	}

	.pp-hub .pp-touch-nav [aria-expanded="true"] .pp-touch-nav-more-chevron {
		transform: rotate(180deg);
	}

	.pp-hub .pp-touch-nav .pp-touch-nav-more-panel {
		margin-top: var(--pp-hub-touch-more-panel-gap);
	}
}

/* ≤400px: short triage labels, tighter chrome, count-only chips */
@media (max-width: 400px) {
	.pp-hub {
		--pp-hub-touch-control-gap: 0.25rem;
		--pp-hub-touch-control-pad-x: 0.5rem;
		--pp-hub-touch-track-gap: 0.35rem;
		--pp-hub-touch-more-min: var(--pp-hub-touch-more-icon-only-min);
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-priority {
		gap: var(--pp-hub-touch-track-gap) !important;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-priority-track {
		gap: var(--pp-hub-touch-track-gap) !important;
	}

	.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:hover,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:focus,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:focus-visible,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-touch-queue:active,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:hover,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:focus,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:focus-visible,
	.pp-hub .pp-touch-nav .nav-link.pp-hub-nav-utility:active,
	.pp-hub .pp-touch-nav .pp-hub-touch-more,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:hover,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:focus,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:focus-visible,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:active {
		padding-left: var(--pp-hub-touch-control-pad-x);
		padding-right: var(--pp-hub-touch-control-pad-x);
		gap: var(--pp-hub-touch-control-gap);
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-priority-more {
		min-width: 0;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-more .pp-hub-touch-queue-label {
		display: none;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-more,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:hover,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:focus,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:focus-visible,
	.pp-hub .pp-touch-nav .pp-hub-touch-more:active {
		justify-content: center;
		padding-left: var(--pp-hub-touch-control-pad-x);
		padding-right: var(--pp-hub-touch-control-pad-x);
		min-width: var(--pp-hub-touch-more-icon-only-min);
		width: auto;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-label-full {
		display: none;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-label-short {
		display: inline;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-chip-icon {
		display: none !important;
	}

	.pp-hub .pp-touch-nav .pp-hub-touch-queue-chip {
		padding-left: 0;
		padding-right: 0.35rem;
	}
}

/* Hub chrome off the printed page; content uses full width */
@media print {
	.pp-hub .pp-hub-shortcuts,
	.pp-hub .pp-touch-nav,
	.pp-hub .pp-hub-nav-col,
	.pp-hub .d-xl-none.pp-no-print {
		display: none !important;
	}

	.pp-hub .pp-hub-main,
	.pp-hub .col-xl {
		flex: 0 0 100%;
		max-width: 100%;
		width: 100%;
	}
}

/* Work Orders — completed queue modal toolbar (search · export, bounded preview) */
.work-order-queue-list .modal-body .dataTables_wrapper {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.work-order-queue-list .modal-body .dataTables_wrapper > .row {
	--bs-gutter-x: 0;
	margin-left: 0;
	margin-right: 0;
}
@media (min-width: 768px) {
	.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export {
		flex-wrap: nowrap;
		align-items: center;
	}
}
.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export > [class*="col-"] {
	width: auto !important;
	max-width: none;
	margin-bottom: 0 !important;
	flex: 0 1 auto;
}
.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export > .col:first-child {
	flex: 1 1 auto;
	min-width: 0;
}
.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export > .col-auto:last-child {
	flex: 0 0 auto;
	margin-left: auto;
}
.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export .dataTables_filter {
	width: 100%;
	margin-bottom: 0;
}
.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group {
	width: 100%;
	max-width: 100%;
}
@media (min-width: 768px) {
	.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-search-group {
		max-width: 16rem;
	}
}
.work-order-queue-list .modal-body .dataTables_wrapper .pp-dt-toolbar--search-export .pp-dt-export-mount {
	flex-shrink: 0;
}

/* Work Orders index — inset fullscreen modals (this page only) */
.modal-fullscreen.work-order-queue-modal {
	width: calc(100vw - 2rem);
	max-width: none;
	height: calc(100% - 2rem);
	margin: 1rem auto;
}
.modal-fullscreen.work-order-queue-modal .modal-content {
	border-radius: var(--bs-modal-border-radius);
	border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
}
@media (max-width: 575.98px) {
	.modal-fullscreen.work-order-queue-modal {
		width: calc(100vw - 1rem);
		height: calc(100% - 1rem);
		margin: 0.5rem auto;
	}
}

@media (max-width: 575.98px) {
	.work-order-edit-page .work-order-actions-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.work-order-edit-page .work-order-actions-toolbar > .btn,
	.work-order-edit-page .work-order-actions-toolbar > .work-order-assign-form {
		width: 100%;
	}

	.work-order-edit-page .work-order-actions-toolbar .work-order-assign-form {
		flex-direction: column;
		align-items: stretch;
	}

	.work-order-edit-page .work-order-actions-toolbar .work-order-assign-form .btn {
		width: 100%;
	}
}

/* --- Inspections dashboard — layout only (rows/badges use shared task + Bootstrap classes) --- */
/* Cell wrap is global on table.display (see PP DataTable section above) */
.inspections-dashboard .inspection-status-cell .mb-2:last-child {
	margin-bottom: 0 !important;
}

.inspections-dashboard a.badge {
	text-decoration: none;
}

.inspections-dashboard a.badge:hover {
	filter: brightness(0.95);
}

a.btn-back {
	color: var(--bs-secondary-color);
	display: inline-block;
	font-size: var(--pp-font-caption);
	text-decoration: none;
	margin-top: 1.25rem;
}

/* Task list / satellite / edit pages — back link above h1; no admin edit-page top margin */
a.btn-back.task-back-link {
	margin-top: 0;
	margin-bottom: 0.5rem;
	gap: 0.25rem;
	color: var(--bs-secondary-color);
}

/* Task list tables — secondary line under main cell content (crew, notes, due time). */
.pp-table-row-meta {
	display: block;
	font-size: 0.875em;
	font-weight: normal;
	color: var(--bs-secondary-color);
}

/* Legacy .crew — prefer `.pp-table-row-meta` in task list tables. */
.crew {
	display: inline-block;
	font-size: 0.875em;
	font-weight: normal;
	color: var(--bs-secondary-color);
}

/* --- Intro / staff select / legacy asset chips --- */
#intro {
	padding-right: 0.9375rem;
	padding-top: 0;
	width: 100%;
	margin-bottom: 1.875rem;
}

#staff-select button {
	border: none;
	border-radius: 0.125rem;
	background: var(--bs-emphasis-color);
	padding: 0.5rem;
	color: var(--bs-white);
	width: 100%;
}

#assets_selected,
#add_on_assets_selected {
	display: none;
	padding: 0.375rem 0.75rem;
	color: var(--bs-success-text-emphasis);
	border-radius: 0.125rem;
	margin-top: 0;
	text-align: left;
	font-weight: 400;
	border: 1px solid var(--bs-success-border-subtle);
}

.assets_selected,
#add_on_assets_selected {
	margin-top: 1.25rem;
	margin-bottom: 1.25rem;
}

/* --- Task list / modal --- */
.tasklist-modal-div {
	background: var(--bs-tertiary-bg);
	padding: 0.9375rem 0.9375rem 1rem 0.9375rem;
	border: 1px solid var(--bs-border-color);
	line-height: 130%;
	border-radius: 0.125rem;
	margin: 0.3125rem;
	min-height: 3.125rem;
	border-bottom: 3px solid var(--bs-border-color);
}

.hours-entry {
	margin-bottom: 0.25rem;
	color: var(--bs-secondary-color);
	max-width: 15rem;
	font-size: var(--pp-font-caption);
	padding: 0.125rem 0.375rem;
	border-radius: 0.125rem;
}

.total-hours {
	background: var(--bs-body-bg);
	margin-bottom: 0.25rem;
	padding: 0.25rem 0.375rem;
	border-radius: 0.125rem;
	border: 1px solid var(--bs-border-color);
	max-width: 20rem;
}

#supervisor_notes,
#inventory_event_notes,
#expenditure_notes,
#staff_notes {
	height: 3.125rem;
	width: 100%;
}

.check-schedule-btn {
	cursor: pointer;
}

.check-schedule-txt {
	font-weight: 500;
	font-size: var(--pp-font-ui);
	margin-left: 0.5rem;
	display: block;
	float: right;
}

.inactive-schedule {
	color: var(--bs-border-color);
	cursor: unset;
	display: none;
}

/* --- Work order radio picker --- */
#work_order label {
	cursor: pointer;
	line-height: 140%;
	width: 85%;
	margin-left: 0;
	margin-top: 0;
	vertical-align: baseline;
	color: var(--bs-emphasis-color);
}

#work_order input[type=radio] + label {
	color: var(--bs-emphasis-color);
	font-weight: 400;
	padding: 0.5rem 0 0.25rem 0.5rem;
	vertical-align: middle;
}

#work_order input[type="radio"]:checked + label {
	color: var(--bs-emphasis-color);
	font-weight: 400;
	background: var(--bs-warning-bg-subtle);
	vertical-align: middle;
	border-radius: 0.25rem;
	width: 85%;
}

/* --- Inspection / checklist --- */
.section-title {
	background: var(--pp-row-status-in-process-bg);
	padding: 0.625rem 0 0.625rem 0.9375rem;
	font-size: var(--pp-font-body);
	font-weight: 600;
	border-radius: 0.125rem;
	margin-bottom: 0.3125rem;
	margin-top: 2.5rem;
}

.sortable-line-item-list {
	padding: 0;
	margin-left: -1.25rem;
}

.sortable-line-item-list li {
	padding: 0.25rem 0.5rem;
	color: var(--bs-emphasis-color);
	cursor: move;
	list-style: none;
	background: var(--bs-body-bg);
	margin: 0.625rem 1.25rem;
	border: 1px dashed var(--bs-border-color);
	width: 95%;
}

.message-box {
	background: var(--bs-warning-bg-subtle);
	border: 2px solid var(--bs-warning-border-subtle);
	padding: 0.25rem 0.5rem;
	margin: 0;
}

li .no-content-yet {
	color: var(--bs-secondary-color);
	border: none;
	background: var(--bs-body-bg);
	margin-left: 0.75rem;
}

#section_sortable_ li {
	list-style: none;
}

.large-check .label-for-check {
	font-size: 0.9375rem;
	padding: 0;
	cursor: pointer;
}

.large-check input[type="checkbox"] {
	float: left;
	margin-left: 1.25rem;
	margin-top: 0.9375rem;
	margin-right: 0.625rem;
}

.large-check input[type="checkbox"] + label {
	background: var(--bs-tertiary-bg);
	padding: 0.6875rem 1.25rem 0.625rem 1.25rem;
	border-radius: 6.1875rem;
	margin-bottom: 1.25rem;
	border: 2px dashed var(--bs-border-color);
	color: var(--bs-secondary-color);
	display: block;
}

.large-check input[type="checkbox"]:checked + label {
	background: var(--bs-success-bg-subtle) !important;
	padding: 0.6875rem 1.25rem 0.625rem 1.25rem;
	border-radius: 6.1875rem;
	margin-bottom: 1.25rem;
	border: 2px solid var(--bs-success) !important;
	color: var(--bs-success-text-emphasis);
}

.checklist-line-item-name {
	font-size: var(--pp-font-body);
	margin-bottom: 0.9375rem;
	margin-top: 0.625rem;
}

/* --- Asset hierarchy (global — outside assign-task modal) --- */
.parent-line-item-div {
	padding-top: 0.625rem;
}

.grandchild-subcategory-div {
	padding-left: 1.875rem;
	line-height: 200%;
}

.subcategory-line-item-div {
	padding-left: 1.875rem;
}

.subcategory-title {
	padding: 0.125rem 0.4375rem;
	border-radius: 0.25rem;
	margin-bottom: 0.625rem;
	margin-top: 0.625rem;
	display: inline-block;
	border: thin dotted var(--bs-border-color);
	color: var(--bs-secondary-color);
}

.child-asset {
	padding-left: 1.5625rem;
	display: block;
	padding-top: 0.1875rem;
}

/* --- Checkbox pill UI --- */
.checkbox-div .check-with-label + .label-for-check {
	background: none;
	color: var(--bs-secondary-color);
	border: 2px dashed var(--bs-border-color);
	padding: 0.3125rem 0.9375rem;
	border-radius: 6.1875rem;
	margin-bottom: 1rem;
	margin-right: 0.75rem;
	display: inline-block;
	font-size: var(--pp-font-ui);
	cursor: pointer;
	min-width: 3.125rem;
	text-align: center;
}

.checkbox-div .check-with-label:checked + .label-for-check {
	color: var(--bs-success-text-emphasis);
	border: 2px solid var(--bs-success);
	background: var(--bs-success-bg-subtle);
}

.checkbox-div input[type=checkbox],
.checkbox-div input[type=radio] {
	opacity: 0;
	display: none;
}

/* Inspection download — date field width (page-scoped) */
.inspection-download-page .inspection-date-field {
	width: 11rem;
	max-width: 100%;
}

/* PP form-check checkbox grid — shared filter / bulk checkbox lists (2026-07) */
.pp-filter-checkbox-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
	gap: 0.75rem 0.75rem;
}
.pp-filter-checkbox-grid .form-check {
	margin-bottom: 0;
	padding-left: 0;
	padding-bottom: 0.5rem;
}
.pp-filter-checkbox-grid .form-check-label {
	line-height: 1.4;
}
.pp-filter-select-all-row {
	padding-left: 0;
	padding-bottom: 1.25rem;
	margin-bottom: 0;
}

/* Quick range preset — shared across Report Engine and chart reports */
.report-date-preset-select {
	min-width: 11.5rem;
	width: auto;
	max-width: none;
	padding-right: 2.5rem;
	text-align: left;
}

/* PP date range toolbar — compact control widths (pp-date-range-full rows) */
.pp-date-range-preset-select {
	min-width: 9rem;
	width: auto;
	max-width: none;
	padding-right: 2.5rem;
	text-align: left;
	background-image: var(--bs-form-select-bg-img);
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem 0.75rem;
}

.pp-date-range-field {
	width: 100%;
	max-width: none;
}

.pp-date-toolbar-unified .pp-date-range-field {
	min-width: 0;
}

/* Bucket visibility toolbar inside section cards — flush with sibling labels
   (row g-* gutters otherwise pad the first column vs Select bucket, etc.) */
.card.card-body .pp-bucket-visibility-fields > .row.pp-date-toolbar {
	margin-left: 0;
	margin-right: 0;
}
.card.card-body .pp-bucket-visibility-fields > .row.pp-date-toolbar > [class*="col-"]:first-child {
	padding-left: 0;
}
.card.card-body .pp-bucket-visibility-fields > .row.pp-date-toolbar > [class*="col-"]:last-child {
	padding-right: 0;
}

/* Report Engine date toolbar — same flush as bucket visibility (mx-0 alone still pads first col) */
.card.card-body > .row.pp-date-toolbar > [class*="col-"]:first-child {
	padding-left: 0;
}
.card.card-body > .row.pp-date-toolbar > [class*="col-"]:last-child {
	padding-right: 0;
}

/* Scheduled series — narrow single selects without row/col gutters */
.pp-sms-narrow-select {
	max-width: 20rem;
}

@media (min-width: 768px) {
	.pp-date-range-field {
		max-width: 8rem;
	}
}

/* Vertical rule between quick range and date fields — match card border */
.pp-date-range-divider {
	border-color: var(--bs-border-color) !important;
}

/* PP date toolbar — grid layout + in-field validation icons (pp-date-range-full rows) */
.pp-date-field {
	min-width: 0;
}

@media (max-width: 767.98px) {
	.pp-date-toolbar-preset .pp-date-range-preset-select {
		width: 100%;
		min-width: 0;
	}
}

/* Quick range preset — no Bootstrap valid/invalid chrome; keep form-select chevron */
.needs-validation.was-validated .pp-date-toolbar-preset .form-select:valid,
.needs-validation.was-validated .pp-date-toolbar-preset .form-select:invalid {
	border-color: var(--bs-border-color);
	background-image: var(--bs-form-select-bg-img);
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem 0.75rem;
	padding-right: 2.5rem;
	box-shadow: none;
}

:root[data-theme="dark"] .needs-validation.was-validated .pp-date-toolbar-preset .form-select:valid,
:root[data-theme="dark"] .needs-validation.was-validated .pp-date-toolbar-preset .form-select:invalid {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e5e7eb' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
}

.pp-date-input-wrap {
	width: 100%;
}

.pp-date-field-status {
	display: none;
	position: absolute;
	left: 0.4rem;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
	line-height: 1;
	font-size: var(--pp-font-ui);
	pointer-events: none;
}
.pp-date-field-status .pp-lucide,
.pp-date-field-status svg.lucide {
	width: 1em;
	height: 1em;
}

.needs-validation.was-validated .pp-date-input-wrap:has(.form-control:invalid) .pp-date-field-status--invalid {
	display: block;
}

.needs-validation.was-validated .pp-date-input-wrap:has(.form-control:valid) .pp-date-field-status--valid {
	display: block;
}

.needs-validation.was-validated .pp-date-input-wrap:has(.form-control:invalid) .pp-date-range-field,
.needs-validation.was-validated .pp-date-input-wrap:has(.form-control:valid) .pp-date-range-field {
	padding-left: 1.65rem;
}

.needs-validation.was-validated .pp-date-input-wrap .form-control:valid,
.needs-validation.was-validated .pp-date-input-wrap .form-control:invalid {
	background-image: none;
	padding-right: 0.25rem;
}

.needs-validation.was-validated .pp-date-input-wrap:has(.form-control:invalid) .form-control {
	border-color: var(--bs-form-invalid-border-color);
}

.needs-validation.was-validated .pp-date-input-wrap:has(.form-control:valid) .form-control {
	border-color: var(--bs-form-valid-border-color);
}

.pp-date-range-field.pp-date-placeholder-error::placeholder,
.pp-field-placeholder-error::placeholder {
	color: var(--bs-danger);
	opacity: 1;
}

/* Cap Report Format width without Bootstrap col gutters (flush with card label). */
.report-engine-page .report-engine-format-select {
	max-width: 36rem;
}

/* Report Format — no Bootstrap valid/invalid chrome; keep form-select chevron (same as Quick range) */
.needs-validation.was-validated .report-engine-format-select .form-select:valid,
.needs-validation.was-validated .report-engine-format-select .form-select:invalid {
	border-color: var(--bs-border-color);
	background-image: var(--bs-form-select-bg-img);
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem 0.75rem;
	padding-right: 2.5rem;
	box-shadow: none;
}

:root[data-theme="dark"] .needs-validation.was-validated .report-engine-format-select .form-select:valid,
:root[data-theme="dark"] .needs-validation.was-validated .report-engine-format-select .form-select:invalid {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e5e7eb' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
}

.report-engine-page .report-engine-filter-tabs .nav-link {
	font-size: var(--pp-font-ui);
	padding: 0.35rem 0.65rem;
}
.report-engine-page .report-engine-filter-tabs .nav-link .report-engine-filter-chevron {
	font-size: var(--pp-font-caption);
	opacity: 0.75;
	transition: transform 0.2s ease;
}
.report-engine-page .report-engine-filter-tabs .nav-link .report-engine-filter-chevron.pp-lucide,
.report-engine-page .report-engine-filter-tabs .nav-link svg.lucide.report-engine-filter-chevron {
	width: 1em;
	height: 1em;
}
.report-engine-page .report-engine-filter-tabs .nav-link:not(.collapsed) .report-engine-filter-chevron {
	transform: rotate(180deg);
}
.report-engine-page .report-engine-filter-sections-toggle .pp-re-sections-icon--collapse {
	display: none;
}
.report-engine-page .report-engine-filter-sections-toggle[aria-expanded="true"] .pp-re-sections-icon--expand {
	display: none;
}
.report-engine-page .report-engine-filter-sections-toggle[aria-expanded="true"] .pp-re-sections-icon--collapse {
	display: inline-flex;
}
.report-engine-page .report-engine-filter-sections-toggle .pp-lucide,
.report-engine-page .report-engine-filter-sections-toggle svg.lucide {
	width: 1em;
	height: 1em;
}
.report-engine-page .report-engine-filter-pane.collapse.show {
	padding-top: 1rem;
	margin-top: 0.75rem;
	border-top: 1px solid var(--bs-border-color);
}
.report-engine-page .report-engine-filter-pane-header {
	margin-bottom: 0;
	padding-left: 0;
	padding-bottom: 0;
}
.report-engine-page .report-engine-select-assets-heading {
	padding-bottom: 1.25rem;
	margin-bottom: 0;
}
.report-engine-page .report-engine-select-assets-content {
	padding-top: 0;
}
.report-engine-page .report-engine-filter-pane-header .form-check-input {
	margin-top: 0.2em;
}
.report-engine-page .report-engine-filter-pane-header .form-check-label {
	line-height: 1.4;
	cursor: pointer;
	font-weight: 500;
}
.report-engine-page .report-engine-include-inactive-label {
	color: var(--bs-tertiary-color);
}
.report-engine-page .report-engine-filter-tabs-row {
	margin-bottom: 0;
}
.report-engine-page .report-engine-selected-items {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-ui);
	line-height: 1.4;
}
.report-engine-page .report-engine-selected-items-label {
	font-weight: 500;
	color: var(--bs-body-color);
}
.report-engine-page.report-engine-page--selection .assign-task-assets-selected-icon {
	display: none;
}
.report-engine-page .report-engine-child-assets-suffix {
	font-size: var(--pp-font-ui);
	color: var(--bs-success);
}
.report-engine-page .report-engine-filters-card-header {
	gap: 0.75rem;
}

/* Report engine results — layout helpers */
.report-engine-results-page .report-engine-section-toolbar:not(:empty) {
	margin-bottom: 0.75rem;
}
.report-engine-drill-page .report-engine-section-toolbar:not(:empty) {
	margin-bottom: 0.75rem;
}
.report-engine-results-page h2 + .report-engine-section-toolbar:not(:empty) {
	margin-top: 0;
}
.report-engine-results-page .report-engine-section-card > h2,
.report-engine-results-page .report-engine-grand-total-card > h2 {
	text-align: left;
}
.report-engine-results-page .report-engine-section-heading {
	font-size: var(--pp-font-ui);
	line-height: 1.4;
	text-align: center;
	margin-top: 0;
	margin-bottom: 0.75rem;
}
.report-engine-results-page .report-engine-section-card,
.report-engine-results-page .report-engine-grand-total-card {
	font-size: var(--pp-font-ui);
}

/* Report Engine drill-down (formats 7 / 8) — interactive explorer, no export/print */
.report-engine-drill-page .report-engine-section-heading {
	font-size: var(--pp-font-ui);
	line-height: 1.4;
	text-align: center;
	margin-top: 0;
	margin-bottom: 0.75rem;
}
.report-engine-drill-page .report-engine-drill-rollup-metrics {
	font-size: var(--pp-font-ui);
	line-height: 1.4;
}
.report-engine-drill-page .report-engine-drill-rollup-metrics strong {
	font-weight: 600;
}
.report-engine-drill-page .report-engine-drill-rollup > h2,
.report-engine-drill-page .report-engine-drill-grand-total > h2 {
	text-align: center;
}
.report-engine-drill-page .pp-drill-table-card,
.report-engine-drill-page .report-engine-drill-rollup,
.report-engine-drill-page .report-engine-drill-grand-total {
	font-size: var(--pp-font-ui);
}
.report-engine-drill-page .report-engine-drill-rollup {
	background-color: var(--bs-tertiary-bg);
	border: 2px solid var(--pp-report-total-border-color);
	color: var(--bs-body-color);
}
.report-engine-drill-page .report-engine-drill-grand-total {
	border: 2px solid var(--bs-border-color);
}
.report-engine-drill-page table.report-engine-results-table tfoot tr.report-engine-drill-park-total > th {
	border-top: 2px solid var(--pp-report-total-border-color);
	background-color: var(--bs-tertiary-bg) !important;
	color: var(--bs-body-color);
	font-weight: 600;
	font-size: var(--pp-font-ui);
	line-height: 1.4;
}

/* Task type drill modals — tabs + detail tables */
.report-engine-drill-modal .modal-body {
	padding-top: 0.75rem;
}
.report-engine-drill-modal-tabs {
	border-bottom: 1px solid var(--bs-border-color);
	padding-bottom: 0;
	margin-bottom: 1rem !important;
}
.report-engine-drill-modal-tabs .nav-link {
	white-space: nowrap;
	padding-left: 0.75rem;
	padding-right: 0.75rem;
	font-size: var(--pp-font-ui);
}
.report-engine-drill-modal .report-engine-drill-modal-toolbar:not(:empty) {
	margin-bottom: 0.75rem;
}
.report-engine-drill-modal .report-engine-drill-modal-toolbar .pp-dt-toolbar {
	margin-bottom: 0;
}
.report-engine-drill-modal .nav-tabs .nav-link {
	font-size: var(--pp-font-ui);
}
.report-engine-drill-modal table thead th,
.report-engine-drill-modal table thead td {
	font-size: var(--pp-font-ui);
	font-weight: 600;
}
.report-engine-drill-modal table.report-engine-drill-modal-table tfoot tr.report-engine-drill-park-total > th {
	background-color: var(--bs-tertiary-bg);
	border-top: 2px solid var(--pp-report-total-border-color);
	font-weight: 600;
}
.report-engine-drill-modal table.report-engine-drill-modal-table th.text-end,
.report-engine-drill-modal table.report-engine-drill-modal-table td.text-end {
	font-variant-numeric: tabular-nums;
}

/* PP scroll — wide rollup tables (responsive: false); horizontal scroll inside card */
.pp-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}
.pp-scroll .dataTables_wrapper {
	width: auto;
	min-width: 100%;
	max-width: none;
}
.pp-scroll table.dataTable,
.pp-scroll table.display,
.pp-scroll table.report-engine-results-table {
	width: auto !important;
	min-width: 100%;
}
@media print {
	.pp-scroll {
		overflow: visible;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
}

.report-engine-results-page .report-engine-print-attribution,
.report-engine-drill-page .report-engine-print-attribution,
.quick-report-results-page .quick-report-print-attribution {
	display: block;
	margin-top: 0.5rem; /* mt-2 */
	margin-bottom: 0;
	text-align: left;
	font-size: var(--pp-font-caption, 0.75rem);
	line-height: 1.3;
	color: var(--bs-secondary-color);
}
.report-engine-results-page table.dataTable.dtr-inline.collapsed > tbody > tr.dtrg-group > td:first-child::before {
	display: none !important;
}
.report-engine-results-page table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"]:not(.dtrg-group) > td:first-child::before,
.report-engine-results-page table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"]:not(.dtrg-group) > th:first-child::before {
	top: 0.45rem;
	margin-top: 0;
}
@media print {
	.report-engine-results-page .pp-scroll {
		overflow: visible;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Flatten section cards on paper — no border, shadow, or card padding */
	.report-engine-results-page .report-engine-section-card,
	.report-engine-results-page .report-engine-grand-total-card {
		border: none !important;
		box-shadow: none !important;
		background: transparent !important;
		padding: 0 !important;
		margin-bottom: 0.75rem !important;
	}

	/* Keep Grand Total heading + table on one page when possible */
	.report-engine-results-page .report-engine-grand-total-card {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	/* Inline attribution after Grand Total — replaces site-wide fixed footer on report pages */
	.report-engine-results-page .report-engine-print-attribution,
	.report-engine-drill-page .report-engine-print-attribution {
		display: block !important;
		margin-top: 0.5rem;
		margin-bottom: 0;
		text-align: left;
		font-size: 9pt;
		line-height: 1.3;
		color: var(--bs-secondary-color) !important;
	}

	/* DataTables footer chrome (not useful on paper) */
	.report-engine-results-page .dataTables_info,
	.report-engine-results-page .dataTables_paginate {
		display: none !important;
	}

	/*
	 * Dark theme → light paper when printing.
	 * Screen keeps dark surfaces; Command+P forces readable ink-on-white.
	 * Tokens: one place to retune print paper without hunting hex.
	 */
	:root[data-theme="dark"] {
		--pp-print-paper: #fff;
		--pp-print-ink: #212529;
		--pp-print-muted: #6c757d;
		--pp-print-border: #dee2e6;
		--pp-print-surface: #f8f9fa;
		--pp-print-stripe: #f2f2f2;
	}

	:root[data-theme="dark"] body:has(.report-engine-results-page),
	:root[data-theme="dark"] body:has(.report-engine-drill-page),
	:root[data-theme="dark"] body:has(.quick-report-results-page) {
		background: var(--pp-print-paper) !important;
		color: var(--pp-print-ink) !important;
	}

	:root[data-theme="dark"] .report-engine-results-page,
	:root[data-theme="dark"] .report-engine-drill-page,
	:root[data-theme="dark"] .quick-report-results-page {
		color-scheme: light;
		--bs-body-color: var(--pp-print-ink);
		--bs-body-bg: var(--pp-print-paper);
		--bs-secondary-color: var(--pp-print-muted);
		--bs-border-color: var(--pp-print-border);
		--bs-light: var(--pp-print-surface);
		--pp-surface-2: var(--pp-print-surface);
		--pp-muted: var(--pp-print-muted);
		--pp-report-total-border-color: var(--pp-print-ink);
		--pp-table-stripe-bg: var(--pp-print-stripe);
		color: var(--pp-print-ink) !important;
		background: var(--pp-print-paper) !important;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tbody td,
	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table thead th,
	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tfoot td,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable tbody td,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable thead th,
	:root[data-theme="dark"] .report-engine-results-page h1,
	:root[data-theme="dark"] .report-engine-results-page h2,
	:root[data-theme="dark"] .report-engine-results-page .report-engine-section-heading,
	:root[data-theme="dark"] .report-engine-results-page .report-engine-print-attribution,
	:root[data-theme="dark"] .report-engine-drill-page table tbody td,
	:root[data-theme="dark"] .report-engine-drill-page table thead th,
	:root[data-theme="dark"] .report-engine-drill-page h1,
	:root[data-theme="dark"] .report-engine-drill-page h2,
	:root[data-theme="dark"] .report-engine-drill-page .report-engine-print-attribution,
	:root[data-theme="dark"] .quick-report-results-page table tbody td,
	:root[data-theme="dark"] .quick-report-results-page table thead th,
	:root[data-theme="dark"] .quick-report-results-page h1,
	:root[data-theme="dark"] .quick-report-results-page h2,
	:root[data-theme="dark"] .quick-report-results-page .quick-report-print-attribution {
		color: var(--pp-print-ink) !important;
		border-color: var(--pp-print-border) !important;
	}

	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > td,
	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > .sorting_1,
	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > .sorting_2,
	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > .sorting_3,
	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tfoot tr.report-engine-row-total > td,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > td,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > .sorting_1,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > .sorting_2,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > .sorting_3,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tfoot tr.report-engine-row-total > td,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tbody tr.dtrg-group.report-engine-row-total > td,
	:root[data-theme="dark"] .report-engine-results-page .report-engine-section-card table.report-engine-results-table tbody tr.report-engine-row-section-total > td,
	:root[data-theme="dark"] .report-engine-results-page .report-engine-grand-total-card tbody tr.report-engine-row-grand-total > td {
		background-color: var(--pp-print-surface) !important;
		color: var(--pp-print-ink) !important;
		border-bottom-color: var(--pp-print-ink) !important;
	}

	:root[data-theme="dark"] .report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-master > td,
	:root[data-theme="dark"] .report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-master > td {
		background-color: var(--pp-print-paper) !important;
		color: var(--pp-print-ink) !important;
	}
}

/* Quick Reports + Report Engine results — tight title → agency/date header rhythm */
.quick-report-results-page > .text-center.mb-4 > h1,
.report-engine-results-page > .text-center.mb-4 > h1,
.report-engine-drill-page > .text-center.mb-4 > h1 {
	margin-top: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}
.quick-report-results-page > .text-center.mb-4 > p,
.report-engine-results-page > .text-center.mb-4 > p,
.report-engine-drill-page > .text-center.mb-4 > p {
	margin-bottom: 0;
}
/* Quick reports — clamp Description / Notes / Staff Notes on screen; full text via title + data-export */
.quick-report-results-page td .pp-quick-report-note-cell {
	max-width: 14rem;
	white-space: normal;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
@media print {
	.quick-report-results-page td .pp-quick-report-note-cell {
		display: block;
		-webkit-line-clamp: unset;
		max-width: none;
		overflow: visible;
	}
}
.quick-report-results-page .quick-report-empty-state {
	background-color: var(--bs-info-bg-subtle);
	border: 1px solid var(--bs-info-border-subtle);
	color: var(--bs-info-text-emphasis);
	padding: 0.75rem 1rem;
	margin-bottom: 0;
	text-align: center;
}
.quick-report-results-page table.dataTable tbody tr.dtrg-group.dtrg-end > td,
.quick-report-results-page table.display tbody tr.dtrg-group.dtrg-end > td {
	background-color: transparent !important;
	border-bottom: 1px solid var(--bs-border-color) !important;
	color: var(--bs-body-color);
	font-weight: 700;
}
.quick-report-results-page tr.dtrg-group.dtrg-end > td {
	text-align: right;
}
/* rowGroup staff name row — bold header, no responsive expand icon */
.quick-report-results-page table.dataTable.dtr-inline.collapsed > tbody > tr.dtrg-group > td:first-child::before {
	display: none !important;
}
.quick-report-results-page table.dataTable.dtr-inline.collapsed > tbody > tr.dtrg-group > td:first-child {
	padding-left: 0.5rem;
	cursor: default;
}
/* Quick report task row actions — text links (View / PDF) */
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td .pp-quick-report-task-link {
	white-space: nowrap;
	font-size: inherit;
	line-height: inherit;
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td a.pp-quick-report-task-link {
	color: var(--bs-link-color);
	text-decoration: underline;
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td a.pp-quick-report-task-link:hover,
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td a.pp-quick-report-task-link:focus {
	color: var(--bs-link-hover-color);
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td button.pp-quick-report-task-link {
	color: var(--bs-link-color);
	text-decoration: underline;
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td button.pp-quick-report-task-link:hover,
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td button.pp-quick-report-task-link:focus {
	color: var(--bs-link-hover-color);
}
/* Row actions pilot (superseded on quick reports by .pp-quick-report-task-link) — desktop: icon only; responsive child row: text only */
.quick-report-results-page table.dataTable tbody tr.child td {
	padding-left: 0;
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td .pp-dt-row-action__label {
	display: none;
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td .pp-dt-row-action--pdf .btn-link {
	color: var(--bs-body-color);
	text-decoration: none;
}
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td .pp-dt-row-action--pdf .btn-link:hover,
.quick-report-results-page table.dataTable tbody > tr[role="row"] > td .pp-dt-row-action--pdf .btn-link:focus {
	color: var(--bs-body-color);
	text-decoration: underline;
}
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action__icon {
	display: none !important;
}
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action__label {
	display: inline;
	font-weight: inherit;
}
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action--view {
	color: var(--bs-link-color);
	text-decoration: underline;
}
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action--view:hover,
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action--view:focus {
	color: var(--bs-link-hover-color);
}
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action--pdf .btn {
	padding: 0;
	border: 0;
	background: none;
	color: var(--bs-link-color);
	text-decoration: underline;
	vertical-align: baseline;
	font-size: inherit;
	line-height: inherit;
}
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action--pdf .btn:hover,
.quick-report-results-page table.dataTable tbody tr.child .dtr-data .pp-dt-row-action--pdf .btn:focus {
	color: var(--bs-link-hover-color);
}
/* Pin responsive expand control to top of row — tall Description/Notes cells stretch row height */
.quick-report-results-page table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"]:not(.dtrg-group) > td:first-child::before,
.quick-report-results-page table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"]:not(.dtrg-group) > th:first-child::before {
	top: 0.45rem;
	margin-top: 0;
}
/* dtr-column control chrome — global rules above (table.dataTable.dtr-column) */
.quick-report-results-page tr.dtrg-group.dtrg-start > td {
	font-weight: 600;
}
.quick-report-results-page .quick-report-grand-total-bar {
	background-color: transparent;
	border-top: 1px solid var(--bs-border-color);
	border-bottom: 1px solid var(--bs-border-color);
	color: var(--bs-body-color);
	font-weight: 700;
}
.quick-report-results-page .asset-monthly-totals-table-wrap {
	border-top: 2px solid var(--pp-report-total-border-color);
	border-bottom: 2px solid var(--pp-report-total-border-color);
	background-color: var(--bs-tertiary-bg);
	padding: 0.5rem 0.25rem;
}
.quick-report-results-page .asset-monthly-totals-table {
	margin-bottom: 0;
	font-weight: 600;
}
.quick-report-results-page .asset-monthly-totals-table td {
	padding: var(--pp-dt-cell-padding-y, 0.5rem) var(--pp-dt-cell-padding-x, 0.5rem);
}
.quick-report-results-page table.dataTable tbody > tr:has(+ tr.dtrg-group.dtrg-end) > td,
.quick-report-results-page table.display tbody > tr:has(+ tr.dtrg-group.dtrg-end) > td {
	border-bottom: none !important;
}

/* Facility Report (Amilia) — date divider rows in grouped results table */
.amilia-report-results-page tr.amilia-report-date-row > td {
	font-weight: 600;
	background-color: var(--pp-table-stripe-bg) !important;
	color: var(--bs-body-color);
	border-bottom: 1px solid var(--bs-border-color);
}

@media print {
	.quick-report-results-page .quick-report-table-wrap {
		overflow: visible;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.quick-report-results-page .card.card-body {
		border: none !important;
		box-shadow: none !important;
		background: transparent !important;
		padding: 0 !important;
		margin-bottom: 0.75rem !important;
	}

	.quick-report-results-page .quick-report-print-attribution {
		display: block !important;
		margin-top: 0.5rem;
		margin-bottom: 0;
		text-align: left;
		font-size: 9pt;
		line-height: 1.3;
		color: var(--bs-secondary-color) !important;
	}

	.quick-report-results-page .dataTables_info,
	.quick-report-results-page .dataTables_paginate {
		display: none !important;
	}
}
.report-engine-results-page table.report-engine-results-table,
.report-engine-results-page table.report-engine-results-table thead th,
.report-engine-results-page table.report-engine-results-table tbody td,
.report-engine-results-page table.report-engine-results-table tfoot td,
.report-engine-results-page table.dataTable.report-engine-results-table thead th,
.report-engine-results-page table.dataTable.report-engine-results-table tbody td,
.report-engine-results-page table.dataTable.report-engine-results-table tfoot td {
	font-size: var(--pp-font-ui);
}
.report-engine-results-page .report-engine-child-asset-name {
	padding-left: 1.5rem;
	border-left: 3px solid var(--bs-border-color);
}
.report-engine-results-page .report-engine-grandchild-asset-name {
	padding-left: 3rem;
	border-left: 3px solid var(--bs-border-color);
}
.report-engine-results-page td.report-engine-total-label {
	padding-left: 0.25rem !important;
	text-indent: 0 !important;
	border-left: none !important;
}
.report-engine-results-page tr.report-engine-row-total > td.report-engine-total-label.sorting_1,
.report-engine-results-page tr.report-engine-row-total > td.report-engine-total-label.sorting_2,
.report-engine-results-page table.dataTable.report-engine-results-table tfoot tr.report-engine-row-total > td.report-engine-total-label {
	padding-left: 0.25rem !important;
}
.report-engine-results-page td.report-engine-master-asset-name,
.report-engine-results-page tr.report-engine-row-master > td.report-engine-master-asset-name.sorting_1,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-master > td.report-engine-master-asset-name {
	padding-left: 0.25rem !important;
	text-indent: 0 !important;
	border-left: none !important;
	font-weight: 600;
}

/* Report hierarchy rows (scoped; overrides PP zebra on master / total rows) */
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-master > td,
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-master > .sorting_1,
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-master > .sorting_2,
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-master > .sorting_3,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-master > td,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-master > .sorting_1,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-master > .sorting_2,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-master > .sorting_3 {
	background-color: var(--bs-tertiary-bg) !important;
}
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > td,
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > .sorting_1,
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > .sorting_2,
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-row-total > .sorting_3,
.report-engine-results-page table.report-engine-results-table tfoot tr.report-engine-row-total > td,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > td,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > .sorting_1,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > .sorting_2,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-row-total > .sorting_3,
.report-engine-results-page table.dataTable.report-engine-results-table tfoot tr.report-engine-row-total > td,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.dtrg-group.dtrg-start.report-engine-row-total > td,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.dtrg-group.dtrg-end.report-engine-row-total > td {
	background-color: var(--bs-tertiary-bg) !important;
	border-bottom: 2px solid var(--pp-report-total-border-color) !important;
	color: var(--bs-body-color) !important;
	font-weight: 600;
}
/* Section/grand totals — top + bottom band borders */
.report-engine-results-page .report-engine-section-card table.report-engine-results-table tbody tr.report-engine-row-total.report-engine-row-section-total > td,
.report-engine-results-page .report-engine-section-card table.dataTable.report-engine-results-table tbody tr.report-engine-row-total.report-engine-row-section-total > td,
.report-engine-results-page .report-engine-grand-total-card table.report-engine-results-table tbody tr.report-engine-row-grand-total > td,
.report-engine-results-page .report-engine-grand-total-card table.dataTable.report-engine-results-table tbody tr.report-engine-row-grand-total > td {
	background-color: var(--bs-tertiary-bg) !important;
	border-top: 2px solid var(--pp-report-total-border-color) !important;
	border-bottom: 2px solid var(--pp-report-total-border-color) !important;
	color: var(--bs-body-color) !important;
	font-weight: 600;
}
/* Section footer + Grand Total card — light gray band, 2px top/bottom borders */
.report-engine-results-page .report-engine-section-card table.report-engine-results-table tbody tr.report-engine-row-section-total > td,
.report-engine-results-page .report-engine-section-card table.dataTable.report-engine-results-table tbody tr.report-engine-row-section-total > td,
.report-engine-results-page .report-engine-grand-total-card tbody tr.report-engine-row-grand-total > td {
	background-color: var(--bs-tertiary-bg) !important;
	border-top: 2px solid var(--pp-report-total-border-color) !important;
	border-bottom: 2px solid var(--pp-report-total-border-color) !important;
	color: var(--bs-body-color) !important;
	font-weight: 600;
}
/* No bottom border on row immediately above a section summary band */
.report-engine-results-page .report-engine-section-card table.report-engine-results-table tbody > tr:has(+ tr.report-engine-row-section-total) > td,
.report-engine-results-page .report-engine-section-card table.dataTable.report-engine-results-table tbody > tr:has(+ tr.report-engine-row-section-total) > td {
	border-bottom: none !important;
}

/* Task Status (format 9) — location breadcrumbs + note columns (prose wrap) */
.report-engine-results-page #report-task-status .report-task-status-location {
	overflow-wrap: break-word;
	word-break: normal;
	white-space: normal;
}

/* Task Status (format 9) — clamp note columns on screen; full text via data-export on CSV/Excel/Print */
.report-engine-results-page #report-task-status td .report-task-status-note-cell {
	max-width: 12rem;
	white-space: normal;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-decoration: none;
}
.report-engine-results-page #report-task-status td .report-task-status-note-cell a {
	text-decoration: none;
}

/* Inventory by Asset / Item (formats 1010, 1011) — clickable rows open event detail modal */
.report-engine-results-page #report-inventory-by-asset tbody tr.report-inventory-row,
.report-engine-results-page #report-inventory-by-item tbody tr.report-inventory-row {
	cursor: pointer;
}
.report-engine-results-page #report-inventory-by-asset thead th.report-engine-inventory-stock-col,
.report-engine-results-page #report-inventory-by-asset tbody td:last-child,
.report-engine-results-page #report-inventory-by-item thead th.report-engine-inventory-stock-col,
.report-engine-results-page #report-inventory-by-item tbody td:last-child {
	width: 7.5rem;
	min-width: 7.5rem;
	white-space: nowrap;
}
.report-engine-results-page #report-inventory-by-asset tbody tr.report-engine-inventory-group-start > td,
.report-engine-results-page #report-inventory-by-item tbody tr.report-engine-inventory-group-start > td {
	font-weight: 600;
	background-color: var(--bs-tertiary-bg) !important;
	border-top: 2px solid var(--bs-border-color);
	border-left: none !important;
	padding-left: 0.75rem;
}
.report-engine-results-page #report-inventory-by-asset tbody tr.report-engine-inventory-group-start > td.report-engine-inventory-group-start-fill,
.report-engine-results-page #report-inventory-by-item tbody tr.report-engine-inventory-group-start > td.report-engine-inventory-group-start-fill {
	padding-left: 0;
	border-left: none !important;
}
.report-engine-results-page #report-inventory-by-asset tbody tr.report-engine-inventory-group-start > td.report-engine-inventory-group-label,
.report-engine-results-page #report-inventory-by-item tbody tr.report-engine-inventory-group-start > td.report-engine-inventory-group-label {
	border-left: none !important;
}
.report-engine-results-page #report-inventory-by-asset tbody tr.report-engine-inventory-group-start:first-child > td,
.report-engine-results-page #report-inventory-by-item tbody tr.report-engine-inventory-group-start:first-child > td {
	border-top: none;
}
.report-engine-results-page #report-inventory-by-asset tbody tr.report-engine-row-total > td.report-engine-total-label,
.report-engine-results-page #report-inventory-by-item tbody tr.report-engine-row-total > td.report-engine-total-label {
	padding-left: 0.75rem !important;
}
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-inventory-group-start > td {
	font-weight: 600;
	background-color: var(--bs-tertiary-bg) !important;
}
.report-engine-results-page table.dataTable.dtr-inline.collapsed > tbody > tr.report-engine-inventory-group-start > td:first-child::before {
	display: none !important;
}

/* Expense by Asset (format 12) — clickable rows open expenditure detail modal */
.report-engine-results-page #report-expense-by-asset tbody tr.report-expense-by-asset-row,
.report-engine-results-page #report-expense-by-expenditure-type tbody tr.report-expense-by-expenditure-type-row {
	cursor: pointer;
}

/* Asset Quantity Count (format 15) — subcategory subtotal rows */
.report-engine-results-page #report-asset-quantity-count tbody tr.report-asset-quantity-subtotal-row > td {
	font-weight: 600;
}

/* Inventory / task expenditure modals — sort icons clear of right-aligned numeric headers */
table.display-inventory_events thead th.sorting,
table.display-inventory_events thead th.sorting_asc,
table.display-inventory_events thead th.sorting_desc,
table.display-task_expenditures thead th.sorting,
table.display-task_expenditures thead th.sorting_asc,
table.display-task_expenditures thead th.sorting_desc {
	padding-right: var(--pp-dt-sort-header-padding-right);
}

/* Task Standards (format 5) — asset / child band rows inside section tables */
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-standards-asset-header > th,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-standards-asset-header > th {
	background-color: var(--bs-tertiary-bg) !important;
	font-weight: 600;
	padding-top: 0.65rem;
	padding-bottom: 0.35rem;
	border-bottom: 1px solid var(--bs-border-color);
}
.report-engine-results-page table.report-engine-results-table tbody tr.report-engine-standards-child-header > th,
.report-engine-results-page table.dataTable.report-engine-results-table tbody tr.report-engine-standards-child-header > th {
	font-weight: 600;
	padding-top: 0.5rem;
	padding-bottom: 0.25rem;
	padding-left: 1.5rem;
	border-left: 3px solid var(--bs-border-color);
}

.checkbox-sm-div .check-with-label + .label-for-check {
	background: none;
	color: var(--bs-secondary-color);
	border: 1px solid var(--bs-border-color);
	padding: 0.1875rem 0.75rem;
	border-radius: 6.1875rem;
	margin-bottom: 0.375rem;
	margin-right: 0;
	display: block !important;
	font-size: var(--pp-font-caption);
	cursor: pointer;
	width: auto;
	text-align: left;
	font-weight: 400;
}

.checkbox-sm-div .check-with-label:checked + .label-for-check {
	color: var(--bs-success-text-emphasis);
	border: 1px solid var(--bs-success);
	background: var(--bs-success-bg-subtle);
}

.checkbox-sm-div input[type=checkbox],
.checkbox-sm-div input[type=radio] {
	opacity: 0;
	display: none;
}

/* --- Responsive nav / layout (from productiveparks3 @media blocks) --- */
@media only screen and (min-width: 0px) {
	.agency-name-nav {
		font-size: var(--pp-font-caption);
		margin-top: -1rem;
		color: var(--bs-secondary-color);
		margin-right: 0.9375rem;
	}

	.btn.btn-secondary.btn-modal {
		font-size: var(--pp-font-ui);
		border: 1px solid var(--bs-white);
		padding: 0.1875rem 0.5rem;
		border-radius: 0.125rem;
		background: transparent;
		margin-top: 0;
		margin-left: 0;
		margin-right: 1.25rem;
		margin-bottom: 0;
		max-width: 100%;
		color: var(--bs-white) !important;
		text-transform: uppercase;
		float: right;
	}

	#intro {
		display: none;
	}

	.btn-date-nav {
		display: inline-block;
		text-transform: uppercase;
		font-weight: bold;
		padding-bottom: 0.625rem;
		margin-right: 0.625rem;
		float: left;
	}

	.btn-date-nav.btn-date-nav-next {
		float: right;
	}

	.btn-date-nav a,
	.btn-date-nav a:visited {
		color: var(--bs-emphasis-color);
		text-decoration: none;
	}

	.checkbox-div .check-with-label + .label-for-check {
		display: block;
	}
}

@media only screen and (min-width: 768px) {
	.checkbox-div .check-with-label + .label-for-check {
		display: inline-block;
	}

	.multi-submit-btn {
		margin-top: 0.625rem;
	}

	.agency-name-nav {
		display: none;
	}

	.btn.btn-secondary.btn-modal {
		margin-bottom: 0.625rem;
		margin-right: 0;
		float: none;
	}
}

@media only screen and (min-width: 992px) {
	.agency-name-nav {
		display: block;
	}

	#intro {
		display: block;
	}

	.multi-submit-btn {
		margin-top: -5rem;
		margin-bottom: 0;
	}
}

@media only screen and (max-width: 480px) {
	.col-xsm-6 {
		width: 50%;
		float: left;
	}
}

/* --- Spotlight asset search --- */
#spotlight-trigger {
	width: 100%;
}

.asset-hierarchy-search-actions #spotlight-trigger {
	flex: 1 1 16rem;
	width: auto;
}

#activity_center .assign-asset-toolbar-actions #spotlight-trigger.assign-asset-search-trigger,
.modern-asset-picker .assign-asset-toolbar-actions #spotlight-trigger.assign-asset-search-trigger {
	flex: 1 1 0;
	min-width: 0;
	width: auto;
}

.spotlight-icon {
	width: 1rem;
	height: 1rem;
}

.spotlight-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(0, 0, 0, 0.5);
	display: flex !important;
	align-items: flex-start;
	justify-content: center;
	padding-top: 20vh;
	z-index: 1050;
}

.spotlight-modal {
	width: 100%;
	max-width: 42rem;
	max-height: 80vh;
	overflow: hidden;
}

.spotlight-search-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--bs-secondary-color);
	flex-shrink: 0;
}

.spotlight-input {
	background: transparent !important;
	box-shadow: none !important;
}

.spotlight-input:focus {
	box-shadow: none !important;
	border-color: transparent !important;
}

.spotlight-results {
	max-height: 24rem;
	overflow-y: auto;
}

.spotlight-result-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	cursor: pointer;
	transition: background-color 0.2s;
	border: none;
	background: none;
	width: 100%;
	text-align: left;
}

.spotlight-result-item:hover,
.spotlight-result-item.selected {
	background-color: var(--bs-tertiary-bg);
}

.spotlight-result-item.selected {
	background-color: var(--bs-primary-bg-subtle);
}

.spotlight-result-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	background-color: var(--bs-tertiary-bg);
	border-radius: 0.5rem;
	flex-shrink: 0;
}

.spotlight-result-icon svg {
	width: 1rem;
	height: 1rem;
}

.spotlight-result-content {
	flex: 1;
	min-width: 0;
}

.spotlight-result-title {
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin-bottom: 0;
}

.spotlight-result-category {
	font-size: var(--pp-font-ui);
	color: var(--bs-secondary-color);
	margin-bottom: 0;
}

.spotlight-result-enter {
	font-size: var(--pp-font-caption);
	color: var(--bs-secondary-color);
}

.spotlight-empty-icon {
	width: 2rem;
	height: 2rem;
	opacity: 0.5;
}

#spotlight-modal.d-none,
.spotlight-overlay.d-none {
	display: none !important;
}

/* Admin portal — layouts.admin (Bootstrap 5) */
.admin-portal-page .admin-portal-brand img {
	display: block;
}

.admin-portal-nav .navbar-brand {
	font-size: var(--pp-font-body);
	font-weight: 600;
}

.admin-portal-nav .navbar-nav .nav-link {
	color: var(--bs-link-color);
}

.admin-portal-nav .navbar-nav .nav-link:hover,
.admin-portal-nav .navbar-nav .nav-link:focus-visible {
	color: var(--bs-link-hover-color);
	opacity: 1;
}

.admin-portal-nav .dropdown-toggle {
	color: var(--bs-navbar-color);
}

.admin-portal-nav .dropdown-toggle:hover,
.admin-portal-nav .dropdown-toggle:focus-visible {
	color: var(--bs-navbar-hover-color);
	opacity: 1;
}

.admin-portal-nav .dropdown-item {
	color: var(--bs-dropdown-link-color);
}

.admin-portal-nav .dropdown-item:hover,
.admin-portal-nav .dropdown-item:focus {
	color: var(--bs-dropdown-link-hover-color);
	background-color: var(--bs-dropdown-link-hover-bg);
	opacity: 1;
}

.admin-portal-page .admin-agencies-dt .dataTables_wrapper .dataTables_length,
.admin-portal-page .admin-agencies-dt .dataTables_wrapper .dataTables_filter {
	margin-bottom: 1rem;
}

.admin-portal-page .admin-agencies-dt .dataTables_wrapper table.dataTable {
	margin-top: 0.25rem;
}

/* Staff name toggle + header-docked actions panel (supervisor dashboard) */
.staff-name-toggle {
	align-items: center;
	border: 0;
	background: transparent;
	color: var(--bs-body-color) !important;
	display: inline-flex;
	justify-content: flex-start;
	max-width: 100%;
	word-break: break-word;
}

.staff-name-toggle__label {
	align-items: center;
	display: inline-flex;
	gap: 0.25rem;
	max-width: 100%;
	min-width: 0;
}

.staff-name-toggle__line {
	align-items: center;
	display: inline-flex;
}

.staff-name-toggle__text {
	flex-shrink: 1;
}

@media (min-width: 768px) {
	.staff-name-toggle__label {
		flex-direction: row;
		flex-wrap: nowrap;
	}

	.staff-name-toggle__line {
		min-width: 0;
	}

	.staff-name-toggle__text {
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.weekly-schedule-td-staff .staff-name-toggle {
		align-items: center;
	}
}

.staff-seasonal-icon {
	align-items: center;
	color: var(--bs-tertiary-color);
	display: inline-flex;
	flex-shrink: 0;
	font-size: var(--pp-font-caption);
	justify-content: center;
	line-height: 1;
}

.weekly-schedule-td-staff .staff-name-toggle {
	min-height: 2rem;
}

.staff-name-toggle:hover .staff-seasonal-icon,
.staff-name-toggle:focus .staff-seasonal-icon,
.staff-name-toggle.show .staff-seasonal-icon {
	color: var(--bs-tertiary-color);
}

.staff-name-toggle:hover,
.staff-name-toggle:focus,
.staff-name-toggle.show {
	color: var(--bs-primary) !important;
	text-decoration: none;
}

.pp-dashboard-panel-backdrop {
	position: fixed;
	top: calc(var(--navbar-h, 4.0625rem) + env(safe-area-inset-top, 0px));
	left: 0;
	right: 0;
	bottom: 0;
	z-index: calc(var(--pp-z-staff-actions, 1020) - 10);
	background-color: rgba(0, 0, 0, 0.45);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.22s ease,
		visibility 0.28s ease;
}

.pp-dashboard-panel-backdrop.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

body.pp-dashboard-panel-open {
	overflow: hidden;
}

body.pp-dashboard-panel-open #ui-datepicker-div {
	z-index: calc(var(--pp-z-staff-actions, 1020) - 5);
}

.staff-actions-panel {
	position: fixed;
	top: calc(var(--navbar-h, 4.0625rem) + env(safe-area-inset-top, 0px));
	left: 0;
	right: 0;
	z-index: var(--pp-z-staff-actions, 1020);
	display: block;
	overflow: hidden;
	background: var(--bs-body-bg, #fff);
	box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.12);
	transform: translate3d(0, -100%, 0);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		transform 0.28s ease,
		opacity 0.22s ease,
		visibility 0.28s ease,
		box-shadow 0.28s ease;
	will-change: transform, opacity;
}

.staff-actions-panel.is-open {
	display: flex;
	flex-direction: column;
	z-index: calc(var(--pp-z-staff-actions, 1020) + 10);
	isolation: isolate;
	transform: translate3d(0, 0, 0);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.14);
	border-radius: 0 0 var(--bs-border-radius-lg, 0.5rem) var(--bs-border-radius-lg, 0.5rem);
	max-height: calc(100dvh - var(--navbar-h, 4.0625rem) - env(safe-area-inset-top, 0px));
	overflow: hidden;
	will-change: auto;
}

.staff-actions-panel__inner {
	display: flex;
	flex: 1;
	flex-direction: column;
	max-width: 90rem;
	min-height: 0;
	width: 100%;
}

.staff-actions-panel__header {
	flex-shrink: 0;
	padding: 1rem;
	background: var(--bs-body-bg, #fff);
	border-bottom: 1px solid var(--bs-border-color);
}

.staff-actions-panel__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.staff-actions-panel__title-main {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex: 1;
	min-width: 0;
}

.staff-actions-panel__edit-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	padding: 0.25rem;
	color: var(--bs-secondary-color);
	line-height: 1;
	text-decoration: none;
}

.staff-actions-panel__edit-btn:hover,
.staff-actions-panel__edit-btn:focus-visible {
	color: var(--bs-body-color);
}

.staff-actions-panel__edit-btn .bi {
	font-size: var(--pp-font-ui);
	line-height: 1;
}

.staff-actions-panel__body {
	flex: 1;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 1rem;
	-webkit-overflow-scrolling: touch;
}

.staff-actions-panel__title-row .btn-close {
	flex-shrink: 0;
	align-self: center;
}

.staff-actions-panel__name {
	min-width: 0;
	font-size: var(--pp-font-body);
	font-weight: 700;
	line-height: 1.25;
	color: var(--bs-body-color);
	letter-spacing: -0.01em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.staff-actions-panel__status {
	margin-top: 0.5rem;
	font-size: var(--pp-font-ui);
	line-height: 1.45;
	color: var(--bs-secondary-color);
}

.staff-actions-panel__status:empty {
	display: none;
}

.staff-actions-panel__status-line {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-width: 0;
	max-width: 100%;
}

.staff-actions-panel__status-line > span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.staff-actions-panel__status-line .pp-lucide,
.staff-actions-panel__status-line svg.lucide {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
	color: var(--bs-secondary-color);
}

.staff-actions-panel__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.625rem;
}

.staff-actions-panel__actions:empty {
	display: none;
}

.staff-actions-panel__actions .btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.staff-actions-panel__actions .btn .pp-lucide,
.staff-actions-panel__actions .btn svg.lucide {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}

.staff-actions-panel__chip-outstanding {
	/* Match grid Out badge palette outside .table-weekly-schedule */
	--bs-btn-active-bg: var(--pp-dashboard-open-hover-bg);
	--bs-btn-active-border-color: transparent;
	--bs-btn-active-color: var(--pp-dashboard-open-color);
	--bs-btn-bg: var(--pp-dashboard-open-bg);
	--bs-btn-border-color: transparent;
	--bs-btn-color: var(--pp-dashboard-open-color);
	--bs-btn-hover-bg: var(--pp-dashboard-open-hover-bg);
	--bs-btn-hover-border-color: transparent;
	--bs-btn-hover-color: var(--pp-dashboard-open-color);
	background-color: var(--pp-dashboard-open-bg);
	border-color: transparent;
	color: var(--pp-dashboard-open-color);
	white-space: nowrap;
}

.staff-actions-panel__chip-outstanding:hover,
.staff-actions-panel__chip-outstanding:focus,
.staff-actions-panel__chip-outstanding:focus-visible {
	background-color: var(--pp-dashboard-open-hover-bg);
	border-color: transparent;
	color: var(--pp-dashboard-open-color);
}

.staff-actions-panel__tasks-section {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.staff-actions-panel__today-card {
	margin-bottom: 1rem;
}

.staff-actions-panel__week-card {
	display: flex;
	flex-direction: column;
	margin-bottom: 0;
}

.staff-actions-panel__today-card .pp-insight-card__headline,
.staff-actions-panel__week-card > .pp-insight-card__headline {
	margin-bottom: 0.75rem;
}

.staff-actions-panel__task-day + .staff-actions-panel__task-day {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--bs-border-color);
}

.staff-actions-panel__task-day-headline {
	margin-bottom: 0.35rem !important;
	font-size: var(--pp-font-ui);
	font-weight: 600;
	color: var(--bs-secondary-color);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.staff-actions-panel__task-day-headline .pp-insight-card__headline-text {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

/* Status icon replaces insight-card bullet inside panel */
.staff-actions-panel .pp-insight-card__item {
	padding-left: 0;
}

.staff-actions-panel .pp-insight-card__item::before {
	display: none;
}

.staff-actions-panel__task-list {
	font-size: var(--pp-font-ui);
	line-height: 1.45;
}

.staff-actions-panel__task-item {
	display: block;
}

.staff-actions-panel__task-item + .staff-actions-panel__task-item {
	margin-top: 0.35rem;
}

.staff-actions-panel__task-link {
	--pp-staff-panel-status-col: 1.25rem;
	display: grid;
	grid-template-columns: var(--pp-staff-panel-status-col) 1fr;
	gap: 0.4rem;
	align-items: start;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.35rem 0.5rem;
	margin: 0 -0.5rem;
	border-radius: var(--bs-border-radius-sm, 0.25rem);
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.staff-actions-panel__task-link:hover,
.staff-actions-panel__task-link:focus-visible {
	color: inherit;
	background-color: var(--pp-dt-row-hot-hover-bg);
	text-decoration: none;
}

.staff-actions-panel__task-link:hover .pp-insight-card__item-main,
.staff-actions-panel__task-link:focus-visible .pp-insight-card__item-main {
	color: var(--bs-body-color);
	text-decoration: none;
}

.staff-actions-panel__task-status {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.15rem;
	width: var(--pp-staff-panel-status-col);
	min-height: 1lh;
	line-height: inherit;
}

.staff-actions-panel__task-status .pp-lucide,
.staff-actions-panel__task-status svg.lucide {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}

.staff-actions-panel__task-text {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.staff-actions-panel__task-status--completed {
	color: var(--bs-success);
}

.staff-actions-panel__task-status--inprocess {
	color: var(--bs-secondary-color);
}

.staff-actions-panel__task-status--inprocess-outstanding {
	color: var(--bs-danger);
}

.staff-actions-panel__task-status--overdue,
.staff-actions-panel__task-status--incomplete {
	color: var(--bs-danger);
}

.staff-actions-panel__task-status--scheduled {
	color: var(--bs-secondary-color);
}

.staff-actions-panel__tasks-empty {
	margin-bottom: 0;
	font-size: var(--pp-font-ui);
	line-height: 1.45;
}

@media (max-width: 767.98px) {
	.staff-actions-panel__header,
	.staff-actions-panel__body {
		padding: 0.75rem 1rem;
	}
}

@media (min-width: 768px) {
	.staff-actions-panel__actions {
		gap: 0.5rem 0.625rem;
	}

	.staff-actions-panel__task-day + .staff-actions-panel__task-day {
		margin-top: 0.5rem;
		padding-top: 0.5rem;
	}

	.staff-actions-panel__task-day-headline {
		margin-bottom: 0.25rem !important;
	}

	.staff-actions-panel__task-item + .staff-actions-panel__task-item {
		margin-top: 0.15rem;
	}

	.staff-actions-panel__task-link {
		min-height: 2rem;
		padding: 0.2rem 0;
	}
}

@media (max-width: 575.98px) {
	.staff-actions-panel__actions {
		gap: 0.5rem;
	}

	.staff-actions-panel__actions .btn {
		min-height: 2.75rem;
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.staff-actions-panel {
		transition: none;
	}
}

.task-search-panel #task-search .text-muted.small {
	margin-bottom: 0;
}

/* Full-page overlay while chart reports POST (Asset Load) */
.pp-report-submit-overlay {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0, 0, 0, 0.45);
}

.pp-report-submit-overlay__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	padding: 1.5rem 2rem;
	border-radius: var(--bs-border-radius-lg, 0.5rem);
	background-color: var(--bs-body-bg, #fff);
	box-shadow: var(--bs-box-shadow-lg);
}

.pp-report-submit-overlay__message {
	font-weight: 600;
	color: var(--bs-body-color);
}

/* Select Assets picker — density, schedule, modal, category accordions */
.assign-task-page--self .assign-task-form-column {
	min-width: 0;
}
#activity_center,
.modern-asset-picker {
	--pp-form-check-gap: 0.5rem;
}
#activity_center .pp-asset-meta,
.modern-asset-picker .pp-asset-meta,
.asset-child-modal .pp-asset-meta {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-caption);
	font-weight: 500;
	line-height: 1.2;
}
#activity_center .assign-asset-search-kbd,
.modern-asset-picker .assign-asset-search-kbd {
	align-items: center;
	background: transparent;
	border: 0;
	font-family: inherit;
	min-height: auto;
	padding: 0;
}
#activity_center .assign-asset-search-trigger,
#activity_center .assign-asset-map-trigger,
#activity_center .assign-asset-gps-trigger,
.modern-asset-picker .assign-asset-search-trigger,
.modern-asset-picker .assign-asset-map-trigger,
.modern-asset-picker .assign-asset-gps-trigger {
	font-size: var(--pp-font-ui);
}
#activity_center .assign-asset-search-kbd.pp-asset-meta,
.modern-asset-picker .assign-asset-search-kbd.pp-asset-meta {
	font-size: var(--pp-font-caption);
}
#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header.pp-asset-group-header,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header.pp-asset-group-header {
	align-items: center;
	min-height: 2.75rem;
}
#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header.pp-asset-group-header--has-expand,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header.pp-asset-group-header--has-expand {
	grid-template-columns: auto 1fr auto;
}
#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header.pp-asset-group-header--has-actions,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header.pp-asset-group-header--has-actions {
	grid-template-columns: auto 1fr auto auto;
}
#activity_center .pp-asset-group-expand-all,
.modern-asset-picker .pp-asset-group-expand-all {
	align-items: center;
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color) !important;
	display: inline-flex;
	font-size: var(--pp-font-body);
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.375rem;
	text-decoration: none;
}
#activity_center .pp-asset-group-expand-all .bi,
.modern-asset-picker .pp-asset-group-expand-all .bi {
	color: var(--bs-body-color);
	font-size: var(--pp-font-ui);
	line-height: 1;
}
#activity_center .pp-asset-group-expand-all:hover,
.modern-asset-picker .pp-asset-group-expand-all:hover,
#activity_center .pp-asset-group-expand-all:focus,
.modern-asset-picker .pp-asset-group-expand-all:focus,
#activity_center .pp-asset-group-expand-all:focus-visible,
.modern-asset-picker .pp-asset-group-expand-all:focus-visible {
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color) !important;
	text-decoration: none;
}
#activity_center .pp-asset-group-expand-all:hover .bi,
.modern-asset-picker .pp-asset-group-expand-all:hover .bi,
#activity_center .pp-asset-group-expand-all:focus .bi,
.modern-asset-picker .pp-asset-group-expand-all:focus .bi,
#activity_center .pp-asset-group-expand-all:focus-visible .bi,
.modern-asset-picker .pp-asset-group-expand-all:focus-visible .bi {
	color: var(--bs-body-color);
}
#pp-asset-picker-accordion > .accordion-item > .accordion-header .pp-asset-group-title,
#pp-asset-picker-accordion > .accordion-item > .accordion-header .sections-title.pp-asset-group-title {
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.5rem 0.25rem;
	color: var(--bs-body-color);
}
#activity_center #pp-asset-picker-accordion > .accordion-item > .accordion-header .toggle-btn,
.modern-asset-picker #pp-asset-picker-accordion > .accordion-item > .accordion-header .toggle-btn {
	font-size: var(--pp-font-body);
	padding: 0.375rem 0.25rem 0.375rem 0.25rem;
}
#activity_center #pp-asset-picker-accordion .accordion-body,
.modern-asset-picker #pp-asset-picker-accordion .accordion-body {
	padding-left: 0.5rem;
}
#activity_center .assign-task-asset-check,
.modern-asset-picker .assign-task-asset-check {
	gap: 0.5rem;
}
#activity_center .assign-task-asset-check .form-check-label,
.modern-asset-picker .assign-task-asset-check .form-check-label,
#activity_center .assign-task-asset-check .pp-asset-master-name,
.modern-asset-picker .assign-task-asset-check .pp-asset-master-name,
#activity_center .assign-task-asset-check > a.pp-asset-master-name,
.modern-asset-picker .assign-task-asset-check > a.pp-asset-master-name {
	font-size: var(--pp-font-ui);
}
#activity_center .assign-task-asset-check > a.pp-asset-master-name,
.modern-asset-picker .assign-task-asset-check > a.pp-asset-master-name {
	color: var(--bs-body-color);
}
#activity_center .assign-task-asset-check .form-check-input[type="checkbox"],
.modern-asset-picker .assign-task-asset-check .form-check-input[type="checkbox"],
#activity_center .assign-task-asset-check .form-check-input[type="radio"],
.modern-asset-picker .assign-task-asset-check .form-check-input[type="radio"] {
	width: 1.125rem;
	height: 1.125rem;
}
#activity_center .pp-asset-has-children-icon,
.modern-asset-picker .pp-asset-has-children-icon {
	color: var(--bs-body-color);
	font-size: var(--pp-font-ui);
	line-height: 1;
}
#activity_center .pp-asset-children-chevron-btn,
.modern-asset-picker .pp-asset-children-chevron-btn {
	align-items: center;
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color);
	display: inline-flex;
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.375rem;
	text-decoration: none;
}
#activity_center .pp-asset-children-chevron-btn:hover,
.modern-asset-picker .pp-asset-children-chevron-btn:hover,
#activity_center .pp-asset-children-chevron-btn:focus,
.modern-asset-picker .pp-asset-children-chevron-btn:focus,
#activity_center .pp-asset-children-chevron-btn:focus-visible,
.modern-asset-picker .pp-asset-children-chevron-btn:focus-visible {
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color);
	text-decoration: none;
}
#activity_center .pp-asset-master-row-actions,
.modern-asset-picker .pp-asset-master-row-actions {
	min-height: 2.75rem;
}
#activity_center .pp-asset-schedule-btn,
.modern-asset-picker .pp-asset-schedule-btn,
.asset-child-modal .pp-asset-schedule-btn,
#activity_center .pp-asset-edit-btn,
.modern-asset-picker .pp-asset-edit-btn,
.asset-child-modal .pp-asset-edit-btn,
#inactive_accordion .pp-asset-edit-btn,
#activity_center .pp-asset-copy-btn,
.modern-asset-picker .pp-asset-copy-btn,
.asset-child-modal .pp-asset-copy-btn {
	align-items: center;
	border: 0;
	box-shadow: none;
	color: var(--bs-secondary-color);
	display: inline-flex;
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.375rem;
	text-decoration: none;
}
#activity_center .pp-asset-schedule-btn:hover,
.modern-asset-picker .pp-asset-schedule-btn:hover,
.asset-child-modal .pp-asset-schedule-btn:hover,
#activity_center .pp-asset-schedule-btn:focus,
.modern-asset-picker .pp-asset-schedule-btn:focus,
.asset-child-modal .pp-asset-schedule-btn:focus,
#activity_center .pp-asset-schedule-btn:focus-visible,
.modern-asset-picker .pp-asset-schedule-btn:focus-visible,
.asset-child-modal .pp-asset-schedule-btn:focus-visible,
#activity_center .pp-asset-edit-btn:hover,
.modern-asset-picker .pp-asset-edit-btn:hover,
.asset-child-modal .pp-asset-edit-btn:hover,
#inactive_accordion .pp-asset-edit-btn:hover,
#activity_center .pp-asset-edit-btn:focus,
.modern-asset-picker .pp-asset-edit-btn:focus,
.asset-child-modal .pp-asset-edit-btn:focus,
#inactive_accordion .pp-asset-edit-btn:focus,
#activity_center .pp-asset-edit-btn:focus-visible,
.modern-asset-picker .pp-asset-edit-btn:focus-visible,
.asset-child-modal .pp-asset-edit-btn:focus-visible,
#inactive_accordion .pp-asset-edit-btn:focus-visible,
#activity_center .pp-asset-copy-btn:hover,
.modern-asset-picker .pp-asset-copy-btn:hover,
.asset-child-modal .pp-asset-copy-btn:hover,
#activity_center .pp-asset-copy-btn:focus,
.modern-asset-picker .pp-asset-copy-btn:focus,
.asset-child-modal .pp-asset-copy-btn:focus,
#activity_center .pp-asset-copy-btn:focus-visible,
.modern-asset-picker .pp-asset-copy-btn:focus-visible,
.asset-child-modal .pp-asset-copy-btn:focus-visible {
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color);
	text-decoration: none;
}
#activity_center .pp-asset-schedule-btn .bi,
.modern-asset-picker .pp-asset-schedule-btn .bi,
.asset-child-modal .pp-asset-schedule-btn .bi,
#activity_center .pp-asset-edit-btn .bi,
.modern-asset-picker .pp-asset-edit-btn .bi,
.asset-child-modal .pp-asset-edit-btn .bi,
#inactive_accordion .pp-asset-edit-btn .bi,
#activity_center .pp-asset-copy-btn .bi,
.modern-asset-picker .pp-asset-copy-btn .bi,
.asset-child-modal .pp-asset-copy-btn .bi {
	font-size: 1.25rem;
}
#activity_center .pp-asset-schedule-btn .pp-lucide,
.modern-asset-picker .pp-asset-schedule-btn .pp-lucide,
.asset-child-modal .pp-asset-schedule-btn .pp-lucide,
#activity_center .pp-asset-edit-btn .pp-lucide,
.modern-asset-picker .pp-asset-edit-btn .pp-lucide,
.asset-child-modal .pp-asset-edit-btn .pp-lucide,
#inactive_accordion .pp-asset-edit-btn .pp-lucide,
#activity_center .pp-asset-copy-btn .pp-lucide,
.modern-asset-picker .pp-asset-copy-btn .pp-lucide,
.asset-child-modal .pp-asset-copy-btn .pp-lucide,
#activity_center .pp-asset-create-btn .pp-lucide,
.modern-asset-picker .pp-asset-create-btn .pp-lucide,
.asset-child-modal .pp-asset-create-btn .pp-lucide,
#activity_center .pp-asset-has-children-icon.pp-lucide,
.modern-asset-picker .pp-asset-has-children-icon.pp-lucide,
.asset-child-modal .pp-asset-has-children-icon.pp-lucide,
#activity_center .pp-asset-children-chevron-btn .pp-lucide,
.modern-asset-picker .pp-asset-children-chevron-btn .pp-lucide,
.asset-child-modal .pp-asset-children-chevron-btn .pp-lucide {
	width: 1.25rem;
	height: 1.25rem;
	stroke-width: 1.75;
	flex-shrink: 0;
}

/* Asset picker expand/collapse all — dual Lucide icons */
.pp-asset-group-expand-all .pp-asset-expand-icon--collapse {
	display: none;
}
.pp-asset-group-expand-all[aria-expanded="true"] .pp-asset-expand-icon--expand {
	display: none;
}
.pp-asset-group-expand-all[aria-expanded="true"] .pp-asset-expand-icon--collapse {
	display: inline-flex;
}
.pp-asset-group-expand-all .pp-lucide {
	width: 1.25rem;
	height: 1.25rem;
}
#activity_center .pp-asset-create-btn,
.modern-asset-picker .pp-asset-create-btn,
.asset-child-modal .pp-asset-create-btn {
	align-items: center;
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color) !important;
	display: inline-flex;
	font-size: var(--pp-font-body);
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.375rem;
	text-decoration: none;
}
#activity_center .pp-asset-create-btn:hover,
.modern-asset-picker .pp-asset-create-btn:hover,
.asset-child-modal .pp-asset-create-btn:hover,
#activity_center .pp-asset-create-btn:focus,
.modern-asset-picker .pp-asset-create-btn:focus,
.asset-child-modal .pp-asset-create-btn:focus,
#activity_center .pp-asset-create-btn:focus-visible,
.modern-asset-picker .pp-asset-create-btn:focus-visible,
.asset-child-modal .pp-asset-create-btn:focus-visible {
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color) !important;
	text-decoration: none;
}
#activity_center .pp-asset-create-btn .bi,
.modern-asset-picker .pp-asset-create-btn .bi,
.asset-child-modal .pp-asset-create-btn .bi {
	color: var(--bs-body-color);
	font-size: 1.25rem;
	line-height: 1;
}
#activity_center .asset-dashboard-master-row,
.modern-asset-picker .asset-dashboard-master-row {
	align-items: center;
	min-height: 2.75rem;
	min-width: 0;
	padding-top: 0;
	padding-bottom: 0;
}
#pp-asset-picker-accordion .pp-asset-category-accordion {
	padding-left: 0.5rem;
}
#pp-asset-picker-accordion .pp-asset-category-accordion .pp-asset-category-header {
	display: grid;
	grid-template-columns: auto 1fr auto;
	column-gap: 0.25rem;
	align-items: center;
	min-height: 2.75rem;
	padding: 0;
	border: none;
	background-color: transparent;
	border-bottom: 1px solid var(--bs-border-color);
}
#pp-asset-picker-accordion .pp-asset-category-accordion .pp-asset-category-title,
#pp-asset-picker-accordion .pp-asset-category-accordion .sections-title.pp-asset-category-title {
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.5rem 0.25rem;
	color: var(--bs-body-color);
}
#pp-asset-picker-accordion .pp-asset-category-accordion .toggle-btn {
	padding: 0.375rem 0.25rem;
	font-size: var(--pp-font-body);
}
.asset-child-modal .modal-header {
	border-bottom: 1px solid var(--bs-border-color);
	padding: 0.75rem 1rem;
}
.asset-child-modal .modal-title {
	font-size: var(--pp-font-body);
	font-weight: 600;
}
.asset-child-modal .modal-header .asset-modal-asset-link {
	color: var(--bs-body-color);
	text-decoration: none;
}
.asset-child-modal .modal-header .asset-modal-asset-link:hover {
	text-decoration: underline;
}

/* Assets by Category (`/asset?display_type=c`) — same typography as asset picker */
.modern-asset-picker .pp-assets-by-category.accordion {
	margin-top: 0;
}
.modern-asset-picker .pp-assets-by-category > .accordion-item {
	border: 1px solid transparent;
	border-radius: var(--bs-border-radius, 0.375rem);
	margin-bottom: 0.25rem;
}
.modern-asset-picker .pp-assets-by-category > .accordion-item:has(> .accordion-collapse.show) {
	border-color: var(--bs-primary);
	overflow: hidden;
}
.modern-asset-picker .pp-assets-by-category > .accordion-item > .accordion-header.pp-asset-group-header {
	align-items: center;
	border: none;
	background-color: transparent;
	border-bottom: 1px solid var(--bs-border-color);
	column-gap: 0.25rem;
	display: grid;
	grid-template-columns: auto 1fr;
	min-height: 2.75rem;
	padding: 0;
}
.modern-asset-picker .pp-assets-by-category > .accordion-item > .accordion-header:has(+ .accordion-collapse.show) {
	border-bottom: 1px solid var(--bs-primary);
}
.modern-asset-picker .pp-assets-by-category > .accordion-item > .accordion-header .pp-asset-group-title {
	color: var(--bs-body-color);
	cursor: pointer;
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.5rem 0.25rem;
}
.modern-asset-picker .pp-assets-by-category > .accordion-item > .accordion-header .toggle-btn {
	background: transparent;
	border: none;
	font-size: var(--pp-font-body);
	padding: 0.375rem 0.25rem;
}
.modern-asset-picker .pp-assets-by-category .toggle-btn .pp-lucide,
.modern-asset-picker .pp-assets-by-category .toggle-btn svg.lucide-chevron-right {
	color: var(--bs-body-color);
	display: inline-block;
	transition: transform 0.2s ease;
}
.modern-asset-picker .pp-assets-by-category .accordion-header:has(+ .accordion-collapse.show) .toggle-btn .pp-lucide,
.modern-asset-picker .pp-assets-by-category .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide-chevron-right {
	transform: rotate(90deg);
}
.modern-asset-picker .pp-assets-by-category-body {
	padding-bottom: 0.25rem;
	padding-left: 0.5rem;
}

/* Categories admin — nested subcategories under category headers */
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item {
	border: 1px solid transparent;
	border-radius: var(--bs-border-radius, 0.375rem);
	margin-bottom: 0.25rem;
}
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item:has(> .accordion-collapse.show) {
	border-color: var(--bs-primary);
	overflow: hidden;
}
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item > .accordion-header.pp-asset-group-header {
	align-items: center;
	border: none;
	background-color: transparent;
	border-bottom: 1px solid var(--bs-border-color);
	column-gap: 0.25rem;
	display: grid;
	grid-template-columns: auto 1fr auto auto auto;
	min-height: 2.75rem;
	padding: 0;
}
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item > .accordion-header.pp-asset-group-header--has-actions {
	grid-template-columns: auto 1fr auto auto auto;
}
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item > .accordion-header:has(+ .accordion-collapse.show) {
	border-bottom: 1px solid var(--bs-primary);
}
.modern-asset-picker #pp-asset-categories-admin-accordion > .accordion-item > .accordion-header .pp-asset-group-title {
	color: var(--bs-body-color);
	cursor: pointer;
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.5rem 0.25rem;
}
.modern-asset-picker #pp-asset-categories-admin-accordion .toggle-btn {
	background: transparent;
	border: none;
	font-size: var(--pp-font-body);
	padding: 0.375rem 0.25rem;
}
.modern-asset-picker #pp-asset-categories-admin-accordion .toggle-btn .pp-lucide,
.modern-asset-picker #pp-asset-categories-admin-accordion .toggle-btn svg.lucide,
.modern-asset-picker #pp-asset-categories-admin-accordion .toggle-btn svg.lucide-chevron-right {
	color: var(--bs-body-color);
	display: inline-block;
	transition: transform 0.2s ease;
}
.modern-asset-picker #pp-asset-categories-admin-accordion .toggle-btn .pp-lucide,
.modern-asset-picker #pp-asset-categories-admin-accordion .toggle-btn svg.lucide {
	width: 1em;
	height: 1em;
}
.modern-asset-picker #pp-asset-categories-admin-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn .pp-lucide,
.modern-asset-picker #pp-asset-categories-admin-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide,
.modern-asset-picker #pp-asset-categories-admin-accordion .accordion-header:has(+ .accordion-collapse.show) .toggle-btn svg.lucide-chevron-right {
	transform: rotate(90deg);
}
.modern-asset-picker .pp-asset-categories-admin-body {
	padding-bottom: 0.25rem;
	padding-left: 0.5rem;
}
.modern-asset-picker .pp-asset-categories-admin-body .pp-inactive-list-row {
	align-items: center;
	border-bottom: 1px solid var(--bs-border-color);
	display: flex;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}
.modern-asset-picker .pp-asset-categories-admin-body .pp-inactive-list-row:last-child {
	border-bottom: none;
}
.modern-asset-picker .pp-asset-categories-admin-body .pp-inactive-list-link {
	color: var(--bs-body-color);
	font-size: var(--pp-font-ui);
}
.modern-asset-picker .pp-asset-categories-admin-body .pp-inactive-list-empty {
	font-size: var(--pp-font-ui);
	padding: 0.5rem;
}

.modern-asset-picker .pp-assets-by-category-subcategory {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.5rem 0.5rem 0.25rem;
}
.modern-asset-picker .pp-assets-by-category-row {
	align-items: center;
	border-bottom: 1px solid var(--bs-border-color);
	display: flex;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}
.modern-asset-picker .pp-assets-by-category-row .pp-assets-by-category-asset-link,
.modern-asset-picker .pp-assets-by-category-row .pp-asset-master-name {
	font-size: var(--pp-font-ui);
}
.modern-asset-picker .pp-assets-by-category-spacer {
	color: var(--bs-secondary-color);
}
.modern-asset-picker .pp-assets-by-category-row .form-check-input {
	height: 1.125rem;
	width: 1.125rem;
}

/* Child asset modal — match main Select Assets picker (category level + rows) */
.asset-child-modal {
	--pp-asset-child-indent: calc(0.5rem + 1.125rem + 0.5rem);
}
.asset-child-modal #proAccordionFlushModal.pp-asset-modal-category-accordion .pp-asset-category-header {
	display: grid;
	grid-template-columns: auto 1fr auto;
	column-gap: 0.25rem;
	align-items: center;
	min-height: 2.75rem;
	padding: 0;
	border: none;
	background-color: transparent;
	border-bottom: 1px solid var(--bs-border-color);
}
.asset-child-modal #proAccordionFlushModal .pp-asset-modal-category-header--has-trailing {
	grid-template-columns: auto 1fr auto auto;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-modal-category-header--has-two-trailing {
	grid-template-columns: auto 1fr auto auto auto;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-category-header .pp-asset-category-title,
.asset-child-modal #proAccordionFlushModal .pp-asset-category-header .sections-title {
	font-size: var(--pp-font-ui);
	font-weight: 600;
	padding: 0.5rem 0.25rem;
	color: var(--bs-body-color) !important;
	text-transform: none;
	letter-spacing: normal;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-category-header .toggle-btn {
	font-size: var(--pp-font-body);
	padding: 0.375rem 0.25rem;
	border: none;
	background: transparent;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-category-header .toggle-btn .pp-lucide,
.asset-child-modal #proAccordionFlushModal .pp-asset-category-header .toggle-btn svg.lucide-chevron-right {
	color: var(--bs-body-color) !important;
	font-size: var(--pp-font-body);
}
.asset-child-modal #proAccordionFlushModal .pp-asset-category-header:has(+ .accordion-collapse.show) {
	background-color: transparent;
	border-bottom-color: var(--bs-border-color);
	box-shadow: none;
}
/* Child modal selection — open category envelope (matches main picker master group) */
.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal.pp-asset-modal-category-accordion > .accordion-item {
	border: 1px solid transparent;
	border-radius: var(--bs-border-radius, 0.375rem);
	margin-bottom: 0.25rem;
}
.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal.pp-asset-modal-category-accordion > .accordion-item:has(> .accordion-collapse.show) {
	border-color: var(--bs-primary);
	overflow: hidden;
}
.asset-child-modal.pp-asset-modal--selection-mode #proAccordionFlushModal .pp-asset-category-header:has(+ .accordion-collapse.show) {
	border-bottom: 1px solid var(--bs-primary);
	border-bottom-color: var(--bs-primary);
}
/* Override global #proAccordionFlushModal accordion defaults inside child modal */
.asset-child-modal #proAccordionFlushModal .sections-title {
	font-size: var(--pp-font-ui);
	padding: 0.5rem 0.25rem;
}
.asset-child-modal #proAccordionFlushModal .toggle-btn {
	font-size: var(--pp-font-body);
	padding: 0.375rem 0.25rem;
}
.asset-child-modal #proAccordionFlushModal .accordion-body:not(.asset-modal-asset-row) {
	padding: 0;
}
.asset-child-modal #proAccordionFlushModal .accordion-body.asset-modal-asset-row,
.asset-child-modal #proAccordionFlushModal .accordion-body.asset-modal-asset-row.p-0 {
	padding: 0 !important;
}
.asset-child-modal #proAccordionFlushModal .asset-dashboard-master-row {
	align-items: center;
	min-height: 2.75rem;
	min-width: 0;
	padding-top: 0;
	padding-bottom: 0;
}
.asset-child-modal #proAccordionFlushModal .assign-task-asset-check,
.asset-child-modal #proAccordionFlushModal .form-check,
.asset-child-modal #proAccordionFlushModal .checkbox_label label,
.asset-child-modal #proAccordionFlushModal .radio_label label {
	gap: 0.5rem;
}
.asset-child-modal #proAccordionFlushModal .form-check-label,
.asset-child-modal #proAccordionFlushModal .pp-asset-master-name,
.asset-child-modal #proAccordionFlushModal .asset-modal-asset-name {
	font-size: var(--pp-font-ui);
}
.asset-child-modal #proAccordionFlushModal .form-check-input[type="checkbox"],
.asset-child-modal #proAccordionFlushModal .form-check-input[type="radio"] {
	width: 1.125rem;
	height: 1.125rem;
	margin-top: 0;
	margin-left: 0;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-master-row-actions {
	min-height: 2.75rem;
}
.asset-child-modal #proAccordionFlushModal .asset-accordion-create-btn,
.asset-child-modal #proAccordionFlushModal .pp-asset-create-btn {
	margin-left: 0;
	margin-right: 0.5rem;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-category-select-all {
	margin-right: 0.5rem;
}
.asset-child-modal #proAccordionFlushModal .asset-modal-subcategory-row {
	background-color: transparent !important;
	min-height: 2.25rem;
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
}
.asset-child-modal #proAccordionFlushModal .child-asset {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	border-top: 1px solid var(--bs-border-color);
	padding-top: 0;
	padding-bottom: 0;
	padding-inline-start: var(--pp-asset-child-indent);
	padding-inline-end: 0.5rem;
}
.asset-child-modal #proAccordionFlushModal .grandchild-subcategory-div {
	padding-left: 0;
	line-height: inherit;
	border-top: 1px solid var(--bs-border-color);
}
.asset-child-modal #proAccordionFlushModal .grandchild-subcategory-div .subcategory-title {
	display: block;
	margin: 0;
	padding: 0.375rem 0.5rem;
	padding-inline-start: var(--pp-asset-child-indent);
	border: none;
	border-radius: 0;
	background-color: transparent;
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-ui);
	font-weight: 600;
}
.asset-child-modal #proAccordionFlushModal .subcategory-line-item-div {
	padding: 0;
	padding-inline-start: var(--pp-asset-child-indent);
	padding-inline-end: 0.5rem;
	min-height: 2.75rem;
	display: flex;
	align-items: center;
	border-top: 1px solid var(--bs-border-color);
}
.asset-child-modal #proAccordionFlushModal .parent-line-item-div,
.asset-child-modal #proAccordionFlushModal .subcategory-line-item-div {
	padding-top: 0;
}
@media (max-width: 575.98px) {
	.asset-child-modal .modal-body {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
	.asset-child-modal .modal-header {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
}
.asset-child-modal #proAccordionFlushModal .pp-asset-has-children-icon {
	color: var(--bs-body-color);
	font-size: var(--pp-font-ui);
	line-height: 1;
	transition: transform 0.2s ease;
	display: inline-block;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-nested-expand-icon--open {
	transform: rotate(90deg);
}
.asset-child-modal #proAccordionFlushModal .pp-asset-children-chevron-btn {
	align-items: center;
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color);
	display: inline-flex;
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.375rem;
	text-decoration: none;
}
.asset-child-modal #proAccordionFlushModal .pp-asset-children-chevron-btn:hover,
.asset-child-modal #proAccordionFlushModal .pp-asset-children-chevron-btn:focus,
.asset-child-modal #proAccordionFlushModal .pp-asset-children-chevron-btn:focus-visible {
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color);
	text-decoration: none;
}
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-schedule-btn,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-edit-btn {
	align-items: center;
	border: 0;
	box-shadow: none;
	color: var(--bs-secondary-color);
	display: inline-flex;
	justify-content: center;
	line-height: 1;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.375rem;
	text-decoration: none;
}
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-schedule-btn:hover,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-schedule-btn:focus,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-schedule-btn:focus-visible,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-edit-btn:hover,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-edit-btn:focus,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-edit-btn:focus-visible {
	border: 0;
	box-shadow: none;
	color: var(--bs-body-color);
	text-decoration: none;
}
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-master-row-actions {
	min-height: 2.75rem;
}
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-schedule-btn .bi,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-edit-btn .bi {
	font-size: 1.25rem;
}
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-schedule-btn .pp-lucide,
.asset-child-modal.pp-asset-modal--selection-mode .pp-asset-edit-btn .pp-lucide {
	width: 1.25rem;
	height: 1.25rem;
}

/* Bootstrap docs callout — quota / instructional blocks (user list, register, edit) */
.bd-callout {
	padding: 1.25rem;
	margin-top: 0;
	margin-bottom: 1.5rem;
	color: var(--bd-callout-color, inherit);
	background-color: var(--bd-callout-bg, var(--bs-secondary-bg));
	border-left: 0.25rem solid var(--bd-callout-border, var(--bs-border-color));
	border-radius: var(--bs-border-radius);
}
.bd-callout-info {
	--bd-callout-color: var(--bs-info-text-emphasis);
	--bd-callout-bg: var(--bs-info-bg-subtle);
	--bd-callout-border: var(--bs-info-border-subtle);
}
.bd-callout a {
	color: var(--bs-link-color);
}
.plan-limit-note {
	color: var(--bs-secondary-color);
	font-size: var(--pp-font-ui);
}

/* User create/edit — component layout (page shell containment is global above) */

/* Phone + Ext — flex/gap so Phone flushes with full-width fields (not row mx-0 g-*) */
.pp-user-form-phone-row {
	min-width: 0;
	max-width: 100%;
}

@media (min-width: 576px) {
	.pp-user-form-phone-ext {
		width: 8.5rem;
	}
}

/* Meta cards (Status / Type / Supervisor / Admin) — CSS grid, top-aligned; no Bootstrap row gutters */
.pp-user-form-meta-cards {
	display: grid;
	gap: 1rem;
	align-items: start;
	min-width: 0;
	max-width: 100%;
}

@media (min-width: 992px) {
	.pp-user-form-meta-cards--pair {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 768px) {
	.pp-user-form-meta-cards--triple {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pp-user-form-meta-cards--quad {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 992px) {
	.pp-user-form-meta-cards--triple {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.pp-user-form-meta-cards--quad {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.pp-user-form-communication {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.pp-user-form-communication .form-check {
		margin-bottom: 0;
		min-height: 2.75rem;
	}

	.pp-user-form-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.pp-user-form-toolbar > .btn {
		width: 100%;
	}

	.pp-user-form-toolbar > form {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5rem;
		width: 100%;
	}
}
