/* LF-SITE-001B — Final Text Ownership & Readability System
   Loaded LAST on top-level pages.
   Principle: surfaces own their text colors. Critical copy never depends on inherited
   color, opacity, or a generic page-level contrast guess. */
:root{
  --ep-to-dark-ink:#0d2c25;
  --ep-to-dark-body:#31483f;
  --ep-to-light:#fff8e9;
  --ep-to-light-body:#dbe8e1;
  --ep-to-light-muted:#bdcfc6;
  --ep-to-gold:#efc96f;
  --ep-to-positive:#61e3ab;
  --ep-to-negative:#ff8278;
}

/* Never allow text to disappear because of inherited opacity. */
body :is(h1,h2,h3,h4,h5,h6,p,li,label,small,strong,b,em,a,button,span){
  text-shadow:none;
}

/* ---------- Shared dark editorial surfaces ---------- */
body :is(.dark-band,.premium-rule-band,.cta-band) :is(h1,h2,h3,h4,strong,b){color:var(--ep-to-light)!important;opacity:1!important}
body :is(.dark-band,.premium-rule-band,.cta-band) :is(p,li,.lead,small){color:var(--ep-to-light-body)!important;opacity:1!important}
body :is(.dark-band,.premium-rule-band,.cta-band) :is(.eyebrow,.kicker){color:var(--ep-to-gold)!important;opacity:1!important}

/* Standard dark image heroes. */
body:not([data-page="home"]) .hero.compact .hero-copy :is(h1,h2,strong){color:var(--ep-to-light)!important;opacity:1!important}
body:not([data-page="home"]) .hero.compact .hero-copy p{color:var(--ep-to-light-body)!important;opacity:1!important}
body:not([data-page="home"]) .hero.compact .hero-copy .eyebrow{color:var(--ep-to-gold)!important;opacity:1!important}

/* Explicit light editorial surfaces. */
body :is(.light-card,.paper-card,.cream-card,.quiet-panel,.legal-box,.form-shell,.ep-service-offer,.ep-value-grid article) :is(h1,h2,h3,h4,strong,b){color:var(--ep-to-dark-ink)!important;opacity:1!important}
body :is(.light-card,.paper-card,.cream-card,.quiet-panel,.legal-box,.form-shell,.ep-service-offer,.ep-value-grid article) :is(p,li,.lead,small){color:var(--ep-to-dark-body)!important;opacity:1!important}

/* Services dark professional workflow block. */
body[data-page="solutions"] .ep-professional-fit .ep-professional-fit-copy h2{color:var(--ep-to-light)!important;opacity:1!important}
body[data-page="solutions"] .ep-professional-fit .ep-professional-fit-copy .lead{color:#e2ece6!important;opacity:1!important}
body[data-page="solutions"] .ep-professional-fit .ep-fit-chips span{color:var(--ep-to-light)!important;opacity:1!important}

/* ---------- Market Intelligence chrome ---------- */
body:is([data-page="radar"],[data-page="market-weather"],[data-page="personal-dashboard"],[data-page="market-explainer"],[data-page="strategy-lab"]) .mi-universal-hero :is(h1,h2,h3,strong){color:var(--ep-to-light)!important;opacity:1!important}
body:is([data-page="radar"],[data-page="market-weather"],[data-page="personal-dashboard"],[data-page="market-explainer"],[data-page="strategy-lab"]) .mi-universal-hero p{color:#dce9e2!important;opacity:1!important}
body:is([data-page="radar"],[data-page="market-weather"],[data-page="personal-dashboard"],[data-page="market-explainer"],[data-page="strategy-lab"]) .mi-hero-kicker{color:var(--ep-to-gold)!important;opacity:1!important}

/* ---------- Market Explainer: explicit mixed-surface ownership ---------- */
body[data-page="market-explainer"] .feed.panel,
body[data-page="market-explainer"] .panel.instruments,
body[data-page="market-explainer"] .panel.signals{color:var(--ep-to-light)!important}
body[data-page="market-explainer"] :is(.feed.panel,.panel.instruments,.panel.signals) :is(h1,h2,h3,strong,b){color:var(--ep-to-light)!important;opacity:1!important}
body[data-page="market-explainer"] :is(.feed.panel,.panel.instruments,.panel.signals) :is(p,li,small,.muted){color:var(--ep-to-light-body)!important;opacity:1!important}

body[data-page="market-explainer"] :is(.feature.panel,.mode.panel,.explain.panel,.panel.impact,.panel.source){color:var(--ep-to-dark-ink)!important}
body[data-page="market-explainer"] :is(.feature.panel,.mode.panel,.explain.panel,.panel.impact,.panel.source) :is(h1,h2,h3,strong,b){color:var(--ep-to-dark-ink)!important;opacity:1!important}
body[data-page="market-explainer"] :is(.feature.panel,.mode.panel,.explain.panel,.panel.impact,.panel.source) :is(p,li,small,.muted){color:var(--ep-to-dark-body)!important;opacity:1!important}
body[data-page="market-explainer"] .mode-buttons button:not(.active){color:#173129!important;opacity:1!important}
body[data-page="market-explainer"] .mode-buttons button:not(.active) small{color:#455a51!important;opacity:1!important}
body[data-page="market-explainer"] .mode-buttons button.active{color:var(--ep-to-light)!important;opacity:1!important}
body[data-page="market-explainer"] .mode-buttons button.active small{color:#e4eee8!important;opacity:1!important}
body[data-page="market-explainer"] .categories button:not(.active),
body[data-page="market-explainer"] .period button:not(.active){color:#f4f0e5!important;opacity:1!important}
body[data-page="market-explainer"] .categories button:not(.active) b{color:#fff8ea!important;opacity:1!important}
body[data-page="market-explainer"] .categories button.active,
body[data-page="market-explainer"] .period button.active{color:#14271f!important;opacity:1!important}
body[data-page="market-explainer"] .categories button.active b{color:#fff8ea!important;opacity:1!important}
body[data-page="market-explainer"] .explain-cards section :is(strong,b){color:#fff4d4!important;opacity:1!important}
body[data-page="market-explainer"] .explain-cards section p{color:#eef5f0!important;opacity:1!important}

/* ---------- Market Dashboard: explicit dark/light ownership ---------- */
body[data-page="personal-dashboard"] :is(.market-strip,.market-tile,.weather-tile,.dark-card,.watchlist-panel,.movers-card){color:var(--ep-to-light)!important}
body[data-page="personal-dashboard"] :is(.market-strip,.market-tile,.weather-tile,.dark-card,.watchlist-panel,.movers-card) :is(h1,h2,h3,h4,strong,b){color:var(--ep-to-light)!important;opacity:1!important}
body[data-page="personal-dashboard"] :is(.market-strip,.market-tile,.weather-tile,.dark-card,.watchlist-panel,.movers-card) :is(p,li,small,label,.muted,.subtle){color:var(--ep-to-light-body)!important;opacity:1!important}
body[data-page="personal-dashboard"] .market-tile small,body[data-page="personal-dashboard"] .weather-tile small{color:#ecd184!important}
body[data-page="personal-dashboard"] .market-tile em:not(.down){color:var(--ep-to-positive)!important}
body[data-page="personal-dashboard"] .market-tile em.down{color:var(--ep-to-negative)!important}
body[data-page="personal-dashboard"] :is(.light-card,.performance-card,.allocation-card,.holdings-card,.coverage-card){color:var(--ep-to-dark-ink)!important}
body[data-page="personal-dashboard"] :is(.light-card,.performance-card,.allocation-card,.holdings-card,.coverage-card) :is(h1,h2,h3,h4,strong,b){color:var(--ep-to-dark-ink)!important;opacity:1!important}
body[data-page="personal-dashboard"] :is(.light-card,.performance-card,.allocation-card,.holdings-card,.coverage-card) :is(p,li,small,label,.muted,.subtle,.ink){color:var(--ep-to-dark-body)!important;opacity:1!important}

/* ---------- Global Radar ---------- */
body[data-page="radar"] :is(.radar-story,.radar-globe-column,.radar-frame-top,.radar-market-band){color:var(--ep-to-light)!important}
body[data-page="radar"] :is(.radar-story,.radar-globe-column,.radar-frame-top,.radar-market-band) :is(h1,h2,h3,strong,b){color:var(--ep-to-light)!important;opacity:1!important}
body[data-page="radar"] :is(.radar-story,.radar-globe-column,.radar-frame-top,.radar-market-band) :is(p,li,small,.muted){color:var(--ep-to-light-body)!important;opacity:1!important}
body[data-page="radar"] .radar-explainer{color:var(--ep-to-dark-ink)!important}
body[data-page="radar"] .radar-explainer :is(h1,h2,h3,strong,b){color:var(--ep-to-dark-ink)!important;opacity:1!important}
body[data-page="radar"] .radar-explainer :is(p,li,small,.muted){color:var(--ep-to-dark-body)!important;opacity:1!important}

/* ---------- Strategy Lab ---------- */
body[data-page="strategy-lab"] :is(.builder-panel,.compare-shell,.scenario-slot){color:var(--ep-to-light)!important}
body[data-page="strategy-lab"] :is(.builder-panel,.compare-shell,.scenario-slot) :is(h1,h2,h3,h4,strong,b,label){color:var(--ep-to-light)!important;opacity:1!important}
body[data-page="strategy-lab"] :is(.builder-panel,.compare-shell,.scenario-slot) :is(p,li,small,.muted){color:var(--ep-to-light-body)!important;opacity:1!important}
body[data-page="strategy-lab"] :is(.response-panel,.trajectory-card,.modal){color:var(--ep-to-dark-ink)!important}
body[data-page="strategy-lab"] :is(.response-panel,.trajectory-card,.modal) :is(h1,h2,h3,h4,strong,b,label,span){color:var(--ep-to-dark-ink)!important;opacity:1!important}
body[data-page="strategy-lab"] :is(.response-panel,.trajectory-card,.modal) :is(p,li,small,.muted){color:var(--ep-to-dark-body)!important;opacity:1!important}

/* ---------- Readability floors ---------- */
@media (min-width:761px){
  body[data-page="market-explainer"] :is(.feature.panel,.mode.panel,.explain.panel,.feed.panel,.rail .panel) p,
  body[data-page="personal-dashboard"] :is(.dark-card,.light-card,.market-strip) p,
  body[data-page="radar"] :is(.radar-story,.radar-explainer) p,
  body[data-page="strategy-lab"] :is(.builder-panel,.response-panel,.compare-shell) p{font-size:clamp(12px,.82vw,14px)!important}
}
/* Metadata must remain visible; size is allowed to stay compact. */
body[data-page="market-explainer"] :is(.metadata,.rail-heading,.feed-head) small,
body[data-page="personal-dashboard"] :is(.watch-table-head,.data-note,.asset-mode-row) small,
body[data-page="radar"] :is(.radar-story,.radar-panel-top,.radar-detail-footer) small{opacity:1!important}
