/*
 * AxiSaaS V7.0.4 - Bootstrap 5 / theme dynamique
 * Chargé après Bootstrap et theme.css afin de conserver la grille Bootstrap
 * tout en appliquant les variables du thème AxiSaaS aux composants métier.
 */
:root {
    --bs-primary: var(--theme-primary, var(--primary, #1b5dff));
    --bs-secondary: var(--theme-secondary, var(--secondary, #e8f0f7));
    --bs-success: var(--theme-success, #16845b);
    --bs-danger: var(--theme-danger, var(--danger, #dc2626));
    --bs-warning: var(--theme-warning, #b7791f);
    --bs-info: var(--theme-info, #0f6f8f);
    --bs-body-color: var(--theme-text-body, var(--text, #172033));
    --bs-body-bg: var(--theme-body-bg, var(--content-bg, #f7f9fc));
    --bs-border-color: var(--theme-line-color, var(--line, #d8e2ec));
    --bs-border-radius: var(--theme-input-radius, 6px);
}

body .content-area .container,
body .content-area .container-fluid {
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
}

body .content-area .row {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 1.25rem;
}

body .content-area [class^="col-"],
body .content-area [class*=" col-"] {
    min-width: 0;
}

body .content-area .card:has(> .card-body) {
    padding: 0 !important;
    overflow: hidden;
}

body .content-area .card > .card-header,
body .content-area .card > .card-footer {
    padding: 1rem 1.25rem;
    color: var(--theme-card-text, var(--text));
    background: var(--theme-panel-header-bg, var(--theme-surface-hover-bg, #f8fafc));
    border-color: var(--theme-card-border, var(--line));
}

body .content-area .card > .card-body {
    padding: 1.25rem;
    color: var(--theme-card-text, var(--text));
    background: var(--theme-card-bg, var(--card-bg, #fff));
}

body .content-area .form-label,
body .content-area .col-form-label {
    margin-bottom: .45rem;
    color: var(--theme-label-text, var(--theme-card-text, var(--text)));
    font-size: .86rem;
    font-weight: 650;
}

body .content-area .form-text {
    margin-top: .4rem;
    color: var(--theme-muted-color, var(--muted));
    font-size: .78rem;
}

body .content-area .form-control,
body .content-area .form-select,
body .content-area .input-group-text {
    min-height: 44px;
    color: var(--theme-input-text, var(--text)) !important;
    background-color: var(--theme-input-bg, #fff) !important;
    border-color: var(--theme-input-border, var(--line)) !important;
    border-radius: var(--theme-input-radius, 6px);
}

body .content-area textarea.form-control {
    min-height: 120px;
}

body .content-area .form-control::placeholder {
    color: var(--theme-input-placeholder, #718096);
    opacity: 1;
}

body .content-area .form-control:focus,
body .content-area .form-select:focus {
    color: var(--theme-input-text, var(--text)) !important;
    background-color: var(--theme-input-bg, #fff) !important;
    border-color: var(--theme-input-focus-border, var(--theme-primary, var(--primary))) !important;
    box-shadow: var(--theme-input-focus-ring, 0 0 0 .22rem rgba(27, 93, 255, .14)) !important;
}

body .content-area .input-group > .form-control:not(:first-child),
body .content-area .input-group > .form-select:not(:first-child),
body .content-area .input-group > .input-group-text:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

body .content-area .input-group > .form-control:not(:last-child),
body .content-area .input-group > .form-select:not(:last-child),
body .content-area .input-group > .input-group-text:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

body .content-area .form-check-input {
    width: 1.1em;
    height: 1.1em;
    margin-top: .18em;
    border-color: var(--theme-checkbox-border, var(--line));
}

body .content-area .form-check-input:checked {
    background-color: var(--theme-checkbox-checked-bg, var(--theme-primary, var(--primary))) !important;
    border-color: var(--theme-checkbox-checked-border, var(--theme-primary, var(--primary))) !important;
}

body .content-area .form-check-input:focus {
    border-color: var(--theme-primary, var(--primary));
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--theme-primary, var(--primary)) 18%, transparent);
}

body .content-area .form-control.is-invalid,
body .content-area .form-select.is-invalid {
    border-color: var(--theme-input-error-border, var(--theme-danger, #dc2626)) !important;
}

body .content-area .form-control.is-valid,
body .content-area .form-select.is-valid {
    border-color: var(--theme-input-success-border, var(--theme-success, #16845b)) !important;
}

body .content-area .btn {
    border-radius: var(--theme-button-radius, 6px);
    padding: .65rem 1rem;
    font-weight: 650;
    line-height: 1.2;
}

/* V6.0.113: no universal white text on semantic buttons. */

body .content-area .btn.btn-primary {
    background: var(--theme-button-primary-bg, var(--theme-primary, var(--primary))) !important;
    border-color: var(--theme-button-primary-border, var(--theme-primary, var(--primary))) !important;
    color: var(--theme-button-primary-text, #fff) !important;
}

body .content-area .btn.btn-secondary {
    background: var(--theme-button-secondary-bg, var(--theme-secondary, #e8f0f7)) !important;
    border-color: var(--theme-button-secondary-border, var(--theme-line-color, var(--line))) !important;
    color: var(--theme-button-secondary-text, var(--text)) !important;
}

body .content-area .btn.btn-success { color:var(--theme-button-success-text, #fff) !important; background: var(--theme-button-success-bg, var(--theme-success, #16845b)) !important; border-color: var(--theme-button-success-border, var(--theme-button-success-bg, #16845b)) !important; }
body .content-area .btn.btn-danger { color:var(--theme-button-danger-text, #fff) !important; background: var(--theme-button-danger-bg, var(--theme-danger, var(--danger, #dc2626))) !important; border-color: var(--theme-button-danger-border, var(--theme-button-danger-bg, #dc2626)) !important; }
body .content-area .btn.btn-warning { color:var(--theme-button-warning-text, #0f172a) !important; background: var(--theme-button-warning-bg, var(--theme-warning, #b7791f)) !important; border-color: var(--theme-button-warning-border, var(--theme-button-warning-bg, #b7791f)) !important; }
body .content-area .btn.btn-info { color:var(--theme-info-button-text, #fff) !important; background: var(--theme-info, #0f6f8f) !important; border-color: var(--theme-info, #0f6f8f) !important; }

body .content-area .btn.btn-outline-primary,
body .content-area .btn.btn-outline-secondary,
body .content-area .btn.btn-outline-danger {
    background: transparent !important;
}

body .content-area .btn.btn-outline-primary { color: var(--theme-primary, var(--primary)) !important; border-color: var(--theme-primary, var(--primary)) !important; }
body .content-area .btn.btn-outline-secondary { color: var(--theme-text-body, var(--text)) !important; border-color: var(--theme-line-color, var(--line)) !important; }
body .content-area .btn.btn-outline-danger { color: var(--theme-danger, var(--danger, #dc2626)) !important; border-color: var(--theme-danger, var(--danger, #dc2626)) !important; }

body .content-area .table-responsive {
    border: 1px solid var(--theme-table-border, var(--line));
    border-radius: var(--theme-card-radius, 8px);
    overflow-x: auto;
}

body .content-area .table {
    --bs-table-bg: var(--theme-table-bg, var(--theme-card-bg, #fff));
    --bs-table-color: var(--theme-table-text, var(--text));
    --bs-table-border-color: var(--theme-table-border, var(--line));
    width: 100%;
    margin-bottom: 0;
    color: var(--theme-table-text, var(--text));
    vertical-align: middle;
}

body .content-area .table > :not(caption) > * > * {
    padding: .8rem .9rem;
    color: inherit;
    background: transparent;
    border-bottom-color: var(--theme-table-border, var(--line));
}

body .content-area .table > thead {
    color: var(--theme-table-header-text, var(--text));
    background: var(--theme-table-header-bg, #f8fafc);
}

body .content-area .table-striped > tbody > tr:nth-of-type(odd) > * {
    background: var(--theme-table-row-alt-bg, rgba(15, 23, 42, .025));
}

body .content-area .table-hover > tbody > tr:hover > * {
    background: var(--theme-table-row-hover-bg, var(--theme-surface-hover-bg, #f8fafc));
}

/* Navigation Bootstrap: reserve the sidebar palette for .nav-menu only.
 * Tabs and pills always inherit their own theme tokens in ALL states. */
body .content-area .nav-tabs,
body .content-area .nav-pills {
    gap: .45rem;
    border-bottom-color: var(--theme-tab-panel-border, var(--theme-card-border, var(--line)));
}
body .content-area .nav-tabs .nav-item,
body .content-area .nav-pills .nav-item {
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    background: transparent !important;
    color: inherit !important;
    border: 0 !important;
    transform: none !important;
}
body .content-area .nav-tabs .nav-link,
body .content-area .nav-pills .nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 44px;
    font-weight: 650;
    color: var(--theme-tab-btn-text, var(--theme-card-text, var(--text))) !important;
    background: var(--theme-tab-btn-bg, var(--theme-card-bg, #fff)) !important;
    border: 1px solid var(--theme-tab-btn-border, var(--theme-card-border, var(--line))) !important;
    border-radius: var(--theme-tab-btn-radius, var(--theme-button-radius, 6px)) !important;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease;
}
body .content-area .nav-tabs .nav-link i,
body .content-area .nav-pills .nav-link i {
    color: var(--theme-tab-btn-icon, currentColor) !important;
}
body .content-area .nav-tabs .nav-link:not(.active):hover,
body .content-area .nav-pills .nav-link:not(.active):hover {
    color: var(--theme-tab-btn-hover-text, var(--theme-tab-btn-text, var(--text))) !important;
    background: var(--theme-tab-btn-hover-bg, var(--theme-surface-hover-bg, var(--theme-card-bg, #fff))) !important;
    border-color: var(--theme-tab-btn-hover-border, var(--theme-tab-btn-border, var(--theme-line-color, var(--line)))) !important;
}
body .content-area .nav-tabs .nav-link:not(.active):hover i,
body .content-area .nav-pills .nav-link:not(.active):hover i {
    color: var(--theme-tab-btn-hover-icon, currentColor) !important;
}
body .content-area .nav-tabs .nav-link.active,
body .content-area .nav-pills .nav-link.active,
body .content-area .nav-tabs .nav-link[aria-selected="true"],
body .content-area .nav-pills .nav-link[aria-selected="true"] {
    color: var(--theme-tab-btn-active-text, var(--theme-button-primary-text, #fff)) !important;
    background: var(--theme-tab-btn-active-bg, var(--theme-primary, var(--primary))) !important;
    border-color: var(--theme-tab-btn-active-border, var(--theme-primary, var(--primary))) !important;
}
body .content-area .nav-tabs .nav-link.active i,
body .content-area .nav-pills .nav-link.active i,
body .content-area .nav-tabs .nav-link[aria-selected="true"] i,
body .content-area .nav-pills .nav-link[aria-selected="true"] i {
    color: var(--theme-tab-btn-active-icon, currentColor) !important;
}
body .content-area .nav-tabs .nav-link:focus-visible,
body .content-area .nav-pills .nav-link:focus-visible {
    outline: 3px solid var(--theme-primary, var(--primary, #1b5dff)) !important;
    outline-offset: 3px;
    box-shadow: var(--theme-tab-btn-focus-ring, 0 0 0 3px rgba(27, 93, 255, .18)) !important;
}
body .content-area .nav-tabs .nav-link:disabled,
body .content-area .nav-pills .nav-link:disabled {
    color: var(--theme-text-disabled, var(--theme-muted-color, var(--muted, #64748b))) !important;
    background: var(--theme-button-secondary-disabled-bg, var(--theme-tab-btn-bg, var(--theme-card-bg, #fff))) !important;
    cursor: not-allowed;
    opacity: var(--theme-disabled-opacity, .55);
}

.modal-content {
    color: var(--theme-modal-text, var(--text));
    background: var(--theme-modal-bg, var(--theme-card-bg, #fff));
    border-color: var(--theme-modal-border, var(--line));
    border-radius: var(--theme-modal-radius, 8px);
    box-shadow: var(--theme-modal-shadow, 0 24px 70px rgba(15, 23, 42, .2));
}

.modal-header,
.modal-footer { border-color: var(--theme-modal-border, var(--line)); }
.modal-backdrop.show { opacity: .45; }

body .content-area .accordion-item {
    color: var(--theme-accordion-text, var(--text));
    background: var(--theme-accordion-bg, var(--theme-card-bg, #fff));
    border-color: var(--theme-accordion-border, var(--line));
}

body .content-area .accordion-button {
    color: var(--theme-accordion-text, var(--text));
    background: var(--theme-accordion-header-bg, var(--theme-card-bg, #fff));
    box-shadow: none;
}

body .content-area .accordion-button:not(.collapsed) {
    color: var(--theme-primary, var(--primary));
    background: var(--theme-accordion-active-bg, var(--theme-primary-soft, #eef4ff));
}

.dropdown-menu {
    color: var(--theme-dropdown-text, var(--text));
    background: var(--theme-dropdown-bg, #fff);
    border-color: var(--theme-dropdown-border, var(--line));
    border-radius: var(--theme-dropdown-radius, 6px);
    box-shadow: var(--theme-dropdown-shadow, 0 16px 35px rgba(15, 23, 42, .16));
}

.dropdown-item { color: var(--theme-dropdown-text, var(--text)); }
.dropdown-item:hover,
.dropdown-item:focus { color: var(--theme-dropdown-hover-text, var(--text)); background: var(--theme-dropdown-hover-bg, var(--theme-secondary)); }

body .content-area .pagination { gap: .3rem; flex-wrap: wrap; }
body .content-area .page-link {
    min-width: 38px;
    text-align: center;
    color: var(--theme-pagination-text, var(--text));
    background: var(--theme-pagination-bg, #fff);
    border-color: var(--theme-pagination-border, var(--line));
    border-radius: var(--theme-button-radius, 6px) !important;
}
body .content-area .page-item.active .page-link {
    color: var(--theme-pagination-active-text, #fff);
    background: var(--theme-pagination-active-bg, var(--theme-primary, var(--primary)));
    border-color: var(--theme-pagination-active-bg, var(--theme-primary, var(--primary)));
}

body .content-area .alert.alert-success { color: var(--theme-alert-success-text, #166534); background: var(--theme-alert-success-bg, #ecfdf5); border-color: var(--theme-alert-success-border, #86efac); }
body .content-area .alert.alert-danger { color: var(--theme-alert-danger-text, #991b1b); background: var(--theme-alert-danger-bg, #fef2f2); border-color: var(--theme-alert-danger-border, #fecaca); }
body .content-area .alert.alert-warning { color: var(--theme-alert-warning-text, #854d0e); background: var(--theme-alert-warning-bg, #fffbeb); border-color: var(--theme-alert-warning-border, #fde68a); }
body .content-area .alert.alert-info { color: var(--theme-alert-info-text, #075985); background: var(--theme-alert-info-bg, #f0f9ff); border-color: var(--theme-alert-info-border, #bae6fd); }

@media (max-width: 767.98px) {
    body .content-area .row { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
    body .content-area .card > .card-body,
    body .content-area .card > .card-header,
    body .content-area .card > .card-footer { padding: 1rem; }
    body .content-area .btn-toolbar,
    body .content-area .btn-group-responsive { display: grid; width: 100%; gap: .55rem; }
    body .content-area .btn-toolbar .btn,
    body .content-area .btn-group-responsive .btn { width: 100%; }
}

/* AxiSaaS v6.0.113 - RGAA text and components. All colors inherited from theme tokens. */
body .content-area :is(code, samp, kbd) {
  color: inherit !important;
  background-color: transparent !important;
  opacity: 1 !important;
}
body .content-area :is(.text-muted, .text-secondary, .text-body-secondary) {
  color: var(--theme-text-secondary, var(--theme-content-text, var(--text))) !important;
  opacity: 1 !important;
}
body .content-area :is(.card, .panel, .modal-content) :is(.text-muted, .text-secondary, .text-body-secondary) {
  color: var(--theme-card-muted, var(--theme-card-text, var(--text))) !important;
}
body .content-area :is(.module-description, .theme-color-body small, .theme-style-row code) {
  opacity: 1 !important;
}
body .content-area a:not(.btn):not(.nav-link):not(.tab-btn):not(.badge) {
  color: var(--theme-link-color, var(--theme-text-body, var(--text)));
  text-decoration-thickness: from-font;
  text-underline-offset: .16em;
}
body .content-area a:not(.btn):not(.nav-link):not(.tab-btn):not(.badge):hover {
  color: var(--theme-link-hover-color, var(--theme-link-color, var(--text)));
  text-decoration:none;
}
body .content-area .btn.btn-outline-primary {
  color: var(--theme-link-color, var(--theme-primary)) !important;
}
body .content-area .btn.btn-outline-danger {
  color: var(--theme-danger-text, var(--theme-text-body)) !important;
}
body .content-area :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--theme-input-focus-border, var(--theme-primary)) !important;
  outline-offset: 2px;
}
@media (forced-colors: active) {
  body .content-area :is(button, a, input, select, textarea):focus-visible {
    outline: 3px solid Highlight !important;
  }
}

/* Semantic status badges must NEVER inherit the single generic badge color. */
body .content-area :is(.badge.green, .badge.success, .badge.bg-success, .status-badge.success) {
  background: var(--theme-badge-success-bg, #E8F6EE) !important;
  color: var(--theme-badge-success-text, #11643E) !important;
  border-color: var(--theme-badge-success-bg, #E8F6EE) !important;
}
body .content-area :is(.badge.danger, .badge.red, .badge.bg-danger, .status-badge.danger) {
  background: var(--theme-badge-danger-bg, #FDECEE) !important;
  color: var(--theme-badge-danger-text, #922832) !important;
  border-color: var(--theme-badge-danger-bg, #FDECEE) !important;
}
body .content-area :is(.badge.warn, .badge.warning, .badge.bg-warning) {
  background: var(--theme-badge-warning-bg, #FFF6DE) !important;
  color: var(--theme-badge-warning-text, #7B4E12) !important;
  border-color: var(--theme-badge-warning-bg, #FFF6DE) !important;
}
body .content-area :is(.badge.info, .badge.bg-info) {
  background: var(--theme-badge-info-bg, #E9F5FA) !important;
  color: var(--theme-badge-info-text, #1D607E) !important;
  border-color: var(--theme-badge-info-bg, #E9F5FA) !important;
}
body .content-area :is(.badge.gray, .badge.default, .badge.bg-secondary) {
  background: var(--theme-badge-default-bg, #EFF4FF) !important;
  color: var(--theme-badge-default-text, #171B4F) !important;
  border-color: var(--theme-badge-default-bg, #EFF4FF) !important;
}
body .content-area :is(.btn.danger, .btn.btn-danger) {
  background-color: var(--theme-button-danger-bg, #C33C46) !important;
  color: var(--theme-button-danger-text, #FFFFFF) !important;
}
body .content-area :is(.btn.light, .btn.btn-light) {
  background-color: var(--theme-button-secondary-bg, #FFFFFF) !important;
  color: var(--theme-button-secondary-text, #171B4F) !important;
  border-color: var(--theme-button-secondary-border, #DCE4FF) !important;
}
body .content-area .card a:not(.btn):not(.nav-link):not(.tab-btn):not(.badge) {
  color: var(--theme-card-link-text, var(--theme-card-text)) !important;
}
body .content-area .card a:not(.btn):not(.nav-link):not(.tab-btn):not(.badge):hover {
  color: var(--theme-card-link-hover-text, var(--theme-card-text)) !important;
}
body .content-area :is(.metric span, .module-description, .card .help, .card .text-muted) {
  color: var(--theme-card-muted, var(--theme-card-text)) !important;
  opacity: 1 !important;
}

/* AxiSaaS v7.0.2 - semantic utilities use a foreground computed for the
   surface where they are rendered. Bootstrap's fixed palette is not allowed
   to leak into modules because several of its tones fail on light themes. */
body .content-area :is(.text-primary, .link-primary):not(.badge) { color: var(--theme-primary-on-content, var(--theme-link-color)) !important; }
body .content-area :is(.text-secondary, .link-secondary):not(.badge) { color: var(--theme-secondary-on-content, var(--theme-text-secondary)) !important; }
body .content-area :is(.text-success, .link-success):not(.badge) { color: var(--theme-success-on-content, var(--theme-link-color)) !important; }
body .content-area :is(.text-warning, .link-warning):not(.badge) { color: var(--theme-warning-on-content, var(--theme-link-color)) !important; }
body .content-area :is(.text-danger, .link-danger):not(.badge) { color: var(--theme-danger-on-content, var(--theme-danger-text)) !important; }
body .content-area :is(.text-info, .link-info):not(.badge) { color: var(--theme-info-on-content, var(--theme-link-color)) !important; }
body .content-area :is(.text-accent, .link-accent):not(.badge) { color: var(--theme-accent-on-content, var(--theme-link-color)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-primary, .link-primary):not(.badge) { color: var(--theme-primary-on-card, var(--theme-card-text)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-secondary, .link-secondary):not(.badge) { color: var(--theme-secondary-on-card, var(--theme-card-text)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-success, .link-success):not(.badge) { color: var(--theme-success-on-card, var(--theme-card-text)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-warning, .link-warning):not(.badge) { color: var(--theme-warning-on-card, var(--theme-card-text)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-danger, .link-danger):not(.badge) { color: var(--theme-danger-on-card, var(--theme-card-text)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-info, .link-info):not(.badge) { color: var(--theme-info-on-card, var(--theme-card-text)) !important; }
body .content-area :is(.card, .panel, .modal-content) :is(.text-accent, .link-accent):not(.badge) { color: var(--theme-accent-on-card, var(--theme-card-text)) !important; }

/* Opacity must not be used to mute readable text: it changes the effective
   foreground after the server-side contrast calculation. */
.brand-meta span,
.footer-version,
body .content-area :is(.module-description, .menu-row.is-hidden, .check-card.muted, .widget-hidden) {
  opacity: 1 !important;
}
