/* Shared palette for screens added after the original workspace theme map.
   Keep these rules on html so body portals and lazy CSS inherit the same theme.
   Paper/PDF canvases, media and channel identity colours are not working surfaces. */
html[data-workspace-appearance]:root {
  --audit-scheme: light;
  --audit-pink: #b42364;
  --audit-purple: #6d28d9;
}
html[data-workspace-appearance]:is(.dark, .crm-glass):root {
  --audit-scheme: dark;
  --audit-pink: #ffb5d5;
  --audit-purple: #d2bbff;
}
html.crm-violet:not(.dark)[data-workspace-appearance]:root {
  --audit-scheme: light;
  --audit-pink: #b42364;
  --audit-purple: #6d28d9;
}

/* Calculator owner settings: every tab, confirmation, field and footer. */
html[data-workspace-appearance]:root body .calc-settings-dialog { color: var(--settings-ink); }
html[data-workspace-appearance]:root body .calc-settings-backdrop { background: var(--settings-overlay); }
html[data-workspace-appearance]:root body :is(.calc-settings-panel, .calc-settings-footer, .calc-settings-row, .calc-settings-section) {
  background: var(--settings-solid); color: var(--settings-ink); border-color: var(--settings-edge);
}
html[data-workspace-appearance]:root body :is(.calc-settings-content, .calc-settings-section .calc-settings-row) { background: var(--settings-field); }
html[data-workspace-appearance]:root body :is(.calc-settings-header, .calc-settings-tabs, .calc-settings-bulk button) { border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body :is(.calc-settings-heading p, .calc-settings-header > button, .calc-settings-tabs button, .calc-settings-hint, .calc-settings-field, .calc-settings-section summary span, .calc-settings-bulk label, .calc-settings-tools, .calc-settings-delete) { color: var(--settings-muted); }
html[data-workspace-appearance]:root body .calc-settings-symbol { background: var(--settings-selected); color: var(--settings-accent); }
html[data-workspace-appearance]:root body .calc-settings-tabs button[aria-current] { color: var(--settings-accent); border-color: var(--settings-accent); background: var(--settings-selected); }
html[data-workspace-appearance]:root body .calc-settings-dialog :is(.calc-settings-field input, .calc-settings-field select, .calc-settings-bulk input, .calc-settings-search input) {
  background: var(--settings-field) !important; color: var(--settings-ink) !important;
  -webkit-text-fill-color: var(--settings-ink) !important; border-color: var(--settings-edge) !important;
  color-scheme: var(--audit-scheme);
}
html[data-workspace-appearance]:root body .calc-settings-dialog :is(input, select):focus {
  border-color: var(--settings-accent) !important; box-shadow: 0 0 0 3px var(--dk-ring, #16a37524) !important;
}
html[data-workspace-appearance]:root body .calc-settings-dialog input[readonly] { background: var(--settings-hover) !important; }
html[data-workspace-appearance]:root body .calc-settings-dialog :is(input, select) option { background: var(--settings-solid); color: var(--settings-ink); }
html[data-workspace-appearance]:root body .calc-settings-search { background: var(--settings-field); color: var(--settings-muted); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .calc-settings-dialog .calc-settings-search input { background: transparent !important; }
html[data-workspace-appearance]:root body :is(.calc-settings-add, .calc-settings-success) { color: var(--settings-positive); }
html[data-workspace-appearance]:root body .calc-settings-delete:hover { color: var(--settings-danger); }
html[data-workspace-appearance]:root body .calc-settings-error { background: var(--settings-danger-fill); color: var(--settings-danger); }
html[data-workspace-appearance]:root body :is(.calc-settings-save, .calc-settings-confirm button:first-of-type) { background: var(--settings-action); color: var(--settings-action-ink); }
html[data-workspace-appearance]:root body .calc-settings-dialog button:not(:disabled):hover { box-shadow: inset 0 0 0 1px var(--settings-edge); }
html[data-workspace-appearance]:root body .calc-settings-dialog :focus-visible { outline-color: var(--settings-accent); }

/* The contact header used to treat violet/light as dark glass: white on white. */
html[data-workspace-appearance]:root body .chat-contact-header { color: var(--settings-ink); }
html[data-workspace-appearance]:root body .chat-contact-header .chat-contact-phone { color: var(--settings-muted); }
html[data-workspace-appearance]:root body .chat-contact-header .chat-channel-chip { color: var(--settings-positive); background: var(--settings-positive-fill); }
html[data-workspace-appearance]:root body .chat-contact-header .chat-channel-chip[data-channel^='telegram'] { color: var(--settings-accent); background: var(--settings-selected); }
html[data-workspace-appearance]:root body .chat-contact-header .chat-channel-chip[data-channel='instagram'] { color: var(--audit-pink); background: color-mix(in srgb, var(--audit-pink) 12%, var(--settings-solid)); }
html[data-workspace-appearance]:root body .chat-contact-header .chat-channel-chip[data-channel^='max'] { color: var(--audit-purple); background: color-mix(in srgb, var(--audit-purple) 12%, var(--settings-solid)); }
html[data-workspace-appearance]:root body .chat-channel-details { background: var(--settings-solid); color: var(--settings-ink); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .chat-contact-header button:focus-visible { outline-color: var(--settings-accent); }

/* Voice transcripts and attachment tools follow the bubble's workspace. */
html[data-workspace-appearance]:root body .wa-voice-transcript { background: var(--settings-field); color: var(--settings-ink); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body :is(.wa-transcript-label, .wa-transcript-muted, .wa-message-menu-button, .wa-document-preview-fallback) { color: var(--settings-muted); }
html[data-workspace-appearance]:root body :is(.wa-transcript-icon, .wa-transcript-recognize) { color: var(--settings-accent); }
html[data-workspace-appearance]:root body :is(.wa-transcript-icon:hover, .wa-transcript-icon[aria-expanded='true']) { background: var(--settings-selected); color: var(--settings-accent); }
html[data-workspace-appearance]:root body .wa-transcript-error { color: var(--settings-danger); }
html[data-workspace-appearance]:root body .wa-transcript-translation { border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body :is(.wa-transcript-icon, .wa-transcript-recognize):focus-visible { outline-color: var(--settings-accent); }
html[data-workspace-appearance]:root body .wa-document-card { background: var(--settings-field); }
html[data-workspace-appearance]:root body .wa-document-card .wa-document-preview { background: var(--settings-hover); }
html[data-workspace-appearance]:root body .wa-document-preview-loading { background: linear-gradient(110deg, var(--settings-field) 20%, var(--settings-hover) 40%, var(--settings-field) 60%); background-size: 200% 100%; }
html[data-workspace-appearance]:root body .wa-document-forward { background: var(--settings-field); color: var(--settings-muted); }
html[data-workspace-appearance]:root body .wa-document-forward:hover { background: var(--settings-hover); color: var(--settings-ink); }
html[data-workspace-appearance]:root body :is(.wa-pdf-viewer, .wa-attachment-modal-panel) { background: var(--settings-field); color: var(--settings-ink); }
html[data-workspace-appearance]:root body .wa-pdf-toolbar { background: var(--settings-solid); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .wa-pdf-toolbar :is(button, a):hover { background: var(--settings-hover); }
html[data-workspace-appearance]:root body .wa-pdf-pages-count { color: var(--settings-muted); }
html[data-workspace-appearance]:root body .wa-pdf-toolbar :is(button, a):focus-visible { outline-color: var(--settings-accent); }
html[data-workspace-appearance]:root body .wa-attachment-modal { background: var(--settings-overlay); }

/* Search, privacy indicator and voice duration are controls, not brand marks. */
html[data-workspace-appearance]:root body .chat-filters-toolbar .cf-search { background: var(--settings-field) !important; border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .chat-filters-toolbar .cf-search:focus-within { border-color: var(--settings-accent); box-shadow: 0 0 0 3px var(--dk-ring, #16a37524); }
html[data-workspace-appearance]:root body .cf-error { color: var(--settings-warning); }
html[data-workspace-appearance]:root body :is(.cf-fields, .cf-mobile-quick, .cf-mobile-body .cf-fields) {
  --cf-ink: var(--settings-ink); --cf-muted: var(--settings-muted);
  --cf-line: var(--settings-edge); --cf-fill: var(--settings-field);
  --cf-accent: var(--settings-accent); --cf-selected: var(--settings-selected);
}
html[data-workspace-appearance]:root body .cf-fields :focus-visible { outline-color: var(--settings-accent); }
html[data-workspace-appearance]:root body .chat-voice-trigger { background: var(--settings-positive-fill); color: var(--settings-positive); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .chat-voice-trigger:is(:hover, [aria-expanded='true']) { background: var(--settings-selected); color: var(--settings-accent); }
html[data-workspace-appearance]:root body .chat-voice-trigger.is-active { background: var(--settings-action); color: var(--settings-action-ink); }
html[data-workspace-appearance]:root body .chat-voice-trigger:focus-visible { outline-color: var(--settings-accent); }
html[data-workspace-appearance]:root body .incognito-toggle { background: var(--settings-field); color: var(--settings-muted); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .incognito-toggle:hover { background: var(--settings-hover); }
html[data-workspace-appearance]:root body .incognito-toggle[data-active='true'] { color: var(--settings-warning); border-color: var(--settings-warning); background: color-mix(in srgb, var(--settings-warning) 12%, var(--settings-solid)); }
html[data-workspace-appearance]:root body .incognito-toggle:focus-visible { outline-color: var(--settings-warning); }
html[data-workspace-appearance]:root body .wv-duration-picker :is(.wv-duration-presets button, .wv-duration-custom input) { border-color: var(--settings-edge); background: var(--settings-field); color: var(--settings-ink); }
html[data-workspace-appearance]:root body .wv-duration-picker .wv-duration-presets button[aria-pressed='true'] { background: var(--settings-selected); color: var(--settings-accent); border-color: var(--settings-accent); }
html[data-workspace-appearance]:root body .wv-duration-picker p { color: var(--settings-muted); }
html[data-workspace-appearance]:root body .wv-duration-picker p.is-invalid { color: var(--settings-danger); }
html[data-workspace-appearance]:root body .wv-duration-picker :focus-visible { outline-color: var(--settings-accent); }

/* The assistant microphone/status is outside the Tailwind surface map. */
html[data-workspace-appearance]:root body .assistant-speech .assistant-speech-button { background: var(--settings-field); color: var(--settings-accent); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .assistant-speech .assistant-speech-button[aria-pressed='true'] { background: var(--settings-danger-fill); color: var(--settings-danger); border-color: var(--settings-danger); }
html[data-workspace-appearance]:root body .assistant-speech-status { background: var(--settings-solid); color: var(--settings-ink); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .assistant-speech .assistant-speech-button:focus-visible { outline-color: var(--settings-accent); }

/* Classic dark also needs the custom training surfaces, not only Tailwind. */
html.dark[data-workspace-appearance='standard']:root body :is(.training-page > header, .training-page > section > article, dialog[data-training-player]) { background: var(--settings-solid) !important; color: var(--settings-ink) !important; border-color: var(--settings-edge) !important; }
html.dark[data-workspace-appearance='standard']:root body .training-page article button { color: var(--settings-ink) !important; }
html.dark[data-workspace-appearance='standard']:root body :is(.training-page > header > p, .training-page > p, .training-page article button > div > span, dialog[data-training-player] header p, dialog[data-training-player] footer) { color: var(--settings-muted) !important; }
html.dark[data-workspace-appearance='standard']:root body .training-page article button > div > span:last-child { color: var(--settings-accent) !important; }
html.dark[data-workspace-appearance='standard']:root body dialog[data-training-player] > div > header { background: var(--settings-field) !important; }
html.dark[data-workspace-appearance='standard']:root body dialog[data-training-player] header > button { background: var(--settings-field) !important; color: var(--settings-ink) !important; border-color: var(--settings-edge) !important; }
html[data-workspace-appearance]:root body .work-activity input[type='date'] { color-scheme: var(--audit-scheme); }
html[data-workspace-appearance]:root body .wa-error { color: var(--settings-warning) !important; background: color-mix(in srgb, var(--settings-warning) 10%, var(--settings-solid)); }

/* Floating actions need a solid fill; translucent green on a light page made
   their white labels disappear. This also covers the feed's inline approve UI. */
html[data-workspace-appearance]:root body :is(button, a).text-white:is(.bg-emerald-500, .bg-green-500),
html[data-workspace-appearance]:root body .feed-content button[style*='background: rgb(16, 185, 129)'] {
  background: var(--settings-action) !important; color: var(--settings-action-ink) !important;
}
html[data-workspace-appearance]:root body :is(button, a).text-white:is(.bg-emerald-500, .bg-green-500):hover:not(:disabled),
html[data-workspace-appearance]:root body .feed-content button[style*='background: rgb(16, 185, 129)']:hover:not(:disabled) { background: var(--settings-action-hover) !important; }
/* Pending balance badges keep positive/negative meaning, with readable digits. */
html[data-workspace-appearance]:root body .category-orb > [style*='background-color: rgb(16, 185, 129)'] { background: #047857 !important; }
html[data-workspace-appearance]:root body .category-orb > [style*='background-color: rgb(255, 77, 79)'] { background: #be123c !important; }
/* Muted information is still information. Only text nodes in the classic light
   workspace are changed; icons, disabled controls and printable paper stay put. */
html[data-workspace-appearance='standard']:not(.dark):root body .crm-route-content :is(p, span, label, small, time):is(.text-gray-400, .text-slate-400):not(.kp-paper *, .hr-paper *, button:disabled *, [aria-disabled='true'] *) { color: #64748b; }
html[data-workspace-appearance]:root body .crm-route-content span[style*='color: rgb(153, 153, 153)']:not(.kp-paper *, .hr-paper *) { color: var(--settings-muted) !important; }
html[data-workspace-appearance]:root body .crm-route-content span:is([style*='color: red'], [style*='color: rgb(255, 0, 0)']):not(.kp-paper *, .hr-paper *) { color: var(--settings-danger) !important; }
html[data-workspace-appearance]:root body :is(.calculator-sync-status, .calculator-sync-loading, .calculator-resume) { background: var(--settings-positive-fill); color: var(--settings-positive); border-color: var(--settings-edge); }
html[data-workspace-appearance]:root body .calculator-resume { background: var(--settings-solid); }
html[data-workspace-appearance]:root body .calculator-resume:hover { background: var(--settings-hover); }
html[data-workspace-appearance]:root body .calculator-sync-status:is([data-status='offline'], [data-status='conflict']) { color: var(--settings-warning); background: color-mix(in srgb, var(--settings-warning) 12%, var(--settings-solid)); }
html[data-workspace-appearance]:root body :is(.calculator-resume, .calculator-minimize):focus-visible { outline-color: var(--settings-accent); }

@media (forced-colors: active) {
  html[data-workspace-appearance]:root {
    --settings-solid: Canvas; --settings-field: Canvas; --settings-ink: CanvasText;
    --settings-muted: CanvasText; --settings-edge: ButtonText; --settings-hover: Canvas;
    --settings-accent: LinkText; --settings-selected: Canvas; --settings-action: Highlight;
    --settings-action-ink: HighlightText; --settings-danger: LinkText;
  }
}
