.fit-intro{color:var(--ink-dim);margin:0 0 .6rem;font-size:.74rem}.spool-label{color:var(--ink-dim);margin-bottom:.2rem;font-size:.72rem;display:block}#spool-name{background:var(--bg);width:100%;color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;padding:.3rem .4rem;font-family:inherit;font-size:.78rem}.fit-banner{border-radius:6px;margin:.6rem 0;padding:.45rem .55rem;font-size:.74rem;line-height:1.35}.fit-banner.unmeasured{border:1px solid var(--gold-dim);color:var(--gold);background:#d6b25414}.fit-banner.measured{border:1px solid var(--pass);color:var(--pass);background:#7fbf6a14}#fit-panel .knob-row{border-bottom:1px solid var(--panel-edge);grid-template-columns:1fr 6rem;grid-template-areas:"label number""slider slider""chip chip""badge measured";margin-bottom:.9rem;padding-bottom:.5rem}.fit-badge{letter-spacing:.04em;grid-area:badge;align-self:center;font-size:.68rem}.fit-badge.default{color:var(--ink-dim)}.fit-badge.manual{color:var(--gold)}.fit-badge.coupon{color:var(--pass)}#fit-panel .knob-row label.fit-measured{text-transform:none;color:var(--ink-dim);cursor:pointer;grid-area:measured;justify-self:end;align-items:center;gap:.25rem;font-size:.68rem;display:flex}.fit-measured input{accent-color:var(--pass);margin:0}.link-button{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.72rem;text-decoration:underline}.link-button:hover{color:var(--gold)}.gate-warning{color:var(--gold);margin:.4rem 0 0;font-size:.76rem}.gate-note{color:var(--ink-dim);margin:.35rem 0 0;font-size:.74rem}.gate-caveat{color:var(--ink-dim);border-left:2px solid var(--panel-edge);margin:.35rem 0 .6rem;padding-left:.55rem;font-size:.74rem;line-height:1.45}.lattice-view{flex-direction:column;align-items:center;gap:.6rem;max-width:100%;display:flex}.lattice-view[hidden]{display:none}#lattice-canvas{aspect-ratio:1;background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;width:min(76%,560px,58vh);display:block}.lattice-legend{color:var(--ink-dim);flex-wrap:wrap;gap:.3rem 1rem;margin:0;padding:0;font-size:.72rem;list-style:none;display:flex}.lattice-legend li{align-items:center;gap:.35rem;display:flex}.swatch{border-radius:50%;width:.7rem;height:.7rem;display:inline-block}.swatch.cell-on{background:var(--gold)}.swatch.cell-off{border:1px solid var(--ink-dim)}.swatch.anchor-on{border:1px solid var(--pass)}.swatch.anchor-off{background:linear-gradient(45deg, transparent 45%, var(--fail) 45% 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, var(--fail) 45% 55%, transparent 55%);border-radius:0}.sweep-view{flex-direction:column;align-items:center;gap:.6rem;max-width:100%;display:flex}.sweep-view[hidden]{display:none}.sweep-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.sweep-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);font-size:.72rem}#sweep-canvas{aspect-ratio:5/2;background:var(--panel);border:1px solid var(--panel-edge);cursor:crosshair;border-radius:8px;width:min(94%,720px);display:block}.swatch.fit-curve{background:var(--gold);border-radius:0;height:.15rem}.swatch.anchor-on.filled{background:var(--pass)}.swatch.no-fit{background:var(--panel-edge);border-radius:0;width:.2rem}.lattice-note{color:var(--ink-dim);text-align:center;max-width:46ch;margin:0;font-size:.72rem;line-height:1.4}.ldraw-view{flex-direction:column;align-items:center;gap:.6rem;max-width:100%;display:flex}.ldraw-view[hidden]{display:none}#ldraw-canvas{aspect-ratio:4/3;background:var(--panel);border:1px solid var(--panel-edge);cursor:grab;touch-action:none;border-radius:8px;width:min(94%,620px);display:block}#ldraw-canvas:active{cursor:grabbing}.ldraw-readout{grid-template-columns:auto auto;gap:.2rem 1rem;width:min(94%,620px);font-size:.74rem;display:grid}.ldraw-readout dt{color:var(--ink-dim)}.ldraw-readout dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.ldraw-readout dd.pass{color:var(--pass)}.ldraw-readout dd.warn{color:var(--gold)}.ldraw-readout dd.fail{color:var(--fail)}@media (width<=760px){#lattice-canvas{width:min(92%,420px)}}.process-note.is-advisory{color:var(--ink-dim)}.knob-row[data-adjusted] label:after{opacity:.85;margin-left:.4rem;font-size:.68rem}.knob-row[data-adjusted=moved] label:after{content:"adjusted";color:var(--gold)}.knob-row[data-adjusted=dropped] label:after{content:"override dropped";color:var(--ink-dim)}
