/* BEGIN SHARED DECISOFT LAB PALETTE — generated by scripts/sync_review_palette.py */
:root {
  color-scheme: light;
  --lab-navy: #12263d;
  --lab-navy-active: #24415f;
  --lab-blue: #225fd6;
  --lab-blue-hover: #174caf;
  --lab-gold: #f5b654;
  --lab-background: #f4f6f9;
  --lab-surface: #fff;
  --lab-surface-soft: #f7f9fc;
  --lab-line: #e5e9ef;
  --lab-input-line: #c4cfdd;
  --lab-text: #1c2d42;
  --lab-text-secondary: #334c6a;
  --lab-muted: #687a90;
  --lab-on-navy: #baccdf;
  --lab-blue-soft: #edf2fd;
  --lab-success: #3c8e6b;
  --lab-success-soft: #e6f5ef;
  --lab-warning: #9c771d;
  --lab-warning-soft: #fff4db;
  --lab-danger: #b45145;
  --lab-danger-soft: #fff0ee;
}
/* END SHARED DECISOFT LAB PALETTE */
/* Shared DECISOFT LAB identity. Authentication stays in keycloak.v2. */
@font-face {
  font-family: Archivo;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/archivo-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: Archivo;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/archivo-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: Archivo;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/archivo-latin-700-normal.woff2") format("woff2");
}
:root {
  color-scheme: light;
  --recette-navy: var(--lab-navy);
  --recette-accent: var(--lab-blue);
  --recette-accent-hover: var(--lab-blue-hover);
  --recette-text: var(--lab-text);
  --recette-muted: var(--lab-muted);
  --recette-background: var(--lab-background);
  --recette-surface: var(--lab-surface);
  --recette-line: var(--lab-line);
  --pf-v5-global--FontFamily--text: Archivo, "Avenir Next", system-ui, sans-serif;
  --pf-v5-global--FontFamily--heading: var(--pf-v5-global--FontFamily--text);
  --pf-v5-global--Color--100: var(--recette-text);
  --pf-v5-global--Color--200: var(--recette-muted);
  --pf-v5-global--primary-color--100: var(--recette-accent);
  --pf-v5-global--primary-color--200: var(--recette-accent-hover);
  --pf-v5-global--link--Color: var(--recette-accent);
  --pf-v5-global--link--Color--hover: var(--recette-accent-hover);
}
* { box-sizing: border-box; }
html.login-pf,
.login-pf body {
  min-height: 100%;
  margin: 0;
  background: var(--recette-background) none;
  color: var(--recette-text);
  font: 16px/1.55 var(--pf-v5-global--FontFamily--text);
}
.pf-v5-c-login {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  place-items: center;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 48px 32px;
  background: none;
  font-family: var(--pf-v5-global--FontFamily--text);
}
.pf-v5-c-login__container {
  display: grid;
  grid-template-areas: "brand form";
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
  width: 100%;
  max-width: 1080px;
  padding: 0;
  margin: 0 auto;
}
/* This is the native, sanitized loginTitleHtml branding slot. */
#kc-header {
  grid-area: brand;
  width: 100%;
  margin: 0;
  padding: clamp(32px, 4vw, 48px);
  border-radius: 24px;
  background: var(--recette-navy);
}
#kc-header-wrapper {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  color: var(--lab-surface);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: normal;
  text-align: start;
  text-transform: none;
  white-space: normal;
}
.decisoft-brand { display: flex; align-items: center; gap: 14px; }
.decisoft-brand::before {
  content: "";
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--lab-navy-active) url("../img/brand-boat.svg") center / 30px no-repeat;
}
.decisoft-wordmark { display: block; }
.decisoft-wordmark strong {
  display: block;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.035em;
}
.decisoft-lab { color: var(--lab-gold); }
.decisoft-wordmark small {
  display: block;
  margin-top: 5px;
  color: var(--lab-on-navy);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.decisoft-pitch {
  display: block;
  margin: 42px 0 20px;
  font-size: clamp(32px, 3.2vw, 40px);
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.decisoft-description {
  display: block;
  max-width: 36ch;
  color: var(--lab-on-navy);
  font-size: 15px;
  line-height: 1.75;
}
.decisoft-apps {
  display: grid;
  gap: 17px;
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid #ffffff26;
}
.decisoft-app { display: block; padding-inline-start: 15px; border-inline-start: 2px solid var(--lab-gold); }
.decisoft-app strong {
  display: block;
  color: var(--lab-surface);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .035em;
}
.decisoft-app small { display: block; margin-top: 3px; color: var(--lab-on-navy); font-size: 12px; line-height: 1.5; }
.decisoft-environment {
  display: inline-block;
  margin-top: 30px;
  padding: 5px 10px;
  border: 1px solid #ffffff40;
  border-radius: 20px;
  color: var(--lab-on-navy);
  font-size: 11px;
  line-height: 1.5;
}
.pf-v5-c-login__main {
  grid-area: form;
  align-self: center;
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--recette-line);
  border-radius: 18px;
  background: var(--recette-surface);
  box-shadow: 0 8px 30px #0b254504;
}
.pf-v5-c-login__main-header,
div.pf-v5-c-login__main-header:has(.pf-v5-c-login__main-header-utilities) {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px 12px;
  padding: 30px 32px 28px;
  border: 0;
}
.pf-v5-c-login__main-header::before {
  content: "ESPACE SÉCURISÉ";
  grid-column: 1;
  grid-row: 1;
  color: var(--recette-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
}
html:lang(en) .pf-v5-c-login__main-header::before { content: "SECURE WORKSPACE"; }
#kc-page-title {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  color: var(--recette-navy);
  font: 700 28px/1.2 var(--pf-v5-global--FontFamily--text);
  letter-spacing: -.035em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.pf-v5-c-login__main-header-utilities { grid-column: 2; grid-row: 1; margin: 0; }
.pf-v5-c-login__main-body { padding: 0 32px 30px; }
.pf-v5-c-login__main-footer { padding: 0; }
.pf-v5-c-form { gap: 22px; }
.pf-v5-c-form__label { color: var(--recette-text); font-size: 14px; font-weight: 600; }
.pf-v5-c-form-control {
  --pf-v5-c-form-control--BorderColor: var(--lab-input-line);
  --pf-v5-c-form-control--after--BorderBottomWidth: 0;
  min-height: 48px;
  border: 1px solid var(--lab-input-line);
  border-radius: 8px;
  background: var(--lab-surface);
  color: var(--recette-text);
}
.pf-v5-c-form-control::before,
.pf-v5-c-form-control::after { border: 0; }
.pf-v5-c-form-control > :is(input, select, textarea) {
  min-height: 46px;
  padding: 11px 12px;
  border-radius: inherit;
  color: inherit;
  font: inherit;
}
.pf-v5-c-form-control > select { min-height: 34px; padding-block: 5px; font-size: 12px; }
.pf-v5-c-login__main-header-utilities .pf-v5-c-form-control { min-height: 36px; background: transparent; }
.pf-v5-c-form-control:focus-within { outline: 2px solid var(--recette-accent); outline-offset: 3px; }
.pf-v5-c-form-control.pf-m-error { border-color: #b63c39; }
.pf-v5-c-form-control.pf-m-readonly { background: var(--recette-background); }
.pf-v5-c-form__helper-text { margin-top: 8px; font-size: 13px; }
.pf-v5-c-helper-text__item.pf-m-error,
.kc-feedback-text.pf-m-error { color: #a52b28; }
.pf-v5-c-button {
  --pf-v5-c-button--BorderRadius: 8px;
  --pf-v5-c-button--after--BorderRadius: 8px;
  min-height: 46px;
  padding: 11px 16px;
  font: 600 14px/1.5 var(--pf-v5-global--FontFamily--text);
}
.pf-v5-c-button.pf-m-primary {
  --pf-v5-c-button--m-primary--BackgroundColor: var(--recette-accent);
  --pf-v5-c-button--m-primary--hover--BackgroundColor: var(--recette-accent-hover);
  --pf-v5-c-button--m-primary--focus--BackgroundColor: var(--recette-accent-hover);
  background: var(--recette-accent);
  color: var(--lab-surface);
}
.pf-v5-c-button.pf-m-primary:hover { background: var(--recette-accent-hover); }
.pf-v5-c-button.pf-m-control { color: var(--recette-muted); }
.pf-v5-c-button.pf-m-secondary { color: var(--recette-accent); }
.pf-v5-c-button.pf-m-secondary::after { border-color: var(--lab-input-line); }
.pf-v5-c-input-group { gap: 0; }
.pf-v5-c-input-group .pf-v5-c-form-control { border-start-end-radius: 0; border-end-end-radius: 0; }
.pf-v5-c-input-group .pf-v5-c-button.pf-m-control {
  min-height: 48px;
  border: 1px solid var(--lab-input-line);
  border-inline-start: 0;
  border-radius: 0 8px 8px 0;
  background: var(--lab-surface);
}
.pf-v5-c-input-group .pf-v5-c-button.pf-m-control::after { border: 0; }
:is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--recette-accent); outline-offset: 3px; }
.pf-v5-c-form-control :is(input, select, textarea):focus-visible { outline: 0; }
a { color: var(--recette-accent); text-underline-offset: 3px; }
a:hover { color: var(--recette-accent-hover); }
.pf-v5-c-alert {
  border-radius: 8px;
  border-inline-start: 3px solid var(--lab-blue);
  background: var(--lab-blue-soft);
  color: var(--lab-text-secondary);
  box-shadow: none;
  font-size: 14px;
}
.pf-v5-c-alert.pf-m-warning { border-inline-start-color: #d6a13e; background: var(--lab-warning-soft); color: #775424; }
.pf-v5-c-alert.pf-m-danger { border-inline-start-color: #b63c39; background: #fff1f0; color: #8e2926; }
.instruction { color: var(--recette-muted); line-height: 1.65; overflow-wrap: anywhere; }
.instruction + .instruction { margin-top: 16px; }
#kc-info { margin-top: 22px; padding: 18px 0 0; border-top: 1px solid var(--recette-line); background: none; }
#kc-info-wrapper { padding: 0; }
#kc-form-options { font-size: 13px; }
.recette-footer { padding: 20px 32px; border-top: 1px solid var(--recette-line); }
.recette-footer a { font-size: 13px; font-weight: 600; }
.recette-footer p { margin: 8px 0 0; color: var(--recette-muted); font-size: 12px; }
@media (max-width: 800px) {
  .pf-v5-c-login { padding: 28px 20px; }
  .pf-v5-c-login__container { grid-template-areas: "brand" "form"; grid-template-columns: 1fr; gap: 24px; max-width: 520px; }
  #kc-header { padding: 28px; border-radius: 18px; }
  .decisoft-brand::before { width: 40px; height: 40px; flex-basis: 40px; background-size: 26px; border-radius: 10px; }
  .decisoft-wordmark strong { font-size: 22px; }
  .decisoft-pitch { margin-top: 26px; margin-bottom: 14px; font-size: 30px; }
  .decisoft-description { max-width: none; font-size: 14px; }
  .decisoft-apps { gap: 12px; margin-top: 22px; padding-top: 20px; }
  .decisoft-environment { margin-top: 22px; }
}
@media (max-width: 480px) {
  .pf-v5-c-login { padding: 16px; }
  #kc-header { padding: 25px; }
  .decisoft-wordmark strong { font-size: 20px; }
  .pf-v5-c-login__main-header,
  div.pf-v5-c-login__main-header:has(.pf-v5-c-login__main-header-utilities) { padding: 24px 24px 26px; }
  #kc-page-title { font-size: 25px; }
  .pf-v5-c-login__main-body { padding: 0 24px 26px; }
  .recette-footer { padding: 18px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
