/* Dark Flow Futures — CRM theme integrity guard v1
   Visual-only. Keeps every legacy/dynamic CRM surface inside the selected theme.
   Dark mode intentionally overrides hard-coded light-era inline styles with !important.
   Light mode is not affected by these rules. */

html:not([data-df-theme="light"]){
  --df-integrity-bg:#06080d;
  --df-integrity-panel:#0d1218;
  --df-integrity-panel-2:#101720;
  --df-integrity-panel-3:#141c26;
  --df-integrity-line:rgba(148,163,184,.15);
  --df-integrity-line-soft:rgba(148,163,184,.09);
  --df-integrity-text:#e7ecf3;
  --df-integrity-strong:#f7f9fc;
  --df-integrity-muted:#8f9caf;
  --df-integrity-good:#73d7ab;
  --df-integrity-warn:#dfbd76;
  --df-integrity-bad:#ef96a0;
  --df-integrity-info:#91b4f4;
}

/* Core CRM surfaces — covers Dashboard, Accounts, Journey, Series, Signals,
   Orders, Trades, Risk/Daily, Modes, Prop Rules, Strategy, Admin, System,
   Add/Update and Setup. */
html:not([data-df-theme="light"]) body,
html:not([data-df-theme="light"]) main,
html:not([data-df-theme="light"]) .tab{
  color:var(--df-integrity-text)!important;
}
html:not([data-df-theme="light"]) .panel,
html:not([data-df-theme="light"]) .card,
html:not([data-df-theme="light"]) .form-panel,
html:not([data-df-theme="light"]) .firm-section,
html:not([data-df-theme="light"]) .broker-card,
html:not([data-df-theme="light"]) .control-field,
html:not([data-df-theme="light"]) .series-control-card,
html:not([data-df-theme="light"]) .strategy-route-panel,
html:not([data-df-theme="light"]) .strategy-route-card,
html:not([data-df-theme="light"]) .strategy-broker-card,
html:not([data-df-theme="light"]) .strategy-series-card,
html:not([data-df-theme="light"]) .account-admin-card,
html:not([data-df-theme="light"]) .admin-stat,
html:not([data-df-theme="light"]) .ej-health-panel,
html:not([data-df-theme="light"]) .ej-comparison-panel,
html:not([data-df-theme="light"]) .ej-errors-panel,
html:not([data-df-theme="light"]) .ej-cycle-panel{
  background:linear-gradient(180deg,rgba(15,21,29,.97),rgba(10,15,22,.97))!important;
  border-color:var(--df-integrity-line)!important;
  color:var(--df-integrity-text)!important;
}

/* Tables / grids must never fall back to white in dark mode. */
html:not([data-df-theme="light"]) .data-table-wrap,
html:not([data-df-theme="light"]) .ej-table-wrap,
html:not([data-df-theme="light"]) .ej-cycle-table-wrap,
html:not([data-df-theme="light"]) .account-table-wrap,
html:not([data-df-theme="light"]) table{
  background:#090e14!important;
  color:var(--df-integrity-text)!important;
  border-color:var(--df-integrity-line)!important;
}
html:not([data-df-theme="light"]) table thead,
html:not([data-df-theme="light"]) table thead tr,
html:not([data-df-theme="light"]) table thead th{
  background:#101720!important;
  color:#aab6c6!important;
  border-color:var(--df-integrity-line-soft)!important;
}
html:not([data-df-theme="light"]) table tbody,
html:not([data-df-theme="light"]) table tbody tr,
html:not([data-df-theme="light"]) table tbody td{
  background:#0a1017!important;
  color:#c9d3df!important;
  border-color:var(--df-integrity-line-soft)!important;
}
html:not([data-df-theme="light"]) table tbody tr:nth-child(even) td{background:#0b1119!important}
html:not([data-df-theme="light"]) table tbody tr:hover td{background:rgba(101,146,232,.045)!important}

/* Forms / selectors / code surfaces. */
html:not([data-df-theme="light"]) input,
html:not([data-df-theme="light"]) select,
html:not([data-df-theme="light"]) textarea,
html:not([data-df-theme="light"]) code,
html:not([data-df-theme="light"]) pre{
  background:#090e14!important;
  color:var(--df-integrity-strong)!important;
  border-color:#263446!important;
}
html:not([data-df-theme="light"]) select{color-scheme:dark!important}

/* CrossTrade Sync Reconcile v5 — current screenshot regression. */
html:not([data-df-theme="light"]) #syncDiagnosticsPanel{
  background:linear-gradient(180deg,#0d141d,#0a1017)!important;
  border-color:var(--df-integrity-line)!important;
  color:var(--df-integrity-text)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18)!important;
}
html:not([data-df-theme="light"]) #syncDiagnosticsPanel>div:first-child{
  background:#101720!important;
  border-bottom-color:var(--df-integrity-line)!important;
}
html:not([data-df-theme="light"]) #syncDiagnosticsBody{
  background:#0a1017!important;
  color:var(--df-integrity-text)!important;
}
html:not([data-df-theme="light"]) #syncDiagnosticsBody>div[style*="display:grid"]>div{
  background:#0d141d!important;
  border-color:var(--df-integrity-line)!important;
  color:#cbd4df!important;
}
html:not([data-df-theme="light"]) #syncDiagnosticsPanel strong[style*="color:#0f172a"],
html:not([data-df-theme="light"]) #syncDiagnosticsPanel [style*="color:#334155"]{color:var(--df-integrity-strong)!important}
html:not([data-df-theme="light"]) #syncDiagnosticsPanel [style*="color:#64748b"],
html:not([data-df-theme="light"]) #syncDiagnosticsPanel [style*="color:#475569"]{color:var(--df-integrity-muted)!important}

/* Hard-coded light-era neutral surfaces emitted by JS. Restrict to block containers
   so semantic chips stay compact and retain their status colors below. */
html:not([data-df-theme="light"]) .tab div[style*="background:#fff"],
html:not([data-df-theme="light"]) .tab div[style*="background: #fff"],
html:not([data-df-theme="light"]) .tab div[style*="background:#ffffff"],
html:not([data-df-theme="light"]) .tab div[style*="background: #ffffff"],
html:not([data-df-theme="light"]) .tab div[style*="background:#f8fafc"],
html:not([data-df-theme="light"]) .tab div[style*="background: #f8fafc"],
html:not([data-df-theme="light"]) .tab div[style*="background:#f9fafb"],
html:not([data-df-theme="light"]) .tab div[style*="background:#f1f5f9"]{
  background:#0d141d!important;
  color:var(--df-integrity-text)!important;
  border-color:var(--df-integrity-line)!important;
}

/* Semantic info/success/warning/error block fills: dark equivalents. */
html:not([data-df-theme="light"]) .tab div[style*="background:#eff6ff"],
html:not([data-df-theme="light"]) .tab div[style*="background:#eef6ff"],
html:not([data-df-theme="light"]) .tab div[style*="background:#dbeafe"]{
  background:rgba(101,146,232,.075)!important;
  color:var(--df-integrity-info)!important;
  border-color:rgba(101,146,232,.20)!important;
}
html:not([data-df-theme="light"]) .tab div[style*="background:#f0fdf4"],
html:not([data-df-theme="light"]) .tab div[style*="background:#ecfdf5"],
html:not([data-df-theme="light"]) .tab div[style*="background:#dcfce7"]{
  background:rgba(63,199,139,.065)!important;
  color:var(--df-integrity-good)!important;
  border-color:rgba(63,199,139,.20)!important;
}
html:not([data-df-theme="light"]) .tab div[style*="background:#fffbeb"],
html:not([data-df-theme="light"]) .tab div[style*="background:#fefce8"],
html:not([data-df-theme="light"]) .tab div[style*="background:#fef3c7"]{
  background:rgba(213,166,78,.065)!important;
  color:var(--df-integrity-warn)!important;
  border-color:rgba(213,166,78,.22)!important;
}
html:not([data-df-theme="light"]) .tab div[style*="background:#fef2f2"],
html:not([data-df-theme="light"]) .tab div[style*="background:#fff1f2"],
html:not([data-df-theme="light"]) .tab div[style*="background:#fee2e2"]{
  background:rgba(233,106,119,.065)!important;
  color:var(--df-integrity-bad)!important;
  border-color:rgba(233,106,119,.22)!important;
}

/* Legacy inline status pills. */
html:not([data-df-theme="light"]) .tab span[style*="background:#dcfce7"],
html:not([data-df-theme="light"]) .tab span[style*="background:#d1fae5"]{
  background:rgba(63,199,139,.12)!important;
  color:var(--df-integrity-good)!important;
  border:1px solid rgba(63,199,139,.18)!important;
}
html:not([data-df-theme="light"]) .tab span[style*="background:#fee2e2"],
html:not([data-df-theme="light"]) .tab span[style*="background:#fecaca"]{
  background:rgba(233,106,119,.12)!important;
  color:var(--df-integrity-bad)!important;
  border:1px solid rgba(233,106,119,.18)!important;
}
html:not([data-df-theme="light"]) .tab span[style*="background:#fef3c7"],
html:not([data-df-theme="light"]) .tab span[style*="background:#fde68a"]{
  background:rgba(213,166,78,.12)!important;
  color:var(--df-integrity-warn)!important;
  border:1px solid rgba(213,166,78,.18)!important;
}

/* Hard-coded legacy text colors mapped to readable dark-theme equivalents. */
html:not([data-df-theme="light"]) .tab [style*="color:#0f172a"]{color:var(--df-integrity-strong)!important}
html:not([data-df-theme="light"]) .tab [style*="color:#334155"]{color:#cbd4df!important}
html:not([data-df-theme="light"]) .tab [style*="color:#475569"],
html:not([data-df-theme="light"]) .tab [style*="color:#64748b"]{color:var(--df-integrity-muted)!important}
html:not([data-df-theme="light"]) .tab [style*="color:#1e3a8a"],
html:not([data-df-theme="light"]) .tab [style*="color:#2563eb"]{color:var(--df-integrity-info)!important}
html:not([data-df-theme="light"]) .tab [style*="color:#166534"]{color:var(--df-integrity-good)!important}
html:not([data-df-theme="light"]) .tab [style*="color:#92400e"]{color:var(--df-integrity-warn)!important}
html:not([data-df-theme="light"]) .tab [style*="color:#991b1b"]{color:var(--df-integrity-bad)!important}

/* Hard-coded pale borders used by older generated widgets. */
html:not([data-df-theme="light"]) .tab [style*="border:1px solid #dbe3ee"],
html:not([data-df-theme="light"]) .tab [style*="border: 1px solid #dbe3ee"],
html:not([data-df-theme="light"]) .tab [style*="border:1px solid #e2e8f0"],
html:not([data-df-theme="light"]) .tab [style*="border-bottom:1px solid #e2e8f0"]{
  border-color:var(--df-integrity-line)!important;
}

/* Keep scrollbars, empty states and helper text inside the same visual language. */
html:not([data-df-theme="light"]) .empty-state,
html:not([data-df-theme="light"]) .crm-session-note,
html:not([data-df-theme="light"]) .helper,
html:not([data-df-theme="light"]) small{color:var(--df-integrity-muted)}
html:not([data-df-theme="light"]) *{scrollbar-color:#273547 transparent}
html:not([data-df-theme="light"]) *::-webkit-scrollbar-track{background:transparent}
html:not([data-df-theme="light"]) *::-webkit-scrollbar-thumb{background:#273547;background-clip:padding-box}

/* Safety: do not flatten explicitly semantic Mission Control states. */
html:not([data-df-theme="light"]) .ok,
html:not([data-df-theme="light"]) .good{color:var(--df-integrity-good)!important}
html:not([data-df-theme="light"]) .err,
html:not([data-df-theme="light"]) .bad{color:var(--df-integrity-bad)!important}
