/* IM Memberships — Page Access (route dédiée, thème court-circuité) */

:root {
    --im-ink:  #0a0b0e;
    --im-ink2: #101216;
    --im-ink3: #171a20;
    --im-ink4: #1f232b;
    --im-line:  rgba(255,255,255,.07);
    --im-line2: rgba(255,255,255,.13);
    --im-tx:  #f4f5f7;
    --im-tx2: rgba(255,255,255,.7);
    --im-tx3: rgba(255,255,255,.42);
    --im-tx4: rgba(255,255,255,.26);
    --im-green: #3fd98a;
    --im-amber: #f5b845;
    --im-red:   #ff6b6b;
    --im-font: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }

.im-access-body {
    margin: 0;
    padding: 0;
    background: var(--im-ink);
    color: var(--im-tx);
    font-family: var(--im-font);
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

.im-access-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.im-access-top {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 22px 28px;
}

.im-access-back {
    font-size: 14px;
    color: var(--im-tx3);
    text-decoration: none;
    font-weight: 400;
    transition: color .15s;
}
.im-access-back:hover { color: var(--im-tx2); }

.im-access-main {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 24px 40px;
}

.im-access-card { width: 100%; max-width: 380px; }

/* En-tête : titre + sous-titre CENTRÉS */
.im-access-head { text-align: center; margin-bottom: 28px; }
.im-access-head h1 {
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    margin: 0 0 8px;
    letter-spacing: -.2px;
}
.im-access-head p {
    font-size: 14px;
    color: var(--im-tx3);
    margin: 0;
    font-weight: 400;
}

/* Formulaire : champs alignés à GAUCHE */
.im-access-form { display: flex; flex-direction: column; gap: 18px; }

.im-access-field { display: flex; flex-direction: column; gap: 8px; }
.im-access-field label {
    font-size: 14px;
    font-weight: 500;
    color: var(--im-tx2);
}
.im-access-field input[type="text"],
.im-access-field input[type="email"],
.im-access-field input[type="password"] {
    background: var(--im-ink2);
    border: 1px solid var(--im-line2);
    border-radius: 10px;
    padding: 13px 15px;
    font-size: 14px;
    color: var(--im-tx);
    font-family: var(--im-font);
    font-weight: 400;
    width: 100%;
    transition: border-color .15s;
}
.im-access-field input::placeholder { color: var(--im-tx4); }
.im-access-field input:focus {
    outline: none;
    border-color: rgba(255,255,255,.4);
}

.im-access-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.im-access-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--im-tx3);
    cursor: pointer;
    font-weight: 400;
}
.im-access-check input { width: 15px; height: 15px; accent-color: #fff; }
.im-access-link {
    font-size: 14px;
    color: var(--im-tx2);
    text-decoration: none;
    font-weight: 400;
    white-space: nowrap;
}
.im-access-link:hover { color: #fff; }

/* Bouton blanc, forme pilule (rayon 100px) */
.im-access-btn {
    width: 100%;
    background: #fff;
    color: #0a0b0e;
    font-size: 14px;
    font-weight: 600;
    padding: 14px;
    border: none;
    border-radius: 100px;
    cursor: pointer;
    font-family: var(--im-font);
    transition: opacity .15s, transform .05s;
    margin-top: 2px;
}
.im-access-btn:hover { opacity: .9; }
.im-access-btn:active { transform: translateY(1px); }

.im-access-foot-links {
    text-align: center;
    margin-top: 24px;
    font-size: 14px;
    color: var(--im-tx3);
    font-weight: 400;
}
.im-access-foot-links a { color: var(--im-tx2); text-decoration: none; }
.im-access-foot-links a:hover { color: #fff; }

.im-access-alert {
    padding: 11px 14px;
    border-radius: 8px;
    font-size: 13px;
    margin-bottom: 18px;
    font-weight: 400;
}
.im-access-alert--error   { background: rgba(255,107,107,.1); border: 1px solid rgba(255,107,107,.25); color: #ffb4b4; }
.im-access-alert--success { background: rgba(63,217,138,.1); border: 1px solid rgba(63,217,138,.28); color: #8ee9ba; }
.im-access-alert a { color: inherit; text-decoration: underline; }

.im-access-bottom { text-align: center; padding: 18px 28px 26px; }
.im-access-copy { font-size: 12px; color: var(--im-tx4); font-weight: 400; }

/* Indicateur de force du mot de passe (écran resetpass uniquement) */
.im-pw-strength { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.im-pw-bars { display: flex; gap: 4px; }
.im-pw-bar { flex: 1; height: 3px; border-radius: 2px; background: var(--im-ink4); transition: background .2s; }
.im-pw-bar.on-weak   { background: var(--im-red); }
.im-pw-bar.on-med    { background: var(--im-amber); }
.im-pw-bar.on-strong { background: var(--im-green); }
.im-pw-label { font-size: 12px; font-weight: 400; }
.im-pw-label.weak   { color: var(--im-red); }
.im-pw-label.med    { color: var(--im-amber); }
.im-pw-label.strong { color: var(--im-green); }
.im-pw-hint { font-size: 12px; color: var(--im-tx4); font-weight: 400; margin-top: 4px; }
