/* ===========================
   LOGIN — Gestiova
   Clean modern login
   =========================== */

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

/* ── Variables ── */
:root {
    --g-primary: #145C8E;
    --g-primary-dark: #0E4268;
    --g-primary-light: #1A74B3;
    --g-primary-glow: rgba(20, 92, 142, .30);
    --g-accent: #2196F3;
    --g-bg-start: #0B1929;
    --g-bg-mid: #0F2744;
    --g-bg-end: #132F4C;
    --g-glass-bg: rgba(255, 255, 255, .06);
    --g-glass-border: rgba(255, 255, 255, .10);
    --g-input-bg: rgba(255, 255, 255, .06);
    --g-input-border: rgba(255, 255, 255, .13);
    --g-text: rgba(255, 255, 255, .92);
    --g-text-muted: rgba(255, 255, 255, .45);
    --g-radius: 16px;
    --g-radius-sm: 10px;
}

/* ── Full-screen backdrop ── */
.login-register {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    position: relative;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    overflow: hidden;
    background-color: var(--g-bg-start);
    background-size: cover;
    background-position: center;
}

/* ── Dark overlay over background image ── */
.login-register::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(8, 18, 32, .75) 0%, rgba(10, 25, 48, .60) 40%, rgba(8, 18, 32, .80) 100%);
    z-index: 0;
}

/* ── Animated background shapes ── */
.login-bg-shapes {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
}

.login-shape {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .35;
}

.login-shape-1 {
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, var(--g-primary) 0%, transparent 70%);
    top: -20%;
    right: -10%;
    animation: loginFloat1 20s ease-in-out infinite alternate;
}

.login-shape-2 {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, var(--g-accent) 0%, transparent 70%);
    bottom: -15%;
    left: -8%;
    opacity: .20;
    animation: loginFloat2 25s ease-in-out infinite alternate;
}


@keyframes loginFloat1 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-40px, 30px) scale(1.1); }
}

@keyframes loginFloat2 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(30px, -40px) scale(1.15); }
}

/* Subtle grid pattern overlay */
.login-register::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
    background-size: 60px 60px;
    z-index: 0;
    pointer-events: none;
}

/* ── Login box container ── */
.login-register .login-box {
    width: min(420px, 100%);
    position: relative;
    z-index: 2;
}

/* ── Card entrance ── */
.login-card-animate {
    animation: loginCardEntry .65s cubic-bezier(.22, .9, .36, 1) both;
}

@keyframes loginCardEntry {
    0%   { opacity: 0; transform: translateY(24px) scale(.98); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* ── Glass card ── */
.login-register .card {
    border: 1px solid var(--g-glass-border) !important;
    border-radius: var(--g-radius) !important;
    background: var(--g-glass-bg) !important;
    backdrop-filter: blur(20px) saturate(1.3);
    -webkit-backdrop-filter: blur(20px) saturate(1.3);
    box-shadow:
        0 24px 64px rgba(0, 0, 0, .40),
        0 0 0 1px rgba(255, 255, 255, .05) inset;
    transition: box-shadow .4s ease, transform .4s ease;
}

.login-register .card:hover {
    box-shadow:
        0 28px 72px rgba(0, 0, 0, .45),
        0 0 0 1px rgba(255, 255, 255, .07) inset;
}

/* ── Card body ── */
.login-register .card-body {
    padding: 40px 32px 28px !important;
}

/* ── Logo ── */
.login-logo-wrapper {
    text-align: center;
    margin-bottom: 20px;
}

.login-logo {
    height: 42px;
    filter: brightness(0) invert(1) drop-shadow(0 1px 4px rgba(0,0,0,.2));
    transition: transform .3s ease, opacity .3s ease;
    opacity: .90;
}

.login-logo:hover {
    transform: scale(1.04);
    opacity: 1;
}

/* ── Title ── */
.login-register p,
.login-register label,
.login-register h1, .login-register h2, .login-register h3,
.login-register h4, .login-register h5, .login-register h6 {
    color: var(--g-text) !important;
}

#container_login .box-title {
    text-align: center;
    font-weight: 700;
    font-size: 1.5rem;
    letter-spacing: -.3px;
    margin-bottom: 4px !important;
    color: #fff !important;
}

.login-subtitle {
    text-align: center;
    font-size: .82rem;
    font-weight: 400;
    color: var(--g-text-muted) !important;
    margin-bottom: 28px !important;
}

/* ── Input wrapper ── */
.login-input-wrapper {
    position: relative;
}

.login-input-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: 17px;
    color: var(--g-accent);
    pointer-events: none;
    z-index: 3;
    transition: color .25s ease;
}

.login-input-wrapper:focus-within .login-input-icon {
    color: var(--g-accent);
}

/* ── Inputs ── */
#container_login .form-control {
    height: 46px;
    border-radius: var(--g-radius-sm);
    background: var(--g-input-bg) !important;
    border: 1px solid var(--g-input-border) !important;
    color: #fff !important;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: .88rem;
    font-weight: 400;
    padding-left: 42px;
    transition: all .25s ease;
}

#container_login .form-control::placeholder {
    color: var(--g-text-muted);
    font-weight: 400;
}

#container_login .form-control:focus {
    background: rgba(255, 255, 255, .09) !important;
    border-color: var(--g-primary-light) !important;
    box-shadow: 0 0 0 3px var(--g-primary-glow);
    outline: none;
}

/* ── Primary button ── */
#btnIngresar {
    height: 46px;
    border-radius: var(--g-radius-sm) !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 700 !important;
    font-size: .85rem !important;
    letter-spacing: .5px;
    border: none !important;
    background: linear-gradient(135deg, var(--g-primary-light) 0%, var(--g-primary) 100%) !important;
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all .3s cubic-bezier(.22, .9, .36, 1) !important;
    box-shadow: 0 4px 16px var(--g-primary-glow);
    position: relative;
    overflow: hidden;
}

#btnIngresar::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, transparent 0%, rgba(255,255,255,.12) 100%);
    opacity: 0;
    transition: opacity .3s ease;
}

#btnIngresar:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 28px var(--g-primary-glow) !important;
    background: linear-gradient(135deg, var(--g-accent) 0%, var(--g-primary-light) 100%) !important;
}

#btnIngresar:hover::before {
    opacity: 1;
}

#btnIngresar:active {
    transform: translateY(0) !important;
}

.login-btn-arrow {
    width: 17px;
    height: 17px;
    transition: transform .3s ease;
}

#btnIngresar:hover .login-btn-arrow {
    transform: translateX(3px);
}

/* ── Divider ── */
.login-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--g-glass-border), transparent);
    margin: 10px 0 14px;
}

/* ── Brand link ── */
#container_login a {
    color: var(--g-text-muted) !important;
    font-size: .76rem;
    letter-spacing: .4px;
    text-decoration: none !important;
    transition: color .25s ease;
}

#container_login a:hover {
    color: var(--g-accent) !important;
}

.login-register p {
    margin-bottom: 0 !important;
}

/* ── Role selection ── */
#ContainerRol {
    margin-top: 14px !important;
    position: static !important;
    top: auto !important;
    animation: loginCardEntry .5s cubic-bezier(.22, .9, .36, 1) both;
}

#ContainerRol label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: .88rem;
    margin-bottom: 10px;
    display: block;
}

.login-rol-buttons {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 14px;
}

.login-rol-buttons .btn {
    border-radius: var(--g-radius-sm) !important;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: .83rem;
    padding: 8px 20px;
    transition: all .25s ease;
}

.login-rol-buttons .btn-info {
    background: linear-gradient(135deg, var(--g-primary-light) 0%, var(--g-primary) 100%) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: 0 3px 12px var(--g-primary-glow);
}

.login-rol-buttons .btn-info:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px var(--g-primary-glow);
}

.login-rol-buttons .btn-danger {
    background: rgba(255, 255, 255, .06) !important;
    border: 1px solid rgba(255, 255, 255, .15) !important;
    color: var(--g-text) !important;
}

.login-rol-buttons .btn-danger:hover {
    background: rgba(255, 70, 70, .12) !important;
    border-color: rgba(255, 70, 70, .35) !important;
}

/* ── Form spacing ── */
#container_login .form-group {
    margin-bottom: 14px;
}

/* ── Kendo overrides ── */
#ContainerRol .k-widget.k-combobox {
    border-radius: var(--g-radius-sm);
}

#ContainerRol .k-dropdown-wrap {
    background: var(--g-input-bg) !important;
    border: 1px solid var(--g-input-border) !important;
    border-radius: var(--g-radius-sm) !important;
}

#ContainerRol .k-input {
    color: #fff !important;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Responsive ── */
@media (max-width: 480px) {
    .login-register {
        padding: 16px;
    }

    .login-register .card-body {
        padding: 28px 20px 22px !important;
    }

    #container_login .box-title {
        font-size: 1.25rem;
    }

    .login-shape-1 { width: 350px; height: 350px; }
    .login-shape-2 { width: 250px; height: 250px; }
}
