.lab-page{padding-bottom:56px}.lab-crumb{font:600 13px var(--font-head);margin:18px 0 0}.lab-crumb a{color:var(--accent);text-decoration:none}.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;margin-top:8px}.lab-layout.wide-left{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}@media(max-width:860px){.lab-layout,.lab-layout.wide-left{grid-template-columns:minmax(0,1fr)}}.lab-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}.lab-panel h2{font:600 16px var(--font-head);margin:0 0 12px}.lab-panel h3{font:600 14px var(--font-head);margin:16px 0 8px}.lab-note{font-size:13.5px;color:var(--muted);margin:10px 0 0;line-height:1.55}.lab-note code,.lab-panel code{font-family:var(--font-head);font-size:12.5px;background:var(--surface-2);padding:1px 5px;border-radius:5px}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.tab{font:600 14px var(--font-head);padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer}.tab:hover{background:var(--accent-soft)}.tab[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>label,.lbl{font:600 12.5px var(--font-head);color:var(--muted)}.lab-input,.lab-select{font:500 15px var(--font-body);padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);width:100%;min-width:0;box-sizing:border-box}.lab-input:focus,.lab-select:focus,.tab:focus-visible,.lab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.lab-input.bad{border-color:#c0392b;background:color-mix(in srgb,#c0392b 8%,var(--bg))}.lab-input.var{border-color:var(--accent);background:var(--accent-soft)}.lab-btn{font:600 13.5px var(--font-head);padding:9px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.lab-btn:hover{background:var(--accent-soft)}.lab-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.lab-btn.primary:hover{filter:brightness(1.08)}.lab-btn.danger{color:#b03a2e}.lab-btn[disabled]{opacity:.5;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.inline-pair{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:6px}.rlist{display:flex;flex-direction:column;gap:8px}.rrow{display:grid;grid-template-columns:44px minmax(0,1fr) 92px 38px;gap:8px;align-items:center}.rrow .rname{font:600 14px var(--font-head);color:var(--muted)}.icon-x{width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:18px;line-height:1}.icon-x:hover{color:#b03a2e;border-color:#b03a2e}.result-big{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.result-big .lbl{display:block;margin-bottom:4px}.result-big .val{font:600 clamp(26px,5vw,36px) var(--font-head);color:var(--accent);overflow-wrap:anywhere}.result-big .sub{font-size:13.5px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:12px}.stat{background:var(--surface-2);border-radius:10px;padding:10px 12px;min-width:0}.stat .lbl{display:block;font-size:12px}.stat .val{font:600 17px var(--font-head);overflow-wrap:anywhere}.lab-err{color:#b03a2e;font-size:14px;margin:6px 0 0;min-height:1.2em}.lab-ok{color:#1e8449}table.lab-tbl{width:100%;border-collapse:collapse;font-size:14px}.lab-tbl th,.lab-tbl td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.lab-tbl th{font:600 12.5px var(--font-head);color:var(--muted)}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.diagram{width:100%;max-width:260px;margin:6px auto 0;display:block;color:var(--text)}.diagram text{fill:currentColor;font:600 13px var(--font-head)}.canvas-box{position:relative;width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.canvas-box canvas{display:block;width:100%;height:320px;touch-action:none}.canvas-box.tall canvas{height:420px;cursor:grab}.canvas-box.tall canvas:active{cursor:grabbing}@media(max-width:560px){.canvas-box canvas{height:260px}.canvas-box.tall canvas{height:320px}}.dom-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:14px 0}.dom-card .stat.main{background:var(--accent-soft)}.dom-card .stat.main .val{font-size:clamp(24px,5vw,32px);color:var(--accent)}.hover-read{font:500 13px var(--font-head);color:var(--muted);min-height:1.4em;margin-top:6px}.status-pill{display:inline-block;font:600 12.5px var(--font-head);padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.status-pill.on{background:#d5f5e3;color:#1e8449}:root[data-theme=dark] .status-pill.on{background:#1d3b2a;color:#7bd89b}.check{display:inline-flex;gap:6px;align-items:center;font:500 14px var(--font-body)}.range-row{display:flex;align-items:center;gap:10px}.range-row input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.dh-wrap table{min-width:560px}.dh-tbl td{padding:4px}.dh-tbl .lab-input{padding:6px 7px;font-size:14px}.dh-tbl .lab-select{padding:6px 5px;font-size:14px}.dh-tbl input[type=range]{width:110px;accent-color:var(--accent)}.dh-tbl th{padding:4px}.mtx{display:inline-grid;grid-template-columns:repeat(4,auto);gap:2px 14px;font:500 14px var(--font-head);padding:8px 14px;border-left:2px solid var(--text);border-right:2px solid var(--text);border-radius:6px;text-align:right}.mtx span{font-variant-numeric:tabular-nums}.mtx-block{margin:6px 0 10px;overflow-x:auto}details.lab-det{border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin:6px 0;background:var(--surface-2)}details.lab-det summary{cursor:pointer;font:600 13.5px var(--font-head)}.formula{font-family:var(--font-head);font-size:12.5px;background:var(--surface-2);padding:10px 12px;border-radius:8px;overflow-x:auto;white-space:pre;line-height:1.5}.legend{display:flex;gap:12px;flex-wrap:wrap;font:600 12.5px var(--font-head);margin-top:8px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}.lab-card-icon{font:600 12px var(--font-head);color:var(--accent);background:var(--accent-soft);display:inline-block;padding:3px 9px;border-radius:999px;margin-bottom:10px}.lab-layout[hidden],[hidden].lab-panel{display:none!important}.swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid #00000055;margin-right:6px;vertical-align:-1px}.swatch.big{width:26px;height:26px;margin:0;flex:none;border-radius:6px}.swatch-sel{display:flex;align-items:center;gap:8px}.swatch-sel .lab-select{flex:1;min-width:0}.lab-tbl .swatch{margin-right:8px}.field[hidden],.rrow[hidden]{display:none!important}
