/* ── Portail apprenant — Authentification (login/register/verify) ── */

:root {
    --etu-brand-1: #1a56db;
    --etu-brand-2: #3b74e8;
    --etu-brand-3: #10399e;
    --etu-gold: #f97316;
}

.etu-auth-body { margin: 0; }

.etu-auth-page {
    min-height: 100vh;
    display: flex;
}

/* Panneau de marque (gauche, grand écran) */
.etu-auth-brandpanel {
    flex: 0 0 42%;
    max-width: 560px;
    max-height: 100vh;
    position: relative;
    overflow: hidden;
    background-image:
        linear-gradient(150deg, rgba(16,57,158,.92) 0%, rgba(26,86,219,.88) 55%, rgba(59,116,232,.85) 100%),
        url('../../assets/images/login-bg.jpg');
    background-size: cover;
    background-position: center top;
    color: #fff;
    padding: 2.25rem 2.5rem;
    flex-direction: column;
}
.etu-auth-blob {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    pointer-events: none;
}
.etu-auth-blob--1 { width: 420px; height: 420px; top: -160px; left: -140px; }
.etu-auth-blob--2 { width: 320px; height: 320px; bottom: -140px; right: -80px; background: rgba(249,115,22,.14); }
.etu-auth-grid-overlay {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px);
    background-size: 22px 22px;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.5), transparent 70%);
    pointer-events: none;
}
.etu-auth-brandpanel-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    animation: etu-fade-in .5s ease both;
}
.etu-auth-brand { display: flex; align-items: center; gap: .9rem; }
.etu-auth-logo-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(4px);
    padding: 8px;
    flex-shrink: 0;
}
.etu-auth-logo-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; }
.etu-auth-orgname { font-weight: 700; font-size: 1.05rem; line-height: 1.2; }
.etu-auth-orgtag { font-size: .8rem; opacity: .8; }

.etu-auth-pitch { margin: auto 0; }
.etu-auth-pitch h2 { font-size: 1.7rem; font-weight: 700; line-height: 1.22; margin-bottom: .75rem; }
.etu-auth-pitch p { font-size: .93rem; opacity: .88; max-width: 380px; margin-bottom: 1.25rem; }

.etu-auth-features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; }
.etu-auth-features li { display: flex; align-items: center; gap: .7rem; font-size: .92rem; font-weight: 500; }
.etu-auth-features i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: rgba(255,255,255,.15);
    color: var(--etu-gold);
    font-size: .85rem;
    flex-shrink: 0;
}

.etu-auth-footnote { font-size: .8rem; opacity: .75; display: flex; align-items: center; gap: .5rem; }

/* Panneau formulaire (droite) */
.etu-auth-formpanel {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f7f8fc;
    padding: 1.5rem 1.25rem;
    max-height: 100vh;
    overflow-y: auto;
}
.etu-auth-formpanel-inner { width: 100%; max-width: 420px; }

.etu-auth-mobile-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    margin-bottom: 1.5rem;
}
.etu-auth-mobile-brand img { max-height: 40px; max-width: 40px; object-fit: contain; }
.etu-auth-mobile-brand span { font-weight: 700; color: #1a1a2e; }

.etu-auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 0;
    box-shadow: 0 1.5rem 3.5rem rgba(20, 20, 50, .12);
    animation: etu-card-in .45s ease both;
    overflow: hidden;
}
.etu-auth-card-topbar {
    height: 5px;
    background: linear-gradient(90deg, var(--etu-brand-1) 0%, var(--etu-brand-2) 50%, var(--etu-brand-3) 100%);
}
.etu-auth-card-body { padding: 1.75rem 1.85rem; }
@keyframes etu-card-in {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes etu-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.etu-auth-copyright { text-align: center; font-size: .78rem; color: #9497a8; margin-top: 1.25rem; }

.etu-auth-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(26,86,219,.12), rgba(16,57,158,.12));
    color: var(--etu-brand-1);
    font-size: 1.35rem;
    margin-bottom: .6rem;
}

/* Champs de formulaire */
.etu-auth-card .form-label { font-weight: 600; font-size: .88rem; color: #2c2c40; margin-bottom: .25rem; }
.etu-auth-card .input-group-text {
    background: #f7f8fc;
    border-right: 0;
    border-color: #e4e6f1;
    color: #9497a8;
    transition: color .2s ease, background .2s ease;
}
.etu-auth-card .form-control {
    border-left: 0;
    border-color: #e4e6f1;
    padding-top: .5rem;
    padding-bottom: .5rem;
    transition: border-color .2s ease;
}
.etu-auth-card .input-group:focus-within {
    box-shadow: 0 0 0 .2rem rgba(74,108,247,.15);
    border-radius: .5rem;
}
.etu-auth-card .input-group:focus-within .input-group-text {
    color: var(--etu-brand-1);
    background: #eef0fe;
}
.etu-auth-card .input-group .form-control,
.etu-auth-card .input-group .input-group-text { border-radius: .5rem; }
.etu-auth-card .input-group > :first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.etu-auth-card .input-group > :not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; }

.etu-auth-card .btn-primary {
    background: linear-gradient(135deg, var(--etu-brand-1), var(--etu-brand-3));
    border: none;
    font-weight: 600;
    padding: .65rem 1rem;
    border-radius: .6rem;
    transition: transform .15s ease, box-shadow .15s ease;
    box-shadow: 0 .5rem 1.25rem rgba(74,108,247,.28);
}
.etu-auth-card .btn-primary:hover,
.etu-auth-card .btn-primary:focus {
    transform: translateY(-1px);
    box-shadow: 0 .75rem 1.5rem rgba(74,108,247,.34);
}
.etu-auth-card .btn-primary:disabled { transform: none; opacity: .75; }

.etu-auth-card .btn-outline-primary {
    border-color: var(--etu-brand-1);
    color: var(--etu-brand-1);
    font-weight: 600;
    border-radius: .6rem;
}
.etu-auth-card .btn-outline-primary:hover {
    background: var(--etu-brand-1);
    border-color: var(--etu-brand-1);
}

.etu-auth-card a { color: var(--etu-brand-1); font-weight: 600; }

.etu-auth-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: #b3b5c4;
    font-size: .78rem;
    margin: 1rem 0 .9rem;
}
.etu-auth-divider::before,
.etu-auth-divider::after { content: ''; flex: 1; height: 1px; background: #e9eaf4; }

@media (max-width: 991.98px) {
    .etu-auth-formpanel {
        background-image:
            linear-gradient(150deg, rgba(74,108,247,.92) 0%, rgba(127,109,251,.92) 50%, rgba(162,107,240,.94) 100%),
            url('../../assets/etudiant/img/auth-bg.jpg');
        background-size: cover;
        background-position: center;
        min-height: 100vh;
    }
    .etu-auth-mobile-brand span { color: #fff; }
}
.quiz-option { cursor: pointer; }
.quiz-option.correct { border-color: #28a745 !important; background: #eafaf0; }
.quiz-option.incorrect { border-color: #dc3545 !important; background: #fdecea; }
.assistant-msg { border-radius: 10px; padding: 10px 14px; margin-bottom: 10px; max-width: 80%; }
.assistant-msg.question { background: #e9ecef; margin-left: auto; }
.assistant-msg.reponse { background: #eef6ff; white-space: pre-wrap; }
.shadow-hover { transition: box-shadow .2s ease, transform .2s ease; }
.shadow-hover:hover { box-shadow: 0 .5rem 1rem rgba(0,0,0,.1); transform: translateY(-2px); }

.logo-header-org { height: auto; padding: 18px 10px 14px; flex-wrap: wrap; }
.etu-org-brand {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    width: 100%;
    text-align: center;
}
.etu-org-logo {
    height: auto;
    max-height: 64px;
    max-width: 130px;
    width: auto;
    object-fit: contain;
    background: #fff;
    border-radius: 10px;
    padding: 6px;
    margin-bottom: 8px;
}
.etu-org-name {
    display: block;
    color: #fff;
    font-weight: 700;
    font-size: .95rem;
    line-height: 1.2;
    white-space: normal;
    word-break: break-word;
}
.main-header-logo .logo-header-org { padding: 8px 10px; }
.main-header-logo .etu-org-brand { flex-direction: row; }
.main-header-logo .etu-org-logo { max-height: 32px; margin-bottom: 0; margin-right: 8px; }
.main-header-logo .etu-org-name { font-size: .85rem; color: #1a1a2e; }
