/**
 * Contraste texte / fond — classique, Heritage, Clair.
 * S'appuie sur les tokens de ui-theme-tokens.css ; chargé en dernier dans les layouts.
 */

body {
    color: var(--text);
}

a {
    color: var(--text-link);
}

a:hover {
    color: color-mix(in srgb, var(--text-link) 88%, var(--text));
}

h1, h2, h3, h4,
main h1,
.page-title,
.page-hero__title,
.comms-center__title,
.auth-card__title,
.app-brand,
.app-brand__title {
    color: var(--text);
}

.page-intro,
.page-hero__sub,
.guest-form-head-meta,
.comms-center__lead,
.auth-card__subtitle,
.auth-card__footer,
.fiche-ro-dl dt {
    color: var(--text-muted);
}

label,
.form-card-title,
.comms-card__head h2,
th,
.lstats__label,
.app-brand__meta,
.app-sidebar__section-label,
.edition-row__label,
.app-nav-dropdown__label,
.comms-stat-panel__label {
    color: var(--text-muted);
}

td,
.fiche-ro-dl dd,
.comms-preview-box,
.comms-body-editor,
input, select, textarea {
    color: var(--text);
}

input::placeholder,
textarea::placeholder {
    color: var(--placeholder);
    opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
    box-shadow: 0 0 0 3px var(--focus-ring);
}

/* Messages flash */
.flash-success {
    background: var(--flash-success-bg) !important;
    border-color: var(--flash-success-border) !important;
    color: var(--text-flash-success) !important;
}

.flash-danger {
    background: var(--flash-danger-bg) !important;
    border-color: var(--flash-danger-border) !important;
    color: var(--text-flash-danger) !important;
}

.flash-info {
    background: var(--flash-info-bg) !important;
    border-color: var(--flash-info-border) !important;
    color: var(--text-flash-info) !important;
}

.errors {
    background: var(--flash-danger-bg) !important;
    border-color: var(--flash-danger-border) !important;
    color: var(--text-flash-danger) !important;
}

/* Navigation header — barre horizontale (priorité sur la règle globale button) */
.app-header .app-nav-primary a,
.app-header .app-nav-dropdown__trigger {
    color: var(--nav-text-idle, var(--text));
}

.app-header .app-nav-primary a:hover,
.app-header .app-nav-dropdown__trigger:hover {
    color: var(--text);
    background: var(--nav-hover-bg);
}

.app-header .app-nav-primary a.is-active,
.app-header .app-nav-dropdown.is-active .app-nav-dropdown__trigger,
.app-header .app-nav-dropdown.is-open .app-nav-dropdown__trigger {
    color: var(--text);
    background: var(--nav-active-bg);
    box-shadow: inset 0 0 0 1px var(--nav-active-border);
}

/* Liens dans les panneaux déroulants */
.app-nav-dropdown__panel a,
.edition-panel__top a,
.edition-row__sub a {
    color: var(--text-link);
}

.app-nav-dropdown__panel a:hover,
.edition-panel__top a:hover,
.edition-row__sub a:hover {
    color: var(--nav-active-text);
    background: var(--nav-hover-bg);
}

.app-nav-dropdown__panel a.is-active,
.edition-panel__top a.is-active,
.edition-row__sub a.is-active,
.edition-row.is-sub-active .edition-row__label {
    color: var(--nav-active-text);
    background: var(--nav-active-bg);
}

.app-header__tool-link {
    color: var(--text);
}

.app-header__tool-link.is-active {
    color: var(--text-link);
}

.app-header__tool-link:hover {
    color: var(--text);
}

button.app-header__tool-link,
button.ui-theme-toggle {
    color: var(--text);
    background: var(--panel-elevated);
    border: 1px solid var(--border-medium);
}

button.app-header__tool-link:hover,
button.ui-theme-toggle:hover {
    color: var(--text);
    background: var(--tool-link-hover-bg);
    border-color: var(--tool-link-hover-border);
}

button.app-header__tool-link.is-active,
button.ui-theme-toggle.is-classic,
html:not([data-ui-theme]) .ui-theme-toggle.is-classic,
html[data-ui-theme="heritage"] .ui-theme-toggle.is-heritage,
html[data-ui-theme="clair"] .ui-theme-toggle.is-clair {
    color: var(--text-link);
    background: var(--tool-link-active-bg);
    border-color: var(--tool-link-active-border);
}

button.preview-banner__exit {
    color: #fff;
    background: #1a1300;
    border: none;
}

button.preview-banner__exit:hover {
    color: #fff;
    background: #3d2e00;
    filter: none;
}

.app-edition-badge {
    color: var(--text-link);
}

/* Sidebar (classique & heritage — clair a ses propres règles) */
.app-sidebar__link {
    color: color-mix(in srgb, var(--text-muted) 92%, var(--text));
}

.app-sidebar__link:hover,
.app-sidebar__link.is-active {
    color: var(--text);
}

html[data-ui-theme="clair"] .app-sidebar,
html[data-ui-theme="clair"] .app-sidebar__link,
html[data-ui-theme="clair"] .app-sidebar__link:hover,
html[data-ui-theme="clair"] .app-sidebar__link.is-active {
    color: #f8f4f3;
}

html[data-ui-theme="clair"] .app-sidebar__section-label {
    color: rgba(248, 244, 243, 0.82);
}

/* Boutons (hors triggers du menu horizontal) */
button:not(.secondary):not(.danger):not(.app-header__logout):not(.app-nav-toggle):not(.app-nav-dropdown__trigger):not(.exp-action-btn):not(.app-header__tool-link):not(.ui-theme-toggle):not(.preview-banner__exit):not(.invite-list-meal-icon),
.btn:not(.secondary):not(.danger):not(.invite-list-meal-icon) {
    color: var(--text-on-primary-container);
}

button.secondary,
.btn.secondary {
    color: var(--text-on-secondary-btn);
}

button.danger,
.btn.danger {
    color: #fff;
}

/* Chips & compteurs */
.count-chip {
    color: var(--text-link);
    background: var(--chip-accent-bg);
    border-color: var(--chip-accent-border);
}

.count-chip--muted {
    color: var(--text-muted);
    background: var(--chip-muted-bg);
    border-color: var(--chip-muted-border);
}

.count-chip--ok {
    color: var(--text-ok);
    background: var(--chip-ok-bg);
    border-color: var(--chip-ok-border);
}

.count-chip--pending {
    color: var(--text-pending);
    background: var(--chip-pending-bg);
    border-color: var(--chip-pending-border);
}

.lstats__num {
    color: var(--text-link);
}

.lstats__card--ok .lstats__num {
    color: var(--text-ok);
}

.lstats__card--pending .lstats__num,
.lstats__card--meal .lstats__num {
    color: var(--text-pending);
}

.lstats__card--filter .lstats__num {
    color: var(--text-muted);
}

.lstats__card {
    background: var(--chip-accent-bg);
}

.lstats__card--ok {
    background: var(--chip-ok-bg);
}

.lstats__card--pending {
    background: var(--chip-pending-bg);
}

.lstats__card--filter {
    background: var(--chip-muted-bg);
}

.lstats__sep {
    background: var(--border-medium);
}

tbody tr:hover {
    background: var(--nav-hover-bg);
}

/* Bandeau héros */
.page-hero {
    background: linear-gradient(
        135deg,
        color-mix(in srgb, var(--accent) 10%, transparent),
        color-mix(in srgb, var(--accent) 2%, transparent) 55%,
        transparent
    );
}

.page-hero__title {
    color: var(--text);
}

/* Panneaux stats Stitch */
.heritage-stat-panel,
.comms-stat-panel {
    color: var(--text-on-primary-container);
}

.heritage-stat-panel .lstats__label,
.comms-stat-panel .lstats__label,
.comms-stat-panel__label,
.heritage-stat-panel .comms-stat-panel__label {
    color: color-mix(in srgb, var(--text-on-primary-container) 88%, transparent);
}

/* Connexion */
html[data-ui-theme="clair"] .auth-card__head,
html[data-ui-theme="heritage"] .auth-card__head {
    background: linear-gradient(
        165deg,
        color-mix(in srgb, var(--accent) 18%, var(--panel)),
        var(--panel) 58%
    );
    border-bottom-color: var(--border-subtle);
}

html[data-ui-theme="clair"] .auth-card,
html[data-ui-theme="heritage"] .auth-card {
    border-color: var(--border-medium);
    box-shadow: var(--shadow-card);
}

html[data-ui-theme="clair"] .auth-card__body,
html[data-ui-theme="heritage"] .auth-card__body {
    background: var(--bg-deep);
}

html[data-ui-theme="clair"] .auth-card__body input,
html[data-ui-theme="heritage"] .auth-card__body input {
    background: var(--input-bg);
    border-color: var(--border-medium);
    color: var(--text);
}

html[data-ui-theme="clair"] .auth-card__subtitle {
    color: var(--text-muted);
}

html[data-ui-theme="heritage"] .auth-card__subtitle {
    color: color-mix(in srgb, var(--text-muted) 90%, var(--text));
}

html[data-ui-theme="clair"] .auth-card__submit {
    color: var(--text-on-primary-container);
}

/* Centre de communication */
html[data-ui-theme="clair"] .comms-roadmap-frame {
    background: var(--bg-deep);
}

.comms-filter-links a:not(.is-active) {
    color: var(--text-muted);
}

.comms-filter-links a.is-active {
    color: var(--text-link);
}

/* Badges navigation */
.app-nav-badge {
    color: #1a1208;
}

html[data-ui-theme="clair"] .app-nav-badge {
    color: #fff;
}

html[data-ui-theme="clair"] .row-actions a {
    color: var(--text-link);
}

/* Menu horizontal : priorité absolue sur les règles button des thèmes */
html[data-ui-theme] .app-header .app-nav-primary a,
html[data-ui-theme] .app-header .app-nav-dropdown__trigger {
    color: var(--nav-text-idle, var(--text));
}

html[data-ui-theme] .app-header .app-nav-primary a:hover,
html[data-ui-theme] .app-header .app-nav-dropdown__trigger:hover {
    color: var(--text);
}

html[data-ui-theme] .app-header .app-nav-primary a.is-active,
html[data-ui-theme] .app-header .app-nav-dropdown.is-active .app-nav-dropdown__trigger,
html[data-ui-theme] .app-header .app-nav-dropdown.is-open .app-nav-dropdown__trigger {
    color: var(--text);
}
