#fls-lab{font-variant-numeric:tabular-nums}
#fls-lab .fls-card{border:1px solid var(--viz-border);background:var(--viz-card);border-radius:12px;padding:14px;margin-bottom:12px}
#fls-lab .section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
#fls-lab .section-head b{font-size:1.02rem}
#fls-lab .sub{font-size:12px;color:var(--viz-muted);margin:4px 0}
#fls-lab .explain{line-height:1.75;color:var(--viz-text);margin:0 0 10px}
#fls-lab .explain em{font-style:normal;color:#79bfff}
#fls-lab .fls-displays{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
#fls-lab .fls-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#fls-lab .canvas-wrap{position:relative;background:#070d14;border-radius:12px;overflow:hidden;aspect-ratio:16/10;border:1px solid var(--viz-border)}
#fls-lab .fls-ppi-card .canvas-wrap{aspect-ratio:1/1}
#fls-lab canvas{width:100%;height:100%;display:block}
#fls-lab #fls-scene{cursor:crosshair;touch-action:none}
#fls-lab #fls-ppi{cursor:crosshair}
#fls-lab .overlay{position:absolute;pointer-events:none;color:#cfe6ff;font-size:11px;letter-spacing:.04em}
#fls-lab .control-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 4px}
#fls-lab .control-row:first-of-type{margin-top:0}
#fls-lab input[type=range]{width:100%;accent-color:#479cec;cursor:pointer;margin:2px 0 4px}
#fls-lab .range-label{display:flex;justify-content:space-between;color:var(--viz-muted);font-size:11px}
#fls-lab .button-row{display:flex;flex-wrap:wrap;gap:9px}
#fls-lab .fls-btn{background:#233447;border:1px solid #42586b;border-radius:8px;padding:8px 12px;color:var(--viz-text);cursor:pointer;font-size:13px;transition:background .15s,border-color .15s}
#fls-lab .fls-btn:hover{background:#31475e}
#fls-lab .fls-btn.active{background:var(--viz-accent-bg);border-color:#58a8ff;font-weight:650}
#fls-lab .fls-btn.primary{background:#2a4d6e;border-color:#4e9bf9;font-weight:650}
#fls-lab .stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#fls-lab .stat-grid strong{font-size:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#fls-lab .stat-grid .sub{margin:0 0 3px}
@media(max-width:860px){
  #fls-lab .fls-displays{grid-template-columns:1fr}
  #fls-lab .fls-controls{grid-template-columns:1fr}
}
