/* Product and source workspaces. Layout ownership lives here, after the shared brand theme. */
body.site-theme:is([data-page=device],[data-page=diy]) { --site-font:'Instrument Sans',system-ui,sans-serif; }
body.site-theme:is([data-page=device],[data-page=diy]) main h2 { font-size:clamp(28px,3vw,42px)!important; line-height:1.12; text-transform:none!important; letter-spacing:-.035em!important; }
body.site-theme:is([data-page=device],[data-page=diy]) main h2::before { content:none; }
body.site-theme:is([data-page=device],[data-page=diy]) main h2 .gs-dot { display:none; }
body.site-theme[data-page=device] .dossier .dossier-hero { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:48px; padding:56px 0 40px; min-height:0; background:transparent!important; }
body.site-theme[data-page=device] .device-intro h1 { font-size:clamp(48px,5.5vw,80px)!important; line-height:1!important; margin:14px 0 22px; text-transform:none!important; letter-spacing:-.055em!important; }
body.site-theme[data-page=device] .dossier-purpose { font-size:21px; line-height:1.45; max-width:30ch; color:var(--site-paper); }
body.site-theme[data-page=device] .dossier-maker { font-size:12px; letter-spacing:.1em; }
body.site-theme[data-page=device] .dossier-copy { padding:0; }
body.site-theme[data-page=device] .dossier .dossier-art.has-teardown { align-self:center; margin:0; background:none; }
body.site-theme[data-page=device] .hero-teardown .td-slot { height:clamp(450px,66vh,650px); }
body.site-theme[data-page=device] .dossier .dossier-art.has-teardown > figcaption { text-align:center; margin:0; font-size:11px; }
body.site-theme[data-page=device] .dossier-art figcaption summary { margin:auto; font-size:11px; text-transform:none; opacity:.7; }
body.site-theme[data-page=device] .dossier-art figcaption details[open] { max-width:52ch; margin:auto; text-align:left; }
body.site-theme[data-page=device] .dossier .dossier-deal { margin-top:20px; }
body.site-theme[data-page=device] .dossier .dossier-fit { padding:0; }
body.site-theme[data-page=device] .dossier .dossier-shops summary,body.site-theme[data-page=device] .dossier .dossier-fit summary { padding-block:12px; }
body.site-theme[data-page=device] .dossier .dossier-compare { margin-top:8px; }
body.site-theme[data-page=device] .device-evidence { margin-top:12px; font-size:11px; }
body.site-theme[data-page=device] .device-section-nav { position:sticky; top:0; z-index:15; gap:28px; padding:0; margin:0 0 48px; background:#151515f5; backdrop-filter:blur(14px); border-bottom:1px solid var(--site-rule); }
body.site-theme[data-page=device] .device-section-nav a { padding:18px 0; font-size:13px; text-transform:none; white-space:nowrap; }
body.site-theme[data-page=device] .dossier-section { margin:0; padding:12px 0 56px; border:0; }
body.site-theme[data-page=device] .dossier-head { margin-bottom:20px; }
body.site-theme[data-page=device] .dossier-label { font-size:11px; letter-spacing:.06em; }
body.site-theme[data-page=device] .bp-status { margin-bottom:20px; }
body.site-theme[data-page=device] .bp-build-plan { padding:20px 0; margin:0 0 24px; border-block:1px solid var(--site-rule); }
body.site-theme[data-page=device] .bp-build-plan strong { font-size:18px; }
body.site-theme[data-page=device] .bp-grid { gap:32px; }
body.site-theme[data-page=device] .bp-block h3 { font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--site-muted); }
body.site-theme[data-page=device] .bp-file,body.site-theme[data-page=device] .bp-part { font-size:15px; line-height:1.4; }
body.site-theme[data-page=device] .bp-kind,body.site-theme[data-page=device] .bp-format { font-size:10px; }
body.site-theme[data-page=device] .bp-export { border-block:1px solid var(--site-rule); margin-top:24px; }
body.site-theme[data-page=device] .bp-export > summary { padding:16px 0; cursor:pointer; color:var(--site-muted); font-size:13px; }
body.site-theme[data-page=device] .bp-export :is(.bp-agent,.bp-maker) { margin:0; padding:20px 0; font-size:13px; }
body.site-theme[data-page=device] .dossier .device-reference-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:72px; margin:0; padding:32px 0 56px; border-top:1px solid var(--site-rule); }
body.site-theme[data-page=device] .device-specifications,body.site-theme[data-page=device] .device-resources { order:initial; padding:0; }
body.site-theme[data-page=device] .device-section-heading { display:block; margin-bottom:24px; padding:0; }
body.site-theme[data-page=device] .device-section-heading .device-spec-search { width:100%; max-width:none; margin-top:22px; height:44px; padding:0 12px; border:1px solid var(--site-rule)!important; border-radius:8px!important; background:#1c1d1b!important; }
body.site-theme[data-page=device] .device-spec-search input { font-size:14px!important; min-width:0; }
body.site-theme[data-page=device] .device-spec-group summary { padding:18px 0; }
body.site-theme[data-page=device] .device-spec-group h3 { font-size:17px; font-weight:500; }
body.site-theme[data-page=device] .device-spec-group dl { padding:0 0 20px; }
body.site-theme[data-page=device] .device-spec-group dl > div { padding:10px 0; gap:20px; }
body.site-theme[data-page=device] .device-spec-group dt { color:var(--site-muted); font-size:13px; }
body.site-theme[data-page=device] .device-spec-group dd { font-size:14px; }
body.site-theme[data-page=device] .device-resource-list,body.site-theme[data-page=device] .device-leads ul { grid-template-columns:minmax(0,1fr); }
body.site-theme[data-page=device] .device-resources > h2 { margin-bottom:24px; }
body.site-theme[data-page=device] .device-resource-list > a { min-height:76px; padding:14px 0; }
body.site-theme[data-page=device] .device-resource-list strong { font-size:16px; }
body.site-theme[data-page=device] .device-resource-list small { font-size:11px; color:var(--site-muted); }
body.site-theme[data-page=device] .device-repo-list { grid-template-columns:1fr; gap:0; }
body.site-theme[data-page=device] .device-repo-title-group strong { text-transform:none; font-size:20px!important; }
body.site-theme[data-page=device] .device-leads,body.site-theme[data-page=device] .device-community-repos { margin-top:36px; }
body.site-theme[data-page=device] .device-related { padding-top:40px; border-top:1px solid var(--site-rule); }
/* The source page is a file workspace, with a short identity header. */
body.site-theme[data-page=diy] > main { padding-top:12px!important; }
body.site-theme[data-page=diy] .diy-crumb { padding:20px 0; }
body.site-theme[data-page=diy] .diy-hero { grid-template-columns:minmax(0,1fr) 260px; gap:60px; padding:30px 0 48px; align-items:center; }
body.site-theme[data-page=diy] .diy-hero h1 { font-size:clamp(42px,5vw,68px)!important; line-height:1.05!important; text-transform:none!important; }
body.site-theme[data-page=diy] .diy-art { width:260px; height:280px; min-height:0; aspect-ratio:auto; background:none; border:0; border-radius:0; }
body.site-theme[data-page=diy] .diy-art img { display:block; width:100%; height:100%; max-height:280px; object-fit:contain; }
body.site-theme[data-page=diy] .diy-lede { margin-top:14px; font-size:22px; }
body.site-theme[data-page=diy] .diy-meta { margin-top:14px; }
body.site-theme[data-page=diy] .diy-selection { max-width:70ch; margin-top:10px; font-size:13px; }
body.site-theme[data-page=diy] .diy-proof { font-size:11px; max-width:75ch; }
body.site-theme[data-page=diy] .diy-actions { margin-top:20px; }
body.site-theme[data-page=diy] .diy-preview { --rule:var(--site-rule); --dim:var(--site-muted); --cream:var(--site-paper); --yellow:var(--site-yellow); --label:var(--site-font); margin-bottom:40px; }
body.site-theme[data-page=diy] .diy-section-title { align-items:center; }
body.site-theme[data-page=diy] .diy-section-title > a { font-size:13px; color:var(--site-muted); }
body.site-theme[data-page=diy] .diy-coverage { padding:24px 0; }
body.site-theme[data-page=diy] .diy-coverage h2 { font-size:20px!important; }
body.site-theme[data-page=diy] .diy-coverage dl { gap:16px; }
body.site-theme[data-page=diy] .diy-workspace { grid-template-columns:minmax(0,1fr) 280px; gap:64px; padding:48px 0; }
body.site-theme[data-page=diy] .diy-build-notes h2 { font-size:21px!important; line-height:1.2; }
body.site-theme[data-page=diy] .diy-build-notes li { margin-top:8px; font-size:12px; }
body.site-theme[data-page=diy] .diy-search { height:44px; border-radius:8px!important; }
body.site-theme[data-page=diy] .diy-file-filters select { min-height:44px!important; border-radius:8px!important; }
body.site-theme[data-page=diy] .diy-file-copy > a { font-size:16px; }
body.site-theme[data-page=diy] .diy-file-copy > span { font-size:11px; }
/* One frame for editable circuits, PDF sheets and source CAD. */
body.site-theme :is(.dossier,.diy-preview) .bpv { display:flex; flex-direction:column; border:1px solid var(--site-rule); border-radius:10px; overflow:hidden; background:#1b1c1a; }
body.site-theme :is(.dossier,.diy-preview) .bpv-tabs { padding:0 18px; border-bottom:1px solid var(--site-rule); }
body.site-theme :is(.dossier,.diy-preview) .bpv-tabs button { height:52px; text-transform:none; font-size:14px!important; }
body.site-theme :is(.dossier,.diy-preview) .bpv-bar { order:1; padding:10px 18px; min-height:62px; border-top:0; border-bottom:1px solid var(--site-rule); }
body.site-theme :is(.dossier,.diy-preview) .bpv-stage { order:2; height:clamp(380px,49vw,620px); }
body.site-theme :is(.dossier,.diy-preview) .bpv-bar .bpv-status { display:none; }
body.site-theme :is(.dossier,.diy-preview) .bpv-live-pick { flex:1; min-width:0; }
body.site-theme :is(.dossier,.diy-preview) .bpv-pick select { max-width:100%; text-transform:none!important; font-size:14px!important; }
body.site-theme :is(.dossier,.diy-preview) .bpv-source { margin-left:auto; font-size:12px; }
.pdf-viewer { display:flex; flex-direction:column; width:100%; height:100%; min-height:0; background:#dbded7; color:#1e221c; }
.pdf-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:6px; padding:7px 12px; background:#232521; color:#f3f1ea; }
.pdf-toolbar button { min-width:40px; height:36px; min-height:36px!important; border:0; border-radius:6px; background:#ffffff0b; color:inherit; cursor:pointer; }
.pdf-toolbar button:disabled { opacity:.35; }
.pdf-zoom { min-width:46px; text-align:center; font-size:12px; font-variant-numeric:tabular-nums; }
body.site-theme .pdf-toolbar .pdf-sheet { margin-right:auto; width:auto!important; max-width:45%!important; height:36px!important; min-height:36px!important; padding:0 28px 0 8px!important; border:0!important; border-radius:6px!important; background-color:transparent!important; color:#f3f1ea; font-size:12px!important; }
.pdf-scroll { flex:1; overflow:auto; overscroll-behavior:contain; min-height:0; }
.pdf-drawing { display:flex; justify-content:center; align-items:center; padding:16px; min-width:100%; min-height:100%; width:max-content; box-sizing:border-box; }
body.site-theme :is(.dossier,.diy-preview) .bpv-stage .pdf-canvas,.pdf-canvas { position:static; display:block; flex:none; max-width:none; max-height:none; box-shadow:0 2px 10px #0002; cursor:auto; }
body.site-theme dialog.pdf-modal { position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; padding:0; margin:0; border:0; border-radius:0; background:#dbded7; }
.pdf-modal::backdrop { background:#151515; }
html:has(.pdf-modal[open]) { overflow:hidden; }
/* The viewer controls form a single small toolbar, independent of site button skins. */
body.site-theme .td .td-bar { padding:5px; gap:4px; border-radius:999px; background:#1e201ce6; }
body.site-theme .td .td-btn { min-height:40px; height:40px; border-radius:999px; font-size:13px; }
body.site-theme .td .td-round { width:40px; background:transparent; }
body.site-theme .td .td-meter { display:none; }
body.site-theme .td .td-glow { background:none; }
@media(max-width:900px) {
 body.site-theme[data-page=device] .dossier .dossier-hero { gap:24px; padding-top:32px; }
 body.site-theme[data-page=device] .dossier .device-reference-layout { gap:36px; }
 body.site-theme[data-page=diy] .diy-workspace { grid-template-columns:1fr; gap:36px; }
 body.site-theme[data-page=diy] .diy-build-notes { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
}
@media(max-width:700px) {
 body.site-theme[data-page=device] .dossier .dossier-hero { display:flex; flex-direction:column; gap:16px; }
 body.site-theme[data-page=device] .dossier-copy { display:contents; }
 body.site-theme[data-page=device] .device-identity { order:0; width:100%; }
 body.site-theme[data-page=device] .dossier .dossier-art.has-teardown { order:1; width:100%; }
 body.site-theme[data-page=device] .dossier-copy > :not(.device-identity) { order:2; width:100%; }
 body.site-theme[data-page=device] .hero-teardown .td-slot { height:450px; }
 body.site-theme[data-page=device] .device-intro h1 { font-size:48px!important; margin:10px 0 16px; }
 body.site-theme[data-page=device] .dossier-purpose { font-size:18px; }
 body.site-theme[data-page=device] .device-section-nav { gap:24px; margin-bottom:28px; }
 body.site-theme[data-page=device] .dossier .device-reference-layout { grid-template-columns:1fr; gap:48px; }
 body.site-theme[data-page=device] .bp-grid { grid-template-columns:1fr; }
 body.site-theme[data-page=diy] .diy-hero { grid-template-columns:minmax(0,1fr) 76px; gap:12px; padding:18px 0 30px; align-items:start; }
 body.site-theme[data-page=diy] .diy-hero > div { grid-column:1/-1; }
 body.site-theme[data-page=diy] .diy-art { display:none; }
 body.site-theme[data-page=diy] .diy-hero h1 { font-size:46px!important; }
 body.site-theme[data-page=diy] .diy-lede { font-size:18px; }
 body.site-theme[data-page=diy] .diy-build-notes { grid-template-columns:1fr; }
 body.site-theme[data-page=diy] .diy-coverage dl { grid-template-columns:1fr 1fr; gap:20px; }
 body.site-theme :is(.dossier,.diy-preview) .bpv-stage { height:410px; }
 body.site-theme :is(.dossier,.diy-preview) .bpv-tabs { padding:0 10px; }
 body.site-theme :is(.dossier,.diy-preview) .bpv-bar { gap:8px; padding:10px; }
 body.site-theme :is(.dossier,.diy-preview) .bpv-live-pick > span { display:none; }
 .pdf-toolbar { padding:6px; gap:2px; }
 .pdf-toolbar button { min-width:34px; }
 .pdf-zoom { min-width:38px; }
}
.bpv-sheet-poster { display:block; width:100%; max-height:440px; object-fit:contain; background:#fff; }
body.site-theme :is(.dossier,.diy-preview) .bpv:has(.bpv-sheet-poster) .bpv-cover { max-width:100%; width:100%; }
#design-explorer { scroll-margin-top:76px; }
body.site-theme :is(.dossier,.diy-preview) .bpv-live-pick select { appearance:auto!important; background-image:none!important; padding-right:12px!important; }
/* Explicit heading scope prevents legacy all-uppercase template rules leaking into the workspace. */
body.site-theme[data-page=diy] main.diy-page :is(.diy-section-title,.diy-build-notes) h2,
body.site-theme[data-page=device] main.device-page :is(.dossier-head,.device-section-heading,.device-resources,.section-heading) h2 { font-size:clamp(28px,3vw,40px)!important; line-height:1.15!important; text-transform:none!important; letter-spacing:-.035em!important; }
body.site-theme[data-page=diy] main.diy-page .diy-build-notes h2 { font-size:21px!important; }
body.site-theme[data-page=diy] main.diy-page .diy-coverage h2 { font-size:20px!important; }
body.site-theme[data-page=diy] main.diy-page .diy-preview { padding-top:0; margin-top:0; }
body.site-theme[data-page=diy] .diy-preview .bpv-tabs button { border-radius:0!important; box-shadow:none; }
body.site-theme[data-page=diy] .diy-preview .bpv-tabs button[aria-selected=true] { box-shadow:inset 0 -2px var(--site-yellow); }
body.site-theme .td .td-hint { bottom:76px; border:0; background:none; padding:0; font-size:11px; opacity:.65; }

body.site-theme .td:not(.is-immersive) .td-hint { display:none; }
