/* Portal responsive: distribución nueva, paleta original sin cambios. */
body.portal-layout[data-page="dashboard"] .workspace { padding-left: 0 !important; }
body.portal-layout[data-page="dashboard"] .topbar { position: sticky !important; top: 0; z-index: 80; min-height: 66px; padding: 10px 24px !important; gap: 16px !important; }
body.portal-layout[data-page="dashboard"] .mobile-menu-button,
body.portal-layout[data-page="dashboard"] .sidebar-close { display: grid !important; }
body.portal-layout[data-page="dashboard"] .sidebar {
  position: fixed !important; inset: 0 auto 0 0 !important; width: min(340px, 90vw) !important;
  height: 100dvh !important; padding: 24px 20px !important; z-index: 9000 !important;
  transform: translateX(-105%) !important; visibility: hidden; transition: transform .2s, visibility .2s;
}
body.portal-layout.sidebar-open[data-page="dashboard"] .sidebar { transform: translateX(0) !important; visibility: visible; }
body.portal-layout[data-page="dashboard"] .sidebar .brand-text,
body.portal-layout[data-page="dashboard"] .sidebar .nav-label,
body.portal-layout[data-page="dashboard"] .sidebar .sidebar-link > span:not(.sidebar-link-indicator) { display: block !important; }
body.portal-layout[data-page="dashboard"] .sidebar .sidebar-link { display: flex !important; justify-content: flex-start !important; gap: 14px !important; width: 100% !important; padding: 12px !important; }
body.portal-layout[data-page="dashboard"] .sidebar .sidebar-link[hidden] { display: none !important; }
body.portal-layout[data-page="dashboard"] .sidebar-backdrop:not([hidden]) { display: block !important; position: fixed; inset: 0; z-index: 8990 !important; background: rgba(0,5,3,.64); }
body.portal-layout[data-page="dashboard"] .portal-brand { display: flex; align-items: center; gap: 14px; color: var(--ui-text); text-decoration: none; white-space: nowrap; }
body.portal-layout[data-page="dashboard"] .portal-brand-symbol { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--ui-green-soft); color: var(--ui-mint); font-weight: 800; }
body.portal-layout[data-page="dashboard"] #view-inicio:not([hidden]) {
  display: grid !important; grid-template-columns: minmax(0, 1fr) 330px !important;
  grid-template-areas: "hero events" "search events" "alerts events" "modules events" "metrics events" "periods events" "details events";
  column-gap: 40px !important; row-gap: 28px !important;
  max-width: 1680px !important; width: 100%; margin: 0 auto;
  padding: 38px 40px 60px !important; align-items: start;
}
body.portal-layout[data-page="dashboard"] #view-inicio > * { min-width: 0; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-hero-pro {
  grid-area: hero; display: block !important; text-align: center; padding: 12px 0 4px !important;
  min-height: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-hero-pro::before,
body.portal-layout[data-page="dashboard"] #view-inicio .home-hero-pro::after { display: none !important; }
body.portal-layout[data-page="dashboard"] #home-greeting { font-size: clamp(21px, 2vw, 28px) !important; letter-spacing: -.025em; }
body.portal-layout[data-page="dashboard"] #home-welcome { display: block; font-size: 13px !important; margin-top: 8px; }
body.portal-layout[data-page="dashboard"] .home-section-kicker { display: none; }
body.portal-layout[data-page="dashboard"] .portal-search-home { grid-area: search; border: 1px solid var(--ui-line); border-radius: 14px; background: var(--ui-surface); box-shadow: var(--ui-shadow-soft); position: relative; z-index: 60; }
body.portal-layout[data-page="dashboard"] .portal-search-home .global-search-wrap { width: 100% !important; max-width: none !important; }
body.portal-layout[data-page="dashboard"] .portal-search-home .global-search { width: 100% !important; max-width: none !important; height: 64px !important; border: 0 !important; background: transparent !important; border-radius: 14px 14px 0 0 !important; padding: 0 22px !important; }
body.portal-layout[data-page="dashboard"] .portal-search-home .global-search input { font-size: 18px !important; }
body.portal-layout[data-page="dashboard"] .portal-search-links { display: flex !important; flex-wrap: wrap; gap: 6px 18px !important; margin: 0 !important; padding: 8px 16px !important; border: 0 !important; border-top: 1px solid var(--ui-line) !important; border-radius: 0; background: none !important; box-shadow: none !important; }
body.portal-layout[data-page="dashboard"] .portal-search-links button { min-width: 0 !important; min-height: 40px !important; padding: 8px 4px !important; border: 0 !important; border-radius: 6px !important; background: none !important; color: var(--ui-mint) !important; box-shadow: none !important; font-size: 13px !important; }
body.portal-layout[data-page="dashboard"] .portal-search-links svg { display: none !important; }
body.portal-layout[data-page="dashboard"] .portal-modules { grid-area: modules; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
body.portal-layout[data-page="dashboard"] .portal-module { border: 1px solid var(--ui-line); border-radius: 12px; overflow: hidden; background: var(--ui-surface); }
body.portal-layout[data-page="dashboard"] .portal-module header { padding: 20px 22px; min-height: 90px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--ui-surface-soft); border-bottom: 1px solid var(--ui-line); }
body.portal-layout[data-page="dashboard"] .portal-module h2 { margin: 5px 0 0; font-size: 16px; line-height: 1.4; color: var(--ui-text); }
body.portal-layout[data-page="dashboard"] .portal-module small { color: var(--ui-muted); font-size: 12px; }
body.portal-layout[data-page="dashboard"] .portal-module header svg { flex: none; width: 29px; height: 29px; color: var(--ui-muted); }
body.portal-layout[data-page="dashboard"] .portal-module nav { display: grid; padding: 12px 16px 18px; }
body.portal-layout[data-page="dashboard"] .portal-module a { display: block; padding: 11px 7px; min-height: 44px; border-radius: 6px; color: var(--ui-mint); text-decoration: none; font-size: 14px; }
body.portal-layout[data-page="dashboard"] .portal-module a:hover { background: var(--ui-green-soft); }
body.portal-layout[data-page="dashboard"] .portal-module a[hidden] { display: none; }
body.portal-layout[data-page="dashboard"] .portal-events { grid-area: events; border-left: 1px solid var(--ui-line); padding-left: 28px; display: grid; gap: 30px; align-content: start; min-height: 100%; }
body.portal-layout[data-page="dashboard"] .portal-events .dashboard-card { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
body.portal-layout[data-page="dashboard"] .portal-events .card-heading { align-items: start; gap: 10px; flex-wrap: wrap; }
body.portal-layout[data-page="dashboard"] .portal-events h2 { font-size: 17px !important; line-height: 1.4; }
body.portal-layout[data-page="dashboard"] .portal-events .reminder-list { display: grid; gap: 0; margin-top: 20px; }
body.portal-layout[data-page="dashboard"] .portal-events .reminder-item { width: 100%; padding: 17px 0 !important; border: 0 !important; border-bottom: 1px solid var(--ui-line) !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; text-align: left; }
body.portal-layout[data-page="dashboard"] .portal-events .reminder-copy strong,
body.portal-layout[data-page="dashboard"] .portal-events .reminder-copy small { white-space: normal !important; overflow: visible !important; overflow-wrap: anywhere; line-height: 1.5; }
body.portal-layout[data-page="dashboard"] .portal-reminder-action { font-size: 11px; color: var(--ui-mint); margin-top: 6px; }
body.portal-layout[data-page="dashboard"] .portal-events .reminder-days { width: 48px; min-height: 48px; }
body.portal-layout[data-page="dashboard"] .portal-events .home-hero-active { width: 100%; min-height: 100px !important; }
body.portal-layout[data-page="dashboard"] .portal-events .activity-card { min-height: 0 !important; height: auto !important; }
body.portal-layout[data-page="dashboard"] .portal-events .dashboard-empty { display: flex !important; flex-direction: column; align-items: center; gap: 10px; height: auto !important; min-height: 130px !important; padding: 20px 14px !important; }
body.portal-layout[data-page="dashboard"] .portal-events .dashboard-empty > * { position: static !important; transform: none !important; margin: 0 !important; white-space: normal; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-center { grid-area: alerts; margin: 0 !important; padding: 18px 20px !important; border-radius: 12px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-heading { gap: 12px; flex-wrap: wrap; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-heading h2 { font-size: 18px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-heading .panel-eyebrow { display: none; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-grid { grid-template-columns: 1fr !important; gap: 8px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-card { min-height: 0 !important; padding: 12px 14px !important; border-radius: 8px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid { grid-area: metrics; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 16px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-card { min-height: 150px !important; border-radius: 12px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-panel { grid-area: periods; border-radius: 12px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-grid { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
body.portal-layout[data-page="dashboard"] .portal-details { grid-area: details; border: 1px solid var(--ui-line); border-radius: 12px; padding: 18px; }
body.portal-layout[data-page="dashboard"] .portal-details > summary { cursor: pointer; color: var(--ui-mint); font-size: 14px; padding: 5px 0; }
body.portal-layout[data-page="dashboard"] #view-inicio .portal-details .dashboard-top-grid,
body.portal-layout[data-page="dashboard"] #view-inicio .portal-details .dashboard-bottom-grid { display: grid !important; grid-template-columns: 1fr !important; margin-top: 20px; }
body.portal-layout[data-page="dashboard"] .portal-module a:focus-visible,
body.portal-layout[data-page="dashboard"] .portal-brand:focus-visible { outline: 2px solid var(--ui-mint); outline-offset: 3px; }
@media (max-width: 1050px) {
  body.portal-layout[data-page="dashboard"] #view-inicio:not([hidden]) { padding: 26px 22px 44px !important; column-gap: 24px !important; grid-template-columns: minmax(0,1fr) 285px !important; }
  body.portal-layout[data-page="dashboard"] .portal-events { padding-left: 20px; }
  body.portal-layout[data-page="dashboard"] .portal-module header { padding: 16px; }
}
@media (max-width: 850px), (orientation: portrait) {
  body.portal-layout[data-page="dashboard"] #view-inicio:not([hidden]) {
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-areas: "hero" "search" "alerts" "events" "modules" "metrics" "periods" "details";
    padding: 24px 16px 40px !important; gap: 24px !important;
  }
  body.portal-layout[data-page="dashboard"] .portal-events { padding-left: 0; border-left: 0; min-height: 0; }
  body.portal-layout[data-page="dashboard"] .portal-events .activity-card,
  body.portal-layout[data-page="dashboard"] .portal-events .home-hero-active { display: none !important; }
  body.portal-layout[data-page="dashboard"] .portal-modules { grid-template-columns: 1fr; gap: 18px; }
  body.portal-layout[data-page="dashboard"] .portal-events .reminders-card { padding: 18px !important; border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; }
}
@media (max-width: 540px) {
  body.portal-layout[data-page="dashboard"] .topbar { padding: 8px 12px !important; gap: 8px !important; flex-wrap: wrap; }
  body.portal-layout[data-page="dashboard"] .topbar .global-search-wrap { order: 5; flex: 1 0 100%; max-width: none !important; }
  body.portal-layout[data-page="dashboard"] .portal-brand { gap: 8px; font-size: 13px; }
  body.portal-layout[data-page="dashboard"] .topbar-actions { gap: 5px !important; }
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid,
  body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-grid { grid-template-columns: 1fr !important; }
  body.portal-layout[data-page="dashboard"] .portal-search-links { gap: 4px 14px !important; }
}
/* Inicio compacto: menos bloques y datos prioritarios a la vista. */
body.portal-layout[data-page="dashboard"] #view-inicio:not([hidden]) {
  grid-template-areas: "hero events" "search events" "periods events" "metrics events" "modules events" "alerts events" "details events";
  row-gap: 20px !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-hero-pro { padding: 4px 0 0 !important; }
body.portal-layout[data-page="dashboard"] .portal-modules {
  grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px;
}
body.portal-layout[data-page="dashboard"] .portal-module { border-radius: 10px; }
body.portal-layout[data-page="dashboard"] .portal-module header {
  min-height: 69px; padding: 12px 14px;
}
body.portal-layout[data-page="dashboard"] .portal-module header svg { width: 23px; height: 23px; }
body.portal-layout[data-page="dashboard"] .portal-module h2 { font-size: 14px; }
body.portal-layout[data-page="dashboard"] .portal-module nav { padding: 6px 12px 10px; }
body.portal-layout[data-page="dashboard"] .portal-module nav a {
  min-height: 36px; padding: 8px 6px; font-size: 13px; line-height: 1.35;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid {
  display: grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap: 0 !important;
  border: 1px solid var(--ui-line); border-radius: 12px; background: var(--ui-surface);
  overflow: hidden;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid > button {
  width: 100%; min-width: 0 !important; min-height: 0 !important; height: 104px !important;
  padding: 12px 16px !important; border: 0 !important; border-right: 1px solid var(--ui-line) !important;
  border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
  display: flex !important; flex-direction: column !important; align-items: flex-start !important;
  justify-content: center !important; gap: 3px !important; text-align: left !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid > button:last-child { border-right: 0 !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid > button:hover { background: var(--ui-green-soft) !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid strong { font-size: 24px !important; line-height: 1.15 !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-summary-label,
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-hero-active > span {
  display: block !important; font-size: 11px !important; text-transform: uppercase; letter-spacing: .035em;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-summary-icon,
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid em,
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid small {
  display: none !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-hero-active strong {
  font-size: 24px !important; color: var(--ui-mint) !important; margin: 0 !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-panel {
  padding: 20px !important; margin: 0 !important; border-color: var(--ui-line-strong) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.16) !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-heading { margin-bottom: 14px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-grid {
  grid-template-columns: repeat(5, minmax(0,1fr)) !important; gap: 8px !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-card {
  width: 100% !important; min-width: 0 !important; min-height: 118px !important;
  height: auto !important; padding: 15px 12px !important; border-radius: 10px !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-card > strong {
  font-size: clamp(17px, 1.55vw, 23px) !important; overflow-wrap: anywhere;
}
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-card > small {
  font-size: 10px !important; line-height: 1.4 !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-card .profit-period-breakdown { display: none !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-center {
  border: 0 !important; border-top: 1px solid var(--ui-line) !important;
  border-radius: 0 !important; background: none !important; box-shadow: none !important;
  padding: 12px 0 0 !important;
}
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-heading h2 { font-size: 15px !important; }
body.portal-layout[data-page="dashboard"] #view-inicio #home-alert-subtitle { display: none !important; }
body.portal-layout[data-page="dashboard"] #view-inicio .home-alert-card {
  background: var(--ui-surface) !important; border-radius: 8px !important; min-height: 0 !important;
}
body.portal-layout[data-page="dashboard"] .portal-details > .home-summary-profit {
  margin: 16px 0 !important; width: 100% !important; min-height: 110px !important;
}
body.portal-layout[data-page="dashboard"] .portal-search-home .global-search-panel {
  position: absolute !important; top: calc(100% + 8px) !important;
  left: 0 !important; right: 0 !important;
  max-height: min(56vh, 520px); border-radius: 12px;
}
@media (max-width: 1150px) {
  body.portal-layout[data-page="dashboard"] .portal-modules { grid-template-columns: repeat(2, minmax(0,1fr)); }
  body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}
@media (max-width: 850px), (orientation: portrait) {
  body.portal-layout[data-page="dashboard"] #view-inicio:not([hidden]) {
    grid-template-areas: "hero" "search" "periods" "metrics" "events" "modules" "alerts" "details";
    gap: 18px !important;
  }
  body.portal-layout[data-page="dashboard"] .portal-modules { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 540px) {
  body.portal-layout[data-page="dashboard"] #view-inicio:not([hidden]) { padding: 16px 12px 32px !important; }
  body.portal-layout[data-page="dashboard"] .portal-modules { grid-template-columns: 1fr; gap: 12px; }
  body.portal-layout[data-page="dashboard"] .portal-module header { min-height: 52px; }
  body.portal-layout[data-page="dashboard"] .portal-module nav { display: flex; flex-wrap: wrap; gap: 0 8px; }
  body.portal-layout[data-page="dashboard"] .portal-module nav a { flex: 0 0 calc(50% - 4px); }
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid > button { height: 74px !important; padding: 8px 5px !important; }
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid strong,
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-hero-active strong { font-size: 20px !important; }
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-summary-label,
  body.portal-layout[data-page="dashboard"] #view-inicio .home-summary-grid .home-hero-active > span { font-size: 9px !important; letter-spacing: 0; line-height: 1.15; }
  body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-panel { padding: 16px 12px !important; }
  body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-grid {
    display: flex !important; overflow-x: auto; gap: 8px; padding: 2px 0 9px;
    scroll-snap-type: x proximity;
  }
  body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-card {
    flex: 0 0 42%; min-height: 104px !important; scroll-snap-align: start;
  }
  body.portal-layout[data-page="dashboard"] #view-inicio .profit-period-card > strong { font-size: 19px !important; }
}
