@font-face {
    font-family: CentraNube;
    src: url('../../admin3/fonts/centranube-book-webfont.woff') format('woff');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
body.login-shell { display: block; margin: 0; background: #f7f7f8; color: #303741; font-family: CentraNube, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.6; }
.login-page { --login-accent: var(--main-bg-color, #262626); --login-on-accent: var(--main-letra, #fff); --login-muted: #68717e; --login-border: #e3e6eb; display: flex; align-items: center; justify-content: center; min-height: 100vh; min-height: 100dvh; padding: 48px 28px; }
.login-page *, .login-page *::before, .login-page *::after { box-sizing: border-box; }
.login-page :is(a, button, input):focus-visible { outline: 3px solid var(--login-accent); outline-offset: 3px; }
.login-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 72px; width: 100%; max-width: 980px; }
.login-intro { min-width: 0; }
.login-brand { display: inline-flex; align-items: center; max-width: 100%; margin-bottom: 38px; }
.login-brand img { display: block; width: auto; max-width: 240px; max-height: 88px; object-fit: contain; }
.login-eyebrow { display: block; margin-bottom: 8px; color: var(--login-muted); font-size: 10px; font-weight: 700; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.login-page .login-intro h2 { margin: 0; color: #303741; font-size: clamp(30px, 3.2vw, 40px); font-weight: 750; line-height: 1.2; letter-spacing: -.035em; }
.login-intro__content > p { max-width: 360px; margin: 18px 0 0; color: var(--login-muted); font-size: 14px; line-height: 1.8; }
.login-benefits { display: grid; gap: 22px; margin: 32px 0 0; padding: 0; list-style: none; }
.login-benefits li { display: flex; align-items: flex-start; gap: 13px; }
.login-benefits__icon { display: flex; align-items: center; justify-content: center; flex: 0 0 38px; height: 38px; border: 1px solid var(--login-border); border-radius: 12px; background: #fff; color: var(--login-accent); font-size: 15px; }
.login-page .login-benefits h3 { margin: 0 0 3px; color: #505967; font-size: 13px; font-weight: 650; line-height: 1.5; }
.login-benefits p { margin: 0; color: var(--login-muted); font-size: 12px; line-height: 1.7; }
.login-card { min-width: 0; padding: 36px; border: 1px solid var(--login-border); border-radius: 20px; background: #fff; box-shadow: 0 6px 24px rgba(25, 30, 40, .035); }
.login-card__heading { margin-bottom: 28px; }
.login-icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 24px; border-radius: 15px; background: #f3f5f7; color: var(--login-accent); font-size: 21px; }
.login-page .login-card h1 { margin: 0; color: #282f38; font-size: 30px; font-weight: 750; line-height: 1.25; letter-spacing: -.035em; }
.login-card__heading > p { margin: 12px 0 0; color: var(--login-muted); font-size: 13px; line-height: 1.7; }
.login-form { margin: 0; }
.login-form .form-group { min-width: 0; margin: 0 0 20px; }
.login-page label { display: block; margin: 0 0 8px; color: #505967; font-size: 12px; font-weight: 600; line-height: 1.5; }
.login-page .form-control { width: 100%; height: 48px; padding: 12px 14px; border: 1px solid #dce1e7; border-radius: 10px; background: #f8f9fb; color: #303741; font-family: inherit; font-size: 14px; line-height: 1.5; text-align: left; box-shadow: none; transition: border-color .15s, box-shadow .15s; }
.login-page .form-control::placeholder { color: #959da8; font-size: 12px; opacity: 1; }
.login-page .form-control:focus { outline: none; border-color: var(--login-accent); background: #fff; box-shadow: 0 0 0 3px rgba(30, 35, 45, .08); box-shadow: 0 0 0 3px color-mix(in srgb, var(--login-accent) 15%, transparent); }
.login-password { position: relative; }
.login-password .form-control { padding-right: 50px; }
.login-password__toggle { position: absolute; top: 6px; right: 6px; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #8a93a0; font-size: 16px; cursor: pointer; }
.login-password__toggle:hover { background: #edf0f4; color: #505967; }
.login-page .input-validation-error { border-color: #c94747; }
.login-page .field-validation-error { display: block; margin-top: 7px; color: #c13d4b; font-size: 11px; line-height: 1.5; }
.login-page .field-validation-valid { display: none; }
.login-page .login-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; height: auto; margin-top: 28px; padding: 12px 16px; border: 1px solid var(--login-accent); border-radius: 10px; background: var(--login-accent); color: var(--login-on-accent); font-family: inherit; font-size: 14px; font-weight: 650; line-height: 1.5; box-shadow: none; cursor: pointer; }
.login-page .login-submit:hover { filter: brightness(.94); }
.login-page .login-submit:disabled { opacity: .65; cursor: wait; }
.login-page .login-submit.btn-loading > i { display: none; }
.login-page .login-submit.btn-loading::after { content: ""; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: login-spin .8s linear infinite; }
.login-register { margin-top: 28px; padding-top: 24px; border-top: 1px solid #edf0f4; text-align: center; }
.login-register > p { margin: 0 0 12px; color: var(--login-muted); font-size: 12px; }
.login-page .login-register__link { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--login-border); border-radius: 10px; background: #f8f9fb; color: #505967; font-size: 12px; font-weight: 650; line-height: 1.5; text-decoration: none; }
.login-register__link i { color: #939ca9; font-size: 10px; }
.login-page .login-register__link:hover { border-color: #cdd2d9; background: #f0f2f5; color: var(--login-accent); }
@keyframes login-spin { to { transform: rotate(360deg); } }
@media (max-width: 991px) {
    .login-layout { gap: 36px; }
    .login-card { padding: 28px; }
}
@media (max-width: 767px) {
    .login-page { padding: 28px 20px; }
    .login-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; max-width: 460px; }
    .login-intro { text-align: center; }
    .login-brand { margin: 0; }
    .login-brand img { max-width: 210px; max-height: 72px; }
    .login-intro__content { display: none; }
    .login-card { padding: 24px; border-radius: 18px; }
    .login-page .login-card h1 { font-size: 27px; }
    .login-page .form-control { font-size: 16px; }
    .login-icon { margin-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .login-page .form-control { transition: none; }
    .login-page .login-submit.btn-loading::after { animation: none; }
}
