/* A shared tabletop for independent, manufacturing-ready Room Studio rooms. */
.room-assembler{--a-line:#344b53;--a-muted:#a7bec2;--a-gold:#d5b37a;--a-cyan:#91ded9;position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;background:#0d191f;color:#eee8d8;font:13px/1.5 'Segoe UI',sans-serif;overflow:hidden}
.room-assembler::backdrop{background:#081116}
.room-assembler[open]{display:grid;grid-template-rows:70px minmax(0,1fr)}
.room-assembler button,.room-assembler input,.room-assembler select{font:inherit}
.room-assembler button{color:inherit;cursor:pointer;border:1px solid var(--a-line);border-radius:7px;padding:8px 12px;background:#16282f;transition:background .15s,border-color .15s}
.room-assembler button:hover{background:#243b42;border-color:#78918e}
.room-assembler button:disabled{opacity:.4;cursor:not-allowed}
.room-assembler button:focus-visible,.room-assembler input:focus-visible,.room-assembler select:focus-visible{outline:2px solid var(--a-cyan);outline-offset:3px}
.room-assembler input,.room-assembler select{min-width:0;background:#102229;color:#eee8d8;border:1px solid #496169;border-radius:6px;padding:8px 9px}
.room-assembler h2,.room-assembler h3{font-family:Georgia,serif;font-weight:400;margin:0}
.room-assembler h2{font-size:24px}.room-assembler h3{font-size:19px}.room-assembler p{margin:6px 0}
.room-assembler .a-muted{color:var(--a-muted);font-size:11px;line-height:1.6}
.room-assembler .a-primary{background:var(--a-gold);border-color:var(--a-gold);color:#192027}
.room-assembler .a-danger{color:#efb8a5;border-color:#785047}.room-assembler .a-small{padding:5px 9px;font-size:11px}
.a-header{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--a-line);padding:12px 20px;background:#101e25}
.a-brand{font:21px Georgia,serif;color:var(--a-gold);white-space:nowrap}.a-brand small{display:block;font:9px 'Segoe UI',sans-serif;letter-spacing:1.7px;text-transform:uppercase;color:var(--a-muted)}
#assemblyName{font:19px Georgia,serif;max-width:310px;width:24vw;background:transparent;border-color:transparent;border-bottom-color:var(--a-line)}
.a-header-actions{display:flex;gap:7px;align-items:center;margin-left:auto}.a-header-actions select{max-width:180px;font-size:11px}
.a-body{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:0}
.a-library{background:#101e25;border-right:1px solid var(--a-line);padding:19px 14px;display:flex;flex-direction:column;gap:12px;overflow:hidden;min-height:0}
.a-library-head{display:flex;justify-content:space-between;align-items:center}.a-library-head small{color:var(--a-muted)}
#assemblySearch{width:100%}.a-library-list{overflow:auto;min-height:0;flex:1;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin;scrollbar-color:#4b636a transparent}
.a-room-card{display:grid;grid-template-columns:82px 1fr;gap:10px;align-items:center;background:#14272f;border:1px solid var(--a-line);border-radius:9px;padding:8px}
.a-room-card img{width:82px;height:74px;object-fit:cover;border-radius:4px;background:#0e1c23}.a-room-card strong{font:15px/1.2 Georgia,serif;display:block;overflow-wrap:anywhere}.a-room-card small{display:block;color:var(--a-muted);font-size:10px;margin:5px 0}.a-room-card button{padding:4px 13px;font-size:11px}
.a-library-foot{border-top:1px solid var(--a-line);padding-top:12px}.a-library-foot p{font-size:10px;color:var(--a-muted)}
.a-main{display:grid;grid-template-rows:48px minmax(190px,1fr) auto;min-width:0;min-height:0;position:relative}
.a-toolbar{display:flex;align-items:center;gap:10px;padding:6px 15px;border-bottom:1px solid var(--a-line);background:#13242b;overflow:auto;white-space:nowrap}
.a-levels{display:flex;gap:6px}.a-levels button{padding:5px 14px;font-size:12px}.a-levels button[aria-pressed=true]{border-color:var(--a-gold);background:#38403b;color:#f5dcab}
.a-check{display:flex;gap:6px;align-items:center;font-size:11px;color:#bdd0cf}.a-check input{accent-color:var(--a-gold)}
.a-plan{position:relative;overflow:hidden;min-height:0;background:#0e1b22}.a-plan canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
.a-view-tools{position:absolute;bottom:16px;left:17px;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid #415b64;background:#102129ed;border-radius:9px;z-index:2}.a-view-tools button{padding:5px 10px;background:transparent;border-color:transparent}.a-view-tools button[aria-pressed=true]{background:#335152;border-color:#8ad6ce}
.a-view-tools{max-width:calc(100% - 24px);overflow-x:auto;white-space:nowrap;scrollbar-width:thin}.a-view-tools button{flex:none}
.a-plan-status{position:absolute;left:18px;top:12px;max-width:calc(100% - 36px);padding:6px 10px;border:1px solid #31515a;border-radius:6px;background:#10242be8;font-size:11px;color:#bfd9d6;pointer-events:none}.a-plan-status:empty{display:none}
.a-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;pointer-events:none;text-align:center;padding:25px}.a-empty[hidden]{display:none}.a-empty h2{font-size:30px}.a-empty p{max-width:320px;color:var(--a-muted)}
.a-scale-note{position:absolute;bottom:18px;right:18px;font-size:10px;color:#acc3c7;pointer-events:none}
.a-inspector{border-top:1px solid var(--a-line);background:#12242c;display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(240px,1fr) minmax(220px,.9fr);padding:16px 18px;gap:18px;max-height:310px;min-height:205px;overflow:auto}
.a-inspector>section+section{border-left:1px solid var(--a-line);padding-left:18px}.a-inspector label{display:flex;flex-direction:column;gap:4px;color:var(--a-muted);font-size:10px}.a-inspector select{font-size:11px;padding:6px}.a-inspector input{font-size:12px;padding:6px;max-width:90px}
.a-fields{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:10px 0}.a-fields button{font-size:11px}.a-actions{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.a-actions button{font-size:11px;padding:7px 10px}
.a-selected-title{display:flex;gap:8px;align-items:center}.a-selected-title strong{font:21px Georgia,serif}.a-size{font-size:10px;color:var(--a-muted);margin:4px 0}
.a-issues{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:135px;overflow:auto}.a-issue{border-left:2px solid #be9971;padding:4px 8px;color:#deceb4;font-size:11px;line-height:1.4}.a-issue.error{border-color:#df9b89;color:#efbbad}.a-issue.good{border-color:#70c9ab;color:#a5dfc9}.a-issue button{font-size:10px;margin:4px 4px 0 0;padding:3px 8px}
.a-access-grid{display:grid;gap:2px;grid-template-columns:repeat(var(--columns,6),1fr);width:min(160px,100%);margin:8px 0}.a-access-grid button{aspect-ratio:1;padding:0;border-radius:2px;font-size:9px;min-width:0;background:#233d46}.a-access-grid button.selected{background:#8ecfca;color:#10252b;border-color:#b3eae4}.a-access-grid button:disabled{background:#0b1a22}
.a-access-options{display:flex;gap:13px;align-items:start}.a-access-options>div{min-width:0}.a-access-options p{max-width:170px}
.a-notice{position:absolute;z-index:5;top:105px;right:20px;max-width:420px;border:1px solid #69847e;background:#21423e;padding:12px 16px;border-radius:9px;box-shadow:0 8px 25px #0006;white-space:pre-wrap;font-size:12px;cursor:pointer}.a-notice.error{border-color:#b17d69;background:#422d28;color:#f4d4c4}.a-notice[hidden]{display:none}
.a-file{position:relative;display:inline-flex;border:1px solid var(--a-line);border-radius:7px;padding:8px 10px;font-size:12px;cursor:pointer}.a-file input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.room-assembler-launch{color:#ead4a9!important;border-color:#6d7865!important;background:#253a3c!important}
.a-library-import{margin-top:8px}
@media(min-width:1181px){.a-library-import{display:none}}
body.room-template-admin .room-assembler-launch,body.room-assembly-editing .room-assembler-launch{display:none!important}
@media(max-width:1180px){.a-header{gap:10px}.a-header-actions select{max-width:125px}.a-brand{font-size:18px}.a-body{grid-template-columns:205px minmax(0,1fr)}.a-inspector{grid-template-columns:1fr 1fr;max-height:290px;gap:12px}.a-inspector>section:last-child{grid-column:1/-1;border-left:0;border-top:1px solid var(--a-line);padding:10px 0 0}.a-room-card{grid-template-columns:65px 1fr}.a-room-card img{width:65px;height:65px}.a-header-actions .a-extra{display:none}}
@media(max-width:760px){.room-assembler[open]{grid-template-rows:102px minmax(0,1fr)}.a-header{padding:9px 12px;flex-wrap:wrap;gap:8px}.a-brand{font-size:16px}.a-brand small{font-size:8px}#assemblyName{flex:1;width:50%;font-size:17px;max-width:none}.a-header-actions{width:100%;margin-left:0;justify-content:space-between}.a-header-actions button{font-size:11px;padding:6px 9px}.a-header-actions select{max-width:120px}.a-body{grid-template-columns:minmax(0,1fr);position:relative}.a-library{display:none;position:absolute;inset:0 auto 0 0;width:min(290px,85vw);z-index:7;box-shadow:10px 0 30px #0008}.room-assembler.library-open .a-library{display:flex}.a-main{grid-template-rows:46px minmax(160px,1fr) auto}.a-toolbar{padding:5px 9px;gap:8px}.a-inspector{display:block;max-height:36dvh;min-height:150px;padding:12px}.a-inspector>section+section{border-left:0;padding:12px 0 0;border-top:1px solid var(--a-line);margin-top:10px}.a-toolbar .a-check{font-size:10px}.a-levels button{font-size:11px;padding:5px 10px}.a-notice{top:150px;left:10px;right:10px;max-width:none}.a-scale-note{display:none}.a-view-tools{bottom:9px;left:9px}.a-issues{max-height:110px}.a-access-options{gap:15px}}
@media(min-width:761px){#assemblyLibraryToggle,#assemblyLibraryClose{display:none}}

/* The same editing workbench lives inside the scene, with a live overview. */
.a-dock{min-height:0;max-height:40dvh;display:flex;flex-direction:column;border-top:1px solid var(--a-line);background:#12242c;overflow:hidden}
.a-dock[hidden],.a-editor-host[hidden]{display:none!important}
.a-modular-choice{padding:6px 0;color:#dfc99f;font-size:12px}
.a-modular-choice+small{display:block;font-size:10px;line-height:1.5;margin-bottom:10px}
.a-dock .a-inspector.is-materials{grid-template-columns:minmax(0,1fr) 310px;min-height:225px}
.a-material-library{min-width:0;display:flex;flex-direction:column;min-height:0}
.a-material-search{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex:none}
.a-material-search label{font-size:11px}.a-material-search input{max-width:none;flex:1;min-width:40px}.a-material-search small{color:#a4bec1;white-space:nowrap}
.a-material-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:9px;overflow:auto;min-height:0;align-content:start;padding-right:5px}
.room-assembler .a-material-grid button{padding:5px;text-align:left;display:flex;flex-direction:column;gap:6px;min-width:0;min-height:114px}
.a-material-grid button>span,.a-material-grid button>img{object-fit:cover;display:block;width:100%;height:69px;background-color:#ab946a;border-radius:4px;flex:none}
.a-material-grid small{font-size:10px;line-height:1.3}.a-material-grid [aria-pressed=true]{border-color:#d1b477;background:#3a443c}
.a-material-brush h3{margin:0 0 6px}.a-material-brush p{margin:7px 0}.a-material-brush>small{font-size:10px;color:#aec4c5;line-height:1.5;display:block}
.a-material-instruction{font-size:11px;line-height:1.5;color:#a4ded6}.a-material-brush .a-fields{margin:6px 0}.a-material-brush label{font-size:11px}
.a-material-search #assemblyMaterialPicker{flex:none;font-size:11px;white-space:nowrap;padding:7px}
@media(max-width:760px){.a-material-search #assemblyMaterialPicker{font-size:0;width:34px;height:34px;padding:3px}.a-material-search #assemblyMaterialPicker:after{content:'⌖';font-size:22px}.a-material-brush .a-eyebrow{display:none}}
@media(max-width:760px){.a-dock .a-inspector.is-materials{display:grid;grid-template-columns:minmax(0,1fr);min-height:225px;overflow:auto}.a-material-library{min-height:160px}.a-material-grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr));max-height:155px}.a-material-search{gap:6px}.a-material-search label{display:none}.a-material-brush{padding-top:12px!important}.a-material-grid button>span,.a-material-grid button>img{object-fit:cover;height:60px}}
.a-tools{display:flex;gap:4px;flex:none;padding:7px 14px 0;overflow-x:auto;border-bottom:1px solid #344b53}
.room-assembler .room-roof-grid-panel .rg-toggle input,.room-assembler .room-roof-grid-panel .rg-railing-edges input{width:15px;max-width:15px;min-width:15px;height:15px;padding:0;flex:none}
.room-assembler .room-roof-grid-panel .rg-colors input[type=color]{width:34px;min-width:34px;max-width:34px;height:30px;padding:2px}
.room-assembler .room-roof-grid-panel .rg-colors input.rg-hex{min-width:0}
.room-assembler .a-tools button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#abc3c4;white-space:nowrap;padding:11px 13px;font-size:12px}
.room-assembler .a-tools button[aria-pressed=true]{border-bottom-color:var(--a-gold);color:#efd19d;background:#273a3a}
.a-dock .a-inspector{border-top:0;flex:1;min-height:170px;max-height:none;grid-template-columns:minmax(250px,1fr) minmax(230px,1fr) minmax(200px,.9fr);gap:17px;padding:15px 18px}
.a-eyebrow{font:9px 'Segoe UI',sans-serif;letter-spacing:1.5px;color:#cbb17d;display:block;margin-bottom:6px}
.a-ladder-diagram{height:85px;width:170px;float:right;margin:2px 0 0 10px}
.a-room-card{cursor:grab;flex-shrink:0;grid-template-columns:1fr;position:relative;padding:0;overflow:hidden}
.a-room-card:active{cursor:grabbing}.a-room-card>img{width:100%;height:115px;object-fit:cover}.a-room-card>div{padding:3px 12px 12px}.a-room-card>div>button{position:absolute;right:8px;bottom:10px;padding:4px 9px}.a-room-card strong{padding-right:38px;font-size:16px}.a-room-card:after{content:'⠿';position:absolute;right:8px;top:7px;color:#d2e9e5;background:#10232cbf;border-radius:4px;padding:0 4px}
.a-room-card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:9px}.a-room-card-actions button{display:inline-flex;align-items:center;gap:5px;min-height:32px}.a-room-card-actions .a-saved-remove{color:#d8bbbb;border-color:transparent;background:transparent;padding:5px 6px}.a-room-card-actions .a-saved-remove:hover{color:#ffe1d6;border-color:#865a51;background:#49302b}.a-room-card-actions button:focus-visible{outline:2px solid #8cddd5;outline-offset:2px}
.room-assembler.is-dropping .a-plan{box-shadow:inset 0 0 0 3px #91ded9}.room-assembler.is-dropping #assemblyEmpty{opacity:.3}
.a-editor-host{grid-column:1;grid-row:2/4;min-width:0;min-height:0;position:relative;display:flex;flex-direction:column;overflow:hidden;background:#0d191f}
.room-assembler.is-editing .a-main{grid-template-rows:48px minmax(0,1fr)}
.room-assembler.is-editing .a-plan{position:absolute;right:14px;top:121px;width:215px;height:150px;z-index:4;border:1px solid #638681;border-radius:9px;box-shadow:0 5px 24px #0008;pointer-events:none}
.room-assembler.is-editing .a-plan .a-view-tools,.room-assembler.is-editing .a-plan .a-scale-note{display:none}.room-assembler.is-editing .a-plan-status{font-size:9px;padding:3px;border:0;top:3px;left:5px;max-width:none}
.room-assembler.is-editing .a-toolbar{pointer-events:none;opacity:.6}.room-assembler.is-editing .a-library-list{pointer-events:none;opacity:.55}
body[data-room-studio] .a-editor-host #workspace.workspace{width:100%!important;height:auto!important;min-height:0!important;flex:1;display:block!important;overflow:hidden}
.a-editor-host #workspace>.room-collection{display:none!important}
body[data-room-studio] .a-editor-host .canvas-column{width:100%;height:100%;min-width:0;grid-column:auto}
body[data-room-studio] .a-editor-host .stage{min-height:120px!important}
body[data-room-studio] .a-editor-host .view-toolbar{min-height:40px;height:40px}
body[data-room-studio] .a-editor-host .floor-dock{flex-basis:min(320px,40dvh)!important;height:min(320px,40dvh)!important;padding:10px 18px}
body[data-room-studio] .a-editor-host .floor-dock .workbench-tabs{gap:20px;margin-bottom:8px}
body[data-room-studio] .a-editor-host .finish-workbench{grid-template-columns:minmax(0,1fr) 255px;gap:14px}
body[data-room-studio] .a-editor-host #roomAssemblyEditBar{flex:none;min-height:50px;padding:8px 15px;border-bottom:1px solid #49625c;background:#233a38}
body[data-room-studio] .a-editor-host #roomAssemblyEditBar strong{font-size:14px}
.a-editor-host #notice{position:absolute!important;inset:64px 15px auto auto!important;z-index:20;transform:none!important;max-width:420px}
.a-editor-host #stampContextMenu{z-index:30}
.a-editor-host #roomRename,.a-editor-host #roomDuplicate,.a-editor-host #roomCollectionToggle{display:none!important}
/* The native surface tools share the scene rather than opening an isolated
 * model. Context meshes and the camera remain in the scene's world space. */
.room-assembler.is-editing .a-plan{display:none!important}
.room-assembler.is-editing .a-toolbar{pointer-events:auto;opacity:1}
.room-assembler.is-editing .a-library-list{pointer-events:auto;opacity:1}
.room-assembler.is-editing .a-editor-host{grid-row:2/4}
body[data-room-studio] .a-editor-host .view-toolbar,
body[data-room-studio] .a-editor-host #workbenchTabs,
body[data-room-studio] .a-editor-host .model-status,
body[data-room-studio] .a-editor-host #roomAssemblyEditBar:not(.has-save-error),
body[data-room-studio] .a-editor-host #dockClose{display:none!important}
body[data-room-studio] .a-editor-host .floor-dock{padding-top:0}
.a-editor-host #assemblyTools{margin:0 -18px 10px;padding-top:0;min-height:42px;overflow-y:hidden}
.a-editor-host .a-view-tools{z-index:25;bottom:12px;left:15px;display:flex}
.a-editor-host .stage-hints{display:none!important}
.a-editor-host .selection-label{bottom:64px!important;max-width:calc(100% - 36px)}
.a-editor-host .room-size-badge{display:none!important}
body[data-room-studio] .a-editor-host .room-stock-label{order:3;margin:0 0 0 auto;font-size:10px;display:flex!important;align-items:center;gap:6px}
body[data-room-studio] .a-editor-host .room-stock-label select{max-width:185px;font-size:10px}
body[data-room-studio] .a-editor-host .dock-heading{gap:12px;flex-wrap:wrap}
body[data-room-studio] .a-editor-host .dock-heading h2{font-size:20px}
@media(max-width:760px){
  .a-editor-host #assemblyTools{margin:0 -12px 8px;min-height:38px;flex-basis:38px}
  body[data-room-studio] .a-editor-host .floor-dock{padding-top:0!important}
  body[data-room-studio] .a-editor-host .room-stock-label{font-size:0}
  body[data-room-studio] .a-editor-host .room-stock-label select{max-width:120px;font-size:9px}
  body[data-room-studio] .a-editor-host .dock-heading h2{font-size:15px}
  .a-editor-host .selection-label{bottom:54px!important}
}
@media(max-width:1180px){.a-dock .a-inspector{grid-template-columns:1fr 1fr}.a-dock .a-inspector>section:last-child{grid-column:1/-1;padding-top:9px}.a-room-card>img{height:100px}}
@media(max-width:760px){.a-header-actions{gap:4px}.a-header-actions select{max-width:95px}.a-header-actions button{font-size:10px;padding:6px}#assemblyBackToRooms{font-size:0}#assemblyBackToRooms:after{content:'Close';font-size:11px}.a-main{grid-template-rows:46px minmax(170px,1fr) auto}.a-dock{max-height:40dvh}.a-tools{padding:4px 6px 0}.room-assembler .a-tools button{padding:9px 10px;font-size:11px}.a-dock .a-inspector{display:block;min-height:140px;max-height:none;padding:12px}.a-dock .a-inspector>section+section{padding:12px 0 0;border-left:0}.a-room-card>img{height:130px}.a-view-tools{left:6px;bottom:7px;gap:1px}.a-view-tools button{padding:5px 7px;font-size:11px}.room-assembler.is-editing .a-plan{display:none}body[data-room-studio] .a-editor-host .floor-dock{flex-basis:43dvh!important;height:43dvh!important;padding:9px 12px}body[data-room-studio] .a-editor-host .finish-workbench{grid-template-columns:minmax(0,1fr);grid-template-rows:116px minmax(0,1fr);gap:8px}body[data-room-studio] .a-editor-host .stage-heading p{font-size:12px}body[data-room-studio] .a-editor-host .stage{min-height:100px!important}body[data-room-studio] .a-editor-host .room-size-badge{display:none}body[data-room-studio] .a-editor-host #roomAssemblyEditBar{flex-wrap:wrap}body[data-room-studio] .a-editor-host #roomAssemblyEditBar .button{padding:7px;font-size:10px}.a-editor-host #notice{max-width:calc(100% - 30px)}}

/* Keep the inspected panels visible on phones; construction controls remain
 * available in the assembled view. Surface editing retains its own labels. */
.a-current-material{display:flex;align-items:center;gap:10px;margin:10px 0;padding:9px;border:1px solid #36545c;border-radius:8px;background:#10252d}.a-current-material-thumb{width:48px;height:48px;flex:none;overflow:hidden;border-radius:5px;background:#0c1c22}.a-current-material-thumb img,.a-current-material-thumb>span{display:block;width:100%;height:100%;object-fit:cover}.a-current-material>span:last-child{min-width:0;display:grid;gap:4px}.a-current-material small{font-size:10px;color:#a7bec2}.a-current-material strong{font-size:12px;line-height:1.25}.a-current-material button{justify-self:start;padding:4px 8px;font-size:11px}
@media(max-width:760px){.room-assembler.is-inspecting .a-piece-controls{display:none!important}}
