/* Palette commune ; les couleurs métier et les images gardent leur identité. */
:root {
    --theme-surface: #fff;
    --theme-soft: #f8fafc;
    --theme-border: #e2e8f0;
    --theme-text: #0f172a;
    --theme-muted: #64748b;
    --theme-success: #15803d;
    --theme-solid-bg: #0f172a;
    --theme-solid-text: #ffffff;
    --theme-solid-hover: #1e293b;
}
html[data-theme="dark"]:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){
    color-scheme: dark;
    --theme-surface: #1e293b;
    --theme-soft: #172132;
    --theme-border: #334155;
    --theme-text: #e8eef7;
    --theme-muted: #a7b5c8;
    --theme-success: #4ade80;
    --theme-solid-bg: #29405d;
    --theme-solid-text: #ffffff;
    --theme-solid-hover: #385574;
    --bg: #0f172a;
    --card: #1e293b;
    --border: #334155;
    --border-strong: #475569;
    --text: #e8eef7;
    --text-soft: #d1d9e6;
    --muted: #a7b5c8;
    --muted-light: #97a9c0;
    --bs-body-bg: #0f172a;
    --bs-body-color: #e8eef7;
    --bs-border-color: #334155;
    --bs-secondary-color: #a7b5c8;
}
.theme-toggle {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 40px; padding: 8px 12px; border: 1px solid var(--theme-border);
    border-radius: 12px; background: var(--theme-surface); color: var(--theme-text);
    font: 600 12px/1.2 system-ui, sans-serif; cursor: pointer;
}
.theme-toggle > span:first-child { font-size: 20px; line-height: 1; }
.theme-toggle:focus-visible { outline: 3px solid #60a5fa; outline-offset: 3px; }
.theme-toggle-floating { position: fixed; top: 16px; right: 16px; z-index: 1040; }
html[data-theme="dark"] body:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #0f172a !important; color: var(--theme-text); }
html[data-theme="dark"] :is(.bg-white, .card, .modal-content, .offcanvas, .dropdown-menu, .list-group-item):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){
    background-color: var(--theme-surface) !important; color: var(--theme-text); border-color: var(--theme-border);
}
html[data-theme="dark"] :is(.bg-light, .bg-body-tertiary, .input-group-text):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){
    background-color: var(--theme-soft) !important; color: var(--theme-text); border-color: var(--theme-border);
}
html[data-theme="dark"] :is(.text-dark, .text-body, .text-black):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: var(--theme-text) !important; }
html[data-theme="dark"] :is(.text-muted, .text-secondary, .text-body-secondary):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: var(--theme-muted) !important; }
html[data-theme="dark"] :is(.text-success, .text-success-emphasis):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: #4ade80 !important; }
html[data-theme="dark"] .text-danger:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: #fca5a5 !important; }
html[data-theme="dark"] .text-primary:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: #93c5fd !important; }
html[data-theme="dark"] :is(.form-control, .form-select, input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]), textarea, select):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){
    background-color: var(--theme-soft) !important; color: var(--theme-text) !important; border-color: #475569 !important;
}
html[data-theme="dark"] :is(input, textarea)::placeholder:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: #97a9c0 !important; opacity: 1; }
html[data-theme="dark"] :is(.form-control, .form-select):focus:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ border-color: #60a5fa !important; box-shadow: 0 0 0 3px #60a5fa30; }
html[data-theme="dark"] .table:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){
    --bs-table-bg: var(--theme-surface); --bs-table-color: var(--theme-text);
    --bs-table-border-color: var(--theme-border); --bs-table-hover-bg: #29384e;
    --bs-table-hover-color: var(--theme-text); --bs-table-striped-bg: #223047;
    --bs-table-striped-color: var(--theme-text); color: var(--theme-text);
}
html[data-theme="dark"] :is(.btn-light, .btn-outline-dark):not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: var(--theme-text); background: var(--theme-soft); border-color: var(--theme-border); }
html[data-theme="dark"] .btn-close:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ filter: invert(1) grayscale(100%) brightness(200%); }
html[data-theme="dark"] .alert-warning:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #3b2b16; color: #fde68a; border-color: #76592a; }
html[data-theme="dark"] .alert-danger:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #3b202b; color: #fecaca; border-color: #7f3543; }
html[data-theme="dark"] .alert-success:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #15382d; color: #bbf7d0; border-color: #28684c; }
html[data-theme="dark"] .alert-info:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #153346; color: #bae6fd; border-color: #2c6079; }
html[data-theme="dark"] .login-card:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: var(--theme-surface); }
html[data-theme="dark"] .brand-header:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: var(--theme-surface) !important; }
html[data-theme="dark"] [data-password-rule]:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: var(--theme-muted) !important; }
html[data-theme="dark"] [data-password-rule][data-valid="true"]:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ color: #4ade80 !important; }
html[data-theme="dark"] #userFormWarning:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #3b2b16 !important; border-color: #76592a !important; color: #fde68a !important; }
html[data-theme="dark"] [style*="background:var(--text)"]:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #334155 !important; }
@media (max-width: 600px) { .top-navbar .theme-toggle-label { display: none; } }
@media print {
    .theme-toggle { display: none !important; }
    html[data-theme="dark"] body:not(.ticket-paper, .facture-paper, [data-document-preview], .ticket-paper *, .facture-paper *, [data-document-preview] *){ background: #fff !important; color: #000 !important; color-scheme: light; }
}
