.plab{--plab-ink:#1a1520;--plab-muted:#5a5248;--plab-line:#1a152024;--plab-panel:#fffef8;--plab-accent:#6a3048;--plab-ok:#2a5a48;max-width:920px;color:var(--plab-ink);box-sizing:border-box;margin:0 auto;padding:0 12px 32px}.plab-crumb{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:650;display:flex}.plab-crumb a{color:#2a4a8a;text-decoration:none}.plab-crumb a:hover{text-decoration:underline}.plab-bar{border-bottom:1px solid var(--plab-line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;margin-bottom:14px;padding-bottom:12px;display:flex}.plab-bar-title h1{margin:0;font-size:22px;font-weight:800}.plab-bar-title p{color:var(--plab-muted);margin:2px 0 0;font-size:12px}.plab-bar-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plab-field-inline{letter-spacing:.04em;text-transform:uppercase;color:var(--plab-muted);flex-direction:column;gap:2px;font-size:10px;font-weight:700;display:flex}.plab-field-inline select{text-transform:none;letter-spacing:0;min-width:140px;color:var(--plab-ink);padding:4px 6px;font-size:13px;font-weight:600}.plab-btn{border:1px solid var(--plab-line);background:var(--plab-panel);color:var(--plab-ink);cursor:pointer;padding:6px 10px;font-size:12px;font-weight:700}.plab-btn:disabled{opacity:.4;cursor:not-allowed}.plab-btn.ghost{background:0 0;padding:2px 6px;font-size:11px}.plab-btn:not(:disabled):hover{border-color:var(--plab-accent)}.plab-modified{letter-spacing:.05em;text-transform:uppercase;color:var(--plab-accent);font-size:11px;font-weight:800}.plab-layout{gap:16px;display:grid}@media (width>=880px){.plab-layout{grid-template-columns:minmax(280px,.95fr) 1.15fr;align-items:start}}.plab-stage{position:sticky;top:8px}.plab-viewport{border:1px solid var(--plab-line);background:#e8e4dc;overflow:hidden}.plab-svg{aspect-ratio:1;background:linear-gradient(#ddd8ce 0%,#cfc8bc 100%);width:100%;display:block}.plab-view-toggle{gap:6px;margin-bottom:8px;display:flex}.plab-view-toggle .plab-btn.is-active{border-color:var(--plab-accent);color:var(--plab-accent)}.plab-3d-host{line-height:0}.plab-canvas{aspect-ratio:1;width:100%;display:block}.plab-3d-bar{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.plab-3d-hint{color:var(--plab-muted);font-size:11px}.plab-3d-fail{text-align:center;color:var(--plab-muted);padding:28px 12px;font-size:12px}.plab-3d-fail p{margin:0}.plab-fitblock{fill:#c4bdb0;stroke:#1a15201f;stroke-width:.5px}.plab-readout{background:var(--plab-panel);border-top:1px solid var(--plab-line);text-transform:capitalize;flex-direction:column;gap:2px;padding:8px 10px;font-size:11px;font-weight:650;display:flex}.plab-readout-tech{color:var(--plab-muted);text-transform:none;font-variant-numeric:tabular-nums;font-weight:500}.plab-stage-note{color:var(--plab-muted);margin:8px 0;font-size:12px;line-height:1.4}.plab-stage-note code{font-size:11px}.plab-diag{margin:0 0 8px;padding:0;font-size:11px;line-height:1.35;list-style:none}.plab-diag li{border-left:3px solid var(--plab-muted);background:var(--plab-panel);margin-bottom:4px;padding:4px 8px}.plab-diag li.is-warning{border-left-color:#8a6020}.plab-diag li.is-error{border-left-color:#8a3020}.plab-diag li.is-info{border-left-color:var(--plab-ok)}.plab-diag-toggle{color:var(--plab-muted);align-items:center;gap:6px;font-size:11px;display:flex}.plab-console{flex-direction:column;gap:10px;display:flex}.plab-panel{border:1px solid var(--plab-line);background:var(--plab-panel)}.plab-panel-head{border-bottom:1px solid var(--plab-line);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.plab-panel-head h2{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.plab-panel-body{flex-direction:column;gap:10px;padding:8px 10px 10px;display:flex}.plab-control{gap:4px;font-size:12px;display:grid}.plab-control.is-masked{opacity:.55}.plab-control-label{justify-content:space-between;gap:8px;font-weight:650;display:flex}.plab-control-label em{color:var(--plab-muted);font-variant-numeric:tabular-nums;font-style:normal;font-weight:500}.plab-control input[type=range]{width:100%}.plab-control select{padding:4px 6px;font-size:13px}.plab-color-row{align-items:center;gap:8px;display:flex}.plab-color-row input[type=color]{border:1px solid var(--plab-line);background:0 0;width:36px;height:28px;padding:0}.plab-hex{border:1px solid var(--plab-line);flex:1;padding:4px 6px;font-family:ui-monospace,monospace;font-size:12px}.plab-hint{color:var(--plab-muted);font-size:11px;line-height:1.3}
