:root {
    --acl-purple: #5c0d91;
    --acl-purple-2: #7b20b8;
    --acl-blue: #1d4ed8;
    --acl-ink: #1c1730;
    --acl-muted: #70677d;
    --acl-line: #dcc9e9;
    --acl-soft: #f8f2fc;
}

body.acl-login-page {
    margin: 0;
    min-height: 100vh;
    color: var(--acl-ink);
    background:
        radial-gradient(circle at 4% 28%, rgba(123,32,184,.08) 0 3px, transparent 4px) 0 0/18px 18px,
        radial-gradient(circle at 96% 82%, rgba(29,78,216,.06) 0 3px, transparent 4px) 0 0/20px 20px,
        linear-gradient(135deg, #fbf9fd 0%, #ffffff 52%, #f6f1fb 100%);
    font-family: "Noto Sans Bengali", "Hind Siliguri", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.acl-login-page .bg-light { background: transparent !important; }
.acl-login-page .container { max-width: none; padding: 0; }

.acl-auth-header {
    min-height: 104px;
    display: flex;
    align-items: center;
    padding: 18px clamp(24px, 5vw, 76px);
    color: #fff;
    background: linear-gradient(110deg, #4d087d 0%, #68119d 46%, #30116f 100%);
    box-shadow: 0 8px 25px rgba(65, 13, 111, .18);
}
.acl-auth-header-inner { width: min(1180px, 100%); margin: auto; display: flex; align-items: center; gap: 28px; }
.acl-auth-header img { width: 218px; max-height: 62px; object-fit: contain; filter: brightness(0) invert(1); }
.acl-auth-header-divider { width: 1px; height: 45px; background: rgba(255,255,255,.4); }
.acl-auth-header-copy { font-size: clamp(18px, 2vw, 25px); font-weight: 500; letter-spacing: .01em; }

.acl-auth-shell { min-height: calc(100vh - 104px); display: flex; flex-direction: column; }
.acl-auth-main { flex: 1; display: grid; place-items: center; padding: 42px 20px 28px; }
.acl-auth-card {
    width: min(1080px, 100%);
    display: grid;
    grid-template-columns: 48% 52%;
    overflow: hidden;
    border: 1px solid rgba(116, 48, 164, .28);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(72, 28, 109, .15);
}

.acl-auth-art {
    position: relative;
    min-height: 660px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 68px 42px 34px;
    text-align: center;
    background:
        radial-gradient(circle at 15% 18%, rgba(140, 76, 197, .16), transparent 25%),
        linear-gradient(155deg, #fbf7fe 0%, #f2e6fa 58%, #e7d3f5 100%);
}
.acl-auth-art::before,
.acl-auth-art::after { content: ""; position: absolute; border-radius: 50%; border: 18px solid rgba(104, 17, 157, .06); }
.acl-auth-art::before { width: 190px; height: 190px; left: -110px; bottom: 120px; }
.acl-auth-art::after { width: 250px; height: 250px; right: -165px; top: 95px; }
.acl-auth-logo { position: relative; z-index: 2; width: min(310px, 82%); max-height: 112px; object-fit: contain; }
.acl-art-rule { position: relative; z-index: 2; width: 245px; height: 1px; margin: 22px 0; background: linear-gradient(90deg, transparent, #8e49b5, transparent); }
.acl-art-rule::after { content: ""; position: absolute; width: 10px; height: 10px; left: 50%; top: 50%; transform: translate(-50%,-50%) rotate(45deg); background: #8e49b5; }
.acl-art-copy { position: relative; z-index: 2; margin: 0; color: #3b3445; font-size: 21px; line-height: 1.65; font-weight: 600; }
.acl-law-scene { position: relative; z-index: 2; flex: 1; width: 100%; min-height: 310px; margin-top: 28px; display: flex; align-items: flex-end; justify-content: center; color: #6b1aa0; }
.acl-court { font-size: 190px; opacity: .23; line-height: 1; }
.acl-scale { position: absolute; left: 8%; bottom: 72px; font-size: 125px; opacity: .75; filter: drop-shadow(0 12px 16px rgba(89,14,139,.18)); }
.acl-gavel { position: absolute; right: 8%; bottom: 150px; font-size: 93px; transform: rotate(-22deg); opacity: .95; }
.acl-books { position: absolute; left: 25%; bottom: 20px; width: 46%; }
.acl-book { height: 26px; margin-top: 7px; border-radius: 4px 12px 12px 4px; background: linear-gradient(90deg, #6b1aa0, #9f5ac4); box-shadow: 0 6px 12px rgba(78,18,117,.18); }
.acl-book:nth-child(2) { margin-left: 15%; width: 92%; opacity: .85; }
.acl-book:nth-child(3) { margin-left: -8%; width: 110%; opacity: .7; }

.acl-auth-form-wrap { display: flex; flex-direction: column; justify-content: center; padding: 60px clamp(35px, 5vw, 70px); }
.acl-form-heading { margin: 0; color: var(--acl-purple); text-align: center; font-size: clamp(32px, 4vw, 46px); font-weight: 800; }
.acl-form-subtitle { margin: 9px 0 43px; text-align: center; color: #5f5965; font-size: 17px; }
.acl-field { margin-bottom: 25px; }
.acl-label { display: block; margin: 0 0 10px; color: #68119d; font-size: 18px; font-weight: 700; }
.acl-input-group { position: relative; }
.acl-input-icon { position: absolute; left: 21px; top: 50%; z-index: 2; transform: translateY(-50%); color: #7620aa; font-size: 21px; }
.acl-input { width: 100%; height: 67px; padding: 0 58px 0 62px; border: 1.5px solid #cab7d8; border-radius: 10px; background: #fff; color: #292230; font-size: 17px; outline: 0; transition: .2s ease; }
.acl-input:focus { border-color: #7b20b8; box-shadow: 0 0 0 4px rgba(123,32,184,.1); }
.acl-password-toggle { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: #7620aa; font-size: 20px; cursor: pointer; }
.acl-options { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 2px 0 28px; }
.acl-check { display: inline-flex; align-items: center; gap: 10px; color: #4d4653; font-size: 15px; cursor: pointer; }
.acl-check input { width: 20px; height: 20px; accent-color: #68119d; }
.acl-link { color: #6c1aa1; font-weight: 650; text-decoration: none; }
.acl-link:hover { color: #431071; text-decoration: underline; }
.acl-submit { width: 100%; height: 70px; border: 0; border-radius: 10px; color: #fff; background: linear-gradient(100deg, #641094, #7e20af 58%, #53128d); box-shadow: 0 14px 25px rgba(97,17,148,.24); font-size: 21px; font-weight: 700; transition: .2s ease; }
.acl-submit:hover { transform: translateY(-2px); box-shadow: 0 17px 30px rgba(97,17,148,.32); }
.acl-submit i { margin-right: 12px; }
.acl-divider { display: flex; align-items: center; gap: 18px; margin: 31px 0 24px; color: #807986; }
.acl-divider::before, .acl-divider::after { content: ""; flex: 1; height: 1px; background: #ddd2e4; }
.acl-secondary { text-align: center; color: #49424e; font-size: 17px; }
.acl-error { margin: 20px 0 0; padding: 12px 16px; border-radius: 8px; color: #9f1239; background: #fff1f2; }
.acl-back-home { margin-top: 22px; text-align: center; }
.acl-auth-footer { padding: 24px 20px 28px; text-align: center; color: #625b67; font-size: 14px; }
.acl-auth-footer a { margin: 0 10px; color: #67169c; text-decoration: none; }

@media (max-width: 850px) {
    .acl-auth-header { min-height: 82px; }
    .acl-auth-header img { width: 170px; }
    .acl-auth-header-divider, .acl-auth-header-copy { display: none; }
    .acl-auth-shell { min-height: calc(100vh - 82px); }
    .acl-auth-card { grid-template-columns: 1fr; max-width: 590px; }
    .acl-auth-art { min-height: 300px; padding: 35px 28px 15px; }
    .acl-art-copy { font-size: 17px; }
    .acl-law-scene { min-height: 145px; margin-top: 10px; }
    .acl-court { font-size: 100px; }
    .acl-scale { font-size: 67px; bottom: 37px; }
    .acl-gavel { font-size: 52px; bottom: 70px; }
    .acl-auth-form-wrap { padding: 42px 28px; }
}

@media (max-width: 520px) {
    .acl-auth-header { padding: 14px 20px; }
    .acl-auth-main { padding: 24px 12px 18px; }
    .acl-auth-art { display: none; }
    .acl-auth-card { display: block; border-radius: 16px; }
    .acl-auth-form-wrap { padding: 35px 20px; }
    .acl-form-subtitle { margin-bottom: 28px; }
    .acl-options { align-items: flex-start; flex-direction: column; gap: 12px; }
    .acl-input { height: 60px; }
    .acl-submit { height: 62px; }
}

/* Refined left visual: duplicate logo and old icon scene removed */
.acl-auth-art { justify-content: flex-start; }
.acl-auth-art .acl-art-copy { margin-top: 14px; }
.acl-art-eyebrow {
    position: relative; z-index: 2; margin: 0 0 12px; padding: 8px 15px;
    border: 1px solid rgba(104,17,157,.18); border-radius: 999px;
    color: #6a179d; background: rgba(255,255,255,.62); font-weight: 700;
}
.acl-art-title {
    position: relative; z-index: 2; margin: 0; color: #351047;
    font-size: clamp(29px,3vw,40px); line-height: 1.3; font-weight: 800;
}
.acl-art-visual {
    position: relative; z-index: 2; width: 100%; flex: 1; min-height: 390px;
    margin-top: 28px; overflow: hidden; border-radius: 24px;
    background: linear-gradient(145deg,rgba(255,255,255,.78),rgba(242,225,252,.72));
    border: 1px solid rgba(108,26,161,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.acl-orbit { position:absolute; border-radius:50%; border:1px solid rgba(91,27,152,.16); }
.acl-orbit-one { width:330px; height:330px; left:50%; top:50%; transform:translate(-50%,-49%); }
.acl-orbit-two { width:245px; height:245px; left:50%; top:50%; transform:translate(-50%,-50%); border-style:dashed; }
.acl-justice-emblem {
    position:absolute; left:50%; top:44%; transform:translate(-50%,-50%); width:150px; height:150px;
    display:grid; place-items:center; border-radius:38px; color:#fff; font-size:68px;
    background:linear-gradient(145deg,#7720b5,#421397 65%,#2452cf);
    box-shadow:0 25px 45px rgba(76,17,131,.27); rotate:-4deg;
}
.acl-feature-stack { position:absolute; inset:auto 22px 20px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.acl-feature-pill {
    min-height:100px; padding:15px 10px; display:flex; flex-direction:column; align-items:center; justify-content:center;
    border-radius:15px; color:#4d275f; background:rgba(255,255,255,.88); border:1px solid rgba(105,31,157,.13);
    box-shadow:0 12px 24px rgba(73,24,105,.08); font-size:12px;
}
.acl-feature-pill i { margin-bottom:8px; color:#6817a2; font-size:22px; }
.acl-feature-pill strong { margin-top:3px; color:#30133f; font-size:13px; }
.acl-legal-skyline { position:absolute; left:22px; right:22px; bottom:135px; height:90px; opacity:.13; color:#601095; }
.acl-legal-skyline > i { position:absolute; left:50%; bottom:0; transform:translateX(-50%); font-size:112px; }
.acl-column { position:absolute; bottom:0; width:22px; border-radius:6px 6px 0 0; background:currentColor; }
.acl-column.c1 { left:12%; height:47px; }.acl-column.c2 { right:14%; height:68px; }.acl-column.c3 { right:4%; height:38px; }

.acl-field-note { display:block; margin-top:8px; color:#746b7b; font-size:13px; }
.acl-forgot-card .acl-auth-art { padding-top:58px; }
.acl-recovery-visual { min-height:360px; }
.acl-recovery-ring { position:absolute; width:220px; height:220px; border:2px dashed rgba(104,17,157,.19); border-radius:50%; left:50%; top:48%; transform:translate(-50%,-50%); }
.acl-recovery-lock { position:absolute; left:50%; top:47%; transform:translate(-50%,-50%); width:125px; height:125px; display:grid; place-items:center; border-radius:34px; color:#fff; font-size:48px; background:linear-gradient(145deg,#7620b4,#254ed2); box-shadow:0 24px 45px rgba(81,25,140,.25); }
.acl-recovery-step { position:absolute; display:flex; align-items:center; gap:9px; padding:11px 14px; border-radius:12px; color:#43105e; background:#fff; border:1px solid rgba(105,31,157,.13); box-shadow:0 12px 25px rgba(73,24,105,.1); font-size:13px; font-weight:700; }
.acl-recovery-step i { color:#6b1aa2; font-size:18px; }
.acl-recovery-step.step-one { left:12px; top:42px; }.acl-recovery-step.step-two { right:10px; top:78px; }.acl-recovery-step.step-three { left:50%; bottom:24px; transform:translateX(-50%); }

@media (max-width:850px) {
    .acl-art-visual { min-height:230px; }
    .acl-feature-stack { inset:auto 12px 12px; }
    .acl-feature-pill { min-height:78px; }
    .acl-justice-emblem { width:105px; height:105px; font-size:48px; top:35%; }
    .acl-legal-skyline { display:none; }
    .acl-forgot-card .acl-auth-art { padding-top:34px; }
}
