body{
  background:#F8FAFC;
  font-family:Arial;
  color:#0F172A;
  margin:0;
}
/* LINKS */
a{color:#0F172A;text-decoration:none;font-weight:600;}
a:hover{text-decoration:underline;}
/* WRAPPER */
.auth-wrapper{max-width:950px;margin:auto;padding:30px 20px;}
/* GRID */
.login-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:25px;align-items:stretch;}
/* LOGIN PANEL */
.login-panel{background:white;border:1px solid #E2E8F0;border-radius:24px;padding:40px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,0.05);}
/* HEADER */
.login-header{margin-bottom:30px;}
.login-title{margin:0;font-size:36px;color:#0F172A;}
.login-subtitle{margin-top:10px;color:#64748B;font-size:15px;line-height:1.6;}
/* INPUTS */
.input-group{margin-bottom:18px;}
.input-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;}
.login-help{display:block;margin-top:7px;color:#64748B;font-size:12px;line-height:1.45;}
input{width:100%;padding:15px;border-radius:14px;border:1px solid #D1D5DB;box-sizing:border-box;font-size:15px;background:white;transition:0.2s;}
input:focus{outline:none;border-color:#0F172A;}
.password-field{position:relative;}
.password-field input{padding-right:54px;}
.password-visibility-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:40px;height:40px;margin:0;padding:9px;border:0;border-radius:10px;background:transparent;color:#64748B;display:grid;place-items:center;}
.password-visibility-toggle:hover{background:#F1F5F9;opacity:1;transform:translateY(-50%);}
.password-visibility-toggle:focus-visible{outline:2px solid #0F172A;outline-offset:1px;}
.password-visibility-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
/* BUTTON */
button{width:100%;padding:15px;border:none;border-radius:14px;background:#0F172A;color:white;font-size:15px;cursor:pointer;font-weight:700;transition:0.2s;margin-top:5px;position:relative;}
button:hover{opacity:0.9;transform:translateY(-1px);}
/* BOTON LOADING */
button.loading{pointer-events:none;opacity:0.9;}
.button-loader{width:18px;height:18px;border:2px solid rgba(255,255,255,0.3);border-top:2px solid white;border-radius:50%;animation:spin 0.7s linear infinite;display:inline-block;vertical-align:middle;margin-right:10px;}
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
/* MESSAGE */
#mensaje{margin-top:18px;text-align:center;color:#DC2626;font-size:14px;min-height:20px;}
.recovery-prompt{text-align:center;margin-top:4px;}
.recovery-prompt button{width:auto;margin:0;padding:5px 8px;background:transparent;color:#334155;font-size:13px;text-decoration:underline;}
.recovery-prompt button:hover{transform:none;opacity:1;color:#0F172A;}
.recovery-message{margin:10px 0 0;text-align:center;color:#166534;font-size:13px;line-height:1.5;}
.same-password-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #e2e8f0;border-radius:18px;background:#fff;color:#0f172a;box-shadow:0 24px 80px #0f172a40;}
.same-password-dialog::backdrop{background:#0f172a80;backdrop-filter:blur(3px);}
.same-password-content{padding:24px;}
.same-password-content h2{margin:0 0 10px;text-align:center;font-size:20px;line-height:1.3;}
.same-password-content p{margin:0 0 18px;text-align:center;color:#475569;font-size:14px;line-height:1.55;}
.same-password-actions{display:grid;gap:9px;}
.same-password-actions button{margin:0;}
.same-password-actions .secondary-action{background:#e2e8f0;color:#334155;}
/* INFO PANEL */
.info-panel{background:white;border:1px solid #E2E8F0;border-radius:24px;padding:35px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,0.05);}
.info-badge{display:inline-block;width:max-content;background:#0F172A;color:white;padding:8px 14px;border-radius:999px;font-size:12px;margin-bottom:20px;}
.info-title{margin:0;font-size:30px;line-height:1.2;}
.info-text{margin-top:16px;color:#64748B;font-size:15px;line-height:1.7;}
.info-points{margin-top:30px;display:grid;gap:14px;}
.info-card{background:#F8FAFC;border:1px solid #E2E8F0;border-radius:16px;padding:16px;}
.info-card-title{font-weight:700;margin-bottom:6px;}
.info-card-text{color:#64748B;font-size:14px;line-height:1.5;}
/* FOOTER */
/* MOBILE */
@media(max-width:900px){.login-grid{grid-template-columns:1fr;}.login-panel,.info-panel{padding:30px;}.login-title{font-size:30px;}.info-title{font-size:26px;}}

.auth-back { color:#36546c; display:inline-block; margin-bottom:12px; }
html[data-hv-theme="oscuro"] .auth-back { color:#d1e3f5; }
.auth-back:focus-visible { outline:3px solid #e88d44; outline-offset:3px; }
html[data-hv-theme="oscuro"] .login-panel a { color:#d1e3f5; }
