/* Scoped presentation layer; other dashboards share this assets directory. */
.cgex-shell {
  --cgex-bg: #080d14;
  --cgex-panel: #101823;
  --cgex-panel-2: #162131;
  --cgex-border: #243144;
  --cgex-text: #e7eef7;
  --cgex-muted: #92a3b9;
  --cgex-green: #38d9a0;
  --cgex-red: #fb7185;
  --cgex-cyan: #8aafff;
  display:flex;
  flex-direction:column;
  padding:0 28px 28px;
  gap:18px;
  background:var(--cgex-ui-bg, #080d14);
  font-size:13px;
  line-height:1.5;
  color-scheme:var(--cgex-ui-scheme, dark);
}
.cgex-shell > * { order:6; min-width:0; }
.cgex-shell > .cgex-topbar { order:0; }
.cgex-shell > .cgex-toolbar { order:1; }
.cgex-shell > #cgex-metricbar { order:2; }
.cgex-shell > #cgex-hedge-wall-panel { order:3; }
.cgex-shell > #cgex-reference-heading { order:4; }
.cgex-shell > #cgex-main { order:5; }
.cgex-topbar {
  height:88px;
  padding:0 4px;
  background:transparent;
  border-bottom:1px solid var(--cgex-ui-border, #1c2839);
  gap:24px;
}
.cgex-brand { gap:14px; }
.cgex-brand-mark {
  width:42px; height:42px;
  border-radius:12px;
  border-color:var(--cgex-ui-border, #304767);
  color:var(--cgex-ui-blue, #a7c4ff);
  background:var(--cgex-ui-field, #14233a);
  box-shadow:none;
  font-size:25px;
}
.cgex-brand-title { font-size:21px; font-weight:650; letter-spacing:-.03em; }
.cgex-brand-subtitle { font-size:11px; text-transform:none; letter-spacing:.02em; color:var(--cgex-ui-muted, #8a9bb1); margin-top:6px; }
.cgex-nav { display:flex; gap:28px; margin-left:auto; }
.cgex-nav-link { color:var(--cgex-ui-muted, #8fa1b9); text-decoration:none; font-size:12px; transition:color .15s; }
.cgex-nav-link:hover, .cgex-nav-link:focus-visible { color:var(--cgex-ui-text, #d7e6ff); }
.cgex-replay-badge { color:var(--cgex-ui-blue, #aac3eb); border:1px solid var(--cgex-ui-border, #2a3b52); background:var(--cgex-ui-panel, #121e30); border-radius:24px; padding:7px 12px; font-size:10px; letter-spacing:.08em; white-space:nowrap; }
.cgex-toolbar {
  padding:18px 20px 14px;
  background:var(--cgex-ui-bg, #0e1621);
  border:1px solid var(--cgex-ui-border, #243144);
  border-radius:14px;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:16px;
}
.cgex-control-label { font-size:10px; font-weight:550; letter-spacing:.035em; color:var(--cgex-ui-muted, #8fa1b9); height:auto; line-height:1.4; padding:0; margin-bottom:8px; text-transform:none; }
.cgex-toolbar > [data-label="Chart view"],
.cgex-toolbar > [data-label="Combine nearby strikes"],
.cgex-toolbar > [data-label="Historical flow"],
.cgex-toolbar > [data-label="TPO overlay"],
.cgex-toolbar > [data-label="Swing impact"] { display:none; }
.cgex-dropdown .Select-control {
  height:40px;
  border-radius:7px;
  background:var(--cgex-ui-panel, #131e2c) !important;
  border-color:var(--cgex-ui-border, #2b3b50) !important;
  transition:border-color .15s;
}
.cgex-dropdown.is-focused .Select-control, .cgex-dropdown .Select-control:hover { border-color:var(--cgex-ui-accent, #6f97d3) !important; }
.cgex-dropdown .Select-value, .cgex-dropdown .Select-value-label, .cgex-dropdown .Select-placeholder, .cgex-dropdown .Select-input, .cgex-dropdown .Select-input > input { font-size:12px; line-height:38px !important; }
.cgex-dropdown .Select-menu-outer { border-color:var(--cgex-ui-border, #334760); border-radius:8px; background:var(--cgex-ui-panel, #142030); box-shadow:0 16px 40px rgb(var(--cgex-ui-shadow, 0 0 0) / 0.533333); }
.cgex-dropdown .VirtualizedSelectOption { font-size:12px; background:var(--cgex-ui-panel, #142030); color:var(--cgex-ui-text, #c4d1e3); }
.cgex-dropdown .VirtualizedSelectFocusedOption { background:var(--cgex-ui-field, #223652); color:var(--cgex-ui-text, #fff); }
.cgex-tpo-toggle { height:40px; border-radius:7px; background:var(--cgex-ui-panel, #131e2c); border-color:var(--cgex-ui-border, #2b3b50); }
.cgex-tpo-toggle label { font-size:10px; letter-spacing:.03em; font-weight:550; }
.cgex-control input[type=number] { border-radius:5px; padding:4px 6px; margin-top:6px; }
.cgex-control-time { border-top:1px solid var(--cgex-ui-border, #233044); padding-top:12px; }
.cgex-time-wrap { background:transparent; border:none; padding:0 65px 0 0; }
.cgex-time-label { font-size:16px; right:0; top:0; color:var(--cgex-ui-blue, #b9d0f7); }
.cgex-replay-controls { margin:17px 0 0; gap:10px; }
.cgex-replay-controls .cgex-method { margin:0; font-size:11px; }
.cgex-time-wrap .rc-slider-mark-text { font-size:9px; color:var(--cgex-ui-muted, #8b9db4); }
.cgex-time-wrap .rc-slider-rail { background:var(--cgex-ui-field, #25354b); height:3px; }
.cgex-time-wrap .rc-slider-track { background:var(--cgex-ui-soft, #8aafff); height:3px; }
.cgex-time-wrap .rc-slider-handle { width:11px; height:11px; margin-top:-4px; border:2px solid var(--cgex-ui-accent, #a6c3ff); background:var(--cgex-ui-soft, #a6c3ff); }
.cgex-surface-button { border-radius:6px; background:var(--cgex-ui-panel, #152235); border-color:var(--cgex-ui-border, #2e4260); color:var(--cgex-ui-text, #c0d1e8); font-size:11px; }
.cgex-surface-button:focus-visible, .cgex-shell summary:focus-visible, .cgex-nav-link:focus-visible { outline:2px solid var(--cgex-ui-accent, #8aafff); outline-offset:4px; }
.cgex-metricbar { flex-wrap:wrap; border:1px solid var(--cgex-ui-border, #243144); border-radius:12px; background:var(--cgex-ui-bg, #0e1621); min-height:90px; padding:12px 0; }
.cgex-metric { height:auto; min-height:56px; flex:1; min-width:125px; padding:0 16px; align-items:flex-start; flex-direction:column; gap:8px; }
.cgex-metric-label { font-size:9px; color:var(--cgex-ui-muted, #93a5bd); font-weight:500; }
.cgex-metric-value { font-size:17px; font-weight:550; letter-spacing:-.035em; }
.cgex-metric:last-child { border-right:0; }
.cgex-opposite-heading, .cgex-reaction-panel, .cgex-surface-panel, .cgex-table-panel {
  margin:0 !important;
  border:1px solid var(--cgex-ui-border, #243144);
  border-radius:14px;
  background:var(--cgex-ui-bg, #0d131b);
  padding:22px;
}
.cgex-reaction-title { color:var(--cgex-ui-text, #e2ebf7); font-size:14px; font-weight:600; letter-spacing:.015em; }
#cgex-hedge-section-title { font-size:20px; letter-spacing:-.025em; }
#cgex-hedge-section-colors { font-size:10px; color:var(--cgex-ui-muted, #8da0b8); letter-spacing:.045em; padding-top:7px !important; }
.cgex-level-toolbar { display:grid; grid-template-columns:minmax(280px, 1.3fr) 255px minmax(240px, 1.2fr) minmax(190px, .8fr); gap:16px; margin:20px 0 14px; align-items:start; }
.cgex-level-toolbar .cgex-dropdown { width:100% !important; }
#cgex-remaining-gamma-count-controls { flex-direction:column; gap:0 !important; align-items:stretch !important; }
.cgex-method { font-size:11px; line-height:1.7; color:var(--cgex-ui-muted, #91a3bb); }
.cgex-opposite-summary { font-size:11px; line-height:1.7; color:var(--cgex-ui-text, #a5bada); }
.cgex-shell details:not(.cgex-theme-menu) { border-top:1px solid var(--cgex-ui-border, #263448); margin-top:14px; padding-top:12px; }
.cgex-shell summary { cursor:pointer; color:var(--cgex-ui-text, #a8bad2); font-size:12px; padding:3px 0; }
.cgex-shell summary::marker { color:var(--cgex-ui-blue, #6985ad); }
.cgex-shell details[open]:not(.cgex-theme-menu) > summary { color:var(--cgex-ui-text, #d7e5fa); margin-bottom:16px; }
.cgex-shell > .cgex-analysis-disclosure, .cgex-shell > .cgex-feed-details { margin:0; padding:16px 20px; border:1px solid var(--cgex-ui-border, #243144); border-radius:12px; background:var(--cgex-ui-bg, #0e1621); }
.cgex-analysis-disclosure > summary { font-size:13px; }
.cgex-analysis-disclosure .cgex-reaction-panel { margin-top:16px !important; }
.cgex-feed-details { order:10; }
.cgex-source-badges { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0; }
.cgex-pill { border-radius:5px; padding:6px 9px; font-size:9px; }
.cgex-status { font-size:11px; line-height:1.7; }
.cgex-feed-details > div[id] { font-size:11px; line-height:1.7; padding:8px 0 !important; }
.cgex-feed-details .cgex-live-dot { display:none; }
.cgex-main { border:1px solid var(--cgex-ui-border, #243144); border-radius:14px; overflow:hidden; }
.cgex-table-panel { overflow-x:auto; }
.cgex-sidebar { background:var(--cgex-ui-bg, #0e1621); padding:14px; gap:14px; }
.cgex-card { background:var(--cgex-ui-panel, #111c2a); border-color:var(--cgex-ui-border, #293a51); border-radius:9px; padding:15px; }
.cgex-card-title { color:var(--cgex-ui-blue, #9eb6d5); font-size:10px; }
.cgex-card-row { font-size:11px; min-height:30px; color:var(--cgex-ui-muted, #91a3bb); }
.cgex-card-row b { font-size:11px; }
.cgex-shell .modebar { border-radius:6px; background:transparent !important; padding:4px; }
.cgex-shell .modebar-btn path { fill:var(--cgex-ui-blue, #8ba1be) !important; }
.cgex-shell .modebar-btn.active path { fill:var(--cgex-ui-blue, #b9d0fa) !important; }
.cgex-shell .dash-table-container .dash-spreadsheet-container { border-radius:8px; }
.cgex-shell .dash-table-container th { font-weight:550 !important; }
.cgex-shell .dash-table-container td, .cgex-shell .dash-table-container th { border-color:var(--cgex-ui-border, #27374b) !important; }
.cgex-node-metrics { display:none; }
.cgex-node-mode #cgex-metricbar { display:none; }
.cgex-node-mode .cgex-toolbar { grid-template-columns:110px 1.1fr 1fr 1fr 1fr; }
.cgex-node-mode .cgex-toolbar > [data-label="Live / replay"],
.cgex-node-mode .cgex-toolbar > [data-label="Chart view"],
.cgex-node-mode .cgex-toolbar > [data-label="Combine nearby strikes"],
.cgex-node-mode .cgex-toolbar > [data-label="Historical flow"],
.cgex-node-mode .cgex-toolbar > [data-label="TPO overlay"],
.cgex-node-mode .cgex-toolbar > [data-label="Swing impact"] { display:none; }
.cgex-node-mode .cgex-toolbar > [data-label="Imbalance V2"] { position:absolute; right:20px; bottom:20px; }
.cgex-node-mode .cgex-toolbar > [data-label="Imbalance V2"] .cgex-control-label { display:none; }
.cgex-node-mode .cgex-toolbar > [data-label="Imbalance V2"] .cgex-tpo-toggle { border:none; background:transparent; padding:0; height:20px; }
.cgex-node-mode .cgex-toolbar > [data-label="Imbalance V2"] label::before { content:'Trade classification Â· '; color:var(--cgex-ui-muted, #8fa1b9); font-size:11px; text-transform:none; }
.cgex-node-mode .cgex-node-metrics { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); margin:22px 0; gap:12px; }
.cgex-node-stat { padding:15px 18px; background:var(--cgex-ui-panel, #101c2a); border:1px solid var(--cgex-ui-border, #25374f); border-radius:10px; }
.cgex-node-stat > span { display:block; font-size:9px; letter-spacing:.08em; color:var(--cgex-ui-blue, #99afcd); }
.cgex-node-stat > strong { display:block; margin:7px 0 4px; font-size:25px; letter-spacing:-.04em; font-weight:550; color:var(--cgex-ui-text, #e8f0fb); font-variant-numeric:tabular-nums; }
.cgex-node-stat > small { display:block; color:var(--cgex-ui-blue, #8da3c0); font-size:10px; }
.cgex-node-stat.cgex-call-wall, .cgex-node-stat.cgex-put-wall { grid-column:span 2; padding:11px 18px; }
.cgex-node-stat.cgex-call-wall { border-left:3px solid var(--cgex-ui-accent, #72c7f3); }
.cgex-node-stat.cgex-put-wall { border-left:3px solid var(--cgex-ui-accent, #e9bf69); }
.cgex-node-stat.cgex-positive-wall { border-left-color:var(--cgex-ui-accent, #38d9a0); }
.cgex-node-stat.cgex-negative-wall { border-left-color:var(--cgex-ui-accent, #fb7185); }
.cgex-node-stat.cgex-positive-wall > span { color:var(--cgex-ui-green, #38d9a0); }
.cgex-node-stat.cgex-negative-wall > span { color:var(--cgex-ui-red, #fb7185); }
.cgex-display-section { display:none; }
.cgex-node-mode .cgex-display-section { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:18px; padding:14px 16px; border:1px solid var(--cgex-ui-border, #25374f); border-radius:9px; background:var(--cgex-ui-panel, #101b29); }
.cgex-display-section .cgex-control-label { margin:0; }
.cgex-display-section small { color:var(--cgex-ui-blue, #8da3c0); font-size:11px; }
.cgex-display-options { width:250px; flex:0 0 auto; }
.cgex-walls-only .cgex-level-toolbar { grid-template-columns:minmax(280px, 1.3fr) minmax(240px, 1.2fr) minmax(190px, .8fr); }
.cgex-walls-only .cgex-node-stat.cgex-call-wall, .cgex-walls-only .cgex-node-stat.cgex-put-wall { grid-column:span 1; }
.cgex-call-wall > span { color:var(--cgex-ui-blue, #72c7f3); }
.cgex-put-wall > span { color:var(--cgex-ui-gold, #e9bf69); }
.cgex-node-updating { color:var(--cgex-ui-blue, #90a9cc); padding:12px; }
.cgex-node-mode #cgex-hedge-range-summary, .cgex-node-mode #cgex-hedge-vol-summary, .cgex-node-mode #cgex-flow-source-help { display:none; }
.cgex-node-mode #cgex-hedge-wall-summary, .cgex-node-mode #cgex-hedge-wall-table,
.cgex-node-mode details:has(#cgex-hedge-contract-table) { display:none; }
.cgex-node-mode .cgex-calculation-disclosure { margin:8px 0 16px; padding-top:0; border-top:0; }
.cgex-node-mode .cgex-calculation-disclosure summary { font-size:11px; color:var(--cgex-ui-blue, #8ba5c9); }
.cgex-node-mode #cgex-hedge-section-colors { text-transform:none; }
.cgex-node-mode #cgex-hedge-load-status:empty { display:none; }
.cgex-node-mode #cgex-hedge-wall-chart .modebar-container { top:28px !important; }
#cgex-reference-heading { font-size:11px; color:var(--cgex-ui-blue, #8da3c0); letter-spacing:.09em; margin:0 2px !important; padding-top:5px; }
.cgex-node-count-options { display:flex; gap:2px; padding:3px; border:1px solid var(--cgex-ui-border, #2b3b50); background:var(--cgex-ui-panel, #101b2b); border-radius:7px; height:40px; }
.cgex-node-count-options label { position:relative; display:flex !important; flex:1; justify-content:center; align-items:center; cursor:pointer; border-radius:4px; white-space:nowrap; color:var(--cgex-ui-blue, #8fa5c4); font-size:11px; transition:background .15s, color .15s; }
.cgex-node-count-options label:hover { background:var(--cgex-ui-field, #1d2e46); color:var(--cgex-ui-text, #d4e3fa); }
.cgex-node-count-options label:has(input:checked) { background:var(--cgex-ui-soft, #2a4163); color:var(--cgex-ui-text, #e0ebff); box-shadow:inset 0 0 0 1px rgb(var(--cgex-ui-shadow, 0 0 0) / 1); }
.cgex-node-count-options input { position:absolute; opacity:0; width:100%; height:100%; cursor:pointer; margin:0; }
.cgex-node-count-options label:has(input:focus-visible) { outline:2px solid var(--cgex-ui-accent, #8aafff); outline-offset:2px; }
@media (min-width:1700px) { .cgex-shell { padding-left:48px; padding-right:48px; } }
@media (max-width:1200px) {
  .cgex-shell { padding:0 18px 24px; }
  .cgex-toolbar { grid-template-columns:repeat(4, minmax(0,1fr)); }
  .cgex-level-toolbar { grid-template-columns:minmax(0,1.2fr) 255px minmax(0,1fr); }
  .cgex-level-toolbar > :last-child { grid-column:1 / -1; max-width:300px; }
  .cgex-metric-value { font-size:15px; }
  .cgex-nav { gap:16px; }
}
@media (max-width:800px) {
  .cgex-shell { padding:0 12px 20px; gap:12px; }
  .cgex-topbar { height:76px; gap:12px; }
  .cgex-brand-title { font-size:19px; }
  .cgex-nav { display:none; }
  .cgex-replay-badge { margin-left:auto; }
  .cgex-toolbar, .cgex-node-mode .cgex-toolbar { grid-template-columns:repeat(2, minmax(0,1fr)); padding:14px; }
  .cgex-control-time { grid-column:1 / -1; }
  .cgex-opposite-heading, .cgex-reaction-panel, .cgex-table-panel { padding:16px 12px; }
  .cgex-node-mode .cgex-node-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .cgex-node-stat { padding:12px; }
  .cgex-node-stat.cgex-call-wall, .cgex-node-stat.cgex-put-wall { grid-column:span 1; padding:12px; }
  .cgex-node-stat > strong { font-size:23px; }
  .cgex-level-toolbar { grid-template-columns:1fr; gap:12px; }
  .cgex-walls-only .cgex-level-toolbar { grid-template-columns:1fr; }
  .cgex-level-toolbar > :last-child { max-width:none; }
  .cgex-level-toolbar > :nth-child(3) { grid-column:1 / -1; }
  .cgex-node-mode .cgex-toolbar > [data-label="Imbalance V2"] { position:static; grid-column:1 / -1; }
  .cgex-time-wrap .rc-slider-mark-text:nth-child(2),
  .cgex-time-wrap .rc-slider-mark-text:nth-child(4),
  .cgex-time-wrap .rc-slider-mark-text:nth-child(5) { display:none; }
  #cgex-hedge-section-title { font-size:17px; }
  .cgex-metric { min-width:140px; }
}
@media (prefers-reduced-motion:reduce) { .cgex-shell * { transition:none !important; } }
