/* Hardware-specific visual vocabulary inside the Gallery / skywine reader. */
.cuda-lab{--cu-wine:#742d49;--cu-sky:#bad6ef;--cu-mist:#edf5fb;--cu-plum:#302333;--cu-paper:#fcfaf8;--cu-slate:#625a65;margin:2rem 0;color:var(--cu-plum)}
.cuda-lab figcaption{display:flex;flex-direction:column;gap:.3rem;border-bottom:1px solid #d8cbd3;padding-bottom:.8rem;margin-bottom:.9rem}.cuda-lab figcaption strong{font-size:1.15rem;line-height:1.4}.cuda-lab figcaption>span{font-size:.78rem;color:var(--cu-slate)}
.cuda-controls,.cuda-playback,.cuda-choices{display:flex;flex-wrap:wrap;gap:.5rem .7rem;align-items:center;margin:.8rem 0}.cuda-controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;flex:1 1 100px}.cuda-lab select{width:100%;font:inherit;background:#fff;border:1px solid #c2afbb;border-radius:5px;color:var(--cu-plum);padding:.45rem}.cuda-lab button{font:inherit;font-size:.8rem;padding:.5rem .65rem;border:1px solid #c2afbb;border-radius:5px;background:var(--cu-paper);color:var(--cu-wine);cursor:pointer;min-height:38px}.cuda-lab button[aria-pressed=true],.cuda-lab button[data-play]{background:var(--cu-wine);color:white;border-color:var(--cu-wine)}.cuda-lab button:disabled{opacity:.4;cursor:default}.cuda-playback label{display:flex;align-items:center;gap:.6rem;flex:1 1 180px;font-size:.8rem}.cuda-playback input{flex:1;width:0;min-width:60px;accent-color:var(--cu-wine)}.cuda-lab .cuda-reading{font-size:.85rem;line-height:1.65;margin:1rem 0;color:var(--cu-slate);min-height:3.5em}.cuda-reading b{color:var(--cu-plum)}
.cuda-scroll{overflow-x:auto;margin:1rem 0}.cuda-svg{display:block;width:100%;min-width:700px;height:auto;background:var(--cu-paper);border-radius:8px}.cuda-svg text{stroke:none;font:12px ui-monospace,monospace;fill:var(--cu-plum);dominant-baseline:auto}.cuda-svg .cuda-axis{font-family:inherit;fill:var(--cu-slate)}.cuda-svg .cuda-center{text-anchor:middle}.cuda-lane-mark{fill:#e5e0e6}.cuda-hot{fill:var(--cu-wine)}.cuda-lane-mark+text,.cuda-hot+text{fill:var(--cu-plum)}.cuda-hot+text{fill:white}.cuda-svg .cuda-sector{fill:white;stroke:#d4c9d1;stroke-width:1}.cuda-loaded{fill:var(--cu-sky)}.cuda-empty{fill:#e5e0e6}.cuda-address-wire{fill:none;stroke:var(--cu-wine);stroke-width:2.5}.cuda-rail{stroke:#d7d1d6;stroke-width:1}.cuda-pending{fill:var(--cu-wine)}.cuda-pending+text{fill:white}.cuda-service-line{stroke:var(--cu-plum);stroke-width:1;stroke-dasharray:3 3}.cuda-owned{fill:#dfe4eb}.cuda-time-cursor{stroke:var(--cu-plum);stroke-width:2}.cuda-reduce-edge{stroke:var(--cu-wine);stroke-width:1.5;fill:none}.cuda-inactive{fill:#ece8ec}.cuda-reduction .cuda-center{font-size:11px}
.cuda-dispatch{background:var(--cu-plum);color:#f8f3f6;padding:1rem;border-radius:10px}.cuda-launch{display:flex;flex-direction:column;gap:.3rem;padding-bottom:1rem}.cuda-launch b{font-size:.95rem}.cuda-launch span,.cuda-launch small{font-size:.78rem;color:#d9e5ef}.cuda-sm-floor{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cuda-sm{border:1px solid #bad6ef66;padding:.7rem;border-radius:8px}.cuda-sm header{font-size:.9rem;color:#bad6ef}.cuda-sm header small{display:block;font-size:.68rem;color:#dfd5dd}.cuda-block,.cuda-slot{min-height:84px;border:1px solid #ffffff2d;border-radius:5px;padding:.55rem;margin-top:.55rem;font-size:.75rem;display:flex;flex-direction:column;gap:.3rem}.cuda-block.is-selected{background:#edf5fb;color:var(--cu-plum);border-color:#bad6ef}.cuda-block mark{background:var(--cu-wine);color:white;padding:1px 4px}.cuda-slot{color:#d3c9d2;border-style:dashed;justify-content:center}.cuda-lane-heading{margin:1rem 0 .5rem;font-size:.8rem}.cuda-lanes{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.cuda-lanes button{min-width:0;padding:.35rem .15rem;border-color:#d8cbd3;line-height:1.3}.cuda-lanes small{display:block;font-size:11px}.cuda-lanes b{font:13px ui-monospace,monospace}.cuda-lanes .is-masked{background:repeating-linear-gradient(135deg,#e9e4e8 0 4px,#f8f5f7 4px 8px);color:#6d626c}.cuda-lanes .is-masked[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--cu-wine);color:var(--cu-wine)}
.cuda-gemm-inputs{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:center;margin:1rem 0}.cuda-times{font-size:1.5rem;color:var(--cu-wine)}.cuda-matrix-wrap{min-width:0;text-align:center}.cuda-matrix-wrap>b{display:block;font-size:.78rem;margin-bottom:.5rem}.cuda-matrix{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:4px;max-width:240px;margin:auto}.cuda-matrix>span{min-width:0;padding:.35rem .1rem;background:#ede9ec;color:#655e67;border-radius:4px;font:13px ui-monospace,monospace;min-height:30px;display:flex;flex-direction:column;justify-content:center}.cuda-matrix>span small{font-size:11px}.cuda-matrix>span.is-resident{background:var(--cu-sky);color:var(--cu-plum)}.cuda-matrix>span.is-accumulator{background:var(--cu-wine);color:white}.cuda-matrix .cuda-empty-tray{grid-column:1/-1;font:12px inherit}.cuda-residency{padding:1rem;border-block:1px dashed #bcacb9;background:var(--cu-mist);margin:1rem 0}.cuda-residency header{font-size:.78rem;text-align:center;color:var(--cu-wine);margin-bottom:.7rem}.cuda-gemm-trays{min-height:calc(28px + var(--staging-rows,2)*34px);align-items:start;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cuda-small-matrix{max-width:180px}.cuda-small-matrix>span{background:white;color:var(--cu-plum)}.cuda-gemm-output{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:center}.cuda-ownership{font-size:.82rem}.cuda-ownership p{margin:.5rem 0!important}.cuda-static-path{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;padding:1rem;background:#edf5fb;font-size:.85rem}.cuda-static-path b{color:#742d49}.cuda-code-note{font-size:.85rem}
@media(max-width:600px){.cuda-sm-floor{gap:.5rem}.cuda-dispatch{padding:.7rem}.cuda-sm{padding:.5rem}.cuda-sm header small{font-size:.68rem}.cuda-block,.cuda-slot{font-size:.72rem}.cuda-lanes{grid-template-columns:repeat(4,minmax(0,1fr))}.cuda-lab button{font-size:.75rem}.cuda-playback label{flex-basis:100%}.cuda-gemm-inputs{gap:.4rem}.cuda-gemm-output{grid-template-columns:1fr}.cuda-matrix{max-width:210px}.cuda-gemm-trays{gap:.6rem}.cuda-lab .cuda-reading{min-height:0}.cuda-ownership{text-align:center}}

.cuda-cache-path{fill:none;stroke:#c2afbb;stroke-width:2}.cuda-svg .cuda-end{text-anchor:end}.cuda-cache .cuda-hot+text{fill:white}.cuda-cache .cuda-hot+text+text{fill:white}
