:root{--navy:#13305b;--navy2:#0c2142;--green:#6ab23e;--green2:#4f8f2a;--ink:#1d2633;--muted:#5d6878;--bg:#eef2f6;--line:#dbe2ea}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.5 Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);padding-bottom:env(safe-area-inset-bottom)}
h1,h2,h3{color:var(--navy);line-height:1.2;margin:.2em 0 .5em}h1{font-size:1.7rem}h2{font-size:1.15rem}h3{font-size:1rem;margin-top:1.1em}
a{color:var(--navy)}
.bar{position:sticky;top:0;z-index:10;background:var(--navy);padding:calc(8px + env(safe-area-inset-top)) 14px 8px}
.home{display:flex;align-items:center;gap:10px;background:none;border:0;color:#fff;font-weight:700;font-size:1rem;font-family:inherit;cursor:pointer;min-height:44px;padding:0}
.home img{width:34px;height:34px;border-radius:8px}
.screen{max-width:1200px;margin:0 auto;padding:16px}
#start{max-width:720px}
.hero{text-align:center;padding:10px 0}.hero .logo{max-width:260px;height:auto;margin:0 auto 6px;display:block}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin:0 0 16px;box-shadow:0 2px 8px rgba(19,48,91,.05)}
.lbl{display:block;font-weight:600;margin:12px 0}
.sel{display:block;width:100%;margin-top:6px;min-height:48px;padding:10px 12px;font:inherit;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
textarea.sel{min-height:90px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;background:var(--green);color:#fff;border:2px solid var(--green);border-radius:999px;font-weight:700;font-size:1rem;font-family:inherit;cursor:pointer;text-decoration:none}
.btn:active{transform:scale(.98)}.btn.big{width:100%;margin-top:8px;font-size:1.05rem}.btn.ghost{background:#fff;color:var(--navy);border-color:var(--navy)}.btn.small{min-height:40px;font-size:.9rem;padding:6px 16px}
.btns{display:flex;gap:10px;flex-wrap:wrap}
.method{display:flex;flex-wrap:wrap;justify-content:center;border:2px solid var(--navy);border-radius:999px;overflow:hidden;margin:12px auto;width:max-content;max-width:100%}
.method span{padding:6px 12px;font-weight:800;font-size:.78rem;text-transform:uppercase;color:var(--navy)}.method span+span{border-left:2px solid var(--navy)}.method span.on{background:var(--green);color:#fff}
.small{font-size:.9rem}.muted{color:var(--muted)}.bad{color:#b0321f}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--green2);font-size:.8rem;margin:0}
.foot{text-align:center;color:var(--muted)}
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;font-size:.86rem}th,td{border:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top}th{background:#eef2f7;color:var(--navy2)}
.simhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.simhead p{margin:0}.steps{margin:0}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid .card{margin:0;min-width:0}.wide{grid-column:1/-1}
.stepno{background:var(--green);color:#fff;border-radius:8px;padding:1px 9px;margin-right:6px;font-size:.9rem}
.chk,.toggle{display:flex;gap:10px;align-items:flex-start;background:#fff8e8;border:1px solid #f0d58a;border-radius:10px;padding:12px;margin:10px 0;font-size:.93rem;cursor:pointer}
.chk input,.toggle input,.items input{width:22px;height:22px;flex:none;accent-color:var(--green2)}
.live{background:#0b1626;border-radius:12px;padding:12px;display:grid;gap:8px;font-family:ui-monospace,Consolas,monospace}
.live .pt{display:grid;grid-template-columns:1fr auto;gap:4px;color:#9fb3cc;border:1px solid #23395a;border-radius:8px;padding:9px 12px;font-size:.88rem}
.live b{color:#7CFC9A;font-size:1.25rem}.live em{grid-column:1/-1;font-style:normal;color:#ff8a7a;font-size:.82rem}.live em.okk{color:#7CFC9A}.live .alarm{border-color:#c0392b}.live .alarm b{color:#ff8a7a}
.actions{display:grid;gap:8px}
.act{min-height:48px;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font:inherit;font-size:.95rem;cursor:pointer;color:var(--ink)}
.act.on{background:#fff4d6;border-color:#d9a300;font-weight:700}.act.ref{background:#e9eff7}
.meter{background:#2b2f36;border-radius:14px;padding:14px;color:#fff}.mfunc{display:flex;gap:18px}.mfunc label{display:flex;align-items:center;gap:6px;min-height:40px}.mfunc input{width:20px;height:20px}
.meter .btn{width:100%;margin-top:8px}
.lcd{background:#b9c7a3;color:#1b2410;font:700 1.8rem ui-monospace,Consolas,monospace;border-radius:8px;padding:10px 14px;margin-top:10px;text-align:right;min-height:58px}.mnote{color:#ffd88a;margin:8px 0 0;font-size:.88rem}
.restore{list-style:none;padding:0;margin:0}.restore li{margin:6px 0}.restore .ok{color:var(--green2)}.restore .bad{color:#b0321f}
.items{border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:8px}.items legend{font-weight:600}
.pill{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);cursor:pointer}
.reveal{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:10px 0}.reveal summary{font-weight:700;color:var(--navy);cursor:pointer;min-height:32px}
.log{font-size:.86rem;color:var(--muted);max-height:260px;overflow:auto;padding-left:20px}
/* ---- workbench ---- */
.wbcard{padding:14px}
.wbgrid{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-template-areas:"bench dmm" "fe dmm";gap:14px;align-items:start}
.benchwrap{grid-area:bench;min-width:0}.dmm{grid-area:dmm;position:sticky;top:70px}.fe{grid-area:fe;min-width:0}.fe h3{margin-top:0}
.toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.tool{display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;color:var(--ink)}
.tool.on{background:#fff4d6;border-color:#d9a300;box-shadow:inset 0 0 0 1px #d9a300}
.views{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:6px;-webkit-overflow-scrolling:touch}
.vbtn{flex:none;min-height:36px;padding:4px 12px;border-radius:999px;border:1px solid var(--navy);background:#fff;color:var(--navy);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.vbtn.on{background:var(--navy);color:#fff}
.svgbox{background:#e7ebef;border:1px solid #c5ccd4;border-radius:12px;overflow:hidden;touch-action:manipulation}
#bench{display:block;width:100%;height:auto;max-height:74vh;user-select:none;-webkit-user-select:none}
.tip{min-height:2.6em;font-size:.88rem;color:var(--navy2);background:#eef4fb;border-radius:8px;padding:6px 10px;margin:8px 0 0}
#bench text{font-family:"DejaVu Sans",Arial,sans-serif;pointer-events:none}
#bench .lab{font-size:13px;font-weight:700;fill:#1d2633;text-anchor:middle}#bench .lab.sm{font-size:10.5px}#bench .lab.xs{font-size:8.5px;font-weight:600}#bench .lab.w{fill:#e8edf3}#bench .lab.duct{fill:#4c5560;font-size:10px}#bench .vert{font-size:10px;fill:#4c5560;text-anchor:middle}
#bench text.lab[text-anchor=start]{text-anchor:start}
#bench .silk{font-size:7.5px;fill:#e9f5ec;text-anchor:middle;font-weight:700}#bench .silk.sm{font-size:6px}
#bench .lcdt{font-size:11px;fill:#1b2410;font-family:"DejaVu Sans Mono",monospace;font-weight:700}
#bench .tl{font-size:8px;font-weight:700;fill:#fff;text-anchor:middle;paint-order:stroke;stroke:#222;stroke-width:2px}#bench .tl.d{fill:#1d2633;stroke:#fff}
.screw{cursor:pointer}.screw .hit{fill:transparent}.screw .sh{fill:url(#gScrew);stroke:#5a636d;stroke-width:1.3}.screw .slot{stroke:#4a525b;stroke-width:1.8;stroke-linecap:round}
.screw:hover .sh,.screw.near .sh{stroke:#ffb300;stroke-width:3}.screw.near .hit{fill:rgba(255,179,0,.25)}
.screw.onr .sh{stroke:#d32f2f;stroke-width:2.6}.screw.onb .sh{stroke:#111;stroke-width:2.6}
#bench[data-tool=screwdriver] .screw:hover .hit{fill:rgba(245,180,0,.3)}
.co{fill:none;stroke:#1a1d21;stroke-width:5.4;stroke-linecap:round;opacity:.55}.cc{fill:none;stroke-width:3.8;stroke-linecap:round}
.fer{fill:#d4d9de;stroke:#7d858e;stroke-width:.8}
.sheath{fill:none;stroke:#3a3f45;stroke-width:13;stroke-linecap:round}.sheath2{fill:none;stroke:#6e7680;stroke-width:9;stroke-linecap:round}
.knife,.iso,.tube,.dip,.eolsw,.liftg,.zbtn,[data-a=dev]{cursor:pointer}.hitr{fill:transparent}.knife:hover rect.hitr{fill:rgba(245,124,0,.18)}
.tubehit{fill:none;stroke:transparent;stroke-width:22}.liftg .hit{fill:transparent}.liftg:hover .hit{fill:rgba(245,180,0,.25)}
.dip:hover>rect:first-child,.eolsw:hover>rect:first-child{stroke:#ffb300;stroke-width:3}
.pr{cursor:grab;touch-action:none}
.floatprobe{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-100%) rotate(-18deg);transform-origin:50% 100%;filter:drop-shadow(0 4px 4px rgba(0,0,0,.35))}
.floatprobe svg{display:block;width:30px;height:132px}
/* ---- meter ---- */
.dmmbody{background:linear-gradient(#ffcc1a,#f2b600);border-radius:26px;padding:12px;box-shadow:0 6px 16px rgba(0,0,0,.25),inset 0 0 0 6px #2b2f36}
.dmmtop{display:flex;justify-content:space-between;align-items:baseline;padding:2px 10px 6px;color:#1d2127;font-size:.72rem}.dmmtop b{font-size:.95rem}
.lcd2{background:linear-gradient(#c5d3ad,#a9b993);border:6px solid #2b2f36;border-radius:10px;padding:4px 10px 6px;color:#141c0b;font-family:"DejaVu Sans Mono",ui-monospace,monospace}
.lcd2 .ann{display:flex;gap:10px;font-size:.7rem;font-weight:700;min-height:1.1em}.lcd2 .ann span{opacity:.12}.lcd2 .ann span.on,#a-mode{opacity:1!important}
.digits{display:flex;justify-content:flex-end;align-items:baseline;gap:6px;min-height:56px}#dig{font-size:2.6rem;font-weight:700;letter-spacing:.02em;line-height:1.1}#unit{font-size:1.2rem;font-weight:700;min-width:2.2em}
.lcd2.off{background:#9aa58c}
#dial{display:block;width:200px;max-width:100%;margin:10px auto 4px;touch-action:none;outline:none}#dial:focus-visible{filter:drop-shadow(0 0 4px #13305b)}
.dpos{cursor:pointer}.dhit{fill:transparent}.dpos.on .dhit{fill:rgba(255,212,0,.25)}.dl{fill:#fff;font:700 15px "DejaVu Sans",sans-serif;text-anchor:middle}.dl.sm2{font-size:10px}
.knob{cursor:grab}
.sockets{display:flex;justify-content:space-around;background:#2b2f36;border-radius:12px;padding:8px 4px;color:#fff;text-align:center}
.sockets div{display:flex;flex-direction:column;align-items:center;gap:2px}.sk{width:20px;height:20px;border-radius:50%;border:4px solid #555;background:#111;display:block}.sk.r{border-color:#d32f2f}.sk.b{border-color:#111;box-shadow:0 0 0 2px #777}.sk.g{border-color:#666}.sockets small{font-size:.66rem}
.holster{display:flex;gap:8px;margin-top:10px}
.hp{flex:1;display:flex;align-items:center;gap:6px;min-height:64px;background:#2b2f36;color:#fff;border:2px solid transparent;border-radius:12px;padding:4px 8px;font:inherit;font-size:.72rem;text-align:left;cursor:grab;touch-action:none}
.hp svg{flex:none}.hp.sel{border-color:#ffd400;background:#3b4048}.hp.out svg{opacity:.35}
.mnote{font-size:.84rem;color:#7a4b00;background:#fff4d6;border-radius:8px;padding:6px 10px;margin:8px 0 0;min-height:2.4em}
.mnote:empty{display:none}
@media (max-width:980px){.wbgrid{grid-template-columns:minmax(0,1fr);grid-template-areas:"bench" "dmm" "fe"}
 .dmm{position:sticky;top:auto;bottom:0;z-index:20}
 .dmmbody{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"lcd lcd" "dial hol" "dial sock";gap:6px 10px;border-radius:18px;padding:8px}
 .dmmtop{display:none}.lcd2{grid-area:lcd}#dial{grid-area:dial;width:132px;margin:0}.holster{grid-area:hol;margin:0;flex-direction:column;gap:6px}.sockets{grid-area:sock;padding:4px}
 .hp{min-height:48px}.hp svg{width:14px;height:62px}.digits{min-height:40px}#dig{font-size:2rem}
 .mnote{font-size:.78rem}}
@media (max-width:760px){.wbcard{padding:10px}#bench{max-height:58vh}.grid{grid-template-columns:minmax(0,1fr)}.screen{padding:12px}h1{font-size:1.45rem}.method span{padding:5px 8px;font-size:.7rem}.simhead .steps{width:100%}}
@media (max-width:760px){.dmmbody{gap:4px 8px;padding:6px}#dial{width:96px}.hp{min-height:36px;padding:4px 8px}.hp svg{width:10px;height:36px}.digits{min-height:30px}#dig{font-size:1.55rem}.sockets{padding:2px}.sockets svg,.sockets .sk{transform:scale(.85)}.mnote{display:none}}
@media (max-width:760px){.dmmbody{grid-template-areas:"lcd lcd" "dial hol"!important}.dmm .sockets{display:none!important}.dmm .hp{min-height:0!important;padding:3px 8px!important}.dmm .hp svg{height:30px!important}.dmm .digits{min-height:0!important}.dmm #lcd{padding:4px 10px!important}}

/* pullable cores */
.corehd{fill:transparent;cursor:grab;touch-action:none}
.screw.ferr{cursor:grab;touch-action:none}.screw.ferr .sh{fill:#d4d9de;stroke:#7d858e;stroke-width:.8}.screw.ferr .cu{stroke:#b87333;stroke-width:1.2;stroke-linecap:round}
.screw.ferr:hover .sh,.screw.ferr.near .sh{stroke:#ffb300;stroke-width:2}
.cg:hover .fer{stroke:#ffb300;stroke-width:1.6}
.cg.csel .fer,.cg.csel .ferr .sh{stroke:#ffb300;stroke-width:2.4}.cg.csel .cc{filter:drop-shadow(0 0 2px #ffb300)}
.screw.wrong .sh{stroke:#d32f2f!important}.screw.wrong .hit{fill:rgba(211,47,47,.18)!important}
.corehint{margin:4px 2px 6px;color:#46505c}
.upd{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;background:#13305b;color:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.3);display:flex;gap:10px;align-items:center;font-size:.9rem;max-width:calc(100vw - 24px)}
.upd[hidden]{display:none}

.ovr{margin-top:10px;background:#0f1f35;border:1px solid #23395a;border-radius:12px;padding:10px 12px;color:#cfe0f5;display:grid;gap:8px;font-size:.88rem}
.ovr[hidden]{display:none}
.ovr h4{margin:0;font-size:.9rem;color:#ffd88a}.ovr .orow{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ovr .orow>span{min-width:9.5em;font-weight:600}
.ovr button{min-height:40px;min-width:52px;border-radius:8px;border:1px solid #3a5679;background:#182c47;color:#e6f0fb;font:inherit;font-size:.85rem;cursor:pointer;padding:6px 10px}
.ovr button.on{background:#ffb300;border-color:#ffb300;color:#1b1b1b;font-weight:700}
.cfgsw,.biassw,.pollsw,.k1z,.fuse,[data-a=ovr]{cursor:pointer}

/* ---- fit the whole rig on screen (v7) ---- */
#sim.screen{max-width:1560px}
.dmm{top:calc(var(--barh,56px) + 10px);max-height:calc(100vh - var(--barh,56px) - 20px);overflow:auto;scrollbar-width:thin}
.views .fitbtn{font-weight:800}.views .fsbtn{margin-left:auto;border-style:dashed}
.dmmfold{display:none}
@media (min-width:981px) and (max-height:820px){
 .wbcard{padding:10px 14px}.wbcard>h2{margin:0 0 6px;font-size:1.05rem}
 .toolbar{margin-bottom:6px}.tool{min-height:36px;padding:4px 10px;font-size:.84rem}.tool svg{width:18px;height:18px}
 .vbtn{min-height:32px;padding:3px 11px}.views{padding-bottom:4px;margin-bottom:4px}
 .corehint{font-size:.76rem;margin:0 2px 4px;line-height:1.3}
 .tip{min-height:0;margin-top:6px;padding:4px 10px;font-size:.84rem}
 .dmmbody{padding:9px;border-radius:22px}.dmmtop{padding:0 8px 4px}#dial{width:150px;margin:4px auto 2px}
 .digits{min-height:42px}#dig{font-size:2.05rem}.sockets{padding:4px}.holster{margin-top:6px}.hp{min-height:46px}.hp svg{height:46px}
 .mnote{margin-top:6px;padding:4px 8px;font-size:.8rem}}
@media (min-width:981px) and (max-height:640px){#dial{width:124px}.hp{min-height:40px}.hp svg{height:40px}#dig{font-size:1.8rem}.digits{min-height:36px}}
@media (max-width:980px){
 .dmm{top:auto;max-height:none;overflow:visible}
 .dmmfold{display:block;position:absolute;right:8px;top:-30px;z-index:2;min-height:28px;padding:2px 10px;border-radius:999px 999px 0 0;border:1px solid #2b2f36;border-bottom:0;background:#ffcc1a;color:#1d2127;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}
 .dmm.mini #dial,.dmm.mini .sockets{display:none!important}
 .dmm.mini .dmmbody{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"lcd hol"!important}
 .dmm.mini .holster{flex-direction:column}}
.wbcard:fullscreen{overflow:auto;background:#fff;padding:12px 16px;border-radius:0;margin:0}
.wbcard:-webkit-full-screen{overflow:auto;background:#fff;padding:12px 16px;border-radius:0;margin:0;width:100%;height:100%}
.wbcard:fullscreen .dmm{top:10px;max-height:calc(100vh - 20px)}

/* ---- v8: drawing view ---- */
.rigrow.side{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:10px;align-items:start}
.rigrow .svgbox[hidden],.drawbox[hidden]{display:none}
.drawbox{background:#fff;border:1px solid #c5ccd4;border-radius:12px;overflow-x:hidden;overflow-y:auto;min-width:0;scrollbar-width:thin}
.drawhead{position:sticky;top:0;z-index:1;background:#f4f7fa;border-bottom:1px solid var(--line);font-size:.76rem;font-weight:700;color:var(--navy);padding:4px 10px}
#drawing svg.schem{display:block;width:100%;height:auto}
.schem text{font-family:"DejaVu Sans",Arial,sans-serif}
.schem .sh-t{font-size:15px;font-weight:800;fill:#13305b}.schem .sh-c{font-size:12px;font-weight:700;fill:#1d2633}.schem .sh-g{font-size:11px;fill:#5d6878}
.schem .sh-l{font-size:10px;fill:#1d2633}.schem .sh-n{font-size:10px;font-weight:700;fill:#13305b}.schem .sh-k{font-size:9px;fill:#5d6878}.schem .sh-d{font-size:11px;font-weight:700;fill:#13305b}
.schem .dt{cursor:pointer}.schem .dth{fill:transparent}.schem .dtc{fill:#fff;stroke:#13305b;stroke-width:1.6}
.schem .dt:hover .dth{fill:rgba(255,179,0,.3)}
.schem .dt.hl .dth{fill:rgba(0,184,212,.38)}.schem .dt.hl .dtc{fill:#00b8d4;stroke:#006b7d;stroke-width:2.4}
.screw.hl .sh{stroke:#00b8d4!important;stroke-width:4!important}.screw.hl .hit{fill:rgba(0,184,212,.35)!important}
.views .drawbtn{border-color:var(--green2);color:var(--green2)}.views .drawbtn.on{background:var(--green2);color:#fff}
/* ---- v8: mA socket + injector ---- */
.sockets.ma .sk.g{border-color:#d32f2f}.sockets.ma .sk.r{border-color:#555}.sockets.ma div:nth-child(3) small{color:#ff8a7a;font-weight:700}
.screw.oni .sh{stroke:#f9c400;stroke-width:2.8}
.inj{margin-top:10px;background:linear-gradient(#3a4250,#2b2f36);border-radius:18px;padding:10px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.inj[hidden]{display:none}
.injtop{display:flex;justify-content:space-between;align-items:baseline;font-size:.66rem;color:#cfd6df;padding:0 4px 4px}.injtop b{color:#f9c400;font-size:.9rem}
.injlcd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;background:linear-gradient(#c9d9f0,#a9bfdf);color:#0d1d33;border-radius:8px;padding:6px 10px;font:700 1.05rem "DejaVu Sans Mono",ui-monospace,monospace}
.injlcd small{font-size:.8rem}#injst.bad{color:#b0321f}
.injrow{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.injrow button{flex:1;min-width:38px;min-height:36px;border-radius:8px;border:1px solid #56606e;background:#1f242b;color:#fff;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;padding:4px 6px}
.injrow button.on{background:#f9c400;border-color:#f9c400;color:#1b1b1b}
.injrow .injon{flex:2.4}.injrow .injon.on{background:#6ab23e;border-color:#6ab23e;color:#fff}
.injrow.pre button{min-height:30px;font-size:.76rem}
.inj .holster{margin-top:8px}.inj .hp{min-height:48px}.inj .hp svg{height:48px;width:14px}
.injmsg{font-size:.78rem;color:#ffd88a;margin:6px 2px 0;min-height:1.2em}
@media (max-width:980px){.inj{margin-top:6px;padding:6px 8px;border-radius:12px}.injtop{display:none}.inj .holster{flex-direction:row;margin-top:6px}.inj .hp{min-height:36px}.inj .hp svg{height:32px;width:10px}.injrow button{min-height:32px}.injmsg{font-size:.72rem;margin-top:4px}}
/* ---- v8: point-to-point sheet ---- */
.p2pmeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.p2pmeta .lbl{margin:6px 0}
.p2ptab td{padding:4px}.p2ptab textarea{width:100%;min-width:7em;min-height:44px;font:inherit;font-size:.82rem;border:1px solid var(--line);border-radius:6px;padding:4px 6px;resize:vertical}
.p2ptab select.sel{min-height:40px;padding:4px 6px;margin:0;font-size:.85rem;min-width:6.5em}
.p2pbtns{margin-top:10px}
.printsheet{display:none}
@media (max-width:760px){
 .p2pmeta{grid-template-columns:minmax(0,1fr)}
 .p2ptab thead{display:none}.p2ptab,.p2ptab tbody,.p2ptab tr,.p2ptab td{display:block;width:100%}
 .p2ptab tr{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;padding:6px;background:#fafcfe}
 .p2ptab td{border:0;padding:3px 2px}.p2ptab td::before{content:attr(data-l);display:block;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}}
@media print{
 @page{size:A4 portrait;margin:12mm}
 html,body{background:#fff!important;padding:0!important}
 body>*:not(#printsheet){display:none!important}
 #printsheet{display:block!important;color:#111;font:10pt/1.35 "DejaVu Sans",Arial,sans-serif}
 .ps-h{display:flex;align-items:center;gap:14px;border-bottom:3px solid #6ab23e;padding-bottom:8px;margin-bottom:10px}
 .ps-h img{width:62px;height:62px;border-radius:8px}.ps-h h1{font-size:16pt;margin:0;color:#13305b}.ps-h p{margin:2px 0 0;color:#4f8f2a;font-weight:700}
 #printsheet h2{font-size:11.5pt;margin:12px 0 5px;color:#13305b}
 #printsheet table{width:100%;border-collapse:collapse;font-size:8.6pt;page-break-inside:auto}
 #printsheet th,#printsheet td{border:1px solid #9aa6b4;padding:4px 5px;vertical-align:top;text-align:left}
 #printsheet th{background:#e8eef5!important;color:#0c2142;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 #printsheet tr{page-break-inside:avoid}
 .ps-meta th{width:16%}.ps-t td.res{font-weight:700}
 .ps-notes{border:1px solid #9aa6b4;padding:6px;margin:0}
 .ps-sign{page-break-inside:avoid;margin-top:8px}.ps-sign td{height:30px}.ps-sign td.ps-com{height:60px}.ps-sign table{border:2px solid #13305b}
 .ps-f{margin-top:12px;font-size:8pt;color:#5d6878;text-align:center}}
/* v8: one scrollable tool row on tablets / phones (the extra signal-injector tool must not push the rig down) */
@media (max-width:980px){.toolbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:4px;margin-bottom:4px}.tool{flex:none;min-height:40px;padding:4px 10px;font-size:.84rem}}

/* v9 end-to-end continuity: beep indicator, mute, strap / connector block / wander lead */
.beeprow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 0;flex-wrap:wrap}
.beepind{display:inline-flex;align-items:center;gap:6px;font:700 .86rem ui-monospace,Consolas,monospace;color:#7d8590;background:#eef1f4;border:1px solid #d3d9df;border-radius:999px;padding:4px 10px;min-width:0}
.beepind i{font-style:normal}
.beepind.on{color:#fff;background:#2e7d32;border-color:#1b5e20;animation:beeppulse .6s ease-in-out infinite alternate}
@keyframes beeppulse{from{box-shadow:0 0 0 0 rgba(46,125,50,.55)}to{box-shadow:0 0 0 6px rgba(46,125,50,0)}}
.mutebtn{border:1px solid #c9d1d9;background:#fff;border-radius:8px;padding:4px 10px;font-size:.82rem;cursor:pointer;min-height:32px}
.mutebtn.on{background:#fff4d6;border-color:#e0b44a}
#bench .sclip,#bench .cblk .blkh,#bench .pr.wl{cursor:pointer}
#bench .cblk.near rect:first-child{stroke:#2e7d32;stroke-width:3}
#bench[data-tool=strap] .screw:hover .sh,#bench[data-tool=wander] .screw:hover .sh{stroke:#e53935;stroke-width:2}
@media (max-width:760px){.beeprow{margin-top:4px}.beepind{font-size:.76rem;padding:3px 8px}.mutebtn{min-height:30px;font-size:.76rem;padding:3px 8px}}
