:root{font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:14px}:root:not([data-theme]),:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#15161b;--panel:#1d1f27;--panel2:#23252e;--border:#2e313c;--text:#d7d9e0;--muted:#8b8f9c;--accent:#5ec8ff;--accent2:#ffce6b;--danger:#ff6b6b;--success:#57d977;--on-accent:#08131c;--shadow-menu:0 10px 24px #00000047;--canvas-help-bg:#14151bd9}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f7;--panel:#fbfbfc;--panel2:#e8ebf0;--border:#c7ced8;--text:#1c1f26;--muted:#59616f;--accent:#087aa9;--accent2:#9b6500;--danger:#b42318;--success:#168044;--on-accent:#fff;--shadow-menu:0 10px 24px #1f232b29;--canvas-help-bg:#fbfbfce6}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}#root{text-align:left;background:var(--bg);width:100%;max-width:none;color:var(--text);border:0;display:block}button{font:inherit;cursor:pointer}.rf-app{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.rf-toolbar{padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left));background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rf-brand{letter-spacing:.5px;color:var(--accent);margin-right:6px;font-weight:700}.rf-spacer{flex:1}.rf-toolbar button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 10px}.rf-toolbar button:hover{border-color:var(--accent)}.rf-export-wrap{position:relative}.rf-export-menu{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-menu);z-index:20;border-radius:6px;min-width:180px;padding:6px;position:absolute;top:calc(100% + 6px);left:0}.rf-export-group{color:var(--muted);padding:6px 6px 2px;font-size:12px;font-weight:700}.rf-export-item{text-align:left;width:100%;margin-top:4px;display:block}.rf-export-item:disabled{cursor:not-allowed;opacity:.58}.rf-seg{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.rf-seg button{background:var(--panel2);border:0!important;border-radius:0!important}.rf-seg button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.rf-theme-toggle{gap:6px}.rf-theme-toggle .rf-seg button{min-width:52px}.rf-language-toggle select{min-width:94px}.rf-field{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.rf-field input,.rf-field select{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:5px;width:72px;padding:3px 6px}.rf-field select{width:auto}.rf-body{flex:1;min-height:0;display:flex}.rf-main{flex:1;min-width:0;position:relative}.rf-app.is-presenting .rf-body{min-height:100vh}.rf-app.is-presenting .rf-3d-coords,.rf-app.is-presenting .rf-draft-badge,.rf-app.is-presenting .rf-2d-help,.rf-app.is-presenting .rf-coords{display:none}.rf-app.is-presenting .rf-2d-canvas,.rf-app.is-presenting .rf-room-chip,.rf-app.is-presenting .rf-room-popover{pointer-events:none}.rf-main canvas{display:block;width:100%!important;height:100%!important}.rf-present-overlay{top:calc(14px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));right:calc(14px + env(safe-area-inset-right));z-index:16;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute}.rf-present-left,.rf-present-brand,.rf-present-actions{pointer-events:auto;align-items:center;gap:8px;display:inline-flex}.rf-present-left{flex-direction:column;align-items:flex-start;min-width:0;max-width:min(620px,100% - 360px)}.rf-present-brand{background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--border);box-shadow:var(--shadow-menu);color:var(--text);border-radius:6px;padding:7px 10px}.rf-present-brand strong{color:var(--accent);letter-spacing:0}.rf-present-brand span{color:var(--muted);font-size:12px}.rf-present-facts{pointer-events:auto;grid-template-columns:repeat(4,minmax(72px,auto));gap:6px;max-width:100%;display:grid}.rf-present-facts span{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 88%, transparent);min-width:0;box-shadow:var(--shadow-menu);border-radius:6px;gap:1px;padding:6px 9px;display:grid}.rf-present-facts b,.rf-present-facts small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rf-present-facts b{color:var(--text);font-size:13px;font-weight:800}.rf-present-facts small{color:var(--muted);font-size:10px}.rf-present-actions button{background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--border);box-shadow:var(--shadow-menu);color:var(--text);border-radius:6px;padding:7px 10px}.rf-present-actions button:hover{border-color:var(--accent)}.rf-review-shell{z-index:17;pointer-events:none;grid-template-columns:minmax(260px,1fr) minmax(320px,420px);display:grid;position:absolute;inset:0}.rf-review-stage{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 88%, transparent);box-shadow:var(--shadow-menu);color:var(--text);pointer-events:auto;border-radius:6px;place-self:start;align-items:center;gap:8px;margin:14px;padding:7px 10px;display:inline-flex}.rf-review-stage strong{color:var(--accent)}.rf-review-stage span{color:var(--muted);font-size:12px}.rf-review-panel{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 94%, transparent);min-height:0;max-height:calc(100vh - 20px);box-shadow:var(--shadow-menu);pointer-events:auto;border-radius:8px;flex-direction:column;gap:10px;margin:10px 10px 10px 0;padding:12px;display:flex;overflow:auto}.rf-review-panel header,.rf-review-panel footer{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.rf-review-panel footer{flex-direction:column}.rf-review-panel h2,.rf-review-panel h3,.rf-review-panel p{margin:0}.rf-review-panel h2{font-size:16px}.rf-review-panel h3{color:var(--accent);margin-bottom:6px;font-size:12px}.rf-review-panel p,.rf-review-checklist,.rf-review-decisions,.rf-review-feedback{color:var(--muted);font-size:12px}.rf-review-panel button,.rf-review-panel select,.rf-review-panel textarea{color:var(--text);border:1px solid var(--border);background:var(--panel2);border-radius:6px}.rf-review-panel button{padding:5px 9px}.rf-review-save-state{border:1px solid var(--border);background:var(--panel2);width:100%;min-width:0;color:var(--muted);border-radius:6px;gap:2px;padding:7px;font-size:11px;display:grid}.rf-review-save-state b{color:var(--text);font-size:12px}.rf-review-actions{flex-wrap:wrap;gap:6px;width:100%;display:flex}.rf-review-actions button{flex:118px;min-height:32px}.rf-review-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.rf-review-summary div{border:1px solid var(--border);background:var(--panel2);border-radius:6px;gap:2px;min-width:0;padding:7px;display:grid}.rf-review-summary span{color:var(--muted);font-size:11px}.rf-review-summary b{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px;overflow:hidden}.rf-review-checklist{gap:6px;margin:0;padding:0;list-style:none;display:grid}.rf-review-checklist li{grid-template-columns:18px 1fr;align-items:start;gap:6px;display:grid}.rf-review-decisions,.rf-review-feedback{gap:8px;display:grid}.rf-review-decisions label,.rf-review-feedback label{gap:5px;display:grid}.rf-review-decisions label{grid-template-columns:minmax(86px,.9fr) minmax(96px,.8fr) minmax(120px,1.2fr);align-items:start}.rf-review-panel textarea,.rf-review-panel select{width:100%;min-width:0;font:inherit;padding:6px}.rf-review-panel textarea{resize:vertical}.rf-side{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:260px;padding:4px 0;display:flex;overflow-y:auto}.rf-stage-tabs{z-index:5;background:var(--panel);border-bottom:1px solid var(--border);order:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:8px 10px;display:grid;position:sticky;top:0}.rf-stage-tab{background:var(--panel2);min-width:0;color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:6px;padding:6px 4px;font-size:12px;line-height:1.1}.rf-stage-tab:hover{border-color:var(--accent);color:var(--text)}.rf-stage-tab.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.rf-side section{border-bottom:1px solid var(--border);order:2;padding:12px 14px}.rf-side h3{color:var(--text);align-items:center;gap:6px;margin:0 0 10px;font-size:13px;display:flex}.rf-count{background:var(--accent);color:var(--on-accent);border-radius:10px;padding:0 7px;font-size:11px}.rf-row{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.rf-row select,.rf-row input[type=password],.rf-row input[type=number]{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:5px;flex:1;min-width:0;max-width:150px;padding:3px 6px}.rf-row input[type=password],.rf-row input[type=number]{min-width:0}.rf-row input[type=range]{flex:1;min-width:80px}.rf-hint{color:var(--muted);margin:0 0 8px;font-size:12px;line-height:1.5}.rf-hint code{background:var(--panel2);border-radius:3px;padding:1px 4px}.rf-stage-actions{gap:7px;display:grid}.rf-stage-actions button,.rf-wide-btn{background:var(--panel2);width:100%;color:var(--text);border:1px solid var(--border);text-align:left;border-radius:6px;padding:7px 8px}.rf-stage-actions button:hover,.rf-wide-btn:hover{border-color:var(--accent)}.rf-stage-actions button:disabled,.rf-wide-btn:disabled{cursor:not-allowed;opacity:.58}.rf-hdb-pick{color:var(--muted,var(--text));gap:4px;margin-top:7px;font-size:12px;display:grid}.rf-hdb-select{background:var(--panel2);width:100%;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 8px}.rf-hdb-select:hover{border-color:var(--accent)}.rf-render-result{gap:8px;margin-top:10px;display:grid}.rf-render-result h4{color:var(--text);margin:0;font-size:12px}.rf-render-result img{aspect-ratio:3/2;object-fit:cover;border:1px solid var(--border);background:var(--panel2);border-radius:6px;width:100%;display:block}.rf-material-schedule{border:1px solid var(--border);border-radius:6px;margin:10px 0;padding:8px}.rf-material-schedule h4{color:var(--text);margin:0 0 7px;font-size:12px}.rf-material-schedule details{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.rf-material-schedule summary{color:var(--muted);cursor:pointer;font-size:12px}.rf-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:6px;display:grid}.rf-summary-grid span{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:6px;gap:2px;min-width:0;padding:6px;font-size:11px;display:grid}.rf-summary-grid b{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.rf-material-list{gap:5px;max-height:170px;margin-top:6px;display:grid;overflow-y:auto}.rf-material-row{grid-template-columns:minmax(48px,.8fr) 18px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:24px;display:grid}.rf-material-row.is-furniture{grid-template-columns:minmax(70px,.9fr) 18px minmax(0,1fr) auto}.rf-material-key,.rf-material-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rf-material-key{color:var(--text);font-size:12px}.rf-material-name{color:var(--muted);font-size:12px}.rf-material-name small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.1;display:block;overflow:hidden}.rf-material-swatch{border:1px solid var(--border);border-radius:4px;width:18px;height:18px;display:inline-block}.rf-material-row code{background:var(--panel2);color:var(--text);border-radius:3px;padding:2px 4px;font-size:10px}.rf-review-inbox{background:color-mix(in srgb, var(--accent) 7%, var(--panel))}.rf-review-inbox-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.rf-review-inbox-summary span{border:1px solid var(--border);background:var(--panel2);min-width:0;color:var(--muted);border-radius:6px;gap:2px;padding:6px;font-size:11px;display:grid}.rf-review-inbox-summary b{color:var(--text);font-size:13px}.rf-review-inbox details{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.rf-review-inbox summary{color:var(--accent);cursor:pointer;font-size:12px;font-weight:700}.rf-review-inbox-list{gap:6px;margin:6px 0 8px;padding:0;list-style:none;display:grid}.rf-review-inbox-list li{border:1px solid var(--border);background:var(--panel2);border-radius:6px;gap:3px;min-width:0;padding:7px;display:grid}.rf-review-inbox-list b,.rf-review-inbox-list p,.rf-review-inbox-list span{overflow-wrap:anywhere;min-width:0;margin:0}.rf-review-inbox-list b{color:var(--text);font-size:12px}.rf-review-inbox-list p,.rf-review-inbox-list span{color:var(--muted);font-size:12px;line-height:1.35}.rf-version-compare{background:color-mix(in srgb, var(--success) 7%, var(--panel))}.rf-version-list{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.rf-version-list li{border:1px solid var(--border);background:var(--panel2);border-radius:6px;grid-template-columns:minmax(78px,.8fr) minmax(0,1.2fr);align-items:center;gap:6px;min-width:0;padding:7px;display:grid}.rf-version-list b,.rf-version-list span{overflow-wrap:anywhere;min-width:0;font-size:12px}.rf-version-list b{color:var(--text)}.rf-version-list span{color:var(--muted)}.rf-design-readiness{background:color-mix(in srgb, var(--accent) 7%, var(--panel))}.rf-design-readiness.is-fail{background:color-mix(in srgb, var(--danger) 8%, var(--panel))}.rf-design-readiness.is-warn{background:color-mix(in srgb, #fbbf24 10%, var(--panel))}.rf-design-readiness.is-pass{background:color-mix(in srgb, var(--success) 8%, var(--panel))}.rf-design-readiness-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0;display:grid}.rf-design-readiness-stats span{border:1px solid var(--border);background:var(--panel2);min-width:0;color:var(--muted);text-align:center;border-radius:6px;gap:2px;padding:7px 6px;font-size:11px;display:grid}.rf-design-readiness-stats b{color:var(--text);font-size:16px;line-height:1}.rf-design-readiness-list{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.rf-design-readiness-list li{border:1px solid var(--border);background:var(--panel2);border-radius:6px;gap:7px;min-width:0;padding:8px;display:grid}.rf-design-readiness-list li.is-fail{border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.rf-design-readiness-list li.is-warn{border-color:color-mix(in srgb, #fbbf24 55%, var(--border))}.rf-design-readiness-main{gap:3px;min-width:0;display:grid}.rf-design-readiness-main b,.rf-design-readiness-main p,.rf-design-readiness-main span{overflow-wrap:anywhere;min-width:0;margin:0}.rf-design-readiness-main b{color:var(--text);font-size:12px}.rf-design-readiness-main span{color:var(--muted);font-size:11px;font-weight:800}.rf-design-readiness-main p{color:var(--muted);font-size:12px;line-height:1.35}.rf-design-readiness-list button{border:1px solid var(--border);background:var(--panel);min-width:0;color:var(--text);border-radius:6px;justify-self:stretch;padding:5px 6px;font-size:11px}.rf-design-readiness-list button:hover{border-color:var(--accent)}.rf-site-note-issues{background:color-mix(in srgb, var(--accent2) 8%, var(--panel))}.rf-site-note-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0;display:grid}.rf-site-note-filters button{border:1px solid var(--border);background:var(--panel2);min-width:0;color:var(--muted);border-radius:6px;padding:6px;font-size:11px}.rf-site-note-filters button.is-active{border-color:var(--accent);color:var(--text)}.rf-site-note-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.rf-site-note-list li{border:1px solid var(--border);background:var(--panel2);border-radius:6px;gap:7px;padding:8px;display:grid}.rf-site-note-list li.is-closed{opacity:.72}.rf-site-note-main{gap:3px;min-width:0;display:grid}.rf-site-note-main b,.rf-site-note-main p,.rf-site-note-main span{overflow-wrap:anywhere;min-width:0;margin:0}.rf-site-note-main b{color:var(--text);font-size:12px}.rf-site-note-main span{color:var(--accent2);font-size:11px;font-weight:800}.rf-site-note-list li.is-closed .rf-site-note-main span{color:var(--muted)}.rf-site-note-main p{color:var(--muted);font-size:12px;line-height:1.35}.rf-site-note-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.rf-site-note-actions button{border:1px solid var(--border);background:var(--panel);min-width:0;color:var(--text);border-radius:6px;padding:5px 6px;font-size:11px}.rf-site-note-actions button:hover{border-color:var(--accent)}.rf-room-row{grid-template-columns:86px minmax(0,1fr);display:grid}.rf-room-row select{width:100%;max-width:100%}.rf-room-row select+select{grid-column:2}.rf-template-grid{gap:6px;max-height:340px;margin-top:10px;display:grid;overflow-y:auto}.rf-template{background:var(--panel2);color:var(--text);border:1px solid var(--border);text-align:left;border-radius:6px;padding:8px}.rf-template span,.rf-template small{display:block}.rf-template span{font-weight:700;line-height:1.25}.rf-template small{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.35}.rf-template:hover{border-color:var(--accent)}.rf-surface-target{border:1px solid var(--border);background:var(--panel2);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:3px;display:grid}.rf-surface-target button{min-width:0;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:5px}.rf-surface-target button.is-active{background:var(--accent);color:var(--on-accent);font-weight:700}.rf-swatches{grid-template-columns:repeat(auto-fill,minmax(28px,1fr));gap:8px;display:grid}.rf-swatch{aspect-ratio:1;border:1px solid var(--border);background-position:50%;background-size:cover;border-radius:5px;width:100%;padding:0;position:relative}.rf-swatch:hover{border-color:var(--accent)}.rf-swatch.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--panel), 0 0 0 3px var(--accent)}.rf-swatch.is-textured:after{content:"";background:var(--accent);width:5px;height:5px;box-shadow:0 0 0 1px var(--panel);border-radius:50%;position:absolute;bottom:4px;right:4px}.rf-swatch:focus-visible,.rf-stage-tab:focus-visible,.rf-chip:focus-visible,.rf-template:focus-visible,.rf-asset:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rf-btnrow{gap:6px;margin:8px 0;display:flex}.rf-btnrow button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;flex:1;padding:5px}.rf-btnrow button:hover{border-color:var(--accent)}.rf-danger{color:var(--danger)!important}.rf-list{margin:6px 0 0;padding:0;list-style:none}.rf-list li{justify-content:space-between;align-items:center;padding:3px 0;font-size:12px;display:flex}.rf-list-main{min-width:0;color:var(--text);text-align:left;font:inherit;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;padding:2px 0;overflow:hidden}.rf-list-main:hover{color:var(--accent)}.rf-opening-qa{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin-bottom:10px;padding:10px}.rf-opening-qa header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.rf-opening-qa h3{margin:0}.rf-opening-qa header span,.rf-opening-qa .rf-list-main strong{border-radius:999px;flex:none;padding:2px 7px;font-size:11px;font-weight:800}.rf-opening-qa .is-pass{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.rf-opening-qa .is-warn{background:color-mix(in srgb, var(--accent2) 20%, transparent);color:var(--accent2)}.rf-opening-qa .is-fail{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.rf-opening-qa-list .rf-list-main{white-space:normal;align-items:center;gap:6px;display:flex}.rf-opening-qa-list .rf-list-main span{text-overflow:ellipsis;min-width:0;overflow:hidden}.rf-opening-calibrate{border:1px solid var(--border);background:var(--panel2);border-radius:8px;margin:8px 0;padding:8px}.rf-mini{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:4px;margin-left:8px;padding:1px 7px}.rf-chiprow{flex-wrap:wrap;gap:6px;margin:4px 0 10px;display:flex}.rf-chiprow button,.rf-chip{background:var(--panel2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:12px}.rf-chiprow button:hover,.rf-chip:hover{border-color:var(--accent);color:var(--text)}.rf-chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.rf-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:320px;display:grid;overflow-y:auto}.rf-asset{background:var(--panel2);color:var(--text);border:1px solid var(--border);text-align:left;overflow-wrap:anywhere;border-radius:6px;min-height:48px;padding:6px 8px}.rf-asset span,.rf-asset small{display:block}.rf-asset small{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.2}.rf-asset:hover{border-color:var(--accent)}.rf-selection{background:var(--panel);order:1!important}.rf-2d-wrap{position:absolute;inset:0;overflow:hidden}.rf-2d-canvas{touch-action:none;display:block}.rf-2d-help{left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));background:var(--canvas-help-bg);border:1px solid var(--border);color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:flex;position:absolute}.rf-coords,.rf-3d-coords{right:calc(12px + env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));z-index:5;background:var(--canvas-help-bg);border:1px solid var(--border);color:var(--muted);pointer-events:none;text-align:right;font-variant-numeric:tabular-nums;border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:flex;position:absolute}.rf-coords b,.rf-3d-coords b{color:var(--text);font-weight:600}.rf-coords i{opacity:.65;font-style:normal}.rf-walkthrough-status{right:calc(12px + env(safe-area-inset-right));top:calc(52px + env(safe-area-inset-top));z-index:5;border:1px solid var(--accent);background:var(--canvas-help-bg);max-width:min(260px,100% - 24px);color:var(--muted);pointer-events:none;box-shadow:var(--shadow-menu);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:inline-flex;position:absolute}.rf-app.is-presenting .rf-walkthrough-status{right:calc(14px + env(safe-area-inset-right));top:calc(60px + env(safe-area-inset-top));z-index:17}.rf-walkthrough-status b{color:var(--text);font-weight:700}.rf-walkthrough-status span{min-width:18px;color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}.rf-rooms-open-warning{z-index:6;padding:0 calc(12px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));pointer-events:none;justify-content:center;display:flex;position:absolute;inset:auto 0 0}.rf-rooms-open-warning__card{pointer-events:none;background:var(--canvas-help-bg);border:1px solid var(--border);border-left:3px solid var(--danger);width:100%;max-width:360px;box-shadow:var(--shadow-menu);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.rf-rooms-open-warning__title{color:var(--text);font-size:13px;font-weight:600;line-height:1.4}.rf-rooms-open-warning__body{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.rf-rooms-open-warning__cta{pointer-events:auto;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--panel);border-radius:8px;align-self:flex-start;min-height:34px;padding:7px 14px;font-size:12px;font-weight:600}.rf-rooms-open-warning__cta:hover{filter:brightness(1.05)}.rf-rooms-open-warning__cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rf-draft-badge{left:calc(12px + env(safe-area-inset-left));top:calc(12px + env(safe-area-inset-top));z-index:5;background:var(--canvas-help-bg);border:1px solid var(--border);color:var(--muted);opacity:.75;pointer-events:none;border-radius:999px;padding:3px 10px;font-size:11px;position:absolute}.rf-banner{color:var(--text);background:var(--panel2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.rf-banner.is-success{border-left:3px solid var(--success,#3a9d5d)}.rf-banner.is-warn{border-left:3px solid var(--accent2,#c7a24a)}.rf-banner.is-error{border-left:3px solid var(--danger,#c0504d)}.rf-banner.is-info{border-left:3px solid var(--accent)}.rf-banner-detail{background:var(--panel);border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;border-radius:4px;max-width:50vw;padding:2px 6px;font-size:12px;overflow:hidden}.rf-banner-action,.rf-banner-close{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 9px}.rf-banner-close{margin-left:auto}.rf-banner-action:hover,.rf-banner-close:hover{border-color:var(--accent)}.rf-import-status{top:calc(12px + env(safe-area-inset-top));z-index:25;background:var(--panel);border:1px solid var(--border);width:min(420px,100% - 24px);box-shadow:var(--shadow-menu);color:var(--text);border-radius:10px;padding:10px 12px;font-size:12px;position:absolute;left:50%;transform:translate(-50%)}.rf-import-stages{gap:4px;margin:0 0 6px;padding:0;list-style:none;display:grid}.rf-import-stages li{color:var(--muted);align-items:center;gap:7px;display:flex}.rf-import-stages li.is-active{color:var(--text);font-weight:600}.rf-import-dot{background:var(--border);border-radius:50%;flex:none;width:8px;height:8px}.rf-import-stages li.is-done .rf-import-dot{background:var(--success,#3a9d5d)}.rf-import-stages li.is-active .rf-import-dot{background:var(--accent);animation:1.2s ease-in-out infinite rf-pulse}@keyframes rf-pulse{0%,to{opacity:1}50%{opacity:.35}}.rf-import-meta,.rf-import-log{color:var(--muted);margin:0;line-height:1.5}.rf-import-log{word-break:break-word;margin-top:4px}.rf-import-summary{margin:0;line-height:1.5}.rf-import-warn{border:1px solid var(--accent2,#c7a24a);border-radius:6px;margin-top:6px;padding:6px 8px}.rf-import-warn p{margin:0 0 6px;line-height:1.5}.rf-import-warntext,.rf-import-error{margin:0;line-height:1.5}.rf-import-error{color:var(--danger,#c0504d)}.rf-import-calibrate{align-items:center;gap:6px;display:flex}.rf-import-calibrate input{background:var(--panel2);width:90px;color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 6px}.rf-import-calibrate button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 10px}.rf-trace-controls{border:1px solid var(--border);background:var(--panel2);border-radius:6px;margin-top:8px;padding:8px}.rf-trace-title{margin:0 0 6px;font-size:12px;font-weight:700}.rf-trace-controls .rf-row{margin:6px 0}.rf-trace-controls input[type=range]{min-width:96px}.rf-trace-controls input[type=number]{background:var(--panel);width:92px;color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 6px}.rf-trace-nudge{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.rf-trace-nudge button{background:var(--panel);min-height:30px;color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 6px;font-size:12px}.rf-import-close{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:5px;margin-top:8px;padding:3px 10px}.rf-save-indicator{color:var(--muted);white-space:nowrap;font-size:12px}.rf-save-indicator.is-saved{color:var(--success,#3a9d5d)}.rf-save-indicator.is-error{color:var(--danger,#c0504d)}.rf-save-indicator.is-limit{color:var(--accent2,#c7a24a)}.rf-ai-error{border:1px solid var(--danger,#c0504d);border-radius:6px;margin-top:8px;padding:7px 9px;font-size:12px}.rf-ai-error p{margin:0 0 6px;line-height:1.5}.rf-ai-error button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 10px}.rf-gallery-item{position:relative}.rf-style-badge{color:#fff;pointer-events:none;background:#0000008c;border-radius:999px;padding:2px 8px;font-size:11px;position:absolute;top:6px;left:6px}.rf-warn-hint{color:var(--accent2,#c7a24a)}.rf-room-row.is-hovered{background:var(--panel2);border-radius:5px}.rf-room-chip{z-index:6;background:var(--canvas-help-bg);border:1px solid var(--border);color:var(--text);white-space:nowrap;cursor:pointer;opacity:.9;border-radius:999px;padding:2px 9px;font-size:11px;position:absolute;transform:translate(-50%,-50%)}.rf-room-chip:hover,.rf-room-chip.is-hovered{border-color:var(--accent);opacity:1}.rf-room-chip.is-labeled{border-color:var(--accent2,#c7a24a)}.rf-room-chip.is-drag-disabled{pointer-events:none}.rf-room-popover{z-index:26;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-menu);border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:flex;position:absolute;transform:translate(-50%)}.rf-room-popover-title{color:var(--muted);white-space:nowrap;margin:0}.rf-room-popover select{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:3px 6px}@media (width<=1023px){.rf-toolbar{padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) 8px calc(8px + env(safe-area-inset-left));gap:8px}.rf-toolbar button,.rf-toolbar summary,.rf-field input,.rf-field select,.rf-stage-tab,.rf-stage-actions button,.rf-wide-btn,.rf-btnrow button,.rf-surface-target button,.rf-chip,.rf-mini,.rf-template,.rf-asset,.rf-row select,.rf-row input[type=range]{min-height:44px}.rf-side{flex:0 260px;width:clamp(220px,30vw,260px);min-width:220px}.rf-swatches{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.rf-swatch{min-height:44px}}@media (width<=768px){.rf-app{--rf-mobile-sheet-height:clamp(280px, 38vh, 360px);height:100dvh}.rf-toolbar{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;align-items:center;gap:6px;position:relative;overflow:auto hidden}.rf-toolbar:after{content:"";pointer-events:none;background:linear-gradient(to right, color-mix(in srgb, var(--panel) 0%, transparent), var(--panel) 78%);flex:none;align-self:stretch;width:36px;margin-left:-36px;position:sticky;right:0}.rf-toolbar::-webkit-scrollbar{height:6px}.rf-toolbar::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.rf-toolbar::-webkit-scrollbar-track{background:0 0}.rf-toolbar>*{flex:none}.rf-spacer{display:none}.rf-toolbar button,.rf-toolbar summary{white-space:nowrap;justify-content:center;align-items:center;padding:8px 10px;display:inline-flex}.rf-field{min-height:44px}.rf-field input{width:68px}.rf-theme-toggle .rf-seg button{min-width:48px}.rf-language-toggle select{min-height:44px}.rf-body{position:relative}.rf-main{margin-bottom:var(--rf-mobile-sheet-height);width:100%}.rf-app.is-presenting .rf-main{margin-bottom:0}.rf-present-overlay{bottom:calc(10px + env(safe-area-inset-bottom));left:calc(10px + env(safe-area-inset-left));right:calc(10px + env(safe-area-inset-right));flex-direction:column;justify-content:flex-end;align-items:stretch;top:auto}.rf-present-brand,.rf-present-left,.rf-present-actions{justify-content:space-between;width:100%}.rf-present-left{max-width:none}.rf-present-brand span{text-align:right}.rf-present-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-present-actions button{flex:1;min-height:44px}.rf-review-shell{grid-template-rows:1fr auto;grid-template-columns:1fr}.rf-review-stage{margin:10px}.rf-review-panel{max-height:min(58vh,520px);margin:0 10px calc(10px + env(safe-area-inset-bottom))}.rf-review-decisions label{grid-template-columns:1fr}.rf-side{z-index:30;width:100%;min-width:0;height:var(--rf-mobile-sheet-height);max-height:var(--rf-mobile-sheet-height);padding:8px 0 calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-right:0;border-radius:14px 14px 0 0;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 30px #0000003d}.rf-side:before{content:"";z-index:8;background:var(--border);border-radius:999px;width:44px;height:4px;margin:4px auto 8px;display:block;position:sticky;top:6px}.rf-stage-tabs{grid-template-columns:repeat(4,minmax(76px,1fr));padding:8px 10px;top:18px}.rf-side section{padding:12px}.rf-row{gap:10px}.rf-row select{max-width:58%;padding:8px}.rf-catalog{max-height:none}.rf-import-status{width:calc(100% - 16px);top:calc(8px + env(safe-area-inset-top))}.rf-import-calibrate button,.rf-import-close,.rf-ai-error button,.rf-banner-action,.rf-banner-close{min-height:44px}.rf-banner{gap:6px;font-size:12px}.rf-banner-detail{flex-basis:100%;max-width:100%}.rf-draft-badge{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));font-size:10px}.rf-room-chip{padding:2px 7px;font-size:10px}.rf-room-popover{flex-wrap:wrap;max-width:calc(100vw - 24px)}.rf-room-popover select{min-height:44px}.rf-save-indicator{flex:none}.rf-account>.rf-account-menu{left:12px!important;right:12px!important;top:calc(64px + env(safe-area-inset-top))!important;z-index:70!important;width:auto!important;max-width:none!important;position:fixed!important}details.rf-export-wrap[open] .rf-export-menu{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-height:60vh;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--border);z-index:60;border-radius:14px 14px 0 0;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -12px 30px #0000003d}details.rf-export-wrap[open] .rf-export-menu:before{content:"";z-index:-1;pointer-events:none;background:#0006;position:fixed;inset:0}details.rf-export-wrap[open] .rf-export-item{text-align:left;justify-content:flex-start;width:100%;display:block}}@media (pointer:coarse){button,select,input[type=button],input[type=submit],input[type=number],input[type=text],a[role=button]{min-height:44px}button{min-width:44px}}
