.fence-route-row{display:grid;grid-template-columns:20px 1.35fr 1fr 28px;gap:9px;align-items:end;padding:14px 0;border-bottom:1px solid #e7ebee}.fence-route-row>strong{align-self:center;color:var(--primary);font-size:12px}.fence-route-row label{font-size:12px;font-weight:650;min-width:0}.fence-route-row label span{display:block;font-size:10px;font-weight:400;color:#71808a;margin:4px 0}.fence-route-row input{min-width:0;width:100%;padding:9px!important;min-height:40px!important;font-size:14px}.fence-route-row>button{height:40px;padding:0;border:1px solid #dce3e8;border-radius:7px;background:transparent;color:#7a858d;font-size:20px;cursor:pointer}.fence-route-row button:disabled{opacity:.3;cursor:default}.fence-route-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.fence-route-actions button,.fence-route-modes button{border:1px solid #dce3e8;border-radius:7px;background:#fff;color:#596874;padding:10px 12px;font-size:12px;cursor:pointer}.fence-route-actions button:disabled{opacity:.4;cursor:default}.fence-route-actions #fenceRouteDraw,.fence-route-actions #fenceTraceFinish,.fence-route-actions #fenceRouteApply{background:var(--primary);border-color:var(--primary);color:#fff}.fence-route-modes{display:flex;gap:4px;padding:3px;border-radius:9px;background:#eef1f3}.fence-route-modes button{padding:8px 17px;border:0;background:transparent}.fence-route-modes button[aria-pressed=true]{background:var(--primary);color:#fff}.fence-route-help{font-size:12px;line-height:1.6;padding:0 20px 14px;color:#71808a;text-align:center}#fencePlan{display:block;width:100%;height:360px;color:#697985;touch-action:none}#fencePlan[hidden],#fenceCanvas[hidden],#fenceRouteHelp[hidden],#fenceRouteRows[hidden],#fenceTraceActions[hidden],#fenceRouteDraw[hidden],#fenceRouteAdd[hidden]{display:none!important}.fence-route-line{stroke:var(--primary);stroke-width:4;fill:none;stroke-linejoin:round}.fence-route-node{fill:#fff;stroke:var(--primary);stroke-width:2.5;cursor:grab}.fence-route-node:active{cursor:grabbing}.fence-route-post{fill:#596874}.fence-route-label,.fence-route-empty{font:12px Inter,system-ui,sans-serif;fill:#71808a}#fencePlan [data-route-edge]{cursor:pointer}#fencePlan [data-route-edge] rect{fill:#fff;stroke:#e4e9ed}#fencePlan [data-route-edge] text{font:600 12px Inter,system-ui,sans-serif;fill:#47545f}#fencePlan [data-route-edge]:hover rect,#fencePlan [data-route-edge]:focus rect{stroke:var(--primary);fill:#fff4f3}.fence-trace-ortho{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:14px}.fence-trace-ortho input{width:16px;min-height:0;accent-color:var(--primary)}.fence-route-recap{padding:15px;background:#f6f8fa;border:1px solid #e3e9ed;border-radius:10px;margin-bottom:18px;font-size:13px}.fence-route-recap strong{color:var(--primary)}.fence-route-recap p{margin:8px 0;font-size:12px}.fence-route-recap small{display:block;color:#71808a;font-size:11px;line-height:1.6}.fence-route-overlay{position:fixed;inset:0;z-index:11000;background:#17212c66;backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px}.fence-route-overlay[hidden]{display:none}.fence-route-overlay section{width:min(440px,100%);position:relative;border-radius:15px;padding:28px;background:#fff;box-shadow:0 15px 60px #15242a33}.fence-route-overlay h3{color:var(--primary);margin:0 0 22px;font-size:17px}.fence-route-overlay label{display:block;font-size:13px;font-weight:600;margin:16px 0}.fence-route-overlay input{display:block;margin-top:8px;width:100%;padding:12px;font-size:18px;border:1px solid #dce3e8;border-radius:7px}.fence-route-close{position:absolute;top:10px;right:15px;border:0;background:transparent;color:#71808a;font-size:24px;cursor:pointer}#fenceRouteDialogError,#fenceRouteMessage{color:#ae302c}.fence-route-overlay .fence-route-actions{justify-content:flex-end}
body.dark-mode .fence-route-row{border-color:#394651}body.dark-mode .fence-route-actions button,body.dark-mode .fence-route-row>button,body.dark-mode .fence-route-overlay section{background:#25303a;color:#dae2e7;border-color:#46535e}body.dark-mode .fence-route-modes,body.dark-mode .fence-route-recap{background:#28343f;border-color:#394651}body.dark-mode .fence-route-modes button{color:#dae2e7}body.dark-mode .fence-route-node{fill:#202730}body.dark-mode #fencePlan [data-route-edge] rect{fill:#28343f;stroke:#46535e}body.dark-mode #fencePlan [data-route-edge] text{fill:#dae2e7}body.dark-mode .fence-route-label,body.dark-mode .fence-route-empty,body.dark-mode .fence-route-help,body.dark-mode .fence-route-recap small{fill:#b7c3cc;color:#b7c3cc}
@media(max-width:540px){.fence-route-row{gap:6px;grid-template-columns:16px 1.25fr 1fr 24px}.fence-route-row label{font-size:11px}#fencePlan{height:300px}.fence-route-modes button{padding:8px 12px}}

.fence-zoom-controls[hidden]{display:none!important}

#fenceRouteSeparate[hidden]{display:none!important}.fence-run-label{grid-column:2 / -1;grid-row:auto;color:var(--primary);font-size:11px;font-weight:650}.fence-route-row:has(.fence-run-label)>strong{grid-row:1 / 3}.fence-route-row:has(.fence-run-label)>label:first-of-type{grid-column:2}
/* Drawing commands and measurements live with the plan. */
#fencePlanTools[hidden],#fenceRouteRows,.fence-controls label[hidden]{display:none!important}
.fence-plan-tools{padding:16px 20px;border-bottom:1px solid #e2e8ec;background:#fff}
.fence-plan-tools>.fence-model-label{font-size:11px;color:#71808a;margin:0 0 5px}
.fence-plan-tools>#fenceRoutePreset{max-width:230px;min-height:38px;font-size:13px}
.fence-plan-instruction{font-size:12px;line-height:1.6;color:#71808a;margin:12px 0}
.fence-plan-tools .fence-route-actions{margin:10px 0 0}
.fence-plan-measures{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-top:10px}
.fence-plan-measures>label{max-width:170px;font-size:12px;font-weight:650;display:block}
.fence-plan-measures label>span{font-weight:500;font-size:11px}
.fence-plan-measures input{display:block;width:100%;min-height:40px;padding:9px 11px;border:1px solid #dce3e8;border-radius:7px;background:#fff;font:600 15px Inter,system-ui,sans-serif;color:#29343e;margin-top:6px}
.fence-plan-measures .fence-wall-field{margin:0;max-width:170px}.fence-plan-measures .fence-wall-field[hidden]{display:none!important}
.fence-plan-options{font-size:12px;flex:1;min-width:160px;align-self:center}
.fence-plan-options>summary{cursor:pointer;color:var(--primary);font-weight:650;padding:10px 0}
.fence-plan-options .fence-fieldset{margin:8px 0;padding:12px;border:1px solid #e2e8ec;box-shadow:none}
.fence-plan-board{position:relative;min-height:360px}
.fence-plan-editor{position:absolute;inset:auto 12px 12px auto;display:block;background:none;backdrop-filter:none;padding:0;z-index:30;width:min(310px,calc(100% - 24px));max-height:calc(100% - 20px);overflow:auto}
.fence-plan-editor[hidden]{display:none!important}.fence-plan-editor section{width:100%;padding:20px;border:1px solid #dce3e8;box-shadow:0 8px 30px #20303b26}
.fence-plan-editor h3{font-size:15px;margin-bottom:12px}.fence-plan-editor label{font-size:12px;margin:12px 0}.fence-plan-editor input{padding:9px;font-size:17px}
.fence-plan-editor .fence-route-actions{gap:6px}.fence-plan-editor .fence-route-actions button{padding:9px 10px;font-size:11px}
.fence-plan-editor .fence-route-remove{margin-right:auto;color:#ad302a}
#fencePlan [data-route-angle]{cursor:pointer}#fencePlan [data-route-angle] rect{fill:#fff0ee;stroke:#e6c1bc}#fencePlan [data-route-angle] text{fill:#ad302a;font:650 12px Inter,system-ui,sans-serif}
.fence-route-selected{stroke-width:7;stroke:#a82220}
body.dark-mode .fence-plan-tools{background:#25303a;border-color:#394651}body.dark-mode .fence-plan-measures input{background:#2b3640;border-color:#46535e;color:#edf1f4}body.dark-mode .fence-plan-editor section{border-color:#46535e}body.dark-mode #fencePlan [data-route-angle] rect{fill:#382929;stroke:#744947}body.dark-mode #fencePlan [data-route-angle] text{fill:#ffb1ab}
@media(max-width:540px){.fence-plan-tools{padding:14px}.fence-plan-board{min-height:360px}.fence-plan-editor{position:relative;inset:auto;width:calc(100% - 24px);margin:0 12px 12px;max-height:none}.fence-plan-measures>label{max-width:145px}.fence-plan-measures{gap:10px}}

.fence-plan-board[hidden],#fenceRouteMessage:empty,#fenceWidthHint[hidden]{display:none!important}

/* Bay options occupy their own row and never move the height fields. */
.fence-plan-measures{align-items:flex-start}
.fence-plan-options{display:block;flex:none;min-width:0;width:100%;margin:16px 0 0;border:1px solid #e1e7ec;border-radius:10px;background:#f8fafb;overflow:hidden}
.fence-plan-options>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;padding:13px 15px;line-height:1.4;color:#35434e;font-size:13px;font-weight:650}
.fence-plan-options>summary::-webkit-details-marker{display:none}
.fence-plan-options>summary::after{content:"";width:7px;height:7px;flex-shrink:0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-right:3px;transition:transform .15s}
.fence-plan-options[open]>summary::after{transform:rotate(225deg)}
.fence-plan-options[open]>summary{border-bottom:1px solid #e1e7ec}
.fence-plan-options summary small{display:block;color:#71808a;font-size:11px;font-weight:400;margin-top:3px}
.fence-plan-bay-settings{padding:14px;min-width:0}
.fence-plan-options .fence-layout-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.fence-plan-options .fence-layout-options label{min-width:0}
.fence-plan-options .fence-layout-options span{height:100%;min-height:78px;padding:13px;font-size:13px;line-height:1.45;font-weight:650;white-space:normal}
.fence-plan-options .fence-layout-options small{font-size:12px;font-weight:400;line-height:1.45;margin-top:5px}
.fence-plan-options #fenceDecorLengthField[hidden],.fence-plan-options #fenceLayoutHint[hidden],.fence-plan-options #fenceCutLayoutOptions[hidden]{display:none!important}
.fence-plan-options #fenceDecorLengthField label{display:block;font-size:12px;font-weight:600;margin:0 0 8px}
.fence-plan-options .fence-model-details{margin:10px 0 0;padding:10px;font-size:12px;line-height:1.6}
body.dark-mode .fence-plan-options{background:#28343f;border-color:#46535e}
body.dark-mode .fence-plan-options>summary{color:#e1e8ed}
body.dark-mode .fence-plan-options[open]>summary{border-color:#46535e}
body.dark-mode .fence-plan-options summary small{color:#b7c3cc}
@media(max-width:480px){.fence-plan-options .fence-layout-options{grid-template-columns:1fr}.fence-plan-bay-settings{padding:12px}.fence-plan-options .fence-layout-options span{min-height:0}}

.fence-cut-selector{margin:0 0 16px}.fence-cut-selector[hidden]{display:none!important}.fence-cut-selector label{display:block;font-size:12px;font-weight:650;color:#596874;margin-bottom:7px}.fence-cut-selector select{width:100%;font-size:13px}.fence-cut-view #fenceCutTitle{line-height:1.5;display:block}body.dark-mode .fence-cut-selector label{color:#c4ced6}

/* Section dimensions stay together below the plan, without covering the drawing. */
.fence-plan-measures[hidden]{display:none!important}
.fence-plan-editor{position:relative;inset:auto;width:auto;margin:0 16px 16px;max-height:none;overflow:visible}
.fence-plan-editor section{box-sizing:border-box;border-radius:10px;padding:20px;background:#fafbfc;box-shadow:none}
.fence-plan-editor h3{padding-right:28px;font-size:16px}
.fence-section-dimensions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.fence-section-dimensions label{margin:8px 0 0;min-width:0;line-height:1.5}
.fence-section-dimensions label[hidden]{display:none!important}
.fence-section-dimensions label>span:last-of-type{display:block;font-size:11px;color:#71808a;font-weight:400}
.fence-plan-editor input{box-sizing:border-box;min-width:0;font-size:16px;background:#fff}
.fence-plan-editor>section>label{max-width:240px}
.fence-section-hint{font-size:12px;line-height:1.6;color:#71808a;margin:12px 0}
#fencePlan [data-route-edge] .fence-route-height-tag{font-size:10px;font-weight:400;fill:#71808a}
body.dark-mode .fence-plan-editor section{background:#28343f}body.dark-mode .fence-plan-editor input{background:#202a34;color:#e1e8ed;border-color:#46535e}body.dark-mode .fence-section-hint,body.dark-mode .fence-section-dimensions label>span:last-of-type{color:#b7c3cc}
@media(max-width:480px){.fence-plan-editor{margin:0 12px 12px}.fence-plan-editor section{padding:16px}.fence-section-dimensions{gap:12px}.fence-plan-editor .fence-route-actions{display:grid;grid-template-columns:1fr 1fr}.fence-plan-editor .fence-route-remove{grid-column:1/-1;width:100%;margin:0}}
.fence-layer-editor{margin:18px 0;padding:16px 0;border-block:1px solid #e1e7ec}
.fence-plan-editor .fence-layer-toggle{display:flex;align-items:center;gap:10px;margin:0;font-size:13px;cursor:pointer}
.fence-plan-editor .fence-layer-toggle input{display:block;flex:none;width:17px;height:17px;min-height:0;padding:0;margin:0;accent-color:var(--primary)}
.fence-layer-toggle small{display:block;color:#71808a;font-size:11px;line-height:1.5;font-weight:400;margin-top:4px}
#fenceRouteLayerControls[hidden],#fenceRouteLayerExample[hidden]{display:none!important}
.fence-layer-row{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:10px 14px;margin:12px 0;padding:14px;background:#fff;border:1px solid #e1e7ec;border-radius:9px}
.fence-layer-row>strong{grid-column:1/-1;font-size:12px;color:var(--primary)}
.fence-plan-editor .fence-layer-row label{font-size:11px;margin:0;min-width:0}.fence-layer-row .atelier-choice{margin-top:8px}.fence-layer-row .atelier-choice-toggle{min-height:42px;padding:10px;font-size:12px;font-weight:500;white-space:normal;text-align:left}
.fence-layer-row-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px}
.fence-layer-row-actions button,.fence-layer-tools button{border:1px solid #dce3e8;border-radius:6px;background:#fff;color:#596874;padding:8px 11px;font-size:12px;cursor:pointer}
.fence-layer-row-actions button:disabled,.fence-layer-tools button:disabled{opacity:.35;cursor:default}
.fence-layer-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.fence-layer-tools #fenceRouteLayerExample{color:var(--primary);background:#fff5f4;border-color:#e9ceca}
.fence-plan-editor input[readonly]{background:#eef2f4;color:#5c6972}
.fence-band-recap{background:#f8fafb;border:1px solid #e1e7ec;border-radius:9px;padding:14px;margin:16px 0;font-size:12px;line-height:1.6}.fence-band-recap p{margin:8px 0 0;font-size:12px}
body.dark-mode .fence-layer-row,body.dark-mode .fence-layer-row-actions button,body.dark-mode .fence-layer-tools button,body.dark-mode .fence-band-recap{background:#25303a;color:#dae2e7;border-color:#46535e}body.dark-mode .fence-plan-editor input[readonly]{background:#303d49;color:#c8d2d9}
@media(max-width:600px){.fence-layer-row{grid-template-columns:1fr}.fence-layer-row>strong,.fence-layer-row-actions{grid-column:auto}}

/* Floating editor: changes apply immediately while the plan or 3D stays visible. */
#fenceRouteDialog.fence-plan-editor{position:fixed;inset:80px 20px auto auto;width:min(390px,calc(100vw - 32px));max-height:calc(100dvh - 100px);overflow:auto;overscroll-behavior:contain;margin:0;padding:0;border-radius:14px;background:#fafbfc;box-shadow:0 16px 55px #17212c40;z-index:9000;backdrop-filter:none}
#fenceRouteDialog>section{width:100%;padding:18px;border-radius:14px;box-shadow:none}
#fenceRouteDialog h3{font-size:16px;margin:0 32px 12px 0;line-height:1.4}
#fenceRouteDialog .fence-section-dimensions{gap:10px}
#fenceRouteDialog .fence-layer-editor{margin:12px 0;padding:12px 0}
#fenceRouteDialog .fence-layer-row{padding:10px;gap:8px;margin:10px 0}
#fenceRouteDialog .fence-section-hint{font-size:11px;margin:8px 0;line-height:1.5}
#fenceRouteDialog .fence-route-close{position:absolute;top:7px;right:10px;min-width:32px;min-height:32px}
#fenceRouteDialog .fence-route-actions{position:sticky;bottom:-18px;margin:12px -1px -1px;padding:10px 0 0;background:#fafbfc;display:flex;justify-content:space-between;border-top:1px solid #e1e7ec}
#fenceRouteDialog .fence-route-save-status{color:#357057;font-size:11px;line-height:1.5;margin:12px 0 6px}
#fenceRouteDialogError:empty{display:none}
#fenceRouteDialogError{font-size:12px;line-height:1.5}
body.dark-mode #fenceRouteDialog,body.dark-mode #fenceRouteDialog .fence-route-actions{background:#28343f}
body.dark-mode #fenceRouteDialog .fence-route-save-status{color:#9ad5b6}
@media(max-width:540px){#fenceRouteDialog.fence-plan-editor{inset:66px 12px auto auto;width:calc(100vw - 24px);max-height:calc(100dvh - 84px)}#fenceRouteDialog .fence-route-remove{width:auto;margin:0}}
