/* ===== Pantallas de acceso (login / registro) ===== */
.au-page { min-height:100vh; display:grid; grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr); background:#f5f8fc; }

/* Panel de marca */
.au-brand { position:relative; display:flex; flex-direction:column; justify-content:space-between; padding:2.5rem 3rem; overflow:hidden; color:#fff; background:linear-gradient(135deg, #1b3fe0 0%, #2b6ef2 50%, #7ec8f2 100%); }
.au-brand::before { content:""; position:absolute; right:-90px; top:-100px; width:340px; height:340px; border-radius:50%; background:rgba(255,255,255,.12); }
.au-brand::after { content:""; position:absolute; left:-80px; bottom:-120px; width:280px; height:280px; border-radius:50%; background:rgba(255,255,255,.09); }
.au-brand > * { position:relative; z-index:1; }
.au-logo img { height:52px; width:auto; display:block; object-fit:contain; filter:brightness(0) invert(1); }
.au-brand h1 { margin:0 0 .8rem; font-size:2.4rem; font-weight:800; line-height:1.15; }
.au-brand p { max-width:470px; margin:0; font-size:1rem; line-height:1.6; opacity:.93; }
.au-points { display:flex; flex-direction:column; gap:.9rem; margin:1.8rem 0 0; padding:0; list-style:none; }
.au-points li { display:flex; align-items:center; gap:.8rem; font-size:.92rem; }
.au-point-ico { width:36px; height:36px; display:flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:11px; background:rgba(255,255,255,.2); }
.au-foot { font-size:.75rem; opacity:.8; }

/* Formulario */
.au-main { display:flex; align-items:center; justify-content:center; padding:2rem 1.2rem; }
.au-card { width:100%; max-width:440px; }
.au-mlogo { display:none; margin-bottom:1.6rem; }
.au-mlogo img { height:46px; width:auto; display:block; object-fit:contain; }
.au-card h2 { margin:0 0 .3rem; font-size:1.65rem; font-weight:800; color:#1e293b; }
.au-sub { margin:0 0 1.6rem; color:#64748b; font-size:.92rem; }

.au-field { margin-bottom:1.1rem; }
.au-field > label { display:block; margin-bottom:.4rem; color:#334155; font-size:.8rem; font-weight:700; }
.au-wrap { position:relative; }
.au-wrap > svg.lead { position:absolute; left:.95rem; top:50%; transform:translateY(-50%); pointer-events:none; }
.au-input { width:100%; height:48px; padding:0 .95rem 0 2.8rem; border:1.5px solid #dbe4f0; border-radius:12px; background:#fff; color:#1e293b; font-size:.92rem; transition:border-color .15s, box-shadow .15s; }
.au-input.has-eye { padding-right:2.9rem; }
.au-input::placeholder { color:#a0aec0; }
.au-input:hover { border-color:#b9d0f3; }
.au-input:focus { outline:0; border-color:#1f66ff; box-shadow:0 0 0 .25rem rgba(31,102,255,.14); }
.au-eye { position:absolute; top:50%; right:.45rem; width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; transform:translateY(-50%); border:0; border-radius:9px; background:transparent; color:#94a3b8; cursor:pointer; transition:background .15s, color .15s; }
.au-eye:hover { background:#eef2f7; color:#1f66ff; }
.au-hint { margin-top:.35rem; color:#64748b; font-size:.74rem; }
.au-meter { height:6px; margin-top:.55rem; overflow:hidden; border-radius:999px; background:#e2e8f0; }
.au-meter i { display:block; width:0; height:100%; border-radius:999px; transition:width .2s, background .2s; }

.au-btn { width:100%; height:50px; margin-top:.4rem; border:0; border-radius:12px; background:linear-gradient(135deg, #1f66ff 0%, #3b82f6 100%); color:#fff; font-size:.95rem; font-weight:700; cursor:pointer; box-shadow:0 8px 20px rgba(31,102,255,.3); transition:transform .1s, box-shadow .15s; }
.au-btn:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 10px 24px rgba(31,102,255,.4); }
.au-btn:disabled { opacity:.65; cursor:wait; }
.au-btn--link { display:inline-flex; align-items:center; justify-content:center; width:auto; padding:0 1.6rem; text-decoration:none; }

.au-msg { display:none; margin-top:1rem; padding:.7rem .95rem; border-left:4px solid #e53e3e; border-radius:12px; background:#fff1f1; color:#b91c1c; font-size:.84rem; }
.au-msg.show { display:block; }
.au-alt { margin-top:1.5rem; text-align:center; color:#64748b; font-size:.88rem; }
.au-alt a { color:#1f66ff; font-weight:700; text-decoration:none; }
.au-alt a:hover { text-decoration:underline; }

/* Confirmación */
.au-ok { display:none; text-align:center; padding:1rem 0; }
.au-ok.show { display:block; }
.au-ok-ico { width:68px; height:68px; display:flex; align-items:center; justify-content:center; margin:0 auto 1.1rem; border-radius:50%; background:#e3f7ea; color:#16a34a; }
.au-ok h2 { margin-bottom:.5rem; }
.au-ok p { margin:0 0 1.4rem; color:#64748b; line-height:1.6; }

@media (max-width:991.98px) {
    .au-page { grid-template-columns:1fr; }
    .au-brand { display:none; }
    .au-mlogo { display:block; }
}


/* ===== Login: marca de agua, características y slider ===== */
.au-brand > .au-mark { position:absolute; right:-30px; top:90px; z-index:0; width:230px; height:auto; opacity:.5; pointer-events:none; filter:drop-shadow(0 12px 24px rgba(8,30,90,.28)); animation:au-float 6s ease-in-out infinite; }
@keyframes au-float { 0%, 100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
.au-points li strong { display:block; font-size:.95rem; }
.au-points li small { font-size:.8rem; opacity:.85; }

.au-slider-wrap { position:relative; height:46px; margin:0 0 1.1rem; }
.au-slider { -webkit-appearance:none; appearance:none; display:block; width:100%; height:46px; margin:0; border:0; border-radius:999px; background:linear-gradient(to right, #1f66ff 0%, #6adfe2 0%, #e5e7eb 0%, #e5e7eb 100%); outline:0; cursor:pointer; }
.au-slider::-webkit-slider-runnable-track { height:46px; border-radius:999px; background:transparent; }
.au-slider::-moz-range-track { height:46px; border-radius:999px; background:transparent; }
.au-slider::-webkit-slider-thumb { -webkit-appearance:none; width:42px; height:42px; margin-top:2px; border:0; border-radius:50%; box-shadow:0 2px 8px rgba(15,23,42,.3); cursor:grab;
    background:#fff no-repeat center / 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f66ff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E"); }
.au-slider::-moz-range-thumb { width:42px; height:42px; border:0; border-radius:50%; box-shadow:0 2px 8px rgba(15,23,42,.3); cursor:grab;
    background:#fff no-repeat center / 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f66ff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E"); }
.au-slider:focus-visible { box-shadow:0 0 0 .25rem rgba(31,102,255,.2); }
.au-slider-hint { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding-left:30px; color:#64748b; font-size:.82rem; font-weight:600; pointer-events:none; transition:color .2s; }
.au-slider-wrap.is-open .au-slider-hint { color:#fff; }


