#objectBar{position:absolute;z-index:7;width:0;height:0}
.barBtn{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#f4eedf;background:rgba(16,35,55,.36);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 14px rgba(16,35,55,.14)}.barBtn:hover{background:rgba(16,35,55,.55);border-color:rgba(255,255,255,.4)}.barBtn.active{color:#8bd3b0;border-color:rgba(139,211,176,.7);background:rgba(139,211,176,.16)}
.barPanel{position:absolute;left:0;transform:translateX(-50%);background:#102337e6;border:1px solid #ffffff30;border-radius:16px;padding:8px 10px;width:min(372px,94vw);max-height:40dvh;overflow:auto}.barPanel .paintRow>span{width:100%}
#focusHud .focusActions,#inspectObject,.camera #zoomIn,.camera #zoomOut,.camera #cameraLeft,.camera #cameraRight,.roomBar,#interactRoom,#roomTab-doors,.interiorActive .topline>div{display:none!important}.placementFocus #showInventory:not([hidden]){visibility:visible!important;pointer-events:auto!important}
#editBar{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:4;display:flex;gap:8px;padding:6px;background:#102337e8;border:1px solid #ffffff25;border-radius:22px}#editBar button{font-size:12px;padding:8px 18px;border-radius:16px}#leaveEditor{background:var(--gold);color:var(--navy);border:0}
#placeHint{position:absolute;top:180px;left:50%;transform:translateX(-50%);z-index:4;font-size:11px;color:var(--mint);background:#102337dd;padding:8px 14px;border-radius:16px;pointer-events:none;max-width:90%;text-align:center}
.dragging #objectBar,.dragging header,.dragging .topline,.dragging .sceneTag,.dragging #modeSwitch,.dragging #objectTray,.dragging #showInventory,.dragging #dock,.dragging #showTools,.dragging .camera,.dragging #hint,.dragging #plotTools,.dragging #shopCard,.dragging #focusHud,.dragging #inspectObject,.dragging #interiorHud,.dragging #popin,.dragging #toast{visibility:hidden!important}
.interiorActive #dock,.interiorActive #showTools,.interiorActive #objectTray,.interiorActive #showInventory,.interiorActive #plotTools,.interiorActive #shopCard,.interiorActive #focusHud,.interiorActive #modeSwitch,.interiorActive #popin,.interiorActive #scrim,.interiorActive .sceneTag,.interiorActive #hint{display:none!important}
.roomBar{position:absolute;top:100px;left:50%;transform:translateX(-50%);z-index:4;background:#102337e8;border:1px solid #ffffff25;border-radius:16px;padding:8px 18px;text-align:center;width:max-content;max-width:90%}
.roomBar b{display:block;font-size:14px}.roomBar small{display:block;color:var(--gold);font-size:10px;margin-top:2px}
#roomSheet{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));max-height:46dvh;display:flex;flex-direction:column;padding:12px 16px;background:#102337f5;backdrop-filter:blur(16px);border:1px solid #ffffff35;border-radius:24px;z-index:4;box-shadow:0 12px 40px #10233740}
.roomTabs{display:flex;gap:6px}.roomTabs button{flex:1;font-size:12px;padding:8px}.roomTabs button.active{border-color:var(--mint);background:#8bd3b017;color:var(--mint)}
#roomPanel{overflow:auto;margin-top:8px;overscroll-behavior:contain}#roomPanel .optionrow{flex-wrap:wrap}#roomPanel .optionrow button{min-width:88px}
.chips{display:flex;gap:5px;overflow-x:auto;padding:2px 2px 6px}.chips button{flex:0 0 auto;font-size:10px;padding:6px 12px;border-radius:22px}.chips button.active{border-color:var(--mint);color:var(--mint);background:#8bd3b017}
.roomCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;padding:2px}.roomCards button{padding:6px 3px;background:#1d3549}.roomCards button.active{border-color:var(--mint);background:#8bd3b017}
.roomCards img{display:block;width:64px;height:64px;margin:auto;pointer-events:none}.roomCards img:not([src]){visibility:hidden}
#roomPaint{padding:6px 0;border-bottom:1px solid #ffffff20}.paintRow{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:3px 0}.paintRow>span{width:72px;font-size:10px;color:#9fb6c4}.paintRow button{width:44px;height:44px;padding:7px;border-radius:50%;background:transparent}.paintRow button span{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #ffffff35}.paintRow button.selected{border:2px solid var(--mint)}.paintRow input{width:44px;height:44px;border:0;background:transparent;padding:0}.roomCards .itemlabel{display:block;font-size:9px;margin-top:4px}.roomCards .quantity{display:block;font-size:8px;color:var(--gold);margin-top:3px}
.doorRow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 0;border-bottom:1px solid #ffffff15}.doorRow b{width:82px;font-size:11px}.doorRow span{flex:1;min-width:90px;font-size:11px;color:var(--gold)}.doorRow button{font-size:10px;padding:8px 10px}
.doorRow select{min-height:44px;border-radius:12px;background:#183149;color:var(--cream);border:1px solid #ffffff25;padding:0 8px;font:inherit;font-size:11px}
#roomSelection{display:flex;align-items:center;gap:6px;margin-top:8px;padding:8px 0;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20}#roomSelection b{margin-right:auto;font-size:11px}#roomSelection button{font-size:10px;padding:8px}
.interactMode header,.interactMode .topline,.interactMode #roomSheet,.interactMode #undo,.interiorActive #status{display:none!important}
#interactBar{display:none;position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:4;align-items:center;gap:12px;padding:6px;background:#102337cc;border:1px solid #ffffff25;border-radius:22px}.interactMode #interactBar{display:flex}#interactBar b{font-size:12px}#interactBar button{font-size:11px;padding:8px 14px;border-radius:16px}
#doneEditing{flex:0 0 auto!important;background:var(--gold);color:var(--navy);border:0}
#devicePop{position:absolute;z-index:6;transform:translate(-50%,calc(-100% - 10px));background:#102337f2;border:1px solid #ffffff30;border-radius:16px;padding:10px 12px;min-width:220px;box-shadow:0 10px 30px #10233750}#devicePop b{display:block;font-size:11px;margin-bottom:6px}
.deviceRow{display:flex;align-items:center;gap:10px}.devicePower{min-width:56px;font-size:11px;padding:8px}.devicePower.selected{border-color:var(--mint);color:var(--mint);background:#8bd3b01a}
.deviceLevel{flex:1;display:flex;align-items:center;gap:8px;font-size:10px;color:#9fb6c4}.deviceLevel input{flex:1;min-height:44px;accent-color:var(--mint)}.deviceLevel code{font-size:10px;color:#c9d6de;width:32px;text-align:right}
#roomPanel .deviceRow{margin-top:10px}
#roomFeedback{font-size:10px;color:var(--mint);margin-top:6px;line-height:1.4}
/* Corner cluster: Edit, Catalogue, grids, Reset view, Undo. */
.interiorActive .camera{top:100px}.interactMode .camera{top:max(14px,env(safe-area-inset-top))}.camera button svg{display:block;margin:auto}.camera button.active{color:var(--mint);border-color:#8bd3b066;background:#102337f2}
/* Catalogue sheet: vertical category rail, horizontal style row, item grid. */
#roomSheet{display:grid;grid-template-columns:52px minmax(0,1fr);height:min(50dvh,440px);max-height:none;padding:10px 10px 10px 6px}
#roomRail{display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding-right:6px;border-right:1px solid #ffffff15;scrollbar-width:none}
.railBtn,.sheetClose{flex:0 0 auto;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:12px;background:transparent;border-color:transparent;color:#b9c8d1}.railBtn.active{background:#8bd3b01f;border-color:#8bd3b066;color:var(--mint)}.sheetClose{margin-left:auto;border-radius:50%}
.sheetMain{display:flex;flex-direction:column;min-width:0;padding-left:8px}
#styleRow{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:0 0 8px;scrollbar-width:none}
.styleBtn{flex:0 0 auto;width:44px;height:44px;padding:0;border-radius:50%;overflow:hidden;background:#1d3549;display:flex;align-items:center;justify-content:center;color:#b9c8d1}.styleBtn img{width:46px;height:46px;display:block}.styleBtn img:not([src]){visibility:hidden}.styleBtn.active{border:2px solid var(--mint);color:var(--mint)}
.sheetTitle{flex:0 0 auto;font-size:11px;color:#9fb6c4;white-space:nowrap;margin:0 4px}
#roomPanel{flex:1;overflow:auto;margin-top:0}.roomCards{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}
/* Swipeable swatch and texture strips. */
.swatchStrip,.tileStrip{display:flex;gap:4px;overflow-x:auto;padding:2px 0;scrollbar-width:none;min-width:0;max-width:100%;overscroll-behavior-x:contain}
@media (pointer:fine){.swatchStrip,.tileStrip{scrollbar-width:thin;scrollbar-color:#ffffff55 transparent}}
.swatch{flex:0 0 auto;width:44px;height:44px;padding:7px;border-radius:50%;background:transparent;border:1px solid transparent;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer}.swatch span{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #ffffff40}.swatch.selected{border:2px solid var(--mint)}
.swatch.custom{border:1px dashed #ffffff55;color:#c9d6de}.swatch.custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.tile{flex:0 0 auto;width:52px;height:52px;padding:0;border-radius:12px;background:#1d3549 center/cover;display:flex;align-items:center;justify-content:center;color:#c9d6de}.tile.selected{border:2px solid var(--mint)}
.decorRow{margin-bottom:10px}.decorLabel{font-size:10px;color:#9fb6c4;margin:0 0 4px}
.paintKeys{display:flex;gap:6px;margin-bottom:6px}.paintKey{display:flex;align-items:center;gap:8px;font-size:11px;padding:6px 14px;border-radius:22px;background:transparent}.paintKey.active{border-color:var(--mint);color:var(--mint)}
.dot{width:16px;height:16px;border-radius:50%;background:var(--c);border:1px solid #ffffff55}.dot.ring{background:transparent;border:4px solid var(--c)}
.barPanel{width:min(340px,calc(100vw - 76px))}
/* Keep catalogue content inside the sheet: rows may shrink, rail and grid scroll. */
#roomSheet{grid-template-rows:minmax(0,1fr)}#roomRail,.sheetMain,#roomPanel{min-height:0}#roomPanel{overflow-y:auto;overscroll-behavior:contain}
/* Corner cluster matches the arc: round, see-through, softly blurred. */
.interiorActive .camera button{width:44px;height:44px;padding:0;border-radius:50%;color:#f4eedf;background:rgba(16,35,55,.36);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 14px rgba(16,35,55,.14)}.interiorActive .camera button:hover{background:rgba(16,35,55,.55)}.interiorActive .camera button.active{color:#8bd3b0;border-color:rgba(139,211,176,.7);background:rgba(139,211,176,.16)}
/* Brightness knob: a ring showing the level; drag, scroll or use arrow keys. */
.knob{position:relative;width:56px;height:56px;flex:0 0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:ns-resize;background:conic-gradient(#8bd3b0 calc(var(--v)*1%),rgba(255,255,255,.16) 0);box-shadow:0 4px 14px rgba(16,35,55,.18)}.knob::before{content:'';position:absolute;inset:5px;border-radius:50%;background:rgba(16,35,55,.72);backdrop-filter:blur(6px)}.knob span{position:relative;font:600 11px 'DM Sans',sans-serif;color:#f4eedf}.knob.off{filter:grayscale(1) opacity(.7)}.knob:focus-visible{outline:3px solid var(--mint);outline-offset:3px}
.barBtn.knob{width:56px;height:56px;padding:0;border:0;background:conic-gradient(#8bd3b0 calc(var(--v)*1%),rgba(255,255,255,.16) 0)}
.devicePower{display:flex;align-items:center;gap:6px;border-radius:22px;padding:8px 14px}.devicePower svg{width:18px;height:18px}.deviceRow{gap:12px;margin-bottom:8px}
body:not(.interiorActive) #wallCull,body:not(.interiorActive) #roomLights{display:none!important}
#roomLights{position:relative;touch-action:none;-webkit-user-select:none;user-select:none}#roomLights .lvl{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);padding:4px 9px;border-radius:12px;background:rgba(16,35,55,.88);border:1px solid rgba(255,255,255,.18);color:#f4eedf;font:600 12px/1.2 'DM Sans',sans-serif;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}#roomLights.adjusting .lvl{opacity:1}.interiorActive .camera #roomLights.adjusting{background:conic-gradient(var(--mint) calc(var(--v,0)*1%),rgba(16,35,55,.7) 0);color:#102337}
