*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,Arial,sans-serif;background:#f4f2ee;color:#151515}
.app{width:100vw;height:100vh;display:grid;grid-template-columns:400px 1fr;grid-template-rows:70px 1fr}
.logo{grid-column:1;grid-row:1;background:#fff;border-right:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px}.logoText{min-width:0}.logo b{font-size:21px;line-height:1.15}.logoText span{display:none}
@media(max-width:720px){.logo{padding:14px 14px}}

.toolbar{grid-column:2;grid-row:1;background:rgba(255,255,255,.92);border-bottom:1px solid #e7e2d8;display:flex;gap:8px;align-items:center;padding:12px;overflow:auto;backdrop-filter:blur(12px)}
.toolbarRight{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:210px;justify-content:flex-end;flex:0 0 auto}
.timeWrap{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #e2ded5;border-radius:14px;background:rgba(255,255,255,.88);box-shadow:0 5px 15px rgba(0,0,0,.04);flex:0 0 auto}
.timeWrap b{font-size:12px;letter-spacing:.03em;color:#454545;white-space:nowrap}
.timeWrap input[type=range]{min-width:108px;width:118px;height:26px;padding:0;background:transparent;border:0}
.timeLabel{font-size:11px;font-weight:800;color:#7a6552;min-width:78px;text-align:right}
button{border:1px solid #e2ded5;background:#fff;border-radius:13px;padding:10px 12px;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 8px 22px rgba(0,0,0,.06)}
button{position:relative;overflow:hidden;isolation:isolate;transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, background .22s ease, border-color .22s ease, color .22s ease, filter .22s ease, opacity .22s ease;background:linear-gradient(145deg,#ffffff,#f7f3ec)}
button::before{content:'';position:absolute;inset:-1px;z-index:-1;background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(255,255,255,.08) 45%,rgba(0,0,0,.03));opacity:.85;pointer-events:none}
button::after{content:'';position:absolute;top:-120%;left:-40%;width:42%;height:320%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.72),rgba(255,255,255,0));transform:rotate(18deg);transition:transform .7s ease,left .7s ease,opacity .4s ease;opacity:0;pointer-events:none}
button:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 14px 30px rgba(0,0,0,.11);border-color:#d0c4b3;filter:saturate(1.03)}
button:hover::after{left:115%;opacity:1}
button:active{transform:translateY(0) scale(.985);box-shadow:0 8px 18px rgba(0,0,0,.08)}
button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.08);box-shadow:none}
button.active{background:linear-gradient(145deg,#111,#2a2d33);color:#fff;border-color:#111;box-shadow:0 16px 34px rgba(0,0,0,.20)}
button::after{content:'';position:absolute;inset:-70% -35%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.58) 50%,transparent 66%);transform:translateX(-130%) rotate(8deg);transition:transform .55s ease;pointer-events:none}
button:hover{box-shadow:0 14px 32px rgba(0,0,0,.13), inset 0 1px 0 rgba(255,255,255,.95);transform:translateY(-2px) scale(1.015);filter:brightness(1.015)}
button:hover::after{transform:translateX(130%) rotate(8deg)}
button:active{transform:translateY(0) scale(.985);box-shadow:0 8px 18px rgba(0,0,0,.10), inset 0 2px 8px rgba(0,0,0,.08)}
button.active,.toolbar button.active,#rulerWallBtn.active,#freeRotateBtn.active{background:linear-gradient(145deg,#111,#333);color:#fff;border-color:#111;box-shadow:0 14px 34px rgba(0,0,0,.22),0 0 0 4px rgba(17,17,17,.06)}
input{height:40px;border:1px solid #e2ded5;border-radius:13px;padding:0 12px;outline:none;background:#fff;min-width:190px}
.side{grid-column:1;grid-row:2;background:#fbfaf8;border-right:1px solid #e7e2d8;padding:18px;overflow:auto}
.card{background:#ffffffdd;border:1px solid #e7e2d8;border-radius:26px;padding:18px;margin-bottom:18px;box-shadow:0 12px 35px rgba(0,0,0,.05)}
.card h3{margin:0 0 16px;font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:#555}
.tabs{display:flex;gap:9px;flex-wrap:wrap;align-content:flex-start;max-height:180px;overflow:auto;padding-bottom:10px;margin-bottom:13px}
.tab{border:1px solid #e2ded5;background:#f6f4ef;border-radius:999px;padding:9px 13px;font-weight:900;font-size:14px;cursor:pointer;white-space:nowrap}
.tab.active{background:#111;color:#fff;border-color:#111}.fabricTabChip{display:flex;align-items:center;gap:0;flex-wrap:nowrap}.fabricTabChip .tab{margin:0}.fabricCollectionPopover{position:fixed;z-index:250;display:none;width:min(360px,calc(100vw - 24px));padding:15px 16px;border:1px solid rgba(219,210,198,.95);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 24px 70px rgba(0,0,0,.20);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#2a251f}.fabricCollectionPopoverHead{display:flex;align-items:center;gap:10px;margin-bottom:10px}.fabricCollectionPopoverIcon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#f4efe7,#fff);border:1px solid #e6ddd0;font-weight:950;color:#665b50}.fabricCollectionPopover h4{margin:0;font-size:15px;line-height:1.2}.fabricCollectionPopover small{display:block;margin-top:3px;color:#8a8074;font-size:11px}.fabricCollectionPopoverText{font-size:12px;line-height:1.6;color:#62584e;white-space:pre-line;max-height:300px;overflow:auto}.fabricCollectionPopoverEmpty{color:#8a8074;font-style:italic}@media(max-width:720px){.fabricCollectionPopover{width:calc(100vw - 20px);left:10px!important}}
.modelItem{display:grid;grid-template-columns:98px 1fr 18px;gap:12px;align-items:center;border:1px solid #eee6da;border-radius:18px;padding:12px;margin-top:11px;cursor:pointer;background:#fff}
.modelItem:hover{border-color:#111;transform:none}
.modelItem.loading{opacity:.70;pointer-events:none}
.modelItem.cached{border-color:#9ed0a6;background:#fbfffb}
.cubeIcon{width:98px;height:76px;border-radius:16px;background:linear-gradient(145deg,#ddd4c8,#9f9386);box-shadow:inset 0 -8px 15px rgba(0,0,0,.09);background-size:cover;background-position:center}
.modelItem b{font-size:16px;line-height:1.25}.modelItem small{display:block;color:#777;font-size:13px;line-height:1.3;margin-top:6px}.priceLine{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0 2px}.priceBadge{display:inline-flex;align-items:center;border-radius:999px;background:#f1f1f1;color:#666;padding:4px 8px;font-size:12px;font-weight:900;line-height:1}.priceBadge.sale{background:#fff0f0;color:#bf3030}.oldPrice{text-decoration:line-through;color:#aaa;font-size:12px;font-weight:800}.priceBadge.muted{background:#f6f4ef;color:#9a8f82}.comfortGradeLine{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:5px 0}.comfortGradeBadge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#18181b;color:#fff;padding:4px 8px;font-size:11px;font-weight:950;line-height:1;border:1px solid rgba(0,0,0,.08);cursor:help}.comfortGradeBadge.gradeA{background:#6f766f}.comfortGradeBadge.gradeB{background:#5f6f86}.comfortGradeBadge.gradeC{background:#6a5b86}.comfortGradeBadge.gradeD{background:#121212}.comfortGradeName{font-size:11px;color:#6f675e;font-weight:850}
.loadDot{width:16px;height:16px;border-radius:50%;background:#ddd}
.modelItem.cached .loadDot{background:#35b45d}
.modelItem.loading .loadDot{background:#e2a93b;animation:pulse 1s infinite}
@keyframes pulse{0%{opacity:.35}50%{opacity:1}100%{opacity:.35}}
.preloadBar{height:6px;background:#eee8dd;border-radius:999px;overflow:hidden;margin:8px 0 2px}
.preloadFill{height:100%;width:0;background:#111;border-radius:999px;transition:.25s}
.fabricItem{display:grid;grid-template-columns:68px 1fr 20px;gap:11px;align-items:center;border:1px solid #eee6da;border-radius:17px;padding:11px;margin-top:10px;cursor:pointer;background:#fff}
.fabricItem:hover{border-color:#111;transform:translateX(2px)}
.fabricItem.active{border-color:#111;background:#f7f4ed}
.fabricThumb{width:68px;height:48px;border-radius:13px;background:#ddd;background-size:cover;background-position:center;box-shadow:inset 0 -8px 15px rgba(0,0,0,.09)}
.fabricItem b{font-size:16px}.fabricItem small{display:block;color:#777;font-size:13px;margin-top:4px}
.scene{grid-column:2;grid-row:2;position:relative;background:linear-gradient(180deg,#f4f1ec 0%,#ebe7e1 100%)}
#canvas{position:absolute;inset:0;width:100%;height:100%;display:block;border:0;outline:0}#canvas:focus,#canvas:focus-visible{outline:none!important;border:0!important;box-shadow:none!important}
.status{position:absolute;left:18px;bottom:16px;background:rgba(255,255,255,.90);border:1px solid #e7e2d8;border-radius:15px;padding:10px 13px;font-size:12px;box-shadow:0 18px 45px rgba(0,0,0,.12);max-width:620px}
.watermark{position:absolute;right:20px;bottom:16px;font-weight:900;color:#111;opacity:.34;pointer-events:none}
.help{font-size:12px;line-height:1.45;color:#777}
.empty{font-size:12px;color:#777;background:#fff;border:1px dashed #ddd;border-radius:14px;padding:12px;line-height:1.45}

.plusHint{font-size:12px;color:#777;margin-top:6px}

.cardTitle{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cameraBtn{position:absolute;top:16px;right:18px;z-index:8;width:48px;height:48px;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.30);backdrop-filter:blur(8px);font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.10)}
.cameraBtn:hover{background:rgba(255,255,255,.55)}
.ultraRenderBtn{position:absolute;top:16px;right:186px;z-index:8;width:48px;height:48px;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:rgba(255,248,235,.88);backdrop-filter:blur(8px);font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.ultraRenderBtn:hover{background:rgba(255,250,242,.98)}
.ultraRenderOverlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(17,17,17,.26);backdrop-filter:blur(6px);z-index:80}
.ultraRenderOverlay.show{display:flex}
.ultraRenderPanel{width:min(1080px,calc(100vw - 24px));max-height:min(92vh,980px);overflow:auto;background:rgba(255,255,255,.98);border:1px solid #e7dfd4;border-radius:24px;padding:18px 18px 16px;box-shadow:0 32px 90px rgba(0,0,0,.20)}
.ultraRenderPanel h3{margin:0 0 8px;font-size:22px}
.ultraRenderPanel .help{margin:0 0 14px}
.ultraRenderEditor{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:16px;align-items:start}
.ultraRenderPreviewCard,.ultraRenderControlsCard{border:1px solid #ebe3d7;border-radius:20px;background:#fff;padding:14px;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.ultraRenderPreviewStage{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#f8f3ec,#ede5da);cursor:grab;touch-action:none;user-select:none}.ultraRenderPreviewStage.dragging{cursor:grabbing}
.ultraRenderPreviewStage img{width:100%;height:100%;object-fit:cover;display:block}
.ultraRenderPreviewBadge{position:absolute;left:10px;top:10px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);font-size:11px;font-weight:800;color:#4f473d;border:1px solid rgba(231,223,212,.9)}
.ultraRenderPreviewHint{margin-top:10px;font-size:12px;line-height:1.45;color:#7d746a}
.ultraRenderResultMeta{margin-top:10px;font-size:12px;line-height:1.45;color:#655c53;background:#f7f4ee;border:1px solid #ece2d5;padding:10px 12px;border-radius:14px}
.ultraRenderAiStatus{margin-top:10px;font-size:12px;line-height:1.45;color:#655c53;background:#faf6f0;border:1px solid #ece2d5;padding:10px 12px;border-radius:14px}
.ultraRenderQuickActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ultraRenderQuickActions button,.ultraRenderBgRefresh,.ultraMiniBtn{height:36px;border-radius:12px;border:1px solid #e6dece;background:#fff;font-size:12px;font-weight:800;color:#51483e;padding:0 12px}
.ultraMiniBtn[disabled],.ultraPrimary[disabled],.ultraSecondary[disabled]{opacity:.5;pointer-events:none}
.ultraRenderGrid{display:grid;gap:12px}
.ultraRenderGrid label,.ultraRenderField{display:grid;gap:8px;font-size:13px;font-weight:800;color:#433f39}
.ultraRenderGrid select,.ultraRenderGrid input[type=number],.ultraRenderGrid input[type=text]{width:100%;height:44px;border-radius:14px;border:1px solid #e6dece;background:#fff;padding:0 12px;font-size:14px}
.ultraRenderSliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ultraSliderBox{border:1px solid #ece2d5;border-radius:16px;padding:10px 12px;background:#fcfaf7}
.ultraSliderHead{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;font-weight:800;color:#4f473d;margin-bottom:8px}
.ultraSliderValue{color:#8b6a40}
.ultraSliderBox input[type=range]{width:100%}
.ultraToggleGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ultraRenderCheck{display:flex;gap:10px;align-items:flex-start;border:1px solid #ece2d5;border-radius:16px;padding:10px 12px;background:#fcfaf7;font-size:12px;color:#5d544a}
.ultraRenderCheck input{margin-top:2px}
.ultraRenderSectionTitle{font-size:13px;font-weight:900;color:#3b362f;letter-spacing:.02em;text-transform:uppercase;margin:4px 0 -2px}
.ultraRenderBgMeta{font-size:12px;color:#8a8177;margin-top:-6px;line-height:1.35}
@media (max-width:920px){.ultraRenderEditor{grid-template-columns:1fr}.ultraRenderSliders,.ultraToggleGrid{grid-template-columns:1fr}}
.ultraRenderBgRefresh{height:32px;border-radius:11px;border:1px solid #e6dece;background:#fff;font-size:12px;font-weight:800;color:#51483e;justify-self:start;padding:0 10px}
.ultraRenderInlineActions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ultraRenderUploadInput{display:none}
.ultraRenderCheck{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #efe7da;border-radius:16px;background:#faf8f3;font-size:13px;line-height:1.4;color:#5f584f}
.ultraRenderCheck input{margin-top:2px}
.ultraRenderActions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.ultraRenderActions button{border-radius:14px;height:42px;padding:0 16px}
.ultraPrimary{background:#111;color:#fff;border:1px solid #111}
.ultraSecondary{background:#fff;border:1px solid #e0d9cd}


body.plan2dActive #canvas{background:#fbfbf8}
body.plan2dActive .toolbar{box-shadow:0 8px 26px rgba(0,0,0,.08)}
body.plan2dActive .side{opacity:.96}
.layoutModePanel{position:absolute;right:18px;top:78px;z-index:20;display:none;width:310px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid #e4dacd;border-radius:20px;padding:14px;box-shadow:0 20px 60px rgba(0,0,0,.14)}
.layoutModePanel.show{display:block}
.layoutModePanel h3{margin:0 0 8px;font-size:17px}
.layoutModePanel p{margin:0 0 10px;font-size:12px;line-height:1.35;color:#6b6258}
.layoutModePanel .row{display:flex;gap:8px;flex-wrap:wrap}
.layoutModePanel button,.layoutModePanel select{height:36px;border-radius:12px;border:1px solid #e1d8cc;background:#fff;padding:0 10px;font-weight:800}
.layoutModePanel button.primary{background:#111;color:#fff;border-color:#111}.layoutModePanel #zoneCompilerAcceptBtn{background:#2f7d52;color:#fff;border-color:#2f7d52}
.fpHint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:30;display:none;padding:10px 14px;border-radius:999px;background:rgba(17,17,17,.72);color:#fff;font-size:13px;font-weight:800;pointer-events:none;box-shadow:0 18px 42px rgba(0,0,0,.22);backdrop-filter:blur(12px)}
.fpHint.show{display:block}
body.fp-immersive .logo,body.fp-immersive .toolbar,body.fp-immersive .side{display:none!important}
body.fp-immersive .app{grid-template-columns:1fr!important;grid-template-rows:1fr!important}
body.fp-immersive .scene{grid-column:1!important;grid-row:1!important;position:fixed!important;inset:0!important;z-index:999!important}
body.fp-immersive .scene>:not(#canvas):not(.watermark):not(.fpReticle):not(.fpObjectInfo){display:none!important}
body.fp-immersive #firstPersonHint{display:block!important;z-index:1001}
body.fp-immersive .watermark{z-index:1001;right:20px;bottom:16px;opacity:.34}
body.fp-immersive #canvas{position:fixed;inset:0;width:100vw!important;height:100vh!important;cursor:default}
.fpReticle{position:absolute;left:50%;top:50%;z-index:1002;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.96);box-shadow:0 0 0 1px rgba(0,0,0,.38),0 0 10px rgba(255,255,255,.48);display:none;pointer-events:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.fpReticle::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(255,255,255,.28);opacity:0;transform:scale(.72);transition:opacity .2s ease,transform 2.5s linear}
body.fp-immersive .fpReticle{display:block}
body.fp-immersive .fpReticle.targeting{background:#fff2ce;box-shadow:0 0 0 1px rgba(30,24,16,.42),0 0 15px rgba(255,224,157,.74)}
body.fp-immersive .fpReticle.targeting::after{opacity:1;transform:scale(1.5)}
.fpObjectInfo{position:absolute;left:50%;top:calc(50% + 25px);z-index:1002;width:min(310px,calc(100vw - 28px));transform:translate(-50%,8px) scale(.97);padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.34);background:rgba(24,23,22,.60);color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),visibility .22s ease}
.fpObjectInfo.show{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
.fpObjectInfo b{display:block;font-size:14px;line-height:1.25;letter-spacing:-.01em;margin-bottom:7px}.fpObjectInfoRow{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-top:5px;font-size:11px;line-height:1.35;color:rgba(255,255,255,.72)}.fpObjectInfoRow strong{color:#fff;text-align:right;font-size:11px;max-width:67%}
.cameraFlyBtn{position:absolute;top:16px;right:74px;z-index:8;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(239,235,228,.88));backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.95);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease}.cameraFlyBtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.cameraFlyBtn:hover{transform:translateY(-1px);background:#fff;box-shadow:0 14px 34px rgba(0,0,0,.16)}.cameraFlyBtn:active{transform:translateY(0) scale(.985)}.cameraFlyBtn.active{background:#202124;color:#fff;border-color:#202124;box-shadow:0 14px 36px rgba(0,0,0,.22)}
.firstPersonSceneBtn{position:absolute;top:16px;right:130px;z-index:8;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(239,235,228,.88));color:#202124;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.95);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease}.firstPersonSceneBtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.firstPersonSceneBtn:hover{transform:translateY(-1px);background:#fff;box-shadow:0 14px 34px rgba(0,0,0,.16)}.firstPersonSceneBtn:active{transform:translateY(0) scale(.985)}.firstPersonSceneBtn.active{background:#202124;color:#fff;border-color:#202124;box-shadow:0 14px 36px rgba(0,0,0,.22),0 0 0 4px rgba(32,33,36,.08)}

.solidToggleBtn{position:absolute;top:16px;left:18px;z-index:9;width:52px;height:52px;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.88);backdrop-filter:blur(10px);font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px rgba(0,0,0,.14);transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease}
.solidToggleBtn:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 16px 40px rgba(0,0,0,.16);background:rgba(255,255,255,.98)}
.solidToggleBtn:active{transform:translateY(0) scale(.98)}
.solidToggleBtn.active{background:linear-gradient(135deg,#171717,#363636);color:#fff;border-color:#171717;box-shadow:0 16px 40px rgba(0,0,0,.24),0 0 0 4px rgba(255,255,255,.28)}
.solidToggleBtn .solidIcon{display:block;line-height:1;transform:translateY(-1px)}
.etenMeasureBtn{position:absolute;top:78px;left:18px;z-index:9;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid rgba(0,0,0,.10);background:rgba(255,255,255,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(0,0,0,.12);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease}.etenMeasureBtn:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(0,0,0,.15);background:#fff}.etenMeasureBtn:active{transform:translateY(0) scale(.985)}.etenMeasureBtn.active{background:#202124;color:#fff;border-color:#202124;box-shadow:0 14px 36px rgba(0,0,0,.22)}.etenMeasureBtn .measureIcon{display:block;line-height:1;font-size:18px;transform:translateY(-1px)}


.paletteRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.paletteRow label{font-size:12px;color:#555;font-weight:800;background:#fff;border:1px solid #eee6da;border-radius:14px;padding:10px;display:flex;align-items:center;justify-content:space-between}
.paletteRow input{min-width:42px;width:42px;height:32px;border:0;padding:0;background:transparent}
.moduleChoiceOverlay{position:absolute;z-index:20;min-width:210px;max-width:260px;max-height:320px;overflow:auto;background:rgba(255,255,255,.96);border:1px solid #e2ded5;border-radius:18px;padding:8px;box-shadow:0 24px 60px rgba(0,0,0,.18);backdrop-filter:blur(12px)}
.moduleChoiceTitle{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#777;padding:7px 8px}
.moduleChoiceItem{display:grid;grid-template-columns:38px 1fr;gap:9px;align-items:center;border:1px solid #eee6da;border-radius:13px;padding:7px;margin-top:6px;background:#fff;cursor:pointer}
.moduleChoiceItem:hover{border-color:#111}
.moduleChoiceThumb{width:38px;height:30px;border-radius:9px;background:linear-gradient(145deg,#ddd4c8,#9f9386);background-size:cover;background-position:center}


.rulerLabel{position:absolute;z-index:15;pointer-events:none;background:rgba(255,255,255,.88);border:1px solid rgba(0,0,0,.12);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;color:#111;box-shadow:0 10px 25px rgba(0,0,0,.12)}

.hiddenCopyrightMarker{display:none!important;visibility:hidden!important;width:0;height:0;overflow:hidden;opacity:0}


#rulerWallBtn.active,#freeRotateBtn.active{background:#111;color:#fff;border-color:#111}
.rulerLabel{position:absolute;z-index:15;pointer-events:none;background:rgba(255,255,255,.88);border:1px solid rgba(0,0,0,.12);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;color:#111;box-shadow:0 10px 25px rgba(0,0,0,.12)}


.catalogSearch{width:100%;min-width:0;margin:0 0 12px;height:46px;border-radius:15px;background:#fff;font-size:14px;padding:0 13px}
.catalogTitleLeft{display:flex;align-items:center;gap:8px;min-width:0}
.catalogFilterBtn{width:auto!important;min-width:96px!important;height:36px!important;border-radius:999px!important;padding:0 14px!important;font-size:12px!important;font-weight:950!important;gap:7px;background:linear-gradient(145deg,#fff,#f2eee6)!important}
.catalogFilterBtn.active{background:linear-gradient(145deg,#111,#333)!important;color:#fff!important;border-color:#111!important}.catalogFilterBtn .filterDot{display:none;width:7px;height:7px;border-radius:50%;background:#72d681;box-shadow:0 0 0 3px rgba(114,214,129,.18)}.catalogFilterBtn.active .filterDot{display:inline-block}
.catalogSearchRow{display:grid;grid-template-columns:1fr;gap:8px}
.catalogFilterPanel{position:fixed;inset:0;z-index:235;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(24,22,20,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:catalogFilterFade .18s ease both}.catalogFilterPanel.show{display:flex}@keyframes catalogFilterFade{from{opacity:0}to{opacity:1}}
.catalogFilterDialog{width:min(720px,calc(100vw - 28px));max-height:calc(100vh - 30px);overflow:auto;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,245,239,.98));border:1px solid rgba(255,255,255,.86);box-shadow:0 34px 110px rgba(0,0,0,.26);padding:18px;animation:catalogFilterIn .22s cubic-bezier(.2,.82,.2,1) both}@keyframes catalogFilterIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.catalogFilterHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.catalogFilterHead h3{margin:0;font-size:22px;line-height:1.15}.catalogFilterHead p{margin:5px 0 0;color:#7d746c;font-size:12px;line-height:1.35}.catalogFilterClose{width:40px!important;height:40px!important;border-radius:50%!important;padding:0!important;font-size:22px!important;background:#fff!important}
.catalogFilterSection{padding:13px;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(228,219,206,.88);margin-top:10px}.catalogFilterSectionTitle{margin:0 0 10px;font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#6f655c}
.catalogFilterGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalogFilterSizeGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.catalogFilterRange{display:grid;grid-template-columns:1fr 1fr;gap:7px}.catalogFilterGrid label,.catalogFilterSizeGrid label{display:grid;gap:6px;font-size:10px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;color:#82766b}.catalogFilterGrid select,.catalogFilterGrid input,.catalogFilterSizeGrid input{width:100%;height:38px;border-radius:13px;border:1px solid #e4dbce;background:#fff;padding:0 10px;font-size:12px;font-weight:850;color:#36312d;outline:none;box-sizing:border-box}.catalogFilterRange input{min-width:0}.catalogFilterHint{font-size:11px;color:#8a8178;line-height:1.35;margin:8px 0 0}.catalogFilterFooter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.catalogFilterFooter small{font-size:12px;color:#6f655c;line-height:1.3;font-weight:800}.catalogFilterActions{display:flex;gap:8px;align-items:center}.catalogFilterReset{height:38px!important;border-radius:999px!important;padding:0 14px!important;font-size:12px!important;background:#fff!important}.catalogFilterApply{height:38px!important;border-radius:999px!important;padding:0 16px!important;font-size:12px!important;background:#202124!important;color:#fff!important;border-color:#202124!important}
@media(max-width:720px){.catalogFilterGrid,.catalogFilterSizeGrid{grid-template-columns:1fr}.catalogFilterBtn{min-width:82px!important;padding:0 10px!important}.catalogFilterDialog{padding:14px;border-radius:24px}}
.modelDesc{display:block;color:#777;font-size:13px;line-height:1.3;margin-top:6px}

.modelItem.loading .cubeIcon{filter:grayscale(.2);opacity:.82}
.modelItem.loading{position:relative;overflow:hidden}
.modelItem.loading::after{content:'Загрузка…';position:absolute;right:10px;bottom:8px;font-size:10px;font-weight:800;letter-spacing:.03em;color:#967a54;background:rgba(255,250,240,.78);border:1px solid rgba(226,169,59,.22);padding:3px 7px;border-radius:999px;box-shadow:0 5px 14px rgba(0,0,0,.05)}
.loadingGhostRing{position:absolute;display:none}




.sofaVariantBtn{
  display:none;
  position:absolute;
  z-index:17;
  padding:9px 13px;
  border-radius:999px;
  border:1px solid rgba(30,30,30,.14);
  background:rgba(255,255,255,.54);
  color:#111;
  font-size:12px;
  font-weight:900;
  box-shadow:0 14px 35px rgba(0,0,0,.16);
  backdrop-filter:blur(12px);
  opacity:.72;
}
.sofaVariantBtn:hover{opacity:1;background:#111;color:#fff}
.sleepToggleBtn{display:none;position:absolute;z-index:90;width:30px;height:30px;padding:0;border:none;background:transparent;color:rgba(28,32,38,.72);cursor:pointer;pointer-events:auto;touch-action:manipulation;transition:transform .16s ease,opacity .16s ease,color .16s ease,filter .16s ease;opacity:.88;line-height:1;user-select:none;filter:drop-shadow(0 2px 8px rgba(0,0,0,.18))}
.sleepToggleBtnLabel{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:16px;font-weight:900;line-height:1;letter-spacing:-.03em;transform:translateY(-1px)}
.sleepToggleBtn:hover{opacity:1;transform:translateY(-1px) scale(1.06);color:rgba(18,22,28,.92);filter:drop-shadow(0 4px 10px rgba(0,0,0,.22))}
.sleepToggleBtn.active{color:rgba(18,22,28,.98);opacity:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.24))}
.sleepToggleBtn.loading{pointer-events:none;opacity:.45;filter:grayscale(.08) drop-shadow(0 2px 8px rgba(0,0,0,.12))}

.legColorBtn{background:rgba(255,255,255,.50)}
.legColorOverlay{position:absolute;z-index:26;width:270px;max-height:340px;overflow:auto;padding:12px;border-radius:22px;background:rgba(255,255,255,.96);border:1px solid #e2ded5;box-shadow:0 24px 70px rgba(0,0,0,.20);backdrop-filter:blur(16px)}
.legColorItem{display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;padding:8px;border-radius:14px;cursor:pointer;border:1px solid #eee6da;background:#fff;margin-top:7px}.legColorItem:hover{background:#f5efe6}.legColorItem.active{border-color:#111;background:#f7f4ed}.legColorThumb{width:46px;height:36px;border-radius:11px;background:linear-gradient(135deg,#d8c8b0,#bda989);background-size:cover;background-position:center;border:1px solid rgba(0,0,0,.08)}.legColorItem b{font-size:12px}.legColorItem small{display:block;color:#777;font-size:11px;margin-top:3px}
.sofaVariantOverlay{
  position:absolute;
  z-index:25;
  width:290px;
  max-height:380px;
  overflow:auto;
  padding:12px;
  border-radius:22px;
  background:rgba(255,255,255,.96);
  border:1px solid #e2ded5;
  box-shadow:0 24px 70px rgba(0,0,0,.20);
  backdrop-filter:blur(16px);
}
.sofaVariantTitle{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  margin-bottom:8px;
  color:#444;
}
.sofaVariantItem{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:10px;
  align-items:center;
  padding:8px;
  border-radius:14px;
  cursor:pointer;
  border:1px solid #eee6da;
  background:#fff;
  margin-top:7px;
}
.sofaVariantItem:hover{background:#f5efe6}
.sofaVariantThumb{
  width:64px;
  height:46px;
  border-radius:11px;
  background:linear-gradient(145deg,#ddd4c8,#9f9386);
  background-size:cover;
  background-position:center;
}
.sofaVariantItem b{font-size:12px}
.sofaVariantItem small{display:block;color:#777;font-size:11px;margin-top:3px}


/* Увеличенная левая панель и интерфейс */
.side .help{font-size:13px;line-height:1.35}
.side .empty{font-size:13px;line-height:1.35;padding:13px}
.side .preloadBar{height:8px;border-radius:999px}
.side input, .side button{font-size:14px}


#library{max-height:min(68vh, 780px);overflow:auto;padding-right:4px}
#fabricLibrary{max-height:min(56vh, 560px);overflow:auto;padding-right:4px}
#library::-webkit-scrollbar,#fabricLibrary::-webkit-scrollbar,.legOptionsList::-webkit-scrollbar{width:10px}
#library::-webkit-scrollbar-thumb,#fabricLibrary::-webkit-scrollbar-thumb,.legOptionsList::-webkit-scrollbar-thumb{background:#d8d0c3;border-radius:999px}
.legOptionsBox{margin-top:14px;padding-top:14px;border-top:1px solid #ece4d8;display:none}
.legOptionsTitle{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#444}
.legOptionsList{max-height:520px;overflow:auto;padding-right:4px}
.legOptionsEmpty{font-size:13px;color:#777;line-height:1.35;padding:8px 0}


.projectBox{display:grid;gap:10px}
.projectActions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.projectBtn{height:42px;border-radius:15px;border:1px solid #ded6c9;background:#fff;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.04)}
.projectBtn:hover{background:#f5efe6}
.projectFile{display:none}


.roomParamBtn{width:100%;margin-top:12px}
.highflatBtn{width:100%;margin-top:10px;background:#eef5ff!important;border-color:#cfe0fb!important}
.highflatBtn.active{background:#243445!important;color:#fff!important;border-color:#243445!important;box-shadow:0 10px 24px rgba(22,31,43,.20)!important}
.highflatSettingsBtn{width:100%;margin-top:6px;background:#fff!important;border-color:#d9e3f4!important}
.highflatSettingsOverlay{position:fixed;inset:0;z-index:84;display:none;align-items:center;justify-content:center;background:rgba(18,16,14,.16);backdrop-filter:blur(4px)}
.highflatSettingsPanel{width:min(430px,calc(100vw - 20px));background:rgba(255,255,255,.88);border:1px solid rgba(228,222,212,.82);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.16);padding:14px}
.highflatSettingsPanel h3{margin:0 0 6px;font-size:17px}
.highflatSettingsPanel .help{margin:0 0 10px;font-size:12px;line-height:1.35;color:#5a5046}
.highflatSettingsPresetRow{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.highflatSettingsPresetRow button{height:32px;border-radius:10px;border:1px solid #ddd4c8;background:rgba(255,255,255,.82);padding:0 10px;font-weight:900;font-size:12px;cursor:pointer}
.highflatSettingsPresetRow button.active{background:#111;color:#fff;border-color:#111}
.highflatSettingsGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.highflatSettingsGrid label{display:grid;gap:4px;font-weight:900;font-size:12px;color:#4b4033}
.highflatSettingsGrid input,.highflatSettingsGrid select{height:36px;border-radius:12px;border:1px solid #ddd4c8;padding:0 10px;font-weight:800;background:rgba(255,255,255,.88);min-width:0;font-size:12px}
.highflatSettingsGrid .wide{grid-column:1 / -1}
.highflatToggleRow{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(238,226,210,.92);border-radius:13px;background:rgba(252,250,247,.84);font-weight:800;font-size:12px;color:#4b4033}
.highflatToggleRow input{width:16px;height:16px}
.highflatSettingsActions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.highflatSettingsActions button{height:36px;border-radius:12px;border:1px solid #ded6c9;background:rgba(255,255,255,.88);font-weight:900;font-size:12px;cursor:pointer;padding:0 14px}
.highflatSettingsActions button.primary{background:#111;color:#fff;border-color:#111}

.layoutBuilderOverlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(20,20,20,.28);backdrop-filter:blur(6px);z-index:90;padding:16px}
.layoutBuilderOverlay.show{display:flex}
.layoutBuilderPanel{width:min(1380px,calc(100vw - 20px));height:min(940px,calc(100vh - 20px));background:#fff;border:1px solid #ddd;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.22);padding:16px;display:flex;flex-direction:column;gap:12px}
.layoutBuilderTop{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.layoutBuilderTop h3{margin:0 0 4px;font-size:22px}
.layoutBuilderTop p{margin:0;color:#6e655d;font-size:13px;line-height:1.35}
.layoutBuilderTop button{width:36px;height:36px;border-radius:50%;border:1px solid #ddd;background:#fff;font-size:20px}
.layoutBuilderTools{display:flex;gap:8px;flex-wrap:wrap}
.layoutBuilderTools button{height:38px;border-radius:13px;border:1px solid #ddd;background:#fff;padding:0 12px;font-weight:900}
.layoutBuilderTools button.active{background:#111;color:#fff;border-color:#111}
.layoutBuilderTools button.primary{background:#111;color:#fff;border-color:#111;margin-left:auto}
.layoutBuilderWork{flex:1;min-height:0;border:1px solid #d8d8d8;border-radius:18px;overflow:hidden;background:#fff}
#layoutBuilderCanvas{width:100%;height:100%;display:block;background:#fff;cursor:crosshair}
.layoutBuilderHint{font-size:12px;color:#777}
.roomParamsOverlay{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(18,16,14,.34);backdrop-filter:blur(8px)}
.roomParamsPanel{width:min(420px,calc(100vw - 28px));background:#fff;border:1px solid #e4ded4;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.22);padding:20px}
.roomParamsPanel h3{margin:0 0 14px;font-size:20px}
.roomParamsGrid{display:grid;gap:12px}
.roomParamsGrid label{display:grid;gap:6px;font-weight:900;font-size:13px;color:#4b4033}
.roomParamsGrid input{height:42px;border-radius:14px;border:1px solid #ddd4c8;padding:0 12px;font-weight:800;background:#fff}
.roomParamsActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.roomParamsActions button{height:42px;border-radius:14px;border:1px solid #ded6c9;background:#fff;font-weight:900;cursor:pointer}
.roomParamsActions button.primary{background:#111;color:#fff;border-color:#111}
#roomParamsHighflatBtn.active{background:#243445;color:#fff;border-color:#243445}


.openingPanel{margin-top:12px;border-top:1px solid #ece4d8;padding-top:12px}
.openingPanelTitle{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#555;margin:0 0 10px}
.openingActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.openingBtn{height:38px;border-radius:14px;border:1px solid #ddd4c8;background:#fff;font-weight:900;cursor:pointer}
.openingBtn:hover{border-color:#111}
.openingControls{display:none;margin-top:12px;gap:8px;overflow:hidden}
.openingControls.active{display:grid}
.openingControls label{display:grid;grid-template-columns:minmax(0,1fr) 98px;gap:10px;align-items:center;font-size:12px;font-weight:800;color:#574d43;min-width:0}
.openingControls input,.openingControls select{height:34px;border:1px solid #ddd4c8;border-radius:12px;padding:0 8px;background:#fff;font-weight:800;width:100%;min-width:0;box-sizing:border-box}
.openingControls .wide{grid-column:1/-1}


.roomTextureControls{display:grid;gap:8px;margin-top:12px}
.roomTextureControls label{display:grid;gap:5px;font-size:12px;font-weight:900;color:#574d43;min-width:0}
.roomTextureControls select{height:34px;border:1px solid #ddd4c8;border-radius:12px;padding:0 8px;background:#fff;font-weight:800;min-width:0;width:100%;box-sizing:border-box}


.sceneTextureControls{display:grid;gap:8px;margin:10px 0 4px}
.sceneTextureControls label{display:grid;gap:5px;font-size:12px;font-weight:900;color:#574d43;min-width:0}
.sceneTextureControls select{height:34px;border:1px solid #ddd4c8;border-radius:12px;padding:0 8px;background:#fff;font-weight:800;min-width:0;width:100%;box-sizing:border-box}


.modelItem.loading{
  border-color:#111 !important;
  background:linear-gradient(90deg,#fff,#f4efe7) !important;
  box-shadow:0 0 0 2px rgba(0,0,0,.08) inset;
}
.modelItem.loading .loadDot{
  background:#111 !important;
  animation:loadingPulse .75s infinite alternate;
}
@keyframes loadingPulse{
  from{transform:scale(.75);opacity:.45}
  to{transform:scale(1.15);opacity:1}
}




.expressBtn{width:100%;margin-top:10px;background:#fff7e9!important;border-color:#efd2a1!important}
.expressBtn.active{background:#b88735!important;color:#fff!important;border-color:#b88735!important}
.expressBtn:disabled{opacity:.55;cursor:not-allowed}


.expressSettingsBtn{width:100%;margin-top:6px;background:#fff!important;border-color:#e4d8c8!important}
.expressSettingsOverlay{position:fixed;inset:0;background:rgba(0,0,0,.22);display:none;align-items:center;justify-content:center;z-index:70;backdrop-filter:blur(8px)}
.expressSettingsPanel{width:min(440px,calc(100vw - 28px));background:#fff;border:1px solid #e8dfd3;border-radius:24px;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.22)}
.expressSettingsPanel h3{margin:0 0 12px;font-size:18px}
.expressSettingsGrid{display:grid;gap:10px}
.expressSettingsGrid label{display:grid;gap:6px;font-size:12px;font-weight:900;color:#5e5146}
.expressSettingsGrid select,.expressSettingsGrid input[type="text"]{height:36px;border:1px solid #ddd4c8;border-radius:12px;padding:0 10px;font-weight:800;background:#fff}
.expressColorRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.expressColorRow input{width:100%;height:38px;border:1px solid #ddd4c8;border-radius:12px;padding:3px;background:#fff}
.expressSettingsActions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.expressSettingsActions button{border:1px solid #ddd4c8;border-radius:12px;background:#fff;padding:10px 14px;font-weight:900;cursor:pointer}
.expressSettingsActions .primary{background:#111;color:#fff;border-color:#111}


.toolbarMenu{position:relative;display:inline-flex;align-items:center}
.toolbarMenuTrigger{display:inline-flex;align-items:center;gap:10px;position:relative;overflow:hidden}
.toolbarMenuTrigger::after{content:'▾';font-size:12px;opacity:.72;transition:transform .28s ease,opacity .28s ease}
.toolbarMenu.open .toolbarMenuTrigger::after{transform:rotate(180deg);opacity:1}
.toolbarMenuPanel{position:absolute;top:calc(100% + 10px);left:0;min-width:230px;padding:10px;background:rgba(255,255,255,.72);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);border:1px solid rgba(226,216,204,.92);border-radius:18px;box-shadow:0 22px 52px rgba(0,0,0,.18);display:grid;gap:8px;opacity:0;transform:translateY(-10px) scale(.98);pointer-events:none;transition:opacity .24s ease, transform .28s cubic-bezier(.2,.8,.2,1);z-index:60}
.toolbarMenu.open .toolbarMenuPanel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.toolbarMenuPanel button{width:100%;justify-content:flex-start;background:rgba(255,255,255,.58);border-color:rgba(220,210,198,.92);box-shadow:none}
.toolbarMenuPanel button:hover{transform:translateY(-1px);background:rgba(255,255,255,.9)}
.toolbarMenuPanel button.active{background:linear-gradient(145deg,#111,#333)!important;color:#fff!important;border-color:#111!important;box-shadow:0 14px 34px rgba(0,0,0,.18)}


.fabricInfoTooltip{position:fixed;z-index:140;display:none;width:min(360px,calc(100vw - 28px));padding:14px 15px;border:1px solid rgba(219,210,198,.94);border-radius:18px;background:rgba(255,255,255,.90);box-shadow:0 24px 70px rgba(0,0,0,.20);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#2a251f;pointer-events:none;animation:fabricInfoIn .22s cubic-bezier(.2,.8,.2,1)}
.fabricInfoTooltip b{display:block;font-size:14px;margin-bottom:7px}.fabricInfoTooltip div{font-size:12px;line-height:1.5;white-space:pre-line;color:#665b50;max-height:240px;overflow:hidden}
@keyframes fabricInfoIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.sofaPhotoMatchToast{position:absolute;z-index:34;left:82px;top:20px;transform:translateY(-6px);display:none;align-items:center;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.34);color:rgba(20,20,22,.88);font-size:12px;font-weight:900;box-shadow:0 12px 32px rgba(0,0,0,.10);backdrop-filter:blur(14px) saturate(1.05);-webkit-backdrop-filter:blur(14px) saturate(1.05);cursor:pointer;opacity:0;transition:opacity .24s ease,transform .24s ease,background .24s ease,box-shadow .24s ease,border-color .24s ease}
.sofaPhotoMatchToast.show{display:flex;opacity:.78;transform:translateY(0)}
.sofaPhotoMatchToast:hover{opacity:1;background:rgba(255,255,255,.52);border-color:rgba(255,255,255,.70);box-shadow:0 16px 38px rgba(0,0,0,.14);transform:translateY(-1px)}
.sofaPhotoOverlay{position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(16,16,18,.50);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sofaPhotoOverlay.show{display:flex}
.sofaPhotoPanel{width:min(1180px,calc(100vw - 24px));max-height:min(900px,calc(100vh - 24px));overflow:auto;padding:18px;border-radius:28px;border:1px solid rgba(255,255,255,.74);background:rgba(250,249,247,.96);box-shadow:0 34px 110px rgba(0,0,0,.34)}
.sofaPhotoHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.sofaPhotoHeader h3{margin:0;font-size:22px}.sofaPhotoHeader p{display:none}.sofaPhotoClose{width:40px;height:40px;border-radius:50%;font-size:20px}
.sofaPhotoRecipeBar,.sofaPhotoVariantBar{display:flex;gap:8px;overflow:auto;padding:4px 2px 8px;scrollbar-width:thin}.sofaPhotoRecipeBar:empty{display:none}.sofaPhotoVariantBar{margin-top:2px;padding-bottom:12px}
.sofaPhotoChoice{flex:0 0 auto;border-radius:999px;padding:9px 13px;background:rgba(255,255,255,.78);border:1px solid #ddd4c8;box-shadow:none;font-size:12px}.sofaPhotoChoice.active{background:#111;color:#fff;border-color:#111}.sofaPhotoChoice.standard::before{content:'●';font-size:8px;margin-right:7px;opacity:.55}
.sofaPhotoToolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:space-between;margin-bottom:12px}.sofaPhotoToolbarLeft{display:flex;flex-wrap:wrap;gap:9px}.sofaPhotoToolbar button{height:40px;border-radius:13px}.sofaPhotoToolbar button.active{background:#111;color:#fff;border-color:#111}.sofaPhotoModules{font-size:11px;color:#756b61;line-height:1.45;text-align:right;max-width:48%}
.sofaPhotoSingleView,.sofaPhotoCompareView{display:block}.sofaPhotoSingleView.hidden,.sofaPhotoCompareView.hidden{display:none}
.sofaPhotoStage,.sofaPhotoCompareStage{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06),0 18px 46px rgba(0,0,0,.12)}
.sofaPhotoCompareLayer{position:absolute;inset:0;overflow:hidden}.sofaPhotoStage img,.sofaPhotoCompareLayer img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;transition:opacity .22s ease,transform .28s ease}.sofaPhotoStage img.loading,.sofaPhotoCompareLayer img.loading{opacity:.22}.sofaPhotoStage img.mirrored,.sofaPhotoCompareLayer img.mirrored{transform:scaleX(-1)}
.sofaPhotoCompareControls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.sofaPhotoCompareControls label{display:grid;gap:6px;font-size:11px;font-weight:900;color:#635b52}.sofaPhotoCompareControls select{height:42px;border:1px solid #ddd4c8;border-radius:13px;background:#fff;padding:0 12px;font-weight:800;color:#222}
.sofaPhotoCompareStage{--split:50%}.sofaPhotoCompareStage .compareRight{clip-path:inset(0 0 0 var(--split));-webkit-clip-path:inset(0 0 0 var(--split))}.sofaPhotoCompareDivider{position:absolute;z-index:4;top:0;bottom:0;left:var(--split);width:3px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.20),0 0 18px rgba(0,0,0,.30);transform:translateX(-1.5px);pointer-events:none}.sofaPhotoCompareDivider::after{content:'↔';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;color:#111;font-weight:900;box-shadow:0 8px 26px rgba(0,0,0,.28)}
.sofaPhotoCompareRange{position:absolute;z-index:5;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}.sofaPhotoHint{margin-top:9px;font-size:11px;color:#766d64;text-align:center}.sofaPhotoStageWatermark{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:6;padding:7px 14px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.72);color:rgba(36,36,40,.50);font-size:12px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;user-select:none}.sofaPhotoDownloadBtn{min-width:190px} 
@media(max-width:700px){.sofaPhotoModules{max-width:100%;text-align:left}.sofaPhotoToolbar{align-items:flex-start}.sofaPhotoCompareControls{grid-template-columns:1fr}.sofaPhotoPanel{padding:13px;border-radius:22px}.sofaPhotoStageWatermark{left:50%;bottom:10px;transform:translateX(-50%);font-size:10px;letter-spacing:.16em}}



/* ===== Информационная карточка модуля ===== */
.modelItem{position:relative;padding-right:44px;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.modelItem:hover{box-shadow:0 14px 34px rgba(0,0,0,.08)}
.modelInfoIconBtn{position:absolute;right:10px;top:10px;z-index:4;width:34px;height:34px;border-radius:12px;border:1px solid rgba(35,35,38,.10);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(247,244,239,.82));color:#242426;display:grid;place-items:center;padding:0;line-height:0;box-shadow:0 8px 24px rgba(26,24,21,.10),inset 0 1px 0 rgba(255,255,255,.96);backdrop-filter:blur(12px) saturate(1.08);-webkit-backdrop-filter:blur(12px) saturate(1.08);cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease}.modelInfoIconBtn svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.modelInfoIconBtn:hover{transform:translateY(-2px) scale(1.035);background:#fff;border-color:rgba(35,35,38,.18);box-shadow:0 13px 30px rgba(26,24,21,.16),inset 0 1px 0 #fff}.modelInfoIconBtn:active{transform:translateY(0) scale(.97)}
.moduleInfoOverlay{position:fixed;inset:0;z-index:180;background:rgba(18,18,20,0);pointer-events:none;transition:background .28s ease}
.moduleInfoOverlay.show{background:rgba(18,18,20,.18);pointer-events:auto}
.moduleInfoDrawer{position:absolute;right:0;top:0;bottom:0;width:min(560px,calc(100vw - 80px));display:flex;flex-direction:column;background:rgba(250,249,247,.97);border-left:1px solid rgba(255,255,255,.85);box-shadow:-34px 0 90px rgba(0,0,0,.20);transform:translateX(105%);transition:transform .34s cubic-bezier(.2,.85,.2,1);backdrop-filter:blur(20px) saturate(1.08);-webkit-backdrop-filter:blur(20px) saturate(1.08)}
.moduleInfoOverlay.show .moduleInfoDrawer{transform:translateX(0)}
.moduleInfoHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 20px 14px;border-bottom:1px solid rgba(80,70,60,.10);background:rgba(250,249,247,.88);position:sticky;top:0;z-index:8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.moduleInfoHeader h2{margin:0;font-size:23px;line-height:1.18;letter-spacing:-.02em;color:#1f1f21}.moduleInfoHeader p{margin:6px 0 0;font-size:12px;color:#776f67}.moduleInfoClose{width:40px;height:40px;border-radius:50%;border:1px solid rgba(30,30,32,.12);background:rgba(255,255,255,.76);font-size:21px;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.moduleInfoBody{flex:1;overflow:auto;padding:16px 20px 188px;scroll-behavior:smooth}.moduleInfoBody::-webkit-scrollbar{width:9px}.moduleInfoBody::-webkit-scrollbar-thumb{background:#d8d1c7;border-radius:999px}
.moduleInfoLoading{display:grid;place-items:center;min-height:430px;text-align:center;color:#777}.moduleInfoLoadingRing{width:44px;height:44px;border-radius:50%;border:3px solid #e5ddd2;border-top-color:#222;animation:moduleInfoSpin .9s linear infinite;margin:0 auto 14px}@keyframes moduleInfoSpin{to{transform:rotate(360deg)}}
.moduleInfoNotice{padding:11px 13px;border-radius:14px;background:rgba(231,222,208,.58);border:1px solid rgba(145,126,104,.16);font-size:12px;color:#6c5e50;margin-bottom:12px}
.moduleInfoHero{border-radius:24px;overflow:hidden;background:linear-gradient(145deg,#f3efe9,#e5ded4);border:1px solid rgba(94,78,59,.09);box-shadow:0 18px 48px rgba(0,0,0,.09)}
.moduleInfoMediaTabs{display:flex;gap:7px;padding:10px;background:rgba(255,255,255,.66);border-bottom:1px solid rgba(70,60,50,.08)}.moduleInfoMediaTabs button{height:34px;padding:0 13px;border-radius:999px;border:1px solid rgba(35,35,38,.10);background:rgba(255,255,255,.70);font-size:12px;font-weight:900}.moduleInfoMediaTabs button.active{background:#202124;color:#fff;border-color:#202124}
.moduleInfoMediaPane{position:relative;aspect-ratio:16/10;display:none;background:linear-gradient(145deg,#f7f4ef,#e8e1d8)}.moduleInfoMediaPane.active{display:block}.moduleInfoMainPhoto{width:100%;height:100%;object-fit:contain;display:block}.moduleInfoPhotoEmpty,.moduleInfo3dStatus{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#8b8279;font-size:12px;padding:24px}.moduleInfo3dCanvas{display:block;width:100%;height:100%;touch-action:none}.moduleInfo3dHint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(30,30,32,.09);font-size:10px;font-weight:800;color:#625b54;pointer-events:none;white-space:nowrap}
.moduleInfoBadges{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 4px}.moduleInfoBadge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.74);border:1px solid rgba(38,38,40,.10);font-size:11px;font-weight:900;color:#343236}.moduleInfoBadge.accent{background:#202124;color:#fff;border-color:#202124}.moduleInfoBadge.warm{background:#f2e5d6;color:#76502c;border-color:#e5c9aa}
.moduleInfoSection{margin-top:18px;padding-top:3px}.moduleInfoSection h3{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.075em;color:#39363a}.moduleInfoText{font-size:13px;line-height:1.58;color:#5e5852;white-space:pre-wrap}.moduleInfoSpecGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.moduleInfoSpec{min-height:65px;padding:11px 12px;border-radius:16px;background:rgba(255,255,255,.70);border:1px solid rgba(54,46,39,.08)}.moduleInfoSpec span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.055em;color:#8b8178;font-weight:800}.moduleInfoSpec b{display:block;margin-top:5px;font-size:13px;color:#242326;line-height:1.3}.moduleInfoSpec.wide{grid-column:1/-1}
.moduleInfoChips{display:flex;flex-wrap:wrap;gap:7px}.moduleInfoChip{padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.68);border:1px solid rgba(45,42,38,.09);font-size:11px;font-weight:800;color:#4c4742}
.moduleInfoGallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.moduleInfoGalleryItem{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#ebe5dd;border:1px solid rgba(40,36,32,.08);cursor:zoom-in}.moduleInfoGalleryItem img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.moduleInfoGalleryItem:hover img{transform:scale(1.035)}.moduleInfoGalleryTag{position:absolute;left:8px;bottom:8px;padding:5px 8px;border-radius:999px;background:rgba(25,25,28,.70);color:#fff;font-size:9px;font-weight:900;backdrop-filter:blur(8px)}
.moduleInfoLinks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.moduleInfoLink{height:42px;border-radius:13px;border:1px solid rgba(42,38,34,.11);background:rgba(255,255,255,.72);display:flex;align-items:center;justify-content:center;text-decoration:none;color:#252326;font-size:12px;font-weight:900;cursor:pointer}.moduleInfoLink:hover{background:#fff}
.moduleInfoActions{position:absolute;left:0;right:0;bottom:0;z-index:9;padding:12px 16px 16px;background:linear-gradient(180deg,rgba(250,249,247,0),rgba(250,249,247,.94) 22%,rgba(250,249,247,.99));display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:8px}.moduleInfoActions button{min-height:43px;border-radius:14px;border:1px solid rgba(38,38,40,.12);background:rgba(255,255,255,.90);font-size:11px;font-weight:900;padding:7px 8px}.moduleInfoActions button.primary{background:#202124;color:#fff;border-color:#202124}.moduleInfoActions button.active{background:#eadfce;color:#5f472d;border-color:#d7bea2}.moduleInfoActions button:disabled{opacity:.45;cursor:not-allowed}.moduleInfoActions .wide{grid-column:span 2}
.moduleCompareTray{position:fixed;right:24px;bottom:24px;z-index:175;display:none;align-items:center;gap:10px;padding:10px 10px 10px 13px;border-radius:18px;background:rgba(32,33,36,.93);color:#fff;box-shadow:0 20px 52px rgba(0,0,0,.28);backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08)}.moduleCompareTray.show{display:flex}.moduleCompareTray b{font-size:12px}.moduleCompareTray button{height:34px;border-radius:11px;border:none;background:#fff;color:#202124;font-weight:900;padding:0 12px;cursor:pointer}.moduleCompareTray .moduleCompareTrayClose{width:34px;padding:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:20px;line-height:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.13)}.moduleCompareTray .moduleCompareTrayClose:hover{background:rgba(255,255,255,.23)}
.moduleCompareOverlay{position:fixed;inset:0;z-index:195;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(17,17,19,.44);backdrop-filter:blur(10px)}.moduleCompareOverlay.show{display:flex}.moduleComparePanel{width:min(1120px,calc(100vw - 26px));max-height:calc(100vh - 26px);overflow:auto;border-radius:26px;background:#f8f6f2;border:1px solid rgba(255,255,255,.72);box-shadow:0 36px 110px rgba(0,0,0,.30);padding:18px}.moduleCompareHead{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.moduleCompareHead h3{margin:0;font-size:22px}.moduleCompareGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.moduleCompareCard{border-radius:20px;background:#fff;border:1px solid #e9e2d9;padding:12px}.moduleCompareCard img{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:15px;background:#f1ede7}.moduleCompareCard h4{margin:11px 0 4px;font-size:15px}.moduleCompareCard p{margin:0 0 10px;color:#7d746c;font-size:11px}.moduleCompareRows{display:grid;gap:6px}.moduleCompareRow{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid #eee8e0;font-size:11px}.moduleCompareRow span{color:#8a8179}.moduleCompareRow b{text-align:right;color:#29272a}
.moduleInfoFullscreen{position:fixed;inset:0;z-index:205;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(10,10,12,.86);cursor:zoom-out}.moduleInfoFullscreen.show{display:flex}.moduleInfoFullscreen img{max-width:96vw;max-height:94vh;object-fit:contain;border-radius:16px;box-shadow:0 28px 90px rgba(0,0,0,.4)}
@media(max-width:720px){.moduleInfoOverlay.show{background:rgba(18,18,20,.30)}.moduleInfoDrawer{top:auto;left:0;right:0;bottom:0;width:100%;height:min(88vh,900px);border-left:none;border-top:1px solid rgba(255,255,255,.82);border-radius:26px 26px 0 0;transform:translateY(105%);box-shadow:0 -30px 80px rgba(0,0,0,.28)}.moduleInfoOverlay.show .moduleInfoDrawer{transform:translateY(0)}.moduleInfoHeader{padding:16px 15px 12px}.moduleInfoHeader::before{content:'';position:absolute;left:50%;top:7px;width:44px;height:4px;border-radius:999px;background:#d0c8be;transform:translateX(-50%)}.moduleInfoHeader h2{font-size:20px}.moduleInfoBody{padding:13px 14px 168px}.moduleInfoSpecGrid{grid-template-columns:1fr}.moduleInfoSpec.wide{grid-column:auto}.moduleInfoGallery{grid-template-columns:1fr 1fr}.moduleInfoActions{grid-template-columns:1fr 1fr;padding:12px}.moduleInfoActions .wide{grid-column:span 2}.moduleCompareTray{right:12px;left:12px;bottom:12px;justify-content:space-between}.moduleComparePanel{padding:13px;border-radius:21px}.modelInfoIconBtn{width:32px;height:32px}}


/* AIVELI visualizer brand, aligned with the main menu */
.logo{padding:10px 16px;display:flex;align-items:center;justify-content:flex-start;gap:13px;min-width:0;overflow:hidden}
.aiveliVisualizerBrand{display:flex;align-items:center;gap:9px;min-width:0;flex:0 1 auto}
.aiveliBrandMark{display:grid;grid-template-columns:repeat(3,6px);gap:2px;align-items:end;width:22px;height:24px;flex:0 0 22px}.aiveliBrandMark i{display:block;border-radius:8px;background:#14201d;transform:rotate(14deg)}.aiveliBrandMark i:nth-child(1){height:12px}.aiveliBrandMark i:nth-child(2){height:21px;background:#54b990}.aiveliBrandMark i:nth-child(3){height:16px;background:#719ad4}
.aiveliBrandCopy{display:flex;flex-direction:column;line-height:1;white-space:nowrap}.aiveliBrandCopy strong{font-size:14px;letter-spacing:.17em}.aiveliBrandCopy small{margin-top:4px;color:#807a72;font-size:7px;letter-spacing:.11em;text-transform:uppercase}
.visualizerBrandDivider{width:1px;height:30px;background:#ded9d0;flex:0 0 1px}.logoText{min-width:0}.logo b{font-size:16px;line-height:1.12;display:block;white-space:nowrap;max-width:none}
@media(max-width:720px){.logo{padding:9px 10px;gap:9px}.aiveliBrandMark{transform:scale(.88);transform-origin:left center}.aiveliBrandCopy strong{font-size:12px}.aiveliBrandCopy small{font-size:6px}.visualizerBrandDivider{height:25px}.logo b{font-size:14px}}


.kimbolSceneFloatBtn{display:none;position:absolute;z-index:95;height:38px;padding:0 15px;border-radius:999px;border:1px solid rgba(24,24,26,.12);background:rgba(255,255,255,.78);color:#151515;font-size:12px;font-weight:950;letter-spacing:-.01em;box-shadow:0 16px 42px rgba(0,0,0,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);pointer-events:auto;transform:translate3d(0,0,0);transition:opacity .18s ease,transform .18s ease,background .18s ease,color .18s ease}.kimbolSceneFloatBtn:hover{background:#111;color:#fff;transform:translateY(-1px)}.kimbolSceneFloatBtn.bottom{background:rgba(17,17,17,.82);color:#fff;border-color:rgba(255,255,255,.18)}.kimbolSceneFloatBtn.bottom:hover{background:#000}
.kimbolConfigIconBtn{position:absolute;right:52px;top:10px;width:34px;height:34px;border-radius:13px;border:1px solid rgba(0,0,0,.10);background:rgba(255,255,255,.88);display:grid;place-items:center;padding:0;z-index:6;box-shadow:0 10px 24px rgba(0,0,0,.08)}
.kimbolConfigIconBtn svg{width:18px;height:18px;fill:none;stroke:#222;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.kimbolConfigIconBtn:hover{background:#111;color:#fff}.kimbolConfigIconBtn:hover svg{stroke:#fff}
.kimbolCfgOverlay{position:fixed;inset:0;z-index:190;background:rgba(18,18,20,0);pointer-events:none;transition:background .28s ease}.kimbolCfgOverlay.show{background:rgba(18,18,20,.22);pointer-events:auto}.kimbolCfgPanel{position:absolute;right:18px;top:18px;bottom:18px;width:min(1080px,calc(100vw - 36px));display:grid;grid-template-columns:minmax(380px,1fr) minmax(360px,440px);gap:16px;background:rgba(250,249,247,.98);border:1px solid rgba(255,255,255,.82);border-radius:28px;box-shadow:0 34px 120px rgba(0,0,0,.24);transform:translateY(24px) scale(.985);opacity:0;transition:transform .32s cubic-bezier(.2,.85,.2,1),opacity .28s ease;overflow:hidden;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.kimbolCfgOverlay.show .kimbolCfgPanel{transform:translateY(0) scale(1);opacity:1}.kimbolCfgPreview{position:relative;background:linear-gradient(145deg,#f4efe7,#ffffff);border-right:1px solid rgba(70,58,46,.08);display:grid;grid-template-rows:auto 1fr auto;min-height:0}.kimbolCfgPreviewHead{padding:18px 18px 12px}.kimbolCfgPreviewHead h3{margin:0;font-size:22px;letter-spacing:-.02em}.kimbolCfgPreviewHead p{margin:6px 0 0;color:#796f64;font-size:12px;line-height:1.45}.kimbolCfgCanvasWrap{position:relative;margin:0 18px 14px;border-radius:24px;overflow:hidden;background:radial-gradient(circle at 50% 18%,#fff 0,#f1ebe2 56%,#e1d6c9 100%);min-height:420px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}.kimbolCfgCanvas{width:100%;height:100%;display:block}.kimbolCfgStatus{position:absolute;left:14px;top:14px;padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(220,210,198,.8);font-size:11px;font-weight:900;color:#554a3f;backdrop-filter:blur(10px)}.kimbolCfgPreviewFoot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 18px;color:#7a7066;font-size:12px}.kimbolCfgControls{padding:18px 18px 104px;overflow:auto}.kimbolCfgTop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.kimbolCfgTitle{font-size:20px;font-weight:950;color:#1d1d20;line-height:1.15}.kimbolCfgClose{width:40px;height:40px;border-radius:50%;border:1px solid rgba(30,30,32,.12);background:#fff;font-size:22px;display:grid;place-items:center}.kimbolCfgSection{border:1px solid rgba(220,210,198,.86);background:#fff;border-radius:22px;padding:14px;margin:12px 0;box-shadow:0 10px 26px rgba(0,0,0,.035)}.kimbolCfgSection h4{margin:0 0 12px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:#4d453c}.kimbolCfgGrid{display:grid;gap:10px}.kimbolCfgField{display:grid;gap:7px;font-size:12px;font-weight:900;color:#51483f}.kimbolCfgPills{display:flex;flex-wrap:wrap;gap:9px}.kimbolCfgPill{height:36px;border-radius:999px;border:1px solid #e2dacd;background:#fff;padding:0 14px;font-weight:900;font-size:12px}.kimbolCfgPill.active{background:#111;color:#fff;border-color:#111}.kimbolCfgSwatches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kimbolCfgSwatch{display:flex;align-items:center;gap:10px;min-height:44px;border-radius:15px;border:1px solid #e5dccf;background:#fff;padding:8px 10px;text-align:left;font-size:12px;font-weight:900;white-space:normal}.kimbolCfgSwatch.active{border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.06)}.kimbolCfgDot{width:24px;height:24px;border-radius:50%;background:#e9e2d8;background-size:cover;background-position:center;border:1px solid rgba(0,0,0,.12);flex:0 0 auto}.kimbolCfgHandleRow{display:flex;gap:9px}.kimbolCfgHandle{flex:1;height:42px;border-radius:14px;border:1px solid #e3d8c9;background:#fff;font-weight:900}.kimbolCfgHandle.active{background:#111;color:#fff;border-color:#111}.kimbolCfgActions{position:absolute;right:0;bottom:0;width:min(440px,calc(100% - 380px));display:flex;gap:10px;padding:14px 18px;background:linear-gradient(180deg,rgba(250,249,247,.35),rgba(250,249,247,.98) 38%);border-top:1px solid rgba(80,70,60,.08)}.kimbolCfgActions button{flex:1;height:44px;border-radius:15px}.kimbolCfgActions .primary{background:#111;color:#fff;border-color:#111}.kimbolCfgNote{font-size:12px;line-height:1.45;color:#7a7066;background:#f6f1ea;border:1px solid #e9dfd1;border-radius:16px;padding:10px 12px}.kimbolCfgPreviewToggle{height:42px;border-radius:14px;border:1px solid #e3d8c9;background:#fff;font-weight:900}.kimbolCfgPreviewToggle.active{background:#111;color:#fff;border-color:#111}.kimbolPerfBox{display:grid;gap:8px;font-size:12px;line-height:1.45;color:#4f463c}.kimbolPerfLine{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed rgba(80,70,60,.16);padding:6px 0}.kimbolPerfLine b{color:#191919}.kimbolPerfSmall{color:#7a7066;font-size:11px;line-height:1.45}.kimbolFillingCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kimbolFillingCard{border:1px solid #e2dacd;background:#fff;border-radius:16px;padding:10px;text-align:left;display:grid;gap:8px;min-height:132px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.kimbolFillingCard:hover{transform:translateY(-1px);border-color:#bbb0a2}.kimbolFillingCard.active{border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.06)}.kimbolFillingSvg{width:100%;height:84px;border-radius:10px;background:#fbfaf8}.kimbolFillingName{font-size:12px;font-weight:950;color:#222}.kimbolFillingSub{font-size:11px;color:#665d53;line-height:1.25}@media(max-width:520px){.kimbolFillingCards{grid-template-columns:1fr}}.kimbolCfgActions .secondary{background:#fff;color:#111;border-color:#ded4c6}.kimbolCfgSizeLocked{opacity:.72}.kimbolCfgSizeLocked .kimbolCfgPills{display:none}@media(max-width:880px){.kimbolCfgPanel{grid-template-columns:1fr;overflow:auto}.kimbolCfgControls{padding-bottom:90px}.kimbolCfgCanvasWrap{min-height:320px}.kimbolCfgActions{position:sticky;width:auto;right:auto;bottom:0}}



/* v64 Kimbol configurator polish */
.kimbolFillingCards{align-items:stretch;gap:12px!important}
.kimbolFillingCard{min-height:124px!important;overflow:hidden;align-content:start}
.kimbolFillingCard.active{background:linear-gradient(145deg,#2d2d2f,#111)!important;border-color:#111!important;box-shadow:0 14px 32px rgba(0,0,0,.18)!important}
.kimbolFillingCard.active .kimbolFillingName{color:#fff!important}
.kimbolFillingCard.active .kimbolFillingSub{color:rgba(255,255,255,.88)!important}
.kimbolFillingCard.active .kimbolFillingSvg{background:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.kimbolFillingSvg{height:76px!important;max-height:76px!important;object-fit:contain!important}.kimbolCfgCanvasWrap{background:linear-gradient(180deg,#f7f2eb 0%,#f0ebe4 64%,#e8e4de 100%)!important}.kimbolCfgCanvas{filter:contrast(1.03) saturate(1.04)}
#kimbolCfgPerforationBtn{margin-bottom:12px}
#kimbolCfgPerforationResult{margin-top:2px}


.kimbolPreviewDoorFloat{position:absolute;left:16px;bottom:16px;z-index:7;height:40px;padding:0 15px;border-radius:999px;border:1px solid rgba(255,255,255,.72);background:rgba(255,255,255,.86);color:#151515;font-size:12px;font-weight:950;box-shadow:0 14px 34px rgba(0,0,0,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.kimbolPreviewDoorFloat:hover{background:#111;color:#fff;border-color:#111}.kimbolPreviewDoorFloat.active{background:#111;color:#fff;border-color:#111}
.kimbolFillingCard.active .kimbolFillingName{color:#fff!important}.kimbolFillingCard.active .kimbolFillingSub{color:rgba(255,255,255,.9)!important}.kimbolFillingCard.active .kimbolFillingSvg{background:#fff!important}

/* AIVELI 3D scene controls and realistic category cards */
.hiddenCopyrightMarker{display:none!important}
.catalogQuickCategories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:13px 0 15px}
.catalogQuickCard{position:relative;min-height:106px;padding:0;border:1px solid rgba(38,31,25,.12);border-radius:17px;overflow:hidden;background:#e9e3dc;cursor:pointer;box-shadow:0 10px 28px rgba(37,30,24,.1);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.catalogQuickCard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(22,18,15,.2));pointer-events:none}
.catalogQuickCard:hover{transform:translateY(-3px);box-shadow:0 15px 34px rgba(37,30,24,.16)}
.catalogQuickCard.active{border-color:#26211d;box-shadow:0 0 0 1px #26211d,0 15px 34px rgba(37,30,24,.16)}
.catalogQuickCard img{display:block;width:100%;height:106px;object-fit:cover;filter:saturate(.92) contrast(1.03)}
.catalogQuickCard span{position:absolute;z-index:2;left:10px;right:10px;bottom:9px;padding:7px 9px;border:1px solid rgba(255,255,255,.44);border-radius:11px;background:rgba(250,248,245,.84);backdrop-filter:blur(10px);font-weight:800;font-size:12px;color:#201c19;text-align:center;box-shadow:0 5px 16px rgba(24,19,16,.12)}
#canvas.roomResizeHover{cursor:grab!important}
#canvas.roomResizeActive{cursor:grabbing!important}
#canvas.rightRotateActive{cursor:ew-resize!important}
@media(max-width:720px){.catalogQuickCard{min-height:88px}.catalogQuickCard img{height:88px}}
