.lab{font-family:var(--f-m);background-image:linear-gradient(var(--accent-w) 1px, transparent 1px), linear-gradient(90deg, var(--accent-w) 1px, transparent 1px);background-size:24px 24px;gap:20px;font-size:15px;line-height:1.5;display:grid}.lab h1{font:700 clamp(34px, 5.5vw, 52px)/1 var(--f-d);letter-spacing:-.02em;text-wrap:balance;margin:6px 0 0}.lab .lede{font-family:var(--f-b);color:var(--ink-2);max-width:64ch;margin:10px 0 0;font-size:18px}.lab h2{font:500 13px/1.35 var(--f-m);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0}.lab button,.lab select,.lab input{font:inherit;color:inherit}.lab button{cursor:pointer}.lab-panel{background:var(--surface);border:1px solid var(--rule);min-width:0;padding:16px}.lab-hd{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin-bottom:12px;display:flex}.lab-hint{color:var(--ink-3);font-size:13px}.lab-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lab-btn,.lab-tools input{border:1px solid var(--rule-2);background:var(--surface);border-radius:2px;padding:7px 11px;font-size:14px}.lab-tools input{background:var(--ground);width:190px;max-width:100%}.lab-btn:hover{border-color:var(--accent);color:var(--accent)}.lab-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.lab-btn.primary:hover{color:var(--surface);filter:brightness(1.08)}.lab-btn.danger{background:var(--alert);border-color:var(--alert);color:var(--surface)}.lab-btn.small{padding:5px 9px;font-size:13px}.lab select.lab-btn{max-width:100%}.lab [hidden]{display:none!important}.lab-kinds{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.lab-kinds button{border:1px solid var(--rule);background:var(--ground);color:var(--ink-2);border-radius:12px;padding:4px 9px;font-size:13px}.lab-kinds button span{color:var(--ink-3)}.lab-kinds button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--surface)}.lab-kinds button[aria-pressed=true] span{color:var(--surface);opacity:.8}.lab-shelf{border-top:1px solid var(--rule);border-bottom:3px solid var(--signal-w);grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:12px 8px;max-height:420px;padding:8px 4px;display:grid;overflow-y:auto}.lab .jar{background:0 0;border:0;border-radius:6px;justify-items:center;gap:5px;padding:4px 2px;display:grid;position:relative}.lab .v{width:38px;height:48px;transition:transform .18s;display:block;position:relative}.lab .v .l{background:var(--signal);opacity:.9;border-radius:2px;height:8px;position:absolute;top:0;left:5px;right:5px}.lab .v .g{border:1.5px solid var(--ink-3);background:var(--surface-2);border-radius:5px 5px 11px 11px;position:absolute;inset:7px 0 0;overflow:hidden}.lab .v .f{background:var(--c);height:64%;position:absolute;bottom:0;left:0;right:0}.lab .v .f:after{content:"";background-image:radial-gradient(#ffffff38 1px,#0000 1.4px);background-size:6px 6px;position:absolute;inset:0}.lab .jar .t{text-align:center;color:var(--ink);overflow-wrap:anywhere;max-width:84px;font-size:12.5px;line-height:1.2}.lab .jar:hover .v{transform:translateY(-3px)}.lab .jar[aria-pressed=true]{opacity:.35}.lab .jar.bridge{background:var(--signal-w);outline:1.5px dashed var(--signal)}.lab .jar .sc{font:600 12px/1 var(--f-m);background:var(--signal);color:var(--surface);border-radius:9px;padding:3px 5px;position:absolute;top:-4px;right:2px}.lab-explain{border:1px solid var(--rule);background:var(--ground);font:16.5px/1.5 var(--f-b);color:var(--ink-2);align-items:center;gap:12px;margin:12px 0 0;padding:10px 12px;display:flex}.lab-explain svg{flex:none;width:92px;height:34px}.lab-explain b{color:var(--ink)}#lab-msg{font:16.5px/1.55 var(--f-b);margin:10px 0 0}.lab-bench{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.lab .slot{border:1.5px dashed var(--rule-2);text-align:center;border-radius:6px;align-content:center;justify-items:center;gap:7px;min-height:150px;padding:10px 6px;display:grid;position:relative}.lab .slot.empty{color:var(--ink-3);font-size:13px}.lab .slot.full{border-style:solid;border-color:var(--accent);background:var(--accent-w)}.lab .slot .nm{font:600 16.5px/1.2 var(--f-b);overflow-wrap:anywhere}.lab .slot .rm{color:var(--ink-3);background:0 0;border:0;padding:2px 4px;font-size:16px;line-height:1;position:absolute;top:4px;right:6px}.lab .slot .rm:hover{color:var(--alert)}.lab .dial{align-items:center;gap:4px;font-size:13px;display:flex}.lab .dial button{border:1px solid var(--rule-2);background:var(--surface);border-radius:50%;width:24px;height:24px;padding:0;line-height:1}.lab .dial .pt{text-align:center;font-variant-numeric:tabular-nums;min-width:54px}.lab .plink{color:var(--accent);font-size:13px}.lab-two{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:20px;display:grid}#lab-spec svg,#lab-gauge svg{width:100%;height:auto;display:block}.lab .empty{color:var(--ink-3);text-align:center;padding:40px 10px;font-size:14px}.lab .mol{cursor:pointer}.lab .mol text{font:500 12.5px var(--f-m);fill:var(--ink)}.lab .mol .dot{fill:var(--accent)}.lab .mol.solo .dot{fill:var(--ink-3)}.lab .mol.sel .dot,.lab .mol.open .dot{fill:var(--signal)}.lab .bond{fill:none;stroke:var(--accent);stroke-width:1.6px;opacity:.75}.lab .bond.solo{stroke:var(--ink-3);stroke-width:.8px;opacity:.45;stroke-dasharray:2 3}.lab .bond.sel,.lab .bond.hot{stroke:var(--signal);stroke-width:2.2px;opacity:1;stroke-dasharray:none}.lab .bond.dim,.lab .mol.dim,.lab .jarg.dim{opacity:.14}.lab .glow{filter:drop-shadow(0 0 5px var(--accent))}.lab .jarg{cursor:pointer}.lab .jarg .jl{font:600 13px var(--f-m);fill:var(--ink)}.lab .jarg .lid{fill:var(--signal)}.lab .jarg .halo{fill:var(--signal-w);stroke:var(--signal);stroke-width:1.5px}.lab .jarg:focus{outline:none}.lab .jarg:focus-visible .jl{text-decoration:underline}.lab-info{font:16.5px/1.55 var(--f-b);color:var(--ink-2);border-top:1px solid var(--rule);min-height:44px;margin-top:10px;padding-top:10px}.lab-info b{color:var(--ink)}.lab .chip{font:500 13px/1.2 var(--f-m);border:1px solid var(--rule-2);color:var(--ink-2);border-radius:10px;margin:2px 3px 2px 0;padding:3px 7px;display:inline-block}.lab .chip.on{border-color:var(--accent);color:var(--accent)}.lab a.chip{color:var(--accent);text-decoration:none}.lab a.chip:hover{background:var(--accent-w);border-color:var(--accent)}.lab .file{gap:8px;display:grid}.lab .file-hd{flex-wrap:wrap;align-items:baseline;gap:6px 12px;display:flex}.lab .file-hd b{font:600 18px var(--f-b)}.lab .row{grid-template-columns:80px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.lab .row .k,.lab-findings .k{font:500 12px/1.3 var(--f-m);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}#lab-gauge .axis,#lab-gauge .ring{stroke:var(--rule-2);fill:none}#lab-gauge .shape{fill:var(--accent-w);stroke:var(--accent);stroke-width:2px}#lab-gauge .pt{fill:var(--accent)}#lab-gauge text{font:500 12px var(--f-m);fill:var(--ink-2)}.lab-rep-head{flex-wrap:wrap;align-items:center;gap:16px 22px;display:flex}.lab-stamp{font:700 22px/1 var(--f-d);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:nowrap;border:3px solid;border-radius:4px;padding:10px 14px;transform:rotate(-4deg)}.lab-stamp.uncharted{color:var(--signal)}.lab-stamp.loose{color:var(--alert)}.lab-stamp.idle{color:var(--ink-3);border-style:dashed;font-size:18px}.lab-stamp.thump{animation:.38s cubic-bezier(.2,1.6,.4,1) lab-thump}@keyframes lab-thump{0%{opacity:0;transform:rotate(-12deg)scale(1.6)}to{opacity:1;transform:rotate(-4deg)scale(1)}}.lab-formula{min-width:0}.lab-no{color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;font-size:13px}.lab-fname-row{align-items:center;gap:10px;margin-top:4px;display:flex}.lab-fname{font:700 26px/1.1 var(--f-d);overflow-wrap:anywhere;margin:0}.lab-tip{flex:none;position:relative}.lab-tip-btn{border:1.5px solid var(--ink-3);background:var(--surface);width:22px;height:22px;color:var(--ink-2);font:600 13px/1 var(--f-m);border-radius:50%;padding:0}.lab-tip-btn:hover,.lab-tip.open .lab-tip-btn{border-color:var(--accent);color:var(--accent)}.lab-tip-pop{background:var(--ink);width:min(280px,72vw);color:var(--ground);font:14px/1.5 var(--f-b);opacity:0;visibility:hidden;z-index:5;pointer-events:none;border-radius:4px;padding:10px 12px;transition:opacity .15s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.lab-tip-pop:after{content:"";border:6px solid #0000;border-top-color:var(--ink);margin-left:-6px;position:absolute;top:100%;left:50%}.lab-tip:hover .lab-tip-pop,.lab-tip:focus-within .lab-tip-pop,.lab-tip.open .lab-tip-pop{opacity:1;visibility:visible}.lab-verdict{font:18px/1.5 var(--f-b);max-width:64ch;margin:12px 0 4px}.lab-findings{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.lab-findings li{font:16.5px/1.5 var(--f-b);color:var(--ink-2);grid-template-columns:82px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.lab-findings .k.w{color:var(--alert)}.lab-findings .k.b{color:var(--signal)}.lab-note{border-left:3px solid var(--signal);background:var(--signal-w);font:14.5px/1.5 var(--f-b);color:var(--ink-2);margin-top:14px;padding:10px 12px}.lab-save{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.lab-save input{border:1px solid var(--rule-2);background:var(--ground);min-width:0;font:16.5px var(--f-b);border-radius:2px;flex:200px;padding:7px 10px}.lab-notebook ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lab-notebook li{gap:6px;display:flex}.lab-notebook .ld{text-align:left;border:1px solid var(--rule);background:var(--ground);border-radius:2px;flex:1;gap:2px;min-width:0;padding:8px 10px;display:grid}.lab-notebook .ld:hover{border-color:var(--accent)}.lab-notebook .n{font:600 16.5px/1.25 var(--f-b)}.lab-notebook .m{color:var(--ink-3);font-size:12.5px}.lab-notebook .del{border:1px solid var(--rule);background:var(--ground);width:30px;color:var(--ink-3);border-radius:2px;flex:none;padding:0;font-size:16px}.lab-notebook .del:hover{border-color:var(--alert);color:var(--alert)}.lab-notebook .empty{text-align:left;padding:0}.lab-nb-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lab-confirm{border:1px solid var(--alert);background:var(--alert-w);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;font-size:14.5px;display:flex}.lab-how{background:var(--surface);border:1px solid var(--rule);padding:12px 16px}.lab-how summary{cursor:pointer;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-size:13px}.lab-how-body{font:15.5px/1.6 var(--f-b);color:var(--ink-2);max-width:72ch}@media (width<=880px){.lab-two{grid-template-columns:minmax(0,1fr)}.lab-bench{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.lab-bench{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tip-pop{left:auto;right:-8px;transform:none}.lab-tip-pop:after{left:auto;right:13px}.lab-explain svg{display:none}.lab-findings li,.lab .row{grid-template-columns:minmax(0,1fr);gap:2px}}@media (prefers-reduced-motion:reduce){.lab-stamp.thump{animation:none}.lab .v{transition:none}}.lab .lab-gauge-note{font-family:var(--f-m);color:var(--ink-3);margin:6px 0 0;font-size:13.5px;line-height:1.5}@media (width<=640px){#lab-spec{-webkit-overflow-scrolling:touch;overflow-x:auto}#lab-spec svg{min-width:620px}}#lab-msg{border:1px solid var(--signal);background:var(--signal-w);border-radius:2px;margin:12px 0;padding:10px 12px;scroll-margin:90px}#lab-msg:focus{outline:none}#lab-msg.pulse{animation:1.2s ease-out lab-pulse}@keyframes lab-pulse{0%{box-shadow:0 0 0 0 var(--signal)}to{box-shadow:0 0 0 10px #0000}}.lab-msg-h{margin:0 0 6px}.lab-bridges{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lab-bridges li{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding-top:8px;display:flex}.lab-bridges .acts{flex:none;gap:6px;display:flex}.lab-jump{margin-left:6px}@media (prefers-reduced-motion:reduce){#lab-msg.pulse{animation:none}}.lab h2[id]{scroll-margin-top:90px}#lab-msg .lab-btn{font-family:var(--f-m)}
