:root{
  --bg:#e8e9ec;--panel:#f5f6f9;--panel2:#fffdfa;--ink:#1f222a;--muted:#80848c;--line:rgba(45,38,31,.10);
  --rail:76px;--library:300px;--inspector:360px;--shadow:0 24px 70px rgba(47,38,30,.12);--soft:0 10px 28px rgba(47,38,30,.07);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)
}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer;color:inherit}.hidden{display:none!important}
.shell{width:100%;height:100%;min-width:0;min-height:0;display:grid;grid-template-columns:var(--rail) var(--library) minmax(360px,1fr) var(--inspector);overflow:hidden;background:var(--bg)}
.rail{background:rgba(250,248,244,.98);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.rail-logo{height:72px;display:grid;place-items:center;border-bottom:1px solid var(--line);font-size:24px;font-weight:800;letter-spacing:.08em}.rail-nav{padding:10px 8px;display:flex;flex-direction:column;gap:5px}.rail-spacer{flex:1}.rail-item{border:0;background:transparent;border-radius:16px;padding:9px 2px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:9px;color:#63676f;transition:.18s}.rail-item:hover{background:#ecedf0}.rail-item.active{background:#fff;color:#21242c;box-shadow:var(--soft)}.rail-icon{font-size:18px;line-height:1}
.library{position:relative;background:rgba(247,244,239,.98);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;z-index:15}.brand{height:72px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line)}.brand-mark{font-size:20px;font-weight:800;letter-spacing:.18em}.brand small{font-size:8px;line-height:1.25;color:#9498a0;text-transform:uppercase;letter-spacing:.06em}.library-scroll{overflow:auto;padding:16px 14px 98px;scrollbar-width:thin;scrollbar-color:#bec1c7 transparent}.section-head{margin:0 2px 14px}.section-head h2{font-size:22px;margin:0 0 4px}.section-head p{font-size:11px;margin:0;color:var(--muted)}
.create-card{position:relative;width:100%;height:154px;border:0;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#e5e6e9,#c6c9cf);box-shadow:var(--soft);padding:0;text-align:left;margin-bottom:18px}.create-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 25%,rgba(255,255,255,.78),transparent 34%),linear-gradient(90deg,rgba(250,247,242,.97),rgba(250,247,242,.72) 48%,rgba(250,247,242,.15) 62%,rgba(250,247,242,0) 72%)}.create-cabinet-art{position:absolute;right:10px;bottom:6px;width:165px;height:138px;border-radius:18px;background:transparent url("./assets/ui/create_solution_wardrobe.png") center bottom/contain no-repeat;box-shadow:none;border:0}.create-cabinet-art:before,.create-cabinet-art:after{display:none}.create-copy{position:absolute;z-index:2;left:15px;top:20px;width:42%}.create-copy b{display:block;font-size:15px;margin-bottom:7px}.create-copy span{display:block;font-size:10px;opacity:.72;margin-top:4px}.create-chip{position:absolute;left:15px;bottom:15px;z-index:2;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.86);font-size:10px;font-weight:650;box-shadow:inset 0 0 0 1px rgba(50,42,34,.08)}
.solution-cards{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:18px}
.toggle-grid{display:grid;grid-template-columns:1fr;gap:8px}.toggle-check{display:block;padding:10px 12px;cursor:pointer}.toggle-check input{margin-right:8px}.toggle-check b{display:block;font-size:12px}.toggle-check span{display:block;font-size:10px;color:#72767e;margin-top:3px}
.catalog{display:grid;grid-template-columns:1fr 1fr;gap:11px}.cat-card,.model-card{border:0;background:#fff;border-radius:20px;overflow:hidden;text-align:left;box-shadow:var(--soft);padding:0;transition:.18s}.cat-card:hover,.model-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(47,38,30,.11)}.cat-thumb{height:105px;position:relative;overflow:hidden;background:linear-gradient(145deg,#d3d6dc,#ecedf0)}.cat-room{position:absolute;inset:0}.cat-room:before{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;background:linear-gradient(160deg,#b78358,#656971)}.cat-room:after{content:"";position:absolute;right:12px;top:14px;width:34px;height:48px;background:#d9e4e8;border:4px solid #e8e9ec}.mini-sofa{position:absolute;left:30px;bottom:22px;width:70px;height:28px;border-radius:13px 13px 9px 9px;background:#dde0e6;z-index:2;box-shadow:0 8px 9px rgba(44,31,21,.12)}.mini-sofa:before{content:"";position:absolute;left:7px;right:7px;top:-14px;height:20px;border-radius:11px;background:#eaebee}.mini-chair{position:absolute;left:48px;bottom:24px;width:40px;height:38px;border-radius:17px 17px 10px 10px;background:#c9ccd2;z-index:2}.mini-table{position:absolute;left:31px;bottom:26px;width:78px;height:15px;border-radius:50%;background:#93979f;z-index:2}.mini-table:after{content:"";position:absolute;left:34px;top:12px;width:11px;height:33px;border-radius:5px;background:#555961}.cat-copy{padding:10px 11px 12px}.cat-copy b{display:block;font-size:12px;margin-bottom:4px}.cat-copy span{display:block;font-size:9px;color:var(--muted)}
.model-list{display:grid;gap:10px}.model-card{display:grid;grid-template-columns:104px 1fr;gap:11px;padding:10px}.model-preview{width:104px;height:88px;border-radius:15px;overflow:hidden;background:linear-gradient(#d3d6dc 0 55%,#7a7e86 55%)}.model-preview .mini-sofa{left:17px;bottom:19px}.model-copy{padding-top:5px}.model-copy b{display:block;font-size:12px;margin-bottom:5px}.model-copy span{font-size:9px;color:var(--muted);line-height:1.4}.model-copy em{display:inline-block;margin-top:9px;font-style:normal;font-size:9px;padding:6px 8px;border-radius:999px;background:#eeeff2}.back-btn{border:0;background:#fff;border-radius:12px;padding:9px 11px;font-size:10px;box-shadow:var(--soft);margin-bottom:12px}
.profile{position:absolute;left:0;right:0;bottom:0;height:82px;background:rgba(247,244,239,.98);border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:12px 14px;z-index:30}.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#a1a5ad,#2e3139);position:relative}.avatar:before{content:"";position:absolute;left:14px;top:8px;width:14px;height:14px;border-radius:50%;background:#d8dbe1}.avatar:after{content:"";position:absolute;left:7px;top:23px;width:28px;height:16px;border-radius:50% 50% 8px 8px;background:#282b33}.profile-copy{min-width:0;flex:1}.profile-copy b{display:block;font-size:11px}.profile-copy span{font-size:8px;color:var(--muted)}.plan{padding:9px 11px;border-radius:12px;background:#fff;font-size:10px;box-shadow:inset 0 0 0 1px var(--line)}
.viewport{position:relative;min-width:0;min-height:0;overflow:hidden;background:#bec1c7;contain:layout paint size}.viewport canvas{position:absolute;left:0;top:0;display:block;max-width:none;max-height:none;touch-action:none}.topbar{position:absolute;left:0;right:0;top:0;height:66px;z-index:10;padding:0 18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#fff;background:linear-gradient(180deg,rgba(47,40,34,.55),rgba(47,40,34,.08));border-bottom:1px solid rgba(255,255,255,.16);pointer-events:none}.topbar>*{pointer-events:auto}.project-btn{border:0;background:transparent;color:#fff;font-size:11px}.modes{display:flex;padding:4px;border-radius:12px;background:rgba(255,255,255,.14);backdrop-filter:blur(15px)}.modes button{border:0;background:transparent;color:rgba(255,255,255,.75);padding:9px 20px;border-radius:9px;font-size:10px}.modes button.active{background:#fff;color:#24272f}.scene-actions{justify-self:end;display:flex;gap:7px}.round-btn{width:38px;height:38px;border:0;border-radius:12px;background:rgba(255,255,255,.10);color:#fff;font-size:17px}.round-btn:hover{background:rgba(255,255,255,.18)}.light-pop{position:absolute;z-index:25;top:60px;right:16px;width:220px;border-radius:18px;padding:10px;background:rgba(250,248,244,.96);box-shadow:var(--shadow);display:none}.light-pop.open{display:block}.light-opt{width:100%;border:0;background:transparent;border-radius:12px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left}.light-opt:hover,.light-opt.active{background:#eaebee}.light-dot{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.scene-toolbar{position:absolute;z-index:12;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:6px;border-radius:16px;background:rgba(49,42,36,.68);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);box-shadow:0 18px 36px rgba(34,27,21,.25)}.scene-toolbar button{border:0;background:transparent;color:#eff0f3;border-radius:11px;padding:8px 12px;font-size:9px}.scene-toolbar button.active,.scene-toolbar button:hover{background:rgba(255,255,255,.13)}.status-pill{position:absolute;left:16px;bottom:20px;z-index:9;padding:8px 10px;border-radius:999px;background:rgba(250,248,244,.78);backdrop-filter:blur(12px);font-size:9px;color:#545860;box-shadow:var(--soft)}
.inspector{background:#fbf9f6;border-left:1px solid var(--line);display:flex;flex-direction:column;z-index:18;min-width:0}.inspector-top{height:72px;display:flex;align-items:center;justify-content:center;gap:10px;border-bottom:1px solid var(--line);padding:10px}.action{height:42px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 16px;font-size:10px}.action.primary{background:#20232b;color:#fff;border-color:#20232b}.inspector-scroll{overflow:auto;padding-bottom:30px}.object-head{padding:18px;display:grid;grid-template-columns:70px 1fr auto;gap:11px;align-items:center}.obj-thumb{width:70px;height:58px;border-radius:13px;background:linear-gradient(#d3d6dc 0 55%,#7c8088 55%);position:relative;overflow:hidden}.obj-thumb .mini-sofa{transform:scale(.55);transform-origin:left bottom;left:15px;bottom:12px}.obj-title b{display:block;font-size:13px}.obj-title small{font-size:8px;color:#888c94;letter-spacing:.08em}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 16px 14px;padding:4px;border-radius:13px;background:#ecedf0}.tabs button{border:0;background:transparent;border-radius:9px;padding:9px 6px;font-size:10px;color:#696d75}.tabs button.active{background:#fff;color:#20232b;box-shadow:var(--soft)}.group{margin:0 16px 12px;padding:14px;border-radius:18px;background:#fff;box-shadow:0 10px 23px rgba(47,38,30,.045),inset 0 0 0 1px rgba(50,42,34,.06)}.group-title{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#676b73;margin-bottom:11px}.row{display:grid;grid-template-columns:76px 1fr 54px;gap:8px;align-items:center;margin:10px 0}.row label{font-size:10px;color:#63676f}.row input[type=range]{width:100%;accent-color:#3a3d45}.value{font-size:9px;text-align:right;padding:7px 6px;border-radius:9px;background:#f2f3f6}.select{width:100%;border:1px solid var(--line);background:#fbfaf8;border-radius:11px;padding:10px 9px;font-size:10px}.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.swatch{height:38px;border:2px solid transparent;border-radius:11px;box-shadow:inset 0 0 0 1px rgba(50,42,34,.10)}.swatch.active{border-color:#32353d;box-shadow:0 0 0 2px #fff,0 0 0 3px #6c7078}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preset{border:1px solid var(--line);background:#fbfaf8;border-radius:11px;padding:9px;text-align:left;font-size:9px}.preset b{display:block;font-size:10px;margin-bottom:3px}.empty-inspector{padding:28px 18px;color:#6a6e76;font-size:11px;line-height:1.55}.ai-fab{position:absolute;right:18px;bottom:26px;z-index:15;border:0;border-radius:999px;padding:12px 16px;background:#f3f4f7;box-shadow:var(--shadow);font-size:10px}.ai-modal{position:fixed;z-index:100;inset:0;background:rgba(28,24,20,.20);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding-top:90px}.ai-modal.open{display:flex}.ai-box{width:min(680px,calc(100vw - 28px));background:#f7f8fb;border-radius:22px;padding:16px;box-shadow:0 32px 90px rgba(33,27,21,.30)}.ai-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#666a72}.ai-head button{border:0;background:transparent}.ai-box input{width:100%;margin-top:12px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px;font-size:13px;outline:none}.ai-help{font-size:9px;color:#7e828a;margin-top:8px;line-height:1.45}.toast{position:fixed;z-index:120;left:50%;top:82px;transform:translate(-50%,-10px);opacity:0;pointer-events:none;background:#1f222a;color:#fff;border-radius:11px;padding:9px 13px;font-size:9px;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.fatal{position:absolute;inset:0;z-index:80;display:grid;place-items:center;background:#eaebee}.fatal-card{width:min(520px,calc(100% - 30px));text-align:center;padding:28px;background:#f7f8fb;border-radius:22px;box-shadow:var(--shadow)}.fatal-card h2{margin:0 0 8px}.fatal-card p{font-size:11px;color:#71757d;line-height:1.5}.version-badge{position:fixed;z-index:200;left:8px;bottom:8px;font-size:8px;color:#8d9199;pointer-events:none}
@media(max-width:1180px){:root{--rail:68px;--library:260px;--inspector:318px}.brand small{display:none}.catalog{grid-template-columns:1fr 1fr}.topbar{grid-template-columns:auto 1fr auto}.modes{justify-self:center}.scene-toolbar{bottom:18px}.inspector-top .action:first-child{display:none}}
@media(max-width:900px){.shell{grid-template-columns:64px minmax(0,1fr)}.library{position:absolute;left:64px;top:0;bottom:0;width:min(340px,calc(100vw - 64px));transform:translateX(-105%);transition:.22s;box-shadow:var(--shadow)}.library.open{transform:none}.viewport{grid-column:2}.inspector{position:absolute;z-index:40;right:0;top:0;bottom:0;width:min(360px,calc(100vw - 64px));transform:translateX(105%);transition:.22s;box-shadow:var(--shadow)}.inspector.open{transform:none}.topbar{left:0}.rail-item{min-height:54px}.brand{height:64px}.scene-toolbar{bottom:14px}.ai-fab{right:12px;bottom:72px}}
@media(max-width:600px){.rail{width:58px}.shell{grid-template-columns:58px minmax(0,1fr)}.library{left:58px;width:calc(100vw - 58px)}.inspector{width:calc(100vw - 58px)}.rail-item{font-size:8px}.rail-icon{font-size:16px}.topbar{height:auto;min-height:58px;padding:8px;grid-template-columns:1fr auto}.project-btn{display:none}.modes{grid-column:1}.scene-actions{grid-column:2}.modes button{padding:8px 12px}.scene-toolbar{left:10px;right:10px;transform:none;justify-content:center}.scene-toolbar button{padding:8px 9px}.status-pill{display:none}.ai-fab{bottom:70px}.object-head{padding:14px}.group{margin-left:10px;margin-right:10px}.tabs{margin-left:10px;margin-right:10px}}

.velour-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.velour-swatch{border:1px solid rgba(60,48,36,.09);border-radius:14px;background:#fff;padding:7px;display:grid;grid-template-columns:38px 1fr;align-items:center;gap:8px;text-align:left;cursor:pointer;transition:.18s ease;min-width:0}
.velour-swatch:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(50,39,28,.07)}
.velour-swatch.active{border-color:#2f323a;box-shadow:inset 0 0 0 1px #2f323a,0 8px 18px rgba(50,39,28,.06)}
.velour-swatch span{width:38px;height:38px;border-radius:50%;display:block;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.velour-swatch b{font-size:10px;line-height:1.2;color:#32353d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:700px){.velour-grid{grid-template-columns:1fr}.velour-swatch{grid-template-columns:34px 1fr}.velour-swatch span{width:34px;height:34px}}

.current-build{margin-left:auto;align-self:center;padding:6px 8px;border-radius:999px;background:#22252d;color:#fff;font-size:7px;letter-spacing:.07em;font-weight:700;white-space:nowrap;box-shadow:0 5px 14px rgba(36,30,24,.12)}
.version-badge{background:rgba(250,247,242,.88);padding:4px 7px;border-radius:999px;box-shadow:0 3px 10px rgba(31,25,20,.08);color:#454850!important;font-weight:700}

.cat-thumb.icon-thumb,.model-preview.icon-thumb{background:linear-gradient(145deg,#f1f2f5,#e7e8eb);display:flex;align-items:center;justify-content:center;padding:9px}
.cat-thumb.icon-thumb:after,.cat-thumb.icon-thumb:before{display:none!important}
.cat-icon{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 7px 9px rgba(42,34,27,.13))}
.model-preview.icon-thumb{height:88px}
.model-preview.icon-thumb .cat-icon{max-width:100%;max-height:100%}
.light-btn-text{height:38px;min-width:62px;border:0;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;padding:0 14px;font-size:11px;font-weight:650;letter-spacing:.01em}
.light-btn-text:hover{background:rgba(255,255,255,.20)}
.profile{border:0;text-align:left;width:100%;cursor:pointer;color:inherit}
.profile:hover{background:#edeef1}
.profile-modal{position:fixed;inset:0;z-index:140;background:rgba(35,29,24,.24);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:20px}
.profile-modal.open{display:flex}
.profile-box{width:min(420px,calc(100vw - 28px));background:#f7f8fb;border-radius:22px;padding:18px;box-shadow:0 32px 90px rgba(33,27,21,.28)}
.profile-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:14px}
.profile-modal-head button{border:0;background:transparent;font-size:15px}
.profile-box label{display:block;font-size:10px;color:#666a72;margin:10px 0}
.profile-box input,.profile-box select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;color:#252830;outline:none}
.profile-save{width:100%;border:0;border-radius:12px;background:#21242c;color:#fff;padding:12px;margin-top:8px;font-size:11px;font-weight:650}
.about-text{font-size:10px;line-height:1.6;color:#63676f;margin:0}
.model-meta{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:9px;color:#73777f}.model-meta b{color:#2c2f37}
.icon-object-thumb,.cabinet-thumb{background:linear-gradient(145deg,#eeeff2,#dcdfe5);display:flex;align-items:center;justify-content:center;padding:6px}.icon-object-thumb img,.cabinet-thumb img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(40,32,25,.12))}
.window-thumb{background:linear-gradient(145deg,#dbe7ea,#f3f4f7);box-shadow:inset 0 0 0 6px #eaebee}
.current-build{background:#262931}

@media(max-width:1440px){
  :root{--rail:64px;--library:248px;--inspector:300px}
  .brand{padding:0 12px}.brand-mark{font-size:18px}.current-build{font-size:6px;padding:5px 6px}
  .library-scroll{padding-left:11px;padding-right:11px}.catalog{gap:9px}.cat-thumb{height:92px}
  .topbar{padding-left:12px;padding-right:12px}.modes button{padding:8px 16px}.inspector-top{padding:8px}.action{padding:0 12px}
}
@media(max-width:1120px){
  :root{--rail:60px;--library:228px;--inspector:282px}
  .brand small{display:none}.section-head h2{font-size:19px}.create-card{height:140px}.create-copy span{font-size:9px}.cat-thumb{height:86px}
  .scene-toolbar{bottom:16px}.ai-fab{right:12px}.status-pill{display:none}.object-head{padding:14px}.group{margin-left:10px;margin-right:10px}.tabs{margin-left:10px;margin-right:10px}
}
@media(max-width:900px){
  .inspector.open,.library.open{transform:none}
  .inspector-top{height:64px}
}
@media(max-width:700px){
  .light-btn-text{min-width:54px;padding:0 10px}.round-btn{width:36px;height:36px}.modes button{padding:8px 11px}
  .scene-actions{gap:5px}.topbar{min-height:56px}.profile{height:74px}.library-scroll{padding-bottom:88px}
}
@media(max-height:760px) and (min-width:901px){
  .brand{height:58px}.profile{height:66px;padding:8px 12px}.avatar{width:36px;height:36px}.library-scroll{padding-top:12px;padding-bottom:76px}
  .rail-logo{height:58px}.rail-nav{padding-top:6px}.rail-item{min-height:49px;padding:6px 2px}.inspector-top{height:58px}.topbar{height:58px}.scene-toolbar{bottom:12px}.ai-fab{bottom:14px}
}

.exterior-motion-btn{width:100%;margin-top:10px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.exterior-motion-btn:hover{transform:translateY(-1px);background:#eff0f3;box-shadow:0 8px 18px rgba(52,43,34,.08)}

.cabinet-material-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cabinet-material{border:1px solid rgba(60,48,36,.09);border-radius:14px;background:#fff;padding:7px;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px;text-align:left;cursor:pointer;transition:.18s ease;min-width:0}
.cabinet-material:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(50,39,28,.07)}
.cabinet-material.active{border-color:#2f323a;box-shadow:inset 0 0 0 1px #2f323a,0 8px 18px rgba(50,39,28,.06)}
.cabinet-material span{width:42px;height:42px;border-radius:10px;display:block;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.cabinet-material b{font-size:9px;line-height:1.2;color:#32353d;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.cabinet-material-grid{grid-template-columns:1fr}.cabinet-material{grid-template-columns:38px 1fr}.cabinet-material span{width:38px;height:38px}}


.library,.inspector,.rail{min-height:0;overflow:hidden}.library-scroll,.inspector-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.rail-nav{min-height:0;overflow-y:auto;overscroll-behavior:contain}.row input[type="range"]{width:100%;accent-color:#3e4149;cursor:ew-resize}.row input[type="range"]::-webkit-slider-thumb{cursor:grab}.row input[type="range"]:active::-webkit-slider-thumb{cursor:grabbing}.value{font-variant-numeric:tabular-nums;white-space:nowrap}
.exterior-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.exterior-type-grid button{border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 5px;font-size:9px;transition:.16s}.exterior-type-grid button:hover{background:#edeef1}.exterior-type-grid button.active{background:#24272f;color:#fff;border-color:#24272f;box-shadow:0 6px 14px rgba(40,32,25,.13)}
@media(max-width:1050px) and (min-width:901px){.shell{grid-template-columns:60px minmax(0,1fr)}.library{position:absolute;left:60px;top:0;bottom:0;width:min(320px,calc(100vw - 60px));box-shadow:var(--shadow);z-index:35}.viewport{grid-column:2}.inspector{position:absolute;right:0;top:0;bottom:0;width:min(330px,calc(100vw - 60px));box-shadow:var(--shadow);z-index:36}.library-scroll,.inspector-scroll{overflow:auto}.topbar{left:0}.current-build{display:none}}
@media(max-height:620px){.library-scroll,.inspector-scroll,.rail-nav{overflow-y:auto}.create-card{height:120px}.group{margin-top:8px;margin-bottom:8px}.object-head{padding-top:10px;padding-bottom:10px}.tabs{margin-bottom:8px}.profile{height:60px}.library-scroll{padding-bottom:70px}}


.solution-object-thumb{background:#ecedf0!important;display:grid;place-items:center}.solution-object-thumb img{width:100%;height:100%;object-fit:cover}
.solution-switch{margin:0 16px 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.solution-switch button{border:1px solid var(--line);background:#fff;border-radius:16px;padding:7px;display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:center;text-align:left;min-width:0}.solution-switch button.active{border-color:#34373f;box-shadow:0 0 0 1px #34373f,inset 0 0 0 1px #fff}.solution-switch img{width:52px;height:48px;object-fit:cover;border-radius:10px;background:#e9eaed}.solution-switch b{font-size:10px;display:block}.solution-switch small{display:block;font-size:7px;color:#8a8e96;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sketch-upload{margin-bottom:10px}.sketch-drop{width:100%;min-height:118px;border:1px dashed #afb2b8;border-radius:14px;background:#fbf9f6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;overflow:hidden}.sketch-drop>span{font-size:22px;color:#777b83}.sketch-drop>b{font-size:10px}.sketch-drop>small{font-size:8px;color:#858991}.sketch-drop img{width:100%;height:150px;object-fit:contain;background:#fff;border-radius:9px}.sketch-dims{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sketch-dims label,.mini-label{font-size:8px;color:#6f737b}.sketch-dims input{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:9px;background:#fbfaf8;padding:8px 6px;font-size:9px}.sketch-result{margin-top:9px;padding:8px 10px;border-radius:10px;background:#eeeff2;font-size:9px;color:#5b5f67}.sketch-apply{width:100%;margin-top:9px}.sketch-apply:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:520px){.solution-switch{grid-template-columns:1fr}.sketch-dims{grid-template-columns:1fr}.solution-switch button{grid-template-columns:46px 1fr}.solution-switch img{width:46px;height:42px}}

.recognized-layout{display:grid;gap:7px;margin:8px 0 12px}.recognized-section{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 10px;padding:9px 10px;border-radius:12px;background:#eff0f3;border:1px solid rgba(65,54,43,.07)}.recognized-section b{font-size:11px}.recognized-section span{font-size:10px;color:#7c8088;text-align:right}.recognized-section small{grid-column:1/-1;font-size:9px;color:#646870}

.measure-overlay{position:absolute;inset:0;pointer-events:none;z-index:21;display:none;overflow:hidden}.measure-overlay.open{display:block}.measure-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.measure-svg .dim-main{stroke:rgba(195,228,255,.98);stroke-width:1.4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(5,17,31,.40))}.measure-svg .dim-glow{stroke:rgba(93,182,255,.22);stroke-width:5.5;vector-effect:non-scaling-stroke}.measure-svg .dim-extension{stroke:rgba(139,191,235,.68);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.measure-svg .dim-arrow{fill:none;stroke:rgba(201,233,255,1);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.measure-svg .dim.object .dim-main,.measure-svg .dim.object .dim-arrow{stroke:#8fd0ff}.measure-svg .dim.object .dim-extension{stroke:rgba(143,208,255,.62)}.measure-svg .dim.opening .dim-main,.measure-svg .dim.opening .dim-arrow{stroke:#d9f4ff}.measure-svg .dim.opening .dim-extension{stroke:rgba(217,244,255,.58)}.measure-svg .dim-label rect,.measure-svg .dim-badge rect{fill:rgba(15,30,46,.92);stroke:rgba(142,212,255,.28);stroke-width:1}.measure-svg .dim-label text,.measure-svg .dim-badge text{fill:#f3fbff;font:700 12px Inter,system-ui,-apple-system,sans-serif;letter-spacing:.01em}.measure-svg .dim.object .dim-label rect{fill:rgba(19,44,68,.95)}.measure-svg .dim.opening .dim-label rect{fill:rgba(25,55,74,.95)}.measure-svg .dim-badge.area rect{fill:rgba(14,34,51,.92)}.measure-svg .dim-badge.area text{font-size:13px}.measure-svg .dim-dot{fill:#e9f7ff;stroke:rgba(93,182,255,.35);stroke-width:1}.ruler-tool.active{background:#1f3244!important;color:#fff!important;box-shadow:0 8px 24px rgba(0,0,0,.18)}.scene-toolbar{z-index:23}

.wall-draw-hud{display:none;position:absolute;left:50%;top:86px;transform:translateX(-50%);z-index:28;min-width:190px;padding:10px 14px;border-radius:15px;background:rgba(35,31,27,.82);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.15);box-shadow:0 16px 38px rgba(24,19,15,.22);color:#fff;text-align:center;pointer-events:none}.wall-draw-hud.open{display:grid;grid-template-columns:auto auto;gap:2px 12px}.wall-draw-hud b{font-size:10px;text-align:left}.wall-draw-hud span{font-size:11px;font-weight:750;text-align:right}.wall-draw-hud small{grid-column:1/-1;font-size:7px;color:rgba(255,255,255,.62)}.wall-tool-mode .viewport canvas{cursor:crosshair}
.opening-shape-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.opening-shape-grid button{border:1px solid var(--line);background:#fff;border-radius:13px;padding:10px 8px;font-size:9px}.opening-shape-grid button span{font-size:18px;display:block;margin-bottom:4px}.opening-shape-grid button.active{background:#24272f;color:#fff;border-color:#24272f}
.exterior-material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.exterior-material-grid button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:5px;min-width:0}.exterior-material-grid button span{display:block;width:100%;aspect-ratio:1;border-radius:9px;background:#eee center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}.exterior-material-grid button b{display:block;font-size:7px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exterior-material-grid button.active{border-color:#272a32;box-shadow:inset 0 0 0 1px #272a32,0 6px 14px rgba(40,32,25,.08)}.wall-thumb{background:linear-gradient(135deg,#bbbec4,#e9eaed)}
.measure-svg .dim-glow{stroke:rgba(255,255,255,.18);stroke-width:5;vector-effect:non-scaling-stroke;stroke-linecap:round}.measure-svg .dim-main{stroke-width:1.05}.measure-svg .dim-extension{stroke-dasharray:2.5 4.5;stroke-width:.85}.measure-svg .dim-arrow{stroke-width:1.05}.measure-svg .dim-dot{fill:#fff;stroke:rgba(31,37,44,.40);stroke-width:1.2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(0,0,0,.22))}.measure-svg .dim.object .dim-dot{fill:#d7ebff}.measure-svg .dim-label rect,.measure-svg .dim-badge rect{fill:rgba(29,28,27,.86);stroke:rgba(255,255,255,.18);stroke-width:.8}.measure-svg .dim-label text,.measure-svg .dim-badge text{font-weight:650;font-size:11px}.measure-svg .dim-label{filter:drop-shadow(0 5px 12px rgba(0,0,0,.22))}


.home-head{margin-bottom:10px}.home-space-grid{display:grid;grid-template-columns:1fr;gap:12px;padding:0 2px 18px}.home-space-card{border:1px solid rgba(54,44,35,.08);background:#fff;border-radius:22px;padding:0;overflow:hidden;text-align:left;box-shadow:0 12px 28px rgba(46,37,29,.055);transition:.2s}.home-space-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(46,37,29,.09)}.home-space-art{height:150px;background:linear-gradient(145deg,#f0f1f4,#dde0e6);display:grid;place-items:center;overflow:hidden}.home-space-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(52,41,30,.12))}.home-space-card>div:last-child{padding:14px 16px 16px}.home-space-card b{display:block;font-size:15px;color:#21242c}.home-space-card span{display:block;margin-top:4px;font-size:9px;color:#7f838b}
.exterior-asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 2px 18px}.exterior-asset-card{border:1px solid rgba(55,44,34,.08);background:#fff;border-radius:20px;min-height:154px;padding:8px;display:flex;flex-direction:column;align-items:stretch;text-align:left;box-shadow:0 10px 25px rgba(47,38,30,.055);transition:.18s;touch-action:none;user-select:none}.exterior-asset-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(47,38,30,.09)}.exterior-asset-card.active{box-shadow:0 0 0 2px #2b2e36,0 14px 30px rgba(47,38,30,.10)}.exterior-asset-card img{width:100%;height:98px;object-fit:contain;border-radius:15px;background:linear-gradient(145deg,#eeeff2,#e3e4e7);pointer-events:none}.exterior-asset-card span{padding:8px 5px 3px}.exterior-asset-card b{display:block;font-size:11px;color:#272a32}.exterior-asset-card small{display:block;font-size:7.5px;color:#888c94;margin-top:3px}.exterior-drag-ghost{position:fixed;z-index:1000;width:116px;transform:translate(-50%,-50%) scale(.94);pointer-events:none;background:rgba(250,247,242,.94);border:1px solid rgba(75,61,48,.12);border-radius:18px;padding:8px;box-shadow:0 20px 55px rgba(31,24,18,.22);backdrop-filter:blur(10px);transition:transform .12s,box-shadow .12s}.exterior-drag-ghost.over-scene{transform:translate(-50%,-50%) scale(1.03);box-shadow:0 0 0 2px rgba(255,255,255,.86),0 22px 60px rgba(31,24,18,.26)}.exterior-drag-ghost img{width:100%;height:74px;object-fit:contain}.exterior-drag-ghost span{display:block;text-align:center;font-size:10px;font-weight:700;color:#272a32;margin-top:4px}.exterior-object-thumb{background:#e9eaed;display:grid;place-items:center}.exterior-object-thumb img{width:100%;height:100%;object-fit:contain}.opening-shape-grid button[data-opening-shape="arch"]{background-image:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,243,238,.98));}.opening-shape-grid button[data-opening-shape="arch"].active{background:#24272f;color:#fff}.library-scroll{padding-top:12px}
@media(max-width:1120px){.exterior-asset-grid{grid-template-columns:1fr}.exterior-asset-card{min-height:132px}.exterior-asset-card img{height:82px}}


.project-history{display:flex;align-items:center;gap:7px}.history-btn{width:36px;height:36px;border-radius:12px;border:1px solid rgba(70,58,47,.10);background:rgba(255,255,255,.64);font-size:18px;line-height:1;color:#30333b;box-shadow:0 5px 14px rgba(48,39,31,.04);transition:.16s}.history-btn:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.history-btn:disabled{opacity:.28;cursor:default;box-shadow:none}
.wall-guide-overlay{position:absolute;inset:0;z-index:29;pointer-events:none;display:none}.wall-guide-overlay.open{display:block}.wall-guide-svg{width:100%;height:100%;overflow:visible}.wall-guide-svg .wg-line{vector-effect:non-scaling-stroke}.wall-guide-svg .wg-main{stroke:#d3f0ff;stroke-width:1.35;filter:drop-shadow(0 2px 4px rgba(5,17,31,.42))}.wall-guide-svg .wg-helper{stroke:rgba(120,193,255,.92);stroke-width:1;stroke-dasharray:4 4;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.wall-guide-svg .wg-label rect{fill:rgba(15,30,46,.94);stroke:rgba(149,214,255,.28);stroke-width:.8;filter:drop-shadow(0 6px 16px rgba(0,0,0,.22))}.wall-guide-svg .wg-label text{fill:#f4fbff;font:650 11px Inter,system-ui,-apple-system,sans-serif}.wall-guide-svg .wg-soft rect{fill:rgba(19,44,68,.90);stroke:rgba(149,214,255,.26)}
.ext-plan-group{margin-top:6px}.ext-plan-upload{width:100%;display:flex;align-items:center;gap:12px;border:1px dashed rgba(65,52,42,.20);background:linear-gradient(145deg,#fbf9f6,#f0f1f4);border-radius:16px;padding:13px 14px;text-align:left;color:#2a2d35;transition:.16s}.ext-plan-upload:hover{border-color:rgba(53,44,37,.38);box-shadow:0 10px 24px rgba(48,39,31,.07);transform:translateY(-1px)}.ext-plan-upload>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#fff;font-size:20px;box-shadow:0 5px 14px rgba(49,40,32,.06)}.ext-plan-upload b{display:block;font-size:10px}.ext-plan-upload small{display:block;margin-top:2px;font-size:7.5px;color:#848890}
.exterior-drag-ghost{will-change:transform,left,top}.viewport canvas{will-change:transform}.wall-draw-hud small{max-width:240px}
@media(max-width:980px){.project-history{gap:4px}.history-btn{width:32px;height:32px}.project-btn{max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

.plan-calibration{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 10px}.plan-calibration label{display:grid;gap:5px;font-size:8px;color:#747880}.plan-calibration input,.plan-calibration select{width:100%;height:38px;border:1px solid rgba(60,49,39,.11);border-radius:11px;background:#fff;padding:0 10px;font-size:10px;color:#272a32;outline:none}.plan-calibration input:focus,.plan-calibration select:focus{border-color:rgba(50,42,34,.38);box-shadow:0 0 0 3px rgba(70,56,42,.05)}
.opening-preview-hud{position:absolute;z-index:31;display:none;min-width:126px;padding:9px 11px;border-radius:13px;background:rgba(31,29,27,.90);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);box-shadow:0 12px 28px rgba(0,0,0,.20);color:#fff;pointer-events:none;transform:translateY(-100%)}.opening-preview-hud.open{display:grid;gap:2px}.opening-preview-hud b{font-size:10px}.opening-preview-hud span{font-size:9px;color:#e9eaed}.opening-preview-hud small{font-size:7px;color:rgba(255,255,255,.62)}

.history-btn{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;border-radius:13px!important;background:rgba(255,255,255,.76)!important;border:1px solid rgba(55,46,38,.10)!important;box-shadow:0 8px 22px rgba(47,38,30,.06)!important}.history-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.history-btn:hover:not(:disabled){background:#fff!important;box-shadow:0 10px 26px rgba(47,38,30,.10)!important}.history-btn:active:not(:disabled){transform:translateY(1px) scale(.97)}
.measure-svg .dim.clearance .dim-main,.measure-svg .dim.clearance .dim-arrow{stroke:#d6d9df}.measure-svg .dim.clearance .dim-extension{stroke:rgba(244,214,163,.52)}.measure-svg .dim.clearance .dim-dot{fill:#e8e9ec}.measure-svg .dim.clearance .dim-label rect{fill:rgba(65,52,39,.91);stroke:rgba(255,224,177,.35)}
.measure-svg .dim.room .dim-main,.measure-svg .dim.room .dim-arrow{stroke:#fff}.measure-svg .dim.room .dim-extension{stroke:rgba(255,255,255,.42)}
.measure-svg .dim-label rect{rx:10}.measure-svg .dim-label text{font-size:11px;letter-spacing:.01em}.measure-svg .dim-main{stroke-linecap:round}.measure-svg .dim-arrow{stroke-linecap:round;stroke-linejoin:round}.ruler-tool{transition:.18s ease}.ruler-tool.active{background:linear-gradient(180deg,#2d3038,#1b1e26)!important;box-shadow:0 10px 30px rgba(24,20,17,.22)!important}
.milling-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.milling-option{border:1px solid rgba(58,48,39,.09);border-radius:13px;background:#fbfaf8;padding:8px;text-align:left;transition:.16s}.milling-option.active{border-color:#33363e;box-shadow:inset 0 0 0 1px #33363e}.milling-option b{font-size:9px;display:block;margin-top:6px}.milling-preview{display:block;height:54px;border-radius:9px;background:#c4c7cd;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(55,43,33,.08)}.milling-preview.frame:before{content:"";position:absolute;inset:9px;border:1.5px solid rgba(82,63,46,.42);border-radius:3px}.milling-preview.vertical{background:repeating-linear-gradient(90deg,#c4c7cd 0 14px,#8f939b 15px,#c4c7cd 17px)}.milling-preview.fluted{background:repeating-linear-gradient(90deg,#b8bbc1 0 6px,#dde0e6 6px 10px,#91959d 10px 12px)}.milling-preview.geometry:before,.milling-preview.geometry:after{content:"";position:absolute;left:8px;right:8px;height:1.5px;background:rgba(79,62,46,.40);transform:rotate(22deg)}.milling-preview.geometry:before{top:18px}.milling-preview.geometry:after{bottom:18px;transform:rotate(-22deg)}
.decor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.decor-card{border:1px solid rgba(55,44,34,.08);background:#fff;border-radius:20px;padding:9px;text-align:left;box-shadow:0 10px 25px rgba(47,38,30,.05);transition:.18s}.decor-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(47,38,30,.09)}.decor-card img{width:100%;height:108px;object-fit:contain;border-radius:14px;background:linear-gradient(145deg,#eeeff2,#dee1e7)}.decor-card b{display:block;font-size:11px;color:#272a32;margin:8px 4px 0}.decor-card small{display:block;font-size:8px;color:#8c9098;margin:3px 4px 2px}
.wall-selected-measure{pointer-events:none}
@media(max-width:720px){.milling-grid,.decor-grid{grid-template-columns:1fr}.decor-card img{height:92px}}

.reset-btn{height:36px;border:1px solid rgba(255,255,255,.26);border-radius:12px;padding:0 12px;background:rgba(38,31,26,.24);color:#fff;font-size:9px;font-weight:700;letter-spacing:.01em;backdrop-filter:blur(12px);transition:.16s;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}
.reset-btn:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.40);transform:translateY(-1px)}
.reset-btn:active{transform:translateY(0) scale(.98)}
.danger-action{width:100%;border:1px solid rgba(145,66,55,.18);background:linear-gradient(180deg,#fbfcff,#f6f7fa);border-radius:15px;padding:12px 13px;text-align:left;color:#7b372f;transition:.16s;box-shadow:0 8px 22px rgba(106,45,37,.045)}
.danger-action:hover{border-color:rgba(145,66,55,.34);box-shadow:0 10px 26px rgba(106,45,37,.08);transform:translateY(-1px)}
.danger-action b{display:block;font-size:10px}.danger-action span{display:block;margin-top:3px;font-size:8px;color:#a66d66}

/* Real relief reads as raised material in the preview, not as a printed line. */
.milling-option{overflow:hidden}.milling-preview{background:linear-gradient(145deg,#d5d8de,#b4b7bd);box-shadow:inset 0 0 0 1px rgba(55,43,33,.08),inset 7px 7px 18px rgba(255,255,255,.26),inset -7px -7px 16px rgba(85,62,42,.10)}
.milling-preview.frame:before{border:0;inset:10px;border-radius:5px;box-shadow:0 -2px 3px rgba(255,255,255,.72),0 3px 5px rgba(77,54,35,.28),inset 0 0 0 5px rgba(214,194,169,.62)}
.milling-preview.vertical{background:linear-gradient(145deg,#d3d6dc,#b5b8be)}.milling-preview.vertical:before{content:"";position:absolute;inset:7px 10px;background:repeating-linear-gradient(90deg,transparent 0 15px,rgba(255,255,255,.58) 15px 17px,rgba(94,69,47,.22) 18px 21px,transparent 22px 30px);filter:drop-shadow(2px 2px 2px rgba(65,44,27,.18));border-radius:5px}
.milling-preview.fluted{background:repeating-linear-gradient(90deg,#aaadb3 0 5px,#d7dae0 6px 10px,#edeef1 10px 13px,#979ba3 14px 18px)}
.milling-preview.geometry:before,.milling-preview.geometry:after{height:5px;border-radius:99px;background:linear-gradient(#dde0e6,#a0a4ac);box-shadow:0 2px 3px rgba(75,53,35,.28),0 -1px 2px rgba(255,255,255,.8)}
.milling-preview.soft_arc:before,.milling-preview.soft_arc:after{content:"";position:absolute;left:20%;width:60%;height:64%;border:6px solid rgba(231,217,198,.92);border-bottom:0;border-radius:999px 999px 0 0;box-shadow:2px 3px 4px rgba(73,51,34,.24),-1px -2px 3px rgba(255,255,255,.68)}
.milling-preview.soft_arc:before{top:9px}.milling-preview.soft_arc:after{top:29px;transform:rotate(180deg)}
.milling-preview.wave:before{content:"";position:absolute;left:8px;right:8px;top:18px;height:18px;border-radius:50%;border-top:7px solid #dbdee4;border-bottom:7px solid #9b9fa7;transform:rotate(-5deg);filter:drop-shadow(0 3px 2px rgba(71,50,32,.25))}
.milling-preview.asymmetry:before,.milling-preview.asymmetry:after{content:"";position:absolute;height:6px;border-radius:99px;background:linear-gradient(#e5e6e9,#a2a6ae);box-shadow:0 2px 4px rgba(74,52,34,.28)}
.milling-preview.asymmetry:before{width:72%;left:8%;top:17px;transform:rotate(-14deg)}.milling-preview.asymmetry:after{width:48%;right:7%;bottom:14px;transform:rotate(10deg)}
.milling-preview.sculpt{background:repeating-linear-gradient(90deg,#a1a5ad 0 8px,#c1c4ca 9px 15px,#e6e7ea 16px 21px,#a4a8b0 22px 28px);box-shadow:inset 0 0 0 1px rgba(55,43,33,.08),inset 8px 0 15px rgba(255,255,255,.22),inset -8px 0 15px rgba(70,48,31,.12)}

.finish-grid{display:grid;grid-template-columns:1fr;gap:10px;padding-bottom:18px}.finish-card{display:grid;grid-template-columns:92px 1fr;grid-template-rows:auto auto;gap:2px 12px;align-items:center;width:100%;min-height:102px;border:1px solid rgba(55,44,34,.08);background:#fff;border-radius:20px;padding:9px;text-align:left;box-shadow:0 10px 25px rgba(47,38,30,.05);transition:.18s}.finish-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(47,38,30,.09)}.finish-card .finish-preview{grid-row:1/3;width:92px;height:82px}.finish-card b{align-self:end;font-size:11px;color:#272a32}.finish-card small{align-self:start;font-size:8px;line-height:1.35;color:#848890}
.finish-sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.finish-sample{border:1px solid rgba(55,44,34,.08);background:#fff;border-radius:18px;padding:8px;box-shadow:0 8px 20px rgba(47,38,30,.045)}.finish-sample b{display:block;font-size:10px;margin:7px 3px 0}.finish-sample small{display:block;font-size:7px;color:#888c94;margin:3px}
.finish-preview{display:block;width:100%;height:94px;border-radius:14px;overflow:hidden;position:relative;background:#ddd;box-shadow:inset 0 0 0 1px rgba(58,46,36,.08)}
.finish-preview.wallpaper{background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(98,75,57,.05)),repeating-linear-gradient(90deg,#cbced4 0 3px,#e2e3e6 4px 7px)}
.finish-preview.wallpaper.variant-2{background:repeating-linear-gradient(45deg,#c7cad0 0 9px,#dde0e6 9px 18px)}.finish-preview.wallpaper.variant-3{background:linear-gradient(135deg,#bdc0c6 25%,#dde0e6 25% 50%,#a6aab2 50% 75%,#dbdee4 75%)}.finish-preview.wallpaper.variant-4{background:radial-gradient(circle at 28% 34%,rgba(111,88,65,.18) 0 2px,transparent 3px),#d2d5db;background-size:16px 16px}
.finish-preview.plaster{background:radial-gradient(circle at 20% 25%,rgba(255,255,255,.65),transparent 22%),radial-gradient(circle at 70% 65%,rgba(92,75,61,.16),transparent 26%),linear-gradient(135deg,#c2c5cb,#e3e4e7)}
.finish-preview.plaster.variant-2{background:linear-gradient(25deg,rgba(111,80,55,.16),transparent 45%),repeating-linear-gradient(7deg,#c1c4ca 0 4px,#aeb1b7 5px 7px,#ced1d7 8px 13px)}.finish-preview.plaster.variant-3{background:radial-gradient(ellipse at 30% 20%,#e8e9ec,transparent 28%),radial-gradient(ellipse at 70% 75%,#b7bac0,transparent 35%),#cdd0d6}.finish-preview.plaster.variant-4{background:linear-gradient(135deg,#a0a4ac,#cacdd3 55%,#8e929a)}
.finish-preview.panels{background:repeating-linear-gradient(90deg,#61656d 0 9px,#90949c 10px 13px,#4d5058 14px 18px)}
.finish-preview.panels.variant-2{background:repeating-linear-gradient(90deg,#52565e 0 5px,#dbdee4 6px 11px,#6c7078 12px 16px)}.finish-preview.panels.variant-3{background:linear-gradient(135deg,#b6b9bf,#d7dae0);box-shadow:inset 0 0 0 1px rgba(58,46,36,.08),inset 10px 10px 20px rgba(255,255,255,.35)}.finish-preview.panels.variant-4{background:radial-gradient(circle at 25% 50%,#dadde3 0 18px,#b8bbc1 19px 27px,transparent 28px),radial-gradient(circle at 72% 50%,#dadde3 0 18px,#a1a5ad 19px 27px,transparent 28px),#c4c7cd}
.finish-preview.tile{background:linear-gradient(118deg,transparent 0 44%,rgba(125,115,105,.18) 45% 47%,transparent 48%),linear-gradient(35deg,transparent 0 65%,rgba(135,126,118,.16) 66% 68%,transparent 69%),#e4e5e8}
.finish-preview.tile.variant-2{background:radial-gradient(circle,#858991 0 2px,transparent 3px),radial-gradient(circle,#b7bac0 0 3px,transparent 4px),#dbdee4;background-size:18px 18px,27px 27px;background-position:0 0,8px 6px}.finish-preview.tile.variant-3{background:linear-gradient(135deg,#a3a7af,#d1d4da)}.finish-preview.tile.variant-4{background:linear-gradient(110deg,#e4e5e8 0 44%,#acafb5 45% 48%,#eff0f3 49% 70%,#a3a7af 72% 74%,#dbdee4 75%)}
.finish-preview.stone{background:linear-gradient(118deg,transparent 0 32%,rgba(70,55,45,.18) 33% 35%,transparent 36%),linear-gradient(18deg,#90949c,#babdc3 45%,#7a7e86)}
.finish-preview.stone.variant-2{background:repeating-linear-gradient(6deg,#b1b4ba 0 8px,#8f939b 9px 11px,#c5c8ce 12px 20px)}.finish-preview.stone.variant-3{background:repeating-linear-gradient(0deg,#8d5942 0 16px,#c17a57 17px 31px,#c3c6cc 32px 34px),repeating-linear-gradient(90deg,transparent 0 44px,rgba(238,215,195,.82) 45px 48px)}.finish-preview.stone.variant-4{background:radial-gradient(ellipse at 25% 30%,#747880 0 19%,transparent 20%),radial-gradient(ellipse at 70% 65%,#9ca0a8 0 22%,transparent 23%),radial-gradient(ellipse at 60% 15%,#666a72 0 14%,transparent 15%),#b6b9bf}
@media(max-width:980px){.reset-btn{padding:0 9px;font-size:8px}.project-history .project-btn{display:none}}
@media(max-width:600px){.reset-btn{height:34px}.finish-card{grid-template-columns:72px 1fr}.finish-card .finish-preview{width:72px;height:70px}.finish-sample-grid{grid-template-columns:1fr}.milling-grid{grid-template-columns:1fr 1fr}}


.project-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.project-main-action{height:42px;border:0;border-radius:13px;background:#282b33;color:#fff;font-size:10px;font-weight:750;box-shadow:0 9px 22px rgba(41,34,29,.15)}.project-main-action.secondary{background:#fff;color:#32353d;border:1px solid rgba(58,48,39,.11);box-shadow:0 8px 20px rgba(47,38,30,.05)}.project-main-action:hover{transform:translateY(-1px)}
.projects-grid{display:grid;gap:10px;padding-bottom:24px}.project-card{position:relative;width:100%;display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:center;border:1px solid rgba(55,44,34,.08);background:#fff;border-radius:18px;padding:8px;text-align:left;box-shadow:0 10px 25px rgba(47,38,30,.05);transition:.16s}.project-card:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(47,38,30,.09)}.project-card-thumb{position:relative;width:92px;height:62px;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#e5e6e9,#c9ccd2);display:grid;place-items:center}.project-card-thumb img{width:100%;height:100%;object-fit:cover}.project-placeholder{font-size:24px;font-weight:800;color:rgba(48,40,33,.36)}.project-card-copy{display:grid;gap:5px;min-width:0}.project-card-copy b{font-size:10px;color:#272a32;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-copy small{font-size:7.5px;color:#8b8f97}.project-card-actions{position:absolute;right:5px;top:5px;display:flex;gap:4px}.project-mini{width:22px;height:22px;border-radius:8px;border:1px solid rgba(58,48,39,.10);background:#faf8f5;display:grid;place-items:center;font-size:13px;color:#41444c;cursor:pointer}.project-mini:hover{background:#ecedf0}.project-mini.danger{color:#9a554b}.projects-empty{border:1px dashed rgba(58,48,39,.14);border-radius:18px;padding:22px 16px;text-align:center;color:#676b73}.projects-empty b{display:block;font-size:10px}.projects-empty span{display:block;font-size:8px;line-height:1.5;margin-top:6px}
.layout-wall-card{display:grid;grid-template-columns:1fr;margin-bottom:10px}.layout-wall-card .exterior-asset-card{min-height:142px}.layout-wall-card .exterior-asset-card img{height:88px}
.wall-tool-mode .viewport canvas{cursor:crosshair}.viewport canvas{touch-action:none}.shell.drag-active{user-select:none}
/* richer premium milling previews */
.milling-preview.stepped:before{content:"";position:absolute;inset:8px;border-radius:6px;box-shadow:0 2px 4px rgba(74,53,35,.28),inset 0 0 0 4px #c2c5cb,inset 0 0 0 9px #dde0e6,inset 0 0 0 13px #aaadb3}
.milling-preview.art_deco:before{content:"";position:absolute;left:50%;bottom:5px;width:6px;height:42px;background:#dde0e6;transform-origin:50% 100%;box-shadow:-14px 2px 0 #a2a6ae,14px 2px 0 #d7dae0,-27px 8px 0 #9b9fa7,27px 8px 0 #c6c9cf;filter:drop-shadow(2px 2px 2px rgba(74,51,33,.25))}
.milling-preview.organic_rings:before{content:"";position:absolute;width:56px;height:40px;left:24px;top:7px;border:6px solid #dadde3;border-radius:50%;box-shadow:0 0 0 5px #a0a4ac,0 0 0 10px #cccfd5,2px 4px 6px rgba(72,50,32,.25)}
.milling-preview.monolith:before{content:"";position:absolute;width:58px;height:58px;left:8px;top:7px;border:9px solid #c7cad0;border-right-color:transparent;border-radius:50%;transform:rotate(-18deg);box-shadow:2px 3px 4px rgba(76,54,36,.26)}.milling-preview.monolith:after{content:"";position:absolute;right:15px;top:9px;width:7px;height:38px;border-radius:99px;background:linear-gradient(#e5e6e9,#9a9ea6);box-shadow:2px 2px 3px rgba(72,50,33,.26)}
@media(max-width:720px){.project-card{grid-template-columns:76px 1fr}.project-card-thumb{width:76px;height:56px}.project-actions{grid-template-columns:1fr 1fr}}


/* Current UI polish */
.rail-item{min-width:0;overflow:hidden}
.rail-item>span:last-child{display:block;max-width:100%;padding:0 2px;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.08}
.rail-icon{width:22px;height:22px;display:grid;place-items:center}
.rail-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.rail-item.active .rail-icon{transform:translateY(-1px)}
button{min-width:0}
.section-head h2,.group-title,.obj-title b,.model-copy b,.finish-card b,.finish-sample b{overflow-wrap:anywhere}
.model-card{min-width:0}.model-copy{min-width:0}.model-copy b{white-space:normal;line-height:1.2}.model-copy span{display:block;white-space:normal}
.file-thumb{background:linear-gradient(145deg,#edeef1,#d6d9df);display:grid;place-items:center}
.file-thumb img{width:100%;height:100%;object-fit:contain;padding:5px}
.finish-preview.image{background-size:cover;background-position:center}
.finish-sample.material-sample{width:100%;display:block;text-align:left;appearance:none;color:inherit;cursor:pointer;transition:.16s}
.finish-sample.material-sample:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(47,38,30,.09)}
.finish-sample.material-sample img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:13px;box-shadow:inset 0 0 0 1px rgba(58,46,36,.08)}
.finish-sample.material-sample b{line-height:1.2;min-height:24px}
.finish-sample.material-sample small{line-height:1.25}

/* Lightweight wall construction overlay */
.wall-guide-svg .wg-main{stroke:rgba(255,255,255,.96);stroke-width:1.6;filter:drop-shadow(0 1px 3px rgba(0,0,0,.34))}
.wall-guide-svg .wg-point{fill:#fff;stroke:rgba(42,37,32,.72);stroke-width:1.25;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.wall-guide-svg .wg-label rect{fill:rgba(35,32,29,.88);stroke:rgba(255,255,255,.16);stroke-width:.8;filter:drop-shadow(0 5px 14px rgba(0,0,0,.20))}
.wall-guide-svg .wg-label text{fill:#fff;font:700 11px Inter,system-ui,-apple-system,sans-serif;letter-spacing:.01em}
.wall-draw-hud{min-width:166px;padding:8px 12px;border-radius:13px;top:78px;background:rgba(33,30,27,.78)}
.wall-draw-hud.open{grid-template-columns:auto auto;gap:2px 10px}
.wall-draw-hud b{font-size:9px}.wall-draw-hud span{font-size:11px}.wall-draw-hud small{font-size:7px;white-space:nowrap}

/* Fit controls cleanly on smaller desktop widths */
.topbar>*{min-width:0}.project-history,.scene-actions,.modes{min-width:0}
.project-btn,.reset-btn,.history-btn,.light-btn-text,.round-btn,.modes button{white-space:nowrap}
@media(max-width:1250px){.project-btn{max-width:132px;overflow:hidden;text-overflow:ellipsis}.reset-btn{padding-inline:9px}.modes button{padding-inline:12px}}
@media(max-width:1080px){.topbar{gap:6px}.project-history{gap:4px}.scene-actions{gap:4px}.modes button{padding-inline:9px}.reset-btn{font-size:8px}}
@media(max-height:720px){.rail-item{min-height:50px;padding:6px 2px}.rail-nav{gap:3px}.rail-icon{width:19px;height:19px}.rail-icon svg{width:18px;height:18px}.rail-item>span:last-child{font-size:8px}}

/* Current controls: compact, modern, readable */
.project-btn{display:inline-flex;align-items:center;gap:7px}.project-btn svg,.round-btn svg,.project-mini svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.round-btn{display:grid;place-items:center}.round-btn svg{width:18px;height:18px}.project-mini svg{width:13px;height:13px}
.material-sample{position:relative}.material-sample.active{outline:2px solid rgba(72,61,51,.72);outline-offset:2px}.material-sample.active small{font-weight:700;color:#464951}
.wall-draw-hud{background:rgba(255,255,255,.90);color:#282b33;border:1px solid rgba(53,46,40,.10);box-shadow:0 10px 28px rgba(29,24,20,.12);backdrop-filter:blur(18px)}.wall-draw-hud small{color:rgba(47,42,37,.58)}
.wall-guide-svg .wg-main{stroke:rgba(255,255,255,.98);stroke-width:1.35}.wall-guide-svg .wg-point{r:3.5;fill:#fff;stroke:rgba(62,53,45,.55);stroke-width:1}.wall-guide-svg .wg-label rect{fill:rgba(255,255,255,.94);stroke:rgba(57,49,42,.10);filter:drop-shadow(0 5px 12px rgba(0,0,0,.12))}.wall-guide-svg .wg-label text{fill:#2d3038;font:700 10.5px Inter,system-ui,-apple-system,sans-serif}

.render-btn{font-size:10px;padding-inline:14px;background:rgba(255,255,255,.14)}
.render-btn:hover{background:rgba(255,255,255,.22)}
.finish-sample small{display:block;line-height:1.25}

/* Current lightweight construction guides and unified controls */
.top-action-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:7px;height:38px!important;border-radius:13px!important;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s!important}
.top-action-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}
.render-btn{background:rgba(255,255,255,.92)!important;color:#272a32!important;border-color:rgba(255,255,255,.52)!important;box-shadow:0 8px 22px rgba(34,28,23,.10)!important;font-weight:750!important}
.render-btn:hover{background:#fff!important;box-shadow:0 11px 28px rgba(34,28,23,.16)!important}
.light-btn-text{display:inline-flex;align-items:center;gap:7px}
.scene-toolbar{padding:5px!important;gap:3px!important;border-radius:16px!important;background:rgba(248,246,242,.88)!important;border:1px solid rgba(67,56,47,.09)!important;box-shadow:0 12px 34px rgba(39,31,25,.12)!important;backdrop-filter:blur(18px)!important}
.scene-toolbar button{display:inline-flex!important;align-items:center!important;gap:6px!important;border-radius:11px!important;padding:8px 10px!important;color:#61656d!important;transition:.15s!important}
.scene-toolbar button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.scene-toolbar button.active,.scene-toolbar button:hover{background:#fff!important;color:#272a32!important;box-shadow:0 4px 13px rgba(47,38,30,.08)!important}
.rail-item{border-radius:14px!important;transition:background .16s,color .16s,transform .16s!important}
.rail-icon{border-radius:9px;transition:background .16s,box-shadow .16s,transform .16s}
.rail-item:hover .rail-icon{background:rgba(61,50,40,.055)}
.rail-item.active .rail-icon{background:#2c2f37;color:#fff;box-shadow:0 6px 16px rgba(45,37,31,.15);transform:translateY(-1px)}
.wall-guide-svg .wg-main{stroke:rgba(255,255,255,.98)!important;stroke-width:1.55!important;filter:drop-shadow(0 1px 2px rgba(0,0,0,.26))!important}
.wall-guide-svg .wg-point{fill:#fff!important;stroke:rgba(67,57,48,.46)!important;stroke-width:1!important}
.wall-guide-svg .wg-point.snapped{fill:#dff3ff!important;stroke:#5d98bd!important;stroke-width:1.5!important;filter:drop-shadow(0 0 5px rgba(112,183,229,.48))!important}
.wall-guide-svg .wg-angle rect{fill:rgba(237,247,253,.96);stroke:rgba(89,144,179,.25);stroke-width:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.10))}
.wall-guide-svg .wg-angle text{fill:#426b84;font:750 10px Inter,system-ui,-apple-system,sans-serif}
.wall-draw-hud{min-width:190px!important;padding:8px 12px!important;background:rgba(255,255,255,.93)!important;border-color:rgba(67,57,49,.10)!important;box-shadow:0 9px 26px rgba(32,26,21,.10)!important}
.wall-draw-hud b{font-size:9px!important;color:#3e4149}.wall-draw-hud span{font-size:11px!important;color:#262931}.wall-draw-hud small{font-size:7px!important;color:#7b7f87!important}
.opening-preview-hud{border-radius:14px!important;background:rgba(248,247,244,.95)!important;color:#2b2e36!important;border-color:rgba(62,52,44,.10)!important;box-shadow:0 12px 30px rgba(35,28,22,.14)!important}
.opening-preview-hud span{color:#50535b!important}.opening-preview-hud small{color:#83878f!important}.opening-preview-hud.invalid{background:rgba(255,248,244,.96)!important;border-color:rgba(178,105,77,.18)!important}.opening-preview-hud.invalid b,.opening-preview-hud.invalid span{color:#8c513d!important}
.exterior-asset-card{border-radius:18px!important;border-color:rgba(58,48,40,.075)!important;box-shadow:0 8px 22px rgba(45,36,29,.045)!important}.exterior-asset-card:hover{border-color:rgba(58,48,40,.14)!important;box-shadow:0 14px 30px rgba(45,36,29,.08)!important}
@media(max-width:980px){.top-action-btn span{display:none}.top-action-btn{width:36px!important;padding:0!important}.render-btn{width:38px!important}.scene-toolbar button span{display:none}.scene-toolbar button{width:36px!important;justify-content:center!important;padding:8px!important}}

/* Compact premium top controls */
.topbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;padding-inline:12px}
.project-history,.scene-actions{display:flex;align-items:center;gap:6px;min-width:0}
.scene-actions{justify-content:flex-end;flex-wrap:nowrap}
.icon-top-btn{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border:1px solid rgba(255,255,255,.23);border-radius:13px;background:rgba(40,34,29,.18);color:#fff;backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035);transition:.16s}
.icon-top-btn:hover,.icon-top-btn.active{background:#fff;color:#272a32;border-color:rgba(255,255,255,.62);box-shadow:0 8px 24px rgba(38,31,26,.11);transform:translateY(-1px)}
.icon-top-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.render-btn{min-width:92px;padding-inline:13px!important}
.modes{flex:none}.modes button{padding-inline:16px}
.paint-tool-hud{position:absolute;z-index:32;left:50%;top:78px;transform:translateX(-50%) translateY(-6px);display:none;min-width:250px;max-width:min(520px,calc(100% - 36px));padding:10px 14px;border:1px solid rgba(255,255,255,.18);border-radius:15px;background:rgba(31,29,27,.90);backdrop-filter:blur(16px);box-shadow:0 14px 38px rgba(0,0,0,.18);color:#fff;text-align:center;pointer-events:none}
.paint-tool-hud.open{display:grid;gap:2px;transform:translateX(-50%) translateY(0)}
.paint-tool-hud b{font-size:10px}.paint-tool-hud span{font-size:8px;color:#e9eaed}.paint-tool-hud small{font-size:7px;color:rgba(255,255,255,.60)}
.paint-tool-mode .viewport canvas{cursor:crosshair!important}
.room-thumb{background:linear-gradient(145deg,#dcdfe5,#b8bbc1);position:relative}.room-thumb:before{content:"";position:absolute;inset:18px;border:2px solid rgba(72,58,45,.38);border-top-color:transparent;border-radius:3px}
.preset.active{border-color:#3c3f47!important;background:#ecedf0!important;box-shadow:inset 0 0 0 1px rgba(73,61,50,.25)}
@media(max-width:1360px){.reset-btn.top-action-btn span{display:none}.reset-btn.top-action-btn{width:38px;padding:0!important}.project-btn{max-width:118px}.modes button{padding-inline:12px}.render-btn span{display:inline!important}.render-btn{width:auto!important;min-width:86px!important;padding-inline:11px!important}}
@media(max-width:1160px){.project-history .project-btn{display:none}.modes button{padding-inline:10px}.scene-actions{gap:4px}.icon-top-btn{width:36px;height:36px;flex-basis:36px}.render-btn{min-width:38px!important;width:38px!important;padding:0!important}.render-btn span{display:none!important}}
@media(max-width:720px){.topbar{padding-inline:7px;gap:4px}.project-history{gap:3px}.history-btn{width:34px!important;height:34px!important}.icon-top-btn{width:34px;height:34px;flex-basis:34px}.modes button{padding:7px 9px}.paint-tool-hud{top:66px;min-width:210px}}

/* Pro UI · wall gizmo · material browser */
:root{
  --panel:#f4f5f8;--panel2:#fffdfa;--ink:#1e2129;--muted:#7e828a;
  --line:rgba(45,38,31,.085);--soft:0 10px 28px rgba(47,38,30,.065);--shadow:0 24px 70px rgba(47,38,30,.11)
}
.library,.inspector{background:linear-gradient(180deg,rgba(250,248,244,.985),rgba(246,242,236,.985))}
.library-scroll,.inspector-scroll{scrollbar-width:thin;scrollbar-color:rgba(92,79,66,.26) transparent}
.library-scroll::-webkit-scrollbar,.inspector-scroll::-webkit-scrollbar{width:7px}.library-scroll::-webkit-scrollbar-thumb,.inspector-scroll::-webkit-scrollbar-thumb{background:rgba(92,79,66,.22);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.section-head h2{letter-spacing:-.025em;font-weight:760}.section-head p{line-height:1.45}
.group{border:1px solid rgba(55,44,34,.065);background:rgba(255,255,255,.56);border-radius:18px;padding-top:14px;padding-bottom:14px;box-shadow:0 5px 18px rgba(47,38,30,.025)}
.action,.back-btn,.history-btn,.icon-top-btn,.reset-btn,.modes button{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
.action:hover,.back-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(47,38,30,.08)}

.material-hero{position:relative;overflow:hidden;margin:0 0 14px;border-radius:20px;background:#fff;border:1px solid rgba(52,43,35,.08);box-shadow:0 13px 32px rgba(47,38,30,.07)}
.material-hero>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transform:scale(1.002)}
.material-hero>div{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(180deg,transparent,rgba(25,22,19,.76));color:#fff}
.material-hero small{display:block;font-size:7px;text-transform:uppercase;letter-spacing:.10em;color:rgba(255,255,255,.68)}
.material-hero b{display:block;margin-top:3px;font-size:13px;line-height:1.2}.material-hero span{display:block;margin-top:3px;font-size:8px;color:rgba(255,255,255,.75)}
.premium-material-grid{gap:11px}.finish-sample.material-sample{position:relative;overflow:hidden;border-radius:18px;padding:7px;background:rgba(255,255,255,.93);border:1px solid rgba(57,47,38,.08);box-shadow:0 8px 22px rgba(47,38,30,.045)}
.finish-sample.material-sample:hover{transform:translateY(-2px);border-color:rgba(57,47,38,.16);box-shadow:0 16px 32px rgba(47,38,30,.09)}
.finish-sample.material-sample.active{border-color:#282b33;box-shadow:0 0 0 1px #282b33,0 14px 28px rgba(47,38,30,.09)}
.material-image-wrap{position:relative;display:block;overflow:hidden;border-radius:13px;background:#e5e6e9;aspect-ratio:1/1}
.finish-sample.material-sample .material-image-wrap img{width:100%;height:100%;object-fit:cover;border-radius:0;box-shadow:none;transition:transform .28s ease,filter .28s ease}
.finish-sample.material-sample:hover .material-image-wrap img{transform:scale(1.07);filter:saturate(1.02) contrast(1.02)}
.material-check{position:absolute;right:7px;top:7px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:rgba(33,29,25,.90);color:#fff;font-style:normal;font-size:12px;box-shadow:0 5px 14px rgba(0,0,0,.18);backdrop-filter:blur(8px)}
.finish-sample.material-sample b{font-size:9.5px;min-height:0;margin:8px 3px 0;line-height:1.25}.finish-sample.material-sample small{font-size:7px;margin:3px;color:#878b93;min-height:18px}

.wall-gizmo-hud{display:none;position:absolute;z-index:31;left:50%;top:78px;transform:translateX(-50%);align-items:center;gap:8px;padding:8px 10px;border-radius:14px;background:rgba(31,29,27,.82);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px);box-shadow:0 16px 34px rgba(28,23,19,.20);color:#fff;pointer-events:none;white-space:nowrap}
.wall-gizmo-hud.open{display:flex}.wall-gizmo-hud span{font-size:8px;color:rgba(255,255,255,.62);text-transform:uppercase;letter-spacing:.08em}.wall-gizmo-hud b{font-size:11px}.wall-gizmo-hud em{font-style:normal;font-size:10px;padding:4px 7px;border-radius:8px;background:rgba(255,255,255,.12)}.wall-gizmo-hud small{font-size:7px;color:rgba(255,255,255,.60);padding-left:4px;border-left:1px solid rgba(255,255,255,.13)}

.rail-item{position:relative}.rail-item:after{content:"";position:absolute;right:1px;top:18%;bottom:18%;width:2px;border-radius:2px;background:transparent;transition:.16s}.rail-item.active:after{background:#2c2f37}.rail-icon{transition:transform .16s ease,background .16s ease,color .16s ease}
.topbar{background:linear-gradient(180deg,rgba(46,40,35,.54),rgba(46,40,35,.10) 72%,transparent);backdrop-filter:blur(2px)}
.modes,.icon-top-btn,.top-action-btn,.history-btn{border-color:rgba(255,255,255,.15)!important}.icon-top-btn:hover,.top-action-btn:hover,.history-btn:hover:not(:disabled){transform:translateY(-1px)}
.scene-toolbar{background:rgba(39,35,31,.66);box-shadow:0 16px 42px rgba(28,22,18,.22)}

@media(min-width:1181px){.finish-sample-grid.premium-material-grid{grid-template-columns:1fr 1fr}.library-scroll{padding-left:15px;padding-right:15px}}
@media(max-width:1180px){.wall-gizmo-hud small{display:none}}
@media(max-width:720px){.wall-gizmo-hud{top:64px}.wall-gizmo-hud small{display:none}.premium-material-grid{grid-template-columns:1fr 1fr!important}.material-hero>img{aspect-ratio:2/1}}
@media(max-width:520px){.premium-material-grid{grid-template-columns:1fr!important}}
.wall-precision-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.wall-precision-grid label{font-size:8px;color:#767a82}.wall-precision-grid input{width:100%;margin-top:5px;border:1px solid rgba(52,43,35,.10);background:#fff;border-radius:11px;padding:9px 10px;font-size:11px;color:#23262e;outline:none}.wall-precision-grid input:focus{border-color:rgba(52,43,35,.30);box-shadow:0 0 0 3px rgba(52,43,35,.055)}
@media(max-width:520px){.wall-precision-grid{grid-template-columns:1fr}}

/* ===== AIVELI 2.2.25 · stable wall drag / marker radius / soft snap ===== */
.marker-pop{position:absolute;z-index:28;top:60px;right:154px;width:230px;padding:12px;border-radius:18px;background:rgba(250,248,244,.97);border:1px solid rgba(63,52,43,.08);box-shadow:0 20px 55px rgba(37,29,23,.16);backdrop-filter:blur(18px);display:none;color:#262931}
.marker-pop.open{display:block}.marker-title{display:grid;gap:2px;margin-bottom:10px}.marker-title b{font-size:11px}.marker-title small,.marker-help{font-size:7px;color:#81858d}.marker-colors{display:flex;gap:8px;flex-wrap:wrap}.marker-color{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.94);background:var(--marker);box-shadow:0 0 0 1px rgba(55,46,39,.14),0 5px 12px rgba(37,29,23,.08);cursor:pointer}.marker-color.active{box-shadow:0 0 0 2px #282b33,0 6px 16px rgba(37,29,23,.15);transform:scale(1.06)}.marker-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0 8px}.marker-actions button{border:1px solid rgba(55,46,39,.08);background:#fff;border-radius:10px;padding:8px;font-size:8px;color:#363941}.marker-tool.active{background:#fff!important;color:#272a32!important}.marker-mode .viewport canvas{cursor:crosshair!important}
.solution-cards{grid-template-columns:1fr!important}
@media(max-width:1160px){.marker-pop{right:110px}}
@media(max-width:720px){.marker-pop{top:54px;right:8px;width:210px}}

.marker-radius{display:grid;gap:7px;margin:12px 0 4px;padding:10px;border-radius:12px;background:rgba(255,255,255,.66);border:1px solid rgba(55,46,39,.07)}.marker-radius span{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:8px;color:#60646c}.marker-radius b{font-size:8px;color:#272a32}.marker-radius input{width:100%;accent-color:#353840;cursor:pointer}.marker-radius input::-webkit-slider-thumb{cursor:grab}

.project-modal,.render-modal{position:fixed;inset:0;z-index:145;background:rgba(35,29,24,.24);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:20px}.project-modal.open,.render-modal.open{display:flex}.project-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.project-rename-hint{display:block;margin-top:10px;font-size:11px;color:#7e828a;line-height:1.45}.render-preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.render-preset.active{border-color:#262931;background:#20232b;color:#fff}.render-quality{display:grid;gap:9px;font-size:12px;color:#41444c}.render-quality label{display:flex;align-items:center;gap:8px}.row{grid-template-columns:76px 1fr 118px}.row-side{display:grid;gap:6px}.manual-value{width:100%;border:1px solid var(--line);background:#fbfaf8;border-radius:9px;padding:7px 8px;font-size:10px;text-align:right}.manual-value:focus{outline:none;border-color:#7c8088;box-shadow:0 0 0 3px rgba(143,126,108,.12)}@media(max-width:720px){.render-preset-grid,.project-modal-actions{grid-template-columns:1fr}.row{grid-template-columns:72px 1fr 100px}}

/* AIVELI 2.2.31 — smart composition snapping */
.composition-hud{position:absolute;left:50%;bottom:96px;z-index:42;transform:translateX(-50%) translateY(8px);display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:999px;background:rgba(28,25,22,.82);color:#fff;box-shadow:0 12px 36px rgba(31,26,21,.16);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease;font-size:10px;letter-spacing:.02em}.composition-hud.open{opacity:1;transform:translateX(-50%) translateY(0)}.composition-hud b{font-size:10px;font-weight:650}.composition-line{width:18px;height:2px;border-radius:9px;background:#f0c97c;box-shadow:0 0 9px rgba(240,201,124,.42)}.composition-line.z{transform:rotate(90deg)}

/* Render series */
.render-series-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 12px;padding:11px 12px;border:1px solid rgba(70,59,48,.09);border-radius:12px;background:rgba(247,244,239,.82)}.render-series-note b{font-size:11px}.render-series-note span{font-size:9px;color:#7b7f87;text-align:right}.render-action-grid{grid-template-columns:1fr 1fr 1.15fr}.render-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Presentation mode */
.presentation-overlay{position:absolute;inset:0;z-index:160;display:none;pointer-events:none;color:#fff}.presentation-overlay.open{display:block}.presentation-top,.presentation-bottom{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;pointer-events:auto}.presentation-top{top:0;background:linear-gradient(180deg,rgba(17,15,13,.55),rgba(17,15,13,0))}.presentation-bottom{bottom:0;background:linear-gradient(0deg,rgba(17,15,13,.62),rgba(17,15,13,0));padding-top:62px}.presentation-top small{display:block;font-size:9px;letter-spacing:.16em;opacity:.64;margin-bottom:5px}.presentation-top b{display:block;font-family:Georgia,'Times New Roman',serif;font-size:19px;font-weight:500;letter-spacing:.01em}.presentation-top>button,.presentation-bottom>button,.presentation-actions button{border:1px solid rgba(255,255,255,.18);background:rgba(27,23,20,.34);color:#fff;backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.12);cursor:pointer;transition:.18s ease}.presentation-top>button{width:38px;height:38px;border-radius:50%;font-size:16px}.presentation-bottom>button{width:44px;height:44px;border-radius:50%;font-size:28px;line-height:1}.presentation-top>button:hover,.presentation-bottom>button:hover,.presentation-actions button:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}.presentation-center{text-align:center;min-width:240px}.presentation-center>b{display:block;font-family:Georgia,'Times New Roman',serif;font-size:17px;font-weight:500}.presentation-center>span{display:block;font-size:9px;opacity:.58;margin-top:5px}.presentation-dots{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:11px}.presentation-dots button{width:18px;height:3px;padding:0;border:0;border-radius:10px;background:rgba(255,255,255,.28);cursor:pointer;transition:.18s ease}.presentation-dots button.active{width:34px;background:#fff}.presentation-actions{display:flex;align-items:center;gap:10px}.presentation-actions button{height:38px;padding:0 15px;border-radius:999px;font-size:10px}
body.presentation-mode{overflow:hidden;background:#111}body.presentation-mode .rail,body.presentation-mode .library,body.presentation-mode .inspector,body.presentation-mode .topbar,body.presentation-mode .scene-toolbar,body.presentation-mode .ai-fab,body.presentation-mode .status-pill,body.presentation-mode .measure-overlay,body.presentation-mode .wall-guide-overlay,body.presentation-mode .paint-tool-hud,body.presentation-mode .wall-gizmo-hud,body.presentation-mode .composition-hud,body.presentation-mode .version-badge{display:none!important}body.presentation-mode .shell{grid-template-columns:1fr!important;grid-template-rows:1fr!important}body.presentation-mode .viewport{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;border-radius:0!important}body.presentation-mode #scene{width:100vw!important;height:100vh!important}body.presentation-mode .presentation-overlay{display:block!important}

@media(max-width:760px){.render-action-grid{grid-template-columns:1fr}.render-preset-grid{grid-template-columns:1fr}.presentation-top,.presentation-bottom{padding-left:16px;padding-right:16px}.presentation-center{min-width:0}.presentation-actions button{display:none}.presentation-bottom{gap:10px}.presentation-center>b{font-size:14px}}

/* AIVELI 2.2.35 — compact floor wall controls */
.scene-wall-toggle{position:absolute;bottom:22px;z-index:34;transform:translate(-50%,-50%);width:88px;min-height:58px;padding:8px 8px 10px;border:1px dashed rgba(255,255,255,.42);border-radius:20px;background:rgba(45,39,34,.18);color:#fff;backdrop-filter:blur(12px);box-shadow:0 14px 36px rgba(28,23,19,.09);display:grid;place-items:center;align-content:center;gap:5px;cursor:pointer;transition:.18s ease}.scene-wall-toggle.left{left:18px}.scene-wall-toggle.right{right:18px}.scene-wall-toggle span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);font-size:23px;font-weight:300;line-height:1;transition:.18s ease}.scene-wall-toggle small{font-size:9px;line-height:1.2;text-align:center;color:rgba(255,255,255,.78)}.scene-wall-toggle:hover{background:rgba(255,255,255,.88);color:#272a32;border-color:rgba(255,255,255,.8);transform:translate(-50%,-50%) scale(1.03);box-shadow:0 16px 42px rgba(31,25,20,.14)}.scene-wall-toggle:hover small{color:#52565e}.scene-wall-toggle.active{background:rgba(38,34,30,.58);border-style:solid}.scene-wall-toggle.active span{background:rgba(255,255,255,.90);color:#292c34}body.presentation-mode .scene-wall-toggle{display:none!important}@media(max-width:1160px){.scene-wall-toggle{bottom:10px;width:72px;min-height:54px}.scene-wall-toggle small{display:none}}

.measure-svg .blueprint-grid-bg{opacity:.55;pointer-events:none}

/* AIVELI 2.2.35 compact floor-edge wall controls */
.scene-wall-toggle{width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.58)!important;background:rgba(48,43,39,.34)!important;box-shadow:0 5px 16px rgba(22,18,15,.13)!important;backdrop-filter:blur(8px)!important;display:grid!important;place-items:center!important;transform:translate(-50%,-50%)!important}
.scene-wall-toggle span{width:100%!important;height:100%!important;background:transparent!important;color:#fff!important;font-size:19px!important;font-weight:300!important;display:grid!important;place-items:center!important}.scene-wall-toggle small{display:none!important}.scene-wall-toggle:hover{background:rgba(255,255,255,.92)!important;transform:translate(-50%,-50%) scale(1.06)!important}.scene-wall-toggle:hover span{color:#2c2f37!important}.scene-wall-toggle.active{background:rgba(42,37,33,.55)!important}
/* restore long dimension sliders while keeping manual numeric input */
.row{grid-template-columns:72px minmax(0,1fr) 62px!important;gap:7px!important}.row-side{width:62px!important;display:grid!important;gap:4px!important}.manual-value{padding:5px 5px!important;font-size:9px!important}.value{padding:5px 4px!important}.row input[type=range]{min-width:0!important;width:100%!important}

/* AIVELI Space OS embedded surface. Editor features preserved; duplicate chrome hidden. */
html.embedded-visualizer,html.embedded-visualizer body{width:100%;height:100%;margin:0;overflow:hidden}
.embedded-visualizer .brand{display:none!important}
.embedded-visualizer #rail [data-nav="projects"]{display:none!important}
.embedded-visualizer #projectBtn{display:none!important}
.embedded-visualizer .profile{display:none!important}
.embedded-visualizer .current-build{display:none!important}
.embedded-visualizer .rail-logo{font-size:17px!important}
@media(max-width:680px){.embedded-visualizer .topbar{padding-top:8px!important;padding-bottom:8px!important}}

/* Studio canvas maximization */
.embedded-visualizer{--rail:54px!important;--library:238px!important;--inspector:0px!important}
.embedded-visualizer .shell{grid-template-columns:54px 238px minmax(0,1fr)!important;position:relative}
.embedded-visualizer .rail{min-width:54px}
.embedded-visualizer .rail-item{min-height:51px;border-radius:12px;font-size:8px}
.embedded-visualizer .library{width:238px;min-width:0;grid-column:2}
.embedded-visualizer .library-scroll{padding:12px 9px 36px}
.embedded-visualizer .viewport{grid-column:3!important}
.embedded-visualizer .inspector{position:absolute!important;right:0;top:0;bottom:0;width:312px;max-width:min(312px,calc(100% - 54px));transform:translateX(104%);transition:transform .3s cubic-bezier(.2,.85,.25,1)!important;box-shadow:-12px 0 45px rgba(26,20,14,.15);z-index:50!important;grid-column:auto!important;pointer-events:none}
.embedded-visualizer .inspector.open{transform:translateX(0);pointer-events:auto}
.embedded-visualizer .topbar{top:0!important;left:0!important}
.embedded-visualizer .ai-fab,.embedded-visualizer .ai-modal{display:none!important}
.embedded-visualizer .inspector-drawer-trigger{position:absolute;right:13px;bottom:78px;z-index:30;border:1px solid rgba(255,255,255,.65);color:#1f222a;background:rgba(255,255,255,.90);box-shadow:0 10px 32px rgba(25,20,16,.13);backdrop-filter:blur(16px);border-radius:999px;padding:11px 16px;font-weight:650;font-size:11px}
.home-tool-list{display:grid;gap:10px}.home-tool-list button{border:1px solid #dbdee4;background:#fff;border-radius:16px;padding:16px 15px;text-align:left;display:grid;gap:5px;transition:.2s}.home-tool-list button:hover{transform:translateY(-2px);box-shadow:0 12px 20px #21242c12}.home-tool-list b{font-size:14px}.home-tool-list span{font-size:10px;color:#777b83}
.trim-choice-grid{display:grid;gap:11px}.trim-choice{border:1px solid #d9dce2;border-radius:17px;background:#fff;padding:12px;text-align:left;display:grid;gap:6px;transition:transform .2s,box-shadow .2s}.trim-choice:hover{transform:translateY(-2px);box-shadow:0 10px 20px #22252d13}.trim-choice.active{border-color:#696d75;background:#f6f7fa;box-shadow:inset 0 0 0 1px #696d75}.trim-choice b{font-size:12px}.trim-choice small{font-size:10px;color:#7f838b}.trim-visual{display:block;position:relative;height:48px;border-radius:10px;background:linear-gradient(#e7e8eb 0 58%,#a2a6ae 59%)}.trim-visual:after{content:"";position:absolute;left:12%;right:12%;bottom:10px;height:8px;box-shadow:0 2px 5px #34373f30;background:#edeef1;border-radius:3px}.trim-corner:after{height:14px;border:2px solid #d9dce2;border-bottom:4px solid #a3a7af}.trim-flat:after{height:7px;background:#d0d3d9}.trim-transition:after{height:3px;bottom:12px;background:linear-gradient(#eff0f3,#7b7f87)}.trim-tools{display:grid;gap:9px;padding:14px;background:#fff;border:1px solid #dde0e6;border-radius:16px;margin-top:14px}.trim-tools label{display:flex;align-items:center;justify-content:space-between;font-size:11px}.trim-tools input{width:52px;height:30px;border:0;background:none}.trim-tools span{font-size:10px;color:#7f838b}.trim-tools button{padding:10px;background:#f7f8fb;border:1px solid #e2e3e6;border-radius:10px;font-size:10px}.trim-explain{font-size:11px;line-height:1.6;color:#777b83}.trim-preview{background:linear-gradient(130deg,#d6d9df 0 55%,#8c9098 56% 65%,#edeef1 66% 80%,#8a8e96 81%)!important}
@media(max-width:900px){.embedded-visualizer .shell{grid-template-columns:54px minmax(0,1fr)!important}.embedded-visualizer .library{position:absolute!important;left:54px;grid-column:auto;width:min(300px,calc(100vw - 54px))!important;transform:translateX(-110%)}.embedded-visualizer .library.open{transform:translateX(0)}.embedded-visualizer .viewport{grid-column:2!important}}
@media(max-width:520px){.embedded-visualizer .shell{grid-template-columns:48px minmax(0,1fr)!important}.embedded-visualizer .rail{min-width:48px}.embedded-visualizer .library{left:48px!important;width:calc(100vw - 48px)!important}.embedded-visualizer .inspector{width:min(320px,calc(100vw - 48px))}.embedded-visualizer .inspector-drawer-trigger{bottom:64px;right:8px;padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.embedded-visualizer .inspector,.trim-choice,.home-tool-list button{transition:none!important}}
.embedded-visualizer .shell.library-collapsed{grid-template-columns:54px 0 minmax(0,1fr)!important}
.embedded-visualizer .shell.library-collapsed .library{display:none!important}
.embedded-visualizer .library-drawer-trigger{position:absolute;left:14px;bottom:77px;z-index:30;border:1px solid rgba(255,255,255,.64);color:#1f222a;background:rgba(255,255,255,.89);box-shadow:0 10px 32px rgba(25,20,16,.13);backdrop-filter:blur(15px);border-radius:999px;padding:11px 16px;font-weight:650;font-size:11px}
@media(max-width:900px){.embedded-visualizer .shell.library-collapsed{grid-template-columns:54px minmax(0,1fr)!important}.embedded-visualizer .library-drawer-trigger{left:8px;bottom:64px;padding:8px 10px}}
@media(max-width:520px){.embedded-visualizer .shell.library-collapsed{grid-template-columns:48px minmax(0,1fr)!important}}
