:root {
    --green:     #113B26;
    --green-mid: #1a5c38;
    --ctd:       #2d8a57;
    --cmjlf:     #864c20;
    --beige:     #f0cc6a;
    --cream:     #fdf8ef;
    --dark:      #0c1a10;
    --muted:     #5e6b61;
    --border:    rgba(17,59,38,.12);
    --shadow:    0 32px 90px rgba(15,51,32,.18);
}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

body {
    font-family:'Plus Jakarta Sans', sans-serif;
    min-height:100vh; color:var(--dark); overflow-x:hidden;
    background:
            radial-gradient(ellipse 70% 60% at 0% 0%, rgba(17,59,38,.1), transparent),
            radial-gradient(ellipse 50% 50% at 100% 10%, rgba(134,76,32,.08), transparent),
            #fdf8ef;
}

/* ═══ LAYOUT ═══ */
.ps_page-shell {
    min-height:100vh;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    /* PAS de overflow:hidden ici — la colonne droite doit scroller */
}

/* ═══ SIDEBAR — sticky, hauteur viewport ═══ */
.ps_sidebar {
    position:sticky; top:0; height:100vh;
    overflow:hidden; display:flex; flex-direction:column;
}

.ps_slide {
    position:absolute; inset:0; z-index:0;
    background-size:cover; background-position:center;
    opacity:0; transition:opacity 1.2s ease;
}
.ps_slide.ps_active { opacity:1; }

.ps_sidebar-overlay {
    position:absolute; inset:0; z-index:2;
    background:linear-gradient(160deg,
    rgba(6,16,10,.85) 0%,
    rgba(6,16,10,.68) 45%,
    rgba(6,16,10,.82) 100%);
}
.ps_sidebar-overlay::after {
    content:""; position:absolute; inset:0;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    opacity:.5; pointer-events:none;
}
.ps_sidebar-overlay::before {
    content:""; position:absolute; inset:16px;
    border-radius:22px; border:1px solid rgba(255,255,255,.09); pointer-events:none;
}

.ps_sidebar-orb {
    position:absolute; z-index:3;
    width:380px; height:380px; border-radius:50%;
    background:radial-gradient(circle, rgba(240,204,106,.2), transparent 65%);
    right:-160px; top:-130px; pointer-events:none;
}

.ps_sb-inner {
    position:relative; z-index:10; height:100%;
    padding:32px;
    display:flex; flex-direction:column; justify-content:space-between;
}

.ps_sb-logo { display:flex; align-items:center; gap:13px; text-decoration:none; }
.ps_sb-logo-img {
    width:52px; height:52px; border-radius:50%;
    background:white; padding:3px; object-fit:contain;
    box-shadow:0 12px 28px rgba(0,0,0,.3); flex-shrink:0;
}
.ps_sb-name { color:white; font-weight:800; font-size:14px; line-height:1.3; }
.ps_sb-sub  { color:rgba(255,255,255,.48); font-size:11px; font-weight:600; margin-top:2px; }
.ps_sb-mid  { padding:0; }

.ps_sb-kicker {
    display:inline-flex; align-items:center; gap:7px;
    padding:7px 14px; border-radius:999px;
    background:rgba(240,204,106,.18); border:1px solid rgba(240,204,106,.3);
    color:var(--beige); font-size:11px; font-weight:800; letter-spacing:.08em;
    margin-bottom:20px; animation:ps_sbUp .6s .1s ease both;
}
.ps_sb-headline {
    font-family:'Playfair Display', serif;
    font-size:clamp(32px,3.6vw,52px); font-weight:900;
    color:white; line-height:1.0; letter-spacing:-.025em;
    margin-bottom:18px; animation:ps_sbUp .6s .18s ease both;
}
.ps_sb-headline span { color:var(--beige); font-style:italic; }
.ps_sb-desc {
    font-size:14px; line-height:1.9; color:rgba(255,255,255,.65);
    font-weight:500; max-width:360px; animation:ps_sbUp .6s .26s ease both;
}
.ps_sb-stats {
    display:flex; gap:12px; margin-top:28px; flex-wrap:wrap;
    animation:ps_sbUp .6s .34s ease both;
}
.ps_sb-stat {
    padding:14px 18px; border-radius:18px;
    background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.11);
    backdrop-filter:blur(12px); min-width:76px; transition:.25s;
}
.ps_sb-stat:hover { background:rgba(255,255,255,.14); transform:translateY(-2px); }
.ps_sb-stat-num { font-family:'Playfair Display',serif; font-size:24px; font-weight:900; color:white; line-height:1; }
.ps_sb-stat-lbl { font-size:10px; font-weight:700; color:rgba(255,255,255,.5); margin-top:4px; }

.ps_slide-dots {
    display:flex; align-items:center; gap:8px; margin-top:28px;
    animation:ps_sbUp .6s .42s ease both;
}
.ps_slide-dot {
    height:4px; border-radius:999px;
    background:rgba(255,255,255,.3); cursor:pointer; transition:all .4s ease;
}
.ps_slide-dot.ps_active { background:var(--beige); width:28px !important; }

.ps_slide-ent {
    display:flex; align-items:center; gap:10px; margin-top:18px;
    animation:ps_sbUp .6s .48s ease both;
}
.ps_slide-ent img {
    width:32px; height:32px; border-radius:50%;
    object-fit:contain; background:white; padding:2px;
    box-shadow:0 6px 14px rgba(0,0,0,.2);
}
.ps_slide-ent-info span { display:block; font-size:11px; font-weight:800; color:var(--beige); letter-spacing:.06em; }
.ps_slide-ent-info small { display:block; font-size:10px; font-weight:600; color:rgba(255,255,255,.5); margin-top:1px; }

.ps_sb-bottom {
    display:flex; align-items:center; justify-content:space-between;
    font-size:11px; font-weight:700; color:rgba(255,255,255,.35);
}
.ps_sb-secure {
    display:flex; align-items:center; gap:6px; padding:7px 12px; border-radius:999px;
    background:rgba(255,255,255,.07); color:rgba(255,255,255,.55);
}
@keyframes ps_sbUp { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }

/* ═══ MAIN — SCROLLABLE indépendamment de la sidebar ═══ */
.ps_main-wrap {
    height: 100vh;          /* prend exactement la hauteur du viewport */
    overflow-y: auto;       /* scrolle si le contenu dépasse */
    overflow-x: hidden;
    display: flex;
    align-items: flex-start; /* la carte commence en haut, pas centrée verticalement */
    justify-content: center;
    padding: 44px 36px;
}

/* ═══ CARD ═══ */
.ps_auth-card {
    width:100%; max-width:480px;
    background:rgba(255,255,255,.93);
    backdrop-filter:blur(32px);
    border:1px solid rgba(255,255,255,.95);
    border-radius:32px; padding:38px;
    box-shadow:var(--shadow);
    animation:ps_cardIn .5s cubic-bezier(.22,1,.36,1) both;
    /* marge verticale auto pour centrer quand le contenu est court,
       et permettre le scroll quand il est long */
    margin-top: auto;
    margin-bottom: auto;
}
@keyframes ps_cardIn { from{opacity:0;transform:translateY(28px) scale(.98)} to{opacity:1;transform:translateY(0) scale(1)} }

.ps_back-link {
    display:inline-flex; align-items:center; gap:7px;
    font-size:12px; font-weight:800; color:var(--muted);
    text-decoration:none; margin-bottom:26px;
    padding:7px 14px; border-radius:999px;
    border:1px solid var(--border); background:white; transition:.2s;
}
.ps_back-link:hover { color:var(--green); box-shadow:0 6px 16px rgba(15,51,32,.08); }

.ps_form-icon {
    width:56px; height:56px; border-radius:20px;
    display:grid; place-items:center;
    background:linear-gradient(135deg, var(--green), var(--green-mid));
    color:white; margin-bottom:18px;
    box-shadow:0 14px 30px rgba(17,59,38,.22);
}
.ps_form-title    { font-family:'Playfair Display',serif; font-size:30px; font-weight:900; letter-spacing:-.03em; margin-bottom:8px; }
.ps_form-subtitle { font-size:13px; line-height:1.75; color:var(--muted); font-weight:600; margin-bottom:22px; }

/* Fields */
.ps_field { margin-bottom:14px; }
.ps_field label {
    display:block; font-size:10px; font-weight:800;
    color:#2a3a2f; margin-bottom:7px; letter-spacing:.06em; text-transform:uppercase;
}
.ps_input-wrap { position:relative; }
.ps_input-wrap .ps_ico {
    position:absolute; left:13px; top:50%; transform:translateY(-50%);
    color:#96aca0; font-size:18px; pointer-events:none; transition:color .2s;
}
.ps_input-wrap:focus-within .ps_ico { color:var(--green); }
.ps_input-wrap input, .ps_input-wrap select {
    width:100%; height:50px; border-radius:14px;
    border:1.5px solid var(--border); background:white; outline:none;
    padding:0 14px 0 42px;
    font-family:'Plus Jakarta Sans', sans-serif;
    font-weight:700; font-size:13px; color:var(--dark);
    transition:border-color .22s, box-shadow .22s, transform .15s; appearance:none;
}
.ps_input-wrap input:focus, .ps_input-wrap select:focus {
    border-color:var(--green);
    box-shadow:0 0 0 4px rgba(17,59,38,.08);
    transform:translateY(-1px);
}
.ps_input-wrap input::placeholder { color:#b8c4bc; font-weight:600; }

.ps_eye-btn {
    position:absolute; right:12px; top:50%; transform:translateY(-50%);
    background:none; border:none; cursor:pointer; color:#96aca0;
    display:grid; place-items:center; padding:4px; transition:color .2s;
}
.ps_eye-btn:hover { color:var(--green); }

/* Strength */
.ps_strength-bar   { margin:-6px 0 14px; }
.ps_strength-track { height:4px; background:var(--border); border-radius:999px; overflow:hidden; }
.ps_strength-fill  { height:100%; border-radius:999px; transition:.4s ease; width:0%; }
.ps_strength-label { font-size:11px; font-weight:700; color:var(--muted); margin-top:5px; }

/* Match error */
.ps_match-error {
    display:none; align-items:center; gap:5px;
    font-size:11px; font-weight:700; color:#e53935;
    margin-top:-8px; margin-bottom:12px;
}
.ps_match-error.ps_show { display:flex; }

/* Rules */
.ps_rules { display:grid; gap:8px; margin:0 0 16px; }
.ps_rules span { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; color:var(--muted); }
.ps_rules .material-symbols-outlined { font-size:14px; color:var(--ctd); }

/* Submit */
.ps_submit-btn {
    width:100%; height:52px; border:0; border-radius:16px;
    cursor:pointer; font-family:'Plus Jakarta Sans', sans-serif;
    font-weight:800; font-size:14px; color:white;
    background:linear-gradient(135deg, var(--green), var(--green-mid));
    box-shadow:0 14px 32px rgba(17,59,38,.22);
    transition:transform .25s, box-shadow .25s;
    display:flex; align-items:center; justify-content:center; gap:9px;
    position:relative; overflow:hidden; margin-bottom:10px;
}
.ps_submit-btn::before {
    content:""; position:absolute; inset:0;
    background:linear-gradient(135deg,rgba(255,255,255,.12),transparent);
    opacity:0; transition:.25s;
}
.ps_submit-btn:hover { transform:translateY(-2px); box-shadow:0 20px 42px rgba(17,59,38,.28); }
.ps_submit-btn:hover::before { opacity:1; }
.ps_submit-btn:disabled { opacity:.7; cursor:not-allowed; transform:none; }

.ps_alt-line {
    display:flex; align-items:center; gap:12px; margin:18px 0;
    color:#96a89a; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em;
}
.ps_alt-line::before, .ps_alt-line::after { content:""; flex:1; height:1px; background:var(--border); }
.ps_switch-note { text-align:center; font-size:13px; font-weight:700; color:var(--muted); }
.ps_link-btn {
    border:0; background:transparent; color:var(--cmjlf);
    font-family:inherit; font-weight:800; cursor:pointer; font-size:13px; text-decoration:none;
}
.ps_link-btn:hover { text-decoration:underline; }

/* Success */
.ps_success-banner { display:flex; flex-direction:column; align-items:center; padding:36px 16px; text-align:center; }
.ps_success-icon {
    width:72px; height:72px; border-radius:50%;
    background:linear-gradient(135deg, var(--green), var(--green-mid));
    display:grid; place-items:center; color:white; margin-bottom:20px;
    box-shadow:0 16px 34px rgba(17,59,38,.22);
    animation:ps_popIn .5s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes ps_popIn { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.ps_success-banner h3 { font-family:'Playfair Display',serif; font-size:24px; font-weight:900; margin-bottom:9px; }
.ps_success-banner p  { font-size:13px; line-height:1.75; color:var(--muted); font-weight:600; max-width:300px; }

@keyframes ps_spin { to{transform:rotate(360deg)} }

/* Validation messages FormValidation */
.fv-plugins-message-container.invalid-feedback,
.fv-plugins-message-container.valid-feedback {
    display:flex; align-items:center; gap:5px;
    font-size:11px; font-weight:700; color:#e53935;
}

/* ═══ RESPONSIVE ═══ */
@media (max-width:980px) {
    .ps_page-shell { grid-template-columns:1fr; }
    .ps_sidebar { display:none; }
    .ps_main-wrap {
        height: auto;
        min-height: 100vh;
        overflow-y: visible;
        align-items: flex-start;
        padding: 22px 16px;
    }
    .ps_auth-card { padding:26px 22px; border-radius:24px; margin:0; }
}

/* =============================================
   ISOLATION — surcharge style.bundle.css
   ============================================= */
.ps_page-shell *,
.ps_page-shell *::before,
.ps_page-shell *::after { box-sizing: border-box !important; }

.ps_page-shell {
    display: grid !important;
    grid-template-columns: 1.1fr .9fr !important;
    min-height: 100vh !important;
    width: 100% !important;
    /* PAS de overflow:hidden ici — essentiel pour le scroll */
    overflow: visible !important;
}
.ps_sidebar {
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    overflow: hidden !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
.ps_sb-inner { padding: 32px !important; margin: 0 !important; width: 100% !important; }

/* COLONNE DROITE : hauteur fixe + scroll interne */
.ps_main-wrap {
    height: 100vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 44px 36px !important;
    min-width: 0 !important;
}
.ps_auth-card {
    width: 100% !important;
    max-width: 480px !important;
    margin: auto 0 !important;   /* centrage vertical quand contenu court */
    padding: 38px !important;
    flex-shrink: 0 !important;
}
.ps_slide {
    position: absolute !important; inset: 0 !important;
    margin: 0 !important; padding: 0 !important; border: none !important;
}
.ps_input-wrap input {
    width: 100% !important; height: 50px !important;
    padding: 0 14px 0 42px !important; margin: 0 !important;
    border-radius: 14px !important; border: 1.5px solid var(--border) !important;
    background: white !important; box-shadow: none !important;
    font-size: 13px !important; font-weight: 700 !important;
}
.ps_input-wrap input:focus {
    border-color: var(--green) !important;
    box-shadow: 0 0 0 4px rgba(17,59,38,.08) !important;
    outline: none !important;
}
.ps_submit-btn {
    width: 100% !important; height: 52px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    padding: 0 !important; border: 0 !important; border-radius: 16px !important;
    background: linear-gradient(135deg, var(--green), var(--green-mid)) !important;
    color: white !important; font-size: 14px !important; font-weight: 800 !important;
    box-shadow: 0 14px 32px rgba(17,59,38,.22) !important; margin-bottom: 10px !important;
}

@media (max-width:980px) {
    .ps_page-shell { grid-template-columns:1fr !important; overflow:visible !important; }
    .ps_sidebar { display:none !important; }
    .ps_main-wrap {
        height: auto !important; min-height: 100vh !important;
        overflow-y: visible !important; padding: 22px 16px !important;
        align-items: flex-start !important;
    }
    .ps_auth-card { padding:26px 22px !important; border-radius:24px !important; margin:0 !important; }
}