/* Per-window color themes. Loaded last so it can beat OS skins (#os.theme-*)
   and hardcoded app hex. Token values come from js/platform/app-color-theme.js. */

#os .window[data-app-color-theme],
body .window[data-app-color-theme] {
  color: var(--ink) !important;
  background: var(--win-bg) !important;
  border-color: var(--win-border) !important;
  scrollbar-color: var(--faint) var(--surface-2);
}

#os .window[data-app-color-theme].focused,
body .window[data-app-color-theme].focused {
  border-color: var(--win-border-focus) !important;
}

#os .window[data-app-color-theme] .window-titlebar,
body .window[data-app-color-theme] .window-titlebar {
  background: var(--titlebar-bg) !important;
  border-bottom-color: var(--win-border) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] .window-title-label,
#os .window[data-app-color-theme] .window-title-text,
body .window[data-app-color-theme] .window-title-label,
body .window[data-app-color-theme] .window-title-text {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] .win-btn,
body .window[data-app-color-theme] .win-btn {
  color: var(--ink) !important;
}

#os:not(.theme-macos) .window[data-app-color-theme] .win-btn:hover:not(.close),
body:not(.theme-macos) .window[data-app-color-theme] .win-btn:hover:not(.close) {
  background: var(--win-hover-bg) !important;
}

#os .window[data-app-color-tone="dark"] .win-theme-trigger,
body .window[data-app-color-tone="dark"] .win-theme-trigger,
#os .window[data-app-color-tone="dark"] .win-theme-dot,
body .window[data-app-color-tone="dark"] .win-theme-dot {
  border-color: rgba(255, 255, 255, 0.42);
}

#os .window[data-app-color-tone="light"] .win-theme-trigger,
body .window[data-app-color-tone="light"] .win-theme-trigger,
#os .window[data-app-color-tone="light"] .win-theme-dot,
body .window[data-app-color-tone="light"] .win-theme-dot {
  border-color: rgba(0, 0, 0, 0.28);
}

#os .window[data-app-color-theme] .win-theme-trigger[aria-expanded="true"],
body .window[data-app-color-theme] .win-theme-trigger[aria-expanded="true"] {
  box-shadow:
    0 0 0 1.5px var(--titlebar-bg),
    0 0 0 2.5px var(--ink);
}

[data-app-color-theme].win-theme-panel {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--win-border) !important;
}

[data-app-color-theme].win-theme-panel .win-theme-option {
  color: var(--ink) !important;
}

[data-app-color-theme].win-theme-panel .win-theme-option:hover {
  background: var(--win-hover-bg, var(--hover)) !important;
}

[data-app-color-theme].win-theme-panel .win-theme-option.is-on {
  background: var(--accent-soft) !important;
}

[data-app-color-theme].win-theme-panel .win-theme-dot.is-on {
  box-shadow:
    0 0 0 1.5px var(--surface),
    0 0 0 2.5px var(--ink);
}

#os .window[data-app-color-theme] .window-body,
body .window[data-app-color-theme] .window-body {
  background: var(--win-body-bg) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] .project-context-bar,
body .window[data-app-color-theme] .project-context-bar {
  background: color-mix(in srgb, var(--titlebar-bg) 88%, var(--win-body-bg)) !important;
  border-bottom-color: var(--win-border) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] .project-context-sep {
  background: var(--win-border) !important;
}

#os .window[data-app-color-theme] :is(
  .work-status-select,
  .project-context-new-name-input,
  .searchable-picker-trigger,
  .ctx-tree-trigger
) {
  background: var(--win-body-bg) !important;
  color: var(--ink) !important;
  border-color: var(--win-border) !important;
}

#os .window[data-app-color-theme] :is(.app, .app-content, .app-frame) {
  color: var(--ink) !important;
  background: var(--win-body-bg) !important;
}

#os .window[data-app-color-theme] :is(.app-toolbar, .app-statusbar) {
  background: var(--app-bar) !important;
  color: var(--ink) !important;
  border-color: var(--app-line) !important;
}

#os .window[data-app-color-theme] :is(.btn, .field, .st-tbtn, .st-btn, .st-project, .st-input) {
  background: var(--app-btn) !important;
  color: var(--ink) !important;
  border-color: var(--app-line) !important;
}

#os .window[data-app-color-theme] :is(.btn, .st-tbtn, .st-btn):hover {
  background: var(--app-btn-hover) !important;
}

#os .window[data-app-color-theme] :is(.btn.primary, .st-tbtn.primary, button.primary, .st-btn.primary) {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme] :is(.btn.success, .st-tbtn.success, button.success, .st-btn.success) {
  background: var(--success, #16a34a) !important;
  color: var(--on-primary, #fff) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme] :is(.btn.success, .st-tbtn.success, button.success, .st-btn.success):hover {
  background: var(--success-strong, #15803d) !important;
  color: var(--on-primary, #fff) !important;
}

#os .window[data-app-color-theme] .window-body input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
#os .window[data-app-color-theme] .window-body select,
#os .window[data-app-color-theme] .window-body textarea {
  background: var(--app-input) !important;
  color: var(--ink) !important;
  border-color: var(--input-border, var(--app-line)) !important;
  color-scheme: inherit;
}

#os .window[data-app-color-theme] .window-body :is(input, textarea)::placeholder {
  color: var(--ink-soft) !important;
  opacity: 0.9;
}

/* App shells that still hardcode hex backgrounds. */
#os .window[data-app-color-theme] :is(
  .studio,
  .graph-studio-app,
  .graph-studio-root,
  .plasmid-studio-root,
  .ps-app,
  .eln-studio-root,
  .pkpd-studio-root,
  .pkpd-app,
  .method-validation-root,
  .mvs-app,
  .omics-studio-app,
  .omics-app,
  .olink-app,
  .compound-studio-app,
  .pathology-studio-app,
  .path-root,
  .molecular-design-root,
  .mds-app,
  .design-studio-root,
  .tox-studio-root,
  .pcr-studio-app,
  .pss-root,
  .instrument-booking-root,
  .ib-app,
  .inventory-root,
  .inv-app,
  .pdf-studio-root,
  .pdf-studio,
  .kgs-app,
  .molbio-app,
  .tika-root,
  .microsoft-cloud-root,
  .org-platform-app,
  .partner-portal-app,
  .partner-root,
  .dashboard-app,
  .profile-app,
  .admin-app,
  .smart-upload-root,
  .pm-app,
  .excel-app,
  .word-app,
  .office-app,
  .ppt-studio,
  .fe-explorer-root,
  .clib,
  .workflow-builder,
  .qms-lite-root,
  .lims-studio-root,
  .imaging-studio-root,
  .seahorse-studio-root,
  .spatial-studio-root,
  .ms-studio-root,
  .protein-studio-root,
  .wh-browser,
  .ss-app,
  .hs-office-root,
  .report-studio,
  .files-app,
  .calc-app,
  .notepad-app,
  .terminal-app,
  .cfm-root,
  .bsx-app,
  .dev-notes-app
) {
  background: var(--bg) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] :is(
  .st-toolbar,
  .st-sidebar,
  .st-inspector,
  .st-ai,
  .graph-studio-menubar,
  .graph-studio-nav,
  .ib-header,
  .ib-top-nav,
  .files-sidebar,
  .files-path,
  .files-toolbar,
  .studio-ai-panel,
  .studio-ai-head,
  .office-ribbon,
  .office-rb,
  .office-rb-tabs,
  .excel-ribbon,
  .excel-formula-bar,
  .clib-header,
  .clib-toolbar,
  .clib-side,
  .clib-inspect,
  .ss-titlebar,
  .hs-editor-topline,
  .hs-toolstrip,
  .hs-leftbar-shell,
  .hs-preview-toolbar,
  .wh-tabstrip,
  .graph-studio-statusbar
) {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] :is(
  .st-card,
  .st-workspace,
  .st-table-wrap,
  .studio-ai-panel,
  .cs-panel,
  .cs-card,
  .ad-dialog-card,
  .ad-cmenu
) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .office-titlebar {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme] .office-tbtn {
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme] .excel-formula-input {
  color: var(--ink) !important;
  background: var(--control-bg) !important;
}

#os .window[data-app-color-theme] .excel-grid-scroll {
  background: var(--surface) !important;
}

#os .window[data-app-color-theme] .window-body :is(
  [class*="toolbar"],
  [class*="menubar"],
  [class*="sidebar"],
  [class*="inspector"],
  [class*="statusbar"],
  [class*="navigator"],
  [class*="commandbar"]
):not(.modebar):not([class*="plotly"]) {
  background-color: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .window-body :is(
  [class*="modal"],
  [class*="dialog"],
  [class*="popover"],
  [class*="dropdown"],
  [class*="menu-drop"],
  [class*="context-menu"]
):not([class*="plotly"]):not(.gsd-px *):not(.pcr3 *):not(.ijs *):not(.mss *):not(.pth *) {
  background-color: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/* Portaled project tree, pickers, menus, dialogs. */
[data-app-color-theme].ctx-tree-panel,
[data-app-color-theme] .ctx-tree-panel,
[data-app-color-theme].ctx-tree-pop,
[data-app-color-theme] .ctx-tree-pop,
[data-app-color-theme].searchable-picker-panel,
[data-app-color-theme].ctx-menu,
[data-app-color-theme].work-status-date-panel,
[data-app-color-theme].platform-dialog,
[data-app-color-theme] .platform-dialog,
[data-app-color-theme].org-modal-backdrop,
[data-app-color-theme] .org-modal,
[data-app-color-theme].session-action-overlay,
[data-app-color-theme].save-draft-overlay,
[data-app-color-theme].wi-history-overlay,
[data-app-color-theme].ad-cmenu,
[data-app-color-theme].ad-dialog-card,
[data-app-color-theme].graph-studio-cmenu,
[data-app-color-theme].graph-studio-nav-cmenu,
[data-app-color-theme].hs-ctx-menu,
[data-app-color-theme].hs-exact-dd-menu {
  color: var(--ink) !important;
  border-color: var(--win-border) !important;
  color-scheme: inherit;
}

[data-app-color-theme].ctx-tree-panel,
[data-app-color-theme] .ctx-tree-panel,
[data-app-color-theme].ctx-tree-pop,
[data-app-color-theme] .ctx-tree-pop,
[data-app-color-theme].searchable-picker-panel,
[data-app-color-theme].work-status-date-panel,
[data-app-color-theme].platform-dialog,
[data-app-color-theme] .platform-dialog,
[data-app-color-theme].org-modal-backdrop,
[data-app-color-theme] .org-modal,
[data-app-color-theme].ad-cmenu,
[data-app-color-theme].ad-dialog-card,
[data-app-color-theme].graph-studio-cmenu,
[data-app-color-theme].graph-studio-nav-cmenu,
[data-app-color-theme].hs-ctx-menu,
[data-app-color-theme].hs-exact-dd-menu {
  background: var(--surface) !important;
  background-image: none !important;
}

[data-app-color-theme].ctx-menu {
  background: var(--surface) !important;
  color: var(--ink) !important;
}

[data-app-color-theme].ctx-menu .ctx-item {
  color: var(--ink) !important;
}

[data-app-color-theme] .ctx-tree-row,
[data-app-color-theme] .searchable-picker-option,
[data-app-color-theme] .ctx-tree-trigger-label,
[data-app-color-theme] .ctx-tree-section {
  color: var(--ink) !important;
}

[data-app-color-theme].ctx-menu .ctx-item:hover:not([disabled]),
[data-app-color-theme] .ctx-tree-row:hover,
[data-app-color-theme] .searchable-picker-option:hover,
[data-app-color-theme] .searchable-picker-option.is-active {
  background: var(--ctx-hover, var(--menu-hover)) !important;
}

[data-app-color-theme].searchable-picker-panel .searchable-picker-search,
[data-app-color-theme].ctx-tree-panel input,
[data-app-color-theme].ctx-tree-panel textarea,
[data-app-color-theme].ctx-tree-pop input,
[data-app-color-theme].ctx-tree-pop textarea,
[data-app-color-theme].work-status-date-panel input,
[data-app-color-theme].platform-dialog input,
[data-app-color-theme].platform-dialog textarea,
[data-app-color-theme].platform-dialog select,
[data-app-color-theme] .platform-dialog input,
[data-app-color-theme] .platform-dialog textarea,
[data-app-color-theme] .platform-dialog select,
[data-app-color-theme].org-modal-backdrop input,
[data-app-color-theme].org-modal-backdrop textarea,
[data-app-color-theme].org-modal-backdrop select {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

[data-app-color-theme] :is(.btn.primary, button.primary) {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: transparent !important;
}

[data-app-color-theme] :is(.btn.success, button.success) {
  background: var(--success, #16a34a) !important;
  color: var(--on-primary, #fff) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme] :is(
  .st-nav-item.active,
  .files-side-item.active,
  .theme-card.active,
  .ad-tab.active,
  .office-rb-tab.active,
  .ib-nav.active
) {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
}

#os .window[data-app-color-theme] .office-rb,
#os .window[data-app-color-theme] .office-rb-tabs {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .office-rb-tabs {
  background: var(--surface-2) !important;
}

#os .window[data-app-color-theme] .office-rb-tab:not(.active) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] :is(.ib-btn, .ib-btn.secondary, .ib-search, .ib-filter, .ib-controls, .ib-panel, .ib-calendar, .ib-instrument-card, .ib-booking-row, .ib-resource, .ib-stats > div) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .ib-btn.primary,
#os .window[data-app-color-theme] .studio-ai-send {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme] .ib-main,
#os .window[data-app-color-theme] .ib-page-title h1,
#os .window[data-app-color-theme] .ib-brand strong {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] .ib-brand span,
#os .window[data-app-color-theme] .ib-nav:not(.active) {
  color: var(--ink-soft) !important;
}

#os .window[data-app-color-theme] :is(.pss-card, .pss-note, .pss-stat, .pss-health) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .pss-root :is(button, input, select, textarea) {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme] .pss-root button.primary {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme] :is(
  .files-home-card,
  .files-preview,
  .theme-card,
  .calc-display,
  .calc-key,
  .seq-input,
  .seq-stat,
  .clib-card,
  .clib-preview,
  .clib-clip-card,
  .ad-formpane,
  .ad-row,
  .ad-schem-card,
  .ad-protocol,
  .ad-insp-card,
  .ad-review-card
) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .window-body :is(
  [class$="-card"],
  [class$="-panel"],
  [class$="-pane"],
  [class$="-modal"]
):not(.excel-cell):not(.js-plotly-plot):not([class*="plotly"]):not(.hs-preview-frame):not(.file-viewer-frame):not(.hs-page):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-page-sheet):not(.word-doc-frame) {
  background-color: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] :is(.hs-doc-action, .hs-action-menu-btn, .hs-mode-seg, .hs-ep-toggle, .hs-leftbar-tabs, .hs-fmt-panel, .hs-fmt-seg) {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] .hs-mode-btn.on,
#os .window[data-app-color-theme] .hs-fmt-seg-btn.on {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
}

/* Desktop .dark skins must not paint a light app khaki/white/mist. */
#os.dark .window[data-app-color-tone="light"] .window-titlebar,
#os.dark .window[data-app-color-tone="light"] .window-body,
#os.theme-macos.dark .window[data-app-color-tone="light"] .window-titlebar,
#os.theme-macos.dark .window[data-app-color-tone="light"] .window-body {
  color-scheme: light !important;
}

#os.dark .window[data-app-color-tone="light"] :is(
  .hs-leftbar-shell,
  .hs-editor-topline,
  .hs-toolstrip,
  .hs-action-menu-btn,
  .hs-leftbar-acc,
  .hs-leftbar-tab.on,
  .hs-fmt-panel,
  .hs-fmt-title,
  .hs-preview-toolbar,
  .hs-exact-dd-btn,
  .hs-exact-dd-menu,
  .hs-ctx-menu,
  .hs-mode-seg,
  .hs-ep-toggle,
  .hs-leftbar-tabs,
  .hs-doc-actions,
  .hs-toolgroup,
  .hs-fmt-seg,
  .hs-page-thumb,
  .instrument-booking-root,
  .ib-app,
  .ib-header,
  .ib-controls,
  .ib-calendar,
  .ib-instrument-card,
  .ib-booking-row,
  .ib-panel,
  .ib-resource,
  .files-sidebar,
  .files-path,
  .files-preview,
  .files-home-card,
  .calc-display,
  .calc-key,
  .seq-input,
  .seq-stat,
  .theme-card,
  .ad-formpane,
  .ad-row,
  .ad-dialog-card,
  .ad-cmenu,
  .wh-browser,
  .wh-tabstrip,
  .clib
) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os.dark .window[data-app-color-tone="light"] :is(.ib-header, .hs-leftbar-shell, .hs-editor-topline, .files-sidebar, .wh-tabstrip, .clib-header, .clib-toolbar) {
  background: var(--surface-2) !important;
}

#os.dark .window[data-app-color-tone="light"] :is(
  .ib-page-title h1,
  .ib-instrument-card h3,
  .ib-resource strong,
  .ib-section-title,
  .ib-booking-info h3,
  .hs-office-root,
  .hs-office-root .studio
) {
  color: var(--ink) !important;
}

/* App menus follow the window palette instead of a forced white sheet. */
html body .ctx-menu[role="menu"][data-app-color-theme] {
  --menu-bg: var(--surface) !important;
  --menu-border: var(--win-border) !important;
  --menu-hover: var(--win-hover-bg, var(--hover)) !important;
  --ink: var(--text) !important;
  --ink-soft: var(--muted) !important;
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--text) !important;
  border-color: var(--win-border) !important;
  color-scheme: inherit;
}
html body .ctx-menu[role="menu"][data-app-color-theme] * {
  --ink: var(--text) !important;
  --ink-soft: var(--muted) !important;
}
html body .ctx-menu[role="menu"][data-app-color-theme] .ctx-item {
  color: var(--text) !important;
}
html body .ctx-menu[role="menu"][data-app-color-theme] .ctx-item:hover:not([disabled]) {
  background: var(--menu-hover) !important;
}
html body .ctx-menu[role="menu"][data-app-color-theme][data-app-color-tone="dark"] {
  color-scheme: dark;
}

/* Studio assistant chrome (hardcoded white in studio-assistant.css). */
#os .window[data-app-color-theme] :is(
  .studio-ai-panel,
  .studio-ai-head,
  .studio-ai-actions,
  .studio-ai-actions button,
  .studio-ai-input,
  .studio-ai-prompt,
  .studio-ai-cancel,
  .studio-ai-verb,
  .studio-ai-composer-box,
  .studio-ai-more
) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}
#os .window[data-app-color-theme] .studio-ai-log {
  background: transparent !important;
  color: var(--ink) !important;
}
#os .window[data-app-color-theme] .studio-ai-msg.user {
  background: color-mix(in srgb, var(--accent) 12%, var(--surface)) !important;
  color: var(--ink) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .studio-ai-msg.ai {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .studio-ai-composer-box .studio-ai-prompt {
  background: transparent !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .studio-ai-disclaimer {
  background: var(--warning-soft) !important;
  color: var(--warning) !important;
}
#os .window[data-app-color-theme] .studio-ai-send,
#os .window[data-app-color-theme] .studio-ai-apply {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
}
#os .window[data-app-color-theme] .bs-aiwin-head {
  background: var(--accent) !important;
  color: var(--on-primary) !important;
}
#os .window[data-app-color-theme] .studio-ai-composer-box:focus-within {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line)) !important;
}

/*
  Remaining UI chrome that still hardcodes #fff / near-black.
  Rich document paper and editable spreadsheet cells stay excluded; scientific
  canvases and plots are normalized by the final visualization layer below.
*/
#os .window[data-app-color-theme] .window-body :is(
  [class*="-shell"]:not(.hs-leftbar-shell),
  [class*="-modal"],
  [class*="-popover"],
  [class*="-dropdown"],
  [class*="cmenu"],
  [class$="-empty"]:not(.qms-lite-fnsearch-empty):not(.qms-lite-fnsearch-pop):not(.ivs-fnsearch-empty):not(.ivs-fnsearch-pop):not(.rs-fnsearch-empty):not(.rs-fnsearch-pop):not(.hs-fnsearch-empty):not(.hs-fnsearch-pop):not(.sp-gs-fnsearch-empty):not(.sp-gs-fnsearch-pop):not(.word-fnsearch-empty):not(.word-fnsearch-pop):not(.xl-fnsearch-empty):not(.xl-fnsearch-pop):not(.ppt-fnsearch-empty):not(.ppt-fnsearch-pop):not(.inv-fnsearch-empty):not(.inv-fnsearch-pop):not(.ps-fnsearch-skin):not(.ps-fnsearch-blank):not(.eh-fnsearch-empty):not(.eh-fnsearch-pop):not(.wh-fnsearch-empty):not(.wh-fnsearch-pop):not(.pdf-fnsearch-empty):not(.pdf-fnsearch-pop):not(.bind-fnsearch-empty):not(.bind-fnsearch-pop):not(.ib-fnsearch-empty):not(.ib-fnsearch-pop):not(.ifc-fnsearch-empty):not(.ifc-fnsearch-pop):not(.auto-fnsearch-empty):not(.auto-fnsearch-pop):not(.auto-fnsearch-blank):not(.ms-fnsearch-empty):not(.ms-fnsearch-pop):not(.clib-fnsearch-empty):not(.clib-fnsearch-pop),
  [class$="-tile"],
  [class$="-stat"],
  [class$="-note"],
  [class*="-preview"]:not(.hs-preview-frame):not(.file-viewer-frame):not(.rs-thumb-canvas),
  [class*="formpane"],
  [class*="-calendar"],
  [class*="-controls"]
):not(.js-plotly-plot):not([class*="plotly"]):not(.excel-cell):not(.hs-page):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-page-sheet):not(.word-doc-frame):not(.rs-thumb):not(.rs-page):not(.ps-page):not(.ps-page *):not(.gsd-px *):not(.pcr3 *):not(.ijs *):not(.mss *):not(.pth *) {
  background-color: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] :is(
  .ad-tab.active,
  .ad-mode-btn.active,
  .office-rb-tab.active,
  .files-home-card:hover
) {
  background: var(--surface) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] :is(.ad-tab.active, .office-rb-tab.active) {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
}

/* Dark OS skins must not paint a light app; light OS must not paint a dark app. */
#os.dark .window[data-app-color-tone="light"] .window-body :is(
  [class$="-card"],
  [class$="-panel"],
  [class$="-pane"],
  [class$="-modal"],
  [class*="toolbar"],
  [class*="sidebar"],
  [class*="statusbar"],
  [class*="menubar"]
):not(.js-plotly-plot):not([class*="plotly"]):not(.excel-cell):not(.hs-page):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-doc-frame):not(.gsd-px *):not(.pcr3 *):not(.ijs *):not(.mss *):not(.pth *) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/*
  Settings-style apps (Admin, Profile, Dashboard, Partner) and other
  chrome that paints white gradients / mix-with-white fills. Kill the
  image layer so a dark theme cannot keep a light card.
*/
#os .window[data-app-color-theme] :is(
  .dashboard-hero,
  .profile-hero,
  .admin-hero,
  .dashboard-section,
  .profile-section,
  .admin-section,
  .dash-metric,
  .admin-stat,
  .admin-bulkbar,
  .admin-access-target,
  .admin-app-tile,
  .admin-infra-card,
  .admin-infra-tile
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme] :is(
  .dashboard-hero-kicker,
  .profile-hero-kicker,
  .admin-hero-kicker
) {
  color: var(--accent) !important;
}

#os .window[data-app-color-theme] :is(
  .dashboard-hero h2,
  .profile-hero h2,
  .admin-hero h2,
  .dashboard-section h3,
  .profile-section h3,
  .admin-section h3
) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme] :is(
  .dashboard-hero p,
  .profile-hero p,
  .admin-hero p
) {
  color: var(--ink-soft) !important;
}

#os .window[data-app-color-theme] :is(
  .admin-main-tab.active,
  .profile-main-tab.active,
  .dashboard-files-tab.active
) {
  background: color-mix(in srgb, var(--tab-accent, var(--accent)) 22%, var(--surface)) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--tab-accent, var(--accent)) 40%, var(--line)) !important;
}

#os .window[data-app-color-theme] :is(
  .admin-main-tab:not(.active),
  .profile-main-tab:not(.active),
  .dashboard-files-tab:not(.active)
) {
  color: var(--ink-soft) !important;
  background: transparent !important;
}

#os .window[data-app-color-theme] :is(.admin-app, .profile-app, .dashboard-app, .partner-portal-app) .btn:not(.primary):not(.success):not(.danger) {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme] :is(.admin-app, .profile-app, .dashboard-app, .partner-portal-app) .btn.primary {
  background: var(--primary) !important;
  background-image: none !important;
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme] :is(.admin-app, .profile-app, .dashboard-app, .partner-portal-app) .btn.success {
  background: var(--success, #16a34a) !important;
  background-image: none !important;
  color: var(--on-primary, #fff) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme] :is(.dash-metric, .admin-stat) {
  background: color-mix(in srgb, var(--section-accent, var(--accent)) 14%, var(--surface)) !important;
  background-image: none !important;
}

#os .window[data-app-color-theme] .admin-app-tile.selected {
  background: color-mix(in srgb, var(--accent) 16%, var(--surface)) !important;
}

#os .window[data-app-color-theme] .window-body :is(
  [class*="-hero"],
  [class*="-section"]:not(.excel-section)
):not(.js-plotly-plot):not([class*="plotly"]):not(.excel-cell):not(.hs-page):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-doc-frame) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/* Keep macOS traffic lights, even inside a themed window. */
#os.theme-macos .window[data-app-color-theme] .win-btn.close { background: #ff5f57 !important; }
#os.theme-macos .window[data-app-color-theme] .win-btn.min { background: #febc2e !important; }
#os.theme-macos .window[data-app-color-theme] .win-btn.max { background: #28c840 !important; }
#os.theme-macos .window:not(.focused)[data-app-color-theme] .win-btn.close,
#os.theme-macos .window:not(.focused)[data-app-color-theme] .win-btn.min,
#os.theme-macos .window:not(.focused)[data-app-color-theme] .win-btn.max {
  background: #d6d6d8 !important;
}
#os.theme-macos.dark .window:not(.focused)[data-app-color-theme] .win-btn.close,
#os.theme-macos.dark .window:not(.focused)[data-app-color-theme] .win-btn.min,
#os.theme-macos.dark .window:not(.focused)[data-app-color-theme] .win-btn.max {
  background: #54545a !important;
}

/* Imaging Studio function search — do not skin the ribbon combobox as a form field. */
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch .imaging-studio-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch .imaging-studio-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch.open .imaging-studio-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-field.on .imaging-studio-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-field:focus-within .imaging-studio-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-head,
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-list,
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-empty {
  background-color: transparent;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-pop {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .imaging-studio-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}

/* LIMS Studio function search — do not skin the ribbon combobox as a form field. */
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch .lims-gs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch .lims-gs-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch.open .lims-gs-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-field.on .lims-gs-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-field:focus-within .lims-gs-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-head,
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-list,
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-empty {
  background-color: transparent;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-pop {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .lims-gs-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}

/* File Explorer function search — keep the combobox distinct from folder search.
   `.fe-explorer-root` is the window-body itself, so both same-node and descendant selectors. */
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-toolbar-main,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-toolbar-main,
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-toolbar-trailing,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-toolbar-trailing {
  background: transparent !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root input.fe-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
#os .window[data-app-color-theme] .window-body .fe-explorer-root input.fe-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body.fe-explorer-root input.fe-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-input::placeholder {
  color: var(--fe-ink-soft, var(--ink-soft)) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-head,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-head,
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-list,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-list,
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-empty,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-empty,
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-empty-ic,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-empty-ic {
  background-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-pop {
  background-color: var(--fn-pop-bg, var(--fe-elevated, #fff)) !important;
  color: var(--fn-pop-ink, var(--fe-ink)) !important;
  border-color: var(--fn-pop-line, var(--fe-line-strong)) !important;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-item,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, var(--fe-ink)) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-item:hover,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, var(--fe-accent)) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, var(--fe-accent)) 18%, transparent) !important;
  color: var(--fn-pop-ink, var(--fe-ink)) !important;
}
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-item:hover.is-active,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, var(--fe-accent)) !important;
  border-color: var(--fn-pop-accent, var(--fe-accent)) !important;
  color: #fff !important;
}

/* Tox Studio function search — do not skin the ribbon combobox as a form field. */
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch .tox-gs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch .tox-gs-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch.open .tox-gs-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-field.on .tox-gs-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-field:focus-within .tox-gs-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-head,
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-list,
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-empty {
  background-color: transparent;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-pop {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .tox-gs-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}

/* Design Studio function search — mount is window-body.design-studio-root (same node). */
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch input.ds-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch input.ds-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch.open input.ds-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-field.on input.ds-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-field:focus-within input.ds-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-pop,
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-head,
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-list,
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-empty {
  background-color: transparent;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-pop {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os.dark .window[data-app-color-theme] .window-body.design-studio-root .ds-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* QMS Lite function search — ribbon combobox + opaque pop (not OS --surface). */
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch .qms-lite-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch .qms-lite-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch.open .qms-lite-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-field.on .qms-lite-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-field:focus-within .qms-lite-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-head,
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-list,
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-empty {
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-pop.is-empty {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os.dark .window[data-app-color-theme] .window-body .qms-lite-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .qms-lite-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-pop {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #5b8def;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .qms-lite-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .qms-lite-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* Inventory function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch.open .inv-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .inv-fnsearch-field.on .inv-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .inv-fnsearch-field:focus-within .inv-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .inv-fnsearch.open .inv-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .inv-fnsearch-field.on .inv-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .inv-fnsearch-field:focus-within .inv-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch-head,
#os .window[data-app-color-theme] .window-body .inv-fnsearch-list,
#os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-empty,
body .window[data-app-color-theme] .window-body .inv-fnsearch-head,
body .window[data-app-color-theme] .window-body .inv-fnsearch-list,
body .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-empty {
  background: transparent none !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop,
body .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop {
  background-color: #ffffff !important;
  color: #1f2733 !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop.is-empty {
  background: #ffffff none !important;
  background-color: #ffffff !important;
  color: #1f2733 !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os.dark .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop,
.dark #os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop,
.window[data-app-color-tone="dark"] .window-body .inv-fnsearch .inv-fnsearch-pop {
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .inv-fnsearch .inv-fnsearch-pop.is-empty,
.window[data-app-color-tone="dark"] .window-body .inv-fnsearch .inv-fnsearch-pop.is-empty {
  background: #1c212b none !important;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .inv-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch-item,
body .window[data-app-color-theme] .window-body .inv-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .inv-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .inv-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .inv-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .inv-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .inv-fnsearch-item.is-active .inv-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .inv-fnsearch-item.is-active .inv-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .inv-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .inv-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* In Vivo Study Studio function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .ivs-fnsearch .ivs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .ivs-fnsearch .ivs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 20px !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-head,
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-list,
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-empty {
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-pop.is-empty {
  background-color: #fff !important;
  color: var(--fn-pop-ink, #1b2230) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1b2230) !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1b2230) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bff) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bff) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1b2230) !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bff) !important;
  border-color: var(--fn-pop-accent, #2f6bff) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .ivs-fnsearch-item.is-active .ivs-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .ivs-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .ivs-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .ivs-fnsearch-pop {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #5b8def;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .ivs-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .ivs-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* Binding Studio function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-head,
#os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-list,
#os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-empty {
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-pop.is-empty {
  background-color: #fff !important;
  color: #1f2733 !important;
  border-color: #d7dce6 !important;
}
#os.dark .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .binding-studio-root .bind-fnsearch-pop {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #5b8def;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}

/* Report Builder (HTML Studio) function search — toolstrip combobox + opaque pop. */
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch .hs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch .hs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch .hs-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch .hs-fnsearch-input::placeholder {
  color: color-mix(in srgb, var(--hs-text, #1f2733) 48%, transparent) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch.open .hs-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-field.on .hs-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-field:focus-within .hs-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch.open .hs-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-field.on .hs-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-field:focus-within .hs-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-head,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-list,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-empty,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-miss,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-head,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-list,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-empty,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-miss {
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop.is-empty,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop.hs-fnsearch-skin,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop.hs-fnsearch-skin {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-empty strong,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-miss strong,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-miss strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item.is-active .hs-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item.is-active .hs-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-pop {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #5b8def;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .hs-office-root .hs-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* Report Studio function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch .rs-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
}
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-pop.is-empty {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-head,
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-list,
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-empty {
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bff) 8%, var(--fn-pop-bg, #fff)) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bff) 18%, var(--fn-pop-bg, #fff)) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bff) !important;
  border-color: var(--fn-pop-accent, #2f6bff) !important;
  color: #fff !important;
}
#os.dark .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .rs-office-root .rs-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* Prototype Studio function search — opaque combobox, not OS --surface / [class$="-empty"].
   Scoped to .prototype-studio-root so Plasmid Studio (.ps-fnsearch) is not restyled.
   Match the OS input chain (five :not() attrs) or the theme wins. */
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch input.ps-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch input.ps-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch.open .ps-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-field.on .ps-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-field:focus-within .ps-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch .ps-fnsearch-pop,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch .ps-fnsearch-pop.is-empty,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch .ps-fnsearch-pop.ps-fnsearch-skin,
body .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch .ps-fnsearch-pop,
body .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch .ps-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch .ps-fnsearch-pop.ps-fnsearch-skin {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-head,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-list,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-empty,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-blank {
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os.dark .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-pop {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #5b8def;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* Word function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .word-app input.word-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .word-app input.word-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  line-height: 1 !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-input::placeholder {
  color: #6c7686 !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-head,
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-list,
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-empty,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-head,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-list,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-empty {
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop.is-empty {
  background-color: var(--fn-pop-bg, #fff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-foot,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-foot {
  background: color-mix(in srgb, var(--fn-pop-ink) 2.5%, var(--fn-pop-bg)) !important;
  color: var(--fn-pop-muted) !important;
  border-top-color: var(--fn-pop-line) !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item.is-active .word-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item.is-active .word-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-pop,
.window[data-app-color-tone="dark"] .word-app .word-fnsearch-pop,
.window[data-app-color-tone="dark"] .word-app .word-fnsearch-pop.is-empty {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .word-app .word-fnsearch-item:hover:not(.is-active) {
  background: color-mix(in srgb, var(--fn-pop-accent, #5b8def) 14%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #5b8def) 28%, transparent) !important;
  color: #e8ecf3 !important;
}

/* File Explorer function search pop — opaque even when the window surface is glass. */
html :is(#os, body) .window[data-app-color-theme] .window-body.fe-explorer-root .fe-fnsearch-pop,
html :is(#os, body) .window[data-app-color-theme] .window-body .fe-explorer-root .fe-fnsearch-pop {
  background-color: var(--fn-pop-bg, #fff) !important;
}

/* Evidence Harvester + classic Web Harvester function search — opaque forest / white pops. */
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .eh-app .eh-fnsearch-pop,
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-pop.is-empty,
#os .window[data-app-color-theme] .window-body .eh-app .eh-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-pop,
body .window[data-app-color-theme] .eh-app .eh-fnsearch-pop.is-empty {
  background-color: #12211d !important;
  background-image: linear-gradient(180deg, color-mix(in srgb, #53d6a0 12%, transparent), transparent 2.4rem) !important;
  color: #edf8f4 !important;
  border-color: rgba(184, 232, 216, 0.18) !important;
}
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-head,
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-list,
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-empty,
body .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-empty {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-empty strong,
body .window[data-app-color-theme] .eh-app .eh-fnsearch-empty strong {
  color: #edf8f4 !important;
}
#os .window[data-app-color-theme] .window-body.eh-app .eh-fnsearch-foot,
body .window[data-app-color-theme] .eh-app .eh-fnsearch-foot {
  background: color-mix(in srgb, #000 18%, #12211d) !important;
  color: #89a39a !important;
  border-top-color: rgba(184, 232, 216, 0.18) !important;
}
#os .window[data-app-color-theme] .window-body .wh-browser .wh-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .wh-browser .wh-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .wh-browser .wh-fnsearch-pop.is-empty {
  background-color: var(--fn-pop-bg, #fff) !important;
  background-image: linear-gradient(180deg, color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 9%, transparent), transparent 2.4rem) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .wh-browser .wh-fnsearch-empty,
body .window[data-app-color-theme] .wh-browser .wh-fnsearch-empty {
  background: transparent !important;
  background-color: transparent !important;
}

/* PDF Studio function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  line-height: 1 !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-input::placeholder {
  color: var(--pdf-muted, #667085) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch.open .pdf-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-field.on .pdf-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-field:focus-within .pdf-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch.open .pdf-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-field.on .pdf-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-field:focus-within .pdf-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-head,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-list,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-empty,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-head,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-list,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-empty {
  background: transparent none !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop.is-empty,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop.pdf-fnsearch-skin,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop.pdf-fnsearch-skin {
  background-color: var(--fn-pop-bg, #ffffff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-foot,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-foot {
  background: color-mix(in srgb, var(--fn-pop-ink) 2.5%, var(--fn-pop-bg)) !important;
  color: var(--fn-pop-muted) !important;
  border-top-color: var(--fn-pop-line) !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #b42318) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #b42318) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #b42318) !important;
  border-color: var(--fn-pop-accent, #b42318) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item.is-active .pdf-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item.is-active .pdf-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-pop,
.window[data-app-color-tone="dark"] .pdf-studio .pdf-fnsearch-pop,
.window[data-app-color-tone="dark"] .pdf-studio .pdf-fnsearch-pop.is-empty,
.pdf-studio[data-reading-mode="dark"] .pdf-fnsearch-pop,
.pdf-studio[data-reading-mode="dark"] .pdf-fnsearch-pop.is-empty {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #f97066;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-item:hover:not(.is-active) {
  background: rgba(249, 112, 102, .14) !important;
  border-color: rgba(249, 112, 102, .28) !important;
  color: #e8ecf3 !important;
}
#os.dark .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-empty strong,
.dark #os .window[data-app-color-theme] .window-body .pdf-studio .pdf-fnsearch-empty strong,
.pdf-studio[data-reading-mode="dark"] .pdf-fnsearch-empty strong {
  color: #e8ecf3 !important;
}

/* Instrument Booking function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .ib-fnsearch .ib-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .ib-fnsearch .ib-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 20px !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch .ib-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .ib-fnsearch .ib-fnsearch-input::placeholder {
  color: #6c7686 !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-head,
#os .window[data-app-color-theme] .window-body .ib-fnsearch-list,
#os .window[data-app-color-theme] .window-body .ib-fnsearch-empty,
body .window[data-app-color-theme] .window-body .ib-fnsearch-head,
body .window[data-app-color-theme] .window-body .ib-fnsearch-list,
body .window[data-app-color-theme] .window-body .ib-fnsearch-empty {
  background: #ffffff none !important;
  background-color: #ffffff !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .ib-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .ib-fnsearch-pop,
body .window[data-app-color-theme] .window-body .ib-fnsearch-pop.is-empty {
  background-color: #ffffff !important;
  color: #1f2733 !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .ib-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-item,
body .window[data-app-color-theme] .window-body .ib-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .ib-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 8%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bd4) 18%, #ffffff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .ib-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .ib-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .ib-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bd4) !important;
  border-color: var(--fn-pop-accent, #2f6bd4) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .ib-fnsearch-item.is-active .ib-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .ib-fnsearch-item.is-active .ib-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .ib-fnsearch-pop,
.window[data-app-color-tone="dark"] .window-body .ib-fnsearch-pop,
.window[data-app-color-tone="dark"] .window-body .ib-fnsearch-pop.is-empty {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  --fn-pop-accent: #5b8def;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-head,
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-list,
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-empty,
.dark #os .window[data-app-color-theme] .window-body .ib-fnsearch-empty,
.window[data-app-color-tone="dark"] .window-body .ib-fnsearch-head,
.window[data-app-color-tone="dark"] .window-body .ib-fnsearch-list,
.window[data-app-color-tone="dark"] .window-body .ib-fnsearch-empty {
  background: #1c212b none !important;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
}
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .ib-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}
#os.dark .window[data-app-color-theme] .window-body .ib-fnsearch-empty strong,
.dark #os .window[data-app-color-theme] .window-body .ib-fnsearch-empty strong {
  color: #e8ecf3 !important;
}

/* Clipboard Library function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .clib input.clib-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .clib input.clib-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  line-height: 1 !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-input::placeholder {
  color: rgba(255,255,255,.78) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch.open .clib-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-field.on .clib-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-field:focus-within .clib-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch.open .clib-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-field.on .clib-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-field:focus-within .clib-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-head,
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-list,
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-empty,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-head,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-list,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-empty {
  background: transparent none !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop.is-empty {
  background-color: #ffffff !important;
  color: #1f2733 !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os.dark .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop,
.dark #os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop,
.window[data-app-color-tone="dark"] .window-body .clib .clib-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-pop.is-empty,
.window[data-app-color-tone="dark"] .window-body .clib .clib-fnsearch-pop.is-empty {
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-empty strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, #2f6bff) 8%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, #2f6bff) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #2f6bff) !important;
  border-color: var(--fn-pop-accent, #2f6bff) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item.is-active .clib-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item.is-active .clib-fnsearch-item-hint {
  color: rgba(255,255,255,.82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .clib .clib-fnsearch-item:hover:not(.is-active) {
  background: rgba(91, 141, 239, .14) !important;
  border-color: rgba(91, 141, 239, .28) !important;
  color: #e8ecf3 !important;
}

/* Interface Check function search — IFC skin tokens, not OS glass / GS navy. */
#os .window[data-app-color-theme] .window-body .interface-check-app input.ifc-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .interface-check-app input.ifc-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  line-height: 1 !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-input::placeholder {
  color: var(--ifc-fn-muted, #3d4656) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-head,
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-list,
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-empty,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-head,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-list,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-empty {
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-pop,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-pop.is-empty {
  background-color: var(--fn-pop-bg, var(--ifc-fn-bg, #ffffff)) !important;
  background-image: none !important;
  color: var(--fn-pop-ink, var(--ifc-fn-ink, #1a1f2b)) !important;
  border-color: var(--fn-pop-line, var(--ifc-fn-line, #cfd6e3)) !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-empty strong {
  color: var(--fn-pop-ink, var(--ifc-fn-ink, #1a1f2b)) !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-foot,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-foot {
  background: color-mix(in srgb, var(--fn-pop-ink) 4%, var(--fn-pop-bg)) !important;
  color: var(--fn-pop-muted) !important;
  border-top-color: var(--fn-pop-line) !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, var(--ifc-fn-ink, #1a1f2b)) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, var(--ifc-fn-accent, #2f6bd4)) 10%, var(--fn-pop-bg, var(--ifc-fn-bg, #fff))) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, var(--ifc-fn-accent, #2f6bd4)) 22%, var(--fn-pop-line, var(--ifc-fn-line, #cfd6e3))) !important;
  color: var(--fn-pop-ink, var(--ifc-fn-ink, #1a1f2b)) !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, var(--ifc-fn-accent, #2f6bd4)) !important;
  border-color: var(--fn-pop-accent, var(--ifc-fn-accent, #2f6bd4)) !important;
  color: var(--fn-pop-on, var(--ifc-fn-on, #fff)) !important;
}
#os .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item.is-active .ifc-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .interface-check-app .ifc-fnsearch-item.is-active .ifc-fnsearch-item-hint {
  color: color-mix(in srgb, var(--fn-pop-on, var(--accent-ink, #fff)) 82%, transparent) !important;
}

html :is(#os, body) .window[data-app-color-theme] .window-body.prototype-studio-root .ps-fnsearch input.ps-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
  border: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

/* Automation Studio function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .app.automation input.auto-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .app.automation input.auto-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  line-height: 1 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-input::placeholder {
  color: var(--ink-soft, #6c7686) !important;
  opacity: 1;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch.open .auto-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-field.on .auto-fnsearch-input::placeholder,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-field:focus-within .auto-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch.open .auto-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-field.on .auto-fnsearch-input::placeholder,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-field:focus-within .auto-fnsearch-input::placeholder {
  color: #6c7686 !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-head,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-list,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-empty,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-blank,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-head,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-list,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-empty,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-blank {
  background: transparent none !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop.is-empty {
  background-color: #ffffff !important;
  color: #1f2733 !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-empty strong,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-blank strong,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-empty strong,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-blank strong {
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-foot,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-foot {
  background: color-mix(in srgb, var(--fn-pop-ink) 2.5%, var(--fn-pop-bg)) !important;
  color: var(--fn-pop-muted) !important;
  border-top-color: var(--fn-pop-line) !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item:hover,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item:hover {
  background: color-mix(in srgb, var(--fn-pop-accent, var(--auto-accent, #6d5cff)) 8%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent, var(--auto-accent, #6d5cff)) 18%, transparent) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, var(--auto-accent, #6d5cff)) !important;
  border-color: var(--fn-pop-accent, var(--auto-accent, #6d5cff)) !important;
  color: #fff !important;
}
#os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item.is-active .auto-fnsearch-item-hint,
body .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item.is-active .auto-fnsearch-item-hint {
  color: rgba(255, 255, 255, .82) !important;
}
#os.dark .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-pop,
.window[data-app-color-tone="dark"] .app.automation .auto-fnsearch-pop,
.window[data-app-color-tone="dark"] .app.automation .auto-fnsearch-pop.is-empty {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}
#os.dark .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item:hover:not(.is-active),
.dark #os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-item:hover:not(.is-active) {
  background: color-mix(in srgb, var(--fn-pop-accent) 14%, transparent) !important;
  border-color: color-mix(in srgb, var(--fn-pop-accent) 28%, transparent) !important;
  color: #e8ecf3 !important;
}
#os.dark .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-empty strong,
.dark #os .window[data-app-color-theme] .window-body .app.automation .auto-fnsearch-empty strong,
.window[data-app-color-tone="dark"] .app.automation .auto-fnsearch-empty strong {
  color: #e8ecf3 !important;
}

/* Microsoft Cloud function search — opaque combobox, not OS --surface / [class$="-empty"]. */
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root input.ms-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body .window[data-app-color-theme] .window-body .microsoft-cloud-root input.ms-fnsearch-input:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  line-height: 1 !important;
}
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-head,
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-list,
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-empty,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-head,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-list,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-empty {
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
}
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop,
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop.is-empty,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop.is-empty {
  background-color: var(--fn-pop-bg, #ffffff) !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: var(--fn-pop-line, #d7dce6) !important;
}
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-item,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-item {
  background: transparent !important;
  color: var(--fn-pop-ink, #1f2733) !important;
  border-color: transparent !important;
}
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-item.is-active,
#os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-item:hover.is-active,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-item.is-active,
body .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-item:hover.is-active {
  background: var(--fn-pop-accent, #0078d4) !important;
  border-color: var(--fn-pop-accent, #0078d4) !important;
  color: #fff !important;
}
#os.dark .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop,
#os.dark .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop.is-empty,
.dark #os .window[data-app-color-theme] .window-body .microsoft-cloud-root .ms-fnsearch-pop,
.window[data-app-color-tone="dark"] .microsoft-cloud-root .ms-fnsearch-pop,
.window[data-app-color-tone="dark"] .microsoft-cloud-root .ms-fnsearch-pop.is-empty {
  --fn-pop-bg: #1c212b;
  --fn-pop-ink: #e8ecf3;
  --fn-pop-muted: #9aa5b5;
  --fn-pop-line: #3a4252;
  background-color: #1c212b !important;
  color: #e8ecf3 !important;
  border-color: #3a4252 !important;
}

/*
  Final palette-integrity layer.

  A window color is independent from the desktop color.  This layer has
  deliberately higher specificity than app styles that are injected after
  page load, so an Ivory window remains light on a dark desktop and a Black
  window remains dark on a light desktop.  Only application chrome is
  recolored: authored document/slide/report contents and media keep their own
  colors; scientific workspaces and visualization chrome follow the window
  palette.
*/
#os .window[data-app-color-theme][data-app-color-tone] .window-body {
  color-scheme: var(--color-scheme) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .project-context-status-section,
  .ctx-tree-trigger,
  .searchable-picker-trigger,
  .work-status-select
) {
  background: var(--control-bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .ctx-tree-trigger-path,
  .ctx-tree-trigger-part,
  .ctx-tree-trigger-chevron,
  .project-context-label,
  .project-context-value
) {
  color: var(--ink-soft) !important;
}

/* Table headers are chrome. Author-controlled document and sheet tables are excluded. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body th:not(.excel-cell):not(.plot-report-page *):not(.word-page *):not(.word-page-sheet *):not(.hs-page *):not(.rs-page *):not(.ps-page *):not(.gsd-px *):not(.pcr3 *):not(.ijs *):not(.mss *):not(.pth *) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink-soft) !important;
  border-color: var(--line) !important;
}

/* Explorer: macOS and Windows skins must both follow the selected window palette. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .fe-explorer-root :is(
  .files-toolbar,
  .files-sidebar,
  .files-path,
  .fe-details-header,
  .files-preview,
  .files-status
) {
  background: var(--fe-sidebar) !important;
  background-image: none !important;
  color: var(--fe-ink) !important;
  border-color: var(--fe-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .fe-explorer-root :is(
  .files-main,
  .files-grid,
  .fe-list-row,
  .fe-icon-tile
) {
  color: var(--fe-ink) !important;
  border-color: var(--fe-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .fe-explorer-root :is(
  .fe-details-header,
  .file-meta,
  .fe-list-meta,
  .fe-icon-meta,
  .files-side-label,
  .files-status
) {
  color: var(--fe-ink-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .fe-explorer-root :is(
  .fe-tool-btn,
  .fe-view-btn,
  .files-search,
  .files-path
) {
  background-color: var(--fe-elevated) !important;
  color: var(--fe-ink) !important;
  border-color: var(--fe-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .fe-explorer-root :is(
  .fe-view-btn.active,
  .files-side-item.active
) {
  background: var(--fe-accent-soft) !important;
  color: var(--fe-accent) !important;
}

/* Around-document work areas. The actual page/slide/report remains untouched. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pdf-canvas-area,
  .rs-stage,
  .rs-stage-wrap,
  .ps-office-root .ps-editor,
  .ps-office-root .ps-stage,
  .las-stage
) {
  background: var(--bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pdf-topbar,
  .pdf-document-tabs,
  .pdf-pane-tabs,
  .pdf-sidebar,
  .pdf-inspector,
  .rs-rail,
  .rs-ribbon,
  .rs-report-tabs,
  .ps-office-root .ps-rail,
  .ps-office-root .ps-ribbon,
  .ps-office-root .ps-ribbon-body,
  .ps-office-root .ps-deck-tabs,
  .office-rb-body,
  .excel-sheet-tabs,
  .las-toolbar,
  .las-sidebar
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pdf-pane-tabs button,
  .rs-report-tab,
  .ps-office-root .ps-deck-tab,
  .excel-sheet-tab
) {
  color: var(--ink-soft) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pdf-pane-tabs button.active,
  .rs-report-tab.active,
  .ps-office-root .ps-deck-tab.active,
  .excel-sheet-tab.active
) {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

/* Common hardcoded app surfaces discovered by the full registered-app audit. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pm-frame,
  .interface-check-app,
  .microsoft-cloud-root,
  .report-studio,
  .ppt-studio,
  .lab-app-studio-root,
  .workflow-builder,
  .ms-studio-root
) {
  background-color: var(--bg) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pm-kpi,
  .hub-quick,
  .hub-card,
  .ms-cloud-panel-prominent,
  .ms-drop,
  .las-chip,
  .las-btn,
  .wb-picker,
  .mds-flow-node
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .hub-quick-prompt,
  .hub-btn.secondary,
  .wb-picker:hover,
  .las-btn:hover
) {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

/* Navigation concepts may intentionally change layout, but not escape the palette. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .interface-check-app :is(
  .ifc-nav,
  .ifc-tabs,
  .ifc-nav-searchwrap,
  .ifc-formula-bar,
  .ifc-status
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .interface-check-app :is(
  .ifc-nav-item,
  .ifc-nav-name,
  .ifc-nav-section,
  .ifc-tab
) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .interface-check-app :is(
  .ifc-nav-item.active,
  .ifc-nav-item.is-active,
  .ifc-tab.active,
  .ifc-tab.is-active
) {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
  border-color: var(--accent) !important;
}

/* Feedback colors retain meaning while remaining readable in both tones. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .partner-error,
  .ms-cloud-message.is-error,
  .ps-composer-status.is-error
) {
  background: var(--danger-soft) !important;
  background-image: none !important;
  color: var(--danger) !important;
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .ms-banner,
  .bind-limit,
  .sx-hint,
  .ib-notice
) {
  background: var(--warning-soft) !important;
  background-image: none !important;
  color: var(--warning) !important;
  border-color: color-mix(in srgb, var(--warning) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ib-event {
  background: color-mix(in srgb, var(--instrument, var(--accent)) 18%, var(--surface)) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--instrument, var(--accent)) 36%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ib-event.pending {
  background: var(--warning-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ib-event :is(span, small) {
  color: var(--ink-soft) !important;
}

/* Prototype Studio injects a legacy light-only skin after this stylesheet. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .st-sidebar-wrap,
  .st-sidebar,
  .st-sidebar-custom,
  .st-mobile-bar,
  .ps-ribbon-body,
  .ps-rail,
  .ps-tabs
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .ps-rib-big,
  .ps-rib-small,
  .ps-rail-actions button,
  .ps-saved-actions button,
  .ps-history-details,
  .ps-details-back
) {
  background: var(--control-bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .st-body,
  .st-center,
  .st-workspace
) {
  background: var(--bg) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .ps-rail-toggle,
  .ps-tab.is-on,
  .ps-history-search,
  .ps-history-row,
  .ps-rail-card,
  .ps-tokens,
  .ps-saved,
  .ps-composer,
  .ps-composer-input,
  .ps-pick-btn,
  .ps-examples-btn,
  .ps-examples-menu,
  .ps-example,
  .ps-chip,
  .ps-stage-card
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .ps-rail-title,
  .ps-history-main,
  .ps-history-main strong,
  .ps-history-main span,
  .ps-rail-card,
  .ps-rail-card *,
  .ps-tokens,
  .ps-tokens *,
  .ps-saved,
  .ps-saved *,
  .ps-composer,
  .ps-composer *,
  .ps-stage-card,
  .ps-stage-card *
) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .ps-rail-note,
  .ps-rail-empty,
  .ps-tokens-sub,
  .ps-rail-updated,
  .ps-rail-excerpt,
  .ps-rail-meta dt,
  .ps-example span,
  .ps-composer-status
) {
  color: var(--ink-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root :is(
  .ps-primary,
  .ps-chip.is-on,
  .ps-chip-filter.is-on,
  .ps-rail-request,
  .ps-composer-go,
  .ps-pick-btn.is-on
) {
  background: var(--primary) !important;
  background-image: none !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

/* Plasmid chrome; the molecular visualization itself remains authored. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root :is(
  .ps-viz-tabs,
  .ps-viz-footer
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/*
 * The open-plasmid tabs, the tool strip and the top bar share one surface
 * since the 2026-09-28 chrome rework: the tabs sit inside the top bar, so
 * their bar is transparent and the active tab is a quiet grey pill — the
 * accent stays for links and selection, not for chrome state.
 */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root :is(.ps-topbar, .ps-ribbon) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root :is(.ps-document-bar, .ps-document-tabs, .ps-ribbon-body) {
  background: transparent !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-document-tab {
  background: transparent !important;
  color: var(--ink-soft) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-document-tab.active {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root :is(
  .ps-document-switch,
  .ps-document-tab.active .ps-document-switch,
  .ps-document-switch small,
  .ps-viz-tab
) {
  color: var(--ink) !important;
}

/* Primary/accent actions must use the palette's paired foreground color. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .adv-btn-primary,
  .las-btn-primary,
  .graph-studio-ribbon-aitoggle.on,
  .ss-ribbon-aitoggle.on,
  .wb-btn-primary
) {
  background: var(--primary) !important;
  background-image: none !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

/* All function-search result panels share the same opaque, readable palette. */
html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-pop"] {
  background: var(--fn-pop-bg) !important;
  background-image: none !important;
  color: var(--fn-pop-ink) !important;
  border-color: var(--fn-pop-line) !important;
  box-shadow: var(--fn-pop-shadow) !important;
  color-scheme: inherit;
}

html body #os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class*="fnsearch-head"],
  [class*="fnsearch-list"],
  [class*="fnsearch-empty"],
  [class*="fnsearch-blank"]
) {
  background: transparent !important;
  background-image: none !important;
  color: var(--fn-pop-ink) !important;
}

html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-item"] {
  background: transparent !important;
  color: var(--fn-pop-ink) !important;
  border-color: transparent !important;
}

html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-item"]:hover:not(.is-active) {
  background: color-mix(in srgb, var(--fn-pop-accent) 14%, transparent) !important;
  color: var(--fn-pop-ink) !important;
}

html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-item"].is-active {
  background: var(--fn-pop-accent) !important;
  color: var(--on-primary) !important;
  border-color: var(--fn-pop-accent) !important;
}

/*
  Legacy apps often put literal light-theme text colors on individual labels.
  Normalize readable UI copy at the window boundary, with explicit exclusions
  for authored content whose colors are meaningful to the document or chart.
  .dchat (the Assay Designer / Design Studio BioAI tab) carries Clarity's AI-tab
  palette, which already follows the window theme and tone; so does PCR Studio's
  .pcr3 shell (--p-* tokens from --surface/--ink/--muted/--accent), and MS
  Studio's .mss shell (--m-* tokens, the same scheme).
*/
#os .window[data-app-color-theme][data-app-color-tone] .window-body :where(:is(
  h1, h2, h3, h4, h5, h6, p, span, strong, b, small, label, legend,
  button, a, li, dt, dd, summary, code, kbd
):not(.plot-report-page *):not(.word-page *):not(.word-page-sheet *):not(.excel-grid-scroll *):not(.hs-canvas *):not(.hs-page *):not(.rs-canvas *):not(.rs-page *):not(.ps-canvas *):not(.ps-thumb *):not(.sx-plot *):not(.lims-gs-result-figure *):not(.cs-mini-struct *):not(.mds-demo-feature-plot *):not(.dchat *):not(.stx *):not(.txs *):not(.gsd-px *):not(.pcr3 *):not(.ijs *):not(.mss *):not(.pth *)) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :where(:is(
  [class$="-muted"],
  [class*="-muted "],
  [class$="-meta"],
  [class$="-hint"],
  [class$="-sub"],
  [class$="-subtitle"],
  [class$="-description"],
  [class$="-caption"],
  [class$="-empty"]
):not(.plot-report-page *):not(.word-page *):not(.excel-grid-scroll *):not(.hs-canvas *):not(.rs-canvas *):not(.ps-canvas *):not(.sx-plot *):not(.lims-gs-result-figure *):not(.cs-mini-struct *):not(.dchat *):not(.stx *):not(.txs *):not(.gsd-px *):not(.pcr3 *):not(.ijs *):not(.mss *):not(.pth *)) {
  color: var(--ink-soft) !important;
}

/* Re-assert semantic foregrounds after the legacy-copy normalization. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .btn.primary,
  button.primary,
  [class$="-primary"],
  [class*="-primary "],
  .graph-studio-ribbon-aitoggle,
  .path-ribbon-aitoggle
) {
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .btn.primary,
  button.primary,
  [class$="-primary"],
  [class*="-primary "],
  .graph-studio-ribbon-aitoggle,
  .path-ribbon-aitoggle
) :is(span, strong, b, small, i) {
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  button.btn-primary,
  button[class$="-primary"],
  button[class*="-primary "]
) {
  background: var(--primary) !important;
  background-image: none !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  button.btn-primary,
  button[class$="-primary"],
  button[class*="-primary "]
) :is(span, strong, b, small, i) {
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .btn.danger,
  button.danger,
  [class$="-danger"]
) {
  color: var(--danger) !important;
}

/* Reusable controls and selection chrome that still use literal white fills. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class$="-btn"]:not(.primary):not(.danger):not(.success),
  [class*="-btn "]:not(.primary):not(.danger):not(.success),
  [class$="-button"]:not(.primary):not(.danger):not(.success),
  [class$="-chip"],
  [class$="-pill"]
):not(.plot-report-page *):not(.word-page *):not(.excel-grid-scroll *):not(.hs-canvas *):not(.rs-canvas *):not(.ps-canvas *):not(.sx-plot *) {
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class*="-tab"].active,
  [class*="-tab"].is-active,
  [class*="-tab"].is-on,
  .bs-tab.active,
  .pcr-quick-demo
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pcr-quick-demo.active,
  .pcr-quick-demo.is-active
) {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

/* Function-search field shells must be opaque too, not only their popovers. */
html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-field"] {
  background: var(--control-bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

/* Root-class variants used when the app root is the window-body itself. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.fe-explorer-root :is(
  .files-toolbar,
  .files-sidebar,
  .files-path,
  .fe-details-header,
  .files-preview,
  .files-status
) {
  background: var(--fe-sidebar) !important;
  background-image: none !important;
  color: var(--fe-ink) !important;
  border-color: var(--fe-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.fe-explorer-root :is(
  .fe-tool-btn,
  .fe-view-btn,
  .files-search
) {
  background: var(--fe-elevated) !important;
  color: var(--fe-ink) !important;
  border-color: var(--fe-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.fe-explorer-root .fe-view-btn.active {
  background: var(--fe-accent-soft) !important;
  color: var(--fe-accent) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.ps-office-root :is(
  .ps-editor,
  .ps-stage
) {
  background: var(--bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.ps-office-root :is(
  .ps-rail,
  .ps-ribbon,
  .ps-ribbon-body,
  .ps-deck-tabs
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .ps-viz-tabs,
  .ps-viz-footer
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(.ps-topbar, .ps-ribbon) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(.ps-document-bar, .ps-document-tabs, .ps-ribbon-body) {
  background: transparent !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-document-tab {
  background: transparent !important;
  color: var(--ink-soft) !important;
  border-color: transparent !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-document-tab.active {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/*
 * The ribbon tab strip. Its authored look is a dark blue gradient with white
 * text, but only the text was being repainted with var(--ink): under any
 * light theme that left near-black tab labels on a dark blue bar — measured
 * at 2.4:1, well under AA, and the single worst readability problem in the
 * app. The strip is chrome, not authored content, so it follows the theme
 * with the rest of the chrome and its own gradient is dropped.
 */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-ribbon-strip,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-ribbon-strip {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(.ps-ribbon-tab, .ps-ribbon-strip-state),
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root :is(.ps-ribbon-tab, .ps-ribbon-strip-state) {
  color: var(--ink-soft) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-ribbon-tab.active,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-ribbon-tab.active {
  color: var(--ink) !important;
  background: var(--surface) !important;
  border-bottom-color: var(--accent) !important;
}

/*
 * The Normal/Advanced switch sits in that strip and inherited the same clash.
 * Its pill keeps an authored dark navy (#0d3d66) which, once the labels became
 * theme ink, left dark-on-dark; the group follows the theme with its buttons.
 */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-mode-toggle,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-mode-toggle {
  background: var(--control-bg) !important;
  background-image: none !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-mode-toggle-btn,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-mode-toggle-btn {
  color: var(--ink-soft) !important;
  background: transparent !important;
}

/* A segmented control: the chosen side is a raised surface, not a filled
   primary button — it is state, not an action. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .ps-mode-toggle-btn.active,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .plasmid-studio-root .ps-mode-toggle-btn.active {
  color: var(--ink) !important;
  background: var(--surface) !important;
}

/* Office ribbons are UI chrome; paper, slides, and cells remain excluded above. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .office-rb-title,
  .office-rb-tabs,
  .office-rb-body,
  .office-rb-group,
  .office-rb-btn,
  .office-rb-quick-btn,
  .office-rb-text,
  .office-rb-icon,
  .st-card-title
) {
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .st-card-title {
  background: var(--surface-2) !important;
  background-image: none !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .office-titlebar,
  .ifc-rib-strip,
  .ifc-status
) :is(button, span, strong, b, small, i, a) {
  color: var(--on-primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ifc-rib-tab.is-active {
  background: var(--surface) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .hs-mode-btn.on,
  .hs-fmt-seg-btn.on
) {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .rs-report-tab-new,
  .report-studio button:not([class])
) {
  background: var(--control-bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pcr-quick-demo b {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ghstore-search button {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.rs-office-root button:not([class]) {
  background: var(--control-bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

/* Message bars can be visible without carrying an error class. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .ms-cloud-message {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/* Bright accent actions use the palette-provided contrast mate. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class$="-welcome-openbtn"],
  [class$="-ai-fab"],
  [class*="-ai-fab "],
  .github-apps-root button[type="submit"],
  .ifc-rib-big.is-primary,
  .eh-new-project,
  .eh-run
),
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class$="-welcome-openbtn"],
  [class$="-ai-fab"],
  [class*="-ai-fab "],
  .github-apps-root button[type="submit"],
  .ifc-rib-big.is-primary,
  .eh-new-project,
  .eh-run
) :is(span, strong, b, small, i) {
  color: var(--on-primary) !important;
}

/* Theme legacy badges and selected tools instead of leaving pale fills behind. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pdf-brand-icon,
  .pdf-tool-btn.active,
  .ms-cloud-badge,
  .las-tokens,
  .ps-pill,
  .ps-rb-mini.on,
  .office-rb-btn.ai,
  .wb-live,
  .mds-demo-group-code,
  .ps-mode-toggle-btn.active,
  .ps-document-new
) {
  background: var(--accent-soft) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .su-drop-mark,
  .ps-deck-tabs-mark
) {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .bind-cat,
  .omics-sample-glyph
) {
  background: var(--accent-soft) !important;
  background-image: none !important;
  color: var(--accent) !important;
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .tika-hub-status--offline,
  .tika-hub-status.is-offline
) {
  background: var(--danger-soft) !important;
  color: var(--danger) !important;
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .tika-hub-gpl,
  .ib-demo-badge,
  .pcrs-demo-badge
) {
  background: var(--warning-soft) !important;
  color: var(--warning) !important;
  border-color: color-mix(in srgb, var(--warning) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .clib-card-type,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .clib-card-type * {
  color: var(--on-primary) !important;
}

/* Keyboard-help overlays were authored against a light-only translucent sheet. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .sp-gs-shortcuts,
  .sp-gs-shortcut,
  .sp-gs-shortcuts kbd,
  .spatial-shortcuts,
  .spatial-shortcuts kbd
) {
  background-color: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/* Light palettes must also win over app sections that are dark by default. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pm-topbar,
  .eh-activity
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pm-topbar :is(
  button, span, strong, small, div
),
#os .window[data-app-color-theme][data-app-color-tone] .window-body .pm-side-title {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .shared-error {
  background: var(--danger-soft) !important;
  color: var(--danger) !important;
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .ms-ruo,
  .hs-save-status
) {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body input.clib-search:not([type="color"]):not([type="range"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body input.clib-search::placeholder {
  color: var(--ink-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .clib-card-type,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .clib-card-type * {
  color: #121820 !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .tmgr-energy.cool {
  color: var(--success) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .mds-overview {
  background: var(--surface-2) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .mds-overview-footer {
  color: var(--ink-soft) !important;
  border-color: var(--line) !important;
}

/* Evidence Harvester shipped as a dark-only workspace; map every chrome tier. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app {
  background: var(--eh-bg) !important;
  background-image: none !important;
  color: var(--eh-text) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app :is(
  .eh-rail,
  .eh-inspector,
  .eh-activity
) {
  background: var(--eh-surface-2) !important;
  background-image: none !important;
  color: var(--eh-text) !important;
  border-color: var(--eh-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app :is(
  .eh-command,
  .eh-metric,
  .eh-panel,
  .eh-source-card,
  .eh-evidence-card,
  .eh-graph-core,
  .eh-evidence-list article
) {
  background: var(--eh-surface) !important;
  background-image: none !important;
  color: var(--eh-text) !important;
  border-color: var(--eh-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app :is(
  .eh-command-orbit,
  .eh-command-hints span,
  .eh-icon-btn,
  .eh-source-card button,
  .eh-dataset-actions button
) {
  background: var(--control-bg) !important;
  color: var(--eh-text) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app :is(
  .eh-muted,
  .eh-metric > span,
  .eh-metric small,
  .eh-activity-label,
  .eh-activity-text,
  .eh-activity-stats,
  .eh-source-info span,
  .eh-source-card p,
  .eh-empty,
  .eh-step,
  .eh-step small
) {
  color: var(--eh-muted) !important;
}

/* Evidence Harvester uses .eh-app on window-body rather than below it. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app :is(
  .eh-rail,
  .eh-inspector,
  .eh-activity
) {
  background: var(--eh-surface-2) !important;
  background-image: none !important;
  color: var(--eh-text) !important;
  border-color: var(--eh-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app :is(
  .eh-command,
  .eh-metric,
  .eh-panel,
  .eh-source-card,
  .eh-evidence-card,
  .eh-graph-core,
  .eh-evidence-list article
) {
  background: var(--eh-surface) !important;
  background-image: none !important;
  color: var(--eh-text) !important;
  border-color: var(--eh-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app :is(
  .eh-command-orbit,
  .eh-command-hints span,
  .eh-icon-btn,
  .eh-source-card button,
  .eh-dataset-actions button
) {
  background: var(--control-bg) !important;
  color: var(--eh-text) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app :is(
  .eh-muted,
  .eh-metric > span,
  .eh-metric small,
  .eh-activity-label,
  .eh-activity-text,
  .eh-activity-stats,
  .eh-source-info span,
  .eh-source-card p,
  .eh-empty,
  .eh-step,
  .eh-step small
) {
  color: var(--eh-muted) !important;
}

/* OS-dark function-search skins must yield to a light window palette. */
html body #os.dark .window[data-app-color-theme][data-app-color-tone="light"] .window-body :is(
  .graph-studio-fnsearch-pop,
  .graph-studio-fnsearch-pop.is-empty
) {
  background: var(--fn-pop-bg) !important;
  background-image: none !important;
  color: var(--fn-pop-ink) !important;
  border-color: var(--fn-pop-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .pcr-wizard-progress i,
  .pcr-row-qc
) {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

/* Terminal participates in the selected window palette as well. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .term,
#os .window[data-app-color-theme][data-app-color-tone] .window-body.term {
  background: var(--bg) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .term :is(
  .term-line,
  .term-input
),
#os .window[data-app-color-theme][data-app-color-tone] .window-body.term :is(
  .term-line,
  .term-input
) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .term .term-prompt,
#os .window[data-app-color-theme][data-app-color-tone] .window-body.term .term-prompt {
  color: var(--accent) !important;
}

/* Small chrome details must follow the window palette too. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .pm-search {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border: 1px solid var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pm-search input {
  background: transparent !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pm-search input::placeholder {
  color: var(--ink-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .files-path-sep {
  color: var(--fe-ink-soft, var(--ink-soft)) !important;
  opacity: 0.72 !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ib-day-head.today strong {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ad-token {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .ad-token :is(
  span,
  .ad-token-x,
  .ad-suggest-pick
) {
  color: var(--ink) !important;
}

/* Runtime-loaded app CSS can otherwise out-rank the shared palette. */
html body #os.dark .window[data-app-color-theme][data-app-color-tone="light"] #compound-studio-fnsearch .graph-studio-fnsearch-pop,
html body #os.dark .window[data-app-color-theme][data-app-color-tone="light"] #compound-studio-fnsearch .graph-studio-fnsearch-pop.is-empty {
  --fn-pop-bg: var(--surface);
  --fn-pop-ink: var(--ink);
  --fn-pop-muted: var(--ink-soft);
  --fn-pop-line: var(--line);
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
  color-scheme: light;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root .ps-rib-big.primary,
#os .window[data-app-color-theme][data-app-color-tone] .window-body.prototype-studio-root .ps-rib-big.primary :is(span, svg) {
  background-color: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

/* Smart Upload's administration sections sit below the initial viewport. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .su-governance,
  .su-watch-source-form,
  .su-connector-form,
  .su-delivery-metrics > div
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .su-governance-head,
  .su-server-watch,
  .su-connector-grid
) :is(strong, span, small, p) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  .su-governance-head,
  .su-server-watch,
  .su-connector-grid
) :is(.su-muted, small) {
  color: var(--ink-soft) !important;
}

/* Evidence Harvester error panels need a light-palette error treatment. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app .eh-error,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app .eh-error {
  background: var(--danger-soft) !important;
  background-image: none !important;
  color: var(--danger) !important;
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app .eh-error :is(div, p),
#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app .eh-error :is(div, p) {
  color: var(--danger) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.eh-app .eh-error button,
#os .window[data-app-color-theme][data-app-color-tone] .window-body .eh-app .eh-error button {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

/* PCR setup is a document-body portal, so it carries its own theme marker. */
[data-app-color-theme][data-app-color-tone].pcr-modal-backdrop .pcr-wizard {
  background: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

[data-app-color-theme][data-app-color-tone].pcr-modal-backdrop .pcr-wizard-progress i {
  background: var(--surface-3) !important;
  color: var(--ink) !important;
}

[data-app-color-theme][data-app-color-tone].pcr-modal-backdrop .pcr-wizard-progress li.active i {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
}

/* Timeline circles use the same paired accent foreground as other actions. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .pcr-timeline li {
  opacity: 0.72 !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pcr-timeline li.done {
  opacity: 1 !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pcr-timeline i {
  background: var(--surface-3) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .pcr-timeline li.done i {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
}

html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-foot"] {
  background: color-mix(in srgb, var(--fn-pop-ink) 3%, var(--fn-pop-bg)) !important;
  color: var(--fn-pop-muted) !important;
  border-color: var(--fn-pop-line) !important;
}

html body #os .window[data-app-color-theme][data-app-color-tone] .window-body [class*="fnsearch-foot"] kbd {
  background: color-mix(in srgb, var(--fn-pop-ink) 7%, var(--fn-pop-bg)) !important;
  color: var(--fn-pop-ink) !important;
  border-color: var(--fn-pop-line) !important;
}

/*
  Scientific work areas are part of the app theme, not exempt "paper".
  Match whole class tokens (canvas/workspace/plot/etc.) so hard-coded white
  studio interiors cannot combine with a dark palette's inherited text.
*/
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class$="-canvas"], [class*="-canvas "],
  [class$="-workspace"], [class*="-workspace "],
  [class$="-viewport"], [class*="-viewport "],
  [class$="-stage"], [class*="-stage "],
  [class$="-plot"], [class*="-plot "],
  [class$="-chart"], [class*="-chart "],
  [class$="-chart-card"], [class*="-chart-card "],
  [class$="-chart-preview"], [class*="-chart-preview "],
  [class$="-figure"], [class*="-figure "],
  [class$="-diagram"], [class*="-diagram "],
  [class$="-legend"], [class*="-legend "],
  [class$="-graph"], [class*="-graph "],
  [class$="-network"], [class*="-network "],
  [class$="-matrix"], [class*="-matrix "],
  [class$="-heatmap"], [class*="-heatmap "],
  [class$="-plate"], [class*="-plate "],
  [class$="-struct"], [class*="-struct "]
):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-page *):not(.word-page-sheet):not(.word-page-sheet *):not(.rs-page):not(.rs-page *):not(.ps-page):not(.ps-page *) {
  background-color: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class$="-canvas"], [class*="-canvas "],
  [class$="-workspace"], [class*="-workspace "],
  [class$="-viewport"], [class*="-viewport "],
  [class$="-stage"], [class*="-stage "],
  [class$="-plot"], [class*="-plot "],
  [class$="-chart"], [class*="-chart "],
  [class$="-chart-card"], [class*="-chart-card "],
  [class$="-chart-preview"], [class*="-chart-preview "],
  [class$="-figure"], [class*="-figure "],
  [class$="-diagram"], [class*="-diagram "],
  [class$="-legend"], [class*="-legend "],
  [class$="-graph"], [class*="-graph "],
  [class$="-network"], [class*="-network "],
  [class$="-matrix"], [class*="-matrix "],
  [class$="-heatmap"], [class*="-heatmap "],
  [class$="-plate"], [class*="-plate "],
  [class$="-struct"], [class*="-struct "]
):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-page *):not(.word-page-sheet):not(.word-page-sheet *):not(.rs-page):not(.rs-page *):not(.ps-page):not(.ps-page *) svg text {
  color: var(--ink) !important;
  fill: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .js-plotly-plot :is(.main-svg, .bg) {
  background-color: var(--surface) !important;
  fill: var(--surface) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .js-plotly-plot :is(.gridlayer, .zerolinelayer) path {
  stroke: var(--plot-grid, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .js-plotly-plot text {
  fill: var(--ink) !important;
}

/* Plasmid Studio: theme the complete visualization stack shown on Home. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .ps-visualization,
  .ps-viz-header,
  .ps-viz-panel,
  .ps-map-workspace,
  .psc-root,
  .psc-body,
  .psc-overview,
  .psc-focus-host,
  .psc-detail,
  .psc-wrapped-detail,
  .ps-map-info,
  .ps-map-info-body
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .ps-viz-header,
  .psc-toolbar,
  .ps-viz-tabs,
  .ps-viz-footer,
  .ps-map-enzyme-filter,
  .psc-map-legend,
  .ps-map-legend-float .ps-legend
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .psc-tool,
  .psc-zoom-status,
  .ps-map-enzyme-choice,
  .ps-viz-tab
) {
  background: var(--control-bg) !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .ps-map-enzyme-choice.active,
  .ps-viz-tab.active
) {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .ps-viz-header h2,
  .ps-viz-header p,
  .ps-viz-download,
  .psc-map-legend-head strong,
  .psc-map-legend-head small,
  .psc-map-legend-label,
  .psc-map-legend-item > small,
  .ps-map-info > summary
) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .psc-map-legend-item:hover {
  background: var(--surface-3) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .psc-overview-title,
  .psc-overview-sub,
  .psc-feature-label,
  .psc-enzyme-label,
  .psc-enzyme-label-position,
  .psc-coordinate-label,
  .psc-linear-overview-label,
  .psc-linear-chart-label,
  .psc-linear-end-label,
  .psc-ring-focus-caption
) {
  fill: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .psc-backbone,
  .psc-backbone-inner,
  .psc-coordinate-tick,
  .psc-enzyme-tick
) {
  stroke: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root :is(
  .psc-label-leader,
  .psc-enzyme-label-leader,
  .psc-feature-label-leader
) {
  stroke: var(--ink-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .psc-ring-base-track {
  stroke: var(--surface-3) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.plasmid-studio-root .psc-ring-comp-track {
  stroke: var(--surface-2) !important;
}

/*
  Match box tokens even when a state/variant class follows them. For example,
  `tox-dash-card primary` previously missed [class$="-card"], which changed its
  text but left its old light background in a dark window.
*/
#os .window[data-app-color-theme][data-app-color-tone] .window-body :is(
  [class$="-card"], [class*="-card "],
  [class$="-panel"], [class*="-panel "],
  [class$="-pane"], [class*="-pane "],
  [class$="-tile"], [class*="-tile "],
  [class$="-box"], [class*="-box "],
  [class$="-area"], [class*="-area "],
  [class$="-option"], [class*="-option "],
  [class$="-metric"], [class*="-metric "],
  [class$="-stat"], [class*="-stat "],
  [class$="-callout"], [class*="-callout "]
):not(.plot-report-page):not(.plot-report-page *):not(.word-page):not(.word-page *):not(.word-page-sheet):not(.word-page-sheet *):not(.excel-cell):not(.excel-grid-scroll *):not(.hs-page):not(.hs-page *):not(.rs-page):not(.rs-page *):not(.ps-page):not(.ps-page *) {
  background-color: var(--surface) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/* Tox Studio: complete palette coverage for Home and every secondary view. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-main,
  .ss-dock,
  .tox-layout,
  .tox-main
) {
  background: var(--bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-titlebar,
  .ss-ribbon-tabs
) {
  background: var(--titlebar-bg) !important;
  background-image: none !important;
  color: var(--titlebar-text) !important;
  border-color: var(--titlebar-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-titlebar,
  .ss-ribbon-tabs
) :is(span, small, strong, b, i, button, .ss-tab:not(.active)) {
  color: var(--titlebar-text) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-ribbon-panel,
  .tox-nav,
  .tox-inspector,
  .tox-ai-head,
  .tox-ai-actions,
  .tox-ai-input,
  .tox-wizard-steps,
  .tox-wizard-footer,
  .tox-import-table th,
  .tox-grid-table th,
  .tox-review-sheet dt,
  .tox-import-summary dt
) {
  background: var(--surface-2) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-hero,
  .tox-study-area,
  .tox-dash-card,
  .tox-viz-canvas,
  .tox-ai-panel,
  .tox-ai-msg,
  .tox-wizard,
  .tox-import-dialog,
  .tox-template-option,
  .tox-endpoint-option,
  .tox-import-mode,
  .tox-group-edit-row,
  .tox-schedule-preview,
  .tox-review-callout,
  .tox-review-sheet dl,
  .tox-import-summary dl,
  .tox-file-drop,
  .tox-mapping-row,
  .tox-import-metrics > div,
  .tox-import-table-wrap,
  .tox-grid-scroll,
  .tox-report-section-editor,
  .itx-nav-section
) {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-rbtn,
  .tox-viz-btn,
  .tox-ai-quickbtn,
  .tox-ai-actions button,
  .tox-wizard-secondary,
  .tox-wizard-small,
  .tox-grid-action,
  .tox-cohort-btn
) {
  background: var(--control-bg) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--control-line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-rbtn.primary,
  .tox-ai-send,
  .tox-wizard-primary,
  .tox-grid-action.primary
),
#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-rbtn.primary,
  .tox-ai-send,
  .tox-wizard-primary,
  .tox-grid-action.primary
) :is(span, small, strong, b, i) {
  background: var(--primary) !important;
  background-image: none !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .ss-tab.active,
  .tox-nav-item.active,
  .tox-subtab.active,
  .tox-viz-btn.active,
  .tox-template-option.selected,
  .tox-endpoint-option.selected,
  .tox-import-mode.selected,
  .tox-cohort-btn.active
) {
  background: var(--accent-soft) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--accent) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-hero h2,
  .tox-section-heading h3,
  .tox-study-area-copy strong,
  .tox-dash-val,
  .tox-data-head h2,
  .tox-inspector-head,
  .tox-insp dd,
  .tox-risk-score,
  .tox-progress-ring strong
) {
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-hero p,
  .tox-section-heading p,
  .tox-study-area-copy small,
  .tox-dash-lbl,
  .tox-insp dt,
  .tox-notice,
  .tox-subtitle,
  .tox-empty-hint,
  .tox-wizard-help,
  .tox-wizard-saved,
  .tox-group-animal-row small,
  .tox-animal-preview,
  .tox-import-metrics span,
  .tox-grid-count,
  .tox-grid-empty,
  .tox-grid-limit,
  .tox-member-role-row small,
  .tox-science-note
) {
  color: var(--ink-soft) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root .tox-modal-backdrop {
  background: var(--modal-scrim) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-dash-card.primary,
  .tox-badge.info,
  .tox-qc-state
) {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-dash-card.ok,
  .tox-badge.ok,
  .tox-qc-state.reviewed,
  .tox-qc-state.approved,
  .tox-dirty-state.saved
) {
  background: var(--success-soft) !important;
  color: var(--success) !important;
  border-color: color-mix(in srgb, var(--success) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-dash-card.warn,
  .tox-badge.warn,
  .tox-dirty-state.dirty
) {
  background: var(--warning-soft) !important;
  color: var(--warning) !important;
  border-color: color-mix(in srgb, var(--warning) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-qc-state.rejected,
  .tox-qc-state.void,
  .tox-import-error
) {
  background: var(--danger-soft) !important;
  color: var(--danger) !important;
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line)) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-import-table th,
  .tox-import-table td,
  .tox-grid-table th,
  .tox-grid-table td,
  .tox-review-sheet dt,
  .tox-review-sheet dd,
  .tox-import-summary dt,
  .tox-import-summary dd
) {
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root :is(
  .tox-grid-table tr:hover td,
  .tox-grid-table tr.editing td,
  .tox-grid-table tr.new-record td
) {
  background: var(--surface-3) !important;
  color: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body.tox-studio-root .tox-study-area-icon {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
}

/* Runtime contrast repair for residual legacy and dynamically injected UI. */
#os .window[data-app-color-theme][data-app-color-tone] .window-body .app-theme-auto-surface {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .app-theme-auto-ink {
  color: var(--ink) !important;
  fill: var(--ink) !important;
}

#os .window[data-app-color-theme][data-app-color-tone] .window-body .app-theme-auto-on-primary {
  color: var(--on-primary) !important;
  fill: var(--on-primary) !important;
}
