.assembly-panel { padding:28px clamp(16px,3vw,46px) 42px; max-width:1600px; margin:auto }
.assembly-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; border-bottom:1px solid var(--rule); padding-bottom:22px }
.assembly-heading h1 { margin:0 0 12px; font-size:clamp(30px,3vw,46px); letter-spacing:-1.3px }
.assembly-heading p { max-width:790px; margin:0; color:var(--secondary-ink); line-height:1.6 }
.assembly-heading>a { flex-shrink:0; margin-top:12px }
.assembly-desk { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); border-bottom:1px solid var(--rule) }
.assembly-work { min-width:0; padding:24px 28px 24px 0; border-right:1px solid var(--rule) }
.joint-controls { padding:24px 0 24px 28px; min-width:0 }
.assembly-work h2,.joint-controls h2,.assembly-evidence h2 { font-size:20px; margin:0 0 16px }
.assembly-drawing { background:var(--ground); border:1px solid var(--rule); width:100%; display:block; aspect-ratio:600/330 }
.assembly-drawing text { font-family:var(--mono); fill:var(--ink) }
.assembly-drawing .pad-label { font-size:12px }
.assembly-drawing .joint-target { cursor:pointer; outline:none }
.assembly-drawing .joint-target:focus .locator { stroke:var(--ink);stroke-width:3 }
.assembly-drawing .locator { fill:none; stroke:var(--accent); stroke-width:2;stroke-dasharray:5 5 }
.assembly-drawing .r1-body { fill:#282d2e;stroke:#747777;stroke-width:1 }
.assembly-note { color:var(--muted); font-size:12px; line-height:1.6; margin:12px 0 }
.assembly-placement { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:18px }
.assembly-placement label { display:flex; align-items:center; gap:10px; font-size:13px }
.assembly-placement select { max-width:100%; font:13px var(--mono) }
.assembly-pin-nav { display:flex; gap:8px; margin-bottom:14px }
.assembly-pin-nav button { flex:1; min-height:44px; font:12px var(--mono) }
.assembly-pin-nav button[aria-pressed=true] { border-color:var(--accent); background:var(--accent-wash) }
.assembly-tools { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0 }
.assembly-tools button { text-align:left; min-height:48px; line-height:1.4 }
.assembly-tools button span { display:block; font-size:11px; color:var(--muted) }
.assembly-joint-state { margin:0; display:grid; grid-template-columns:1fr 1fr; font-size:12px; border-block:1px solid var(--rule) }
.assembly-joint-state div { padding:11px 0 }
.assembly-joint-state dt { color:var(--muted);margin-bottom:6px }
.assembly-joint-state dd { margin:0; font-family:var(--mono) }
.assembly-feedback { min-height:3.6em; margin:12px 0; font-size:13px; line-height:1.5 }
.assembly-evidence { padding-top:25px }
.assembly-test-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; flex-wrap:wrap }
.assembly-test-heading h2 { margin:0 }
.assembly-test-buttons { display:flex; gap:9px; align-items:center; flex-wrap:wrap }
.assembly-revision { font:11px var(--mono); color:var(--muted) }
.assembly-test-state { padding:13px 0; color:var(--secondary-ink); line-height:1.5; margin:0 }
.assembly-results { display:grid; grid-template-columns:1fr 1fr; gap:26px }
.assembly-results table { width:100%;font:13px var(--mono) }
.assembly-results th,.assembly-results td { text-align:left;padding:10px 6px;border-bottom:1px solid var(--rule) }
.assembly-results th { font:12px var(--sans);color:var(--muted) }
.assembly-scope { width:100%;display:block;border:1px solid var(--rule);background:var(--rail) }
.assembly-faults { border-top:1px solid var(--rule); margin-top:25px;padding-top:20px }
.assembly-faults h3 { font-size:16px;margin:0 0 10px }
.assembly-faults>div { display:flex;flex-wrap:wrap;gap:8px }
.assembly-record { display:flex;gap:20px;flex-wrap:wrap;margin-top:18px;font-size:13px }
.assembly-boundary { border-top:1px solid var(--rule);margin-top:25px;padding-top:16px;color:var(--muted);font-size:12px;line-height:1.6 }
.assembly-load-error { padding:24px;border:1px solid var(--rule) }
body[data-panel=assembly] .title-row { display:none }
/* New destinations stay available on every page, including 320 px layouts. */
@media(min-width:1251px) and (max-width:1480px) { .masthead { gap:20px }.page-nav { gap:20px }.header-context { display:none } }
@media(max-width:960px) { .masthead { height:auto; flex-wrap:wrap; padding-top:14px; gap:8px 20px }.page-nav { flex:1; height:auto; min-height:44px; flex-wrap:wrap; justify-content:flex-start; gap:0 17px }.page-nav a { min-height:44px;height:44px }.wordmark { flex-shrink:0 } }
@media(max-width:760px) { .masthead { padding-top:14px }.page-nav { display:flex; height:auto; flex-wrap:wrap; justify-content:flex-start; gap:0 18px; padding-bottom:4px }.page-nav a { font-size:12px; min-height:40px;height:40px; padding:0 2px }.page-nav a[aria-current=page]:after { bottom:3px } }
@media(max-width:850px) {
 .assembly-desk,.assembly-results { grid-template-columns:1fr }
 .assembly-work { padding-right:0;border-right:0;border-bottom:1px solid var(--rule) }
 .joint-controls { padding-left:0 }
 .assembly-heading { flex-direction:column;gap:8px }
 .assembly-heading>a { margin-top:0 }
 .assembly-drawing { min-height:230px }
 .assembly-results { gap:15px }
}
@media(prefers-reduced-motion:reduce) { .assembly-panel * { scroll-behavior:auto } }
