/* ═══════════════════════════════════════════
   ISFIS Auth CSS v1.3 — 100% Responsive
   Breakpoints: 900px · 768px · 480px · 360px
   ═══════════════════════════════════════════ */

.isfis-login-wrap {
    display:flex; align-items:center; justify-content:center;
    padding:2rem 1rem; min-height:400px;
    box-sizing:border-box; width:100%;
}
.isfis-login-card {
    background:#fff; border:1px solid #e5e7eb; border-radius:20px;
    padding:2.8rem 2.2rem; max-width:420px; width:100%;
    box-shadow:0 4px 32px rgba(15,37,87,.10); box-sizing:border-box;
}
.isfis-login-header { text-align:center; margin-bottom:1.8rem; }
.isfis-login-logo { margin-bottom:.8rem; }
.isfis-login-logo-text { font-size:1.6rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:#0f2557; }
.isfis-login-dot { color:#d9202e; }
.isfis-login-title { font-size:1.3rem!important; font-weight:700!important; color:#0f2557!important; margin:0 0 .3rem!important; line-height:1.2!important; }
.isfis-login-sub { font-size:.82rem; color:#888; margin:0; }
.isfis-login-error {
    background:#fee2e2; border:1px solid #fca5a5; border-radius:10px;
    padding:.75rem 1rem; margin-bottom:1.2rem;
    display:flex; align-items:flex-start; gap:8px;
    font-size:.88rem; color:#991b1b; line-height:1.5;
}
.isfis-login-error-icon { font-size:1rem; flex-shrink:0; margin-top:1px; }
.isfis-login-field { margin-bottom:1.1rem; }
.isfis-login-label { display:block; font-size:.84rem; font-weight:600; color:#374151; margin-bottom:.4rem; }
.isfis-login-input-wrap { position:relative; display:flex; align-items:center; }
.isfis-login-input-icon { position:absolute; left:12px; font-size:.95rem; pointer-events:none; z-index:1; line-height:1; }
.isfis-login-input {
    width:100%!important; padding:11px 44px 11px 38px!important;
    border:1.5px solid #d1d5db!important; border-radius:10px!important;
    font-size:.92rem!important; color:#111!important; background:#fff!important;
    outline:none!important; box-shadow:none!important; transition:border-color .2s!important;
    box-sizing:border-box!important; -webkit-appearance:none;
}
.isfis-login-input:focus { border-color:#0f2557!important; box-shadow:0 0 0 3px rgba(15,37,87,.08)!important; }
.isfis-login-toggle-pass {
    position:absolute; right:10px; background:transparent!important; border:none!important;
    cursor:pointer!important; font-size:.9rem!important; padding:6px!important;
    color:#888!important; box-shadow:none!important; min-height:unset!important;
    line-height:1!important; -webkit-tap-highlight-color:transparent;
}
.isfis-login-toggle-pass:hover { color:#0f2557!important; }
.isfis-login-field-error { display:block; font-size:.78rem; color:#dc2626; margin-top:.3rem; min-height:1em; line-height:1.4; }
.isfis-login-options { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.4rem; flex-wrap:wrap; gap:.6rem; }
.isfis-login-remember { display:flex; align-items:center; gap:7px; font-size:.84rem; color:#555; cursor:pointer; user-select:none; -webkit-user-select:none; }
.isfis-login-remember input[type="checkbox"] { width:16px; height:16px; accent-color:#0f2557; cursor:pointer; flex-shrink:0; }
.isfis-login-forgot { font-size:.82rem; color:#0f2557; text-decoration:none; }
.isfis-login-forgot:hover { text-decoration:underline; }
.isfis-login-btn {
    width:100%!important; padding:13px!important;
    background:linear-gradient(135deg,#0f2557,#1a3a8f)!important;
    color:#fff!important; border:none!important; border-radius:10px!important;
    font-size:1rem!important; font-weight:700!important; cursor:pointer!important;
    transition:all .2s!important; letter-spacing:.03em!important;
    display:flex!important; align-items:center!important; justify-content:center!important;
    gap:8px!important; min-height:48px!important;
    -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.isfis-login-btn:hover  { opacity:.9; transform:translateY(-1px); }
.isfis-login-btn:active { transform:translateY(0); }
.isfis-login-btn:disabled { opacity:.7; cursor:not-allowed!important; transform:none!important; }
.isfis-login-footer { text-align:center; font-size:.74rem; color:#aaa; margin-top:1.6rem; }

/* ── Barra de sesión ── */
.isfis-session-bar {
    background:#0f2557; padding:10px 16px;
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:.5rem;
}
.isfis-session-info { display:flex; align-items:center; gap:8px; font-size:.82rem; color:rgba(255,255,255,.8); flex-wrap:wrap; }
.isfis-session-user { font-weight:700; color:#f0b429; }
.isfis-session-rol { background:rgba(255,255,255,.12); border-radius:20px; padding:2px 10px; font-size:.74rem; color:rgba(255,255,255,.7); }
.isfis-logout-btn {
    background:rgba(217,32,46,.9)!important; color:#fff!important; border:none!important;
    border-radius:8px!important; padding:7px 16px!important; font-size:.82rem!important;
    font-weight:600!important; cursor:pointer!important; transition:all .2s!important;
    white-space:nowrap; -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.isfis-logout-btn:hover { background:#c8102e!important; }

/* ── Admin: grid usuarios ── */
.isfis-users-grid { display:grid; grid-template-columns:380px 1fr; gap:1.4rem; margin-top:.5rem; align-items:start; }
.isfis-panel-acceso-denegado { background:#fee2e2; border:1px solid #fca5a5; border-radius:10px; padding:1.2rem 1.5rem; color:#991b1b; font-size:.95rem; }

/* ════════════ RESPONSIVE ════════════ */
@media (max-width:900px) {
    .isfis-users-grid { grid-template-columns:1fr; }
}
@media (max-width:768px) {
    .isfis-login-card { padding:2rem 1.5rem; border-radius:16px; }
    .isfis-login-title { font-size:1.15rem!important; }
    .isfis-session-bar { padding:8px 12px; }
    .isfis-session-info { font-size:.76rem; }
    .isfis-session-rol { display:none; }
}
@media (max-width:480px) {
    .isfis-login-wrap { padding:.75rem; min-height:auto; align-items:flex-start; padding-top:1.5rem; }
    .isfis-login-card { padding:1.8rem 1.1rem; border-radius:14px; max-width:100%; box-shadow:none; }
    .isfis-login-logo-text { font-size:1.3rem; }
    .isfis-login-title { font-size:1.05rem!important; }
    .isfis-login-options { flex-direction:column; align-items:flex-start; gap:.5rem; }
    .isfis-logout-btn { padding:5px 10px!important; font-size:.76rem!important; }
}
@media (max-width:360px) {
    .isfis-login-card { padding:1.4rem .85rem; }
    .isfis-login-input { font-size:.86rem!important; padding:10px 40px 10px 34px!important; }
    .isfis-login-btn { font-size:.9rem!important; padding:11px!important; }
}
