.chart-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.quick-ranges,.risk-filter,.return-controls,.year-toggles{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.quick-ranges button{padding:6px 9px}
.risk-filter{color:var(--muted);font-size:11px}
.risk-filter label,.return-controls label{display:flex;align-items:center;gap:6px}
.risk-filter input[type=range]{width:150px;accent-color:var(--red)}
#risk-match-summary{min-width:310px;color:var(--ink)}
.return-controls{margin:-8px 0 12px;color:var(--muted);font-size:11px}
.year-toggles label{padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:#f3f0e7}
.explainability{padding-bottom:14px}
.explanation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.explanation-summary span{display:flex;justify-content:space-between;padding:12px;background:#efede5;border-radius:8px;color:var(--muted);font-size:11px}
.explanation-summary b{color:var(--ink);font-size:15px}
.explanation-details details{border-top:1px solid var(--line)}
.explanation-details summary{display:grid;grid-template-columns:1fr 70px 70px;gap:12px;padding:13px 4px;cursor:pointer}
.explanation-details summary b,.explanation-details summary i{text-align:right}
.explanation-details summary i{color:var(--muted);font-style:normal}
.explanation-details dl{display:grid;grid-template-columns:repeat(5,auto 1fr);gap:6px 10px;margin:0;padding:12px;background:#f6f3ec;font-size:11px}
.explanation-details dt{color:var(--muted)}
.explanation-details dd{margin:0}
.explanation-details p{margin:10px 2px 14px;color:var(--muted);font-size:11px}
@media(max-width:900px){#risk-match-summary{min-width:0}.explanation-details dl{grid-template-columns:auto 1fr}.explanation-summary{grid-template-columns:1fr}}
/* Investor Experience Optimisation V1 */
.decision-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
  gap: 18px;
  margin-bottom: 18px;
}

.panel-intro {
  margin: -4px 0 18px;
  color: var(--muted);
  font-size: 13px;
}

.strategy-settings,
.strategy-rule-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.strategy-settings label,
.strategy-rule label {
  color: var(--muted);
  font-size: 11px;
}

.strategy-settings input,
.strategy-rule input,
.strategy-rule select {
  width: 100%;
  margin-top: 5px;
}

.strategy-contributions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
}

.strategy-contributions label {
  color: var(--muted);
  font-size: 11px;
}

.strategy-contributions input,
.strategy-contributions select {
  width: 100%;
  margin-top: 5px;
}

.strategy-contributions p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.rule-heading,
.strategy-rule {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rule-heading {
  justify-content: space-between;
  margin: 16px 0 8px;
}

.rule-heading h3 {
  margin: 0;
  font-size: 13px;
}

.strategy-rule {
  padding: 8px 0;
  border-top: 1px solid var(--line);
}

.strategy-rule label {
  flex: 1;
}

.strategy-rule button,
.rule-heading button {
  padding: 6px 8px;
  font-size: 10px;
}

.strategy-results,
.opportunity-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 18px;
  background: var(--line);
  border: 1px solid var(--line);
}

.strategy-headline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 20px;
}

.strategy-headline > div {
  padding: 16px;
  border-radius: 10px;
  background: #262f2b;
  color: #fff;
}

.strategy-headline span,
.strategy-results span,
.strategy-comparison span,
.strategy-return-analysis span {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.strategy-headline strong {
  display: block;
  margin-top: 8px;
  font-family: Georgia, serif;
  font-size: clamp(19px, 2vw, 28px);
}

.strategy-period-summary {
  display: grid;
  gap: 4px;
  margin: 12px 0;
  padding: 12px 14px;
  border-left: 3px solid var(--red);
  background: #f3f0e7;
}

.strategy-period-summary span,
.strategy-period-summary small {
  color: var(--muted);
}

.strategy-run {
  width: 100%;
  margin-top: 16px;
  padding: 12px;
  background: #262f2b;
  color: #fff;
  font-weight: 700;
}

#strategy-run-status {
  min-height: 18px;
  color: var(--muted);
  font-size: 11px;
}

.strategy-advanced,
.historical-optimiser {
  margin-top: 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
}

.strategy-advanced > summary,
.historical-optimiser > summary {
  padding: 14px;
  cursor: pointer;
  font-weight: 700;
}

.strategy-advanced > :not(summary),
.historical-optimiser > :not(summary) {
  margin-right: 14px;
  margin-left: 14px;
}

.outcome-risk-control {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 90px minmax(170px, auto) minmax(190px, auto);
  align-items: end;
  gap: 10px;
  padding: 12px;
  border-radius: 9px;
  background: #f3f0e7;
}

.outcome-risk-control > span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 10px;
}

.outcome-risk-control label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 11px;
}

.outcome-risk-control input[type="range"] {
  width: 100%;
  accent-color: var(--red);
}

#outcome-distribution .is-selected {
  font-weight: 700;
}

#outcome-distribution .is-selected i {
  background: var(--red);
}

.model-weights-view,
.historical-comparables,
.explanation-technical {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

#v2-weight-controls {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding: 12px;
  border-left: 3px solid #7462a8;
  background: #f3f0e7;
}

#v2-weight-controls p {
  flex-basis: 100%;
  margin: 0;
  color: var(--muted);
}

.model-weights-view td small {
  display: block;
  color: var(--muted);
}

.future-unknown {
  color: var(--muted);
  opacity: .65;
}

.explanation-technical > summary,
.metric-methodology > summary,
.metric-statistics-details > summary {
  padding: 10px 0;
  cursor: pointer;
  font-weight: 700;
}

.optimiser-leaders {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr);
  gap: 6px 14px;
}

.strategy-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  background: transparent;
  border: 0;
}

.strategy-results > section {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
}

.strategy-results > section > h3,
.strategy-comparison > h3,
.strategy-return-analysis > h3,
.strategy-equity h3 {
  margin: 0 0 10px;
  font-size: 13px;
}

.strategy-results > section > div {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
}

.strategy-results > section > div:last-child { border-bottom: 0; }
.strategy-results > section strong { text-align: right; }
.strategy-help {
  display: inline-grid;
  place-items: center;
  width: 14px;
  height: 14px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 9px;
  font-style: normal;
}

.strategy-comparison,
.strategy-return-analysis,
.strategy-robustness,
.strategy-sensitivity,
.strategy-equity {
  margin-top: 20px;
}

.strategy-research-notes {
  margin: 14px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.strategy-research-notes summary { cursor: pointer; font-weight: 700; }
.strategy-note-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.strategy-note-fields label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.strategy-note-fields input,
.strategy-note-fields textarea { padding: 8px; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.strategy-note-fields textarea { min-height: 65px; resize: vertical; }
#strategy-storage-message { color: var(--muted); font-size: 10px; }
#strategy-robustness { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
#strategy-robustness > div { padding: 10px; background: var(--panel); }
.strategy-heatmap { display: grid; grid-template-columns: 140px repeat(5, 1fr); gap: 3px; }
.strategy-heatmap > * { padding: 9px; text-align: center; font-size: 10px; }
.strategy-heatmap > div:not(.heatmap-corner) { background: rgba(39,138,130,calc(.12 + var(--heat) * .68)); border-radius: 4px; }
.strategy-heatmap > div.is-robust { outline: 2px solid #245f47; font-weight: 800; }
.heatmap-corner { color: var(--muted); text-align: left !important; }
.strategy-ledger,
.strategy-side-by-side { margin-top: 20px; }
#strategy-transaction-ledger { min-width: 980px; }
#strategy-transaction-ledger tbody tr { cursor: pointer; }
#strategy-transaction-ledger tbody tr:hover { background: #f3f0e7; }
#strategy-comparison-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 12px 0; }
#strategy-comparison-summary > div { display: grid; gap: 4px; padding: 10px; border: 1px solid var(--line); border-radius: 7px; }
#strategy-comparison-summary span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
#strategy-heatmap-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
#strategy-heatmap-comparison section { padding: 10px; border: 1px solid var(--line); border-radius: 7px; }
#strategy-heatmap-comparison section > div { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3px; }
#strategy-heatmap-comparison span { padding: 6px; background: #edf4f1; font-size: 9px; text-align: center; }
.chart-export-tools { display: flex; justify-content: flex-end; align-items: center; gap: 4px; margin: 8px 0 3px; }
.chart-export-tools span { margin-right: 4px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.chart-export-tools button { padding: 4px 7px; border-color: var(--line); background: var(--panel); font-size: 9px; }

#strategy-comparisons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#strategy-comparisons article {
  position: relative;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 9px;
}

#strategy-comparisons article > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
}

#strategy-comparisons article > b {
  display: inline-block;
  margin-top: 7px;
  padding: 5px 8px;
  border-radius: 5px;
  font-size: 11px;
}

#strategy-comparisons .positive { color: #245f47; background: #e4f0e8; }
#strategy-comparisons .negative { color: #8a3429; background: #f7e4df; }

#strategy-returns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 9px;
  overflow: hidden;
}

#strategy-returns > div {
  padding: 11px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

#strategy-returns strong { display: block; margin-top: 5px; }
.strategy-equity-head { display: flex; justify-content: space-between; align-items: start; gap: 15px; }
.strategy-equity-head p { margin: -5px 0 8px; color: var(--muted); font-size: 11px; }
.strategy-equity-chart { height: 300px; }

.strategy-results div,
.opportunity-summary div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px;
  background: var(--panel);
}

.strategy-results span,
.opportunity-summary span {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.outcome-score-note {
  grid-column: 1 / -1;
  margin: 0;
  padding: 10px;
  background: var(--panel);
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.forward-outcomes {
  margin-top: 18px;
  overflow-x: auto;
}

.outcome-row {
  display: grid;
  grid-template-columns: 80px repeat(6, minmax(72px, 1fr)) minmax(150px, 1.5fr) minmax(100px, 1fr);
  min-width: 900px;
  border-bottom: 1px solid var(--line);
}

.outcome-row > * {
  padding: 8px 5px;
  text-align: right;
  font-size: 11px;
}

.outcome-row > :first-child {
  text-align: left;
}

.outcome-head {
  color: var(--muted);
  text-transform: uppercase;
}

.risk-band-duration {
  margin-top: 18px;
}

.risk-band-duration h3 {
  margin: 0 0 8px;
  font-size: 13px;
}

.risk-band-duration dl {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px 12px;
  margin: 0;
  font-size: 12px;
}

.risk-band-duration dd {
  margin: 0;
  font-weight: 700;
  text-align: right;
}

.advanced-research {
  margin: 18px 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
}

.advanced-research > summary {
  cursor: pointer;
  color: var(--muted);
}

.advanced-research > .panel,
.advanced-research > .two-column {
  margin-top: 18px;
}

@media (max-width: 1000px) {
  .decision-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .strategy-settings,
  .strategy-rule-columns,
  .strategy-results,
  .opportunity-summary,
  .strategy-headline,
  #strategy-comparisons,
  #strategy-returns,
  #strategy-robustness,
  .strategy-note-fields {
    grid-template-columns: 1fr;
  }
  .outcome-risk-control {
    grid-template-columns: 1fr;
  }
  .strategy-contributions {
    grid-template-columns: 1fr;
  }
  .strategy-heatmap { grid-template-columns: 100px repeat(5, minmax(72px, 1fr)); overflow-x: auto; }
  #strategy-comparison-summary,
  #strategy-heatmap-comparison { grid-template-columns: 1fr; }
}
