/* Dark appearance roles and screen-only theme overrides.
 * Light defaults and component structure live in arg.css; page-specific palettes
 * remain with their widgets. Dark overrides deliberately exclude printed output.
 */

/* Keep screen palette overrides separate from print/PDF output. */
@media screen {
	[data-bs-theme="dark"] {
		--arg-page-bg: #0d0d0d;
		--arg-surface-bg: #1a1a19;
		--arg-text: #fff;
		--arg-text-secondary: #c3c2b7;
		--arg-text-muted: #898781;
		--arg-border: rgba(255, 255, 255, 0.1);
		--arg-control-border: #6e6e68;
		--arg-hover-bg: rgba(255, 255, 255, 0.05);
		--arg-link: #8ab4df;
		--arg-link-hover: #b4cfea;
		--arg-focus-rgb: 138, 180, 223;
		--arg-navbar-bg: var(--arg-surface-bg);
		--arg-navbar-gradient: none;
		--arg-navbar-border: var(--arg-border);
		--arg-navbar-shadow: none;
		--arg-navbar-text: var(--arg-text-secondary);
		--arg-navbar-text-shadow: none;
		--arg-navbar-active-text: var(--arg-text);
		--arg-navbar-active-bg: var(--arg-hover-bg);
		--arg-navbar-selected-bg: #30302e;
		--arg-nav-pills-active-bg: #4373a3;
		--arg-navbar-selected-indicator: var(--arg-link);
		--arg-navbar-attention: var(--arg-bad-text);
		--arg-navbar-relocated: #8c9eff;
		--arg-surface-raised-bg: #242423;
		--arg-readonly-bg: var(--arg-surface-raised-bg);
		--arg-section-bg: var(--arg-surface-raised-bg);
		--arg-section-border: var(--arg-border);
		--arg-section-dark-bg: #3d3d3a;
		--arg-highlight-bg: #3c3215;
		--arg-quote-bg: var(--arg-surface-raised-bg);
		--arg-quote-border: var(--arg-control-border);
		--arg-box-border: var(--arg-border);
		--arg-box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
		--arg-comment-bg: var(--arg-surface-bg);
		--arg-comment-border: var(--arg-border);
		--arg-executive-bg: var(--arg-highlight-bg);
		--arg-progress-bg: #16321d;
		--arg-good-bg: #16321d;
		--arg-good-hover-bg: #20462a;
		--arg-bad-bg: #3c1c20;
		--arg-bad-hover-bg: #4d252a;
		--arg-good-text: #75d27f;
		--arg-bad-text: #ff8e8e;
		--arg-warning-text: #e0a10f;
		--arg-info-text: #6dd4dc;
		--arg-validation-error: var(--arg-bad-text);
		--arg-required-marker: var(--arg-bad-text);
		--arg-form-label: var(--arg-text-secondary);
		--arg-well-bg: var(--arg-surface-bg);
		--arg-editor-bg: var(--arg-page-bg);
		--arg-scrollbar-track: var(--arg-page-bg);
		--arg-scrollbar-border: var(--arg-border);
		--arg-scrollbar-thumb: var(--arg-control-border);
		--arg-scrollbar-thumb-hover: var(--arg-text-muted);
		--arg-scrollable-track: var(--arg-surface-bg);
		--arg-attachment-border: var(--arg-border);
		--arg-dotted-link-border: var(--arg-link);
		--arg-table-stripe-bg: #20201f;
		--arg-table-hover-bg: #282827;
		--arg-table-active-bg: #30302e;
		--arg-primary-solid-bg: #315a85;
		--arg-primary-solid-hover-bg: #39658f;
		--arg-primary-solid-active-bg: #294b70;
		--arg-primary-bg: #142841;
		--arg-primary-stripe-bg: #172e4b;
		--arg-primary-hover-bg: #1b3657;
		--arg-good-stripe-bg: #1b3b23;
		--arg-bad-stripe-bg: #452126;
		--arg-info-solid-bg: #14545a;
		--arg-info-solid-hover-bg: #1b6a71;
		--arg-info-progress-bg: #24767c;
		--arg-info-bg: #123033;
		--arg-info-border: #2e6065;
		--arg-info-stripe-bg: #15373b;
		--arg-info-hover-bg: #193f43;
		--arg-warning-bg: var(--arg-highlight-bg);
		--arg-warning-stripe-bg: #453a18;
		--arg-warning-hover-bg: #50421b;
		--arg-surface-link-rgb: 154, 191, 227;
		--arg-surface-link-hover-rgb: 183, 211, 239;
		--arg-selected-bg: #1f5fa8;
		--arg-chart-grid: #383835;
		--arg-participant-bg: var(--arg-surface-raised-bg);
		--arg-participant-handler-bg: var(--arg-good-bg);
		--arg-participant-assistant-bg: var(--arg-warning-bg);
		--arg-participant-text: var(--arg-text);
		--arg-participant-muted: var(--arg-text-secondary);
		--arg-participant-watcher-border: #75a454;
		--arg-participant-non-watcher-border: #e08a8a;
		--arg-content-bg: var(--arg-surface-bg);
		--arg-filter-text: var(--arg-text);
		--arg-priority-border: var(--arg-control-border);
		--arg-task-counter-bg: var(--arg-info-bg);
		--arg-task-counter-hover-bg: var(--arg-info-hover-bg);
		--arg-task-counter-text: var(--arg-info-text);
		--arg-video-wait-bg: var(--arg-surface-raised-bg);

		--bs-body-color: var(--arg-text);
		--bs-body-color-rgb: 255, 255, 255;
		--bs-body-bg: var(--arg-page-bg);
		--bs-body-bg-rgb: 13, 13, 13;
		--bs-emphasis-color: var(--arg-text);
		--bs-emphasis-color-rgb: 255, 255, 255;
		--bs-secondary-color: var(--arg-text-secondary);
		--bs-secondary-color-rgb: 195, 194, 183;
		--bs-tertiary-color: var(--arg-text-muted);
		--bs-tertiary-color-rgb: 137, 135, 129;
		--bs-secondary-bg: var(--arg-surface-bg);
		--bs-secondary-bg-rgb: 26, 26, 25;
		--bs-tertiary-bg: var(--arg-surface-bg);
		--bs-tertiary-bg-rgb: 26, 26, 25;
		--bs-border-color: var(--arg-border);
		--bs-border-color-translucent: var(--arg-border);
		--bs-link-color: var(--arg-link);
		--bs-link-color-rgb: 138, 180, 223;
		--bs-link-hover-color: var(--arg-link-hover);
		--bs-link-hover-color-rgb: 180, 207, 234;
		--bs-focus-ring-color: rgba(var(--arg-focus-rgb), 0.5);
		--bs-info-text-emphasis: var(--arg-info-text);
		--bs-info-bg-subtle: var(--arg-info-bg);
		--bs-info-border-subtle: var(--arg-info-border);
	}

	[data-bs-theme="dark"] .arg-main-navbar {
		--bs-navbar-color: var(--arg-navbar-text);
		--bs-navbar-hover-color: var(--arg-text);
		--bs-navbar-active-color: var(--arg-text);
		--bs-navbar-brand-color: var(--arg-text);
		--bs-navbar-brand-hover-color: var(--arg-text);
		--bs-navbar-toggler-border-color: var(--arg-control-border);
	}

	[data-bs-theme="dark"] .arg-theme-switcher .dropdown-menu {
		--bs-dropdown-bg: var(--arg-surface-bg);
		--bs-dropdown-link-hover-bg: var(--arg-hover-bg);
	}

	/* Controls and attached labels need stronger boundaries than panel separators. */
	[data-bs-theme="dark"] .form-control,
	[data-bs-theme="dark"] .form-select,
	[data-bs-theme="dark"] .input-group-text {
		--bs-border-color: var(--arg-control-border);
	}

	[data-bs-theme="dark"] .form-control:focus,
	[data-bs-theme="dark"] .form-select:focus {
		border-color: var(--arg-link);
		box-shadow: 0 0 0 0.25rem rgba(var(--arg-focus-rgb), 0.5);
	}

	/* The white symbol stays legible against dark surfaces. */
	[data-bs-theme="dark"] .arg-brand-logo {
		content: url('../images/argonics-logo-white.svg');
	}
}

/* Shared screen components. Print keeps the original light role values above. */
@media screen {
	[data-bs-theme="dark"] textarea { color: var(--arg-text); }
	[data-bs-theme="dark"] .form-control[readonly],
	[data-bs-theme="dark"] .form-control:disabled,
	[data-bs-theme="dark"] .form-select:disabled,
	[data-bs-theme="dark"] fieldset:disabled .form-control {
		color: var(--arg-text-secondary);
		background-color: var(--arg-readonly-bg);
	}
	[data-bs-theme="dark"] .form-check-input { --bs-border-color: var(--arg-control-border); }
	/* Leave Bootstrap's validation colors and focus rings intact. */
	[data-bs-theme="dark"] .form-check-input:not(:where(.is-valid, .is-invalid, .was-validated *)):focus {
		border-color: var(--arg-link);
		outline: 2px solid var(--arg-link);
		outline-offset: 2px;
		box-shadow: none;
	}
	/* Keep filled checks seamless; focus is indicated outside the control. */
	:where([data-bs-theme="dark"]) .form-check-input:not(:where(.is-valid, .is-invalid, .was-validated *)):is(:checked, [type="checkbox"]:indeterminate) {
		background-color: var(--arg-primary-solid-bg);
		border-color: var(--arg-primary-solid-bg);
	}
	[data-bs-theme="dark"] .card {
		--bs-card-bg: var(--arg-surface-bg);
		--bs-card-cap-bg: var(--arg-surface-raised-bg);
		--bs-card-border-color: var(--arg-border);
	}
	[data-bs-theme="dark"] .modal-content { --bs-modal-bg: var(--arg-surface-bg); }
	[data-bs-theme="dark"] .popover {
		--bs-popover-bg: var(--arg-surface-bg);
		--bs-popover-border-color: var(--arg-control-border);
		--bs-popover-header-bg: var(--arg-surface-raised-bg);
		--bs-popover-header-color: var(--arg-text);
		--bs-popover-body-color: var(--arg-text);
	}
	[data-bs-theme="dark"] .tooltip {
		--bs-tooltip-color: var(--arg-text);
		--bs-tooltip-bg: var(--arg-surface-raised-bg);
		--bs-tooltip-opacity: 1;
	}
	[data-bs-theme="dark"] .tooltip-inner { border: 1px solid var(--arg-control-border); }
	[data-bs-theme="dark"] .dropdown-menu {
		--bs-dropdown-bg: var(--arg-surface-bg);
		--bs-dropdown-link-hover-bg: var(--arg-hover-bg);
	}
	[data-bs-theme="dark"] .dropdown-menu > li > a:hover { background-color: var(--arg-hover-bg); }
	[data-bs-theme="dark"] .list-group {
		--bs-list-group-color: var(--arg-text);
		--bs-list-group-bg: var(--arg-surface-bg);
		--bs-list-group-action-hover-color: var(--arg-text);
		--bs-list-group-action-hover-bg: var(--arg-surface-raised-bg);
		--bs-list-group-action-active-color: var(--arg-text);
		--bs-list-group-action-active-bg: var(--arg-surface-raised-bg);
	}

	/* Keep text links readable on colored notices and filled Info surfaces. */
	[data-bs-theme="dark"] .alert,
	[data-bs-theme="dark"] .text-bg-info {
		--bs-link-color-rgb: 215, 232, 255;
		--bs-link-hover-color-rgb: 255, 255, 255;
	}
	[data-bs-theme="dark"] .alert .alert-link:not(:where(.btn)) {
		color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
	}

	/* Context classes work on the entire table, a row, or an individual cell. */
	[data-bs-theme="dark"] :is(.table, .table-primary, .table-secondary, .table-success, .table-danger, .table-warning, .table-info, .table-light, .table-dark) {
		--bs-table-color: var(--arg-text);
		--bs-table-bg: var(--arg-table-context-bg, var(--arg-surface-bg));
		--bs-table-border-color: var(--arg-border);
		--bs-table-striped-color: var(--arg-text);
		--bs-table-striped-bg: var(--arg-table-context-stripe-bg, var(--arg-table-stripe-bg));
		--bs-table-hover-color: var(--arg-text);
		--bs-table-hover-bg: var(--arg-table-context-hover-bg, var(--arg-table-hover-bg));
		--bs-table-active-color: var(--arg-text);
		--bs-table-active-bg: var(--arg-table-context-hover-bg, var(--arg-table-active-bg));
		--bs-link-color-rgb: var(--arg-surface-link-rgb);
		--bs-link-hover-color-rgb: var(--arg-surface-link-hover-rgb);
	}
	[data-bs-theme="dark"] .table-primary {
		--arg-table-context-bg: var(--arg-primary-bg);
		--arg-table-context-stripe-bg: var(--arg-primary-stripe-bg);
		--arg-table-context-hover-bg: var(--arg-primary-hover-bg);
	}
	[data-bs-theme="dark"] .table-success {
		--arg-table-context-bg: var(--arg-good-bg);
		--arg-table-context-stripe-bg: var(--arg-good-stripe-bg);
		--arg-table-context-hover-bg: var(--arg-good-hover-bg);
	}
	[data-bs-theme="dark"] .table-danger {
		--arg-table-context-bg: var(--arg-bad-bg);
		--arg-table-context-stripe-bg: var(--arg-bad-stripe-bg);
		--arg-table-context-hover-bg: var(--arg-bad-hover-bg);
	}
	[data-bs-theme="dark"] .table-warning {
		--arg-table-context-bg: var(--arg-warning-bg);
		--arg-table-context-stripe-bg: var(--arg-warning-stripe-bg);
		--arg-table-context-hover-bg: var(--arg-warning-hover-bg);
	}
	[data-bs-theme="dark"] .table-info {
		--arg-table-context-bg: var(--arg-info-bg);
		--arg-table-context-stripe-bg: var(--arg-info-stripe-bg);
		--arg-table-context-hover-bg: var(--arg-info-hover-bg);
	}
	[data-bs-theme="dark"] :is(.table-secondary, .table-light) {
		--arg-table-context-bg: var(--arg-surface-raised-bg);
		--arg-table-context-stripe-bg: var(--arg-table-hover-bg);
		--arg-table-context-hover-bg: var(--arg-table-active-bg);
	}
	[data-bs-theme="dark"] .table-dark {
		--arg-table-context-bg: var(--arg-page-bg);
		--arg-table-context-stripe-bg: var(--arg-surface-bg);
		--arg-table-context-hover-bg: var(--arg-table-hover-bg);
	}
	[data-bs-theme="dark"] .arg-backcolor-good {
		--bs-table-bg: var(--arg-good-bg);
		--bs-table-striped-bg: var(--arg-good-bg);
		--bs-table-hover-bg: var(--arg-good-hover-bg);
		--bs-table-active-bg: var(--arg-good-hover-bg);
	}
	[data-bs-theme="dark"] .arg-backcolor-bad {
		--bs-table-bg: var(--arg-bad-bg);
		--bs-table-striped-bg: var(--arg-bad-bg);
		--bs-table-hover-bg: var(--arg-bad-hover-bg);
		--bs-table-active-bg: var(--arg-bad-hover-bg);
	}

	[data-bs-theme="dark"] .text-success { color: var(--arg-good-text) !important; }
	[data-bs-theme="dark"] .text-danger { color: var(--arg-bad-text) !important; }
	[data-bs-theme="dark"] .text-info { color: var(--arg-info-text) !important; }
	[data-bs-theme="dark"] .text-primary { color: var(--arg-link-hover) !important; }
	[data-bs-theme="dark"] .border-success-subtle { border-color: var(--bs-success-border-subtle) !important; }
	[data-bs-theme="dark"] .badge.bg-white { background-color: var(--arg-surface-bg) !important; }
	[data-bs-theme="dark"] .bg-info { background-color: var(--arg-info-solid-bg) !important; }
	[data-bs-theme="dark"] .card.bg-info { --bs-card-cap-bg: var(--arg-info-solid-bg); }
	[data-bs-theme="dark"] .text-bg-info {
		color: var(--arg-text) !important;
		background-color: var(--arg-info-solid-bg) !important;
	}
	[data-bs-theme="dark"] .badge.bg-warning { background-color: var(--arg-warning-text) !important; color: #000 !important; }
	[data-bs-theme="dark"] :is(.arg-backcolor-good, .arg-backcolor-bad, .table-primary, .table-success, .table-danger, .table-warning, .table-info, blockquote, .arg-block-section-title, .comment .cmeta, .card-header) {
		--bs-link-color-rgb: var(--arg-surface-link-rgb);
		--bs-link-hover-color-rgb: var(--arg-surface-link-hover-rgb);
	}

	/* Filled Info panels need lighter links, including headers inside Info cards. */
	[data-bs-theme="dark"] :is(.bg-info, .bg-info > .card-header) {
		--bs-link-color-rgb: 215, 232, 255;
		--bs-link-hover-color-rgb: 255, 255, 255;
	}
	/* Progress is graphical information: keep its fill distinct from the track. */
	[data-bs-theme="dark"] .progress-bar.bg-info { background-color: var(--arg-info-progress-bg) !important; }
	[data-bs-theme="dark"] .progress-bar-striped.bg-info {
		background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.05) 50%, rgba(255, 255, 255, 0.05) 75%, transparent 75%, transparent);
	}

	/* Keep outline text/borders and selected fills on the same semantic color. */
	[data-bs-theme="dark"] .btn-outline-primary { --arg-outline-color: var(--arg-link); }
	[data-bs-theme="dark"] .btn-outline-secondary { --arg-outline-color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .btn-outline-success { --arg-outline-color: var(--arg-good-text); }
	[data-bs-theme="dark"] .btn-outline-danger { --arg-outline-color: var(--arg-bad-text); }
	[data-bs-theme="dark"] .btn-outline-info { --arg-outline-color: var(--arg-info-text); }
	[data-bs-theme="dark"] .btn-outline-warning { --arg-outline-color: var(--arg-warning-text); }
	[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-info, .btn-outline-warning):not([data-arg-theme-toggle]) {
		--bs-btn-color: var(--arg-outline-color);
		--bs-btn-border-color: var(--arg-outline-color);
		--bs-btn-hover-color: var(--arg-page-bg);
		--bs-btn-hover-bg: var(--arg-outline-color);
		--bs-btn-hover-border-color: var(--arg-outline-color);
		--bs-btn-active-color: var(--arg-page-bg);
		--bs-btn-active-bg: var(--arg-outline-color);
		--bs-btn-active-border-color: var(--arg-outline-color);
		--bs-btn-disabled-color: var(--arg-outline-color);
		--bs-btn-disabled-border-color: var(--arg-outline-color);
		--bs-btn-focus-shadow-rgb: var(--arg-focus-rgb);
		color: var(--bs-btn-color) !important;
		border-color: var(--bs-btn-border-color);
		background-color: transparent;
	}
	/* A secondary Info action needs a quieter hover than a persistent selection. */
	[data-bs-theme="dark"] .btn-outline-info:not([data-arg-theme-toggle]):not(.btn-check + .btn) {
		--bs-btn-hover-color: var(--arg-info-text);
		--bs-btn-hover-bg: var(--arg-info-hover-bg);
	}
	/* Radio/checkbox labels fill on selection, not merely on hover. */
	[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-info, .btn-outline-warning):not([data-arg-theme-toggle]):not(.btn-check + .btn):is(:hover, :focus-visible) {
		color: var(--bs-btn-hover-color) !important;
		border-color: var(--bs-btn-hover-border-color);
		background-color: var(--bs-btn-hover-bg);
	}
	[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-info, .btn-outline-warning):not([data-arg-theme-toggle]):not(.btn-check + .btn):is(:active, .active, .show),
	[data-bs-theme="dark"] .btn-check:is(:checked, :active) + :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-info, .btn-outline-warning) {
		color: var(--bs-btn-active-color) !important;
		border-color: var(--bs-btn-active-border-color);
		background-color: var(--bs-btn-active-bg);
	}
	/* Keep keyboard focus visible on both ordinary buttons and hidden check inputs. */
	[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-info, .btn-outline-warning):not([data-arg-theme-toggle]):focus-visible,
	[data-bs-theme="dark"] .btn-check:focus-visible + :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-info, .btn-outline-warning) {
		outline: 2px solid var(--arg-outline-color);
		outline-offset: 2px;
		box-shadow: none;
	}

	/* Filled primary controls use a quieter blue than Bootstrap's light palette. */
	[data-bs-theme="dark"] .text-bg-primary {
		color: var(--arg-text) !important;
		background-color: var(--arg-primary-solid-bg) !important;
	}
	[data-bs-theme="dark"] .btn-primary {
		--bs-btn-color: var(--arg-text);
		--bs-btn-bg: var(--arg-primary-solid-bg);
		--bs-btn-border-color: var(--arg-primary-solid-bg);
		--bs-btn-hover-color: var(--arg-text);
		--bs-btn-hover-bg: var(--arg-primary-solid-hover-bg);
		--bs-btn-hover-border-color: var(--arg-primary-solid-hover-bg);
		--bs-btn-active-color: var(--arg-text);
		--bs-btn-active-bg: var(--arg-primary-solid-active-bg);
		--bs-btn-active-border-color: var(--arg-primary-solid-active-bg);
		--bs-btn-disabled-color: var(--arg-text);
		--bs-btn-disabled-bg: var(--arg-primary-solid-bg);
		--bs-btn-disabled-border-color: var(--arg-primary-solid-bg);
		--bs-btn-focus-shadow-rgb: var(--arg-focus-rgb);
	}

	/* Keep Bootstrap's filled-pill selection pattern in both themes. */
	[data-bs-theme="dark"] .nav-pills {
		--bs-nav-pills-link-active-color: var(--arg-text);
		--bs-nav-pills-link-active-bg: var(--arg-nav-pills-active-bg);
	}
	[data-bs-theme="dark"] .nav-pills .nav-link:is(:hover, :focus-visible) {
		color: var(--arg-link-hover);
		background-color: var(--arg-primary-bg);
	}
	[data-bs-theme="dark"] .nav-pills .nav-link.active,
	[data-bs-theme="dark"] .nav-pills .show > .nav-link {
		color: var(--bs-nav-pills-link-active-color);
		background-color: var(--bs-nav-pills-link-active-bg);
	}
	[data-bs-theme="dark"] .btn-primary:focus-visible,
	[data-bs-theme="dark"] .btn-info:focus-visible,
	[data-bs-theme="dark"] .btn-check:focus-visible + .btn-info,
	[data-bs-theme="dark"] .nav-pills .nav-link:focus-visible {
		outline: 2px solid var(--arg-link);
		outline-offset: 2px;
		box-shadow: none;
	}

	[data-bs-theme="dark"] .btn-info {
		--bs-btn-color: var(--arg-text);
		--bs-btn-hover-color: var(--arg-text);
		--bs-btn-active-color: var(--arg-text);
		--bs-btn-disabled-color: var(--arg-text);
		--bs-btn-disabled-bg: var(--arg-info-solid-bg);
		--bs-btn-disabled-border-color: var(--arg-info-solid-bg);
		--bs-btn-bg: var(--arg-info-solid-bg);
		--bs-btn-border-color: var(--arg-info-solid-bg);
		--bs-btn-hover-bg: var(--arg-info-solid-hover-bg);
		--bs-btn-hover-border-color: var(--arg-info-solid-hover-bg);
		--bs-btn-active-bg: var(--arg-info-solid-hover-bg);
		--bs-btn-active-border-color: var(--arg-info-solid-hover-bg);
	}

	/* Markdown CSS is loaded lazily; these selectors also cover fullscreen mode. */
	[data-bs-theme="dark"] .md-editor { background: var(--arg-surface-bg); border-color: var(--arg-control-border); }
	[data-bs-theme="dark"] .md-editor > .md-header,
	[data-bs-theme="dark"] .md-editor .md-footer { background: var(--arg-section-bg); color: var(--arg-text); }
	[data-bs-theme="dark"] .md-editor > textarea,
	[data-bs-theme="dark"] .md-editor > .md-preview {
		color: var(--arg-text);
		background: var(--arg-editor-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .md-editor:is(.active, :focus-within) {
		border-color: var(--arg-link);
		box-shadow: 0 0 0 0.2rem rgba(var(--arg-focus-rgb), 0.5);
	}
	[data-bs-theme="dark"] .md-editor .md-header .btn {
		--bs-btn-color: var(--arg-text-secondary);
		--bs-btn-hover-color: var(--arg-text);
		--bs-btn-hover-bg: var(--arg-hover-bg);
		--bs-btn-border-color: var(--arg-control-border);
		--bs-btn-focus-shadow-rgb: var(--arg-focus-rgb);
	}
	[data-bs-theme="dark"] .md-editor .md-controls .md-control { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .md-editor .md-controls .md-control:hover { color: var(--arg-text); }
	[data-bs-theme="dark"] .md-editor.md-fullscreen-mode { background: var(--arg-surface-bg) !important; }
	[data-bs-theme="dark"] .md-editor.md-fullscreen-mode :is(.md-input, .md-preview) { background: var(--arg-editor-bg) !important; color: var(--arg-text); }
	[data-bs-theme="dark"] .md-editor.md-fullscreen-mode :is(.md-input, .md-preview):is(:focus, :hover) { background: var(--arg-editor-bg) !important; color: var(--arg-text); }
	[data-bs-theme="dark"] .md-editor.md-fullscreen-mode .md-header { background: transparent; }
	[data-bs-theme="dark"] .md-editor.md-fullscreen-mode :is(.btn, .md-fullscreen-controls a) { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .md-editor.md-fullscreen-mode :is(.btn, .md-fullscreen-controls a):is(:hover, :focus, .active, :active) { color: var(--arg-text); }
}

/* Lazy widget styles may load after this file; keep the theme selectors specific. */
@media screen {
	[data-bs-theme="dark"] .select2-container--default .select2-selection,
	[data-bs-theme="dark"] .select2-dropdown {
		color: var(--arg-text);
		background-color: var(--arg-surface-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .select2-container--default .select2-selection .select2-selection__rendered { color: var(--arg-text); }
	[data-bs-theme="dark"] .select2-container--default .select2-selection .select2-selection__placeholder { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .select2-container--default.select2-container--open .select2-selection__arrow b { border-top-color: transparent; border-bottom-color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .select2-container--default :is(.select2-search--dropdown, .select2-search--inline) .select2-search__field {
		color: var(--arg-text);
		background-color: var(--arg-page-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .select2-container--default .select2-search--inline .select2-search__field { background-color: transparent; }
	[data-bs-theme="dark"] .select2-container--default .select2-search__field::placeholder { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple .select2-selection__choice {
		background-color: var(--arg-surface-raised-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .select2-container--default .select2-selection :is(.select2-selection__choice__remove, .select2-selection__clear) { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .select2-container--default .select2-selection :is(.select2-selection__choice__remove, .select2-selection__clear):hover { color: var(--arg-text); }
	[data-bs-theme="dark"] .select2-container--default .select2-results__option[aria-selected="true"] { background-color: var(--arg-surface-raised-bg); }
	[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected] { color: var(--arg-text); background-color: var(--arg-selected-bg); }
	[data-bs-theme="dark"] .select2-container--default .select2-results__option[aria-disabled="true"] { color: var(--arg-text-muted); }
	[data-bs-theme="dark"] .select2-container--default.select2-container--disabled .select2-selection { background-color: var(--arg-readonly-bg); }
	[data-bs-theme="dark"] .select2-container--default.select2-container--disabled .select2-selection .select2-selection__rendered { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .select2-container--default:is(.select2-container--focus, .select2-container--open) .select2-selection {
		border-color: var(--arg-link);
		outline: 2px solid var(--arg-link);
		outline-offset: 1px;
	}
	[data-bs-theme="dark"] .select2-search__field:focus-visible { outline: 2px solid var(--arg-link); outline-offset: -2px; }

	/* jQuery UI supplies the shared surface and interaction states for all three pickers. */
	[data-bs-theme="dark"] .ui-widget-content {
		color: var(--arg-text);
		background: var(--arg-surface-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .ui-widget-header,
	[data-bs-theme="dark"] .ui-datepicker .ui-datepicker-header {
		color: var(--arg-text);
		background: var(--arg-surface-raised-bg);
		border-color: var(--arg-border);
	}
	[data-bs-theme="dark"] :is(.ui-widget-content, .ui-widget-header) a { color: var(--arg-text); }
	[data-bs-theme="dark"] :is(.ui-widget, .ui-datepicker) select {
		color: var(--arg-text);
		background: var(--arg-page-bg);
		border: 1px solid var(--arg-control-border);
	}
	[data-bs-theme="dark"] :is(.ui-button, .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default, .ui-datepicker td .ui-state-default) {
		color: var(--arg-text-secondary);
		background: var(--arg-surface-raised-bg);
		border-color: var(--arg-control-border);
		text-shadow: none;
		box-shadow: none;
	}
	[data-bs-theme="dark"] :is(.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight, .ui-datepicker-today a) {
		color: var(--arg-warning-text);
		background: var(--arg-warning-bg);
		border-color: var(--arg-warning-text);
		text-shadow: none;
	}
	[data-bs-theme="dark"] :is(.ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-hover, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-hover, .ui-widget-header .ui-state-focus, .ui-datepicker td .ui-state-hover) {
		color: var(--arg-text);
		background: var(--arg-table-active-bg);
		border-color: var(--arg-control-border);
		text-shadow: none;
	}
	[data-bs-theme="dark"] :is(.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active) {
		color: var(--arg-text) !important;
		background-color: var(--arg-selected-bg) !important;
		border-color: var(--arg-selected-bg);
		text-shadow: none;
	}
	[data-bs-theme="dark"] :is(.ui-widget, .ui-datepicker) :is(a, button, select):focus-visible,
	[data-bs-theme="dark"] .ui-slider-handle:focus-visible { outline: 2px solid var(--arg-link); outline-offset: 1px; }
	[data-bs-theme="dark"] .ui-datepicker th { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .ui-widget .ui-icon { filter: brightness(0) invert(1); }
	[data-bs-theme="dark"] .ui-slider { background: var(--arg-page-bg); }
	[data-bs-theme="dark"] .ui-slider .ui-slider-range { background: var(--arg-selected-bg); }
	[data-bs-theme="dark"] .month-picker-invalid-message { color: var(--arg-warning-text); background: var(--arg-warning-bg); }
	[data-bs-theme="dark"] .month-picker-disabled { background-color: var(--arg-readonly-bg); }

	[data-bs-theme="dark"] .suggestor-picker {
		color: var(--arg-text);
		background-color: var(--arg-surface-bg);
		border-color: var(--arg-control-border) !important;
	}
	[data-bs-theme="dark"] .suggestor-suggestion { color: var(--arg-text); background-color: var(--arg-surface-bg); }
	[data-bs-theme="dark"] .suggestor-suggestion-active { background-color: var(--arg-table-active-bg); }
	[data-bs-theme="dark"] .suggestor-picker-tooltip { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .suggestor-suggestion a > code { color: #f29bc5; }
	[data-bs-theme="dark"] .suggestor-suggestion a:focus-visible { outline: 2px solid var(--arg-link); outline-offset: -2px; }

	[data-bs-theme="dark"] .alertify .ajs-dialog { color: var(--arg-text); background-color: var(--arg-surface-bg); }
	[data-bs-theme="dark"] .alertify :is(.ajs-header, .ajs-footer) {
		color: var(--arg-text);
		background: var(--arg-surface-raised-bg);
		border-color: var(--arg-border);
	}
	[data-bs-theme="dark"] .alertify .ajs-body { color: var(--arg-text); }
	[data-bs-theme="dark"] .alertify .ajs-body .ajs-content .ajs-input {
		color: var(--arg-text);
		background-color: var(--arg-page-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .alertify .ajs-footer .ajs-buttons .ajs-button { color: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok { color: var(--arg-link-hover); }
	[data-bs-theme="dark"] .alertify .ajs-footer .ajs-buttons .ajs-button:hover { background-color: var(--arg-table-active-bg); }
	[data-bs-theme="dark"] .alertify :is(.ajs-button, .ajs-input, .ajs-commands button):focus-visible { outline: 2px solid var(--arg-link); outline-offset: 1px; }
	/* The application replaces Alertify's standard notification class to avoid cosmetic blockers. */
	[data-bs-theme="dark"] .alertify-notifier .arg-alertifyjs-message {
		color: var(--arg-text);
		background-color: var(--arg-surface-bg);
		border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .alertify-notifier .arg-alertifyjs-message.ajs-success { color: var(--arg-good-text); background-color: var(--arg-good-bg); border-color: var(--arg-good-text); }
	[data-bs-theme="dark"] .alertify-notifier .arg-alertifyjs-message.ajs-error { color: var(--arg-bad-text); background-color: var(--arg-bad-bg); border-color: var(--arg-bad-text); }
	[data-bs-theme="dark"] .alertify-notifier .arg-alertifyjs-message.ajs-warning { color: var(--arg-warning-text); background-color: var(--arg-warning-bg); border-color: var(--arg-warning-text); }
}

@media screen {
	/* Light utility surfaces occur in review forms, inventory, sidebars, and badges. */
	[data-bs-theme="dark"] :is(.bg-white, .bg-light, .text-bg-light) { background-color: var(--arg-surface-bg) !important; }
	[data-bs-theme="dark"] .text-bg-light,
	[data-bs-theme="dark"] .text-dark:not(.bg-warning) { color: var(--arg-text) !important; }
	[data-bs-theme="dark"] .text-secondary { color: var(--arg-text-secondary) !important; }
	[data-bs-theme="dark"] .border-dark { border-color: var(--arg-control-border) !important; }
	[data-bs-theme="dark"] .btn-light {
		--bs-btn-color: var(--arg-text);
		--bs-btn-bg: var(--arg-surface-raised-bg);
		--bs-btn-border-color: var(--arg-control-border);
		--bs-btn-hover-color: var(--arg-text);
		--bs-btn-hover-bg: var(--arg-table-active-bg);
		--bs-btn-hover-border-color: var(--arg-text-secondary);
		--bs-btn-active-color: var(--arg-text);
		--bs-btn-active-bg: var(--arg-table-active-bg);
		--bs-btn-active-border-color: var(--arg-text-secondary);
		--bs-btn-disabled-color: var(--arg-text-secondary);
		--bs-btn-disabled-bg: var(--arg-surface-raised-bg);
		--bs-btn-disabled-border-color: var(--arg-control-border);
	}
	[data-bs-theme="dark"] .employee-messaging-replies-container-add-reply { background-color: var(--arg-surface-raised-bg); border-color: var(--arg-border); }
	[data-bs-theme="dark"] .user-role-row:hover { background-color: var(--arg-surface-raised-bg); }
	[data-bs-theme="dark"] :is(.employee-review-stage-label-all-completed, .expense-tracking-group-stage-label-all-completed, .todo-ticket-progress-bar-badge-all-completed) { color: var(--arg-text); background-color: var(--arg-good-bg); border-color: var(--arg-good-text); }
	[data-bs-theme="dark"] .todo-ticket-progress-bar-badge { opacity: 1; }
	[data-bs-theme="dark"] .todo-ticket-progress-bar-badge-all-disengaged { color: var(--arg-text); background-color: var(--arg-bad-bg); }
	[data-bs-theme="dark"] .todo-ticket-progress-bar-badge-all-disengaged.current { border-color: var(--arg-bad-text); }
	[data-bs-theme="dark"] .safety-ticket-list-item:hover { background-color: var(--arg-surface-raised-bg); box-shadow: var(--arg-box-shadow); }
	[data-bs-theme="dark"] .safety-ticket-list-item.selected { background-color: var(--arg-good-bg); }
	[data-bs-theme="dark"] .label-awaiting-approval { color: var(--arg-warning-text); background-color: var(--arg-warning-bg); }
	[data-bs-theme="dark"] .ticket-status-pills .awaiting-approval-tickets .active:hover { color: var(--arg-warning-text); background-color: var(--arg-warning-bg); }
	[data-bs-theme="dark"] .arg-collapsible-menu-item-128 > .collapsible-icon-frame { border-color: var(--arg-border); }
	[data-bs-theme="dark"] .arg-collapsible-menu-item-128:hover > .collapsible-icon-frame,
	[data-bs-theme="dark"] .arg-collapsible-menu-button-128:hover > .arg-collapsible-menu-button-128-icon-container { background: var(--arg-surface-raised-bg); }
	[data-bs-theme="dark"] .tl-box { color: var(--arg-text); background-color: var(--arg-surface-bg); }
	[data-bs-theme="dark"] .tl-wrap::before { background: var(--arg-surface-bg); box-shadow: 0 0 0 4px var(--arg-page-bg); }
	[data-bs-theme="dark"] .tm-tag { color: var(--arg-text); background-color: var(--arg-surface-raised-bg); border-color: var(--arg-control-border); }
	[data-bs-theme="dark"] .tm-tag .tm-tag-remove { color: var(--arg-text-secondary); opacity: 1; }
	[data-bs-theme="dark"] .tm-tag .tm-tag-remove:hover { color: var(--arg-text); opacity: 1; }
	[data-bs-theme="dark"] .tm-tag.tm-tag-warning { color: var(--arg-warning-text); background-color: var(--arg-warning-bg); }
	[data-bs-theme="dark"] .tm-tag.tm-tag-error { color: var(--arg-bad-text); background-color: var(--arg-bad-bg); }
	[data-bs-theme="dark"] .tm-tag.tm-tag-success { color: var(--arg-good-text); background-color: var(--arg-good-bg); }
	[data-bs-theme="dark"] .tm-tag.tm-tag-info { color: var(--arg-info-text); background-color: var(--arg-info-bg); }
	[data-bs-theme="dark"] .tm-tag.tm-tag-inverse { color: var(--arg-text); background-color: var(--arg-surface-raised-bg); border-color: var(--arg-control-border); }
	[data-bs-theme="dark"] .tm-tag.tm-tag-disabled { color: var(--arg-text-secondary); background-color: var(--arg-readonly-bg); border-color: var(--arg-control-border); }
	[data-bs-theme="dark"] .tm-tag.tm-tag-plain { color: var(--arg-text-secondary); background: none; }
	[data-bs-theme="dark"] .xchart .axis text { fill: var(--arg-text-secondary); }
	[data-bs-theme="dark"] .xchart .axis .tick { stroke: var(--arg-chart-grid); }
	[data-bs-theme="dark"] .xchart circle { stroke: var(--arg-surface-bg); }
	[data-bs-theme="dark"] .xchart .color0 .line { stroke: var(--arg-link-hover); }
	[data-bs-theme="dark"] .xchart .color0 :is(rect, circle) { fill: var(--arg-link-hover); }
	[data-bs-theme="dark"] .xchart .color0 .fill { fill: rgba(var(--bs-link-hover-color-rgb), 0.1); }
}
