/* Pantalla de acceso. Compatible con navegadores antiguos (sin variables CSS ni grid). */
* { -moz-box-sizing: border-box; box-sizing: border-box; }
html, body { margin: 0; padding: 0; min-height: 100%; }
body { font-family: "Montserrat", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 15px; color: #1f2a37; background: #f4f8ff; -webkit-font-smoothing: antialiased; }

.acc { display: -moz-box; display: -webkit-box; display: -ms-flexbox; display: flex; min-height: 100vh; }

/* Panel de marca */
.acc-marca { -moz-box-flex: 1; -webkit-box-flex: 1; -ms-flex: 1 1 46%; flex: 1 1 46%; position: relative; overflow: hidden; color: #fff; padding: 48px 56px;
    display: -moz-box; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
    background: #0b2d5b; background: -webkit-linear-gradient(135deg, #0b2d5b 0%, #0a4aa6 55%, #007aff 100%); background: linear-gradient(135deg, #0b2d5b 0%, #0a4aa6 55%, #007aff 100%); }
.acc-marca:before, .acc-marca:after { content: ""; position: absolute; border-radius: 50%; background: rgba(0, 194, 232, .10); }
.acc-marca:before { width: 420px; height: 420px; right: -140px; top: -120px; }
.acc-marca:after { width: 300px; height: 300px; left: -100px; bottom: -110px; }
.acc-logo { position: relative; z-index: 1; width: 132px; height: 132px; border-radius: 26px; background: #fff; padding: 12px; margin-bottom: 28px; text-align: center; line-height: 108px; box-shadow: 0 10px 30px rgba(0, 0, 0, .22); }
.acc-logo img { max-width: 108px; max-height: 108px; vertical-align: middle; }
.acc-marca h1 { position: relative; z-index: 1; margin: 0 0 10px; font-size: 28px; line-height: 1.2; font-weight: 800; letter-spacing: -.01em; }
.acc-marca p { position: relative; z-index: 1; margin: 0 0 6px; font-size: 16px; color: rgba(255, 255, 255, .86); max-width: 420px; }
.acc-lista { position: relative; z-index: 1; list-style: none; margin: 26px 0 0; padding: 0; }
.acc-lista li { margin: 0 0 10px; padding-left: 30px; position: relative; color: rgba(255, 255, 255, .92); font-size: 14.5px; }
.acc-lista li:before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: rgba(34, 214, 143, .35); }
.acc-lista li:after { content: ""; position: absolute; left: 6px; top: 6px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); }

/* Panel del formulario */
.acc-form { -moz-box-flex: 1; -webkit-box-flex: 1; -ms-flex: 1 1 54%; flex: 1 1 54%; display: -moz-box; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 32px 24px; }
.acc-caja { width: 100%; max-width: 400px; }
.acc-caja h2 { margin: 0 0 6px; font-size: 26px; font-weight: 800; color: #0b2d5b; letter-spacing: -.01em; }
.acc-caja .sub { margin: 0 0 26px; color: #6b7785; }

.acc-campo { margin-bottom: 18px; }
.acc-campo label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: #374151; }
.acc-entrada { position: relative; }
.acc-entrada input { width: 100%; height: 46px; padding: 0 44px 0 42px; font-size: 15px; font-family: inherit; color: #111827; background: #fff; border: 1px solid #c4d2e6; border-radius: 12px; outline: none;
    -webkit-transition: border-color .15s, box-shadow .15s; transition: border-color .15s, box-shadow .15s; }
.acc-entrada input:focus { border-color: #007aff; box-shadow: 0 0 0 3px rgba(0, 122, 255, .20); }
.acc-entrada .ico { position: absolute; left: 13px; top: 13px; width: 20px; height: 20px; fill: #8a94a3; pointer-events: none; }
.acc-ver { position: absolute; right: 4px; top: 4px; width: 38px; height: 38px; border: 0; background: transparent; cursor: pointer; border-radius: 7px; padding: 0; }
.acc-ver:hover { background: #eef2f7; }
.acc-ver svg { width: 20px; height: 20px; fill: #6b7785; margin-top: 2px; }
.acc-aviso-mayus { display: none; margin-top: 6px; font-size: 12.5px; color: #b45309; }

.acc-error { margin: 0 0 18px; padding: 11px 14px; border-radius: 9px; background: #fde8e8; border: 1px solid #f5b5b5; color: #9b1c1c; font-size: 14px; }

.acc-boton { display: block; width: 100%; height: 52px; margin-top: 6px; font-family: inherit; font-size: 16px; font-weight: 700; color: #fff; cursor: pointer; border: 0; border-radius: 26px; background: #007aff; background: -webkit-linear-gradient(left, #007aff, #22d68f); background: linear-gradient(90deg, #007aff 0%, #00a8e8 55%, #22d68f 100%); box-shadow: 0 8px 20px rgba(0, 122, 255, .30);
    -webkit-transition: background .15s; transition: background .15s; }
.acc-boton:hover { background: #0062cc; background: linear-gradient(90deg, #0062cc 0%, #0090d0 55%, #1bbd7c 100%); }
.acc-boton:active { background: #004fa8; box-shadow: 0 3px 8px rgba(0, 122, 255, .30); }
.acc-boton:focus-visible, .acc-ver:focus-visible { outline: 3px solid #00c2e8; outline-offset: 2px; }
.acc-boton[disabled] { background: #9cc4ff; box-shadow: none; cursor: default; }

.acc-pie { margin-top: 34px; text-align: center; font-size: 12.5px; color: #6b7785; }
.acc-pie img { display: block; height: auto; margin: 0 auto 8px; }
.acc-pie span, .acc-pie a { display: block; margin-top: 2px; }
.acc-pie a { color: #0062cc; text-decoration: none; }
.acc-pie a:hover { text-decoration: underline; }

/* Móvil y pantallas angostas */
@media (max-width: 860px) {
    .acc { display: block; min-height: 0; }
    .acc-marca { padding: 30px 24px 26px; text-align: center; }
    .acc-marca:before, .acc-marca:after { display: none; }
    .acc-logo { width: 92px; height: 92px; line-height: 70px; margin: 0 auto 14px; border-radius: 20px; padding: 10px; }
    .acc-logo img { max-width: 72px; max-height: 72px; }
    .acc-marca h1 { font-size: 21px; }
    .acc-marca p, .acc-lista { display: none; }
    .acc-form { display: block; padding: 28px 22px 34px; }
    .acc-caja { margin: 0 auto; }
    .acc-entrada input { height: 52px; font-size: 16px; padding-left: 46px; }
    .acc-entrada .ico { top: 16px; }
    .acc-ver { top: 6px; width: 40px; height: 40px; }
}
