:root {
  --dh-bg: #f2f4f7;
  --dh-surface: #ffffff;
  --dh-panel: #eef1f5;
  --dh-line: #d9e0e7;
  --dh-text: #1f2a3a;
  --dh-muted: #617086;
  --dh-accent: #f34f57;
  --dh-accent-soft: #f9e1e3;
  --dh-green: #2bbf83;
  --dh-radius: 14px;
}

html, body { background: var(--dh-bg); color: var(--dh-text); }

/* LOGIN / RECUPERACIÓN */
.login-page { background: var(--dh-bg) !important; }
.login-card {
  background: #eef1f5 !important;
  border: 0 !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}
.login-card .eyebrow { display:none !important; }
.login-card h1 { color: var(--dh-text) !important; letter-spacing: -.025em; }
.login-card .subtitle { color: var(--dh-muted) !important; }
.login-form input {
  min-height: 52px !important;
  border: 1px solid #cfd8e3 !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--dh-text) !important;
}
.login-form input:focus { border-color: var(--dh-accent) !important; box-shadow: 0 0 0 3px rgba(243,79,87,.10) !important; }
.login-button {
  min-height: 49px !important;
  border-radius: 9px !important;
  background: var(--dh-accent) !important;
  box-shadow: none !important;
}
.login-button:hover { background: #e9434b !important; }
.webauthn-login-button, .biometric-login-button {
  min-height: 48px !important;
  border: 1px solid #d4dce5 !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: var(--dh-text) !important;
}
.account-links-v125 { margin-top: 18px !important; }
.account-links-v125 a {
  padding: 12px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.account-links-v125 .access-help-link span,
.account-links-v125 .access-help-link strong { color: var(--dh-accent) !important; }
.account-links-v125 .create-account-link { border-top: 1px solid #d8dee7 !important; margin-top: 10px; padding-top: 18px !important; }

/* HUB DE ACCESO */
.access-help-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:var(--dh-bg); font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.access-help-card { width:min(100%,460px); padding:30px; border-radius:18px; background:#eef1f5; }
.access-help-brand { display:flex; align-items:center; gap:8px; margin-bottom:26px; font-weight:900; font-size:1.35rem; letter-spacing:.03em; }
.access-help-brand b { color:var(--dh-text); }
.access-help-brand span { color:var(--dh-accent); }
.access-help-card h1 { margin:0 0 8px; color:var(--dh-text); font-size:1.8rem; }
.access-help-card > p { margin:0 0 24px; color:var(--dh-muted); line-height:1.5; }
.access-help-options { display:grid; gap:11px; }
.access-help-option { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:13px; padding:15px; border:1px solid #d7dfe8; border-radius:11px; background:#fff; color:var(--dh-text); text-decoration:none; }
.access-help-option:hover { border-color:#efadb1; transform:translateY(-1px); }
.access-help-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:10px; background:var(--dh-accent-soft); color:var(--dh-accent); font-size:1.15rem; }
.access-help-option strong { display:block; margin-bottom:3px; }
.access-help-option small { color:var(--dh-muted); line-height:1.35; }
.access-help-arrow { color:#8290a3; font-size:1.15rem; }
.access-help-back { display:inline-block; margin-top:22px; color:var(--dh-muted); text-decoration:none; }

@media (max-width:520px) {
  .login-page { padding:14px !important; }
  .login-card { width:100% !important; padding:30px !important; }
  .access-help-page { padding:14px; }
  .access-help-card { padding:26px 20px; }
}


/* V128 - modo oscuro global + toggle + login rojo */
.global-theme-toggle {
  position: fixed; top: 18px; right: 18px; z-index: 1000;
  width: 48px; height: 48px; border: 1px solid #d8dee7; border-radius: 12px;
  background: #fff; color: var(--dh-text); display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 24px rgba(15,23,42,.08); cursor: pointer;
}
.global-theme-toggle:hover { border-color: #f3b4b8; }
.login-card .password-toggle { border:1px solid #d7dfe8 !important; border-radius: 9px !important; background:#fff !important; color: var(--dh-text) !important; }
.login-card .password-toggle:hover { border-color: var(--dh-accent) !important; color: var(--dh-accent) !important; }
.account-links-v125 .create-account-link strong { color: var(--dh-accent) !important; }
.page-footer span:first-child { color: #0f8d78 !important; font-weight: 800; }
html[data-theme="dark"], html[data-theme="dark"] body {
  --dh-bg: #15191f; --dh-surface:#20262e; --dh-panel:#1d222a; --dh-line:#39424e; --dh-text:#edf1f5; --dh-muted:#aeb9c6; --dh-accent:#f34f57; --dh-accent-soft:#3a2529;
  background: var(--dh-bg) !important; color: var(--dh-text) !important;
}
html[data-theme="dark"] .login-page,
html[data-theme="dark"] .access-help-page { background: var(--dh-bg) !important; }
html[data-theme="dark"] .login-card,
html[data-theme="dark"] .access-help-card { background: var(--dh-panel) !important; color: var(--dh-text) !important; }
html[data-theme="dark"] .login-card h1,
html[data-theme="dark"] .login-card label,
html[data-theme="dark"] .access-help-card h1,
html[data-theme="dark"] .access-help-brand b,
html[data-theme="dark"] .access-help-option strong,
html[data-theme="dark"] .access-help-option,
html[data-theme="dark"] .page-footer,
html[data-theme="dark"] .page-footer span { color: var(--dh-text) !important; }
html[data-theme="dark"] .subtitle,
html[data-theme="dark"] .access-help-card > p,
html[data-theme="dark"] .access-help-option small,
html[data-theme="dark"] .access-help-back,
html[data-theme="dark"] .response-message,
html[data-theme="dark"] .dhacel-passkey-message { color: var(--dh-muted) !important; }
html[data-theme="dark"] .login-form input,
html[data-theme="dark"] .password-toggle,
html[data-theme="dark"] .access-help-option,
html[data-theme="dark"] .webauthn-login-button,
html[data-theme="dark"] .biometric-login-button,
html[data-theme="dark"] .dhacel-passkey-button,
html[data-theme="dark"] .global-theme-toggle {
  background: #20262e !important; color: var(--dh-text) !important; border-color: #3f4a57 !important;
}
html[data-theme="dark"] .login-button,
html[data-theme="dark"] .access-help-icon { background: var(--dh-accent) !important; color: #fff !important; }
html[data-theme="dark"] .access-help-icon svg,
html[data-theme="dark"] .dhacel-passkey-icon { color: var(--dh-accent) !important; }
html[data-theme="dark"] .account-links-v125 .create-account-link { border-top-color:#39424e !important; }
html[data-theme="dark"] .pwa-install-card { background:#20262e !important; color:var(--dh-text) !important; }
html[data-theme="dark"] .pwa-install-card p,
html[data-theme="dark"] .pwa-install-card .pwa-ios-step,
html[data-theme="dark"] .pwa-install-card .pwa-ios-notice,
html[data-theme="dark"] .pwa-install-card .pwa-ios-section { color:var(--dh-muted) !important; }
html[data-theme="dark"] .pwa-install-button { background: var(--dh-accent) !important; border-color: var(--dh-accent) !important; }
html[data-theme="dark"] .pwa-cancel-button,
html[data-theme="dark"] .pwa-close-button { background:#20262e !important; color: var(--dh-text) !important; border-color:#3f4a57 !important; }
