:root{
  /* AP DESIGN TOKENS: única fuente de verdad visual para todas las tabs. */
  --ap-font-family:Arial,sans-serif;
  /* Fondo general de la aplicación. Es un token semántico independiente:
     no debe reutilizarse para fields, notas, tarjetas ni superficies. */
  --ap-color-page-bg:#f2ede6;
  --ap-color-bg:#f6f4f1;
  --ap-color-surface:#fff;
  --ap-color-surface-soft:#faf8f5;
  --ap-color-field-editable:#fff;
  --ap-color-field-calculated:#f7f2eb;
  --ap-color-text:#111;
  --ap-color-muted:#666;
  --ap-color-border:color-mix(in srgb,var(--ap-color-accent) 16%,#dedede);
  --ap-color-border-soft:color-mix(in srgb,var(--ap-color-accent) 9%,#e8e8e8);
  --ap-color-divider:color-mix(in srgb,var(--ap-color-accent) 6%,#ececec);
  /* Contrato tabular AP: Resumen por menú es la referencia en toda resolución. */
  --ap-table-head-start:color-mix(in srgb,var(--ap-color-accent) 24%,var(--ap-color-surface));
  --ap-table-head-end:color-mix(in srgb,var(--ap-color-accent) 14%,var(--ap-color-surface));
  --ap-table-row-bg:var(--ap-color-surface);
  --ap-table-row-hover-bg:color-mix(in srgb,var(--ap-color-accent) 13%,var(--ap-color-surface));
  --ap-table-total-bg:color-mix(in srgb,#6b716f 12%,var(--ap-color-surface));
  --ap-table-total-text:var(--ap-color-text);
  --ap-table-frame:color-mix(in srgb,#808080 30%,var(--ap-color-surface));
  --ap-table-divider:color-mix(in srgb,#808080 22%,var(--ap-color-surface));
  --ap-color-text-on-dark:#f2f2f2;
  --ap-color-header:#0b0b0b;
  --ap-color-header-border:color-mix(in srgb,var(--ap-color-accent) 18%,#292929);
  --ap-color-header-text:var(--ap-color-text-on-dark);
  --ap-color-header-muted:#bdbdbd;
  --ap-brand-gold:#c18b2f;
  --ap-color-accent:#c18b2f;
  /* Accent theme contract. Override --ap-color-accent to recolor every
     accent-derived state. Button copy stays black on every non-black surface;
     black buttons use --ap-color-text-on-dark as their only contrast exception. */
  --ap-color-accent-strong:color-mix(in srgb,var(--ap-color-accent) 86%,#000);
  --ap-color-accent-emphasis:color-mix(in srgb,var(--ap-color-accent) 92%,#000);
  --ap-color-accent-bright:color-mix(in srgb,var(--ap-color-accent) 82%,#fff);
  --ap-color-accent-muted:color-mix(in srgb,var(--ap-color-accent) 46%,#fff);
  --ap-color-accent-soft:color-mix(in srgb,var(--ap-color-accent) 14%,transparent);
  --ap-color-accent-soft-strong:color-mix(in srgb,var(--ap-color-accent) 24%,transparent);
  --ap-color-accent-border:color-mix(in srgb,var(--ap-color-accent) 65%,transparent);
  --ap-color-accent-focus:color-mix(in srgb,var(--ap-color-accent) 24%,transparent);
  --ap-color-accent-surface:color-mix(in srgb,var(--ap-color-accent) 10%,var(--ap-color-surface));
  --ap-color-accent-surface-strong:color-mix(in srgb,var(--ap-color-accent) 18%,var(--ap-color-surface));
  --ap-color-accent-surface-muted:color-mix(in srgb,var(--ap-color-accent) 6%,var(--ap-color-surface));
  --ap-color-accent-surface-hover:color-mix(in srgb,var(--ap-color-accent) 34%,var(--ap-color-surface));
  --ap-color-icon-bg:var(--ap-color-accent-surface);
  --ap-color-callout-bg:var(--ap-color-accent-surface-muted);
  --ap-color-callout-border:color-mix(in srgb,var(--ap-color-accent) 28%,var(--ap-color-border));
  --ap-color-button-text:#111;
  --ap-color-button-text-on-black:var(--ap-color-text-on-dark);
  --ap-color-on-accent:var(--ap-color-button-text);
  --ap-color-control-knob:#fff;
  --ap-color-control-knob:#fff;
  --ap-color-control-knob:#fff;
  --ap-color-success:#4f9239;
  --ap-color-switch-off:#bbb;
  /* Intensidad cromatica universal de las superficies nocturnas. */
  --ap-dark-accent-tint:2.5%;
  --ap-dark-border-tint:14%;
  --ap-dark-bg:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-accent-tint),#0c0c0c);
  --ap-dark-tab-bg:var(--ap-dark-bg);
  --ap-dark-canvas:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-accent-tint),#101010);
  --ap-dark-surface:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-accent-tint),#181818);
  --ap-dark-surface-raised:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-accent-tint),#202020);
  --ap-dark-field:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-accent-tint),#252525);
  --ap-dark-border:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-border-tint),#3e3e3e);
  --ap-dark-hover:color-mix(in srgb,var(--ap-color-accent) var(--ap-dark-accent-tint),#3a3a3a);
  --ap-color-avatar-end:color-mix(in srgb,var(--ap-color-accent) 18%,var(--ap-color-header));
  --ap-dropdown-arrow-color:#111;
  --ap-radius-control:8px;
  --ap-radius-card:12px;
  --ap-radius-header:11px;
  --ap-shadow-card:0 4px 14px rgba(17,17,17,.035);
  --ap-shadow-primary:0 6px 16px color-mix(in srgb,var(--ap-color-accent) 22%,transparent);
  --ap-duration-fast:.18s;
  --ap-duration-entry:200ms;
  --ap-duration-fade:200ms;
  --ap-duration-tab:var(--ap-duration-entry);
  --ap-duration-view:var(--ap-duration-fade);
  --ap-duration-page:var(--ap-duration-fade);
  --ap-duration-theme:var(--ap-duration-fade);
  --ap-duration-system-theme:var(--ap-duration-fade);
  --ap-duration-accent:var(--ap-duration-fade);
  --ap-duration-settings:var(--ap-duration-fade);
  --ap-skeleton-surface:color-mix(in srgb,var(--ap-color-surface) 92%,var(--ap-color-text) 8%);
  --ap-skeleton-base:color-mix(in srgb,var(--ap-color-surface) 84%,var(--ap-color-text) 16%);
  --ap-skeleton-highlight:color-mix(in srgb,var(--ap-color-surface) 96%,var(--ap-color-text) 4%);
  --ap-tab-icon-size:22.5px;
  --ap-space-card:22px;
  --ap-space-card-mobile:15px;
  --ap-section-header-height:auto;
  --ap-section-header-border-width:3px;
  /* Alias históricos: todas las pantallas antiguas consumen los mismos tokens. */
  --ap-black:var(--ap-color-header);
  --ap-gold:var(--ap-color-accent);
  --ap-gold-dark:var(--ap-color-accent-strong);
  --ap-gold-line:var(--ap-color-accent);
  --ap-bg:var(--ap-color-page-bg);
  --ap-surface:var(--ap-color-surface);
  --ap-text:var(--ap-color-text);
  --ap-muted:var(--ap-color-muted);
  --ap-border:var(--ap-color-border);
  --ap-radius:var(--ap-radius-control);
  --ap-sidebar-width:260px;
  --ap-sidebar:#0b0b0b;
  --ap-sidebar-hover:#1c1c1c;
  --ap-sidebar-active:color-mix(in srgb,var(--ap-color-accent) 14%,#181818);
  --ap-sidebar-border:color-mix(in srgb,var(--ap-color-accent) 14%,#343434);
  --ap-page-gap:20px;
  --ap-min-font-size:14px;
  --ap-field-font-size:16px;
  --ap-field-height:46px;
  --ap-field-label-size:15px;
  --ap-field-help-size:14px;
  --ap-field-option-size:16px;
  --ap-field-gap:8px;
  --ap-field-note-gap:16px;
  --ap-control-viewport-margin:12px;
  --ap-dropdown-field-gap:5px;
  --ap-dropdown-menu-min-width:220px;
  --ap-minor-label-size:14px;
}

/* ESTÁNDAR AP: las fichas compactas comunican agrupación por forma y color;
   el texto conserva peso normal, como los estados de cuenta. */
:where(
  .activity-chip,
  .food-tag-chip,
  .food-tag,
  .food-status,
  .client-status,
  .user-type-badge,
  .exercise-feature-chip,
  .supplement-presentation-chip,
  .training-chip,
  .training-intensity,
  .nutrition-header-badge,
  .training-header-badge,
  .results-static-badge
){font-weight:400!important}

/* ESTÁNDAR AP: paneles de filtros plegables en todas las bibliotecas y usuarios. */
.ap-filter-panel-collapsible>.existing-filter-head,
.ap-filter-panel-collapsible>.foods-section-header{
  position:relative;
}
.ap-filter-panel-collapsible>.existing-filter-head .ap-filter-active-count,
.ap-filter-panel-collapsible>.foods-section-header .ap-filter-active-count{
  margin-left:auto;
  padding:5px 9px;
  border:1px solid var(--ap-color-accent-border);
  border-radius:999px;
  background:var(--ap-color-accent-soft);
  color:var(--ap-color-accent-bright,var(--ap-gold));
  font-family:Arial,sans-serif;
  font-size:14px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
.ap-filter-panel-collapsible>.existing-filter-head .ap-filter-active-count[hidden],
.ap-filter-panel-collapsible>.foods-section-header .ap-filter-active-count[hidden]{display:none!important}
/* Botón plegable AP global: filtros, secciones y futuros paneles comparten
   exactamente el contrato limpio de los chevrons de Asesoría. */
html body .ap-filter-panel-toggle.ap-secondary-button{
  flex:0 0 32px;
  width:32px;
  min-width:32px;
  height:32px;
  min-height:32px;
  margin-left:auto;
  padding:0;
  border:1px solid transparent!important;
  border-radius:7px;
  display:inline-grid;
  place-items:center;
  background:transparent!important;
  color:var(--ap-color-accent-bright,var(--ap-gold))!important;
  box-shadow:none!important;
  touch-action:manipulation;
}
.ap-filter-panel-collapsible>.existing-filter-head .ap-filter-active-count:not([hidden])+.ap-filter-panel-toggle,
.ap-filter-panel-collapsible>.foods-section-header .ap-filter-active-count:not([hidden])+.ap-filter-panel-toggle{margin-left:12px}
.ap-filter-panel-toggle svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  transform:rotate(90deg);
  transition:transform .2s ease;
}
.ap-filter-panel-collapsible.is-collapsed .ap-filter-panel-toggle svg,
.client-title.is-collapsed .ap-user-section-toggle svg,
.client-section.is-collapsed .ap-user-section-toggle svg{transform:rotate(180deg)}
html body .ap-filter-panel-toggle.ap-secondary-button:focus-visible{
  border-color:var(--ap-gold)!important;
  background:color-mix(in srgb,var(--ap-color-accent) 16%,transparent)!important;
  color:var(--ap-color-accent-bright,var(--ap-gold))!important;
  outline:2px solid var(--ap-gold)!important;
  outline-offset:2px;
  box-shadow:none!important;
}
@media(hover:hover) and (pointer:fine){
  html body .ap-filter-panel-toggle.ap-secondary-button:hover{
    border-color:var(--ap-color-accent-border)!important;
    background:color-mix(in srgb,var(--ap-color-accent) 16%,transparent)!important;
    color:var(--ap-color-accent-bright,var(--ap-gold))!important;
    box-shadow:none!important;
  }
}
/* En pantallas táctiles el foco persistente no debe convertir una flecha de
   sección en un botón negro distinto a sus pares. */
@media(max-width:760px),(hover:none),(pointer:coarse){
  html body .ap-filter-panel-toggle.ap-secondary-button:is(:hover,:focus,:focus-visible,:active){
    border-color:transparent!important;
    background:transparent!important;
    color:var(--ap-color-accent-bright,var(--ap-gold))!important;
    box-shadow:none!important;
    outline:none!important;
    transform:none!important;
  }
}
.ap-filter-panel-collapsible.is-collapsed>:not(.existing-filter-head):not(.foods-section-header){display:none!important}
.ap-filter-panel-collapsible.is-collapsed{overflow:hidden!important}
.ap-filter-panel-collapsible.is-collapsed>.existing-filter-head,
.ap-filter-panel-collapsible.is-collapsed>.foods-section-header{border-bottom-color:var(--ap-color-accent)!important}
.client-title.is-collapsed,
.client-section.is-collapsed{border-bottom-color:var(--ap-color-accent)!important}
.ap-user-section-content-hidden{display:none!important}
@media(max-width:620px){
  .ap-filter-panel-collapsible>.existing-filter-head .ap-filter-active-count,
  .ap-filter-panel-collapsible>.foods-section-header .ap-filter-active-count{padding:4px 7px;font-size:14px}
}

/* AP ACCENT THEMES
   El acento es una preferencia propia de la app y nunca depende del sistema
   operativo. Cada variante redefine solamente los tokens raiz; los estados,
   superficies, iconos y controles continúan derivándose del mismo contrato. */
:root[data-ap-accent="ocean"]{
  --ap-color-accent:#236783;
  --ap-dark-accent-tint:2.5%;
  --ap-color-page-bg:#edf1f4;
  --ap-color-bg:#f3f6f8;
  --ap-color-surface-soft:#f7f9fa;
  --ap-color-field-calculated:#eef4f6;
}
:root[data-ap-accent="teal"]{
  --ap-color-accent:#246f5d;
  --ap-dark-accent-tint:2.5%;
  --ap-color-page-bg:#edf2f0;
  --ap-color-bg:#f3f7f5;
  --ap-color-surface-soft:#f7faf9;
  --ap-color-field-calculated:#eef5f3;
}
:root[data-ap-accent="crimson"]{
  --ap-color-accent:#87383e;
  --ap-dark-accent-tint:2.5%;
  --ap-color-page-bg:#f3eeee;
  --ap-color-bg:#f8f4f4;
  --ap-color-surface-soft:#fbf8f8;
  --ap-color-field-calculated:#f6eeee;
}
/* El acceso protege la identidad Gold mediante data-ap-accent-lock; el
   controlador global fuerza allí el valor base y descarta la preferencia. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@view-transition{navigation:auto}
*{box-sizing:border-box}
body{margin:0;font-family:var(--ap-font-family);background:var(--ap-color-page-bg);color:var(--ap-color-text)}
.wrapper{display:flex;min-height:100vh}
main{flex:1;min-width:0}
/* Carga progresiva AP: navegación y estructura aparecen de inmediato. El
   contenido final cruza con un skeleton que reserva su espacio y evita tanto
   la pantalla vacía como los saltos de composición. */
html:is(.ap-page-booting,.ap-page-ready) .wrapper>:not(ap-sidebar){position:relative;visibility:visible;opacity:1}
html:is(.ap-page-booting,.ap-page-ready) .wrapper>:not(ap-sidebar)>:not(.ap-page-skeleton){transition:opacity var(--ap-duration-page) ease-out}
html.ap-page-booting .wrapper>:not(ap-sidebar)>:not(.ap-page-skeleton){visibility:hidden;opacity:0;pointer-events:none}
html.ap-page-ready .wrapper>:not(ap-sidebar)>:not(.ap-page-skeleton){visibility:visible;opacity:1;pointer-events:auto}
html.ap-page-navigating .wrapper>:not(ap-sidebar){opacity:0!important;pointer-events:none!important;transition:opacity var(--ap-duration-page) ease-in-out!important}
html.ap-page-booting :is(.tab-view:not([hidden]),.config-view){animation:none!important}
.ap-page-skeleton{position:absolute;inset:0 0 auto;z-index:900;min-height:100vh;padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:116px 72px minmax(220px,1fr);grid-template-areas:"hero hero" "tabs tabs" "primary secondary";gap:18px;background:var(--ap-color-page-bg);opacity:1;visibility:visible;pointer-events:none;transition:opacity var(--ap-duration-page) ease-out,visibility 0s linear var(--ap-duration-page)}
.ap-page-skeleton.is-leaving,html.ap-page-ready .ap-page-skeleton{opacity:0;visibility:hidden}
.ap-page-skeleton__surface{min-width:0;overflow:hidden;border:1px solid var(--ap-color-border);border-radius:var(--ap-radius-card);background:var(--ap-skeleton-surface);box-shadow:var(--ap-shadow-card)}
.ap-page-skeleton__surface--hero{grid-area:hero;padding:22px;display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:16px;border-bottom:4px solid var(--ap-color-accent)}
.ap-page-skeleton__surface--tabs{grid-area:tabs;padding:13px 22px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:28px}
.ap-page-skeleton__surface--primary{grid-area:primary;padding:20px;display:grid;align-content:start;gap:15px}
.ap-page-skeleton__surface--secondary{grid-area:secondary;padding:20px;display:grid;align-content:start;gap:15px}
.ap-page-skeleton__icon{width:62px;height:62px;border-radius:12px}
.ap-page-skeleton__copy{display:grid;gap:10px}
.ap-page-skeleton__bar,.ap-page-skeleton__icon,.ap-page-skeleton__tab{display:block;background:linear-gradient(100deg,var(--ap-skeleton-base) 28%,var(--ap-skeleton-highlight) 46%,var(--ap-skeleton-base) 64%);background-size:220% 100%;animation:ap-skeleton-shimmer 1.25s ease-in-out infinite}
.ap-page-skeleton__bar{height:15px;border-radius:999px}
.ap-page-skeleton__bar--title{width:min(310px,68%);height:24px}
.ap-page-skeleton__bar--copy{width:min(520px,88%)}
.ap-page-skeleton__bar--short{width:44%}
.ap-page-skeleton__bar--medium{width:70%}
.ap-page-skeleton__tab{height:38px;border-radius:8px}
.ap-page-skeleton__identity{width:230px;height:50px;border-radius:9px}
@keyframes ap-skeleton-shimmer{0%{background-position:115% 0}100%{background-position:-115% 0}}
@media(max-width:760px){
  .ap-page-skeleton{min-height:calc(100vh - 73px);padding:12px;grid-template-columns:1fr;grid-template-rows:186px 72px 190px 190px;grid-template-areas:"hero" "tabs" "primary" "secondary";gap:12px}
  .ap-page-skeleton__surface--hero{padding:16px;grid-template-columns:52px minmax(0,1fr);align-content:center;gap:13px}
  .ap-page-skeleton__surface--hero .ap-page-skeleton__identity{grid-column:1/-1;width:100%;height:54px}
  .ap-page-skeleton__icon{width:52px;height:52px;border-radius:10px}
  .ap-page-skeleton__bar--title{height:20px;width:72%}
  .ap-page-skeleton__surface--tabs{padding:10px 8px;gap:8px}
  .ap-page-skeleton__tab{height:46px}
  .ap-page-skeleton__surface--primary,.ap-page-skeleton__surface--secondary{padding:16px}
  .ap-page-skeleton{display:none!important}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important;mix-blend-mode:normal}
}
@media(prefers-reduced-motion:reduce){.ap-page-skeleton__bar,.ap-page-skeleton__icon,.ap-page-skeleton__tab{animation:none}}
/* Asesoría conserva cabecera y navegación como shell estable. Solo el
   contenido particular de cada documento participa en el fade universal. */
html.ap-advisory-document:is(.ap-page-booting,.ap-page-ready) .wrapper>main{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transition:none;
}
html.ap-advisory-document:is(.ap-page-booting,.ap-page-ready) ap-advisory-tabs~*{
  transition:opacity var(--ap-duration-page) ease-out;
}
html.ap-advisory-document.ap-page-booting ap-advisory-tabs~*{visibility:hidden;opacity:0;pointer-events:none}
html.ap-advisory-document.ap-page-ready ap-advisory-tabs~*{visibility:visible;opacity:1;pointer-events:auto}
/* Los documentos de Asesoría se conservan intactos dentro del shell. En modo
   embebido se retiran únicamente las piezas duplicadas; el shell padre anima
   el contenido completo y mantiene cabecera y navegación sin refrescos. */
html.ap-advisory-embedded,
html.ap-advisory-embedded body{min-height:0!important;background:transparent!important;overflow:hidden}
html.ap-advisory-embedded .wrapper{display:block;min-height:0!important}
html.ap-advisory-embedded .wrapper>ap-sidebar,
html.ap-advisory-embedded ap-advisory-header,
html.ap-advisory-embedded ap-advisory-tabs{display:none!important}
html.ap-advisory-embedded .wrapper>main{width:100%;min-height:0!important;margin:0!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;transition:none!important}
html.ap-advisory-embedded .wrapper>main>:not(.ap-page-skeleton){visibility:visible!important;opacity:1!important;pointer-events:auto!important;transition:none!important}
html.ap-advisory-embedded :is(.tab-view,.valuation-view,.planning-view,.nutrition-view,.training-view){min-height:0!important;animation:none!important}
html.ap-advisory-embedded .valuation-view{margin:0!important}
html.ap-advisory-embedded :is(.planning-view,.nutrition-view,.training-view){padding:0!important}
html.ap-advisory-embedded ap-advisory-tabs~*{visibility:visible!important;opacity:1!important;pointer-events:auto!important;transition:none!important}
/* El shell global conserva navegación y documento activo. Sus páginas hijas
   retiran únicamente el sidebar duplicado y nunca animan el documento: el
   panel nuevo permanece oculto hasta confirmar su readiness real. */
html.ap-global-embedded,
html.ap-global-embedded body{min-height:100%!important;background:var(--ap-color-page-bg)!important}
html.ap-global-embedded .wrapper{display:block;min-height:100vh!important}
html.ap-global-embedded .wrapper>ap-sidebar{display:none!important}
html.ap-global-embedded .wrapper>:not(ap-sidebar){
  width:100%!important;
  min-height:100vh!important;
  margin:0!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  transition:none!important;
}
html.ap-global-embedded .wrapper>:not(ap-sidebar)>:not(.ap-page-skeleton){
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  transition:none!important;
}
@media(max-width:760px){
  html.ap-global-embedded.ap-global-parent-scroll,
  html.ap-global-embedded.ap-global-parent-scroll body{
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  html.ap-global-embedded.ap-global-parent-scroll .wrapper,
  html.ap-global-embedded.ap-global-parent-scroll .wrapper>:not(ap-sidebar){min-height:0!important}
}
html.ap-global-embedded :is(.tab-view,.config-view,.ap-tab-page){animation:none!important}
html.ap-global-embedded.ap-page-navigating .wrapper>:not(ap-sidebar){opacity:1!important;pointer-events:auto!important}
html.ap-system-theme-transition .wrapper>:not(ap-sidebar){transition:opacity var(--ap-duration-system-theme) ease-in-out!important;pointer-events:none}
html.ap-system-theme-transition.ap-system-theme-transition-out .wrapper>:not(ap-sidebar){opacity:0!important}
html.ap-accent-transition .wrapper>:not(ap-sidebar){transition:opacity var(--ap-duration-accent) ease-in-out!important;pointer-events:none}
html.ap-accent-transition.ap-accent-transition-out .wrapper>:not(ap-sidebar){opacity:0!important}
html.ap-settings-transition .wrapper>:not(ap-sidebar){transition:opacity var(--ap-duration-settings) ease-in-out!important;pointer-events:none}
html.ap-settings-transition.ap-settings-transition-out .wrapper>:not(ap-sidebar){opacity:0!important}
@media(prefers-reduced-motion:reduce){html:is(.ap-page-booting,.ap-page-ready) .wrapper>:not(ap-sidebar)>:not(.ap-page-skeleton){transition:none}}
@media(prefers-reduced-motion:reduce){html.ap-system-theme-transition .wrapper>:not(ap-sidebar){transition:none!important;opacity:1}}
@media(prefers-reduced-motion:reduce){html.ap-accent-transition .wrapper>:not(ap-sidebar){transition:none!important;opacity:1}}
@media(prefers-reduced-motion:reduce){html.ap-settings-transition .wrapper>:not(ap-sidebar){transition:none!important;opacity:1}}
.ap-user-view-transition .tab-view:not([hidden]){animation:none!important;transition:opacity var(--ap-duration-page) ease-in-out;pointer-events:none}
.ap-user-view-transition.ap-user-view-transition-out .tab-view:not([hidden]){opacity:0}
html.ap-global-embedded .asesorados-content.ap-user-view-transition .tab-view:not([hidden]){transition:opacity var(--ap-duration-page) ease-in-out!important;pointer-events:none!important}
html.ap-global-embedded .asesorados-content.ap-user-view-transition.ap-user-view-transition-out .tab-view:not([hidden]){opacity:0!important}
.asesorados-content>.tab-view{animation:none!important}
@media(prefers-reduced-motion:reduce){.ap-user-view-transition .tab-view:not([hidden]){transition:none!important;opacity:1}}
/* Contrato universal de visibilidad: ningún estilo de componente puede
   volver visible un elemento que la lógica haya marcado como hidden. */
[hidden]{display:none!important}
.ap-tab-page{background:var(--ap-bg);color:var(--ap-text)}
.ap-surface{background:var(--ap-surface);color:var(--ap-text)}
ap-sidebar{width:var(--ap-sidebar-width);flex:0 0 var(--ap-sidebar-width);min-height:100vh;background:var(--ap-sidebar);color:#fff;padding:20px 10px;border-right:1px solid var(--ap-sidebar-border);box-shadow:8px 0 24px rgba(0,0,0,.12);display:flex;flex-direction:column;align-items:center;view-transition-name:ap-global-navigation}
::view-transition-group(ap-global-navigation){animation-duration:0s}
::view-transition-old(ap-global-navigation),::view-transition-new(ap-global-navigation){animation:none;mix-blend-mode:normal}
ap-sidebar .ap-nav-item{position:relative;z-index:1;display:block;width:100%;margin:14px 0;padding:8px 0;border:0;border-radius:8px;box-sizing:border-box;background:transparent;color:#e2e2e2;text-align:center;text-decoration:none;font:inherit;cursor:pointer;user-select:none;transition:background .2s,color .2s,box-shadow .2s}
ap-sidebar .ap-nav-item:focus-visible{background:var(--ap-sidebar-hover);color:var(--ap-gold);outline:none}@media(hover:hover) and (pointer:fine){ap-sidebar .ap-nav-item:not(.active):hover{background:var(--ap-sidebar-hover);color:var(--ap-gold);outline:none}}
ap-sidebar .ap-nav-item.active{color:var(--ap-gold);font-weight:700;background:var(--ap-sidebar-active);box-shadow:inset 3px 0 0 var(--ap-gold)}
ap-sidebar .ap-nav-item.is-disabled{opacity:.42;cursor:not-allowed;pointer-events:none}
ap-sidebar .sidebar-icon{display:inline-grid;place-items:center;width:24px;height:24px;font-size:24px;line-height:1}
ap-sidebar .ap-fluent-nav-icon{display:block;width:24px;height:24px;overflow:visible;fill:currentColor;stroke:none}
ap-sidebar .ap-fluent-nav-icon__reference-outline{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
ap-sidebar :is(.ap-fluent-nav-icon__regular,.ap-fluent-nav-icon__filled){display:block;transition:opacity var(--ap-duration-fade,250ms) ease}
ap-sidebar .ap-fluent-nav-icon__regular{opacity:1}
ap-sidebar .ap-fluent-nav-icon__filled{opacity:0}
ap-sidebar .ap-nav-item.active .ap-fluent-nav-icon__regular{opacity:0}
ap-sidebar .ap-nav-item.active .ap-fluent-nav-icon__filled{opacity:1}
ap-sidebar .ap-nav-item.active:is([data-ap-nav-key="nutricion"],[data-ap-nav-key="entrenamiento"]) .ap-fluent-nav-icon__regular{opacity:1}
ap-sidebar .ap-nav-item.active{--ap-nav-icon-cutout:var(--ap-sidebar-active)}
ap-sidebar .ap-nav-item.active .ap-fluent-nav-icon__planning-detail{fill:var(--ap-nav-icon-cutout)}
ap-sidebar .ap-fluent-nav-icon--ruler{transform:rotate(45deg)}
ap-sidebar .sidebar-motto{width:170px;margin:auto 0 0;padding-top:18px;color:#f3f3f3;letter-spacing:5px;font-size:14px;line-height:1;text-align:center}
ap-sidebar .sidebar-motto p,ap-sidebar .sidebar-motto b{display:block;margin:16px 0;color:inherit;font:inherit}
ap-sidebar .sidebar-motto span{display:block;width:66px;height:1px;margin:0 auto;background:var(--ap-gold)}
@media(min-width:761px){
  ap-sidebar{
    position:relative;
    z-index:1000;
    width:76px;
    flex:0 0 76px;
    padding:14px 8px;
    box-sizing:border-box;
    overflow:visible;
  }
  ap-sidebar .ap-nav-item{
    width:52px;
    height:52px;
    min-height:52px;
    margin:8px 0;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:0;
    line-height:0;
  }
  ap-sidebar .ap-nav-item br{display:none}
  ap-sidebar .ap-nav-item[data-ap-nav-key="inicio"]{--ap-nav-icon-y:.625px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="asesorados"]{--ap-nav-icon-y:-.625px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="nutricion"]{--ap-nav-icon-y:1.185px}
  ap-sidebar .sidebar-icon{
    position:absolute;
    top:calc(50% + var(--ap-nav-icon-y,0px));
    left:50%;
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    margin:0;
    font-size:30px;
    line-height:1;
    transform:translate(-50%,-50%);
  }
  ap-sidebar .ap-fluent-nav-icon{width:30px;height:30px}
  ap-sidebar .ap-nav-item::after{
    content:attr(aria-label);
    position:absolute;
    z-index:2100;
    top:50%;
    left:calc(100% + 12px);
    min-width:max-content;
    padding:9px 12px;
    border:1px solid var(--ap-gold);
    border-radius:7px;
    background:#111;
    color:#fff;
    box-shadow:0 10px 24px rgba(0,0,0,.28);
    font:700 14px/1 Arial,sans-serif;
    white-space:nowrap;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-5px,-50%);
    transition:opacity var(--ap-duration-fade,250ms),transform .14s,visibility .14s;
  }

  ap-sidebar .ap-nav-item:focus-visible::after{
    opacity:1;
    visibility:visible;
    transform:translate(0,-50%);
  }@media(hover:hover) and (pointer:fine){ap-sidebar .ap-nav-item:hover::after{
    opacity:1;
    visibility:visible;
    transform:translate(0,-50%);
  }}
  ap-sidebar .sidebar-motto{display:none}
}
.client-title,.client-section,.planning-heading,.valuation-heading{background:var(--ap-black);color:#fff}

/* Tooltip compacto para acciones e iconos. Replica la etiqueta lateral del
   sidebar y evita depender del tooltip nativo del navegador. */
.ap-compact-tooltip{position:relative}
.ap-compact-tooltip::after{
  content:attr(aria-label);
  position:absolute;
  z-index:2100;
  top:calc(100% + 7px);
  left:50%;
  min-width:max-content;
  padding:9px 12px;
  border:1px solid var(--ap-gold);
  border-radius:7px;
  background:#111;
  color:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.28);
  font:700 14px/1 Arial,sans-serif;
  white-space:nowrap;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,-4px);
  transition:opacity var(--ap-duration-fade,250ms),transform .14s,visibility .14s;
}
.ap-compact-tooltip--end::after{right:0;left:auto;transform:translate(4px,-4px)}
.ap-compact-tooltip:focus-visible::after,
.ap-compact-tooltip:has(:focus-visible)::after{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}
.ap-compact-tooltip--end:focus-visible::after,
.ap-compact-tooltip--end:has(:focus-visible)::after{transform:translate(0,0)}
.ap-macro-tooltip{
  padding:2px 4px;
  border:0;
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:inherit;
  line-height:inherit;
  text-transform:none;
  cursor:help;
  touch-action:manipulation;
}
.ap-macro-tooltip:focus-visible{outline:2px solid var(--ap-color-accent);outline-offset:2px}
@media(hover:hover) and (pointer:fine){
  .ap-compact-tooltip:hover::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .ap-compact-tooltip--end:hover::after{transform:translate(0,0)}
}
body .ap-client-identity{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  width:auto!important;
  min-width:210px!important;
  min-height:62px!important;
  padding:10px 14px!important;
  border:1px solid var(--ap-color-accent-border)!important;
  border-radius:9px!important;
  box-sizing:border-box!important;
  background:rgba(255,255,255,.055)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-family:Arial,sans-serif!important;
}
body .ap-client-identity[hidden]{display:none!important}
body .ap-client-identity>svg{
  width:28px!important;
  height:28px!important;
  flex:0 0 28px!important;
  fill:none!important;
  stroke:var(--ap-gold)!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body .ap-client-identity strong{
  display:block!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.15!important;
}
body .ap-client-identity small{
  display:block!important;
  margin-top:3px!important;
  color:#aaa!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.2!important;
}

/* La ficha del usuario ocupa una fila propia cuando el área útil se estrecha. */
@container ap-content (max-width:850px){
  .valuation-hero,.planning-hero,.client-hero{
    flex-direction:column!important;
    align-items:stretch!important;
    gap:16px!important;
  }
  .valuation-hero-copy,.planning-hero-copy,.client-hero-copy{width:100%!important}
  .valuation-hero-client,.planning-client,.client-hero-identity{width:100%!important;min-width:0!important}
}

/* ==========================================================================
   AP DESIGN SYSTEM — COMPONENTES UNIVERSALES
   Toda tab nueva debe componer su interfaz con estas clases. Los alias
   config-* mantienen compatibilidad mientras migramos las vistas existentes.
   ========================================================================== */
:root[data-ap-resolved-theme="dark"]{
  --ap-color-page-bg:var(--ap-dark-bg,#0d0c0b);
  --ap-color-bg:var(--ap-dark-tab-bg,#0d0c0b);
  --ap-color-surface:var(--ap-dark-surface,#181818);
  --ap-color-surface-soft:var(--ap-dark-surface-raised,#202020);
  --ap-color-text:var(--ap-color-text-on-dark);
  --ap-color-muted:#aaa;
  --ap-color-border:var(--ap-dark-border,#3e3e3e);
  --ap-color-divider:color-mix(in srgb,var(--ap-dark-border,#3e3e3e) 72%,var(--ap-dark-surface,#181818));
  --ap-table-head-start:color-mix(in srgb,var(--ap-color-accent) 16%,var(--ap-color-surface-soft));
  --ap-table-head-end:color-mix(in srgb,var(--ap-color-accent) 10%,var(--ap-color-surface-soft));
  --ap-table-row-bg:var(--ap-color-surface);
  --ap-table-row-hover-bg:color-mix(in srgb,var(--ap-color-accent) 13%,var(--ap-color-surface));
  --ap-table-total-bg:color-mix(in srgb,#a0a0a0 14%,var(--ap-color-surface));
  --ap-table-total-text:var(--ap-color-text);
  --ap-table-frame:color-mix(in srgb,#808080 30%,var(--ap-color-surface));
  --ap-table-divider:color-mix(in srgb,#808080 22%,var(--ap-color-surface));
  --ap-color-icon-bg:var(--ap-color-accent-surface);
  --ap-color-callout-bg:var(--ap-color-accent-surface-muted);
  --ap-color-callout-border:color-mix(in srgb,var(--ap-color-accent) 28%,var(--ap-color-border));
  --ap-color-avatar-end:color-mix(in srgb,var(--ap-color-accent) 18%,var(--ap-color-header));
  --ap-shadow-card:none;
  --ap-dropdown-arrow-color:#fff;
}

/* Marca obligatoria universal: Registro de usuario es la referencia visual. */
:is(.required-mark,.ap-required-mark,.food-editor-field>strong>b){
  color:var(--ap-color-accent-strong)!important;
  font-family:var(--ap-font-family)!important;
  font-size:150%!important;
  font-weight:800!important;
  line-height:.7!important;
}

/* Flecha universal AP: mismo chevrón para selects nativos y personalizados. */
.ap-dropdown__trigger>svg{
  color:var(--ap-dropdown-arrow-color)!important;
}
.country-picker-trigger:after,
.activity-picker-toggle:after{
  content:""!important;
  position:absolute!important;
  top:50%!important;
  width:16px!important;
  height:16px!important;
  display:block!important;
  background-color:var(--ap-dropdown-arrow-color)!important;
  color:transparent!important;
  font-size:0!important;
  transform:translateY(-50%)!important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat!important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat!important;
}
.country-picker-trigger:after{right:14px!important}
.activity-picker-toggle{color:transparent!important;font-size:0!important}
.activity-picker-toggle:after{left:50%!important;translate:-50% 0!important}
.ap-card,.config-v2-card{
  padding:var(--ap-space-card);
  border:1px solid var(--ap-color-border);
  border-radius:var(--ap-radius-card);
  background:var(--ap-color-surface);
  color:var(--ap-color-text);
  box-shadow:var(--ap-shadow-card);
  box-sizing:border-box;
}
/* Radio universal de cards y paneles. El último bloque hereda las esquinas
   inferiores para evitar remates cuadrados sin recortar tooltips flotantes. */
:where(.ap-card,.config-v2-card,.card,.client-card,.valuation-panel,.planning-panel){
  border-radius:var(--ap-radius-card)!important;
  background-clip:padding-box;
}
:where(.ap-card,.config-v2-card,.card,.client-card,.valuation-panel,.planning-panel)>:last-child{
  border-bottom-left-radius:calc(var(--ap-radius-card) - 1px);
  border-bottom-right-radius:calc(var(--ap-radius-card) - 1px);
  background-clip:padding-box;
}
.ap-section-card>.ap-section-header,.config-v2-card>.config-v2-title{
  margin:calc(-1 * var(--ap-space-card)) calc(-1 * var(--ap-space-card)) 20px;
  padding:14px 18px;
  border-bottom:var(--ap-section-header-border-width) solid var(--ap-color-header-border);
  border-radius:var(--ap-radius-header) var(--ap-radius-header) 0 0;
  display:flex;
  align-items:center;
  gap:13px;
  background:var(--ap-color-header);
  color:var(--ap-color-header-text);
  box-sizing:border-box;
}
.ap-section-header h2,.config-v2-title h2{margin:0;font-size:17px}
.ap-section-header p,.config-v2-card>.config-v2-title p{margin:5px 0 0;color:var(--ap-color-header-muted);font-size:14px}
.ap-icon-tile,.config-v2-icon{
  width:28px;height:28px;flex:0 0 28px;border-radius:7px;display:grid;place-items:center;
  background:var(--ap-color-icon-bg);color:var(--ap-color-accent);font-size:17px;font-weight:800;
}
/* ESTÁNDAR AP DE TARJETAS DE SELECCIÓN / CATÁLOGO */
.ap-showcase-card{
  min-height:258px;padding:24px 22px;border:1px solid var(--ap-color-border);border-radius:11px;
  display:flex;flex-direction:column;align-items:center;box-sizing:border-box;background:var(--ap-color-surface);
  color:var(--ap-color-text);text-align:center;box-shadow:var(--ap-shadow-card);
  transition:border-color var(--ap-duration-fast),transform var(--ap-duration-fast),box-shadow var(--ap-duration-fast);
}
.ap-showcase-card__icon{
  width:92px;height:92px;flex:0 0 92px;border:1px solid color-mix(in srgb,var(--ap-color-accent) 28%,var(--ap-color-border));
  border-radius:50%;display:grid;place-items:center;background:var(--ap-color-icon-bg);
  box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--ap-color-accent) 5%,transparent);
  transition:transform var(--ap-duration-fast),border-color var(--ap-duration-fast),box-shadow var(--ap-duration-fast);
}
.ap-showcase-card__title{margin:16px 0 0;color:var(--ap-color-text);font-size:20px;line-height:1.2;letter-spacing:.3px}
.ap-showcase-card__line{width:42px;height:2px;margin:12px 0;display:block;background:var(--ap-color-accent)}
.ap-showcase-card__description{max-width:330px;min-height:52px;margin:0;color:var(--ap-color-muted);font-size:14px;line-height:1.5}
.ap-showcase-card:has(.ap-showcase-card__action){min-height:320px}
.ap-showcase-card__action{margin-top:auto}
@media(hover:hover) and (pointer:fine){
  .ap-showcase-card:not(:has(input:checked)):not(.is-selected):not([aria-selected="true"]):hover{border-color:color-mix(in srgb,var(--ap-color-accent) 68%,var(--ap-color-border));transform:translateY(-2px);box-shadow:0 8px 18px rgba(17,17,17,.10),0 12px 30px color-mix(in srgb,var(--ap-color-accent) 30%,transparent)}
  .ap-showcase-card:not(:has(input:checked)):not(.is-selected):not([aria-selected="true"]):hover .ap-showcase-card__icon{transform:translateY(-3px) scale(1.03);border-color:var(--ap-color-accent-border)}
}
html:is([data-ap-resolved-theme="dark"],[data-ap-theme="dark"]) .ap-showcase-card{background:var(--ap-dark-surface,#181818);border-color:var(--ap-dark-border,#3e3e3e);box-shadow:none}
html:is([data-ap-resolved-theme="dark"],[data-ap-theme="dark"]) .ap-showcase-card__icon{border-color:var(--ap-color-accent-border);background:var(--ap-color-accent-surface);box-shadow:inset 0 0 0 7px var(--ap-color-accent-soft)}
@media(hover:hover) and (pointer:fine){
  html:is([data-ap-resolved-theme="dark"],[data-ap-theme="dark"]) .ap-showcase-card:not(:has(input:checked)):not(.is-selected):not([aria-selected="true"]):hover{border-color:color-mix(in srgb,var(--ap-color-accent) 68%,var(--ap-color-border));box-shadow:0 10px 26px color-mix(in srgb,var(--ap-color-accent) 20%,transparent)}
}
@media(prefers-reduced-motion:reduce){.ap-showcase-card,.ap-showcase-card__icon{transition:none}@media(hover:hover) and (pointer:fine){.ap-showcase-card:hover,.ap-showcase-card:hover .ap-showcase-card__icon{transform:none}}}
@media(hover:none),(pointer:coarse){
  .ap-showcase-card,.ap-showcase-card__icon{transition:none!important;transform:none!important}
  .ap-showcase-card:is(:hover,:focus,:focus-visible),.ap-showcase-card:is(:hover,:focus,:focus-visible) .ap-showcase-card__icon{transform:none!important}
}
.ap-tabs,.config-tabs{
  min-height:72px;padding:0 18px;border:1px solid var(--ap-color-border);border-radius:var(--ap-radius-card);
  background:var(--ap-color-surface);color:var(--ap-color-text);box-shadow:var(--ap-shadow-card);
}
.ap-tab,.config-tab{
  position:relative;padding:0 22px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:13px;
  background:transparent;color:var(--ap-color-muted);font:700 14px var(--ap-font-family);white-space:nowrap;cursor:pointer;
  transition:color 170ms ease,text-shadow 170ms ease;
}
.ap-tab>span,.config-tab>span{margin:0;display:inline-flex;align-items:center;justify-content:center;color:#777;transition:color 170ms ease,filter 170ms ease}
.ap-tab>span svg,.config-tab>span svg{width:var(--ap-tab-icon-size);height:var(--ap-tab-icon-size)}
.ap-tab::after,.config-tab::after{content:"";position:absolute;bottom:0;left:50%;width:min(126px,calc(100% - 20px));height:3px;border-radius:3px 3px 0 0;background:var(--ap-color-accent);opacity:0;transform:translateX(-50%) scaleX(.5);transform-origin:center;transition:opacity var(--ap-duration-tab) ease-in-out,transform var(--ap-duration-tab) ease-in-out}
.ap-tab.active,.ap-tab[aria-selected="true"],.config-tab.active{color:var(--ap-color-accent-strong)}
.ap-tab.active>span,.ap-tab[aria-selected="true"]>span,.config-tab.active>span{color:var(--ap-color-accent)}
.ap-tab.active::after,.ap-tab[aria-selected="true"]::after,.config-tab.active::after{opacity:1;transform:translateX(-50%) scaleX(1)}
@media(hover:hover) and (pointer:fine){
  .ap-tab:not(.active):not([aria-selected="true"]):hover,.ap-tab:focus-visible,.config-tab:not(.active):not([aria-selected="true"]):hover,.config-tab:focus-visible{color:var(--ap-color-text);outline:0}
  .ap-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus-visible),.config-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus-visible){color:var(--ap-color-accent-strong);text-shadow:0 0 10px color-mix(in srgb,var(--ap-color-accent) 38%,transparent)}
  .ap-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus-visible)>span,.config-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus-visible)>span{color:var(--ap-color-accent);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--ap-color-accent) 45%,transparent))}
  html:is([data-ap-resolved-theme="dark"],[data-ap-theme="dark"]) :is(.ap-tab,.config-tab):not(.active):not([aria-selected="true"]):is(:hover,:focus-visible){color:var(--ap-color-accent-bright);text-shadow:0 0 12px color-mix(in srgb,var(--ap-color-accent) 55%,transparent)}
  html:is([data-ap-resolved-theme="dark"],[data-ap-theme="dark"]) :is(.ap-tab,.config-tab):not(.active):not([aria-selected="true"]):is(:hover,:focus-visible)>span{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--ap-color-accent) 60%,transparent))}
}
@media(hover:none),(pointer:coarse){
  .ap-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus,:focus-visible),.config-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus,:focus-visible){color:var(--ap-color-muted);text-shadow:none;outline:0}
  .ap-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus,:focus-visible)>span,.config-tab:not(.active):not([aria-selected="true"]):is(:hover,:focus,:focus-visible)>span{color:#777;filter:none}
}
.ap-tab-panel,.config-tab-content{animation:ap-content-fade-in var(--ap-duration-view) ease-out both}
.ap-tab-panel[hidden],.config-tab-content[hidden]{display:none!important}
@keyframes ap-content-fade-in{from{opacity:0}to{opacity:1}}
.ap-button,.config-button{min-height:42px;padding:0 15px;border:1px solid var(--ap-color-accent);border-radius:var(--ap-radius-control);display:inline-flex;align-items:center;justify-content:center;background:var(--ap-color-surface);color:var(--ap-color-accent-strong);font:700 14px var(--ap-font-family);text-decoration:none;cursor:pointer}
.ap-button:focus-visible,.config-button:focus-visible{background:var(--ap-color-surface-soft);outline:0}
@media(hover:hover) and (pointer:fine){
  .ap-button:hover,.config-button:hover{background:var(--ap-color-surface-soft);outline:0}
}
.ap-button.primary,.config-button.primary{border-color:var(--ap-color-header);background:var(--ap-color-header);color:var(--ap-color-accent)}
.ap-note,.config-note{padding:14px 16px;border:1px solid var(--ap-color-border);border-radius:9px;background:var(--ap-color-surface-soft);color:var(--ap-color-muted);font-size:14px}
.ap-solid-note{
  border-color:var(--ap-color-header-border)!important;
  background:var(--ap-color-header,#0b0b0b)!important;
  background-image:none!important;
  color:#eee!important;
  box-shadow:none!important;
}
/* Cierre universal de formularios/páginas: primero la nota final y después
   las acciones. Guardar/Cancelar siempre constituyen el último bloque útil. */
.ap-final-note{order:998;width:100%;box-sizing:border-box}
.ap-form-actions,.client-actions,.valuation-actions,.planning-actions{
  order:999;
  width:100%;
  box-sizing:border-box;
}
form>.ap-final-note,form>.ap-form-actions{grid-column:1/-1}

/* Universal information symbol. Its mask matches the Configuracion icon so
   notes never depend on the operating system's circled-i font glyph. */
.ap-info-icon{
  display:inline-block!important;
  width:18px!important;
  height:18px!important;
  min-width:18px;
  flex:0 0 18px;
  vertical-align:-4px;
  color:inherit;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='7.5' r='1.25' fill='black'/%3E%3Cpath d='M12 11v6' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='7.5' r='1.25' fill='black'/%3E%3Cpath d='M12 11v6' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.ap-callout,.config-v2-callout{padding:18px 22px;border:1px solid var(--ap-color-callout-border);border-radius:var(--ap-radius-card);background:var(--ap-color-callout-bg);color:var(--ap-color-text)}
.ap-callout p,.config-v2-callout p{color:var(--ap-color-muted)}
.ap-choice-card,.config-theme-option{border:1px solid var(--ap-color-border);border-radius:10px;background:var(--ap-color-surface);color:var(--ap-color-text)}
.ap-choice-card:has(input:checked),.config-theme-option:has(input:checked){border-color:var(--ap-color-accent);box-shadow:inset 0 0 0 1px var(--ap-color-accent)}
/* Universal alignment utility for choice cards and compact data groups. */
.ap-content-centered{align-items:center!important;text-align:center!important}
.ap-content-centered>small,.ap-content-centered>p,.ap-content-centered>dl{width:100%;text-align:center!important}
.ap-field-label,.config-form-grid label,.config-selects label{color:var(--ap-color-muted);font-size:14px;font-weight:700}
@media(max-width:760px){
  :root{--ap-tab-icon-size:18.75px}
  .ap-card,.config-v2-card{padding:18px var(--ap-space-card-mobile)}
  .ap-section-card>.ap-section-header,.config-v2-card>.config-v2-title{margin:-18px calc(-1 * var(--ap-space-card-mobile)) 18px;padding:13px var(--ap-space-card-mobile)}
  .ap-section-header h2,.config-v2-card>.config-v2-title h2{font-size:15px}
  .ap-tabs,.config-tabs{min-height:58px;padding:0 4px}
  .ap-tab,.config-tab{
    min-width:0;
    min-height:68px;
    padding:6px 5px 5px;
    flex-direction:column;
    gap:4px;
    font-size:14px;
    font-weight:400;
    line-height:1.1;
    text-align:center;
  }
  .ap-tab:is(.active,[aria-selected="true"]),.config-tab:is(.active,[aria-selected="true"]){font-weight:700}
}
@media(prefers-reduced-motion:reduce){.ap-tab,.ap-tab>span,.ap-tab::after,.config-tab,.config-tab>span,.config-tab::after{transition-duration:0s}.ap-tab-panel,.config-tab-content{animation:none}}

/* Grosor contractual para todos los encabezados, incluidos los módulos heredados. */
.ap-primary-header,.ap-secondary-header,
.valuation-layout .valuation-panel>.valuation-heading,
.results-panel>.valuation-heading,
.planning-panel>.planning-heading,
.client-card>.client-title,
.client-grid>.client-section,
.results-dashboard .results-group-head,
.planning-subsection-title,
.projection-card-title,
.existing-results-head{
  border-bottom-width:var(--ap-section-header-border-width)!important;
}
/* Piso tipográfico universal para controles nativos. Su baja especificidad
   solo corrige el 13.333 px que algunos navegadores aplican por defecto;
   cualquier tamaño explícito de 14 px o mayor conserva su valor. */
button,input,select,textarea{
  font-family:inherit;
  font-size:var(--ap-min-font-size,14px);
}
body select.ap-native-select-hidden{display:none!important}
body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body select,
body textarea,
.country-picker-trigger,
.country-picker-search{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  border-color:var(--ap-border);
  box-sizing:border-box!important;
  font-size:var(--ap-field-font-size)!important;
}
body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body select:not([multiple]),
.country-picker-trigger,
.country-picker-search{
  height:var(--ap-field-height)!important;
  min-height:var(--ap-field-height)!important;
}
/* ESTÁNDAR AP: spinner numérico intermedio y uniforme en todos los HTML. */
body input[type="number"]{
  line-height:30px!important;
}
body input[type="number"]::-webkit-inner-spin-button{
  width:18px;
  height:30px;
  margin:0 -6px 0 4px;
  cursor:pointer;
}
body input[type="number"]:is([readonly],[disabled])::-webkit-inner-spin-button{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:none!important;
  width:0!important;
  margin:0!important;
}
body textarea{min-height:96px!important;line-height:1.45}
body select[multiple]{min-height:96px!important}
body select[multiple],
body select[multiple] option{
  accent-color:var(--ap-gold)!important;
}
/* ESTÁNDAR AP: los resultados calculados conservan el mismo tamaño que los fields. */
body output{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:var(--ap-field-height)!important;
  min-height:var(--ap-field-height)!important;
  box-sizing:border-box!important;
  font-family:inherit!important;
  font-size:var(--ap-field-font-size)!important;
  font-weight:400!important;
}
/* ESTÁNDAR AP: todos los selectores comparten el tamaño del selector de país. */
body option,
.country-picker-trigger,
.country-picker-option,
.ap-dropdown__trigger,
.ap-dropdown__option{
  font-size:var(--ap-field-option-size)!important;
  font-weight:400!important;
}
.country-picker-option strong,
.ap-dropdown__option strong,
.ap-phase-pace__selected,
.ap-phase-pace__selected b,
.ap-phase-pace__menu>div,
.ap-phase-pace__menu>div b{
  font-weight:400!important;
}
/* ESTÁNDAR AP: controles alternativos y fallbacks no pueden reintroducir negritas. */
.planning-view .ap-phase-pace-select select,
.planning-view .ap-phase-pace-select select option{
  font-size:var(--ap-field-option-size)!important;
  font-weight:400!important;
}
.macro-weight-option span,
.macro-weight-option b{
  font-weight:400!important;
}
/* ESTÁNDAR AP: valores estructurados centrados; captura de texto libre a la izquierda. */
body .ap-field-centered{
  text-align:center!important;
  text-align-last:center!important;
}
body select.ap-field-centered option{
  text-align:center;
}
body .ap-field-free-text{
  text-align:left!important;
  text-align-last:auto!important;
}
.client-field{gap:var(--ap-field-gap)!important}
.client-field>label,
.valuation-row>label,
.planning-field>strong,
.existing-filters label,
.config-panel label{
  font-size:var(--ap-field-label-size)!important;
  line-height:1.35;
}
.client-feedback,.country-picker-hint{font-size:var(--ap-field-help-size)!important}
body .has-text-counter>.text-counter.text-counter{
  width:auto!important;
  min-width:0!important;
  right:10px!important;
  left:auto!important;
  text-align:right!important;
}
.ap-date-control{
  position:relative;
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  height:var(--ap-field-height);
}
.ap-date-control>.ap-date-display{
  position:relative;
  z-index:1;
  width:100%!important;
  height:100%!important;
  padding:0 12px!important;
  border:1px solid var(--ap-color-border)!important;
  border-radius:var(--ap-radius-control)!important;
  background:var(--ap-color-surface)!important;
  color:var(--ap-color-text)!important;
  font:400 var(--ap-field-option-size)/1 var(--ap-font-family)!important;
  text-align:center!important;
  line-height:normal!important;
  cursor:pointer!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.ap-date-control>.ap-date-display.is-empty{
  color:var(--ap-color-muted)!important;
}
.ap-date-control>.ap-date-native{
  position:absolute!important;
  z-index:-1!important;
  left:50%!important;
  bottom:0!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  opacity:0!important;
  overflow:hidden!important;
  clip-path:inset(50%)!important;
  pointer-events:none!important;
}
.ap-date-control:focus-within>.ap-date-display{
  border-color:var(--ap-gold)!important;
  outline:2px solid var(--ap-color-accent-focus);
}
.ap-date-picker{
  --ap-date-picker-surface:var(--ap-color-surface);
  --ap-date-picker-soft:var(--ap-color-surface-soft);
  --ap-date-picker-text:var(--ap-color-text);
  --ap-date-picker-muted:var(--ap-color-muted);
  position:fixed;
  z-index:2147483100;
  width:min(380px,calc(100vw - 24px));
  max-height:none;
  padding:12px;
  overflow:hidden;
  overscroll-behavior:contain;
  border:1px solid var(--ap-gold);
  border-radius:22px;
  background:var(--ap-date-picker-surface);
  color:var(--ap-date-picker-text);
  box-shadow:0 18px 52px rgba(0,0,0,.38);
  font-family:var(--ap-font-family);
  isolation:isolate;
}
.ap-date-picker button,.ap-date-picker input,.ap-date-picker output{
  font-family:inherit!important;
}
.ap-date-picker__header{
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ap-date-picker__period{
  min-width:0;
  min-height:42px;
  padding:6px 10px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--ap-gold);
  font-size:18px!important;
  font-weight:700!important;
  text-align:left;
  cursor:pointer;
}
.ap-date-picker__period::after{
  content:"";
  width:10px;
  height:10px;
  margin-left:9px;
  display:inline-block;
  border-right:3px solid currentColor;
  border-bottom:3px solid currentColor;
  transform:translateY(-3px) rotate(45deg);
  transition:transform var(--ap-duration-fast);
}
.ap-date-picker.is-choosing-period .ap-date-picker__period::after{
  transform:translateY(2px) rotate(225deg);
}
.ap-date-picker__nav{
  display:flex;
  align-items:center;
  gap:6px;
}
.ap-date-picker__nav button,.ap-date-picker__selector-row>button:not(.ap-date-picker__year){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--ap-gold);
  font-size:34px!important;
  font-weight:400!important;
  line-height:1!important;
  cursor:pointer;
}
.ap-date-picker__arrow{
  display:block;
  width:20px;
  height:20px;
  flex:0 0 20px;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ap-date-picker.is-choosing-period .ap-date-picker__nav{visibility:hidden;pointer-events:none}
.ap-date-picker__weekdays,.ap-date-picker__days{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  text-align:center;
}
.ap-date-picker__weekdays{
  min-height:34px;
  align-items:center;
  color:var(--ap-date-picker-muted);
  font-size:14px;
  font-weight:700;
  text-transform:uppercase;
}
.ap-date-picker__days{
  gap:2px 0;
}
.ap-date-picker__days button{
  width:40px;
  height:40px;
  max-width:100%;
  margin:auto;
  padding:0;
  border:2px solid transparent;
  border-radius:50%;
  background:transparent;
  color:var(--ap-date-picker-text);
  font-size:16px!important;
  font-weight:400!important;
  line-height:1!important;
  cursor:pointer;
}
.ap-date-picker__days button.is-outside{color:var(--ap-date-picker-muted);opacity:.52}
.ap-date-picker__days button.is-today{border-color:var(--ap-gold);color:var(--ap-gold);font-weight:700!important}
.ap-date-picker__days button.is-selected{
  border-color:var(--ap-gold);
  background:var(--ap-gold)!important;
  color:#111!important;
  font-weight:700!important;
}
.ap-date-picker__days button:disabled{opacity:.2;cursor:not-allowed}
.ap-date-picker__month-year,.ap-date-picker__years-view{
  min-height:252px;
  padding:8px 0 4px;
}
.ap-date-picker__selector-row{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.ap-date-picker__year{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%!important;
  height:44px!important;
  padding:0 10px!important;
  border:1px solid var(--ap-color-border)!important;
  border-radius:10px!important;
  background:var(--ap-date-picker-soft)!important;
  color:var(--ap-date-picker-text)!important;
  font-size:18px!important;
  font-weight:700!important;
  text-align:center!important;
  cursor:pointer;
}
.ap-date-picker__decade{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  color:var(--ap-date-picker-text);
  font-size:18px!important;
  font-weight:700!important;
}
.ap-date-picker__months,.ap-date-picker__years{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.ap-date-picker__months button,.ap-date-picker__years button{
  min-height:48px;
  padding:8px;
  border:1px solid var(--ap-color-border);
  border-radius:10px;
  background:var(--ap-date-picker-soft);
  color:var(--ap-date-picker-text);
  font-size:14px!important;
  cursor:pointer;
}
.ap-date-picker__months button.is-current,.ap-date-picker__years button.is-current{
  border-color:var(--ap-gold);
  background:var(--ap-gold)!important;
  color:#111!important;
  font-weight:700!important;
}
.ap-date-picker__months button:disabled,.ap-date-picker__years button:disabled{opacity:.28;cursor:not-allowed}
.ap-date-picker__footer{
  min-height:56px;
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--ap-color-border);
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:8px;
}
.ap-date-picker__clear,.ap-date-picker__cancel{
  min-height:42px;
  padding:8px 10px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--ap-gold);
  font-size:14px!important;
  font-weight:700!important;
  cursor:pointer;
}
.ap-date-picker__confirm{
  width:48px;
  height:48px;
  margin-left:auto;
  padding:0;
  border:1px solid var(--ap-gold);
  border-radius:50%;
  background:var(--ap-gold)!important;
  color:#111!important;
  font-size:27px!important;
  font-weight:700!important;
  line-height:1!important;
  cursor:pointer;
}
.ap-date-picker button:focus-visible,.ap-date-picker input:focus-visible{
  outline:0!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 34%,transparent)!important;
}
@media(hover:hover) and (pointer:fine){
  .ap-date-picker button:hover:not(:disabled):not(.is-selected){
    outline:0!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 34%,transparent)!important;
  }
}
@media(max-width:420px){
  .ap-date-picker{padding:8px;border-radius:20px}
  .ap-date-picker__header{min-height:44px}
  .ap-date-picker__period{min-height:38px;padding:5px 8px;font-size:17px!important}
  .ap-date-picker__nav button,.ap-date-picker__selector-row>button:not(.ap-date-picker__year){width:38px;height:38px;font-size:30px!important}
  .ap-date-picker__weekdays{min-height:28px}
  .ap-date-picker__days{gap:1px 0}
  .ap-date-picker__days button{width:34px;height:34px;font-size:15px!important}
  .ap-date-picker__month-year,.ap-date-picker__years-view{min-height:224px;padding-top:4px}
  .ap-date-picker__selector-row{grid-template-columns:40px minmax(0,1fr) 40px;gap:6px;margin-bottom:8px}
  .ap-date-picker__year{height:40px!important}
  .ap-date-picker__decade{min-height:40px;font-size:17px!important}
  .ap-date-picker__months,.ap-date-picker__years{gap:6px}
  .ap-date-picker__months button,.ap-date-picker__years button{min-height:40px;padding:5px}
  .ap-date-picker__footer{min-height:48px;margin-top:4px;padding-top:4px;grid-template-columns:auto auto 1fr}
  .ap-date-picker__clear,.ap-date-picker__cancel{min-height:38px;padding:6px 8px}
  .ap-date-picker__confirm{width:44px;height:44px;font-size:24px!important}
}
.ap-date-picker.is-viewport-compact{padding:7px}
.ap-date-picker.is-viewport-compact .ap-date-picker__header{min-height:40px}
.ap-date-picker.is-viewport-compact .ap-date-picker__days button{width:32px;height:32px;font-size:14px!important}
.ap-date-picker.is-viewport-compact .ap-date-picker__weekdays{min-height:25px}
.ap-date-picker.is-viewport-compact .ap-date-picker__month-year,
.ap-date-picker.is-viewport-compact .ap-date-picker__years-view{min-height:212px}
.ap-date-picker.is-viewport-compact .ap-date-picker__months button,
.ap-date-picker.is-viewport-compact .ap-date-picker__years button{min-height:38px;padding:4px}
.ap-date-picker.is-viewport-compact .ap-date-picker__footer{min-height:44px;margin-top:3px;padding-top:3px}
.ap-date-display{text-align:center!important}
.client-button,.valuation-button,.config-button{border-color:var(--ap-gold)}
.client-button.primary,.valuation-button.primary{background:var(--ap-gold)}
ap-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;margin:28px 20px 18px;color:var(--ap-muted);font-size:14px;text-align:center}
ap-footer::before,ap-footer::after{content:"";height:2px;background:var(--ap-gold-line)}
/* ESTÁNDAR AP DE NAVEGACIÓN: toda vista o tab entra con fade puro de 200 ms. */
.tab-view:not([hidden]),.config-view{animation:ap-content-fade-in var(--ap-duration-view) ease-out both}
@media(prefers-reduced-motion:reduce){.tab-view:not([hidden]),.config-view{animation:none}}
body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,
body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus-visible,
body textarea:focus,
body textarea:focus-visible,
body select:focus,
body select:focus-visible,
[contenteditable="true"]:focus,
[contenteditable="true"]:focus-visible,
[role="combobox"]:focus,
[role="combobox"]:focus-visible,
[role="textbox"]:focus,
[role="textbox"]:focus-visible,
.country-picker-search:focus,
.country-picker-search:focus-visible,
.country-picker-trigger:focus-visible,
.country-picker-trigger[aria-expanded="true"],
.ap-dropdown__trigger:focus,
.ap-dropdown__trigger:focus-visible,
.ap-dropdown.is-open .ap-dropdown__trigger,
.activity-picker-control:focus,
.activity-picker-control:focus-visible,
.activity-picker.is-open .activity-picker-control,
.ap-date-display:focus,
.ap-date-display:focus-visible,
.ap-date-control:focus-within>.ap-date-display{
  border-color:var(--ap-gold)!important;
  outline:none!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 28%,transparent)!important;
}
body select[multiple] option:checked{
  background:var(--ap-gold) linear-gradient(0deg,var(--ap-gold) 0%,var(--ap-gold) 100%);
  color:#111;
}
body input[type="checkbox"],
body input[type="radio"]{accent-color:var(--ap-gold)}
/* Foco dorado universal con cursor. Se limita a dispositivos con hover real
   para no introducir estados pegados ni alterar la interacción táctil. */
@media(hover:hover) and (pointer:fine){
  body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(:disabled):hover,
  body textarea:not(:disabled):hover,
  body select:not(:disabled):hover,
  [contenteditable="true"]:hover,
  [role="combobox"]:not([aria-disabled="true"]):hover,
  [role="textbox"]:not([aria-disabled="true"]):hover,
  .country-picker-trigger:not(:disabled):hover,
  .ap-dropdown__trigger:not(:disabled):hover,
  .activity-picker-control:hover,
  .ap-date-display:hover,
  :has(>.ap-date-display):hover>.ap-date-display{
    border-color:var(--ap-gold)!important;
    outline:none!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 28%,transparent)!important;
  }
}
@media(max-width:760px){
  :root{
    --ap-page-gap:12px;
    --ap-field-font-size:17px;
    --ap-field-height:50px;
    --ap-field-label-size:16px;
    --ap-field-help-size:14px;
    --ap-field-option-size:17px;
    --ap-field-gap:10px;
  }
  .wrapper{display:block}
  .ap-primary-header{
    min-height:52px!important;
    padding:13px 16px!important;
    box-sizing:border-box!important;
    font-family:Arial,sans-serif!important;
    font-size:17px!important;
    font-weight:700!important;
    line-height:1.25!important;
    letter-spacing:.2px!important;
  }
  .ap-secondary-header{
    min-height:48px!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    font-family:Arial,sans-serif!important;
    font-size:16px!important;
    font-weight:700!important;
    line-height:1.25!important;
    letter-spacing:.15px!important;
  }
  .ap-primary-header strong,
  .ap-primary-header h2,
  .ap-primary-header h3,
  .ap-secondary-header strong,
  .ap-secondary-header h2,
  .ap-secondary-header h3{
    font:inherit!important;
    letter-spacing:inherit!important;
  }
  .ap-primary-header svg,
  .ap-secondary-header svg{
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
  }
  .ap-primary-header small,
  .ap-secondary-header small{
    font-family:Arial,sans-serif!important;
    font-size:14px!important;
    line-height:1.35!important;
  }
  .ap-page-header h1{
    font-family:Arial,sans-serif!important;
    font-size:24px!important;
    font-weight:700!important;
    line-height:1.15!important;
    letter-spacing:.4px!important;
  }
  .ap-page-header p{
    font-family:Arial,sans-serif!important;
    font-size:14px!important;
    line-height:1.4!important;
  }
  body .ap-client-identity{
    width:100%!important;
    min-width:0!important;
    min-height:58px!important;
    padding:10px 13px!important;
  }
  body .ap-client-identity>svg{
    width:26px!important;
    height:26px!important;
    flex-basis:26px!important;
  }
  body .ap-client-identity strong{font-size:15px!important}
  body .ap-client-identity small{font-size:14px!important}
  body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  body select,
  body textarea{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:var(--ap-field-height)!important;
    box-sizing:border-box!important;
    font-size:var(--ap-field-font-size)!important;
  }
  .client-field{gap:var(--ap-field-gap)!important}
  .client-field>label,
  .valuation-row>label,
  .planning-field>strong{font-size:var(--ap-field-label-size)!important}
  .client-feedback,
  .country-picker-hint{font-size:var(--ap-field-help-size)!important}
  body button,body input,body select,body textarea{touch-action:manipulation}
  body input[type="date"]{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    -webkit-appearance:none;
    appearance:none;
  }
  body input[type="date"]::-webkit-date-and-time-value{
    display:flex;
    width:100%;
    height:100%;
    min-width:0;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  body input[type="date"],
  body .ap-date-display{
    height:50px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:50px!important;
    text-align:center!important;
  }
  .client-hero-copy p,
  .planning-hero-copy p,
  .config-header p,
  .existing-hero p{font-size:14px!important;line-height:1.4!important}
  /* ESTÁNDAR AP: los dropdowns son capas flotantes y nunca alteran el flujo del formulario. */
  .wrapper .client-grid>.client-field,
  .wrapper .valuation-row,
  .wrapper .planning-field{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:hidden;
    box-sizing:border-box;
  }
  .wrapper .client-field,
  .wrapper .valuation-control,
  .wrapper .result-value,
  .wrapper .planning-field{min-width:0}
  ap-sidebar{
    position:sticky;
    top:0;
    z-index:1000;
    width:100%;
    height:72px;
    min-height:72px;
    max-height:72px;
    min-width:0;
    max-width:100vw;
    flex:none;
    flex-direction:row;
    flex-wrap:nowrap;
    justify-content:flex-start;
    align-items:center;
    gap:5px;
    padding:7px 9px;
    overflow-x:auto;
    overflow-y:hidden;
    background:#0b0b0b;
    color:#fff;
    border-right:0;
    border-bottom:1px solid var(--ap-sidebar-border);
    box-shadow:0 5px 14px rgba(0,0,0,.18);
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-inline:contain;
    overflow-anchor:none;
    contain:layout paint style;
    backface-visibility:hidden;
    transform:translateZ(0);
    will-change:transform;
  }
  ap-sidebar::-webkit-scrollbar{display:none}
  ap-sidebar .ap-nav-item{
    display:flex;
    flex:0 0 auto;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    width:auto;
    min-height:58px;
    margin:0;
    padding:7px 11px 6px;
    transform:none;
    white-space:nowrap;
    font-size:14px;
    line-height:1.1;
    color:#e2e2e2;
    transition:none!important;
    -webkit-tap-highlight-color:transparent;
  }
  ap-sidebar .ap-nav-item[data-ap-nav-key="inicio"]{width:60px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="asesorados"]{width:82px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="asesoria"]{width:82px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="resultados"]{width:96px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="librerias"]{width:82px}
  ap-sidebar .ap-nav-item[data-ap-nav-key="configuracion"]{width:120px}
  ap-sidebar .ap-nav-item br{display:none}
  ap-sidebar .sidebar-icon{width:24px;height:24px;margin:0;font-size:24px}
  ap-sidebar .ap-nav-item:focus-visible{background:#252525;color:var(--ap-gold)}@media(hover:hover) and (pointer:fine){ap-sidebar .ap-nav-item:not(.active):hover{background:#252525;color:var(--ap-gold)}}
  ap-sidebar .ap-nav-item.active{--ap-nav-icon-cutout:var(--ap-sidebar-active);background:var(--ap-sidebar-active);box-shadow:inset 0 -3px 0 var(--ap-gold)}
  ap-sidebar .ap-nav-item :is(.ap-fluent-nav-icon__regular,.ap-fluent-nav-icon__filled){transition:none}
  ap-sidebar .ap-nav-item.active .ap-fluent-nav-icon__regular{opacity:0}
  ap-sidebar .ap-nav-item.active .ap-fluent-nav-icon__filled{opacity:1}
  ap-sidebar .sidebar-motto{display:none}
  ap-footer{gap:12px;margin:20px 12px 12px;font-size:14px}
}

/* Módulo Asesoría: un solo acceso global; cada pestaña conserva su documento,
   estado, cálculos y manejadores independientes. */
ap-advisory-header,
ap-advisory-tabs{display:block;min-width:0;max-width:100%}
.ap-advisory-hero{
  min-width:0;
  min-height:118px;
  padding:20px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  box-sizing:border-box;
  border:1px solid var(--ap-color-header-border);
  border-bottom:3px solid var(--ap-color-accent);
  border-radius:var(--ap-radius-header);
  background:var(--ap-color-header);
  color:var(--ap-color-text-on-dark);
  overflow:hidden;
}
.ap-advisory-hero__copy,
.ap-advisory-hero__actions{display:flex;align-items:center;min-width:0}
.ap-advisory-hero__copy{gap:16px}
.ap-advisory-hero__actions{justify-content:flex-end;gap:10px}
.ap-advisory-hero__icon{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  border:1px solid var(--ap-color-accent-border);
  border-radius:11px;
  background:var(--ap-color-accent-surface);
  color:var(--ap-color-accent);
}
.ap-advisory-hero__icon .ap-advisory-hero__glyph{display:block;width:42px;height:42px;overflow:visible}
.ap-advisory-hero__copy h1{
  margin:0;
  color:#fff;
  font:800 clamp(25px,2.1vw,32px)/1.05 var(--ap-font-family);
  letter-spacing:.35px;
}
.ap-advisory-hero__copy p{
  margin:6px 0 0;
  color:var(--ap-color-header-muted);
  font:400 14px/1.35 var(--ap-font-family);
}
.ap-advisory-hero__copy i{display:block;width:58px;height:2px;margin-top:11px;background:var(--ap-color-accent)}
.ap-advisory-client{flex:0 1 auto}
.ap-advisory-tabs{
  width:100%;
  margin:16px 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,220px));
  align-items:stretch;
  box-sizing:border-box;
  overflow:hidden;
}
:is(.nutrition-shell,.training-shell)>ap-advisory-tabs>.ap-advisory-tabs{margin:0}
.ap-advisory-tab{
  min-width:0;
  min-height:70px;
  padding:0 12px;
  text-decoration:none;
  box-sizing:border-box;
}
.ap-advisory-tab .ap-fluent-nav-icon{display:block;width:calc(var(--ap-tab-icon-size)*1.15);height:calc(var(--ap-tab-icon-size)*1.15);overflow:visible;fill:currentColor;stroke:none}
.ap-advisory-tab[data-ap-advisory-tab="entrenamiento"] .ap-fluent-nav-icon{transform:scale(1.16)}
.ap-advisory-tab .ap-fluent-nav-icon--ruler{transform:rotate(45deg)}
.ap-advisory-tab .ap-fluent-nav-icon__reference-outline{fill:none;stroke:currentColor}
.ap-advisory-tab :is(.ap-fluent-nav-icon__regular,.ap-fluent-nav-icon__filled){display:block;transition:opacity var(--ap-duration-fade,250ms) ease}
.ap-advisory-tab .ap-fluent-nav-icon__regular{opacity:1}
.ap-advisory-tab .ap-fluent-nav-icon__filled{opacity:0}
.ap-advisory-tab.active .ap-fluent-nav-icon__regular{opacity:0}
.ap-advisory-tab.active .ap-fluent-nav-icon__filled{opacity:1}
.ap-advisory-tab.active:is([data-ap-advisory-tab="nutricion"],[data-ap-advisory-tab="entrenamiento"]) .ap-fluent-nav-icon__regular{opacity:1}
.ap-advisory-tab.active .ap-fluent-nav-icon__planning-detail{fill:var(--ap-color-surface)}
.ap-advisory-tab b{overflow:hidden;text-overflow:ellipsis;font-weight:700}

html.ap-advisory-document ap-advisory-header{view-transition-name:ap-advisory-header}
html.ap-advisory-document ap-advisory-tabs{view-transition-name:ap-advisory-tabs}
::view-transition-old(ap-advisory-header),
::view-transition-new(ap-advisory-header),
::view-transition-old(ap-advisory-tabs),
::view-transition-new(ap-advisory-tabs){animation:none;mix-blend-mode:normal}
@media(max-width:620px){
  .ap-advisory-hero{padding:16px;align-items:stretch;flex-direction:column;gap:16px}
  .ap-advisory-hero__copy{align-items:flex-start}
  .ap-advisory-hero__icon{width:52px;height:52px;flex-basis:52px}
  .ap-advisory-hero__icon .ap-advisory-hero__glyph{width:36px;height:36px}
  .ap-advisory-hero__copy h1{font-size:25px}
  .ap-advisory-hero__actions{width:100%;justify-content:flex-start}
  .ap-advisory-hero__actions>.ap-view-back{align-self:stretch}
  body .ap-advisory-client{min-width:0!important;flex:1 1 auto!important}
  .ap-advisory-tabs{display:grid;grid-template-columns:minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr) minmax(100px,1.35fr);align-items:stretch;justify-content:stretch;padding:4px 8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:auto}
  .ap-advisory-tabs::-webkit-scrollbar{display:none}
  .ap-advisory-tab{width:100%;min-width:0;min-height:68px;padding:6px 0 5px;gap:4px;flex-direction:column}
  .ap-advisory-tab .ap-fluent-nav-icon{width:22px;height:22px;flex:0 0 22px}
  .ap-advisory-tab b{max-width:100%;overflow:visible;text-overflow:clip;font-family:Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.1;letter-spacing:normal;white-space:nowrap}
  .ap-advisory-tab:is(.active,[aria-selected="true"]) b{font-weight:700}
}
@media(prefers-reduced-motion:reduce){ap-sidebar :is(.ap-fluent-nav-icon__regular,.ap-fluent-nav-icon__filled),.ap-advisory-tab :is(.ap-fluent-nav-icon__regular,.ap-fluent-nav-icon__filled){transition:none}}
@media(max-width:370px){
  .ap-advisory-hero__copy p{max-width:240px}
  .ap-advisory-tab{font-size:14px}
}
/* Locale availability is controlled centrally by API18n, before page rendering. */
html[data-ap-multilingual="false"] [data-ap-language-control],
html[data-ap-multilingual="false"] [data-ap-language-only="en"]{display:none!important}
html[data-ap-multilingual="false"] .food-bilingual-dialog-fields{grid-template-columns:minmax(0,1fr)}
html[data-ap-multilingual="false"] .config-selects{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-ap-multilingual="false"] .config-selects>label:last-child{grid-column:auto}
@media(max-width:760px){html[data-ap-multilingual="false"] .config-selects{grid-template-columns:minmax(0,1fr)}}

/* Componente global para todas las tablas horizontales de Asesoría. */
.ap-table-scroll-region{
  --ap-table-scroll-track:var(--ap-color-surface-soft,var(--ap-color-surface));
  position:relative;min-width:0;isolation:isolate;overflow-x:auto!important;overflow-y:hidden!important;
  overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;
  scrollbar-width:thin!important;scrollbar-color:var(--ap-color-accent) var(--ap-table-scroll-track)!important;
}
.ap-table-scroll-region::-webkit-scrollbar{
  display:block!important;width:12px!important;height:12px!important;background:var(--ap-table-scroll-track)!important;
}
.ap-table-scroll-region::-webkit-scrollbar-track{background:var(--ap-table-scroll-track)!important;border-radius:999px}
.ap-table-scroll-region::-webkit-scrollbar-thumb{
  min-width:42px;background:var(--ap-color-accent)!important;border:3px solid var(--ap-table-scroll-track)!important;border-radius:999px;
}
.ap-table-scroll-region::-webkit-scrollbar-button,.ap-table-scroll-region::-webkit-scrollbar-corner{
  display:none!important;width:0!important;height:0!important;background:transparent!important;
}
.ap-table-scroll{width:100%;max-width:none;border-collapse:separate;border-spacing:0}
.ap-table-scroll :is(th,td){box-sizing:border-box;vertical-align:middle;border-inline:0!important;box-shadow:none!important}
/* Una tabla real sólo puede tener un mapa de filas. Esta especificidad
   defensiva neutraliza layouts flex/grid heredados y evita que cada módulo
   dibuje fragmentos de separador a alturas distintas. */
.ap-table-scroll.ap-table-scroll tbody>tr>:is(th,td){display:table-cell!important;vertical-align:middle!important}
.ap-table-scroll.ap-table-scroll thead>tr>:is(th,td){
  overflow:hidden;
  background-color:var(--ap-table-head-start)!important;
  background-image:linear-gradient(180deg,var(--ap-table-head-start),var(--ap-table-head-end))!important;
  background-clip:border-box!important;
  border-top:0!important;border-bottom:0!important;
}
.ap-table-scroll.ap-table-scroll thead{position:relative;z-index:30}
.ap-table-scroll.ap-table-scroll thead>tr>th:has(.ap-compact-tooltip){
  position:relative!important;z-index:1;overflow:visible!important;
}
.ap-table-scroll.ap-table-scroll tbody>tr>:is(th,td){
  background:var(--ap-table-row-bg);background-clip:border-box!important;
  border-top:0!important;border-bottom:0!important;
}
.ap-table-scroll.ap-table-scroll tfoot>tr>:is(th,td){
  background:var(--ap-table-total-bg);background-clip:border-box!important;
  color:var(--ap-table-total-text,var(--ap-color-text));
  border-top:0!important;border-bottom:0!important;
}
.ap-table-scroll.ap-table-scroll tfoot>tr{
  background:var(--ap-table-total-bg);
}
/* Contrato tabular: sólo existe el marco exterior. Las filas no dibujan
   separadores horizontales ni pseudo-elementos que alteren la geometría. */
.ap-table-scroll.ap-table-scroll :is(thead,tbody,tfoot)>tr{
  position:relative!important;border-block:0!important;box-shadow:none!important;
}
.ap-table-identity-label{display:none!important}
@media(hover:hover) and (pointer:fine){
  .ap-table-scroll.ap-table-scroll tbody>tr:not(.training-empty-row):not(.training-cardio-empty):not(.nutrition-empty-row):not(.nutrition-add-line-row):not(.is-disabled):hover>:is(th,td){
    background:var(--ap-table-row-hover-bg)!important;
  }
}

/* Una sola línea de inserción, continua incluso sobre columnas fijadas. */
html body table.ap-table-scroll.ap-table-scroll.ap-table-scroll tbody>tr.is-reorder-before>:is(th,td){
  box-shadow:inset 0 4px 0 var(--ap-color-accent-strong)!important;
}
html body table.ap-table-scroll.ap-table-scroll.ap-table-scroll tbody>tr.is-reorder-after>:is(th,td){
  box-shadow:inset 0 -4px 0 var(--ap-color-accent-strong)!important;
}

/* Componente global para prompts de acciones contextuales. */
.ap-action-dialog.ap-action-dialog{width:min(380px,calc(100vw - 28px))}
.ap-action-choice-list.ap-action-choice-list{
  min-width:0;display:grid;gap:8px;border:0;border-radius:0;overflow:visible;
}
.ap-action-choice-list.ap-action-choice-list>button{
  width:100%;min-height:42px;padding:10px;border:1px solid var(--ap-color-border,#d9d9d9);border-radius:8px;
  appearance:none;display:flex;align-items:center;gap:10px;box-sizing:border-box;
  background:var(--ap-color-surface-soft,#f7f7f7);color:var(--ap-color-text,#111);
  font:800 16px/1.2 Arial,sans-serif;text-align:left;cursor:pointer;
}
.ap-action-choice-list.ap-action-choice-list>button>strong{font:inherit;color:inherit}
.ap-action-choice-list.ap-action-choice-list>button.is-danger{color:var(--ap-color-danger,#b33)}
.ap-action-choice-list.ap-action-choice-list>button:disabled{opacity:.45;cursor:not-allowed}
.ap-action-choice-list.ap-action-choice-list>button:focus-visible{
  outline:2px solid var(--ap-color-accent);outline-offset:2px;
}
@media(hover:hover) and (pointer:fine){
  .ap-action-choice-list.ap-action-choice-list>button:not(:disabled):hover{
    border-color:var(--ap-color-accent);background:var(--ap-color-accent-soft);color:var(--ap-color-accent-strong);
  }
  .ap-action-choice-list.ap-action-choice-list>button.is-danger:not(:disabled):hover{
    border-color:var(--ap-color-danger,#b33);color:var(--ap-color-danger,#b33);
  }
}

/* Jerarquía compartida de Asesoría: sólo el hero de página usa acento. */
.ap-section-tier-primary{
  border-bottom-color:var(--ap-color-divider,var(--ap-color-border))!important;
  border-bottom-width:var(--ap-section-header-border-width,3px)!important;
  border-bottom-style:solid!important;
}
.ap-section-tier-secondary{
  border-bottom-color:var(--ap-color-divider,var(--ap-color-border))!important;
  border-bottom-width:var(--ap-section-header-border-width,3px)!important;
  border-bottom-style:solid!important;
}
