@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-wght-italic-y6hTrs-Y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-wght-italic-CRzqOTyj.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-wght-italic-CUp-f2uw.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-wght-italic-D3EGHrWW.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-wght-italic-B_cmBfNX.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-wght-italic-B-rCj6ir.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"DM Sans Variable", "DM Sans", "Avenir Next", Arial, sans-serif;--font-serif:"Source Serif 4 Variable", "Source Serif 4", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--text-micro:9px;--text-xs:10px;--text-sm:11px;--text-md:12px;--text-lg:14px;--text-title:19px;--text-heading:22px;--text-display:40px;--weight-regular:400;--weight-medium:500;--weight-strong:600;--tracking-tight:-.02em;--tracking-caps:.13em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--radius-sm:1px;--radius-md:2px;--border-width:1px;--topbar-height:52px;--panel-left-width:298px;--panel-right-width:264px;--panel-collapsed-width:44px;--panel-title-height:72px;--control-height:30px;--color-bg:#e8e6e0;--color-surface:#fbfaf6;--color-surface-raised:#fff;--color-surface-soft:#f0ede6;--color-surface-hover:#f0ede6;--color-surface-active:#e6e2d8;--color-thumb:#f5f1e9;--color-border:#ded9cf;--color-border-strong:#c9c3b6;--color-text:#292722;--color-text-muted:#8b867c;--color-text-faint:#aaa59a;--color-accent:#9b5943;--color-accent-hover:#864a36;--color-accent-soft:#f3e7e1;--color-on-accent:#fff;--color-danger:#a64335;--color-danger-soft:#f6e4e0;--focus-ring:0 0 0 1px var(--color-accent);--shadow-float:0 3px 10px #29272212;--shadow-popover:0 18px 50px #29272221;--canvas-bg:#e7e4dd;--canvas-grid-minor:#29272209;--canvas-grid-major:#29272213;--canvas-grid-origin:#9b59438c;--canvas-label:#292722;--canvas-label-muted:#8b867c;--wall-existing:#292722;--wall-proposed:#9b5943;--wall-removed:#b3ad9f;--room-fill:#f6f4ee;--furniture-fill:#d7d4c9;--furniture-soft:#e6e3da;--furniture-stroke:#686b65;--selection:#9b5943;--variant-ghost:#4f74a3;--ease-out:cubic-bezier(.2, .8, .2, 1);--duration-fast:.12s}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);-webkit-font-smoothing:antialiased;font-synthesis:none;overscroll-behavior:none;line-height:1.4}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, currentColor 22%, transparent) transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{box-shadow:var(--focus-ring);outline:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:var(--weight-strong)}.serif{font-family:var(--font-serif);font-style:italic;font-weight:var(--weight-regular);letter-spacing:var(--tracking-tight)}.eyebrow{font:var(--weight-medium) var(--text-micro) / 1.2 var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.mono{font-family:var(--font-mono)}.btn{height:32px;padding:0 var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;gap:6px;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-surface-soft)}.btn:disabled{opacity:.4;cursor:default}.btn--primary{background:var(--color-text);border-color:var(--color-text);color:var(--color-surface);font-weight:var(--weight-strong)}.btn--primary:hover:not(:disabled){background:#3b3832}.btn--ghost{border-color:#0000}.btn--danger{color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-soft)}.icon-btn{border-radius:var(--radius-sm);width:33px;height:33px;color:var(--color-text);background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--color-surface-soft)}.icon-btn[aria-pressed=true]{background:var(--color-text);color:var(--color-surface)}.icon-btn:disabled{opacity:.3;cursor:default}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field__label{font-size:var(--text-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.field__box{height:var(--control-height);border:var(--border-width) solid var(--color-border);background:var(--color-surface-soft);align-items:center;display:flex}.field__box:focus-within{border-color:var(--color-accent)}.field__box input{width:100%;min-width:0;height:100%;padding:0 var(--space-2);font-size:var(--text-sm);background:0 0;border:0;outline:0}.field__box input:read-only{color:var(--color-text);cursor:default}.field__unit{font:var(--text-micro) var(--font-mono);color:var(--color-text-muted);padding-right:7px}.divider-v{background:var(--color-border);width:1px;height:18px;margin:0 6px}.brand-mark{align-items:flex-end;gap:2px;width:21px;height:20px;display:flex}.brand-mark i{background:var(--color-text);width:5px;display:block}.brand-mark i:first-child{height:13px}.brand-mark i:nth-child(2){height:19px}.brand-mark i:nth-child(3){height:8px}.brand{letter-spacing:.06em;align-items:center;gap:9px;display:flex}.brand strong{font-size:13px}.brand small{background:var(--color-text);color:var(--color-surface);font-size:8px;font-weight:var(--weight-strong);border-radius:2px;padding:2px 4px}.dialog{border:var(--border-width) solid var(--color-border);background:var(--color-surface);width:min(420px,100vw - 32px);box-shadow:var(--shadow-popover);padding:23px}.dialog::backdrop{background:#29272240}.dialog form,.dialog__body{gap:var(--space-4);display:grid}.dialog__title{font-size:var(--text-heading);margin-top:3px}.dialog__text{margin-top:calc(var(--space-2) * -1);color:var(--color-text-muted);font-size:var(--text-sm)}.dialog__actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.dialog--wide{width:min(720px,100vw - 32px)}.dialog__status{color:var(--color-text-muted)}.dialog__error{padding:var(--space-2) var(--space-3);background:var(--color-danger-soft);color:var(--color-danger)}.page-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(130px,1fr));max-height:52vh;display:grid;overflow:auto}.page-grid__item{border:var(--border-width) solid var(--color-border);font-size:var(--text-xs);text-align:left;background:0 0;gap:6px;padding:6px;display:grid}.page-grid__item:hover{border-color:var(--color-accent)}.page-grid__thumb{aspect-ratio:1/1.3;background:var(--color-surface-soft);place-items:center;display:grid;overflow:hidden}.page-grid__thumb img{max-width:100%;max-height:100%}.field__box[data-invalid]{border-color:var(--color-danger)}.field__error{font-size:var(--text-xs);color:var(--color-danger)}.field__box input:disabled{color:var(--color-text-faint)}.segmented{border:var(--border-width) solid var(--color-border);display:flex}.segmented button{height:28px;font-size:var(--text-xs);color:var(--color-text-muted);background:0 0;border:0;flex:1}.segmented button+button{border-left:var(--border-width) solid var(--color-border)}.segmented button[aria-pressed=true]{background:var(--color-text);color:var(--color-surface)}.toggle-row{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}input[type=range]{width:100%;accent-color:var(--color-text)}.projects{background:var(--color-surface);min-height:100%}.projects__header{height:var(--topbar-height);border-bottom:var(--border-width) solid var(--color-border);justify-content:space-between;align-items:center;padding:0 15px;display:flex}.projects__actions{gap:var(--space-2);display:flex}.projects__main{max-width:1040px;padding:64px var(--space-5);margin:0 auto}.projects__intro{gap:var(--space-2);margin-bottom:40px;display:grid}.projects__intro h1{font-size:var(--text-display);line-height:1}.projects__intro p{color:var(--color-text-muted)}.projects__error{margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-danger-soft);color:var(--color-danger)}.projects__table{border-collapse:collapse;width:100%}.projects__table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--color-border);font:var(--weight-medium) var(--text-micro) var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.projects__table td{padding:14px var(--space-3);border-bottom:var(--border-width) solid var(--color-border)}.projects__table tbody tr{cursor:pointer}.projects__table tbody tr:hover{background:var(--color-surface-soft)}.projects__name{font-family:var(--font-serif);font-style:italic;font-size:var(--text-lg)}.projects__muted{color:var(--color-text-muted)}.projects__date{font:var(--text-xs) var(--font-mono)}.projects__row-actions{text-align:right;white-space:nowrap;width:1%}.projects__row-actions .icon-btn{color:var(--color-text-muted)}.projects__sample{margin-top:var(--space-4);color:var(--color-text-muted)}.projects__empty{justify-items:start;gap:var(--space-2);padding:var(--space-6) 0;border-top:var(--border-width) solid var(--color-border);display:grid}.projects__empty h2{font-size:var(--text-heading)}.projects__empty p{max-width:460px;color:var(--color-text-muted)}.projects__empty-actions{gap:var(--space-2);margin-top:var(--space-3);display:flex}.editor{grid-template-columns:var(--left-col,var(--panel-left-width)) minmax(0, 1fr) var(--right-col,var(--panel-right-width));grid-template-rows:var(--topbar-height) minmax(0, 1fr);background:var(--color-bg);grid-template-areas:"top top top""left canvas right";height:100dvh;display:grid;overflow:hidden}.editor[data-left=closed]{--left-col:var(--panel-collapsed-width)}.editor[data-right=closed]{--right-col:var(--panel-collapsed-width)}.editor-message{place-content:center;justify-items:start;gap:var(--space-2);height:100dvh;color:var(--color-text-muted);display:grid}.editor-message h2{font-size:var(--text-heading);color:var(--color-text)}.editor-message .btn{margin-top:var(--space-3)}.topbar{background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);z-index:20;grid-area:top;align-items:center;min-width:0;display:flex;position:relative}.topbar__brand{flex:0 0 var(--left-col,var(--panel-left-width));border:0;border-right:var(--border-width) solid var(--color-border);text-align:left;background:0 0;align-items:center;height:100%;padding:0 15px;display:flex;overflow:hidden}.editor[data-left=closed] .topbar__brand{padding:0 11px}.editor[data-left=closed] .topbar__brand strong,.editor[data-left=closed] .topbar__brand small{display:none}.topbar__brand:hover{background:var(--color-surface-soft)}.topbar__project{flex:1;align-items:center;gap:4px;min-width:0;height:100%;padding:0 16px;display:flex}.topbar__project .eyebrow{margin-right:5px}.topbar__name{border:var(--border-width) solid transparent;min-width:4ch;max-width:320px;height:32px;font-weight:var(--weight-strong);text-overflow:ellipsis;background:0 0;padding:0 8px}.topbar__name:hover{border-color:var(--color-border)}.topbar__name:focus{border-color:var(--color-accent);background:var(--color-surface-raised);outline:none}.topbar__sep{color:var(--color-border-strong);flex:none}.topbar__variant{color:var(--color-text-muted);white-space:nowrap;padding:0 8px}.topbar__save{margin-left:var(--space-3);font:var(--text-micro) var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);white-space:nowrap}.topbar__save--error{color:var(--color-danger)}.topbar__actions{align-items:center;gap:3px;padding:0 12px;display:flex}.panel{background:var(--color-surface);z-index:8;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.panel--left{border-right:var(--border-width) solid var(--color-border);grid-area:left}.panel--right{border-left:var(--border-width) solid var(--color-border);grid-area:right}.panel__scroll{flex:1;overflow:auto}.panel-title{height:var(--panel-title-height);border-bottom:var(--border-width) solid var(--color-border);flex:none;align-items:center;gap:9px;padding:0 13px 0 17px;display:flex}.panel-title[data-side=right]{padding:0 17px 0 9px}.panel[data-collapsed=true] .panel-title{justify-content:center;padding:0}.panel-title__text{flex:1;min-width:0}.panel-title h2{font-size:var(--text-title);margin-top:3px;line-height:1.1}.tabs{border-bottom:var(--border-width) solid var(--color-border);padding:0 12px;display:flex}.tabs button{font-size:var(--text-xs);color:var(--color-text-muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:10px 3px 9px}.tabs button[aria-selected=true]{color:var(--color-text);border-color:var(--color-text);font-weight:var(--weight-strong)}.layer-list{flex:1;margin:0;padding:8px;list-style:none;overflow:auto}.layer-list__item{font-size:var(--text-sm);align-items:center;padding-left:9px;display:flex}.layer-list__item:hover{background:var(--color-surface-soft)}.layer-list__item[data-hidden=true] .layer-list__name{color:var(--color-text-faint)}.layer-list__item .icon-btn{width:30px;height:30px;color:var(--color-text-muted)}.layer-list__item .icon-btn[data-active=true]{color:var(--color-accent)}.layer-list__name{flex:1}.library{flex:1;overflow:auto}.search{border:var(--border-width) solid var(--color-border);background:var(--color-surface-soft);height:33px;color:var(--color-text-muted);align-items:center;gap:7px;margin:11px 12px 8px;padding:0 9px;display:flex}.search input{width:100%;min-width:0;font-size:var(--text-sm);background:0 0;border:0;outline:0}.empty{gap:var(--space-2);padding:var(--space-5) 17px;color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.empty__title{color:var(--color-text);font-size:var(--text-lg)}.import-row{border:0;border-top:var(--border-width) solid var(--color-border);background:var(--color-surface);text-align:left;flex:none;align-items:center;gap:9px;height:58px;padding:0 14px;display:flex}.import-row:hover:not(:disabled){background:var(--color-surface-soft)}.import-row:disabled{cursor:default;opacity:.55}.import-row b,.import-row small{font-size:var(--text-xs);display:block}.import-row small{color:var(--color-text-muted);margin-top:2px}.heading{border-bottom:var(--border-width) solid var(--color-border);gap:4px;padding:20px 14px 16px;display:grid}.heading h3{font-size:var(--text-heading);overflow-wrap:anywhere;line-height:1.15}.heading__sub{font-size:var(--text-xs);color:var(--color-text-muted)}.object-head{border-bottom:var(--border-width) solid var(--color-border);gap:10px;padding:14px;display:flex}.object-head__preview{background:var(--color-thumb);flex:none;place-items:center;width:67px;height:55px;padding:6px;display:grid}.object-head__preview svg{width:100%;height:100%}.object-head__text{align-content:center;gap:2px;min-width:0;display:grid}.object-head h3{font-size:var(--text-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.object-head__text>span:last-child{font-size:var(--text-xs);color:var(--color-text-muted)}.prop-section{border-bottom:var(--border-width) solid var(--color-border);padding:0 14px 13px}.prop-section header{align-items:center;height:38px;display:flex}.prop-section header b{font-size:var(--text-sm)}.field-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.stack{gap:9px;display:grid}.quick-row{gap:6px;margin-top:7px;display:flex}.quick-row .btn{height:28px;font-size:var(--text-xs);flex:1;padding:0}.note{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:9px}.prop-rows{font-size:var(--text-sm);margin:0}.prop-rows div{justify-content:space-between;gap:var(--space-3);padding:4px 0;display:flex}.prop-rows dt{color:var(--color-text-muted)}.prop-rows dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.material{border:var(--border-width) solid var(--color-border);align-items:center;gap:8px;height:43px;padding:0 8px;display:flex}.material>i{background:repeating-linear-gradient(45deg,#9b9a90,#9b9a90 2px,#aaa99f 2px 4px);flex:none;width:25px;height:25px}.material--wood>i{background:repeating-linear-gradient(90deg,#c0a37e,#c0a37e 5px,#ad906d 6px)}.material b,.material small{font-size:var(--text-xs);display:block}.material small{color:var(--color-text-muted);margin-top:2px}.inspector-actions{grid-template-columns:1fr 1fr;gap:6px;padding:12px 14px;display:grid}.inspector-actions .btn{font-size:var(--text-xs)}.inspector-actions__wide{grid-column:1/-1}.editor__canvas{background:var(--canvas-bg);grid-area:canvas;min-width:0;min-height:0;position:relative;overflow:hidden}.plan-canvas{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.float{z-index:4;background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-float);display:flex;position:absolute}.tools{gap:2px;padding:4px;top:14px;left:14px}.tools button{background:0 0;border:0;place-items:center;width:35px;height:35px;display:grid;position:relative}.tools button:hover:not(:disabled),.tools button.active{background:var(--color-text);color:var(--color-surface)}.tools button:disabled{opacity:.3;cursor:default}.tools button small{font:7px var(--font-mono);opacity:.6;position:absolute;bottom:1px;right:3px}.tools>i{border-left:var(--border-width) solid var(--color-border);margin:5px 2px}.meta{background:color-mix(in srgb, var(--color-surface) 92%, transparent);height:30px;box-shadow:none;font:var(--text-micro) var(--font-mono);align-items:center;gap:8px;padding:0 11px;top:14px;right:14px}.meta b{font-weight:var(--weight-medium)}.meta i{border-left:var(--border-width) solid var(--color-border);height:12px}.zoom{bottom:14px;right:14px}.zoom button{border:0;border-right:var(--border-width) solid var(--color-border);min-width:31px;height:31px;font-size:var(--text-xs);background:0 0;place-items:center;display:grid}.zoom button:last-child{border-right:0}.zoom button:hover{background:var(--color-surface-soft)}.zoom button.active{color:var(--color-accent)}.zoom__value{font-family:var(--font-mono);min-width:52px!important}.scalebar{z-index:4;font:var(--weight-medium) var(--text-micro) var(--font-mono);pointer-events:none;align-items:center;gap:7px;display:flex;position:absolute;bottom:17px;left:16px}.scalebar__bar{border-top:1px solid var(--color-text);position:relative}.scalebar__bar:before,.scalebar__bar:after{content:"";border-left:1px solid var(--color-text);height:6px;position:absolute;top:-3px}.scalebar__bar:after{right:0}.scalebar__coords{color:var(--color-text-muted);font-weight:var(--weight-regular);white-space:pre;margin-left:10px}.library{flex-direction:column;flex:1;min-height:0;display:flex}.tabs--small button{font-size:var(--text-micro);padding:9px 2px 8px}.library__body{flex:1;grid-template-columns:92px 1fr;min-height:0;display:grid}.category-list{border-right:var(--border-width) solid var(--color-border);padding:8px 5px;overflow:auto}.category-list button{width:100%;font-size:var(--text-xs);color:var(--color-text-muted);text-align:left;background:0 0;border:0;justify-content:space-between;padding:9px 7px;display:flex}.category-list button:hover{color:var(--color-text)}.category-list button.active{background:var(--color-text);color:var(--color-surface)}.category-list small{font-size:var(--text-micro);opacity:.65}.asset-list{padding:0 8px 8px;overflow:auto}.asset-list__head{z-index:1;background:var(--color-surface);height:36px;font-size:var(--text-micro);font-weight:var(--weight-strong);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.asset-list__head .icon-btn{width:26px;height:26px}.asset-list__empty{padding:var(--space-3) 2px;font-size:var(--text-xs);color:var(--color-text-muted)}.asset{margin-bottom:8px;position:relative}.asset__main{text-align:left;cursor:grab;background:0 0;border:0;width:100%;padding:0 0 11px;display:block}.asset__main:active{cursor:grabbing}.asset__main:hover .asset__thumb{outline:1px solid var(--color-border-strong)}.asset__thumb{background:var(--color-thumb);place-items:center;height:78px;margin-bottom:6px;padding:10px 14px;display:grid;position:relative;overflow:hidden}.asset__thumb svg,.asset__thumb img{object-fit:contain;width:100%;height:100%}.asset__badge{background:var(--color-accent);color:var(--color-on-accent);padding:2px 4px;font-size:8px;position:absolute;top:3px;right:3px}.asset__badge--own{background:var(--color-text)}.asset strong{font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.asset small{font-size:var(--text-micro);color:var(--color-text-muted);margin-top:2px;display:block}.asset em{font:var(--text-micro) var(--font-mono);color:var(--color-text-muted);margin-top:3px;font-style:normal;display:block}.asset__edit{background:var(--color-surface);opacity:0;width:24px;height:24px;position:absolute;top:3px;left:3px}.asset:hover .asset__edit,.asset__edit:focus-visible{opacity:1}.import-row>span{flex:1}.prop-section header{justify-content:space-between}.tag{background:var(--color-surface-soft);font:var(--text-micro) var(--font-mono);text-transform:uppercase;color:var(--color-text-muted);padding:2px 5px}.warning{background:var(--color-accent-soft);color:var(--color-accent-hover);font-size:var(--text-xs);gap:7px;padding:8px;display:flex}.warning svg{flex:none;margin-top:1px}.link{color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-strong);align-items:center;gap:5px;text-decoration:none;display:inline-flex}.link-btn{font-size:var(--text-xs);color:var(--color-accent);background:0 0;border:0;margin-right:6px;padding:0}.color-box input[type=color]{cursor:pointer;background:0 0;border:0;flex:1;height:100%;padding:3px}.field__box select{width:100%;height:100%;font-size:var(--text-sm);background:0 0;border:0;outline:0;padding:0 6px}.field__box .field__unit-select{width:auto;font:var(--text-micro) var(--font-mono);color:var(--color-text-muted)}.field-grid--3{grid-template-columns:1fr 1fr 1fr}.inspector-actions .btn{padding:0 8px}.plan-canvas[data-drop]{outline:2px dashed var(--color-accent);outline-offset:-8px}.meta__warn{color:var(--color-accent);font:inherit;font-weight:var(--weight-medium);background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.canvas-empty{z-index:3;justify-items:start;gap:var(--space-2);width:min(380px,100% - 48px);padding:var(--space-5);background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-float);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-empty h2{font-size:var(--text-heading)}.canvas-empty p{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-2)}.canvas-empty small{font-size:var(--text-xs);color:var(--color-text-faint)}.callout{min-width:320px;max-width:min(560px,100% - 420px);font-size:var(--text-sm);align-items:center;gap:10px;padding:10px 8px 10px 14px;top:14px;left:50%;transform:translate(-50%)}.callout--tool{border-color:var(--color-accent)}.callout--ok svg:first-child{color:var(--color-text);flex:none}.callout--warn{border-color:var(--color-accent)}.callout--warn svg:first-child{color:var(--color-accent);flex:none}.callout p{flex:1}.callout__text{flex:1;gap:3px;display:grid}.callout__error{color:var(--color-danger);font-size:var(--text-xs)}.callout__form{gap:6px;display:flex}.callout__form .field__box{width:110px}.product-form{gap:var(--space-4);display:grid}.product-form__grid{gap:var(--space-5);grid-template-columns:1.4fr 1fr;display:grid}.product-form__preview{background:var(--color-thumb);text-align:center;place-items:center;height:170px;padding:18px;display:grid}.product-form__preview svg{width:100%;height:100%}.product-form__image{border:var(--border-width) dashed var(--color-border);place-items:center;height:120px;display:grid;overflow:hidden}.product-form__image img{object-fit:contain;max-width:100%;max-height:100%}.menu-wrap{position:relative}.menu{z-index:40;background:var(--color-surface);border:var(--border-width) solid var(--color-border);width:260px;box-shadow:var(--shadow-popover);padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu button{text-align:left;background:0 0;border:0;align-items:flex-start;gap:10px;width:100%;padding:9px 10px;display:flex}.menu button:hover{background:var(--color-surface-soft)}.menu button svg{flex:none;margin-top:2px}.menu b,.menu small{font-size:var(--text-sm);display:block}.menu small{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.callout{top:62px}.topbar__variant{height:32px;color:var(--color-text-muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:0 8px;display:inline-flex}.topbar__variant:hover,.topbar__variant[aria-expanded=true]{background:var(--color-surface-soft);color:var(--color-text)}.topbar__count{background:var(--color-text);color:var(--color-surface);font:var(--text-micro) var(--font-mono);padding:0 4px}.menu--left{left:0;right:auto}.variant-menu{width:320px}.menu__head{border-bottom:var(--border-width) solid var(--color-border);gap:3px;margin-bottom:4px;padding:8px 10px 10px;display:grid}.menu__head b{font-size:var(--text-sm)}.menu__head small{font-size:var(--text-xs);color:var(--color-text-muted)}.variant-row{align-items:center;display:flex}.variant-row:hover{background:var(--color-surface-soft)}.menu .variant-row__main{flex:1;padding:8px 6px}.variant-row__check{width:14px;color:var(--color-accent)}.variant-row .icon-btn{opacity:0;width:28px;height:28px;color:var(--color-text-muted)}.variant-row:hover .icon-btn,.variant-row .icon-btn:focus-visible{opacity:1}.variant-row__rename{flex:1;padding:4px 6px}.menu .menu__action{border-top:var(--border-width) solid var(--color-border);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);align-items:center;margin-top:4px}.draw-panel{align-items:flex-start;max-width:min(640px,100% - 40px)}.draw-panel__options{gap:6px;width:170px;display:grid}.draw-panel__length{font-size:var(--text-sm);color:var(--color-accent)}.draw-panel__length small{color:var(--color-text-muted);font-size:var(--text-micro)}.draw-panel__caret{vertical-align:-2px;background:currentColor;width:1px;height:1em;margin-left:1px;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.draw-panel__caret{animation:none}}.dialog--xl{width:min(980px,100vw - 48px);max-height:calc(100dvh - 48px)}.shop__head{justify-content:space-between;align-items:flex-end;gap:var(--space-5);display:flex}.shop__summary{gap:var(--space-6);display:flex}.shop__summary>div{gap:2px;display:grid}.shop__summary b{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:var(--text-heading)}.shop__summary small{font-size:var(--text-xs);color:var(--color-text-muted)}.shop__controls{justify-content:space-between;gap:var(--space-3);display:flex}.shop__controls .segmented button{padding:0 12px}.shop__table-wrap{border-top:var(--border-width) solid var(--color-border);max-height:55dvh;overflow:auto}.shop__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.shop__table th{z-index:1;background:var(--color-surface);text-align:left;font:var(--weight-medium) var(--text-micro) var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);padding:8px;position:sticky;top:0}.shop__table td{border-bottom:var(--border-width) solid var(--color-border);vertical-align:top;padding:8px}.shop__table td b,.shop__table td small{display:block}.shop__table td small{color:var(--color-text-muted);font-size:var(--text-xs)}.shop__table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.shop__room th{font:italic 400 var(--text-lg) var(--font-serif);letter-spacing:0;text-transform:none;color:var(--color-text);border-bottom:var(--border-width) solid var(--color-border-strong);padding-top:18px;position:static}.shop__room th.num{font:var(--weight-medium) var(--text-sm) var(--font-sans)}.shop__floor{color:var(--color-text-muted)}.shop__line{cursor:pointer}.shop__line:hover{background:var(--color-surface-soft)}.shop__line a{color:var(--color-accent)}.shop__status{font-size:var(--text-xs);background:var(--color-surface-soft);padding:2px 6px}.shop__status--planned{background:var(--color-accent-soft);color:var(--color-accent-hover)}.lookup-result{background:var(--color-surface-soft);font-size:var(--text-xs);padding:8px}.lookup-result b{color:var(--color-accent)}.shop__controls .segmented button{white-space:nowrap}.trace-panel{align-items:flex-start;max-width:min(720px,100% - 40px)}.trace-panel .eyebrow{align-items:center;gap:5px;display:inline-flex}.trace-panel__main{flex:1;gap:6px;display:grid}.trace-panel__hint{font-size:var(--text-xs);color:var(--color-accent)}.trace-panel__controls{grid-template-columns:1.6fr .9fr auto;align-items:end;gap:10px;margin-top:4px;display:grid}.trace-panel__scale{font-size:var(--text-micro);color:var(--color-text-faint);justify-content:space-between;display:flex}.trace-panel__toggle{height:var(--control-height);white-space:nowrap}.trace-panel__actions{align-content:end;align-self:stretch;gap:6px;display:grid}.marquee{z-index:2;pointer-events:none;border:1px solid var(--color-accent);background:color-mix(in srgb, var(--color-accent) 8%, transparent);position:absolute}.marquee[data-mode=crossing]{background:color-mix(in srgb, var(--color-accent) 4%, transparent);border-style:dashed}.meta__lock{font:inherit;color:var(--color-text-muted);background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.meta__lock[data-locked=true]{color:var(--color-text);font-weight:var(--weight-medium)}.meta__lock:hover{color:var(--color-accent)}.layers-tab{flex:1;overflow:auto}.plans{border-bottom:var(--border-width) solid var(--color-border);padding-bottom:10px}.plans__head{padding:12px 17px 4px}.layers-tab .layer-list{overflow:visible}.plans__list{margin:0;padding:0 8px;list-style:none}.plans__item{align-items:center;display:flex}.plans__item:hover,.plans__item[data-active=true]{background:var(--color-surface-soft)}.plans__item .icon-btn{width:28px;height:28px;color:var(--color-text-muted);opacity:0}.plans__item:hover .icon-btn,.plans__item .icon-btn:focus-visible{opacity:1}.plans__main{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;min-width:0;padding:7px 6px;display:flex}.plans__check{width:12px;color:var(--color-accent)}.plans__text{min-width:0;display:grid}.plans__text b{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.plans__text small{font-size:var(--text-micro);color:var(--color-text-muted)}.plans__item[data-active=true] .plans__text b{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:var(--text-lg)}.plans__rename{flex:1;padding:4px 6px}.plans__add{border:1px dashed var(--color-border-strong);width:calc(100% - 16px);font-size:var(--text-sm);color:var(--color-accent);background:0 0;align-items:center;gap:7px;margin:6px 8px 0;padding:8px 10px;display:flex}.plans__add:hover{background:var(--color-surface-soft)}.plans__ghost{font-size:var(--text-xs);margin:8px 17px 0}.plans__ghost span{align-items:center;gap:6px;display:inline-flex}.draw-panel__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.draw-panel .quick-row .btn{flex:none;padding:0 12px}.three-view{z-index:10;background:#e9e6df;position:absolute;inset:0}.three-view--loading{color:var(--color-text-muted);font:var(--text-sm) var(--font-mono);place-items:center;display:grid}.three-view__canvas{position:absolute;inset:0}.three-view__canvas canvas{touch-action:none;display:block}.three-panel{flex-direction:column;gap:8px;width:260px;padding:10px 12px 12px;top:14px;left:14px}.three-panel__head{justify-content:space-between;align-items:center;display:flex}.three-panel .segmented button{justify-content:center;align-items:center;gap:5px;display:inline-flex}.three-panel__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.three-panel .toggle-row span{align-items:center;gap:6px;display:inline-flex}.zoom .zoom__3d{font-weight:var(--weight-strong);gap:5px;padding:0 10px;display:inline-flex}
