:root{--ink:#23312d;--dark:#18372f;--dark2:#26493d;--green:#14856a;--green-light:#e6f3ee;--sub:#687874;--line:#e1e6e3;--bg:#f1f4f1;--white:#fff;--orange:#ad681a;--red:#b23f39;--shadow:0 15px 50px rgba(22,53,44,.12)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:13px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}[hidden]{display:none!important}.app{height:100vh;min-height:570px;display:flex;flex-direction:column;overflow:hidden}.topbar{height:72px;min-height:72px;background:var(--dark);display:flex;align-items:center;gap:28px;color:white;padding:0 24px;box-shadow:0 3px 14px #10281c18;position:relative;z-index:12}.brand{display:flex;align-items:center;gap:11px;min-width:285px}.brand-mark{height:37px;width:37px;display:grid;place-items:center;background:#3b7e64;border-radius:11px;color:#e7fff2}.brand-mark svg{width:27px}.brand strong{display:block;font-size:20px;letter-spacing:-.8px;font-weight:750}.brand small{display:block;color:#9db6aa;font-size:9px;letter-spacing:1.9px;margin-top:2px;font-weight:700}.project-header{flex:1;min-width:140px}.eyebrow{font-size:10px;color:#859c90;letter-spacing:1.5px;font-weight:800}.project-header .eyebrow{font-size:9px;color:#80a698}.title-edit{color:#fff;font-size:16px;font-weight:680;letter-spacing:-.25px;background:none;border:none;padding:4px 0;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-edit:hover{text-decoration:underline}.tiny-edit{font-size:12px;color:#8eaf9b;padding-left:7px}.save-note{color:#a0bdb0;font-size:10px}.header-actions{display:flex;gap:9px;align-items:center}.btn{border-radius:9px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;min-height:35px;font-size:12px;font-weight:700;border:1px solid transparent;transition:background .2s,color .2s,border .2s}.btn.primary{background:#d7f3e6;color:#164b38}.btn.primary:hover{background:#fff}.btn.subtle{background:#29483d;color:#e5f4ed}.btn.subtle:hover{background:#3a5a4c}.btn.outline{background:#fff;border-color:#dbe5de;color:#315246}.btn.outline:hover{background:#eef7f2}.btn.wide{width:100%}.btn.danger-quiet{background:#fff7f5;border-color:#f7dcd9;color:var(--red)}.btn.square{padding:0;width:36px;height:36px;background:#29483d;color:#fff;font-size:23px}.btn-symbol{font-size:17px;font-weight:500}.header-dropdown{position:relative}.dropdown{position:absolute;top:45px;right:0;z-index:50;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:12px;min-width:224px;padding:6px;display:flex;flex-direction:column}.dropdown button{background:none;border:0;text-align:left;border-radius:7px;padding:10px;font-size:12px;color:#354b40}.dropdown button:hover{background:#eff5f0}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:287px minmax(300px,1fr) 307px}.sidebar{display:flex;flex-direction:column;background:white;border-right:1px solid var(--line);overflow:hidden}.side-top{padding:26px 21px 14px}.side-top h2{font-size:22px;letter-spacing:-.9px;margin:9px 0 5px;font-weight:800}.side-top p{margin:0;color:var(--sub);font-size:12px;line-height:1.6}.side-tabs{display:flex;border-bottom:1px solid var(--line);margin:0 20px 0;gap:7px}.side-tab{background:transparent;border:0;color:#7e8b84;font-weight:700;padding:14px 13px 12px;border-bottom:2px solid transparent}.side-tab.active{color:var(--green);border-color:var(--green)}.side-panel{padding:17px 15px 16px 20px;display:flex;min-height:0;overflow-y:auto;flex-direction:column;gap:13px;flex:1}.input-search{position:relative;display:block}.input-search input{border:1px solid var(--line);background:#f8faf8;padding:11px 12px 11px 32px;width:100%;border-radius:8px;outline:0;font-size:12px}.input-search input:focus,.field-grid input:focus,.modal input:focus,.mini-select:focus{border-color:var(--green);box-shadow:0 0 0 2px #14856a19}.search-icon{position:absolute;left:11px;top:6px;font-size:22px;color:#9aa79e}.category-row{display:flex;flex-wrap:wrap;gap:6px}.category{border:1px solid var(--line);border-radius:7px;background:#fff;color:#65756c;font-size:11px;padding:6px 8px}.category.active{background:#e6f3ec;color:#21654a;border-color:#a6d6be;font-weight:750}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin:2px 0 -4px;color:#6d7d73;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}.text-button{background:none;border:none;color:var(--green);font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;padding:5px 0}.catalog-list{display:flex;flex-direction:column;gap:9px}.catalog-item{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1px solid #e3e9e3;border-radius:11px;padding:9px;text-align:left;transition:all .15s}.catalog-item:hover{border-color:#7ab89b;background:#f8fbf8;transform:translateY(-1px)}.catalog-art{width:56px;height:52px;min-width:56px;border-radius:9px;background:#eff2ef;display:flex;align-items:center;justify-content:center;color:#6b7f70}.catalog-art svg{width:48px;height:46px}.catalog-data{flex:1;min-width:0}.catalog-data strong{display:block;font-size:12px;font-weight:770;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-data .sku{display:block;font-size:10px;color:#82918b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.catalog-data .dimensions{display:block;font-size:11px;color:#59695f;font-weight:680;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-plus{flex:0 0 25px;border-radius:50%;height:25px;width:25px;background:#e8f5ed;color:#21765a;display:grid;place-items:center;font-size:19px}.catalog-footer{padding:9px 0 5px}.catalog-footer p{font-size:10px;color:#96a199;line-height:1.6;margin-bottom:0}.side-intro{color:#74837b;line-height:1.6;margin:0}.sample-list{display:flex;flex-direction:column;gap:11px}.sample-card{background:white;border:1px solid var(--line);border-radius:12px;display:flex;gap:12px;padding:10px;text-align:left;width:100%;align-items:center}.sample-card:hover{border-color:#98c4a5;background:#f7fcf8}.sample-picture{width:76px;height:72px;background:#f2f5f1;border:1px solid #e9eee9;border-radius:7px;display:grid;place-items:center;flex-shrink:0}.sample-picture svg{width:68px;height:64px}.sample-data strong{display:block;font-size:12px;margin-bottom:5px}.sample-data span{color:var(--sub);font-size:10px;line-height:1.5;display:block}.center{display:flex;flex-direction:column;min-width:0;min-height:0}.canvas-toolbar{height:62px;min-height:62px;border-bottom:1px solid #e2e8e2;background:#fff;display:flex;align-items:center;padding:0 22px;gap:8px}.view-toggle{background:#eff3ef;border-radius:9px;display:flex;padding:4px;gap:2px}.view-toggle button{background:transparent;border:none;padding:9px 13px;border-radius:7px;font-size:12px;font-weight:700;color:#718078;white-space:nowrap}.view-toggle button.on{background:white;box-shadow:0 2px 7px #15372613;color:#194e3c}.mini-icon{font-size:16px;vertical-align:-1px;margin-right:4px}.toolbar-spacer{flex:1}.unit-label{font-size:11px;color:#849187}.mini-select{background:#fff;border:1px solid #e1e5df;border-radius:7px;font-size:11px;padding:8px 6px;color:#4b5e51;outline:0}.mobile-btn{display:none}.icon-button{background:#fff;border:1px solid #e0e6e0;border-radius:8px;color:#42584b;min-width:31px;height:32px;font-weight:700;font-size:18px}.icon-button:hover{background:#f2f8f4}.canvas-area{position:relative;overflow:hidden;min-height:0;flex:1;background:#f2f4f0;background-image:radial-gradient(#ccd8cc 1px,transparent 1px);background-size:20px 20px}.plan-svg,.three-svg{position:absolute;left:0;top:0;height:100%;width:100%;touch-action:none;user-select:none}.viewport-top{position:absolute;top:17px;left:20px;right:20px;z-index:3;display:flex;align-items:center;justify-content:space-between;pointer-events:none;gap:12px}.pill{padding:9px 12px;color:#536b60;border-radius:30px;box-shadow:0 3px 14px #122b2110;background:#fff;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snap-btn{pointer-events:auto;background:#fff;border:1px solid #e0e8df;color:#5b7765;padding:8px 12px;border-radius:30px;font-size:11px;white-space:nowrap}.snap-btn.on #snapDot{color:#16865c}.snap-btn{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.snap-btn select{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;font:inherit;padding:0 2px;cursor:pointer}.snap-btn select:focus-visible{outline:2px solid #16865c;outline-offset:2px;border-radius:4px}.snap-btn select option{color:#1f2f27;background:#fff}.snap-btn:not(.on) #snapDot{color:#bbb}.canvas-left-tools{position:absolute;z-index:3;top:50%;left:19px;transform:translateY(-50%);display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid #e0e7df;padding:5px;border-radius:11px;box-shadow:0 7px 20px #16432d13}.tool{border:none;border-radius:7px;height:35px;width:35px;font-size:19px;background:white;color:#647a68}.tool.active,.tool:hover{background:#e4f4e9;color:#1c6848}.canvas-bottom{position:absolute;bottom:16px;left:20px;right:20px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;align-items:center}.legend,.scale-indicator{background:#fff;padding:8px 11px;border-radius:6px;font-size:10px;color:#657568;box-shadow:0 3px 14px #25392a0b}.legend{display:flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-dot.normal{background:#36a877}.legend-dot.warning{background:#ef9a4c;margin-left:7px}.canvas-bottom{z-index:3}.legend-toggle{pointer-events:auto;border:0;font:inherit;font-size:10px;cursor:pointer}.legend-toggle:hover{box-shadow:0 0 0 1px #9fc2ad}.legend-toggle.off .legend-dot{background:#c3c9c5}.legend-toggle:focus-visible{outline:2px solid #16865c;outline-offset:2px}.three-hint{position:absolute;top:62px;right:20px;z-index:3;background:white;box-shadow:0 7px 25px #0001;padding:13px 15px;border-radius:9px;display:flex;flex-direction:column;gap:3px}.three-hint strong{font-size:12px}.three-hint span{font-size:10px;color:#7d8e7f}.reset-link{margin-top:5px;align-self:start;background:none;border:0;padding:0;color:var(--green);font-size:11px}.statusbar{height:43px;min-height:43px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 19px;justify-content:space-between;gap:10px}.status-main{display:flex;gap:9px;align-items:center;color:#39735b;font-size:11px;font-weight:650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.status-main.has-warnings{color:#ad681a}.status-mark{width:21px;height:21px;background:#e5f4ea;border-radius:50%;display:grid;place-items:center;font-size:11px}.status-main.has-warnings .status-mark{background:#fcf2df}.status-meta{font-size:11px;color:#86918a;white-space:nowrap}.inspector{background:#fff;border-left:1px solid var(--line);padding:24px 19px 0;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.inspector-buttons{display:flex;gap:5px}.inspector-header{display:flex;align-items:center;justify-content:space-between}.inspector-header h2{font-size:19px;letter-spacing:-.6px;margin:8px 0 15px}.room-info,.selected-card{background:#f4f7f3;border:1px solid #e5ece3;border-radius:10px;padding:11px;display:flex;align-items:center;gap:11px;margin-bottom:19px}.room-icon,.selected-glyph{height:39px;width:39px;border-radius:10px;background:#e4eee5;display:grid;place-items:center;font-size:23px;color:#51785a}.room-info strong,.selected-card strong{display:block;font-size:12px}.room-info small,.selected-card small{display:block;margin-top:5px;color:#85958a;font-size:11px}.section-heading{color:#7c8b80;font-weight:800;font-size:10px;letter-spacing:1px;margin:17px 0 12px;display:flex;justify-content:space-between}.section-heading span{letter-spacing:0;text-transform:none;color:#a1aaa1;font-weight:500}.field-grid{display:grid;gap:10px}.field-grid-2{grid-template-columns:1fr 1fr}.field-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.field-grid label,.modal label{font-size:11px;color:#718077;display:flex;flex-direction:column;gap:6px}.field-grid label small{font-size:9px}.field-grid input,.modal input,.modal select{width:100%;min-width:0;padding:10px 8px;border-radius:7px;border:1px solid #dfe7df;font-weight:650;color:#36493c;outline:0;background:#fff}.field-grid input[type=color]{padding:3px;height:36px;cursor:pointer}.feature-buttons{display:flex;gap:9px}.feature{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;border:1px dashed #c5d6c9;border-radius:8px;background:#f9fbf9;padding:9px;font-weight:700;color:#3f6e53}.feature span{font-size:20px}.feature:hover{background:#eef7ef}.image-controls{margin-top:7px;border:1px solid #e6eee6;background:#f8faf7;padding:10px;border-radius:8px}.image-controls label{display:flex;flex-wrap:wrap;justify-content:space-between;color:#7e8b82;font-size:11px;gap:7px}.image-controls label input{width:100%;accent-color:#14856a}.image-controls strong{color:#267653}.help-text{font-size:11px;color:#89978d;line-height:1.65}.openings-list{display:flex;flex-direction:column;gap:6px;margin-top:9px}.opening-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;padding:8px;background:#f7f9f7;border-radius:7px}.opening-row button{border:none;background:#fff;color:#ac6354;padding:2px 7px;border-radius:4px}.slider-field{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#6a7b6b;margin-top:17px}.slider-field>span{display:flex;justify-content:space-between}.slider-field b{color:#35674c}.slider-field input{width:100%;accent-color:var(--green)}.item-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:17px}.item-buttons .btn{padding:9px 6px;font-size:11px}.item-buttons .btn:last-child{grid-column:span 2}.item-source{margin:15px 0 0;font-size:10px;line-height:1.65;color:#8a9a8f;overflow-wrap:anywhere}.item-source a{color:var(--green)}.fit-check{border-top:1px solid var(--line);margin:25px -19px 0;padding:22px 18px 26px;background:#fcfdfb;flex-shrink:0}.fit-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.fit-header h3{margin:0;font-size:14px}.fit-badge{font-size:10px;border-radius:6px;background:#def3e5;color:#258159;font-weight:750;padding:5px 7px;white-space:nowrap}.fit-badge.warn{background:#fff1dc;color:#a36424}.fit-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:17px 0 16px}.fit-stats>div{border-right:1px solid #e6ebe5;padding-left:9px}.fit-stats>div:first-child{padding-left:0}.fit-stats>div:last-child{border-right:0}.fit-stats strong{font-size:19px;letter-spacing:-.4px;display:block}.fit-stats small{color:#95a097;font-size:9px;display:block;margin-top:4px}.fit-messages{display:flex;flex-direction:column;gap:7px}.fit-message{background:#edf8ef;color:#48745b;padding:9px;border-radius:7px;font-size:10px;line-height:1.5}.fit-message.warn{background:#fff6e8;color:#936324}.fit-message.error{background:#fdefea;color:#a84439}.fit-note{font-size:10px;color:#9aa59b;line-height:1.6;display:block;margin-top:13px}.modal-backdrop{position:fixed;inset:0;background:#12251ec2;backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;z-index:100}.modal{background:white;border-radius:15px;box-shadow:0 30px 90px #0005;width:min(490px,95vw);padding:24px;max-height:85vh;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:15px}.modal-head h2{margin:8px 0 0;letter-spacing:-.5px}.modal .modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.modal label{margin:11px 0}.modal input{font-size:13px;padding:11px}.modal .explain{font-size:12px;line-height:1.6;color:#7d897f}.modal .modal-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.modal .modal-grid label{font-size:11px}.project-row{padding:12px 4px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8efe8;gap:10px}.project-row strong{font-size:13px}.project-row small{display:block;font-size:10px;color:#8b968b;margin-top:4px}.project-row button{background:#eff7f1;border:0;padding:8px 9px;color:#32674c;border-radius:7px;font-weight:700;font-size:11px}.project-row button.remove{background:#fff1ec;color:#b45c4c}.toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,30px);background:#1c4234;color:white;box-shadow:0 10px 35px #1235;padding:12px 18px;border-radius:9px;z-index:200;opacity:0;pointer-events:none;transition:all .25s;font-size:12px}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#9f4339}.furn-object{cursor:grab}.furn-object:active{cursor:grabbing}.furn-object:focus{outline:none}.plan-svg.panning{cursor:grab}.plan-svg.measuring{cursor:crosshair}a{color:inherit}@media(max-width:1190px){.workspace{grid-template-columns:240px minmax(300px,1fr) 266px}.brand{min-width:210px}.sidebar .side-top{padding:19px 15px 13px}.side-panel{padding-left:13px}.inspector{padding:19px 13px 0}.fit-check{margin-left:-13px;margin-right:-13px}.topbar{gap:14px;padding:0 14px}.canvas-toolbar{padding:0 12px}}@media(max-width:940px){.workspace{grid-template-columns:215px minmax(275px,1fr)}.inspector{position:fixed;z-index:40;width:min(305px,88vw);top:72px;bottom:0;right:0;box-shadow:-12px 0 35px #0013;transform:translateX(100%);transition:transform .2s}.inspector.mobile-open{transform:translateX(0)}.center{min-width:0}.topbar .btn.subtle{padding:8px}.project-header{flex:1}.header-actions{gap:5px}.canvas-toolbar{gap:4px}.view-toggle button{padding:8px}.canvas-toolbar .mini-select{max-width:72px}.mobile-btn{display:block}}@media(max-width:650px){.app{height:100dvh}.topbar{height:63px;min-height:63px}.brand{min-width:unset}.brand small{display:none}.brand strong{font-size:17px}.brand-mark{width:31px;height:31px}.topbar .project-header{display:none}.header-actions .btn.subtle{font-size:0}.header-actions .btn-symbol{font-size:20px}.workspace{grid-template-columns:1fr}.sidebar{display:none}.sidebar.mobile-open{display:flex;position:fixed;top:63px;bottom:0;left:0;z-index:45;width:min(315px,90vw);box-shadow:10px 0 40px #1225}.canvas-toolbar{height:56px;min-height:56px;overflow-x:auto}.canvas-left-tools{top:auto;bottom:62px;left:10px;transform:none}.canvas-bottom{left:10px;right:10px}.pill{font-size:9px}.viewport-top{left:9px;right:9px}.three-hint{right:9px}.inspector{top:63px}}
@media print{body,.app,.workspace,.center{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}.topbar,.sidebar,.inspector,.canvas-toolbar,.viewport-top,.canvas-left-tools,.three-hint,.canvas-bottom,.statusbar,.toast{display:none!important}.workspace{display:block!important}.center{display:block!important}.canvas-area{height:90vh!important;background:white!important}.plan-svg,.three-svg{width:100%!important;height:90vh!important}}
/* RoomForm v2 */
.catalog-source{padding:10px 17px;font-size:11px;color:#6e8278;border-top:1px solid #e6ece7}.catalog-source.connected{color:#157758;font-weight:700}
.rotate-handle{cursor:grab;touch-action:none;filter:drop-shadow(0 1px 2px #0003)}.rotate-handle:active{cursor:grabbing}
.opening-hit{cursor:ew-resize;touch-action:none}.opening-hit:hover line{stroke:#e9fbef;stroke-opacity:.15}
.item-family{font-size:12px;color:#52675c}.family-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.family-meta span{background:#eff5ee;border:1px solid #d9e8de;border-radius:6px;padding:5px 7px}.related-products{display:flex;flex-direction:column;gap:6px;margin-top:8px}.related-products button{text-align:left;background:#f8faf8;border:1px solid #d7e5d9;border-radius:7px;color:#195e50;cursor:pointer;padding:8px 10px;font:inherit}.related-products button:hover{background:#e9f4ec}
.help-content{max-height:61vh;overflow:auto;padding-right:8px}.help-content h3{font-size:13px;margin:19px 0 5px;color:#234e3c}.help-content p{font-size:13px;line-height:1.55;margin:5px 0 10px}.help-content code{font-size:11px;background:#e9eee7;padding:2px 4px;border-radius:4px}
.chat-panel[hidden]{display:none!important}.chat-panel{position:fixed;right:18px;bottom:18px;width:min(430px,calc(100vw - 36px));height:min(635px,calc(100dvh - 105px));display:flex;flex-direction:column;z-index:110;background:#fff;border:1px solid #ccdcd1;border-radius:16px;box-shadow:0 14px 70px #1a402f38;overflow:hidden;font-family:inherit}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#1c4938;color:#fff}.chat-head strong{display:block;font-size:16px}.chat-head small{display:block;margin-top:5px;font-size:11px;opacity:.8}.chat-head button{color:#fff}.chat-log{background:#f6f9f5;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:17px 14px}.chat-message{max-width:95%;padding:11px 13px;border-radius:12px;font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.bot{background:#fff;color:#315042;border:1px solid #dfebe0;align-self:flex-start;border-top-left-radius:2px}.chat-message.user{background:#267c5a;color:#fff;align-self:flex-end;border-top-right-radius:2px}.chat-examples{display:flex;gap:5px;padding:8px 10px;overflow-x:auto;border-top:1px solid #e6ece5}.chat-examples button{font-size:11px;padding:5px 7px;border:1px solid #cfdfd1;border-radius:12px;color:#426351;background:#fff;white-space:nowrap;cursor:pointer}.chat-form{display:flex;align-items:end;padding:10px;gap:7px;background:#fff}.chat-form textarea{resize:vertical;max-height:115px;min-height:43px;width:100%;flex:1;border:1px solid #cfded1;border-radius:9px;padding:10px;font:inherit;font-size:13px;outline-color:#318263}.chat-form button{height:43px}.chat-foot{padding:3px 12px 10px;font-size:10px;color:#7b8a7d;background:#fff}
@media(max-width:900px){.chat-panel{bottom:10px;right:10px;height:min(640px,calc(100dvh - 80px))}.header-actions #chatBtn{padding:8px}.header-actions #helpBtn{padding:8px}}
@media print{.chat-panel{display:none!important}}

.item-context{position:fixed;z-index:9999;background:#fff;color:#24342b;border:1px solid #b9c9bf;border-radius:12px;padding:8px;box-shadow:0 12px 36px #14271d44;min-width:165px}.item-context button{display:block;width:100%;text-align:left;background:transparent;border:0;padding:9px 12px;border-radius:7px;cursor:pointer;color:inherit}.item-context button:hover{background:#edf4ef}.item-context button:disabled{opacity:.4}.context-title{font-size:12px;font-weight:700;padding:6px 10px;border-bottom:1px solid #ddd}.canvas-toolbar button:disabled{opacity:.35;cursor:not-allowed}

/* Catalog product images are linked to Access image_url; missing images fall back to an icon. */
.catalog-art img{width:100%;height:100%;object-fit:contain;border-radius:7px;background:white}

/* v5: product imagery over true-scale footprints */
.photo-mode-btn{padding:8px 11px;min-height:35px;border:1px solid #cbdcd1;border-radius:9px;background:#f9fcfa;color:#315d4b;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}.photo-mode-btn[aria-pressed="true"]{background:#e9f4eb;border-color:#85bfa5}.photo-mode-btn:hover{background:#def0e4}.furn-object image{pointer-events:none}@media(max-width:900px){.photo-mode-btn{padding:7px;font-size:10px}}

.selected-glyph img{width:100%;height:100%;object-fit:contain;border-radius:8px;background:#fff}.model-note{margin-top:7px;padding:8px 10px;border-radius:7px;background:#eff5f0;color:#53695b;font-size:11px;line-height:1.55}.furn-object image{user-select:none}
/* v7: compact room finishes and wall-mounted furniture controls */
.mount-field{display:flex;flex-direction:column;gap:5px;margin:10px 0 14px;font-size:12px;color:#506b5e;font-weight:650}
.mount-field input{width:100%;border:1px solid #d8e3da;border-radius:9px;padding:10px;background:#fff;color:#203c30;font:inherit}
.mount-field small{font-size:11px;font-weight:400;line-height:1.4;color:#7a8e82}
#wallColor,#floorColor{height:38px;padding:3px;cursor:pointer;min-width:0}
#top3d,#reset3d{font-size:18px}

/* v9 room finishes, wall mounts, and transparent pointer layer for WebGL */
.wall-color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:9px 0 13px}
.wall-color-grid label{font-size:10px;color:#607369;display:flex;flex-direction:column;gap:5px;min-width:0}
.wall-color-grid input{width:100%;height:34px;padding:3px;background:#fff;border:1px solid #dae4da;border-radius:7px;cursor:pointer}
.finish-subhead{font-size:11px;font-weight:750;color:#536b60;margin:13px 0 6px}
.finish-subhead small{font-weight:400;color:#91a096}
.finish-select,.mount-field select{width:100%;border:1px solid #dfe7e0;padding:9px 7px;background:white;border-radius:7px;color:#365449;margin-bottom:10px}
.mount-help{font-size:10px;line-height:1.55;margin-top:7px}
.three-canvas{position:absolute;pointer-events:none;z-index:2;display:block;background:transparent;touch-action:none}
.three-svg{z-index:1}
/* The canvas overlays the SVG. SVG shapes remain interactive beneath the canvas. */

/* v10: accessible presets alongside the custom native picker */
.finish-swatches{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px;margin-bottom:8px}
.finish-swatch{width:23px;height:23px;min-width:23px;border-radius:6px;border:2px solid white;outline:1px solid #b9c8bd;cursor:pointer;padding:0;transition:transform .12s,outline-color .12s}
.finish-swatch:hover{transform:translateY(-2px)}
.finish-swatch.active{outline:2px solid #14694f;outline-offset:1px}
.finish-swatch:focus-visible{outline:3px solid #075b4b;outline-offset:2px}
.wall-color-grid .finish-swatches{gap:4px}.wall-color-grid .finish-swatch{width:19px;min-width:19px;height:19px;border-radius:5px}
.palette-help{font-size:10px;color:#83988c;margin:7px 0 6px;line-height:1.4}

/* Build 17 — Settings and planner-wide interface themes.
   Room-specific colors/materials intentionally remain untouched. */
#settingsBtn{flex-shrink:0}
.settings-content{display:flex;flex-direction:column;gap:14px}
.settings-content section{padding:4px 0 15px;border-bottom:1px solid var(--line)}
.settings-content h3{font-size:14px;letter-spacing:-.2px;margin:0 0 5px;color:var(--ink)}
.settings-desc{font-size:11.5px;line-height:1.6;color:var(--sub);margin:4px 0 12px}
.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.theme-option{position:relative;cursor:pointer;display:flex!important;flex-direction:column!important;margin:0!important;border:2px solid var(--line);border-radius:12px;padding:9px!important;gap:6px!important;background:var(--white)}
.theme-option:has(input:checked){border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green),transparent 80%)}
.theme-option input{position:absolute;top:9px;right:10px;width:15px!important;height:15px!important;accent-color:var(--green);cursor:pointer;z-index:1}
.theme-preview{display:block;width:100%;height:52px;position:relative;background:var(--preview-bg);border-radius:7px;overflow:hidden;border:1px solid #96a59c55}
.theme-preview i{display:block;height:13px;background:var(--preview-bar)}
.theme-preview b{position:absolute;top:18px;left:5px;bottom:5px;width:29%;background:color-mix(in srgb,var(--preview-bg),white 55%);border-radius:3px}
.theme-preview em{position:absolute;top:18px;left:36%;right:5px;bottom:5px;background:color-mix(in srgb,var(--preview-bg),white 30%);border:1px solid #93a29744;border-radius:3px}
.theme-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.theme-text strong{font-size:11px;color:var(--ink);font-weight:750}
.theme-text small{color:var(--sub);font-size:10px;line-height:1.3}
.settings-field{display:flex!important;flex-direction:column;gap:6px!important;color:var(--ink)!important;font-weight:700;margin:12px 0!important}
.settings-field select{width:100%;padding:10px 11px;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:8px}
.settings-field[hidden]{display:none!important}
.settings-status{border-radius:8px;background:var(--green-light);padding:10px 12px;color:var(--ink);font-size:11px;line-height:1.55}
.settings-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding-top:3px}
.settings-footer>span{font-size:10px;color:var(--sub);margin-right:auto}
.settings-footer .btn{min-height:36px;padding:9px 12px}
.modal:has(.settings-content){width:min(590px,96vw)}
@media(max-width:460px){.theme-options{gap:6px}.theme-option{padding:6px!important}.settings-footer{justify-content:space-between}.settings-footer .btn{flex:1;padding:8px 5px;font-size:10px}}

/* Ocean and warm theme: retain high contrast on the original light panels. */
:root[data-theme="ocean"]{--ink:#263d4e;--dark:#183d53;--dark2:#2c5770;--green:#2177a1;--green-light:#e6f1f9;--sub:#667e8d;--line:#dae6ee;--bg:#eaf1f5;--shadow:0 15px 50px rgba(25,54,75,.16)}
:root[data-theme="ocean"] .topbar .btn.subtle,:root[data-theme="ocean"] .topbar .btn.square{background:#2b5268}
:root[data-theme="ocean"] .btn.primary{background:#cfebf9;color:#183d53}
:root[data-theme="ocean"] .brand-mark{background:#397b9d}
:root[data-theme="ocean"] .canvas-area{background-color:#e8f0f6}
:root[data-theme="ocean"] .side-tab.active{border-color:var(--green)}
:root[data-theme="ocean"] .chat-head{background:#20495f}
:root[data-theme="ocean"] .chat-message.user{background:#28749c}
:root[data-theme="sand"]{--ink:#44362c;--dark:#503d2e;--dark2:#715943;--green:#957044;--green-light:#f6eede;--sub:#837362;--line:#e7dfd3;--bg:#f8f2ea;--shadow:0 15px 50px rgba(73,54,34,.14)}
:root[data-theme="sand"] .topbar .btn.subtle,:root[data-theme="sand"] .topbar .btn.square{background:#6b523e}
:root[data-theme="sand"] .btn.primary{background:#f5e5c8;color:#523d2b}
:root[data-theme="sand"] .brand-mark{background:#987750}
:root[data-theme="sand"] .canvas-area{background-color:#f7f0e5}
:root[data-theme="sand"] .chat-head{background:#624b37}
:root[data-theme="sand"] .chat-message.user{background:#926c46}

/* Dark mode applies to application chrome only. The plan itself is a measured,
   color-authored document and does not invert wall/floor finishes. */
:root[data-theme="dark"]{color-scheme:dark;--ink:#e5eee9;--dark:#151f24;--dark2:#283b43;--green:#65c49d;--green-light:#304940;--sub:#9aafa8;--line:#3c4e50;--bg:#1b272d;--white:#27363b;--shadow:0 15px 50px rgba(0,0,0,.4)}
:root[data-theme="dark"] .sidebar,:root[data-theme="dark"] .inspector,:root[data-theme="dark"] .statusbar,:root[data-theme="dark"] .modal,:root[data-theme="dark"] .dropdown,:root[data-theme="dark"] .catalog-list{background:#27363b;color:var(--ink)}
:root[data-theme="dark"] .side-top p,:root[data-theme="dark"] .section-heading,:root[data-theme="dark"] .help-text,:root[data-theme="dark"] .field-grid label,:root[data-theme="dark"] .modal label{color:#abbbb4}
:root[data-theme="dark"] .fit-check,:root[data-theme="dark"] .room-info,:root[data-theme="dark"] .selected-card,:root[data-theme="dark"] .opening-row,:root[data-theme="dark"] .catalog-footer,:root[data-theme="dark"] .image-controls{background:#29383c;color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] .field-grid input:not([type=color]),:root[data-theme="dark"] .modal input:not([type=color]),:root[data-theme="dark"] .modal select,:root[data-theme="dark"] .mount-field input,:root[data-theme="dark"] .mount-field select,:root[data-theme="dark"] .input-search input,:root[data-theme="dark"] .finish-select{background:#1d2b30;color:#e5eee9;border-color:#516366}
:root[data-theme="dark"] .btn.outline,:root[data-theme="dark"] .feature,:root[data-theme="dark"] .project-row button,:root[data-theme="dark"] .related-products button{background:#304449;color:#e4f2e9;border-color:#506466}
:root[data-theme="dark"] .dropdown button,:root[data-theme="dark"] .catalog-card,:root[data-theme="dark"] .category-row button{color:var(--ink)}
:root[data-theme="dark"] .dropdown button:hover,:root[data-theme="dark"] .related-products button:hover{background:#415659}
:root[data-theme="dark"] .canvas-area{background-color:#202e32}
:root[data-theme="dark"] .canvas-left-tools,:root[data-theme="dark"] .legend,:root[data-theme="dark"] .scale-indicator,:root[data-theme="dark"] .pill,:root[data-theme="dark"] .snap-btn{background:#304348;color:#e7efe8;border-color:#536664}
:root[data-theme="dark"] .tool,:root[data-theme="dark"] .icon-button{color:#cbded5}
:root[data-theme="dark"] .tool.active{background:#365e4f}
:root[data-theme="dark"] .chat-panel{background:#27383d;border-color:#4a5f5c}
:root[data-theme="dark"] .chat-head{background:#182b2e}
:root[data-theme="dark"] .chat-log{background:#1e3033}
:root[data-theme="dark"] .chat-message.bot{background:#304449;color:#e1eee5;border-color:#4b615c}
:root[data-theme="dark"] .chat-message.user{background:#2a745e}
:root[data-theme="dark"] .chat-examples,:root[data-theme="dark"] .chat-form,:root[data-theme="dark"] .chat-foot{background:#26383b;border-color:#465b56;color:#c0d0c7}
:root[data-theme="dark"] .chat-examples button,:root[data-theme="dark"] .chat-form textarea{background:#1e3034;border-color:#49625a;color:#e7f1e9}
:root[data-theme="dark"] .theme-option{background:#29383b}
:root[data-theme="dark"] .settings-status{background:#334942;color:#e3f1e9}
:root[data-theme="dark"] .item-context{background:#29383b;color:#e7f1e9;border-color:#4f625c}
:root[data-theme="dark"] .item-context button:hover{background:#3a514b}
@media print{:root[data-theme="dark"] .canvas-area{background:#fff!important}}

/* Keep Settings discoverable even on compact headers. */
.settings-gear{font-size:17px;line-height:1}
@media(max-width:1190px){#settingsBtn{padding:8px 10px}#settingsBtn .settings-label{display:none}}

/* Build 19 — door and window edit hit targets. */
.opening-visual{cursor:context-menu}
.opening-3d-hit{cursor:context-menu;outline:none}
.opening-3d-hit:hover{stroke:#168569;stroke-opacity:.65;stroke-width:1.5}
.opening-3d-hit:focus-visible{stroke:#168569;stroke-opacity:.95;stroke-width:2}
.opening-hit:focus-visible{outline:none}

/* Build 20 — 2D-aligned camera and eye-level walk-through. */
#align3d,#walk3d{font-size:11px;padding:6px 10px;white-space:nowrap;min-width:unset}
.walk-toggle[aria-pressed="true"]{background:#1e725c!important;color:#fff!important}
.walk-hud{position:absolute;z-index:7;top:65px;right:16px;width:222px;max-width:calc(100% - 30px);padding:12px;background:rgba(255,255,255,.92);border:1px solid #bed2c6;border-radius:13px;box-shadow:0 6px 25px #23402e24;backdrop-filter:blur(7px);color:#294b3d;pointer-events:auto}
.walk-hud[hidden]{display:none!important}
.walk-hud-top{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:12px}
.walk-hud-top button{border:1px solid #d1e0d5;border-radius:7px;background:#eef5ee;cursor:pointer;padding:4px 8px;font-size:11px;color:#2f5e49}
.walk-hud-info{font-size:10px;line-height:1.45;margin:7px 0 6px;color:#62796d}
.walk-hud-main{display:flex;align-items:center;justify-content:space-between;gap:9px}
#walkMiniMap{width:108px;height:115px;background:#e9f0e7;border-radius:7px;border:1px solid #bed2c6}
.walk-pad{text-align:center;flex:1}.walk-pad button{border:1px solid #c4d8cb;background:#fff;color:#225942;width:29px;height:29px;border-radius:7px;cursor:pointer;padding:0;font-size:17px;margin:2px}.walk-pad button:active{background:#b7d6c3}.walk-pad div{white-space:nowrap}
.walk-coords{font-size:10px;color:#567467;margin-top:5px;text-align:center}
.walk-crosshair{position:absolute;z-index:4;pointer-events:none;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;font-weight:200;color:#245c49;text-shadow:0 0 4px #fff}
.walk-crosshair[hidden]{display:none!important}
@media(max-width:880px){#align3d,#walk3d{padding:5px;font-size:10px}.walk-hud{top:auto;bottom:65px;right:7px;width:195px}}

/* Build 24: show actual sidestep vs obstruction feedback in Walk mode. */
.walk-motion{font-size:10px;line-height:1.4;font-weight:650;text-align:center;
 color:#1c614a;background:#e5f3e9;border-radius:6px;padding:5px 4px;margin-top:7px}

/* Build 26: pointer-lock FPS-style Walk view, crosshair stays centered. */
.canvas-area.walk-active .three-svg{cursor:crosshair}
.canvas-area.walk-pointer-locked,.canvas-area.walk-pointer-locked *{cursor:none!important}
.walk-pointer-help{position:absolute;z-index:6;left:50%;bottom:70px;transform:translateX(-50%);pointer-events:none;white-space:nowrap;max-width:95%;text-align:center;padding:7px 13px;background:rgba(24,50,43,.83);border-radius:20px;color:#fff;font-weight:600;font-size:11px}
.walk-pointer-help[hidden]{display:none!important}
.walk-crosshair{font-size:24px;color:#fff;text-shadow:0 0 2px #1b332b,0 0 5px #1b332b}

/* Build 27 · furniture-oriented walk-through controls */
.walk-hud-tools{display:flex;gap:5px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:6px 0 9px}
.walk-hud-tools label{color:var(--ink);font-size:10px;font-weight:700;display:flex;align-items:center;gap:5px}
.walk-hud-tools select,.walk-hud-tools button{border:1px solid #b8d0c2;background:#fff;color:#225942;border-radius:7px;font-size:10px;padding:5px}
.walk-hud-tools button{font-weight:700}
.walk-hud{max-height:min(80vh,570px);overflow:auto}
.walk-inspect{position:absolute;z-index:8;left:50%;bottom:106px;transform:translateX(-50%);max-width:70%;padding:8px 15px;border:1px solid #b4caba;border-radius:10px;background:rgba(255,255,255,.93);color:#1c5945;box-shadow:0 2px 8px #0002;font-weight:750;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.walk-inspect[hidden]{display:none!important}
.walk-item-details dl{display:grid;grid-template-columns:115px minmax(0,1fr);gap:10px 16px;line-height:1.45}
.walk-item-details dt{font-weight:750;color:#46685a}.walk-item-details dd{margin:0;overflow-wrap:anywhere}
@media(max-width:740px){.walk-hud{max-width:calc(100% - 24px)}.walk-inspect{bottom:112px;max-width:92%}}

/* Build 29: Forensics-inspired contextual assistant, with non-destructive proposals */
.assistant-page-context{font-size:12px;font-weight:600;padding:10px 14px;background:var(--white);border-bottom:1px solid var(--line);color:var(--ink)}
.assistant-proposal{margin:12px 8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);font-size:12px;line-height:1.55;box-shadow:0 3px 10px rgba(0,0,0,.045)}
.assistant-proposal>strong{font-size:13px}.proposal-list{padding-left:20px;margin:8px 0}.proposal-list li{margin-bottom:5px}
.proposal-results{padding:9px;border-radius:7px;background:var(--bg);border:1px solid var(--line)}.proposal-results p{margin:5px 0;white-space:pre-line}
.proposal-warn{color:#b34c29;font-weight:600}.proposal-note{font-size:11px;color:var(--sub)}
.proposal-buttons{display:flex;flex-wrap:wrap;gap:6px}.proposal-buttons .btn{font-size:11px;padding:7px 9px}
.proposal-edit{margin:10px 0}.proposal-edit label{font-size:12px;display:block}.proposal-edit textarea{width:100%;max-width:100%;box-sizing:border-box;min-height:115px;padding:8px;margin:6px 0;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);font:11px/1.5 monospace}
.assistant-connection{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.assistant-connection span{font-size:12px;color:var(--sub);flex:1;min-width:170px}
:root[data-theme="dark"] .assistant-page-context,:root[data-theme="dark"] .assistant-proposal{background:#27383d;color:#e5eee9;border-color:#48645c}
:root[data-theme="dark"] .proposal-results{background:#1e3033;border-color:#46625c}

.proposal-layouts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;margin-top:10px}
.proposal-layouts>div{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f8faf7}.proposal-layouts b{display:block;padding:5px 7px;font-size:11px;color:#374841}
@media(max-width:440px){.proposal-layouts{grid-template-columns:1fr}}


/* Build 30: Forensics-sized, distraction-free walkthrough in a furniture planner. */
.app.walk-layout{height:100dvh;min-height:0;overflow:hidden}
.app.walk-layout .topbar,.app.walk-layout .sidebar,.app.walk-layout .inspector,.app.walk-layout .canvas-toolbar,.app.walk-layout .statusbar{display:none!important}
.app.walk-layout .workspace{display:block!important;height:100dvh!important;min-height:0!important;width:100vw!important}
.app.walk-layout .center{height:100dvh!important;min-height:0!important;width:100vw!important;display:flex!important;flex-direction:column!important}
.app.walk-layout .canvas-area{height:100dvh!important;min-height:100dvh!important;width:100vw!important;flex:none!important;background:#d9ddd7}
.app.walk-layout .canvas-bottom,.app.walk-layout .viewport-top,.app.walk-layout .canvas-left-tools{display:none!important}
.app.walk-layout .plan-svg,.app.walk-layout .three-svg,.app.walk-layout .three-canvas{width:100%!important;height:100%!important}
.app.walk-layout #walkHud{position:absolute;top:14px;right:16px;bottom:auto;z-index:12;max-height:calc(100dvh - 34px);width:300px;max-width:calc(100vw - 32px);border:1px solid #b8cbbf;background:rgba(247,251,247,.94);backdrop-filter:blur(10px);box-shadow:0 14px 40px #12261d38}
.app.walk-layout #walkHud:not(.is-expanded){width:min(292px,calc(100vw - 32px));overflow:visible}
.app.walk-layout #walkHud:not(.is-expanded)>:not(.walk-hud-top){display:none!important}
.walk-hud-buttons{display:flex;gap:6px;align-items:center}
.walk-hud .walk-hud-top strong{font-size:13px;flex:1}
.walk-hud .walk-hud-top button{font-size:11px;min-height:29px;padding:5px 8px;white-space:nowrap}
.walk-door-list{border:1px solid #d8e3d9;background:#f6f8f4;border-radius:8px;padding:9px;margin:6px 0 8px;font-size:11px}
.walk-door-list>strong{display:block;margin-bottom:7px}
.walk-door-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.walk-door-buttons button{padding:8px 4px;border:1px solid #b9d2c2;border-radius:7px;background:white;color:#1d5d42;font-size:11px;font-weight:700;cursor:pointer}
.walk-door-buttons button:hover,.walk-door-action:hover{background:#e5f2e8}
.walk-door-action{position:absolute;z-index:13;left:50%;bottom:76px;transform:translateX(-50%);padding:11px 17px;max-width:80vw;white-space:nowrap;border:2px solid #b99c6a;border-radius:12px;background:#faf5ea;color:#563f28;box-shadow:0 8px 32px #0004;font-size:14px;font-weight:800;cursor:pointer}
.walk-door-action[hidden]{display:none!important}
.app.walk-layout .walk-inspect{bottom:125px;z-index:11}
.app.walk-layout .walk-crosshair{z-index:5}
.app.walk-layout .walk-pointer-help{z-index:10;bottom:15px!important}
.app.walk-layout .modal-backdrop{z-index:100}
/* The animated doorway slab has a clickable SVG projected hit target as well as the keyboard interaction. */
.opening-3d-hit{cursor:pointer}
.opening-3d-hit:focus-visible{outline:none;stroke:#c49750;stroke-width:2;stroke-opacity:.9}
@media(max-width:740px){.app.walk-layout #walkHud{right:8px;top:8px;width:min(290px,calc(100vw - 16px))}.walk-door-action{bottom:74px;font-size:12px}.app.walk-layout .walk-inspect{bottom:124px}}

/* v31: forced viewport overlay, independent of ancestor grid heights or panels. */
body.furniture-walk-active{overflow:hidden!important;height:100dvh!important}
body.furniture-walk-active #canvasArea{position:fixed!important;inset:0!important;top:0!important;left:0!important;width:100vw!important;height:100dvh!important;min-width:100vw!important;min-height:100dvh!important;max-height:none!important;z-index:1500!important;border:0!important;margin:0!important;padding:0!important;background:#dfe4e0!important}
body.furniture-walk-active #threeSvg,body.furniture-walk-active #threeCanvas{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
body.furniture-walk-active #threeCanvas[hidden],body.furniture-walk-active #threeSvg[hidden]{display:none!important}
body.furniture-walk-active #walkHud{z-index:1510!important}
body.furniture-walk-active #walkDoorAction{z-index:1511!important}
body.furniture-walk-active #walkCrosshair{z-index:1505!important}
body.furniture-walk-active #walkPointerHelp{z-index:1511!important}
.walk-build-stamp{font-size:10px;color:#226448;background:#e0f1e8;padding:2px 5px;border-radius:4px;margin-left:4px}
#walkNativeFullscreen{font-size:11px}
@media(max-width:550px){#walkNativeFullscreen{display:none!important}}

/* Keep all three full-window controls visible, even in narrow browsers. */
body.furniture-walk-active #walkHud .walk-hud-top{display:flex;flex-wrap:wrap;align-items:center;row-gap:6px}
body.furniture-walk-active #walkHud .walk-hud-top>strong{flex:1 0 100%;white-space:nowrap;min-width:0}
body.furniture-walk-active #walkHud .walk-hud-top>.walk-hud-buttons{width:100%;justify-content:flex-start;display:flex;flex-wrap:wrap}
body.furniture-walk-active #walkHud .walk-hud-buttons button{flex:1 1 auto;min-width:0}
body.furniture-walk-active #walkHud{max-height:calc(100dvh - 24px);overflow-y:auto}

/* Build 35 – readily accessible paint choices and HVAC register controls */
.quick-colors{border:1px solid var(--line);border-radius:9px;padding:10px 9px;background:var(--white);margin-top:10px}
.quick-colors-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.quick-colors-head strong{font-size:10px;letter-spacing:.55px;color:var(--sub)}
.quick-colors-head select,.register-mount select{border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);padding:5px;min-width:0;max-width:160px;font-size:11px}
.quick-color-palette{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.quick-color-choice{border:2px solid var(--white);outline:1px solid #89968e;height:29px;min-width:0;border-radius:6px;cursor:pointer;padding:0;box-sizing:border-box}
.quick-color-choice.active{outline:3px solid #1c815f;outline-offset:1px}
.quick-color-choice:hover,.quick-color-choice:focus-visible{outline:2px solid #175f48;transform:translateY(-1px)}
.register-mount{border:1px solid var(--line);background:var(--green-light);border-radius:9px;padding:10px;margin:8px 0 12px;color:var(--ink)}
.register-mount[hidden]{display:none!important}
.register-mount label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:700}
.register-mount small{display:block;margin-top:6px;font-size:10px;color:var(--sub)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.item-color-shortcuts{margin-top:9px}.item-color-shortcuts>small{display:block;margin-bottom:7px;color:var(--sub);font-size:10px}.item-color-shortcuts .quick-color-choice{height:24px}

/* Build 40: compact and consistent window curtain swatches. */
.modal:has(#openingForm){width:min(610px,96vw)}
.modal #openingForm .modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.modal #openingForm .window-curtain-controls{grid-column:1 / -1;padding:12px;border:1px solid var(--line);background:var(--white);border-radius:10px;display:flex;flex-direction:column;gap:10px;margin-top:5px}
.window-curtain-controls[hidden]{display:none!important}
.window-curtain-controls .curtain-color-label{font-size:12px;font-weight:750;color:var(--ink)}
.window-curtain-controls .window-curtain-palette{grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}
.window-curtain-controls .quick-color-choice{height:32px}
.window-curtain-controls .curtain-custom{border-top:1px solid var(--line);padding-top:9px;font-size:12px;color:var(--sub)}
.window-curtain-controls .curtain-custom summary{cursor:pointer;font-weight:650}
.window-curtain-controls .curtain-custom input[type=color]{width:100%;height:42px;cursor:pointer;padding:4px;margin-top:8px}
@media(max-width:480px){.modal #openingForm .modal-grid{grid-template-columns:1fr 1fr;gap:8px}.window-curtain-controls .window-curtain-palette{gap:5px}.modal #openingForm .window-curtain-controls{padding:9px}}

/* Build 41: the editable room backdrop is the color behind the geometry. */
.canvas-area{background-color:var(--room-backdrop,#e9eee7)}
.app.walk-layout .canvas-area{background:var(--room-backdrop,#e9eee7)!important}
body.furniture-walk-active #canvasArea{background:var(--room-backdrop,#e9eee7)!important}
.backdrop-help{margin:9px 0 7px}
.backdrop-palette{display:flex;flex-wrap:wrap;gap:6px;padding:3px 0 9px}
.backdrop-palette button{width:28px;height:28px;min-width:28px;padding:0;border-radius:7px;border:1px solid #a8b4ab;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff88}
.backdrop-palette button.active{outline:2px solid #168468;outline-offset:2px}
.backdrop-palette button:focus-visible{outline:3px solid #168468;outline-offset:2px}
.sound-setting{display:flex!important;align-items:center;gap:9px;font-size:12px;color:var(--ink);cursor:pointer;margin-top:12px}
.sound-setting input[type=checkbox]{width:16px;height:16px;accent-color:#1a795d;flex:none}
#walkSoundToggle[aria-pressed=false]{opacity:.75}

/* v42 — decorative wall chair rails and object-label controls */
.labels-toggle{white-space:nowrap;font-size:11px!important;padding:6px 8px!important;min-width:72px}

.walk-view-btn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:18px;line-height:1;box-shadow:var(--shadow)}
.walk-view-btn .walk-icon{display:inline-block;transform:translateY(1px)}
.walk-view-btn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
@media (max-width:650px){.walk-view-btn{min-width:38px;padding:6px 8px;font-size:17px}}
.chair-rail-options{display:grid;grid-template-columns:1fr 1fr;gap:9px 7px;padding:11px 9px;margin:8px 0 10px;border:1px solid var(--line);border-radius:9px;background:var(--soft,#f7faf7)}
.chair-rail-options label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;color:var(--ink,#304638);cursor:pointer}
.chair-rail-options input{accent-color:#197b60;flex-shrink:0}
.chair-rail-controls{margin-top:9px}.chair-rail-controls input[type=color]{cursor:pointer;height:36px;padding:3px}
.rail-actions{display:flex;justify-content:space-between;gap:8px;margin:7px 0 14px}.rail-actions button{font-size:10px}
:root[data-theme="dark"] .chair-rail-options{background:#1f2e32;border-color:#4f6063}
:root[data-theme="dark"] .chair-rail-options label{color:#d7e6df}
@media (max-width:650px){.labels-toggle{min-width:65px;padding:5px!important}}

/* Holly Manor extendable table controls */
.holly-leaf-panel{margin:12px 0;padding:12px;border:1px solid #d9e1d8;border-radius:10px;background:#f7f8f4;display:grid;gap:9px}
.holly-leaf-panel strong{font-size:12px;color:#304a3e}
.holly-leaf-panel small{font-size:11px;color:#67786e;line-height:1.4}
.holly-leaf-actions{display:flex;flex-wrap:wrap;gap:7px}
.holly-leaf-actions button{padding:8px 10px;border:1px solid #adbfb3;background:#fff;color:#395449;border-radius:7px;font-weight:650;font-size:11px;cursor:pointer}
.holly-leaf-actions button.active{background:#1d6650;color:#fff;border-color:#1d6650}

/* V44: improved catalog readability; maintain room viewport flex sizing. */
@media(min-width:941px){.workspace{grid-template-columns:340px minmax(290px,1fr) 307px}}
@media(min-width:941px) and (max-width:1190px){.workspace{grid-template-columns:300px minmax(275px,1fr) 266px}}
@media(min-width:651px) and (max-width:940px){.workspace{grid-template-columns:275px minmax(275px,1fr)}}
.catalog-data strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.catalog-item{align-items:center}
@media(max-width:650px){.workspace{grid-template-columns:1fr}}

/* v45 — saved dimensions and dedicated project print sheet */
.dimension-list{display:flex;flex-direction:column;gap:6px;margin:9px 0}.dimension-entry{display:flex;justify-content:space-between;align-items:center;background:#f4f8f4;border:1px solid #dce7df;padding:5px 7px;border-radius:7px;font-size:11px}.dimension-entry button{border:0;background:#fff;color:#a54b42;cursor:pointer;font-size:18px;border-radius:5px;min-width:27px}.dimension-entry button:hover{background:#fbe7e6}.dimension-entry.active{border-color:#078d70;background:#e8f4ee}.dimension-entry .partition-pick{flex:1;text-align:left;color:inherit;font-size:11px;background:transparent}.dimension-entry .partition-pick:hover{background:transparent;text-decoration:underline}.dimension-entry [data-edit-partition]{color:#0a746a;font-size:14px}.dimension-entry [data-edit-partition]:hover{background:#e3f1ea}#planSvg .partition{cursor:move}#planSvg .partition-end{cursor:crosshair}#planSvg.measuring .partition{cursor:crosshair}.print-sheet{display:none}
@page{size:auto;margin:13mm}
@media print{
 html,body{height:auto!important;overflow:visible!important;background:#fff!important}
 body>.app,body>.modal-backdrop,body>.chat-panel,body>.toast,body>.item-context{display:none!important}
 body>.print-sheet{display:block!important;position:static!important;width:100%!important;max-width:none!important;background:white!important;color:#1f352c!important;font-family:Arial,sans-serif!important}
 .print-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid #275d48;padding-bottom:12px;gap:25px;break-after:avoid}
 .print-brand{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#527c67}.print-heading h1{font-size:23px;margin:7px 0 3px}.print-heading p{font-size:11px;margin:0;color:#526558}.print-meta{display:flex;flex-direction:column;gap:5px;text-align:right;font-size:10px;color:#4e6557}.print-meta strong{font-size:12px}
 .print-drawing{display:flex;justify-content:center;align-items:center;width:100%;height:155mm;min-height:0;margin:10px auto 6px;page-break-inside:avoid}.print-plan-svg{width:100%;height:100%;max-height:155mm;display:block}
 .print-products{break-before:auto}.print-products h2{font-size:15px;margin:15px 0 9px}.print-products table{width:100%;border-collapse:collapse;font-size:9px;table-layout:fixed}.print-products th,.print-products td{text-align:left;border-bottom:1px solid #ced8d1;padding:7px 5px;overflow-wrap:anywhere}.print-products th{background:#ebf1ec;color:#315743;font-weight:700}.print-products th:nth-child(1){width:4%}.print-products th:nth-child(2){width:37%}.print-products th:nth-child(3){width:18%}.print-products th:nth-child(4){width:7%}.print-products th:nth-child(n+5){width:11%}.print-products tr{break-inside:avoid}.print-note{font-size:9px;color:#6c746e;margin-top:10px}.print-dimensions{display:flex;gap:15px;font-size:10px;margin:6px 0 10px}.print-dimensions div{display:flex;flex-wrap:wrap;gap:10px}
}

/* v46 — readable inspector with section disclosure, larger desktop working width */
@media(min-width:1191px){.workspace{grid-template-columns:340px minmax(320px,1fr) 380px!important}}
@media(min-width:941px) and (max-width:1190px){.workspace{grid-template-columns:290px minmax(275px,1fr) 335px!important}}
@media(min-width:941px){.inspector{padding:19px 15px 0}.fit-check{margin:0!important;padding:14px 12px 20px!important;border-top:0}}
.inspector{gap:0}
.inspector-section,.fit-collapse{border:1px solid #dde7df;border-radius:10px;background:#fff;margin:9px 0;overflow:visible;flex-shrink:0}
.inspector-section-title{list-style:none;cursor:pointer;user-select:none;padding:13px 12px;color:#355c49;font-size:11px;font-weight:800;letter-spacing:.45px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f5f9f6;border-radius:9px}
.inspector-section-title::-webkit-details-marker{display:none}
.inspector-section-title:after{content:'▸';font-size:14px;flex-shrink:0;color:#658570}
[open]>.inspector-section-title:after{content:'▾'}
.inspector-section[open]>.inspector-section-title,.fit-collapse[open]>.inspector-section-title{border-bottom:1px solid #e1eae3;border-radius:9px 9px 0 0}
.inspector-section-body{padding:12px 12px 14px;min-width:0}
.inspector-section-body>.section-heading{display:none}
.inspector-section .feature-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.inspector-section .feature{font-size:11px;padding:9px 5px;min-width:0;gap:5px}
.inspector-section .feature span{font-size:18px}
.fit-collapse{padding:0}
.fit-collapse>.fit-check{margin:0!important;border:0!important;padding:14px 12px 17px!important}
@media(max-width:940px){.inspector{width:min(360px,92vw)}}
/* v47: blinds editor and measured-dimension context targets */
.modal #openingForm .window-blind-controls{grid-column:1 / -1;padding:12px;border:1px solid var(--line);background:var(--white);border-radius:10px;display:flex;flex-direction:column;gap:10px;margin-top:5px}
.window-blind-controls[hidden]{display:none!important}
.window-blind-controls label{display:flex;align-items:center;justify-content:space-between;gap:10px}
.window-blind-controls input[type=color]{width:66px;min-width:66px;height:36px;padding:3px;cursor:pointer}
.window-blind-controls input[type=number]{width:90px;max-width:90px}
.saved-dimension[data-dimension-index]{cursor:context-menu}

/* RoomForm V2 · Build 48: new room onboarding and ecommerce product linking */
.wizard-entry{border:1px solid #9bc8ae;background:#e8f4eb;color:#1e604a;font-weight:800;margin:0 0 2px}
.wizard-entry:hover{background:#d9eedf}
.modal:has(#roomWizardForm){width:min(690px,96vw);max-height:calc(100dvh - 34px);overflow:auto}
.room-wizard-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:16px 0 19px}
.room-wizard-choice{display:flex;align-items:center;gap:11px;min-width:0;padding:13px 12px!important;border:1px solid #dce7df;border-radius:12px;background:#fff;cursor:pointer;position:relative;transition:border-color .15s,background .15s}
.room-wizard-choice:hover{background:#f1f8f3;border-color:#83b69b}
.room-wizard-choice:has(input:checked){background:#e8f5ed;border:2px solid #299a74;padding:12px 11px!important}
.room-wizard-choice:focus-within{outline:2px solid #2c9c79;outline-offset:2px}
.room-wizard-choice input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.wizard-choice-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:42px;border-radius:10px;background:#e0ebe3;color:#277958;font-size:24px}
.wizard-choice-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.wizard-choice-info strong{color:#27473a;font-size:13px;font-weight:800;line-height:1.25}
.wizard-choice-info small{color:#688073;font-size:11px;line-height:1.4}
.wizard-choice-dot{height:14px;width:14px;border:2px solid #bccfc1;border-radius:50%;flex-shrink:0}
.room-wizard-choice:has(input:checked) .wizard-choice-dot{border:4px solid #138b63}
.assistant-onboarding-actions{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 14px;max-width:96%}
.assistant-onboarding-actions button{background:#e9f5ec;border:1px solid #acd6be;border-radius:9px;padding:8px 10px;color:#25654a;font-size:11px;font-weight:750;line-height:1.25}
.assistant-onboarding-actions button:hover{background:#dcf0e3}
.copy-product-link{display:block;width:100%;margin:7px 0 10px;padding:10px 9px;border:1px solid #b4d6c3;border-radius:9px;background:#edf8f0;color:#235f47;text-align:left;font-size:11px;font-weight:800}
.copy-product-link:hover{background:#e0f1e6}
#copyPlannerUrl{width:100%;border:1px solid #d7e3d9;border-radius:8px;padding:10px;font-size:12px;resize:vertical}
@media(max-width:570px){.room-wizard-options{grid-template-columns:1fr;gap:7px}.room-wizard-choice{padding:10px!important}.room-wizard-choice:has(input:checked){padding:9px!important}}
/* Keep dialogs usable when the design assistant is open (its z-index is 110). */
.modal-backdrop{z-index:180}

.selected-planner-link{display:block;margin-top:7px;padding:3px 0;color:#217552;font-size:10px;font-weight:750;background:none;border:none;text-align:left}.selected-planner-link:hover{text-decoration:underline}

/* V2.48 corrections — visible assistant close action, and color controls for openings. */
.chat-head{gap:12px;min-height:86px}
.chat-head>div:first-child{min-width:0;flex:1}
.chat-head #chatClose,.chat-panel .chat-head button#chatClose{width:34px;height:34px;min-width:34px;min-height:34px;flex:0 0 34px;display:grid!important;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:8px;color:#fff!important;background:rgba(255,255,255,.12)!important;font-size:25px!important;line-height:1;box-shadow:none;padding:0;appearance:none}
.chat-head #chatClose:hover,.chat-head #chatClose:focus-visible{background:rgba(255,255,255,.24)!important;outline:2px solid rgba(255,255,255,.8);outline-offset:2px}
.modal #openingForm .opening-paint-controls{display:flex;flex-direction:column;gap:11px;padding:12px;margin-top:12px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.modal #openingForm .opening-paint-controls>label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin:0;font-size:12px;font-weight:700;color:var(--ink)}
.modal #openingForm #openingPaintColor{width:84px;min-width:84px;height:37px;padding:3px;cursor:pointer}
.modal #openingForm .opening-paint-palette{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.modal #openingForm .opening-paint-controls .help-text{margin:0}
@media(max-width:480px){.modal #openingForm .opening-paint-palette{gap:5px}}

/* V2.49: site-home brand link and compact lower-right version marker. */
.brand-home-link{color:inherit;text-decoration:none;cursor:pointer;border-radius:8px;transition:background-color .15s}
.brand-home-link:hover{color:inherit;opacity:.92}
.brand-home-link:focus-visible{outline:2px solid #58c59b;outline-offset:4px}
.status-meta{padding-right:58px}
.app-build-stamp{position:fixed;right:17px;bottom:12px;z-index:90;pointer-events:none;color:#648174;font-size:10px;font-weight:750;letter-spacing:.055em;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:18px}
body.furniture-walk-active .app-build-stamp{z-index:1520;right:18px;bottom:14px;background:rgba(17,48,40,.76);border:1px solid rgba(240,255,250,.24);padding:2px 7px;border-radius:6px;color:#f1fff7;font-size:10px}
@media(max-width:650px){.app-build-stamp{right:10px;bottom:11px;font-size:9px}.status-meta{padding-right:48px}}
@media print{.app-build-stamp{display:none!important}}
.modal #openingForm .opening-frame-color{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 0;color:var(--ink);font-weight:650}
.modal #openingForm .opening-frame-color input[type=color]{width:84px;min-width:84px;height:36px;padding:3px;cursor:pointer}

/* V2.50 product GLB inspection panel */
.model-info{border:1px solid var(--line);border-radius:10px;padding:11px;margin:-8px 0 16px;background:var(--white);font-size:11px}
.model-info-heading{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:7px}
.model-info-heading strong{font-size:12px;color:var(--ink)}
.model-status{font-size:10px;font-weight:700;background:#edf1ee;color:#53665b;border-radius:5px;padding:4px 6px;text-align:right}
.model-info[data-status="ready"] .model-status{background:#dcefe3;color:#246642}
.model-info[data-status="loading"] .model-status{background:#e8f2fa;color:#336387}
.model-info[data-status="error"] .model-status{background:#fce7e4;color:#973c36}
.model-info[data-status="missing"] .model-status{background:#fff3de;color:#805b1e}
.model-info-hint{color:var(--sub);line-height:1.55;margin-bottom:7px}
.model-info code{display:block;font-size:11px;color:var(--ink);background:var(--bg);border-radius:5px;padding:8px;overflow-wrap:anywhere;user-select:all}
.model-refresh{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:7px 10px;margin-top:8px;width:100%;font-weight:700;font-size:11px}
.model-refresh:hover:not(:disabled){background:var(--green-light)}

/* V2.52 model diagnostics */
.model-audit-table{max-height:330px;overflow:auto;border:1px solid #d7ddd6;border-radius:8px}.model-audit-table table{border-collapse:collapse;width:100%;font-size:12px}.model-audit-table td,.model-audit-table th{padding:9px;border-bottom:1px solid #e5e8e4;text-align:left}.model-audit-table th{position:sticky;top:0;background:#f0f4ef}

/* V2.53: photographic catalog with lazy local images */
.catalog-visual-controls{display:flex;gap:7px;align-items:center;padding:4px 12px 9px}.catalog-visual-controls select{min-width:0;flex:1;border:1px solid #d9dfd7;background:#fff;border-radius:7px;padding:7px;font-size:12px}.catalog-visual-controls button{border:1px solid #cdd9d0;background:#f3f7f4;border-radius:7px;padding:7px;font-size:11px;white-space:nowrap;cursor:pointer}.catalog-more{margin:10px auto;width:calc(100% - 24px)!important}.catalog-art{position:relative;overflow:hidden;flex-shrink:0}.catalog-art .catalog-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#f9faf9;border-radius:5px}.catalog-item:focus-visible{outline:2px solid #35765f;outline-offset:-2px}

/* V2.54 placement controls */
.placement-align-actions{display:flex;gap:6px;margin:8px 0}.placement-align-actions button{flex:1;cursor:pointer;background:#eef5ef;border:1px solid #cbd8cd;border-radius:7px;padding:7px 4px;color:#245347;font-size:11px}

/* V2.55 walkthrough controls */
.walk-hud-tools{flex-wrap:wrap;gap:8px}.walk-hud-tools label{white-space:nowrap}.walk-hud-tools select{max-width:100px}.walk-target-label{margin:5px auto;padding:5px 12px;color:#f9f9ed;background:rgba(18,48,40,.85);border:1px solid rgba(190,227,204,.4);border-radius:8px;max-width:310px;text-align:center;font-size:12px;pointer-events:none}.walk-target-label[hidden]{display:none!important}

/* V2.56 — approachable design assistant and clear catalog diagnostics */
.chat-head strong{letter-spacing:-.15px}.chat-head small{line-height:1.4;font-size:11.5px;opacity:.92}
.chat-message.bot{border-radius:14px 14px 14px 5px;box-shadow:0 1px 2px rgba(25,60,40,.035)}
.chat-message.user{border-radius:14px 14px 5px 14px}
.chat-examples{flex-wrap:wrap;overflow-x:visible;gap:7px;padding:10px 12px}
.chat-examples button{white-space:normal;text-align:left;padding:7px 10px;font-weight:600;border-radius:999px;line-height:1.3}
.chat-form textarea{border-radius:12px}
.assistant-page-context{font-weight:500;font-size:12px}
.catalog-diagnostic{padding:12px 14px;background:var(--green-light);border:1px solid var(--line);border-radius:10px;margin:13px 0;color:var(--ink);font-size:12px;line-height:1.55}
:root[data-theme="dark"] .catalog-diagnostic{background:#304940;color:#e9f4ed}

/* V2.60 model-specific lighting controls */
.model-brightness-control{display:block;margin:9px 0;padding:9px 10px;border:1px solid #dce6dd;border-radius:9px;background:#f7faf6;color:#263e31;font-size:12px;font-weight:700}
.model-brightness-control[hidden]{display:none!important}
.model-brightness-control input{display:block;width:100%;margin:7px 0 5px;accent-color:#277254}
.model-brightness-control small{display:block;color:#52675b;font-weight:400;line-height:1.4}
.model-brightness-control span{float:right;font-variant-numeric:tabular-nums}

/* RoomForm V3: linked doors, portal controls, and return navigation */
.linked-room-back{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.opening-link-controls{padding:14px;border:1px solid #cbdad1;border-radius:12px;background:rgba(226,237,229,.45);margin-top:14px;display:grid;gap:9px;}
.opening-link-controls h3{margin:0;font-size:14px;color:#254d41;}
.opening-link-controls select{width:100%;padding:10px;border-radius:8px;border:1px solid #aebfb8;background:white;}
.opening-link-controls .btn{justify-self:start;}
.walk-back-room{border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:6px 9px;background:rgba(0,0,0,.20);color:white;cursor:pointer;}
.walk-link-action{bottom:125px;z-index:12;background:#0b6751 !important;color:#fff;max-width:min(80vw,320px);}
.opening-row>span:first-child{min-width:0;overflow-wrap:anywhere;}
@media(max-width:850px){.linked-room-back{max-width:120px;font-size:12px}.walk-back-room{font-size:11px}}

/* RoomForm V3.3 — live categories, style and finish-color filters. */
#categoryRow{max-height:112px;overflow-y:auto;align-content:flex-start;scrollbar-width:thin}
#categoryRow .category-count{display:inline-block;margin-left:3px;font-size:9px;opacity:.72;font-weight:550}
.catalog-extra-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:0 12px 4px}
.catalog-extra-filters label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:10px;font-weight:700;color:#60766a}
.catalog-extra-filters select{width:100%;min-width:0;border:1px solid #d9dfd7;background:#fff;border-radius:7px;padding:7px 4px;font-size:11px;color:#2d4e3e}
.catalog-extra-filters select:focus{outline:2px solid #b0ddc4;outline-offset:1px}
.catalog-clear-filters{align-self:flex-start;margin:0 12px 4px;border:0;background:none;color:var(--green);font-size:11px;font-weight:700;cursor:pointer;padding:3px 0}
:root[data-theme="dark"] .catalog-extra-filters select{background:#1d2b30;color:#e5eee9;border-color:#516366}
:root[data-theme="dark"] .catalog-extra-filters label{color:#b3c4b9}

/* V3.4: prevent catalog category buttons from collapsing in the scrollable flex sidebar. */
#categoryRow{display:flex!important;flex:0 0 auto!important;min-height:32px;max-height:138px;overflow-y:auto;align-content:flex-start;width:100%;}
#categoryRow .category{flex:0 0 auto;}
#catalogPanel>.catalog-list{flex:0 0 auto;}


/* RoomForm V3.5 — fixed catalog filters, independent product list, touch-friendly mobile library */
#catalogPanel{
  display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;min-height:0;
}
#catalogPanel[hidden]{display:none!important}
.catalog-filters{
  display:flex;flex-direction:column;gap:10px;flex:0 0 auto;
  padding:15px 15px 11px;background:var(--white);
  border-bottom:1px solid var(--line);
}
.catalog-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px;}
.catalog-filter-label{display:flex;flex-direction:column;min-width:0;gap:5px;font-size:11px;font-weight:750;color:var(--sub)}
.catalog-filter-label select{
  width:100%;min-width:0;height:38px;padding:7px 9px;
  color:var(--ink);background:var(--white);border:1px solid #cfdcd2;
  border-radius:9px;font-size:12px;white-space:nowrap;
}
.catalog-filter-label select:focus-visible{outline:2px solid var(--green);outline-offset:1px}
#catalogPanel .catalog-clear-filters{align-self:flex-start;margin:0;padding:2px 0;font-size:11px}
.catalog-results{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden;}
.catalog-results-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:7px;flex:0 0 auto;padding:11px 13px 9px;
  background:var(--white);border-bottom:1px solid var(--line);
}
.catalog-results-header .panel-heading{flex:1;margin:0;min-width:0;gap:6px}
.catalog-results-header .text-button{flex:0 0 auto}
.catalog-photo-icon{
  position:relative;display:grid;place-items:center;flex:0 0 34px;
  width:34px;height:34px;border:1px solid var(--line);border-radius:9px;
  background:#e7f4ed;color:#216a51;cursor:pointer;
}
.catalog-photo-icon[aria-pressed="false"]{background:#f7f7f6;color:#687670}
.catalog-photo-icon[aria-pressed="false"]::after{
  content:"";position:absolute;width:25px;height:2px;top:15px;left:5px;
  background:currentColor;transform:rotate(-44deg);box-shadow:0 0 0 2px var(--white);
}
.catalog-photo-icon:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.catalog-scroll{
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding:10px 13px 16px;scrollbar-width:thin;
}
#catalogPanel .catalog-list{display:flex;flex-direction:column;gap:9px;}
#catalogPanel .catalog-more{margin:12px 0;width:100%!important}
#catalogPanel .catalog-source{padding:10px 0;margin-top:10px}
#catalogPanel .catalog-footer{padding:11px 0 0}
.catalog-drawer-close{display:none}
.mobile-catalog-scrim{display:none}
@media (min-width:651px) and (max-width:1070px){
  .catalog-filter-grid{grid-template-columns:1fr;gap:6px}
  .catalog-filters{gap:7px;padding:10px 10px 8px}
  .catalog-filter-label select{height:34px}
  .catalog-results-header{padding:7px 8px}
  .catalog-scroll{padding:8px}
}
@media(max-width:650px){
  .mobile-catalog-scrim:not([hidden]){
    display:block;position:fixed;inset:63px 0 0;z-index:44;
    border:0;background:rgba(12,30,23,.48);width:100%;cursor:pointer;
  }
  .sidebar.mobile-open{
    display:flex;position:fixed;top:63px;bottom:0;left:0;
    width:min(390px,94vw);max-width:none;z-index:45;
    box-shadow:12px 0 45px rgba(0,0,0,.2);
  }
  .sidebar .side-top{display:none}
  .sidebar .side-tabs{
    margin:0;padding:3px 14px 0 14px;flex:0 0 auto;align-items:center;
  }
  .catalog-drawer-close{
    display:grid;place-items:center;margin-left:auto;
    width:42px;height:42px;border:0;background:transparent;
    color:var(--ink);border-radius:10px;font-size:27px;
  }
  .catalog-drawer-close:focus-visible{outline:2px solid var(--green)}
  .sidebar .side-panel{min-height:0}
  #catalogPanel .catalog-filters{padding:13px 14px 11px;gap:11px}
  .catalog-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .catalog-filter-label select{height:44px;font-size:14px}
  #productSearch{min-height:44px;font-size:14px}
  .catalog-results-header{padding:9px 12px}
  .catalog-photo-icon{width:42px;height:42px;flex-basis:42px}
  .catalog-scroll{padding:12px 12px max(18px,env(safe-area-inset-bottom))}
  .catalog-item{min-height:69px;padding:10px}
  .catalog-plus{height:32px;width:32px;flex-basis:32px}
  .catalog-more{min-height:44px}
  .side-tab{min-height:44px}
}
@media(max-width:370px){
  .sidebar.mobile-open{width:100vw}
  .catalog-filter-grid{gap:7px}
  .catalog-filter-label select{padding:5px;font-size:13px}
}
:root[data-theme="dark"] .catalog-filters,:root[data-theme="dark"] .catalog-results-header{background:var(--white)}
:root[data-theme="dark"] .catalog-filter-label select{background:#1d2b30;color:#e5eee9;border-color:#516366}

/* RoomForm V3.6 — guided, narrated assistant with non-destructive plan previews */
.assistant-voice-toolbar{display:flex;align-items:center;gap:5px;padding:7px 9px;background:#eff6f0;border-bottom:1px solid #cbded0;flex-wrap:wrap}
.assistant-voice-toolbar button,.assistant-voice-toolbar select{font:600 11px/1.3 inherit;font-family:inherit;font-size:11px;font-weight:650;background:#fff;color:#244b37;border:1px solid #c3d5c7;border-radius:7px;min-height:31px;padding:5px 7px;cursor:pointer}
.assistant-voice-toolbar #assistantVoiceChoice{min-width:75px;max-width:120px;flex:1 1 80px}
.assistant-voice-toolbar #assistantSpeechRate{max-width:81px}
.assistant-voice-toolbar button[aria-pressed="true"]{background:#d3edde;border-color:#428d65;color:#164c35}
.assistant-voice-toolbar button:disabled,.assistant-voice-toolbar select:disabled{opacity:.55;cursor:default}
.assistant-voice-toolbar button:focus-visible,.assistant-voice-toolbar select:focus-visible{outline:2px solid #238460;outline-offset:2px}
.proposal-demo-launch{margin:7px 0 9px}
.proposal-demo-launch .btn{width:100%;font-size:12px;background:#e2f2e9;color:#17593d;border:1px solid #a9ccb8}
.assistant-guided[hidden]{display:none!important}
.assistant-guided{position:absolute;z-index:45;left:14px;top:65px;width:min(460px,calc(100% - 28px));max-height:calc(100% - 85px);overflow-y:auto;box-sizing:border-box;background:#fff;color:#263f33;border:1px solid #bad0c2;border-radius:14px;box-shadow:0 17px 55px rgba(0,28,14,.26);padding:12px;display:flex;flex-direction:column;gap:8px;pointer-events:auto;overscroll-behavior:contain}
.assistant-demo-top{display:flex;align-items:center;justify-content:space-between;gap:9px}
.assistant-demo-top small{display:block;font-size:9px;letter-spacing:.13em;font-weight:800;color:#4c8268}
.assistant-demo-top strong{font-size:15px;display:block;line-height:1.25}
.assistant-demo-top button{border:1px solid #cbdacf;background:#fff;color:#305642;border-radius:7px;width:34px;height:34px;font-size:23px;cursor:pointer;flex:none}
.assistant-demo-steps{font-size:12px;font-weight:750;color:#1b7650;background:#eaf5ec;border-radius:7px;padding:7px 8px}
.assistant-demo-plan{display:block;width:100%;height:230px;border:1px solid #d9e3d9;border-radius:9px;background:#f7f9f5;overflow:hidden}
.assistant-demo-caption{margin:0;min-height:35px;font-size:12px;line-height:1.5;color:#355845}
.assistant-demo-controls,.assistant-demo-compare,.assistant-demo-approval{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.assistant-guided button{font-family:inherit;font-size:11px;font-weight:700;border-radius:7px;min-height:32px;padding:7px 9px;border:1px solid #c4d9cc;background:#f7faf8;color:#204c35;cursor:pointer}
.assistant-guided button:hover:not(:disabled){background:#e1f3e8}
.assistant-guided button:disabled{opacity:.48;cursor:default}
.assistant-guided button:focus-visible{outline:2px solid #148661;outline-offset:2px}
.assistant-demo-controls>button{flex:1 1 0}
.assistant-demo-compare>button{flex:1 1 auto}
.assistant-demo-compare>button[aria-pressed="true"]{background:#d4eddf;border-color:#4b9a73}
.assistant-demo-approval{margin-top:2px}
.assistant-demo-approval>button{flex:1 1 0;min-height:38px}
.assistant-demo-approval #assistantDemoApply{background:#216747;color:#fff;border-color:#216747}
.assistant-demo-approval #assistantDemoApply:hover:not(:disabled){background:#145536}
.assistant-demo-safety{font-size:10px;line-height:1.3;text-align:center;color:#607868}
:root[data-theme="dark"] .assistant-voice-toolbar{background:#2e4540;border-color:#516e60}
:root[data-theme="dark"] .assistant-guided{background:#263b37;color:#f0f5f0;border-color:#54705c}
:root[data-theme="dark"] .assistant-demo-steps{background:#335449;color:#baf1d1}
:root[data-theme="dark"] .assistant-demo-caption,:root[data-theme="dark"] .assistant-demo-safety{color:#d0ded2}
.app.walk-layout .assistant-guided{z-index:60;left:16px;top:16px;max-height:calc(100dvh - 32px)}
@media(max-width:1050px){.assistant-guided{width:min(420px,calc(100% - 28px))}.assistant-demo-plan{height:190px}}
@media(max-width:700px){
 .assistant-guided,.app.walk-layout .assistant-guided{left:9px;right:9px;top:10px;width:auto;max-height:min(78dvh,720px);padding:10px}
 .assistant-demo-plan{height:clamp(145px,27dvh,235px)}
 .assistant-voice-toolbar{gap:5px;padding:6px}
 .assistant-voice-toolbar #assistantVoiceChoice{flex:1 1 100px;max-width:none}
 .assistant-voice-toolbar button,.assistant-voice-toolbar select{min-height:37px}
}
@media(prefers-reduced-motion:reduce){.assistant-demo-plan *{transition:none!important;animation:none!important}}
@media print{.assistant-guided,.assistant-voice-toolbar{display:none!important}}

/* V3.7: Walk mode must not hide the assistant behind the fixed 3D canvas. */
body.furniture-walk-active #chatPanel:not([hidden]){position:fixed!important;z-index:1700!important;right:16px!important;bottom:16px!important;pointer-events:auto!important;max-height:calc(100dvh - 32px)!important;}
body.furniture-walk-active #assistantGuidedDemo:not([hidden]){z-index:1650!important;pointer-events:auto!important;}
body.furniture-walk-active #canvasArea:has(#assistantGuidedDemo:not([hidden])) #walkHud{pointer-events:none!important;}
@media(max-width:700px){body.furniture-walk-active #chatPanel:not([hidden]){right:6px!important;left:6px!important;bottom:6px!important;width:auto!important;height:min(68dvh,600px)!important;}body.furniture-walk-active #assistantGuidedDemo:not([hidden]){max-height:82dvh!important;}}

/* RoomForm V3.8 · consistent high-contrast headers across all interface themes */
:root{--rf-section-bg:#315d49;--rf-section-ink:#ffffff}
:root[data-theme="ocean"]{--rf-section-bg:#315d79;--rf-section-ink:#ffffff}
:root[data-theme="sand"]{--rf-section-bg:#775639;--rf-section-ink:#ffffff}
:root[data-theme="dark"]{--rf-section-bg:#395a53;--rf-section-ink:#ffffff}
:root .topbar{background:#102d23}
:root[data-theme="ocean"] .topbar{background:#112f43}
:root[data-theme="sand"] .topbar{background:#3e2d21}
:root[data-theme="dark"] .topbar{background:#10181d}
.inspector-section-title,.fit-collapse>.inspector-section-title,
.inspector-section[open]>.inspector-section-title,.fit-collapse[open]>.inspector-section-title{
 background:var(--rf-section-bg)!important;color:var(--rf-section-ink)!important;
 border-color:transparent!important;border-radius:8px 8px 0 0;
 font-weight:800;letter-spacing:.5px;
}
.inspector-section:not([open])>.inspector-section-title,.fit-collapse:not([open])>.inspector-section-title{border-radius:8px!important}
.inspector-section-title:after{color:var(--rf-section-ink)!important;opacity:.92}
.inspector-section-title span{color:var(--rf-section-ink)!important}
.inspector-section-title:hover{filter:brightness(1.12)}
.inspector-section-title:focus-visible{outline:3px solid #e2b14b;outline-offset:1px}
/* Assistant quick Yes / No replies */
.chat-quick-replies{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:7px 12px 2px;background:var(--white);border-top:1px solid var(--line)}
.chat-quick-replies>span{font-size:10px;font-weight:800;letter-spacing:.3px;color:var(--sub);margin-right:3px}
.chat-quick-replies button{border:1px solid #aacbb8;background:#ebf7f0;color:#225f46;border-radius:9px;min-height:34px;min-width:70px;font-size:12px;font-weight:750;padding:6px 14px;cursor:pointer}
.chat-quick-replies button:nth-of-type(2){background:var(--white);color:var(--ink);border-color:var(--line)}
.chat-quick-replies button:hover{filter:brightness(.95)}
.chat-quick-replies button:focus-visible{outline:2px solid #228769;outline-offset:2px}
:root[data-theme="dark"] .chat-quick-replies{background:#26383b;border-color:#465b56}
:root[data-theme="dark"] .chat-quick-replies button{background:#355f4d;color:#f0f8f1;border-color:#609175}
:root[data-theme="dark"] .chat-quick-replies button:nth-of-type(2){background:#293a3e;color:#e3f1e8;border-color:#59716a}
/* All native color inputs retain their advanced system picker, with adjacent basic presets. */
.rf-color-controls{display:flex;gap:5px;align-items:center;max-width:100%;width:100%;min-width:0;margin-top:4px}
.rf-color-controls>input[type="color"]{min-width:30px!important;width:100%!important;flex:1 1 30px!important;height:35px!important;max-width:none!important;margin:0!important}
.rf-color-button{flex:0 0 auto;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:7px;min-height:35px;max-width:68px;padding:4px 7px;font-size:10px;line-height:1.1;font-weight:750;cursor:pointer;white-space:normal}
.rf-color-button:hover,.rf-color-button[aria-expanded="true"]{background:var(--green-light)}
.rf-color-button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.rf-colors-popover{position:fixed;z-index:12000;width:242px;max-width:calc(100vw - 16px);background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 40px rgba(0,0,0,.28);padding:11px;box-sizing:border-box}
.rf-colors-popover[hidden]{display:none!important}
.rf-colors-title{font-size:12px;font-weight:800;margin:0 0 8px;display:flex;align-items:center;justify-content:space-between}
.rf-colors-close{font:inherit;font-size:16px;border:0;background:transparent;color:var(--ink);cursor:pointer;padding:1px 6px}
.rf-colors-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rf-colors-grid button{width:100%;height:34px;min-height:34px;border:2px solid transparent;border-radius:7px;box-shadow:0 0 0 1px #74837d66 inset;cursor:pointer}
.rf-colors-grid button[aria-pressed="true"]{outline:3px solid var(--green);outline-offset:1px}
.rf-colors-grid button:focus-visible{outline:3px solid #f0ad3d;outline-offset:1px}
.rf-colors-custom{width:100%;margin-top:10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--green-light);color:var(--ink);font:inherit;font-size:11px;font-weight:700;cursor:pointer}
@media(max-width:650px){.chat-quick-replies button{min-height:40px;min-width:80px}.rf-color-button{min-height:39px}.rf-color-controls>input[type="color"]{height:39px!important}}

/* V3.10: large, persistent Walk access beside 3D Room. */
.view-toggle #walk3d.walk-view-btn{display:inline-flex;align-items:center;justify-content:center;min-width:57px;min-height:48px;padding:4px 9px;font-size:32px!important;line-height:1;border:1px solid #a7c5b2;border-radius:9px;background:#fff;color:#19523c;box-shadow:0 1px 4px #162d1c24;flex-shrink:0}
.view-toggle #walk3d.walk-view-btn:hover{background:#e1f4e6}
.view-toggle #walk3d.walk-view-btn[aria-pressed="true"]{background:#bfe5cf;border-color:#4f9a6b}
.view-toggle #walk3d .walk-icon{font-size:32px;line-height:1}
.view-mismatch-alert{position:absolute;z-index:11;top:61px;left:50%;transform:translateX(-50%);width:max-content;max-width:min(90%,560px);background:#a54033;color:white;padding:10px 15px;border-radius:10px;box-shadow:0 5px 17px #0003;font-weight:700;font-size:12px;pointer-events:none}
@media(max-width:650px){.view-toggle #walk3d.walk-view-btn{min-width:49px;min-height:45px;padding:4px 8px}.view-toggle #walk3d .walk-icon{font-size:29px}}

/* V3.11: accessible pedestrian silhouette in place of colored emoji. */
.view-toggle #walk3d.walk-view-btn {color:#141819!important;min-width:56px!important;min-height:48px!important;}
.view-toggle #walk3d .walk-silhouette{display:block!important;width:34px!important;height:39px!important;fill:currentColor!important;stroke:none!important}
.view-toggle #walk3d[aria-pressed="true"]{color:#104731!important}
@media(max-width:650px){.view-toggle #walk3d .walk-silhouette{width:30px!important;height:35px!important}}

/* V3.11: ensure the 2D layout is actually printed, including from 3D/Walk. */
@media print{
 body>.print-sheet{display:block!important;visibility:visible!important}
 body>.print-sheet .print-drawing{height:139mm!important;min-height:130mm!important;break-inside:avoid!important}
 body>.print-sheet svg.print-plan-svg{display:block!important;visibility:visible!important;width:100%!important;height:100%!important;max-height:139mm!important}
 body>.print-sheet .print-products h2{font-size:12px!important;margin:10px 0 5px!important}
 body>.print-sheet .print-products table{font-size:7.4px!important;line-height:1.12!important}
 body>.print-sheet .print-products th,body>.print-sheet .print-products td{padding:3px 3px!important}
 body>.print-sheet .print-dimensions{font-size:8px!important}
 body>.print-sheet .print-heading h1{font-size:19px!important}
 body>.print-sheet .print-meta{font-size:8.5px!important}
 body>.print-sheet .print-meta strong{font-size:10px!important}
}

/* V3.11: Product-edit overlay can scroll independently on small devices. */
#editPlacedProductForm{display:block;}
#editPlacedProductForm .modal-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
#editPlacedProductForm textarea{width:100%;resize:vertical;min-height:56px;border:1px solid var(--line);border-radius:8px;padding:9px;font:inherit;}
#editPlacedProductForm input[type=color]{min-height:40px;padding:3px;cursor:pointer;}
@media(max-width:650px){#editPlacedProductForm .modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));}#modalBackdrop .modal{max-height:90dvh;padding:15px;width:min(96vw,490px);}}

/* V3.12: wider scrolling product-edit dialog, without affecting Add/other dialogs. */
.modal-backdrop.product-edit-open .modal{width:min(670px,96vw);max-height:min(91dvh,950px)}
#editPlacedProductForm .modal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
#editPlacedProductForm label{min-width:0}
#editPlacedProductForm input,#editPlacedProductForm select{min-width:0;width:100%}
.assistant-voice-toolbar #assistantVoiceChoice{min-width:150px;max-width:235px;flex:1 1 145px}
.assistant-voice-toolbar #assistantTestVoice{white-space:nowrap}
@media(max-width:650px){.modal-backdrop.product-edit-open .modal{width:min(98vw,670px);padding:14px}#editPlacedProductForm .modal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-voice-toolbar #assistantVoiceChoice{max-width:none;flex:1 1 175px}}

/* RoomForm V3.13 — Help center, guided narration and walk + listen. */
.brand-home-link{color:inherit;text-decoration:none}.brand-home-link:hover{opacity:.86}
.help-dropdown-menu{z-index:85;min-width:240px}.help-dropdown-menu button{white-space:nowrap}
.chat-head-actions{display:flex;align-items:center;gap:6px}.chat-minimize{background:#ffffff20;border:1px solid #ffffff55;color:#fff;border-radius:7px;padding:7px 8px;font-size:11px;font-weight:650;cursor:pointer}.chat-minimize:hover{background:#ffffff35}
body.furniture-walk-active #chatPanel.chat-minimized:not([hidden]){height:auto!important;min-height:0!important;width:min(315px,calc(100vw - 32px))!important;bottom:12px!important;right:12px!important;left:auto!important;border-radius:12px}
#chatPanel.chat-minimized> :not(.chat-head){display:none!important}#chatPanel.chat-minimized .chat-head{padding:9px 12px}#chatPanel.chat-minimized .chat-head strong{font-size:12px}#chatPanel.chat-minimized .chat-head small{font-size:10px}
#chatPanel.chat-minimized .chat-minimize{font-size:10px}
.modal:has(#roomHelpCenter){width:min(1040px,97vw);max-height:calc(100dvh - 35px);overflow:hidden;display:flex;flex-direction:column}
.modal:has(#roomHelpCenter) .modal-head{flex-shrink:0}.modal:has(#roomHelpCenter) #modalBody{min-height:0;overflow:hidden;display:flex;flex:1}
#roomHelpCenter{width:100%;height:min(730px,calc(100dvh - 150px));display:grid;grid-template-columns:275px minmax(0,1fr);min-height:0;gap:0}
.rf-help-index{background:#f5f9f5;border-right:1px solid #dce7e0;padding:12px;overflow:auto;display:flex;flex-direction:column;gap:5px}
.rf-help-search{padding:10px;border:1px solid #cbdad0;border-radius:8px;background:#fff;width:100%;margin-bottom:7px;color:#223d30}
.rf-help-index button{display:flex;align-items:center;text-align:left;width:100%;padding:10px 11px;gap:7px;border:0;background:transparent;border-radius:9px;color:#335344;font-size:12px;cursor:pointer}
.rf-help-index button:hover,.rf-help-index button[aria-current="page"]{background:#dceddf;color:#174934;font-weight:750}
.rf-help-detail{min-height:0;overflow-y:auto;padding:17px 22px 23px;line-height:1.62;color:#2f483c}
.rf-help-detail h3{font-size:20px;letter-spacing:-.5px;margin:0 0 8px}.rf-help-detail h4{font-size:13px;margin:15px 0 5px}.rf-help-detail p{font-size:13px;margin:6px 0 12px}
.rf-help-detail ol{padding-left:22px}.rf-help-detail li{margin:6px 0;font-size:13px}
.rf-help-pill{display:inline-block;padding:3px 9px;background:#e4f2e8;border-radius:99px;color:#376451;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin-bottom:9px}
.rf-help-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.rf-help-actions button,.rf-demo-controls button{border:1px solid #b9d2be;border-radius:8px;background:#fff;padding:9px 12px;color:#23684e;cursor:pointer;font-weight:650;font-size:12px}
.rf-help-actions button:hover,.rf-demo-controls button:hover{background:#eaf7ec}.rf-help-actions button:first-child{background:#1a7355;color:white;border-color:#1a7355}
.rf-demo-stage{border:1px solid #dce9de;background:linear-gradient(145deg,#fafdfa,#e6f0e8);border-radius:12px;overflow:hidden;padding:12px;text-align:center;margin:11px 0}
.rf-demo-stage svg{display:block;max-width:100%;height:auto;margin:auto}.rf-demo-caption{font-size:13px;font-weight:700;margin:10px 0 4px;color:#2a5a45}.rf-demo-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rf-demo-controls label{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:0 5px}
.rf-demo-progress{font-size:12px;color:#547561}
.rf-demo-stage .rf-demo-furniture{transition:transform .55s ease;transform-origin:center}.rf-demo-stage .rf-demo-path{stroke-dasharray:10 7;animation:rfDemoPath 2s linear infinite}@keyframes rfDemoPath{to{stroke-dashoffset:-34}}
:root[data-theme="dark"] .rf-help-index{background:#203832;border-color:#496254}:root[data-theme="dark"] .rf-help-index button{color:#ecf3ec}:root[data-theme="dark"] .rf-help-index button:hover,:root[data-theme="dark"] .rf-help-index button[aria-current="page"]{background:#375f47}:root[data-theme="dark"] .rf-help-detail{color:#e5eee6}
@media(max-width:700px){#roomHelpCenter{grid-template-columns:1fr;grid-template-rows:min(180px,32%) minmax(0,1fr);height:calc(100dvh - 135px)}.rf-help-index{border-right:0;border-bottom:1px solid #dce7e0;padding:9px;}.rf-help-index button{padding:7px 9px}.rf-help-detail{padding:14px 15px}.chat-head .chat-minimize{max-width:106px}}
@media print{#roomHelpCenter,.help-dropdown-menu{display:none!important}}

/* V3.14 vocabulary and model selection controls */
.settings-dictionary { margin-top: 1rem; padding: .75rem 1rem; border: 1px solid var(--line, #d7ded8); border-radius: 10px; }
.settings-dictionary h4 { margin: 0 0 .4rem; }
.settings-dictionary code { font-size: .92em; overflow-wrap: anywhere; }
#settingsModel { width: 100%; min-width: 0; padding: 10px 11px; background: var(--white); color: var(--ink); border: 1px solid var(--line); border-radius: 8px; font: inherit; }
#geminiModelListStatus, #assistantDictionaryStatus { font-size: .84em; }

/* Guided tour: keep the same conversational narration visible below the animation. */
.rf-demo-spoken-caption { line-height: 1.55; max-width: 62ch; }

/* V3.19 — Print PDF is a visible top-bar action, including on small screens. */
.header-actions .print-pdf-button{background:#d7f3e6;color:#164b38;border-color:#b1dac5;min-height:36px;flex:none;gap:6px;font-weight:800}
.header-actions .print-pdf-button:hover{background:#fff}
@media(max-width:940px){.header-actions .print-pdf-button{padding:8px 10px;gap:4px}}
@media(max-width:650px){.header-actions .print-pdf-button{font-size:11px!important;padding:8px 9px!important}.header-actions .print-pdf-button .print-pdf-label{font-size:11px;display:inline}.header-actions .print-pdf-button [aria-hidden]{font-size:15px}}

/* V3.22 — compact per-plan PDF actions and grouped More menu */
.project-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.project-row .plan-print-button{display:grid;place-items:center;min-width:34px;width:34px;height:34px;padding:6px;background:#e7f0f8;color:#245e7c;border:1px solid #cddfea}
.project-row .plan-print-button:hover{background:#d7eafa}
.project-row .plan-print-button:focus-visible,.more-options-menu button:focus-visible{outline:2px solid #17886d;outline-offset:2px}
.more-options-menu{min-width:250px;max-height:min(75vh,600px);overflow-y:auto}
.more-options-menu .menu-group-label{padding:12px 10px 5px;font-size:9px;font-weight:800;letter-spacing:1px;color:#7d8d83;user-select:none}
.more-options-menu .menu-group-label:not(:first-child){border-top:1px solid #e8eee9;margin-top:4px}
.more-options-menu button{white-space:normal;min-height:32px}
@media(max-width:650px){.more-options-menu{right:0;max-width:calc(100vw - 16px)}.project-row-actions{gap:4px}.project-row .plan-print-button{width:33px;min-width:33px}}

/* RoomForm V3.23 — calmer assistant: the conversation is primary, optional tools fold away. */
#chatPanel.chat-panel{width:min(405px,calc(100vw - 24px));height:min(560px,calc(100dvh - 66px));}
#chatPanel .chat-head{min-height:58px;padding:10px 13px;gap:8px}
#chatPanel .chat-head strong{font-size:14px}
#chatPanel .chat-head small{font-size:10px;margin-top:2px}
#chatPanel .chat-head-actions{flex-shrink:0}
#chatPanel .chat-head #chatClose{width:32px;height:32px;min-width:32px;min-height:32px;flex-basis:32px}
#chatPanel .assistant-page-context{padding:6px 13px;font-size:11px;border-bottom:1px solid var(--line);color:var(--sub);font-weight:450}
#chatPanel .chat-log{min-height:100px;padding:12px;gap:9px}
#chatPanel .chat-message{font-size:12.5px;line-height:1.45;padding:9px 11px}
#chatPanel .chat-form{order:1;align-items:center;gap:6px;border-top:1px solid var(--line);padding:10px}
#chatPanel .chat-form textarea{min-height:44px;max-height:110px}
#chatPanel .chat-form .assistant-mic-button{flex:0 0 40px;width:40px;height:42px;font-size:17px;border-radius:9px;background:var(--white);color:var(--ink);border:1px solid var(--line);cursor:pointer}
#chatPanel .chat-form .assistant-mic-button:hover,#chatPanel .chat-form .assistant-mic-button[aria-pressed="true"]{background:#e0f1e6;border-color:#7aaf92}
#chatPanel .chat-form .assistant-mic-button:disabled{opacity:.45;cursor:default}
#chatPanel .chat-form .assistant-mic-button:focus-visible{outline:2px solid #238460;outline-offset:2px}
#chatPanel .assistant-more{order:2;flex:0 0 auto;border-top:1px solid var(--line);background:var(--white);color:var(--sub);font-size:11px}
#chatPanel .assistant-more>summary{display:flex;align-items:center;gap:6px;cursor:pointer;padding:8px 13px;list-style:none;font-weight:700;user-select:none}
#chatPanel .assistant-more>summary::-webkit-details-marker{display:none}
#chatPanel .assistant-more>summary::before{content:'›';font-size:17px;line-height:12px;transform-origin:center;transition:transform .12s}
#chatPanel .assistant-more[open]>summary::before{transform:rotate(90deg)}
#chatPanel .assistant-more>summary span{font-size:10px;opacity:.75;font-weight:400;margin-left:auto}
#chatPanel .assistant-more>summary:focus-visible{outline:2px solid #238460;outline-offset:-3px}
#chatPanel .assistant-more-content{max-height:min(260px,40dvh);overflow-y:auto;border-top:1px solid var(--line)}
#chatPanel .assistant-more-label{padding:9px 12px 0;font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;color:var(--sub)}
#chatPanel .chat-examples{padding:7px 12px;border-top:0;gap:5px;flex-wrap:wrap}
#chatPanel .chat-examples button{font-size:11px;padding:6px 8px}
#chatPanel .chat-quick-replies{padding:5px 12px 9px;border-top:0}
#chatPanel .chat-quick-replies button{min-height:29px;min-width:55px;padding:4px 10px;font-size:11px}
#chatPanel .assistant-voice-toolbar{border-bottom:0;background:transparent;padding:7px 12px;gap:6px}
#chatPanel .chat-foot{padding:5px 12px 11px}
#chatPanel .assistant-onboarding-actions{margin:0 0 6px}
#chatPanel .assistant-onboarding-actions button{font-size:11px;padding:7px 10px}
:root[data-theme="dark"] #chatPanel .assistant-more{background:#26383b;border-color:#465b56;color:#d3e4da}
:root[data-theme="dark"] #chatPanel .assistant-more-content{border-color:#465b56}
:root[data-theme="dark"] #chatPanel .assistant-mic-button{background:#1e3034;color:#e7f1e9;border-color:#49625a}
@media(max-width:650px){
 #chatPanel.chat-panel{width:calc(100vw - 12px);right:6px;bottom:6px;height:min(590px,calc(100dvh - 28px))}
 #chatPanel .assistant-more>summary span{display:none}
 #chatPanel .chat-form .assistant-mic-button{width:42px;flex-basis:42px}
}
@media(prefers-reduced-motion:reduce){#chatPanel .assistant-more>summary::before{transition:none}}

/* V3.27 — permanently accessible placed-object selector in the right column. */
.placed-items-section{margin-bottom:10px}
.placed-items-body{padding:8px 10px 10px!important}
.placed-items-hint{color:var(--sub);font-size:10px;line-height:1.4;margin:0 0 9px}
.placed-items-list{max-height:240px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:5px}
.placed-item-row{border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:4px}
.placed-item-row.is-selected{border-color:#55a589;background:#eff9f3;box-shadow:inset 3px 0 0 #14856a}
.placed-item-select{min-width:0;background:transparent;border:0;display:flex;gap:7px;align-items:center;text-align:left;padding:4px;color:var(--ink)}
.placed-item-select:hover{color:var(--green)}
.placed-item-icon{width:29px;height:29px;flex:none;display:grid;place-items:center;background:#f3f5f2;border-radius:6px}.placed-item-icon svg{width:25px;height:25px}
.placed-item-info{min-width:0;display:block}.placed-item-info strong{font-size:11px;font-weight:750;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.placed-item-info small{display:block;font-size:10px;color:var(--sub);margin-top:2px}
.placed-item-edit{font-size:10px;color:var(--green);border:1px solid #cee4da;border-radius:6px;background:#fff;padding:6px 7px;font-weight:700}
.placed-item-edit:hover{background:#e0f3e8}
.placed-item-nudge{grid-column:1/-1;display:flex;gap:4px;align-items:center;justify-content:flex-end;border-top:1px solid #d7e7dd;padding:5px 3px 1px}
.placed-item-nudge span{font-size:10px;color:var(--sub);margin-right:auto}
.placed-item-nudge button{min-width:27px;height:25px;padding:0 4px;font-size:10px;background:#fff;border:1px solid #c4d9ca;border-radius:5px;color:#21654a}
.placed-item-nudge button:hover{background:#e1f2e6}
.fixture-hit-target{cursor:move}
.painting-scene-control{padding:9px 11px;background:#f6faf7;border:1px solid #dfe9e1;border-radius:8px;margin:7px 0}
.painting-scene-control label{font-weight:700;display:block;font-size:11px;margin-bottom:5px}
.painting-scene-control select{width:100%;padding:7px;border:1px solid #ccdcd1;background:#fff;border-radius:5px}
.painting-scene-control small{color:var(--sub);font-size:10px;display:block;margin-top:4px}
:root[data-theme="dark"] .placed-item-row{background:#243735;border-color:#49625a}
:root[data-theme="dark"] .placed-item-row.is-selected{background:#244b40}
:root[data-theme="dark"] .placed-item-select{color:#e5f0e8}
:root[data-theme="dark"] .placed-item-edit,:root[data-theme="dark"] .placed-item-nudge button{background:#2e4741;color:#e3f3e7;border-color:#546d61}
:root[data-theme="dark"] .painting-scene-control{background:#273a35;border-color:#49625a}
:root[data-theme="dark"] .painting-scene-control select{color:#e9f4ed;background:#1e3034;border-color:#49625a}

/* V3.28 — discoverable item list and walk posture controls. */
.toolbar-items-button{border:1px solid #bedacb;border-radius:8px;background:#e6f3ee;color:#23644d;padding:8px 11px;min-height:35px;font-size:11px;font-weight:800;white-space:nowrap}
.toolbar-items-button:hover,.toolbar-items-button:focus-visible{background:#d4eddf;outline:2px solid #83c7a5;outline-offset:1px}
.toolbar-items-button span{display:inline-grid;place-items:center;min-width:21px;padding:2px 4px;border-radius:20px;background:#fff;color:#205d45;margin-left:4px}
#placedItemsSection{flex-shrink:0}
#placedItemsSection>summary{background:#295944;color:#fff}
.walk-posture-actions{display:flex;justify-content:center;gap:6px;margin:6px 0;pointer-events:auto}
.walk-posture-actions button{border:1px solid #8ab7a2;border-radius:7px;background:#eef8f1;color:#215840;padding:5px 10px;font-size:11px;font-weight:700}
.walk-posture-actions button[aria-pressed=true]{background:#235b45;color:#fff}
.walk-posture-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:650px){.toolbar-items-button{padding:7px 8px;font-size:10px}.toolbar-items-button span{margin-left:2px}}
:root[data-theme="dark"] .toolbar-items-button{background:#27473d;color:#d5f2de;border-color:#516b5c}

/* V3.29 — electrical wall selection in inspector and Items list. */
.electrical-wall-controls{padding:9px 10px;margin:0 0 12px;border:1px solid #aed4bd;border-radius:8px;background:#ecf7ef}
.electrical-wall-controls[hidden]{display:none!important}
.electrical-wall-controls label{font-weight:750;font-size:12px;color:#315746;display:flex;flex-direction:column;gap:5px}
.electrical-wall-controls select{min-width:0;width:100%;padding:7px;border-radius:5px;border:1px solid #9dc0ac;background:#fff;color:#214832}
.electrical-wall-controls small{display:block;margin-top:5px;color:#547565}
.placed-electrical-wall{display:flex;gap:5px;align-items:center;justify-content:flex-end;font-size:10px;min-width:0;grid-column:1 / -1;color:#476459}
.placed-electrical-wall select{max-width:160px;min-width:100px;padding:4px 5px;border:1px solid #abc6b5;border-radius:5px;background:#fff;font-size:11px}
:root[data-theme="dark"] .electrical-wall-controls{background:#264135;border-color:#486b57}
:root[data-theme="dark"] .electrical-wall-controls label,:root[data-theme="dark"] .electrical-wall-controls small{color:#d2ebdc}

#catalogPanel #catalogClearFilters.catalog-clear-filters{display:inline-flex;align-self:flex-start;align-items:center;
  border:1px solid var(--line,#cddcd2);border-radius:7px;padding:7px 12px;
  background:var(--white,#fff);color:var(--green,#2f694f);font-weight:750;}
#catalogPanel #catalogClearFilters.catalog-clear-filters:hover:not(:disabled){background:var(--bg,#edf3ee);}
#catalogPanel #catalogClearFilters.catalog-clear-filters:disabled{opacity:.55;cursor:default;}

/* Build 344: select a project before viewing its saved rooms. */
.project-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0;}
.project-library-list{display:flex;flex-direction:column;gap:9px;max-height:55vh;overflow-y:auto;}
.project-library-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid #d9e3dd;background:var(--card,#f8faf8);border-radius:10px;}
.project-library-row>div:first-child{min-width:0;display:flex;flex-direction:column;gap:5px;}
.project-library-row strong{overflow-wrap:anywhere;}
.project-library-row small{color:var(--sub,#65736c);}
.project-library-row .project-row-actions{display:flex;gap:7px;flex-wrap:wrap;}
@media(max-width:550px){.project-library-row{align-items:stretch;flex-direction:column}.project-library-row .project-row-actions button{flex:1}}

/* Build 345 — Project library contrast, room switcher, safe deletion, and 3D map. */
#roomsBtn[hidden],#roomsBtn:not([hidden]) .rooms-btn-label[hidden]{display:none!important}
#modalBackdrop .modal:has(.project-panel){width:min(980px,96vw)!important;max-height:94dvh;padding:22px 25px;box-sizing:border-box}
#modalBackdrop .modal:has(.project-panel) .modal-head h2{font-size:22px}
#modalBackdrop .modal:has(.project-panel) .explain{color:var(--sub,#667a72);line-height:1.5}
.project-panel{color:var(--ink,#263c34);min-width:0;}
.project-panel .project-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0}
.project-panel .project-storage{margin:5px 0 14px;font-size:12px}
.project-panel .project-storage .text-button{color:var(--green,#277a59);font-weight:800}
.project-panel .project-library-list,.project-panel .project-room-list{display:flex;flex-direction:column;gap:10px;max-height:min(53vh,540px);overflow-y:auto;padding:3px 5px 6px 0}
.project-panel .project-library-row,.project-panel .project-plan-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line,#d8e3db);border-radius:12px;padding:14px;background:var(--white,#f7faf7);color:var(--ink,#243e35);min-width:0}
.project-panel .project-row-info{display:flex;flex-direction:column;gap:6px;min-width:135px;flex:1 1 180px}
.project-panel .project-row-info strong{color:var(--ink,#263b32)!important;overflow-wrap:anywhere;font-size:14px;line-height:1.34}
.project-panel .project-row-info small{color:var(--sub,#65776e)!important;font-size:11px;line-height:1.4}
.project-panel .project-row-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;min-width:0;flex:1 1 280px}
.project-panel .project-row-actions .btn{white-space:nowrap;font-size:12px;min-height:36px;padding:8px 11px;border-radius:8px}
.project-panel .project-start-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;min-height:36px;border-radius:8px;background:#d9efe4;color:#154b36;border:1px solid #a6d5bd;font-size:12px;font-weight:800;white-space:nowrap}
.project-panel .btn.primary{background:#d7f1e6;color:#123f31;border:1px solid #a8d8c5}
.project-panel .btn.primary:hover{background:#bce8d3}
.project-panel .btn.outline{background:var(--bg,#eff4f1);color:var(--ink,#243e35);border:1px solid var(--line,#c6d8cf)}
.project-panel .btn.outline:hover{filter:brightness(.95)}
.project-panel .btn.danger-quiet,#modalBackdrop #confirmDeleteProject,#modalBackdrop #confirmDeleteRoom{background:#742f30;color:#fff;border:1px solid #9f4d4d;font-weight:750}
.project-panel .btn.danger-quiet:hover,#modalBackdrop #confirmDeleteProject:hover:not(:disabled),#modalBackdrop #confirmDeleteRoom:hover:not(:disabled){background:#8d3237}
#modalBackdrop #confirmDeleteProject:disabled,#modalBackdrop #confirmDeleteRoom:disabled{opacity:.45;cursor:not-allowed}
.project-delete-warning{background:#fff0e9;color:#793321;border-left:4px solid #d06a43;border-radius:6px;padding:13px;margin:12px 0;font-size:12px;line-height:1.5}
.project-room-switch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line,#d2e3d9);padding:12px;margin:12px 0;border-radius:10px;background:var(--bg,#f3f7f4)}
.project-room-switch label{font-size:12px;font-weight:750;color:var(--ink)!important;white-space:nowrap;margin:0!important}
.project-room-switch select{flex:1 1 210px;min-width:0;border-radius:7px;border:1px solid var(--line);padding:9px 10px;background:var(--white);color:var(--ink);font-size:13px}
.project-map-panel .project-map-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.project-map-toolbar label{font-size:12px;color:var(--ink)!important;font-weight:750;display:flex;gap:12px;align-items:center;margin:0!important;flex:1 1 180px}
.project-map-toolbar input[type=range]{min-width:100px;flex:1;accent-color:#339d89}
.project-map-svg{display:block;width:100%;height:min(58vh,560px);min-height:310px;border:1px solid #435c68;border-radius:12px;background:radial-gradient(ellipse at 52% 40%,#2c4958 0%,#162832 90%);overflow:visible}
.project-map-node{cursor:pointer;outline:none;transition:filter .13s}
.project-map-node:hover,.project-map-node:focus-visible{filter:drop-shadow(0 0 9px #efffdc)}
.project-map-node:focus-visible polygon{stroke:#ffd77f!important;stroke-width:4px!important}
.project-map-key{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--sub);margin-top:10px}
.project-map-key span{display:inline-flex;align-items:center;gap:7px}
.project-map-key i{display:inline-block;width:24px;height:0;border-top:3px solid #f3bf69}
.project-map-key .project-key-stairs{border-top:3px dashed #c3a7f8}
.project-map-key .project-key-window{border-top:3px solid #227db9}
.project-map-note{font-size:11px!important;margin:8px 0!important}
.project-map-summary{font-size:12px;font-weight:800;color:var(--ink)}
.project-map-links{border-top:1px solid var(--line);padding-top:12px;margin-top:15px}
.project-map-links>strong{font-size:13px;color:var(--ink)}
.project-map-linkrow{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:9px 0;color:var(--ink);font-size:12px}
.project-map-linkrow small{color:var(--sub)}
:root[data-theme="dark"] .project-panel .project-library-row,:root[data-theme="dark"] .project-panel .project-plan-row{background:#31464b;color:#f0f6f3;border-color:#62777b}
:root[data-theme="dark"] .project-panel .project-row-info strong{color:#f5fbf7!important}
:root[data-theme="dark"] .project-panel .project-row-info small{color:#c0d7d0!important}
:root[data-theme="dark"] .project-panel .btn.outline{background:#24373d;color:#edf7f1;border-color:#728b89}
:root[data-theme="dark"] .project-panel .btn.primary{background:#bdebd9;color:#13372c;border-color:#bdebd9}
:root[data-theme="dark"] .project-room-switch{background:#26383d;border-color:#5a7375}
:root[data-theme="dark"] .project-map-svg{border-color:#789196}
:root[data-theme="dark"] .project-panel .project-storage .text-button{color:#8de7c0}
@media(max-width:760px){
 #modalBackdrop .modal:has(.project-panel){padding:15px;width:min(96vw,960px)!important}
 .project-panel .project-library-row,.project-panel .project-plan-row{flex-direction:column;align-items:stretch}
 .project-panel .project-row-info{flex:auto;min-width:0}
 .project-panel .project-row-actions{justify-content:flex-start;flex:1 1 auto}
 .project-panel .project-row-actions .btn{flex:1 1 105px;min-width:0}
 .project-map-svg{min-height:270px;height:46vh}
}
@media(max-width:650px){#roomsBtn .rooms-btn-label{display:none}}

.project-map-toolbar select{border:1px solid var(--line);background:var(--white);color:var(--ink);padding:7px;border-radius:7px;font-size:12px;max-width:150px}
.project-map-toolbar label:has(select){flex:0 1 210px}

/* Build 346: fixed-contrast project cards, independent of global light/dark variables.
   A dark-mode variable --ink was light text on a light card in the older build. */
#modalBackdrop .modal .project-panel .project-library-row,
#modalBackdrop .modal .project-panel .project-plan-row { background:#f8fbf9!important;color:#172e29!important;border:1px solid #cedbd5!important;box-shadow:0 1px 1px rgba(14,32,27,.04); }
#modalBackdrop .modal .project-panel .project-row-info { color:#172e29!important;min-width:0!important; }
#modalBackdrop .modal .project-panel .project-row-info strong { color:#172e29!important;-webkit-text-fill-color:#172e29!important;font-size:14px;line-height:1.35; }
#modalBackdrop .modal .project-panel .project-row-info small { color:#445d55!important;-webkit-text-fill-color:#445d55!important;font-size:12px; }
#modalBackdrop .modal .project-panel .project-row-actions { min-width:0; }
#modalBackdrop .modal .project-panel .project-row-actions .btn {white-space:normal;min-height:38px;line-height:1.25;}
#modalBackdrop .modal .project-panel .project-row-info strong::selection,
#modalBackdrop .modal .project-panel .project-row-info small::selection {background:#b9e9d9;color:#14362b;}
#modalBackdrop .modal .project-panel .project-library-list {max-height:min(60vh,620px);overflow-x:hidden;}
#modalBackdrop .modal .project-panel .project-toolbar {row-gap:8px;}
#modalBackdrop .modal .project-panel .project-library-version {color:#435d54;font-size:11px;line-height:1.5;margin:4px 0 10px;}
#modalBackdrop .modal .project-panel .project-map-action {background:#e4d3a8;color:#23352d;border-color:#c8af75;font-weight:800;}
#modalBackdrop .modal .project-panel .project-map-action:hover {background:#f1d9a0;}
.room-wall-transparency {margin:16px 0 14px;padding:12px;border:1px solid var(--line,#d8e3db);border-radius:9px;background:var(--bg,#f3f7f4);color:var(--ink,#243e35)}
.room-wall-transparency .finish-subhead {margin:0 0 6px;}
.wall-transparency-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px;margin:9px 0 13px;}
.wall-transparency-grid label,.wall-visibility-option{display:flex!important;align-items:center;flex-direction:row!important;gap:8px;font-size:12px!important;line-height:1.4;color:var(--ink)!important;cursor:pointer;margin:0!important;}
.wall-transparency-grid input[type=checkbox],.wall-visibility-option input[type=checkbox]{width:auto!important;flex:0 0 auto;accent-color:var(--green,#368c71)}
.wall-transparency-buttons{display:flex;flex-wrap:wrap;gap:7px;}
.wall-transparency-buttons .btn{flex:1 1 130px;font-size:11px;white-space:normal;padding:8px;line-height:1.35;}
.partition-transparency-toggle{font-size:10px;border:1px solid #95c1ad!important;border-radius:5px!important;padding:6px!important;background:#e7f5ee!important;color:#245840!important;min-width:68px;}
.partition-transparency-toggle[aria-pressed="true"]{background:#215f4e!important;color:#fff!important;border-color:#215f4e!important}
:root[data-theme="dark"] .room-wall-transparency{background:#25383d;border-color:#587170;color:#e5f5ec}
:root[data-theme="dark"] .wall-transparency-grid label{color:#e5f5ec!important}
@media(max-width:740px){
 #modalBackdrop .modal .project-panel .project-library-row,#modalBackdrop .modal .project-panel .project-plan-row{flex-direction:column;align-items:stretch;}
 #modalBackdrop .modal .project-panel .project-row-info{flex-basis:auto!important;}
 #modalBackdrop .modal .project-panel .project-row-actions{justify-content:flex-start;flex:0 0 auto;}
}
@media(max-width:410px){.wall-transparency-grid{grid-template-columns:1fr}}

:root[data-theme="dark"] #modalBackdrop .project-panel .project-library-version{color:#c4dad1;}

/* Build 347: room features include a placeable railing; use a readable two-column grid. */
.inspector-section .feature-buttons:has(#addRailingBtn){grid-template-columns:repeat(2,minmax(0,1fr));}

/* Build 349 - architecture style selectors */
.architectural-style-control{display:flex;flex-direction:column;gap:7px;margin:10px 0;padding:12px;background:var(--panel,#fff);color:var(--ink,#24352c);border:1px solid var(--line,#d6dfd9);border-radius:9px;font-size:12px;}
.architectural-style-control[hidden]{display:none!important;}
.architectural-style-control select{width:100%;padding:8px 9px;border-radius:7px;border:1px solid var(--line,#bcc9c0);background:var(--bg,#fff);color:var(--ink,#20332a);}
.architectural-style-control small{color:var(--sub,#64756b);font-size:11px;}

/* Build 353: readable, contained walkthrough panel on every theme and screen width. */
body.furniture-walk-active #walkHud{
  box-sizing:border-box!important;width:min(328px,calc(100vw - 20px))!important;
  max-width:calc(100vw - 20px)!important;top:10px!important;right:10px!important;
  padding:12px!important;max-height:calc(100dvh - 20px)!important;
  overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;
  background:rgba(246,249,245,.97)!important;color:#233d32!important;
  border:1px solid #9fbcae!important;border-radius:12px!important;
  box-shadow:0 16px 35px #0008!important;
}
body.furniture-walk-active #walkHud .walk-hud-top{display:flex!important;flex-direction:column;align-items:stretch!important;gap:8px;min-width:0}
body.furniture-walk-active #walkHud .walk-hud-top>strong{flex:none!important;font-size:14px;color:#1d4434;white-space:normal}
body.furniture-walk-active #walkHud .walk-hud-top>.walk-hud-buttons{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;gap:6px;width:100%;min-width:0
}
body.furniture-walk-active #walkHud .walk-hud-buttons>button,
body.furniture-walk-active #walkHud .walk-posture-actions>button{
  box-sizing:border-box;min-width:0;width:100%;max-width:100%;min-height:34px;
  padding:6px 7px;border-radius:8px;border:1px solid #bacfc1;
  background:#fff;color:#1e513a;font-size:11px;line-height:1.3;
  font-weight:700;text-align:center;white-space:normal;overflow-wrap:anywhere;cursor:pointer
}
body.furniture-walk-active #walkHud .walk-posture-actions{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  grid-column:1 / -1;gap:6px;margin:0;min-width:0;width:100%
}
body.furniture-walk-active #walkHud .walk-hud-buttons>button:hover,
body.furniture-walk-active #walkHud .walk-posture-actions>button:hover{background:#e4f2e8}
body.furniture-walk-active #walkHud #exitWalk{background:#e8f0ed;color:#284c3e}
body.furniture-walk-active #walkHud #walkHudExpand{background:#d5eee2;color:#214634}
body.furniture-walk-active #walkHud .walk-door-list{
  margin:10px 0 7px;padding:9px;background:#f7faf7;
  border:1px solid #d1dfd6;border-radius:9px;color:#203c30;min-width:0
}
body.furniture-walk-active #walkHud .walk-door-list>strong{font-size:12px;color:#274c3a}
body.furniture-walk-active #walkHud .walk-door-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
body.furniture-walk-active #walkHud .walk-door-buttons button{
  box-sizing:border-box;min-width:0;overflow-wrap:anywhere;white-space:normal;
  color:#20543e;background:#fff;border-color:#b9d0c0;font-size:11px;line-height:1.35
}
body.furniture-walk-active #walkHud .walk-shortcuts,
body.furniture-walk-active #walkHud .walk-settings{border:1px solid #d4e1d9;border-radius:8px;margin:7px 0;background:#f5f8f5;color:#294e3e;min-width:0}
body.furniture-walk-active #walkHud .walk-shortcuts summary,
body.furniture-walk-active #walkHud .walk-settings summary{
  padding:9px 10px;font-size:11px;font-weight:750;cursor:pointer;color:#264d3b
}
body.furniture-walk-active #walkHud .walk-shortcuts p{
  font-size:11px;line-height:1.5;color:#4b6358;margin:0;padding:0 10px 10px;overflow-wrap:anywhere
}
body.furniture-walk-active #walkHud .walk-hud-tools{
  box-sizing:border-box;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;padding:3px 9px 11px;margin:0;min-width:0
}
body.furniture-walk-active #walkHud .walk-hud-tools label{
  display:flex!important;flex-direction:column;align-items:stretch;gap:4px;
  white-space:normal;color:#315543;font-weight:700;font-size:11px;min-width:0
}
body.furniture-walk-active #walkHud .walk-hud-tools label span{display:block;color:#315543}
body.furniture-walk-active #walkHud .walk-hud-tools select,
body.furniture-walk-active #walkHud #walkRecoverCamera{
  box-sizing:border-box;display:block!important;width:100%;min-width:0;max-width:100%;
  min-height:33px;margin:0;padding:6px 7px;border-radius:7px;
  border:1px solid #abc8b8;background:#fff;color:#1b4a35;font-size:12px;font-weight:650
}
body.furniture-walk-active #walkHud #walkRecoverCamera{align-self:end;white-space:normal;cursor:pointer}
body.furniture-walk-active #walkHud .walk-hud-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;justify-content:space-between;min-width:0;margin:8px 0}
body.furniture-walk-active #walkHud .walk-hud-main svg{width:100%;height:auto;max-height:140px;min-width:0}
body.furniture-walk-active #walkHud .walk-pad{min-width:94px;max-width:116px}
body.furniture-walk-active #walkHud .walk-motion,
body.furniture-walk-active #walkHud .walk-coords{font-size:11px;line-height:1.35;color:#435c50;overflow-wrap:anywhere}
body.furniture-walk-active #walkHud:not(.is-expanded)>:not(.walk-hud-top){display:none!important}
@media(max-width:500px){
 body.furniture-walk-active #walkHud{right:6px!important;top:6px!important;width:min(308px,calc(100vw - 12px))!important;max-height:calc(100dvh - 12px)!important}
 body.furniture-walk-active #walkHud .walk-hud-buttons>button{min-height:33px;font-size:10.5px}
}
/* Build 354: a combined house with selectable floor layers. */
#modalBackdrop .modal:has(.project-house-panel){width:min(98vw,1180px)!important;max-width:1180px}
.project-house-panel .project-map-svg{height:min(64vh,650px);min-height:360px;overflow:hidden;cursor:grab;touch-action:none}
.project-house-panel .project-map-svg:active{cursor:grabbing}
.project-house-panel .project-map-toolbar{gap:8px;align-items:center}
.project-house-panel .project-map-toolbar label{flex:0 1 200px;white-space:nowrap}
.project-house-room-label{cursor:pointer;pointer-events:all}
.project-house-room-label:hover rect{fill:#1d6357;stroke:#d9eacc}
.project-house-panel .project-map-svg text{user-select:none}
@media(max-width:760px){.project-house-panel .project-map-svg{height:53vh;min-height:310px}.project-house-panel .project-map-toolbar label{flex:1 1 145px}}

/* Build 355: fixed house geometry and camera-only pan / fly navigation. */
#modalBackdrop .modal:has(.project-house-panel){width:min(98vw,1260px)!important;max-width:1260px}
.project-house-panel .project-house-viewport{position:relative;overflow:hidden;border-radius:12px}
.project-house-panel .project-map-svg{display:block;max-width:100%;width:100%;height:min(61vh,630px);min-height:380px;cursor:grab;touch-action:none;outline-offset:-4px}
.project-house-panel .project-map-svg.is-flying{cursor:crosshair}
.project-house-panel .project-map-svg:active{cursor:grabbing}
.project-house-panel .project-map-svg:focus-visible{outline:3px solid #77c9b0}
.project-house-panel .project-house-dpad{position:absolute;bottom:14px;right:14px;z-index:2;display:grid;grid-template-columns:repeat(3,40px);gap:5px;padding:7px;background:#10232bdc;border:1px solid #75949d66;border-radius:12px;box-shadow:0 4px 20px #0006}
.project-house-panel .project-house-dpad button{min-height:38px;min-width:38px;padding:0;border:1px solid #8eacae;background:#2b4a52;color:#fff;border-radius:7px;font-size:21px;font-weight:800;touch-action:none;cursor:pointer}
.project-house-panel .project-house-dpad button:hover,.project-house-panel .project-house-dpad button:active{background:#507776}
.project-house-panel .project-map-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.project-house-panel .project-map-toolbar label{flex:1 1 120px;max-width:190px;display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:650;color:var(--text,#d8e9e8)}
.project-house-panel .project-map-toolbar input[type=range]{min-width:0;width:100%}
.project-house-panel .project-map-toolbar .on{background:#bde8d8;color:#18392e}
.project-house-panel .project-house-links{margin-top:7px;color:inherit}
.project-house-panel .project-house-links summary{cursor:pointer;padding:9px;border:1px solid #8da4a477;border-radius:8px;font-weight:700}
.project-house-panel .project-map-summary{font-size:12px;line-height:1.55}
@media(max-width:680px){.project-house-panel .project-map-svg{height:54vh;min-height:300px}.project-house-panel .project-house-dpad{grid-template-columns:repeat(3,34px);gap:4px}.project-house-panel .project-house-dpad button{min-width:32px;min-height:32px}}
.project-house-panel .project-house-dpad button:nth-child(1){grid-column:2;grid-row:1}
.project-house-panel .project-house-dpad button:nth-child(2){grid-column:1;grid-row:2}
.project-house-panel .project-house-dpad button:nth-child(3){grid-column:2;grid-row:2}
.project-house-panel .project-house-dpad button:nth-child(4){grid-column:3;grid-row:2}
.project-house-panel .project-house-dpad button:nth-child(5){grid-column:3;grid-row:1}
.project-house-panel .project-house-dpad button:nth-child(6){grid-column:1;grid-row:1}

/* Build 408: house view toolbar (camera presets, turn/tilt/zoom, display options) and fit check. */
.project-house-panel .house-view-controls{position:absolute;top:10px;left:10px;right:10px;z-index:2;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}
.project-house-panel .house-view-controls[hidden]{display:none}
.project-house-panel .hvc-group{pointer-events:auto;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:5px 6px;background:#10232be6;border:1px solid #75949d66;border-radius:10px;box-shadow:0 4px 16px #0005;color:#e6f1ef;font-size:12px}
.project-house-panel .hvc-group[hidden]{display:none}
.project-house-panel .hvc-group button{min-width:30px;height:28px;padding:0 7px;border:1px solid #8eacae;background:#2b4a52;color:#fff;border-radius:6px;font:700 12px/1 Inter,sans-serif;cursor:pointer}
.project-house-panel .hvc-group button:hover,.project-house-panel .hvc-group button:focus-visible{background:#507776}
.project-house-panel .house-view-controls .hvc-group label{display:flex;flex-direction:row;align-items:center;gap:5px;font-weight:650;max-width:none;flex:none;margin:0;color:#e6f1ef}
.project-house-panel .hvc-group select{height:28px;border-radius:6px;border:1px solid #8eacae;background:#16303a;color:#fff;font-size:12px;padding:0 4px}
.project-house-panel .hvc-sep{width:1px;height:20px;background:#75949d66;margin:0 2px}
.project-house-panel .house-fit-button.has-issues{border-color:#e0a050;color:#ffd79a}
.project-house-panel .house-fit-panel{margin:8px 0;padding:8px 10px;border:1px solid #e0a05066;border-radius:10px;background:#2a1f12cc;color:#f3e6cf;font-size:13px}
.project-house-panel .house-fit-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:160px;overflow:auto}
.project-house-panel .house-fit-panel li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid #ffffff12}
.project-house-panel .house-fit-panel li.fit-overlap span::before{content:'■ ';color:#e8645c}
.project-house-panel .house-fit-panel li.fit-door span::before{content:'⇢ ';color:#f2ba76}
.project-house-panel .house-fit-panel li.fit-float span::before{content:'▲ ';color:#cbb6f5}
.project-house-panel .house-fit-panel p{margin:0}
@media(max-width:680px){.project-house-panel .hvc-group{font-size:11px}.project-house-panel .hvc-group button{min-width:26px;height:26px;padding:0 5px}}


/* Build 363: elevated-platform furniture repair action, visible only for a selected platform. */
.platform-furniture-actions{display:grid;gap:7px;margin-top:12px;padding:12px;border:1px solid var(--line,#bdc9c3);border-radius:10px;background:var(--panel,#f0f4f0)}
.platform-furniture-actions[hidden]{display:none!important}
.platform-furniture-actions button{min-height:38px;white-space:normal;text-align:center}
.platform-furniture-actions small{line-height:1.35;color:var(--muted,#5b7166)}
.platform-move-list{max-height:230px;overflow:auto;padding-left:22px;line-height:1.65}

/* Build 373: permanently visible door/opening audit in Room Features. */
.opening-audit-toolbar{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin:10px 0 8px;padding:10px;background:var(--white);border:1px solid var(--line);border-radius:9px}
.opening-audit-toolbar .btn{width:100%;white-space:normal;text-align:center;padding:9px 11px}
.opening-audit-toolbar small{font-size:11px;line-height:1.45;color:var(--sub)}

/* Build 374: catalog management and GLB upload controls. */
.catalog-results-header .panel-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.catalog-results-header .panel-heading .text-button{white-space:nowrap;font-size:.77rem;}
.manage-item-list{display:flex;flex-direction:column;gap:8px;max-height:min(55vh,500px);overflow-y:auto;padding:4px 1px;}
.manage-item-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--border, #cad1cb);border-radius:8px;}
.manage-item-row>span{min-width:0;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere;}
.manage-item-row small{opacity:.7;font-size:.78em;}
.manage-item-row>div{display:flex;gap:5px;flex-wrap:wrap;flex-shrink:0;}
.manage-item-row .btn{font-size:.79em;padding:5px 9px;}
#catalogItemEditor>label{display:block;margin:10px 0;}
#catalogItemEditor>label>input{display:block;width:100%;margin-top:4px;}
#catalogItemFormStatus:not(:empty){padding:7px 0;}

/* Build 375: concealed stair door controls in the item overlay. */
.stair-secret-options{border:1px solid var(--line,#b9c9c4);border-radius:9px;padding:12px;margin:12px 0;display:grid;gap:9px;}
.stair-secret-options legend{font-weight:750;padding:0 6px;color:var(--ink,#28423a);}
.stair-secret-options label{min-width:0;display:grid;gap:5px;}
.stair-secret-options select{max-width:100%;width:100%;min-width:0;}
.stair-secret-options .help-text{margin:0;line-height:1.55;}

/* Build 376: concise, accessible floor selector in the room list. */
#modalBackdrop .project-room-floor-picker{display:flex;align-items:center;gap:5px;margin:0;font-size:12px;color:inherit;white-space:nowrap;}
#modalBackdrop .project-room-floor-picker select{max-width:112px;min-width:82px;border-radius:7px;border:1px solid #809a96;background:var(--white,#f8fbf9);color:var(--ink,#172e29);padding:7px 4px;min-height:35px;font-size:12px;}
:root[data-theme="dark"] #modalBackdrop .project-room-floor-picker select{background:#26383d;color:#f1f6f4;border-color:#637f81;}

/* Build 377 — manual placement of saved rooms in the stationary house */
.project-house-panel .project-house-arrange{
 display:flex;flex-wrap:wrap;align-items:end;gap:8px;
 padding:10px;margin:6px 0 12px;border:1px solid #668a88;
 border-radius:9px;background:#183337;color:#e1f2eb;
}
.project-house-panel .project-house-arrange[hidden]{display:none!important}
.project-house-panel .project-house-arrange label{display:flex;flex-direction:column;gap:3px;min-width:90px;flex:1 1 110px;font-size:12px;font-weight:700;color:#dfede9}
.project-house-panel .project-house-arrange .house-room-picker{flex:2 1 185px}
.project-house-panel .project-house-arrange input,.project-house-panel .project-house-arrange select{
 box-sizing:border-box;width:100%;min-height:36px;border-radius:6px;border:1px solid #75948f;
 padding:6px 8px;background:#f2f7f2;color:#183132;font-size:13px;
}
.project-house-panel .project-house-arrange button{min-height:36px;font-size:12px;white-space:normal}
.project-house-panel .project-house-arrange button:disabled{opacity:.44;cursor:not-allowed}
.project-house-panel .project-house-arrange .house-arrange-actions{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:9px;flex:0 0 100%;flex-wrap:wrap;padding:8px 9px;border:1px solid #588f81;border-radius:8px;background:#193b3d;box-shadow:0 3px 12px #091e2277}
.project-house-panel .house-arrange-actions strong{margin-right:auto;font-size:13px;color:#f0faf5}
.project-house-panel .house-arrange-actions #projectArrangeDirtyStatus{font-size:11px;color:#c9e5db;font-weight:650}
.project-house-panel .house-arrange-actions #projectArrangeDirtyStatus.pending{color:#ffe0a3}
.project-house-panel .house-arrange-actions #projectSavePositions{min-width:165px;font-size:13px;font-weight:800;background:#bce8d7;color:#143c30;border:1px solid #86ccad}
.project-house-panel .house-arrange-actions #projectSavePositions:disabled{opacity:.7}
@media(max-width:680px){.project-house-panel .house-arrange-actions #projectSavePositions{min-width:140px}.project-house-panel .house-arrange-actions strong{flex:1 1 100%}}
.project-house-panel .project-house-arrange .project-arrange-info{display:block;flex-basis:100%;font-size:12px;color:#cce5df}
.project-house-panel .project-map-svg.is-arranging{cursor:move!important}
.project-house-panel .project-map-svg.is-arranging [data-map-room]{cursor:grab}
.project-house-panel .project-map-svg.is-arranging:active{cursor:grabbing!important}

/* Build 378 — rotate a selected room in the fixed 3D House layout. */
.project-house-panel .project-house-arrange .house-rotation-field{flex:0 1 100px;min-width:90px}
.project-house-panel .project-house-arrange .house-rotation-slider{flex:2 1 155px;min-width:130px}
.project-house-panel .project-house-arrange .house-rotation-slider input{min-height:36px;padding:0 3px;accent-color:#7bdac7;cursor:ew-resize}
.project-house-panel .project-house-arrange button.on{background:#bfe8d9;color:#133a37;border-color:#8ed1bd}
.project-house-panel .project-map-svg.is-arranging.is-turning,[data-map-room].is-turning{cursor:ew-resize!important}

/* Build 379 — top-down floor-plan layout and per-room mirror controls. */
.project-house-panel .project-house-arrange #projectFlipX,
.project-house-panel .project-house-arrange #projectFlipY{
  border-color:#86b7aa;
}
.project-house-panel .project-house-arrange .project-arrange-note{
  display:block;flex-basis:100%;font-size:12px;line-height:1.45;color:#c3d9d3;
}
.project-house-panel .project-map-svg:not(.is-flying){background:#172832;cursor:grab}
.project-house-panel .project-map-svg:not(.is-flying):active{cursor:grabbing}

/* Build 380: unobtrusive, optional room/house rendering monitor. */
.project-performance-meter{position:absolute;right:12px;top:56px;z-index:26;background:rgba(12,29,32,.86);border:1px solid #5c9295;color:#dcf5ec;border-radius:7px;padding:5px 8px;font:600 11px/1.35 ui-monospace,Consolas,monospace;pointer-events:none;max-width:80%;white-space:normal}
.project-perf-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:7px 0;color:#c9e7e1;font:600 11px/1.4 ui-monospace,Consolas,monospace}
.project-perf-row .btn{min-height:25px;padding:4px 8px;font-size:11px}
.project-performance-text{font-variant-numeric:tabular-nums}

/* Build 381: snap-to-grid and resize handles in assembled house arrangement. */
.project-house-panel .project-house-arrange .house-snap-toggle{flex:0 1 124px;display:flex;flex-direction:row;align-items:center;gap:7px;min-height:37px}
.project-house-panel .project-house-arrange .house-snap-toggle input{width:18px;min-width:18px;height:18px;min-height:18px;accent-color:#9ad9ca;cursor:pointer}
.project-house-panel .project-house-arrange .house-snap-size{flex:0 1 96px;min-width:88px}
.project-house-panel .project-house-arrange .house-size-info{flex-basis:100%;font-size:12px;color:#dbe9be}
.project-house-panel .project-map-svg.is-arranging [data-house-resize]{cursor:nwse-resize!important;stroke:#173b3b}
.project-house-panel .project-map-svg.is-arranging [data-house-resize="east"]{cursor:ew-resize!important}
.project-house-panel .project-map-svg.is-arranging [data-house-resize="south"]{cursor:ns-resize!important}
.project-house-panel .project-map-svg.is-arranging [data-house-resize]:hover{fill:#fff3a5;stroke:#204342;stroke-width:3}
/* Build 383: multi-floor elevator controls. */
.elevator-options{border:1px solid var(--line,#b9c9c4);border-radius:9px;padding:12px;margin:12px 0;display:grid;gap:9px}
.elevator-options legend{font-weight:750;padding:0 6px;color:var(--ink,#28423a)}
.elevator-options>label{display:grid;gap:5px;max-width:260px}
.elevator-stop-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:5px 12px;max-height:215px;overflow:auto;padding:5px}
.elevator-stop-choice{display:flex!important;flex-direction:row;align-items:center;gap:8px;font-size:13px;padding:6px;border-radius:6px;background:rgba(120,150,155,.08)}
.elevator-stop-choice input{margin:0;flex:none}
.elevator-destinations{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;margin:14px 0}
.elevator-destinations button{min-height:45px;text-align:left;white-space:normal}

/* Build 383 — expanded 3D House view and Orbit label controls.
   Expanded layout keeps the tools available but gives priority to the map. */
.project-house-panel #projectOrbitLabels[aria-pressed="false"]{background:#29483d;color:#fff;border-color:#647a78;}
#modalBackdrop.house-expanded{padding:0;backdrop-filter:none;}
#modalBackdrop.house-expanded .modal:has(.project-house-panel),
#modalBackdrop:fullscreen .modal:has(.project-house-panel){
 box-sizing:border-box;display:flex;flex-direction:column;width:100vw!important;max-width:none!important;
 height:100dvh;max-height:100dvh!important;min-height:0;margin:0;border-radius:0;padding:10px 16px;
 overflow:hidden;
}
#modalBackdrop.house-expanded .modal:has(.project-house-panel) .modal-head,
#modalBackdrop:fullscreen .modal:has(.project-house-panel) .modal-head{flex:0 0 auto;margin-bottom:5px;}
#modalBackdrop.house-expanded .modal:has(.project-house-panel) #modalBody,
#modalBackdrop:fullscreen .modal:has(.project-house-panel) #modalBody{flex:1;display:flex;min-height:0;overflow:hidden;}
#modalBackdrop.house-expanded .project-house-panel,
#modalBackdrop:fullscreen .project-house-panel{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;width:100%;}
#modalBackdrop.house-expanded .project-house-panel>.explain,
#modalBackdrop:fullscreen .project-house-panel>.explain{display:none;}
#modalBackdrop.house-expanded .project-house-panel .project-map-toolbar,
#modalBackdrop:fullscreen .project-house-panel .project-map-toolbar{flex:0 0 auto;max-height:21dvh;overflow-y:auto;margin-bottom:5px;}
#modalBackdrop.house-expanded .project-house-panel .project-house-arrange,
#modalBackdrop:fullscreen .project-house-panel .project-house-arrange{flex:0 0 auto;max-height:23dvh;overflow-y:auto;margin:3px 0;}
#modalBackdrop.house-expanded .project-house-panel .project-house-viewport,
#modalBackdrop:fullscreen .project-house-panel .project-house-viewport{flex:1 1 auto;min-height:180px;overflow:hidden;}
#modalBackdrop.house-expanded .project-house-panel .project-map-svg,
#modalBackdrop:fullscreen .project-house-panel .project-map-svg{height:100%!important;min-height:0!important;max-height:none!important;}
#modalBackdrop.house-expanded .project-house-panel .project-map-summary,
#modalBackdrop:fullscreen .project-house-panel .project-map-summary{flex:0 0 auto;margin:4px 0;}
#modalBackdrop.house-expanded .project-house-panel .project-perf-row,
#modalBackdrop:fullscreen .project-house-panel .project-perf-row{flex:0 0 auto;margin:2px 0;}
#modalBackdrop.house-expanded .project-house-panel .project-house-links,
#modalBackdrop:fullscreen .project-house-panel .project-house-links{flex:0 0 auto;max-height:15dvh;overflow:auto;}
#modalBackdrop.house-expanded .project-house-panel .modal-foot,
#modalBackdrop:fullscreen .project-house-panel .modal-foot{flex:0 0 auto;margin:3px 0;}
@media(max-height:630px){#modalBackdrop.house-expanded .project-house-panel .project-house-arrange{max-height:13dvh;}#modalBackdrop.house-expanded .project-house-panel .project-map-toolbar{max-height:16dvh;}}

/* Build 387: keep every X clickable in compact, fullscreen and house overlays. */
#modalBackdrop .modal .modal-head{position:relative;z-index:120;pointer-events:auto;}
#modalBackdrop .modal #modalClose{position:relative;z-index:121;pointer-events:auto;cursor:pointer;flex:none;touch-action:manipulation;}
#chatPanel .chat-head{position:relative;z-index:5;}
#chatPanel #chatClose{position:relative;z-index:6;pointer-events:auto;cursor:pointer;touch-action:manipulation;}
.project-house-panel #projectMapClose{position:relative;z-index:25;pointer-events:auto;}

/* Build 389: two-level Project → Rooms navigation; advanced actions stay secondary. */
.project-simple-toolbar{align-items:center;gap:10px!important;margin-bottom:17px!important}
.project-more-actions{display:inline-block;position:relative;min-width:60px;max-width:100%;vertical-align:middle}
.project-more-actions>summary{display:list-item;list-style:none;cursor:pointer;min-height:36px;padding:8px 12px;border-radius:8px;border:1px solid var(--line,#c6d8cf);background:var(--card,#f7faf8);color:var(--ink,#253c33);font-weight:650;font-size:12px;white-space:nowrap}
.project-more-actions>summary::-webkit-details-marker{display:none}
.project-more-actions>summary:after{content:' ▾';font-size:11px}
.project-more-actions[open]>summary{background:#dfede5;border-color:#a7bfb0}
.project-more-actions-panel{display:flex;flex-direction:column;align-items:stretch;gap:7px;margin:6px 0;padding:9px;border:1px solid var(--line,#c6d8cf);border-radius:9px;background:var(--card,#fbfdfb);max-width:min(85vw,330px);box-shadow:0 2px 8px #0001}
.project-more-actions-panel .btn{min-height:34px!important;text-align:left!important;white-space:normal!important}
.project-more-actions-panel .project-room-floor-picker{display:flex;align-items:center;gap:8px;font-size:12px}
.project-panel .project-plan-row .project-row-actions,.project-panel .project-library-row .project-row-actions{flex:0 1 auto}
.project-panel .project-room-list{max-height:min(62vh,610px)}
.project-panel .project-library-list{max-height:min(56vh,550px)}
.project-panel h3{font-size:15px;margin:18px 0 9px;color:var(--ink,#263c34)}
:root[data-theme="dark"] .project-more-actions>summary{background:#26383c;color:#f0f6f3;border-color:#718b84}
:root[data-theme="dark"] .project-more-actions-panel{background:#26383c;border-color:#718b84}
@media(max-width:700px){.project-panel .project-more-actions{width:auto}.project-panel .project-room-list{max-height:48dvh}}

/* Build 390: floor picker supports any combination of house levels. */
.project-house-panel .project-map-toolbar .house-floor-filter{flex:1 1 156px;max-width:220px;position:relative;font-size:12px;font-weight:650;min-width:145px}
.house-floor-label{display:block;margin-bottom:4px}
.house-floor-menu{position:relative}
.house-floor-menu>summary{display:block;list-style:none;cursor:pointer;border:1px solid var(--line,#78989a);background:var(--surface,#1b3037);color:var(--text,#e2f4f1);padding:8px 24px 8px 9px;border-radius:7px;white-space:nowrap;position:relative;font-size:13px}
.house-floor-menu>summary::-webkit-details-marker{display:none}
.house-floor-menu>summary:after{content:'▾';position:absolute;right:8px;top:8px}
.house-floor-menu[open]>summary:after{content:'▴'}
.house-floor-options{position:absolute;z-index:100;background:#1d3239;color:#edf7f4;min-width:200px;right:0;top:calc(100% + 4px);box-shadow:0 10px 30px #0009;border:1px solid #779c9c;border-radius:10px;padding:10px;max-height:50vh;overflow-y:auto}
.house-floor-options label{display:flex!important;align-items:center;flex-direction:row!important;gap:9px;max-width:none!important;font-size:13px!important;white-space:nowrap;cursor:pointer;padding:5px 2px}
.house-floor-options input[type=checkbox]{width:17px;height:17px;flex:none;accent-color:#91d2bd}
.house-floor-choice-list{border-top:1px solid #547276;border-bottom:1px solid #547276;margin:6px 0;padding:4px 0}
.house-floor-options small{font-size:11px;color:#c9dcd6;display:block;line-height:1.4}

/* Build 390: always-visible warning for admin while MySQL cannot be verified. */
.project-db-notice[hidden]{display:none!important}
.project-db-notice{position:fixed;z-index:2147483000;top:70px;left:50%;transform:translateX(-50%);width:min(94vw,820px);background:#742b2c;color:#fff;border:3px solid #ffc8b1;border-radius:13px;padding:15px 19px;box-shadow:0 15px 55px #000b;font-size:15px;line-height:1.45}
.project-db-notice strong{display:block;font-size:18px;letter-spacing:.02em}
.project-db-notice p{margin:5px 0 12px;color:#fff}
.project-db-notice-actions{display:flex;flex-wrap:wrap;gap:10px}
.project-db-notice-actions button{cursor:pointer;background:#fff;color:#522526;border:1px solid #ffe2d2;border-radius:7px;padding:8px 13px;font-weight:750}
@media(max-width:680px){.project-db-notice{top:12px;width:96vw;padding:12px;font-size:13px}.project-db-notice strong{font-size:16px}}

/* Keep the selected-floor menu visible in fullscreen/expanded 3D House. */
#modalBackdrop.house-expanded .project-house-panel .project-map-toolbar:has(.house-floor-menu[open]),
#modalBackdrop:fullscreen .project-house-panel .project-map-toolbar:has(.house-floor-menu[open]){max-height:none;overflow:visible}

/* Build 391: floor checkboxes are always visible, not in a select or collapsed menu. */
.project-house-panel .project-map-toolbar .house-floor-visible{
 flex:1 1 100%;width:100%;max-width:none;min-width:0;box-sizing:border-box;
 margin:3px 0 7px;border:1px solid #698a87;border-radius:10px;
 padding:7px 12px 8px;background:rgba(13,38,45,.65);color:#e9f8f2;
}
.project-house-panel .project-map-toolbar .house-floor-visible legend{
 padding:0 7px;font-weight:800;font-size:13px;color:#e9f8f2;
}
.house-floor-visible #projectHouseFloorSummary{font-weight:500;margin-left:5px;color:#bfd6d0}
.house-floor-visible .house-floor-options{
 position:static;display:flex;flex-wrap:wrap;align-items:center;gap:7px;
 min-width:0;max-height:none;padding:0;border:0;border-radius:0;
 box-shadow:none;background:transparent;overflow:visible;
}
.project-house-panel .project-map-toolbar .house-floor-visible .house-floor-options .house-floor-choice{
 flex:0 0 auto;display:inline-flex!important;align-items:center!important;flex-direction:row!important;
 gap:7px;margin:0!important;padding:5px 9px!important;
 border:1px solid #577c7f;border-radius:7px;background:#1d353c;
 font-size:13px!important;font-weight:600;white-space:nowrap;color:#fff!important;cursor:pointer;max-width:none!important;
}
.house-floor-visible .house-floor-choice:has(input:checked){background:#2d6156!important;border-color:#91d2bd!important}
.house-floor-visible .house-floor-choice:focus-within{outline:2px solid #f4c56e;outline-offset:2px}
.house-floor-visible .house-floor-options input[type=checkbox]{width:17px;height:17px;flex:0 0 17px;accent-color:#9de5ca;margin:0}
.house-floor-visible #projectHouseFloorHint{display:block;margin-top:6px;font-size:11px;color:#c4ddd5}
#modalBackdrop.house-expanded .house-floor-visible,#modalBackdrop:fullscreen .house-floor-visible{flex:0 0 auto}
@media(max-width:650px){.house-floor-visible .house-floor-options{gap:5px}.project-house-panel .project-map-toolbar .house-floor-visible .house-floor-options .house-floor-choice{font-size:12px!important;padding:5px 7px!important}}

/* Build 392 — collapsible house arrangement controls.
   Keep the Save/Discard action bar visible when room editing fields are folded. */
.project-house-panel .project-house-arrange .house-arrange-fields{
 display:flex;flex:1 1 100%;flex-wrap:wrap;align-items:end;gap:8px;min-width:0;
}
.project-house-panel .project-house-arrange .house-arrange-fields[hidden]{display:none!important}
.project-house-panel .house-arrange-actions .house-arrange-collapse{
 min-width:112px;white-space:nowrap;order:0;background:#2d4c50;color:#f3faf6;border-color:#80a9a0;
}
.project-house-panel .house-arrange-actions .house-arrange-collapse:hover{
 background:#406667;border-color:#abd0c5;
}
/* Collapsed arrangement occupies only its always-visible action bar. */
.project-house-panel .project-house-arrange:has(.house-arrange-fields[hidden]){
 padding:5px 6px;margin:4px 0 8px;
}
.project-house-panel .project-house-arrange:has(.house-arrange-fields[hidden]) .house-arrange-actions{
 margin:0;
}
@media(max-width:680px){.project-house-panel .house-arrange-actions .house-arrange-collapse{min-width:96px}}

/* Build 405 — editable, opaque orbit and vertical floor alignment controls. */
.project-house-panel #projectArrangeOrbit{border-color:#b6cda0;background:#2b4d4c;color:#f2f8dd;font-weight:750;white-space:nowrap}
.project-house-panel #projectArrangeOrbit.on{background:#d2e2b3;color:#193e39;border-color:#f3e7b8}
.project-house-panel #projectArrangeBelowRoom{min-width:140px}
.project-house-panel #projectAlignAbove,.project-house-panel #projectAlignFloorStairs{white-space:normal;max-width:190px}
.project-house-panel .house-stack-warning{display:block;flex:1 1 100%;font-size:12px;line-height:1.45;color:#b9d9cd;border:1px solid #3f716e;border-radius:6px;padding:5px 9px;background:rgba(11,39,42,.45)}
.project-house-panel .house-stack-warning.pending{color:#ffdf9d;border-color:#a48554;background:rgba(80,54,17,.25)}
