/* ===== Pantalla de acceso — La Última Agencia ===== */
body{margin:0}

.acceso-shell{display:flex;min-height:100vh;width:100%;font-family:'Nunito',sans-serif;background:#fdfcfa;position:relative}
.acceso-topbar{position:absolute;top:0;left:0;right:0;height:3px;background:#C0A152;z-index:2}
.d-none{display:none !important}

/* Panel de imagen */
.acceso-img{flex:0 0 58%;max-width:58%;position:relative;background-size:cover;background-position:center}
.acceso-img-overlay{position:absolute;inset:0;background:linear-gradient(to top, rgba(20,22,20,.62) 0%, rgba(20,22,20,.08) 45%, rgba(20,22,20,0) 65%)}
.acceso-quote{position:absolute;left:56px;right:56px;bottom:56px;color:#fff}
.acceso-quote-text{font-family:'Lora',serif;font-size:22px;font-weight:500;line-height:1.5;max-width:460px;text-shadow:0 1px 8px rgba(0,0,0,.25)}
.acceso-quote-bar{margin-top:14px;width:34px;height:3px;background:#C0A152}

/* Panel de formulario */
.acceso-form{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px;position:relative;overflow:hidden}
.acceso-blob-gold{position:absolute;width:420px;height:420px;border-radius:50%;background:#C0A152;opacity:.07;filter:blur(70px);top:-140px;right:-120px;pointer-events:none}
.acceso-blob-green{position:absolute;width:380px;height:380px;border-radius:50%;background:#4b5b54;opacity:.06;filter:blur(70px);bottom:-140px;left:-100px;pointer-events:none}
.acceso-card{position:relative;width:100%;max-width:380px;z-index:1}
.acceso-logo{height:42px;display:block;margin-bottom:40px}
.acceso-title{font-family:'Lora',serif;font-size:27px;font-weight:600;color:#242220;margin:0 0 8px;letter-spacing:-.3px}
.acceso-subtitle{font-size:14px;color:#6b7688;margin:0 0 32px;line-height:1.5}

/* Alertas */
.acceso-alert{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:11px 14px;border-radius:8px;margin-bottom:20px}
.acceso-alert svg{flex:none}
.acceso-alert.is-error{background:#fdf2f1;border:1px solid #f0cdc8;color:#b3261e}
.acceso-alert.is-success{background:rgba(75,91,84,.08);border:1px solid rgba(75,91,84,.35);color:#3d4a44}
.acceso-alert.is-note{align-items:flex-start;font-weight:400;line-height:1.5;padding:16px}

/* Campos */
.acceso-form-fields{display:flex;flex-direction:column;gap:18px}
.acceso-field-label-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.acceso-label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.3px;color:#5b6a86;margin-bottom:7px}
.acceso-forgot-link{font-size:12.5px;font-weight:600;color:#C0A152;text-decoration:none}
.acceso-forgot-link:hover{color:#a9824a}

.acceso-input-wrap{position:relative}
.acceso-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#98a2b3;pointer-events:none}
.acceso-input{width:100%;height:46px;box-sizing:border-box;padding:0 14px 0 42px;font-size:14px;font-family:inherit;color:#242220;background:#fff;border:1px solid #e6eaf1;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}
.acceso-input.has-toggle{padding-right:42px}
.acceso-input:focus{border-color:#c0a15259;box-shadow:0 0 0 3px #c0a1521f}
.acceso-input.is-invalid{border-color:#e7a19b !important}
.acceso-input::placeholder{color:#98a2b3}
.acceso-field-error{font-size:11px;color:#b3261e;margin:6px 2px 0}

.acceso-eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#98a2b3;cursor:pointer;border-radius:6px}
.acceso-eye-btn:hover{background:#f2f5f9;color:#5b6a86}

/* Recordarme */
.acceso-remember{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;margin-top:2px}
.acceso-checkbox{width:18px;height:18px;flex:none;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;background:#fff;border:1px solid #e6eaf1}
.acceso-checkbox.is-checked{background:#4b5b54;border-color:#4b5b54}
.acceso-checkbox svg{display:none}
.acceso-checkbox.is-checked svg{display:block}
.acceso-remember-label{font-size:13px;color:#5b6a86}

/* Botón */
.acceso-btn{margin-top:10px;height:48px;border:none;border-radius:8px;background:#4b5b54;color:#fff;font-size:14.5px;font-weight:700;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .15s;width:100%}
.acceso-btn:hover{background:#3d4a44}
.acceso-btn:disabled{opacity:.85;cursor:default}
.acceso-btn-spinner-row{display:inline-flex;align-items:center;gap:8px}
.acceso-btn-spinner{width:15px;height:15px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:acceso-spin .7s linear infinite}
@keyframes acceso-spin{to{transform:rotate(360deg)}}

.acceso-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#5b6a86;font-size:12.5px;font-weight:600;cursor:pointer;padding:0;margin-bottom:22px;font-family:inherit}
.acceso-back-btn:hover{color:#242220}

.acceso-footer{text-align:center;font-size:11.5px;color:#98a2b3;margin:32px 0 0}

/* ── Diálogo de segundo factor (passkey / TOTP) ────────────────────────────
   Lo pinta SweetAlert con el HTML que arma UsuariosController::acceso_login,
   que trae clases de Bootstrap (btn-primary, w-100, small, text-muted...) y
   .code-container de assets/less/style.css. Esta pantalla ya no carga ninguna
   de las dos hojas, así que las reglas que necesita ese HTML van aquí. */
.box_google_auth{display:flex;flex-direction:column;align-items:center}
.box_google_auth .w-100{width:100%}
.box_google_auth .mb-2{margin-bottom:8px}
.box_google_auth .small{font-size:12px}
.box_google_auth .text-muted{color:#6b7688}
.box_google_auth .text-danger{color:#b3261e}
.box_google_auth .btn-primary{height:48px;border:none;border-radius:8px;background:#4b5b54;color:#fff;font-size:14.5px;font-weight:700;font-family:inherit;cursor:pointer}
.box_google_auth .btn-primary:hover{background:#3d4a44}
.box_google_auth .btn-primary:disabled{opacity:.85;cursor:default}
.box_google_auth .code-container{display:flex;justify-content:center;gap:8px}
.box_google_auth .code-container input{width:44px;height:50px;text-align:center;font-size:1.5rem;font-family:inherit;color:#242220;background:none;border:0;border-bottom:2px solid #e6eaf1;outline:none;transition:border-color .2s ease}
.box_google_auth .code-container input:focus{border-color:#C0A152}

/* Móvil */
@media (max-width: 820px){
    .acceso-shell{flex-direction:column}
    .acceso-img{flex:0 0 220px;max-width:100%;width:100%;height:220px}
    .acceso-form{flex:1 1 auto;max-width:100%;margin-top:-22px;border-radius:20px 20px 0 0;position:relative;z-index:1;padding:32px 22px 36px}
    .acceso-quote{left:24px;right:24px;bottom:20px}
    .acceso-quote-text{font-size:16px}
    .acceso-logo{height:34px;margin-bottom:28px}
    .acceso-title{font-size:23px}
}
