/* Haven Simulator: reuses the Haven 7 performance look (h7p- classes) and adds its own controls. */
.hsim .hsim-controls-wrap { position: sticky; top: 5rem; bottom: auto; left: auto; width: auto; max-height: calc(100vh - 6rem); grid-column: 1; }
.hsim .h7p-condition select:disabled { color: #777; background: #f7f4ef; cursor: not-allowed; }
.hsim-event-control select { font-size: .82rem; }
.hsim-event-description { margin: -.5rem 0 0; padding: .75rem .9rem; border-left: 3px solid var(--h7p-blue); background: #f3f5f6; color: #4a4a4a; font-size: .78rem; line-height: 1.55; }
.hsim-event-description[hidden] { display: none; }
.hsim-event-description strong { display: block; margin-bottom: .2rem; color: var(--h7p-blue); font-family: var(--font-serif); font-size: .95rem; font-weight: 600; }
.hsim-event-description em { display: block; margin-top: .35rem; color: #6d6d6d; font-style: normal; font-size: .72rem; }
.hsim-terms { margin: 0; padding-top: 1rem; border-top: 1px solid var(--h7p-rule); color: var(--h7p-brown); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hsim-intro { max-width: 52rem; margin: 0 0 1.25rem; color: #555; font-size: 1.02rem; line-height: 1.7; }
.hsim-provenance { margin: -.75rem 0 1.75rem; color: #777; font-size: .72rem; line-height: 1.5; }
.hsim-provenance:empty { display: none; }
.hsim-flags-wrap { margin-top: 2rem; }
.hsim-flags { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.hsim-flags li { position: relative; padding: .55rem .9rem .55rem 1.6rem; border: 1px solid var(--h7p-rule); border-radius: .3rem; background: #fff; color: #555; font-size: .8rem; line-height: 1.55; }
.hsim-flags li::before { content: ""; position: absolute; top: .95rem; left: .7rem; width: .45rem; height: .45rem; border-radius: 50%; background: var(--h7p-brown); }
.hsim-flags li[data-hsim-flag="truncated"] { border-color: #c9a35c; background: #fbf7ec; }
.hsim-flags li[data-hsim-flag="truncated"]::before { background: #c9a35c; }
.hsim-flags li[hidden] { display: none; }

@media (max-width: 1100px) {
  .hsim .hsim-controls-wrap { position: relative; top: auto; max-height: none; grid-column: auto; }
  .hsim-terms { grid-column: 1 / -1; }
}

/* Crash view: start-month slider and fixed horizon line. */
.hsim-event-start strong { font-size: 1rem; }
.hsim-fixed-horizon { margin: -.5rem 0 0; color: var(--h7p-ink); font-family: var(--font-serif); font-size: 1.05rem; font-weight: 500; }
.hsim-fixed-horizon[hidden], .hsim-event-start[hidden], .hsim-event-control[hidden], .hsim-forward-control[hidden] { display: none; }

/* Crash view: negative and positive values. */
.hsim .h7p-table td.neg { color: #9b2c2c; }
.hsim .h7p-table td.pos { color: #2f6b3a; }

/* Crash view chart. Colors are read by the runtime through getComputedStyle; the same tokens color the
   comparison chips on the six charted portfolio rows. */
/* Six crash-chart series colors: vivid, separated, used by the chart lines and legend swatches.
   The public site has no dark theme, so there are no dark-mode variants. */
.hsim { --hsim-conservative: #0FA3B1; --hsim-normal: #1F6FEB; --hsim-aggressive: #7C3AED; --hsim-fifty: #F59E0B; --hsim-sixty: #F97316; --hsim-spx: #DC2626; --hsim-benchmark: #6B7A88; --hsim-chart-grid: rgba(51, 51, 51, .12); --hsim-chart-inactive: #C4C4C4; --hsim-chart-crash-band: rgba(220, 38, 38, .07); }
.hsim-chartbox { margin: 0 0 1.5rem; padding: 1rem 1rem .5rem; border: 1px solid var(--h7p-rule); border-radius: .45rem; background: #fff; }
.hsim-chartbox[hidden] { display: none; }
.hsim-chartbox figcaption { display: grid; gap: .25rem; margin-bottom: .5rem; }
.hsim-chartbox .h7p-kicker { margin: 0; }
.hsim-chart-note { color: #6d6d6d; font-size: .78rem; line-height: 1.5; }
.hsim-chart { width: 100%; height: 20rem; }
.hsim-chart-fallback { margin: .5rem 0 0; color: #6d6d6d; font-size: .78rem; }
.hsim-chart-fallback[hidden] { display: none; }
@media (max-width: 560px) { .hsim-chart { height: 15rem; } }
.hsim tr[data-hsim-series="Conservative"] .h7p-comparison-label i { background: var(--hsim-conservative); }
.hsim tr[data-hsim-series="Normal"] .h7p-comparison-label i { background: var(--hsim-normal); }
.hsim tr[data-hsim-series="Aggressive"] .h7p-comparison-label i { background: var(--hsim-aggressive); }
.hsim tr[data-hsim-series="fifty"] .h7p-comparison-label i { background: var(--hsim-fifty); }
.hsim tr[data-hsim-series="sixty"] .h7p-comparison-label i { background: var(--hsim-sixty); }
.hsim tr[data-hsim-series="spx"] .h7p-comparison-label i { background: var(--hsim-spx); }
.hsim-chart-legend-hint { margin: .35rem 0 0; color: #6d6d6d; font-size: .72rem; }

/* Disclosure dialog shown once per session before the tool is used. */
.hsim-disclosure { width: min(40rem, calc(100% - 2rem)); padding: 0; border: 1px solid var(--h7p-rule, rgba(51, 51, 51, .14)); border-radius: .5rem; background: #fff; color: #333; box-shadow: 0 1.5rem 3.5rem rgba(51, 51, 51, .22); }
.hsim-disclosure::backdrop { background: rgba(11, 29, 42, .55); }
.hsim-disclosure-panel { padding: 1.5rem 1.6rem 1.4rem; }
.hsim-disclosure-panel h2 { margin: .25rem 0 .9rem; font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.25; }
.hsim-disclosure-points { display: grid; gap: .55rem; margin: 0 0 1.1rem; padding-left: 1.2rem; color: #4a4a4a; font-size: .9rem; line-height: 1.55; }
.hsim-disclosure-confirm { display: flex; gap: .65rem; align-items: flex-start; margin: 0 0 1.1rem; padding: .8rem .9rem; border: 1px solid rgba(51, 51, 51, .14); border-radius: .35rem; background: #f7f4ef; font-size: .9rem; line-height: 1.5; cursor: pointer; }
.hsim-disclosure-confirm input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: #625146; }
.hsim-disclosure-actions { display: flex; justify-content: flex-end; }
.hsim-disclosure-actions .button[disabled] { opacity: .45; cursor: not-allowed; }
.hsim-disclosures-inline { margin-top: 1.5rem; }
.hsim-disclosure-points-inline { margin-bottom: 1.5rem; }
.hsim[inert] { opacity: .35; }
