#warehouse-functional-editor{width:min(1500px,96vw);height:min(900px,92vh);max-width:none;border:0;border-radius:18px;padding:0;background:#f5f8fc;color:#102c5b;box-shadow:0 24px 70px #102c5b66}
#smartwarehouse-message{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;background:#071a3c88}
#smartwarehouse-message[hidden]{display:none}
#smartwarehouse-message .sw-message-card{width:min(430px,calc(100vw - 32px));padding:24px;border:1px solid #c8d9ed;border-radius:16px;background:#fff;color:#102c5b;box-shadow:0 20px 60px #071a3c55;font:15px/1.45 Arial,sans-serif}
#smartwarehouse-message .sw-message-card strong{display:block;margin-bottom:10px;color:#0759b8;font-size:20px}
#smartwarehouse-message .sw-message-card header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
#smartwarehouse-message .sw-message-card header img{width:30px;height:30px;object-fit:contain}
#smartwarehouse-message .sw-message-card p{margin:0 0 20px;white-space:pre-wrap}
#smartwarehouse-message .sw-message-details{display:grid;gap:0;margin:0 0 20px;border:1px solid #d8e6f6;border-radius:10px;overflow:hidden}
#smartwarehouse-message .sw-message-details>div{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.5fr);gap:12px;padding:9px 12px;background:#f7faff;border-bottom:1px solid #e2ecf8}
#smartwarehouse-message .sw-message-details>div:last-child{border-bottom:0}
#smartwarehouse-message .sw-message-details dt{color:#56708f;font-size:12px;font-weight:800}
#smartwarehouse-message .sw-message-details dd{margin:0;color:#0a376d;font-weight:800;overflow-wrap:anywhere}
#smartwarehouse-message .sw-message-card button{border:0;border-radius:9px;padding:10px 22px;background:#1267cf;color:#fff;font-weight:800;cursor:pointer}
#smartwarehouse-confirm{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:20px;background:#071a3c99;isolation:isolate}
#smartwarehouse-confirm .sw-confirm-card{position:relative;z-index:1;width:min(500px,calc(100vw - 32px));padding:22px;border:1px solid #c8d9ed;border-radius:16px;background:#fff;color:#102c5b;box-shadow:0 24px 80px #071a3c66;font:15px/1.45 Arial,sans-serif}
#smartwarehouse-confirm .sw-confirm-card header{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:#0759b8;font-size:18px}
#smartwarehouse-confirm .sw-confirm-card header img{width:30px;height:30px;object-fit:contain}
#smartwarehouse-confirm .sw-confirm-card p{margin:0 0 20px;white-space:pre-wrap}
#smartwarehouse-confirm .sw-confirm-card>div{display:flex;justify-content:flex-end;gap:8px}
#smartwarehouse-confirm .sw-confirm-card button{border:0;border-radius:9px;padding:10px 20px;background:#dce9fb;color:#17487f;font-weight:800;cursor:pointer}
#smartwarehouse-confirm .sw-confirm-card button[data-accept]{background:#1267cf;color:#fff}
#smartwarehouse-confirm .sw-confirm-card button:focus-visible,#smartwarehouse-message .sw-message-card button:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}
#warehouse-functional-editor #smartwarehouse-confirm,#warehouse-functional-editor #smartwarehouse-message{position:absolute;inset:0;z-index:2147483647}
#warehouse-functional-editor::backdrop{background:#071a3c88}
/* El diseñador es un puesto de trabajo: todo queda disponible dentro de la ventana,
   sin desplazar el documento que hay detrás. */
#warehouse-functional-editor{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;margin:0;border-radius:0;overflow:hidden;background:#edf3fa}
#warehouse-functional-editor:modal{max-width:100vw;max-height:100dvh}
.wf-head{height:58px;min-height:58px;padding:0 18px;background:linear-gradient(105deg,#062e68,#126ad1);box-shadow:0 2px 10px #052c6433}
.wf-head h2{font-size:19px;line-height:1.1}.wf-head p{font-size:11px;margin-top:2px}.wf-close{width:34px;height:34px;border-radius:9px;font-size:20px}
.wf-layout{height:calc(100% - 58px);grid-template-columns:205px minmax(0,1fr) 350px;overflow:hidden;background:#edf3fa}
.wf-tools,.wf-inspector{overflow:hidden;padding:12px;background:linear-gradient(180deg,#fff,#f7faff)}
.wf-tools{display:flex;flex-direction:column;gap:5px;border-right:1px solid #cfdef0}.wf-inspector{border-left:1px solid #cfdef0}
.wf-tools h3,.wf-inspector h3{margin:1px 0 3px;font-size:13px;color:#123c70;text-transform:uppercase;letter-spacing:.06em}
.wf-tools label,.wf-inspector label{font-size:10px;margin:3px 0 1px;color:#426386}.wf-tools select,.wf-inspector input,.wf-inspector textarea{min-height:31px;padding:5px 7px;border-radius:7px;font-size:12px}.wf-inspector textarea{min-height:46px;resize:none}
.wf-tools label{margin-bottom:2px}.wf-tools select{min-height:32px}
.wf-action{margin:0;padding:8px 9px;min-height:34px;border-radius:8px;font-size:12px;line-height:1.15;box-shadow:0 1px 0 #0b4d9b12}.wf-action.primary{background:linear-gradient(135deg,#0963c8,#0b75dc);box-shadow:0 4px 10px #0963c833}
.wf-help{padding:7px 8px;margin-top:5px;font-size:10px;line-height:1.3;border-left:3px solid #28a565;background:#eaf8f0}
.wf-canvas-wrap{padding:10px 12px 9px;gap:6px;overflow:hidden}.wf-canvas-title{min-height:23px}.wf-canvas-title b{font-size:15px}.wf-status{font-size:10px;padding:4px 7px;border-radius:99px;background:#e9f8ef;color:#14733f}.wf-canvas{border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff,0 3px 14px #174d8514}.wf-note{font-size:10px;line-height:1.15;min-height:12px;color:#476989}
/* Inspector compacto, sin secciones interminables y con jerarquía visible. */
.wf-object-header{grid-template-columns:38px minmax(0,1fr) 30px;gap:8px;padding:8px 10px;margin:-12px -12px 7px;background:linear-gradient(135deg,#e7f3ff,#fafdff)}
.wf-object-icon{width:38px;height:38px;border-radius:10px;font-size:20px}.wf-object-header small{font-size:8px}.wf-object-header h3{font-size:14px;margin:1px 0}.wf-object-header p{font-size:10px}.wf-delete-icon{width:30px;height:30px;border-radius:8px;font-size:20px}
.wf-property-section{padding:7px 8px;margin:5px 0;border-radius:8px;background:#fff;box-shadow:0 1px 3px #1a4b8610}.wf-property-section>b{margin-bottom:3px;font-size:11px}.wf-property-grid{gap:0 6px}.wf-section-label{margin-top:5px;font-size:10px}.wf-geometry-row{gap:4px;margin:3px 0}.wf-rack-grid{gap:2px;padding:5px;margin:3px 0 5px}.wf-rack-grid span{min-height:20px;font-size:8px}
.wf-inspector>.wf-action{margin-top:4px}.wf-inspector>.wf-help{margin-top:5px}.wf-picker-intro{font-size:11px;line-height:1.25;margin:0 0 6px}.wf-rack-type-list{grid-template-columns:1fr 1fr;gap:6px;max-height:none;overflow:hidden;margin:0 0 6px}.wf-rack-type-card{display:grid;grid-template-columns:35px minmax(0,1fr);gap:6px;padding:6px;border-radius:8px}.wf-rack-type-card img,.wf-rack-type-icon{width:35px;height:35px;flex-basis:35px;border-radius:7px;font-size:18px}.wf-rack-type-card b{font-size:10px}.wf-rack-type-card small{font-size:8px;line-height:1.15}.wf-thumbnail-preview{max-height:64px;margin:3px auto 5px}
/* Colores, contornos y tiradores con contraste operativo alto. */
.wf-canvas{background:radial-gradient(circle at 1px 1px,#c4d6ec 1px,transparent 1.2px) 0 0/18px 18px,#fbfdff}.wf-boundary{stroke:#183f70;stroke-width:95}.wf-room{stroke:#0e63c7;stroke-width:155;fill-opacity:.72}.wf-room.selected{stroke:#ff9a00;stroke-width:205;fill:#ffd05688;filter:drop-shadow(0 0 11px #ff9a00bb)}.wf-rack rect{fill:#1978d850;stroke:#074a98;stroke-width:65;rx:45}.wf-rack.selected rect{fill:#ffd05b99;stroke:#d47200;stroke-width:110}.wf-rack.selected path{stroke:#9a5000;stroke-width:48}.wf-rack.selected text{fill:#743900}.wf-feature.wall{stroke-width:285}.wf-feature.door{stroke-width:310}.wf-feature.selected{stroke:#ff9800!important;stroke-width:355!important;filter:drop-shadow(0 0 10px #ff9800cc)}.wf-handle circle:first-child{stroke:#ff8b00;stroke-width:70}.wf-handle circle:last-child{fill:#ff8b00}.wf-door-grip circle{stroke:#ff8b00;stroke-width:72;fill:#fff8e9}.wf-door-grip path{stroke:#ff8b00;stroke-width:62}.wf-dimensions text{font-size:230px!important;stroke-width:75px}.wf-rack-dimension-text{font-size:250px!important}.wf-reference-text{font-size:220px!important}.wf-dimensions line{stroke-width:42px}.wf-guide{stroke-width:55px!important}
.wf-aisle{cursor:pointer}.wf-aisle rect{fill:#8f54df2e;stroke:#6e32bb;stroke-width:75;stroke-dasharray:190 80}.wf-aisle text{font-size:225px;fill:#55288b;font-weight:900;text-anchor:middle;pointer-events:none}.wf-aisle.selected rect{fill:#ffd05655;stroke:#ee8b00;stroke-width:130;filter:drop-shadow(0 0 10px #ff9900aa)}.wf-aisle.selected text{fill:#7c4300}.wf-aisle-handle{cursor:nwse-resize}.wf-aisle-handle rect{fill:#fff;stroke:#ed8d00;stroke-width:60}.wf-rack-orientation{font-size:220px!important;fill:#0b539c!important;font-weight:900;pointer-events:none}
@media(max-height:800px){.wf-head{height:50px;min-height:50px}.wf-layout{height:calc(100% - 50px);grid-template-columns:180px minmax(0,1fr) 300px}.wf-head h2{font-size:16px}.wf-head p{display:none}.wf-tools,.wf-inspector{padding:8px}.wf-action{padding:6px 7px;min-height:29px;font-size:11px}.wf-property-section{padding:5px 6px;margin:3px 0}.wf-help{display:none}.wf-rack-grid span{min-height:16px}.wf-object-header{padding:6px 8px;margin:-8px -8px 4px}.wf-object-icon{width:32px;height:32px;font-size:17px}.wf-object-header h3{font-size:12px}.wf-object-header p{display:none}}
.wf-object-header{display:grid;grid-template-columns:46px minmax(0,1fr) 34px;gap:10px;align-items:center;padding:12px;margin:-16px -16px 14px;background:linear-gradient(135deg,#edf5ff,#f8fbff);border-bottom:1px solid #c8dcf3}.wf-object-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#1166cb;color:#fff;font-size:25px;font-weight:900}.wf-object-header small{font-size:10px;font-weight:900;letter-spacing:.08em;color:#5b7190}.wf-object-header h3{margin:2px 0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-object-header p{margin:0;font-size:11px;color:#55708f}.wf-delete-icon{width:34px;height:34px;border:1px solid #efb9bd;background:#fff;color:#c12934;border-radius:9px;font-size:23px;line-height:1;cursor:pointer}.wf-delete-icon:hover{background:#fff1f1}.wf-property-section{padding:11px;margin:10px 0;border:1px solid #d9e5f4;border-radius:10px;background:#fff}.wf-property-section>b{display:block;margin-bottom:7px;color:#143d70;font-size:12px}.wf-property-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.wf-property-grid>b{grid-column:1/-1}.wf-section-label{display:block;margin-top:9px;font-size:12px;color:#143d70}
.wf-picker-intro{font-size:13px;line-height:1.4;color:#526c8d;margin:0 0 12px}.wf-rack-type-list{display:grid;gap:8px;max-height:420px;overflow:auto;margin:0 0 12px}.wf-rack-type-card{display:flex;gap:9px;width:100%;padding:9px;border:1px solid #bfd4ee;border-radius:10px;background:#fff;color:#12396b;text-align:left;cursor:pointer}.wf-rack-type-card:hover,.wf-rack-type-card.selected{border-color:#1469cc;background:#eaf4ff;box-shadow:inset 4px 0 #1469cc}.wf-rack-type-card img,.wf-rack-type-icon{width:54px;height:54px;object-fit:cover;border-radius:8px;flex:0 0 54px;background:#e6f1ff;color:#0754ac;display:grid;place-items:center;font-size:28px}.wf-rack-type-card span:last-child{min-width:0;display:grid;gap:3px}.wf-rack-type-card b{font-size:13px}.wf-rack-type-card small{font-size:11px;line-height:1.25;color:#55708f}.wf-thumbnail-preview{display:block;max-width:100%;max-height:130px;object-fit:contain;margin:6px auto 10px;border:1px solid #bfd4ee;border-radius:9px}
.wf-dimensions text{font-size:255px!important;paint-order:stroke;stroke:#fff;stroke-width:60px;stroke-linejoin:round}.wf-rack-dimension{stroke-width:42!important}.wf-rack-dimension-text{font-size:285px!important}.wf-reference-dimension{stroke:#e38300!important;stroke-width:38!important;stroke-dasharray:95 50}.wf-reference-text{font-size:245px!important;fill:#a75b00!important;font-weight:900}
#warehouse-functional-editor .wf-canvas,#warehouse-functional-editor .wf-canvas *{user-select:none;-webkit-user-select:none}
#warehouse-functional-editor .wf-canvas svg{cursor:crosshair}
#warehouse-functional-editor .wf-rack{cursor:grab}.wf-rack:active{cursor:grabbing}.wf-rack.selected rect{fill:#f9c84666;stroke:#e38300;stroke-width:85}.wf-rack.selected path{stroke:#b96200;stroke-width:38}.wf-rack.selected text{fill:#7b4300}.wf-room.selected{stroke:#e38300;stroke-width:140;fill-opacity:.82}.wf-feature.selected{stroke:#e38300!important;stroke-width:260!important}.wf-rack.selected::after{content:''}
.wf-rack{cursor:grab}.wf-rack rect{fill:#1e78d850;stroke:#0750a5;stroke-width:48;rx:60}.wf-rack path{stroke:#0750a5;stroke-width:25}.wf-rack text{font-size:190px;font-weight:800;fill:#073578}.wf-room{stroke:#176cd2;stroke-width:105;cursor:pointer}.wf-feature{cursor:grab;stroke-linecap:round}.wf-feature.wall{stroke-width:195}.wf-feature.door{stroke-width:220}.wf-room.selected,.wf-rack.selected,.wf-feature.selected{filter:drop-shadow(0 0 7px #0567d8)}.wf-room-label{font-size:245px;fill:#11356a;font-weight:700;pointer-events:none}.wf-handle{cursor:grab}.wf-handle circle:first-child{fill:#fff;stroke:#1166cb;stroke-width:65}.wf-handle circle:last-child{fill:#1166cb}.wf-door-grip{pointer-events:none}.wf-door-grip circle{fill:#fff;stroke:#8751c4;stroke-width:58}.wf-door-grip path{stroke:#8751c4;stroke-width:52}.wf-boundary{fill:transparent;stroke:#274e80;stroke-width:65;pointer-events:none}.wf-dimensions line{stroke:#637894;stroke-width:32}.wf-dimensions text{font-size:170px;fill:#385574;text-anchor:middle;font-weight:700}.wf-rack-dimension{stroke:#0b66c5!important;stroke-width:28!important;stroke-dasharray:80 48}.wf-rack-dimension-text{fill:#0b66c5!important}.wf-guide{stroke:#e78315!important;stroke-width:38!important;stroke-dasharray:120 70}.wf-rack-grid{display:grid;gap:3px;padding:8px;margin:6px 0 10px;border:1px solid #bad1ef;border-radius:9px;background:#eef6ff}.wf-rack-grid span{display:grid;place-items:center;min-height:27px;background:#fff;border:1px solid #7eafe3;border-radius:4px;font-size:10px;font-weight:800;color:#14519a}
.wf-rack .wf-rack-pick-face{stroke:#07934a!important;stroke-width:105px!important;stroke-linecap:round;pointer-events:none}.wf-rack .wf-rack-pick-arrow{fill:#07934a!important;stroke:none!important;pointer-events:none}.wf-rack .wf-rack-pick-label{font-size:142px!important;font-weight:900!important;fill:#087a3f!important;text-anchor:middle;letter-spacing:10px;paint-order:stroke;stroke:#fff;stroke-width:24px;pointer-events:none}.wf-rack.selected .wf-rack-pick-face{stroke:#d66e00!important}.wf-rack.selected .wf-rack-pick-arrow{fill:#d66e00!important}.wf-rack.selected .wf-rack-pick-label{fill:#a45000!important}
.wf-head{height:68px;background:linear-gradient(100deg,#073578,#1467c9);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.wf-head h2{font-size:22px;margin:0}.wf-head p{margin:3px 0 0;font-size:13px;opacity:.85}.wf-close{border:1px solid #ffffff77;background:transparent;color:#fff;border-radius:10px;width:40px;height:40px;font-size:24px;cursor:pointer}
.wf-layout{height:calc(100% - 68px);display:grid;grid-template-columns:230px minmax(0,1fr) 320px;min-height:0}.wf-tools,.wf-inspector{background:#fff;padding:16px;overflow:auto}.wf-tools{border-right:1px solid #dce6f4}.wf-inspector{border-left:1px solid #dce6f4}.wf-tools h3,.wf-inspector h3{margin:0 0 12px;font-size:16px}.wf-tools label,.wf-inspector label{display:block;font-size:12px;font-weight:800;margin:10px 0 5px}.wf-tools select,.wf-inspector input,.wf-inspector textarea{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #bfd1eb;border-radius:8px;padding:8px;background:#fff;color:#102c5b}.wf-inspector textarea{min-height:70px;resize:vertical}.wf-action{width:100%;margin:6px 0;padding:10px 11px;border:1px solid #8bb6ec;border-radius:9px;background:#fff;color:#0958bf;font-weight:800;cursor:pointer;text-align:left}.wf-action:hover,.wf-action.active{background:#eaf3ff;border-color:#176cd2}.wf-action.primary{background:#1166cb;color:#fff;border-color:#1166cb;text-align:center}.wf-action.danger{color:#b52424;border-color:#e7b1b1}.wf-help{background:#eaf7ef;border-radius:9px;padding:10px;font-size:12px;line-height:1.4;margin-top:14px;color:#166440}.wf-canvas-wrap{padding:18px;min-width:0;min-height:0;display:flex;flex-direction:column;gap:10px}.wf-canvas-title{display:flex;justify-content:space-between;align-items:center}.wf-canvas-title b{font-size:16px}.wf-canvas{flex:1;min-height:0;border:1px solid #c4d6ee;border-radius:12px;background:#fff;overflow:hidden;position:relative}.wf-canvas svg{width:100%;height:100%;display:block;touch-action:none}.wf-rack{cursor:grab}.wf-room,.wf-feature,.wf-vertex{cursor:pointer}.wf-room.selected,.wf-rack.selected{filter:drop-shadow(0 0 4px #0567d8)}.wf-draft{fill:#4c2a7830;stroke:#4c2a78;stroke-width:45;stroke-dasharray:100 60}.wf-note{font-size:12px;color:#57718f}.wf-status{font-size:12px;color:#14733f;font-weight:700}.wf-geometry-row{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:5px 0}.wf-geometry-row input{min-width:0}.wf-empty{color:#637894;font-size:13px;padding:8px 0}.wf-object-list{max-height:185px;overflow:auto;border-top:1px solid #e1eaf5;margin-top:10px}.wf-object-list button{width:100%;display:block;background:none;border:0;border-bottom:1px solid #edf2f9;padding:9px 2px;text-align:left;color:#193c6c;cursor:pointer}.wf-object-list button:hover{background:#f0f6ff}@media(max-width:980px){.wf-layout{grid-template-columns:190px minmax(0,1fr)}.wf-inspector{position:absolute;right:10px;top:80px;width:300px;max-height:calc(100% - 100px);box-shadow:0 8px 30px #102c5b30;border-radius:12px}.wf-canvas-wrap{padding-right:14px}}
/* Cotas legibles al visualizar el plano completo. */
.wf-dimensions text{font-size:560px!important;font-weight:900!important;fill:#143f75!important;paint-order:stroke;stroke:#fff;stroke-width:150px!important;stroke-linejoin:round}
.wf-rack-dimension-text{font-size:580px!important;fill:#075dc0!important}
.wf-reference-text{font-size:540px!important;fill:#a55300!important}
.wf-dimensions line{stroke-width:70px!important}
.wf-rack-dimension{stroke-width:64px!important}
.wf-reference-dimension{stroke-width:58px!important}
.wf-guide{stroke-width:70px!important}
.wf-model-summary{margin:0 0 8px;padding:9px 10px;border-radius:8px;background:#edf6ff;color:#164d91;font-size:12px;font-weight:800}

/* Jerarquía visual operativa: el plano debe leerse de un vistazo incluso en
   pantallas industriales grandes. Estas reglas cierran los estilos heredados. */
#warehouse-functional-editor .wf-tools{background:linear-gradient(180deg,#f8fbff 0%,#edf5ff 100%);box-shadow:inset -1px 0 #b8d1ef}
#warehouse-functional-editor .wf-inspector{background:linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%);box-shadow:inset 1px 0 #b8d1ef}
#warehouse-functional-editor .wf-action{display:flex;align-items:center;gap:8px;min-height:42px;padding:10px 12px;border-width:1.5px;font-size:13px;box-shadow:0 2px 5px #0e4b8a12;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}
#warehouse-functional-editor .wf-undo{display:inline-flex;align-items:center;justify-content:center;width:112px!important;min-width:112px;height:28px;flex:0 0 112px;padding:0 9px;border:1px solid #c9daf1;border-radius:6px;background:#fff;color:#426487;font-size:11px;font-weight:700;box-shadow:none;white-space:nowrap;cursor:pointer;margin:0 0 0 auto}
#warehouse-functional-editor .wf-undo:not(:disabled){background:#eef5ff;color:#135eb1}
#warehouse-functional-editor .wf-undo:disabled{opacity:.5;cursor:not-allowed}
#warehouse-functional-editor .wf-canvas-title .wf-zoom-controls{flex:0 0 auto;margin-left:4px}
#warehouse-functional-editor .wf-action:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0e4b8a1f}
#warehouse-functional-editor .wf-action.primary{justify-content:center;box-shadow:0 7px 16px #0a5fc33b}
#warehouse-functional-editor .wf-action.active{border-left:5px solid #ff9700;background:#fff3d7;color:#823f00;box-shadow:inset 0 0 0 1px #ffb949}
#warehouse-functional-editor .wf-help{border:1px solid #b9e5cd;border-left:5px solid #14934d;background:#effbf4;font-size:11px;line-height:1.45}
#warehouse-functional-editor .wf-canvas{border:2px solid #91b9e5;border-radius:14px;background:radial-gradient(circle at 1px 1px,#c8d9ed 1.15px,transparent 1.35px) 0 0/17px 17px,#fbfdff;box-shadow:inset 0 0 0 5px #eef6ff,0 8px 20px #164b8615}
#warehouse-functional-editor .wf-boundary{stroke:#123e71!important;stroke-width:115px!important}
#warehouse-functional-editor .wf-room{stroke:#0c67c9!important;stroke-width:170px!important;fill-opacity:.38;filter:drop-shadow(0 2px 2px #0b559928)}
#warehouse-functional-editor .wf-room.selected{stroke:#f28b00!important;stroke-width:255px!important;fill:#ffd25088!important;filter:drop-shadow(0 0 16px #f28b00bb)!important}
#warehouse-functional-editor .wf-rack rect{fill:#2581dd70!important;stroke:#064c99!important;stroke-width:52px!important;rx:70}
#warehouse-functional-editor .wf-rack path{stroke:#064c99!important;stroke-width:24px!important}
#warehouse-functional-editor .wf-rack text{font-size:235px!important;fill:#062f65!important;font-weight:900!important;paint-order:stroke;stroke:#fff;stroke-width:26px}
#warehouse-functional-editor .wf-rack.selected rect{fill:#ffd356a8!important;stroke:#df7100!important;stroke-width:92px!important;filter:drop-shadow(0 0 14px #ec8700cc)}
#warehouse-functional-editor .wf-rack.selected path{stroke:#9c4b00!important;stroke-width:38px!important}
#warehouse-functional-editor .wf-rack.selected text{fill:#703400!important;stroke:#fff7df!important;stroke-width:30px}
#warehouse-functional-editor .wf-handle circle:first-child{fill:#fff!important;stroke:#ef8500!important;stroke-width:105px!important;filter:drop-shadow(0 1px 3px #9a510099)}
#warehouse-functional-editor .wf-handle circle:last-child{fill:#ef8500!important;stroke:#fff!important;stroke-width:28px}
#warehouse-functional-editor .wf-aisle rect{stroke-width:68px!important;stroke-dasharray:180 85!important}
#warehouse-functional-editor .wf-aisle.selected rect{stroke:#e77a00!important;stroke-width:108px!important;fill:#ffd15e70!important;filter:drop-shadow(0 0 11px #e77a00aa)}
#warehouse-functional-editor .wf-aisle-handle rect{width:180px!important;height:180px!important;fill:#fff8e7!important;stroke:#e77a00!important;stroke-width:55px!important;rx:24}
#warehouse-functional-editor .wf-draft{fill:#7d4bc326!important;stroke:#7042ae!important;stroke-width:58px!important;stroke-dasharray:160 72!important}
#warehouse-functional-editor .wf-draft-handle{fill:#fff!important;stroke:#7042ae!important;stroke-width:52px!important}
#warehouse-functional-editor .wf-feature.wall{stroke-width:320px!important;stroke:#506b8d!important}
#warehouse-functional-editor .wf-feature.door{stroke-width:350px!important;stroke:#8c54cb!important}
#warehouse-functional-editor .wf-feature.selected{stroke:#f28b00!important;stroke-width:420px!important;filter:drop-shadow(0 0 14px #f28b00cc)!important}
#warehouse-functional-editor .wf-guide{stroke:#f28b00!important;stroke-width:100px!important;stroke-dasharray:170 85!important;filter:drop-shadow(0 0 7px #ffbf48)}
#warehouse-functional-editor .wf-dimensions line{stroke:#385d88!important;stroke-width:90px!important}
#warehouse-functional-editor .wf-dimensions text{font-size:720px!important;fill:#0d396e!important;stroke:#fff!important;stroke-width:190px!important}
#warehouse-functional-editor .wf-rack-dimension{stroke:#006be6!important;stroke-width:82px!important;stroke-dasharray:155 65!important}
#warehouse-functional-editor .wf-rack-dimension-text{font-size:760px!important;fill:#0064c9!important;stroke:#fff!important;stroke-width:180px!important}
#warehouse-functional-editor .wf-reference-dimension{stroke:#e77a00!important;stroke-width:76px!important;stroke-dasharray:145 70!important}
#warehouse-functional-editor .wf-reference-text{font-size:700px!important;fill:#a94e00!important;stroke:#fff!important;stroke-width:180px!important}
#warehouse-functional-editor .wf-canvas-title{gap:12px}
#warehouse-functional-editor .wf-zoom-controls{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid #c9daf1;border-radius:9px;background:#f7fbff}
#warehouse-functional-editor .wf-zoom-controls button{border:0;border-radius:6px;min-width:29px;height:28px;padding:0 7px;background:#fff;color:#0750a5;font-weight:900;cursor:pointer}
#warehouse-functional-editor .wf-zoom-controls button:hover:not(:disabled){background:#deedff}
#warehouse-functional-editor .wf-zoom-controls button:disabled{opacity:.42;cursor:not-allowed}
#warehouse-functional-editor .wf-zoom-controls span{min-width:42px;text-align:center;font-size:11px;font-weight:800;color:#173f72}
#warehouse-functional-editor .wf-delete-object{margin-left:auto;align-self:flex-start;border:1px solid #e8a8a8;border-radius:8px;background:#fff;color:#bc2525;font-weight:800;padding:8px 10px;cursor:pointer;white-space:nowrap}
#warehouse-functional-editor .wf-delete-object:hover{background:#fff1f1;border-color:#d36b6b}
/* Cotas permanentes de circulación: siempre reflejan la distancia real entre
   estanterías contenidas en una misma zona/pasillo. */
#warehouse-functional-editor .wf-passage line{stroke:#7c3cc2!important;stroke-width:78px!important;stroke-dasharray:135 65!important;stroke-linecap:round;filter:drop-shadow(0 0 5px #b57de999)}
#warehouse-functional-editor .wf-passage text{font-size:600px!important;font-weight:900!important;fill:#64319f!important;text-anchor:middle;paint-order:stroke;stroke:#fff!important;stroke-width:175px!important;stroke-linejoin:round;letter-spacing:9px}
#warehouse-functional-editor .wf-zone-scale{font-size:390px!important;font-weight:900!important;fill:#4e287d!important;text-anchor:middle;paint-order:stroke;stroke:#fff!important;stroke-width:145px!important;letter-spacing:8px}
/* Ayuda de alineación ≠ cotas: turquesa para guías temporales y azul,
   naranja o violeta exclusivamente para medidas físicas. */
#warehouse-functional-editor .wf-guide{stroke:#00a7b5!important;stroke-width:100px!important;stroke-dasharray:170 85!important;filter:drop-shadow(0 0 8px #41d7dd)!important}
#warehouse-functional-editor .wf-room{cursor:grab}
#warehouse-functional-editor .wf-room:active{cursor:grabbing}
/* Escala legible: las cotas destacan sin tapar la estantería ni las demás medidas. */
#warehouse-functional-editor .wf-dimensions text{font-size:360px!important;stroke-width:105px!important}
#warehouse-functional-editor .wf-dimensions line{stroke-width:48px!important}
#warehouse-functional-editor .wf-rack-dimension{stroke-width:46px!important}
#warehouse-functional-editor .wf-rack-dimension-text{font-size:390px!important;stroke-width:110px!important}
#warehouse-functional-editor .wf-reference-dimension{stroke-width:42px!important}
#warehouse-functional-editor .wf-reference-text{font-size:335px!important;stroke-width:105px!important}
#warehouse-functional-editor .wf-passage line{stroke-width:52px!important}
#warehouse-functional-editor .wf-passage text{font-size:340px!important;stroke-width:105px!important}
#warehouse-functional-editor .wf-zone-scale{font-size:245px!important;stroke-width:95px!important}

/* Inspector compacto: evita el desplazamiento horizontal y separa con claridad
   la información editable de las acciones que actúan sobre el elemento. */
#warehouse-functional-editor .wf-layout{grid-template-columns:minmax(190px,230px) minmax(0,1fr) minmax(280px,320px);overflow:hidden}
#warehouse-functional-editor .wf-inspector{display:flex;flex-direction:column;gap:0;min-width:0;max-width:100%;overflow-x:hidden!important;overflow-y:auto;padding:12px}
#warehouse-functional-editor .wf-inspector-info{min-width:0;max-width:100%;overflow-x:hidden}
#warehouse-functional-editor .wf-inspector *,#warehouse-functional-editor .wf-inspector input,#warehouse-functional-editor .wf-inspector select,#warehouse-functional-editor .wf-inspector textarea{box-sizing:border-box;min-width:0;max-width:100%}
#warehouse-functional-editor .wf-inspector label{overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#warehouse-functional-editor .wf-inspector .wf-property-section{min-width:0;margin:9px 0;padding:10px;border:1px solid #d6e3f2;border-radius:10px;background:#fff}
#warehouse-functional-editor .wf-inspector .wf-visual-coordinates{padding:7px 9px;background:#f3f7fc;border-color:#dfe9f5}
#warehouse-functional-editor .wf-inspector .wf-visual-coordinates b{font-size:10px;color:#5d7190;letter-spacing:.03em}
#warehouse-functional-editor .wf-inspector .wf-visual-coordinates label{font-size:10px;margin:5px 0 0;color:#607792}
#warehouse-functional-editor .wf-inspector .wf-visual-coordinates input,#warehouse-functional-editor .wf-inspector .wf-visual-coordinates select{min-height:32px;padding:5px 7px;font-size:12px}
#warehouse-functional-editor .wf-inspector-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:auto;padding:12px 0 2px;background:linear-gradient(180deg,#f5f9ff00 0%,#f5f9ff 24px);position:sticky;bottom:0;z-index:2}
#warehouse-functional-editor .wf-inspector-actions .wf-action{width:100%;min-width:0;min-height:38px;margin:0;padding:8px;justify-content:center;text-align:center;font-size:12px;line-height:1.2;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector-actions .wf-action.primary{grid-column:1 / -1;order:-1}
#warehouse-functional-editor .wf-inspector-actions .wf-action.danger{grid-column:1 / -1;background:#fffafa}
#warehouse-functional-editor .wf-inspector .wf-object-header{min-width:0;gap:8px;padding-bottom:8px}
#warehouse-functional-editor .wf-inspector .wf-object-header>div{min-width:0}
#warehouse-functional-editor .wf-inspector .wf-object-header h3{overflow-wrap:anywhere;font-size:17px;margin:1px 0}
#warehouse-functional-editor .wf-inspector .wf-object-header p{font-size:11px;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-list{max-width:100%;overflow-x:hidden}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card{min-width:0;max-width:100%}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-type-list){padding:14px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-list{display:grid;grid-template-columns:1fr;gap:8px;max-height:calc(100dvh - 230px);margin:0;overflow-y:auto;overflow-x:hidden;padding-right:2px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:92px;padding:10px 12px;border-radius:10px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card img,#warehouse-functional-editor .wf-inspector .wf-rack-type-icon{width:72px;height:72px;flex:0 0 72px;border-radius:9px;font-size:30px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info{display:grid;gap:4px;min-width:0}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info>b{font-size:14px;line-height:1.15;color:#103c74;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-spec{display:flex;flex-wrap:wrap;gap:3px 10px;color:#426889;font-size:11px;line-height:1.25}
#warehouse-functional-editor .wf-inspector .wf-rack-type-spec strong{color:#0a5bb7}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info small{font-size:10px;line-height:1.32;color:#58718e;display:block;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-select{align-self:center;padding:7px 9px;border:1px solid #8eb9ed;border-radius:7px;background:#f4f9ff;color:#0759bc;font-size:11px;font-weight:900;white-space:nowrap}
#warehouse-functional-editor .wf-inspector .wf-rack-type-select{display:grid;gap:5px;padding:5px;background:transparent;border:0}
#warehouse-functional-editor .wf-inspector .wf-rack-type-select button{border:1px solid #8eb9ed;border-radius:7px;background:#f4f9ff;color:#0759bc;padding:7px 9px;font:inherit;font-weight:900;cursor:pointer;white-space:nowrap}
#warehouse-functional-editor .wf-inspector .wf-rack-type-select button:first-child{background:#1469cc;color:#fff;border-color:#1469cc}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card:hover .wf-rack-type-select,#warehouse-functional-editor .wf-inspector .wf-rack-type-card.selected .wf-rack-type-select{background:#1267cc;border-color:#1267cc;color:#fff}
@media(max-height:800px){#warehouse-functional-editor .wf-inspector .wf-rack-type-list{max-height:calc(100dvh - 195px)}#warehouse-functional-editor .wf-inspector .wf-rack-type-card{grid-template-columns:58px minmax(0,1fr) auto;min-height:70px;padding:7px 8px}#warehouse-functional-editor .wf-inspector .wf-rack-type-card img,#warehouse-functional-editor .wf-inspector .wf-rack-type-icon{width:58px;height:58px;flex-basis:58px}#warehouse-functional-editor .wf-inspector .wf-rack-type-info>b{font-size:12px}#warehouse-functional-editor .wf-inspector .wf-rack-type-info small{font-size:9px}}

/* Contrato final de cotas: impide que las reglas históricas engorden las
   referencias y mantiene la lectura estable en todos los niveles de zoom. */
#warehouse-functional-editor svg .wf-dimensions line.wf-building-extension{stroke:#315b87!important;stroke-width:1px!important;stroke-dasharray:none!important;vector-effect:non-scaling-stroke;stroke-linecap:round;opacity:.72}
#warehouse-functional-editor svg .wf-dimensions line.wf-building-dimension,#warehouse-functional-editor svg .wf-dimensions line.wf-building-tick{stroke:#174e87!important;stroke-width:1.2px!important;stroke-dasharray:none!important;vector-effect:non-scaling-stroke;stroke-linecap:round}
#warehouse-functional-editor svg .wf-dimensions text.wf-building-dimension-text{fill:#103e70!important;font-size:var(--wf-dimension-font-size,285px)!important;font-weight:700!important;stroke:#fff!important;stroke-width:38px!important;paint-order:stroke fill}
#warehouse-functional-editor svg .wf-dimensions line.wf-rack-dimension{stroke:#096ee8!important;stroke-width:1.2px!important;stroke-dasharray:none!important;vector-effect:non-scaling-stroke;stroke-linecap:round}
#warehouse-functional-editor svg .wf-dimensions line.wf-reference-dimension{stroke:#ef7d00!important;stroke-width:1px!important;stroke-dasharray:5px 3px!important;vector-effect:non-scaling-stroke;stroke-linecap:round}
#warehouse-functional-editor svg .wf-dimensions line.wf-reference-extension{stroke:#e6a042!important;stroke-width:1px!important;stroke-dasharray:2px 3px!important;vector-effect:non-scaling-stroke;stroke-linecap:round;opacity:.86}
#warehouse-functional-editor svg .wf-dimensions text.wf-rack-dimension-text,#warehouse-functional-editor svg .wf-dimensions text.wf-reference-text{font-size:var(--wf-dimension-font-size,285px)!important;font-weight:700!important;stroke:#fff!important;stroke-width:34px!important;paint-order:stroke fill}
#warehouse-functional-editor svg .wf-dimensions text.wf-rack-dimension-text{fill:#075bc0!important}
#warehouse-functional-editor svg .wf-dimensions text.wf-reference-text{fill:#a94c00!important}

/* Una zona puede solapar parcialmente una estantería durante el ajuste, pero
   debe avisarlo sin alterar su tamaño ni absorber la estantería. */
#warehouse-functional-editor .wf-room.invalid{stroke:#dc2626!important;stroke-width:120px!important;stroke-dasharray:220px 110px!important;fill:#fee2e255!important;filter:drop-shadow(0 0 7px #dc262655)!important}
#warehouse-functional-editor .wf-aisle.invalid rect{stroke:#dc2626!important;stroke-width:88px!important;stroke-dasharray:180px 85px!important;fill:#fee2e266!important;filter:drop-shadow(0 0 7px #dc262655)!important}
#warehouse-functional-editor .wf-room.invalid.selected{stroke:#d97706!important;fill:#ffedd577!important}
#warehouse-functional-editor .wf-aisle.invalid.selected rect{stroke:#d97706!important;fill:#ffedd577!important}
#warehouse-functional-editor .wf-room.invalid + .wf-room-label,#warehouse-functional-editor .wf-aisle.invalid text{fill:#a11d1d!important}

/* Inventario contextual del plano: seleccionar desde la lista y desde el
   lienzo mantiene una sola selección visible en ambos sitios. */
#warehouse-functional-editor .wf-placed-racks{display:grid;gap:7px;min-height:0;margin:10px 0 6px;padding-top:10px;border-top:1px solid #b9d3ee}
#warehouse-functional-editor .wf-placed-racks-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#123c71}
#warehouse-functional-editor .wf-placed-racks-title b{font-size:12px;font-weight:900;letter-spacing:.02em}
#warehouse-functional-editor .wf-placed-racks-title span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#dcecff;color:#0759ba;font-size:11px;font-weight:900}
#warehouse-functional-editor .wf-placed-racks-list{display:grid;gap:5px;max-height:clamp(132px,23dvh,250px);overflow-y:auto;overflow-x:hidden;padding:1px 2px 2px 0}
#warehouse-functional-editor .wf-placed-racks-list>p{margin:4px 0;color:#627b98;font-size:11px;line-height:1.35}
#warehouse-functional-editor .wf-placed-rack{display:grid;grid-template-columns:19px minmax(0,1fr);grid-template-areas:'icon code' 'icon name';column-gap:7px;align-items:center;width:100%;min-width:0;padding:8px;border:1px solid #c5d9ef;border-radius:8px;background:#fff;color:#153d72;text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease;scroll-margin-block:8px}
#warehouse-functional-editor .wf-placed-rack:hover{border-color:#76aae3;background:#f5faff}
#warehouse-functional-editor .wf-placed-rack.selected{border-color:#1269cf;background:#eaf4ff;box-shadow:inset 3px 0 0 #0d6ed9,0 0 0 2px rgba(37,127,224,.2)}
#warehouse-functional-editor .wf-placed-rack>span{grid-area:icon;color:#1470cf;font-size:15px;line-height:1}
#warehouse-functional-editor .wf-placed-rack strong{grid-area:code;min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.2;font-weight:900}
#warehouse-functional-editor .wf-placed-rack small{grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a7492;font-size:11px;line-height:1.3}

/* Cotas exteriores de la nave: delimitan de pared a pared y dejan el plano
   completamente libre para mover, seleccionar y alinear objetos. */
#warehouse-functional-editor .wf-building-dimensions{paint-order:stroke;stroke:#fff;stroke-linejoin:round}
#warehouse-functional-editor .wf-building-extension{stroke:#7896b8!important;stroke-width:1px!important;stroke-dasharray:3px 4px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-building-dimension,#warehouse-functional-editor .wf-building-tick{stroke:#174e87!important;stroke-width:1.35px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-building-dimension-text{fill:#123f70!important;font-size:var(--wf-building-dimension-font-size,285px)!important;font-weight:800!important;letter-spacing:1px;paint-order:stroke;stroke:#fff!important;stroke-width:78px!important;stroke-linejoin:round}

/* Estas reglas necesitan incluir el grupo de cotas: así prevalecen sobre
   estilos históricos genéricos de líneas SVG y no convierten las medidas en
   trazos gruesos al actualizar el plano. */
#warehouse-functional-editor .wf-dimensions .wf-building-extension{stroke-width:1px!important}
#warehouse-functional-editor .wf-dimensions .wf-building-dimension,#warehouse-functional-editor .wf-dimensions .wf-building-tick{stroke-width:1.35px!important}
#warehouse-functional-editor .wf-dimensions .wf-building-dimension-text{font-size:var(--wf-building-dimension-font-size,285px)!important;stroke-width:78px!important}
#warehouse-functional-editor .wf-dimensions .wf-rack-dimension{stroke-width:1.35px!important}
#warehouse-functional-editor .wf-dimensions .wf-reference-dimension{stroke-width:1.15px!important}
#warehouse-functional-editor .wf-dimensions .wf-reference-extension{stroke-width:1px!important}
#warehouse-functional-editor .wf-placement-mode{display:grid;gap:5px;margin:10px 0 8px;padding:10px;border:1px solid #77b7ed;border-radius:10px;background:linear-gradient(135deg,#e7f5ff,#f8fcff);box-shadow:inset 4px 0 #1267cc}
#warehouse-functional-editor .wf-placement-mode>b{font-size:12px;color:#0758b5}
#warehouse-functional-editor .wf-placement-mode>span{font-size:12px;font-weight:900;color:#12396b}
#warehouse-functional-editor .wf-placement-mode small{font-size:10px;line-height:1.35;color:#52718e}
#warehouse-functional-editor .wf-placement-mode>div{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:2px}
#warehouse-functional-editor .wf-placement-mode .wf-action{margin:0;padding:7px 5px;font-size:10px}
@media(max-width:980px){#warehouse-functional-editor .wf-inspector{width:min(320px,calc(100vw - 24px));right:12px;padding:12px}}
#warehouse-functional-editor .wf-boundary.selected{stroke:#0b69c9!important;stroke-width:155px!important;stroke-dasharray:220 90!important;filter:drop-shadow(0 0 9px #2d8ee855)}

/* Paneles compactos para que el diseñador completo permanezca utilizable en
   una única pantalla. El plano conserva el protagonismo; la ficha lateral
   sólo muestra estructura y acciones operativas, no coordenadas redundantes. */
#warehouse-functional-editor .wf-layout{grid-template-columns:178px minmax(0,1fr) minmax(255px,292px)}
#warehouse-functional-editor .wf-tools{padding:10px 9px;overflow-x:hidden}
#warehouse-functional-editor .wf-tools h3{margin:4px 2px 7px;font-size:13px;letter-spacing:.04em}
#warehouse-functional-editor .wf-tools label{font-size:11px;margin:7px 2px 4px}
#warehouse-functional-editor .wf-tools select{min-height:34px;padding:6px;font-size:12px}
#warehouse-functional-editor .wf-tools .wf-action{min-height:35px;margin:4px 0;padding:7px 8px;font-size:11px;line-height:1.15}
#warehouse-functional-editor .wf-tools .wf-help{margin-top:8px;padding:8px;font-size:10px}
#warehouse-functional-editor .wf-canvas-wrap{padding:10px;gap:6px}
#warehouse-functional-editor .wf-canvas-title b{font-size:14px}
#warehouse-functional-editor .wf-note{font-size:10px;line-height:1.25}
#warehouse-functional-editor .wf-inspector{padding:9px}
#warehouse-functional-editor .wf-inspector .wf-property-section{margin:6px 0;padding:8px}
#warehouse-functional-editor .wf-inspector .wf-property-section>b{font-size:12px}
#warehouse-functional-editor .wf-inspector .wf-property-section p{margin:4px 0;font-size:11px;line-height:1.3}
#warehouse-functional-editor .wf-inspector .wf-property-section small{display:block;font-size:10px;line-height:1.35;color:#58708f}
#warehouse-functional-editor .wf-location-hierarchy{border-left:4px solid #176cd2!important;background:#eef6ff!important}
#warehouse-functional-editor .wf-location-hierarchy p{font-weight:800;color:#123f78}
#warehouse-functional-editor .wf-structure-editor{background:#fffaf0!important;border-color:#f3d29a!important}
#warehouse-functional-editor .wf-rack-grid{display:grid;gap:5px;padding:6px;margin:5px 0 0;border-color:#c6d8ed;background:#f5f9fd}
#warehouse-functional-editor .wf-rack-grid-row{display:flex;gap:4px;align-items:stretch}
#warehouse-functional-editor .wf-rack-grid-row>b{display:grid;place-items:center;border-radius:5px;background:#164f95;color:#fff;font-size:10px}
#warehouse-functional-editor .wf-rack-grid-row>b{flex:0 0 25px}
#warehouse-functional-editor .wf-rack-position{flex:1 1 42px;min-width:0;display:grid;gap:3px;padding:4px;border:1px solid #a8c4e5;border-radius:5px;background:#fff}
#warehouse-functional-editor .wf-rack-position>em{font-style:normal;font-size:9px;font-weight:900;color:#124a8f}
#warehouse-functional-editor .wf-rack-position>span{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px}
#warehouse-functional-editor .wf-divider{display:grid;place-items:center;min-width:0;height:17px;border-radius:3px;background:#eaf7ef;color:#14733f;font-size:7px;font-style:normal;font-weight:900}
#warehouse-functional-editor .wf-divider.occupied{background:#d9ecff;color:#0752a2;box-shadow:inset 0 0 0 1px #6ba7df}
#warehouse-functional-editor .wf-divider.free{background:#e7f7ec;color:#118142}
#warehouse-functional-editor .wf-inspector-actions{padding-top:8px}
@media(max-width:1180px){#warehouse-functional-editor .wf-layout{grid-template-columns:164px minmax(0,1fr) 260px}#warehouse-functional-editor .wf-tools .wf-help{display:none}}

/* Lectura operativa del plano: una tipografía limpia y ligera, con las
   referencias fuera de las estanterías para que sigan siendo legibles incluso
   cuando el elemento se gira. */
#warehouse-functional-editor,
#warehouse-functional-editor button,
#warehouse-functional-editor input,
#warehouse-functional-editor select,
#warehouse-functional-editor textarea{
  font-family:"Segoe UI Variable Text","Segoe UI",Arial,sans-serif!important;
  font-weight:400;
  letter-spacing:0;
}
#warehouse-functional-editor h1,
#warehouse-functional-editor h2,
#warehouse-functional-editor h3,
#warehouse-functional-editor b,
#warehouse-functional-editor strong,
#warehouse-functional-editor .wf-action{
  font-family:"Segoe UI Variable Display","Segoe UI",Arial,sans-serif!important;
  font-weight:600!important;
}
#warehouse-functional-editor .wf-canvas text{
  font-family:"Segoe UI Variable Text","Segoe UI",Arial,sans-serif!important;
  font-weight:500!important;
  letter-spacing:0!important;
}
#warehouse-functional-editor .wf-rack-label{
  fill:#092f60!important;
  font-family:"Segoe UI Variable Display","Segoe UI",Arial,sans-serif!important;
  font-size:300px!important;
  font-weight:600!important;
  letter-spacing:3px!important;
  text-anchor:middle;
  pointer-events:none;
  paint-order:stroke;
  stroke:#fff!important;
  stroke-width:105px!important;
  stroke-linejoin:round;
}
#warehouse-functional-editor .wf-rack-label-wrap{pointer-events:none}
#warehouse-functional-editor .wf-rack-label.selected{fill:#8a4a00!important}
#warehouse-functional-editor .wf-rack-pick-label{
  font-size:116px!important;
  font-weight:600!important;
  letter-spacing:4px!important;
}

/* Las leyendas de las capas técnicas reducen su tamaño al ampliar el plano.
   El valor llega del SVG según el zoom activo, por lo que no invaden objetos
   ni cotas al recorrer una zona ampliada. */
#warehouse-functional-editor .wf-rack-label{font-size:var(--wf-label-font-size,255px)!important;dominant-baseline:alphabetic}
#warehouse-functional-editor .wf-dimensions text{font-size:var(--wf-dimension-font-size,300px)!important;font-weight:600!important;stroke-width:90px!important}
#warehouse-functional-editor .wf-rack-dimension-text{font-size:var(--wf-rack-dimension-font-size,320px)!important;font-weight:600!important}
#warehouse-functional-editor .wf-reference-text{font-size:var(--wf-reference-font-size,280px)!important;font-weight:600!important}
#warehouse-functional-editor .wf-passage text{font-size:var(--wf-passage-font-size,265px)!important;font-weight:600!important}

/* Durante el arrastre las referencias visuales pasan a segundo plano. Las
   guías turquesa no se atenúan: son la ayuda que confirma la alineación. */
#warehouse-functional-editor .wf-rack-moving .wf-dimensions,
#warehouse-functional-editor .wf-rack-moving .wf-rack-label-wrap{opacity:1;transition:opacity .1s linear}
#warehouse-functional-editor .wf-rack-attaching .wf-dimensions,
#warehouse-functional-editor .wf-rack-attaching .wf-rack-label-wrap{opacity:.48}
#warehouse-functional-editor .wf-rack-attaching .wf-rack.selected{opacity:.88}

/* Código de color de lectura rápida del plano.
   - Azul: tamaño del objeto seleccionado.
   - Naranja: distancia real a una pared u otra estantería.
   - Violeta: ancho de paso de un pasillo.
   - Turquesa: guía temporal de alineación. */
#warehouse-functional-editor .wf-rack-dimension{stroke:#096ee8!important}
#warehouse-functional-editor .wf-rack-dimension-text{fill:#075bc0!important}
#warehouse-functional-editor .wf-reference-dimension{stroke:#ef7d00!important}
#warehouse-functional-editor .wf-reference-text{fill:#a94c00!important}
#warehouse-functional-editor .wf-rack-dimension,
#warehouse-functional-editor .wf-reference-dimension,
#warehouse-functional-editor .wf-reference-extension{vector-effect:non-scaling-stroke;stroke-linecap:round}
/* Dimensiones propias: pegadas al borde del objeto, sin engordar al ampliar. */
#warehouse-functional-editor .wf-rack-dimension{stroke-width:1.35px!important;stroke-dasharray:none!important}
/* Referencias: nacen en el centro de ambos objetos. La línea auxiliar es aún más ligera. */
#warehouse-functional-editor .wf-reference-dimension{stroke-width:1.15px!important;stroke-dasharray:5px 3px!important}
#warehouse-functional-editor .wf-reference-extension{stroke:#e6a042!important;stroke-width:1px!important;stroke-dasharray:2px 3px!important;opacity:.86}
#warehouse-functional-editor .wf-passage line{stroke:#7a3dc1!important}
#warehouse-functional-editor .wf-passage text{fill:#61319a!important}
#warehouse-functional-editor .wf-alignment-guides .wf-guide{stroke:#00a99d!important;stroke-width:1.15px!important;stroke-dasharray:5px 3px!important;vector-effect:non-scaling-stroke;stroke-linecap:round;filter:none!important;opacity:1}
#warehouse-functional-editor .wf-alignment-guides .wf-attachment-guide line{stroke:#15b96b!important;stroke-width:1.15px!important;stroke-dasharray:5px 3px!important;vector-effect:non-scaling-stroke;stroke-linecap:round;filter:none!important}
#warehouse-functional-editor .wf-rack-moving .wf-alignment-guides{opacity:1}
#warehouse-functional-editor .wf-snap-status{font-size:10px;font-weight:800;color:#087943;background:#e9f8ef;border:1px solid #a8dfbf;border-radius:99px;padding:4px 7px;white-space:nowrap}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-type-list){padding:14px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-list{display:grid;grid-template-columns:1fr;gap:8px;max-height:calc(100dvh - 230px);margin:0;overflow-y:auto;overflow-x:hidden;padding-right:2px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:92px;padding:10px 12px;border-radius:10px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card img,#warehouse-functional-editor .wf-inspector .wf-rack-type-icon{width:72px;height:72px;flex:0 0 72px;border-radius:9px;font-size:30px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info{display:grid;gap:4px;min-width:0}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info>b{font-size:14px;line-height:1.15;color:#103c74;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-spec{display:flex;flex-wrap:wrap;gap:3px 10px;color:#426889;font-size:11px;line-height:1.25}
#warehouse-functional-editor .wf-inspector .wf-rack-type-spec strong{color:#0a5bb7}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info small{font-size:10px;line-height:1.32;color:#58718e;display:block;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-select{align-self:center;padding:7px 9px;border:1px solid #8eb9ed;border-radius:7px;background:#f4f9ff;color:#0759bc;font-size:11px;font-weight:900;white-space:nowrap}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card:hover .wf-rack-type-select,#warehouse-functional-editor .wf-inspector .wf-rack-type-card.selected .wf-rack-type-select{background:#1267cc;border-color:#1267cc;color:#fff}
@media(max-height:800px){#warehouse-functional-editor .wf-inspector .wf-rack-type-list{max-height:calc(100dvh - 195px)}#warehouse-functional-editor .wf-inspector .wf-rack-type-card{grid-template-columns:58px minmax(0,1fr) auto;min-height:70px;padding:7px 8px}#warehouse-functional-editor .wf-inspector .wf-rack-type-card img,#warehouse-functional-editor .wf-inspector .wf-rack-type-icon{width:58px;height:58px;flex-basis:58px}#warehouse-functional-editor .wf-inspector .wf-rack-type-info>b{font-size:12px}#warehouse-functional-editor .wf-inspector .wf-rack-type-info small{font-size:9px}}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-type-list){padding:14px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-list{display:grid;grid-template-columns:1fr;gap:8px;max-height:calc(100dvh - 230px);margin:0;overflow-y:auto;overflow-x:hidden;padding-right:2px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:92px;padding:10px 12px;border-radius:10px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card img,#warehouse-functional-editor .wf-inspector .wf-rack-type-icon{width:72px;height:72px;flex:0 0 72px;border-radius:9px;font-size:30px}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info{display:grid;gap:4px;min-width:0}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info>b{font-size:14px;line-height:1.15;color:#103c74;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-spec{display:flex;flex-wrap:wrap;gap:3px 10px;color:#426889;font-size:11px;line-height:1.25}
#warehouse-functional-editor .wf-inspector .wf-rack-type-spec strong{color:#0a5bb7}
#warehouse-functional-editor .wf-inspector .wf-rack-type-info small{font-size:10px;line-height:1.32;color:#58718e;display:block;overflow-wrap:anywhere}
#warehouse-functional-editor .wf-inspector .wf-rack-type-select{align-self:center;padding:7px 9px;border:1px solid #8eb9ed;border-radius:7px;background:#f4f9ff;color:#0759bc;font-size:11px;font-weight:900;white-space:nowrap}
#warehouse-functional-editor .wf-inspector .wf-rack-type-card:hover .wf-rack-type-select,#warehouse-functional-editor .wf-inspector .wf-rack-type-card.selected .wf-rack-type-select{background:#1267cc;border-color:#1267cc;color:#fff}
@media(max-height:800px){#warehouse-functional-editor .wf-inspector .wf-rack-type-list{max-height:calc(100dvh - 195px)}#warehouse-functional-editor .wf-inspector .wf-rack-type-card{grid-template-columns:58px minmax(0,1fr) auto;min-height:70px;padding:7px 8px}#warehouse-functional-editor .wf-inspector .wf-rack-type-card img,#warehouse-functional-editor .wf-inspector .wf-rack-type-icon{width:58px;height:58px;flex-basis:58px}#warehouse-functional-editor .wf-inspector .wf-rack-type-info>b{font-size:12px}#warehouse-functional-editor .wf-inspector .wf-rack-type-info small{font-size:9px}}
#warehouse-functional-editor .wf-rack-position{cursor:pointer;text-align:center;min-width:52px;background:#fff;border:1px solid #a8c9f3;border-radius:7px;padding:5px;color:#123d78}
#warehouse-functional-editor .wf-rack-position:hover{border-color:#1267d8;background:#edf5ff}
#warehouse-functional-editor .wf-rack-position.selected{outline:3px solid #1769d1;background:#dcebff;box-shadow:0 0 0 2px #fff inset}
#warehouse-functional-editor .wf-rack-position.merged{background:#fff3df;border-color:#f2a21b;min-width:108px}
#warehouse-functional-editor .wf-rack-position.blocked{background:#eef0f3;border:1px dashed #7b8794;color:#5d6875;opacity:.82}
#warehouse-functional-editor .wf-rack-position.blocked em{color:#4f5965}
#warehouse-functional-editor .wf-rack-grid-row.merged-row .wf-rack-position{flex:1;text-align:left}
#warehouse-functional-editor .wf-grid-selection{margin-top:10px;padding:9px;border-radius:9px;background:#eef6ff;border:1px solid #c8dffc}
#warehouse-functional-editor .wf-grid-selection small{display:block;font-weight:700;color:#164a8a;margin-bottom:7px}
#warehouse-functional-editor .wf-grid-selection div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#warehouse-functional-editor .wf-grid-selection .wf-action{font-size:12px;padding:8px 6px}
#warehouse-functional-editor .wf-grid-selection p{font-size:11px;line-height:1.3;color:#476889;margin:7px 0 0}

/* Navegación del plano ampliado: el lienzo se recorre arrastrando sobre una
   zona vacía y el minimapa conserva la referencia del área que se está viendo. */
#warehouse-functional-editor .wf-canvas.zoomed svg{cursor:grab}
#warehouse-functional-editor .wf-canvas.zoomed svg:active{cursor:grabbing}
#warehouse-functional-editor .wf-minimap{position:absolute;right:12px;bottom:12px;z-index:6;width:190px;padding:8px;border:1px solid #9dbce4;border-radius:10px;background:#fffffff2;box-shadow:0 8px 20px #143f7533;display:grid;gap:4px;cursor:crosshair;user-select:none;touch-action:none}
#warehouse-functional-editor .wf-minimap b{font-size:11px;color:#123f7b}
#warehouse-functional-editor .wf-minimap span{font-size:9px;color:#58718e}
#warehouse-functional-editor .wf-minimap svg{display:block!important;width:100%!important;height:104px!important;border:1px solid #c9dbf0;border-radius:5px;background:#f8fbff;pointer-events:auto}
#warehouse-functional-editor .wf-minimap-boundary{fill:#eef6ff;stroke:#164f91;stroke-width:14;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-minimap-rooms polygon{fill:#eee4ff;stroke:#7a3dc1;stroke-width:10;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-minimap-aisles rect{fill:#e9ddff;stroke:#7240bd;stroke-width:10;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-minimap-racks rect{fill:#a9cef8;stroke:#095bb6;stroke-width:11;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-minimap-viewport{fill:#0b71df22;stroke:#0565cb;stroke-width:16;vector-effect:non-scaling-stroke;pointer-events:none}
@media(max-width:1200px){#warehouse-functional-editor .wf-minimap{width:150px;padding:6px}#warehouse-functional-editor .wf-minimap svg{height:82px!important}#warehouse-functional-editor .wf-minimap span{display:none}}

/* Trazado técnico fino: el plano debe leerse como un dibujo, no como una
   mancha. Los trazos no escalan al ampliar; el estado seleccionado se indica
   por color y relleno suave, no por bordes gruesos ni sombras. */
#warehouse-functional-editor .wf-boundary{stroke-width:1.4px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-boundary.selected{stroke-width:1.8px!important;stroke-dasharray:7px 4px!important;filter:none!important}
#warehouse-functional-editor .wf-room{stroke-width:1.25px!important;vector-effect:non-scaling-stroke;filter:none!important}
#warehouse-functional-editor .wf-room.selected{stroke-width:2px!important;fill:#ffd2504d!important;filter:none!important}
#warehouse-functional-editor .wf-room.invalid{stroke-width:1.7px!important;stroke-dasharray:7px 4px!important;filter:none!important}
#warehouse-functional-editor .wf-rack rect{stroke-width:1.15px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-rack.selected rect{stroke-width:2px!important;fill:#f9c84673!important;filter:none!important}
#warehouse-functional-editor .wf-rack.multi-selected rect{stroke:#8b4dcc!important;stroke-width:3px!important;fill:#d8c4ff88!important;filter:drop-shadow(0 0 5px #8b4dcc99)!important}
#warehouse-functional-editor .wf-rack.multi-selected .wf-rack-label{fill:#fff!important;stroke:#1f2937!important}
#warehouse-functional-editor .wf-selection-marquee{fill:#4c8dff22;stroke:#176cd2;stroke-width:18;stroke-dasharray:70 45;pointer-events:none}
#warehouse-functional-editor [data-action="tool-select"]{display:none!important}
#warehouse-functional-editor .wf-canvas{cursor:default}
#warehouse-functional-editor .wf-canvas.zoomed{cursor:grab}
#warehouse-functional-editor .wf-canvas.zoomed:active{cursor:grabbing}
#warehouse-functional-editor .wf-canvas.marquee-mode{cursor:crosshair}
#warehouse-functional-editor .wf-tools [data-action="tool-select"]{display:block!important}
#warehouse-functional-editor .wf-context-actions{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:8px}
#warehouse-functional-editor .wf-context-label{font-size:11px;font-weight:800;color:#54708f;text-transform:uppercase;letter-spacing:.04em}
#warehouse-functional-editor .wf-context-action{border:1px solid #8bb6ec;border-radius:7px;background:#fff;color:#0958bf;padding:6px 9px;font-weight:800;font-size:11px;cursor:pointer}
#warehouse-functional-editor .wf-context-action.danger{color:#b52424;border-color:#e7b1b1}
#warehouse-functional-editor .wf-tools{padding:12px;width:auto}
#warehouse-functional-editor .wf-canvas-wrap{padding:12px}
#warehouse-functional-editor .wf-rack path{stroke-width:1px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-rack.selected path{stroke-width:1.35px!important}
#warehouse-functional-editor .wf-rack .wf-rack-pick-face{stroke-width:1.8px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-aisle rect{stroke-width:1.2px!important;stroke-dasharray:7px 4px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-aisle.selected rect{stroke-width:2px!important;filter:none!important}
#warehouse-functional-editor .wf-aisle-handle rect,#warehouse-functional-editor .wf-handle circle:first-child{stroke-width:1.5px!important;vector-effect:non-scaling-stroke;filter:none!important}
#warehouse-functional-editor .wf-feature.wall{stroke-width:2.2px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-feature.door{stroke-width:2.2px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-feature.selected{stroke-width:3px!important;filter:none!important}

/* Elementos físicos: forman parte del plano, pero no del catálogo de ubicaciones. */
#warehouse-functional-editor .wf-feature rect{stroke:#173f70;stroke-width:2px;vector-effect:non-scaling-stroke;fill-opacity:.76;cursor:grab}
#warehouse-functional-editor .wf-feature text{fill:#fff;font-size:var(--wf-feature-font-size,190px);font-weight:800;paint-order:stroke;stroke:#153b66;stroke-width:24px;pointer-events:none}
#warehouse-functional-editor .wf-feature.label .wf-feature-label-text{fill:var(--wf-feature-color,#173f78);font-size:var(--wf-feature-font-size,180px);font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:16px;stroke-linejoin:round;pointer-events:none}
#warehouse-functional-editor .wf-feature.label{cursor:grab}
#warehouse-functional-editor .wf-feature.label .wf-feature-label-hitbox{fill:transparent!important;fill-opacity:0!important;stroke:transparent!important;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:grab}
#warehouse-functional-editor .wf-feature.label.selected .wf-feature-label-hitbox{stroke:#f28b00!important;stroke-width:3px!important;stroke-dasharray:7px 4px;filter:drop-shadow(0 0 5px #f28b0099)}
#warehouse-functional-editor .wf-feature.selected rect{stroke:#f28b00;stroke-width:3px;filter:drop-shadow(0 0 7px #f28b00a0)}
#warehouse-functional-editor .wf-feature-handle rect{fill:#fff;stroke:#f28b00;stroke-width:2px;vector-effect:non-scaling-stroke;cursor:nwse-resize}
#warehouse-functional-editor .wf-feature-rotate{cursor:pointer}
#warehouse-functional-editor .wf-feature-rotate line{stroke:#f28b00;stroke-width:2px;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-feature-rotate circle{fill:#fff;stroke:#f28b00;stroke-width:2px;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-feature-rotate text{fill:#d96d00;stroke:none;font-size:170px;font-weight:900;pointer-events:none}
#warehouse-functional-editor .wf-tools .wf-feature-catalog>div{grid-template-columns:1fr}
#warehouse-functional-editor .wf-minimap-features rect{fill:#64748b;stroke:#334155;stroke-width:18px}
#warehouse-functional-editor .wf-feature-catalog{display:grid;gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid #dce7f5}
#warehouse-functional-editor .wf-feature-catalog>b{font-size:13px;color:#173f70}
#warehouse-functional-editor .wf-feature-catalog>span{font-size:11px;line-height:1.35;color:#617a9b}
#warehouse-functional-editor .wf-feature-catalog>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#warehouse-functional-editor .wf-feature-card{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:7px;align-items:center;min-height:54px;padding:6px;border:1px solid #c7d9ef;border-radius:8px;background:#fff;color:#173f70;text-align:left;cursor:pointer}
#warehouse-functional-editor .wf-feature-card:hover,#warehouse-functional-editor .wf-feature-card.selected{border-color:#1265c5;background:#edf6ff;box-shadow:0 1px 4px #174c8420}
#warehouse-functional-editor .wf-feature-card i{display:grid;place-items:center;grid-row:1 / span 2;width:30px;height:30px;border-radius:7px;color:#fff;font-style:normal;font-weight:900;font-size:17px}
#warehouse-functional-editor .wf-feature-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
#warehouse-functional-editor .wf-feature-card small{overflow:hidden;color:#6680a1;font-size:9px;line-height:1.15}
#warehouse-functional-editor .wf-draft{stroke-width:1.2px!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-minimap-boundary{stroke-width:1px!important}
#warehouse-functional-editor .wf-minimap-rooms polygon,#warehouse-functional-editor .wf-minimap-aisles rect{stroke-width:1px!important}
#warehouse-functional-editor .wf-minimap-racks rect{stroke-width:1.1px!important}
#warehouse-functional-editor .wf-minimap-viewport{fill:#0b71df14!important;stroke:#0565cb!important;stroke-width:1.25px!important;vector-effect:non-scaling-stroke}

/* Matriz de ubicaciones: el inspector reserva espacio suficiente para ver la
   estructura completa y deja sus acciones al alcance, sin barra horizontal. */
#warehouse-functional-editor .wf-layout{grid-template-columns:minmax(185px,220px) minmax(0,1fr) clamp(380px,29vw,460px)}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid){padding:9px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-object-header{margin:-9px -9px 5px;padding:7px 9px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-object-header p{display:none}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-property-section{margin:5px 0;padding:7px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-location-hierarchy,
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-property-section:not(:has(.wf-rack-grid)){padding:6px 8px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-location-hierarchy p,
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-location-hierarchy small,
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-property-section:not(:has(.wf-rack-grid)) small{font-size:9px;line-height:1.2;margin:2px 0;display:block}
#warehouse-functional-editor .wf-rack-grid{display:grid;gap:4px;padding:6px;margin:0;max-width:100%;overflow:hidden}
#warehouse-functional-editor .wf-rack-grid-label{display:grid;place-items:center;min-width:0;min-height:35px;padding:2px;border:1px solid #8bb6ec;border-radius:6px;background:#164f95;color:#fff;font:900 10px/1 inherit;text-align:center}
#warehouse-functional-editor button.wf-rack-grid-label{cursor:pointer}
#warehouse-functional-editor button.wf-rack-grid-label:hover{background:#0d65c8;border-color:#0d65c8}
#warehouse-functional-editor button.wf-rack-grid-label.selected{background:#ffd36b;border-color:#d17a00;color:#6e3a00;box-shadow:0 0 0 2px #fff inset}
#warehouse-functional-editor .wf-rack-grid-row{display:grid;grid-template-columns:30px repeat(4,minmax(0,1fr));gap:4px;min-height:35px}
#warehouse-functional-editor .wf-rack-grid-row>b{min-width:0;min-height:35px;font-size:10px}
#warehouse-functional-editor .wf-rack-position{min-width:0!important;min-height:35px;padding:3px 2px;border-radius:6px;overflow:hidden}
#warehouse-functional-editor .wf-rack-position em{font-size:10px;line-height:1;display:block}
#warehouse-functional-editor .wf-rack-position>span{min-height:14px;font-size:7px;line-height:1;gap:1px}
#warehouse-functional-editor .wf-divider{font-size:7px;min-width:0;padding:1px 0}
#warehouse-functional-editor .wf-grid-selection{margin-top:6px;padding:7px 8px}
#warehouse-functional-editor .wf-grid-selection header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
#warehouse-functional-editor .wf-grid-selection header small{margin:0;font-size:10px}
#warehouse-functional-editor .wf-grid-clear{border:0;background:transparent;color:#0a5ebd;font-size:10px;font-weight:800;cursor:pointer;padding:2px 4px}
#warehouse-functional-editor .wf-grid-clear:disabled{opacity:.45;cursor:default}
#warehouse-functional-editor .wf-grid-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}
#warehouse-functional-editor .wf-grid-actions .wf-action{min-height:33px!important;padding:5px!important;font-size:10px!important;line-height:1.1!important}
#warehouse-functional-editor .wf-grid-selection p{font-size:9px;line-height:1.2;margin:6px 0 0}
@media(max-height:760px){#warehouse-functional-editor .wf-rack-grid-row,#warehouse-functional-editor .wf-rack-grid-row>b,#warehouse-functional-editor .wf-rack-position{min-height:29px}#warehouse-functional-editor .wf-rack-position>span{display:none}#warehouse-functional-editor .wf-rack-grid{gap:2px;padding:4px}#warehouse-functional-editor .wf-grid-selection p{display:none}}

/* Aviso de zona parcialmente ocupada: se mantiene visible sin ocultar el plano.
   El relleno no intercepta clics; la zona se corrige desde su contorno o tiradores. */
#warehouse-functional-editor .wf-room.invalid{fill:#ef4444!important;fill-opacity:.09!important;stroke:#dc2626!important;stroke-width:1.5px!important;stroke-dasharray:6px 4px!important;filter:none!important;pointer-events:visibleStroke}
#warehouse-functional-editor .wf-aisle.invalid rect{fill:#ef4444!important;fill-opacity:.09!important;stroke:#dc2626!important;stroke-width:1.5px!important;stroke-dasharray:6px 4px!important;filter:none!important;pointer-events:visibleStroke}
#warehouse-functional-editor .wf-room.invalid.selected{fill:#f59e0b!important;fill-opacity:.15!important;stroke:#c2410c!important;stroke-width:2px!important;pointer-events:visibleStroke}
#warehouse-functional-editor .wf-aisle.invalid.selected rect{fill:#f59e0b!important;fill-opacity:.15!important;stroke:#c2410c!important;stroke-width:2px!important;pointer-events:visibleStroke}
#warehouse-functional-editor .wf-room.invalid + .wf-room-label,#warehouse-functional-editor .wf-aisle.invalid text{fill:#9f1239!important;paint-order:stroke;stroke:#fff;stroke-width:1.2px}
/* Estado de validacion del almacen: accion destructiva claramente diferenciada. */
#warehouse-functional-editor .wf-action.wf-validation-danger{background:linear-gradient(135deg,#b42318,#d92d20);color:#fff;border-color:#b42318;justify-content:center;box-shadow:0 5px 12px #b4231838}
#warehouse-functional-editor .wf-action.wf-validation-danger:hover{background:linear-gradient(135deg,#991b1b,#b42318);border-color:#991b1b}
#warehouse-functional-editor .wf-action.wf-validation-primary{justify-content:center}
/* Rotulación limpia del plano: sin cajas blancas ni halos que oculten la nave. */
#warehouse-functional-editor .wf-rack-label,
#warehouse-functional-editor .wf-passage text,
#warehouse-functional-editor .wf-zone-scale,
#warehouse-functional-editor .wf-aisle-label{paint-order:normal!important;stroke:none!important;stroke-width:0!important}
#warehouse-functional-editor .wf-rack-label{fill:#092f60!important}
#warehouse-functional-editor .wf-passage text{fill:#4e287d!important;font-weight:700!important}
#warehouse-functional-editor .wf-aisle-label{fill:#4e287d!important;text-anchor:start!important;font-weight:700!important}
#warehouse-functional-editor .wf-aisle-label{font-size:190px!important;letter-spacing:0!important}
#warehouse-functional-editor .wf-rack-label{fill:#fff!important;font-size:140px!important;font-weight:700!important;paint-order:normal!important;stroke:none!important;text-anchor:middle!important}
#warehouse-functional-editor .wf-passage line{stroke-width:18px!important;stroke-dasharray:55 35!important}
#warehouse-functional-editor .wf-passage-value{font-size:190px!important;font-weight:700!important}
#warehouse-functional-editor .wf-aisle.invalid{pointer-events:all!important;cursor:pointer!important}
#warehouse-functional-editor .wf-aisle.invalid rect{pointer-events:all!important;stroke-width:150px!important;stroke:#dc2626cc!important;fill:#fee2e244!important}
#warehouse-functional-editor .wf-rack-label{font-size:120px!important;fill:#fff!important;color:#fff!important}
/* Estado inválido definitivo: discreto, legible y editable. Estas reglas van
   al final para impedir que estilos antiguos vuelvan a dibujar franjas enormes. */
#warehouse-functional-editor .wf-aisle.invalid rect,
#warehouse-functional-editor .wf-room.invalid{stroke:#dc2626!important;stroke-width:22px!important;stroke-dasharray:90px 55px!important;fill:#fee2e21c!important;filter:none!important;pointer-events:all!important}
#warehouse-functional-editor .wf-aisle.invalid .wf-aisle-label,
#warehouse-functional-editor .wf-room.invalid + .wf-room-label{fill:#b42318!important;color:#b42318!important;font-size:150px!important;font-weight:700!important;stroke:none!important}
#warehouse-functional-editor .wf-aisle.invalid{cursor:pointer!important;pointer-events:all!important}
#warehouse-functional-editor .wf-rack .wf-rack-label{fill:#fff!important;color:#fff!important;font-size:110px!important;font-weight:600!important;letter-spacing:0!important;paint-order:stroke!important;stroke:#111827!important;stroke-width:10px!important;stroke-linejoin:round!important;text-anchor:middle!important;dominant-baseline:middle!important}
#warehouse-functional-editor .wf-rack.selected .wf-rack-label{fill:#fff!important;color:#fff!important}
/* Última capa de seguridad: el estado inválido nunca puede convertirse en
   una mancha roja al escalar el SVG. */
#warehouse-functional-editor .wf-aisle.invalid rect{stroke:#dc2626!important;stroke-width:1.5px!important;stroke-dasharray:6px 4px!important;fill:#ef4444!important;fill-opacity:.09!important;filter:none!important;pointer-events:all!important}
#warehouse-functional-editor .wf-room.invalid{stroke:#dc2626!important;stroke-width:1.5px!important;stroke-dasharray:6px 4px!important;fill:#ef4444!important;fill-opacity:.09!important;filter:none!important;pointer-events:all!important}
#warehouse-functional-editor .wf-aisle.invalid .wf-aisle-label{fill:#b42318!important;font-size:150px!important;stroke:none!important}
#warehouse-functional-editor .wf-aisle-alignment{stroke:#0f9f9a!important;stroke-width:1.5px!important;stroke-dasharray:8px 6px!important;vector-effect:non-scaling-stroke;opacity:.9}
#warehouse-functional-editor .wf-aisle.overlap rect{stroke:#c2410c!important;stroke-width:2px!important;stroke-dasharray:6px 4px!important;fill:#f9731618!important;vector-effect:non-scaling-stroke}
#warehouse-functional-editor .wf-aisle.overlap .wf-aisle-label{fill:#b42318!important}
/* Etiqueta compacta en la franja superior de cada estantería. */
#warehouse-functional-editor .wf-rack .wf-rack-label{
  fill:#334155!important;
  color:#334155!important;
  font-weight:700!important;
  letter-spacing:0!important;
  paint-order:stroke!important;
  stroke:#fff!important;
  stroke-width:7px!important;
  stroke-linejoin:round!important;
  text-anchor:middle!important;
  dominant-baseline:middle!important;
  pointer-events:none!important
}
#warehouse-functional-editor .wf-rack.selected .wf-rack-label{fill:#1e293b!important;stroke:#fff!important}
#warehouse-functional-editor .wf-rack .wf-rack-label{text-anchor:middle!important;dominant-baseline:middle!important;stroke:#fff!important;stroke-width:7px!important;paint-order:stroke fill!important}
.warehouse-location-merge-note{display:block;color:#7b4bb3;font-weight:600;font-size:.78rem;margin-top:2px}
#smartwarehouse-confirm{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;background:rgba(5,30,70,.38)}
.wf-rack-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding-top:8px}.wf-rack-actions-main,.wf-rack-actions-save{display:flex;align-items:center;gap:8px}.wf-rack-actions .wf-action{white-space:nowrap;min-height:34px}.wf-rack-actions-save .wf-action{min-width:128px}.wf-rack-actions-main .danger{color:#a92b2b;border-color:#efb5b5;background:#fff7f7}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid){overflow:hidden!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-inspector-info{display:flex;flex-direction:column;min-height:0;height:100%}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-object-header{position:sticky;top:0;z-index:4;flex:0 0 auto;background:#f7fbff}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-property-section:has(.wf-rack-grid){flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-grid{flex:1 1 auto;min-height:0;overflow:hidden}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-inspector-actions{flex:0 0 auto;display:block;padding:7px 0 0;position:sticky;bottom:0}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions{display:flex!important;align-items:center;justify-content:space-between;gap:8px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions-main{display:flex;gap:7px;flex:0 0 auto}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions-save{display:flex;margin-left:auto;flex:0 0 auto}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions .wf-action{width:auto;min-width:0;padding:8px 9px;font-size:11px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions .wf-action{white-space:nowrap;overflow:visible;text-overflow:clip;flex:0 0 auto}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions-main .wf-action{font-size:10px;padding-left:7px;padding-right:7px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions-save .wf-action{font-size:10px;padding-left:8px;padding-right:8px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection{flex:0 0 auto;margin-top:5px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection p{font-size:9px;line-height:1.15;margin:3px 0 0}
#warehouse-functional-editor .wf-inspector-actions .wf-action:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.35);pointer-events:none}
/* Diseñador: la matriz gana toda la altura y sus acciones quedan en un carril
   lateral estable. Solo la matriz desplaza verticalmente cuando hace falta. */
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid){position:relative;padding:8px!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-property-section:has(.wf-rack-grid){display:grid!important;grid-template-columns:minmax(0,1fr) 132px;grid-template-rows:auto minmax(0,1fr);column-gap:8px;padding:7px!important;padding-bottom:76px!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-property-section:has(.wf-rack-grid)>b{grid-column:1/-1;grid-row:1;margin-bottom:5px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-grid{grid-column:1;grid-row:2;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding-right:4px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection{grid-column:2;grid-row:2;align-self:stretch;display:flex;flex-direction:column;gap:6px;margin:0!important;padding:7px!important;min-width:0;overflow:hidden}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection header{display:grid;grid-template-columns:1fr;gap:5px;margin:0!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection header small{font-size:9px!important;line-height:1.15;margin:0!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection .wf-grid-clear{width:100%;min-height:31px}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-actions{grid-template-columns:1fr!important;grid-auto-rows:minmax(36px,auto);gap:6px!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-actions .wf-action{width:100%;min-height:36px!important;font-size:10px!important;white-space:normal!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-grid-selection p{display:none!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-inspector-actions{position:absolute!important;right:8px!important;bottom:8px!important;width:132px!important;margin:0!important;padding:0!important;background:transparent!important;z-index:8}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;padding:0!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions-main,#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions-save{display:block!important;margin:0!important}
#warehouse-functional-editor .wf-inspector:has(.wf-rack-grid) .wf-rack-actions .wf-action{display:block;width:100%!important;min-height:34px!important;margin:0!important;padding:7px 5px!important;white-space:normal!important;font-size:10px!important;text-align:center!important}
.sw-confirm-card{width:min(560px,calc(100vw - 32px));background:#fff;border:1px solid #c8dbf5;border-radius:18px;box-shadow:0 18px 60px rgba(5,35,75,.28);padding:24px;color:#073b79;font-family:inherit}.sw-confirm-card strong{font-size:1.15rem}.sw-confirm-card p{margin:16px 0 22px;color:#254d7f;line-height:1.45}.sw-confirm-card>div{display:flex;justify-content:flex-end;gap:10px}.sw-confirm-card button{border:1px solid #b9d3f4;border-radius:10px;padding:10px 22px;background:#fff;color:#075cc4;font-weight:700;cursor:pointer}.sw-confirm-card [data-accept]{background:#126bd1;color:#fff;border-color:#126bd1}
.sw-confirm-card header,.sw-message-card header{display:flex;align-items:center;gap:10px}.sw-confirm-card header img,.sw-message-card header img{width:30px;height:30px;object-fit:contain}.sw-message-card header strong{font-size:1.05rem}
.sw-confirm-card label{display:grid;gap:6px;margin:0 0 18px;color:#254d7f;font-size:12px;font-weight:800}.sw-confirm-card input{min-width:0;padding:10px 11px;border:1px solid #b9d3f4;border-radius:9px;background:#fff;color:#073b79;font:inherit}.sw-confirm-card input:focus{outline:3px solid #d8eaff;border-color:#126bd1}
.wf-info-button{border:1px solid #b9d2f5;background:#eef5ff;color:#0b4b95;border-radius:8px;padding:7px 11px;font-weight:700;cursor:pointer}.wf-rules-modal{position:absolute;inset:0;background:rgba(7,35,72,.45);display:flex;align-items:center;justify-content:center;z-index:30}.wf-rules-card{width:min(620px,calc(100% - 36px));max-height:calc(100% - 36px);overflow:auto;background:#fff;border:1px solid #c9dcf5;border-radius:14px;box-shadow:0 18px 55px rgba(5,39,84,.28);padding:20px;color:#173f73}.wf-rules-card header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #dbe8f8;padding-bottom:12px}.wf-rules-card header small{font-size:11px;font-weight:800;letter-spacing:.08em;color:#1764c0}.wf-rules-card h3{margin:4px 0 0;font-size:22px}.wf-rules-card header button{border:0;background:transparent;font-size:24px;color:#56779e;cursor:pointer}.wf-rules-card ul{margin:16px 0;padding-left:22px;display:grid;gap:10px;line-height:1.4}.wf-rules-card footer{display:flex;justify-content:flex-end;border-top:1px solid #dbe8f8;padding-top:14px}

/* Selección de zonas bajo pasillos: el relleno visual no intercepta el puntero. */
#warehouse-functional-editor .wf-aisle{pointer-events:none!important}
#warehouse-functional-editor .wf-aisle rect{pointer-events:visibleStroke!important}
#warehouse-functional-editor .wf-aisle-label[data-select^="aisle:"]{pointer-events:all!important;cursor:grab}

/* Cabecera estable del plano. La segunda fila reserva siempre dos líneas para
   mensajes de estado o acoplamiento y evita que el lienzo cambie de posición. */
#warehouse-functional-editor .wf-canvas-title{
  display:grid!important;
  grid-template-rows:36px 30px!important;
  align-items:stretch!important;
  flex:0 0 66px!important;
  width:100%!important;
  min-width:0!important;
  min-height:66px!important;
  height:66px!important;
  max-height:66px!important;
  gap:0!important;
  overflow:hidden!important;
}
#warehouse-functional-editor .wf-canvas-title-main{
  display:grid!important;
  grid-template-columns:minmax(120px,1fr) auto auto auto!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  min-height:0!important;
  height:36px!important;
  overflow:hidden!important;
}
#warehouse-functional-editor .wf-canvas-title-main>b{
  overflow:hidden!important;
  min-width:0!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#warehouse-functional-editor .wf-canvas-title-main .wf-context-actions{
  min-width:0!important;
  margin:0!important;
}
#warehouse-functional-editor .wf-canvas-title-main .wf-undo{
  min-height:28px!important;
}
#warehouse-functional-editor .wf-canvas-message-lane{
  display:flex!important;
  align-items:flex-start!important;
  align-content:flex-start!important;
  flex-wrap:wrap!important;
  gap:2px 8px!important;
  min-width:0!important;
  min-height:30px!important;
  height:30px!important;
  max-height:30px!important;
  padding:2px 0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
#warehouse-functional-editor .wf-canvas-message-lane :is(.wf-status,.wf-snap-status){
  display:-webkit-box!important;
  overflow:hidden!important;
  max-width:100%!important;
  margin:0!important;
  padding:1px 6px!important;
  font-size:10px!important;
  line-height:12px!important;
  white-space:normal!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}
