/* ============================================================
   LOGIN PAGE — Modern Split-Screen Design
   Eduro brand: #DE6B3B → #F2943C  |  Font: DM Sans
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap');

/* Hide header + footer on login page */
body.page-login #header,
body.page-login footer,
body.page-login .front__footer,
body.page-login [class*="footer"] {
    display: none !important;
}
body.page-login {
    margin: 0; padding: 0;
    background: #fff;
    font-family: 'DM Sans', sans-serif;
}

/* ---- Full-screen split ---- */
.lm-wrap {
    display: grid;
    grid-template-columns: 420px 1fr;
    min-height: 100vh;
}

/* ============================================================
   LEFT PANEL — Orange gradient branding
   ============================================================ */
.lm-left {
    background: linear-gradient(160deg, #c95e32 0%, #DE6B3B 45%, #F2943C 100%);
    display: flex;
    flex-direction: column;
    padding: 48px 44px;
    position: relative;
    overflow: hidden;
}
/* Decorative circles */
.lm-left::before {
    content: '';
    position: absolute;
    width: 440px; height: 440px;
    top: -180px; right: -160px;
    border-radius: 50%;
    background: rgba(255,255,255,.07);
    pointer-events: none;
}
.lm-left::after {
    content: '';
    position: absolute;
    width: 260px; height: 260px;
    bottom: -100px; left: -80px;
    border-radius: 50%;
    background: rgba(255,255,255,.06);
    pointer-events: none;
}

/* Logo */
.lm-logo {
    display: block;
    margin-bottom: 64px;
    position: relative; z-index: 1;
}
.lm-logo img {
    height: 36px;
    width: auto;
    filter: brightness(0) invert(1);
}

/* Tagline */
.lm-tagline {
    position: relative; z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.lm-tagline h2 {
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    line-height: 1.3;
    margin: 0 0 12px;
    letter-spacing: -.3px;
}
.lm-tagline p {
    font-size: 15px;
    color: rgba(255,255,255,.8);
    line-height: 1.6;
    margin: 0 0 40px;
}

/* Benefit list */
.lm-benefits {
    list-style: none;
    padding: 0; margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.lm-benefits li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 600;
    color: rgba(255,255,255,.9);
}
.lm-benefits li .lm-icon {
    width: 32px; height: 32px;
    border-radius: 10px;
    background: rgba(255,255,255,.2);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.lm-benefits li .lm-icon i {
    color: #fff;
    font-size: 14px;
}

/* Bottom tagline */
.lm-bottom {
    position: relative; z-index: 1;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,.2);
    font-size: 12px;
    color: rgba(255,255,255,.6);
}

/* ============================================================
   RIGHT PANEL — White form area
   ============================================================ */
.lm-right {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 32px;
    background: #fff;
}

.lm-form-wrap {
    width: 100%;
    max-width: 420px;
}

/* Header above form */
.lm-form-header {
    margin-bottom: 40px;
}
.lm-form-header h1 {
    font-size: 26px;
    font-weight: 800;
    color: #1a1a2e;
    margin: 0 0 8px;
    letter-spacing: -.3px;
}
.lm-form-header p {
    font-size: 14px;
    color: #6b6b8a;
    margin: 0;
}
.lm-form-header a {
    color: #DE6B3B;
    font-weight: 700;
    text-decoration: none;
}
.lm-form-header a:hover { text-decoration: underline; }

/* Field */
.lm-field {
    margin-bottom: 20px;
}
.lm-field label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 6px;
    letter-spacing: .02em;
}
.lm-field input {
    width: 100%;
    height: 50px;
    border: 1.5px solid #e8e8f0;
    border-radius: 12px;
    padding: 0 16px;
    font-size: 15px;
    font-family: 'DM Sans', sans-serif;
    color: #1a1a2e;
    background: #fff;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
    box-sizing: border-box;
}
.lm-field input:focus {
    border-color: #DE6B3B;
    box-shadow: 0 0 0 3px rgba(222,107,59,.12);
}
.lm-field input.is-invalid { border-color: #e74c3c; }

/* Password wrapper */
.lm-pass-wrap {
    position: relative;
}
.lm-pass-wrap input { padding-right: 48px; }
.lm-pass-toggle {
    position: absolute;
    right: 14px; top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: #8a8aaa;
    font-size: 16px;
    transition: color .2s;
    background: none; border: none; padding: 0;
}
.lm-pass-toggle:hover { color: #DE6B3B; }

/* Error message */
.lm-error {
    display: block;
    font-size: 12px;
    color: #e74c3c;
    margin-top: 5px;
    font-weight: 600;
}

/* Forgot row */
.lm-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 28px;
    margin-top: -8px;
}
.lm-forgot {
    font-size: 13px;
    color: #DE6B3B;
    font-weight: 700;
    text-decoration: none;
}
.lm-forgot:hover { text-decoration: underline; }

/* Submit button */
.lm-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 52px;
    background: linear-gradient(135deg, #DE6B3B 0%, #F2943C 100%);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    font-family: 'DM Sans', sans-serif;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
    box-shadow: 0 4px 20px rgba(222,107,59,.35);
    letter-spacing: .02em;
    gap: 8px;
}
.lm-submit:hover {
    opacity: .92;
    transform: translateY(-1px);
    box-shadow: 0 6px 28px rgba(222,107,59,.45);
}
.lm-submit:active {
    transform: translateY(0);
    box-shadow: 0 2px 12px rgba(222,107,59,.3);
}

/* Divider */
.lm-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 28px 0;
    font-size: 12px;
    color: #aaaacc;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.lm-divider::before,
.lm-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e8e8f0;
}

/* Social buttons */
.lm-social {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.lm-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 46px;
    border: 1.5px solid #e8e8f0;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease;
    text-decoration: none;
}
.lm-social-btn:hover {
    border-color: #DE6B3B;
    box-shadow: 0 2px 10px rgba(222,107,59,.1);
}
.lm-social-btn img {
    height: 22px;
    width: auto;
}

/* Register link */
.lm-register {
    margin-top: 28px;
    text-align: center;
    font-size: 14px;
    color: #6b6b8a;
}
.lm-register a {
    color: #DE6B3B;
    font-weight: 700;
    text-decoration: none;
}
.lm-register a:hover { text-decoration: underline; }

/* ============================================================
   RESPONSIVE — Mobile: stacked
   ============================================================ */
@media (max-width: 900px) {
    .lm-wrap { grid-template-columns: 1fr; }
    .lm-left {
        padding: 36px 28px;
        min-height: auto;
    }
    .lm-logo { margin-bottom: 32px; }
    .lm-tagline { flex: none; }
    .lm-tagline h2 { font-size: 22px; }
    .lm-tagline p { margin-bottom: 24px; }
    .lm-benefits { gap: 12px; }
    .lm-bottom { margin-top: 28px; }
    .lm-right { padding: 40px 24px; }
}
@media (max-width: 480px) {
    .lm-left { padding: 28px 20px; }
    .lm-right { padding: 32px 16px; }
    .lm-form-header h1 { font-size: 22px; }
    .lm-social { grid-template-columns: 1fr; }
}
