/* Covenant Edge readability override.
   Loaded after the main stylesheet so old stacked theme rules cannot wash out text. */

:root {
  color-scheme: light dark;
}

body.theme-light,
body:not(.theme-dark) {
  background:
    linear-gradient(90deg, rgba(0, 123, 145, 0.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(197, 143, 31, 0.045) 1px, transparent 1px),
    radial-gradient(circle at 9% 8%, rgba(73, 213, 229, 0.26), transparent 28%),
    radial-gradient(circle at 89% 4%, rgba(249, 196, 76, 0.22), transparent 30%),
    linear-gradient(180deg, #f7fffd 0%, #edf9f8 47%, #fbf7ed 100%) !important;
  color: #081625 !important;
}

body.theme-dark {
  background:
    linear-gradient(90deg, rgba(111, 234, 255, 0.07) 1px, transparent 1px),
    linear-gradient(0deg, rgba(95, 239, 190, 0.045) 1px, transparent 1px),
    radial-gradient(circle at 10% 7%, rgba(0, 139, 166, 0.24), transparent 30%),
    radial-gradient(circle at 90% 5%, rgba(244, 184, 62, 0.12), transparent 28%),
    linear-gradient(180deg, #07111b 0%, #0b1825 52%, #07111b 100%) !important;
  color: #f5fbff !important;
}

body.theme-light .topbar,
body:not(.theme-dark) .topbar {
  background: linear-gradient(135deg, #fbfffe 0%, #dff7fa 54%, #fff4df 100%) !important;
  border-bottom: 1px solid rgba(0, 124, 145, 0.28) !important;
}

body.theme-dark .topbar {
  background: linear-gradient(135deg, #07111b 0%, #0d2934 58%, #08111b 100%) !important;
  border-bottom: 1px solid rgba(111, 234, 255, 0.20) !important;
}

body.theme-light .topbar :is(h1, h2, h3, p, span, strong, label, a),
body:not(.theme-dark) .topbar :is(h1, h2, h3, p, span, strong, label, a) {
  color: #081625 !important;
  text-shadow: none !important;
}

body.theme-dark .topbar :is(h1, h2, h3, p, span, strong, label, a) {
  color: #f5fbff !important;
  text-shadow: none !important;
}

body.theme-light .brand-mark,
body:not(.theme-dark) .brand-mark,
body.theme-dark .brand-mark {
  background: linear-gradient(145deg, #061523, #0c3444) !important;
  color: #fff5d8 !important;
}

body.theme-light :is(.page-nav a, .theme-toggle, .live-clock, .mode label),
body:not(.theme-dark) :is(.page-nav a, .theme-toggle, .live-clock, .mode label) {
  background: rgba(255, 255, 255, 0.96) !important;
  border-color: rgba(11, 52, 74, 0.20) !important;
  color: #081625 !important;
}

body.theme-dark :is(.page-nav a, .theme-toggle, .live-clock, .mode label) {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(127, 230, 244, 0.23) !important;
  color: #f5fbff !important;
}

body.theme-light :is(.page-nav a.active, .deriv-button, button.primary),
body:not(.theme-dark) :is(.page-nav a.active, .deriv-button, button.primary),
body.theme-dark :is(.page-nav a.active, .deriv-button, button.primary) {
  background: linear-gradient(135deg, #00a0bd, #67e8f9) !important;
  color: #061520 !important;
  border-color: rgba(0, 138, 166, 0.45) !important;
}

body.theme-light :is(
  #authPanel,
  #appShell,
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .admin-panel,
  .bot-activity-panel,
  .signals-panel,
  .signal-window,
  .side-dock-panel,
  .menu-card,
  .bot,
  .section-start,
  .modal-card,
  .verse-card
),
body:not(.theme-dark) :is(
  #authPanel,
  #appShell,
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .admin-panel,
  .bot-activity-panel,
  .signals-panel,
  .signal-window,
  .side-dock-panel,
  .menu-card,
  .bot,
  .section-start,
  .modal-card,
  .verse-card
) {
  color: #081625 !important;
}

body.theme-dark :is(
  #authPanel,
  #appShell,
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .admin-panel,
  .bot-activity-panel,
  .signals-panel,
  .signal-window,
  .side-dock-panel,
  .menu-card,
  .bot,
  .section-start,
  .modal-card,
  .verse-card
) {
  color: #f5fbff !important;
}

body.theme-light :is(
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .admin-panel,
  .bot-activity-panel,
  .signals-panel,
  .signal-window,
  .side-dock-panel,
  .menu-card,
  .bot,
  .section-start,
  .modal-card,
  .verse-card
),
body:not(.theme-dark) :is(
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .admin-panel,
  .bot-activity-panel,
  .signals-panel,
  .signal-window,
  .side-dock-panel,
  .menu-card,
  .bot,
  .section-start,
  .modal-card,
  .verse-card
) {
  background: rgba(255, 255, 255, 0.98) !important;
  border-color: rgba(12, 50, 72, 0.17) !important;
}

body.theme-dark :is(
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .admin-panel,
  .bot-activity-panel,
  .signals-panel,
  .signal-window,
  .side-dock-panel,
  .menu-card,
  .bot,
  .section-start,
  .modal-card,
  .verse-card
) {
  background: rgba(10, 24, 38, 0.98) !important;
  border-color: rgba(127, 230, 244, 0.20) !important;
}

body.theme-light #appShell :is(h1, h2, h3, h4, strong, summary, label, button),
body.theme-light #authPanel :is(h1, h2, h3, h4, strong, summary, label, button),
body:not(.theme-dark) #appShell :is(h1, h2, h3, h4, strong, summary, label, button),
body:not(.theme-dark) #authPanel :is(h1, h2, h3, h4, strong, summary, label, button) {
  color: #081625 !important;
}

body.theme-dark #appShell :is(h1, h2, h3, h4, strong, summary, label, button),
body.theme-dark #authPanel :is(h1, h2, h3, h4, strong, summary, label, button) {
  color: #f5fbff !important;
}

body.theme-light #appShell :is(p, span, small, li, td, div),
body.theme-light #authPanel :is(p, span, small, li, td, div),
body:not(.theme-dark) #appShell :is(p, span, small, li, td, div),
body:not(.theme-dark) #authPanel :is(p, span, small, li, td, div) {
  color: #34495f !important;
}

body.theme-dark #appShell :is(p, span, small, li, td, div),
body.theme-dark #authPanel :is(p, span, small, li, td, div) {
  color: #c8d8e3 !important;
}

body.theme-light :is(.table-wrap, table),
body:not(.theme-dark) :is(.table-wrap, table) {
  background: #fbfefd !important;
  color: #081625 !important;
}

body.theme-dark :is(.table-wrap, table) {
  background: #081725 !important;
  color: #f5fbff !important;
}

body.theme-light :is(thead, table th),
body:not(.theme-dark) :is(thead, table th) {
  background: #d8e9ef !important;
  color: #081625 !important;
}

body.theme-dark :is(thead, table th) {
  background: #163247 !important;
  color: #f5fbff !important;
}

body.theme-light :is(tbody, tbody tr, table td),
body:not(.theme-dark) :is(tbody, tbody tr, table td) {
  background: #fbfefd !important;
  color: #20344a !important;
}

body.theme-dark :is(tbody, tbody tr, table td) {
  background: #0b1f31 !important;
  color: #edfaff !important;
}

body.theme-light :is(.review-card, .pnl-card, .readiness-item, .metric, .summary-pills > div, .signal-dashboard div, .signal-pnl-grid div, .payment-destination),
body:not(.theme-dark) :is(.review-card, .pnl-card, .readiness-item, .metric, .summary-pills > div, .signal-dashboard div, .signal-pnl-grid div, .payment-destination) {
  background: linear-gradient(145deg, #ffffff, #eefafa) !important;
  border-color: rgba(12, 50, 72, 0.16) !important;
  color: #081625 !important;
}

body.theme-dark :is(.review-card, .pnl-card, .readiness-item, .metric, .summary-pills > div, .signal-dashboard div, .signal-pnl-grid div, .payment-destination) {
  background: linear-gradient(145deg, rgba(19, 43, 62, 0.98), rgba(9, 22, 36, 0.98)) !important;
  border-color: rgba(127, 230, 244, 0.20) !important;
  color: #f5fbff !important;
}

body.theme-light :is(input, select, textarea),
body:not(.theme-dark) :is(input, select, textarea) {
  background-color: #ffffff !important;
  color: #081625 !important;
  border-color: rgba(12, 50, 72, 0.20) !important;
}

body.theme-dark :is(input, select, textarea) {
  background-color: #0d2235 !important;
  color: #f5fbff !important;
  border-color: rgba(127, 230, 244, 0.22) !important;
}

body.theme-light :is(.pnl-positive, .profit, .status-verified, .ready, .win, .health.running, .health.signal, .health.in_trade) {
  color: #047653 !important;
}

body.theme-dark :is(.pnl-positive, .profit, .status-verified, .ready, .win, .health.running, .health.signal, .health.in_trade) {
  color: #52efae !important;
}

body.theme-light :is(.pnl-negative, .loss, .status-rejected, .blocked, .danger-text, .health.error) {
  color: #b11f43 !important;
}

body.theme-dark :is(.pnl-negative, .loss, .status-rejected, .blocked, .danger-text, .health.error) {
  color: #ff8298 !important;
}

body.theme-light :is(.danger, .stop-all, .emergency-button),
body.theme-dark :is(.danger, .stop-all, .emergency-button) {
  color: #ffffff !important;
}

/* Final button + hero-stat contrast lock.
   Keep this last so cached/stacked theme rules cannot wash labels out. */
body.theme-light #appShell .ai-panel,
body:not(.theme-dark) #appShell .ai-panel {
  background: linear-gradient(135deg, rgba(226, 250, 248, 0.96), rgba(255, 248, 230, 0.96)) !important;
}

body.theme-dark #appShell .ai-panel {
  background: linear-gradient(135deg, rgba(20, 52, 61, 0.96), rgba(8, 24, 36, 0.98)) !important;
}

body.theme-light #appShell .ai-stats > div,
body:not(.theme-dark) #appShell .ai-stats > div {
  background: linear-gradient(145deg, #fffefa, #edfafa) !important;
  border: 1px solid rgba(12, 50, 72, 0.18) !important;
  color: #081625 !important;
  box-shadow: 0 14px 30px rgba(12, 50, 72, 0.10) !important;
}

body.theme-dark #appShell .ai-stats > div {
  background: linear-gradient(145deg, #102b3a, #081a29) !important;
  border: 1px solid rgba(111, 234, 255, 0.26) !important;
  color: #f5fbff !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.28) !important;
}

body.theme-light #appShell .ai-stats > div strong,
body:not(.theme-dark) #appShell .ai-stats > div strong {
  color: #071525 !important;
}

body.theme-light #appShell .ai-stats > div span,
body:not(.theme-dark) #appShell .ai-stats > div span {
  color: #405469 !important;
}

body.theme-dark #appShell .ai-stats > div strong {
  color: #f5fbff !important;
}

body.theme-dark #appShell .ai-stats > div span {
  color: #b9d1dc !important;
}

body.theme-light #appShell :is(button, .tab, .deriv-button),
body:not(.theme-dark) #appShell :is(button, .tab, .deriv-button) {
  color: #ffffff !important;
  text-shadow: none !important;
}

body.theme-dark #appShell :is(button, .tab, .deriv-button) {
  color: #061520 !important;
  text-shadow: none !important;
}

body.theme-light #appShell :is(#startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"], .auth-actions button:first-child),
body:not(.theme-dark) #appShell :is(#startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"], .auth-actions button:first-child) {
  background: linear-gradient(135deg, #061523, #0a2636) !important;
  border-color: rgba(6, 21, 35, 0.22) !important;
  color: #ffffff !important;
  box-shadow: 0 16px 34px rgba(6, 21, 35, 0.18) !important;
}

body.theme-dark #appShell :is(#startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"], .auth-actions button:first-child) {
  background: linear-gradient(135deg, #66e7f9, #11a8c1) !important;
  border-color: rgba(111, 234, 255, 0.38) !important;
  color: #061520 !important;
  box-shadow: 0 16px 34px rgba(17, 168, 193, 0.18) !important;
}

body.theme-light #appShell :is(.tabs .tab.active, .page-nav a.active),
body:not(.theme-dark) #appShell :is(.tabs .tab.active, .page-nav a.active) {
  background: linear-gradient(135deg, #061523, #0d3344) !important;
  border-color: rgba(6, 21, 35, 0.24) !important;
  color: #ffffff !important;
}

body.theme-dark #appShell :is(.tabs .tab.active, .page-nav a.active) {
  background: linear-gradient(135deg, #6feaff, #14a9c2) !important;
  border-color: rgba(111, 234, 255, 0.44) !important;
  color: #061520 !important;
}

body.theme-light #appShell :is(.tabs .tab:not(.active), button.secondary, .copy-payment, #loginBtn, #signupBtn, #connectDeriv, #switchDerivAccount, #refreshBalance, #acceptRisk, #logoutBtn, #resetPerformance, #closeModal, .bot [data-action="reset"], .bot [data-action="details"], .bot [data-action="logs"], [data-plan-save], [data-payment-status]),
body:not(.theme-dark) #appShell :is(.tabs .tab:not(.active), button.secondary, .copy-payment, #loginBtn, #signupBtn, #connectDeriv, #switchDerivAccount, #refreshBalance, #acceptRisk, #logoutBtn, #resetPerformance, #closeModal, .bot [data-action="reset"], .bot [data-action="details"], .bot [data-action="logs"], [data-plan-save], [data-payment-status]) {
  background: linear-gradient(180deg, #ffffff, #f2fbfb) !important;
  border-color: rgba(10, 45, 65, 0.18) !important;
  color: #071525 !important;
  box-shadow: 0 10px 22px rgba(10, 45, 65, 0.07) !important;
}

body.theme-dark #appShell :is(.tabs .tab:not(.active), button.secondary, .copy-payment, #loginBtn, #signupBtn, #connectDeriv, #switchDerivAccount, #refreshBalance, #acceptRisk, #logoutBtn, #resetPerformance, #closeModal, .bot [data-action="reset"], .bot [data-action="details"], .bot [data-action="logs"], [data-plan-save], [data-payment-status]) {
  background: linear-gradient(180deg, #132d40, #0b1d2e) !important;
  border-color: rgba(128, 229, 244, 0.24) !important;
  color: #f5fbff !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.24) !important;
}

body.theme-light #appShell :is(#stopAll, #stopSection, #emergencyStop, #disconnectDeriv, .danger, .bot [data-action="stop"]),
body:not(.theme-dark) #appShell :is(#stopAll, #stopSection, #emergencyStop, #disconnectDeriv, .danger, .bot [data-action="stop"]),
body.theme-dark #appShell :is(#stopAll, #stopSection, #emergencyStop, #disconnectDeriv, .danger, .bot [data-action="stop"]) {
  background: linear-gradient(135deg, #d92f59, #a9163b) !important;
  border-color: rgba(217, 47, 89, 0.35) !important;
  color: #ffffff !important;
  box-shadow: 0 16px 34px rgba(217, 47, 89, 0.20) !important;
}

body.theme-light #appShell #emergencyStop,
body:not(.theme-dark) #appShell #emergencyStop,
body.theme-dark #appShell #emergencyStop {
  background: linear-gradient(135deg, #07111d, #141b27) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
  color: #ffffff !important;
}

body.theme-light #appShell :is(.deriv-button, #connectDerivOAuth, #derivAuthBtn),
body:not(.theme-dark) #appShell :is(.deriv-button, #connectDerivOAuth, #derivAuthBtn),
body.theme-dark #appShell :is(.deriv-button, #connectDerivOAuth, #derivAuthBtn) {
  background: linear-gradient(135deg, #c9254f, #8f1832) !important;
  border-color: rgba(201, 37, 79, 0.36) !important;
  color: #ffffff !important;
}

body.theme-light #appShell button:disabled,
body:not(.theme-dark) #appShell button:disabled,
body.theme-dark #appShell button:disabled {
  opacity: 1 !important;
  cursor: not-allowed !important;
  filter: none !important;
  box-shadow: none !important;
}

body.theme-light #appShell button:disabled:not(.danger):not(.deriv-button),
body:not(.theme-dark) #appShell button:disabled:not(.danger):not(.deriv-button) {
  background: #dce8ee !important;
  border-color: rgba(10, 45, 65, 0.16) !important;
  color: #4e6172 !important;
}

body.theme-dark #appShell button:disabled:not(.danger):not(.deriv-button) {
  background: #173247 !important;
  border-color: rgba(128, 229, 244, 0.14) !important;
  color: #9eb4c2 !important;
}

body.theme-light #appShell :is(button.danger:disabled, .danger:disabled),
body:not(.theme-dark) #appShell :is(button.danger:disabled, .danger:disabled) {
  background: #efd0d8 !important;
  border-color: rgba(177, 31, 67, 0.18) !important;
  color: #8d2941 !important;
}

body.theme-dark #appShell :is(button.danger:disabled, .danger:disabled) {
  background: #4a2030 !important;
  border-color: rgba(255, 130, 152, 0.18) !important;
  color: #f0a9b7 !important;
}

body.theme-light #appShell :is(button span, button strong, .tab span, .tab strong),
body:not(.theme-dark) #appShell :is(button span, button strong, .tab span, .tab strong),
body.theme-dark #appShell :is(button span, button strong, .tab span, .tab strong) {
  color: inherit !important;
}

body.theme-light #authPanel :is(button, .deriv-button),
body:not(.theme-dark) #authPanel :is(button, .deriv-button) {
  color: #ffffff !important;
  text-shadow: none !important;
}

body.theme-dark #authPanel :is(button, .deriv-button) {
  color: #061520 !important;
  text-shadow: none !important;
}

body.theme-light #authPanel :is(button:not(.secondary), .deriv-button, #derivAuthBtn),
body:not(.theme-dark) #authPanel :is(button:not(.secondary), .deriv-button, #derivAuthBtn),
body.theme-dark #authPanel :is(button:not(.secondary), .deriv-button, #derivAuthBtn) {
  background: linear-gradient(135deg, #c9254f, #8f1832) !important;
  border-color: rgba(201, 37, 79, 0.36) !important;
  color: #ffffff !important;
}

body.theme-light #authPanel button.secondary,
body:not(.theme-dark) #authPanel button.secondary {
  background: linear-gradient(180deg, #ffffff, #f2fbfb) !important;
  border-color: rgba(10, 45, 65, 0.18) !important;
  color: #071525 !important;
  box-shadow: 0 10px 22px rgba(10, 45, 65, 0.07) !important;
}

body.theme-dark #authPanel button.secondary {
  background: linear-gradient(180deg, #132d40, #0b1d2e) !important;
  border-color: rgba(128, 229, 244, 0.24) !important;
  color: #f5fbff !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.24) !important;
}

body.theme-light #authPanel button:disabled,
body:not(.theme-dark) #authPanel button:disabled {
  background: #dce8ee !important;
  border-color: rgba(10, 45, 65, 0.16) !important;
  color: #4e6172 !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

body.theme-dark #authPanel button:disabled {
  background: #173247 !important;
  border-color: rgba(128, 229, 244, 0.14) !important;
  color: #9eb4c2 !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

/* Signal desk lock: the paper-PnL and chart panels are intentionally dark in both
   themes, so they need their own high-contrast text palette after global guards. */
body #appShell .signal-pnl,
body.theme-light #appShell .signal-pnl,
body:not(.theme-dark) #appShell .signal-pnl,
body.theme-dark #appShell .signal-pnl {
  background:
    linear-gradient(135deg, rgba(7, 26, 39, 0.98), rgba(13, 57, 66, 0.94)),
    #071a27 !important;
  border-color: rgba(102, 232, 249, 0.18) !important;
  color: #f1fbff !important;
}

body #appShell .signal-pnl :is(span, small, p),
body.theme-light #appShell .signal-pnl :is(span, small, p),
body:not(.theme-dark) #appShell .signal-pnl :is(span, small, p),
body.theme-dark #appShell .signal-pnl :is(span, small, p) {
  color: #b9d8e3 !important;
}

body #appShell .signal-pnl :is(strong, div),
body.theme-light #appShell .signal-pnl :is(strong, div),
body:not(.theme-dark) #appShell .signal-pnl :is(strong, div),
body.theme-dark #appShell .signal-pnl :is(strong, div) {
  color: #f5fdff !important;
}

body #appShell .signal-pnl .signal-pnl-head strong.profit,
body #appShell .signal-pnl strong.profit,
body.theme-light #appShell .signal-pnl .signal-pnl-head strong.profit,
body.theme-light #appShell .signal-pnl strong.profit,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-head strong.profit,
body:not(.theme-dark) #appShell .signal-pnl strong.profit,
body.theme-dark #appShell .signal-pnl .signal-pnl-head strong.profit,
body.theme-dark #appShell .signal-pnl strong.profit {
  color: #3dffad !important;
  text-shadow: 0 0 18px rgba(61, 255, 173, 0.34) !important;
}

body #appShell .signal-pnl .signal-pnl-head strong.loss,
body #appShell .signal-pnl strong.loss,
body.theme-light #appShell .signal-pnl .signal-pnl-head strong.loss,
body.theme-light #appShell .signal-pnl strong.loss,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-head strong.loss,
body:not(.theme-dark) #appShell .signal-pnl strong.loss,
body.theme-dark #appShell .signal-pnl .signal-pnl-head strong.loss,
body.theme-dark #appShell .signal-pnl strong.loss {
  color: #ff6b89 !important;
  text-shadow: 0 0 18px rgba(255, 107, 137, 0.28) !important;
}

body #appShell .signal-pnl .signal-pnl-grid div,
body.theme-light #appShell .signal-pnl .signal-pnl-grid div,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-grid div,
body.theme-dark #appShell .signal-pnl .signal-pnl-grid div {
  background: rgba(245, 253, 255, 0.93) !important;
  border-color: rgba(102, 232, 249, 0.18) !important;
  color: #071525 !important;
}

body #appShell .signal-pnl .signal-pnl-grid div :is(span, strong),
body.theme-light #appShell .signal-pnl .signal-pnl-grid div :is(span, strong),
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-grid div :is(span, strong),
body.theme-dark #appShell .signal-pnl .signal-pnl-grid div :is(span, strong) {
  color: #071525 !important;
}

body #appShell .signal-chart,
body.theme-light #appShell .signal-chart,
body:not(.theme-dark) #appShell .signal-chart,
body.theme-dark #appShell .signal-chart {
  background:
    linear-gradient(180deg, rgba(1, 8, 13, 0.99), rgba(2, 15, 20, 0.98)),
    #01080d !important;
  color: #e9fff9 !important;
}

body #appShell .signal-chart :is(.chart-head, .chart-head span, .chart-head strong, .chart-legend, .chart-legend span),
body.theme-light #appShell .signal-chart :is(.chart-head, .chart-head span, .chart-head strong, .chart-legend, .chart-legend span),
body:not(.theme-dark) #appShell .signal-chart :is(.chart-head, .chart-head span, .chart-head strong, .chart-legend, .chart-legend span),
body.theme-dark #appShell .signal-chart :is(.chart-head, .chart-head span, .chart-head strong, .chart-legend, .chart-legend span) {
  color: #e9fff9 !important;
}

body #appShell .badge.locked,
body.theme-light #appShell .badge.locked,
body:not(.theme-dark) #appShell .badge.locked,
body.theme-dark #appShell .badge.locked {
  background: linear-gradient(135deg, rgba(250, 204, 21, 0.20), rgba(20, 184, 166, 0.18)) !important;
  border-color: rgba(250, 204, 21, 0.38) !important;
  color: #ffef9a !important;
}

/* Product/pricing polish. These cards are buttons, so they need a final explicit
   palette after the global button rules. */
body #appShell .pricing-cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
  margin-bottom: 1.1rem !important;
}

body #appShell .pricing-card {
  position: relative !important;
  display: grid !important;
  gap: 0.55rem !important;
  min-height: 17rem !important;
  padding: 1.05rem !important;
  text-align: left !important;
  border-radius: 1.15rem !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

body #appShell .pricing-card::after {
  content: "" !important;
  position: absolute !important;
  inset: auto -20% -38% 26% !important;
  height: 8rem !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, rgba(255, 210, 77, 0.42), transparent 66%) !important;
  z-index: -1 !important;
}

body.theme-light #appShell .pricing-card,
body:not(.theme-dark) #appShell .pricing-card {
  background: linear-gradient(145deg, #ffffff, #edfafa 54%, #fff7e8) !important;
  border: 1px solid rgba(6, 45, 65, 0.18) !important;
  color: #071525 !important;
  box-shadow: 0 18px 45px rgba(9, 38, 56, 0.10) !important;
}

body.theme-dark #appShell .pricing-card {
  background: linear-gradient(145deg, #0e2638, #081725 56%, #172016) !important;
  border: 1px solid rgba(111, 234, 255, 0.20) !important;
  color: #f5fbff !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28) !important;
}

body.theme-light #appShell .pricing-card.active,
body:not(.theme-dark) #appShell .pricing-card.active {
  border-color: rgba(0, 149, 179, 0.68) !important;
  box-shadow: 0 22px 55px rgba(0, 143, 171, 0.18) !important;
}

body.theme-dark #appShell .pricing-card.active {
  border-color: rgba(111, 234, 255, 0.62) !important;
  box-shadow: 0 22px 55px rgba(35, 210, 238, 0.16) !important;
}

body #appShell .pricing-card.featured {
  border-top: 5px solid #10b981 !important;
}

body #appShell .pricing-card :is(strong, .plan-price, p, small, li, span) {
  color: inherit !important;
}

body #appShell .pricing-card > strong {
  font-size: 1.35rem !important;
}

body #appShell .pricing-card .plan-price {
  font-size: 1.8rem !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

body.theme-light #appShell .pricing-card .plan-price,
body:not(.theme-dark) #appShell .pricing-card .plan-price {
  color: #007f99 !important;
}

body.theme-dark #appShell .pricing-card .plan-price {
  color: #78efff !important;
}

body #appShell .pricing-card .plan-badge {
  display: inline-flex !important;
  width: fit-content !important;
  padding: 0.34rem 0.62rem !important;
  border-radius: 999px !important;
  font-size: 0.75rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

body.theme-light #appShell .pricing-card .plan-badge,
body:not(.theme-dark) #appShell .pricing-card .plan-badge {
  background: rgba(6, 21, 35, 0.08) !important;
  color: #082033 !important;
}

body.theme-dark #appShell .pricing-card .plan-badge {
  background: rgba(111, 234, 255, 0.12) !important;
  color: #dffbff !important;
}

body #appShell .pricing-card ul {
  display: grid !important;
  gap: 0.36rem !important;
  margin: 0.2rem 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body #appShell .pricing-card li {
  position: relative !important;
  padding-left: 1.1rem !important;
  font-weight: 750 !important;
}

body #appShell .pricing-card li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.48rem !important;
  width: 0.42rem !important;
  height: 0.42rem !important;
  border-radius: 999px !important;
  background: #10b981 !important;
}

body #appShell .signal-pnl .signal-pnl-head strong.profit,
body #appShell .signal-pnl .signal-pnl-head strong.loss {
  font-size: 1.32rem !important;
  font-weight: 950 !important;
}

body.theme-light #appShell .signal-pnl .signal-pnl-head strong.profit,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-head strong.profit,
body.theme-dark #appShell .signal-pnl .signal-pnl-head strong.profit {
  color: #37ffab !important;
}

body.theme-light #appShell .signal-pnl .signal-pnl-head strong.loss,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-head strong.loss,
body.theme-dark #appShell .signal-pnl .signal-pnl-head strong.loss {
  color: #ff6b89 !important;
}

@media (max-width: 980px) {
  body #appShell .pricing-cards {
    grid-template-columns: 1fr !important;
  }

  body #appShell .pricing-card {
    min-height: auto !important;
  }
}

/* Final trust/contrast pass. Keep this last: earlier broad theme rules can
   otherwise wash out buttons, paper PnL numbers, and signal activity logs. */
body.theme-light #appShell :is(#startAll, #startSection, #submitPayment, .bot [data-action="start"]),
body:not(.theme-dark) #appShell :is(#startAll, #startSection, #submitPayment, .bot [data-action="start"]) {
  background: linear-gradient(135deg, #071625, #0c2d3e) !important;
  border-color: rgba(7, 22, 37, 0.35) !important;
  color: #ffffff !important;
}

body.theme-dark #appShell :is(#startAll, #startSection, #submitPayment, .bot [data-action="start"]) {
  background: linear-gradient(135deg, #4fe2f6, #0ea6bf) !important;
  border-color: rgba(111, 234, 255, 0.55) !important;
  color: #061520 !important;
}

body.theme-light #appShell :is(#startAll, #startSection, #submitPayment, .bot [data-action="start"]) *,
body:not(.theme-dark) #appShell :is(#startAll, #startSection, #submitPayment, .bot [data-action="start"]) * {
  color: #ffffff !important;
}

body.theme-dark #appShell :is(#startAll, #startSection, #submitPayment, .bot [data-action="start"]) * {
  color: #061520 !important;
}

body.theme-light #appShell .signal-pnl .signal-pnl-grid strong.profit,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-grid strong.profit,
body.theme-light #appShell .pnl-mini strong.profit,
body:not(.theme-dark) #appShell .pnl-mini strong.profit,
body.theme-light #appShell .review-card strong.profit,
body:not(.theme-dark) #appShell .review-card strong.profit {
  color: #006f4c !important;
  text-shadow: none !important;
}

body.theme-light #appShell .signal-pnl .signal-pnl-grid strong.loss,
body:not(.theme-dark) #appShell .signal-pnl .signal-pnl-grid strong.loss,
body.theme-light #appShell .pnl-mini strong.loss,
body:not(.theme-dark) #appShell .pnl-mini strong.loss,
body.theme-light #appShell .review-card strong.loss,
body:not(.theme-dark) #appShell .review-card strong.loss {
  color: #a3163b !important;
  text-shadow: none !important;
}

body.theme-dark #appShell .signal-pnl .signal-pnl-grid strong.profit,
body.theme-dark #appShell .pnl-mini strong.profit,
body.theme-dark #appShell .review-card strong.profit {
  color: #55f5b7 !important;
  text-shadow: 0 0 16px rgba(85, 245, 183, 0.22) !important;
}

body.theme-dark #appShell .signal-pnl .signal-pnl-grid strong.loss,
body.theme-dark #appShell .pnl-mini strong.loss,
body.theme-dark #appShell .review-card strong.loss {
  color: #ff879c !important;
  text-shadow: 0 0 16px rgba(255, 135, 156, 0.18) !important;
}

body #appShell .signal-pnl .signal-pnl-head strong {
  font-size: 1rem !important;
  letter-spacing: 0 !important;
}

body #appShell .signal-performance-note {
  margin: -0.25rem 0 0.75rem !important;
  font-size: 0.88rem !important;
  line-height: 1.4 !important;
}

body.theme-light #appShell .signal-performance-note,
body:not(.theme-dark) #appShell .signal-performance-note {
  color: #b9d8e3 !important;
}

body.theme-dark #appShell .signal-performance-note {
  color: #c8e0ea !important;
}

body.theme-light #appShell .signal-latest,
body:not(.theme-dark) #appShell .signal-latest {
  background: linear-gradient(145deg, #ffffff, #eefafa) !important;
  border-color: rgba(12, 50, 72, 0.18) !important;
  color: #071525 !important;
}

body.theme-dark #appShell .signal-latest {
  background: linear-gradient(145deg, rgba(17, 39, 55, 0.98), rgba(8, 20, 32, 0.98)) !important;
  border-color: rgba(127, 230, 244, 0.20) !important;
  color: #f5fbff !important;
}

body #appShell .signal-latest :is(span, strong) {
  color: inherit !important;
}

body #appShell .mini-log-drawer summary {
  color: #f5fbff !important;
}

body.theme-light #appShell .mini-log-drawer,
body:not(.theme-dark) #appShell .mini-log-drawer {
  background: #071625 !important;
  border-color: rgba(7, 22, 37, 0.22) !important;
  color: #f5fbff !important;
}

body.theme-dark #appShell .mini-log-drawer {
  background: #081522 !important;
  border-color: rgba(111, 234, 255, 0.18) !important;
  color: #f5fbff !important;
}

body #appShell .mini-log {
  background: #06111d !important;
  color: #e9fff9 !important;
  border-color: rgba(111, 234, 255, 0.18) !important;
}

body.theme-dark #appShell .command-deck .ai-stats > div {
  background: linear-gradient(145deg, #102a3b, #081927) !important;
  border-color: rgba(111, 234, 255, 0.24) !important;
  color: #f5fbff !important;
}

body.theme-dark #appShell .command-deck .ai-stats > div :is(span, strong),
body.theme-light #appShell .command-deck .ai-stats > div :is(span, strong),
body:not(.theme-dark) #appShell .command-deck .ai-stats > div :is(span, strong) {
  color: inherit !important;
}

/* Two-tier/public contrast lock. This block intentionally sits at the very end
   so older theme and button rules cannot make labels disappear. */
body.theme-dark #appShell,
body.theme-dark #authPanel {
  color: #f5fbff !important;
}

body.theme-dark #appShell :is(
  .topbar,
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .signals-panel,
  .signal-window,
  .admin-panel,
  .bot,
  .section-start,
  .bot-activity-panel,
  .modal-card,
  .side-dock-panel,
  .menu-card,
  .collapsible-card
) {
  color: #f5fbff !important;
}

body.theme-dark #appShell :is(
  .topbar,
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .signals-panel,
  .signal-window,
  .admin-panel,
  .bot,
  .section-start,
  .bot-activity-panel,
  .modal-card,
  .side-dock-panel,
  .menu-card,
  .collapsible-card
) :is(h1, h2, h3, h4, summary, label, strong, b, th) {
  color: #f8fcff !important;
}

body.theme-dark #appShell :is(
  .topbar,
  .auth-card,
  .command-deck,
  .readiness-panel,
  .billing-panel,
  .review-panel,
  .pnl-panel,
  .history-panel,
  .signals-panel,
  .signal-window,
  .admin-panel,
  .bot,
  .section-start,
  .bot-activity-panel,
  .modal-card,
  .side-dock-panel,
  .menu-card,
  .collapsible-card
) :is(p, span, small, li, td, div) {
  color: #cbddea !important;
}

body.theme-light #appShell :is(button, .tab, .page-nav a, .theme-toggle, .live-clock, .mode label, .secondary-link),
body:not(.theme-dark) #appShell :is(button, .tab, .page-nav a, .theme-toggle, .live-clock, .mode label, .secondary-link) {
  color: #071525 !important;
  text-shadow: none !important;
}

body.theme-dark #appShell :is(button, .tab, .page-nav a, .theme-toggle, .live-clock, .mode label, .secondary-link) {
  color: #f5fbff !important;
  text-shadow: none !important;
}

body.theme-light #appShell :is(.page-nav a.active, .tabs .tab.active, #startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"]),
body:not(.theme-dark) #appShell :is(.page-nav a.active, .tabs .tab.active, #startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"]) {
  background: linear-gradient(135deg, #0a7f98, #4ed7e8) !important;
  border-color: rgba(7, 22, 37, 0.26) !important;
  color: #061520 !important;
}

body.theme-dark #appShell :is(.page-nav a.active, .tabs .tab.active, #startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"]) {
  background: linear-gradient(135deg, #55e4f5, #11a7be) !important;
  border-color: rgba(111, 234, 255, 0.50) !important;
  color: #061520 !important;
}

body.theme-light #appShell :is(.page-nav a.active, .tabs .tab.active, #startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"]) *,
body:not(.theme-dark) #appShell :is(.page-nav a.active, .tabs .tab.active, #startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"]) *,
body.theme-dark #appShell :is(.page-nav a.active, .tabs .tab.active, #startAll, #startSection, #submitPayment, #saveSettings, #saveBotSettings, #refresh, .bot [data-action="start"], .bot [data-action="unpause"]) * {
  color: inherit !important;
}

body.theme-light #appShell :is(#stopAll, #stopSection, #disconnectDeriv, .danger, .bot [data-action="stop"]),
body:not(.theme-dark) #appShell :is(#stopAll, #stopSection, #disconnectDeriv, .danger, .bot [data-action="stop"]),
body.theme-dark #appShell :is(#stopAll, #stopSection, #disconnectDeriv, .danger, .bot [data-action="stop"]) {
  background: linear-gradient(135deg, #d9325a, #aa173c) !important;
  border-color: rgba(217, 47, 89, 0.42) !important;
  color: #ffffff !important;
}

body.theme-light #appShell #emergencyStop,
body:not(.theme-dark) #appShell #emergencyStop,
body.theme-dark #appShell #emergencyStop {
  background: #06111d !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}

body #appShell :is(#stopAll, #stopSection, #disconnectDeriv, #emergencyStop, .danger, .bot [data-action="stop"]) * {
  color: inherit !important;
}

body.theme-light #appShell button:disabled,
body:not(.theme-dark) #appShell button:disabled {
  background: rgba(237, 245, 248, 0.96) !important;
  border-color: rgba(10, 45, 65, 0.18) !important;
  color: #506477 !important;
  opacity: 0.86 !important;
}

body.theme-dark #appShell button:disabled {
  background: rgba(255, 255, 255, 0.09) !important;
  border-color: rgba(128, 229, 244, 0.16) !important;
  color: #b9ccd8 !important;
  opacity: 0.88 !important;
}

body #appShell button:disabled * {
  color: inherit !important;
}

body.theme-dark #appShell .command-deck .ai-stats > div {
  background: linear-gradient(145deg, #102b3c, #071a29) !important;
  border-color: rgba(128, 229, 244, 0.24) !important;
}

body.theme-dark #appShell .command-deck .ai-stats > div strong {
  color: #f8fcff !important;
}

body.theme-dark #appShell .command-deck .ai-stats > div span {
  color: #c8d9e4 !important;
}

body.theme-light #appShell .command-deck .ai-stats > div,
body:not(.theme-dark) #appShell .command-deck .ai-stats > div {
  background: rgba(255, 255, 255, 0.94) !important;
  border-color: rgba(10, 45, 65, 0.14) !important;
}

body.theme-light #appShell .command-deck .ai-stats > div strong,
body:not(.theme-dark) #appShell .command-deck .ai-stats > div strong {
  color: #071525 !important;
}

body.theme-light #appShell .command-deck .ai-stats > div span,
body:not(.theme-dark) #appShell .command-deck .ai-stats > div span {
  color: #334b61 !important;
}

body.theme-light #appShell .signal-pnl,
body:not(.theme-dark) #appShell .signal-pnl {
  background: linear-gradient(145deg, #071825, #0f3a45) !important;
  border-color: rgba(7, 22, 37, 0.25) !important;
  color: #f5fbff !important;
}

body.theme-dark #appShell .signal-pnl {
  background: linear-gradient(145deg, #061523, #0b3340) !important;
  border-color: rgba(111, 234, 255, 0.22) !important;
  color: #f5fbff !important;
}

body #appShell .signal-pnl :is(.signal-pnl-head span, .signal-performance-note, .signal-pnl-grid span) {
  color: #cfe5ef !important;
}

body #appShell .signal-pnl :is(.signal-pnl-head strong, .signal-pnl-grid strong) {
  color: #f8fcff !important;
}

body #appShell .signal-pnl :is(strong.profit, .profit) {
  color: #55f5b7 !important;
}

body #appShell .signal-pnl :is(strong.loss, .loss) {
  color: #ff879c !important;
}
