.fit-widget { margin: 1.5rem 0 2rem; padding: 1rem; border: 1px solid #ddd; border-radius: 8px; color: #333; }
.fit-widget [hidden] { display: none; }
.fit-widget .fit-toolbar { display: flex; align-items: center; gap: 1.5rem; }
.fit-widget .fit-controls { display: grid; grid-template-columns: repeat(var(--parameters), minmax(0, 1fr)); gap: 1.25rem; flex: 1; min-width: 0; }
.fit-widget label { display: block; font-weight: 600; }
.fit-widget label output { float: right; font-variant-numeric: tabular-nums; font-weight: 400; }
.fit-widget input { display: block; width: 100%; min-height: 28px; accent-color: #332288; cursor: pointer; }
.fit-widget .fit-buttons { display: flex; flex-direction: column; gap: .35rem; }
.fit-widget button { border: 1px solid #bbb; border-radius: 4px; padding: .25rem .6rem; background: #fafafa; color: #222; font: inherit; font-size: .85rem; cursor: pointer; white-space: nowrap; }
.fit-widget button:hover { background: #eee; }
.fit-widget :focus-visible { outline: 3px solid #332288; outline-offset: 3px; }
.fit-widget .fit-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.fit-widget section { min-width: 0; }
.fit-widget h4 { font-size: 1rem; text-align: center; margin: 1.25rem 0 .25rem; }
.fit-widget .fit-metric { display: block; min-height: 1.5rem; text-align: center; font-size: .85rem; font-variant-numeric: tabular-nums; }
.fit-widget output.fit-metric { font-weight: 600; }
.fit-widget .fit-chart { width: 100%; height: 380px; min-width: 0; overflow: hidden; }
.fit-widget .fit-key { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem .8rem; font-size: .75rem; line-height: 1.7; }
.fit-widget .fit-key > span { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; }
.fit-widget .fit-observed, .fit-widget .fit-current { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: #332288; }
.fit-widget .fit-current { background: #cc6677; }
.fit-widget .fit-model { display: inline-block; width: 1.2rem; border-top: 3px solid #44aa99; }
.fit-widget .fit-residual { display: inline-block; width: 1.2rem; border-top: 2px dashed #333; }
.fit-widget .fit-color-key { display: flex; justify-content: center; align-items: center; gap: .75rem; margin: .2rem 0; font-size: .75rem; }
.fit-widget .fit-color-key > div { width: min(220px, 70%); }
.fit-widget .fit-color-bar { height: 10px; background: linear-gradient(to right, #332288, #44aa99, #ddcc77); }
.fit-widget .fit-color-ticks { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.lm-plot, .lm-landscape { display: block; width: 100%; overflow: hidden; font-family: "DejaVu Sans", sans-serif; font-size: 12px; }
.lm-grid line { stroke: #ddd; stroke-width: 1; }
.lm-axes, .lm-landscape-axes { fill: #333; }
.lm-axes line, .lm-landscape-axes line { stroke: #333; }
.lm-line { fill: none; stroke: #44aa99; stroke-width: 3; }
.lm-residuals line { stroke: #333; stroke-width: 2; stroke-dasharray: 5 4; }
.lm-observations circle { fill: #332288; }
@media (max-width: 700px) {
  .fit-widget .fit-panels { grid-template-columns: minmax(0, 1fr); }
  .fit-widget .fit-toolbar { flex-wrap: wrap; gap: .5rem; }
  .fit-widget .fit-controls { flex-basis: 100%; gap: .75rem; }
  .fit-widget .fit-buttons { flex-direction: row; }
  .fit-widget .fit-chart { height: 280px; }
}
@media print {
  .fit-widget .fit-toolbar { display: none; }
}
