:root{--paper:#e8e4df;--paper-soft:#edeae6;--paper-deep:#d5d0ca;--ink:#1a1a1a;--muted:#6b6560;--line:rgba(26,26,26,.14);--accent:#c0392b;--mark:#f5e642;--sans:'Courier New','PingFang SC','Microsoft YaHei',monospace}
[hidden]{display:none!important}body{color:var(--ink);font-family:var(--sans);background:var(--paper)}button,input,select,textarea{font-family:inherit!important;border-radius:0!important}button:focus-visible,a:focus-visible,input:focus-visible{outline-color:var(--accent)}
#loading{z-index:5;gap:12px;background:#edeae6b3}#loading:empty{display:none}#stage[data-loading=true] canvas{opacity:.38}.preview:has(#stage[data-loading=true]) .assembly-status{visibility:hidden}
body.workbench{height:100dvh;overflow:hidden}.workbench .header{height:58px;padding:0 20px;gap:22px;background:var(--paper);border-color:var(--line)}.back-library{font-size:11px;white-space:nowrap}.work-brand{font-size:16px;font-weight:bold;letter-spacing:-.7px;border-left:1px solid var(--line);padding-left:20px}.work-title{flex:1;min-width:0}.work-title h2{font-size:12px;font-weight:400;margin:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.session-label{font-size:9px;color:var(--muted);letter-spacing:1px}.workbench main{max-width:none;height:calc(100dvh - 58px);padding:0;margin:0}.workbench .workspace{height:100%;width:100%;grid-template-columns:68px minmax(0,1fr) 390px;border:0;align-items:stretch;background:var(--paper-soft)}
.tool-rail{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--paper);z-index:4;padding:14px 7px;gap:6px}.tool-rail button{border:0;background:none;font-size:10px;padding:12px 0;display:flex;align-items:center;flex-direction:column;gap:6px;color:var(--muted)}.tool-rail button>span{font:20px Georgia,serif;height:24px}.tool-rail button[aria-pressed=true]{background:var(--ink);color:var(--paper-soft)}.tool-rail a{margin-top:auto;text-align:center;font-size:22px;padding:10px}.tool-rail small{display:block;font-size:9px;margin-top:5px}.tool-rail button:hover{box-shadow:inset 3px 0 var(--accent)}
.workbench .preview{position:relative;top:auto;height:100%;max-height:none;overflow:hidden;align-self:stretch;background:var(--paper-soft);min-width:0}.workbench .preview .stage-wrap{height:auto;min-height:0;flex:1 1 0;background:var(--paper-soft)}.workbench .preview-heading{padding:22px 26px;font-size:10px;z-index:2}.workbench .live-dot{background:var(--accent)}.workbench .stage-toolbar{padding:10px 22px 0;margin:0;flex-wrap:wrap;flex-direction:row;align-items:center}.workbench .segmented{border-color:var(--line)}.workbench .segmented button[aria-pressed=true]{background:var(--paper-deep)}.workbench .views{margin:0;align-self:auto}.workbench .views button[aria-pressed=true]{color:var(--accent)}.workbench .compose-toolbar{padding:10px 22px 15px;gap:5px;order:4}.workbench .preview-caption{padding:0 24px 12px;margin:0;gap:4px;flex-direction:row;order:5;font-size:9px;flex-wrap:wrap;color:var(--muted)}.workbench #render-note{display:none}.workbench #combination-detail{margin:0 0 0 auto;font-size:9px}.viewport-mark{position:absolute;bottom:164px;right:24px;pointer-events:none;font-size:9px;letter-spacing:2px;color:#1a1a1a30}.assembly-status{position:absolute;left:24px;bottom:18px;font-size:10px;color:var(--muted);max-width:75%;pointer-events:none}.assembly-status.warning{color:var(--accent)}
.workbench .controls{padding:0;min-height:0;height:100%;max-height:none;display:flex;flex-direction:column;background:var(--paper);border-left:1px solid var(--line);overflow:hidden}.inspector-heading{padding:24px 22px 18px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:10px;flex:none}.inspector-heading>div{flex:1}.inspector-heading h1{font-size:20px;letter-spacing:0;margin:9px 0 8px;line-height:1.3}.inspector-heading p{font-size:10px;color:var(--muted);line-height:1.7;margin:0}.inspector-heading .view-link{font-size:9px;margin-top:4px;color:var(--muted);white-space:nowrap}.inspector-scroll{overflow:auto;flex:1;min-height:0;padding:0 22px 25px;scrollbar-width:thin;overscroll-behavior:contain}.workbench .editor-modules{padding:0;border:0}.workbench .editor-modules>details{border:0}.workbench .tool-panel>summary{display:none}.workbench .module-body{padding-top:10px}.workbench .control-section{padding:22px 0;border-bottom:1px solid var(--line)}.workbench .section-title h2{color:var(--ink)}.workbench .section-title h2>span,.workbench .section-title>span{color:var(--muted)}
.workbench .selection-context{flex:none;border-bottom:1px solid var(--line);background:var(--paper-soft)}.workbench .map-panel{border:0;padding:8px 16px 12px}.workbench .map-panel .panel-row{padding:4px 0;gap:5px;font-size:10px;color:var(--ink)}.workbench .map-panel .panel-row>div{white-space:nowrap}.workbench #key-map{width:min(100%,calc(180px * var(--map-ratio,3)));max-height:none;min-height:0;margin:8px auto}.workbench .map-key{font-size:7px;border-width:1px;border-color:var(--paper-soft);border-radius:3px!important;background:#f6f3ed;color:var(--ink);box-shadow:inset 0 0 0 1px #bbb3a9}.workbench .map-key[aria-pressed=true]{background:var(--mark);box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}.workbench .region-buttons{gap:3px}.workbench .region-buttons .studio-button{padding:5px;font-size:9px;min-height:0}.workbench .selection-command{margin-top:8px}.workbench .map-panel>.fine-print{display:none}.workbench #project-colors:empty{display:none}
.workbench .studio-button,.workbench .outline-button,.workbench .palette-color{border:1px solid var(--line);color:var(--ink);background:var(--paper-soft);font-size:11px;padding:9px 10px}.workbench .studio-button:hover,.workbench .outline-button:hover{background:var(--paper-deep)}.workbench .studio-button[aria-pressed=true],.workbench .primary-button{background:var(--ink);color:var(--paper-soft);border-color:var(--ink)}.workbench #header-save{background:var(--ink);color:var(--paper);padding:10px 17px}.workbench .field{color:var(--muted);font-size:11px}.workbench .field input:not([type=checkbox]),.workbench .field select,.workbench .field textarea,.workbench .tray-filter input,.workbench .tray-filter select,.workbench .selection-command>input,.workbench .panel-section select{background:#f4f1ec;color:var(--ink);border:1px solid #bdb6ae}.workbench input[type=range]{accent-color:var(--accent)}.workbench .fine-print{color:var(--muted)}.workbench .product{border-color:var(--line);color:var(--ink);background:none}.workbench .product[aria-pressed=true]{border-color:var(--ink);background:#f5f2eb;box-shadow:inset 3px 0 var(--accent)}.workbench .product:hover{background:var(--paper-soft)}.workbench .product small,.workbench .product .check{color:var(--muted)}.workbench .layout-options button{border-color:var(--line);color:var(--ink)}.workbench .layout-options button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.workbench .cap-tile{background:#f5f2ec;border-color:var(--line);color:var(--ink)}.workbench .cap-tile small,.workbench .cap-tile span{color:var(--muted)}.workbench .cap-tile[aria-pressed=true]{background:#f2ecc7;border-color:var(--ink)}.workbench .cap-tray{max-height:none;overflow:visible}.workbench .upload-label{color:var(--ink);border-color:#aaa29a;background:var(--paper-soft)}.workbench .fit-note{margin-top:20px;border-color:var(--line)}.workbench #product-link{display:block;font-size:11px;margin:18px 0;text-decoration:underline}.workbench .more-layouts summary,.workbench .view-link,.workbench .typing-bar{color:var(--muted)}.workbench #export,.workbench #export-clean,.workbench #share{width:100%;margin-top:10px;text-align:center}.workbench .typing-panel{background:#edeae6f5;border-color:var(--line);top:60px;left:24px;right:24px;padding:20px;max-width:700px;margin:auto}.workbench .typing-panel p,.workbench .typing-panel textarea{color:var(--ink)}.workbench .typing-panel textarea{background:#f9f6ef;border-color:var(--line)}.workbench #full-tray{background:var(--paper);color:var(--ink);border-color:var(--line)}#toast{background:var(--ink);z-index:30}.inspector-hidden .workspace{grid-template-columns:68px minmax(0,1fr)}.inspector-hidden .controls{display:none}#show-inspector{position:absolute;right:20px;top:60px;z-index:3}
@media(max-width:1000px){.workbench .workspace{grid-template-columns:58px minmax(0,1fr) 330px}.workbench .header{padding:0 12px;gap:14px}.session-label{display:none}.inspector-heading{padding:20px 16px 15px}.inspector-scroll{padding:0 16px 20px}.workbench .map-panel{padding-inline:10px}.workbench .compose-toolbar{padding-inline:14px}.workbench .stage-toolbar{padding-inline:14px}.workbench .work-brand{font-size:13px;padding-left:12px}.workbench .products{display:flex}.workbench .product{display:flex}.workbench .product img{width:45px;height:45px}}
@media(max-width:700px){.workbench .header{height:50px;gap:10px}.workbench .work-brand{display:none}.work-title h2{font-size:10px}.back-library{font-size:10px}.workbench #header-save{font-size:10px;padding:8px}.workbench main{height:calc(100dvh - 50px)}.workbench .workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:46px minmax(210px,42%) minmax(0,1fr)}.tool-rail{flex-direction:row;border-right:0;border-bottom:1px solid var(--line);padding:4px 8px;gap:4px}.tool-rail button{flex:1;flex-direction:row;gap:5px;justify-content:center;font-size:10px;padding:5px 0}.tool-rail button>span{font-size:15px;height:auto}.tool-rail a{display:none}.workbench .preview{grid-row:2}.workbench .controls{grid-row:3;border-left:0;border-top:1px solid var(--line)}.workbench .preview-heading{padding:12px 15px;font-size:9px}.workbench .preview .stage-wrap{min-height:0}.workbench .stage-toolbar{padding:4px 9px;gap:5px;flex-wrap:nowrap;justify-content:center}.workbench .segmented{padding:1px;gap:0;flex-shrink:0}.workbench .segmented button{font-size:9px;padding:5px}.workbench .views{gap:0}.workbench .views button{font-size:9px;padding:4px}.workbench .compose-toolbar{padding:2px 10px 7px;justify-content:center;gap:3px}.workbench .compose-toolbar .studio-button{font-size:9px;padding:5px;min-height:0}.workbench .preview-caption{display:none}.viewport-mark{bottom:86px;font-size:7px;right:14px}.assembly-status{font-size:9px;left:14px;bottom:8px}.inspector-heading{padding:12px 14px}.inspector-heading h1{font-size:15px;margin:0}.inspector-heading .eyebrow,.inspector-heading p{display:none}.inspector-heading .view-link{margin:0}.workbench .selection-context{max-height:230px;overflow:auto}.workbench #key-map{max-width:350px;width:min(100%,calc(120px * var(--map-ratio,3)))}.workbench .field input,.workbench .field select,.workbench .field textarea{font-size:14px!important}.workbench .cap-tray{grid-template-columns:repeat(4,1fr)}.workbench .typing-panel{top:35px;left:8px;right:8px;padding:10px}.workbench .typing-panel p{font-size:10px}.workbench .typing-bar{font-size:9px}.inspector-hidden .workspace{grid-template-columns:1fr;grid-template-rows:46px minmax(0,1fr)}.inspector-hidden .preview{grid-row:2}.workbench .preview:fullscreen{padding:0}.workbench .preview:fullscreen .stage-wrap{min-height:0}}

.deskmat-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:46vh;overflow:auto;padding:2px}.deskmat-option{border:1px solid var(--line,#c9c7be);background:transparent;padding:6px;cursor:pointer;text-align:left;color:inherit;min-width:0}.deskmat-option[aria-pressed="true"]{outline:2px solid #a84b36;outline-offset:-2px;background:#e9e4d7}.deskmat-option img{display:block;width:100%;height:auto;aspect-ratio:2.25;object-fit:contain;margin-bottom:6px}.deskmat-option span{font-size:12px;line-height:1.5;display:block}.deskmat-option small{display:block;font-size:10px;color:#8c5847}.deskmat-none{min-height:70px;display:grid!important;place-content:center}.deskmat-option[hidden]{display:none}

.environment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.environment-card{padding:5px;background:var(--paper-soft);border:1px solid var(--line);text-align:left;min-width:0;color:var(--ink);cursor:pointer}.environment-card img,.studio-swatch{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:7px}.studio-swatch{background:linear-gradient(145deg,#ece9e1,#c9c6bd);position:relative}.studio-swatch:after{content:'';position:absolute;width:55%;height:25%;left:22%;top:45%;background:#b4b0a6;box-shadow:0 9px 16px #0002;transform:skewX(-12deg)}.environment-card strong{display:block;font-size:12px;font-weight:400}.environment-card small{display:block;font-size:9px;color:var(--muted);line-height:1.6;margin-top:4px}.environment-card[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:-2px;background:#eee7dc}.scene-section-title{font-size:12px;font-weight:400;letter-spacing:1px;margin:18px 0 12px}.presentation-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.environment-picker hr{border:0;border-top:1px solid var(--line);margin:20px 0}#scene-reference-dialog{max-width:min(1100px,94vw);max-height:94dvh;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:18px}#scene-reference-dialog img{display:block;width:100%;height:auto;max-height:75vh;object-fit:contain}#scene-reference-dialog h2{font-size:14px}#scene-reference-dialog::backdrop{background:#171712ad}

.lighting-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.light-preset{padding:10px;text-align:left;background:var(--paper-soft);border:1px solid var(--line);color:var(--ink);cursor:pointer}.light-preset strong{display:block;font-size:11px;font-weight:400}.light-preset small{display:block;font-size:9px;line-height:1.6;margin-top:5px;color:var(--muted)}.light-preset[aria-pressed=true]{background:var(--ink);color:var(--paper-soft)}.light-preset[aria-pressed=true] small{color:#c7c1b5}

.pose-controls{display:flex;gap:5px;position:relative}.pose-controls #floating-pose-menu{position:absolute;bottom:calc(100% + 8px);left:0;min-width:170px;z-index:20;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);box-shadow:0 8px 30px #0002;padding:6px}.pose-controls [role=menuitem]{padding:11px 15px;text-align:left;color:var(--ink);background:transparent;border:0;font:inherit;font-size:12px;cursor:pointer}.pose-controls [role=menuitem]:hover{background:var(--paper-deep)}.workbench .compose-toolbar{flex-wrap:wrap}.shaft-toggle{margin-top:14px}

/* Current-set presets precede optional manual editing. */
.workbench #same-set-presets{padding:7px 0 17px;border-bottom:1px solid var(--line)}
.workbench #same-set-presets h2{font-size:13px;margin:0 0 9px;font-weight:600}
.workbench .cap-preset{text-align:left;padding:10px;min-height:60px}
.workbench .cap-preset b{display:block;font-size:11px;font-weight:500}
.workbench .cap-preset small{display:block;font-size:9px;color:var(--muted);margin-top:6px;line-height:1.4}
.workbench .cap-preset:disabled{cursor:default;opacity:.42}
.workbench .manual-key-selection{border-bottom:1px solid var(--line);margin-bottom:17px}
.workbench .manual-key-selection>summary{display:block;padding:14px 0;font-size:11px;color:var(--ink);cursor:pointer}
.workbench .manual-key-selection>summary:before{content:'＋ ';color:var(--muted)}
.workbench .manual-key-selection[open]>summary:before{content:'－ '}
.workbench .manual-key-selection .map-panel{padding:0 0 15px}
.workbench .tray-heading{font-size:12px;font-weight:500;margin:0 0 9px}
.workbench .selection-context:empty{display:none}
.workbench .layout-group-title{font-size:11px;font-weight:500;margin:16px 0 9px;color:var(--muted)}
.workbench .source-layout-section{margin-top:18px}
.workbench #source-layouts{grid-template-columns:repeat(2,minmax(0,1fr))}
.workbench #source-layouts button{font-size:10px;padding:10px 6px}

.workbench .cap-preset[aria-pressed=true] small{color:var(--paper-soft)}

.workbench .products{max-height:300px;overflow-y:auto;scrollbar-width:thin;padding-right:4px}
.workbench .products .product[hidden]{display:none}
.workbench .product-filters{display:flex;gap:6px;margin:12px 0}
.workbench .product-filters input,.workbench .product-filters select{min-width:0;padding:9px;border:1px solid var(--line);background:var(--paper-soft);color:var(--ink);font-size:11px}
.workbench .product-filters input{flex:1}.workbench .product-filters select{width:108px}
.workbench #product-copyright{font-size:9px;line-height:1.6}.workbench #product-region{color:var(--accent)}
#design-reference{max-width:95vw;max-height:94dvh;width:1050px;background:#eeebe5;border:1px solid #9c948a;color:#29251f;padding:20px;overflow:auto}
#design-reference h2{font-size:15px;margin:0}#design-reference-image{display:block;width:100%;height:auto;margin:16px auto}#design-reference-copyright{font-size:11px}
.workbench #source-layouts{max-height:360px;overflow:auto;overscroll-behavior:contain;align-content:start}
.workbench .product img{aspect-ratio:1;object-fit:contain}

/* Simple hardware-only colour controls. */
.hardware-colors[hidden]{display:none!important}.hardware-colors fieldset{border:0;padding:0;margin:18px 0}.hardware-color-heading{display:flex;gap:10px;align-items:center;margin-bottom:10px;font-size:12px}.hardware-color-heading output{font:10px monospace;color:var(--muted,#888)}.hardware-color-heading button{margin-left:auto}.hardware-swatches{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.hardware-swatch{width:26px;height:26px;background:var(--swatch);border:1px solid #0003;box-shadow:0 0 0 3px transparent;cursor:pointer}.hardware-swatch[aria-pressed="true"]{outline:1px solid #8c563d;outline-offset:3px}.hardware-custom{position:relative;width:36px;height:28px;display:grid;place-items:center;border:1px solid #bbb;font-size:10px;cursor:pointer;overflow:hidden}.hardware-custom input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.hardware-colors fieldset:disabled{opacity:.4}.hardware-colors fieldset:disabled button,.hardware-colors fieldset:disabled input{cursor:default}

/* Switch LEDs are a scene light; source cap colours remain fixed. */
.backlight-picker{margin-block:22px;padding-block:18px;border-block:1px solid var(--line,#d1ccc4)}
.backlight-colours{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-block:12px}
.backlight-colours button{display:grid;justify-items:center;gap:6px;padding:10px 3px;border:1px solid #cbc6bd;background:transparent;color:inherit;font:inherit;font-size:11px;cursor:pointer}
.backlight-colours button i{display:block;width:18px;height:18px;border-radius:50%;background:var(--led-colour);box-shadow:0 0 7px var(--led-colour)}
.backlight-colours button[aria-pressed="true"]{border-color:#9a643e;background:#ffffff55}
.backlight-colours button:disabled{opacity:.4;cursor:default}
#backlight-quick-toggle[aria-pressed="true"]{background:#272923;color:#f5f2e9;border-color:#272923}

/* Measured asset transfer, followed by explicit preparation phases. */
#loading{flex-direction:column;background:#edeae6df;backdrop-filter:blur(3px);padding:24px;z-index:6}
body:not(.workbench) #loading{position:fixed;z-index:50}
.loading-card{width:min(340px,100%);text-align:left;color:var(--ink);font-family:var(--sans)}
.loading-eyebrow{font-size:9px;letter-spacing:2px;color:var(--muted)}
.loading-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:16px 0 13px;font-size:13px;min-height:20px}
.loading-percent{font-size:15px;font-variant-numeric:tabular-nums}.loading-track{height:4px;overflow:hidden;background:#1a1a1a18}
.loading-track i{display:block;width:35%;height:100%;background:var(--accent);transition:width .15s linear}
.loading-track.indeterminate i{animation:loading-sweep 1.4s ease-in-out infinite}
.loading-detail{font-size:10px;min-height:16px;margin-top:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.loading-hint{font-size:10px;color:var(--muted);line-height:1.8;margin:12px 0 0}
@keyframes loading-sweep{0%{transform:translateX(-110%)}100%{transform:translateX(300%)}}
@media(prefers-reduced-motion:reduce){.loading-track.indeterminate i{animation:none;opacity:.6}.loading-track i{transition:none}}
/* Keep an exit control inside the fullscreen element, independent of model controls. */
.workbench #exit-fullscreen{position:absolute;z-index:20;right:max(14px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));min-height:44px;padding:10px 16px;background:var(--paper);box-shadow:0 2px 10px #0001;font-size:12px}
.workbench .preview:fullscreen,.preview-expanded.workbench .preview{display:flex;flex-direction:column;width:100%;height:100%;max-height:none;min-height:0;background:var(--paper-soft);padding:0 0 env(safe-area-inset-bottom)}
.preview-expanded.workbench .preview{position:fixed;inset:0;z-index:100;height:100dvh}
.preview[data-fullscreen=true] .preview-heading{padding-top:max(18px,env(safe-area-inset-top));padding-right:170px}
.preview[data-fullscreen=true] #show-inspector{display:none}
.mobile-preview-tools{display:contents}.mobile-preview-tools>summary{display:none}.mobile-preview-tools>div{display:contents}
@media(max-width:700px), (max-height:500px) and (pointer:coarse){
 .workbench .header{height:calc(50px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .workbench main{height:calc(100dvh - 50px - env(safe-area-inset-top))}
 .workbench .workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(240px,52%) minmax(0,1fr) calc(58px + env(safe-area-inset-bottom))}
 .workbench .tool-rail{grid-row:3;grid-column:1;flex-direction:row;border:0;border-top:1px solid var(--line);padding:4px max(8px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:4px}
 .tool-rail button{min-height:48px;flex-direction:column;gap:3px;font-size:10px;padding:4px}.tool-rail button>span{font-size:18px;line-height:18px}
 .workbench .preview{grid-row:1;grid-column:1}.workbench .controls{grid-row:2;grid-column:1}
 .workbench .preview-heading{padding:12px 14px}.workbench .preview-heading>span{max-width:47%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .workbench .stage-toolbar{flex:0 0 auto;justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:3px 10px;gap:8px;min-height:50px}
 .workbench .segmented{border:0;flex-shrink:0;gap:2px}.workbench .segmented button{min-height:44px;font-size:11px;padding:8px 10px;white-space:nowrap}
 .workbench .views{flex-shrink:0;gap:2px}.workbench .views button{min-height:44px;min-width:44px;font-size:11px;padding:8px}
 .workbench .compose-toolbar{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-start;align-items:center;overflow:visible;padding:0 10px 7px;gap:6px;min-height:48px}
 .workbench .compose-toolbar>.studio-button,.workbench .pose-controls>.studio-button{min-height:44px;white-space:nowrap;font-size:11px;padding:8px 10px;flex-shrink:0}
 .workbench .pose-controls{display:flex;gap:4px;flex-shrink:0}.workbench #floating-pose-menu{bottom:100%;top:auto;z-index:8}.workbench #floating-pose-menu button{min-height:44px}
 .mobile-preview-tools{display:block;position:relative;flex-shrink:0;margin-left:auto}.mobile-preview-tools>summary{display:block;list-style:none;font-size:11px;min-height:44px;padding:14px 8px;border:1px solid var(--line);cursor:pointer;white-space:nowrap}.mobile-preview-tools>summary::-webkit-details-marker{display:none}
 .mobile-preview-tools>div{display:none}.mobile-preview-tools[open]>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:absolute;bottom:calc(100% + 8px);right:0;width:230px;padding:8px;gap:6px;border:1px solid var(--line);background:var(--paper);box-shadow:0 8px 24px #0002;z-index:8}
 .workbench .mobile-preview-tools .studio-button{min-height:44px;font-size:11px;padding:10px}
 .workbench .inspector-heading{padding:6px 14px;min-height:48px;align-items:center}.inspector-heading .view-link{min-height:44px;padding:10px;font-size:11px}.inspector-heading h1{font-size:14px}
 .workbench .inspector-scroll{padding:0 max(14px,env(safe-area-inset-right)) 24px max(14px,env(safe-area-inset-left));-webkit-overflow-scrolling:touch}
 .workbench .control-section{padding:14px 0}.workbench .field input:not([type=checkbox]),.workbench .field select,.workbench .field textarea,.workbench .tray-filter input,.workbench .tray-filter select,.workbench .product-filters input,.workbench .product-filters select,.workbench .panel-section select,.workbench .selection-command>input{font-size:16px!important;min-height:44px}
 .workbench .layout-options button{min-height:44px}.workbench .product{min-height:64px}.workbench .product img{width:52px;height:52px}.workbench .products{gap:8px}
 .workbench .cap-tray{grid-template-columns:repeat(3,minmax(0,1fr))}.workbench .selection-context{max-height:25dvh}.assembly-status{bottom:8px}.viewport-mark{display:none}
 .inspector-hidden.workbench .workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) calc(58px + env(safe-area-inset-bottom))}.inspector-hidden.workbench .preview{grid-row:1}.inspector-hidden.workbench .tool-rail{grid-row:2}
 .workbench #show-inspector{top:48px;right:12px;min-height:44px;font-size:11px}
 .workbench .typing-panel{max-height:calc(100% - 110px);overflow:auto}.workbench .typing-panel textarea{font-size:16px}
 .preview-expanded.workbench .preview .stage-wrap{min-height:0}.preview-expanded.workbench .preview .stage-toolbar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
}
@media(max-width:370px){.workbench .compose-toolbar{gap:3px;padding-inline:6px}.workbench .compose-toolbar>.studio-button,.workbench .pose-controls>.studio-button{font-size:10px;padding-inline:6px}.mobile-preview-tools>summary{font-size:10px;padding-inline:6px}}
@media(max-height:500px) and (orientation:landscape) and (max-width:1000px){
 .workbench .header{height:44px;padding-top:0}.workbench .work-brand{display:none}.workbench main{height:calc(100dvh - 44px)}.workbench .workspace{grid-template-columns:56px minmax(0,1fr) 290px;grid-template-rows:minmax(0,1fr)}
 .workbench .tool-rail{grid-column:1;grid-row:1;flex-direction:column;padding:4px;overflow-y:auto;border-top:0;border-right:1px solid var(--line)}.tool-rail button{min-height:44px;flex:none}
 .workbench .preview{grid-column:2;grid-row:1}.workbench .controls{grid-column:3;grid-row:1;border-top:0;border-left:1px solid var(--line)}.workbench .inspector-heading{min-height:44px;padding:4px 12px}
 .inspector-hidden.workbench .workspace{grid-template-columns:56px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.inspector-hidden.workbench .tool-rail{grid-row:1}.inspector-hidden.workbench .preview{grid-column:2;grid-row:1}
}

/* Explicit panel controls remain discoverable before and after collapsing. */
.workbench .inspector-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 13px;border:1px solid var(--ink);background:var(--ink);color:var(--paper-soft);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;flex-shrink:0}
.workbench .inspector-toggle:hover{background:#423a33;border-color:#423a33}.workbench .inspector-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.workbench #hide-inspector{margin-top:0}.workbench #show-inspector{position:absolute;right:20px;top:58px;z-index:4;box-shadow:0 3px 12px #0002}.workbench #show-inspector svg{transform:rotate(180deg)}
.workbench #header-guide{min-height:40px;padding:8px 12px;border-color:#91867b;font-size:11px;white-space:nowrap}.workbench #header-guide:hover{border-color:var(--accent);background:var(--paper-deep)}
/* An optional, keyboard-accessible tour spotlights the real controls. */
#workspace-guide{position:fixed;inset:0;z-index:220;isolation:isolate;touch-action:manipulation}
.guide-focus{position:fixed;border:2px solid var(--mark);box-shadow:0 0 0 9999px #171511ab;pointer-events:none}
.guide-card{position:fixed;z-index:1;left:12px;top:12px;width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;background:var(--paper-soft);color:var(--ink);padding:20px 22px 22px;border:1px solid #8f8378;box-shadow:0 12px 48px #0004;font-family:var(--sans)}
.guide-top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px}.guide-top>span{font:11px monospace;color:var(--muted)}
.guide-card button{font:inherit;cursor:pointer}.guide-card button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#guide-skip{border:0;padding:10px 0 10px 12px;min-height:40px;background:transparent;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.guide-device{font-size:9px;letter-spacing:1.5px;color:#81766c;margin:13px 0}.guide-card h2{font-size:20px;line-height:1.45;letter-spacing:0;font-weight:600;margin:0 0 12px}.guide-card p{font-size:13px;line-height:1.9;margin:0;color:#49413b}
.guide-dots{display:flex;gap:5px;margin:20px 0 16px}.guide-dots i{height:3px;width:21px;background:#c8c0b8}.guide-dots i.current{background:var(--accent)}
.guide-actions{display:flex;justify-content:space-between;gap:12px}.guide-actions button{min-height:44px;padding:10px 14px;font-size:12px;border:1px solid var(--line);background:transparent;color:var(--ink)}.guide-actions button:disabled{opacity:.3;cursor:default}#guide-next{background:var(--ink);color:var(--paper-soft);border-color:var(--ink);margin-left:auto}
@media(max-width:700px), (max-height:500px) and (pointer:coarse){
 .workbench .header{gap:6px}.workbench #header-guide{min-height:40px;padding:8px;font-size:10px}.workbench .back-library{font-size:10px}.workbench #header-save{white-space:nowrap}
 .workbench .inspector-heading{padding:8px 12px;gap:8px;min-height:60px}.workbench .inspector-heading>div{min-width:0}.workbench .inspector-heading h1{font-size:14px}
 .workbench .inspector-toggle{min-height:44px;padding:10px 12px;font-size:12px;gap:6px}.workbench #hide-inspector svg{transform:rotate(90deg)}.workbench #show-inspector svg{transform:rotate(-90deg)}.workbench #show-inspector{top:50px;right:12px;min-height:46px;font-size:12px}
 .guide-card{padding:12px 18px 18px}.guide-top{min-height:44px}#guide-skip{min-height:44px}.guide-device{margin:8px 0 12px}.guide-card h2{font-size:18px}.guide-card p{font-size:13px;line-height:1.85}.guide-dots{margin:16px 0}.guide-actions button{min-height:46px}
}
@media(max-height:500px){.guide-card{padding:10px 16px 14px}.guide-top{min-height:34px}.guide-device{margin:3px 0 8px}.guide-card h2{font-size:17px;margin-bottom:8px}.guide-card p{font-size:12px;line-height:1.7}.guide-dots{margin:12px 0}}
@media(prefers-reduced-motion:reduce){.guide-focus{transition:none}}

/* Customer controls: presets first, fine adjustments when requested. */
.workbench .simple-extra{border-block:1px solid var(--line);margin:14px 0;background:transparent}
.workbench .simple-extra>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:12px 2px;list-style:none;font-size:12px;cursor:pointer;color:var(--ink)}
.workbench .simple-extra>summary::-webkit-details-marker{display:none}.workbench .simple-extra>summary::after{content:'＋';color:var(--accent);font-size:16px;line-height:1}.workbench .simple-extra[open]>summary::after{content:'－'}
.workbench .simple-extra .control-section{padding-top:4px}.workbench .simple-extra .fit-note{margin:0 0 16px}.workbench .simple-extra .source-layout-section{margin-top:0}
.workbench #keyboard-search{width:100%;min-height:44px;border:1px solid var(--line);padding:10px 12px;background:var(--paper-soft);color:var(--ink);font-size:12px;margin-bottom:8px}
.workbench #view-angle{width:126px;min-height:40px;max-width:40vw;font-size:12px;padding:8px;border:1px solid var(--line);background:var(--paper-soft);color:var(--ink)}
.workbench .views>[data-view]{display:none}.workbench .views{gap:5px}.workbench #reset-view{min-height:40px;min-width:44px;font-size:11px}
.workbench .stage-toolbar{align-items:center}.workbench .segmented button{white-space:nowrap}
.workbench .mobile-preview-tools{display:block;position:relative;flex-shrink:0;margin-left:auto}
.workbench .mobile-preview-tools>summary{display:block;list-style:none;min-height:40px;padding:11px 12px;border:1px solid var(--line);font-size:11px;cursor:pointer;white-space:nowrap}
.workbench .mobile-preview-tools>summary::-webkit-details-marker{display:none}.workbench .mobile-preview-tools>div{display:none}
.workbench .mobile-preview-tools[open]>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:absolute;bottom:calc(100% + 8px);right:0;width:240px;max-width:calc(100vw - 24px);padding:9px;gap:6px;background:var(--paper);border:1px solid var(--line);box-shadow:0 8px 24px #0002;z-index:8}
.workbench .mobile-preview-tools .studio-button{min-height:44px;padding:10px;font-size:11px}
.preview[data-fullscreen=true] #fullscreen{display:none}
.selected-key-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:12px}.selected-key-bar .studio-button{min-height:40px}
.mix-start-hint{font-size:12px;line-height:1.8;color:var(--muted);margin:16px 0}
.workbench .light-preset{min-height:64px;padding:12px}.workbench .light-preset strong{font-size:12px}.workbench .light-preset small{font-size:10px;line-height:1.65}
.workbench #custom-lighting{margin-top:24px}.workbench .cap-tile small,.workbench .cap-tile span{font-size:10px}
.workbench .inspector-heading h1{line-height:1.5}.workbench .inspector-heading p{line-height:1.75}
@media(max-width:700px), (max-height:500px) and (pointer:coarse){
 .workbench #view-angle{width:112px;font-size:16px;min-height:44px;padding:7px 4px}.workbench .views{gap:2px}.workbench #reset-view{min-height:44px}
 .workbench .segmented button{font-size:11px;padding:8px 10px}.workbench .stage-toolbar{gap:8px}
 .workbench #keyboard-search{font-size:16px}.workbench .mobile-preview-tools>summary{min-height:44px;padding:13px 9px}.workbench .simple-extra>summary{font-size:12px;min-height:48px}
 .selected-key-bar{padding:8px 12px}.selected-key-bar .studio-button{min-height:44px}
}

/* Keep every primary action visible on narrow phones, including longer labels. */
@media(max-width:700px), (max-height:500px) and (pointer:coarse){
 .workbench .compose-toolbar{flex-wrap:wrap}
}
@media(max-width:370px){
 .workbench .stage-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:visible}
 .workbench .segmented{min-width:0}.workbench .segmented button{flex:1;min-width:0;white-space:normal;padding-inline:4px;line-height:1.3}
 .workbench .views{min-width:0}.workbench #view-angle{width:calc(100% - 46px);max-width:none;min-width:0}
}
.workbench .cap-tray{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.workbench .cap-tray>.cap-tile{grid-column:span var(--cap-columns,1);min-width:0}
.workbench .cap-tile{padding:7px;overflow:hidden;border-radius:4px}
.workbench .cap-tile[aria-pressed=true]{border-width:1px;padding:7px;box-shadow:inset 0 0 0 1px var(--accent)}
.workbench .cap-tile .cap-picture{display:flex;position:relative;align-items:center;justify-content:center;height:clamp(84px,calc(84px * var(--cap-height,1)),148px);margin:0 0 7px;background:#f5f2ec;border-radius:3px;overflow:hidden}
.workbench .cap-picture img{display:block;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}
.workbench .cap-picture .cap-preview-wait,.workbench .cap-picture .cap-preview-error{position:absolute;inset:auto 4px;margin:0;font-size:10px;line-height:1.5;white-space:normal}
.workbench .cap-picture .cap-preview-error{display:none}
.workbench .cap-tile[data-thumbnail-state=ready] .cap-picture img{opacity:1}
.workbench .cap-tile[data-thumbnail-state=ready] .cap-preview-wait,.workbench .cap-tile[data-thumbnail-state=error] .cap-preview-wait{display:none}
.workbench .cap-tile[data-thumbnail-state=error] .cap-preview-error{display:block}
.workbench .full-tray-row .cap-tile{max-width:100%;flex-shrink:0}
.workbench .full-tray-row .cap-tile:disabled{opacity:.6;cursor:not-allowed}
.workbench #full-tray .typing-bar h2{min-width:0}
.workbench #close-full-tray{flex-shrink:0}
/* First load shows a product photo; changes keep the last complete keyboard. */
.loading-preview{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#edeae6}.loading-preview img{width:100%;height:100%;object-fit:contain}.loading-preview figcaption{position:absolute;top:16px;left:16px;right:16px;font:11px var(--sans);color:#292823;background:#f3efe7ed;padding:8px 12px;width:fit-content;max-width:calc(100% - 32px)}#loading:has(.loading-preview){justify-content:flex-end;background:#edeae6}.loading-preview+.loading-card{position:relative;z-index:1;background:#f4f0e8f5;padding:18px;border:1px solid #bfb7aa;width:min(390px,100%)}.workbench #loading[data-keep-previous=true]{inset:auto 14px 14px;position:absolute;padding:14px 18px;background:#f4f0e8f5;border:1px solid #bfb7aa;box-shadow:0 3px 20px #17130d14;backdrop-filter:none;pointer-events:none;max-width:390px;align-items:stretch}.workbench #stage[data-loading=true] canvas{opacity:1}@media(max-width:700px){.loading-preview+.loading-card{padding:12px}.loading-card .loading-hint{font-size:10px}.workbench #loading[data-keep-previous=true]{max-width:calc(100% - 28px);padding:10px 12px}}

.display-mode{display:flex;gap:4px;padding:0 22px 12px;flex:none;z-index:2}.display-mode button{background:var(--paper-soft);color:var(--ink);border:1px solid var(--line);padding:9px 16px;font-size:12px;min-height:40px}.display-mode button[aria-pressed=true]{background:var(--ink);color:var(--paper-soft)}.display-mode button:disabled{opacity:.5}.fullset-mode #setup-panel>.control-section:not(:first-child),.fullset-mode .fit-note,.fullset-mode [data-panel=mix],.fullset-mode [data-panel=deskmat],.fullset-mode #typing-mode,.fullset-mode #key-closeup,.fullset-mode .map-panel{display:none!important}@media(max-width:700px){.display-mode{padding:0 12px 6px}.display-mode button{padding:8px 12px;font-size:11px;min-height:40px}}

.fullset-mode [data-keyboard-only=true],.fullset-mode #hardware-colors,.fullset-mode .backlight-picker,.fullset-mode .environment-picker{display:none!important}

body:not(.fullset-mode) [data-fullset-artwork]{display:none!important}
