/* ================= ROOT ================= */
:root{
    --bg-login:#f8fafc;
    --card-bg:#ffffff;
    --text:#1f2937;
    --primary:#1e40af;
}
body.dark{
    --bg-login:#020617;
    --card-bg:#111827;
    --text:#e5e7eb;
    --primary:#3b82f6;
}
body{
    min-height:100vh;
    font-family:system-ui,sans-serif;
    background:var(--bg-login);
    color:var(--text);
}
.hidden{
  display: none !important;
}
.alert{padding: 8px!important;}
.alert .btn-close{font-size:12px!important;margin-top:-8px!important;}
/* ================= SLIDER (LOCKED — UNTOUCHED) ================= */
.slider-section{position:relative;overflow:hidden}
.carousel-item{
    min-height:100vh;
    background-size:cover;
    background-position:center;
    opacity:0;
    transition:opacity 1.2s ease-in-out;
}
.carousel-item.active{opacity:1}
.carousel-item.active.bg-loaded{
    animation:kenburns 18s ease-in-out infinite;
}
@keyframes kenburns{
    0%{transform:scale(1)}
    50%{transform:scale(1.08)}
    100%{transform:scale(1)}
}
.lazy-bg{opacity:0}
.lazy-bg.bg-loaded{opacity:1}

.carousel-overlay{
    position:absolute;
    inset:0;
    background:rgba(2,6,23,.65);
}
.carousel-content{
    position:relative;
    z-index:2;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    color:#fff;
    padding:3rem;
    opacity:0;
    transform:translateY(12px);
    transition:.8s ease;
}
.carousel-item.active .carousel-content{
    opacity:1;
    transform:none;
}
.carousel-content ul{
    list-style:none;
    padding:0;
    line-height: 25px;
}
.carousel-content li{
    font-size:1rem;
    font-weight:600;
    /*opacity:0;*/
    transform:translateY(12px);
    transition:.5s ease;
    display: inline;
    margin-right: 1.2rem;
}
.carousel-content li:last-child{
    margin-right: none;
}
.carousel-content li>a{
    font-size:1rem;
    font-weight:600;
    opacity:0.8;
    transform:translateY(12px);
    transition:.5s ease;
}
.carousel-content li>a:hover{
    opacity:1;
}
.carousel-content li .btn-info:hover{
    color: #fff;
}


/* ================= LOGIN ================= */
.login-section{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
}
.login-box{
    max-width:500px;
    width:100%;
    background:var(--card-bg);
    border-radius:14px;
    padding:2rem;
    opacity:0;
    transform:translateY(20px) scale(.96);
    transition:.7s cubic-bezier(.34,1.56,.64,1);
}
.login-box.show{opacity:1;transform:none}
.login-icon{font-size:3.5rem;color:var(--primary);margin-bottom:-15px;}
.form-control{box-shadow:none!important; padding: 14px 12px; font-size:16px}
.form-control:focus{border-color:var(--primary)}
.password-wrap{position:relative}
/*.toggle-pass{
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    cursor:pointer;
    color:#64748b;
    transition:.3s;
}*/
.toggle-pass,
.field-icon{
    float:right;
    margin-right:15px;
    margin-top:-28px;
    position:relative;
    z-index:2;
    cursor:pointer;
    transition:.3s;
    transform:translateY(-50%);
}
.toggle-pass:hover,.field-icon:hover{color:var(--primary)}
.forgot-link:hover{text-decoration:underline}
.form-check-input{
    cursor:pointer;
    box-shadow:none!important;
}
.form-check-label{
    cursor:pointer;
    font-size:.9rem;
}
.caps-warning{
    font-size:.9rem;
    color:#dc2626;
    display:none;
}
.login-btn{
    height: 50px;
    transition:.25s ease;
}
.login-btn:active{
    transform:scale(.97);
    box-shadow:0 0 0 6px rgba(59,130,246,.25);
}

.forgot-link{
    float:right;
    font-size:.85rem;
    text-decoration:none;
}
.apply-link{text-align:right;font-size:.9rem}
.apply-link a{text-decoration: none;}
footer{text-align:center;font-size:.85rem;margin-top:3.9rem;color:#64748b}

/* ================= MOBILE NAV ================= */
.mobile-nav{
    position:fixed;
    top:0;
    left:0;
    z-index:1400;
    width:100%;
    padding:.75rem 1rem;
    display:none;
}
@media(max-width:991px){.mobile-nav{display:flex}}

.nav-toggle{
    font-size:1.8rem;
    background:none;
    border:none;
    color:var(--text);
    position:relative;
    z-index:1350; /* stays clickable */
}
.nav-toggle i{
    transition:.35s cubic-bezier(.34,1.56,.64,1);
}
.nav-toggle .bi-x{
    position:absolute;
    left:0;
    top:0;
    opacity:0;
    transform:rotate(-90deg) scale(.8);
}
.nav-toggle.active .bi-list{
    opacity:0;
    transform:rotate(90deg) scale(.8);
}
.nav-toggle.active .bi-x{
    opacity:1;
    transform:none;
}

/* ================= GLASS OVERLAY (FIXED) ================= */
.nav-overlay::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;

    /* subtle frosted noise */
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
}
.nav-overlay{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    opacity:0;
    pointer-events:none;
    transition:.45s cubic-bezier(.22,1,.36,1);
    z-index:1250;
}

.nav-overlay.active{
    opacity:1;
    pointer-events:auto;
}

/* fallback */
@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
    .nav-overlay{
        background:rgba(15,23,42,0.8);
    }
}

/* Menu */
.nav-menu{
    position:fixed;
    inset:0;
    background:var(--card-bg);
    transform:translateX(-100%);
    transition:.55s cubic-bezier(.22,1,.36,1);
    padding:4.5rem 2rem;
    z-index:1300;
}
.nav-menu.active{transform:none}
.nav-menu a{
    display:block;
    font-size:1.25rem;
    padding:1rem 0;
    color:var(--text);
    text-decoration:none;
    opacity:0;
    transform:translateX(-24px);
    transition:
        opacity .45s cubic-bezier(.22,1,.36,1),
        transform .45s cubic-bezier(.22,1,.36,1);
    line-height: 5px;
}
.nav-menu.active a{opacity:1;transform:none}
.nav-menu.active a:nth-child(1){transition-delay:.1s}
.nav-menu.active a:nth-child(2){transition-delay:.18s}
.nav-menu.active a:nth-child(3){transition-delay:.26s}
.nav-menu.active a:nth-child(4){transition-delay:.34s}
.nav-menu.active a:nth-child(5){transition-delay:.42s}
.nav-menu.active a:nth-child(6){transition-delay:.50s}
.nav-menu.active a:nth-child(7){transition-delay:.58s}
.nav-menu a:hover{
  color: var(--primary);
}
/* ================= THEME ================= */
.theme-toggle{
    position:fixed;
    top:1rem;
    right:1rem;
    z-index:1500;
}
.theme-btn{
    width:40px;
    height:40px;
    border-radius:50%;
    border:.51px solid var(--primary);
    background:var(--card-bg);
    color:var(--primary);
}
body.dark .theme-btn{
    color:#facc15;
    border-color:#facc15;
}