/* Styles limités à la page identification. */
.wm-auth {
    color: #faf6ff;
    background: #001025 url('/assets/identification-decor.png') center top / cover no-repeat;
    font: 15px/1.4 Arial, Helvetica, sans-serif;
    position: relative;
    isolation: isolate;
    min-height: 910px;
}

.wm-auth * {
    box-sizing: border-box;
}

.wm-auth a {
    color: #dc6aff;
}

.wm-auth button,
.wm-auth input {
    font: inherit;
}

.wm-auth button {
    cursor: pointer;
}

.wm-auth svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.wm-auth-inner {
    max-width: 1586px;
    min-height: 910px;
    margin: auto;
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 42px 0 82px;
}

.wm-column {
    width: 464px;
    max-width: calc(100% - 80px);
    position: relative;
    z-index: 1;
}

.wm-register {
    justify-self: end;
    margin-right: 43px;
}

.wm-login {
    justify-self: start;
    margin-left: 54px;
}

.wm-intro {
    height: 227px;
    padding-left: 4px;
    display: flex;
    flex-direction: column;
    justify-content: end;
    padding-bottom: 23px;
}

.wm-intro h1,
.wm-intro h2 {
    font: bold 60px/.92 Georgia, 'Times New Roman', serif;
    letter-spacing: -2px;
    margin: 0px;
    line-height: normal;
}

.wm-intro em {
    font-style: normal;
    color: #b15aef;
    background: linear-gradient(120deg, #c488ff, #aa42e8);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.wm-intro p {
    color: #bbcdf7;
    font-size: 20px;
    line-height: 1.35;
    margin: 0;
}

.wm-card {
    height: 558px;
    padding: 22px 32px 24px;
    border: 1px solid #7547cb;
    border-radius: 23px;
    background: linear-gradient(
        112deg,
        rgba(12, 28, 65, .88),
        rgba(5, 18, 43, .91) 49%,
        rgba(69, 24, 134, .73)
    );
    box-shadow:
        inset -6px 0 20px #9e32ff42,
        0 10px 35px #0006,
        0 0 18px #ac36ff25;
    backdrop-filter: blur(12px);
}

.wm-register .wm-card {
    background: linear-gradient(
        122deg,
        #532278b8,
        #07152ee8 40%,
        #27105cbb
    );
    box-shadow:
        inset -6px 0 23px #ac38ff65,
        0 10px 35px #0006,
        0 0 18px #ac36ff25;
}

.wm-card h2 {
    font: bold 29px/1.25 Georgia, 'Times New Roman', serif;
    margin: 0 0 4px;
}

.wm-card-desc {
    color: #bdc9ed;
    font-size: 14px;
    line-height: 1.4;
    margin: 0 0 20px;
    min-height: 39px;
}

.wm-field {
    display: flex;
    align-items: center;
    gap: 18px;
    height: 52px;
    border: 1px solid #6473ab;
    border-radius: 15px;
    padding: 6px 15px;
    margin-bottom: 16px;
    color: #d1ddff;
    background: linear-gradient(105deg, #0c203db3, #17234a80);
}

.wm-field:focus-within {
    border-color: #c984ff;
    box-shadow: 0 0 0 2px #bd6aff25;
}

.wm-field > svg {
    width: 22px;
    height: 22px;
}

.wm-field > span {
    flex: 1;
    min-width: 0;
    position: relative;
}

.wm-label {
    display: block;
    font-size: 14px;
    line-height: 18px;
}

.wm-field input {
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: white;
    line-height: 18px;
    height: 18px;
    box-shadow: none;
}

.wm-field input::placeholder {
    color: #7f89d1;
    opacity: 1;
}

.wm-field:has(input[type=password]) .wm-label {
    position: absolute;
    top: 0;
    pointer-events: none;
}

.wm-field:has(input[type=password]:not(:placeholder-shown)) .wm-label {
    position: static;
}

.wm-eye {
    border: 0;
    background: none;
    padding: 0;
    color: #b7c9ff;
    display: flex;
}

.wm-terms,
.wm-options label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.wm-auth input[type=checkbox] {
    appearance: none;
    flex-shrink: 0;
    width: 19px;
    height: 19px;
    border: 1px solid #bcceff;
    border-radius: 3px;
    background: #06172f;
    margin: 0;
    cursor: pointer;
}

.wm-auth input[type=checkbox]:checked {
    background: #b63ff3;
    box-shadow: inset 0 0 0 3px #07152e;
}

.wm-terms {
    font-size: 12px;
    line-height: 19px;
    margin: 2px 0 24px;
}

.wm-primary {
    height: 54px;
    border: 1px solid #ff8cde;
    border-radius: 16px;
    width: 100%;
    color: white;
    font-weight: bold !important;
    background: linear-gradient(
        110deg,
        #ff4d83,
        #f329b9 52%,
        #bd14fa
    );
    box-shadow:
        0 7px 25px #ce20ec40,
        inset 0 1px 0 #ffffff30;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
}

.wm-primary:hover {
    filter: brightness(1.12);
}

.wm-options {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 26px;
    font-size: 14px;
    color: #bdc9ed;
}

.wm-options a {
    font-size: 13px;
}

.wm-or {
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 20px 0 10px;
    color: #b2bfe8;
    font-size: 13px;
}

.wm-or:before,
.wm-or:after {
    content: '';
    height: 1px;
    background: #59668c;
    flex: 1;
}

.wm-socials {
    display: grid;
    gap: 7px;
}

.wm-socials button {
    height: 44px;
    background: #05152bb3;
    border: 1px solid #677cae;
    border-radius: 15px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    font-size: 14px;
}

.wm-socials button:hover {
    background: #1e2453;
}

.wm-google {
    font: bold 28px Arial;
    background: conic-gradient(
        #4285f4 90deg,
        #34a853 90deg 180deg,
        #fbbc05 180deg 225deg,
        #ea4335 225deg 290deg,
        #4285f4 290deg
    );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
}

.wm-signup-link {
    font-size: 14px;
    color: #bdc9ed;
    margin: 23px 0 0;
    text-align: center;
}

.wm-signup-link a {
    text-decoration: none;
    font-weight: bold;
    margin-left: 8px;
    display: inline-flex;
    gap: 8px;
    vertical-align: middle;
}

.wm-signup-link svg {
    width: 19px;
}

.wm-status:empty {
    display: none;
}

.wm-status {
    font-size: 12px;
    color: #f4c2ff;
    margin: 7px 0;
}

.wm-center-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #ba3bff;
    box-shadow:
        0 0 5px #f6b9ff,
        0 0 17px #a600ff,
        0 0 35px #8d19ff;
}

.wm-center-line span {
    position: absolute;
    top: 389px;
    left: 50%;
    transform: translateX(-50%);
    width: 57px;
    height: 57px;
    border: 2px solid #f4caff;
    background: #7009c1;
    border-radius: 50%;
    display: grid;
    place-items: center;
    box-shadow:
        0 0 20px #b200ff,
        inset 0 0 12px #cf45ff;
}

.wm-center-line svg {
    width: 30px;
    height: 30px;
}

.wm-features {
    position: absolute;
    left: 20px;
    top: 320px;
    width: 230px;
    display: grid;
    gap: 22px;
}

.wm-feature {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.wm-feature-icon {
    flex: 0 0 59px;
    height: 59px;
    border: 1px solid #a85cf1;
    border-radius: 20px;
    display: grid;
    place-items: center;
    font-size: 39px;
    color: #c960ff;
    background: linear-gradient(145deg, #402075c9, #100732cf);
    box-shadow: 0 0 20px #8c29e01c;
}

.wm-feature strong {
    font-size: 14px;
    line-height: 20px;
    display: block;
    margin: 0px 0 2px;
}

.wm-feature p {
    color: #acbde9;
    font-size: 12px;
    line-height: 17px;
    margin: 0;
}

.wm-auth button:focus-visible,
.wm-auth a:focus-visible,
.wm-auth input[type=checkbox]:focus-visible {
    outline: 2px solid #e0a1ff;
    outline-offset: 4px;
}

@media (min-width: 1587px) {
    .wm-auth {
        background-size: 100% auto;
    }
}

@media (max-width: 1400px) {
    .wm-features {
        display: none;
    }

    .wm-register {
        margin-right: 40px;
    }

    .wm-login {
        margin-left: 40px;
    }

    .wm-column {
        max-width: calc(100% - 65px);
    }

    .wm-intro h1,
    .wm-intro h2 {
        font-size: 62px;
    }
}

@media (max-width: 1000px) {
    .wm-column {
        max-width: calc(100% - 36px);
    }

    .wm-register {
        margin-right: 18px;
    }

    .wm-login {
        margin-left: 18px;
    }

    .wm-card {
        padding: 24px 20px;
    }

    .wm-intro h1,
    .wm-intro h2 {
        font-size: 49px;
    }

    .wm-intro p {
        font-size: 17px;
    }

    .wm-options {
        font-size: 12px;
    }

    .wm-options a {
        font-size: 11px;
    }

    .wm-center-line span {
        width: 32px;
        height: 32px;
    }

    .wm-center-line svg {
        width: 20px;
    }
}

@media (max-width: 700px) {
    .wm-auth {
        background-size: auto 100%;
        background-position: 62% top;
    }

    .wm-auth-inner {
        display: flex;
        flex-direction: column;
        padding: 32px 18px 55px;
        gap: 38px;
        background: #00102566;
    }

    .wm-column {
        width: 464px;
        max-width: 100%;
        margin: 0 auto;
    }

    .wm-intro {
        height: auto;
        padding: 0 2px 24px;
    }

    .wm-intro h1,
    .wm-intro h2 {
        font-size: 49px;
        letter-spacing: -1px;
    }

    .wm-intro p {
        font-size: 17px;
    }

    .wm-card {
        height: auto;
        min-height: 530px;
        padding: 24px;
    }

    .wm-card-desc {
        min-height: 0;
        margin-bottom: 24px;
    }

    .wm-center-line {
        display: none;
    }

    .wm-options {
        font-size: 12px;
    }

    .wm-options a {
        font-size: 11px;
    }

    .wm-signup-link {
        font-size: 13px;
    }

    .wm-desktop {
        display: none;
    }
}

.wm-login .wm-card-desc {
    min-height: 0;
}

/* Une ligne pour les mots de passe vides, sans décaler les icônes. */
.wm-field:has(input[type=password]) .wm-label {
    position: static;
}

.wm-field:has(input[type=password]) input {
    height: 0;
}

.wm-field:has(input[type=password]):focus-within input,
.wm-field:has(input[type=password]:valid) input {
    height: 18px;
}

.conteneur-texte {
    background: rgba(0, 18, 37, 0.78);
    border: 1px solid rgba(185, 118, 237, 0.2);
    border-radius: 16px;
    padding: 24px;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow:
        0 12px 35px rgba(0, 0, 0, 0.25),
        0 0 24px rgba(185, 118, 237, 0.08);

    color: #faf6ff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}