/* GERADO por scripts/build-theme.php. Não edite aqui: as regras ficam em scripts/theme-rules.css. */

:root[data-theme="lorentz-light"] {
    color-scheme: light;
    --m-background: #FFFFFF;
    --m-surface: #E6EFF7;
    --m-surface-elevated: #FFFFFF;
    --m-panel: #F4F8FC;
    --m-hover: #E9F1F8;
    --m-selection: #D2E1EF;
    --m-border: #C2D5E5;
    --m-text: #0b1626;
    --m-text-2: #355169;
    --m-text-muted: #556c7e;
    --m-primary: #1b3355;
    --m-primary-hover: #15263D;
    --m-on-primary: #ffffff;
    --m-link: #1b3355;
    --m-link-hover: #276d9e;
    --m-focus: #5E97BC;
    --m-input-bg: #FFFFFF;
    --m-input-border: #C2D5E5;
    --m-input-text: #0b1626;
    --m-placeholder: #5e768b;
    --m-nav-bg: #E6EFF7;
    --m-nav-active: #D2E1EF;
    --m-nav-text: #0b1626;
    --m-nav-muted: #355169;
    --m-status-bar: #1B3355;
    --m-on-status-bar: #ffffff;
    --m-success: #2fa45f;
    --m-on-success: #0B1626;
    --m-success-soft: #def0e5;
    --m-success-text: #227745;
    --m-success-border: #a1d6b7;
    --m-warning: #c8881f;
    --m-on-warning: #0B1626;
    --m-warning-soft: #f6ecdb;
    --m-warning-text: #8c5f16;
    --m-warning-border: #e6c99a;
    --m-danger: #c0504d;
    --m-on-danger: #ffffff;
    --m-danger-soft: #f5e3e3;
    --m-danger-text: #a84643;
    --m-danger-border: #e3b0af;
    --m-info: #5e97bc;
    --m-on-info: #0B1626;
    --m-info-soft: #e5eef4;
    --m-info-text: #446d88;
    --m-info-border: #b7d0e1;
    --m-secondary: #355169;
    --m-on-secondary: #ffffff;
    --m-secondary-soft: #dfe3e7;
    --m-secondary-text: #355169;
    --m-secondary-border: #a4b1bc;
    --m-primary-rgb: 27, 51, 85;
    --m-success-rgb: 47, 164, 95;
    --m-warning-rgb: 200, 136, 31;
    --m-danger-rgb: 192, 80, 77;
    --m-info-rgb: 94, 151, 188;
    --m-secondary-rgb: 53, 81, 105;
    --m-text-rgb: 11, 22, 38;
    --m-background-rgb: 255, 255, 255;
    --m-surface-elevated-rgb: 255, 255, 255;
    --m-link-rgb: 27, 51, 85;
    --m-link-hover-rgb: 39, 109, 158;
}

:root[data-theme="lorentz-dark"] {
    color-scheme: dark;
    --m-background: #05080F;
    --m-surface: #0B1626;
    --m-surface-elevated: #15263D;
    --m-panel: #0B1626;
    --m-hover: #1A2E48;
    --m-selection: #22405F;
    --m-border: #34546F;
    --m-text: #e7f1f9;
    --m-text-2: #aac6da;
    --m-text-muted: #809baf;
    --m-primary: #3f6f93;
    --m-primary-hover: #48799f;
    --m-on-primary: #ffffff;
    --m-link: #9fd0ec;
    --m-link-hover: #8cc8eb;
    --m-focus: #7FB0CC;
    --m-input-bg: #15263D;
    --m-input-border: #34546F;
    --m-input-text: #e7f1f9;
    --m-placeholder: #7491a7;
    --m-nav-bg: #0B1626;
    --m-nav-active: #22405F;
    --m-nav-text: #e7f1f9;
    --m-nav-muted: #aac6da;
    --m-status-bar: #1F4A6B;
    --m-on-status-bar: #e7f1f9;
    --m-success: #6fd08a;
    --m-on-success: #05080F;
    --m-success-soft: #234149;
    --m-success-text: #6fd08a;
    --m-success-border: #3e7360;
    --m-warning: #d9a857;
    --m-on-warning: #05080F;
    --m-warning-soft: #343b41;
    --m-warning-text: #d9a857;
    --m-warning-border: #6d6149;
    --m-danger: #d27878;
    --m-on-danger: #05080F;
    --m-danger-soft: #333346;
    --m-danger-text: #d88989;
    --m-danger-border: #6a4b58;
    --m-info: #7fb0cc;
    --m-on-info: #05080F;
    --m-info-soft: #263c54;
    --m-info-text: #7fb0cc;
    --m-info-border: #45647d;
    --m-secondary: #aac6da;
    --m-on-secondary: #05080F;
    --m-secondary-soft: #2d4056;
    --m-secondary-text: #aac6da;
    --m-secondary-border: #586e84;
    --m-primary-rgb: 63, 111, 147;
    --m-success-rgb: 111, 208, 138;
    --m-warning-rgb: 217, 168, 87;
    --m-danger-rgb: 210, 120, 120;
    --m-info-rgb: 127, 176, 204;
    --m-secondary-rgb: 170, 198, 218;
    --m-text-rgb: 231, 241, 249;
    --m-background-rgb: 5, 8, 15;
    --m-surface-elevated-rgb: 21, 38, 61;
    --m-link-rgb: 159, 208, 236;
    --m-link-hover-rgb: 140, 200, 235;
}

:root[data-theme="lorentz-night-green-forest"] {
    color-scheme: dark;
    --m-background: #040c07;
    --m-surface: #081410;
    --m-surface-elevated: #0d1f18;
    --m-panel: #081410;
    --m-hover: #122b21;
    --m-selection: #122b21;
    --m-border: #1e3d2e;
    --m-text: #d8f0e4;
    --m-text-2: #6dab89;
    --m-text-muted: #759a86;
    --m-primary: #1aad64;
    --m-primary-hover: #22c97a;
    --m-on-primary: #040c07;
    --m-link: #4ee87a;
    --m-link-hover: #22c97a;
    --m-focus: #22c97a;
    --m-input-bg: #0d1f18;
    --m-input-border: #1e3d2e;
    --m-input-text: #d8f0e4;
    --m-placeholder: #668f79;
    --m-nav-bg: #081410;
    --m-nav-active: #122b21;
    --m-nav-text: #d8f0e4;
    --m-nav-muted: #6dab89;
    --m-status-bar: #0d2e1e;
    --m-on-status-bar: #d8f0e4;
    --m-success: #4ee87a;
    --m-on-success: #040c07;
    --m-success-soft: #173f28;
    --m-success-text: #4ee87a;
    --m-success-border: #2a7944;
    --m-warning: #d9c857;
    --m-on-warning: #040c07;
    --m-warning-soft: #2e3a22;
    --m-warning-text: #d9c857;
    --m-warning-border: #696b34;
    --m-danger: #e05c5c;
    --m-on-danger: #040c07;
    --m-danger-soft: #2f2923;
    --m-danger-text: #e47070;
    --m-danger-border: #6c3a37;
    --m-info: #22c97a;
    --m-on-info: #040c07;
    --m-info-soft: #103a28;
    --m-info-text: #22c97a;
    --m-info-border: #166c44;
    --m-secondary: #6dab89;
    --m-on-secondary: #040c07;
    --m-secondary-soft: #1c352a;
    --m-secondary-text: #6dab89;
    --m-secondary-border: #385e4b;
    --m-primary-rgb: 26, 173, 100;
    --m-success-rgb: 78, 232, 122;
    --m-warning-rgb: 217, 200, 87;
    --m-danger-rgb: 224, 92, 92;
    --m-info-rgb: 34, 201, 122;
    --m-secondary-rgb: 109, 171, 137;
    --m-text-rgb: 216, 240, 228;
    --m-background-rgb: 4, 12, 7;
    --m-surface-elevated-rgb: 13, 31, 24;
    --m-link-rgb: 78, 232, 122;
    --m-link-hover-rgb: 34, 201, 122;
}

/* Liga os tokens --m-* às variáveis do Bootstrap. Depois do bootstrap.min.css. */
:root[data-theme] {
    --bs-body-bg: var(--m-background);
    --bs-body-bg-rgb: var(--m-background-rgb);
    --bs-body-color: var(--m-text);
    --bs-body-color-rgb: var(--m-text-rgb);
    --bs-emphasis-color: var(--m-text);
    --bs-emphasis-color-rgb: var(--m-text-rgb);
    --bs-secondary-color: var(--m-text-muted);
    --bs-tertiary-color: var(--m-text-muted);
    --bs-secondary-bg: var(--m-panel);
    --bs-tertiary-bg: var(--m-panel);
    --bs-border-color: var(--m-border);
    --bs-border-color-translucent: var(--m-border);
    --bs-heading-color: var(--m-text);
    --bs-link-color: var(--m-link);
    --bs-link-color-rgb: var(--m-link-rgb);
    --bs-link-hover-color: var(--m-link-hover);
    --bs-link-hover-color-rgb: var(--m-link-hover-rgb);
    --bs-primary: var(--m-primary);
    --bs-primary-rgb: var(--m-primary-rgb);
    --bs-success: var(--m-success);
    --bs-success-rgb: var(--m-success-rgb);
    --bs-warning: var(--m-warning);
    --bs-warning-rgb: var(--m-warning-rgb);
    --bs-danger: var(--m-danger);
    --bs-danger-rgb: var(--m-danger-rgb);
    --bs-info: var(--m-info);
    --bs-info-rgb: var(--m-info-rgb);
    --bs-secondary: var(--m-secondary);
    --bs-secondary-rgb: var(--m-secondary-rgb);
    --bs-white-rgb: var(--m-surface-elevated-rgb);
    --bs-success-text-emphasis: var(--m-success-text);
    --bs-success-bg-subtle: var(--m-success-soft);
    --bs-success-border-subtle: var(--m-success-border);
    --bs-warning-text-emphasis: var(--m-warning-text);
    --bs-warning-bg-subtle: var(--m-warning-soft);
    --bs-warning-border-subtle: var(--m-warning-border);
    --bs-danger-text-emphasis: var(--m-danger-text);
    --bs-danger-bg-subtle: var(--m-danger-soft);
    --bs-danger-border-subtle: var(--m-danger-border);
    --bs-info-text-emphasis: var(--m-info-text);
    --bs-info-bg-subtle: var(--m-info-soft);
    --bs-info-border-subtle: var(--m-info-border);
    --bs-secondary-text-emphasis: var(--m-secondary-text);
    --bs-secondary-bg-subtle: var(--m-secondary-soft);
    --bs-secondary-border-subtle: var(--m-secondary-border);
    --bs-primary-text-emphasis: var(--m-link);
    --bs-primary-bg-subtle: var(--m-selection);
    --bs-primary-border-subtle: var(--m-border);
    --bs-light-text-emphasis: var(--m-text);
    --bs-light-bg-subtle: var(--m-panel);
    --bs-light-border-subtle: var(--m-border);
    --bs-dark-text-emphasis: var(--m-text);
    --bs-dark-bg-subtle: var(--m-panel);
    --bs-dark-border-subtle: var(--m-border);
}

body { background-color: var(--m-background); color: var(--m-text); }
small, .small { color: inherit; }

/* Cartões, tabelas, modais e paginação */
.card { --bs-card-bg: var(--m-surface-elevated); --bs-card-color: var(--m-text); --bs-card-border-color: var(--m-border); --bs-card-cap-bg: var(--m-panel); --bs-card-cap-color: var(--m-text); }
.modal { --bs-modal-bg: var(--m-surface-elevated); --bs-modal-color: var(--m-text); --bs-modal-border-color: var(--m-border); --bs-modal-header-border-color: var(--m-border); --bs-modal-footer-border-color: var(--m-border); }
.dropdown-menu { --bs-dropdown-bg: var(--m-surface-elevated); --bs-dropdown-color: var(--m-text); --bs-dropdown-link-color: var(--m-text); --bs-dropdown-link-hover-bg: var(--m-hover); --bs-dropdown-link-hover-color: var(--m-text); --bs-dropdown-border-color: var(--m-border); }
.table { --bs-table-bg: transparent; --bs-table-color: var(--m-text); --bs-table-color-state: var(--m-text); --bs-table-striped-color: var(--m-text); --bs-table-striped-bg: var(--m-panel); --bs-table-hover-color: var(--m-text); --bs-table-hover-bg: var(--m-hover); --bs-table-active-color: var(--m-text); --bs-table-border-color: var(--m-border); color: var(--m-text); }
.table-dark, .table thead.table-dark { --bs-table-bg: var(--m-panel); --bs-table-color: var(--m-text); --bs-table-color-state: var(--m-text); --bs-table-border-color: var(--m-border); --bs-table-striped-bg: var(--m-panel); --bs-table-striped-color: var(--m-text); color: var(--m-text); }
.table-light { --bs-table-bg: var(--m-panel); --bs-table-color: var(--m-text); }
.pagination { --bs-pagination-bg: var(--m-surface-elevated); --bs-pagination-color: var(--m-link); --bs-pagination-border-color: var(--m-border); --bs-pagination-hover-bg: var(--m-hover); --bs-pagination-hover-color: var(--m-link); --bs-pagination-focus-bg: var(--m-hover); --bs-pagination-focus-color: var(--m-link); --bs-pagination-active-bg: var(--m-primary); --bs-pagination-active-color: var(--m-on-primary); --bs-pagination-active-border-color: var(--m-primary); --bs-pagination-disabled-bg: var(--m-panel); --bs-pagination-disabled-color: var(--m-text-muted); --bs-pagination-disabled-border-color: var(--m-border); }
.list-group { --bs-list-group-bg: var(--m-surface-elevated); --bs-list-group-color: var(--m-text); --bs-list-group-border-color: var(--m-border); --bs-list-group-action-color: var(--m-text); --bs-list-group-action-hover-bg: var(--m-hover); --bs-list-group-action-hover-color: var(--m-text); --bs-list-group-action-active-bg: var(--m-selection); --bs-list-group-action-active-color: var(--m-text); }
.btn-close-white { filter: none; }
[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* Cabeçalho que ordena a lista */
.sort-link { position: relative; color: inherit; text-decoration: none; display: inline-block; min-height: 24px; }
.app-main table { position: relative; }
.pagination { flex-wrap: wrap; }
.sort-link:hover { text-decoration: underline; }

/* Formulários */
.form-control, .form-select { background-color: var(--m-input-bg); border-color: var(--m-input-border); color: var(--m-input-text); }
.form-control:focus, .form-select:focus { background-color: var(--m-input-bg); border-color: var(--m-focus); color: var(--m-input-text); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--m-focus) 40%, transparent); }
.form-control::placeholder { color: var(--m-placeholder); opacity: 1; }
.form-control:disabled, .form-select:disabled { background-color: var(--m-panel); color: var(--m-text-2); opacity: 1; }
.form-label, legend { color: var(--m-text); }

/* Foco visível em tudo que recebe teclado */
a:focus-visible, button:focus-visible, .btn:focus-visible { outline: 2px solid var(--m-focus); outline-offset: 2px; }

/* Botões cheios */
.btn-primary { --bs-btn-bg: var(--m-primary); --bs-btn-border-color: var(--m-primary); --bs-btn-color: var(--m-on-primary); --bs-btn-hover-bg: var(--m-primary-hover); --bs-btn-hover-border-color: var(--m-primary-hover); --bs-btn-hover-color: var(--m-on-primary); --bs-btn-active-bg: var(--m-primary-hover); --bs-btn-active-border-color: var(--m-primary-hover); --bs-btn-active-color: var(--m-on-primary); --bs-btn-disabled-bg: var(--m-primary); --bs-btn-disabled-border-color: var(--m-primary); --bs-btn-disabled-color: var(--m-on-primary); }
.btn-success { --bs-btn-bg: var(--m-success); --bs-btn-border-color: var(--m-success); --bs-btn-color: var(--m-on-success); --bs-btn-hover-bg: var(--m-success); --bs-btn-hover-border-color: var(--m-success); --bs-btn-hover-color: var(--m-on-success); --bs-btn-active-bg: var(--m-success); --bs-btn-active-border-color: var(--m-success); --bs-btn-active-color: var(--m-on-success); --bs-btn-disabled-bg: var(--m-success); --bs-btn-disabled-border-color: var(--m-success); --bs-btn-disabled-color: var(--m-on-success); }
.btn-danger { --bs-btn-bg: var(--m-danger); --bs-btn-border-color: var(--m-danger); --bs-btn-color: var(--m-on-danger); --bs-btn-hover-bg: var(--m-danger); --bs-btn-hover-border-color: var(--m-danger); --bs-btn-hover-color: var(--m-on-danger); --bs-btn-active-bg: var(--m-danger); --bs-btn-active-border-color: var(--m-danger); --bs-btn-active-color: var(--m-on-danger); --bs-btn-disabled-bg: var(--m-danger); --bs-btn-disabled-border-color: var(--m-danger); --bs-btn-disabled-color: var(--m-on-danger); }
.btn-warning { --bs-btn-bg: var(--m-warning); --bs-btn-border-color: var(--m-warning); --bs-btn-color: var(--m-on-warning); --bs-btn-hover-bg: var(--m-warning); --bs-btn-hover-border-color: var(--m-warning); --bs-btn-hover-color: var(--m-on-warning); --bs-btn-active-bg: var(--m-warning); --bs-btn-active-border-color: var(--m-warning); --bs-btn-active-color: var(--m-on-warning); --bs-btn-disabled-bg: var(--m-warning); --bs-btn-disabled-border-color: var(--m-warning); --bs-btn-disabled-color: var(--m-on-warning); }
.btn-info { --bs-btn-bg: var(--m-info); --bs-btn-border-color: var(--m-info); --bs-btn-color: var(--m-on-info); --bs-btn-hover-bg: var(--m-info); --bs-btn-hover-border-color: var(--m-info); --bs-btn-hover-color: var(--m-on-info); --bs-btn-active-bg: var(--m-info); --bs-btn-active-border-color: var(--m-info); --bs-btn-active-color: var(--m-on-info); }
.btn-secondary { --bs-btn-bg: var(--m-secondary); --bs-btn-border-color: var(--m-secondary); --bs-btn-color: var(--m-on-secondary); --bs-btn-hover-bg: var(--m-secondary); --bs-btn-hover-border-color: var(--m-secondary); --bs-btn-hover-color: var(--m-on-secondary); --bs-btn-active-bg: var(--m-secondary); --bs-btn-active-border-color: var(--m-secondary); --bs-btn-active-color: var(--m-on-secondary); }

/* Botões vazados: texto legível no fundo; ao passar o mouse, cor cheia com o texto dela */
.btn-outline-primary { --bs-btn-color: var(--m-link); --bs-btn-border-color: var(--m-link); --bs-btn-hover-bg: var(--m-primary); --bs-btn-hover-border-color: var(--m-primary); --bs-btn-hover-color: var(--m-on-primary); --bs-btn-active-bg: var(--m-primary); --bs-btn-active-border-color: var(--m-primary); --bs-btn-active-color: var(--m-on-primary); }
.btn-check:checked + .btn-outline-primary { --bs-btn-active-bg: var(--m-primary); --bs-btn-active-color: var(--m-on-primary); --bs-btn-active-border-color: var(--m-primary); }
.btn-outline-secondary { --bs-btn-color: var(--m-text); --bs-btn-border-color: var(--m-border); --bs-btn-hover-bg: var(--m-hover); --bs-btn-hover-border-color: var(--m-border); --bs-btn-hover-color: var(--m-text); --bs-btn-active-bg: var(--m-selection); --bs-btn-active-border-color: var(--m-border); --bs-btn-active-color: var(--m-text); }
.btn-outline-dark { --bs-btn-color: var(--m-text); --bs-btn-border-color: var(--m-text); --bs-btn-hover-bg: var(--m-hover); --bs-btn-hover-border-color: var(--m-text); --bs-btn-hover-color: var(--m-text); --bs-btn-active-bg: var(--m-selection); --bs-btn-active-border-color: var(--m-text); --bs-btn-active-color: var(--m-text); }
.btn-outline-success { --bs-btn-color: var(--m-success-text); --bs-btn-border-color: var(--m-success-text); --bs-btn-hover-bg: var(--m-success); --bs-btn-hover-border-color: var(--m-success); --bs-btn-hover-color: var(--m-on-success); --bs-btn-active-bg: var(--m-success); --bs-btn-active-color: var(--m-on-success); }
.btn-outline-danger { --bs-btn-color: var(--m-danger-text); --bs-btn-border-color: var(--m-danger-text); --bs-btn-hover-bg: var(--m-danger); --bs-btn-hover-border-color: var(--m-danger); --bs-btn-hover-color: var(--m-on-danger); --bs-btn-active-bg: var(--m-danger); --bs-btn-active-color: var(--m-on-danger); }
.btn-outline-warning { --bs-btn-color: var(--m-warning-text); --bs-btn-border-color: var(--m-warning-text); --bs-btn-hover-bg: var(--m-warning); --bs-btn-hover-border-color: var(--m-warning); --bs-btn-hover-color: var(--m-on-warning); --bs-btn-active-bg: var(--m-warning); --bs-btn-active-color: var(--m-on-warning); }
.btn-outline-info { --bs-btn-color: var(--m-info-text); --bs-btn-border-color: var(--m-info-text); --bs-btn-hover-bg: var(--m-info); --bs-btn-hover-border-color: var(--m-info); --bs-btn-hover-color: var(--m-on-info); --bs-btn-active-bg: var(--m-info); --bs-btn-active-color: var(--m-on-info); }
.btn-link { --bs-btn-color: var(--m-link); --bs-btn-hover-color: var(--m-link-hover); --bs-btn-active-color: var(--m-link-hover); }

/* O .card-body do Bootstrap reaplica a cor do cartão: em cartão colorido, ela precisa acompanhar o fundo */
.card.bg-primary, .card.bg-gradient-primary { --bs-card-color: var(--m-on-primary); --bs-card-cap-color: var(--m-on-primary); --bs-card-title-color: var(--m-on-primary); --bs-card-cap-bg: transparent; }
.card.bg-success, .card.bg-gradient-success { --bs-card-color: var(--m-on-success); --bs-card-cap-color: var(--m-on-success); --bs-card-title-color: var(--m-on-success); --bs-card-cap-bg: transparent; }
.card.bg-danger, .card.bg-gradient-danger { --bs-card-color: var(--m-on-danger); --bs-card-cap-color: var(--m-on-danger); --bs-card-title-color: var(--m-on-danger); --bs-card-cap-bg: transparent; }
.card.bg-warning, .card.bg-gradient-warning { --bs-card-color: var(--m-on-warning); --bs-card-cap-color: var(--m-on-warning); --bs-card-title-color: var(--m-on-warning); --bs-card-cap-bg: transparent; }
.card.bg-info, .card.bg-gradient-info { --bs-card-color: var(--m-on-info); --bs-card-cap-color: var(--m-on-info); --bs-card-title-color: var(--m-on-info); --bs-card-cap-bg: transparent; }
.card.bg-secondary { --bs-card-color: var(--m-on-secondary); --bs-card-cap-color: var(--m-on-secondary); --bs-card-title-color: var(--m-on-secondary); --bs-card-cap-bg: transparent; }

/* Marca de PIX: mesma cara em todas as telas */
.badge-pix { background-color: var(--m-success); color: var(--m-on-success); font-weight: 700; letter-spacing: .03em; }

/* Selos: as classes antigas do Bootstrap 4 e o selo sem cor */
.badge { --bs-badge-color: var(--m-on-secondary); background-color: var(--m-secondary); color: var(--m-on-secondary); }
.badge.badge-pix { background-color: var(--m-success); color: var(--m-on-success); }
.badge-primary { background-color: var(--m-primary); color: var(--m-on-primary); }
.badge-success { background-color: var(--m-success); color: var(--m-on-success); }
.badge-danger { background-color: var(--m-danger); color: var(--m-on-danger); }
.badge-warning { background-color: var(--m-warning); color: var(--m-on-warning); }
.badge-info { background-color: var(--m-info); color: var(--m-on-info); }
.badge-secondary { background-color: var(--m-secondary); color: var(--m-on-secondary); }

/* Texto sobre cor: o par vem do tema, mesmo que a tela tenha pedido text-white */
.bg-primary, .bg-primary.text-white { color: var(--m-on-primary) !important; }
.bg-success, .bg-success.text-white { color: var(--m-on-success) !important; }
.bg-danger, .bg-danger.text-white { color: var(--m-on-danger) !important; }
.bg-warning, .bg-warning.text-white, .bg-warning.text-dark { color: var(--m-on-warning) !important; }
.bg-info, .bg-info.text-white, .bg-info.text-dark { color: var(--m-on-info) !important; }
.bg-secondary, .bg-secondary.text-white { color: var(--m-on-secondary) !important; }
.bg-primary :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i),
.bg-success :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i),
.bg-danger :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i),
.bg-warning :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i),
.bg-info :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i),
.bg-secondary :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i) { color: inherit !important; }
.bg-white { background-color: var(--m-surface-elevated) !important; color: var(--m-text); }
.bg-light { background-color: var(--m-panel) !important; color: var(--m-text); }
.bg-dark { background-color: var(--m-status-bar) !important; color: var(--m-on-status-bar) !important; }
.text-white { color: var(--m-on-primary) !important; }
.text-dark, .text-black { color: var(--m-text) !important; }
.text-muted, .text-body-secondary, .text-secondary { color: var(--m-text-muted) !important; }
.text-success { color: var(--m-success-text) !important; }
.text-danger { color: var(--m-danger-text) !important; }
.text-warning { color: var(--m-warning-text) !important; }
.text-info { color: var(--m-info-text) !important; }
.text-primary { color: var(--m-link) !important; }
.invalid-feedback { color: var(--m-danger-text); }
.valid-feedback { color: var(--m-success-text); }
.border-secondary { border-color: var(--m-border) !important; }

/* Fundo suave (bg-opacity): não é cor cheia, então usa a cor de texto legível sobre o tom claro */
.bg-success.bg-opacity-10, .bg-success.bg-opacity-25, .card.bg-success.bg-opacity-10, .card.bg-success.bg-opacity-25 { background-color: var(--m-success-soft) !important; color: var(--m-success-text) !important; --bs-card-color: var(--m-success-text); --bs-card-title-color: var(--m-success-text); }
.bg-danger.bg-opacity-10, .bg-danger.bg-opacity-25, .card.bg-danger.bg-opacity-10, .card.bg-danger.bg-opacity-25 { background-color: var(--m-danger-soft) !important; color: var(--m-danger-text) !important; --bs-card-color: var(--m-danger-text); --bs-card-title-color: var(--m-danger-text); }
.bg-warning.bg-opacity-10, .bg-warning.bg-opacity-25, .card.bg-warning.bg-opacity-10, .card.bg-warning.bg-opacity-25 { background-color: var(--m-warning-soft) !important; color: var(--m-warning-text) !important; --bs-card-color: var(--m-warning-text); --bs-card-title-color: var(--m-warning-text); }
.bg-info.bg-opacity-10, .bg-info.bg-opacity-25, .card.bg-info.bg-opacity-10, .card.bg-info.bg-opacity-25 { background-color: var(--m-info-soft) !important; color: var(--m-info-text) !important; --bs-card-color: var(--m-info-text); --bs-card-title-color: var(--m-info-text); }
.bg-primary.bg-opacity-10, .bg-primary.bg-opacity-25, .card.bg-primary.bg-opacity-10, .card.bg-primary.bg-opacity-25 { background-color: var(--m-selection) !important; color: var(--m-link) !important; --bs-card-color: var(--m-link); --bs-card-title-color: var(--m-link); }
.bg-secondary.bg-opacity-10, .bg-secondary.bg-opacity-25, .card.bg-secondary.bg-opacity-10, .card.bg-secondary.bg-opacity-25 { background-color: var(--m-secondary-soft) !important; color: var(--m-secondary-text) !important; --bs-card-color: var(--m-secondary-text); --bs-card-title-color: var(--m-secondary-text); }

/* Cartões de indicador */
.bg-gradient-info { background: var(--m-info) !important; color: var(--m-on-info) !important; }
.bg-gradient-success { background: var(--m-success) !important; color: var(--m-on-success) !important; }
.bg-gradient-warning { background: var(--m-warning) !important; color: var(--m-on-warning) !important; }
.bg-gradient-danger { background: var(--m-danger) !important; color: var(--m-on-danger) !important; }
.bg-gradient-primary { background: var(--m-primary) !important; color: var(--m-on-primary) !important; }
:is(.bg-gradient-info, .bg-gradient-success, .bg-gradient-warning, .bg-gradient-danger, .bg-gradient-primary) :is(h1, h2, h3, h4, h5, h6, p, small, .small, .text-muted, .text-white, i) { color: inherit !important; }

/* Estrutura do aplicativo */
.app-topbar { background: var(--m-status-bar); color: var(--m-on-status-bar); }
.app-topbar .btn { color: var(--m-on-status-bar); border-color: var(--m-on-status-bar); }
.sidebar { --bs-offcanvas-bg: var(--m-nav-bg); --bs-offcanvas-color: var(--m-nav-text); background: var(--m-nav-bg); color: var(--m-nav-text); border-right: 1px solid var(--m-border); }
.sidebar .nav-link, .sidebar button.nav-link { color: var(--m-nav-text); }
.sidebar .nav-link:hover, .sidebar .nav-link:focus { color: var(--m-nav-text); background: var(--m-nav-active); border-radius: 6px; }
.sidebar .nav-link.active { color: var(--m-nav-text); background: var(--m-nav-active); border-radius: 6px; font-weight: 600; }
.sidebar .brand, .sidebar .offcanvas-title { color: var(--m-nav-text); }
.sidebar .app-version, .sidebar .theme-label { color: var(--m-nav-muted); }

/* Seletor de tema */
.theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; }
.theme-option { min-height: 44px; padding: .35rem .5rem; font-size: .85rem; border: 1px solid var(--m-border); border-radius: 6px; background: transparent; color: var(--m-nav-text); text-align: left; }
.theme-option:hover { background: var(--m-nav-active); }
.theme-option[aria-pressed="true"] { background: var(--m-nav-active); border-color: var(--m-nav-text); font-weight: 600; }

/* Sinal dos monitores no mapa e estrelas de avaliação */
.estado-online { background: var(--m-success); }
.estado-delayed { background: var(--m-warning); }
.estado-offline, .estado-none { background: var(--m-secondary); }
.feedback-stars label { color: var(--m-text-muted); }
.feedback-stars input:checked ~ label, .feedback-stars label:hover, .feedback-stars label:hover ~ label { color: var(--m-warning-text); }
.feedback-stars input:focus-visible + label { outline: 2px solid var(--m-focus); }

/* Leaflet segue o tema nos controles; o mapa em si continua claro */
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--m-surface-elevated); color: var(--m-text); }
.leaflet-bar a { background: var(--m-surface-elevated); color: var(--m-text); border-color: var(--m-border); }
.leaflet-control-attribution { background: var(--m-surface-elevated) !important; color: var(--m-text) !important; }
.leaflet-control-attribution a { color: var(--m-link) !important; }

/* Telas sem o layout principal: login, erros e sem conexão */
.plain-page { min-height: 100vh; margin: 0; display: flex; align-items: center; justify-content: center; padding: 16px; text-align: center; background: var(--m-background); color: var(--m-text); font-family: system-ui, sans-serif; }
.plain-page main { max-width: 28rem; }
.plain-page h1 { font-size: 1.4rem; }
.plain-page a { display: block; margin-top: .75rem; padding: .85rem 1.25rem; background: var(--m-primary); color: var(--m-on-primary); border-radius: 6px; text-decoration: none; }
.plain-page a.secondary { background: transparent; color: var(--m-link); border: 1px solid var(--m-link); }
