:root{--bg:#eef2f4;--surface:#fff;--ink:#12181b;--muted:#5a6970;--line:#d3dce0;--accent:#0c6c93;--accent-soft:#dceff7;--bezel:#1b1e21;--lcd:#0e1638;--lcd1:#07090b;--lcd-head:#78c8ea;--lcd-text:#a9d8f5;--ok:#2e9d52;--bad:#c2443b;--warn:#b7791f;--ok-soft:#e1f3e7;--bad-soft:#f8e3e1;--warn-soft:#fbf0dc;--display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--body:"Source Sans 3","Segoe UI",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1315;--surface:#172024;--ink:#e4ecef;--muted:#98a9b0;--line:#2b393f;--accent:#6fc3e6;--accent-soft:#163240;--bezel:#2a2f33;--ok:#5cc57e;--bad:#e8776d;--warn:#e0a84e;--ok-soft:#173226;--bad-soft:#3a1e1b;--warn-soft:#352914;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1315;--surface:#172024;--ink:#e4ecef;--muted:#98a9b0;--line:#2b393f;--accent:#6fc3e6;--accent-soft:#163240;--bezel:#2a2f33;--ok:#5cc57e;--bad:#e8776d;--warn:#e0a84e;--ok-soft:#173226;--bad-soft:#3a1e1b;--warn-soft:#352914;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.45}.app{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;position:relative;flex-direction:column;gap:12px;max-width:1100px;margin:0 auto;padding-block-start:12px;padding-block-end:32px}h1{font-family:var(--display);letter-spacing:-.01em;white-space:nowrap;margin:0;font-size:1.2rem;font-weight:800}.top{display:flex;justify-content:space-between;align-items: center;gap:10px 16px}.controls{display:flex;align-items: center;gap:8px}.ico{display:block;flex:none}.btn,.nextbtn{display:inline-flex;justify-content:center;align-items: center;gap:6px;line-height:1.2}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:999px;flex-wrap:wrap;padding:3px}.ends{display:flex;align-items: center;gap:5px;min-width:0}.endsep{color:#aeb9bf;font-size:.85rem}.endbox{position:relative;display:inline-flex;font-family:var(--mono);color:#e9eef1;cursor:pointer;background:#2b3034;border-radius:999px;align-items: center;gap:6px;padding:6px 10px 6px 11px;font-size:.72rem;line-height:1.2}.endbox:hover{background:#353b40}.endbox:focus-within{outline:3px solid var(--lcd-head);outline-offset:2px}.endbox .ico{color:#aeb9bf}.endpick{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px;inset:0}.seg button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 11px;font-size:.86rem}.seg button[aria-pressed=true]{background:var(--accent);color:var(--surface);font-weight:600}select,.btn{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:.88rem}.lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.main{display:grid;grid-template-columns:minmax(0,370px)minmax(0,1fr);align-items: start;gap:16px}@media (max-width:820px){.main{grid-template-columns:1fr;gap:12px}}.device{background:var(--bezel);display:flex;border-radius:20px;flex-direction:column;gap:8px;padding:10px 12px 12px;box-shadow:0 10px 26px #0003}.brand{font-family:var(--display);letter-spacing:.2em;color:#0a0b0c;display:flex;text-shadow:0 1px #3a3f43;justify-content:space-between;align-items: center;gap:8px;height:14px;padding:0 4px;font-size:.8rem;font-weight:800;line-height:1}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.tabs button{font-family:var(--mono);color:#aeb9bf;cursor:pointer;white-space:nowrap;background:#2b3034;border:0;border-radius:6px;padding:6px 2px;font-size:.66rem}.tabs button[aria-pressed=true]{background:var(--lcd-head);color:#0b2633;font-weight:600}.lcd{font-family:var(--mono);color:var(--lcd-text);background:var(--lcd);border-radius:6px;padding:10px 10px 12px;font-size:.84rem}#lcd{aspect-ratio:4/3;display:flex;box-sizing:border-box;flex-direction:column;justify-content:space-between}#lcd .pins{flex:1;justify-content:space-evenly}#lcd .head{margin-bottom:6px}#lcd .it{padding:2px 5px}#lcd .g2{margin:0 0 6px}#lcd .center{flex:1;justify-content:center;min-height:0}.lcd.p1{background:var(--lcd1)}.lcd .head{background:var(--lcd-head);color:#0b2633;text-align:center;border-radius:2px;margin:-2px -2px 10px;padding:3px 0;font-weight:600}.it{display:flex;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items: center;gap:8px;width:100%;padding:4px 5px}.it:hover,.it.sel{background:#7ccbeb2e}.g2{display:grid;grid-template-columns:1fr 1fr;column-gap:10px;margin:2px 0 10px}.dot{display:inline-grid;color:#fff;border-radius:50%;flex:none;place-items: center;width:15px;height:15px;font-size:10px;font-weight:700}.dot.y{background:#3dbe5c}.dot.n{background:#c9453e}.dot:after,.ok .mark:after,.no .mark:after{content:"";-webkit-mask-image:var(--glyph);mask-image:var(--glyph);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background:#fff;width:62%;height:62%}.dot.y,.ok .mark{--glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l3 3 6-6.6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.dot.n,.no .mark{--glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 4.5l7 7M11.5 4.5l-7 7' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")}.val{color:#e7f3fb;font-weight:600}.val.good{color:#86e39a}.val.okv{color:#f2d27a}.val.badv{color:#ff8a80}.pins{display:flex;flex-direction:column;gap:8px}.prow{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px}.pin{display:flex;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-direction:column;align-items: center;gap:3px;padding:3px 0;font-size:.52rem;line-height:1.1}.pin .dot{width:14px;height:14px;font-size:9px}.plug{background:repeating-linear-gradient(90deg,#b8f07a 0 7px,#0000 7px 11px) padding-box content-box;border:2px solid #6e86c9;border-radius:10px;height:16px;margin:2px 6px;padding:3px 8px}.rowname{color:#7f98b6;font-size:.62rem}.center{display:grid;text-align:center;place-items: center;min-height:150px}.nochip{color:#ff8a80}.foot{display:flex;color:#c9d1d6;justify-content:space-between;align-items: center;gap:8px}.foot i{font-family:var(--body);opacity:.7;font-size:.85rem}#next{margin-left:auto}.nextbtn{font-family:var(--mono);color:#1b1e21;cursor:pointer;white-space:nowrap;background:#e9eef1;border:0;border-radius:999px;padding:5px 11px;font-size:.7rem}.read{display:flex;flex-direction:column;gap:16px;min-width:0}.card{background:var(--surface);border:1px solid var(--line);display:flex;border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:12px 14px}.labelrow{display:flex;flex-wrap:wrap;align-items: center;gap:10px}.tagout{font-family:var(--mono);background:var(--accent-soft);color:var(--accent);overflow-wrap:anywhere;border-radius:8px;padding:7px 12px;font-size:1rem;font-weight:600}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:-4px -6px}.stat{all:unset;box-sizing:border-box;cursor:pointer;display:flex;border-radius:10px;flex-direction:column;gap:1px;min-width:0;padding:4px 6px}.stat+.stat{box-shadow:inset 1px 0 0 var(--line);border-radius:0 10px 10px 0;padding-left:12px}.stat:hover{background:var(--accent-soft)}.stat:focus-visible{outline:3px solid var(--accent)}.stat .k{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.68rem}.stat .v{font-family:var(--display);font-size:1.25rem;font-weight:700;line-height:1.15}.stat .s{color:var(--muted);font-size:.78rem;line-height:1.25}@media (max-width:520px){.stat .v{font-size:.98rem}.stat .s{font-size:.7rem}.stat+.stat{padding-left:8px}}.uses{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 14px;margin:0 -6px}.use{all:unset;box-sizing:border-box;cursor:pointer;display:flex;border-radius:8px;align-items: center;gap:8px;min-width:0;padding:6px;font-size:.9rem;line-height:1.25}.use:hover{background:var(--bg)}.use.no{color:var(--muted)}.use:focus-visible{outline:3px solid var(--accent)}.mark{display:grid;color:#fff;border-radius:50%;flex:none;place-items: center;width:18px;height:18px;font-size:.7rem;font-weight:700}.ok .mark{background:var(--ok)}.warn .mark{background:var(--warn)}.warn .mark:after{content:"?"}.no .mark{background:var(--bad)}.h{font-family:var(--display);margin:0;font-size:.95rem;font-weight:700}.flags{display:flex;flex-direction:column;gap:6px}.flag{all:unset;cursor:pointer;background:var(--warn-soft);color:var(--ink);border-radius:8px;padding:6px 9px;font-size:.86rem;line-height:1.3}.flags:empty{display:none}.flag.bad{background:var(--bad-soft)}.hint{color:var(--muted);font-size:.85rem}.bubble{position:absolute;z-index:20;background:var(--surface);color:var(--ink);border:1px solid var(--line);display:flex;border-radius:12px;flex-direction:column;gap:8px;width:min(320px,100vw - 32px);padding:12px 14px;font-size:.93rem;box-shadow:0 12px 30px #00000040}.bubble h4{font-family:var(--display);margin:0;font-size:1rem}.bubble .st{font-size:.82rem;font-weight:600}.bubble .st.ok{color:var(--ok)}.bubble .st.no{color:var(--bad)}.bubble .st.warn{color:var(--warn)}.bubble .x{position:absolute;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.1rem;top:6px;right:8px}.bubble .opts{display:flex;flex-wrap:wrap;gap:6px}.bubble .opts button{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;border-radius:999px;padding:4px 9px;font-size:.84rem}.bubble .opts button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--surface)}.bubble input[type=range]{width:100%}.bubble .num{display:flex;align-items: center;gap:8px}.bubble .num input[type=number]{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;width:90px;padding:4px 6px}.bubble.sheet{position:fixed;overflow:auto;padding:16px max(16px,env(safe-area-inset-right,0px))calc(16px + env(safe-area-inset-bottom,0px))max(16px,env(safe-area-inset-left,0px));border-bottom:0;border-radius:16px 16px 0 0;width:auto;max-height:60vh;inset:auto 0 0;box-shadow:0 -10px 30px #00000040}.calc{font-family:var(--mono);background:var(--bg);border-radius:8px;padding:8px;font-size:.82rem}[hidden]{display:none!important}.iconbtn,.controls .iconbtn{--size:calc(.88rem*1.45 + 14px);box-sizing:border-box;width:var(--size);height:var(--size);display:grid;color:var(--muted);place-items: center;padding:0;font-size:1rem}.explainbtn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--surface)}.brand .taphint,.brand .explainhint{font-family:var(--mono);letter-spacing:0;color:#8c989f;text-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.68rem;font-weight:400}.brand .explainhint{display:none;color:var(--lcd-head);font-weight:600}.device:has(.lcd.explaining) .taphint{display:none}.device:has(.lcd.explaining) .explainhint{display:inline}.lcd.explaining{outline:2px dashed var(--lcd-head);outline-offset:3px}.lcd.explaining .it,.lcd.explaining .pin{cursor:help}.presetbtn{border-color:var(--accent);color:var(--accent);font-weight:600}.picker{position:absolute;z-index:30;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));background:var(--surface);border:1px solid var(--line);display:flex;overflow:auto;border-radius:16px;flex-direction:column;gap:12px;max-height:min(78vh,760px);padding:16px;top:70px;box-shadow:0 18px 40px #00000040}.pickhead{display:flex;justify-content:space-between;align-items: center}.x2{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.4rem}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.pc{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);display:flex;background:var(--bg);border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:10px}.pc:hover{border-color:var(--accent)}.pc:focus-visible{outline:3px solid var(--accent)}.pc .nm{font-size:.98rem;font-weight:700}.pc .nt{color:var(--muted);font-size:.84rem}.pc .tg{font-family:var(--mono);color:var(--accent);overflow-wrap:anywhere;font-size:.74rem}.pc .cur{color:var(--accent);background:var(--accent-soft);border-radius:999px;align-self: flex-start;padding:2px 7px;font-size:.7rem;font-weight:600}.pc:has(.cur){border-color:var(--accent)}.pc .cat{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.68rem}.pickbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.miniwrap{background:var(--bezel);overflow:hidden;border-radius:10px;padding:6px}.minilcd{box-sizing:border-box;pointer-events:none;width:100%;min-height:0;padding:6px 6px 8px;font-size:.6rem}.minilcd .head{margin:-1px -1px 6px;padding:1px 0}.minilcd .it{gap:4px;padding:1px 2px}.minilcd .g2{column-gap:6px;margin:1px 0 5px}.minilcd .dot{width:9px;height:9px;font-size:6px}.minilcd .center{min-height:100px}.minilcd .pins{gap:3px}.minilcd .prow{gap:1px}.minilcd .pin{overflow:hidden;gap:1px;padding:1px 0;font-size:.38rem}.minilcd .pin span:last-child{display:none}.minilcd .plug{border-width:1px;height:9px;margin:1px 4px;padding:2px 5px}.minilcd .rowname{font-size:.45rem}.minilcd .it,.minilcd .pin{cursor:default}.mini{background:var(--lcd1);display:grid;grid-template-columns:34px repeat(6,1fr);font-family:var(--mono);color:var(--lcd-text);border-radius:6px;align-items: center;gap:4px 3px;padding:7px 8px;font-size:.55rem}.mini .dot{justify-self:center;width:11px;height:11px;font-size:7px}.mini .lb{color:#7f98b6}.mini .cap{text-align:center;color:#7f98b6;font-size:.5rem}.g-pw{color:#f5c451}.g-cc{color:#c9a2ff}.g-u2{color:#7fd8f0}.g-ss{color:#ffb074}.g-sb{color:#ff9ec7}.legend{display:flex;flex-direction:column;gap:6px}.legendcard{background:var(--bezel);border-color:#0000}.legendcard:has(.legend:empty){display:none}.legend .chips{display:flex;flex-wrap:wrap;gap:6px}.legend button{font-family:var(--mono);cursor:pointer;display:inline-flex;background:#2b3034;border:0;border-radius:999px;align-items: center;gap:6px;padding:5px 10px;font-size:.72rem}.legend button .ct{color:#aeb9bf}.legend p{color:#aeb9bf;margin:0;font-size:.8rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.btn.primary{background:var(--accent);color:var(--surface);border-color:var(--accent);font-weight:600}.btn[disabled]{opacity:.5;cursor:default}.printinputs{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);gap:10px}.printinputs label{display:flex;flex-direction:column;gap:4px}.printinputs input{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);box-sizing:border-box;border-radius:8px;width:100%;padding:7px 9px}.printrow{display:flex;flex-wrap:wrap;align-items: center;gap:10px}.labpreview{overflow-x:auto}.labpreview canvas{image-rendering:pixelated;display:block;box-shadow:0 0 0 1px var(--line);background:#fff}.printhelp{color:var(--muted);font-size:.88rem}.printhelp summary{cursor:pointer;color:var(--accent);font-weight:600}.printhelp p{margin:6px 0}.toggle{display:flex;align-items: center;gap:8px}.tossnote{background:var(--bad-soft);border-radius:8px;margin:0;padding:8px 10px;font-size:.9rem}a.btn{text-decoration:none}.help{position:relative}.read{gap:12px}@media (max-width:820px){.read{display:contents}.summary{order:-1}.usecard{order:1}}@media (max-width:520px){.app{gap:10px;padding-block-start:8px;padding-block-end:24px}.main{gap:10px}h1{font-size:1rem}.stat .s{display:none}.summary{gap:6px}#tested{font-size:.76rem}#lcd{padding:8px 8px 10px}#lcd .pins{gap:6px}.wide{display:none}.controls{gap:6px}.controls .btn{white-space:nowrap;padding:6px 9px}.stat .v{white-space:nowrap}.uses{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 6px}.use{align-items: flex-start;font-size:.84rem}.use .mark{margin-top:1px}.tabs button{letter-spacing:-.02em;font-size:.6rem}#lcd{font-size:.8rem}}@media (max-width:600px){.picker{position:fixed;overflow:hidden;padding:max(12px,env(safe-area-inset-top,0px))max(14px,env(safe-area-inset-right,0px))0 max(14px,env(safe-area-inset-left,0px));border:0;border-radius:0;gap:10px;max-height:none;inset:0;top:0!important}.pickhead .h{font-size:1rem}.pickbar{flex-flow:column;gap:8px}.pickbar .seg{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;align-self: flex-start;max-width:100%}.pickbar .seg::-webkit-scrollbar{display:none}.pickbar .seg button{white-space:nowrap;flex:none;padding:5px 10px}.pgrid{overflow-y:auto;grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));flex:1;align-content: start;gap:8px;min-height:0;margin:0 -2px;padding-inline-start:2px;padding-inline-end:2px}.picker>.hint{display:none}.pc{border-radius:10px;gap:5px;padding:7px}.pc .cat,.pc .nt{display:none}.pc .nm{font-size:.84rem;line-height:1.2}.pc .tg{font-size:.64rem}.miniwrap{border-radius:7px;padding:4px}.minilcd .pin>span:not(.dot){display:none}.minilcd .pin{gap:0;padding:2px 0}}@media (pointer:coarse){.tabs button,.nextbtn{position:relative}.tabs button:after,.nextbtn:after{content:"";position:absolute;inset:-9px 0}.nextbtn:after{inset:-9px -4px}.endpick{width:calc(100% + 6px);height:calc(100% + 18px);inset:-9px auto auto -3px}}.titlerow{display:flex;align-items: center;gap:10px;min-width:0}.back{color:var(--accent);text-decoration:none;white-space:nowrap;font-size:.9rem;font-weight:600}.cablechip{font-family:var(--mono);background:var(--accent-soft);color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:7px;min-width:0;padding:4px 9px;font-size:.78rem}.help summary.iconbtn{list-style:none;cursor:pointer}.help summary.iconbtn::-webkit-details-marker{display:none}.helpbody{position:absolute;background:var(--surface);border:1px solid var(--line);z-index:25;display:flex;border-radius:12px;flex-direction:column;gap:8px;width:min(320px,100vw - 32px);padding:12px;font-size:.9rem;top:calc(100% + 6px);right:0;box-shadow:0 12px 30px #0003}.helpbody p{margin:0}.ppmain{display:grid;grid-template-columns:300px minmax(0,1fr);align-items: start;gap:16px}@media (max-width:760px){.ppmain{grid-template-columns:minmax(0,1fr);gap:12px}.pppreview{order:-1}}@media (max-width:520px){.titlerow h1{font-size:1rem}.cablechip{padding:3px 7px;font-size:.7rem}}.panel{background:var(--surface);border:1px solid var(--line);display:flex;border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:12px 14px}.field{display:flex;flex-direction:column;gap:5px}.field input,.field select{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;min-width:0;padding:8px 10px}.lenrow{display:grid;grid-template-columns:minmax(0,1fr)80px;gap:8px}.ppprint{padding:11px;font-size:1.05rem}.ppstrip canvas{image-rendering:pixelated;display:block;box-shadow:0 0 0 1px var(--line);background:#fff}.ppviews{display:flex;flex-wrap:wrap;justify-content:center;align-items: flex-end;gap:12px 20px}.ppview{display:flex;flex-direction:column;align-items: center;gap:6px}.ppview .lbl{font-size:.72rem}.ppviews canvas{display:block}.printstatus{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.printstatus:empty{display:none}.printstatus.fail{background:var(--bad-soft);border-radius:10px;padding:10px 12px}.printstatus ol{display:flex;flex-direction:column;gap:4px;margin:0;padding-left:20px}.printlog{color:var(--muted);font-size:.82rem}.printlog summary{cursor:pointer;color:var(--accent);font-weight:600}.printlog ol{font-family:var(--mono);list-style:none;display:flex;overflow:auto;overflow-wrap:anywhere;flex-direction:column;gap:2px;max-height:180px;margin:8px 0;padding-left:0;font-size:.72rem}.printopts{display:flex;justify-content:space-between;align-items: center;gap:10px}.linkbtn{all:unset;cursor:pointer;color:var(--accent);font-size:.85rem;font-weight:600}.linkbtn:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}#labmeta{margin:0}.tossnote{background:var(--bad-soft);border-radius:10px;margin:0;padding:10px 12px;font-size:.92rem}
