@media screen {
/* Light mode deliberately uses each component's original fallback colors.
 * Dark tokens are semantic (surface/text/border/status), never image filters.
 */
html[data-theme="dark"] {
    --intranet-page: #17171c;
    --intranet-surface: #212126;
    --intranet-surface-subtle: #29292f;
    --intranet-surface-hover: #33333c;
    --intranet-text: #f2f3f6;
    --intranet-text-secondary: #c3c5cd;
    --intranet-text-muted: #a1a4b0;
    --intranet-border: #3b3c44;
    --intranet-control-border: #6e717e;
    --intranet-primary-text: #91b9ff;
    --intranet-primary-soft: #28364c;
    --intranet-success-text: #85d7ad;
    --intranet-success-soft: #223930;
    --intranet-warning-text: #f3d087;
    --intranet-warning-soft: #3b3425;
    --intranet-danger-text: #ffadb5;
    --intranet-danger-soft: #402b31;
    --intranet-purple-text: #d5b5f5;
    --intranet-purple-soft: #342f43;
    --intranet-info-text: #8bd9eb;
    --intranet-info-soft: #263b41;
    --bs-body-bg: var(--intranet-page);
    --bs-body-color: var(--intranet-text);
    --bs-secondary-color: var(--intranet-text-secondary);
    --bs-tertiary-bg: var(--intranet-surface-subtle);
    --bs-secondary-bg: var(--intranet-surface-hover);
    --bs-border-color: var(--intranet-border);
    --bs-emphasis-color: var(--intranet-text);
    --bs-link-color: var(--intranet-primary-text);
    --bs-link-hover-color: #c5daff;
}
.intranet-theme-control { display: flex; flex-direction: column; gap: 8px; width: 236px; max-width: 100%; margin: 0; font-size: calc(12px * var(--intranet-font-scale, 1)); font-weight: 500; color: var(--intranet-text-secondary, #4B5563); white-space: nowrap; }
.intranet-theme-segments { display: flex; gap: 4px; padding: 4px; border-radius: 13px; background: var(--intranet-page, #F2F3F5); }
.intranet-theme-segments button { display: flex; flex: 1; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: 44px; margin: 0; padding: 8px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--intranet-text-muted, #6B7280); font: inherit; cursor: pointer; }
.intranet-theme-segments button:hover { color: var(--intranet-text, #1A1A1A); background: var(--intranet-surface-hover, #E9EBEF); }
.intranet-theme-segments button[aria-pressed="true"] { background: var(--intranet-surface-hover, #fff); color: var(--intranet-text, #1A1A1A); font-weight: 700; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.intranet-theme-segments button:focus-visible { outline: 2px solid var(--intranet-primary-text, #3B6FD6); outline-offset: 2px; }
.intranet-theme-segments svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.intranet-theme-standalone { display: flex; justify-content: flex-end; padding: 8px 16px; flex-shrink: 0; }
.intranet-theme-menu { padding: 8px 16px; }
/* Compact profile control: 36px visible track, 44px button hit areas. */
.main-header .intranet-theme-menu { padding: 4px 16px; }
.main-header .intranet-theme-menu .intranet-theme-control { flex-direction: row; align-items: center; gap: 12px; width: 236px; max-width: 100%; }
.main-header .intranet-theme-menu .intranet-theme-segments { position: relative; flex: 1; padding: 0 4px; background: transparent; }
.main-header .intranet-theme-menu .intranet-theme-segments::before { content: ""; position: absolute; inset: 4px 0; border-radius: 10px; background: var(--intranet-page, #F2F3F5); }
.main-header .intranet-theme-menu .intranet-theme-segments button { position: relative; min-height: 44px; padding: 0 6px; gap: 4px; border: 0; font-size: calc(12px * var(--intranet-font-scale, 1)); background: transparent; box-shadow: none; }
.main-header .intranet-theme-menu .intranet-theme-segments button::before { content: ""; position: absolute; inset: 6px 0; border-radius: 8px; }
.main-header .intranet-theme-menu .intranet-theme-segments button:hover::before { background: var(--intranet-surface-hover, #E9EBEF); }
.main-header .intranet-theme-menu .intranet-theme-segments button[aria-pressed="true"]::before { background: var(--intranet-surface-hover, #fff); box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.main-header .intranet-theme-menu .intranet-theme-segments button > * { position: relative; }
.main-header .intranet-theme-menu .intranet-theme-segments svg { width: 16px; height: 16px; }
.intranet-theme-mobile { padding: 10px 18px; }
.intranet-theme-document { color-scheme: light; background: #fff; color: #222; }
@media (max-width: 768px) { .main-header .intranet-theme-desktop { display: none; } .intranet-theme-standalone { padding: 6px 10px; } }
@media (min-width: 769px) { .intranet-theme-mobile { display: none; } }

/* Bootstrap 5.1 and 5.3 compatibility. Intentional saturated status badges retain their meaning. */
html[data-theme="dark"] body { background-color: var(--intranet-page); color: var(--intranet-text); }
html[data-theme="dark"] :is(.card, .modal-content, .dropdown-menu, .list-group-item, .popover, .offcanvas) { background-color: var(--intranet-surface); color: var(--intranet-text); border-color: var(--intranet-border); }
html[data-theme="dark"] :is(.card-header, .card-footer, .modal-header, .modal-footer, .popover-header) { background-color: var(--intranet-surface-subtle); color: var(--intranet-text); border-color: var(--intranet-border); }
html[data-theme="dark"] :is(.form-control, .form-select, .input-group-text, .page-link) { background-color: var(--intranet-surface); color: var(--intranet-text); border-color: var(--intranet-control-border); }
html[data-theme="dark"] :is(.form-control, .form-select):disabled,
html[data-theme="dark"] .form-control[readonly] { background-color: var(--intranet-surface-subtle); color: var(--intranet-text-muted); }
html[data-theme="dark"] :is(input, textarea)::placeholder { color: var(--intranet-text-muted); opacity: 1; }
html[data-theme="dark"] .form-check-input { background-color: var(--intranet-surface); border-color: var(--intranet-control-border); }
html[data-theme="dark"] .form-check-input:checked { background-color: #3b6fd6; border-color: #709cf4; }
/* Bootstrap's unchecked switch thumb is a dark SVG, independent of color.
 * Set the image directly for both Bootstrap 5.1 and 5.3, including focus/disabled.
 */
html[data-theme="dark"] .form-switch .form-check-input {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23f2f3f6'/%3e%3c/svg%3e");
}
html[data-theme="dark"] :is(.dropdown-item, .nav-link, .accordion-button) { color: var(--intranet-text); }
html[data-theme="dark"] :is(.dropdown-item:hover, .dropdown-item:focus, .page-link:hover, .accordion-button) { background-color: var(--intranet-surface-hover); }
html[data-theme="dark"] :is(.accordion-item, .accordion-body) { background-color: var(--intranet-surface); border-color: var(--intranet-border); }
html[data-theme="dark"] .table { --bs-table-bg: var(--intranet-surface); --bs-table-color: var(--intranet-text); --bs-table-striped-bg: var(--intranet-surface-subtle); --bs-table-striped-color: var(--intranet-text); --bs-table-hover-bg: var(--intranet-surface-hover); --bs-table-hover-color: var(--intranet-text); --bs-table-active-bg: var(--intranet-primary-soft); --bs-table-active-color: var(--intranet-text); color: var(--intranet-text); border-color: var(--intranet-border); }
html[data-theme="dark"] .table-light { --bs-table-bg: var(--intranet-surface-subtle); --bs-table-color: var(--intranet-text); }
html[data-theme="dark"] :is(.bg-white, .bg-light) { background-color: var(--intranet-surface) !important; }
html[data-theme="dark"] :is(.text-dark, .text-body) { color: var(--intranet-text) !important; }
html[data-theme="dark"] :is(.text-muted, .text-secondary, .form-text, .breadcrumb-item.active) { color: var(--intranet-text-muted) !important; }
html[data-theme="dark"] :is(.bg-warning, .bg-info, .btn-warning).text-dark { color: #16202e !important; }
html[data-theme="dark"] .text-primary { color: var(--intranet-primary-text) !important; }
html[data-theme="dark"] .text-success { color: var(--intranet-success-text) !important; }
html[data-theme="dark"] .text-danger { color: var(--intranet-danger-text) !important; }
html[data-theme="dark"] .text-warning { color: var(--intranet-warning-text) !important; }
html[data-theme="dark"] .btn-light { color: var(--intranet-text); background-color: var(--intranet-surface-hover); border-color: var(--intranet-border); }
html[data-theme="dark"] .btn-outline-dark { color: var(--intranet-text); border-color: var(--intranet-border); }
html[data-theme="dark"] .btn-outline-success { color: var(--intranet-success-text); border-color: var(--intranet-success-text); }
html[data-theme="dark"] .btn-outline-danger { color: var(--intranet-danger-text); border-color: var(--intranet-danger-text); }
html[data-theme="dark"] .btn-outline-warning { color: var(--intranet-warning-text); border-color: var(--intranet-warning-text); }
html[data-theme="dark"] .btn-outline-info { color: var(--intranet-info-text); border-color: var(--intranet-info-text); }
html[data-theme="dark"] .alert-info { --bs-alert-bg: var(--intranet-info-soft); --bs-alert-color: var(--intranet-info-text); --bs-alert-border-color: var(--intranet-border); }
html[data-theme="dark"] .alert-success { --bs-alert-bg: var(--intranet-success-soft); --bs-alert-color: var(--intranet-success-text); --bs-alert-border-color: var(--intranet-border); }
html[data-theme="dark"] .alert-warning { --bs-alert-bg: var(--intranet-warning-soft); --bs-alert-color: var(--intranet-warning-text); --bs-alert-border-color: var(--intranet-border); }
html[data-theme="dark"] .alert-danger { --bs-alert-bg: var(--intranet-danger-soft); --bs-alert-color: var(--intranet-danger-text); --bs-alert-border-color: var(--intranet-border); }
html[data-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
/* Only the existing transparent hospital wordmarks get a monochrome treatment.
 * Preserve the original image files, silhouette, alpha, and light/print appearance.
 */
html[data-theme="dark"] :is(.logo-img, .logo img, .mobile-logo img) { background: transparent; filter: brightness(0) invert(.94); }

/* Shared navigation follows the neutral page surface. */
html[data-theme="dark"] .main-header { background-color: var(--intranet-page); border-bottom-color: var(--intranet-surface-subtle); }

/* Select2 renders its dropdown under body, outside the original field/modal. */
html[data-theme="dark"] :is(.select2-selection, .select2-dropdown, .select2-search__field) { background-color: var(--intranet-surface) !important; color: var(--intranet-text) !important; border-color: var(--intranet-border) !important; }
html[data-theme="dark"] :is(.select2-selection__rendered, .select2-results__option) { color: var(--intranet-text) !important; }
html[data-theme="dark"] :is(.select2-results__option--highlighted, .select2-results__option--selected) { background-color: var(--intranet-primary-soft) !important; }
html[data-theme="dark"] :is(.swal2-popup, .swal2-input, .swal2-textarea, .flatpickr-calendar) { background: var(--intranet-surface); color: var(--intranet-text); }
html[data-theme="dark"] :is(.flatpickr-day, .flatpickr-weekday, .flatpickr-current-month, .flatpickr-month) { color: var(--intranet-text); }
html[data-theme="dark"] :is(.note-toolbar, .note-statusbar, .note-popover .popover-content) { background: var(--intranet-surface-subtle); border-color: var(--intranet-border); }
/* Rich text is a document surface. Do not rewrite authors' stored HTML colors. */
html[data-theme] :is(.note-editable, .intranet-theme-document) { color-scheme: light; background-color: #fff; color: #222; }

/* Document descendants use their original fallbacks, including tables. */
html[data-theme] :is(.note-editable, .intranet-theme-document) {
    --intranet-border: initial;
    --intranet-control-border: initial;
    --intranet-danger-soft: initial;
    --intranet-danger-text: initial;
    --intranet-info-soft: initial;
    --intranet-info-text: initial;
    --intranet-page: initial;
    --intranet-primary-soft: initial;
    --intranet-primary-text: initial;
    --intranet-purple-soft: initial;
    --intranet-purple-text: initial;
    --intranet-success-soft: initial;
    --intranet-success-text: initial;
    --intranet-surface: initial;
    --intranet-surface-hover: initial;
    --intranet-surface-subtle: initial;
    --intranet-text: initial;
    --intranet-text-muted: initial;
    --intranet-text-secondary: initial;
    --intranet-warning-soft: initial;
    --intranet-warning-text: initial;
}

}

@media print {
    .intranet-theme-control, .intranet-theme-standalone, .intranet-theme-mobile { display: none !important; }
    html[data-theme] { color-scheme: light !important; --bs-body-bg: #fff; --bs-body-color: #111; --bs-emphasis-color: #111; --bs-secondary-color: #444; --bs-border-color: #ccc; --bs-tertiary-bg: #f8f9fa; --bs-secondary-bg: #eee; }
    html[data-theme] .table { --bs-table-bg: #fff; --bs-table-color: #111; --bs-table-striped-bg: #f8f9fa; --bs-table-striped-color: #111; color: #111; }
    html[data-theme] body { background: #fff !important; color: #111 !important; }
}
