.ls-widget { width: min(760px, 100%); margin: 1.5rem auto 1.8rem; }
.ls-live { display: none; }
.ls-widget.is-ready .ls-live { display: block; }
.ls-widget.is-ready .ls-fallback { display: none; }
.ls-widget h4 { font-size: 1.08rem; margin: 0 0 .8rem; color: var(--ls-primary); }
.ls-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.2rem; align-items: end; }
.ls-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ls-controls label { display: block; font-size: .83rem; font-weight: 600; }
.ls-controls output { float: right; color: var(--ls-primary); font-variant-numeric: tabular-nums; }
.ls-controls input { display: block; width: 100%; accent-color: var(--ls-primary); margin-top: .35rem; }
.ls-controls select, .ls-controls button { display: block; width: 100%; border: 1px solid var(--bs-border-color); border-radius: 5px; padding: .4rem; color: var(--bs-body-color); background: var(--bs-body-bg); font: inherit; }
.ls-controls select { margin-top: .3rem; }
.ls-controls button { font-size: .85rem; cursor: pointer; }
.ls-controls :focus-visible { outline: 3px solid var(--ls-primary); outline-offset: 3px; }
.ls-widget svg { display: block; width: 100%; height: auto; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 7px; margin: .5rem 0; overflow: hidden; }
.ls-widget svg text { fill: var(--bs-body-color); font: 12px "Latin Modern Sans", system-ui, sans-serif; }
.ls-widget .ls-axis-label { font-size: 13px; }
.ls-grid { stroke: var(--bs-border-color); stroke-width: 1; opacity: .55; }
.ls-axis { stroke: var(--bs-secondary-color); stroke-width: 1; }
.ls-curve { fill: none; stroke: var(--ls-primary); stroke-width: 2.5; }
.ls-negative { stroke: var(--ls-accent); stroke-dasharray: 5 3; }
.ls-legend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .77rem; margin-top: .9rem; }
.ls-key { display: inline-flex; align-items: center; gap: .4rem; }
.ls-key::before { content: ""; width: 19px; height: 4px; background: var(--ls-primary); display: inline-block; }
.ls-accent::before { background: var(--ls-accent); }
.ls-point::before { width: 9px; height: 9px; border-radius: 50%; }
.ls-dashed::before { background: none; height: 0; border-top: 3px dashed var(--ls-accent); }
.ls-node::before { width: 9px; height: 9px; background: none; border: 2px solid var(--bs-body-color); border-radius: 50%; }
.ls-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; font-size: .75rem; color: var(--bs-secondary-color); margin-top: .65rem; }
.ls-results strong { display: block; font-size: 1.15rem; color: var(--bs-body-color); font-variant-numeric: tabular-nums; font-weight: 600; }
.ls-readout { font-size: .84rem; line-height: 1.5; margin: .65rem 0; min-height: 2.6em; }
.ls-widget figcaption { font-size: .85rem; color: var(--bs-secondary-color); margin-top: .6rem; }
.ls-nodes { font-size: .8rem; margin-top: .65rem; }
.ls-nodes summary { color: var(--bs-body-color); }
.ls-node-list { font-variant-numeric: tabular-nums; margin-top: .5rem; }
.ls-node-list p { margin: .2rem 0; }
body.quarto-dark .ls-widget { --ls-primary: color-mix(in srgb, var(--ls-palette-primary) 68%, white); --ls-accent: color-mix(in srgb, var(--ls-palette-accent) 68%, white); }
@media (max-width: 560px) {
  .ls-controls, .ls-three { grid-template-columns: 1fr; gap: .65rem; }
  .ls-results strong { font-size: 1rem; }
}
@media print {
  .ls-widget.is-ready .ls-live { display: none; }
  .ls-widget.is-ready .ls-fallback { display: block; }
}
