/*
 * Tema AP automático.
 * Sigue la preferencia claro/oscuro configurada en el sistema operativo.
 */

:root {
  color-scheme: light;
  --ap-section-header: #0b0b0b;
}

/* Proyección de fase: componente visual universal */
.planning-view{--phase-green:#56a936;--phase-yellow:#ad5f00;--phase-red:#ca332e;--pace-alert-caution-fill:#d99a20;--pace-alert-caution-stroke:#6e4300;--pace-alert-caution-mark:#111111;--pace-alert-danger-fill:#d84039;--pace-alert-danger-stroke:#8e1f1b;--pace-alert-danger-mark:#fff;--ap-ribbon-icon-surface:var(--ap-color-accent-surface);--ap-ribbon-icon-surface-strong:var(--ap-color-accent-surface-strong);--ap-ribbon-icon-border:var(--ap-color-accent-border);--ap-ribbon-icon-ink:var(--ap-color-accent-strong)}
.ap-phase-projection{--phase-surface:#fff;--phase-surface-soft:#fff;--phase-border:var(--ap-color-border,#d9d9d9);--phase-text:#161616;--phase-muted:#646464;--phase-axis:#4b4b4b;--phase-grid:#d8d8d8;--phase-green:#56a936;--phase-yellow:#ad5f00;--phase-red:#ca332e;background:var(--phase-surface);color:var(--phase-text)}
:is(.planning-heading,.valuation-heading,.results-group-head,.client-title,.client-section,.libraries-section-header,.existing-filter-head,.existing-results-title,.config-v2-title,.planning-subsection-title,.projection-card-title) .ap-plan-icon{width:34px!important;height:34px!important;flex:0 0 34px!important;border:1px solid var(--ap-color-accent-border);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--ap-color-accent) 22%,#111),color-mix(in srgb,var(--ap-color-accent) 10%,#111));color:var(--ap-gold)!important;display:grid!important;place-items:center;box-sizing:border-box;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 2px rgba(0,0,0,.3)}
:is(.planning-heading,.valuation-heading,.results-group-head,.client-title,.client-section,.libraries-section-header,.existing-filter-head,.existing-results-title,.config-v2-title,.planning-subsection-title,.projection-card-title) .ap-plan-icon svg{width:25px!important;height:25px!important;display:block;overflow:visible;fill:none;stroke:none}
.ap-plan-icon:has(>.ap-centered-glyph){position:relative!important}
.ap-plan-icon>.ap-centered-glyph{position:absolute!important;left:50%!important;top:50%!important;width:25px!important;height:25px!important;margin:0!important;transform:translate(-50%,-50%)!important;transform-origin:center!important}
.planning-subsection-title:has(.ap-subheader-icon),.projection-card-title:has(.ap-subheader-icon){gap:10px}
.client-title .ap-client-header-icon svg,.client-section .ap-client-header-icon svg{stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round;stroke-linejoin:round}
.client-section .ap-client-header-icon--macros svg{stroke:none!important}
.ap-phase-projection__header .ap-plan-icon{width:42px!important;height:42px!important;flex-basis:42px!important;border-radius:10px}
.ap-phase-projection__header .ap-plan-icon svg{width:31px!important;height:31px!important}
.ap-phase-projection-legacy{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;opacity:0!important;pointer-events:none!important}
.ap-phase-projection__header{height:auto!important;min-height:72px!important;padding:12px 22px!important}
.ap-phase-projection__header-icon{width:42px!important;height:42px!important;color:var(--ap-gold)!important}
.ap-phase-projection__header-icon svg{width:42px!important;height:42px!important;display:block}
.ap-phase-projection__header>span:last-child{display:grid;gap:5px}
.ap-phase-projection__header strong{font-size:20px;line-height:1.1}
.ap-phase-projection__header small{font-size:14px;font-weight:400;color:#c4c4c4}
.ap-phase-projection__body{padding:18px 20px 20px;display:grid;gap:16px;background:var(--phase-surface)}
.ap-phase-projection__overview{display:block;border:0;background:transparent;overflow:visible}
.ap-phase-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.ap-phase-projection__subheader{width:100%!important;margin:0!important;border-radius:8px 8px 0 0!important}
.ap-phase-projection__metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border:0;border-radius:0;background:transparent;overflow:visible;box-sizing:border-box}
.ap-phase-metric{height:108px;min-height:0;padding:14px 20px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:left;gap:14px}
.ap-phase-metric>.ap-phase-metric__icon{grid-column:1}
.ap-phase-metric>.ap-phase-metric__icon-row{grid-column:1;position:relative;width:46px;height:46px;display:grid;place-items:center}
.ap-phase-metric__content{min-width:0;display:grid;align-content:center;justify-items:start;gap:5px}
.ap-phase-metric__content>strong{align-self:center}
.ap-phase-metric__label{display:inline-flex;align-items:center;gap:4px;color:var(--phase-muted);font-size:14px;font-weight:400;line-height:1.2;white-space:nowrap}
.ap-phase-metric__label-help{position:static!important;width:20px;min-width:20px;height:20px;display:inline-flex!important;align-items:center!important;justify-content:center!important;transform:none!important}
.ap-phase-metric__label-help>.ap-help-copy{display:none!important}
.ap-phase-metric__label-help>.ap-help-indicator{width:20px;height:20px;min-width:20px;margin:0!important}
.ap-phase-metric__label-help>.ap-help-indicator svg{width:15px;height:15px}
.ap-phase-metric--weight .ap-phase-metric__content{grid-template-columns:minmax(0,1fr);gap:3px}
.ap-phase-metric--weight .ap-phase-metric__content>strong{width:auto;max-width:none;display:grid;grid-template-columns:auto auto auto;align-items:start;justify-content:center;gap:8px}
.ap-phase-weight-transition{display:grid;justify-items:center;align-content:start;gap:3px}.ap-phase-weight-transition>i{align-self:center;margin:0!important}.ap-phase-metric--weight .ap-phase-weight-change{text-align:center;white-space:nowrap}
.ap-phase-metric+.ap-phase-metric{border-left:1px solid var(--phase-border)}
.ap-phase-metric__icon{width:40px;height:40px;color:var(--ap-gold);display:grid;place-items:center}
.ap-phase-metric__icon svg{width:40px;height:40px;display:block}
.ap-phase-metric__icon.ap-ribbon-icon{width:46px;height:46px;flex:0 0 46px;border:1px solid var(--ap-ribbon-icon-border);border-radius:11px;background:linear-gradient(145deg,var(--ap-ribbon-icon-surface),var(--ap-ribbon-icon-surface-strong));color:var(--ap-ribbon-icon-ink);box-sizing:border-box;box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 3px 8px rgba(70,44,5,.13)}
.ap-phase-metric__icon.ap-ribbon-icon svg{width:32px;height:32px}
.ap-phase-weight-unit-toggle{padding:0;font:inherit;cursor:pointer}.ap-phase-weight-unit-toggle:focus-visible{outline:2px solid var(--ap-gold);outline-offset:3px}
.ap-phase-metric strong{font-size:18px;line-height:1.15;white-space:nowrap}
.ap-phase-metric strong i,.ap-phase-metric strong em{font-style:normal}.ap-phase-metric strong i{color:var(--phase-muted);margin:0 3px}.ap-phase-metric strong em{color:var(--ap-gold)}
.ap-phase-weight-change{min-height:18px;margin-top:0;background:transparent;border:0;color:var(--phase-green);font-size:16px;font-weight:700;line-height:1.15;text-align:left;white-space:nowrap}
.ap-phase-pace-value{color:var(--phase-muted);transition:color .15s ease}
.ap-phase-pace-value.is-pace-recommended{color:var(--phase-green)!important}
.ap-phase-pace-value.is-pace-caution{color:var(--phase-yellow)!important}
.ap-phase-pace-value.is-pace-excessive{color:var(--phase-red)!important}
.ap-pace-alert{width:1.08em;height:1em;margin-right:.34em;overflow:visible;vertical-align:-.12em;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2));pointer-events:none}
.ap-pace-alert__shape{stroke-width:1.35;stroke-linejoin:round}
.ap-pace-alert__mark{fill:none;stroke-width:2.15;stroke-linecap:round}
.ap-pace-alert__mark-dot{stroke:none}
.is-pace-caution .ap-pace-alert__shape{fill:var(--pace-alert-caution-fill);stroke:var(--pace-alert-caution-stroke)}
.is-pace-caution .ap-pace-alert__mark{stroke:var(--pace-alert-caution-mark)}
.is-pace-caution .ap-pace-alert__mark-dot{fill:var(--pace-alert-caution-mark)}
.is-pace-excessive .ap-pace-alert__shape{fill:var(--pace-alert-danger-fill);stroke:var(--pace-alert-danger-stroke)}
.is-pace-excessive .ap-pace-alert__mark{stroke:var(--pace-alert-danger-mark)}
.is-pace-excessive .ap-pace-alert__mark-dot{fill:var(--pace-alert-danger-mark)}
.ap-dropdown{--dropdown-surface:var(--phase-surface,#fff);--dropdown-text:var(--phase-text,#161616);--dropdown-muted:var(--phase-muted,#646464);--dropdown-border:var(--phase-border,var(--ap-color-border,#d9d9d9));position:relative;min-width:0;color:var(--dropdown-text)}
.ap-dropdown.is-open{z-index:7000}
.planning-panel:has(.ap-dropdown.is-open),
.planning-body:has(.ap-dropdown.is-open),
.planning-split:has(.ap-dropdown.is-open),
.energy-grid:has(.ap-dropdown.is-open),
.macros-grid:has(.ap-dropdown.is-open){overflow:visible!important}
.ap-native-select-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip-path:inset(50%)!important}
.ap-dropdown--native{width:100%;min-width:0}
.ap-dropdown--native .ap-dropdown__trigger{grid-template-columns:minmax(0,1fr) auto;text-align:center}
.ap-dropdown--native .ap-dropdown__menu{max-height:280px;overflow-y:auto;overscroll-behavior:contain}
.ap-dropdown--native .ap-dropdown__option,
.ap-dropdown__menu--portal .ap-dropdown__option{justify-content:center;text-align:center}
.ap-dropdown--native .ap-dropdown__option span,
.ap-dropdown__menu--portal .ap-dropdown__option span{justify-content:center;text-align:center}
.ap-dropdown--native .ap-dropdown__option:disabled{opacity:.45;cursor:not-allowed}
.planning-view .ap-dropdown button{margin:0!important;font-family:Arial,sans-serif}
.ap-dropdown__trigger{width:100%;height:44px;padding:0 12px;border:1px solid var(--dropdown-border);border-radius:8px;background:var(--dropdown-surface);color:var(--dropdown-text);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;font-size:var(--ap-field-option-size);font-weight:700;cursor:pointer}
.ap-dropdown__trigger:focus-visible,.ap-dropdown.is-open .ap-dropdown__trigger{border-color:var(--ap-gold);outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 20%,transparent)}@media(hover:hover) and (pointer:fine){.ap-dropdown__trigger:hover{border-color:var(--ap-gold);outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 20%,transparent)}}
.ap-dropdown__trigger svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}.ap-dropdown.is-open .ap-dropdown__trigger svg{transform:rotate(180deg)}
.ap-dropdown__dot,.ap-dropdown__option>i{width:10px;height:10px;border-radius:50%;display:block;flex:0 0 10px}.ap-dropdown .is-green{background:var(--phase-green)}.ap-dropdown .is-gold{background:var(--ap-gold)}.ap-dropdown .is-red{background:var(--phase-red)}
.ap-dropdown__menu{position:absolute;z-index:7001;top:calc(100% + 5px);left:0;right:0;padding:4px;border:1px solid var(--dropdown-border);border-radius:8px;background:var(--dropdown-surface);box-shadow:0 12px 28px rgba(0,0,0,.22)}
.ap-dropdown__menu--portal{position:fixed!important;z-index:10000!important;box-sizing:border-box;color:var(--dropdown-text);background:var(--dropdown-surface);opacity:1!important;isolation:isolate;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.ap-dropdown__option{width:100%;min-height:45px;padding:7px 10px;border:0;border-radius:5px;background:transparent;color:var(--dropdown-text);display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}
.ap-dropdown__option span{min-width:0;flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.ap-dropdown__option strong{font-size:inherit;white-space:nowrap}.ap-dropdown__option small{font-size:calc(var(--ap-field-option-size) - 2px);color:var(--dropdown-muted)}
.ap-dropdown__option:focus-visible{background:var(--ap-color-accent-surface-hover);color:var(--ap-color-on-accent);outline:0}@media(hover:hover) and (pointer:fine){.ap-dropdown__option:not([aria-selected="true"]):hover{background:var(--ap-color-accent-surface-hover);color:var(--ap-color-on-accent);outline:0}}.ap-dropdown__option:focus-visible small{color:var(--ap-color-accent-strong)}@media(hover:hover) and (pointer:fine){.ap-dropdown__option:not([aria-selected="true"]):hover small{color:var(--ap-color-accent-strong)}}
.ap-dropdown__option[aria-selected="true"]{background:var(--ap-color-accent-surface-strong);color:var(--ap-color-accent-strong);box-shadow:inset 3px 0 0 var(--ap-gold)}.ap-dropdown__option[aria-selected="true"] small{color:var(--ap-color-accent-strong)}
.country-picker-option:focus-visible{background:var(--ap-color-accent-surface-hover)!important;color:var(--ap-color-on-accent)!important;box-shadow:inset 3px 0 0 var(--ap-gold)}@media(hover:hover) and (pointer:fine){.country-picker-option:not([aria-selected="true"]):hover{background:var(--ap-color-accent-surface-hover)!important;color:var(--ap-color-on-accent)!important;box-shadow:inset 3px 0 0 var(--ap-gold)}}
.country-picker-option:focus-visible small{background:var(--ap-color-accent-muted)!important;color:var(--ap-color-accent-strong)!important}@media(hover:hover) and (pointer:fine){.country-picker-option:not([aria-selected="true"]):hover small{background:var(--ap-color-accent-muted)!important;color:var(--ap-color-accent-strong)!important}}
.country-picker-option[aria-selected="true"]{background:var(--ap-color-accent-surface-strong)!important;color:var(--ap-color-accent-strong)!important;box-shadow:inset 3px 0 0 var(--ap-gold)}
.country-picker-option[aria-selected="true"] small{background:var(--ap-gold)!important;color:var(--ap-color-on-accent)!important}
.ap-phase-chart{border:1px solid var(--phase-border);border-radius:12px;background:var(--phase-surface-soft);overflow:hidden;box-shadow:none}
.ap-phase-long-term-notice{width:100%;min-width:0;max-width:none;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:14px;padding:16px 20px;border:1px solid var(--ap-color-header-border,#363636);border-radius:10px;background:var(--ap-color-header,#0b0b0b);color:#eee;box-sizing:border-box}
.ap-phase-long-term-notice[hidden]{display:none!important}
.ap-phase-long-term-notice__icon{width:30px;height:30px;fill:none;stroke:var(--ap-color-accent,var(--ap-gold));stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ap-phase-long-term-notice__icon-dot{fill:var(--ap-color-accent,var(--ap-gold));stroke:none}
.ap-phase-long-term-notice__content{min-width:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);column-gap:20px;row-gap:8px;align-items:center}
.ap-phase-long-term-notice__content>strong{font-size:14px;letter-spacing:.04em;color:var(--ap-color-accent,var(--ap-gold))}
.ap-phase-long-term-notice__content p{margin:0;font-size:14px;line-height:1.5;color:#eee}
.ap-phase-long-term-notice__content dl{grid-column:2;grid-row:1/3;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ap-phase-long-term-notice__content dl>div{min-width:0;padding:3px 0 3px 14px;border-left:1px solid var(--ap-color-accent,var(--ap-gold))}
.ap-phase-long-term-notice__content dt{margin:0 0 4px;font-size:14px;font-weight:700;color:#bdbdbd}
.ap-phase-long-term-notice__content dd{margin:0;font-size:14px;font-weight:800;color:#fff}
.ap-phase-chart__head{display:none}.ap-phase-chart__head h3:after{content:none}
.ap-phase-chart__scroll{position:relative;padding:12px 12px 6px;overflow-x:auto;overscroll-behavior-inline:contain;display:flex;justify-content:center;box-sizing:border-box;background:var(--phase-surface-soft)}.ap-phase-chart__scroll.is-scrollable{justify-content:flex-start}.ap-phase-chart__svg{display:block;flex:0 0 auto;min-width:0;margin-inline:auto;color:var(--phase-text)}.ap-phase-chart__svg[hidden]{display:none!important}.ap-phase-chart__scroll.is-scrollable .ap-phase-chart__svg{margin-inline:0}
.ap-phase-chart__grid path{fill:none;stroke:var(--phase-grid);stroke-width:1;stroke-dasharray:3 4}.ap-phase-chart__grid text{font:14px Arial,sans-serif;fill:var(--phase-axis);text-rendering:geometricPrecision}.ap-phase-chart__axis-labels{font:700 var(--ap-subheader-font,15px) Arial,sans-serif;fill:var(--phase-axis);text-rendering:geometricPrecision;text-transform:none}
.ap-phase-chart__line,.ap-phase-chart__selected-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ap-phase-chart__line{stroke:var(--ap-gold);stroke-width:2.5}.ap-phase-chart__selected-line{stroke:var(--phase-green);stroke-width:4;pointer-events:none}.ap-phase-chart__point{cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}.ap-phase-chart__point-hit{fill:#000!important;fill-opacity:0!important;stroke:none!important;stroke-width:0!important;opacity:0!important;pointer-events:all}.ap-phase-chart__point-marker{fill:var(--phase-surface);stroke:var(--ap-gold);stroke-width:3;transition:fill .15s ease,stroke .15s ease,stroke-width .15s ease}.ap-phase-chart__point.is-selected .ap-phase-chart__point-marker,.ap-phase-chart__point.is-in-selected-range .ap-phase-chart__point-marker{fill:var(--phase-green);stroke:var(--phase-green)}.ap-phase-chart__point:focus-visible .ap-phase-chart__point-marker{stroke:var(--phase-green);stroke-width:5}.ap-phase-chart__points text{font:14px Arial,sans-serif;fill:var(--phase-text);text-anchor:middle;pointer-events:none;text-rendering:geometricPrecision}
.ap-phase-chart__point-marker{transition:fill .15s ease,stroke .15s ease,stroke-width .15s ease,filter .15s ease}
@media(hover:hover) and (pointer:fine){.ap-phase-chart__point:not(.is-selected):not(.is-in-selected-range):hover .ap-phase-chart__point-marker{stroke-width:4;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--ap-color-accent) 58%,transparent))}}
.ap-phase-chart__empty{width:100%;min-height:190px;padding:18px;display:flex;align-items:center;justify-content:center;gap:7px;box-sizing:border-box;color:var(--ap-color-danger,#b33);font:700 14px/1.4 Arial,sans-serif;text-align:center;white-space:normal;overflow-wrap:anywhere}
.ap-phase-chart__empty[hidden]{display:none!important}
.ap-phase-chart__empty .ap-pace-alert{flex:0 0 1.08em;margin-right:0}
.ap-phase-chart__empty-alert .ap-pace-alert__shape{fill:var(--pace-alert-danger-fill);stroke:var(--pace-alert-danger-stroke)}
.ap-phase-chart__empty-alert .ap-pace-alert__mark{stroke:var(--pace-alert-danger-mark)}
.ap-phase-chart__empty-alert .ap-pace-alert__mark-dot{fill:var(--pace-alert-danger-mark)}
@media(max-width:980px){.ap-phase-projection__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-phase-metric:nth-child(3){border-left:0}.ap-phase-metric:nth-child(n+3){border-top:1px solid var(--phase-border)}}
@media(max-width:760px){.ap-phase-projection__header{min-height:66px!important;padding:10px 14px!important}.ap-phase-projection__header strong{font-size:16px}.ap-phase-projection__header small{font-size:14px}.ap-phase-projection__body{padding:10px;gap:10px}.ap-phase-projection__metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.ap-phase-metric{height:104px;padding:10px 12px;gap:10px}.ap-phase-metric>.ap-phase-metric__icon-row{width:38px;height:38px}.ap-phase-metric__icon,.ap-phase-metric__icon svg{width:32px;height:32px}.ap-phase-metric__icon.ap-ribbon-icon{width:38px;height:38px;flex-basis:38px;border-radius:9px}.ap-phase-metric__icon.ap-ribbon-icon svg{width:27px;height:27px}.ap-phase-metric strong,.ap-phase-weight-change{font-size:14px}.ap-phase-metric__label{font-size:14px}.ap-phase-chart__scroll{padding:6px 6px 4px;scrollbar-width:none}.ap-phase-chart__scroll::-webkit-scrollbar{display:none}.ap-phase-chart__grid text{font:600 15px Arial,sans-serif}.ap-phase-chart__axis-labels{font:700 var(--ap-subheader-font,15px) Arial,sans-serif}.ap-phase-chart__points text{font:700 14px Arial,sans-serif}}
@media(max-width:900px){.ap-phase-long-term-notice__content{grid-template-columns:1fr}.ap-phase-long-term-notice__content dl{grid-column:1;grid-row:auto;margin-top:2px}}
@media(max-width:560px){.ap-phase-long-term-notice{grid-template-columns:28px minmax(0,1fr);gap:10px;padding:14px 12px}.ap-phase-long-term-notice__icon{width:26px;height:26px}.ap-phase-long-term-notice__content dl{grid-template-columns:1fr}.ap-phase-long-term-notice__content p{font-size:14px}.ap-phase-long-term-notice__content dd{font-size:14px}}
@media(max-width:760px){.ap-dropdown__menu{max-height:var(--ap-floating-max-height,min(34dvh,260px))!important;overflow-y:auto!important;overscroll-behavior:contain}.ap-dropdown__option{min-height:44px;padding-top:6px;padding-bottom:6px}}
@media(max-width:520px){.ap-phase-projection__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-phase-metric{height:150px;padding:10px 6px;flex-direction:column;gap:7px;text-align:center}.ap-phase-metric__content{width:100%;justify-items:center;gap:4px}.ap-phase-metric__label{justify-content:center}.ap-phase-metric--weight .ap-phase-metric__content>strong{max-width:100%;gap:4px}}
@media(max-width:420px){.ap-phase-projection__header small{display:none}}

html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(#phaseWeeklyPacePreview,#phaseExpectedPace).ap-phase-pace-value.is-pace-recommended{color:var(--phase-green)!important;-webkit-text-fill-color:var(--phase-green)!important}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(#phaseWeeklyPacePreview,#phaseExpectedPace).ap-phase-pace-value.is-pace-caution{color:var(--phase-yellow)!important;-webkit-text-fill-color:var(--phase-yellow)!important}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(#phaseWeeklyPacePreview,#phaseExpectedPace).ap-phase-pace-value.is-pace-excessive{color:var(--phase-red)!important;-webkit-text-fill-color:var(--phase-red)!important}

/*
 * Encabezados primarios 1-2-3 y secundarios A-B-C:
 * comparten exactamente el mismo negro sólido AP.
 */
.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 {
  background: var(--ap-section-header) !important;
  background-image: none !important;
  border-color: var(--ap-color-header-border) !important;
  color: #ffffff !important;
}

.results-dashboard .results-group-head small {
  color: #cccccc !important;
}

/*
 * Contrato visual para nuevas vistas:
 * .ap-tab-page, .ap-page-header, .ap-primary-header,
 * .ap-secondary-header y .ap-surface.
 */
.ap-page-header,
.advisor-welcome,
.valuation-hero,
.planning-hero,
.config-header,
.existing-hero,
.client-hero,
.libraries-hero {
  background: var(--ap-section-header, #0b0b0b) !important;
  background-image: none !important;
  border-color: var(--ap-color-header-border) !important;
  border-bottom-color: var(--ap-gold) !important;
  color: #ffffff !important;
}

/* Los emblemas que viven dentro de encabezados negros conservan siempre la
   variante nocturna, incluso cuando el contenido de la página usa tema claro. */
:is(.ap-page-header .ap-dark-header-icon,.food-brand-dialog-header .ap-plan-icon){
  border-color:var(--ap-color-accent-border)!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--ap-color-accent) 22%,#111),color-mix(in srgb,var(--ap-color-accent) 10%,#111))!important;
  color:var(--ap-gold)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 2px rgba(0,0,0,.3)!important;
}



/* ==========================================================================
   ESTÁNDAR RESPONSIVE AP
   Los breakpoints se calculan sobre el área útil de <main>, descontando el
   sidebar. Para módulos nuevos usar .ap-responsive-shell, .ap-responsive-grid
   y .ap-responsive-module en lugar de anchos fijos.
   ========================================================================== */
.wrapper>main{
  min-width:0;
  max-width:100%;
  container:ap-content / inline-size;
}
.tab-view,.config-view,.existing-view,.advisor-home,
.valuation-view,.planning-view{
  min-width:0;
  max-width:100%;
}
.valuation-layout,.planning-shell,.config-shell,
.planning-top,.planning-split,.energy-grid,.macros-grid,
.body-projection-grid,.projection-layout,
.config-db-grid,.config-backup-grid{
  min-width:0;
  max-width:100%;
}
.valuation-layout>*,.planning-top>*,.planning-split>*,
.energy-grid>*,.macros-grid>*,.body-projection-grid>*,
.projection-layout>*,.config-db-grid>*,.config-backup-grid>*{
  min-width:0;
}
.planning-view input,.planning-view select,.planning-view textarea,
.planning-view output,.valuation-view input,.valuation-view select,
.valuation-view textarea,.config-view input,.config-view select,
.config-view textarea{
  min-width:0;
  max-width:100%;
}

/* Clases contractuales para tabs y módulos futuros. */
.ap-responsive-shell{
  --ap-content-max:1450px;
  width:min(100%,var(--ap-content-max));
  min-width:0;
  max-width:100%;
  margin-inline:auto;
}
.ap-responsive-grid{
  --ap-card-min:320px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--ap-card-min)),1fr));
  gap:var(--ap-responsive-gap,16px);
  min-width:0;
  max-width:100%;
}
.ap-responsive-module{
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}

/* Breakpoints por espacio útil, no por ancho total de la pantalla. */
@container ap-content (max-width:1180px){
  .planning-top{grid-template-columns:1fr!important}
}
@container ap-content (max-width:1050px){
  .valuation-layout,
  .energy-grid,
  .macros-grid,
  .body-projection-grid,
  .projection-layout{
    grid-template-columns:1fr!important;
  }
  .valuation-note{grid-column:auto!important}
}
@container ap-content (max-width:850px){
  .config-db-grid,.config-backup-grid{
    grid-template-columns:1fr!important;
  }
  .config-db-actions,.config-backup-actions{
    padding-left:0!important;
    border-left:0!important;
    border-top:1px solid var(--ap-border,var(--ap-color-border-soft,#e6e6e6))!important;
  }
  .planning-split{
    grid-template-columns:1fr!important;
  }
  .planning-split>div+div{
    border-left:0!important;
  }
  .projection-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@container ap-content (max-width:560px){
  .valuation-row,.justification-row,.planning-field,
  .config-data>div,.projection-summary{
    grid-template-columns:1fr!important;
  }
  .metric-summary{grid-template-columns:1fr!important}
  .config-buttons-row{flex-direction:column!important}
  .config-button{width:100%!important}
}
/* ESTÁNDAR AP: acción principal de guardado para todas las tabs. */
.ap-save-button{
  min-width:155px;
  min-height:46px;
  padding:13px 20px;
  border:1px solid var(--ap-gold);
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--ap-gold);
  color:var(--ap-color-on-accent);
  font:700 14px/1 Arial,sans-serif;
  cursor:pointer;
  box-sizing:border-box;
  box-shadow:var(--ap-shadow-primary);
  transition:background .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
/* CONTRATO GLOBAL DE BOTONES
   Toda superficie de acento o clara lleva texto negro. El texto claro se
   reserva para estados cuya superficie sea realmente negra. Los selectores
   heredados se incluyen para que ninguna pantalla antigua salte el contrato. */
.ap-save-button,
.client-button.primary,
.valuation-button.primary,
.planning-save,
.existing-footer .ap-save-button{
  color:var(--ap-color-button-text,#111);
}
/* ESTÁNDAR AP CLARO: fondo de acento usa tinta negra, igual que el tema
   nocturno. Las acciones que cambian a fondo negro conservan texto blanco. */
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-save-button{
  color:var(--ap-color-on-accent,#111)!important;
}
.ap-save-button:focus-visible{
  border-color:#111;
  background:#111;
  color:#fff;
  box-shadow:0 7px 18px color-mix(in srgb,var(--ap-color-accent) 28%,transparent);
  outline:none;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-save-button:focus-visible{
  color:#fff!important;
}
.ap-save-button:active{transform:translateY(1px)}

/* Retorno secundario global: sólo flecha; Inicio es la única página sin él. */
.ap-view-back{
  width:42px;
  height:42px;
  flex:0 0 42px;
  padding:0;
  border:1px solid var(--ap-gold);
  border-radius:9px;
  display:grid;
  place-items:center;
  background:var(--ap-gold);
  color:var(--ap-color-on-accent,#111);
  box-shadow:none;
  cursor:pointer;
  box-sizing:border-box;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.ap-view-back svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ap-view-back:focus-visible{border-color:#111;background:#111;color:#fff;outline:2px solid var(--ap-gold);outline-offset:2px}
.ap-view-back:active{transform:translateY(1px)}
@media(hover:hover) and (pointer:fine){.ap-view-back:hover{border-color:#111;background:#111;color:#fff}}
@media(hover:none),(pointer:coarse){.ap-view-back:is(:hover,:focus){border-color:var(--ap-gold);background:var(--ap-gold);color:var(--ap-color-on-accent,#111);box-shadow:none;transform:none}}
@media(max-width:650px){.ap-view-back{width:38px;height:38px;flex-basis:38px}.ap-view-back svg{width:22px;height:22px}}

@container ap-content (max-width:560px){
  .ap-save-button{width:100%}
}
/* ESTÁNDAR AP: acción secundaria de cancelación para todas las tabs. */
.ap-cancel-button,.ap-secondary-button{
  min-width:155px;
  min-height:46px;
  padding:13px 20px;
  border:1px solid #111;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#111;
  color:#fff;
  font:700 14px/1 Arial,sans-serif;
  cursor:pointer;
  box-sizing:border-box;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.ap-cancel-button:focus-visible,
.ap-secondary-button:focus-visible{
  border-color:var(--ap-gold);
  background:#292929;
  color:var(--ap-gold);
  outline:none;
}
.ap-cancel-button:active,.ap-secondary-button:active{transform:translateY(1px)}

/* ESTÁNDAR AP: hover sólo para mouse/trackpad. Safari táctil no puede
   conservar un resaltado sintético después de tocar una acción. */
@media(hover:hover) and (pointer:fine){
  .ap-save-button:hover{
    border-color:#111;
    background:#111;
    color:#fff;
    box-shadow:0 7px 18px color-mix(in srgb,var(--ap-color-accent) 28%,transparent);
    outline:none;
  }
  html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-save-button:hover{
    color:#fff!important;
  }
  .ap-cancel-button:hover,
  .ap-secondary-button:hover{
    border-color:var(--ap-gold);
    background:#292929;
    color:var(--ap-gold);
    outline:none;
  }
  .home-action:hover,
  .excel-button:hover{
    color:var(--ap-color-button-text,#111);
  }
  .excel-button:hover svg{color:currentColor}
}
.home-action:focus-visible,
.excel-button:focus-visible{
  color:var(--ap-color-button-text,#111);
}
.excel-button:focus-visible svg{color:currentColor}
@media(hover:none),(pointer:coarse){
  .ap-save-button:is(:hover,:focus,:focus-visible),
  .client-button.ap-save-button:is(:hover,:focus,:focus-visible),
  .valuation-button.ap-save-button:is(:hover,:focus,:focus-visible),
  .existing-footer .ap-save-button:is(:hover,:focus,:focus-visible){
    border-color:var(--ap-gold)!important;
    background:var(--ap-gold)!important;
    color:var(--ap-color-on-accent)!important;
    box-shadow:var(--ap-shadow-primary)!important;
    transform:none!important;
  }
  .ap-cancel-button:is(:hover,:focus,:focus-visible),
  .ap-secondary-button:is(:hover,:focus,:focus-visible),
  .client-button.ap-cancel-button:is(:hover,:focus,:focus-visible),
  .valuation-button.ap-cancel-button:is(:hover,:focus,:focus-visible){
    border-color:#111!important;
    background:#111!important;
    color:#fff!important;
    box-shadow:none!important;
    outline:none!important;
    transform:none!important;
  }

  ap-sidebar .ap-nav-item:not(.active):is(:hover,:focus,:focus-visible){
    background:transparent!important;
    color:#e2e2e2!important;
    box-shadow:none!important;
    outline:none!important;
  }

  html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
    :is(.ap-dropdown__option,.country-picker-option,.activity-picker-option):not([aria-selected="true"]):is(:hover,:focus,:focus-visible){
    background:#fff!important;
    color:var(--ap-color-text,#161616)!important;
    box-shadow:none!important;
    outline:none!important;
  }
  html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
    :is(.ap-dropdown__option,.country-picker-option,.activity-picker-option):not([aria-selected="true"]):is(:hover,:focus,:focus-visible) small{
    background:var(--ap-color-accent-surface)!important;
    color:var(--ap-color-accent-strong)!important;
  }
  html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
    :is(.ap-dropdown:not(.is-open) .ap-dropdown__trigger,.country-picker-trigger:not([aria-expanded="true"]),.activity-picker:not(.is-open) .activity-picker-control):is(:hover,:focus,:focus-visible){
    border-color:var(--ap-color-border,#d9d9d9)!important;
    background:#fff!important;
    color:var(--ap-color-text,#161616)!important;
    box-shadow:none!important;
    outline:none!important;
  }
}

/* ESTÁNDAR AP: validación contextual para todos los formularios. */
.ap-form-validation-invalid,.ap-form-required-control.is-required-invalid{
  border-color:var(--ap-gold)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-gold) 24%,transparent)!important;
}
.ap-form-required-control.is-required-invalid .activity-picker-control{
  border-color:var(--ap-gold)!important;
  box-shadow:none!important;
}
.ap-form-validation-tooltip{
  position:fixed;
  z-index:5000;
  width:max-content;
  max-width:min(320px,calc(100vw - 24px));
  padding:11px 13px;
  border:1px solid var(--ap-gold);
  border-radius:9px;
  background:#111;
  color:#c7c7c7;
  box-sizing:border-box;
  box-shadow:0 14px 32px rgba(17,17,17,.3);
  font-family:Arial,sans-serif;
  font-size:14px;
  font-weight:400;
  line-height:1.45;
  pointer-events:none;
}
.ap-form-validation-tooltip[hidden]{display:none!important}
.ap-form-validation-tooltip strong{display:block;margin:0 0 4px;color:var(--ap-gold);font-size:14px;font-weight:800;line-height:1.2;letter-spacing:.15px;text-transform:uppercase}
.ap-form-validation-tooltip p{margin:0;color:#c7c7c7}
.ap-form-validation-tooltip:before{content:"";position:absolute;left:var(--ap-validation-tooltip-arrow,24px);width:10px;height:10px;border:solid var(--ap-gold);background:#111;transform:rotate(45deg)}
.ap-form-validation-tooltip[data-placement="bottom"]:before{top:-6px;border-width:1px 0 0 1px}
.ap-form-validation-tooltip[data-placement="top"]:before{bottom:-6px;border-width:0 1px 1px 0}

ap-sidebar .ap-nav-item,
.ap-dropdown__trigger,
.ap-dropdown__option,
.country-picker-trigger,
.country-picker-option,
.activity-picker-control,
.activity-picker-option{
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}

@container ap-content (max-width:560px){
  .ap-cancel-button{width:100%}
}

/* ESTÁNDAR AP: login oscuro sin franja interior ni subrayado de autofill. */
html.ap-theme-transition,html.ap-theme-transition *,html.ap-theme-transition *::before,html.ap-theme-transition *::after{transition-property:background-color,color,border-color,box-shadow,fill,stroke!important;transition-duration:var(--ap-duration-fade,250ms)!important;transition-timing-function:ease-in-out!important}
html.ap-theme-view-transition::view-transition-old(root),html.ap-theme-view-transition::view-transition-new(root){animation-duration:var(--ap-duration-fade,250ms);animation-timing-function:ease-in-out;mix-blend-mode:normal}html.ap-theme-view-transition::view-transition-old(root){animation-name:ap-theme-view-out}html.ap-theme-view-transition::view-transition-new(root){animation-name:ap-theme-view-in}@keyframes ap-theme-view-out{from{opacity:1}to{opacity:0}}@keyframes ap-theme-view-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html.ap-theme-transition,html.ap-theme-transition *,html.ap-theme-transition *::before,html.ap-theme-transition *::after{transition-duration:0s!important}}

/* ESTÁNDAR AP CLARO DE CAMPOS
   Editable = fondo blanco.
   Calculado/bloqueado = gris neutral. Todos los valores usan peso normal. */
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([readonly]):not(:disabled),
    textarea:not([readonly]):not(:disabled),
    select:not(:disabled),
    .country-picker-trigger:not(:disabled),
    .country-picker-search:not(:disabled),
    .ap-dropdown__trigger:not(:disabled),
    .activity-picker-control:not(:disabled)
  ){
  background:var(--ap-color-field-editable,#fff)!important;
  color:#161616!important;
  font-weight:400!important;
}

/* CONTRATO FINAL AP: todos los menús claros son opacos y dominan el stacking local. */
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(.ap-dropdown__menu,.country-picker-panel,.activity-picker-menu){
  background:#fff!important;
  opacity:1!important;
  isolation:isolate!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(.ap-dropdown__menu--portal,.country-picker-panel){
  z-index:2147483000!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .activity-picker.is-open{
  position:relative;
  z-index:2147482999!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(.ap-dropdown__option,.country-picker-option,.activity-picker-option):not([aria-selected="true"]){
  background:#fff!important;
  opacity:1!important;
}
@media(hover:hover) and (pointer:fine){html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(.ap-dropdown__option,.country-picker-option,.activity-picker-option):not([aria-selected="true"]):is(:hover,:focus,:focus-visible){
  background:var(--ap-color-accent-surface-hover)!important;
  color:var(--ap-color-on-accent)!important;
}}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body :is(.ap-dropdown__option,.country-picker-option,.activity-picker-option)[aria-selected="true"]{
  background:var(--ap-gold)!important;
  color:var(--ap-color-on-accent)!important;
  opacity:1!important;
}

html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-dropdown__menu,
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-dropdown__menu--portal{
  background:#fff!important;
  opacity:1!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-dropdown__option[aria-selected="true"]{
  background:var(--ap-gold)!important;
  color:var(--ap-color-on-accent)!important;
}

/* ESTÁNDAR AP DE SELECTORES AUTOMÁTICOS / TOGGLE
   Fuente global para estado activo, inactivo y variantes compactas. */
.ap-auto-toggle{
  --ap-toggle-surface:var(--ap-color-field-editable,#fff);
  --ap-toggle-border:var(--ap-color-border,#d9d9d9);
  --ap-toggle-text:color-mix(in srgb,var(--ap-color-accent) 42%,var(--ap-color-muted,#666));
  --ap-toggle-selected-surface:var(--ap-color-accent-surface);
  --ap-toggle-selected-border:var(--ap-color-accent-border);
  --ap-toggle-selected-text:var(--ap-color-accent-strong);
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
.ap-auto-toggle--compact{
  grid-template-columns:repeat(2,38px)!important;
  gap:5px!important;
}
:is(
  .ap-auto-toggle>button,
  .ap-auto-toggle>span,
  .ap-auto-toggle .macro-weight-option>span
){
  border-color:var(--ap-toggle-border)!important;
  background:var(--ap-toggle-surface)!important;
  color:var(--ap-toggle-text)!important;
  -webkit-text-fill-color:var(--ap-toggle-text)!important;
  box-shadow:none!important;
}
:is(
  .ap-auto-toggle>button.is-selected,
  .ap-auto-toggle>button[aria-pressed="true"],
  .ap-auto-toggle>span.selected,
  .ap-auto-toggle>span[aria-checked="true"],
  .ap-auto-toggle .macro-weight-option>input:checked+span
){
  border-color:var(--ap-toggle-selected-border)!important;
  background:var(--ap-toggle-selected-surface)!important;
  color:var(--ap-toggle-selected-text)!important;
  -webkit-text-fill-color:var(--ap-toggle-selected-text)!important;
  box-shadow:none!important;
}
.planning-choice.ap-auto-toggle>span,
.macro-weight-toggle.ap-auto-toggle .macro-weight-option>span{
  min-height:48px!important;
  padding:7px 8px!important;
  border:1px solid var(--ap-toggle-border)!important;
  border-radius:7px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  font-family:var(--ap-font-family,Arial,sans-serif)!important;
  font-size:var(--ap-field-label-size,14px)!important;
  line-height:1.25!important;
  font-weight:700!important;
}
.macro-weight-toggle.ap-auto-toggle .macro-weight-option{height:100%}
.macro-weight-toggle.ap-auto-toggle .macro-weight-option>span{height:100%;min-height:84px!important}

/* Las cabeceras tabulares comparten el sombreado temático del resumen. */
.existing-table thead,
.macro-summary-table thead{
  background:linear-gradient(180deg,var(--ap-color-accent-soft-strong),var(--ap-color-accent-soft))!important;
  box-shadow:none!important;
}
.macro-summary-table thead th{
  font-weight:800!important;
}
.existing-table thead th,
.macro-summary-table thead th{
  border-bottom:2px solid var(--ap-table-divider)!important;
}
.existing-table thead th{
  color:var(--ap-color-text,#111)!important;
}

/* EXCEPCIÓN AP: las fórmulas TMB son un selector temático, no un field
   calculado. La opción activa y todos sus indicadores siguen el acento. */
body .planning-view .tmb-formula-row .ap-help-indicator{
  color:var(--ap-gold)!important;
}
body .planning-view .tmb-formula-row.tmb-formula-selected>strong,
body .planning-view .tmb-formula-row.tmb-formula-selected>strong>.ap-help-copy,
body .planning-view .tmb-formula-row.tmb-formula-selected>b{
  color:var(--ap-gold)!important;
  -webkit-text-fill-color:var(--ap-gold)!important;
}

/* ESTÁNDAR AP: el estado activo siempre recupera el oro de los tooltips. */
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
    textarea,
    select,
    .country-picker-trigger,
    .country-picker-search,
    .ap-dropdown__trigger,
    .activity-picker-control
  ):is(:focus,:focus-visible),
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .country-picker-trigger[aria-expanded="true"],
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .ap-dropdown.is-open .ap-dropdown__trigger,
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .activity-picker.is-open .activity-picker-control,
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body .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;
}

html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(
    input[readonly],
    input:disabled:not([type="checkbox"]):not([type="radio"]),
    textarea[readonly],
    textarea:disabled,
    select:disabled,
    output:not(.ap-unit-mobile-display),
    [aria-readonly="true"],
    .ap-dropdown__trigger:disabled,
    .activity-picker-control:disabled
  ){
  background:var(--ap-color-field-calculated,#f4f4f4)!important;
  color:var(--ap-color-accent-strong)!important;
  -webkit-text-fill-color:var(--ap-color-accent-strong)!important;
  font-weight:400!important;
  opacity:1!important;
}

html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(input[readonly],input:disabled,textarea[readonly],textarea:disabled)::placeholder{
  color:var(--ap-color-accent-strong)!important;
  -webkit-text-fill-color:var(--ap-color-accent-strong)!important;
  opacity:1!important;
}

/* ESTÁNDAR AP PRIORITARIO: los valores autocalculados heredan el acento.
   La doble condición de tema supera reglas heredadas de vistas concretas. */
html:is(
  [data-ap-resolved-theme="light"][data-ap-resolved-theme="light"],
  [data-ap-theme="light"][data-ap-theme="light"]
) body
  :is(
    input[readonly],
    input:disabled:not([type="checkbox"]):not([type="radio"]),
    textarea[readonly],
    textarea:disabled,
    select:disabled,
    output:not(.ap-unit-mobile-display),
    [aria-readonly="true"],
    .ap-dropdown__trigger:disabled,
    .activity-picker-control:disabled
  ){
  background:var(--ap-color-field-calculated,#f7f2eb)!important;
  border-color:var(--ap-color-border,#ddd6ce)!important;
  color:var(--ap-color-accent-strong)!important;
  -webkit-text-fill-color:var(--ap-color-accent-strong)!important;
  opacity:1!important;
}

/* Excepcion semantica: el ritmo semanal conserva su semaforo. */
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(#phaseWeeklyPacePreview,#phaseExpectedPace).is-pace-recommended{
  color:var(--phase-green)!important;
  -webkit-text-fill-color:var(--phase-green)!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(#phaseWeeklyPacePreview,#phaseExpectedPace).is-pace-caution{
  color:var(--phase-yellow)!important;
  -webkit-text-fill-color:var(--phase-yellow)!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(#phaseWeeklyPacePreview,#phaseExpectedPace).is-pace-excessive{
  color:var(--phase-red)!important;
  -webkit-text-fill-color:var(--phase-red)!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(#phaseWeeklyPacePreview,#phaseExpectedPace)[data-pace-status="neutral"]{
  color:var(--ap-color-text,#161616)!important;
  -webkit-text-fill-color:var(--ap-color-text,#161616)!important;
}
html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  #phaseWeeklyPacePreview[data-pace-status="neutral"]{
  background:var(--ap-color-field-editable,#fff)!important;
  border-color:var(--ap-color-border,#d9d9d9)!important;
}

html:is([data-ap-resolved-theme="light"],[data-ap-theme="light"]) body
  :is(
    input:not([type="hidden"]),
    textarea,
    select,
    option,
    output,
    .country-picker-trigger,
    .country-picker-option,
    .country-picker-option strong,
    .ap-dropdown__trigger,
    .ap-dropdown__option,
    .ap-dropdown__option strong,
    .activity-picker-control,
    .activity-picker-option
  ){
  font-weight:400!important;
}

/* ESTÁNDAR AP CLARO DE ETIQUETAS
   Selectores deliberadamente explícitos para compatibilidad con WebKit/iOS. */
html[data-ap-resolved-theme="light"] body .client-field>label,
html[data-ap-theme="light"] body .client-field>label,
html[data-ap-resolved-theme="light"] body .valuation-row>label,
html[data-ap-theme="light"] body .valuation-row>label,
html[data-ap-resolved-theme="light"] body .planning-field>strong,
html[data-ap-theme="light"] body .planning-field>strong,
html[data-ap-resolved-theme="light"] body .existing-filters label,
html[data-ap-theme="light"] body .existing-filters label,
html[data-ap-resolved-theme="light"] body .config-panel label,
html[data-ap-theme="light"] body .config-panel label{
  color:#161616!important;
}

[data-ap-active-client]>svg,#clientHeroIdentity>svg,.config-user-identity-icon{color:var(--ap-gold)!important}

/* ESTÁNDAR AP DE HEADERS NEGROS
   Sidebar, héroes y encabezados de sección comparten el mismo negro global. */
:where(
  .advisor-welcome,
  .planning-hero,
  .valuation-hero,
  .config-header,
  .existing-hero,
  .client-hero,
  .libraries-hero,
  .client-title,
  .client-section,
  .planning-heading,
  .valuation-heading,
  .existing-results-head,
  .results-dashboard .results-group-head,
  .ap-section-card>.ap-section-header,
  .config-v2-card>.config-v2-title
),
.existing-filters:before{
  background:var(--ap-color-header)!important;
  background-image:none!important;
}

/* ESTÁNDAR AP DE CONTORNOS ADAPTABLES
   Aplica en claro y nocturno; el tema resuelve los tokens correspondientes. */
:where(
  .ap-card,
  .config-v2-card,
  .card,
  .config-panel,
  .existing-filters,
  .existing-results,
  .existing-footer,
  .valuation-panel,
  .planning-panel,
  .projection-card,
  .ap-tabs,
  .config-tabs,
  .database-status,
  .excel-drop
){
  border-color:var(--ap-color-border)!important;
}
:where(
  input:not([type="hidden"]),
  select,
  textarea,
  output,
  .field,
  .country-picker-trigger,
  .activity-picker-control,
  .ap-dropdown__trigger
):not(:focus):not(:focus-visible):not([aria-expanded="true"]){
  border-color:var(--ap-color-border)!important;
}
.recent-searches button{
  border-color:var(--ap-color-border)!important;
  background:var(--ap-color-field-editable,#fff)!important;
  color:var(--ap-color-text,#111)!important;
  box-shadow:none!important;
  outline:none;
}
@media(hover:hover) and (pointer:fine){
  .recent-searches button:is(:hover,:focus-visible){
    border-color:var(--ap-color-accent)!important;
    background:var(--ap-color-accent-surface-muted)!important;
    color:var(--ap-color-accent-strong)!important;
  }
}

/* ESTÁNDAR AP: botones de acción adaptativos. Los botones conservan su
   identidad visual; sólo se unifican medidas, alineación y respuesta móvil. */
@container ap-content (max-width:560px){
  .ap-form-actions{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:12px!important;
  }
  .ap-form-actions>:is(.ap-save-button,.ap-cancel-button,.ap-danger-button,button[type="submit"]),
  .ap-danger-button{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    flex:none!important;
  }
}
@media(max-width:760px){
  .ap-form-actions{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:12px!important;
  }
  .ap-form-actions>:is(.ap-save-button,.ap-cancel-button,.ap-danger-button,button[type="submit"]),
  .ap-danger-button{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    flex:none!important;
  }
}

/* Los page headers siempre son negros: su retorno usa la variante nocturna
   del botón secundario en ambos modos de apariencia. */
.ap-view-back{
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  flex:0 0 34px;
  padding:0;
  border:1px solid var(--ap-color-accent-border);
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#171717;
  color:var(--ap-gold);
  box-shadow:none;
}
.ap-view-back svg{width:18px;height:18px}
.ap-view-back:focus-visible{border-color:var(--ap-gold);background:#292929;color:var(--ap-color-accent-bright,var(--ap-gold));box-shadow:none;outline:2px solid var(--ap-gold);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.ap-view-back:hover{border-color:var(--ap-color-accent-bright);background:var(--ap-color-accent-surface-strong);color:var(--ap-gold);box-shadow:none}}
@media(hover:none),(pointer:coarse){.ap-view-back:is(:hover,:focus){border-color:var(--ap-color-accent-border);background:#171717;color:var(--ap-gold);box-shadow:none;transform:none}}
@media(max-width:650px){.ap-view-back{width:34px;min-width:34px;height:34px;min-height:34px;flex-basis:34px;border-radius:8px}.ap-view-back svg{width:18px;height:18px}}

/* Contexto derecho universal del page header: regreso + ficha de usuario. */
.ap-header-context{
  min-width:0;
  margin-left:auto;
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  gap:12px;
}
.ap-header-context>.ap-view-back{
  width:var(--ap-header-identity-size,62px);
  min-width:var(--ap-header-identity-size,62px);
  height:var(--ap-header-identity-size,62px);
  min-height:var(--ap-header-identity-size,62px);
  flex:0 0 var(--ap-header-identity-size,62px);
  border-radius:9px;
  align-self:center;
}
.ap-header-context>.ap-view-back svg{width:26px;height:26px}
.ap-page-header :is(.client-hero-icon,.existing-hero-icon,.valuation-hero-icon,.planning-hero-icon,.libraries-hero-icon,.config-header-icon,.results-hero-icon,.foods-hero-icon,.food-editor-hero-icon,.ap-advisory-hero__icon){
  width:var(--ap-header-identity-size,62px)!important;
  min-width:var(--ap-header-identity-size,62px)!important;
  height:var(--ap-header-identity-size,62px)!important;
  min-height:var(--ap-header-identity-size,62px)!important;
  flex-basis:var(--ap-header-identity-size,62px)!important;
}
.ap-page-header :is(.client-hero-icon,.existing-hero-icon,.valuation-hero-icon,.planning-hero-icon,.libraries-hero-icon,.config-header-icon,.results-hero-icon,.foods-hero-icon,.food-editor-hero-icon,.ap-advisory-hero__icon)>svg{
  width:46px!important;
  height:46px!important;
  max-width:calc(100% - 10px)!important;
  max-height:calc(100% - 10px)!important;
  flex:0 0 46px!important;
  display:block!important;
}
.ap-page-header :is(.client-hero-copy,.existing-hero-main,.valuation-hero-copy,.planning-hero-copy,.libraries-hero-copy,.results-hero-copy,.foods-hero-copy,.food-editor-hero-copy,.ap-advisory-hero__copy){align-items:flex-start!important}
.config-header>.config-header-icon{align-self:flex-start}
.config-header>.config-header-icon+div{min-width:0}
.ap-header-context>:is(.client-hero-identity,.valuation-hero-client,.planning-client,.ap-client-identity,.config-user-identity,.existing-hero-user){margin:0!important}
@container ap-content (max-width:850px){
  .ap-header-context{width:100%;margin-left:0;justify-content:flex-start}
  .ap-header-context>:is(.client-hero-identity,.valuation-hero-client,.planning-client,.ap-client-identity,.config-user-identity,.existing-hero-user){
    width:auto!important;
    min-width:0!important;
    flex:1 1 auto!important;
  }
}
@media(max-width:650px){
  .ap-header-context{width:100%;margin-left:0;justify-content:flex-start}
  .ap-header-context>.ap-view-back{width:var(--ap-header-identity-size,62px);min-width:var(--ap-header-identity-size,62px);height:var(--ap-header-identity-size,62px);min-height:var(--ap-header-identity-size,62px);flex:0 0 var(--ap-header-identity-size,62px);border-radius:9px;align-self:center}
  .ap-header-context>:is(.client-hero-identity,.valuation-hero-client,.planning-client,.ap-client-identity,.config-user-identity,.existing-hero-user){
    width:auto!important;
    min-width:0!important;
    flex:1 1 auto!important;
  }
}
@media(min-width:521px) and (max-width:760px){
  .ap-phase-metric{height:104px;padding:10px 12px}
  .ap-phase-weight-change{min-height:18px;line-height:1.1}
}

/* Dual-unit fields: the preferred system remains editable; the equivalent is always visible. */
.ap-dual-unit-control{
  display:grid;
  grid-template-columns:minmax(92px,1fr) minmax(78px,.72fr);
  align-items:stretch;
  gap:7px;
  width:100%;
  min-width:0;
}
.ap-unit-primary{display:flex;min-width:0}
.ap-inline-unit-field{display:block;min-width:0;width:100%}
.ap-unit-field{position:relative;min-width:0}
.ap-unit-field>.ap-unit-value{
  width:100%;
  min-width:0;
  padding-left:12px!important;
  padding-right:12px!important;
  box-sizing:border-box;
  text-align:center!important;
  text-indent:var(--ap-unit-center-offset,0px)!important;
}
.ap-unit-field>.ap-unit-suffix{
  position:absolute;
  top:50%;
  left:calc(50% + var(--ap-unit-center-offset,0px) + var(--ap-unit-native-text-offset,0px) + var(--ap-unit-value-half,0px) + var(--ap-unit-gap,.25em));
  right:auto;
  z-index:1;
  transform:translateY(-50%);
  color:var(--ap-unit-editable-text,#161616);
  font-size:16px;
  font-style:normal;
  font-weight:400;
  line-height:1;
  white-space:nowrap;
  pointer-events:none;
}
.ap-unit-field>.ap-unit-suffix::before{content:none}
@media (min-width:761px) and (hover:hover) and (pointer:fine){
  .ap-unit-field.ap-unit-long-number>.ap-unit-value{
    text-indent:calc(var(--ap-unit-center-offset,0px) - var(--ap-unit-gap,.4em))!important;
  }
}
.ap-unit-field:has(>.ap-unit-value:is([readonly],:disabled))>.ap-unit-suffix{
  color:var(--ap-color-accent-strong,var(--ap-gold));
  opacity:1;
}
:root{--ap-unit-editable-text:#161616;--ap-unit-auto-text:var(--ap-color-accent-strong,var(--ap-gold))}
:root:is([data-ap-resolved-theme="dark"],[data-ap-theme="dark"]){--ap-unit-editable-text:#ededed;--ap-unit-auto-text:var(--ap-color-accent-bright,var(--ap-gold))}
.ap-unit-field>.ap-unit-mobile-display{display:none}
html body .ap-unit-field.ap-unit-field.ap-unit-mobile-ready:not(.ap-unit-editing)>input.ap-unit-value.ap-unit-value{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:none!important;
}
html body .ap-unit-field.ap-unit-field.ap-unit-mobile-ready:not(.ap-unit-editing)>input.ap-unit-value.ap-unit-value::placeholder{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  opacity:0!important;
}
html body .ap-unit-field.ap-unit-field.ap-unit-mobile-ready:not(.ap-unit-editing)>.ap-unit-suffix.ap-unit-suffix{
  opacity:0!important;
  visibility:hidden!important;
}
html body .ap-unit-field.ap-unit-mobile-ready>.ap-unit-mobile-display{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent!important;
  border:0!important;
  border-radius:inherit!important;
  box-shadow:none!important;
  color:var(--ap-unit-editable-text,#161616);
  -webkit-text-fill-color:var(--ap-unit-editable-text,#161616)!important;
  font-size:var(--ap-field-font-size,17px);
  font-weight:400;
  line-height:1;
  opacity:1!important;
  pointer-events:none;
}
.ap-unit-field.ap-unit-mobile-ready.ap-unit-editing>.ap-unit-mobile-display{display:none}
.ap-unit-field.ap-unit-mobile-ready.ap-unit-editing>.ap-unit-suffix{opacity:0!important;visibility:hidden!important}
.ap-unit-field.ap-unit-mobile-ready.ap-unit-editing>.ap-unit-value{text-indent:0!important}
.ap-unit-mobile-copy{white-space:pre}
html body .ap-unit-mobile-value{color:var(--ap-unit-editable-text,#161616)!important;-webkit-text-fill-color:var(--ap-unit-editable-text,#161616)!important;font:inherit}
html body .ap-unit-mobile-symbol{color:var(--ap-unit-editable-text,#161616)!important;-webkit-text-fill-color:var(--ap-unit-editable-text,#161616)!important;font:inherit}
html body .ap-unit-mobile-display.is-placeholder :is(.ap-unit-mobile-value,.ap-unit-mobile-symbol){color:var(--ap-color-text-muted,#777)!important;-webkit-text-fill-color:var(--ap-color-text-muted,#777)!important}
html body .ap-unit-field:has(>input.ap-unit-value:is([readonly],:disabled))>.ap-unit-mobile-display :is(.ap-unit-mobile-value,.ap-unit-mobile-symbol){color:var(--ap-unit-auto-text)!important;-webkit-text-fill-color:var(--ap-unit-auto-text)!important}
.ap-inline-unit-field--calories>input{
  padding-inline:10px!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  caret-color:transparent!important;
}
.ap-inline-unit-field--calories>output,
.ap-unit-field>.ap-unit-display{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ap-color-accent-strong,var(--ap-gold));
  font-size:16px;
  font-weight:400;
  line-height:1;
  white-space:nowrap;
  pointer-events:none;
}
html body .ap-inline-unit-field--calories>input#macroCaloriasTotales{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:none!important;
  font-size:0!important;
}
.ap-dual-unit-control:not(.ap-unit-inactive) .ap-body-fat-unit{display:none}
.ap-unit-secondary{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:36px;
  padding:0 8px;
  border:1px solid var(--ap-color-border-soft,#dedede);
  border-radius:6px;
  background:var(--ap-color-field-calculated,#f4f4f4);
  color:var(--ap-color-text-muted,#666);
  font-size:16px;
  font-weight:400;
  line-height:1;
  text-align:center;
  box-sizing:border-box;
  white-space:nowrap;
}
.ap-unit-secondary.is-empty{opacity:.62}

/* La conversión acompaña al valor editable sin competir con él. */
html:is(
  [data-ap-resolved-theme="light"][data-ap-resolved-theme="light"],
  [data-ap-theme="light"][data-ap-theme="light"]
) body .ap-dual-unit-control.ap-dual-unit-control output.ap-unit-secondary.ap-unit-secondary{
  background:color-mix(in srgb,var(--ap-color-field-calculated,#f4f4f4) 58%,#fff)!important;
  border-color:color-mix(in srgb,var(--ap-color-border,#d9d9d9) 72%,#fff)!important;
  color:var(--ap-color-accent-strong,var(--ap-gold))!important;
  -webkit-text-fill-color:var(--ap-color-accent-strong,var(--ap-gold))!important;
  font-weight:400!important;
}
html body .ap-dual-unit-control.ap-dual-unit-control output.ap-unit-secondary.ap-unit-secondary.is-empty{opacity:.62!important}
.ap-height-imperial-input{display:grid;grid-template-columns:1fr 1fr;gap:5px;width:100%;min-width:0}
.ap-height-imperial-input label{display:block;min-width:0}
.ap-dual-unit-control.ap-unit-compact{display:block}
.ap-dual-unit-control.ap-unit-compact .ap-unit-primary{display:none}
.ap-dual-unit-control.ap-unit-compact .ap-unit-secondary{width:100%;min-height:44px;flex-direction:column;gap:2px;white-space:normal;line-height:1.05}
.ap-dual-unit-control.ap-unit-compact .ap-unit-secondary span{display:block;white-space:nowrap}
.ap-dual-unit-control.ap-unit-compact .ap-unit-secondary span:first-child{color:var(--ap-color-accent-bright,var(--ap-gold))}
.ap-dual-unit-control.ap-unit-compact .ap-unit-secondary span+span{width:calc(100% - 12px);margin-top:2px;padding-top:3px;border-top:1px solid currentColor;color:var(--ap-color-text-muted,#777)}
.results-dashboard .metric-item{grid-template-columns:minmax(0,1fr) 118px!important;min-height:106px}
.results-dashboard .metric-item>input,.results-dashboard .metric-item>.ap-dual-unit-control .ap-unit-secondary{height:56px;min-height:56px}
.ap-dual-unit-control.ap-unit-inactive{display:block}
.ap-dual-unit-control.ap-unit-inactive :is(.ap-unit-primary-symbol,.ap-unit-secondary){display:none}
.ap-dual-unit-control.ap-unit-inactive .ap-unit-primary>input{padding-left:12px!important;padding-right:12px!important}
.ap-dual-unit-control.ap-unit-inactive .ap-unit-primary:has(.ap-body-fat-unit)>input{padding-left:12px!important;padding-right:12px!important}
.planning-field:has(.ap-dual-unit-control){grid-template-columns:1fr;gap:6px;align-items:stretch}
.planning-field:has(.ap-dual-unit-control)>.ap-dual-unit-control{width:100%;max-width:none}
.planning-metrics .ap-dual-result-primary,.planning-metrics .ap-dual-result-secondary,.macro-weight-option b .ap-dual-result-primary,.macro-weight-option b .ap-dual-result-secondary{display:block;white-space:nowrap}
.planning-metrics .ap-dual-result-secondary,.macro-weight-option b .ap-dual-result-secondary{width:min(82px,80%);margin:4px auto 0;padding-top:4px;border-top:1px solid currentColor;color:var(--ap-color-text-muted,#777);font-size:14px;font-weight:700}
.macro-weight-option b>span.ap-dual-result-primary,.macro-weight-option b>span.ap-dual-result-secondary{
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  font-size:14px!important;
  font-weight:700!important;
}
.macro-weight-option b>span.ap-dual-result-secondary{width:min(82px,80%)!important;margin:4px auto 0!important;padding-top:4px!important;border-top:1px solid var(--ap-color-accent-bright,var(--ap-gold))!important}
.ap-phase-metric--weight :is(#phaseInitialWeight,#phaseFinalWeight,#phaseExpectedChange) .ap-dual-result-primary,.ap-phase-metric--weight :is(#phaseInitialWeight,#phaseFinalWeight,#phaseExpectedChange) .ap-dual-result-secondary{display:block;white-space:nowrap}
.ap-phase-metric--weight .ap-phase-metric__content>strong{width:auto;max-width:none;display:grid;grid-template-columns:auto auto auto;align-items:start;justify-content:center;gap:8px}
.ap-phase-metric--weight :is(#phaseInitialWeight,#phaseFinalWeight){display:grid;width:100%;min-width:0;vertical-align:middle}
.ap-phase-metric--weight :is(#phaseInitialWeight,#phaseFinalWeight,#phaseExpectedChange) .ap-dual-result-secondary{width:min(82px,85%);margin:4px auto 0;padding-top:4px;border-top:1px solid currentColor;color:var(--ap-color-text-muted,#777);font-size:14px;font-weight:700}
@media(max-width:760px){
  .ap-phase-metric--weight .ap-phase-metric__content>strong{max-width:100%;gap:5px;font-size:clamp(14px,3.4vw,14px)}
  .ap-phase-metric--weight :is(#phaseInitialWeight,#phaseFinalWeight,#phaseExpectedChange) .ap-dual-result-secondary{font-size:clamp(14px,2.9vw,14px)}
  .ap-phase-metric--weight>.ap-phase-weight-change{font-size:clamp(14px,3.4vw,14px);white-space:nowrap}
}
@media(max-width:650px){
  .ap-dual-unit-control{grid-template-columns:minmax(0,1fr) minmax(72px,.7fr)}
  .ap-unit-secondary{font-size:16px;padding-inline:5px}
}
