/* Habillage GeoPlay de la page de connexion — reprend les tokens du studio (@geoplay/ui). */
/* Le studio est en thème clair : on neutralise le mode sombre automatique de PatternFly. */
:root,
:root.pf-v5-theme-dark {
  color-scheme: light;
  --gp-ink: #1f1b16;
  --gp-paper: #f7f3ec;
  --gp-surface: #ffffff;
  --gp-brand: #c2410c;
  --gp-brand-strong: #9a3412;
  --gp-muted: #6b6257;
  --gp-line: #e7dfd3;
  --pf-v5-global--primary-color--100: var(--gp-brand);
  --pf-v5-global--primary-color--200: var(--gp-brand-strong);
  --pf-v5-global--link--Color: var(--gp-brand);
  --pf-v5-global--link--Color--hover: var(--gp-brand-strong);
  --pf-v5-global--FontFamily--text: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pf-v5-global--FontFamily--heading: "Fraunces", Georgia, serif;
}

body,
.pf-v5-c-login {
  background:
    radial-gradient(1200px 600px at 10% -10%, #fde7d3 0%, transparent 60%), var(--gp-paper) !important;
  color: var(--gp-ink);
}

.pf-v5-c-login__container {
  max-width: 440px;
}

.pf-v5-c-login__main {
  background: var(--gp-surface);
  border: 1px solid var(--gp-line);
  border-radius: 20px;
  box-shadow: 0 24px 60px -30px rgb(31 27 22 / 0.35);
}

.pf-v5-c-login__main-header {
  padding-top: 2rem;
}

.pf-v5-c-login__main-header .pf-v5-c-title {
  font-family: var(--pf-v5-global--FontFamily--heading);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/*
 * Logo : le thème parent force un texte blanc en capitales (`#kc-header-wrapper { color: … !important }`),
 * invisible sur le fond crème. On impose l'encre du studio, la casse normale et la boussole du studio
 * (icône lucide « Compass », même dessin que dans l'application).
 */
#kc-header,
#kc-header-wrapper,
.pf-v5-c-login__header,
.pf-v5-c-brand {
  color: var(--gp-ink) !important;
}

#kc-header-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  font-family: var(--pf-v5-global--FontFamily--heading);
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: none;
}

#kc-header-wrapper::before {
  content: "";
  width: 1.75rem;
  height: 1.75rem;
  flex: none;
  background:
    no-repeat center / contain
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E");
}

/* Liseré bleu PatternFly en haut de la carte : remplacé par la couleur de la marque. */
:root {
  --keycloak-card-top-color: var(--gp-brand);
}

.pf-v5-c-login__main-header {
  border-top-color: var(--gp-brand);
  border-radius: 20px 20px 0 0;
}

/* Sélecteur de langue masqué : le studio n'existe qu'en français (il occupait la place du titre). */
.pf-v5-c-login__main-header-utilities {
  display: none;
}

div.pf-v5-c-login__main-header:has(.pf-v5-c-login__main-header-utilities) {
  grid-template-columns: 1fr;
}

/*
 * Erreur d'identification : affichée en bandeau au-dessus du formulaire, et non sous le seul champ
 * e-mail (qui laissait croire que l'adresse était fausse alors que le mot de passe peut l'être).
 */
#kc-form-login .pf-v5-c-form__group:has(#input-error-username) {
  display: flex;
  flex-direction: column;
}

#kc-form-login #input-error-container-username:has(#input-error-username) {
  order: -1;
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid #f3c1b3;
  border-radius: 12px;
  background: #fdf0eb;
}

#kc-form-login #input-error-username .pf-v5-c-helper-text__item-text {
  color: #8a2c0d;
  font-weight: 500;
}

#kc-form-login .pf-v5-c-form-control.pf-m-error:has(#username) {
  --pf-v5-c-form-control--after--BorderBottomColor: var(--pf-v5-global--BorderColor--100);
}

#kc-form-login .pf-v5-c-form-control.pf-m-error:has(#username) .pf-v5-c-form-control__utilities {
  display: none;
}

.pf-v5-c-button.pf-m-primary {
  background: var(--gp-brand);
  border-radius: 999px;
  font-weight: 600;
  padding-block: 0.7rem;
}

.pf-v5-c-button.pf-m-primary:hover {
  background: var(--gp-brand-strong);
}

.pf-v5-c-form-control {
  border-radius: 12px;
}

.pf-v5-c-form-control,
.pf-v5-c-form-control input,
.pf-v5-c-form-control > :is(input, select, textarea) {
  background-color: var(--gp-surface) !important;
  color: var(--gp-ink) !important;
}

/* Inscription : bloc « Conditions d’utilisation » et case à cocher lisibles (thème clair du studio). */
#kc-registration-terms-text {
  margin-top: 0.25rem;
  color: var(--gp-muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

#kc-registration-terms-text a {
  color: var(--gp-brand-strong);
  text-decoration: underline;
}

#termsAccepted {
  width: 1.125rem;
  height: 1.125rem;
  margin-right: 0.5rem;
  vertical-align: -0.2em;
  accent-color: var(--gp-brand);
}
