/*
  Alphaprimo GitLab branding
  Fichier de surcharge CSS externe.
  Ne pas modifier les assets internes GitLab.
*/

/* =========================
   Variables visuelles
   ========================= */

:root {
  --ap-blue: #253F82;
  --ap-blue-dark: #1F326E;
  --ap-blue-light: #285296;
  --ap-bg: #F5F7FB;
  --ap-card: #FFFFFF;
  --ap-border: #E5E7EB;
  --ap-text: #374151;
  --ap-muted: #6B7280;
}

/* =========================
   Bandeau système
   ========================= */

.system-header-message,
.system-footer-message {
  background-color: var(--ap-blue) !important;
  color: #FFFFFF !important;
  border: 0 !important;
  font-weight: 500 !important;
}

/* =========================
   Page de connexion
   ========================= */

body.page-initial-sign-in {
  background: var(--ap-bg) !important;
}

body.page-initial-sign-in .page-wrap {
  background:
    linear-gradient(180deg, rgba(37, 63, 130, 0.06), rgba(255, 255, 255, 0.92)),
    var(--ap-bg) !important;
}

body.page-initial-sign-in .login-page {
  background: transparent !important;
}

/* Bloc texte à gauche */
body.page-initial-sign-in .brand-holder {
  color: var(--ap-text) !important;
}

body.page-initial-sign-in .brand-holder h1,
body.page-initial-sign-in .brand-holder h2,
body.page-initial-sign-in h1,
body.page-initial-sign-in h2 {
  color: var(--ap-blue-dark) !important;
  font-weight: 700 !important;
}

body.page-initial-sign-in .brand-holder p,
body.page-initial-sign-in .brand-holder div {
  color: var(--ap-muted) !important;
}

/* Logo connexion */
body.page-initial-sign-in img {
  max-height: 96px !important;
}

/* Formulaire */
body.page-initial-sign-in .gl-card,
body.page-initial-sign-in .signin-box,
body.page-initial-sign-in form {
  border-radius: 4px !important;
}

/* Bouton principal */
body.page-initial-sign-in button[type="submit"],
body.page-initial-sign-in .gl-button.btn-confirm {
  background-color: var(--ap-blue) !important;
  border-color: var(--ap-blue) !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
}

body.page-initial-sign-in button[type="submit"]:hover,
body.page-initial-sign-in .gl-button.btn-confirm:hover {
  background-color: var(--ap-blue-dark) !important;
  border-color: var(--ap-blue-dark) !important;
}

/* Bouton secondaire clé d'accès */
body.page-initial-sign-in .gl-button:not(.btn-confirm) {
  border-radius: 4px !important;
}

/* Footer login */
body.page-initial-sign-in footer {
  background: transparent !important;
}

/* =========================
   Interface connectée
   Inspiration ARES
   ========================= */

/* Fond général clair */
body {
  background-color: var(--ap-bg) !important;
}

/* Topbar */
.top-bar,
.navbar-gitlab,
.super-sidebar-topbar {
  background-color: #FFFFFF !important;
  border-bottom: 1px solid var(--ap-border) !important;
  box-shadow: 0 1px 8px rgba(31, 50, 110, 0.06) !important;
}

/* Sidebar GitLab */
.super-sidebar,
.super-sidebar .contextual-nav,
.super-sidebar .nav-sidebar {
  background-color: #FFFFFF !important;
  border-right: 1px solid var(--ap-border) !important;
}

/* Liens sidebar */
.super-sidebar a,
.super-sidebar .nav-item-name,
.super-sidebar .gl-button {
  color: var(--ap-text) !important;
}

/* État actif sidebar */
.super-sidebar .active,
.super-sidebar .active a,
.super-sidebar a[aria-current="page"] {
  background-color: rgba(37, 63, 130, 0.10) !important;
  color: var(--ap-blue-dark) !important;
  font-weight: 600 !important;
}

/* Titres */
h1, h2, h3,
.gl-heading-1,
.gl-heading-2,
.gl-heading-3 {
  color: var(--ap-blue-dark) !important;
}

/* Cartes / panels */
.gl-card,
.card,
.project-home-panel,
.content-block,
.gl-new-card {
  background-color: var(--ap-card) !important;
  border: 1px solid var(--ap-border) !important;
  box-shadow: 0 6px 18px rgba(31, 50, 110, 0.06) !important;
}

/* Boutons principaux */
.btn-confirm,
.gl-button.btn-confirm,
.gl-button.gl-button-confirm {
  background-color: var(--ap-blue) !important;
  border-color: var(--ap-blue) !important;
  color: #FFFFFF !important;
}

.btn-confirm:hover,
.gl-button.btn-confirm:hover,
.gl-button.gl-button-confirm:hover {
  background-color: var(--ap-blue-dark) !important;
  border-color: var(--ap-blue-dark) !important;
}

/* Liens */
a {
  color: var(--ap-blue) !important;
}

a:hover {
  color: var(--ap-blue-dark) !important;
}

/* Barres de progression */
progress,
.gl-progress-bar,
.progress-bar {
  accent-color: var(--ap-blue) !important;
}

/* Inputs focus */
input:focus,
textarea:focus,
select:focus {
  border-color: var(--ap-blue-light) !important;
  box-shadow: 0 0 0 1px var(--ap-blue-light) !important;
}

/* =========================================================
   Correctif login Alphaprimo v2
   Objectif : rendre la page de connexion lisible et proche ARES
   ========================================================= */

/* Fond login clair, propre */
body.page-initial-sign-in,
body.page-initial-sign-in .page-wrap,
body.page-initial-sign-in .login-page {
  background: #F5F7FB !important;
  color: #374151 !important;
}

/* Zone globale de connexion */
body.page-initial-sign-in .container,
body.page-initial-sign-in .container-fluid {
  background: transparent !important;
}

/* Bloc texte à gauche */
body.page-initial-sign-in .brand-holder {
  color: #6B7280 !important;
}

body.page-initial-sign-in .brand-holder *,
body.page-initial-sign-in .brand-holder p,
body.page-initial-sign-in .brand-holder div {
  color: #6B7280 !important;
  opacity: 1 !important;
}

body.page-initial-sign-in .brand-holder h1,
body.page-initial-sign-in .brand-holder h2,
body.page-initial-sign-in h1,
body.page-initial-sign-in h2 {
  color: #1F326E !important;
  opacity: 1 !important;
}

/* Bloc formulaire façon carte claire */
body.page-initial-sign-in .login-box,
body.page-initial-sign-in .signin-box,
body.page-initial-sign-in .gl-card {
  background: #FFFFFF !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 4px !important;
  box-shadow: 0 10px 28px rgba(31, 50, 110, 0.10) !important;
}

/* Textes formulaire */
body.page-initial-sign-in form,
body.page-initial-sign-in form *,
body.page-initial-sign-in label,
body.page-initial-sign-in .gl-form-label,
body.page-initial-sign-in .label-bold {
  color: #374151 !important;
  opacity: 1 !important;
}

/* Labels importants */
body.page-initial-sign-in label,
body.page-initial-sign-in .gl-form-label {
  color: #1F326E !important;
  font-weight: 600 !important;
}

/* Champs de saisie */
body.page-initial-sign-in input,
body.page-initial-sign-in .form-control,
body.page-initial-sign-in .gl-form-input {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border: 1px solid #C7D0E0 !important;
  box-shadow: none !important;
}

body.page-initial-sign-in input:focus,
body.page-initial-sign-in .form-control:focus,
body.page-initial-sign-in .gl-form-input:focus {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border-color: #253F82 !important;
  box-shadow: 0 0 0 1px #253F82 !important;
}

/* Placeholder */
body.page-initial-sign-in input::placeholder {
  color: #9CA3AF !important;
  opacity: 1 !important;
}

/* Checkbox */
body.page-initial-sign-in input[type="checkbox"] {
  accent-color: #253F82 !important;
}

/* Mot de passe oublié */
body.page-initial-sign-in a {
  color: #253F82 !important;
}

body.page-initial-sign-in a:hover {
  color: #1F326E !important;
}

/* Bouton connexion */
body.page-initial-sign-in button[type="submit"],
body.page-initial-sign-in .gl-button.btn-confirm,
body.page-initial-sign-in .btn-confirm {
  background-color: #253F82 !important;
  border-color: #253F82 !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
}

body.page-initial-sign-in button[type="submit"]:hover,
body.page-initial-sign-in .gl-button.btn-confirm:hover,
body.page-initial-sign-in .btn-confirm:hover {
  background-color: #1F326E !important;
  border-color: #1F326E !important;
  color: #FFFFFF !important;
}

/* Bouton clé d'accès */
body.page-initial-sign-in .gl-button:not(.btn-confirm),
body.page-initial-sign-in .btn:not(.btn-confirm) {
  background-color: #E5E7EB !important;
  border-color: #D1D5DB !important;
  color: #374151 !important;
}

/* Logo de connexion */
body.page-initial-sign-in img {
  max-height: 90px !important;
}

/* Footer login */
body.page-initial-sign-in footer,
body.page-initial-sign-in footer * {
  color: #253F82 !important;
  opacity: 1 !important;
}

/* =========================================================
   Correctif login Alphaprimo v3
   Ciblage fort uniquement sur la page /users/sign_in
   ========================================================= */

/* Page login uniquement */
body:has(form[action*="/users/sign_in"]) {
  background: #F5F7FB !important;
  color: #374151 !important;
}

/* Fond général login */
body:has(form[action*="/users/sign_in"]) .page-wrap,
body:has(form[action*="/users/sign_in"]) .login-page,
body:has(form[action*="/users/sign_in"]) main,
body:has(form[action*="/users/sign_in"]) .content-wrapper {
  background: #F5F7FB !important;
  color: #374151 !important;
}

/* On annule les opacités trop faibles sur la page login */
body:has(form[action*="/users/sign_in"]) main *,
body:has(form[action*="/users/sign_in"]) .login-page *,
body:has(form[action*="/users/sign_in"]) form * {
  opacity: 1 !important;
}

/* Texte de présentation à gauche */
body:has(form[action*="/users/sign_in"]) .brand-holder,
body:has(form[action*="/users/sign_in"]) .brand-holder *,
body:has(form[action*="/users/sign_in"]) .brand-holder p,
body:has(form[action*="/users/sign_in"]) .brand-holder div {
  color: #6B7280 !important;
}

body:has(form[action*="/users/sign_in"]) .brand-holder h1,
body:has(form[action*="/users/sign_in"]) .brand-holder h2,
body:has(form[action*="/users/sign_in"]) h1,
body:has(form[action*="/users/sign_in"]) h2 {
  color: #1F326E !important;
  font-weight: 700 !important;
}

/* Carte formulaire */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] {
  background: #FFFFFF !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 4px !important;
  box-shadow: 0 10px 28px rgba(31, 50, 110, 0.12) !important;
  padding: 24px !important;
}

/* Labels du formulaire */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] label,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-form-label,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .label-bold {
  color: #1F326E !important;
  font-weight: 600 !important;
}

/* Texte standard du formulaire */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] span,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] div,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] p {
  color: #374151 !important;
}

/* Champs de saisie */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] input:not([type="hidden"]):not([type="checkbox"]) {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border: 1px solid #C7D0E0 !important;
  box-shadow: none !important;
}

body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] input:not([type="hidden"]):not([type="checkbox"]):focus {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border-color: #253F82 !important;
  box-shadow: 0 0 0 1px #253F82 !important;
}

/* Checkbox */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] input[type="checkbox"] {
  accent-color: #253F82 !important;
}

/* Mot de passe oublié */
body:has(form[action*="/users/sign_in"]) a {
  color: #253F82 !important;
}

body:has(form[action*="/users/sign_in"]) a:hover {
  color: #1F326E !important;
}

/* Bouton connexion */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] button[type="submit"],
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .btn-confirm,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-button.btn-confirm {
  background-color: #253F82 !important;
  border-color: #253F82 !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
}

body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] button[type="submit"]:hover,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .btn-confirm:hover,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-button.btn-confirm:hover {
  background-color: #1F326E !important;
  border-color: #1F326E !important;
  color: #FFFFFF !important;
}

/* Bouton clé d'accès */
body:has(form[action*="/users/sign_in"]) .gl-button:not(.btn-confirm),
body:has(form[action*="/users/sign_in"]) .btn:not(.btn-confirm) {
  background-color: #E5E7EB !important;
  border-color: #D1D5DB !important;
  color: #374151 !important;
}

/* Logo */
body:has(form[action*="/users/sign_in"]) img {
  opacity: 1 !important;
  filter: none !important;
}

/* Footer login */
body:has(form[action*="/users/sign_in"]) footer,
body:has(form[action*="/users/sign_in"]) footer * {
  color: #253F82 !important;
  opacity: 1 !important;
}

/* =========================================================
   Correctif login Alphaprimo v4
   Lisibilité texte gauche + texte bouton connexion
   ========================================================= */

/* Texte descriptif sous Bienvenue */
body:has(form[action*="/users/sign_in"]) .brand-holder p,
body:has(form[action*="/users/sign_in"]) .brand-holder div,
body:has(form[action*="/users/sign_in"]) .brand-holder .gl-text-subtle,
body:has(form[action*="/users/sign_in"]) .brand-holder .gl-text-secondary,
body:has(form[action*="/users/sign_in"]) .brand-holder .text-muted,
body:has(form[action*="/users/sign_in"]) .brand-holder .text-secondary {
  color: #6B7280 !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Ciblage large du paragraphe de présentation login */
body:has(form[action*="/users/sign_in"]) main p,
body:has(form[action*="/users/sign_in"]) .login-page p,
body:has(form[action*="/users/sign_in"]) .login-page .gl-text-subtle,
body:has(form[action*="/users/sign_in"]) .login-page .gl-text-secondary {
  color: #6B7280 !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Titre Bienvenue */
body:has(form[action*="/users/sign_in"]) .brand-holder h1,
body:has(form[action*="/users/sign_in"]) .brand-holder h2,
body:has(form[action*="/users/sign_in"]) .login-page h1,
body:has(form[action*="/users/sign_in"]) .login-page h2 {
  color: #1F326E !important;
  opacity: 1 !important;
}

/* Bouton Connexion et tous ses éléments internes */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] button[type="submit"],
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] button[type="submit"] *,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .btn-confirm,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .btn-confirm *,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-button.btn-confirm,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-button.btn-confirm * {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
  opacity: 1 !important;
}

/* Fond du bouton Connexion */
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] button[type="submit"],
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .btn-confirm,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-button.btn-confirm {
  background-color: #253F82 !important;
  border-color: #253F82 !important;
}

body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] button[type="submit"]:hover,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .btn-confirm:hover,
body:has(form[action*="/users/sign_in"]) form[action*="/users/sign_in"] .gl-button.btn-confirm:hover {
  background-color: #1F326E !important;
  border-color: #1F326E !important;
}

/* =========================================================
   Correctif dark theme Alphaprimo v6
   Objectif : restaurer une interface connectée lisible en thème sombre
   ========================================================= */

/* Fond général interface connectée sombre */
html.gl-dark body:not(.page-initial-sign-in),
body.gl-dark:not(.page-initial-sign-in),
.gl-dark body:not(.page-initial-sign-in) {
  background-color: #111217 !important;
  color: #E5E7EB !important;
}

/* Sidebar sombre */
html.gl-dark .super-sidebar,
html.gl-dark .super-sidebar .contextual-nav,
html.gl-dark .super-sidebar .nav-sidebar,
body.gl-dark .super-sidebar,
body.gl-dark .super-sidebar .contextual-nav,
body.gl-dark .super-sidebar .nav-sidebar,
.gl-dark .super-sidebar,
.gl-dark .super-sidebar .contextual-nav,
.gl-dark .super-sidebar .nav-sidebar {
  background-color: #1F2027 !important;
  border-right: 1px solid #343640 !important;
  color: #D1D5DB !important;
}

/* Textes sidebar */
html.gl-dark .super-sidebar *,
body.gl-dark .super-sidebar *,
.gl-dark .super-sidebar * {
  color: #D1D5DB !important;
  opacity: 1 !important;
}

/* Entrée active sidebar */
html.gl-dark .super-sidebar .active,
html.gl-dark .super-sidebar a[aria-current="page"],
body.gl-dark .super-sidebar .active,
body.gl-dark .super-sidebar a[aria-current="page"],
.gl-dark .super-sidebar .active,
.gl-dark .super-sidebar a[aria-current="page"] {
  background-color: rgba(93, 135, 220, 0.22) !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
}

/* Topbar sombre */
html.gl-dark .top-bar,
html.gl-dark .navbar-gitlab,
html.gl-dark .super-sidebar-topbar,
body.gl-dark .top-bar,
body.gl-dark .navbar-gitlab,
body.gl-dark .super-sidebar-topbar,
.gl-dark .top-bar,
.gl-dark .navbar-gitlab,
.gl-dark .super-sidebar-topbar {
  background-color: #1A1B22 !important;
  border-bottom: 1px solid #343640 !important;
  color: #E5E7EB !important;
}

/* Contenu principal */
html.gl-dark .content-wrapper,
html.gl-dark .main-page,
html.gl-dark .container-fluid,
body.gl-dark .content-wrapper,
body.gl-dark .main-page,
body.gl-dark .container-fluid,
.gl-dark .content-wrapper,
.gl-dark .main-page,
.gl-dark .container-fluid {
  background-color: #111217 !important;
  color: #E5E7EB !important;
}

/* Cartes et blocs */
html.gl-dark .gl-card,
html.gl-dark .card,
html.gl-dark .project-home-panel,
html.gl-dark .content-block,
html.gl-dark .gl-new-card,
body.gl-dark .gl-card,
body.gl-dark .card,
body.gl-dark .project-home-panel,
body.gl-dark .content-block,
body.gl-dark .gl-new-card,
.gl-dark .gl-card,
.gl-dark .card,
.gl-dark .project-home-panel,
.gl-dark .content-block,
.gl-dark .gl-new-card {
  background-color: #18191F !important;
  border-color: #343640 !important;
  color: #E5E7EB !important;
  box-shadow: none !important;
}

/* Titres en dark mode */
html.gl-dark h1,
html.gl-dark h2,
html.gl-dark h3,
html.gl-dark .gl-heading-1,
html.gl-dark .gl-heading-2,
html.gl-dark .gl-heading-3,
body.gl-dark h1,
body.gl-dark h2,
body.gl-dark h3,
body.gl-dark .gl-heading-1,
body.gl-dark .gl-heading-2,
body.gl-dark .gl-heading-3,
.gl-dark h1,
.gl-dark h2,
.gl-dark h3,
.gl-dark .gl-heading-1,
.gl-dark .gl-heading-2,
.gl-dark .gl-heading-3 {
  color: #F3F4F6 !important;
}

/* Liens en dark mode */
html.gl-dark a,
body.gl-dark a,
.gl-dark a {
  color: #8BB7FF !important;
}

html.gl-dark a:hover,
body.gl-dark a:hover,
.gl-dark a:hover {
  color: #BBD3FF !important;
}

/* Textes secondaires */
html.gl-dark .gl-text-subtle,
html.gl-dark .gl-text-secondary,
html.gl-dark .text-muted,
html.gl-dark .text-secondary,
body.gl-dark .gl-text-subtle,
body.gl-dark .gl-text-secondary,
body.gl-dark .text-muted,
body.gl-dark .text-secondary,
.gl-dark .gl-text-subtle,
.gl-dark .gl-text-secondary,
.gl-dark .text-muted,
.gl-dark .text-secondary {
  color: #AAB2C0 !important;
  opacity: 1 !important;
}

/* Boutons secondaires dark */
html.gl-dark .gl-button:not(.btn-confirm),
body.gl-dark .gl-button:not(.btn-confirm),
.gl-dark .gl-button:not(.btn-confirm) {
  background-color: #2A2C35 !important;
  border-color: #444754 !important;
  color: #E5E7EB !important;
}

/* Inputs dark */
html.gl-dark input,
html.gl-dark textarea,
html.gl-dark select,
body.gl-dark input,
body.gl-dark textarea,
body.gl-dark select,
.gl-dark input,
.gl-dark textarea,
.gl-dark select {
  background-color: #18191F !important;
  border-color: #444754 !important;
  color: #E5E7EB !important;
}

html.gl-dark input:focus,
html.gl-dark textarea:focus,
html.gl-dark select:focus,
body.gl-dark input:focus,
body.gl-dark textarea:focus,
body.gl-dark select:focus,
.gl-dark input:focus,
.gl-dark textarea:focus,
.gl-dark select:focus {
  border-color: #8BB7FF !important;
  box-shadow: 0 0 0 1px #8BB7FF !important;
}
