@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#263b32;background:#f7f8f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #dce1d8;background:white;border-radius:8px;padding:10px 15px;color:inherit}button:hover{background:#eef1e9}header{height:88px;border-bottom:1px solid #e1e5dc;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:#fff}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;font-weight:700;font-size:20px}.brand:first-letter{color:#73846c}.muted{color:#8a948c;font-weight:400}main{max-width:1180px;margin:auto;padding:64px 32px 24px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#7e8a73}.heading{display:flex;align-items:center;justify-content:space-between;margin:18px 0 36px}h1{font-size:54px;line-height:1.08;letter-spacing:-2.5px;font-weight:500;margin:0}p{color:#808a81;font-size:14px;margin-top:18px}.primary{background:#2e4939;color:white;border-color:#2e4939}.primary:hover{background:#203829}.searchbox{display:flex;align-items:center;padding:18px 22px;border:1px solid #dce2d6;background:white;border-radius:12px;gap:16px;box-shadow:0 4px 20px #25332604}.searchbox>span{font-size:29px;color:#778270}.searchbox input{border:none;outline:none;width:100%;font-size:17px;background:transparent}.searchbox:focus-within{outline:2px solid #9cae8d}kbd{background:#f5f6f1;border:1px solid #e2e6dc;border-radius:4px;padding:3px 8px;color:#969d92}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:27px 0 20px;gap:14px}#filters{display:flex;gap:7px;flex-wrap:wrap}#filters button{font-size:12px;padding:8px 12px;background:transparent;border-color:transparent}#filters button.active{background:#e6ecdF;color:#334d38;border-color:#d7e0cd}#count{font-size:12px;color:#8a9389;white-space:nowrap}#results{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:white;border:1px solid #e1e5dc;border-radius:12px;padding:23px;position:relative}.ref{font-size:11px;letter-spacing:1.2px;color:#738166;font-weight:700}.card h2{font-size:20px;font-weight:500;margin:9px 0 24px;letter-spacing:-.5px}.location{background:#f5f7f0;border-radius:8px;padding:16px}.location strong{font-size:14px;font-weight:600}.coords{display:flex;justify-content:space-between;margin-top:17px}.coords span{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#88917f}.coords b{font-size:17px;color:#40513b;font-weight:500}.cardbottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:12px;color:#7e8978}.cardbottom button{border:none;padding:5px 7px;font-size:12px}.empty{grid-column:1/-1;padding:60px;text-align:center;border:1px dashed #d8dfcf;border-radius:12px;color:#7e8978}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e1e5dc;margin-top:36px;padding-top:21px;color:#97a08f;font-size:11px}footer button{font-size:11px;border:none;background:none}dialog{border:1px solid #dce1d8;border-radius:16px;padding:28px;width:530px;max-width:calc(100% - 24px);color:inherit}dialog::backdrop{background:#1e302566;backdrop-filter:blur(3px)}.dialoghead{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialoghead h2{margin:0;font-weight:500;font-size:24px}.dialoghead button{border:none;font-size:24px;padding:0 7px}label{display:block;font-size:12px;margin:16px 0}label input,label select{display:block;width:100%;padding:11px;border:1px solid #dce1d8;border-radius:7px;margin-top:7px;background:white;color:inherit}.fields{display:flex;gap:10px}.fields label{flex:1;min-width:0}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.hint{font-size:12px;line-height:1.5}.placerow{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e9ece4}.placerow button{font-size:11px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#2e4939;color:white;border-radius:9px;padding:12px 20px;display:none;font-size:13px}@media(max-width:760px){header{padding:0 20px;height:72px}.brand{font-size:15px}header button{font-size:11px;padding:8px}main{padding:38px 20px}h1{font-size:42px}.heading{align-items:flex-start;gap:20px;flex-direction:column}#results{grid-template-columns:1fr}.toolbar{align-items:flex-start}footer{align-items:flex-start;gap:10px}.fields{gap:6px}}
.plan-panel{background:white;border:1px solid #e1e5dc;border-radius:14px;margin-bottom:28px;padding:24px}.plan-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.plan-heading h2{font-size:24px;font-weight:500;margin:8px 0}.plan-heading p{margin:8px 0}.plan-badge{font-size:11px;background:#e8eedf;padding:4px 7px;border-radius:5px;vertical-align:middle}.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:center}#plan-canvas svg{width:100%;display:block;min-height:300px}#plan-canvas g[role=button]{cursor:pointer;outline:none}#plan-canvas g[role=button]:hover polygon,#plan-canvas g[role=button]:focus polygon{stroke:#355b35;stroke-width:2.5}#plan-detail{border-left:1px solid #e3e8de;padding:20px}#plan-detail h3{font-size:24px;font-weight:500;margin:12px 0}#plan-detail p{line-height:1.7}.plan-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.plan-controls button{padding:7px 10px;font-size:12px}.plan-controls span{font-size:10px;color:#8a9485;margin-left:8px}.plan-stat{font-size:28px;line-height:1.5}.plan-stat small{display:block;font-size:11px;color:#85907c}.plan-items{margin:20px 0}.plan-items button{width:100%;text-align:left;margin-bottom:7px}.plan-items span{display:block;font-size:12px;color:#85907c;margin-top:5px}#plan-detail>.primary{font-size:12px;width:100%}@media(max-width:760px){.plan-panel{padding:16px}.plan-heading{align-items:flex-start}.plan-heading h2{font-size:20px}.plan-heading button{font-size:11px}.plan-layout{grid-template-columns:1fr}#plan-detail{border-left:0;border-top:1px solid #e3e8de;padding:16px 0}.plan-stat{display:none}#plan-canvas svg{min-height:0}}
#plan-canvas text{pointer-events:none}#plan-canvas polygon[role=button]{cursor:pointer;outline:none}#plan-canvas polygon[role=button]:hover,#plan-canvas polygon[role=button]:focus{stroke:#355b35;stroke-width:2.5}
#plan-floors{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 0}#plan-floors button{font-size:12px;background:#f7f8f4}#plan-floors button.active{background:#2e4939;color:white;border-color:#2e4939}
.plan-heading-actions{display:flex;gap:8px;flex-wrap:wrap}#layout-editor{width:1200px;max-width:96vw;max-height:95vh;overflow:auto}.editor-grid{display:grid;grid-template-columns:150px minmax(0,1fr) 230px;gap:20px}.editor-top{display:flex;gap:16px;align-items:center}.editor-top label{max-width:180px}.editor-top input{width:100%}#palette button{display:flex;align-items:center;gap:8px;width:100%;margin-top:8px;font-size:12px;text-align:left}#palette span{width:13px;height:13px;border-radius:3px;flex-shrink:0}#editor-canvas{background:#f8f9f4;border-radius:10px;touch-action:none}#editor-canvas svg{width:100%;max-height:60vh;display:block}#editor-canvas [data-object]{cursor:grab}#editor-canvas text{pointer-events:none}.editor-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e1e5dc;padding-top:18px;margin-top:18px;gap:12px}.editor-bottom span{font-size:12px;color:#829078}#editor-properties button{margin:5px 0;font-size:12px;width:100%}#plan-canvas [data-layout-cell]{cursor:pointer}#plan-canvas [data-layout-cell]:hover{stroke:#294b32;stroke-width:2}@media(max-width:800px){.editor-grid{grid-template-columns:1fr}.editor-top{flex-wrap:wrap}#palette{display:flex;flex-wrap:wrap;gap:6px}#palette button{width:auto}.editor-bottom{align-items:flex-start;flex-direction:column}.plan-heading{flex-direction:column}.plan-heading-actions{width:100%}}
.shape-handles [data-handle]{fill:#fff;stroke:#294b32;stroke-width:2;vector-effect:non-scaling-stroke}.shape-handles [data-handle=corner]{cursor:crosshair}.shape-handles [data-handle=edge]{cursor:ew-resize}.shape-handles [data-handle]:hover,.shape-handles [data-handle]:focus{fill:#ddbc73;stroke-width:3;outline:none}
.selection-marquee{fill:#607f6130;stroke:#355b35;stroke-width:1.5;stroke-dasharray:5 3;pointer-events:none}.editor-top{flex-wrap:wrap}.editor-top>button{font-size:12px}.editor-top label{margin:6px 0}#editor-canvas:focus{outline:2px solid #a4b796}
.rack-column-divider{stroke:#526e49;stroke-width:1.3;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.rack-access-arrow{stroke:#355b35;stroke-width:1.3;vector-effect:non-scaling-stroke}.rack-access-edge{stroke:#355b35;stroke-width:2.5;vector-effect:non-scaling-stroke}.rack-column-number{font-size:9px;fill:#355b35;font-weight:600}#editor-canvas .object-label{paint-order:stroke;stroke:#f7f8f4;stroke-width:2px;stroke-linejoin:round;transform:none}.rack-3d-arrow{stroke:#355b35;stroke-width:2;fill:none;pointer-events:none}#plan-canvas .rack-front-face{stroke:#6e8862;stroke-width:2}
.room-walls [data-room-wall]{stroke:transparent;stroke-width:12;cursor:copy;pointer-events:stroke;vector-effect:non-scaling-stroke}.room-walls [data-room-wall]:hover{stroke:#6c8a6444}.room-walls text{pointer-events:none}
.canvas-rotate{cursor:pointer}.canvas-rotate rect{fill:white;stroke:#355b35;stroke-width:1.5;vector-effect:non-scaling-stroke}.canvas-rotate text{fill:#355b35;pointer-events:none}.canvas-rotate:hover rect,.canvas-rotate:focus rect{fill:#e5eddc;stroke-width:2.5}.canvas-rotate:focus{outline:none}#editor-properties hr{border:0;border-top:1px solid #e0e5d9;margin:18px 0}
.header-actions{display:flex;gap:8px;align-items:center}.backup-actions{padding:14px;background:#f5f7f0;border-radius:8px;margin-bottom:20px}.backup-actions p{margin-top:0}.backup-actions>div{display:flex;gap:8px;flex-wrap:wrap}.backup-actions button{font-size:12px}@media(max-width:760px){header{height:auto;min-height:72px;flex-wrap:wrap;gap:12px;padding-top:14px;padding-bottom:14px}.header-actions{flex-wrap:wrap}}
.address-label{font-size:12px;line-height:1.7;color:#38523b;margin:0 0 12px}.address-preview{padding:12px;background:#edf2e6;border-radius:7px;font-size:12px;line-height:1.6;color:#38523b}.coords b{font-size:13px}
.guided-banner{padding:12px 15px;background:#eaf0df;border-radius:8px;color:#36513b;font-size:13px;line-height:1.6}#guided-dialog{width:1100px;max-width:96vw;max-height:95vh;overflow:auto}.guided-progress{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#8b9684;border-bottom:1px solid #e1e5dc;padding:0 0 18px;margin-bottom:18px}.guided-progress strong{color:#35533b}.guided-progress span:last-child{margin-left:auto}.guided-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);gap:28px}.guided-options{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.guided-options>label{margin:0 0 14px}.guided-options .check{display:flex;align-items:center;gap:7px;line-height:1.5}.check input{width:auto;margin:0}.shelf-face{display:grid;gap:5px;background:#c5d0b9;padding:8px;border-radius:9px;min-width:min-content}#guided-map{overflow:auto;background:#f7f9f2;border:1px solid #e3e9dc;border-radius:9px;padding:12px}.shelf-face button{padding:12px 6px;border:2px solid transparent;min-height:82px;background:#fff}.shelf-face button span,.shelf-face button small{display:block;font-size:11px;color:#7d8975;margin-top:5px}.shelf-face button.occupied{background:#dce9d0}.shelf-face button.current{background:#f4d88e;border-color:#355b35;box-shadow:0 0 0 2px #fff}.shelf-face button.current strong{color:#355b35}#guided-map svg{display:block;width:100%;max-height:450px}#guided-map svg [role=button]{cursor:pointer;outline:none}#guided-map svg [role=button]:focus polygon{stroke:#355b35;stroke-width:.07}#guided-map text{pointer-events:none}.guided-navigation{display:flex;justify-content:space-between;gap:8px;margin-top:14px}.guided-navigation button{font-size:12px}.guided-existing{border:1px solid #e1e5dc;border-radius:8px;padding:12px;font-size:12px}.guided-existing>button{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;margin-top:8px;font-size:12px}.guided-existing small{color:#7d8975}#guided-form h3{font-weight:500;font-size:18px}#guided-form label{margin:12px 0}.guided-submit{display:flex;flex-direction:column;gap:8px}.guided-submit button{font-size:13px}#guided-clear{border:0;background:transparent;font-size:12px;margin-top:8px}#guided-error{color:#a53e2e;line-height:1.5;font-size:13px}.guided-complete{padding:30px;text-align:center}.guided-complete button{margin:10px}.plan-detail>button{margin-top:8px}@media(max-width:760px){.guided-grid{grid-template-columns:1fr;gap:18px}.guided-progress{gap:10px}.guided-progress span:last-child{width:100%;margin-left:0}.guided-options{gap:6px}.guided-navigation button{padding:9px;font-size:11px}}

.ocr-panel{padding:12px;margin:12px 0;border:1px solid #dbe1d5;border-radius:10px;background:#f8f9f4}.ocr-panel button{font-size:14px}.ocr-actions,.ocr-results{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.ocr-file{flex:1;min-width:140px;font-size:13px}.ocr-file input{width:100%;font-size:12px}.ocr-preview{display:block;max-width:100%;max-height:240px;object-fit:contain;margin:20px auto}.ocr-preview[hidden]{display:none}.ocr-status{font-size:13px;line-height:1.5}.ocr-results details{width:100%;font-size:13px}.ocr-results pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto}.ocr-content[hidden]{display:none}
.ocr-frame{position:relative;margin:12px auto;overflow:hidden;max-width:100%;border-radius:6px}.ocr-frame[hidden]{display:none}.ocr-frame canvas.ocr-preview{display:block;width:100%;max-height:none;height:auto;margin:0;touch-action:none;cursor:crosshair}.ocr-crop{position:absolute;pointer-events:none;border:3px solid #e4bc60;background:#e4bc6018;box-shadow:0 0 0 2000px #0005}.ocr-crop[hidden]{display:none}.ocr-results .ocr-choice{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid #dbe1d5;padding-top:10px}.ocr-choice strong{width:100%}.ocr-choice button[aria-pressed=true]{background:#355b35;color:white}.product-color{font-size:14px;margin:0 0 12px;color:#355b35}

.form-error{color:#a43b2b;font-size:14px;line-height:1.5}.form-error:empty{display:none}

.label-saved{margin:12px 0;padding:10px;border:1px solid #dbe1d5;border-radius:8px}.label-saved[hidden]{display:none}.label-saved strong{font-size:13px}.label-saved img,.label-photo img{display:block;width:auto;max-width:100%;max-height:300px;object-fit:contain;margin:10px auto}.label-saved button{font-size:12px}.label-photo{margin:12px 0;font-size:14px}.label-photo summary{cursor:pointer;color:#355b35}
.advanced-settings{font-size:12px;color:#7d8975;margin-top:18px;border-top:1px solid #e2e7dc;padding-top:12px}.advanced-settings summary{cursor:pointer;list-style-position:inside;padding:6px 0}.advanced-settings[open] summary{margin-bottom:12px}.advanced-settings button{font-size:12px;margin:5px 3px 5px 0}.advanced-settings .ocr-actions{display:flex;flex-wrap:wrap}.plan-advanced{border:0;padding:0;margin:0;position:relative}.plan-advanced[open]{background:#f7f9f3;padding:8px;border-radius:8px}.guided-saved{background:#e6efdc;border:1px solid #cedfc0;border-radius:9px;padding:12px 16px;margin-bottom:18px;color:#355339;font-size:14px}.guided-saved span{display:block;font-size:12px;line-height:1.5;margin-top:5px}.guided-instruction{margin:0 0 10px;font-size:13px;color:#38523b}.guided-start{padding:28px 12px;text-align:center;line-height:1.7}.simple-entry .ocr-panel{border:0;padding:0;background:none;margin:12px 0}.simple-entry .ocr-open{width:100%;min-height:70px;font-size:18px}.simple-entry .label-saved{border:0;background:#f7f9f3;margin:0;padding:8px;border-radius:9px}.simple-entry .label-saved img{max-height:220px;margin:0 auto}.simple-entry #guided-validate{width:100%;font-size:17px;padding:14px}.simple-entry .ocr-status{font-size:12px;color:#63745b}.simple-entry .ocr-results{background:#f8f9f4;padding:8px;border-radius:8px}.simple-entry .ocr-choice button{padding:7px 9px}.simple-entry .ocr-frame{width:100%;margin:8px auto}.simple-entry .guided-readout{display:grid;grid-template-columns:1fr 1fr;gap:12px}.simple-entry .guided-readout input{font-size:18px;font-weight:600}.simple-entry .guided-readout label{font-size:12px}.simple-entry[hidden],.guided-readout[hidden],.guided-start[hidden],#guided-validate[hidden],.simple-entry .ocr-open[hidden]{display:none!important}.shelf-face button small{overflow-wrap:anywhere;font-weight:600;color:#355b35}.simple-entry .guided-options{margin-top:18px}#guided-form .guided-existing{margin:14px 0}.simple-entry .ocr-crop-hint{font-size:12px;color:#355b35}.guided-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr)}@media(max-width:760px){#guided-dialog{padding:18px;max-height:97vh}.guided-grid{grid-template-columns:1fr;gap:12px}.shelf-face button{min-height:64px;padding:8px 4px}.simple-entry .guided-readout{gap:8px}#guided-map{padding:6px}.simple-entry .address-preview{margin-top:0}.guided-saved{padding:10px;font-size:13px}.simple-entry .ocr-open{min-height:62px}}
.header-advanced{margin:0;border:0;padding:0;position:relative}.header-advanced[open]{z-index:5;background:white;padding:8px;box-shadow:0 4px 20px #263b3214;border-radius:9px}.header-advanced button{display:block;width:100%;text-align:left}.plan-advanced .plan-controls{margin-top:10px}footer .advanced-settings{margin:0;border:0;padding:0}

.ocr-photo-stage{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:10px;align-items:center;margin:8px 0}.ocr-photo-stage[hidden]{display:none!important}.simple-entry .ocr-photo-stage .ocr-frame{margin:0 auto}.ocr-orientations{display:flex;flex-direction:column;gap:8px}.ocr-orientation{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px!important;width:100%;min-height:64px;background:#f7f9f3;border:1px solid #cbd7c2;border-radius:8px;cursor:pointer}.ocr-orientation canvas{display:block;width:auto;height:auto;max-width:58px;max-height:74px;object-fit:contain}.ocr-orientation span{font-size:11px;color:#45603e}.ocr-orientation:hover,.ocr-orientation:focus-visible{background:#e9efde;outline:2px solid #355b35;outline-offset:1px}.ocr-orientation:disabled{opacity:.45;cursor:wait}@media(max-width:480px){.ocr-photo-stage{grid-template-columns:minmax(0,1fr) 62px;gap:8px}.ocr-orientation{padding:4px!important;min-height:58px}.ocr-orientation canvas{max-width:50px;max-height:62px}.ocr-orientations{gap:6px}}

.ocr-photo-stage.orientation-skipped{grid-template-columns:minmax(0,1fr)}.ocr-orientations[hidden],.ocr-fixed-angle-label[hidden]{display:none!important}.ocr-simple-settings{border:1px solid #dce4d4;border-radius:8px;padding:12px;margin:0 0 16px;color:#38523b}.ocr-simple-settings legend{font-size:13px;padding:0 6px}.ocr-simple-settings .check{display:flex;align-items:center;gap:8px;line-height:1.5}.ocr-simple-settings .check input{width:auto;margin:0}.ocr-simple-settings p{font-size:12px;line-height:1.6}.ocr-simple-settings .ocr-preference-status:empty{display:none}

.guided-save-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:10px}.guided-save-actions[hidden]{display:none!important}.simple-entry .guided-add-here{border:0;background:transparent;color:#4b6445;font-size:12px;line-height:1.5;padding:12px 4px;text-decoration:underline;text-underline-offset:3px}.simple-entry .guided-add-here:hover,.simple-entry .guided-add-here:focus-visible{background:#f0f4e9;border-radius:7px;color:#294a2e}.simple-entry .guided-add-here:disabled{opacity:.5;cursor:wait}

#stair-config{width:1050px;max-width:96vw;max-height:94vh;overflow:auto}.stair-config-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stair-config-fields label{font-size:13px}.stair-config-fields input{font-size:18px}.stair-drawing{overflow:auto;background:#fafbf7;border:1px solid #e1e8d9;border-radius:10px;padding:12px}.stair-drawing svg{display:block;width:100%;min-width:350px;max-height:620px}.stair-case{stroke:#8b9f7b;stroke-width:1.2}.stair-case.removed{stroke:#aab3a2;stroke-dasharray:5 4;fill-opacity:.65}.stair-case.current{stroke:#355b35;stroke-width:3}.stair-outline{fill:none;stroke:#385a37;stroke-width:3;pointer-events:none}.stair-axis{font-size:13px;fill:#5b7250}.stair-cell-name{font-size:12px;fill:#34502f;pointer-events:none}.stair-cell-ref{font-size:10px;font-weight:600;fill:#355b35;pointer-events:none}.stair-drawing [role=button],#guided-map svg [data-entry-cell]{cursor:pointer}.stair-drawing [role=button]:hover polygon,.stair-drawing [role=button]:focus polygon{stroke:#355b35;stroke-width:3}.stair-preview-instruction{font-size:14px;color:#38523b;line-height:1.6}.stair-preview-tools{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13px;color:#4f6944}.stair-preview-tools button{font-size:12px}.stair-empty{text-align:center;padding:60px 25px;background:#f6f8ef;border-radius:12px}.stair-empty>span{font-size:55px;color:#7f9e65}.stair-empty p{line-height:1.7}.stair-empty button{margin-top:18px}.plan-controls[hidden],#layout-edit[hidden],#stair-preview-section[hidden]{display:none!important}#guided-map svg[data-stair-view]{max-height:600px}@media(max-width:600px){#stair-config{padding:18px}.stair-config-fields{gap:8px}.stair-config-fields label{font-size:11px}.stair-config-fields input{padding:10px}.stair-preview-tools{flex-direction:column;align-items:flex-start}.stair-drawing{padding:4px}}

.stair-drawing{max-height:650px}.stair-drawing svg{height:auto;max-height:none}#guided-map svg[data-stair-view]{height:auto;max-height:none}#guided-map:has(svg[data-stair-view]){max-height:600px}

@media(min-width:800px){#stair-config[open]{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px 24px}#stair-config>.dialoghead,#stair-config>.actions,#stair-config-error{grid-column:1/-1}#stair-config-form{grid-column:1;grid-row:2}.stair-config-fields{grid-template-columns:1fr;gap:0}#stair-preview-section{grid-column:2;grid-row:2}#stair-config:has(#stair-preview-section[hidden]){grid-template-columns:1fr}#stair-config:has(#stair-preview-section[hidden]) .stair-config-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}#stair-preview svg{height:min(52vh,500px);width:100%;max-height:500px}#stair-config>.actions{position:sticky;bottom:-28px;background:white;padding:16px 0 8px;margin:0;border-top:1px solid #e4e9dc}#stair-config-error:empty{display:none}

#stair-preview{padding:30px}#stair-preview svg{overflow:visible}#stair-preview [data-stair-handle]{cursor:grab;outline:none}#stair-preview [data-stair-handle]:active{cursor:grabbing}#stair-preview [data-stair-handle]:hover .stair-handle-knob,#stair-preview [data-stair-handle]:focus .stair-handle-knob{fill:#ffdf76;stroke:#111;stroke-width:5}#stair-preview [data-stair-handle] .stair-handle-halo{filter:drop-shadow(0 2px 3px #0008);pointer-events:none}

/* Une seule zone de défilement dans l’éditeur ; le fond ne défile pas. */
body:has(#stair-config[open]){overflow:hidden}
#stair-config{overscroll-behavior:contain}
#stair-preview{overflow:visible;min-width:0;touch-action:pan-y}
#stair-preview svg{min-width:0!important;max-height:none;height:auto;aspect-ratio:auto;width:100%}
#stair-preview [data-stair-handle],#stair-preview [data-stair-handle] *{touch-action:none;user-select:none;-webkit-user-select:none}
#stair-config.stair-dragging{overflow:hidden;touch-action:none}
@media(max-width:600px){#stair-config{width:calc(100vw - 16px);max-width:calc(100vw - 16px);padding:16px;max-height:calc(100dvh - 24px)}#stair-preview{padding:30px 24px}.stair-config-fields{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.stair-config-fields input{width:100%;min-width:0}.stair-preview-tools{flex-wrap:wrap}}

/* L’éditeur tient dans la fenêtre ; seules les bulles d’aide peuvent défiler. */
#stair-config[open]{display:flex;flex-direction:column;gap:12px;width:min(1050px,calc(100vw - 16px));height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:18px;overflow:hidden;overscroll-behavior:none}
#stair-config .dialoghead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;flex:none}
#stair-config .dialoghead h2{font-size:20px;line-height:1.2;margin:0;min-width:0;font-weight:600}
.stair-head-actions{display:flex;gap:4px;flex:none}.stair-head-actions button{width:36px;height:36px;padding:0;border-radius:50%;font-size:20px}
#stair-config-form{flex:none;margin:0}#stair-config .stair-config-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:end}
#stair-config .stair-config-fields label{font-size:12px;gap:3px;margin:0}#stair-config .stair-config-fields input{font-size:16px;padding:7px 8px;height:36px;min-width:0;width:100%;margin:0}#stair-generate{height:36px;padding:6px 10px;font-size:12px}
#stair-preview-section:not([hidden]){display:flex;flex:1;flex-direction:column;gap:6px;min-height:0}
#stair-preview{flex:1;min-height:0;min-width:0;padding:30px;overflow:visible;display:flex;touch-action:none}
#stair-preview svg{width:100%;height:100%;max-height:none;min-width:0!important;flex:1;min-height:0}
#stair-preview-count{margin:0;text-align:center;font-size:12px;flex:none}
#stair-config-error{margin:0;font-size:12px;flex:none}#stair-config-error:empty{display:none}
#stair-config .actions{display:flex;gap:8px;justify-content:flex-end;margin:0;padding:0;position:static;flex:none;background:none}#stair-config .actions button{padding:10px 16px;font-size:14px}
.stair-bubble{width:min(380px,calc(100vw - 40px));max-height:70dvh;overflow:auto;border:1px solid #dce2d6;border-radius:16px;padding:18px;box-shadow:0 12px 60px #16302240;color:#263b32;background:#fff}.stair-bubble::backdrop{background:#152c2533}.stair-bubble p{font-size:14px;line-height:1.55;color:#526056;margin:14px 0 0}.stair-bubble-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.stair-bubble-head button{padding:0;width:32px;height:32px;font-size:22px}.stair-bubble #stair-restore{margin-top:14px;font-size:14px}
@media(max-width:600px){#stair-config[open]{gap:8px;padding:12px}#stair-config .dialoghead h2{font-size:16px}#stair-config .stair-config-fields{gap:6px}#stair-preview{padding:28px 24px}.stair-head-actions button{width:32px;height:32px}#stair-config .actions button{flex:1}}

#stair-cell-info{flex:none;text-align:center;font-size:15px;font-weight:600;color:#263b32;margin:0;line-height:1.3}#stair-preview-count{font-size:14px;color:#526056}#stair-preview .stair-axis{fill:#263b32}#stair-preview .stair-case{stroke-opacity:.8}

/* Saisie guidée : le formulaire reste prioritaire, même pour une grande étagère. */
body:has(#guided-dialog[open]){overflow:hidden}
#guided-dialog{box-sizing:border-box;width:min(1000px,calc(100vw - 16px));max-width:calc(100vw - 16px);max-height:calc(100dvh - 24px);padding:18px;overflow-x:hidden;overscroll-behavior:contain}
#guided-dialog .dialoghead{position:sticky;top:-18px;background:white;z-index:3;padding:10px 0;margin:0 0 8px;display:flex;gap:12px;justify-content:space-between;align-items:center}
#guided-dialog .dialoghead h2{font-size:19px;line-height:1.3;margin:3px 0 0;overflow-wrap:anywhere}#guided-close{flex:none;width:40px;height:40px;padding:0;font-size:24px}
#guided-body,#guided-dialog .guided-grid,#guided-dialog section,#guided-form{min-width:0;max-width:100%}
.guided-location details{border:1px solid #dce2d6;border-radius:10px;background:#f7f9f2;padding:10px}.guided-location summary{cursor:pointer;font-size:15px;font-weight:600;color:#2e4939;line-height:1.4}.guided-location .guided-instruction{margin-top:12px}
#guided-dialog #guided-map{min-width:0;max-width:100%;max-height:280px;overflow:auto;overscroll-behavior:contain}#guided-map svg[data-stair-view]{min-width:0!important;width:100%;height:auto;max-height:260px}#guided-map .shelf-face{min-width:0;grid-template-columns:repeat(auto-fit,minmax(40px,1fr))}
#guided-dialog .address-preview{font-size:14px;line-height:1.4;margin:0 0 10px;padding:10px;overflow-wrap:anywhere}
#guided-dialog .guided-grid{align-items:start}.guided-entry .simple-entry .guided-readout{grid-template-columns:1fr 1fr;gap:10px}.guided-entry .simple-entry .guided-readout input{width:100%;min-width:0;font-size:20px;min-height:48px}.guided-entry .simple-entry .guided-readout label{font-size:14px}
#guided-dialog .guided-save-actions{grid-template-columns:1fr;gap:2px;background:white;padding:8px 0;margin-top:8px}#guided-dialog #guided-validate{font-size:16px;min-height:48px;padding:12px}#guided-dialog .guided-add-here{font-size:14px;min-height:44px;text-decoration:none;border:1px solid #dce2d6;padding:8px}
#guided-dialog .label-saved img{max-height:140px}#guided-dialog .guided-saved{margin-bottom:10px;padding:10px}#guided-dialog .guided-saved span{overflow-wrap:anywhere}
@media(max-width:760px){#guided-dialog{padding:12px;max-height:calc(100dvh - 16px)}#guided-dialog .guided-grid{display:flex;flex-direction:column;gap:12px}#guided-dialog .guided-grid>section{width:100%}#guided-dialog .dialoghead{top:-12px}#guided-dialog .dialoghead .eyebrow{display:none}#guided-dialog .dialoghead h2{font-size:17px}#guided-dialog .guided-entry .ocr-open{min-height:48px;font-size:16px;margin:0}#guided-dialog .guided-save-actions{position:sticky;bottom:-12px;z-index:2;box-shadow:0 -5px 10px #fff}#guided-dialog .advanced-settings{margin-top:10px}#guided-dialog .guided-readout input{font-size:18px}}

#plan-floor-select{display:none}
.plan-layout>div,#plan-canvas,#plan-detail{min-width:0;max-width:100%}
#plan-canvas .stair-drawing{min-width:0;max-width:100%;overflow:hidden}
#plan-canvas .stair-drawing svg{min-width:0!important;width:100%;height:auto;min-height:0;max-height:420px}
.stair-plan-info summary{cursor:pointer;color:#526056;font-size:13px}.stair-plan-info p{font-size:13px}.stair-plan-instruction{font-size:13px}
@media(max-width:760px){
header{height:56px;padding:0 14px}.brand{font-size:16px}main{padding:18px 12px 16px;max-width:100%}main>.eyebrow{display:none}main>.heading{margin:0 0 16px}main>.heading h1{font-size:26px;letter-spacing:-.7px}main>.heading h1 br{display:none}main>.heading p{display:none}
.plan-panel{padding:12px;margin-bottom:16px}.plan-heading{gap:8px}.plan-heading .eyebrow,#plan-subtitle{display:none}.plan-heading h2{font-size:18px;margin:0;line-height:1.3}.plan-heading-actions{align-items:center;gap:8px}.plan-heading-actions button{padding:8px 12px;font-size:13px}.plan-heading-actions .advanced-settings summary{font-size:12px}
#plan-floors{margin:10px 0;display:block}#plan-floors>button{display:none}#plan-floor-select{display:block;width:100%;padding:8px 10px;min-height:40px;font-size:15px;background:#f7f9f2;border:1px solid #dce2d6;border-radius:8px}
.plan-layout{gap:8px}#plan-canvas .stair-drawing{padding:4px;max-height:none}#plan-canvas .stair-drawing svg{height:min(34dvh,280px);max-height:280px;object-fit:contain}#plan-detail{padding:10px 0 0}#plan-detail>.eyebrow{display:none}#plan-detail h3{font-size:17px;margin:0 0 6px}#plan-detail p{margin:8px 0;line-height:1.4}#plan-detail>button{padding:8px 12px;font-size:13px}#guided-banner{padding:8px 10px;font-size:12px;line-height:1.4;margin:8px 0}.searchbox{padding:10px 12px;gap:10px}.searchbox input{font-size:16px}.searchbox>span{font-size:24px}
}

/* La case et ses modèles sont le repère unique pendant la saisie. */
#guided-dialog .guided-grid{display:block}#guided-dialog .guided-case-box{border:2px solid #526f4b;border-radius:12px;padding:12px;margin:0 0 12px;background:#f8faf4}.guided-case-label{font-size:12px;color:#526056;margin:0 0 8px}.guided-case-models{display:flex;flex-wrap:wrap;gap:7px}.guided-case-models button{display:flex;flex-direction:column;gap:3px;text-align:left;min-height:44px;padding:8px 12px;background:white;border:1px solid #bdccb4}.guided-case-models button strong{font-size:17px}.guided-case-models button span{font-size:13px;color:#526056}.guided-case-empty{font-size:14px;color:#75816e}
#guided-dialog #guided-add-here{border:1px solid #526f4b;background:#f5f8ef;color:#2e4939;text-decoration:none;font-size:14px;min-height:46px}
#guided-dialog #guided-save-actions{gap:8px}#guided-dialog #guided-validate{font-size:14px;min-height:46px}
#guided-advanced .guided-saved{margin:12px 0}#guided-advanced .guided-location{margin:12px 0}#guided-advanced .guided-existing{display:none}
#guided-dialog .guided-entry .simple-entry .ocr-open{min-height:42px;font-size:15px}#guided-dialog .guided-readout label{margin:8px 0}#guided-dialog .dialoghead{margin-bottom:4px}
