/* Shared contrast adapters. Foregrounds follow on-primary for light or dark brand colors. */
html body { color-scheme:dark; }
body.ux-r311 :is(.btn-primary,.nav-fab,#desktopFab,.chat-send-btn,.send-btn,.avatar-menu-indicator),
#authScreen .btn-primary { color:var(--on-primary)!important; background:var(--primary-gradient)!important; }
body.ux-r311 :is(.btn-primary,.nav-fab,#desktopFab,.chat-send-btn,.send-btn,.avatar-menu-indicator) :is(svg,span,b,strong),
#authScreen .btn-primary :is(svg,span) { color:var(--on-primary)!important; }
body.ux-r311 :is(.nav-fab,#desktopFab) svg { stroke:var(--on-primary)!important; }
body.ux-r311 .avatar-menu-indicator i { background:var(--on-primary)!important; }
body.ux-r311 .chat-msg.user { color:var(--on-primary)!important; background:var(--primary-gradient)!important; box-shadow:none!important; }
body.ux-r311 .chat-msg.user :is(p,strong,b,span) { color:var(--on-primary)!important; }
body.ux-r311 :is(.assistant-empty-icon,.assistant-conversation-mark) { color:var(--on-primary)!important; background:var(--primary-gradient)!important; box-shadow:none!important; }
body.ux-r311 :is(.assistant-empty-icon,.assistant-conversation-mark) svg { color:var(--on-primary)!important; }
body.ux-r311 :is(.assistant-empty-icon,.assistant-conversation-mark) svg stop { stop-color:var(--on-primary); }
body.ux-r311 :is(.assistant-empty-icon,.assistant-conversation-mark) svg path { stroke:var(--on-primary); }
body.ux-r311 :is(.assistant-draft-actions,.assistant-expense-actions) > button:not(.secondary):not(.danger),
body.ux-r311 .goal-actions .add-btn { background:var(--primary)!important; color:var(--on-primary)!important; border-color:var(--primary)!important; }
body.ux-r311 :is(.business-wallet-empty button,.business-dashboard-actions button.primary) { background:var(--primary)!important; color:var(--on-primary)!important; }
body.ux-r311 #clearMonthConfirmOk { background:var(--red)!important; border-color:var(--red)!important; color:var(--ux-bg)!important; }
body.ux-r311 :is(.chat-quick-actions,.chat-feedback) button { background:var(--primary-dim)!important; color:var(--primary-light)!important; border-color:var(--ux-line)!important; box-shadow:none!important; }
body.ux-r311 #fabMenu .fab-menu-primary-actions button { background:var(--ux-panel)!important; }
body.ux-r311 #fabMenu .fab-menu-primary-actions button > span { background:var(--ux-soft)!important; }
body.ux-r311 .wallet-mobile-hero { background:var(--ux-panel)!important; }
body.ux-r311 :is(.dc-hero,.profile-account-hero) { background:var(--ux-panel)!important; }
body.ux-r311 .dc-bar-pair i { opacity:1; }
body.ux-r311 :is(.oliver-themed-select-option,.tx-select-option).active { background:var(--primary-dim)!important; color:var(--primary-light)!important; }
body.ux-r311 :is(.ofx-action-strip article,.ofx-invest-v2-header,.ofx-invest-panel,.business-tx-sheet,.workspace-modal-card,.small-sheet,.sheet) { background-color:var(--ux-panel)!important; }
body.ux-r311 :is(.icon-btn,.composer-action,.sidebar-mobile-nav-icon) { border-color:var(--ux-line); }
body.ux-r311 :is(.btn-primary,.nav-fab,#desktopFab):not(:disabled):active { background:var(--primary-pressed)!important; }
body.ux-r311 :is(.btn-primary,.nav-fab,#desktopFab):disabled { background:var(--surface-elevated)!important; color:var(--ux-muted)!important; opacity:1; }
body.ux-r311 :is(.btn-primary,.nav-fab,#desktopFab):disabled :is(svg,span) { color:var(--ux-muted)!important; }
:is(.btn-primary,.nav-fab,#desktopFab):focus-visible { outline:2px solid var(--brand-accent)!important; outline-offset:3px; }
@media(hover:hover) { body.ux-r311 .btn-primary:not(:disabled):hover { background:var(--primary-hover)!important; } }
#splashScreen { background:var(--ux-bg)!important; }
#authScreen :is(.auth-visual,.auth-hero,.auth-preview-card) { background:var(--ux-panel)!important; border-color:var(--ux-line)!important; }
body.ux-r311 input[type=checkbox],body.ux-r311 input[type=radio] { accent-color:var(--primary); }
