.lab{--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}.lab h1{margin:0 0 .45rem;font-size:clamp(1.7rem,3vw,2.15rem);letter-spacing:-.03em;color:var(--text-bright);line-height:1.15}.lab-kicker{margin:0 0 .35rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.lab-hero{margin-bottom:1.5rem}.lab-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.85rem}.lab-meter{flex:1 1 180px;height:8px;background:#222228;border-radius:99px;overflow:hidden;min-width:140px}.lab-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent-dim),var(--accent))}.lab-count{margin:.45rem 0 0;color:var(--text-muted);font-size:.88rem}.lab-btn,a.lab-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(201,162,39,.45);border-radius:999px;padding:.55rem 1rem;font:inherit;font-weight:650;font-size:.92rem;cursor:pointer;min-height:44px;text-decoration:none}.lab-btn.primary,a.lab-btn.primary{background:var(--accent);color:#1a1404;border-color:transparent}.lab-btn:hover,a.lab-btn:hover{text-decoration:none;filter:brightness(1.06)}.lab-btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.lab-btn:focus-visible,.lab a:focus-visible,.lab input:focus-visible,.lab select:focus-visible,.lab button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lab-track{margin-bottom:1.75rem}.lab-track .lab-lessons{margin-bottom:0}.lab-lessons{list-style:none;padding:0;margin:0 0 2.2rem;display:flex;flex-direction:column;gap:.5rem}.lab-lessons a{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:center;text-decoration:none;color:inherit;padding:.75rem .9rem;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,var(--bg-card-hover) 0%,var(--bg-card) 100%);min-height:44px}.lab-lessons a:hover{border-color:var(--border-strong);text-decoration:none}.lab-lessons .num{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.lab-lessons strong{display:block;color:var(--text-bright);font-size:1rem}.lab-lessons em{display:block;font-style:normal;color:var(--text-muted);font-size:.85rem}.lab-lessons .mins{color:var(--text-muted);font-size:.78rem;font-variant-numeric:tabular-nums}.lab-tick{width:1.05rem;height:1.05rem;border-radius:50%;border:1.5px solid var(--border-strong);display:inline-block}.lab-tick.on{background:#7fd08a;border-color:#7fd08a;box-shadow:0 0 0 3px #7fd08a26}.lab-card-lessons{list-style:none;padding:.7rem 0 0;margin:.2rem 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.28rem}.lab-card-lessons a{font-size:.88rem}.lab-where{display:inline-block;margin-right:.35rem;color:var(--accent);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.lab-head{margin-bottom:.9rem}.lab-prose{max-width:44rem}.lab-prose p{margin:0 0 .75rem;color:var(--text)}.pips{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0;margin:.8rem 0 0}.pips a{display:inline-flex;width:2.4rem;height:2.4rem;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);color:var(--text-muted);text-decoration:none;font-size:.82rem;font-variant-numeric:tabular-nums}.pips a:hover{text-decoration:none;color:var(--text-bright)}.pips a[aria-current=step]{color:#1a1404;background:var(--accent);border-color:transparent;font-weight:700}.pips a.done{border-color:#7fd08aa6;color:#7fd08a}.pips a.done[aria-current=step]{color:#1a1404}.lab-done-note{margin:0 0 .75rem;padding:.55rem .75rem;border-radius:8px;background:#7fd08a1a;border:1px solid rgba(127,208,138,.35);color:#b7e2be;font-size:.88rem}.lab-done-note[hidden]{display:none}.stage{margin:1rem 0 1.25rem;padding:1rem;background:linear-gradient(180deg,rgba(201,162,39,.05),transparent 90px),var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.lab-split{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:1rem;align-items:start}.lab-split>*{min-width:0}.target-card{margin-bottom:.9rem;padding:.75rem .85rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border)}.target-card ul{margin:.35rem 0 0;padding-left:1.1rem}.target-card li{margin:.2rem 0;color:var(--text);font-size:.92rem}.lab-form{display:grid;gap:.65rem}.pair{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.pair>*{min-width:0}.lab-field{display:flex;flex-direction:column;gap:.3rem;color:var(--text-muted);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.lab-field input:not([type=range]),.lab-field select,.pkt-table select{width:100%;text-transform:none;letter-spacing:0;font-size:1rem;font-family:inherit;color:var(--text-bright);background:var(--bg);border:1px solid var(--border-strong);border-radius:8px;padding:.45rem .6rem;min-height:44px}.checkline{display:flex;align-items:center;gap:.55rem;min-height:44px;color:var(--text);font-size:.92rem}.slider-row{display:grid;grid-template-columns:6.4rem minmax(0,1fr) 4.6rem;gap:.45rem;align-items:center;min-height:44px;color:var(--text-muted);font-size:.82rem}.slider-row input[type=range]{width:100%;accent-color:var(--accent);min-height:44px;margin:0}.slider-row output.live-value,.slider-field output.live-value{font-family:var(--mono);font-size:.95rem;color:var(--text-bright);text-align:right;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none}.slider-row.bare{grid-template-columns:minmax(0,1fr) 4.4rem}.slider-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.slider-label,.stepper-name,.pick-name{color:var(--text-muted);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.stepper{display:flex;flex-direction:column;gap:.35rem;min-width:0}.stepper-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:.4rem;align-items:center}.stepper-row button{min-width:44px;min-height:44px;font:inherit;font-size:1.35rem;line-height:1;color:var(--text-bright);background:var(--bg);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}.stepper-row button:hover{border-color:var(--accent)}.stepper-read{text-align:center;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text-bright);font-size:1.15rem;letter-spacing:0;text-transform:none}.pick-set{display:flex;flex-direction:column;gap:.35rem;min-width:0}.pick-row{display:flex;flex-wrap:wrap;gap:.4rem}.pick-row .pick{min-height:44px;padding:.4rem .75rem;font:inherit;font-size:.95rem;letter-spacing:0;text-transform:none;color:var(--text-bright);background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}.pick-row .pick.is-on{color:#1a1404;background:var(--accent);border-color:transparent;font-weight:700}.bits{display:flex;flex-direction:column;gap:.15rem}.byte-row{display:flex;flex-wrap:wrap;gap:.25rem .55rem;align-items:center}.byte-bits{display:flex;gap:2px}.byte-meta{font-family:var(--mono);font-size:.7rem;color:var(--text-muted)}.bit{width:1.15rem;height:1.45rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;color:#f4f4f6;font-family:var(--mono);font-size:.72rem;background:#333}.bit.f-version{background:#3c4d73}.bit.f-type{background:#6a456e}.bit.f-sec{background:#2f6158}.bit.f-apid{background:#7a5b24}.bit.f-seqFlags{background:#6a4634}.bit.f-seq{background:#275643}.bit.f-length{background:#31486b}.bit.f-data{background:#5c4a28}.bit.f-crc{background:#6d3434}.bit.hot{outline:2px solid #f3e2a4;position:relative;z-index:1}.legend{display:flex;flex-wrap:wrap;gap:.35rem .7rem;list-style:none;padding:.45rem 0 0;margin:0}.legend li{display:inline-flex;align-items:center;gap:.3rem;color:var(--text-muted);font-size:.72rem}.legend .bit{width:.7rem;height:.7rem;font-size:0}.hex,.live-readout{font-family:var(--mono);font-size:.82rem;color:var(--text-bright);word-break:break-all}.live-readout{color:var(--text-muted)}.lab-note{margin:.35rem 0 0;color:var(--text-muted);font-size:.84rem}.lab-result{min-height:1.2em;margin:.75rem 0 0;font-size:.95rem}.lab-result.ok{color:#b7e2be}.lab-result.bad{color:#f0b4b4}.lab-result.info{color:var(--accent)}canvas.lab-chart{width:100%;height:240px;display:block;border-radius:8px;border:1px solid var(--border);touch-action:none;background:#0c0c0e}canvas.lab-logic,canvas.lab-scope{width:100%;display:block;border-radius:8px;border:1px solid var(--border);background:#0c0c0e;touch-action:none}canvas.lab-scope{height:260px}.station canvas.lab-scope{height:180px}.lab-sub{margin:.85rem 0 .4rem;font-size:1rem;color:var(--text-bright)}.bitcells{display:flex;flex-wrap:wrap;gap:.35rem;margin:.55rem 0}.bitcell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:2.35rem;min-height:2.7rem;padding:.15rem .3rem;border-radius:6px;border:1px solid var(--border);background:#141418;font-family:var(--mono);font-size:.92rem;color:var(--text-bright)}.bitcell b{font-size:.62rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.bitcell small{font-size:.62rem;color:#f0b4b4;line-height:1.1}.bitcell.ack small{color:#7fd08a}.rg{display:flex;flex-direction:column;gap:.4rem;margin:.35rem 0 .8rem}.rg-row{display:grid;grid-template-columns:4.4rem minmax(0,1fr) 3.4rem;gap:.45rem;align-items:center;color:var(--text-muted);font-size:.8rem;font-variant-numeric:tabular-nums}.rg-track{position:relative;height:22px;display:flex;background:#101014;border:1px solid var(--border);border-radius:4px}.rg-track i{display:block;height:100%}.rg-track i.sensor{background:#8ec8ff}.rg-track i.control{background:#c9a227}.rg-track i.telem{background:#7fd08a}.rg-track i.over{background:#e15d5d}.rg-deadline{position:absolute;top:0;bottom:0;width:2px;background:#f0b4b4;pointer-events:none}.rg-total.over{color:#f0b4b4}.swatch{width:.7rem;height:.7rem;border-radius:2px;display:inline-block}.swatch.sensor{background:#8ec8ff}.swatch.control{background:#c9a227}.swatch.telem{background:#7fd08a}.swatch.over{background:#e15d5d}.pkt-table tr.bad-row td{color:#f0b4b4}.lamp{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.78rem;color:var(--text-bright)}.lamp i{width:.7rem;height:.7rem;border-radius:50%;background:#3a3a40;display:inline-block}.lamp.green i{background:#7fd08a;box-shadow:0 0 8px #7fd08a}.lamp.yellow i{background:var(--accent);box-shadow:0 0 8px var(--accent)}.lamp.red i{background:#e15d5d;box-shadow:0 0 8px #e15d5d}.log{list-style:none;padding:0;margin:.4rem 0 0;min-height:1.2rem}.log li{font-family:var(--mono);font-size:.75rem;color:var(--text-muted)}.q-block{border:1px solid var(--border);border-radius:8px;margin:0;padding:.45rem .7rem .55rem}.q-block legend{color:var(--text-muted);font-size:.78rem;padding:0 .25rem}.q-block label{display:flex;align-items:flex-start;gap:.5rem;min-height:44px;min-width:0;color:var(--text)}.q-block label input{margin-top:.7rem;flex:none}.bench{display:grid;grid-template-columns:1fr 22px 1fr 28px 1fr;gap:.35rem;align-items:center;margin:.4rem 0 .8rem}.unit{border:1px solid var(--border-strong);border-radius:8px;padding:.5rem .3rem;text-align:center;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-bright);background:#101014}.unit small{display:block;text-transform:none;letter-spacing:0;color:var(--text-muted);font-size:.68rem;margin-top:.15rem}.link-serial{height:4px;background:var(--border-strong);border-radius:99px}.bus{display:flex;flex-direction:column;gap:6px}.trace{height:4px;border-radius:99px;background:#7fd08a}.trace.scl{background:#8ec8ff}.bench.unplugged .unit.imu{opacity:.4;border-style:dashed}.bench.stuck .trace.sda{background:#e15d5d;box-shadow:0 0 8px #e15d5d}.bench.crc .unit.cosmos{border-color:#e15d5d}.sym{display:grid;grid-template-columns:minmax(6rem,.8fr) 1.4fr;gap:.28rem .6rem;margin:0 0 .75rem}.sym dt{color:var(--text-muted);font-family:var(--mono);font-size:.75rem}.sym dd{margin:0;color:var(--text-bright);font-family:var(--mono);font-size:.78rem}.choices{display:flex;flex-direction:column;gap:.4rem}.choices .lab-btn{justify-content:flex-start}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:.65rem 0}.metrics div{background:#101014;border:1px solid var(--border);border-radius:8px;padding:.45rem .55rem}.metrics span{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.metrics strong{display:block;font-family:var(--mono);color:var(--text-bright);font-size:1rem}.metrics .ok strong{color:#7fd08a}.metrics .bad strong{color:#f0b4b4}.table-wrap{overflow-x:auto}.pkt-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.78rem}.pkt-table th{text-align:left;color:var(--text-muted);font-weight:600;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}.pkt-table td,.pkt-table th{padding:.4rem .35rem;border-bottom:1px solid var(--border);white-space:nowrap}.pkt-table select{min-width:7.5rem}.stations{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.station{border:1px solid var(--border);border-radius:10px;padding:.75rem;background:var(--bg-elevated);min-width:0}.station h3{margin:0 0 .55rem;font-size:.95rem;color:var(--text-bright);display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}.station h3 b{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:650}.station.pass{border-color:#7fd08a73}.station.pass h3 b{color:#7fd08a}.station .lab-chart{height:160px}.station .lab-result{font-size:.86rem}.lab-pager{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:.5rem 0 1.5rem;font-size:.92rem}.icd{display:flex;flex-direction:column}.icd-row{display:grid;grid-template-columns:minmax(6.5rem,.9fr) minmax(0,1fr) minmax(0,1fr) 9.2rem;gap:.45rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border)}.icd-row>*{min-width:0}.icd-row strong{color:var(--text-bright)}.icd-side{color:var(--text-bright);font-family:var(--mono);font-size:.92rem}.icd-side b{display:block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:650}.icd-row select,.vmethod-row select{width:100%;min-height:44px;font:inherit;font-size:1rem;color:var(--text-bright);background:var(--bg);border:1px solid var(--border-strong);border-radius:8px;padding:.45rem .55rem}.vmethod{display:flex;flex-direction:column;gap:.65rem}.vmethod-row{display:grid;grid-template-columns:minmax(0,1fr) 12.5rem;gap:.65rem;align-items:center;color:var(--text)}.vmethod-row>*{min-width:0}.trace-col{list-style:none;padding:0;margin:0 0 .8rem}.trace-col li{display:grid;grid-template-columns:4.6rem minmax(0,1fr);gap:.45rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--border);color:var(--text)}.trace-col b{font-family:var(--mono);color:var(--accent);font-size:.82rem}.ft{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.ft-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.ft-branch{display:flex;flex-direction:column;gap:.35rem;min-width:0}.ft-node{border:1px solid var(--border-strong);border-radius:8px;padding:.5rem .6rem;text-align:center;background:#101014;color:var(--text-bright);font-size:.88rem}.ft-node.top{border-color:#c9a2278c}.ft-node.basic{border-style:dashed}.ft-gate{text-align:center;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--accent)}.proc{margin:0 0 .9rem;padding-left:1.2rem;color:var(--text)}.proc li{margin:.35rem 0}.why-log{margin:0 0 .75rem;padding-left:1.2rem;color:var(--text)}.why-log li{margin:.28rem 0}.seq{display:flex;flex-direction:column;gap:.65rem;margin-bottom:.9rem}.seq-row{display:grid;grid-template-columns:4.5rem minmax(0,1.2fr) minmax(0,1fr);gap:.45rem;align-items:end}.seq-row>*{min-width:0}.seq-row strong{color:var(--text-bright);padding-bottom:.65rem}.script-row{grid-template-columns:4.5rem minmax(0,1fr)}.ladder{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.9rem}.ladder-row,.verify-row{display:grid;grid-template-columns:8.2rem repeat(3,minmax(0,1fr));gap:.45rem;align-items:end}.verify-row{grid-template-columns:minmax(0,1.4fr) minmax(0,.7fr) minmax(0,.8fr);margin-bottom:.9rem}.ladder-row>*,.verify-row>*{min-width:0}.ladder-row strong{color:var(--text-bright);padding-bottom:.65rem}.wire{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.45rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border)}.wire-end{min-width:0}.wire-end b{display:block;color:var(--text-bright);overflow-wrap:anywhere}.wire-end i{color:var(--accent);font-style:normal;font-family:var(--mono);font-size:.82rem}.wire-arrow{color:var(--text-muted)}.cmd-log{list-style:none;margin:.75rem 0 0;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;font-family:var(--mono);font-size:.86rem;color:var(--text-bright);min-height:2.6rem}.cmd-log li{margin:.2rem 0}.cmd-log li.reject{color:#f0b4b4}.contact{margin:0 0 .75rem;color:var(--text)}.contact strong{font-family:var(--mono);color:var(--accent);font-size:1.1rem}.contact.closed strong{color:#f0b4b4}.maze{display:grid;grid-template-columns:repeat(3,44px);gap:4px;margin:0 0 .8rem}.maze i{display:grid;place-items:center;height:44px;border:1px solid var(--border-strong);border-radius:6px;font-style:normal;font-family:var(--mono);color:var(--text-bright)}.maze i.block{color:var(--text-muted);background:#1a1814}@media (max-width: 800px){.lab-split,.stations,.ft-row,.vmethod-row,.ladder-row,.seq-row,.script-row,.verify-row,.wire{grid-template-columns:1fr}.icd-row{grid-template-columns:1fr 1fr}.icd-row strong,.icd-row select{grid-column:1 / -1}.lab-lessons a{grid-template-columns:auto 1fr auto}.lab-lessons .mins{display:none}.bench{grid-template-columns:1fr}.link-serial{height:10px}.bus{height:18px;flex-direction:row}.trace{flex:1;height:8px}.metrics,.pair{grid-template-columns:1fr}canvas.lab-chart,.station .lab-chart{height:200px}}@media (prefers-reduced-motion: reduce){.lab-meter span{transition:none}}
