/* Shared by the dashboard, Lab, dialogs and independent chart windows. */
html[data-cgex-theme=white] {
  color-scheme: light; --cgex-ui-scheme: light;
  --cgex-ui-bg: #ffffff;
  --cgex-rgb-bg: 255 255 255;
  --cgex-ui-panel: #f6f7f9;
  --cgex-rgb-panel: 246 247 249;
  --cgex-ui-elevated: #ffffff;
  --cgex-rgb-elevated: 255 255 255;
  --cgex-ui-field: #eef1f5;
  --cgex-rgb-field: 238 241 245;
  --cgex-ui-border: #d3d9e2;
  --cgex-rgb-border: 211 217 226;
  --cgex-ui-text: #252e3b;
  --cgex-rgb-text: 37 46 59;
  --cgex-ui-muted: #566375;
  --cgex-rgb-muted: 86 99 117;
  --cgex-ui-subtle: #606d7e;
  --cgex-rgb-subtle: 96 109 126;
  --cgex-ui-accent: #42648a;
  --cgex-rgb-accent: 66 100 138;
  --cgex-ui-soft: #e5ecf5;
  --cgex-rgb-soft: 229 236 245;
  --cgex-ui-green: #237a62;
  --cgex-rgb-green: 35 122 98;
  --cgex-ui-red: #b34455;
  --cgex-rgb-red: 179 68 85;
  --cgex-ui-blue: #3d63aa;
  --cgex-rgb-blue: 61 99 170;
  --cgex-ui-cyan: #147482;
  --cgex-rgb-cyan: 20 116 130;
  --cgex-ui-gold: #91630e;
  --cgex-rgb-gold: 145 99 14;
  --cgex-ui-purple: #7b55a3;
  --cgex-rgb-purple: 123 85 163;
  --cgex-ui-orange: #a45623;
  --cgex-rgb-orange: 164 86 35;
  --cgex-ui-pink: #a3437a;
  --cgex-rgb-pink: 163 67 122;
  --cgex-ui-neutral: #606d7e;
  --cgex-rgb-neutral: 96 109 126;
  --cgex-ui-up: #237a62;
  --cgex-rgb-up: 35 122 98;
  --cgex-ui-down: #b34455;
  --cgex-rgb-down: 179 68 85;
  --cgex-ui-upfill: #d4e8df;
  --cgex-rgb-upfill: 212 232 223;
  --cgex-ui-downfill: #ecd2d7;
  --cgex-rgb-downfill: 236 210 215;
  --cgex-ui-grid: #e5e9ef;
  --cgex-rgb-grid: 229 233 239;
  --cgex-ui-shadow: 31 42 56;
  --cgex-ui-icon: brightness(0) saturate(100%);
}
html[data-cgex-theme=black] {
  color-scheme: dark; --cgex-ui-scheme: dark;
  --cgex-ui-bg: #101214;
  --cgex-rgb-bg: 16 18 20;
  --cgex-ui-panel: #181b1f;
  --cgex-rgb-panel: 24 27 31;
  --cgex-ui-elevated: #1c2025;
  --cgex-rgb-elevated: 28 32 37;
  --cgex-ui-field: #22272e;
  --cgex-rgb-field: 34 39 46;
  --cgex-ui-border: #363e48;
  --cgex-rgb-border: 54 62 72;
  --cgex-ui-text: #dce1e7;
  --cgex-rgb-text: 220 225 231;
  --cgex-ui-muted: #a8b2bf;
  --cgex-rgb-muted: 168 178 191;
  --cgex-ui-subtle: #96a2b2;
  --cgex-rgb-subtle: 150 162 178;
  --cgex-ui-accent: #a0bbdc;
  --cgex-rgb-accent: 160 187 220;
  --cgex-ui-soft: #29384b;
  --cgex-rgb-soft: 41 56 75;
  --cgex-ui-green: #80c7a9;
  --cgex-rgb-green: 128 199 169;
  --cgex-ui-red: #e095a1;
  --cgex-rgb-red: 224 149 161;
  --cgex-ui-blue: #8eaff0;
  --cgex-rgb-blue: 142 175 240;
  --cgex-ui-cyan: #75c3cd;
  --cgex-rgb-cyan: 117 195 205;
  --cgex-ui-gold: #d6b56d;
  --cgex-rgb-gold: 214 181 109;
  --cgex-ui-purple: #b79bdf;
  --cgex-rgb-purple: 183 155 223;
  --cgex-ui-orange: #dba676;
  --cgex-rgb-orange: 219 166 118;
  --cgex-ui-pink: #d49cbd;
  --cgex-rgb-pink: 212 156 189;
  --cgex-ui-neutral: #b1bccb;
  --cgex-rgb-neutral: 177 188 203;
  --cgex-ui-up: #80c7a9;
  --cgex-rgb-up: 128 199 169;
  --cgex-ui-down: #e095a1;
  --cgex-rgb-down: 224 149 161;
  --cgex-ui-upfill: #315747;
  --cgex-rgb-upfill: 49 87 71;
  --cgex-ui-downfill: #643b45;
  --cgex-rgb-downfill: 100 59 69;
  --cgex-ui-grid: #282e35;
  --cgex-rgb-grid: 40 46 53;
  --cgex-ui-shadow: 0 0 0;
  --cgex-ui-icon: none;
}
html[data-cgex-theme=cream] {
  color-scheme: light; --cgex-ui-scheme: light;
  --cgex-ui-bg: #f6f0e3;
  --cgex-rgb-bg: 246 240 227;
  --cgex-ui-panel: #eee6d6;
  --cgex-rgb-panel: 238 230 214;
  --cgex-ui-elevated: #fbf6ec;
  --cgex-rgb-elevated: 251 246 236;
  --cgex-ui-field: #e8decb;
  --cgex-rgb-field: 232 222 203;
  --cgex-ui-border: #cdbfa7;
  --cgex-rgb-border: 205 191 167;
  --cgex-ui-text: #403a31;
  --cgex-rgb-text: 64 58 49;
  --cgex-ui-muted: #695e50;
  --cgex-rgb-muted: 105 94 80;
  --cgex-ui-subtle: #6c6050;
  --cgex-rgb-subtle: 108 96 80;
  --cgex-ui-accent: #735b43;
  --cgex-rgb-accent: 115 91 67;
  --cgex-ui-soft: #e3d5bc;
  --cgex-rgb-soft: 227 213 188;
  --cgex-ui-green: #3c6b49;
  --cgex-rgb-green: 60 107 73;
  --cgex-ui-red: #9a443d;
  --cgex-rgb-red: 154 68 61;
  --cgex-ui-blue: #48618c;
  --cgex-rgb-blue: 72 97 140;
  --cgex-ui-cyan: #306969;
  --cgex-rgb-cyan: 48 105 105;
  --cgex-ui-gold: #815915;
  --cgex-rgb-gold: 129 89 21;
  --cgex-ui-purple: #745480;
  --cgex-rgb-purple: 116 84 128;
  --cgex-ui-orange: #8e5027;
  --cgex-rgb-orange: 142 80 39;
  --cgex-ui-pink: #8e4e64;
  --cgex-rgb-pink: 142 78 100;
  --cgex-ui-neutral: #6c6050;
  --cgex-rgb-neutral: 108 96 80;
  --cgex-ui-up: #3c6b49;
  --cgex-rgb-up: 60 107 73;
  --cgex-ui-down: #9a443d;
  --cgex-rgb-down: 154 68 61;
  --cgex-ui-upfill: #d2dcc3;
  --cgex-rgb-upfill: 210 220 195;
  --cgex-ui-downfill: #e7c7ba;
  --cgex-rgb-downfill: 231 199 186;
  --cgex-ui-grid: #e3d8c3;
  --cgex-rgb-grid: 227 216 195;
  --cgex-ui-shadow: 69 52 30;
  --cgex-ui-icon: brightness(0) saturate(100%);
}
html[data-cgex-theme] .cgex-shell {
  --cgex-bg:var(--cgex-ui-bg); --cgex-panel:var(--cgex-ui-panel);
  --cgex-panel-2:var(--cgex-ui-field); --cgex-border:var(--cgex-ui-border);
  --cgex-text:var(--cgex-ui-text); --cgex-muted:var(--cgex-ui-muted);
  --cgex-green:var(--cgex-ui-green); --cgex-red:var(--cgex-ui-red);
  --cgex-cyan:var(--cgex-ui-cyan); --cgex-blue:var(--cgex-ui-blue); --cgex-gold:var(--cgex-ui-gold);
  --lab-border:var(--cgex-ui-border); --lab-muted:var(--cgex-ui-muted);
  background:var(--cgex-ui-bg); color:var(--cgex-ui-text); color-scheme:var(--cgex-ui-scheme);
}
html[data-cgex-theme] body { background:var(--cgex-ui-bg); }
html[data-cgex-theme] .cgex-shell :is(input,select,textarea) { color:var(--cgex-ui-text); accent-color:var(--cgex-ui-accent); caret-color:var(--cgex-ui-accent); }
html[data-cgex-theme] .cgex-shell :is(input[type=number],input[type=text],select,textarea) { background:var(--cgex-ui-field); border-color:var(--cgex-ui-border); }
html[data-cgex-theme] .cgex-shell input:disabled { color:var(--cgex-ui-subtle); }
html[data-cgex-theme] .cgex-shell :is(.Select-value-label,.Select-input>input) { color:var(--cgex-ui-text) !important; }
html[data-cgex-theme] .cgex-shell .Select-placeholder { color:var(--cgex-ui-subtle) !important; }
html[data-cgex-theme] .cgex-shell :is(.Select-menu-outer,.Select-menu,.VirtualizedSelectOption,.Select-option) { background:var(--cgex-ui-elevated); color:var(--cgex-ui-text); border-color:var(--cgex-ui-border); }
html[data-cgex-theme] .cgex-shell :is(.VirtualizedSelectFocusedOption,.Select-option.is-focused,.Select-option.is-selected) { background:var(--cgex-ui-soft); color:var(--cgex-ui-text); }
html[data-cgex-theme] .cgex-shell .Select.is-focused > .Select-control { border-color:var(--cgex-ui-accent) !important; box-shadow:0 0 0 2px rgb(var(--cgex-rgb-accent) / .12); }
html[data-cgex-theme] .cgex-shell .Select-arrow { border-top-color:var(--cgex-ui-muted); }
html[data-cgex-theme] .cgex-shell :is(.Select-clear-zone,.Select-arrow-zone) { color:var(--cgex-ui-muted); }
html[data-cgex-theme] .cgex-terminal-tool img { filter:var(--cgex-ui-icon); opacity:.7; }
html[data-cgex-theme=white] .cgex-terminal-tool img { opacity:.62; }
html[data-cgex-theme=cream] .cgex-terminal-tool img { opacity:.58; }
html[data-cgex-theme] .cgex-shell :is(.cgex-terminal-tool.is-active,.cgex-terminal-tool[aria-expanded=true],.cgex-surface-button.is-active,.cgex-lab-switch.is-active) { color:var(--cgex-ui-accent); background:var(--cgex-ui-soft); border-color:var(--cgex-ui-accent); box-shadow:inset 0 0 0 1px rgb(var(--cgex-rgb-accent) / .3); }
html[data-cgex-theme] .cgex-lab-nav label:has(input:checked) { background:var(--cgex-ui-soft); color:var(--cgex-ui-text); border-left-color:var(--cgex-ui-accent); }
html[data-cgex-theme] .cgex-lab-nav label:hover { color:var(--cgex-ui-text); background:var(--cgex-ui-field); }
html[data-cgex-theme] .cgex-shell :is(.cgex-node-count-options,.cgex-display-options,.cgex-tpo-toggle) label:has(input:checked) { background:var(--cgex-ui-soft); color:var(--cgex-ui-text); }
html[data-cgex-theme] .cgex-shell :is(button,summary,a,input,select,textarea):focus-visible { outline:2px solid var(--cgex-ui-accent); outline-offset:3px; }
html[data-cgex-theme] .cgex-shell button:disabled { cursor:default; }
html[data-cgex-theme] .cgex-shell a { color:var(--cgex-ui-blue); }
html[data-cgex-theme] .cgex-shell :is(h1,h2,h3,h4) { color:var(--cgex-ui-text); }
html[data-cgex-theme] .cgex-shell :is(.cgex-node-stat,.cgex-node-metric,.cgex-reaction-panel,.cgex-table-panel) { background:var(--cgex-ui-panel); border-color:var(--cgex-ui-border); }
html[data-cgex-theme] .cgex-shell :is(.cgex-node-stat>strong,.cgex-lab-inspector-title) { color:var(--cgex-ui-text); }
html[data-cgex-theme] .cgex-shell :is(.cgex-call-wall,.cgex-positive) { color:var(--cgex-ui-green); }
html[data-cgex-theme] .cgex-shell :is(.cgex-put-wall,.cgex-negative) { color:var(--cgex-ui-red); }
html[data-cgex-theme] .cgex-shell .dash-table-container :is(td,th) { background:var(--cgex-ui-panel) !important; color:var(--cgex-ui-text); border-color:var(--cgex-ui-border) !important; }
html[data-cgex-theme] .cgex-shell .dash-table-container th { background:var(--cgex-ui-field) !important; }
html[data-cgex-theme] .cgex-shell .dash-table-container td.cell--selected { background:var(--cgex-ui-soft) !important; }
html[data-cgex-theme] .cgex-shell .dash-table-container input { color:var(--cgex-ui-text) !important; background:var(--cgex-ui-field) !important; }
html[data-cgex-theme] .cgex-shell .rc-slider-rail { background:var(--cgex-ui-border); }
html[data-cgex-theme] .cgex-shell .rc-slider-track { background:var(--cgex-ui-accent); }
html[data-cgex-theme] .cgex-shell .rc-slider-handle { border-color:var(--cgex-ui-accent); background:var(--cgex-ui-elevated); }
html[data-cgex-theme] .cgex-shell .rc-slider-dot-active { border-color:var(--cgex-ui-accent); }
html[data-cgex-theme] .cgex-shell .rc-slider-mark-text { color:var(--cgex-ui-muted); }
html[data-cgex-theme] .cgex-shell .rc-slider-tooltip-inner { background:var(--cgex-ui-text); color:var(--cgex-ui-bg); box-shadow:none; }
html[data-cgex-theme] .cgex-shell .dash-spinner { color:var(--cgex-ui-accent); }
html[data-cgex-theme] .cgex-shell .dash-spinner > div { background-color:var(--cgex-ui-accent) !important; }
html[data-cgex-theme] .cgex-shell .modebar { background:var(--cgex-ui-panel) !important; border-radius:5px; }
html[data-cgex-theme] .cgex-shell .modebar-btn path { fill:var(--cgex-ui-muted); }
html[data-cgex-theme] .cgex-shell .modebar-btn.active path { fill:var(--cgex-ui-accent); }
html[data-cgex-theme] .cgex-shell * { scrollbar-color:var(--cgex-ui-subtle) var(--cgex-ui-panel); }
html[data-cgex-theme] ::selection { background:var(--cgex-ui-soft); color:var(--cgex-ui-text); }

/* A native, keyboard-accessible menu lives in the shared top bar. */
.cgex-theme-menu { position:relative; display:block; align-self:center; height:23px; margin:0; padding:0; border:0; flex-shrink:0; font:11px/1.4 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:0; color:var(--cgex-ui-text); }
.cgex-theme-menu > summary { display:flex; align-items:center; gap:7px; min-width:86px; height:23px; margin:0; padding:0 8px; box-sizing:border-box; font:inherit; line-height:1; cursor:pointer; list-style:none; border:1px solid var(--cgex-ui-border); border-radius:5px; background:var(--cgex-ui-field); color:var(--cgex-ui-text); user-select:none; }
.cgex-theme-menu > summary::-webkit-details-marker { display:none; }
.cgex-theme-menu > summary > :last-child { margin-left:auto; color:var(--cgex-ui-muted); }
.cgex-theme-chevron { width:5px; height:5px; flex-shrink:0; margin-right:1px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-1px) rotate(45deg); }
.cgex-theme-menu > summary:hover, .cgex-theme-menu[open] > summary { border-color:var(--cgex-ui-accent); background:var(--cgex-ui-soft); }
.cgex-theme-current-dot { width:10px; height:10px; border-radius:50%; background:var(--cgex-ui-bg); border:1px solid var(--cgex-ui-muted); }
.cgex-theme-popover { position:absolute; top:calc(100% + 9px); right:0; width:min(345px,calc(100vw - 28px)); padding:18px; box-sizing:border-box; z-index:300; background:var(--cgex-ui-elevated); border:1px solid var(--cgex-ui-border); border-radius:12px; box-shadow:0 12px 42px rgb(var(--cgex-ui-shadow) / .18); }
.cgex-theme-heading { font-size:14px; font-weight:600; color:var(--cgex-ui-text); }
.cgex-theme-popover > p { font-size:11px; color:var(--cgex-ui-muted); margin:5px 0 16px; }
.cgex-theme-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.cgex-theme-choices > button { display:flex; flex-direction:column; align-items:flex-start; position:relative; min-width:0; padding:5px 5px 10px; border:1px solid var(--cgex-ui-border); border-radius:8px; background:var(--cgex-ui-panel); color:var(--cgex-ui-text); font:inherit; text-align:left; cursor:pointer; }
.cgex-theme-choices > button:hover { border-color:var(--cgex-ui-accent); }
.cgex-theme-choices > button[aria-pressed=true] { border-color:var(--cgex-ui-accent); box-shadow:0 0 0 1px var(--cgex-ui-accent); background:var(--cgex-ui-soft); }
.cgex-theme-choices strong { margin:8px 4px 3px; font-size:12px; font-weight:600; }
.cgex-theme-choices small { margin:0 4px; font-size:9px; line-height:1.5; color:var(--cgex-ui-muted); white-space:nowrap; }
.cgex-theme-check { position:absolute; right:7px; bottom:26px; color:var(--cgex-ui-accent); visibility:hidden; }
.cgex-theme-choices [aria-pressed=true] .cgex-theme-check { visibility:visible; }
.cgex-theme-preview { display:flex; align-items:center; justify-content:center; gap:5px; position:relative; width:100%; height:57px; overflow:hidden; background:var(--preview-bg); border-radius:4px; }
.cgex-theme-preview i { position:absolute; top:0; left:0; right:0; height:8px; background:var(--preview-panel); }
.cgex-theme-preview b { position:relative; width:5px; height:16px; margin-top:9px; background:var(--preview-up); }
.cgex-theme-preview b::before { content:''; position:absolute; top:-4px; bottom:-4px; left:2px; width:1px; background:inherit; }
.cgex-theme-preview b:nth-of-type(2) { height:10px; margin-top:0; background:var(--preview-down); }
.cgex-theme-preview b:nth-of-type(3) { height:20px; margin-top:5px; }
.cgex-theme-preview b:nth-of-type(4) { height:11px; margin-top:-6px; }
.cgex-theme-preview b:nth-of-type(5) { height:13px; margin-top:-15px; background:var(--preview-down); }
.cgex-theme-note { margin-top:14px; font-size:10px; color:var(--cgex-ui-muted); }
.cgex-workspace-header .cgex-theme-menu { margin-left:auto; }
@media(max-width:650px) { .cgex-theme-menu > summary { min-width:73px; gap:5px; font-size:10px; } .cgex-terminal-topbar { gap:6px; } }
@media(max-width:450px) { .cgex-terminal-context { display:none; } .cgex-theme-popover { position:fixed; top:36px; right:12px; } }
@media(prefers-reduced-motion:reduce) { html[data-cgex-theme] .cgex-shell * { transition:none !important; } }

html[data-cgex-theme] { --cgex-bg:var(--cgex-ui-bg); --cgex-panel:var(--cgex-ui-panel); --cgex-text:var(--cgex-ui-text); }
.cgex-terminal-topbar:has(.cgex-theme-menu[open]) { z-index:200; }
html[data-cgex-theme] .cgex-shell .dash-table-container td[style*="color: rgb(85, 229, 141)"] { color:var(--cgex-ui-green) !important; }
html[data-cgex-theme] .cgex-shell .dash-table-container td[style*="color: rgb(255, 89, 110)"] { color:var(--cgex-ui-red) !important; }

html[data-cgex-theme] .cgex-shell .dash-table-container .dash-cell-value { color:inherit; }
