/* Pages d'authentification.
   .is-login -> Security/login_content.html.twig
   .is-reset -> Resetting/request_content.html.twig, Resetting/check_email.html.twig,
                Resetting/reset_content.html.twig
   Inclusion : {% stylesheets "bundles/wduser/css/auth.css" %} */
#body {
  background: var(--cyan-bg-2); }

/* une regle globale force une autre police sur les balises de titre */
h1, h2, h3, h4, h5, h6 {
  font-family: inherit; }

.auth-page {
  font-family: 'Poppins', system-ui, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  color: var(--ink);
  --radius: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;
  /* l'oeil de visibilite est injecte par site.js (initDisplayShowPassword) :
     il enveloppe l'input dans un .password-wrapper + un .eye-icon absolu */
  /* conditions du mot de passe : meme brique que change_parameter/parameter.html.twig
     (les etats sont poses en JS via .valid + bascule de l'icone) */
  /* .alert / .alerts sont styles globalement dans SiteBundle style.scss */ }
  .auth-page *, .auth-page *::before, .auth-page *::after {
    box-sizing: border-box; }
  .auth-page a {
    text-decoration: none;
    color: inherit; }
  .auth-page .page-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 48px 24px 72px; }
  .auth-page .auth-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: 44px 48px; }
  .auth-page .auth-title {
    margin: 0 0 20px;
    font-size: 26px !important;
    font-weight: 700 !important;
    color: var(--teal);
    letter-spacing: .02em;
    text-transform: uppercase;
    text-align: left; }
  .auth-page .auth-title--spaced {
    margin-bottom: 34px; }
  .auth-page .auth-intro {
    margin: 0 0 30px;
    max-width: 60ch;
    font-size: 14px !important;
    color: var(--ink-soft) !important;
    line-height: 1.6; }
    .auth-page .auth-intro strong {
      font-weight: 600;
      color: var(--ink); }
  .auth-page .auth-head {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 28px; }
    .auth-page .auth-head .auth-title,
    .auth-page .auth-head .auth-intro {
      margin: 0; }
  .auth-page .auth-icon {
    width: 46px;
    height: 46px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--cyan-bg);
    color: var(--teal-dark);
    display: flex;
    align-items: center;
    justify-content: center; }
    .auth-page .auth-icon .material-icons {
      font-size: 24px; }
  .auth-page .auth-sub {
    margin: 6px 0 0;
    font-size: 13px !important;
    color: var(--ink-muted) !important;
    line-height: 1.6; }
  .auth-page .field {
    display: flex;
    flex-direction: column;
    min-width: 0; }
    .auth-page .field > label {
      display: block;
      margin: 0 0 10px !important;
      font-size: 13.5px !important;
      font-weight: 600;
      color: var(--ink-soft) !important; }
  .auth-page .field-row {
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 2px solid var(--line);
    padding-bottom: 9px;
    transition: border-color .2s ease;
    /* neutralisation du style Materialize */ }
    .auth-page .field-row:focus-within {
      border-color: var(--teal); }
    .auth-page .field-row input {
      border: 0 !important;
      outline: 0;
      box-shadow: none !important;
      background: transparent;
      margin: 0 !important;
      height: auto !important;
      padding: 0 !important;
      width: 100%;
      font-family: 'Poppins', sans-serif;
      font-size: 14.5px;
      font-weight: 500;
      color: var(--ink); }
      .auth-page .field-row input::placeholder {
        color: var(--ink-muted);
        font-weight: 400; }
  .auth-page .field-row .password-wrapper {
    flex: 1;
    display: flex;
    align-items: center;
    min-width: 0;
    position: relative; }
    .auth-page .field-row .password-wrapper .eye-icon {
      position: static;
      transform: none;
      top: auto;
      right: auto;
      color: var(--ink-muted);
      font-size: 19px;
      flex-shrink: 0;
      margin-left: 10px; }
      .auth-page .field-row .password-wrapper .eye-icon:hover {
        color: var(--teal-darker); }
  .auth-page .auth-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 44px;
    margin-bottom: 32px; }
  .auth-page .pwd-requirements {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 40px;
    margin: 0 0 34px;
    padding: 18px 22px;
    background: var(--cyan-bg-2);
    border-radius: var(--radius); }
  .auth-page .pwd-req {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    color: var(--ink-muted);
    transition: color .15s ease; }
    .auth-page .pwd-req .material-icons {
      font-size: 17px;
      color: var(--ink-muted);
      flex-shrink: 0;
      transition: color .15s ease; }
    .auth-page .pwd-req.valid {
      color: var(--green); }
      .auth-page .pwd-req.valid .material-icons {
        color: var(--green-light); }
  .auth-page .pwd-req--full {
    grid-column: 1 / -1; }
  .auth-page .btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 44px;
    background: linear-gradient(135deg, var(--teal-dark), var(--teal-darker));
    color: #fff;
    border: 0;
    border-radius: var(--radius-pill);
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 13.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: var(--shadow-cta);
    transition: transform .15s ease;
    line-height: 1.2;
    height: auto;
    /* .disabled est pose/retire par le JS recaptcha ; on n'a pas la classe .btn
       de Materialize, l'etat est donc a gerer ici */ }
    .auth-page .btn-primary:hover {
      transform: translateY(-1px); }
    .auth-page .btn-primary.disabled, .auth-page .btn-primary:disabled {
      opacity: .55;
      box-shadow: none;
      pointer-events: none;
      transform: none; }
  .auth-page .btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 28px;
    background: #fff;
    color: var(--teal-darker);
    border: 2px solid var(--teal-dark);
    border-radius: var(--radius-pill);
    font-weight: 700;
    font-size: 12.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
    flex-shrink: 0;
    white-space: nowrap; }
    .auth-page .btn-outline:hover {
      background: var(--teal-dark);
      color: #fff; }
  .auth-page .auth-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 30px; }
  .auth-page .text-link {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-soft);
    text-decoration: underline;
    text-underline-offset: 2px; }
    .auth-page .text-link:hover {
      color: var(--teal-darker); }
  .auth-page .auth-note {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 62ch;
    background: var(--cyan-bg-2);
    border-left: 3px solid var(--teal);
    border-radius: var(--radius);
    padding: 16px 20px; }
    .auth-page .auth-note .material-icons {
      font-size: 19px;
      color: var(--teal-darker);
      flex-shrink: 0;
      margin-top: 1px; }
    .auth-page .auth-note p {
      margin: 0;
      font-size: 13px !important;
      color: var(--ink-soft) !important;
      line-height: 1.6; }
      .auth-page .auth-note p b {
        font-weight: 600;
        color: var(--ink); }
  .auth-page .auth-help {
    font-size: 13.5px !important;
    color: var(--ink-muted) !important;
    line-height: 1.7; }
    .auth-page .auth-help a {
      color: var(--ink-soft);
      text-decoration: underline;
      text-underline-offset: 2px; }
      .auth-page .auth-help a:hover {
        color: var(--teal-darker); }
  .auth-page .auth-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: var(--cyan-bg);
    border: 1.5px dashed var(--cyan-soft);
    border-radius: var(--radius);
    padding: 22px 26px;
    margin-top: 36px; }
    .auth-page .auth-banner h3 {
      margin: 0 0 4px;
      font-size: 14.5px !important;
      font-weight: 700 !important;
      color: var(--teal-darker); }
    .auth-page .auth-banner p {
      margin: 0;
      max-width: 46ch;
      font-size: 12.5px !important;
      color: var(--ink-soft) !important;
      line-height: 1.6; }
  .auth-page .alerts {
    margin-bottom: 24px; }
  .auth-page .alerts:empty {
    display: none; }
  @media (max-width: 760px) {
    .auth-page .page-wrap {
      padding: 28px 16px 48px; }
    .auth-page .auth-card {
      padding: 30px 24px; }
    .auth-page .auth-grid {
      grid-template-columns: 1fr;
      gap: 26px; }
    .auth-page .pwd-requirements {
      grid-template-columns: 1fr; }
    .auth-page .btn-primary,
    .auth-page .btn-outline {
      width: 100%; }
    .auth-page .auth-actions {
      justify-content: center; }
    .auth-page .auth-banner {
      flex-direction: column;
      align-items: stretch;
      text-align: center;
      gap: 16px; }
      .auth-page .auth-banner p {
        max-width: none; } }

.auth-page.is-login {
  /* la largeur des cases est en em et s'appuie sur le height + box-sizing
     content-box poses par Materialize : ne pas neutraliser son height */ }
  .auth-page.is-login .forgot-link {
    display: inline-block;
    align-self: flex-start;
    margin-top: 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-soft);
    text-decoration: underline;
    text-underline-offset: 2px; }
    .auth-page.is-login .forgot-link:hover {
      color: var(--teal-darker); }
  .auth-page.is-login .twofa-form {
    max-width: 560px; }
    .auth-page.is-login .twofa-form > label {
      display: block;
      margin: 0 0 12px !important;
      font-size: 13.5px !important;
      font-weight: 600;
      color: var(--ink-soft) !important; }
  .auth-page.is-login .otp-field {
    display: flex;
    align-items: center;
    /* 2 groupes de 3 chiffres */ }
    .auth-page.is-login .otp-field input[type="number"] {
      width: .96em;
      margin: .1em;
      padding: 8px 0 8px;
      font-size: 2.65em;
      text-align: center;
      appearance: textfield;
      -moz-appearance: textfield;
      -webkit-appearance: textfield;
      color: var(--ink);
      border-radius: 8px;
      border: 1px solid var(--line) !important;
      box-shadow: none !important;
      background: #fff;
      font-family: 'Poppins', sans-serif;
      font-weight: 600;
      transition: border-color .2s ease; }
      .auth-page.is-login .otp-field input[type="number"]:focus {
        border-color: var(--teal) !important;
        box-shadow: 0 0 0 3px rgba(30, 160, 195, 0.15) !important; }
    .auth-page.is-login .otp-field input::-webkit-outer-spin-button,
    .auth-page.is-login .otp-field input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0; }
    .auth-page.is-login .otp-field input[type="number"]:nth-child(n+4) {
      order: 2; }
    .auth-page.is-login .otp-field::before {
      content: '';
      height: 2px;
      width: 12px;
      margin: 0 .35em;
      order: 1;
      background: var(--line);
      border-radius: 2px; }
  @media (max-width: 480px) {
    .auth-page.is-login .otp-field input[type="number"] {
      font-size: 2.45em;
      margin: .08em; }
    .auth-page.is-login .otp-field::before {
      margin: 0 .2em;
      width: 8px; } }

.auth-page.is-reset .field-reset {
  max-width: 480px;
  margin-bottom: 32px; }
.auth-page.is-reset .auth-note {
  margin: 0 0 26px; }
.auth-page.is-reset .auth-help {
  margin: 0 0 30px; }

/*# sourceMappingURL=auth.css.map */
