/* Capa visual del acceso. El CSS personalizado de empresa se aplica después. */
body.crm-login-page {
    color-scheme: light;
    --text: #172b36;
    --muted: #526570;
    --line: #dce4e5;
    --accent: #0d766e;
    --line-strong: #0d766e;
    background: #edf2f1;
    padding: 32px;
}
body.crm-login-page::before { display: none; }
.login-shell {
    width: min(1160px, 100%);
    min-height: 730px;
    grid-template-columns: 1fr 1fr;
    background: #fff;
    border: 1px solid #dce4e5;
    border-radius: 24px;
    box-shadow: 0 24px 80px #14333212;
    backdrop-filter: none;
}
.brand-panel {
    background: #102e37;
    padding: 44px 48px 30px;
    border: 0;
    overflow: hidden;
}
.brand-panel::before {
    width: 440px; height: 440px; top: auto; bottom: -285px; left: -145px;
    background: transparent; border: 1px solid #ffffff12;
    box-shadow: 0 0 0 54px #ffffff04, 0 0 0 110px #ffffff03;
}
.brand-panel::after { display: none; }
.brand-mark { margin-bottom: 54px; gap: 12px; }
.brand-badge { flex-shrink: 0; background: none; box-shadow: none; border-radius: 16px; }
.brand-name { font-size: 17px; letter-spacing: -.4px; }
.brand-caption { color: #b5c9cc; font-size: 12px; margin-top: 5px; }
.brand-kicker { color: #a7c9cb; letter-spacing: .13em; font-size: 10px; }
.brand-title { font-size: clamp(36px, 3.6vw, 50px); line-height: 1.13; letter-spacing: -.045em; }
.brand-title span { color: #8ee0c6; }
.brand-copy { color: #bdcfd2; font-size: 14px; margin-top: 20px; line-height: 1.8; }
.brand-pills { margin-top: 24px; gap: 8px; }
.brand-pill { color: #cfe1e2; border-color: #ffffff20; background: transparent; font-size: 11px; padding: 8px 12px; }
.brand-stats { gap: 0; margin-top: 32px; }
.brand-stat-line { border: 0; border-top: 1px solid #ffffff14; border-radius: 0; background: none; padding: 13px 0; gap: 5px; backdrop-filter: none; }
.brand-stat-kicker { color: #8ee0c6; letter-spacing: .1em; font-size: 10px; }
.brand-stat-text { color: #c6d8da; font-size: 12px; }
.brand-foot { color: #aec4c7; font-size: 10px; margin-top: 24px; }
.login-panel { background: #fff; padding: 46px 60px; }
.login-card { max-width: 380px; }
.login-identity { display: none; align-items: center; gap: 12px; font-weight: 700; font-size: 15px; margin-bottom: 32px; }
.login-identity img { object-fit: contain; flex-shrink: 0; }
.login-eyebrow { color: #0d766e; text-transform: uppercase; letter-spacing: .13em; font-size: 10px; font-weight: 700; margin: 0 0 14px; }
.login-title { color: #172b36; font-size: 34px; line-height: 1.2; letter-spacing: -1px; }
.login-subtitle { color: #526570; font-size: 14px; line-height: 1.7; margin: 12px 0 30px; }
form { gap: 20px; }
.field label { color: #2d444e; font-size: 13px; text-transform: none; letter-spacing: 0; font-weight: 600; }
.input { border-radius: 10px; height: 54px; background: #fafcfb; border-color: #cdd9da; font-size: 16px; }
.input::placeholder { color: #6a7e86; }
.input-ico { color: #6a7e86; }
.input:focus { background: #fff; border-color: #0d766e; box-shadow: 0 0 0 3px #0d766e18; }
#password { padding-right: 54px; }
.toggle-password { width: 44px; height: 44px; right: 4px; color: #526570; }
.toggle-password:hover { color: #0d766e; background: #edf5f3; }
.input.is-invalid { border-color: #c33c3c; }
.input.is-valid { border-color: #0d766e; }
.row-actions { row-gap: 16px; }
.remember { color: #526570; font-size: 12px; gap: 8px; }
.remember input { min-width: 18px; height: 18px; }
.forgot, .footer a { color: #0a6b64; font-weight: 600; }
.forgot:hover, .footer a:hover { color: #084e49; }
.submit { background: #0d766e; border-radius: 10px; box-shadow: 0 5px 12px #0d766e15; height: 54px; margin-top: 4px; }
.submit:hover:not(:disabled) { background: #0a655e; }
.divider { color: #677e85; letter-spacing: .05em; text-transform: none; margin: 24px 0 18px; }
.secondary-link { border-radius: 10px; background: #fff; color: #304d56; font-size: 13px; }
.secondary-link:hover { border-color: #94b7b1; background: #f6faf9; }
.footer { border-top: 1px solid #e5eceb; padding-top: 20px; margin-top: 26px; color: #62767d; font-size: 11px; line-height: 1.5; }
.footer i { margin-right: 5px; }
.alert-danger { color: #9e2626; background: #fff1f1; border-color: #f0c8c8; }
.alert-success { color: #176141; background: #eefaf2; border-color: #bde1cb; }
.caps-warning { color: #8b5b08; }
.submit:focus-visible, .secondary-link:focus-visible, .forgot:focus-visible,
.toggle-password:focus-visible, .remember input:focus-visible { outline-color: #0d766e; }
.login-splash { background: #102e37; }
.splash-mark { background: none; box-shadow: none; }
.splash-mark img { object-fit: contain; }
.splash-progress span { background: #8ee0c6; }
@media (max-width: 1024px) {
    .login-shell { max-width: 560px; grid-template-columns: 1fr; min-height: auto; }
    .brand-panel { display: none; }
    .login-panel { padding: 40px; }
    .login-card { max-width: 400px; }
    .login-identity { display: flex; }
}
@media (max-width: 640px) {
    body.crm-login-page { padding: 0; background: #fff; align-items: flex-start; }
    .login-shell { border: 0; border-radius: 0; box-shadow: none; min-height: 100svh; }
    .login-panel { padding: max(28px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom)); }
    .login-title { font-size: 30px; }
    .login-subtitle { margin-bottom: 24px; }
    .login-identity { margin-bottom: 36px; }
}
