.hc-lab { margin: 1.5rem 0; min-width: 0; padding: 1.15rem; border: 1px solid var(--bs-border-color,#d4d8d7); border-radius: 10px; background: var(--bs-body-bg,#fff); font-variant-numeric: tabular-nums; }
.hc-lab * { box-sizing: border-box; }
.hc-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 1.5rem; align-items: end; }
.hc-field { display: flex; flex-direction: column; gap: .5rem; min-width: 0; font-size: .9rem; }
.hc-field label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem; }
.hc-field output { font-weight: 650; }
.hc-field select { width: 100%; min-width: 0; padding: .6rem; border: 1px solid var(--bs-border-color,#aaa); border-radius: 5px; font: inherit; color: inherit; background: var(--bs-body-bg,#fff); }
.hc-field input[type=range] { width: 100%; min-width: 0; height: 30px; accent-color: #176074; }
.hc-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.hc-actions button { border: 1px solid var(--bs-border-color,#a8b3b4); border-radius: 5px; color: inherit; background: var(--bs-body-bg,#fff); padding: .55rem .7rem; min-height: 44px; font: inherit; font-size: .8rem; cursor: pointer; }
.hc-actions button:hover { border-color: #176074; box-shadow: inset 0 0 0 1px #176074; }
.hc-lab :focus-visible { outline: 3px solid #277992; outline-offset: 3px; }
.hc-zoom { display: flex; gap: .5rem; align-items: center; font-size: .84rem; }
.hc-zoom input { width: 18px; height: 18px; accent-color: #176074; flex-shrink: 0; }
.hc-range-note { font-size: .76rem; opacity: .8; margin: .55rem 0 1rem; }
.hc-legend { display: flex; flex-wrap: wrap; gap: .6rem 1.15rem; font-size: .8rem; }
.hc-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.hc-legend i { display: inline-block; border-top: 3px solid; width: 22px; height: 0; }
.hc-plot svg { display: block; width: 100%; height: auto; margin-top: .9rem; overflow: visible; }
.hc-plot text { fill: currentColor; font: 12px var(--bs-body-font-family, sans-serif); }
.hc-grid { stroke: var(--bs-border-color,#dedede); stroke-width: 1; }
.hc-readouts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; margin-top: .8rem; }
.hc-readouts div { padding: .65rem .75rem; border-radius: 5px; background: color-mix(in srgb,currentColor 5%,transparent); }
.hc-readouts span { display: block; font-size: .74rem; }
.hc-readouts strong { display: block; font-size: 1.03rem; font-weight: 650; margin-top: .2rem; }
.hc-explanation { font-size: .82rem; line-height: 1.65; margin: .9rem 0 0; }
@media (max-width: 540px) { .hc-lab { padding: .75rem; } .hc-controls { grid-template-columns: minmax(0,1fr); } .hc-plot text { font-size: 12px; } .hc-actions button { flex: 1 1 42%; } .hc-readouts div { padding: .5rem; } .hc-readouts strong { font-size: .95rem; } }
