:root{--paper:#efebe3;--paper-2:#f7f4ee;--panel:#fbfaf7;--ink:#1d1f22;--ink-2:#4a4d52;--muted:#64615b;--line:#d9d3c7;--line-2:#e7e2d8;--accent:#c8643b;--accent-ink:#9c4825;--sel:#2a6bd1;--primary:#5a3fe0;--primary-hover:#4a2fcc;--primary-soft:#5a3fe033;--danger:#b3261e;--grid:#c8643b8c;--ctl:32px;--ctl-sm:26px;--radius:7px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,-apple-system,Segoe UI,system-ui,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select{font:inherit;color:inherit}button,.import-btn{height:var(--ctl);white-space:nowrap;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;line-height:1;transition:border-color .12s,background .12s,color .12s;display:inline-flex}button:hover:not(:disabled){border-color:var(--ink-2)}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:#0000000d;border-color:#0000}button.danger{color:var(--danger)}button.small{height:var(--ctl-sm);padding:0 8px;font-size:12px}button.on{background:var(--primary);color:#fff;border-color:var(--primary)}button.wide{width:100%}.icon-btn{padding:0 10px}.icon-btn:not(:has(:not(svg))){width:var(--ctl);padding:0}.icon-btn.small:not(:has(:not(svg))){width:var(--ctl-sm)}.icon-btn.off{color:var(--muted)}.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none}.btn-group{gap:2px;display:inline-flex}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select{height:var(--ctl);border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;min-width:0;padding:0 8px}input:focus,select:focus{outline:2px solid var(--primary);outline-offset:-1px}input[type=checkbox],input[type=radio]{width:15px;height:15px;accent-color:var(--primary);margin:0}.key{min-width:22px;height:22px;color:var(--ink);background:linear-gradient(#fff,#f1eee8);border:1px solid #cfc8bb;border-bottom-width:3px;border-radius:5px;justify-content:center;align-items:center;padding:0 6px;font:600 11px/1 ui-sans-serif,-apple-system,system-ui,sans-serif;display:inline-flex;box-shadow:0 1px #0000000d}.key.small{border-bottom-width:2px;min-width:18px;height:18px;padding:0 4px;font-size:10px}.muted{color:var(--muted)}.spacer{flex:1}.hint{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.4}.row{gap:10px;display:flex}.row>*{flex:1;min-width:0}.home{max-width:1120px;margin:0 auto;padding:44px 28px 80px}.brand{align-items:center;gap:16px;display:flex}.brand-mark{color:var(--accent);font-size:42px;line-height:1}.brand h1{letter-spacing:-.02em;margin:0;font-size:30px}.brand p{color:var(--ink-2);margin:2px 0 0}.new-project{background:var(--panel);border:1px solid var(--line);border-radius:14px;gap:12px;margin:32px 0 36px;padding:18px 20px;display:grid}.new-project h2,.projects h2{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.new-project-fields{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.new-project-fields .field{width:130px}.new-project-fields .field.grow{flex:1;width:auto;min-width:220px}.new-project-fields .times{color:var(--muted);padding-bottom:8px}.projects{gap:14px;display:grid}.count{background:var(--line-2);min-width:20px;height:20px;color:var(--ink-2);letter-spacing:0;border-radius:999px;place-items:center;padding:0 6px;font-size:11px;display:inline-grid}.empty{color:var(--muted)}.loading,.missing{text-align:center;padding:40px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;min-width:0;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex;overflow:hidden}.card:hover{border-color:#cdc5b6;box-shadow:0 10px 28px #00000014}.card.picked{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.thumb-frame{border-bottom:1px solid var(--line-2);background:linear-gradient(#ebe6dc,#e4ded2);width:100%;padding:14px;position:relative;overflow:hidden}.thumb-frame.clickable{cursor:pointer}.thumb-frame.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.thumb-svg{filter:drop-shadow(0 3px 6px #00000024);width:100%;height:100%;transition:transform .2s;display:block}.card:hover .thumb-svg{transform:scale(1.02)}.card-body{gap:3px;min-width:0;padding:12px 14px 4px;display:grid}.card-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;overflow:hidden}.card-meta{color:var(--muted);align-items:center;gap:5px;min-width:0;font-size:12px;display:inline-flex}.card-meta .icon{flex:none}.card-actions{align-items:center;gap:6px;margin-top:auto;padding:10px 14px 12px;display:flex}.pick-badge{cursor:pointer;background:#ffffffeb;border-radius:8px;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:10px;left:10px;box-shadow:0 1px 4px #00000026}.pick-badge.on{background:var(--primary)}.pick-badge input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.editor{grid-template:"top top top"52px"tools stage side"minmax(0,1fr)/56px minmax(0,1fr) 300px;height:100vh;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:var(--panel);z-index:30;grid-area:top;align-items:center;gap:6px;min-width:0;padding:0 12px;display:flex;position:relative}.topbar .title{align-items:center;gap:10px;min-width:0;margin:0 6px;display:flex;overflow:hidden}.topbar .title strong{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:50px;max-width:180px;overflow:hidden}.seg{border:1px solid var(--line);border-radius:var(--radius);height:var(--ctl);display:inline-flex;overflow:hidden}.seg button{background:0 0;border:0;border-radius:0;height:100%;padding:0 12px}.seg button.on{background:var(--primary);color:#fff}.save-state{color:var(--muted);text-align:right;white-space:nowrap;min-width:108px;margin-right:4px;font-size:12px}.save-state:before{content:"●";color:#4c9a5a;margin-right:6px}.save-state.busy:before{color:var(--accent)}.toolbar{border-right:1px solid var(--line);background:var(--panel);z-index:5;flex-direction:column;grid-area:tools;align-items:center;gap:4px;padding:10px 0;display:flex}.toolbar-sep{background:var(--line);width:24px;height:1px;margin:4px 0}.tool-btn{background:0 0;border-color:#0000;border-radius:9px;width:40px;height:40px;padding:0;position:relative}.tool-btn:hover:not(:disabled){background:#0000000d;border-color:#0000}.tool-btn.on,.tool-btn.on:hover:not(:disabled){background:var(--primary);color:#fff;box-shadow:0 4px 12px var(--primary-soft)}.tooltip{z-index:40;text-align:left;white-space:normal;background:var(--ink);min-width:150px;max-width:240px;color:var(--paper-2);pointer-events:none;opacity:0;transform-origin:0;border-radius:8px;gap:3px;padding:8px 10px;transition:opacity .14s,transform .18s cubic-bezier(.2,.9,.3,1.3);display:grid;position:absolute;top:50%;left:calc(100% + 12px);transform:translate(-8px,-50%)scale(.96);box-shadow:0 8px 24px #00000038}.tooltip:before{content:"";background:var(--ink);border-radius:2px;width:10px;height:10px;position:absolute;top:50%;left:-5px;transform:translateY(-50%)rotate(45deg)}.tool-btn:hover .tooltip,.tool-btn:focus-visible .tooltip{opacity:1;transition-delay:.1s;transform:translateY(-50%)scale(1)}.toolbar.warm .tooltip{transition:none!important}.tooltip-title{justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.tooltip-hint{color:#ffffffb3;font-size:11.5px;line-height:1.35}.tooltip .key{color:var(--ink)}.stage{flex-direction:column;grid-area:stage;min-width:0;min-height:0;display:flex;position:relative}.canvas{background:var(--paper);touch-action:none;-webkit-user-select:none;user-select:none;flex:1;width:100%;min-height:0;display:block}.canvas.panning{cursor:grabbing!important}.wall-shadow{fill:#0000001f;filter:blur(6px);transform:translate(.6%,.8%)}.wall-outline{fill:none;stroke:var(--ink);stroke-width:1.5px;vector-effect:non-scaling-stroke}.grid-lines line{stroke-width:var(--gw,1);vector-effect:non-scaling-stroke;stroke-dasharray:var(--gd,4 3);stroke-linecap:round;pointer-events:none}.grid-lines .grid-cover line{stroke-width:calc(var(--gw,1) * 2.5);stroke-dasharray:none;stroke-linecap:butt}.grid-lines.strong line{stroke-width:calc(var(--gw,1) * 1.4)}.grid-lines.strong .grid-cover line{stroke-width:calc(var(--gw,1) * 3)}.preview-grid line{stroke-width:.8px}.grid-label{fill:var(--accent-ink);pointer-events:none;font-size:12px;font-weight:600}.cote{fill:var(--ink-2);font-variant-numeric:tabular-nums;pointer-events:none;font-size:10.5px}.cote-tick{stroke:var(--ink-2);stroke-width:1px}.shape{fill:none;stroke:var(--ink);stroke-width:1.6px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.toast{z-index:20;background:var(--ink);max-width:70%;color:var(--paper-2);border-radius:999px;padding:8px 14px;font-size:13px;animation:.2s toast-in;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0003}.toast.error{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.zoom-controls .icon-btn{background:0 0;border-color:#0000}.zoom-controls .icon-btn:hover{background:#0000000d}.zoom-value{color:var(--ink-2);text-align:center;font-variant-numeric:tabular-nums;min-width:74px;font-size:12px}.shortcuts{z-index:15;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:320px;padding:14px 16px 56px;animation:.18s slide-in;position:absolute;top:12px;bottom:12px;left:12px;overflow-y:auto;box-shadow:0 12px 32px #00000024}@keyframes slide-in{0%{opacity:0;transform:translate(-10px)}}.shortcuts h4{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);margin:10px 0 6px;font-size:11px}.shortcuts h4:first-child{margin-top:0}.shortcuts ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.shortcuts li{color:var(--ink-2);grid-template-columns:136px minmax(0,1fr);align-items:center;gap:10px;font-size:12.5px;display:grid}.shortcuts .keys{flex-wrap:nowrap;gap:3px;display:flex}.shortcuts .key{min-width:20px;height:21px;padding:0 5px;font-size:10.5px}.shortcuts-foot{color:var(--muted);align-items:center;gap:6px;margin:12px 0 0;font-size:12px;display:flex}.side-panel{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;grid-area:side;min-width:0;display:flex;overflow:hidden auto}.side-panel>*{min-width:0}.panel-section{gap:10px;min-width:0;padding:14px 16px 10px;display:grid}.panel-section>*{min-width:0}.panel-section h3{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);margin:0;font-size:11px}.field{color:var(--ink-2);gap:4px;min-width:0;font-size:12px;display:grid}.field-input{align-items:center;gap:6px;min-width:0;display:flex}.field-input em{color:var(--muted);font-style:normal}.check{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.origin-picker{grid-template-columns:repeat(2, var(--ctl));gap:4px;display:grid}.origin-picker button{width:var(--ctl);padding:0}.draft-path{fill:none;stroke:var(--sel);stroke-width:1.6px;vector-effect:non-scaling-stroke}.draft-node{fill:#fff;stroke:var(--sel);stroke-width:1.2px;vector-effect:non-scaling-stroke}.draft-guide{stroke:var(--sel);stroke-dasharray:3 3;stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.6}.handle-line{stroke:var(--sel);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.7}.handle-dot{fill:var(--sel);stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke}.snap-marker rect,.snap-marker circle{fill:none;stroke:#e0007a;stroke-width:1.5px}.snap-label{fill:#e0007a;paint-order:stroke;stroke:#fff;stroke-width:3px;font-size:10.5px;font-weight:600}.screen-label rect{fill:#1d1f22e0}.screen-label text{fill:#fff;font-variant-numeric:tabular-nums;font-size:11.5px}.measure line{stroke:#e0007a;stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-dasharray:6 3}.measure circle{fill:#e0007a}.selected-shape{fill:none;stroke:var(--sel);stroke-width:3px;vector-effect:non-scaling-stroke;opacity:.45;pointer-events:none}.handle-vertex{fill:#fff;stroke:var(--sel);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:move}.handle-mid{fill:var(--sel);stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke}.trim-preview{fill:none;stroke:var(--danger);stroke-width:4px;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85;pointer-events:none}.hovered-shape{fill:none;stroke:var(--sel);stroke-width:2px;vector-effect:non-scaling-stroke;opacity:.35;pointer-events:none}.handles.hover{opacity:.75}.marquee{fill:#2a6bd114;stroke:var(--sel);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.btn-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.btn-grid button{min-width:0;padding:0 4px;font-size:12px}.inline-action{align-items:end}.inline-action>button{flex:none}.fill{stroke-width:.6px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.region-hover{pointer-events:none}.region-hover path{vector-effect:non-scaling-stroke;stroke-linejoin:round}.rh-fill{fill:var(--sel);fill-opacity:.35;stroke:none}.rh-halo{fill:none;stroke:#fff;stroke-width:6px;stroke-opacity:.85}.rh-line{fill:none;stroke:var(--sel);stroke-width:3.5px}.gap-marker{fill:#b3261e1f;stroke:var(--danger);stroke-width:2px;animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:1}to{opacity:.45}}.palette{gap:2px;display:grid}.swatch-row{grid-template-columns:30px minmax(0, 1fr) var(--ctl-sm) var(--ctl-sm);border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:3px 4px;display:grid}.swatch-row:hover{background:#00000008}.swatch-row.on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:#fff}.swatch-row.no-paint{cursor:default}.swatch{cursor:pointer;border:1px solid #0000002e;border-radius:6px;width:30px;height:26px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffff40}.swatch input[type=color]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.swatch-row .name{cursor:pointer;height:var(--ctl-sm)!important;background:0 0!important;border-color:#0000!important;padding:0 4px!important}.swatch-row .name:focus{cursor:text;background:#fff!important}.modal.modal-small{width:min(560px,94vw);height:auto;max-height:90vh}.modal-pad{gap:12px;padding:16px;display:grid;overflow-y:auto}.surf-table th{text-align:left;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--ink);padding:4px 2px;font-size:11px;font-weight:600}.surf-table th.num{text-align:right}.surf-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.surf-table td{border-bottom:1px solid var(--line-2);padding:7px 2px}.surf-table td.num{text-align:right}.surf-table .dot{vertical-align:-1px;border:1px solid #00000026;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.surf-table tfoot td{border-bottom:0;font-weight:600}.side-tabs{border-bottom:1px solid var(--line);background:var(--panel);z-index:1;display:flex;position:sticky;top:0}.side-tabs button{text-transform:uppercase;letter-spacing:.08em;height:42px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:0 10px;font-size:11.5px}.side-tabs button.on{color:var(--ink);border-bottom-color:var(--primary);background:0 0}.history{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 16px;display:flex}.history-head{justify-content:space-between;align-items:baseline;display:flex}.history-slider{width:100%;accent-color:var(--primary)}.history-list{gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.history-row{grid-template-columns:minmax(0, 1fr) var(--ctl-sm);border-radius:6px;align-items:center;gap:2px;display:grid}.history-row:hover{background:#0000000a}.history-row.current{background:var(--primary);color:#fff}.history-row.future{opacity:.5}.history-item{text-align:left;white-space:normal;background:0 0;border:0;border-radius:6px;grid-template-columns:40px minmax(0,1fr) auto;justify-content:stretch;gap:6px;height:auto;min-height:28px;padding:4px 6px;font-size:12px;display:grid}.history-item:hover:not(:disabled){border:0}.history-item .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-item .seq{color:var(--muted);font-variant-numeric:tabular-nums}.history-item .time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.history-row.current .seq,.history-row.current .time{color:#ffffffb3}.branch-btn{opacity:0}.history-row:hover .branch-btn,.history-row.current .branch-btn{opacity:1}.history-row.current .branch-btn{color:var(--paper-2)}.project-page,.compare{flex-direction:column;min-height:100vh;display:flex}.project-head{border-bottom:1px solid var(--line);background:var(--panel);z-index:5;align-items:center;gap:12px;min-height:56px;padding:10px 20px;display:flex;position:sticky;top:0}.project-title{field-sizing:content;min-width:120px;max-width:420px;font-size:18px;font-weight:600;background:0 0!important;border-color:#0000!important;width:auto!important}.project-title:hover{border-color:var(--line)!important}.card-grid.variants{width:100%;max-width:1400px;margin:0 auto;padding:24px 20px 60px}.variant-name{margin-left:-4px;font-size:14.5px;font-weight:600;background:0 0!important;border-color:#0000!important;height:28px!important;padding:0 4px!important}.variant-name:hover{border-color:var(--line)!important}.variant-name:focus{background:#fff!important}.variant-switcher{flex:0 auto;align-items:center;gap:6px;min-width:0;display:flex}.variant-switcher select{width:auto;max-width:160px}p.small{margin:0}.swatches{gap:4px;min-height:14px;margin:0;display:flex}.mini-swatch{border:1px solid #00000026;border-radius:3px;width:14px;height:14px}.compare-grid{flex:1;gap:12px;min-height:0;padding:12px;display:grid}.compare-grid.n2{grid-template-columns:1fr 1fr}.compare-grid.n3{grid-template-columns:1fr 1fr 1fr}.compare-grid.n4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.compare-pane{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.compare-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.compare-canvas{background:var(--paper);cursor:grab;touch-action:none;flex:1;min-height:240px;position:relative}.viewboxed,.compare-svg{width:100%;height:100%;position:absolute;inset:0}.compare-legend{border-top:1px solid var(--line);flex-wrap:wrap;align-content:flex-start;gap:4px 10px;height:62px;padding:8px 12px;font-size:12px;display:flex;overflow-y:auto}.compare-legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.image-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.image-row{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;min-width:0;padding:6px 8px;display:grid}.image-row.on{border-color:var(--sel)}.image-row[data-hidden] .name,.image-row[data-hidden] .opacity{opacity:.45}.image-row-head{grid-template-columns:minmax(0, 1fr) repeat(6, var(--ctl-sm));align-items:center;gap:1px;display:grid}.image-row-head .name{text-overflow:ellipsis;text-align:left;min-width:0;line-height:var(--ctl-sm);justify-content:flex-start;padding:0 2px;display:block;overflow:hidden}.opacity{color:var(--ink-2);gap:2px;font-size:11px;display:grid}.opacity input{accent-color:var(--primary);width:100%}.image-frame{fill:none;stroke:var(--sel);stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.image-corner circle{fill:var(--sel);stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke}.image-corner path{fill:none;stroke:#fff;stroke-width:1.6px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.print-cell{fill:#2a6bd11a;stroke:var(--sel);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.consult-veil{fill:#efebe3b8;pointer-events:none}.consult-hover{fill:none;stroke:var(--ink);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.consult-badge rect{fill:var(--ink)}.consult-badge text{fill:var(--paper-2);font-size:14px;font-weight:700}.consult-cote{fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.consult-panel .cell-nav{grid-template-columns:repeat(3, var(--ctl));justify-content:center;gap:4px;display:grid}.consult-panel .cell-nav button{padding:0}.sub-grid line{vector-effect:non-scaling-stroke;pointer-events:none}.sub-grid .under line{stroke:#ffffff73;stroke-width:2px}.sub-grid .over line{stroke:#1d1f228c;stroke-width:1px;stroke-dasharray:2 3}.sub-cote{fill:var(--ink-2);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.cell-chips{flex-wrap:wrap;gap:4px;display:flex}.cell-chip{height:var(--ctl-sm);color:#1d4f91;background:#e9f1fb;border:0;border-radius:999px;padding:0 10px;font-size:12px}.big-id{text-align:center;letter-spacing:.02em;margin:0;font-size:28px;font-weight:700}.modal-backdrop{z-index:50;background:#14141673;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:14px;flex-direction:column;width:min(1280px,94vw);height:min(860px,92vh);display:flex;overflow:hidden;box-shadow:0 30px 80px #0000004d}.modal-head{border-bottom:1px solid var(--line);align-items:center;padding:12px 16px;display:flex}.modal-body{flex:1;grid-template-columns:360px 1fr;min-height:0;display:grid}.export-left{border-right:1px solid var(--line);flex-direction:column;gap:10px;padding:16px;display:flex;overflow-y:auto}.export-left h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:0;font-size:12px}.export-left .hint{margin:0}.cell-picker{background:var(--paper);border-radius:6px;width:100%;position:relative}.cell-picker-svg,.cell-picker-hit{width:100%;height:100%;position:absolute;inset:0}.pick-cell{cursor:pointer}.pick-cell rect{fill:#0000;stroke:none}.pick-cell:hover rect{fill:#2a6bd11f}.pick-cell.on rect{fill:#2a6bd147;stroke:var(--sel);stroke-width:1.2px;vector-effect:non-scaling-stroke}.pick-cell text{fill:#1d1f228c;pointer-events:none;font-weight:700}.pick-cell.on text{fill:#0f3f8c}.export-actions{gap:6px;display:grid}.export-pages{background:#e4e0d7;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-content:start;gap:16px;padding:16px;display:grid;overflow-y:auto}.page-preview{gap:6px;margin:0;display:grid}.page-svg{aspect-ratio:297/210;background:#fff;width:100%;display:block;box-shadow:0 2px 10px #00000026}.page-svg svg{width:100%;height:100%;display:block}.page-preview figcaption{color:var(--ink-2);font-size:12px}.projects-head{justify-content:space-between;align-items:center;display:flex}.import-btn:hover{border-color:var(--ink-2)}.canvas-hud{z-index:10;align-items:center;gap:8px;display:flex;position:absolute;bottom:14px;right:14px}.hud-pill{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:2px;height:40px;padding:3px;display:flex;box-shadow:0 4px 14px #00000014}.measure-pill{font-variant-numeric:tabular-nums;white-space:nowrap;gap:12px;padding:0 12px;font-size:13px}.measure-pill .icon{color:var(--muted)}.hud-item{align-items:center;gap:5px;display:inline-flex}.hud-item.strong .icon{color:#e0007a}.hud-item b{font-size:14px}.hud-sep{background:var(--line);width:1px;height:20px}.split-btn{display:inline-flex;position:relative}.split-btn>button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.split-btn>.eye-btn{width:var(--ctl);border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;padding:0}.split-btn>.on+.eye-btn{border-left:1px solid var(--line)}.eye-btn.off{color:var(--muted);background:var(--paper)}.grid-off:not(.on){color:var(--muted)}.popover{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:12px;width:260px;padding:14px;animation:.14s pop-in;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 16px 40px #0000002e}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.popover h4{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);margin:0;font-size:11px}.popover .hint{margin:0}.range-field{color:var(--ink-2);gap:6px;font-size:12px;display:grid}.range-field span{justify-content:space-between;display:flex}.range-field b{color:var(--ink);font-variant-numeric:tabular-nums}.range-field input{width:100%;accent-color:var(--primary)}.grid-sample{border:1px solid var(--line);border-radius:6px;height:40px;overflow:hidden}.grid-sample svg{width:100%;height:100%;display:block}.grid-sample line{stroke-width:var(--gw,1);vector-effect:non-scaling-stroke;stroke-dasharray:4 3}.handle-dot.virtual{fill:#fff;stroke:var(--sel);stroke-width:1.6px}.modal-image{width:min(1240px,96vw);height:min(820px,94vh)}.image-edit-body{flex:1;grid-template-columns:minmax(0,1fr) 300px;min-height:0;display:grid}.image-stage{background:#2a2b2e;place-items:center;min-height:0;padding:24px;display:grid;overflow:hidden}.stage-fit{place-items:center;width:100%;height:100%;display:grid;container-type:size}.stage-box{width:min(100cqw, calc(100cqh * var(--ar)));aspect-ratio:var(--ar);-webkit-user-select:none;user-select:none;position:relative}.stage-box>img{object-fit:fill;pointer-events:none;width:100%;height:100%;display:block}.stage-box>svg{touch-action:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.stage-box.checker{background:repeating-conic-gradient(#3a3b3f 0 25%, #303135 0 50%) 0 0 / 20px 20px}.stage-loading{color:#ddd}.quad{fill:#2a6bd11f;stroke:#4d9bff;stroke-width:2px;vector-effect:non-scaling-stroke}.quad.invalid{stroke:#ff5a4f;fill:#ff5a4f26}.quad-grid{stroke:#ffffffbf;stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.quad-handle{fill:#fff3;stroke:#fff;stroke-width:2.5px;vector-effect:non-scaling-stroke;cursor:move}.quad-handle:hover{fill:#4d9bff80}.loupe{pointer-events:none;background:#000;border:3px solid #fff;border-radius:50%;width:150px;height:150px;position:absolute;top:12px;left:12px;box-shadow:0 6px 20px #0006}.crop-shade{fill:#0000008c;pointer-events:none}.crop-frame{fill:#0000;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;cursor:move}.crop-thirds line{stroke:#ffffff73;stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.crop-handle{fill:#fff;stroke:#2a6bd1;stroke-width:1.5px;vector-effect:non-scaling-stroke}.h-nw,.h-se{cursor:nwse-resize}.h-ne,.h-sw{cursor:nesw-resize}.h-n,.h-s{cursor:ns-resize}.h-e,.h-w{cursor:ew-resize}.image-edit-side{border-left:1px solid var(--line);flex-direction:column;gap:12px;padding:16px;display:flex;overflow-y:auto}.image-edit-side h4{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);margin:0;font-size:11px}.image-edit-side .hint{margin:0}.hint.error{color:var(--danger)}.settings-block{gap:10px;display:grid}.settings-block+.settings-block{border-top:1px solid var(--line-2);padding-top:14px}.settings-block h4{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);margin:0;font-size:11px}.settings-block .hint{margin:0}.origin-chooser{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.origin-preview{flex:none}.op-wall{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}.op-corner{cursor:pointer}.op-corner circle{fill:#fff;stroke:var(--ink-2);stroke-width:1.5px;transition:r .12s}.op-corner:hover circle{stroke:var(--accent)}.op-corner.on circle{fill:var(--accent);stroke:var(--accent-ink)}.op-corner text{fill:#fff;pointer-events:none;font-size:11px;font-weight:700}.op-axes line{stroke:var(--accent-ink);stroke-width:1.5px;marker-end:none}.op-axes text{fill:var(--accent-ink);font-size:10px;font-weight:600}.origin-list{gap:8px;display:grid}.step-suggestions{color:var(--ink-2);border:1px dashed var(--line);border-radius:var(--radius);background:#fff;gap:6px;padding:8px 10px;font-size:12px;display:grid}.step-suggestions>div{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.step-suggestions>div>span{color:var(--muted);flex:0 0 100%}.step-chip{background:var(--paper-2);border-radius:999px;height:24px;padding:0 8px;font-size:12px}.step-chip em{color:var(--muted);font-style:normal}.grid-style{gap:12px;display:grid}.line-styles{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.grid-style:not(.compact) .line-styles{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.line-style{flex-direction:column;gap:2px;height:auto;min-height:30px;padding:4px 6px;font-size:11px}.line-style svg{width:100%;height:10px}.line-style line{stroke:currentColor;stroke-width:2px;stroke-linecap:round}.line-style.on{background:var(--primary);color:#fff;border-color:var(--primary)}.color-picker{z-index:80;background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:10px;width:288px;padding:12px;animation:.12s pop-in;display:grid;position:fixed;box-shadow:0 16px 40px #0003}.cp-head{align-items:center;gap:6px;display:flex}.cp-preview{border:1px solid #00000026;border-radius:8px;flex:none;width:32px;height:32px}.cp-hex{text-transform:lowercase;font-family:ui-monospace,Menlo,monospace}.cp-native{cursor:pointer;position:relative;overflow:hidden}.cp-native input{opacity:0;cursor:pointer;position:absolute;inset:0}.cp-tabs{width:100%}.cp-tabs button{flex:1}.cp-swatches{gap:8px;display:grid}.cp-group{color:var(--muted);font-size:11px}.cp-row{grid-template-columns:repeat(8,1fr);gap:4px;margin-top:3px;display:grid}.cp-swatch{border:1px solid #0000001f;border-radius:6px;height:26px;padding:0}.cp-swatch.on{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--primary)}.cp-sliders{gap:10px;display:grid}.cp-range{appearance:none;border:1px solid #0000001f;border-radius:6px;height:12px}.cp-range::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--ink);background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0000004d}.cp-foot{justify-content:flex-end;gap:6px;display:flex}.swatch-name{text-overflow:ellipsis;white-space:nowrap;padding:0 4px;font-size:13px;overflow:hidden}.swatch-row .row-tool{opacity:.45}.swatch-row:hover .row-tool,.swatch-row.on .row-tool{opacity:1}button.swatch{height:26px;padding:0}.name-edit{min-width:0}.name-edit .name{border-color:var(--accent)!important;background:#fff!important}.history-anchor{display:inline-flex;position:relative}.history-popover{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;width:360px;max-height:min(70vh,640px);animation:.14s pop-in;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 40px #0000002e}.history-popover .history{min-height:0}.step-row{align-items:flex-end;gap:6px;display:flex}.step-row>.field{flex:1;min-width:0}.link-btn{margin-bottom:3px}.grid-summary{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;margin:0;overflow:hidden}.grid-summary span{color:var(--ink-2)}.title-sep{color:var(--muted)}.variant-title{field-sizing:content;flex:0 auto;min-width:40px;max-width:200px;font-weight:500;background:0 0!important;border-color:#0000!important;width:auto!important}.variant-title:hover{border-color:var(--line)!important}.variant-title:focus{border-color:var(--primary)!important;background:#fff!important}.modal.variants-overlay{width:min(1180px,94vw);height:min(780px,90vh)}.variants-body{background:var(--paper);flex:1;padding:20px;overflow-y:auto}.card.current{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.current-badge{background:var(--primary);color:#fff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600;position:absolute;top:10px;right:10px}.step-row .link-btn{flex:none}.btn-badge{background:var(--primary);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}button.on .btn-badge{color:var(--primary);background:#fff}.card.new-variant{background:#5a3fe00a;border:2px dashed #c9bfff}.new-variant-btn{white-space:normal;text-align:center;width:100%;height:100%;min-height:260px;color:var(--ink-2);background:0 0;border:0;flex-direction:column;gap:8px;padding:20px}.new-variant-btn:hover:not(:disabled){background:#5a3fe012;border:0}.new-variant-btn strong{color:var(--primary);font-size:15px}.new-variant-btn span:not(.nv-icon){max-width:220px;font-size:12.5px;line-height:1.45}.nv-icon{background:var(--primary);color:#fff;width:52px;height:52px;box-shadow:0 6px 18px var(--primary-soft);border-radius:50%;place-items:center;display:grid}.new-project-top{align-items:center;gap:14px;display:flex}.room-page{grid-template:"top top"52px"stage side"minmax(0,1fr)/minmax(0,1fr) 320px;height:100vh;display:grid;overflow:hidden}.room-page .topbar .project-title{background:0 0;border-color:#0000;width:240px;font-weight:600}.room-page .topbar .project-title:hover{border-color:var(--line)}.room-stage{grid-area:stage;min-width:0;min-height:0;display:grid;position:relative}.layout-split .room-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.layout-split .room-3d{border-left:1px solid var(--line)}.plan-editor{min-width:0;min-height:0;display:flex;position:relative}.plan-svg{background:var(--paper);touch-action:none;-webkit-user-select:none;user-select:none;flex:1;width:100%;height:100%;display:block}.plan-grid line{stroke:#0000000d;stroke-width:1px;vector-effect:non-scaling-stroke}.plan-grid line.major{stroke:#0000001a}.plan-floor{fill:#faf7f1}.plan-walls{fill:#3b3d42;pointer-events:none}.plan-wall-hit{fill:#0000;cursor:pointer}.plan-wall-hit:hover{fill:#5a3fe059}.plan-wall-hit.on{fill:var(--primary)}.plan-paint{pointer-events:none;stroke-linecap:butt}.plan-opening{cursor:ew-resize}.plan-opening-gap{fill:#faf7f1;stroke:#3b3d42;stroke-width:1px;vector-effect:non-scaling-stroke}.plan-opening line,.plan-opening .swing{stroke:#3b3d42;stroke-width:1.2px;fill:none;vector-effect:non-scaling-stroke}.plan-opening .swing{stroke-dasharray:3 3}.plan-opening.window .plan-opening-gap{fill:#dcecf5}.plan-opening:hover .plan-opening-gap{stroke:var(--primary)}.plan-opening.on .plan-opening-gap{fill:var(--primary-soft);stroke:var(--primary);stroke-width:2px}.plan-opening.on line,.plan-opening.on .swing{stroke:var(--primary)}.plan-guide{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;pointer-events:none}.plan-corner{fill:#fff;stroke:var(--ink);stroke-width:1.6px;cursor:move}.plan-corner:hover{stroke:var(--primary)}.plan-corner.on{fill:var(--primary);stroke:#fff;stroke-width:2px}.plan-label{pointer-events:none}.plan-label-name{fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:3px;font-size:12px;font-weight:600}.plan-label-len{fill:var(--ink-2);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--paper);stroke-width:3px;font-size:11px}.plan-hud{position:absolute;bottom:12px;right:12px}.plan-help{color:var(--muted);pointer-events:none;max-width:70%;margin:0;font-size:12px;position:absolute;bottom:10px;left:12px}.room-3d{background:#e9e5dc;min-width:0;min-height:0;position:relative;overflow:hidden}.room-3d-host{position:absolute;inset:0}.room-3d-host canvas{display:block}.room-3d-bar{align-items:center;gap:10px;padding-right:10px;display:flex;position:absolute;top:12px;left:12px}.room-3d-bar .seg{height:var(--ctl-sm)}.room-3d-bar .check{font-size:12px}.room-3d-help{color:var(--ink-2);pointer-events:none;text-shadow:0 1px #fff9;margin:0;font-size:12px;position:absolute;bottom:10px;left:12px}.room-3d-tip{cursor:pointer;color:var(--paper-2);background:#1d1f22d1;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:80%;padding:12px 16px;font-size:13px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.room-3d-error{color:var(--ink-2);place-items:center;margin:0;display:grid;position:absolute;inset:0}.room-page .side-panel{grid-area:side}.panel-head{align-items:center;gap:6px;display:flex}.panel-head .wall-name{background:0 0;border-color:#0000;font-size:14px;font-weight:600}.panel-head .wall-name:hover{border-color:var(--line)}.room-walls{gap:8px;margin:0;padding:0;list-style:none;display:grid}.room-wall-item{grid-template-columns:72px minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}.room-wall-thumb{background:#fff;height:50px;padding:3px}.room-wall-big{background:#fff;width:100%;height:auto;padding:6px;display:block}.room-wall-meta{gap:2px;min-width:0;display:grid}.room-wall-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.small{font-size:12px}.wall-elevation{width:100%;height:100%;min-height:0;position:relative}.room-wall-big .wall-elevation{aspect-ratio:16/7}.wall-elevation-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.elev-opening{fill:#ffffffd9;stroke:#3b3d42;stroke-width:1px;vector-effect:non-scaling-stroke}.elev-opening.window{fill:#cde4f1eb}.opening-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;gap:8px;padding:10px;display:grid}.opening-card.on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.opening-head{align-items:center;gap:8px;display:flex}.hint.warn{color:var(--danger)}.floor-field input[type=color]{width:60px;height:var(--ctl);border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:2px}.room-thumb .thumb-svg{background:var(--paper-2)}.wall-switcher{flex:none;align-items:center;gap:2px;display:inline-flex}.wall-switcher>.icon-btn{flex:none}.wall-switcher-name{white-space:nowrap;text-overflow:ellipsis;max-width:160px;padding:0 2px;font-weight:600;overflow:hidden}.openings-layer{pointer-events:none}.opening-fill{fill:#faf7f1e0;stroke:var(--ink);stroke-width:1.4px;vector-effect:non-scaling-stroke}.opening-overlay.window .opening-fill{fill:#d6e9f4e6}.opening-hatch-pattern line{stroke:#1d1f222e;stroke-width:1px}.opening-label{fill:var(--ink-2);font-weight:600}.mode-consult .opening-hatch{display:none}.plan-tools{z-index:2;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:12px;left:12px}.plan-tools button{height:var(--ctl-sm);background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.plan-tools button:hover:not(:disabled){background:var(--primary-soft)}.plan-tools button.on{background:var(--primary);color:#fff}.plan-tools svg,.shape-seg svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round}.plan-tools .sep{background:var(--line);align-self:stretch;width:1px;margin:4px 2px}.plan-placing-tip{z-index:2;color:var(--paper-2);pointer-events:none;white-space:nowrap;background:#1d1f22d9;border-radius:999px;padding:6px 12px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.plan-editor.placing .plan-wall-hit,.plan-editor.placing .plan-opening{cursor:copy}.plan-ghost{fill:#5a3fe059;stroke:var(--primary);stroke-width:1.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.shape-seg button{align-items:center;gap:6px;display:inline-flex}.length-row{align-items:flex-end}.length-row>.lock-btn{height:var(--ctl);width:var(--ctl);flex:none}.lock-btn{color:var(--muted)}.lock-btn.on{color:var(--primary);background:var(--primary-soft)}.room-wall-meta strong{align-items:center;gap:4px;display:inline-flex}.room-wall-meta strong svg{color:var(--primary)}.grow-seg{width:100%;height:var(--ctl-sm)}.grow-seg button{white-space:nowrap;flex:1;padding:0 6px;font-size:12px}.plan-label-lock rect,.plan-label-lock path{fill:none;stroke:var(--primary);stroke-width:1.4px}.plan-label-lock rect{fill:var(--paper)}.plan-grow{pointer-events:none}.plan-grow line{stroke:var(--accent);stroke-width:2px}.plan-grow path{fill:var(--accent)}.elev-bar{stroke:#3b3d42;stroke-width:1px;vector-effect:non-scaling-stroke}.opening-bar{stroke:#3b3d42;stroke-width:2px;vector-effect:non-scaling-stroke;opacity:.7}.group-seam line{stroke:var(--primary);stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;opacity:.7}.link-box{gap:6px;padding-top:4px;display:grid}.link-list{gap:2px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.link-strip svg{width:100%;height:90px;display:block}.link-seg{fill:var(--primary-soft);stroke:var(--primary);stroke-width:1px;vector-effect:non-scaling-stroke}.link-seg-name{fill:var(--ink);font-weight:600}.link-gap{fill:#0000000f;stroke:var(--muted);stroke-dasharray:3 3;stroke-width:1px;vector-effect:non-scaling-stroke}.link-dim{fill:var(--muted)}.plan-wall-hit.linking{fill:#5a3fe01f}.plan-wall-hit.linked{fill:var(--accent)}.plan-group-line{stroke:var(--primary);stroke-dasharray:6 4;pointer-events:none;fill:none}.room-splitter{z-index:3;cursor:col-resize;touch-action:none;outline:none;width:10px;margin-left:-5px;position:relative}.room-splitter:after{content:"";background:var(--line);border-radius:3px;width:6px;height:44px;transition:background .15s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.room-splitter:hover:after,.room-splitter.dragging:after,.room-splitter:focus-visible:after{background:var(--primary)}.room-splitter.dragging:before{content:"";width:4000px;position:absolute;top:0;bottom:0;left:-2000px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.mobile-notice,.mobile-consult{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width<=1000px),(pointer:coarse) and (width<=1366px){.home{padding:24px 16px}.new-project-fields .field.grow{flex-basis:100%;min-width:0}.projects-head,.new-project-top{flex-wrap:wrap;gap:10px}.editor{grid-template:"top""notice""stage"minmax(0,1fr)/minmax(0,1fr);height:100dvh}.editor .toolbar,.editor>.side-panel{display:none}.editor .topbar{flex-wrap:wrap;padding:6px}.editor .topbar .title strong,.editor .topbar .variant-title,.editor .topbar .title-sep,.editor .topbar>.split-btn,.editor .topbar>.save-state,.editor .topbar>.btn-group,.editor .topbar>[data-testid=toggle-shortcuts],.editor .topbar>[data-testid=open-settings]{display:none}.mobile-notice{background:var(--panel);color:var(--ink-2);grid-area:notice;margin:0;padding:6px 12px;display:block}.mobile-consult{flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:absolute;top:8px;left:8px;right:8px}.mobile-consult span{background:var(--panel);border-radius:6px;padding:6px}.mobile-consult button{min-width:40px;height:40px}.modal-body{display:block;overflow-y:auto}.export-left,.export-pages{overflow:visible}.export-pages{grid-template-columns:minmax(0,1fr)}.modal{max-height:94dvh}.canvas-hud{max-width:calc(100% - 16px)}[data-testid=mode-edit]{display:none}}.op-corner.on circle{fill:var(--accent-ink)}.welcome-actions{align-items:center;gap:20px;margin:20px 0;display:flex}.guide summary{cursor:pointer;color:var(--ink-2);font-size:13px}.guide-content{z-index:45;background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(480px,100vw - 48px);max-height:calc(100vh - 120px);position:fixed;top:90px;right:24px;overflow:auto;box-shadow:0 12px 40px #0003}.guide-content ol{padding:0 24px 0 40px;font-size:14px;line-height:1.5}.guide-content li{margin:12px 0}.guide-content>p{margin:16px 24px}.editor-guide{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;position:absolute;bottom:16px;left:76px}.editor-guide .guide-content{width:min(480px,100vw - 100px);inset:auto auto 60px 76px}.paint-help{padding:12px;line-height:1.5}.storage-notice{border:1px solid;border-radius:8px;margin-block:1.5rem;padding:1rem}.storage-notice p{margin:0 0 .75rem}.storage-notice button{margin:.25rem .5rem .25rem 0}.storage-failure{z-index:1000;background:var(--panel,white);max-height:45vh;color:var(--ink,#222);border:2px solid #a32d2d;border-radius:8px;padding:1rem;position:fixed;bottom:1rem;left:1rem;right:1rem;overflow:auto}.storage-failure button{white-space:normal;height:auto;min-height:32px;margin:.25rem}.save-state.error,.save-state.error:before{color:#a32d2d}@media (width<=1000px),(pointer:coarse) and (width<=1366px){.welcome-actions{flex-wrap:wrap;gap:12px}.editor-guide{bottom:60px;left:8px}.editor-guide .guide-content{width:calc(100vw - 16px);max-height:calc(100dvh - 180px);bottom:104px;left:8px}.mobile-consult{flex-shrink:0;order:-1;padding:6px 8px;position:static}.consult-badge{display:none}.project-head{flex-wrap:wrap;min-width:0}.project-head .project-title{flex:180px;min-width:0;max-width:100%}.project-head .spacer{display:none}.project-head .muted{overflow-wrap:anywhere}.mode-consult:has(.consult-overlay) .grid-labels{display:none}}.compare-mobile-help{display:none}@media (width<=1000px),(pointer:coarse) and (width<=1366px){.room-page{grid-template:"top""notice""stage""side"/minmax(0,1fr);height:auto;min-height:100dvh;overflow:visible}.room-page .topbar{flex-wrap:wrap;padding:6px}.room-page .topbar .title{flex:1}.room-page .topbar .project-title{width:100%;min-width:0;max-width:100%}.room-page .mobile-notice p{margin:6px 0}.mobile-room-walls{flex-wrap:wrap;gap:6px;padding-bottom:8px;display:flex}.room-page .room-stage{grid-template-columns:minmax(0,1fr)!important}.room-page .plan-editor,.room-page .room-3d{min-height:280px}.room-page .room-splitter{display:none}.room-page .plan-svg,.room-page .room-3d{pointer-events:none;touch-action:auto}.room-page .plan-tools,.room-page .plan-placing-tip,.room-page .plan-help,.room-page .room-3d-bar,.room-page .room-3d-tip,.room-page .room-3d-help,.room-page>.side-panel,.room-page .topbar>.btn-group{display:none}.editor:has(.consult-overlay) .editor-guide{display:none}.compare-grid.n2,.compare-grid.n3,.compare-grid.n4{grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.compare-desktop-help{display:none}.compare-mobile-help{display:inline}}
