*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

body{
    min-height:100vh;
    background:
        radial-gradient(circle at top, rgba(255,255,255,.95), transparent 34%),
        linear-gradient(135deg,#eef2f7,#dfe5ec);
}

/* CONTENEDOR */
.login-section{
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:24px;
}

/* TARJETA PREMIUM */
.login-card{
    width:100%;
    max-width:460px;
    padding:40px 38px 34px;
    border-radius:32px;
    background:rgba(255,255,255,.84);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
    border:1px solid rgba(255,255,255,.78);
    box-shadow:
        0 35px 75px rgba(15,23,42,.14),
        inset 0 1px 0 rgba(255,255,255,.95);
    animation:fadeUp .7s ease;
}

/* DETALLE ROJO ORSAN */
.login-card::before{
    content:"";
    display:block;
    width:34px;
    height:4px;
    border-radius:50px;
    background:#e30613;
    margin:0 auto 22px;
}

/* HEADER */
.login-header{
    text-align:center;
    margin-bottom:30px;
}

/* LOGO */
.logo-box{
    width:72px;
    height:72px;
    margin:0 auto 18px;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:20px;
    background:#ffffff;
    box-shadow:
        0 12px 28px rgba(0,0,0,.08),
        inset 0 1px 0 rgba(255,255,255,1);
}

.logo-box img{
    width:50px;
    height:auto;
    object-fit:contain;
}

/* TITULO */
.login-header h2{
    font-size:34px;
    font-weight:750;
    color:#0b0f19;
    letter-spacing:-1px;
    margin-bottom:8px;
}

.login-header p{
    font-size:13px;
    color:#6b7280;
    font-weight:400;
}

/* INPUTS */
.input-group{
    position:relative;
    margin-bottom:16px;
}

.input-group input{
    width:100%;
    height:54px;
    border:none;
    border-radius:16px;
    background:#f3f5f8;
    padding:20px 16px 8px;
    font-size:15px;
    color:#111827;
    outline:none;
    transition:.25s ease;
}

.input-group label{
    position:absolute;
    left:16px;
    top:18px;
    font-size:14px;
    color:#8b95a1;
    pointer-events:none;
    transition:.25s ease;
}

.input-group input:focus{
    background:#ffffff;
    box-shadow:
        0 0 0 2px #0b0f19 inset,
        0 12px 22px rgba(15,23,42,.06);
}

.input-group input:focus + label,
.input-group input:valid + label{
    top:7px;
    font-size:11px;
    color:#e30613;
    font-weight:700;
}

/* BOTON */
.btn-login{
    width:100%;
    height:56px;
    margin-top:8px;
    border:none;
    border-radius:16px;
    background:linear-gradient(180deg,#1c1c1e,#000000);
    color:#ffffff;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
    transition:.25s ease;
    box-shadow:
        0 20px 34px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.16);
}

.btn-login:hover{
    transform:translateY(-1px);
    box-shadow:
        0 24px 40px rgba(0,0,0,.26),
        inset 0 1px 0 rgba(255,255,255,.18);
}

.btn-login:active{
    transform:scale(.99);
}

/* FOOTER */
.login-footer{
    margin-top:26px;
    padding-top:18px;
    text-align:center;
    font-size:12px;
    color:#9aa3af;
    border-top:1px solid rgba(15,23,42,.07);
}

/* ANIMACION */
@keyframes fadeUp{
    from{
        opacity:0;
        transform:translateY(18px) scale(.98);
    }
    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

/* RESPONSIVE */
@media(max-width:480px){

    .login-card{
        padding:34px 24px 30px;
        border-radius:26px;
    }

    .login-header h2{
        font-size:30px;
    }

    .logo-box{
        width:46px;
        height:46px;
        border-radius:14px;
    }

    .logo-box img{
        width:30px;
    }
}}

/* ===== AJUSTE FINAL PREMIUM ===== */

.login-card{
    max-width:520px;
    padding:46px 44px 38px;
    border-radius:34px;
}

.logo-box,
.logo-circle{
    width:72px !important;
    height:72px !important;
    margin:0 auto 18px !important;
    border-radius:20px !important;
    background:#ffffff !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    border:none !important;
    overflow:hidden !important;
    box-shadow:
        0 14px 30px rgba(0,0,0,.09),
        inset 0 1px 0 rgba(255,255,255,1) !important;
}

.logo-box img,
.logo-circle img{
    width:50px !important;
    height:auto !important;
    object-fit:contain !important;
}

.login-header{
    margin-bottom:28px;
}

.login-header h2{
    font-size:42px;
    font-weight:800;
    letter-spacing:-1.5px;
    margin-bottom:10px;
}

.login-header p{
    font-size:16px;
    color:#6b7280;
}

.input-group{
    margin-bottom:18px;
}

.input-group input{
    height:58px;
    border-radius:18px;
    background:#f4f6f8;
    font-size:16px;
}

.input-group label{
    top:19px;
    font-size:16px;
}

.input-group input:focus + label,
.input-group input:valid + label{
    top:7px;
    font-size:12px;
}

.btn-login{
    height:60px;
    margin-top:12px;
    border-radius:18px;
    font-size:17px;
    box-shadow:
        0 22px 38px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.18);
}

.login-footer{
    margin-top:30px;
    font-size:14px;
}

.remember-container {
    margin: 8px 0 22px;
}

.switch-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    color: #555;
    font-weight: 500;
    cursor: pointer;
}

.switch-label input {
    display: none;
}

.switch-slider {
    position: relative;
    width: 42px;
    height: 23px;
    background: #d6d6d6;
    border-radius: 999px;
    transition: all 0.25s ease;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.18);
}

.switch-slider::before {
    content: "";
    position: absolute;
    width: 19px;
    height: 19px;
    top: 2px;
    left: 2px;
    background: #ffffff;
    border-radius: 50%;
    transition: all 0.25s ease;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}

.switch-label input:checked + .switch-slider {
    background: linear-gradient(135deg, #b11226, #8f0e1f);
    box-shadow: 0 0 8px rgba(177,18,38,0.35);
}

.switch-label input:checked + .switch-slider::before {
    transform: translateX(19px);
}

/* Responsive */
@media(max-width:480px){
    .login-card{
        max-width:100%;
        padding:36px 24px 30px;
        border-radius:28px;
    }

    .login-header h2{
        font-size:34px;
    }

    .login-header p{
        font-size:14px;
    }

    .logo-box,
    .logo-circle{
        width:66px !important;
        height:66px !important;
    }

    .logo-box img,
    .logo-circle img{
        width:46px !important;
    }
}
