/* ==========================================================================
   Alg-Coding · pantallas de acceso al ERP
   ========================================================================== */
:root {
    --brand: #4338ca;
    --brand-2: #7c3aed;
    --ink: #0f172a;
    --muted: #64748b;
    --line: #e2e8f0;
}

* { box-sizing: border-box; }

body.auth-body {
    margin: 0;
    min-height: 100vh;
    background: #f4f5fb;
    color: var(--ink);
    font-family: "Inter", "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;
}

.auth-shell { display: flex; min-height: 100vh; }

.auth-aside {
    flex: 0 0 46%;
    background:
        radial-gradient(circle at 18% 12%, rgba(147, 51, 234, .55), transparent 45%),
        radial-gradient(circle at 82% 78%, rgba(56, 189, 248, .35), transparent 48%),
        linear-gradient(150deg, #0f172a 0%, #1e1b4b 60%, #312e81 100%);
    color: #e2e8f0;
    padding: 46px 52px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}

.auth-aside::after {
    content: "";
    position: absolute;
    inset: auto -120px -160px auto;
    width: 420px; height: 420px;
    border-radius: 50%;
    border: 1px solid rgba(165, 180, 252, .25);
}

.auth-brand { display: flex; align-items: center; gap: 13px; }
.auth-mark {
    width: 46px; height: 46px; border-radius: 13px;
    display: grid; place-items: center;
    background: linear-gradient(135deg, #6366f1, #a855f7);
    color: #fff; font-weight: 800; font-size: 13px; letter-spacing: .6px;
}

/* Logo corporativo (PNG) */
.auth-logo { object-fit: contain; background: #ffffff; padding: 5px; }
.auth-card-logo { width: 52px; height: 52px; object-fit: contain; margin-bottom: 14px; }
.auth-brand strong { display: block; font-size: 17px; color: #fff; }
.auth-brand small { color: #a5b4fc; font-size: 11.5px; text-transform: uppercase; letter-spacing: 1.6px; }

.auth-headline h1 { font-size: 33px; line-height: 1.18; margin: 0 0 16px; letter-spacing: -.9px; color: #fff; }
.auth-headline p { color: #cbd5e1; margin: 0; max-width: 42ch; font-size: 15px; }

.auth-features { list-style: none; padding: 0; margin: 30px 0 0; display: flex; flex-direction: column; gap: 14px; }
.auth-features li { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: #dbeafe; }
.auth-features .tick {
    width: 22px; height: 22px; border-radius: 50%; flex: 0 0 22px;
    background: rgba(129, 140, 248, .22); color: #c7d2fe;
    display: grid; place-items: center; font-size: 12px; font-weight: 800;
}

.auth-foot { color: #94a3b8; font-size: 12.5px; }

.auth-main {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
}

.auth-card {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 36px 80px -60px rgba(15, 23, 42, .8);
    padding: 34px 32px;
}

.auth-card h1 { margin: 0 0 6px; font-size: 23px; letter-spacing: -.4px; }
.auth-card .lead { margin: 0 0 24px; color: var(--muted); font-size: 14px; }

.auth-card .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.auth-card label { font-size: 12.5px; font-weight: 700; color: #334155; }
.auth-card input[type="text"], .auth-card input[type="email"], .auth-card input[type="password"] {
    width: 100%; padding: 12px 13px; border: 1px solid #d3d9e8; border-radius: 10px;
    font-size: 14.5px; font-family: inherit;
}
.auth-card input:focus { outline: none; border-color: #a5b4fc; box-shadow: 0 0 0 3px rgba(99, 102, 241, .16); }

.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 20px; font-size: 13px; }
.auth-row .check { display: flex; align-items: center; gap: 8px; color: #334155; }
.auth-row input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--brand); }

.btn-auth {
    width: 100%;
    padding: 13px 18px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #4338ca, #7c3aed);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 18px 34px -20px rgba(67, 56, 202, .95);
}
.btn-auth:hover { filter: brightness(1.07); }
.btn-auth:disabled { opacity: .6; cursor: not-allowed; }

.auth-error {
    background: #fef2f2; border: 1px solid #fecaca; color: #991b1b;
    border-radius: 10px; padding: 11px 13px; font-size: 13px; margin-bottom: 18px;
}
.auth-error ul { margin: 0; padding-left: 18px; }

.auth-help { margin-top: 22px; text-align: center; color: var(--muted); font-size: 12.5px; }
.auth-help a { color: var(--brand); font-weight: 600; }
.auth-links { display: flex; justify-content: space-between; margin-top: 18px; font-size: 13px; }

.auth-simple .auth-main { padding: 50px 22px; }

@media (max-width: 960px) {
    .auth-aside { display: none; }
    .auth-card {
        background: #fff;
        border: 1px solid var(--line);
        padding: 28px 22px;
        border-radius: 18px;
        box-shadow: 0 30px 70px -60px rgba(15, 23, 42, .8);
    }
    .auth-simple .auth-card { padding: 28px 22px; }
}
