:root {
    --home-text: #111744;
    --home-muted: #8E96BA;
    --home-primary: #6b8abc;
    --home-primary-2: #6F93F5;
    --home-soft: #A8BBF8;
    --home-border: #e6eaf2;
    --home-shadow: 0 14px 38px rgba(17, 23, 68, .08);
}

/* --------------------------------------------------------------------------
   LOGIN PÚBLICO
   -------------------------------------------------------------------------- */
.home-v2-login-body { margin:0; min-height:100vh; background:#eef1f7; overflow-x:hidden; }
.home-v2-login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr); }
.home-v2-login-visual { position:relative; min-height:100vh; overflow:hidden; background:linear-gradient(135deg,#0a1035 0%,#111744 42%,#6b8abc 100%); color:#fff; padding:46px 54px; }
.home-v2-grid { position:absolute; inset:0; opacity:.11; background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,black,transparent 82%); }
.home-v2-orb { position:absolute; border-radius:50%; filter:blur(2px); background:rgba(168,187,248,.22); }
.home-v2-orb-a { width:420px; height:420px; right:-120px; top:-80px; }
.home-v2-orb-b { width:300px; height:300px; left:-90px; bottom:60px; background:rgba(111,147,245,.18); }
.home-v2-brand-panel { position:relative; z-index:2; display:flex; align-items:center; gap:12px; }
.home-v2-brand-mark { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; font-weight:800; font-size:20px; color:#111744; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.16); }
.home-v2-brand-mark.small { width:34px; height:34px; border-radius:10px; font-size:15px; }
.home-v2-brand-name { font-size:18px; font-weight:700; }
.home-v2-brand-sub { font-size:12px; opacity:.72; }
.home-v2-login-copy { position:absolute; z-index:2; left:54px; right:54px; bottom:88px; max-width:760px; }
.home-v2-eyebrow { display:block; font-size:11px; font-weight:800; letter-spacing:.12em; color:#8E96BA; }
.home-v2-login-visual .home-v2-eyebrow { color:#dce4ff; }
.home-v2-login-copy h1 { font-size:clamp(38px,4vw,68px); line-height:1.03; margin:16px 0 18px; font-weight:750; letter-spacing:-.04em; }
.home-v2-login-copy p { max-width:700px; font-size:17px; line-height:1.7; color:rgba(255,255,255,.78); }
.home-v2-login-main { min-height:100vh; display:grid; place-items:center; padding:46px; background:linear-gradient(180deg,#f8f9fc,#eef1f7); }
.home-v2-login-card { width:min(100%,480px); background:rgba(255,255,255,.96); border:1px solid rgba(107,138,188,.12); border-radius:26px; padding:42px; box-shadow:0 22px 70px rgba(17,23,68,.12); }
.home-v2-login-card h2 { margin:8px 0 8px; font-size:32px; letter-spacing:-.02em; }
.home-v2-muted { color:#8E96BA; margin-bottom:28px; }
.home-v2-login-mobile-brand { display:none; align-items:center; gap:10px; margin-bottom:28px; }
.home-v2-input-wrap { position:relative; }
.home-v2-input-wrap > i { position:absolute; left:16px; top:50%; transform:translateY(-50%); color:#8E96BA; font-size:20px; z-index:2; }
.home-v2-input-wrap .form-control { min-height:52px; border-radius:14px; padding-left:46px; border-color:#dde3ee; box-shadow:none; }
.home-v2-input-wrap .form-control:focus { border-color:#6F93F5; box-shadow:0 0 0 4px rgba(111,147,245,.12); }
.home-v2-password-toggle { position:absolute; right:8px; top:50%; transform:translateY(-50%); border:0; background:transparent; color:#8E96BA; font-size:20px; padding:9px; }
.home-v2-btn-primary { min-height:52px; margin-top:18px; border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,#6b8abc,#6F93F5); display:flex; justify-content:center; align-items:center; gap:8px; font-weight:700; box-shadow:0 10px 24px rgba(111,147,245,.24); }
.home-v2-btn-primary:hover { color:#fff; transform:translateY(-1px); }
.home-v2-form-message { min-height:22px; padding-top:8px; font-size:13px; }
.home-v2-form-message.error { color:#d9534f; }
.home-v2-form-message.success { color:#198754; }
.home-v2-login-footer { margin-top:32px; padding-top:20px; border-top:1px solid #edf0f5; display:flex; justify-content:space-between; gap:16px; font-size:11px; color:#8E96BA; }

/* --------------------------------------------------------------------------
   HOME AUTENTICADO
   IMPORTANTE: no redefine .vertical-menu, #page-topbar, .main-content ni body.
   El shell completo pertenece a hds.php/vm.php/app.min.css.
   -------------------------------------------------------------------------- */
.home-dashboard-welcome {
    min-height: 138px;
    border-radius: 16px;
    background: linear-gradient(118deg, #111744 0%, #6b8abc 100%);
    overflow: hidden;
    box-shadow: var(--home-shadow);
    position: relative;
}
.home-dashboard-welcome::after {
    content: "";
    position: absolute;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    right: -65px;
    top: -145px;
    background: rgba(168,187,248,.18);
}
.home-dashboard-welcome .card-body { position: relative; z-index: 2; padding: 24px 28px; }
.home-dashboard-welcome h2 { font-size: 26px; font-weight: 700; }
.home-dashboard-profile {
    padding: 9px 12px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.08);
    border-radius: 12px;
    backdrop-filter: blur(6px);
}
.home-dashboard-profile img {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px;
    max-width: 42px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.5);
}
.home-dashboard-count { background: #eef3ff; color: #6b8abc; font-weight: 700; }
.home-dashboard-app {
    border: 1px solid rgba(142,150,186,.18);
    border-radius: 14px;
    box-shadow: 0 7px 22px rgba(17,23,68,.035);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.home-dashboard-app:hover {
    transform: translateY(-2px);
    border-color: #A8BBF8;
    box-shadow: 0 12px 28px rgba(17,23,68,.08);
}
.home-dashboard-app-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    background: rgba(111,147,245,.12);
    color: #6F93F5;
    font-size: 21px;
}
.home-dashboard-app h5 { color: #111744; }
.home-dashboard-app-arrow { font-size: 22px; color: #A8BBF8; }
.home-dashboard-quick {
    min-height: 72px;
    border: 1px solid #edf0f5;
    border-radius: 12px;
    padding: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #111744;
    font-weight: 600;
    transition: .15s ease;
}
.home-dashboard-quick:hover { color: #111744; border-color: #A8BBF8; background: #f8faff; }
.home-dashboard-quick i { font-size: 21px; color: #6F93F5; }
.home-dashboard-session-row {
    min-height: 44px;
    padding: 10px 0;
    border-bottom: 1px solid #eff2f6;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    font-size: 12px;
}
.home-dashboard-session-row > span:first-child { color: #8E96BA; }

[data-layout-mode="dark"] .home-dashboard-app h5,
[data-layout-mode="dark"] .home-dashboard-quick { color: #e9edf7; }
[data-layout-mode="dark"] .home-dashboard-quick:hover { color: #fff; background: rgba(168,187,248,.06); }

@media (max-width: 1100px) {
    .home-v2-login-shell { grid-template-columns: 1fr; }
    .home-v2-login-visual { display: none; }
    .home-v2-login-mobile-brand { display: flex; }
}

@media (max-width: 768px) {
    .home-v2-login-main { padding: 20px; }
    .home-v2-login-card { padding: 28px 22px; border-radius: 20px; }
    .home-v2-login-footer { flex-direction: column; }
    .home-dashboard-welcome .card-body { padding: 20px; }
    .home-dashboard-welcome h2 { font-size: 22px; }
}

/* ========================================================================== 
   LOGIN V2.3 - TARJETA CENTRAL ADMINISTRABLE
   ========================================================================== */
.home-v2-login-body{margin:0;min-height:100vh;background:#111744;overflow-x:hidden}
.login-admin-shell{position:relative;min-height:100vh;background-position:center;background-size:cover;background-repeat:no-repeat;color:#111827}
.login-admin-shell::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,23,68,.08),rgba(17,23,68,.16));pointer-events:none}
.login-admin-noise{position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.28) 0 1px,transparent 1.5px),radial-gradient(circle at 70% 60%,rgba(255,255,255,.20) 0 1px,transparent 1.4px);background-size:210px 210px,250px 250px}
.login-admin-stage{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:34px 20px}
.login-admin-card{width:min(100%,470px);padding:38px 40px 30px;border-radius:22px;background:rgba(255,255,255,var(--login-card-opacity,.94));backdrop-filter:blur(var(--login-card-blur,12px));-webkit-backdrop-filter:blur(var(--login-card-blur,12px));border:1px solid rgba(255,255,255,.46);box-shadow:0 28px 70px rgba(6,12,36,.30)}
.login-admin-brand-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}
.login-admin-logo{display:block;max-width:190px;max-height:54px;object-fit:contain;object-position:left center}
.login-admin-badge{font-size:10px;line-height:1;padding:6px 9px;border-radius:999px;color:#3d7de2;background:rgba(61,125,226,.09);border:1px solid rgba(61,125,226,.18);white-space:nowrap}
.login-admin-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.11em;color:#3978dc;margin-bottom:8px}
.login-admin-card h1{font-size:31px;line-height:1.05;font-weight:800;letter-spacing:-.03em;margin:0 0 10px;color:#111827}
.login-admin-subtitle{font-size:13px;line-height:1.55;color:#7b8496;margin:0 0 28px}
.login-admin-card .form-label{font-size:11px;font-weight:700;color:#5f6877;margin-bottom:7px}
.login-admin-input-wrap{position:relative}
.login-admin-input-wrap>i{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:20px;color:#95a0b2;z-index:2}
.login-admin-input-wrap .form-control{height:52px;border:1px solid #dce2eb;border-radius:11px;padding-left:45px;padding-right:44px;background:rgba(255,255,255,.82);font-size:13px;color:#232b3a;box-shadow:none}
.login-admin-input-wrap .form-control:focus,.login-admin-captcha .form-control:focus{border-color:#77a5ef;box-shadow:0 0 0 3px rgba(61,125,226,.10);background:#fff}
.login-admin-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:#8b95a6;display:grid;place-items:center;font-size:19px}
.login-admin-password-toggle:hover{background:#f0f3f8;color:#3d7de2}
.login-admin-captcha{margin-top:2px}
.login-admin-captcha-row{display:grid;grid-template-columns:1fr 72px;gap:8px;align-items:stretch}
.login-admin-captcha-image-wrap{height:68px;border-radius:10px;overflow:hidden;background:#f6f8fc;border:1px solid #dce2eb}
.login-admin-captcha-image-wrap img{display:block;width:100%;height:100%;object-fit:cover}
.login-admin-captcha-refresh{border-radius:10px;font-size:12px;font-weight:700;color:#263049;background:rgba(255,255,255,.78);border:1px solid #dce2eb}
.login-admin-captcha .form-control{height:44px;border:1px solid #dce2eb;border-radius:9px;background:rgba(255,255,255,.82);font-size:12px;letter-spacing:.04em;box-shadow:none}
.login-admin-captcha small{font-size:10px;line-height:1.45}
.login-admin-submit{height:50px;margin-top:16px;border:0;border-radius:10px;background:#3d7de2;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 10px 24px rgba(61,125,226,.23)}
.login-admin-submit:hover,.login-admin-submit:focus{background:#316fd1;color:#fff}
.login-admin-submit:disabled{opacity:.72}
.login-admin-footer{margin-top:26px;padding-top:18px;border-top:1px solid rgba(130,141,160,.15);display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;color:#7b8496}
.login-admin-footer strong{font-size:11px;color:#2f3745}
.login-admin-footer span{font-size:9px;line-height:1.45}
.login-admin-footer small{font-size:9px;margin-top:10px}
.home-v2-form-message{min-height:4px;padding-top:2px;font-size:12px}
.home-v2-form-message.error{color:#c94d4d}.home-v2-form-message.success{color:#158253}
@media (max-width:575.98px){.login-admin-stage{padding:18px 12px}.login-admin-card{padding:28px 20px 24px;border-radius:18px}.login-admin-logo{max-width:160px}.login-admin-brand-row{margin-bottom:22px}.login-admin-card h1{font-size:27px}.login-admin-captcha-row{grid-template-columns:1fr 64px}}
.login-preview-banner{position:fixed;z-index:20;top:14px;left:50%;transform:translateX(-50%);padding:8px 14px;border-radius:999px;background:rgba(17,23,68,.88);color:#fff;font-size:11px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.2);backdrop-filter:blur(8px)}

/* ========================================================================== 
   V2.5 - ACCESO, ALTA Y RECUPERACION DE CUENTAS
   ========================================================================== */
.login-admin-brand-row{justify-content:flex-start;margin-bottom:24px}
.login-admin-card h1{margin-bottom:22px}
.login-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.login-account-actions a{min-height:42px;border:1px solid #dce2eb;border-radius:10px;background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;gap:7px;color:#4b5870;font-size:11px;font-weight:700;text-decoration:none;transition:.15s ease}
.login-account-actions a:hover{border-color:#a8bbf8;background:#f8faff;color:#3d7de2}
.login-account-actions a[aria-disabled="true"]{pointer-events:none;opacity:.55}
.login-account-actions i{font-size:17px}

.account-card{width:min(100%,520px)}
.account-brand-row{justify-content:space-between}
.account-back-link{display:inline-flex;align-items:center;gap:6px;color:#667085;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}
.account-back-link:hover{color:#3d7de2}
.account-helper{margin:-8px 0 22px;color:#7b8496;font-size:12px;line-height:1.55}
.account-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 22px}
.account-steps span{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:9px;background:rgba(238,241,246,.82);color:#98a2b3;font-size:10px;font-weight:700;text-align:center}
.account-steps span b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#dfe4ec;color:#667085;font-size:10px}
.account-steps span.active{background:#edf4ff;color:#3d7de2}
.account-steps span.active b{background:#3d7de2;color:#fff}
.account-step-pane[hidden]{display:none!important}
.account-email-note{display:flex;align-items:center;gap:10px;padding:11px 12px;margin-bottom:16px;border:1px solid #dce7f8;border-radius:10px;background:#f4f8ff;color:#4b5870;font-size:11px;line-height:1.45}
.account-email-note i{font-size:20px;color:#3d7de2}
.account-otp-input{height:54px;border-radius:11px!important;text-align:center;font-size:24px!important;font-weight:800;letter-spacing:.34em;padding-left:.34em;border-color:#dce2eb}
.account-policy{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-radius:9px;background:#f8f9fc;color:#7b8496;font-size:10px;line-height:1.5}
.account-policy i{font-size:16px;color:#6f93f5;margin-top:1px}
.account-secondary-action{margin-top:7px;color:#667085;text-decoration:none;font-size:11px;font-weight:700}
.account-secondary-action:hover{color:#3d7de2}
.account-footer{margin-top:22px}

@media(max-width:575.98px){
  .login-account-actions{grid-template-columns:1fr}
  .account-steps span{font-size:0}
  .account-steps span b{font-size:10px}
  .account-brand-row{align-items:flex-start}
}

/* V2.5.1 - Password UX */
.account-password-wrap{position:relative}
.account-password-wrap .form-control{padding-right:48px!important}
.account-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:#8b95a6;display:grid;place-items:center;font-size:19px;z-index:3}
.account-password-toggle:hover{background:#eef3fb;color:#3d7de2}
.account-password-meter-track{height:6px;border-radius:999px;background:#e8edf5;overflow:hidden}
.account-password-meter-track span{display:block;height:100%;width:0;border-radius:999px;transition:width .2s ease,background-color .2s ease}
.account-password-meter-track span[data-level="1"]{background:#d9534f}
.account-password-meter-track span[data-level="2"]{background:#e49b39}
.account-password-meter-track span[data-level="3"]{background:#d4b236}
.account-password-meter-track span[data-level="4"]{background:#5b8def}
.account-password-meter-track span[data-level="5"]{background:#2e9b70}
.account-password-strength{font-weight:700;color:#7b8496}
.account-password-strength[data-level="1"]{color:#c83d39}
.account-password-strength[data-level="2"]{color:#b97622}
.account-password-strength[data-level="3"]{color:#9d8124}
.account-password-strength[data-level="4"]{color:#3d70cc}
.account-password-strength[data-level="5"]{color:#237a57}
.account-password-match{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;min-height:20px}
.account-password-match.neutral{color:#7b8496}
.account-password-match.match{color:#237a57}
.account-password-match.mismatch{color:#c83d39}
.account-policy-list{padding-left:18px}
.account-policy-list li{color:#7b8496;transition:color .15s ease}
.account-policy-list li.passed{color:#237a57}
.account-policy-list li.passed::marker{content:'✓  '}
