/* ABS V15.8.9 — contrast-safe scoped theme repair.
  Do NOT reset every p/small/strong site-wide: those rules in V15.8.6 caused
  dark-on-dark numbers. This file targets actual application component families.
  Never touches chart canvas/SVG data, trading logic or stored figures. */
:root[data-abs-theme="light"]{--abs9-page:#f3f7fb;--abs9-surface:#fff;--abs9-inset:#f4f8fc;--abs9-alt:#eaf3f8;--abs9-ink:#152b40;--abs9-muted:#526a7d;--abs9-line:#cbdde8;--abs9-link:#096c92;--abs9-positive:#087649;--abs9-negative:#b3253c;--abs9-gold:#87590e;--abs9-cyan:#086d90;--abs9-shadow:0 8px 22px rgba(22,46,67,.065)}
:root[data-abs-theme="dark"]{--abs9-page:#07121d;--abs9-surface:#0e2030;--abs9-inset:#10283b;--abs9-alt:#162f43;--abs9-ink:#f0f6fa;--abs9-muted:#adc0ce;--abs9-line:#345469;--abs9-link:#8cdbf3;--abs9-positive:#75e6af;--abs9-negative:#ff939f;--abs9-gold:#f0c871;--abs9-cyan:#8cdbf3;--abs9-shadow:0 10px 30px rgba(0,0,0,.16)}
/* Provide accessible form values including OS/Chrome autofill in either mode. */
html[data-abs-theme] body:is(.abs-auth-page,.pulse-body,.admin-body,.abs-body) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){color-scheme:inherit;caret-color:var(--abs9-ink)}
html[data-abs-theme] body.abs-auth-page :is(.auth-input-wrap,.auth-select-wrap,.auth-phone-group,.auth-country-code-wrap,.auth-phone-number-wrap){background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.abs-auth-page :is(.auth-input-wrap input,.auth-input-wrap select,.auth-input-wrap textarea,.auth-select-wrap select,.auth-phone-number-wrap input,.auth-country-code-wrap select){background:transparent!important;color:var(--abs9-ink)!important;-webkit-text-fill-color:var(--abs9-ink)!important;caret-color:var(--abs9-ink)!important;color-scheme:inherit!important}
html[data-abs-theme] body.abs-auth-page :is(.auth-input-wrap input,.auth-input-wrap select,.auth-phone-number-wrap input):-webkit-autofill,
html[data-abs-theme] body.abs-auth-page :is(.auth-input-wrap input,.auth-input-wrap select,.auth-phone-number-wrap input):-webkit-autofill:hover,
html[data-abs-theme] body.abs-auth-page :is(.auth-input-wrap input,.auth-input-wrap select,.auth-phone-number-wrap input):-webkit-autofill:focus { -webkit-text-fill-color:var(--abs9-ink)!important;caret-color:var(--abs9-ink)!important;box-shadow:0 0 0 1000px var(--abs9-surface) inset!important;-webkit-box-shadow:0 0 0 1000px var(--abs9-surface) inset!important;transition:background-color 9999s ease-out 0s!important}
html[data-abs-theme] body.abs-auth-page :is(.auth-input-wrap input,.auth-phone-number-wrap input)::placeholder{color:var(--abs9-muted)!important;opacity:1!important;-webkit-text-fill-color:var(--abs9-muted)!important}
html[data-abs-theme] body.abs-auth-page :is(.auth-field>label,.auth-registration-grid .auth-field>label,.auth-card__header h2,.auth-checkbox label){color:var(--abs9-ink)!important}
html[data-abs-theme] body.abs-auth-page :is(.auth-input-icon,.auth-input-toggle,.auth-toggle-password,.auth-show-password){color:var(--abs9-muted)!important}
html[data-abs-theme="light"] body.abs-auth-page :is(.auth-message--error,.auth-error){color:#981e36!important;background:#fff1f3!important}
html[data-abs-theme="light"] body.abs-auth-page :is(.auth-message--success,.auth-success){color:#086940!important;background:#edf9f2!important}
html[data-abs-theme="dark"] body.abs-auth-page :is(.auth-input-wrap,.auth-select-wrap){background:#0a1c2e!important}
html[data-abs-theme="dark"] body.abs-auth-page :is(.auth-input-wrap input,.auth-input-wrap select,.auth-input-wrap textarea){background:transparent!important}
/* Pulse header account popover: dark-only gradient previously showed nearly black
   values because an earlier universal light-mode strong rule recolored its text. */
html[data-abs-theme] body.pulse-body .pulse-account-popover{background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border:1px solid var(--abs9-line)!important;box-shadow:0 16px 38px rgba(6,25,42,.18)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-account-identity{border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-account-identity b,
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-account-usage b{color:var(--abs9-ink)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-account-identity span,
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-account-usage small{color:var(--abs9-muted)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-account-usage>span{background:var(--abs9-inset)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover>a{color:var(--abs9-link)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover>a:hover{background:var(--abs9-alt)!important;color:var(--abs9-ink)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover>a.pulse-account-logout{color:var(--abs9-negative)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-usage-strip>span{background:var(--abs9-inset)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover :is(.pulse-usage-strip small,.pulse-account-usage small){color:var(--abs9-muted)!important}
html[data-abs-theme] body.pulse-body .pulse-account-popover .pulse-usage-strip b{color:var(--abs9-ink)!important}
/* Investor portfolio: the pi family predates modern theme state; light-mode
   was applying dark text without recoloring pi-hero and pi-stat background. */
html[data-abs-theme] body.pulse-body .pi-shell{--pi-panel:var(--abs9-surface);--pi-panel2:var(--abs9-inset);--pi-line:var(--abs9-line);--pi-muted:var(--abs9-muted);--pi-gold:var(--abs9-gold);--pi-cyan:var(--abs9-link);--pi-green:var(--abs9-positive);--pi-red:var(--abs9-negative);color:var(--abs9-ink)!important;min-width:0}
html[data-abs-theme] body.pulse-body .pi-shell:is(.pi-v1570,.pi-v1571,.pi-v1573){--pi70-text:var(--abs9-ink);--pi70-muted:var(--abs9-muted);--pi70-line:var(--abs9-line);--pi70-cyan:var(--abs9-link);--pi71-text:var(--abs9-ink);--pi71-muted:var(--abs9-muted);--pi71-border:var(--abs9-line);--pi71-surface:var(--abs9-surface);--pi71-surface2:var(--abs9-inset)}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-account-strip,.pi-account-meta,.pi-hero-value,.pi-hero-month,.pi-stat,.pi-card,.pi-summary-band,.pi-v1570-panel,.pi-v1570-kpis article,.pi-v1570-action-card,.pi-v1570-hero,.pi71-card,.pi71-header-card,.pi71-notice,.pi71-data-card,.pi71-admin-kpis article,.pi-task-card,.pi-investor-banner,.pi-account-nav,.pi-v1570-summary-strip,.pi-v1570-summary-strip>div,.pi-note,.pi-sensitive-note,.pi-v1570-calc-row,.pi-v1570-reconcile-values div,.pi-v1570-inline-preview,.pi-v1570-fx-box,.pi71-fx-box,.pi-readonly-value,.pi-entry-edit-form,.pi-v1570 .pi-entry-edit-form,.pi71-email-list>div){background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border-color:var(--abs9-line)!important;box-shadow:var(--abs9-shadow)}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-daily-chart,.pi-flow-chart,.pi-chart,.pi-graph,.pi-donut-wrap,.pi-flow-column,.pi-report-mini-row span,.pi-v1570-data-card,.pi-v1570-calc-summary,.pi71-email-list>div,.pi-summary-band>div,.pi71-metric-row,.pi-v1570-inline-box,.pi-v1570-preview,.pi-v1570-steps,.pi-v1570-reconcile-values div){background:var(--abs9-inset)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(h1,h2,h3,h4,.pi-head h1,.pi-hero-value>strong,.pi-stat>strong,.pi-hero-month h2,.pi-hero-month strong:not(.pi-positive):not(.pi-negative),.pi-account-strip b,.pi-brief-row b,.pi-hero-value-foot b,.pi-v1570-kpis strong,.pi71-metric-row b,.pi71-admin-kpis strong,.pi71-data-card h4,.pi-v1570-calc-row b,.pi-v1570-action-card h3,.pi-report-mini-row b,.pi-donut strong,.pi-task-card b,.pi-activity-row b,.pi-driver-card b,.pi-driver-total strong,.pi-v1570-reconcile-values b,.pi-readonly-value,.pi-portfolio-head h1){color:var(--abs9-ink)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(p,small,em,.pi-stat em,.pi-stat small,.pi-head p,.pi-hero-value>p,.pi-hero-value>small,.pi-hero-value-foot span,.pi-hero-month small,.pi-hero-month .pi-month-number>span,.pi-hero-month .pi-progress-meta,.pi-stat>small,.pi-stat>em,.pi-card-head span,.pi-brief-row span,.pi-v1570-kpis small,.pi-v1570-kpis span,.pi-v1570-panel-head p,.pi71-metric-row span,.pi71-card-head p,.pi-v1570-calc-row span,.pi-v1570-reconcile-values span,.pi-v1570-history-bars small,.pi71-ledger td small,.pi-report-mini-row small,.pi-flow-column small,.pi-activity-row small,.pi-account-strip span,.pi71-source,.pi-v1570-inline-preview){color:var(--abs9-muted)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-positive,html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-positive,.positive){color:var(--abs9-positive)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-negative,.negative){color:var(--abs9-negative)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(a:not(.pi-btn),.pi-link,.pi-v1570-panel-head>a){color:var(--abs9-link)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-form input,.pi-form select,.pi-form textarea,.pi-v1570-form input,.pi-v1570-form select,.pi-v1570-form textarea,.pi71-form input,.pi71-form select,.pi71-form textarea,.pi-entry-edit-form input,.pi-entry-edit-form select,.pi-entry-edit-form textarea,.pi-filter-row input,.pi-filter-row select){background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border-color:var(--abs9-line)!important;color-scheme:inherit!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-form label,.pi-v1570-form label,.pi71-form label){color:var(--abs9-ink)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-table,.pi-ledger-table,.pi-v1570-table,.pi71-ledger){background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-brief-row,.pi71-metric-row,.pi-v1570-calc-row,.pi-v1570-summary-strip){border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-v1570-tabs{background:var(--abs9-surface)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-v1570-tabs a{color:var(--abs9-link)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-v1570-tabs a.active{background:var(--abs9-alt)!important;color:var(--abs9-ink)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-donut::before{background:var(--abs9-surface)!important}
/* Preserve gold action contrast against GOLD background regardless of theme. */
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-btn.primary,.pi-account-nav a.active,.pi-v1570 .pi-btn.primary){color:#152332!important}
/* Public home: industry tiles and movers were missing from V15.8.8. */
html[data-abs-theme] body.abs-body .final-industries .final-industry-grid>article,
html[data-abs-theme] body.abs-body .final-market-intelligence .final-market-snapshot,
html[data-abs-theme] body.abs-body .final-market-intelligence .final-snapshot-top>article,
html[data-abs-theme] body.abs-body .final-market-intelligence .final-movers-columns>article,
html[data-abs-theme] body.abs-body .final-market-intelligence .final-market-movers,
html[data-abs-theme] body.abs-body .final-market-intelligence .final-snapshot-insights>article{background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.abs-body .final-industries .final-industry-grid :is(h3,strong),
html[data-abs-theme] body.abs-body .final-market-intelligence :is(.final-snapshot-top>article>strong,.final-snapshot-insights strong,.final-market-movers h2,.final-mover-row b){color:var(--abs9-ink)!important}
html[data-abs-theme] body.abs-body .final-industries .final-industry-grid :is(small,p),
html[data-abs-theme] body.abs-body .final-market-intelligence :is(small,p,.final-mover-row>i){color:var(--abs9-muted)!important}
html[data-abs-theme] body.abs-body .final-industries .final-industry-grid :is(.industry-icon,.final-industry-art>span){color:var(--abs9-cyan)!important}
html[data-abs-theme] body.abs-body .final-market-intelligence .final-snapshot-top>article{background:var(--abs9-inset)!important}
html[data-abs-theme] body.abs-body .final-market-intelligence .final-snapshot-insights>article{background:var(--abs9-surface)!important}
html[data-abs-theme] body.abs-body .final-market-intelligence .final-movers-columns>article{background:var(--abs9-inset)!important}
html[data-abs-theme] body.abs-body .final-market-intelligence .final-market-movers .final-mover-row{background:var(--abs9-surface)!important}
html[data-abs-theme] body.abs-body :is(.final-market-intelligence,.final-industries) .positive{color:var(--abs9-positive)!important}
html[data-abs-theme] body.abs-body :is(.final-market-intelligence,.final-industries) .negative{color:var(--abs9-negative)!important}
/* Other public views: market panels, news articles, services/plans, forms. */
html[data-abs-theme] body.abs-body :is(.market-page-grid,.final-markets-grid,.final-market-movers,.final-market-board) :is(.panel,.stacked-metrics>div,.table-row,.chart-loading,.mover-row,.content-empty,.market-chart,.final-overview-kpis article){background:var(--abs9-surface)!important;color:var(--abs9-ink)!important;border-color:var(--abs9-line)!important}
html[data-abs-theme] body.abs-body :is(.market-page-grid,.news-live-v1512,.live-story-v1560,.live-story-v1561,.final-market-intelligence) :is(.panel h3,.stacked-metrics b,.table-row b,.chart-loading b,.mover-row b,.content-empty b){color:var(--abs9-ink)!important}
html[data-abs-theme] body.abs-body :is(.market-page-grid,.final-advantages,.final-industries,.final-market-intelligence) :is(.panel small,.mover-row small,.table-head,.data-source,.panel-subtitle){color:var(--abs9-muted)!important}
/* Responsive text and component sizing without overriding screen layout. */
@media(max-width:760px){html[data-abs-theme] body.pulse-body .pulse-account-popover{max-height:calc(100dvh - 92px);overflow-y:auto;overscroll-behavior:contain}html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-hero-value,.pi-hero-month,.pi-stat,.pi-card){min-width:0}html[data-abs-theme] body.abs-body .final-industry-grid>article{min-width:0}}
/* keyboard visibility */
html[data-abs-theme] body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--abs9-link)!important;outline-offset:2px}

/* Legible at real viewport sizes; remove 8–9px inherited captions in data-heavy widgets. */
html[data-abs-theme] body.pulse-body .pi-shell :is(.pi-hero-value-foot span,.pi-account-strip span,.pi-stat small,.pi-stat em,.pi-card-head span,.pi-brief-row span,.pi-v1570-kpis span,.pi-v1570-kpis small,.pi-v1570-history-bars small,.pi-v1570-calc-row span,.pi71-metric-row span,.pi71-admin-kpis span,.pi-v1570-panel-head p){font-size:max(11px, .72rem)!important;line-height:1.5!important}
html[data-abs-theme] body.abs-body .final-industry-grid :is(h3,strong),html[data-abs-theme] body.abs-body .final-movers-columns :is(.final-mover-row b,.final-mover-row em){font-size:max(12px, .78rem)!important;line-height:1.5!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-hero-value-foot .pi-positive,
html[data-abs-theme] body.pulse-body .pi-shell .pi-brief-row .pi-positive,
html[data-abs-theme] body.pulse-body .pi-shell .pi-stat .pi-positive{color:var(--abs9-positive)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-hero-value-foot .pi-negative,
html[data-abs-theme] body.pulse-body .pi-shell .pi-brief-row .pi-negative,
html[data-abs-theme] body.pulse-body .pi-shell .pi-stat .pi-negative{color:var(--abs9-negative)!important}
/* Market table stays swipeable within its card on small screens, not wider than the viewport. */
@media(max-width:800px){html[data-abs-theme] body.abs-body .market-page-grid{min-width:0!important;grid-template-columns:minmax(0,1fr)!important}html[data-abs-theme] body.abs-body .market-page-grid>.panel{min-width:0!important;max-width:100%!important}html[data-abs-theme] body.abs-body .market-page-grid .market-table{display:block;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}html[data-abs-theme] body.abs-body .market-page-grid .market-table :is(.table-head,.table-row){min-width:700px}html[data-abs-theme] body.abs-body .market-page-grid .large-chart{max-width:100%;min-width:0}}

/* Semantically important values must outrank older grouped :is() overrides. */
html[data-abs-theme] body.pulse-body .pi-shell .pi-hero-value .pi-hero-value-foot b.pi-positive,
html[data-abs-theme] body.pulse-body .pi-shell .pi-month-brief .pi-brief-row b.pi-positive,
html[data-abs-theme] body.pulse-body .pi-shell .pi-grid .pi-stat strong.pi-positive{color:var(--abs9-positive)!important}
html[data-abs-theme] body.pulse-body .pi-shell .pi-hero-value .pi-hero-value-foot b.pi-negative,
html[data-abs-theme] body.pulse-body .pi-shell .pi-month-brief .pi-brief-row b.pi-negative,
html[data-abs-theme] body.pulse-body .pi-shell .pi-grid .pi-stat strong.pi-negative{color:var(--abs9-negative)!important}
