.portfolio-simulator {
  --ps-paper: var(--color-surface);
  --ps-sunken: var(--color-bg-muted);
  --ps-ink: var(--color-text);
  --ps-ink-2: var(--color-text-muted);
  --ps-ink-3: color-mix(in srgb, var(--color-text-muted) 78%, transparent);
  --ps-rule: var(--color-border);
  --ps-rule-2: color-mix(in srgb, var(--color-border) 72%, var(--color-text));
  --ps-now: var(--invictus-gold-accessible, #6b4e32);
  --ps-now-wash: color-mix(in srgb, var(--invictus-gold-accessible, #6b4e32) 11%, transparent);
  --ps-fixed: #6a4b8a;
  --ps-enhanced: #a16d2c;
  --ps-equity: #315f72;
  --ps-index: #777b82;
  --ps-benchmark: #2f8f8a;
  --ps-alarm: #a43e4d;
  --ps-ok: #2d7567;
  padding: 1.5rem 0 4rem;
  color: var(--ps-ink);
  font-size: .9375rem;
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1.55;
}
.portfolio-simulator [hidden] { display: none !important; }
.portfolio-simulator .wrap { width: min(calc(100% - 2rem), 76rem); margin-inline: auto; }
.portfolio-simulator .grid { display: grid; grid-template-columns: 21rem minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.portfolio-simulator .panel { padding-right: 2.25rem; border-right: 1px solid var(--ps-rule); }
.portfolio-simulator .group { margin: 0 0 1.625rem; padding: 0; border: 0; }
.portfolio-simulator .glabel { margin: 0 0 .35rem; color: var(--ps-ink); font-size: .8125rem; font-weight: 750; }
.portfolio-simulator legend.glabel { padding: 0; }
.portfolio-simulator .glabelrow,
.portfolio-simulator .section-heading,
.portfolio-simulator .results-head { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; }
.portfolio-simulator .glabelrow .glabel { margin-bottom: 0; }
.portfolio-simulator .allocation-total { color: var(--ps-now); font-size: .8125rem; font-weight: 800; }
.portfolio-simulator .ghint,
.portfolio-simulator .section-heading p { margin: .25rem 0 .75rem; color: var(--ps-ink-3); font-size: .8125rem; line-height: 1.45; }

.portfolio-simulator .mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: .375rem; padding: .25rem; background: var(--ps-sunken); border: 1px solid var(--ps-rule); border-radius: .75rem; }
.portfolio-simulator .mode-tabs label { position: relative; display: grid; place-items: center; min-height: 3.25rem; padding: .5rem .625rem; color: var(--ps-ink-2); border-radius: .55rem; font-size: .8125rem; font-weight: 700; line-height: 1.25; text-align: center; cursor: pointer; }
.portfolio-simulator .mode-tabs input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.portfolio-simulator .mode-tabs label:has(input:checked) { color: var(--ps-now); background: var(--ps-paper); box-shadow: 0 1px 3px color-mix(in srgb, var(--ps-ink) 12%, transparent); }
.portfolio-simulator .mode-tabs label:has(input:focus-visible) { outline: 2px solid var(--ps-now); outline-offset: 2px; }

.portfolio-simulator .field-row { display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); align-items: center; gap: .625rem; min-height: 3rem; font-size: .875rem; }
.portfolio-simulator select { width: 100%; min-height: 2.75rem; padding: .5rem 2rem .5rem .75rem; color: var(--ps-ink); background: var(--ps-paper); border: 1px solid var(--ps-rule-2); border-radius: .5rem; font: inherit; }
.portfolio-simulator .scenario-select { position: relative; width: 100%; min-width: 0; }
.portfolio-simulator .scenario-select-native { position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; opacity: 0; pointer-events: none; }
.portfolio-simulator .scenario-select-button { position: relative; width: 100%; min-height: 3rem; padding: .65rem 2.5rem .65rem .8rem; color: var(--ps-ink); background: var(--ps-paper); border: 1px solid var(--ps-rule-2); border-radius: .625rem; box-shadow: 0 1px 2px color-mix(in srgb, var(--ps-ink) 7%, transparent); font-size: .8125rem; font-weight: 700; line-height: 1.3; text-align: left; }
.portfolio-simulator .scenario-select-button::after { content: ""; position: absolute; top: 50%; right: .9rem; width: .48rem; height: .48rem; border-right: 2px solid var(--ps-now); border-bottom: 2px solid var(--ps-now); transform: translateY(-70%) rotate(45deg); transition: transform .16s ease; }
.portfolio-simulator .scenario-select-button:hover { color: var(--ps-ink); background: var(--ps-sunken); border-color: var(--ps-ink-3); }
.portfolio-simulator .scenario-select.is-open .scenario-select-button { background: var(--ps-paper); border-color: var(--ps-now); box-shadow: 0 0 0 3px var(--ps-now-wash); }
.portfolio-simulator .scenario-select.is-open .scenario-select-button::after { transform: translateY(-30%) rotate(225deg); }
.portfolio-simulator .scenario-select-list { position: absolute; z-index: 30; top: calc(100% + .375rem); left: 0; width: min(22rem, calc(100vw - 3rem)); min-width: 100%; max-height: min(24rem, 60vh); overflow-y: auto; margin: 0; padding: .4rem; list-style: none; background: var(--ps-paper); border: 1px solid var(--ps-rule-2); border-radius: .75rem; box-shadow: 0 .875rem 2rem color-mix(in srgb, var(--ps-ink) 18%, transparent); }
.portfolio-simulator .scenario-select-list[hidden] { display: none; }
.portfolio-simulator .scenario-select-option { position: relative; padding: .65rem .75rem .65rem 2rem; color: var(--ps-ink-2); border-radius: .5rem; font-size: .8125rem; font-weight: 600; line-height: 1.35; cursor: pointer; }
.portfolio-simulator .scenario-select-option:hover,
.portfolio-simulator .scenario-select-option:focus-visible { color: var(--ps-ink); background: var(--ps-sunken); outline: none; }
.portfolio-simulator .scenario-select-option[aria-selected="true"] { color: var(--ps-now); background: var(--ps-now-wash); font-weight: 800; }
.portfolio-simulator .scenario-select-option[aria-selected="true"]::before { content: "\2713"; position: absolute; left: .7rem; top: .65rem; font-weight: 900; }
.portfolio-simulator select:focus-visible,
.portfolio-simulator button:focus-visible,
.portfolio-simulator input:focus-visible { outline: 2px solid var(--ps-now); outline-offset: 2px; }
.portfolio-simulator .slider-row { display: grid; grid-template-columns: 9.65rem minmax(4rem, 1fr) 3rem; align-items: center; gap: .625rem; min-height: 3.15rem; }
.portfolio-simulator .slider-row label { display: flex; align-items: center; gap: .4rem; font-size: .8125rem; font-weight: 650; line-height: 1.25; }
.portfolio-simulator input[type="range"] { width: 100%; height: 2.75rem; margin: 0; appearance: none; background: transparent; cursor: pointer; }
.portfolio-simulator input[type="range"]:disabled { cursor: not-allowed; opacity: .55; }
.portfolio-simulator input[type="range"]::-webkit-slider-runnable-track { height: .1875rem; background: var(--ps-rule-2); border: 0; border-radius: 999px; }
.portfolio-simulator input[type="range"]::-moz-range-track { height: .1875rem; background: var(--ps-rule-2); border: 0; border-radius: 999px; }
.portfolio-simulator input[type="range"]::-webkit-slider-thumb { width: 1rem; height: 1rem; margin-top: -.40625rem; appearance: none; background: var(--ps-paper); border: 2px solid var(--ps-ink); border-radius: 50%; box-shadow: 0 1px 3px color-mix(in srgb, var(--ps-ink) 18%, transparent); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.portfolio-simulator input[type="range"]::-moz-range-thumb { width: .875rem; height: .875rem; background: var(--ps-paper); border: 2px solid var(--ps-ink); border-radius: 50%; box-shadow: 0 1px 3px color-mix(in srgb, var(--ps-ink) 18%, transparent); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.portfolio-simulator input[type="range"]:hover::-webkit-slider-thumb { border-color: var(--ps-now); transform: scale(1.08); }
.portfolio-simulator input[type="range"]:hover::-moz-range-thumb { border-color: var(--ps-now); transform: scale(1.08); }
.portfolio-simulator input[type="range"]:focus-visible { outline: none; }
.portfolio-simulator input[type="range"]:focus-visible::-webkit-slider-thumb { border-color: var(--ps-now); box-shadow: 0 0 0 4px var(--ps-now-wash); }
.portfolio-simulator input[type="range"]:focus-visible::-moz-range-thumb { border-color: var(--ps-now); box-shadow: 0 0 0 4px var(--ps-now-wash); }
.portfolio-simulator .pct { color: var(--ps-ink-2); font-size: .8125rem; font-weight: 750; text-align: right; }
.portfolio-simulator .horizon-slider { grid-template-columns: 4.25rem minmax(4rem, 1fr) 4.75rem; }
.portfolio-simulator .chip { display: inline-block; width: .55rem; height: .55rem; flex: 0 0 .55rem; border-radius: 50%; }
.portfolio-simulator .chip-fixed { background: var(--ps-fixed); }
.portfolio-simulator .chip-enhanced { background: var(--ps-enhanced); }
.portfolio-simulator .chip-equity { background: var(--ps-equity); }

.portfolio-simulator .inline-help { margin: .35rem 0 .65rem; }
.portfolio-simulator .inline-help summary,
.portfolio-simulator .methodology-help summary { display: flex; align-items: center; gap: .45rem; width: fit-content; min-height: 2.5rem; color: var(--ps-ink-2); font-size: .8125rem; font-weight: 650; cursor: pointer; list-style: none; }
.portfolio-simulator .inline-help summary::-webkit-details-marker,
.portfolio-simulator .methodology-help summary::-webkit-details-marker { display: none; }
.portfolio-simulator .inline-help[open] summary,
.portfolio-simulator .methodology-help[open] summary { color: var(--ps-now); }
.portfolio-simulator .help-icon { display: inline-grid; place-items: center; width: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; border: 1px solid currentColor; border-radius: 50%; font-size: .6875rem; font-weight: 800; line-height: 1; }
.portfolio-simulator .inline-help .ghint { margin: 0 0 .25rem 1.575rem; }
.portfolio-simulator .basis-help { margin-top: -.35rem; }

.portfolio-simulator button { min-height: 2.75rem; padding: .55rem .85rem; color: var(--ps-ink-2); background: transparent; border: 1px solid var(--ps-rule-2); border-radius: .5rem; font: inherit; font-size: .875rem; font-weight: 650; cursor: pointer; }
.portfolio-simulator button:hover { color: var(--ps-ink); border-color: var(--ps-ink-3); }
.portfolio-simulator button.primary-action { color: var(--ps-paper); background: var(--ps-now); border-color: var(--ps-now); }
.portfolio-simulator button:disabled { cursor: not-allowed; opacity: .5; }
.portfolio-simulator .composition-actions { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: .5rem; margin: .65rem 0 .75rem; }
.portfolio-simulator .composition-actions button { width: 100%; padding-inline: .55rem; }
.portfolio-simulator .tail-size { margin-bottom: .5rem; }
.portfolio-simulator .tail-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.portfolio-simulator .tail-actions button { width: 100%; }
.portfolio-simulator .shocks { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem; }
.portfolio-simulator .shock { display: inline-flex; align-items: center; gap: .15rem; padding: .1rem .15rem .1rem .4rem; color: var(--ps-alarm); border: 1px solid var(--ps-alarm); border-radius: .3rem; font-size: .6875rem; font-weight: 700; line-height: 1.15; }
.portfolio-simulator .shock.positive { color: var(--ps-ok); border-color: var(--ps-ok); }
.portfolio-simulator .shock button { min-width: 1.35rem; min-height: 1.35rem; padding: 0; color: inherit; border: 0; font-size: .8125rem; line-height: 1; }
.portfolio-simulator .empty { margin: .5rem 0 0; color: var(--ps-ink-3); font-size: .8125rem; }

.portfolio-simulator .results { min-width: 0; }
.portfolio-simulator .results-head { min-height: 2.75rem; margin-bottom: .875rem; }
.portfolio-simulator .simulation-state { flex: 1 1 13rem; min-width: 0; }
.portfolio-simulator .run-status { color: var(--ps-ink-3); font-size: .8125rem; }
.portfolio-simulator .simulation-progress { display: grid; grid-template-columns: minmax(7rem, 1fr) auto; align-items: center; gap: .625rem; max-width: 22rem; margin-top: .35rem; }
.portfolio-simulator .simulation-progress progress { width: 100%; height: .55rem; overflow: hidden; border: 0; border-radius: 999px; background: var(--ps-sunken); accent-color: var(--ps-now); }
.portfolio-simulator .simulation-progress progress::-webkit-progress-bar { background: var(--ps-sunken); border-radius: 999px; }
.portfolio-simulator .simulation-progress progress::-webkit-progress-value { background: var(--ps-now); border-radius: 999px; transition: width .12s linear; }
.portfolio-simulator .simulation-progress progress::-moz-progress-bar { background: var(--ps-now); border-radius: 999px; }
.portfolio-simulator .simulation-progress span { color: var(--ps-ink-2); font-size: .75rem; font-weight: 750; white-space: nowrap; }
.portfolio-simulator .run-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; margin-left: auto; }
.portfolio-simulator .leader-highlight { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; margin: 0 0 1rem; padding: .8rem 1rem; background: var(--ps-now-wash); border: 1px solid color-mix(in srgb, var(--ps-now) 32%, var(--ps-rule)); border-left: 4px solid var(--ps-now); border-radius: .65rem; }
.portfolio-simulator .leader-highlight[hidden] { display: none; }
.portfolio-simulator .leader-highlight-kicker { color: var(--ps-ink-2); font-size: .6875rem; font-weight: 800; letter-spacing: .065em; line-height: 1.25; text-transform: uppercase; }
.portfolio-simulator .leader-highlight-result { display: flex; align-items: baseline; justify-content: flex-end; gap: .65rem 1rem; text-align: right; }
.portfolio-simulator .leader-highlight-result strong { color: var(--ps-now); font-size: 1.05rem; font-weight: 850; }
.portfolio-simulator .leader-highlight-result span { color: var(--ps-ink-2); font-size: .8125rem; }
.portfolio-simulator .period-note { min-height: 1.45rem; margin: 0 0 .4rem; color: var(--ps-ink-3); font-size: .75rem; }
.portfolio-simulator .legend { display: flex; flex-wrap: wrap; gap: 1.125rem; margin: 0 0 .625rem; color: var(--ps-ink-2); font-size: .8125rem; }
.portfolio-simulator .legend span { display: flex; align-items: center; gap: .4375rem; }
.portfolio-simulator .legend-mix { color: var(--ps-now); font-weight: 800; }
.portfolio-simulator .swatch { width: 1.125rem; height: 0; border-top: 2px solid; }
.portfolio-simulator .swatch-mix { width: 1.5rem; border-color: var(--ps-now); border-top-width: 4px; }
.portfolio-simulator .swatch-index { border-color: var(--ps-index); border-top-style: dashed; }
.portfolio-simulator .swatch-benchmark { border-color: var(--ps-benchmark); border-top-style: dotted; }
.portfolio-simulator .chartbox { position: relative; width: 100%; height: 23rem; }
.portfolio-simulator #bal { width: 100%; height: 100%; min-height: 19rem; }

.portfolio-simulator .path-summary { margin-top: 1.35rem; }
.portfolio-simulator .section-heading h2 { margin: 0; font-size: 1rem; font-weight: 750; }
.portfolio-simulator .section-heading p { margin: 0; text-align: right; }
.portfolio-simulator .table-scroll { overflow-x: auto; margin-top: .625rem; border: 1px solid var(--ps-rule); border-radius: .6rem; }
.portfolio-simulator .summary-table { width: 100%; border-collapse: collapse; font-size: .8125rem; }
.portfolio-simulator .summary-table th,
.portfolio-simulator .summary-table td { min-width: 7rem; padding: .65rem .75rem; border-bottom: 1px solid var(--ps-rule); text-align: right; vertical-align: top; }
.portfolio-simulator .summary-table th:first-child { min-width: 8.5rem; color: var(--ps-ink-2); text-align: left; }
.portfolio-simulator .summary-table thead th { color: var(--ps-ink-2); background: var(--ps-sunken); font-weight: 700; }
.portfolio-simulator .summary-table tbody tr:last-child > * { border-bottom: 0; }
.portfolio-simulator .summary-table thead th:nth-child(2),
.portfolio-simulator .summary-table tbody td:nth-child(2) { background: var(--ps-now-wash); font-weight: 750; }
.portfolio-simulator .methodology-help { max-width: 78ch; margin-top: 1.5rem; padding-top: .4rem; border-top: 1px solid var(--ps-rule); }
.portfolio-simulator .note { margin: .25rem 0 0 1.575rem; color: var(--ps-ink-3); font-size: .8125rem; line-height: 1.55; }
.portfolio-simulator .note p { margin: 0 0 .55rem; }
.portfolio-simulator .detail-full { grid-column: 1 / -1; min-width: 0; margin-top: -1rem; }
.portfolio-simulator .dwrap { margin-top: .875rem; overflow-x: auto; border: 1px solid var(--ps-rule); border-radius: .5rem; }
.portfolio-simulator table.detail { width: 100%; border-collapse: collapse; font-size: .75rem; white-space: nowrap; }
.portfolio-simulator table.detail th,
.portfolio-simulator table.detail td { padding: .45rem .65rem; border-bottom: 1px solid var(--ps-rule); text-align: right; }
.portfolio-simulator table.detail th { color: var(--ps-ink-2); background: var(--ps-sunken); font-weight: 700; }
.portfolio-simulator table.detail th:first-child,
.portfolio-simulator table.detail td:first-child,
.portfolio-simulator table.detail th:nth-child(2),
.portfolio-simulator table.detail td:nth-child(2) { text-align: left; }
.portfolio-simulator table.detail td.neg { color: var(--ps-alarm); }
.portfolio-simulator table.detail .mixcol { background: var(--ps-now-wash); font-weight: 700; }
.portfolio-simulator table.detail tfoot > tr > * { background: var(--ps-sunken); border-bottom: 0; border-top: 1px solid var(--ps-rule-2); }

@media (max-width: 61rem) {
  .portfolio-simulator .grid { grid-template-columns: 1fr; gap: 2rem; }
  .portfolio-simulator .panel { padding-right: 0; padding-bottom: 1.75rem; border-right: 0; border-bottom: 1px solid var(--ps-rule); }
  .portfolio-simulator .slider-row { grid-template-columns: 11rem minmax(5rem, 1fr) 3rem; }
  .portfolio-simulator .detail-full { margin-top: -1rem; }
}
@media (max-width: 43rem) {
  .portfolio-simulator { padding-top: .75rem; }
  .portfolio-simulator .mode-tabs { grid-template-columns: 1fr; }
  .portfolio-simulator .slider-row { grid-template-columns: minmax(8rem, 1fr) 3rem; gap: .25rem .75rem; padding: .35rem 0; }
  .portfolio-simulator .slider-row label { grid-column: 1; }
  .portfolio-simulator .slider-row input { grid-column: 1 / -1; grid-row: 2; }
  .portfolio-simulator .slider-row .pct { grid-column: 2; grid-row: 1; }
  .portfolio-simulator .horizon-slider { grid-template-columns: minmax(8rem, 1fr) 4.75rem; }
  .portfolio-simulator .scenario-select-list { right: 0; left: auto; }
  .portfolio-simulator .results-head,
  .portfolio-simulator .section-heading { align-items: flex-start; flex-direction: column; }
  .portfolio-simulator .leader-highlight,
  .portfolio-simulator .leader-highlight-result { align-items: flex-start; flex-direction: column; gap: .35rem; text-align: left; }
  .portfolio-simulator .composition-actions { grid-template-columns: 1fr; }
  .portfolio-simulator .section-heading p { text-align: left; }
  .portfolio-simulator .chartbox { height: 19rem; }
  .portfolio-simulator .legend { gap: .55rem 1rem; }
  .portfolio-simulator .summary-table th,
  .portfolio-simulator .summary-table td { padding: .55rem .625rem; }
}
