.assembly-canvas{position:relative;width:100%;aspect-ratio:1920/573}
.assembly-canvas img{display:block;width:100%;height:auto}
.assembly-highlight{position:absolute;width:36px;height:36px;transform:translate(-50%,-50%);border:3px solid var(--teal);outline:3px solid var(--gold);outline-offset:2px;border-radius:50%;background:rgb(211 190 127 / 24%);pointer-events:none}
.assembly-highlight::before{content:"";position:absolute;width:12px;height:12px;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--gold);border:2px solid var(--teal);border-radius:50%}
.assembly-highlight-label{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);padding:5px 10px;background:var(--teal);color:#fff;font-size:13px;font-weight:600;line-height:1.4;white-space:nowrap}
.assembly-highlight[data-label-position="above"] .assembly-highlight-label{top:auto;bottom:calc(100% + 12px)}
.assembly-pan-hint{display:block;margin-top:16px;font-size:14px;line-height:1.5;color:var(--muted)}
.assembly-pan-hint span{display:none}
.assembly-component-list{gap:8px;margin-top:12px}
.assembly-component{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:2px;background:transparent;color:var(--teal);font:inherit;line-height:1.5;cursor:pointer;transition:background-color 120ms ease-out,border-color 120ms ease-out}
.assembly-component:hover{background:#e4e8e3;border-color:var(--teal)}
.assembly-component[aria-pressed="true"]{background:var(--gold);border-color:var(--teal);font-weight:600}
.assembly-component:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.assembly-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:767px){.assembly-canvas{width:1000px}.assembly-canvas img{width:100%}.assembly-pan-hint{font-size:13px}.assembly-pan-hint span{display:inline}.assembly-component-list{gap:8px;margin-top:12px}.assembly-component{font-size:14px;padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.assembly-component{transition:none}}
