/* ============================================
   LOGIN CSS
   Refactorizado para compatibilidad cross-browser
   ============================================ */

/* Importar base.css para variables y utilidades */
@import url('base.css');

/* Reset específico (ya está en base.css pero se mantiene por compatibilidad) */
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Inter", var(--font-family-base);
}

/* Autofill - Solución cross-browser */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px var(--color-bg-primary) inset !important;
    -webkit-text-fill-color: var(--color-text-primary) !important;
    transition: background-color 5000s ease-in-out 0s;
}

input:-moz-autofill,
input:-moz-autofill:hover,
input:-moz-autofill:focus {
    -moz-box-shadow: 0 0 0 30px var(--color-bg-primary) inset !important;
    -moz-text-fill-color: var(--color-text-primary) !important;
    transition: background-color 5000s ease-in-out 0s;
}

body {
    /* Fallback para navegadores antiguos */
    height: 100vh;
    /* Dynamic viewport height para navegadores modernos */
    height: 100dvh;
    background-color: var(--color-bg-primary);
    color: var(--color-text-primary);
}

main {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 536px;
    grid-template-columns: 536px;
    -ms-grid-rows: 150px 1fr;
    grid-template-rows: 150px 1fr;
    margin: auto;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.logo {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%;
    margin: auto;
    height: 150px;
    border-bottom: solid 1px var(--color-text-secondary);
}

.logo img {
    height: 69px;
}

.text-version {
    font-size: var(--font-size-sm);
}

section {
    width: 300px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -ms-flex-row-gap: 30px;
    grid-row-gap: 30px;
    row-gap: 30px;
    margin: 30px auto 30px auto;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

section .form-login {
    width: 100%;
}

section > span:first-child {
    font-size: var(--font-size-xl);
    height: 5rem;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    color: var(--color-text-primary);
    font-weight: bold;
    width: 100%;
}

section > span:first-child label {
    text-align: center;
}

section .recaptcha {
    width: auto;
    height: auto;
    margin: 3rem 0 3rem 0;
}

section .user-control {
    display: -ms-grid;
    display: grid;
    -ms-grid-rows: repeat(2, auto);
    grid-template-rows: repeat(2, auto);
    -ms-grid-columns: 20px repeat(2, 1fr);
    grid-template-columns: 20px repeat(2, 1fr);
    -ms-grid-column-gap: 5px;
    grid-column-gap: 5px;
    column-gap: 5px;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%;
    height: 80px;
    border-bottom: solid 1px var(--color-text-primary);
    color: var(--color-text-primary);
}

section .user-control .k-form-error.k-invalid-msg {
    -ms-grid-row: 1;
    grid-row: 1/2;
    -ms-grid-column: 3;
    -ms-grid-column-span: 1;
    grid-column: 3/-1;
}

section .user-control input,
section .user-control select {
    -ms-grid-row: 2;
    grid-row: 2/-1;
    -ms-grid-column: 2;
    -ms-grid-column-span: 2;
    grid-column: 2/-1;
}

section .user-control select {
    background: transparent;
    color: var(--color-text-primary);
    border: none;
    outline: none;
    font-size: var(--font-size-base);
    font-family: var(--font-family-base);
    cursor: pointer;
    padding: 0;
    height: 35px;
    width: 100%;
}

section .user-control select option {
    background-color: var(--color-bg-secondary);
    color: var(--color-text-primary);
    padding: 8px;
}

section .user-control .svg-inline--fa {
    -ms-grid-row: 2;
    grid-row: 2/-1;
    -ms-grid-column: 1;
    grid-column: 1/2;
}

section .user-hash {
    display: -ms-grid;
    display: grid;
    -ms-grid-rows: 1fr 10px;
    grid-template-rows: 1fr 10px;
    width: 100%;
    -ms-grid-row-gap: 10px;
    grid-row-gap: 10px;
    row-gap: 10px;
    cursor: pointer;
}

section .user-control > label {
    -ms-grid-row: 1;
    grid-row: 1/2;
    -ms-grid-column: 1;
    -ms-grid-column-span: 3;
    grid-column: 1/3;
    font-size: var(--font-size-sm);
}

section .user-control .svg-inline--fa {
    color: var(--color-text-primary);
    stroke: var(--color-text-primary);
    stroke-width: 20px;
    stroke-opacity: 0.7;
    font-size: 18px;
}

/* Clase para reemplazar :has(input:focus) */
section .user-control.input-focus {
    border-bottom: solid 1px var(--color-success);
}

section .button-login {
    width: 100%;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

section .button-login a {
    text-decoration: none;
}

section .button {
    height: var(--height-button);
    width: 100%;
    color: var(--color-text-primary);
    background-color: var(--color-primary);
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 20px;
    grid-template-columns: 1fr 20px;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0 15px 0 15px;
    border: 0;
    cursor: pointer;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

section .button > span:first-child {
    text-align: left;
}

section .reset-hash {
    position: relative;
    width: 100%;
    text-align: right;
    font-size: var(--font-size-xs);
    color: var(--color-text-primary);
}

button,
.k-button {
    padding: 0 10px 0 10px;
    border: 0;
    cursor: pointer;
    width: 122px;
    height: var(--height-button);
    -webkit-align-self: end;
    -ms-flex-item-align: end;
    align-self: end;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font-family: var(--font-family-base);
}

.btn-primary,
.btn-primary:hover {
    background-color: var(--color-primary);
    color: var(--color-text-primary);
}

.btn-danger,
.k-button .btn-danger:hover {
    background-color: var(--color-danger) !important;
    color: var(--color-text-primary);
}

.btn-secondary {
    background: var(--color-bg-transparent);
    color: var(--color-text-primary);
}

/* ============================================
   Kendo Window
   ============================================ */
.k-window {
    border-radius: 0;
    background: var(--color-bg-primary);
    color: var(--color-text-primary);
}

.k-window .k-window-content {
    width: 450px;
    margin: auto;
    text-align: center;
}

.k-window .k-window-title {
    font-size: 26px;
}

.k-window .k-window-titlebar {
    width: 90%;
    margin: auto;
    border-color: var(--color-border-primary);
}

/* Reglas para diálogos de Kendo definidas en base.css */

.k-window .k-window-titlebar-action {
    width: 30px;
    height: 30px;
}

.k-input-solid.k-invalid {
    border: 0;
}

/* Clase para reemplazar :has(.k-input-solid.k-invalid) */
.user-control.input-error {
    border-color: var(--kendo-color-error, #F43520);
    border-width: 1px;
}