/* Device view: our own generic drawings, zones, labels, component lists. Split unchanged from the T-201 demo index.html. */
/* ---------- device view (generic drawing) ---------- */
.stage.dev{cursor:default;background-color:#f6f2e7;
  background-image:linear-gradient(#e2dac4 1px,transparent 1px),linear-gradient(90deg,#e2dac4 1px,transparent 1px),
    linear-gradient(#ece6d6 1px,transparent 1px),linear-gradient(90deg,#ece6d6 1px,transparent 1px);
  background-size:140px 140px,140px 140px,28px 28px,28px 28px;background-position:-1px -1px}
#dview{position:absolute;left:8px;right:8px;top:54px;bottom:58px}
.devbar{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;align-items:center;gap:14px;padding:7px 14px;background:rgba(251,248,240,.94);border-top:1px solid #e2dac4}
.devbar .dl{font-size:12.5px;line-height:1.35;min-width:0}
.devbar .dl b{display:block;font-size:13px}
#dview svg{width:100%;height:100%;display:block;overflow:visible}
#cam{transform-box:view-box;transform-origin:700px 520px;transition:transform 1.1s cubic-bezier(.22,.8,.22,1)}
#dview.asm #cam{transform:scale(var(--camS,1.3))}
.pc{--st:#1d3557;--fl:#dfe9f4;--fl2:#b9cfe6;cursor:pointer;transform-box:fill-box;transform-origin:center;
  transition:opacity .3s ease}
.pc .a{fill:var(--fl);stroke:var(--st);stroke-width:3.5;stroke-linejoin:round}
.pc .b{fill:var(--fl2);stroke:var(--st);stroke-width:3.5;stroke-linejoin:round}
.pc .l{fill:none;stroke:var(--st);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.pc .t{fill:none;stroke:var(--st);stroke-width:2;stroke-linecap:round}
.pc .d{fill:none;stroke:var(--st);stroke-width:2.5;stroke-dasharray:7 6;stroke-linecap:round}
.pc .k{fill:var(--st);stroke:var(--st);stroke-width:2}
.pc .w{fill:#9cbde0;stroke:none}
.pc text{fill:var(--st);font:700 15px ui-monospace,SFMono-Regular,Menlo,monospace}
.pc.hov,.pc.sel{--st:#b8561a;--fl:#fbe6d2;--fl2:#f2c398}
.pc.hit{--st:#b8561a}
.pc.dim{opacity:.28}
.pc.pre{opacity:0}
.zl{opacity:0;transition:opacity .35s ease;pointer-events:none}
#dview.exp .zl{opacity:1;transition-delay:.75s}
.zl .n{font:700 22px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#1d3557;letter-spacing:.3px}
.zl .c{font:500 16px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#5d6b7c}
.zl line,.zl polyline{stroke:#1d3557;stroke-width:1.6;fill:none}
.zl circle{fill:#1d3557}
.zl.sel .n{fill:#b8561a}.zl.sel line,.zl.sel polyline{stroke:#b8561a}.zl.sel circle{fill:#b8561a}
.other{position:absolute;right:14px;top:14px;z-index:5;background:#fbf8f0;border:2px dashed #8a97a8;border-radius:9px;padding:5px 11px;cursor:pointer;
  font:12.5px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:#3d4a5a}
.other b{color:#1d3557;letter-spacing:.3px;margin-right:6px}
.other:hover,.other.sel{border-color:#b8561a}
.other.sel b{color:#b8561a}
.devtype{display:block;font-weight:500;color:var(--muted)}
.kw{font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1ece0;color:#6b5420;border-radius:5px;padding:1px 5px;margin-left:6px;white-space:nowrap}
.nest{font-size:12px;color:var(--muted)}
.pc .hz{fill:none;stroke:var(--st);stroke-width:17;stroke-linecap:round;stroke-linejoin:round}
.pc .hzi{fill:none;stroke:var(--fl2);stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
.srcnote{background:#eef4f6;border:1px solid #cfdfe3;color:#1f3d44;border-radius:10px;padding:9px 11px;font-size:12.5px;margin:0 0 12px}
.srcnote b{display:block;font-size:13px;margin-bottom:2px}
.zsrc{font-size:12px;color:var(--muted);margin:-6px 0 10px}
.clist{list-style:none;margin:0;padding:0}
.clist li{display:flex;gap:10px;align-items:flex-start;padding:7px 4px;border-bottom:1px solid var(--soft);font-size:13.5px}
.clist .lt{flex:none;width:22px;height:22px;border-radius:6px;background:#1d3557;color:#fff;font:700 12px/22px ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center}
.clist .lt.no{background:#fff;border:1.5px solid #8a97a8;color:#8a97a8;line-height:19px}
.clist .nm{font-weight:600}
.clist .sb{font-size:12px;color:var(--muted)}
.clist .c{margin-left:auto;white-space:nowrap}
.nt{font-size:11.5px;color:var(--muted);margin-top:2px}
.nt.k{display:inline-block;margin:0 0 0 6px;background:#eef0f2;border-radius:5px;padding:0 5px;font-weight:600;color:#3b434a}
/* T-231: rows and names read by OCR from scanned pages */
.ocr{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:#fff4dc;color:#7a5200;border:1px solid #ecd39a;font:600 10.5px/16px system-ui,sans-serif;vertical-align:1px;letter-spacing:.02em}
