.dex-intro{border-left:4px solid #64aa91;padding:1rem 1.25rem;background:var(--md-code-bg-color);margin:1.5rem 0}.dex-kicker{letter-spacing:.15em;font-size:.7rem;color:#6fac96;font-weight:700}.dex-tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1.5rem 0}.dex-tools input,.dex-tools select{padding:.65rem;border:1px solid #758c88;background:var(--md-default-bg-color);color:var(--md-default-fg-color);border-radius:4px}.dex-tools input{flex:1;min-width:160px}.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:1rem}.dex-card{border:1px solid #7d969644;border-radius:6px;overflow:hidden;background:var(--md-code-bg-color)}.dex-card[hidden]{display:none}.dex-card img{width:100%;aspect-ratio:1000/820;object-fit:cover;display:block}.dex-card-body{padding:.9rem}.dex-card h3{margin:.25rem 0!important;font-size:1rem}.dex-card p{margin:.4rem 0;font-size:.7rem}.dex-card a{display:block}.dex-badge{font-size:.6rem;letter-spacing:.06em;padding:.15rem .3rem;border:1px solid #879b9a;border-radius:3px}.dex-badge.is-extra{color:#d68f4e}.dex-viewer{border:1px solid #78928c;border-radius:7px;overflow:hidden;margin:1rem 0;background:var(--md-code-bg-color)}.dex-viewer canvas{display:block;width:100%;height:480px;background:linear-gradient(160deg,#e9f1ef,#d5e2e0);touch-action:none}.dex-controls{display:flex;align-items:center;gap:.7rem;padding:.8rem;flex-wrap:wrap}.dex-controls input{flex:1;min-width:100px;accent-color:#39856c}.dex-controls button{padding:.45rem .7rem;background:#315e50;color:white;border-radius:3px;cursor:pointer}.dex-controls output{font-size:.65rem}.dex-status{padding:0 .8rem .8rem;font-size:.7rem}.dex-caption{font-size:.7rem;color:var(--md-default-fg-color--light)}.dex-downloads{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}.dex-downloads a{padding:.6rem .9rem;background:#315e50;color:#fff!important;border-radius:4px}.dex-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.75rem}.dex-static{max-width:650px!important;border-radius:5px} @media(max-width:600px){.dex-viewer canvas{height:350px}.dex-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.dex-card-body{padding:.6rem}.dex-card h3{font-size:.8rem}.dex-controls{gap:.4rem}}
/* Building shop: the model leads; provenance and construction notes stay nearby. */
.md-content:has(.dex-product),.md-content:has(.dex-grid){background:#fff;color:#183348;border-radius:8px;padding:1rem}
.md-content:has(.dex-product) .md-typeset>h1{font-size:1.15rem;border:0;margin-bottom:1rem}
.dex-product{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:1.5rem;align-items:start;margin-bottom:2rem}
.dex-stage{min-width:0}.dex-product .dex-viewer{border:0;border-radius:6px;margin:0;background:#eef1f4}
.dex-product .dex-viewer canvas{height:500px;background:#eef1f4}
.dex-product-info{padding:1rem 0;position:sticky;top:5rem}
.dex-product-info h2{font-size:1.4rem;margin:.4rem 0 1.2rem!important;line-height:1.4;border:0!important}
.dex-product-info p{font-size:.8rem;margin:.4rem 0}
.dex-product-category{color:#53616e;font-size:.7rem!important}
.dex-product .dex-downloads{display:grid;margin:1.5rem 0 .7rem;gap:.5rem}
.dex-product .dex-downloads a{background:#22634f;text-align:center;border-radius:4px;font-size:.8rem}
.dex-product .dex-downloads a.dex-secondary{background:transparent;color:#22634f!important;border:1px solid #b6c5bc}
.dex-render-info{border:0!important;box-shadow:none!important;margin:0!important;font-size:.65rem;color:#53616e;background:transparent!important}
.dex-render-info summary{padding:.45rem .8rem;cursor:pointer;background:transparent!important}
.dex-detail{border:0!important;border-top:1px solid #d9e0e5!important;box-shadow:none!important;background:transparent!important;margin:0!important;padding:.3rem 0}
.dex-detail summary{cursor:pointer;padding:.8rem 0!important;font-weight:600;background:transparent!important;font-size:.85rem}
.dex-detail p,.dex-detail li{font-size:.8rem;line-height:1.8}
.dex-gallery-intro p{font-size:1rem;color:#53616e}
.dex-card{background:#fff;border:0;border-radius:0}.dex-card img{background:#eef1f4;border-radius:5px}
.dex-card-body{padding:.65rem 0 1rem}.dex-card h3{color:#183348;line-height:1.45}.dex-card p{color:#53616e}
.dex-card a:focus-visible,.dex-controls button:focus-visible,.dex-downloads a:focus-visible{outline:3px solid #24806a;outline-offset:3px}
.dex-grid{gap:1.2rem}.dex-controls{font-size:.7rem;gap:.5rem}.dex-controls button{background:#22634f}
@media(max-width:1000px){.dex-product{grid-template-columns:minmax(0,1fr)}.dex-product-info{position:static;padding:0}.dex-product-info h2{margin:.3rem 0 .6rem!important}.dex-product .dex-downloads{grid-template-columns:1fr 1fr;max-width:460px}.dex-product .dex-viewer canvas{height:440px}}
@media(max-width:600px){.md-content:has(.dex-product),.md-content:has(.dex-grid){padding:.4rem}.dex-product{gap:.8rem}.dex-product .dex-viewer canvas{height:350px}.dex-grid{gap:.65rem}}
.dex-variants{border:0;padding:0;margin:1.5rem 0 .75rem;display:flex;flex-wrap:wrap;gap:.4rem}
.dex-variants legend{font-size:.8rem;margin-bottom:.65rem;font-weight:600}
.dex-variants button{border:1px solid #ced6dc;border-radius:4px;padding:.45rem .55rem;background:#fff;color:#183348;cursor:pointer;font-size:.7rem;display:flex;align-items:center;gap:.35rem}
.dex-variants button span{width:18px;height:18px;background:var(--swatch);border-radius:50%;border:1px solid #0002}
.dex-variants button[aria-pressed=true]{border:2px solid #22634f;padding:calc(.45rem - 1px) calc(.55rem - 1px);background:#f0f7f3}
.dex-compare-toggle{font-size:.7rem;color:#22634f;text-decoration:underline;cursor:pointer}
.dex-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}
.dex-comparison[hidden]{display:none}.dex-comparison h3{font-size:.9rem!important;margin:0!important}
.dex-comparison canvas{height:300px;background:#eef1f4}.dex-comparison .dex-controls{font-size:.6rem}
.dex-comparison .dex-viewer{margin-top:.4rem;border:0}.dex-comparison .dex-controls label,.dex-comparison .dex-controls output{display:none}
@media(max-width:600px){.dex-comparison{gap:.5rem}.dex-comparison canvas{height:200px}.dex-comparison .dex-controls{padding:.35rem}.dex-comparison .dex-controls button{padding:.25rem}}
.dex-variants button{flex-direction:column;align-items:center;gap:.25rem;padding:.3rem;width:calc(50% - .25rem)}
.dex-variants button[aria-pressed=true]{padding:calc(.3rem - 1px)}
.dex-variants button img{width:100%;aspect-ratio:720/590;object-fit:contain;background:#eef1f4;border-radius:2px}
.dex-product-info h2,.dex-comparison h3{background:none!important;box-shadow:none!important;padding-left:0!important}
.dex-comparison .dex-viewer{background:#eef1f4}
.dex-detail>summary::before,.dex-detail>summary::after,.dex-render-info>summary::before{display:none!important}
.dex-detail>summary::after{display:inline!important;content:'＋';mask:none;background:none;float:right;position:static;color:#53616e}
.dex-detail[open]>summary::after{content:'−'}
.dex-viewer .dex-preview{display:block;width:100%;height:500px;object-fit:contain;background:#eef1f4}
.dex-viewer:not([data-rendered=true]) canvas{display:none}
.dex-viewer[data-rendered=true] .dex-preview{display:none}
.dex-comparison .dex-preview{height:300px}
@media(max-width:1000px){.dex-product .dex-preview{height:440px}}
@media(max-width:600px){.dex-product .dex-preview{height:350px}.dex-comparison .dex-preview{height:200px}}
/* Product gallery: porcelain surfaces, graphite text and restrained spruce actions.
   All renders show the actual downloadable model; materials never imply a new shape. */
body:has(.dex-grid),body:has(.dex-product){--md-typeset-color:#24313a;--md-default-fg-color:#24313a;--md-default-fg-color--light:#5c6970;--md-typeset-a-color:#285b50;background:#f8fafb;background-image:none}
body:has(.dex-grid) .md-main,body:has(.dex-product) .md-main{background:#f8fafb;background-image:none}
.md-content:has(.dex-grid),.md-content:has(.dex-product){background:transparent;border-radius:0;padding:1rem 1.25rem}
.md-content:has(.dex-grid) .md-typeset>h1,.md-content:has(.dex-product) .md-typeset>h1{font-family:var(--vx-body,system-ui);font-size:1.55rem;letter-spacing:-.035em;color:#24313a;font-weight:700;border:0;background:none;box-shadow:none;padding:0;margin:0 0 1.4rem}
.dex-collection{margin-bottom:2rem;background:#edf1f4;border-radius:12px;overflow:hidden;padding:1.4rem 1.2rem .8rem}
.dex-collection-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0 .4rem}
.dex-collection-heading h2{font-size:1.25rem!important;letter-spacing:-.035em;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.dex-collection-heading p{font-size:.72rem;margin:.45rem 0;color:#5c6970}
.dex-collection-heading>a{font-size:.7rem;white-space:nowrap;color:#285b50;border-bottom:1px solid #285b50}
.dex-finish-lineup{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin-top:.6rem}
.dex-finish-lineup>button{cursor:pointer;font:inherit;border:2px solid transparent;border-radius:8px;padding:.2rem;background:transparent;min-width:0;text-align:center;color:#24313a!important;font-size:.7rem}
.dex-finish-lineup img{display:block;width:100%;aspect-ratio:720/590;object-fit:contain;mix-blend-mode:multiply}
.dex-finish-lineup span{display:flex;justify-content:center;align-items:center;gap:.35rem;margin:.2rem 0 .6rem}
.dex-finish-lineup i,.dex-card-finishes span{display:inline-block;background:var(--swatch);width:.65rem;height:.65rem;border-radius:50%;box-shadow:inset 0 0 0 1px #0002}
.dex-categories{display:flex;gap:1.3rem;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #dce3e6;padding:.2rem 0 .8rem;margin-bottom:1rem;font-size:.8rem}
.dex-categories a{color:#5c6970!important}.dex-categories [aria-current=page]{color:#24313a!important;font-weight:700}
.dex-tools{margin:1rem 0 1.3rem;gap:.5rem}.dex-tools input,.dex-tools select{border:1px solid #d4dde1;border-radius:6px;background:#fff;color:#24313a;font-size:.72rem;padding:.7rem .8rem}
.dex-tools output{font-size:.65rem;color:#5c6970;margin-left:auto}
.dex-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.dex-card{background:transparent}.dex-card img{background:#edf1f4;border-radius:9px;aspect-ratio:1/1;object-fit:contain}
.dex-card-body{padding:.7rem .1rem 1rem}.dex-card h3{font-size:.86rem!important;margin:.2rem 0 .55rem!important;font-weight:600;color:#24313a}
.dex-card-body>p:first-child{font-size:.6rem;margin:0;color:#6c797f}
.dex-card-finishes{display:flex;align-items:center;gap:.25rem}.dex-card-finishes small{margin-left:.2rem;font-size:.6rem;color:#5c6970}
.dex-card .dex-card-size{font-size:.6rem;margin:.35rem 0;color:#6c797f}
.dex-product{grid-template-columns:minmax(0,1fr) 255px;gap:1.6rem}.dex-product .dex-viewer{border-radius:12px;background:#edf1f4}
.dex-product-info h2{font-size:1.4rem;letter-spacing:-.025em;color:#24313a}
.dex-product-info>p{font-size:.7rem}.dex-product-info>a{font-size:.65rem}
.dex-controls{padding:.65rem .8rem;background:#fff;border-top:1px solid #e3e8eb}
.dex-controls button{background:#edf1f4;color:#34474c;padding:.4rem .55rem;border-radius:4px;font-size:.6rem}
.dex-render-info{background:#fff!important}.dex-render-info summary{font-size:.6rem}
.dex-variants{gap:.45rem;margin:1.25rem 0 .75rem}.dex-variants button{border-color:#d9e0e4;border-radius:7px;overflow:hidden;color:#34474c;padding:.3rem;background:#fff}
.dex-variants button[aria-pressed=true]{background:#fff;border-color:#285b50}.dex-variants button img{border-radius:4px}
.dex-compare-toggle{display:block;width:100%;border:1px solid #bdcbc8;border-radius:5px;padding:.65rem;background:#fff;text-decoration:none;font-size:.68rem}
.dex-product .dex-downloads{margin:1rem 0 .6rem}.dex-product .dex-downloads a{border-radius:5px;padding:.7rem;background:#285b50}.dex-product .dex-downloads a.dex-secondary{color:#285b50!important}
.dex-product-info .dex-quality-note{font-size:.6rem;color:#6c797f;margin:.7rem 0}
.dex-comparison section{background:#edf1f4;padding:.7rem;border-radius:9px}.dex-comparison h3{font-size:.75rem!important;color:#24313a}.dex-comparison .dex-preview{mix-blend-mode:multiply}
.dex-detail{border-color:#dce3e6!important}.dex-detail summary{color:#34474c}
.dex-categories a:focus-visible,.dex-finish-lineup button:focus-visible,.dex-variants button:focus-visible,.dex-compare-toggle:focus-visible,.dex-tools input:focus-visible,.dex-tools select:focus-visible{outline:3px solid #377eaa;outline-offset:3px}
@media(max-width:1100px){.dex-product{grid-template-columns:minmax(0,1fr)}.dex-product-info{display:block}.dex-variants{max-width:600px}.dex-variants button{width:calc(25% - .4rem)}.dex-compare-toggle{max-width:600px}}
@media(max-width:700px){.md-content:has(.dex-grid),.md-content:has(.dex-product){padding:.4rem}.dex-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.dex-collection{padding:1rem .6rem}.dex-collection-heading{display:block}.dex-collection-heading>a{display:inline-block;margin-top:.35rem}.dex-finish-lineup{grid-template-columns:repeat(2,minmax(0,1fr))}.dex-categories{gap:1rem;font-size:.7rem}.dex-variants button{width:calc(50% - .25rem)}.dex-card h3{font-size:.75rem!important}}
body:has(.dex-grid) .md-sidebar--secondary,body:has(.dex-product) .md-sidebar--secondary{display:none}
.md-content:has(.dex-grid) .md-typeset>h1::before,.md-content:has(.dex-product) .md-typeset>h1::before{display:none}
.dex-card h3{border:0!important;padding-left:0!important;background:none!important;box-shadow:none!important}

.dex-finish-lineup>button[aria-pressed="true"]{border-color:#285b50;background:#fff}
.dex-palette-status{min-height:1.2em;font-size:.7rem;color:#50646c;margin:.5rem 0 0}
/* Original furniture-catalogue direction: ink, white, blue actions, yellow selection. */
body:has(.dex-shop-shell){--md-typeset-color:#111;--md-typeset-a-color:#174da1;background:#fff;color:#111;font-family:Arial,"Noto Sans TC",sans-serif}
body:has(.dex-shop-shell) .md-main{background:#fff}
body:has(.dex-shop-shell) .md-sidebar{display:none}
body:has(.dex-shop-shell) .md-grid{max-width:1600px}
.dex-shop-shell{display:grid;grid-template-columns:180px minmax(0,1fr);gap:2.4rem}
.dex-shop-nav{align-self:start;position:sticky;top:4rem;border:0!important;box-shadow:none!important;background:#fff!important;margin:0!important;padding:0!important}
.dex-shop-nav summary{font-size:1rem;font-weight:800;background:#fff!important;padding:0 0 .8rem!important;cursor:pointer}
.dex-shop-nav summary:before,.dex-shop-nav summary:after{display:none!important}
.dex-shop-nav nav{display:flex;flex-direction:column;gap:.1rem}
.dex-shop-nav a{color:#222!important;font-size:.7rem;padding:.36rem .5rem;border-radius:4px}
.dex-shop-nav a[aria-current=page]{font-weight:800;background:#ffdb4b}
.dex-shop-nav a:hover{text-decoration:underline;background:#f2f2f2}
.dex-shop-nav p{font-size:.65rem;font-weight:800;margin:1rem .5rem .35rem;color:#666}
/* Shop nav groups (依空間/風格/材質挑選…): collapsed by default, current-page group open.
   Bare nested <details> again needs the mkdocs-material admonition leak stripped explicitly. */
.dex-shop-group{border:0!important;margin:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
.dex-shop-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.65rem;font-weight:800;color:#666;margin:1rem .5rem .35rem;padding:0!important;background:transparent!important;border:0!important}
.dex-shop-group summary::marker,.dex-shop-group summary::-webkit-details-marker{display:none}
.dex-shop-group summary::before,.dex-shop-group summary::after{content:none!important;display:none!important;background:none!important}
.dex-shop-group summary:focus-visible{outline:3px solid #174da1;outline-offset:2px;border-radius:4px}
.dex-shop-group .dex-caret{font-size:.7em;color:#999;transition:transform .15s}
.dex-shop-group[open]>summary .dex-caret{transform:rotate(180deg)}
.dex-shop-group>div{display:flex;flex-direction:column;gap:.1rem}
.md-typeset:has(>.dex-shop-shell){min-width:0}
.md-typeset:has(>.dex-shop-shell)>h1{font-size:2rem!important;font-weight:800!important;letter-spacing:-.045em;color:#111!important;background:none!important;border:0!important;padding:0!important;box-shadow:none!important}
.md-typeset:has(>.dex-shop-shell)>h1:before{display:none!important}
.md-typeset:has(>.dex-shop-shell) .dex-collection{border-radius:0;background:#f4f4f4;padding:1.1rem}
.md-typeset:has(>.dex-shop-shell) .dex-collection-heading h2{font-size:1rem!important}
.md-typeset:has(>.dex-shop-shell) .dex-finish-lineup{max-width:760px}
.md-typeset:has(>.dex-shop-shell) .dex-finish-lineup>button[aria-pressed=true]{border-color:#111;background:#ffdb4b}
.md-typeset:has(>.dex-shop-shell) .dex-card img{background:#f3f3f3;border-radius:0}
.md-typeset:has(>.dex-shop-shell) .dex-card h3{font-weight:800;font-size:1rem!important;color:#111}
.md-typeset:has(>.dex-shop-shell) .dex-card .dex-product-name{font-size:.75rem;color:#333;margin:.2rem 0 .7rem}
.md-typeset:has(>.dex-shop-shell) .dex-card-body>p:first-child{display:none}
.md-typeset:has(>.dex-shop-shell) .dex-tools input{border-radius:28px;background:#f4f4f4;border:0}
.md-typeset:has(>.dex-shop-shell) .dex-tools select{border-radius:28px;border-color:#ddd}
.dex-series-link{display:block;font-size:1.4rem;font-weight:800;color:#111!important}
.md-typeset:has(>.dex-shop-shell) .dex-product-info h2{font-size:.9rem!important;font-weight:400}
.md-typeset:has(>.dex-shop-shell) .dex-product .dex-downloads a{border-radius:30px;background:#174da1;font-weight:700}
.md-typeset:has(>.dex-shop-shell) .dex-product .dex-downloads a.dex-secondary{background:#fff;border-color:#111;color:#111!important}
.md-typeset:has(>.dex-shop-shell) .dex-variants button[aria-pressed=true]{border-color:#111}
.dex-shop-nav a:focus-visible{outline:3px solid #174da1;outline-offset:2px}
@media(max-width:1000px){.dex-shop-shell{grid-template-columns:145px minmax(0,1fr);gap:1.2rem}.md-typeset:has(>.dex-shop-shell) .dex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dex-shop-shell{display:block}.dex-shop-nav{position:static;margin-bottom:1rem!important;border-bottom:1px solid #ddd!important;padding-bottom:.5rem!important}.dex-shop-group>div{display:grid;grid-template-columns:1fr 1fr}.md-typeset:has(>.dex-shop-shell)>h1{font-size:1.5rem!important}}
.md-typeset:has(>.dex-shop-shell) .dex-finish-lineup img{mix-blend-mode:normal}
.md-typeset:has(>.dex-shop-shell) .dex-finish-lineup>button[aria-pressed=true]{background:#fff;border-color:#111;box-shadow:0 4px 0 #ffdb4b}
.dex-shop-nav nav{padding:0;border:0}

.dex-shop-shell{display:none}
.md-typeset:has(>.dex-shop-shell){position:relative;padding-left:215px;min-height:800px}
.md-typeset:has(>.dex-shop-shell)>.dex-shop-nav{position:absolute;left:0;top:0;width:180px}
@media(max-width:1000px){.md-typeset:has(>.dex-shop-shell){padding-left:170px}.md-typeset:has(>.dex-shop-shell)>.dex-shop-nav{width:145px}}
@media(max-width:700px){.md-typeset:has(>.dex-shop-shell){padding-left:0}.md-typeset:has(>.dex-shop-shell)>.dex-shop-nav{position:static;width:auto}}
.md-typeset:has(>.dex-shop-shell){display:flow-root;min-height:0}
.md-typeset:has(>.dex-shop-shell)>.dex-shop-nav{position:static;float:left;margin-left:-215px!important}
@media(max-width:1000px){.md-typeset:has(>.dex-shop-shell)>.dex-shop-nav{margin-left:-170px!important}}
@media(max-width:700px){.md-typeset:has(>.dex-shop-shell)>.dex-shop-nav{float:none;margin-left:0!important}}
body:has(.dex-shop-shell) .md-header__button[for="__drawer"]{display:none}
.dex-material-palette{display:flex;gap:.5rem;margin:1rem 0}
.dex-material-palette i{display:block;width:48px;height:48px;border-radius:50%;border:1px solid #0002}
.dex-series-hero>h2{font-weight:800;background:none!important;border:0!important;padding-left:0!important;box-shadow:none!important}
.dex-series-hero .dex-viewer canvas,.dex-series-hero .dex-preview{height:440px}
.dex-series-hero>p{max-width:65ch;font-size:.8rem}
.dex-scene-download{display:inline-block;background:#174da1;color:white!important;padding:.65rem 1.2rem;border-radius:24px;font-weight:700;font-size:.75rem}
.dex-series-links .dex-series-link{display:inline-block;font-size:.85rem;margin:0 .7rem .5rem 0}
@media(max-width:700px){.dex-series-hero .dex-viewer canvas,.dex-series-hero .dex-preview{height:300px}}
.dex-series-hero .dex-viewer{border:0;border-radius:0;background:#f3f3f3}
.dex-series-hero .dex-viewer canvas{background:#f3f3f3}
/* Manual scene browsing keeps each schematic and download in its own slide. */
.dex-carousel{margin:1.4rem 0 2rem;min-width:0}
.dex-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.7rem}
.dex-carousel-controls button,.dex-carousel-dots button{cursor:pointer;border:1px solid #bac9c4;background:#fff;color:#285b50;border-radius:5px;padding:.55rem .75rem;font:inherit;font-size:.7rem}
.dex-carousel-controls button:disabled{opacity:.45;cursor:default}
.dex-carousel-controls [data-carousel-count]{margin:0;font-size:.75rem;text-align:center;color:#34474c}
.dex-carousel-slide[hidden]{display:none!important}
.dex-carousel-slide{min-width:0}.dex-carousel-slide>h2,.dex-carousel-slide>h3{margin:.5rem 0!important}
.dex-carousel-slide .dex-viewer{margin:.7rem 0}.dex-carousel-slide>p{max-width:68ch;font-size:.78rem;line-height:1.7}
.dex-carousel-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}
.dex-carousel-dots button{min-width:2rem;padding:.4rem .6rem}
.dex-carousel-dots button[aria-pressed=true]{color:#fff;background:#285b50;border-color:#285b50}
.dex-carousel button:focus-visible{outline:3px solid #377eaa;outline-offset:3px}
@media(max-width:600px){.dex-carousel-controls{gap:.35rem}.dex-carousel-controls button{padding:.5rem .6rem;white-space:nowrap}.dex-carousel-controls [data-carousel-count]{font-size:.65rem}.dex-carousel .dex-preview,.dex-carousel canvas{height:330px}}
/* Plot dimensions constrain genuine whole houses, independently of room/style. */
.dex-footprint{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem 1rem;margin:.8rem 0 1.2rem;padding:.85rem 1rem;border:1px solid #d4dde1;border-radius:7px;background:#fff;color:#34474c;font-size:.72rem}
.dex-footprint label{display:inline-flex;align-items:center;gap:.4rem}
.dex-footprint input[type=number]{width:5.5rem;max-width:100%;padding:.45rem .55rem;border:1px solid #bdcbc8;border-radius:4px;background:#fff;color:#24313a;font:inherit}
.dex-footprint input[type=checkbox]{accent-color:#285b50;width:1rem;height:1rem}
.dex-footprint input[aria-invalid=true]{border:2px solid #b33636}
.dex-footprint input:focus-visible{outline:3px solid #377eaa;outline-offset:2px}
.dex-footprint #dex-footprint-status{flex-basis:100%;font-size:.65rem;color:#5c6970}
.dex-footprint #dex-footprint-status[data-error=true]{color:#a32929;font-weight:600}
@media(max-width:600px){.dex-footprint{padding:.7rem;gap:.6rem}.dex-footprint label{flex-wrap:wrap}.dex-footprint input[type=number]{width:4.5rem}}

/* Optional plot-size controls stay compact until requested. */
.dex-footprint-toggle{margin:.8rem 0 1.2rem;font-size:.72rem;color:#34474c}
.dex-footprint-toggle>summary{cursor:pointer;width:fit-content;padding:.45rem 0;font-weight:600}
.dex-footprint-toggle>summary:focus-visible{outline:3px solid #377eaa;outline-offset:3px}
.dex-footprint-toggle .dex-footprint{margin:.4rem 0 0}
.md-typeset details.dex-footprint-toggle{border:0;background:transparent;box-shadow:none;padding:0;color:#34474c}
.md-typeset details.dex-footprint-toggle>summary{margin:0;padding:.45rem 1.5rem .45rem 0;background:transparent;font-size:.72rem}
.md-typeset details.dex-footprint-toggle>summary::before{display:none}
.md-typeset details.dex-footprint-toggle>summary::after{right:0;left:auto}

/* Materials: one split button — primary "材料清單" action + compact "CSV ▾" download disclosure.
   .dex-material-menu is a bare <details>; explicit resets below strip mkdocs-material's generic
   .md-typeset details/summary admonition styling (blue border/bg, note icon, chevron) which would
   otherwise leak onto it since it carries no .admonition class of its own. */
.dex-material-split{display:flex;align-items:stretch;border:1px solid #17222a;border-radius:30px;background:#fff;color:#17222a;min-width:0;box-sizing:border-box;overflow:hidden}
.dex-material-split:has(.dex-material-menu[open]){overflow:visible}
.dex-material-split>button{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;border:0;margin:0;padding:.6rem 1rem;cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;background:transparent;color:inherit;border-radius:30px 0 0 30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;height:100%}
.dex-material-menu{position:relative;display:flex;flex-shrink:0;align-self:stretch;height:100%;box-sizing:border-box;border:0!important;border-left:1px solid #ccc!important;margin:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
.dex-material-menu summary{list-style:none;display:flex;align-items:center;gap:.3rem;cursor:pointer;padding:.6rem .8rem!important;margin:0!important;min-height:0;height:100%;box-sizing:border-box;font-size:.72rem;font-weight:700;background:transparent!important;border:0!important;border-radius:0 30px 30px 0!important;white-space:nowrap}
.dex-material-menu summary::marker,.dex-material-menu summary::-webkit-details-marker{display:none}
.dex-material-menu summary::before,.dex-material-menu summary::after{content:none!important;display:none!important;background:none!important}
.dex-material-menu .dex-caret{font-size:.7em;line-height:1;transition:transform .15s}
.dex-material-menu[open] .dex-caret{transform:rotate(180deg)}
.dex-material-menu>div{position:absolute;right:0;top:calc(100% + 6px);min-width:150px;background:#fff;padding:6px;border:1px solid #ddd;border-radius:10px;box-shadow:0 5px 18px #0002;z-index:8}
.dex-product .dex-material-menu a[data-material-download]{display:block;background:#fff!important;color:#17222a!important;border-radius:6px!important;white-space:nowrap;font-size:.75rem;padding:.5rem .6rem}
.dex-material-menu a:hover,.dex-material-split>button:hover,.dex-material-menu summary:hover{background:#f0f2f3!important}
.dex-material-split :focus-visible,.dex-material-dialog button:focus-visible{outline:3px solid #174da1;outline-offset:2px}
@media(max-width:400px){.dex-material-split>button{padding:.55rem .6rem;font-size:.72rem}.dex-material-menu summary{padding:.55rem .55rem!important;font-size:.68rem}}
.dex-material-dialog{width:min(720px,calc(100vw - 32px));max-height:85dvh;box-sizing:border-box;padding:24px;border:0;border-radius:16px;background:#fff;color:#17222a;box-shadow:0 20px 70px #0004}
.dex-material-dialog::backdrop{background:#0008}
.dex-material-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.dex-material-dialog h2{font-size:22px;margin:0 0 8px;font-weight:700}
.dex-material-dialog p{font-size:14px;margin:8px 0 16px}
.dex-material-dialog [data-close]{font-size:28px;width:40px;height:40px;border-radius:50%;background:#f1f3f4;cursor:pointer;flex-shrink:0}
.dex-material-scroll{max-height:55dvh;overflow:auto}
.dex-material-dialog table{width:100%;border-collapse:collapse;font-size:14px}
.dex-material-dialog th,.dex-material-dialog td{text-align:left;padding:12px 8px;border-bottom:1px solid #e3e7e9}
.dex-material-dialog th{position:sticky;top:0;background:#f3f5f6}
.dex-material-dialog td:first-child{overflow-wrap:anywhere}.dex-material-dialog td:last-child,.dex-material-dialog th:last-child{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:500px){.dex-material-dialog{padding:16px}.dex-material-dialog th,.dex-material-dialog td{padding:10px 5px;font-size:12px}}

/* Part <-> building cross-reference: the composed pairing shot and its caption. */
.dex-pairing{margin:1rem 0;border:1px solid #7d969644;border-radius:6px;overflow:hidden;background:var(--md-code-bg-color)}
.dex-pairing img{display:block;width:100%;height:auto}
.dex-pairing figcaption{padding:.75rem .9rem;font-size:.75rem;line-height:1.7;color:var(--md-default-fg-color--light)}
.dex-pairing figcaption strong{color:var(--md-default-fg-color)}
