.assembly{color:var(--ink);max-width:1200px;display:grid;gap:var(--s4)}
.assembly p{color:var(--graphite)}
.assembly-intro{max-width:660px;font-size:14px;line-height:1.7}
.assembly-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.assembly-heading h3{font-size:23px;letter-spacing:-.03em;font-weight:500}
.assembly-label{font:10px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.assembly-tabs{display:flex;gap:6px;flex-wrap:wrap}
.assembly-tabs button{font:12px var(--sf);padding:9px 14px;min-height:38px;border:1px solid var(--hair);border-radius:var(--r);color:var(--graphite);background:transparent;cursor:pointer}
.assembly-tabs button[aria-pressed=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}
.assembly button:focus-visible{outline:2px solid var(--seal);outline-offset:3px}
.assembly-model-wrap{position:relative;margin-top:14px;background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden}
.assembly model-viewer{display:block;width:100%;height:clamp(340px,48vw,570px);background:var(--panel);touch-action:pan-y}
.assembly-model-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--hair-2);font-size:12px}
.assembly-model-status{position:absolute;left:18px;right:18px;top:14px;font:11px/1.5 var(--mono);color:var(--graphite);pointer-events:none}
.assembly-model-name{font-weight:600;margin-right:10px}
.assembly-view-controls{display:flex;gap:6px;flex-wrap:wrap}
.assembly-view-controls button,.assembly-ar{font:11px var(--sf);padding:8px 12px;min-height:36px;border:1px solid var(--hair);border-radius:var(--r);background:var(--panel);color:var(--ink);cursor:pointer}
.assembly-ar{position:absolute;bottom:16px;right:16px}
.assembly-manual{display:grid;gap:26px;margin-top:18px}
.assembly-note{padding:16px 20px;background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);font-size:13px;line-height:1.7}
.assembly-note strong{display:block;color:var(--ink);font-weight:600;margin-bottom:3px}
.assembly-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:20px;padding:20px;background:var(--panel);border:1px solid var(--hair);border-radius:var(--r)}
.assembly-part{text-align:center;font-size:12px;line-height:1.5}
.assembly-part img{display:block;width:100%;height:120px;object-fit:contain;mix-blend-mode:multiply;margin-bottom:8px}
.assembly-quantity{font:10px var(--mono);display:block;margin-bottom:5px;color:var(--slate)}
.assembly-tools{display:flex;gap:24px;flex-wrap:wrap}
.assembly-tool{display:flex;align-items:center;gap:9px;font-size:12px}
.assembly-tool img{width:48px;height:48px;object-fit:contain;mix-blend-mode:multiply}
.assembly-steps{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}
.assembly-step{min-width:0;background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden}
.assembly-step-heading{display:flex;gap:12px;align-items:baseline;padding:18px 20px 0}
.assembly-step-number{font:11px var(--mono);color:var(--slate);flex-shrink:0}
.assembly-step h4{font-size:15px;line-height:1.45;font-weight:500;letter-spacing:-.01em}
.assembly-drawing{position:relative;aspect-ratio:4/3}
.assembly-drawing>img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;display:block}
.assembly-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.assembly-step-detail{padding:0 20px 20px;font-size:12px;line-height:1.65}
.assembly-step-detail>.assembly-label{margin-top:12px}
.assembly-detail{display:grid;grid-template-columns:minmax(95px,36%) 1fr;align-items:center;gap:16px;padding-top:16px;margin-top:16px;border-top:1px solid var(--hair-2)}
.assembly-detail img{width:100%;max-height:155px;object-fit:contain;mix-blend-mode:multiply}
.assembly-detail figcaption{font-size:11px;line-height:1.6;color:var(--graphite)}
.assembly-sizes{grid-template-columns:repeat(3,minmax(0,1fr));max-width:620px}
.assembly-image-error{font:11px/1.5 var(--mono);padding:12px;color:var(--seal)}
.assembly-state{padding:28px 0;max-width:600px;font-size:14px;line-height:1.7;color:var(--graphite)}
@media(max-width:600px){.assembly{gap:28px}.assembly-steps{grid-template-columns:1fr;gap:20px}.assembly-parts{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:14px}.assembly-part img{height:110px}.assembly-heading{gap:10px}.assembly-heading h3{font-size:21px}.assembly-tabs button{padding:8px 12px}.assembly model-viewer{height:350px}.assembly-tools{gap:14px}.assembly-tool img{width:40px;height:40px}}

/* Authoring controls are separate from the approved reading layout. */
.assembly-author-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;top:60px;z-index:5;background:var(--paper);padding:10px 0;margin-bottom:6px}
.assembly-author-tools:empty,.assembly-author-status:empty{display:none}
.assembly-author-status{font:12px/1.6 var(--sf);color:var(--graphite);margin:0 0 18px;max-width:800px}
.assembly-editor-host{border:0;padding:0;min-width:0;max-width:950px}
.assembly-editor-host[hidden],.assembly-history[hidden]{display:none}
.assembly-editor{display:grid;grid-template-columns:135px minmax(0,1fr);gap:28px}
.assembly-edit-sections{display:flex;flex-direction:column;gap:6px;align-self:start;position:sticky;top:123px}
.assembly-editor button,.assembly-history button{font:12px/1.4 var(--sf);color:var(--ink);background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);padding:8px 12px;min-height:38px;cursor:pointer}
.assembly-editor button:disabled,.assembly-author-tools button:disabled,.assembly-history button:disabled{opacity:.45;cursor:default}
.assembly-editor button:focus-visible,.assembly-editor input:focus-visible,.assembly-editor textarea:focus-visible,.assembly-editor select:focus-visible,.assembly-editor summary:focus-visible{outline:2px solid var(--graphite);outline-offset:2px}
.assembly-edit-sections button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.assembly-edit-body{min-width:0;display:grid;gap:18px;align-content:start}
.assembly-edit-body h3,.assembly-history h3{font-size:20px;font-weight:500;letter-spacing:-.03em}
.assembly-edit-field{display:grid;gap:7px;font:12px/1.5 var(--sf);color:var(--ink);min-width:0}
.assembly-edit-field>span{font-weight:500}
.assembly-editor input:not([type=file]),.assembly-editor textarea,.assembly-editor select{font:14px/1.5 var(--sf);color:var(--ink);background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);padding:10px 12px;width:100%;min-width:0;box-sizing:border-box}
.assembly-editor textarea{resize:vertical;min-height:95px}
.assembly-edit-hint{font:12px/1.6 var(--sf);color:var(--slate);margin:0;overflow-wrap:anywhere}
.assembly-edit-actions{display:flex;gap:7px;flex-wrap:wrap}
.assembly-edit-disclosure,.assembly-edit-row{border:1px solid var(--hair);border-radius:var(--r);background:var(--panel);min-width:0}
.assembly-edit-disclosure>summary,.assembly-edit-row>summary{font:13px/1.5 var(--sf);font-weight:500;cursor:pointer;padding:14px 16px;overflow-wrap:anywhere}
.assembly-edit-fields{display:grid;gap:16px;padding:0 16px 16px;min-width:0}
.assembly-edit-row+.assembly-edit-row{margin-top:10px}
.assembly-edit-asset{display:flex;align-items:start;gap:16px;min-width:0}
.assembly-edit-asset>img{width:105px;height:105px;object-fit:contain;background:var(--paper);border:1px solid var(--hair-2);border-radius:var(--r)}
.assembly-edit-asset>img[hidden]{display:none}
.assembly-edit-asset-controls{display:grid;gap:10px;flex:1;min-width:0}
.assembly-edit-upload{font:12px/1.5 var(--sf);display:grid;gap:7px;min-width:0}
.assembly-edit-upload input{font:11px/1.5 var(--sf);max-width:100%;min-width:0}
.assembly-edit-upload input::file-selector-button{font:12px var(--sf);border:1px solid var(--hair);border-radius:var(--r);padding:8px 10px;background:var(--paper);color:var(--ink);margin-right:8px;cursor:pointer}
.assembly-annotation-preview{position:relative;aspect-ratio:4/3;width:100%;background:var(--paper)}
.assembly-annotation-preview>img,.assembly-annotation-preview>svg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.assembly-edit-coordinates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border:0;border-top:1px solid var(--hair-2);padding:12px 0;margin-top:12px;min-width:0}
.assembly-edit-coordinates legend{font:12px var(--sf);padding-right:8px}
.assembly-edit-coordinates label{font:10px/1.5 var(--mono);display:grid;gap:5px}
.assembly-edit-coordinates button{grid-column:1/-1;justify-self:start}
.assembly-history{max-width:950px;display:grid;gap:14px;padding:20px;background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);margin-bottom:25px}
.assembly-history-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--hair-2);padding-top:12px;font:12px/1.6 var(--sf)}
.assembly-history-row>span{flex:1 1 230px}
@media(max-width:600px){.assembly-author-tools{top:49px;gap:6px}.assembly-author-tools .btn{padding:9px 11px;font-size:11px}.assembly-editor{grid-template-columns:minmax(0,1fr);gap:16px}.assembly-edit-sections{position:static;flex-direction:row}.assembly-edit-sections button{flex:1}.assembly-edit-fields{padding:0 12px 12px}.assembly-edit-asset{flex-direction:column;gap:10px}.assembly-edit-asset-controls{width:100%}.assembly-edit-coordinates{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-history{padding:14px}.assembly-editor input:not([type=file]),.assembly-editor select,.assembly-editor textarea{font-size:16px}}
.assembly-confirm{color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);padding:24px;width:min(440px,calc(100vw - 32px));box-sizing:border-box;margin:auto}
.assembly-confirm::backdrop{background:rgba(24,20,15,.35)}
.assembly-confirm p{font:14px/1.7 var(--sf);margin-bottom:20px}
.assembly-intro,.assembly-note p,.assembly-step-detail>p,.assembly-detail figcaption{white-space:pre-line}
.assembly-print-files{margin-top:22px;min-width:0}
.assembly-print-files h4{font-size:14px;font-weight:500;margin-bottom:10px}
.assembly-print-file{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:start;border-top:1px solid var(--hair);padding:15px 0;min-width:0}
.assembly-print-copy{min-width:0;overflow-wrap:anywhere;font:13px/1.6 var(--sf)}
.assembly-print-copy strong{font-weight:500}
.assembly-print-meta{font:11px/1.6 var(--mono);color:var(--slate);margin-top:4px}
.assembly-print-note{font-size:12px;white-space:pre-line;margin-top:6px}
.assembly-print-file button{font:12px/1.4 var(--sf);color:var(--ink);background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);padding:8px 12px;min-height:38px;cursor:pointer}
.assembly-print-file button:disabled{opacity:.55;cursor:wait}
.assembly-print-empty,.assembly-print-feedback{font:12px/1.6 var(--sf);color:var(--slate)}
.assembly-print-feedback{grid-column:1/-1}
.assembly-print-feedback:empty{display:none}
@media(max-width:600px){.assembly-print-file{grid-template-columns:minmax(0,1fr)}.assembly-print-file button{justify-self:start}}
