.sim-shell{ display: grid; grid-template-columns: 20rem minmax(0, 1fr); gap: var(--gutter); align-items: start; }
@media (max-width: 900px){ .sim-shell{ grid-template-columns: minmax(0, 1fr); } }
.sim-shell > div{ min-width: 0; }

.sim-panel{
  position: sticky; top: calc(4.75rem + 1rem);
  border: 1px solid var(--line); border-radius: 10px; padding: 1.5rem;
  background: var(--bg-raised); display: grid; gap: 1.5rem;
}
@media (max-width: 900px){ .sim-panel{ position: static; } }

.sim-field label{ display: block; font-size: var(--step--1); color: var(--ink-soft); margin-bottom: 0.5rem; }
.sim-field select{
  width: 100%; padding: 0.6rem 0.7rem; border: 1px solid var(--line); border-radius: 6px; background: var(--bg);
}

.scenario-group{ display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.scenario-group button{
  font-size: var(--step--1); padding: 0.55rem 0.5rem; border-radius: 6px; border: 1px solid var(--line); background: var(--bg);
  transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}
.scenario-group button.is-active{ background: var(--wine); border-color: var(--wine); color: var(--bg); }
.scenario-desc{ font-size: var(--step--1); color: var(--ink-soft); margin-top: 0.75rem; line-height: 1.5; }

.slider-field{ display: grid; gap: 0.35rem; margin-bottom: 0.9rem; }
.slider-field .slider-label{ display: flex; justify-content: space-between; font-size: var(--step--1); }
.slider-field .slider-label .value{ font-weight: 600; color: var(--wine); }
.slider-field input[type="range"]{ width: 100%; accent-color: var(--wine); }
.slider-note{ font-size: var(--step--1); color: var(--ink-soft); margin-top: 0.5rem; line-height: 1.5; }

.kpi-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-bottom: var(--gutter); }
@media (max-width: 760px){ .kpi-grid{ grid-template-columns: repeat(2, 1fr); } }
.kpi{ background: var(--bg); padding: 1.25rem; }
.kpi .kpi-label{ font-size: var(--step--1); color: var(--ink-soft); }
.kpi .kpi-value{ font-family: var(--font-serif); font-size: var(--step-2); color: var(--wine); margin-top: 0.35rem; }
.kpi .kpi-sub{ font-size: var(--step--1); color: var(--ink-soft); margin-top: 0.25rem; }

.chart-card{ border: 1px solid var(--line); border-radius: 10px; padding: 1.5rem; margin-bottom: var(--gutter); min-width: 0; }
.chart-card h3{ font-size: var(--step-1); }
.chart-card svg{ display: block; width: 100%; max-width: 100%; height: auto; margin-top: 1rem; }
.chart-legend{ display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-top: 0.75rem; font-size: var(--step--1); }
.chart-legend span{ display: inline-flex; align-items: center; gap: 0.4rem; }
.chart-legend i{ width: 10px; height: 10px; border-radius: 999px; display: inline-block; }

.chart-grid-2{ display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--gutter); }
@media (max-width: 860px){ .chart-grid-2{ grid-template-columns: 1fr; } }

.sim-table-wrap{ overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
table.sim-table{ width: 100%; border-collapse: collapse; font-size: var(--step--1); min-width: 52rem; }
table.sim-table th, table.sim-table td{ padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
table.sim-table thead th{ background: var(--bg-raised); font-weight: 600; }

.sim-actions{ display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1rem; }
.recommendations{ display: grid; gap: 0.75rem; }
.recommendations li{ padding: 1rem 1.25rem; border-left: 2px solid var(--wine); background: var(--bg-raised); border-radius: 0 6px 6px 0; }

.year-picker{ display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }
.year-picker select{ padding: 0.5rem 0.7rem; border: 1px solid var(--line); border-radius: 6px; }

@media print{
  .site-header, .site-footer, .cookie-banner, .to-top, .sim-panel .sim-actions, .nav-toggle{ display: none !important; }
  .sim-shell{ grid-template-columns: 1fr; }
}
