/* Simulator-specific structure over the existing control and state styles. */
.simulator-studio {
  --ink:var(--studio-background); --paper:var(--studio-ink); --paper-dim:var(--studio-ink);
  --surface:var(--studio-background); --surface-2:var(--studio-sage); --elevated:var(--studio-sage); --panel:var(--studio-sage);
  --muted:var(--studio-muted); --muted-2:var(--studio-muted);
  --rule:var(--studio-rule); --rule-soft:var(--studio-rule); --rule-strong:#b8c7bd; --grid:var(--studio-rule);
  --accent:#b46347; --accent-soft:#a5563c; --gain:var(--studio-forest); --gain-soft:var(--studio-forest);
  --loss:#8c4d30; --loss-soft:#8c4d30; --blue:#426d7e; --violet:#776180;
  --num-font:Inter,system-ui,sans-serif;
  --nav-hover:var(--studio-forest); --nav-toggle-color:var(--studio-ink); --nav-menu-bg:#fff;
}
.simulator-studio .header-grid { padding:30px 0 22px; }
.simulator-studio .studio-intro { padding-bottom:24px; }
.simulator-studio .studio-intro h1 { margin:12px 0; font:600 clamp(32px,3.4vw,42px)/1.15 Inter,sans-serif; letter-spacing:-.04em; }
.simulator-studio .studio-intro p { margin:0; font-size:16px; color:var(--muted); }
.simulator-studio .eyebrow,.simulator-studio .label,.simulator-studio .saved-label { font-size:12px; letter-spacing:.12em; }
.simulator-studio .scenario-toolbar { margin:0; padding:18px 0; border-block:1px solid var(--rule); }
.simulator-studio .scenario-name { flex:1; display:grid; gap:4px; }
.simulator-studio .scenario-name label { font-size:12px; color:var(--muted); }
.simulator-studio .scenario-name input { width:100%; max-width:360px; min-height:40px; padding:4px 8px; margin-left:-8px; font:500 18px Inter,sans-serif; }
.simulator-studio .header-actions { gap:16px; margin:0; }
.simulator-studio .pill,.simulator-studio .chip,.simulator-studio .goal-form-actions button { border-radius:4px; font-size:14px; min-height:48px; }
.simulator-studio .pill.primary,.simulator-studio .goal-form-actions .primary,.simulator-studio .modal-actions .primary { background:var(--studio-forest); color:#fff; }
.simulator-studio .pill.primary:hover { background:#124b3b; }
.simulator-studio .pill.ghost,.simulator-studio .reset-link { color:var(--muted); min-height:48px; }
.simulator-studio .hero-saved { margin-top:14px; }
.simulator-studio .hero-saved .saved-label { display:block; }
.simulator-studio .scenario-storage { font-size:13px; }
.simulator-studio .sample-banner { background:var(--studio-sage); color:var(--studio-ink); margin:16px 0 0; border-color:var(--rule); }
.simulator-studio .sample-save-note { color:var(--muted); }
.simulator-studio .saved-chip,.simulator-studio .chip-load,.simulator-studio .saved-chip .chip-menu { border-radius:4px; }
.simulator-studio .saved-chip.current-chip { border-color:var(--studio-forest); background:var(--studio-sage); }
.simulator-studio .current-dot { background:var(--studio-forest); }
.simulator-studio .chip-menu:hover,.simulator-studio .scenario-menu button:hover,.simulator-studio .scenario-menu button:focus { background:#e3ebe4; }
.simulator-studio .studio-shortcuts { margin:0; padding:0; border-top:0; border-bottom:1px solid var(--rule); }
.simulator-studio .studio-shortcuts > summary { padding:20px 0; font-size:15px; font-weight:600; color:var(--paper); }
.simulator-studio .studio-shortcuts > summary span { color:var(--muted); font-size:14px; font-weight:400; margin-left:16px; }
.simulator-studio .try-panel { padding:4px 0 22px; display:grid; grid-template-columns:1fr 1fr; gap:16px 32px; }
.simulator-studio .try-panel .panel-head,.simulator-studio .try-panel .lever-helper,.simulator-studio .lever-result { grid-column:1/-1; }
.simulator-studio .try-panel .panel-head { margin:0; }
.simulator-studio .try-panel .panel-head h2 { font:500 20px Inter,sans-serif; margin:8px 0; }
.simulator-studio .lever-section { display:block; padding:12px 0 0; }
.simulator-studio .lever-group-label { display:block; font-size:12px; margin-bottom:10px; }
.simulator-studio .levers-grid { overflow:visible; flex-wrap:wrap; }
.simulator-studio .lever-chip { height:auto; padding:10px 12px; min-height:48px; border-radius:4px; flex:0 1 auto; text-align:left; line-height:1.4; }
.simulator-studio .lever-chip .delta { font-size:12px; }
.simulator-studio .studio-grid { display:grid; grid-template-columns:minmax(0,34fr) minmax(0,66fr); gap:36px; padding:30px 0 48px; align-items:start; }
.simulator-studio .studio-editor { min-width:0; padding-right:30px; border-right:1px solid var(--rule); }
.simulator-studio .studio-results { min-width:0; }
.simulator-studio .studio-editor section.panel { padding:0 0 26px; border:0; }
.simulator-studio .studio-editor .panel-head { display:block; margin:0 0 14px; }
.simulator-studio .panel-head h2 { font:500 21px/1.3 Inter,sans-serif; margin:8px 0 0; letter-spacing:-.025em; }
.simulator-studio .future-grid,.simulator-studio .money-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
.simulator-studio .lever-head { margin:0 0 8px; }
.simulator-studio .goal-row { padding:14px 0; border-top:1px solid var(--rule); }
.simulator-studio .goal-name { font:500 15px/1.5 Inter,sans-serif; }
.simulator-studio .goal-meta,.simulator-studio .goal-total,.simulator-studio .goal-empty { color:var(--muted); }
.simulator-studio .goal-meta { font-size:13px; line-height:1.6; }
.simulator-studio .icon-button { border-radius:4px; }
.simulator-studio #addGoal { width:100%; margin-top:8px; border:1px dashed var(--rule-strong); background:var(--studio-sage); }
.simulator-studio .goal-form label { font-size:13px; font-weight:400; letter-spacing:0; text-transform:none; }
.simulator-studio input:not([type=range]):not([type=radio]):not([type=checkbox]),.simulator-studio select {
  background:#fff; color:var(--paper); border:1px solid var(--rule-strong); border-radius:4px; padding:10px 12px; min-width:0;
}
.simulator-studio .scenario-name input { border-color:transparent !important; padding:4px 8px !important; }
.simulator-studio .scenario-name input:focus { border-color:var(--rule-strong) !important; }
.simulator-studio .goal-form-actions .ghost { background:var(--studio-sage); color:var(--paper); }
.simulator-studio summary { color:var(--paper); font-weight:500; }
.simulator-studio .studio-disclosure { padding:0; margin:4px 0 0; }
.simulator-studio .studio-disclosure > summary { padding:16px 0; min-height:48px; font-size:14px; }
.simulator-studio .studio-disclosure[open] > section { margin:12px 0 22px; }
.simulator-studio .reference { font-size:12px; }
.simulator-studio .helper { margin:10px 0; font-size:14px; color:var(--muted); }
.simulator-studio .holding-row { grid-template-columns:74px minmax(0,1fr) 86px; font-size:14px; }
.simulator-studio .control-row { grid-template-columns:minmax(0,1fr) 110px; }
.simulator-studio input[type=range] { accent-color:var(--studio-forest); }
.simulator-studio .alloc-cagr-wrap { overflow:auto; }
.simulator-studio .alloc-cagr { min-width:280px; }
.simulator-studio .alloc-cagr th { font-size:12px; letter-spacing:0; text-transform:none; }
.simulator-studio .alloc-cagr input { width:76px; }
.simulator-studio .alloc-cagr .blended-value { color:var(--paper); font-style:normal; }
.simulator-studio .how-readout,.simulator-studio .want-readout { flex-wrap:wrap; gap:12px; }
.simulator-studio .redeploy-line,.simulator-studio .mix-display .helper { color:var(--muted); }
.simulator-studio .redeploy-cagr { grid-template-columns:minmax(0,1fr) 82px; }
.simulator-studio .redeploy-cagr > span { grid-column:1/-1; }
.simulator-studio .hero-summary { font:500 25px/1.35 Inter,sans-serif; margin:12px 0 24px; letter-spacing:-.03em; gap:12px; }
.simulator-studio .hero-summary > .coverage-number { color:var(--studio-forest); font:500 clamp(48px,5.4vw,74px)/1.1 Inter,sans-serif; letter-spacing:-.05em; }
.simulator-studio .coverage-number > span { color:var(--muted); font-size:30px; letter-spacing:-.03em; font-weight:400; }
.simulator-studio .hero-summary small { letter-spacing:0; font-size:13px; }
.simulator-studio #coverageFill { transition:width 500ms cubic-bezier(.25,1,.5,1); }
.simulator-studio .preview-summary { border-color:var(--studio-forest); margin:20px 0 0; background:var(--studio-sage); }
.simulator-studio section.trajectory-panel { padding:26px 0 0; border:0; }
.simulator-studio .chart-shell { display:block; }
.simulator-studio .chart-head { display:block; margin:0; }
.simulator-studio .chart-head h2 { font:500 18px/1.4 Inter,sans-serif; margin:0 0 10px; }
.simulator-studio .chart-caption { font-size:12px; margin:0 0 6px; letter-spacing:0; text-transform:none; }
.simulator-studio .chart-actions { display:flex; min-height:48px; align-items:center; gap:12px; flex-wrap:wrap; }
.simulator-studio .chart-actions .legend-key.hidden,.simulator-studio .chart-actions .legend-note.hidden { display:none !important; }
.simulator-studio .legend-note { font-size:12px; text-align:left; }
.simulator-studio .chart-state { font-size:13px; border:0; padding:0; margin:4px 0; color:var(--muted); }
.simulator-studio #trajectoryChart { min-height:0; }
.simulator-studio #trajectoryChart svg { display:block; animation:studio-chart-settle 500ms ease-out; }
.simulator-studio #trajectoryChart svg text { fill:var(--muted); }
.simulator-studio #trajectoryChart [stroke="#7fb98a"] { stroke:var(--studio-forest); }
.simulator-studio #trajectoryChart [fill="#7fb98a"] { fill:var(--studio-forest); }
.simulator-studio #trajectoryChart .goal-target line { stroke:var(--muted); }
.simulator-studio #trajectoryChart .goal-target rect { fill:#fff; }
.simulator-studio #trajectoryChart .goal-target text { fill:var(--paper); }
.simulator-studio #trajectoryChart .money-tooltip text { fill:#fff; }
.simulator-studio .chart-legend { display:flex; flex-wrap:wrap; gap:10px 18px; font-size:13px; color:var(--muted); margin:8px 0; }
.simulator-studio .chart-legend span { display:inline-flex; align-items:center; gap:7px; }
.simulator-studio .chart-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.simulator-studio .chart-legend span:first-child i { background:var(--studio-forest) !important; }
.simulator-studio .chart-legend span:nth-child(2) i { background:var(--muted) !important; }
.simulator-studio .chart-helper { font-size:13px; line-height:1.6; margin-top:14px; }
.simulator-studio .deadline-results { margin-top:28px; padding-top:22px; border-top:1px solid var(--rule); }
.simulator-studio .deadline-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.simulator-studio .deadline-heading h2 { font-size:18px; font-weight:500; margin:0; }
.simulator-studio .deadline-heading p { font-size:12px; color:var(--muted); margin:0; }
.simulator-studio .deadline-row { display:flex; gap:22px; padding:22px 0; border-bottom:1px solid var(--rule); }
.simulator-studio .deadline-year { flex:0 0 38px; }
.simulator-studio .deadline-year span { display:block; font-size:12px; color:var(--muted); }
.simulator-studio .deadline-year strong { display:block; font-weight:500; font-size:24px; }
.simulator-studio .deadline-detail { flex:1; min-width:0; }
.simulator-studio .deadline-title { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.simulator-studio .deadline-title h3 { font-size:14px; font-weight:500; margin:0; overflow-wrap:anywhere; }
.simulator-studio .deadline-title span { font-size:13px; }
.simulator-studio .deadline-detail p { font-size:12px; color:var(--muted); margin:10px 0 0; }
.simulator-studio .rate-details { margin-top:12px; }
.simulator-studio .cagr-pair { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:18px; }
.simulator-studio .cagr-block,.simulator-studio .cagr-gap { padding:16px 12px; }
.simulator-studio .cagr-block strong,.simulator-studio .cagr-gap strong { font:500 26px/1.2 Inter,sans-serif; }
.simulator-studio .view-toggle > button { min-height:48px; font-size:14px; }
.simulator-studio .view-menu .radio-row label { font-size:14px; }
.simulator-studio .view-menu input[type=radio] { background:#fff; }
.simulator-studio .view-menu input[type=radio]:checked { background:var(--studio-forest); box-shadow:inset 0 0 0 3px #fff; }
.simulator-studio .margin-row small { font-size:13px; }
.simulator-studio .save-modal,.simulator-studio .modal-card { background:#fff; color:var(--paper); }
.simulator-studio .modal-actions .primary,.simulator-studio .modal-actions .ghost { border-radius:4px; }
.simulator-studio .modal-card label { font-size:13px; font-weight:500; letter-spacing:0; text-transform:none; }
.simulator-studio .toast { background:var(--studio-ink); color:#fff; border-radius:4px; }
.simulator-studio .footer-band { width:min(1184px,calc(100% - 48px)); font-size:13px; line-height:1.6; }
.simulator-studio .skip-link { background:var(--studio-ink); color:#fff; }
@keyframes studio-chart-settle { from { opacity:.65; } to { opacity:1; } }
@media(max-width:1000px) {
  .simulator-studio .studio-grid { grid-template-columns:minmax(300px,4fr) minmax(0,6fr); gap:24px; }
  .simulator-studio .studio-editor { padding-right:24px; }
  .simulator-studio .scenario-toolbar { flex-direction:row; align-items:center; }
  .simulator-studio .cagr-pair { grid-template-columns:1fr; }
  .simulator-studio .cagr-block,.simulator-studio .cagr-gap { border-right:0; border-bottom:1px solid var(--rule); }
}
@media(max-width:760px) {
  .simulator-studio .header-grid { padding-top:22px; }
  .simulator-studio .studio-intro h1 { font-size:34px; }
  .simulator-studio .scenario-toolbar { align-items:stretch; gap:8px; flex-direction:column; }
  .simulator-studio .header-actions { justify-content:space-between; }
  .simulator-studio .hero-saved { display:block; margin-top:16px; }
  .simulator-studio .hero-saved .saved-label { margin-bottom:8px; }
  .simulator-studio .hero-saved .chip-list { flex-wrap:wrap; overflow:visible; }
  .simulator-studio .empty-chip { white-space:normal; }
  .simulator-studio .studio-shortcuts > summary span { display:block; margin:6px 0 0; }
  .simulator-studio .try-panel { grid-template-columns:1fr; }
  .simulator-studio .studio-grid { grid-template-columns:minmax(0,1fr); gap:20px; padding-top:24px; }
  .simulator-studio .studio-editor { padding:0; border:0; }
  .simulator-studio .studio-results { padding-top:24px; border-top:1px solid var(--rule); scroll-margin-top:100px; }
  .simulator-studio .hero-summary > .coverage-number { font-size:64px; }
  .simulator-studio .coverage-number > span { font-size:26px; }
  .simulator-studio .hero-summary { font-size:24px; }
  .simulator-studio .mobile-funding:not(.hidden) { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--studio-sage); }
  .simulator-studio .mobile-funding a { flex:0 0 auto; font-size:13px; padding:12px 0; text-decoration:underline; }
  .simulator-studio .chart-data th,.simulator-studio .chart-data td { padding:10px; }
  .simulator-studio #trajectoryChart .goal-target text,.simulator-studio #trajectoryChart .goal-target rect,.simulator-studio #trajectoryChart .crossover-marker { display:none; }
  .simulator-studio .deadline-row { gap:14px; }
  .simulator-studio .footer-band { width:calc(100% - 40px); }
}
@media(min-width:761px) { .simulator-studio .mobile-funding { display:none !important; } }
@media(prefers-reduced-motion:reduce) {
  .simulator-studio *, .simulator-studio *::before, .simulator-studio *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
