[data-calculator-engine="renovation-roi-diminishing-returns"] {
  --sh-blue: #173ea5;
  --sh-yellow: #ffd900;
  --sh-ink: #172033;
  --sh-muted: #5d6472;
  --sh-line: #dfe3ea;
  color: var(--sh-ink);
  font: inherit;
}
[data-calculator-engine="renovation-roi-diminishing-returns"] * { box-sizing: border-box; }
.sh-roi-head,
.sh-roi-verdict {
  border-radius: 14px;
  padding: 18px 20px;
}
.sh-roi-head { background: #fff8cf; border-left: 6px solid var(--sh-yellow); }
.sh-roi-head h3 { margin: 0 0 8px; }
.sh-roi-assumption,
.sh-roi-definition { color: var(--sh-muted); }
.sh-roi-property,
.sh-roi-scenario {
  border: 1px solid var(--sh-line);
  border-radius: 12px;
  margin: 18px 0 0;
  padding: 16px;
}
.sh-roi-property {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
}
.sh-roi-property legend,
.sh-roi-scenario legend { font-weight: 800; padding: 0 6px; }
.sh-roi-scenarios {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sh-roi-field { display: block; margin: 0 0 12px; }
.sh-roi-field span {
  color: var(--sh-muted);
  display: block;
  font-size: .88rem;
  line-height: 1.35;
  margin-bottom: 5px;
}
.sh-roi-field input {
  border: 1px solid #aeb6c4;
  border-radius: 8px;
  font: inherit;
  padding: 10px 11px;
  width: 100%;
}
.sh-roi-scenario details { margin-top: 5px; }
.sh-roi-scenario summary { color: var(--sh-blue); cursor: pointer; font-weight: 700; }
.sh-roi-advanced { margin-top: 12px; }
.sh-roi-common {
  border: 1px dashed #aeb6c4;
  border-radius: 10px;
  margin-top: 14px;
  padding: 12px 14px;
}
.sh-roi-common summary { color: var(--sh-blue); cursor: pointer; font-weight: 800; }
.sh-roi-common-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 14px;
}
[data-roi-calculate] {
  background: var(--sh-blue);
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  padding: 12px 18px;
}
.sh-roi-verdict { background: #eef3ff; border: 1px solid #c8d6ff; margin-top: 16px; }
.sh-roi-table-wrap { max-width: 100%; overflow-x: auto; }
.sh-roi-table-wrap table {
  border-collapse: collapse;
  font-size: .9rem;
  min-width: 860px;
  width: 100%;
}
.sh-roi-table-wrap th,
.sh-roi-table-wrap td {
  border: 1px solid var(--sh-line);
  padding: 9px 10px;
  text-align: right;
  vertical-align: top;
}
.sh-roi-table-wrap thead th { background: var(--sh-yellow); color: var(--sh-ink); }
.sh-roi-table-wrap th:first-child { text-align: left; }
.sh-roi-table-wrap small { color: var(--sh-muted); display: block; font-weight: 400; max-width: 260px; }
.sh-roi-curve {
  border: 1px solid var(--sh-line);
  border-radius: 12px;
  overflow-x: auto;
  padding: 8px;
}
.sh-roi-curve svg { display: block; min-width: 620px; width: 100%; }
.sh-roi-curve line { stroke: #9aa4b3; stroke-width: 1.5; }
.sh-roi-curve polyline { fill: none; stroke: var(--sh-blue); stroke-width: 4; }
.sh-roi-curve circle { fill: var(--sh-yellow); stroke: var(--sh-ink); stroke-width: 2; }
.sh-roi-curve text { fill: var(--sh-muted); font-size: 13px; }
.sh-roi-curve .sh-roi-point-name { fill: var(--sh-ink); font-size: 13px; font-weight: 800; }
.sh-roi-curve .sh-roi-point-rent { fill: var(--sh-blue); font-size: 12px; font-weight: 700; }
.sh-roi-curve .sh-roi-segment { fill: #8a3d00; font-size: 12px; font-weight: 800; }
@media (max-width: 900px) {
  .sh-roi-property { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sh-roi-scenarios { grid-template-columns: 1fr; }
  .sh-roi-common-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .sh-roi-property { grid-template-columns: 1fr; }
  .sh-roi-common-grid { grid-template-columns: 1fr; }
  .sh-roi-head, .sh-roi-verdict { padding: 14px; }
}
