/* ==========================================================================
   HARMONIE — un seul langage visuel pour tout le site (thèmes Stade ET Nuit)
   Chargé APRÈS style_unifie.css et themes.css. Il ne change ni les tailles ni
   les marges des boutons : seulement leurs COULEURS, leurs ARRONDIS et leurs
   états (survol, clavier), pour que « Enregistrer », « Valider », « Publier »…
   se ressemblent sur toutes les pages.

   Les 4 rôles :
     1. Action principale  (Enregistrer, Valider, Publier, Envoyer, Connexion)   → bleu plein
     2. Action secondaire  (Annuler, Aperçu, Outils, filtres, onglets)           → contour bleu
     3. Danger             (Vider, Supprimer, Réinitialiser)                     → rouge
     4. Lien               (texte cliquable)                                     → --lien
   Le préfixe « :root » + !important sur les couleurs de boutons : ils passent
   devant les styles propres à chaque page ET devant themes-nuit-auto.css.
   ========================================================================== */

/* ---- Couleurs de rôle, par thème ---- */
[data-theme="stade"] {
    --lien:          #3b5b85;
    --lien-survol:   #2e4a6e;
    --btn-fond:      linear-gradient(135deg, #4c6e96 0%, #5e81ac 100%);
    --btn-texte:     #ffffff;
    --btn-contour:   #4c6e96;       /* bordure + texte des boutons secondaires */
    --btn-sec-fond:  #ffffff;
    --btn-sec-survol:#e5e9f0;
    --btn-danger:    #b04a55;
    --focus:         rgba(94, 129, 172, .40);
}
[data-theme="nuit"] {
    --lien:          #88c0d0;
    --lien-survol:   #b4dbe6;
    --btn-fond:      linear-gradient(135deg, #5e81ac 0%, #4c6e96 100%);
    --btn-texte:     #ffffff;
    --btn-contour:   #88c0d0;
    --btn-sec-fond:  #3b4252;
    --btn-sec-survol:#434c5e;
    --btn-danger:    #bf616a;
    --focus:         rgba(136, 192, 208, .45);
}

/* ---- 1. ACTION PRINCIPALE : même fond, même texte, même arrondi partout ---- */
:root .btn-save,
:root .btn-save-prono,
:root .btn-admin-save,
:root .as-btn-save,
:root .btn-gains-save,
:root .btn-publish,
:root .btn-send,
:root .btn-ok,
:root .btn-login,
:root .btn-inscrire,
:root .btn-valider-compte,
:root .btn-new-msg,
:root .btn-hero-primary,
:root .btn-regenerate,
:root .nl-btn-merge,
:root button[type="submit"]:not([class*="btn-filter"]):not(.btn-admin-danger):not(.tb-btn):not([class*="danger"]) {
    background: var(--btn-fond) !important;
    color: var(--btn-texte) !important;
    border: 1px solid transparent !important;
    border-radius: 10px;
    font-weight: 700;
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition: filter .15s, transform .1s, box-shadow .15s;
}
:root .btn-save:hover,
:root .btn-save-prono:hover,
:root .btn-admin-save:hover,
:root .as-btn-save:hover,
:root .btn-gains-save:hover,
:root .btn-publish:hover,
:root .btn-send:hover,
:root .btn-ok:hover,
:root .btn-login:hover,
:root .btn-inscrire:hover,
:root .btn-valider-compte:hover,
:root .btn-new-msg:hover,
:root .btn-hero-primary:hover,
:root .btn-regenerate:hover,
:root .nl-btn-merge:hover {
    filter: brightness(1.12);
    box-shadow: var(--shadow-md);
}
/* « Enregistrer mes pronos » reste en pilule : c'est le bouton flottant de la saisie */
:root .sticky-footer .btn-save { border-radius: 999px; }

/* ---- 2. ACTION SECONDAIRE : contour bleu, fond neutre ---- */
:root .btn-cancel,
:root .btn-preview,
:root .btn-tool,
:root .btn-more-info,
:root .btn-tri,
:root .btn-refresh-feuille,
:root .btn-hero-secondary,
:root .nl-btn-skip,
:root .as-btn,
:root .audit-edit-btn,
:root .match-tv-edit-btn,
:root .action-btn,
:root .pill-btn,
:root .btn-filter,
:root .btn-filter-match,
:root .nl-filter-btn,
:root .as-filter-btn,
:root .admin-tab-btn,
:root .impact-toggle-btn {
    background: var(--btn-sec-fond) !important;
    color: var(--btn-contour) !important;
    border: 1px solid var(--btn-contour) !important;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, color .15s, filter .15s;
}
:root .btn-cancel,
:root .btn-preview,
:root .btn-tool,
:root .btn-more-info,
:root .btn-tri,
:root .btn-refresh-feuille,
:root .btn-hero-secondary,
:root .nl-btn-skip,
:root .as-btn,
:root .audit-edit-btn,
:root .match-tv-edit-btn,
:root .action-btn { border-radius: 10px; }
/* Filtres et onglets : en « pastilles » arrondies */
:root .btn-filter,
:root .btn-filter-match,
:root .nl-filter-btn,
:root .as-filter-btn,
:root .admin-tab-btn,
:root .pill-btn { border-radius: 999px; }

:root .btn-cancel:hover,
:root .btn-preview:hover,
:root .btn-tool:hover,
:root .btn-more-info:hover,
:root .btn-tri:hover,
:root .btn-refresh-feuille:hover,
:root .btn-hero-secondary:hover,
:root .nl-btn-skip:hover,
:root .as-btn:hover,
:root .audit-edit-btn:hover,
:root .match-tv-edit-btn:hover,
:root .action-btn:hover,
:root .pill-btn:hover,
:root .btn-filter:hover,
:root .btn-filter-match:hover,
:root .nl-filter-btn:hover,
:root .as-filter-btn:hover,
:root .admin-tab-btn:hover,
:root .impact-toggle-btn:hover { background: var(--btn-sec-survol); color: var(--btn-contour); }

/* Filtre / onglet ACTIF : plein, comme une action principale */
:root .btn-filter.active,
:root .btn-filter-match.active,
:root .nl-filter-btn.active,
:root .as-filter-btn.active,
:root .admin-tab-btn.active,
:root .pill-btn.active,
:root .impact-toggle-btn.active {
    background: var(--btn-fond) !important;
    color: var(--btn-texte) !important;
    border-color: transparent !important;
    font-weight: 700;
}

/* ---- 3. DANGER ---- */
:root .btn-admin-danger,
:root .btn-reset-sim {
    background: var(--btn-danger) !important;
    color: #ffffff !important;
    border: 1px solid transparent !important;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
}
:root .btn-admin-danger:hover,
:root .btn-reset-sim:hover { filter: brightness(1.1); }

/* ---- 4. LIENS : une seule couleur, soulignés au survol ---- */
:root #global a:not([class*="btn"]):not([class*="nav-"]):not(.cmv2-corps):not(.res-lien):not(.header-logo-link):not([class*="pill"]):not([class*="badge"]):not([class*="tag"]):not([class*="chip"]):not([class*="card"]) {
    color: var(--lien);
}
:root #global a:not([class*="btn"]):not([class*="nav-"]):not(.cmv2-corps):not(.res-lien):not(.header-logo-link):not([class*="pill"]):not([class*="badge"]):not([class*="tag"]):not([class*="chip"]):not([class*="card"]):hover {
    color: var(--lien-survol);
    text-decoration: underline;
}

/* ---- Accessibilité : un anneau visible quand on navigue au clavier ---- */
:root a:focus-visible,
:root button:focus-visible,
:root select:focus-visible,
:root input:focus-visible,
:root textarea:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 2px;
}

/* ---- Titres de sections : même présentation partout ---- */
:root .titre-page { border-bottom-width: 3px; }
:root .titre-page h1,
:root .mise-en-forme-titre { color: var(--primary-color); letter-spacing: .02em; }

/* ---- Noms de joueurs (classements) : texte courant en gras, pas en bleu ----
   Le lien reste cliquable : il se souligne au survol. !important car la couleur
   est écrite en ligne dans classement_table.php (style="color:var(--primary-color)"). */
:root .table-classement td a {
    color: var(--text-dark) !important;
    font-weight: 700;
}
:root .table-classement td a:hover {
    color: var(--lien) !important;
    text-decoration: underline !important;
}
