/* Shared message tones. Field-level pending/invalid highlights stay in their form styles. */
:root {
    --m34-info-bg: #edf5ff;
    --m34-info-ink: #285779;
    --m34-info-edge: #bfd5ee;
    --m34-info-accent: #6793c2;
    --m34-warning-bg: #fff3db;
    --m34-warning-ink: #805117;
    --m34-warning-edge: #e7c68b;
    --m34-warning-accent: #a77827;
    --m34-error-bg: #fff0f1;
    --m34-error-ink: #923848;
    --m34-error-edge: #e5b5bd;
    --m34-error-accent: #c16374;
    --m34-success-bg: #eaf6ef;
    --m34-success-ink: #236243;
    --m34-success-edge: #aacfb9;
    --m34-success-accent: #47936a;
}
body:is(.m34-modern, .blank-page) :where(
    .alert, .m34-completion-summary, .m34-wa-completion, .campaign-alert-box,
    .m34-address-status, .m34-verification-message, .m34-api-send-status,
    .m34-import-feedback.is-error, .m34-wizard-message.is-error, .m34-send-error,
    .m34-wa-feedback, [data-review-error], [data-report-error], [data-picker-error],
    .swal2-validation-message, .db-inline-notice, .m34-edit-close-prompt, .m34-segment-note
) {
    --message-bg: var(--m34-info-bg);
    --message-ink: var(--m34-info-ink);
    --message-edge: var(--m34-info-edge);
    --message-accent: var(--m34-info-accent);
}
body:is(.m34-modern, .blank-page) :is(
    .alert, .m34-completion-summary, .m34-wa-completion, .campaign-alert-box,
    .m34-address-status, .m34-verification-message, .m34-api-send-status,
    .m34-import-feedback.is-error, .m34-wizard-message.is-error, .m34-send-error,
    .m34-wa-feedback, [data-review-error], [data-report-error], [data-picker-error],
    .swal2-validation-message, .db-inline-notice, .m34-edit-close-prompt, .m34-segment-note
) {
    background-color: var(--message-bg) !important;
    color: var(--message-ink) !important;
    border: 1px solid var(--message-edge) !important;
    border-inline-start: 3px solid var(--message-accent) !important;
    border-radius: 9px;
    box-shadow: none !important;
}
body:is(.m34-modern, .blank-page) :is(.alert-warning, .db-inline-notice, .m34-edit-close-prompt) {
    --message-bg: var(--m34-warning-bg);
    --message-ink: var(--m34-warning-ink);
    --message-edge: var(--m34-warning-edge);
    --message-accent: var(--m34-warning-accent);
}
body:is(.m34-modern, .blank-page) :is(
    .alert-success, .m34-completion-summary.is-complete,
    .m34-verification-message:not(.is-error), .m34-api-send-status.is-success
) {
    --message-bg: var(--m34-success-bg);
    --message-ink: var(--m34-success-ink);
    --message-edge: var(--m34-success-edge);
    --message-accent: var(--m34-success-accent);
}
body:is(.m34-modern, .blank-page) :is(
    .alert-danger, .m34-import-feedback.is-error, .m34-wizard-message.is-error,
    .m34-send-error, .m34-wa-feedback, [data-review-error], [data-report-error],
    [data-picker-error], .swal2-validation-message, .m34-address-status.is-error,
    .m34-verification-message.is-error, .m34-api-send-status.is-error
) {
    --message-bg: var(--m34-error-bg);
    --message-ink: var(--m34-error-ink);
    --message-edge: var(--m34-error-edge);
    --message-accent: var(--m34-error-accent);
}
body:is(.m34-modern, .blank-page) :is(.alert-secondary, .alert-dark, .alert-light) {
    --message-bg: #f0f3f7;
    --message-ink: #4e5a6d;
    --message-edge: #ccd3df;
    --message-accent: #8996a8;
}
body:is(.m34-modern, .blank-page) :is(.m34-completion-summary, .m34-wa-completion) :is(span, small) {
    color: inherit;
}
body:is(.m34-modern, .blank-page) :is(.alert, .m34-completion-summary, .m34-wa-completion, .campaign-alert-box) :is(.alert-link, .m34-text-action, a:not(.btn)) {
    color: var(--message-ink) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}
body:is(.m34-modern, .blank-page) :is([data-report-error], [data-picker-error]):not(:empty) {
    padding: 12px 14px;
}
body:is(.m34-modern, .blank-page) :is([data-report-error], [data-picker-error], [data-review-error]):empty {
    display: none;
}

/* Toasts retain their white status icons, with the corresponding darker tone behind them. */
body:is(.m34-modern, .blank-page) #toast-container > :is(.toast-info, .toast-warning, .toast-error, .toast-success) {
    color: #fff !important;
    border: 1px solid #ffffff40;
    opacity: 1;
}
body:is(.m34-modern, .blank-page) #toast-container > .toast-info { background-color: var(--m34-info-ink) !important; }
body:is(.m34-modern, .blank-page) #toast-container > .toast-warning { background-color: var(--m34-warning-ink) !important; }
body:is(.m34-modern, .blank-page) #toast-container > .toast-error { background-color: var(--m34-error-ink) !important; }
body:is(.m34-modern, .blank-page) #toast-container > .toast-success { background-color: var(--m34-success-ink) !important; }
body:is(.m34-modern, .blank-page) #toast-container :is(.toast-title, .toast-message, .toast-close-button) { color: inherit !important; }

/* Dialogs keep a white reading surface; their status icon carries the same tone. */
body:is(.m34-modern, .blank-page) .swal2-icon:is(.swal2-info, .swal2-question) { color: var(--m34-info-ink); border-color: var(--m34-info-accent); background-color: var(--m34-info-bg); }
body:is(.m34-modern, .blank-page) .swal2-icon.swal2-warning { color: var(--m34-warning-ink); border-color: var(--m34-warning-accent); background-color: var(--m34-warning-bg); }
body:is(.m34-modern, .blank-page) .swal2-icon.swal2-error { color: var(--m34-error-ink); border-color: var(--m34-error-accent); background-color: var(--m34-error-bg); }
body:is(.m34-modern, .blank-page) .swal2-icon.swal2-error [class^="swal2-x-mark-line"] { background-color: var(--m34-error-ink); }
body:is(.m34-modern, .blank-page) .swal2-icon.swal2-success { color: var(--m34-success-ink); border-color: var(--m34-success-accent); }
body:is(.m34-modern, .blank-page) .swal2-icon.swal2-success .swal2-success-ring { border-color: var(--m34-success-edge); }
body:is(.m34-modern, .blank-page) .swal2-icon.swal2-success [class^="swal2-success-line"] { background-color: var(--m34-success-ink); }
