body.module-home-active {
  --home-ink: #123c34;
  --home-muted: #59756e;
  --home-line: rgba(18, 60, 52, 0.15);
  background: #f8f6ef;
}

body.module-home-active .app-sidebar,
body.module-home-active .demo-banner { display: none !important; }

body.module-home-active .main-content,
body.module-home-active .app-main {
  width: 100% !important;
  margin-left: 0 !important;
}

body.module-home-active .topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 76px;
  padding: 0 clamp(22px, 4vw, 64px) !important;
  border-bottom: 1px solid rgba(18, 60, 52, 0.12);
  background: rgba(255, 254, 249, 0.95);
  box-shadow: 0 8px 28px rgba(23, 58, 50, 0.04);
  backdrop-filter: blur(16px);
}

body.module-home-active .module-hub-page {
  min-height: calc(100vh - 76px);
  padding: 30px clamp(22px, 4vw, 64px) 56px !important;
  color: var(--home-ink);
  background:
    radial-gradient(circle at 91% 3%, rgba(164, 220, 198, 0.31), transparent 27%),
    radial-gradient(circle at 7% 94%, rgba(238, 222, 113, 0.18), transparent 25%),
    linear-gradient(135deg, #fbfaf5 0%, #f8f7f0 54%, #f1f8f3 100%);
}

body.module-home-active .module-hub-page .mh-shell {
  width: min(1100px, 100%);
  margin: 0 auto;
}

body.module-home-active .mh-home-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--home-line);
}

body.module-home-active .mh-home-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 185px;
}

body.module-home-active .mh-home-brand img {
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  object-fit: contain;
  filter: drop-shadow(0 8px 12px rgba(10, 73, 58, 0.14));
}

body.module-home-active .mh-home-brand strong,
body.module-home-active .mh-home-brand span { display: block; }

body.module-home-active .mh-home-brand strong {
  color: #0c5749;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.02em;
}

body.module-home-active .mh-home-brand span {
  margin-top: 3px;
  color: #9b7a00;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.module-home-active .mh-kicker {
  margin: 0 0 5px;
  color: #197764;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.19em;
  text-transform: uppercase;
}

body.module-home-active .mh-home-heading h1 {
  margin: 0;
  color: #103f36;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(31px, 3.6vw, 47px);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

body.module-home-active .mh-home-lead {
  margin: 8px 0 0;
  color: var(--home-muted);
  font-size: 13px;
  line-height: 1.5;
}

body.module-home-active .mh-home-system {
  min-width: 165px;
  padding: 11px 14px;
  border: 1px solid rgba(22, 108, 88, 0.18);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 10px 24px rgba(18, 60, 52, 0.06);
}

body.module-home-active .mh-home-system span,
body.module-home-active .mh-home-system small { display: block; }

body.module-home-active .mh-home-system span {
  color: #175f51;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

body.module-home-active .mh-home-system i {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 8px;
  border-radius: 50%;
  background: #47b97f;
  box-shadow: 0 0 0 5px rgba(71, 185, 127, 0.14);
}

body.module-home-active .mh-home-system small {
  margin: 5px 0 0 16px;
  color: #789089;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.module-home-active .module-hub-page .mh-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: stretch !important;
  width: 100% !important;
}

body.module-home-active .mh-grid-label {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 34px;
}

body.module-home-active .mh-grid-label-management { margin-top: 4px; }

body.module-home-active .mh-grid-label > span {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 10px;
  color: #0e594b;
  background: #dcefe6;
  font-size: 10px;
  font-weight: 900;
}

body.module-home-active .mh-grid-label-management > span {
  color: #856500;
  background: #ffedaa;
}

body.module-home-active .mh-grid-label strong,
body.module-home-active .mh-grid-label small { display: block; }

body.module-home-active .mh-grid-label strong {
  color: #163f37;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.module-home-active .mh-grid-label small {
  margin-top: 1px;
  color: #70857f;
  font-size: 10px;
  font-weight: 650;
}

body.module-home-active .module-hub-page .mh-grid > .mh-card {
  position: relative !important;
  grid-column: span 2 !important;
  grid-row: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 240px !important;
  height: 240px !important;
  margin: 0 !important;
  padding: 22px !important;
  overflow: hidden !important;
  border: 1px solid rgba(18, 60, 52, 0.17) !important;
  border-radius: 23px !important;
  color: #123c34 !important;
  box-shadow: 0 12px 27px rgba(26, 66, 57, 0.08) !important;
  cursor: pointer;
  isolation: isolate;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

body.module-home-active .module-hub-page .mh-grid > .mh-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -58px;
  bottom: -70px;
  width: 165px;
  height: 165px;
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.17);
}

body.module-home-active .module-hub-page .mh-card:hover {
  transform: translateY(-4px);
  border-color: rgba(18, 91, 76, 0.31) !important;
  box-shadow: 0 19px 37px rgba(26, 66, 57, 0.13) !important;
}

body.module-home-active .module-hub-page .mh-card:focus-visible {
  outline: 3px solid rgba(20, 115, 94, 0.32);
  outline-offset: 4px;
}

body.module-home-active .module-hub-page .mh-card.bank {
  background: linear-gradient(145deg, #dcefe4, #c9e5d8) !important;
}

body.module-home-active .module-hub-page .mh-card.cards {
  background: linear-gradient(145deg, #ffdfd2, #f7c8b6) !important;
}

body.module-home-active .module-hub-page .mh-card.policies {
  background: linear-gradient(145deg, #d6edf6, #bfe1ee) !important;
}

body.module-home-active .module-hub-page .mh-card.annual {
  background: linear-gradient(145deg, #fff0b4, #f6df91) !important;
}

body.module-home-active .module-hub-page .mh-card.members {
  background: linear-gradient(145deg, #d8f0e9, #bfe3d9) !important;
}

body.module-home-active .module-hub-page .mh-card.print-settings {
  background: linear-gradient(145deg, #ebeaf3, #d9ddea) !important;
}

body.module-home-active .module-hub-page .mh-card.users {
  background: linear-gradient(145deg, #d9eee4, #c2dfd2) !important;
}

body.module-home-active .mh-card-top,
body.module-home-active .mh-card-bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 13px;
  width: 100%;
}

body.module-home-active .mh-icon {
  display: grid !important;
  width: 46px !important;
  height: 46px !important;
  flex: 0 0 46px !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 14px !important;
  color: #0f6958 !important;
  background: rgba(255, 255, 255, 0.7) !important;
  box-shadow: 0 8px 17px rgba(23, 73, 62, 0.09);
}

body.module-home-active .mh-icon svg {
  width: 22px !important;
  height: 22px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

body.module-home-active .mh-tag {
  max-width: 132px;
  padding: 6px 9px !important;
  border: 1px solid rgba(18, 60, 52, 0.08) !important;
  border-radius: 999px !important;
  color: #43665e !important;
  background: rgba(255, 255, 255, 0.61) !important;
  font-size: 8px !important;
  font-weight: 900 !important;
  letter-spacing: 0.07em !important;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase !important;
}

body.module-home-active .mh-card-copy { margin-top: 20px; }

body.module-home-active .mh-card h2 {
  max-width: 280px !important;
  margin: 0 !important;
  color: #123c34 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(22px, 2vw, 27px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.01 !important;
}

body.module-home-active .mh-card > h2 { margin-top: 19px !important; }

body.module-home-active .mh-card p {
  max-width: 290px !important;
  margin: 9px 0 0 !important;
  color: #496b63 !important;
  font-size: 11px !important;
  font-weight: 650 !important;
  line-height: 1.48 !important;
}

body.module-home-active .mh-card-bottom {
  position: relative;
  z-index: 2;
  margin-top: auto !important;
  padding-top: 15px;
}

body.module-home-active .mh-metric,
body.module-home-active .mh-card-bottom > span:first-child {
  min-width: 0;
  color: #365f56 !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  line-height: 1.35;
}

body.module-home-active .mh-open {
  display: grid !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 50% !important;
  color: transparent !important;
  background: #0c5a4c !important;
  box-shadow: 0 8px 17px rgba(12, 90, 76, 0.18) !important;
  font-size: 0 !important;
}

body.module-home-active .mh-open::after {
  content: "\2192";
  color: #fff;
  font-family: Georgia, serif;
  font-size: 19px;
  line-height: 1;
}

body.module-home-active .mh-card.print-settings .mh-icon { color: #655b87 !important; }
body.module-home-active .mh-card.print-settings .mh-open { cursor: pointer; }

body.module-home-active .mh-card:nth-of-type(1) { animation: mh-card-in 380ms 40ms both; }
body.module-home-active .mh-card:nth-of-type(2) { animation: mh-card-in 380ms 80ms both; }
body.module-home-active .mh-card:nth-of-type(3) { animation: mh-card-in 380ms 120ms both; }
body.module-home-active .mh-card:nth-of-type(4) { animation: mh-card-in 380ms 160ms both; }
body.module-home-active .mh-card:nth-of-type(5) { animation: mh-card-in 380ms 200ms both; }
body.module-home-active .mh-card:nth-of-type(6) { animation: mh-card-in 380ms 240ms both; }

@keyframes mh-card-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 980px) {
  body.module-home-active .module-hub-page .mh-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.module-home-active .module-hub-page .mh-grid > .mh-card {
    grid-column: span 1 !important;
  }

  body.module-home-active .mh-grid-label { display: none; }

  body.module-home-active .mh-home-hero {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.module-home-active .mh-home-system {
    grid-column: 1 / -1;
    justify-self: start;
    min-width: 0;
  }
}

@media (max-width: 650px) {
  body.module-home-active .topbar {
    min-height: 66px;
    padding: 0 15px !important;
  }

  body.module-home-active .module-hub-page {
    padding: 22px 15px 42px !important;
  }

  body.module-home-active .mh-home-hero {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.module-home-active .mh-home-brand { min-width: 0; }

  body.module-home-active .mh-home-brand img {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
  }

  body.module-home-active .mh-home-heading h1 {
    font-size: clamp(31px, 10vw, 42px);
  }

  body.module-home-active .module-hub-page .mh-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  body.module-home-active .module-hub-page .mh-grid > .mh-card {
    grid-column: 1 !important;
    min-height: 230px !important;
    height: 230px !important;
    padding: 20px !important;
    border-radius: 21px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.module-home-active .mh-card {
    animation: none !important;
    transition: none !important;
  }
}

/* Posiciones finales: independientes del orden de carga de los módulos. */
body.module-home-active .module-hub-page .mh-grid-label {
  display: none !important;
}

body.module-home-active .module-hub-page .mh-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(3, 240px) !important;
  grid-auto-rows: 240px !important;
  align-content: start !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card {
  min-height: 240px !important;
  height: 240px !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.bank {
  grid-column: 1 / span 2 !important;
  grid-row: 1 !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.cards {
  grid-column: 3 / span 2 !important;
  grid-row: 1 !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.policies {
  grid-column: 5 / span 2 !important;
  grid-row: 1 !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.annual {
  grid-column: 1 / span 2 !important;
  grid-row: 2 !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.members {
  grid-column: 3 / span 2 !important;
  grid-row: 2 !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.print-settings {
  grid-column: 5 / span 2 !important;
  grid-row: 2 !important;
}

body.module-home-active .module-hub-page .mh-grid > article.mh-card.users {
  grid-column: 3 / span 2 !important;
  grid-row: 3 !important;
}

body.access-limited.module-home-active .module-hub-page .mh-grid {
  grid-template-rows: none !important;
}

body.access-limited.module-home-active .module-hub-page .mh-grid > article.mh-card:not([hidden]) {
  grid-column: span 2 !important;
  grid-row: auto !important;
}

@media (max-width: 760px) and (min-width: 521px) {
  body.module-home-active .module-hub-page .mh-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(3, 230px) !important;
    grid-auto-rows: 230px !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card {
    min-height: 230px !important;
    height: 230px !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.bank {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.cards {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.policies {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.annual {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.members {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.print-settings {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
}

@media (max-width: 520px) {
  body.module-home-active .module-hub-page .mh-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: none !important;
    grid-auto-rows: 230px !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.bank,
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.cards,
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.policies,
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.annual,
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.members,
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.print-settings {
    grid-column: 1 !important;
    grid-row: auto !important;
    min-height: 230px !important;
    height: 230px !important;
  }

  body.module-home-active .module-hub-page .mh-grid > article.mh-card.bank { order: 1; }
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.cards { order: 2; }
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.policies { order: 3; }
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.annual { order: 4; }
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.members { order: 5; }
  body.module-home-active .module-hub-page .mh-grid > article.mh-card.print-settings { order: 6; }
}
