:root{--ink:#17323d;--muted:#667c85;--accent:#126e63;--line:#d9e4e5;--soft:#f2f7f6;--amber:#9b701e}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font:15px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app{max-width:1340px;margin:auto}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}h1{font-size:clamp(26px,3.5vw,43px);letter-spacing:-1.6px;font-weight:750}h1 span{color:var(--accent)}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:20px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:800;color:var(--accent);margin-bottom:11px}.top{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:30px 32px 27px;border-bottom:1px solid var(--line)}.intro{color:var(--muted);font-size:14px;margin-top:12px}.edition{font-size:12px;font-weight:650;background:var(--soft);padding:12px 15px;border-radius:9px;white-space:nowrap}.edition-sub{display:block;font-weight:450;color:var(--muted);font-size:11px;margin:4px 0 0 13px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#258a6e;margin-right:7px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 305px;border-bottom:1px solid var(--line)}.viewer{position:relative;min-width:0;background:#f6f9f9}.toolbar{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:7px;padding:15px 18px;background:#f6f9f9}button,a.primary{border:1px solid #c4d5d7;border-radius:6px;background:white;color:var(--ink);padding:8px 11px;font:650 11px/1.4 system-ui,sans-serif;cursor:pointer;text-decoration:none}button:hover{background:#e9f3f0}button[aria-pressed=true],button.active{color:var(--accent);border-color:#659f96;background:#eaf5f1}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #d49a32;outline-offset:3px}.canvas-wrap{position:relative;height:510px;min-height:300px;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.markers{position:absolute;inset:0;pointer-events:none}.marker{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;background:#ffffffef;padding:4px 8px 4px 4px;border:1px solid #92b6b0;border-radius:20px;font-size:10px;box-shadow:0 2px 10px #18333e14;white-space:nowrap;transition:opacity .15s}.marker .number{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:white;font-size:10px}.marker[aria-pressed=true]{box-shadow:0 0 0 3px #178b722e;background:#fff;border-color:var(--accent)}.marker.occluded{opacity:.55}.model-caption{position:absolute;bottom:20px;left:22px;pointer-events:none;font-size:10px;font-weight:800;letter-spacing:2px;color:#6b7f87}.model-caption span{display:block;font-size:10px;letter-spacing:0;font-weight:450;margin-top:5px}.view-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line)}.view-footer p{font-size:10px;color:var(--muted);max-width:300px}.view-presets{display:flex;gap:5px}.scene-note{padding:0 20px 16px;color:var(--muted);font-size:11px}.sidebar{border-left:1px solid var(--line);background:#fff;overflow:hidden}.sidebar-heading{padding:24px 20px 16px}.group-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 14px 17px}.group-button{display:flex;align-items:center;gap:6px;text-align:left;padding:9px 8px;min-height:43px;font-size:11px;border-color:#e1e8e9}.group-button span{font:700 10px/1 ui-monospace,monospace;opacity:.6}.group-button small{font-size:9px;opacity:.7}.selection{border-top:1px solid var(--line);padding:20px}.selection h3{font-size:20px;margin-bottom:10px}.selection p{font-size:12px;line-height:1.65;color:#536d77;margin:10px 0}.selection a{color:var(--accent);font-weight:600;font-size:12px}.selection .tag{display:inline-block;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--accent);padding:3px 6px;background:#eaf4ef;border-radius:4px;margin:0 0 10px}.selection .thumb{display:block;width:100%;height:142px;object-fit:contain;margin-top:13px;border:1px solid var(--line);border-radius:6px;background:#fff}.empty-intro{color:var(--muted);font-size:13px}.loading{position:absolute;inset:0;z-index:5;background:#f6f9f9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:var(--muted)}.loading strong{font-size:14px;color:var(--ink)}.spinner{width:30px;height:30px;border:2px solid #d9e4e3;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading.failed{padding:30px;text-align:center}.loading.failed .spinner{display:none}.loading.failed img{max-height:260px;max-width:100%;object-fit:contain}.catalog{padding:28px 30px 30px}.catalog-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}.catalog-heading label{font-size:11px;font-weight:650;min-width:280px}.catalog input{display:block;width:100%;border:1px solid #becfd2;border-radius:6px;padding:10px 12px;margin-top:5px;font:14px system-ui,sans-serif;color:var(--ink);background:white}.catalog-meta{font-size:12px;color:var(--muted);margin-bottom:10px}.part-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.part{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px;padding:15px;border:1px solid var(--line);border-radius:8px}.part h3{font-size:13px;font-weight:650;margin:7px 0}.part code{font:650 13px ui-monospace,monospace;color:var(--accent);letter-spacing:.1px}.part .meta{font-size:10px;color:var(--muted)}.part a{font-size:10px;color:var(--accent)}.part button{font-size:10px;align-self:center;max-width:110px}.more{margin:18px auto 0;display:block}.sources{display:grid;grid-template-columns:1.25fr 1fr;border-top:1px solid var(--line);gap:35px;padding:28px 30px;background:#f7faf9}.sources h2{font-size:20px}.sources p{font-size:12px;color:#536d77;margin-top:12px;max-width:650px}.document-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:17px}.document-links a{font-size:11px;color:var(--accent);font-weight:650}.contact{border-left:1px solid #d4e3df;padding-left:28px}.contact p.eyebrow{font-size:10px;color:var(--accent);margin-top:0}.contact p{font-size:12px}.contact a.primary{display:inline-block;background:var(--accent);color:#fff;border-color:var(--accent);margin-top:18px;padding:12px 15px}.contact a{color:var(--accent);font-size:12px}footer{padding:18px 30px;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}[hidden]{display:none!important}.viewer:fullscreen{background:#f6f9f9;display:flex;flex-direction:column}.viewer:fullscreen .canvas-wrap{height:calc(100vh - 145px);flex:1}.viewer:fullscreen .toolbar{flex-shrink:0}.viewer:fullscreen .view-footer{flex-shrink:0}
@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr) 255px}.top{padding:24px}.edition{font-size:10px}.canvas-wrap{height:470px}.marker-label{display:none}.sidebar-heading{padding:22px 15px 15px}.group-list{padding:0 10px 15px;gap:5px}.group-button{font-size:10px;padding:8px 6px}.selection{padding:16px}.part-list{grid-template-columns:1fr}.selection .thumb{height:120px}}
@media(max-width:600px){.top{padding:23px 18px;display:block}h1{font-size:31px}.edition{display:none}.workspace{grid-template-columns:1fr}.toolbar{padding:12px;gap:5px}.toolbar button{font-size:10px;padding:8px}.canvas-wrap{height:420px}.sidebar{border-left:0;border-top:1px solid var(--line)}.sidebar-heading{padding:18px 17px 12px}.sidebar-heading h2{font-size:19px}.group-list{grid-template-columns:repeat(3,1fr);padding:0 12px 16px}.group-button{font-size:10px}.selection{display:grid;grid-template-columns:1fr 115px;gap:12px;padding:18px}.selection h3{font-size:18px}.selection .thumb{margin-top:0;height:125px}.selection p{font-size:11px}.view-footer{padding:10px 12px}.view-footer p{font-size:9px;max-width:200px}.view-presets button{font-size:10px;padding:7px}.scene-note{padding:0 13px 14px;font-size:10px}.catalog{padding:24px 17px}.catalog-heading{display:block}.catalog-heading h2{font-size:20px}.catalog-heading label{display:block;margin-top:18px;min-width:0}.part{padding:12px}.part button{max-width:90px}.sources{grid-template-columns:1fr;padding:24px 18px;gap:22px}.contact{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}footer{padding:16px 18px}.marker{padding:3px}.marker-label{display:none}.marker .number{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.spinner{animation:none}}
/* In integrated mode the existing AXRO plugin supplies the only parts UI. */
html[data-catalog=hub] .catalog,html[data-catalog=hub] .sources,html[data-catalog=hub] footer{display:none}
.selection .group-catalog-link{display:block;width:100%;font-size:12px;color:var(--accent);background:#edf6f2;border-color:#95bbb0;margin-top:12px}
.selection .thumb-button{display:block;width:100%;padding:0;margin-top:12px;border:0;background:white}
.selection .thumb-button .thumb{margin:0}
