.physical-map{color:var(--ink,#172033);background:#fff;border:1px solid var(--line,#e2e5ee);border-radius:14px;overflow:hidden;width:100%;min-width:0}.physical-map *{box-sizing:border-box}.physical-map button,.physical-map select,.physical-map input{font-family:inherit}.pm-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line,#e2e5ee);border-radius:8px;background:#fff;color:var(--ink,#172033);padding:8px 12px;font-size:12px;font-weight:650;line-height:1.4;cursor:pointer;white-space:nowrap;touch-action:manipulation}.pm-button:hover:not(:disabled){border-color:var(--primary-border);background:var(--primary-tint)}.pm-button.active{background:var(--primary-soft,#fff1e8);color:var(--primary-deep,#7c2d12);border-color:var(--primary-border)}.pm-button.primary{color:var(--primary-on,#172033);background:var(--primary-fill,#ff8748);border-color:var(--primary-fill,#ff8748)}.pm-button.primary:hover:not(:disabled){background:var(--primary-fill-hover,#f77939);border-color:var(--primary-fill-hover,#f77939)}.pm-button:disabled{opacity:.45;cursor:not-allowed}.physical-map button:focus-visible,.physical-map input:focus-visible,.physical-map select:focus-visible{outline:3px solid var(--primary-focus);outline-offset:-3px}.pm-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line,#e2e5ee)}.pm-warehouse{display:grid;gap:5px;min-width:180px;max-width:280px}.pm-warehouse>span{font-size:11px;font-weight:650;color:var(--muted,#637087)}.pm-warehouse select{min-height:44px;max-width:100%;width:100%;padding:8px 28px 8px 10px;border:1px solid var(--line,#e2e5ee);border-radius:8px;background:#fff;font-size:13px}.pm-modes{display:flex;gap:6px}.pm-settings-link{margin-left:auto}.pm-spaces{display:flex;gap:7px;overflow:auto;padding:12px 16px;border-bottom:1px solid var(--line,#e2e5ee);background:#fafbfe}.pm-spaces .pm-button{flex:none}.pm-map-controls{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:12px 16px}.pm-room-title{display:grid;gap:4px}.pm-room-title strong{font-size:14px}.pm-room-title small{font-size:11px;color:var(--muted,#637087)}.pm-zoom{display:flex;align-items:center;gap:5px;max-width:100%}.pm-zoom>[data-pm-action=zoom-in],.pm-zoom>[data-pm-action=zoom-out]{font-size:23px;padding:5px}.pm-zoom-slider{width:120px;min-width:60px;display:flex;align-items:center;min-height:44px}.pm-zoom-slider input{min-width:0;width:100%;accent-color:var(--primary,#ad3d0d);padding:0;border:0;box-shadow:none;min-height:24px}.pm-zoom-value{min-width:64px;font-variant-numeric:tabular-nums}.physical-map .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pm-instruction{display:grid;gap:4px;background:#f4f7fc;padding:12px 16px;border-block:1px solid var(--line,#e2e5ee);font-size:12px;line-height:1.6}.pm-instruction strong{color:#263752;font-size:13px}.pm-instruction span,.pm-instruction small{color:var(--muted,#637087)}.pm-instruction small{font-size:10px}.pm-instruction.editing{background:var(--primary-soft)}.pm-instruction.editing strong{color:var(--primary-deep,#7c2d12)}.pm-notice{padding:8px 16px;font-size:11px;line-height:1.6;background:#fff8ea;color:#875500;border-bottom:1px solid #f1dfbf}.pm-actionbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 16px;min-height:60px;font-size:12px;border-bottom:1px solid var(--line,#e2e5ee)}.pm-actionbar>span,.pm-actionbar>strong{flex:1;min-width:0;overflow-wrap:anywhere}.pm-actionbar strong{color:var(--primary-deep,#7c2d12)}.pm-feedback{height:40px;min-height:40px;padding:8px 16px;overflow:auto;font-size:11px;line-height:1.7;background:var(--primary-tint);color:var(--primary-deep,#7c2d12)}.pm-feedback[aria-hidden=true]{visibility:hidden}.pm-feedback.warning{background:#fff5e5;color:#925700}.pm-feedback.error{background:#fff0f0;color:#b42332}.pm-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-width:0;border-top:1px solid var(--line,#e2e5ee)}.pm-map-pane{min-width:0}.pm-viewport{position:relative;width:100%;height:min(64vh,720px);min-height:340px;overflow:auto;overscroll-behavior:contain;touch-action:none;background:#e9edf3;isolation:isolate;scrollbar-gutter:stable;cursor:grab;outline-offset:-3px}.pm-viewport:active{cursor:grabbing}.pm-sizer{position:relative;min-width:1px;min-height:1px}.pm-board{position:absolute;left:0;top:0;transform-origin:0 0;isolation:isolate;background-color:#fbfcfe;background-image:linear-gradient(#cfd6e250 1px,transparent 1px),linear-gradient(90deg,#cfd6e250 1px,transparent 1px);background-size:100px 100px;box-shadow:inset 0 0 0 2px #95a3ba}.pm-drawing-frame{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.pm-background{position:absolute;max-width:none;object-fit:fill;pointer-events:none;user-select:none}.pm-empty-space{position:absolute;top:22px;left:22px;color:#67748c;font-size:15px}.pm-rack{position:absolute;display:flex;flex-direction:column;overflow:hidden;border:1.5px solid #8d9bb3;border-radius:3px;background:#f8faff;user-select:none;z-index:1;box-shadow:0 2px 5px #16223815}.pm-rack.selected{border-color:var(--primary,#ad3d0d);box-shadow:0 0 0 2px var(--primary-halo);z-index:2}.pm-rack.floor{background:#f1faf5;border-color:#73a68b}.pm-rack-title{display:flex;justify-content:space-between;align-items:center;gap:4px;width:100%;height:17px;min-height:0;flex:0 0 auto;max-height:30%;padding:1px 4px;line-height:1;background:#dfe7f3;color:#233654;border:0;font-size:10px;text-align:left;cursor:pointer;overflow:hidden;touch-action:none}.pm-rack-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.pm-rack-title b{flex:none;font-size:9px;color:var(--primary-deep)}.floor .pm-rack-title{background:#dceee3}.editing .pm-rack-title{cursor:grab;background:#ffe1cf}.pm-tier-bands{display:flex;flex-direction:column;flex:1;min-height:0}.pm-tier-band{display:flex;flex:1;min-height:0;min-width:0;width:100%;border:0;border-top:1px solid #c9d3e2;background:transparent;overflow:hidden}.pm-tier-label{display:flex;align-items:center;gap:3px;flex:1;min-width:0;min-height:0;padding:0 3px;border:0;background:transparent;font-size:8px;line-height:1.1;color:#34465f;cursor:grab;touch-action:none;overflow:hidden}.pm-tier-label b{flex:none;color:#7c2d12;font-size:8px;white-space:nowrap}.pm-tier-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.pm-tier-label em{font-size:8px;font-weight:700;font-style:normal;flex:none;white-space:nowrap}.pm-tier-band.selected{background:#ffe1cf}.pm-map-stock{display:flex;gap:3px;align-items:center;min-width:0;width:49%;padding:0 3px;border:0;border-left:1px dashed var(--primary-border);background:#fff;color:#553e2e;font-size:8px;line-height:1;cursor:grab;touch-action:none}.pm-map-stock span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.pm-map-stock b{font-size:8px;flex:none}.pm-map-stock.selected{background:#ffdcc6}.pm-scale{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;min-height:42px;overflow:hidden;font-size:10px;color:var(--muted,#637087);border-top:1px solid var(--line,#e2e5ee)}.pm-scale>span:first-child{display:flex;align-items:center;gap:6px;flex:none}.pm-scale i{display:inline-block;height:6px;border:1px solid #405068;border-top:0;max-width:300px;min-width:10px}.pm-scale>span:last-child{text-align:right}.pm-detail{min-width:0;border-left:1px solid var(--line,#e2e5ee);max-height:calc(min(64vh,720px) + 42px);min-height:382px;overflow:auto;overscroll-behavior:contain;background:#fff}.pm-detail>header{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:12px;position:sticky;top:0;z-index:4;background:#fff;border-bottom:1px solid var(--line,#e2e5ee)}.pm-detail>header>div{display:grid;gap:4px;min-width:0}.pm-detail>header strong{font-size:14px;overflow-wrap:anywhere}.pm-detail>header small{font-size:11px;color:var(--muted,#637087)}.pm-detail-tier{border-bottom:1px solid var(--line,#e2e5ee)}.pm-detail-tier.selected{box-shadow:inset 3px 0 #ad3d0d}.pm-detail-tier-head{display:flex;align-items:center;gap:8px;min-height:44px;width:100%;text-align:left;padding:10px 12px;border:0;background:#f2f5fa;color:#263752;cursor:grab;touch-action:none}.pm-detail-tier-head b{font-size:12px;border-radius:5px;background:#ffe1cf;color:var(--primary-deep);padding:4px 7px;white-space:nowrap}.pm-detail-tier-head span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:11px;font-weight:650}.pm-detail-tier-head strong{font-size:11px;flex:none}.pm-stock{display:flex;align-items:center;gap:8px;min-height:52px;width:100%;padding:10px 12px;text-align:left;border:0;border-bottom:1px solid #edf0f5;background:#fff;color:#27364e;cursor:grab;touch-action:none}.pm-stock:hover{background:var(--primary-tint)}.pm-stock.selected{background:var(--primary-soft)}.pm-stock>span{min-width:0;flex:1}.pm-stock strong{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.pm-stock small{display:block;font-size:10px;line-height:1.5;color:#6c7789;overflow-wrap:anywhere}.pm-stock>b{font-size:13px;white-space:nowrap}.pm-stock i{font-size:20px;color:#9a5c3b;font-style:normal}.pm-stock:disabled{cursor:default;opacity:.6}.pm-no-stock{font-size:11px;color:#8390a4;padding:14px 12px;margin:0}.pm-detail .pm-button.destination{margin:7px 12px;width:calc(100% - 24px);background:#fff1e8;color:var(--primary-deep);border-color:var(--primary-border);min-height:36px}.pm-workflow-hint,.pm-detail-edit,.pm-detail>p{font-size:11px;line-height:1.6;padding:10px 12px;margin:0;color:var(--muted,#637087)}.pm-detail-edit{background:var(--primary-tint)}.pm-drop-target{outline:3px solid #148059!important;outline-offset:-3px;background:#e5f9ee!important}.pm-invalid{outline:3px solid #c5263a!important;outline-offset:-3px}.pm-dragging{opacity:.8;z-index:5}.pm-drag-ghost{position:fixed;z-index:10000;pointer-events:none;padding:10px 14px;background:#1c2840;color:#fff;border-radius:8px;font:650 12px/1.5 var(--font,system-ui);box-shadow:0 8px 20px #121a2f33}.pm-setup-empty{display:grid;justify-items:start;gap:14px;padding:36px 24px;font-size:13px;line-height:1.6}.pm-setup-empty strong{font-size:17px}.pm-setup-empty p{margin:0;color:var(--muted,#637087)}.pm-setup-empty small{font-size:11px;color:var(--muted,#637087)}
@media(max-width:1050px){.pm-workspace{grid-template-columns:minmax(0,1fr) 270px}.pm-zoom-slider{width:90px}.pm-map-controls{gap:10px}.pm-detail-tier-head{gap:5px;padding-inline:9px}.pm-stock{padding-inline:9px}}
@media(max-width:760px){.pm-toolbar{padding:12px;gap:8px}.pm-warehouse{max-width:none;min-width:150px;flex:1}.pm-settings-link{margin-left:0}.pm-map-controls{padding:12px;display:grid;gap:10px}.pm-zoom{width:100%;gap:4px}.pm-zoom-slider{width:auto;flex:1;min-width:35px}.pm-zoom-value{min-width:54px;padding-inline:5px}.pm-zoom>[data-pm-action=fit]{padding-inline:8px;font-size:11px}.pm-workspace{grid-template-columns:minmax(0,1fr)}.pm-detail{border-left:0;border-top:1px solid var(--line,#e2e5ee);min-height:0;max-height:360px}.pm-viewport{height:52vh;min-height:320px}.pm-feedback{height:52px;min-height:52px;padding-inline:12px}.pm-instruction,.pm-notice,.pm-actionbar{padding-inline:12px}.pm-scale{font-size:9px;gap:8px}.pm-scale>span:last-child{max-width:65%}.pm-spaces{padding-inline:12px}.pm-actionbar{min-height:60px}.pm-instruction small{font-size:10px}}
@media(max-width:400px){.pm-modes{order:3;width:100%}.pm-modes .pm-button{flex:1}.pm-settings-link{margin-left:auto}.pm-warehouse{min-width:140px}.pm-zoom .pm-button{min-width:38px}.pm-zoom-slider{min-width:30px}.pm-zoom-value{min-width:46px!important}.pm-scale i{max-width:110px}}
@media(prefers-reduced-motion:reduce){.physical-map *{scroll-behavior:auto}}
.pm-stock-row{display:flex;min-width:0;border-bottom:1px solid #edf0f5}.pm-stock-row .pm-stock{flex:1;min-width:0;width:auto;border-bottom:0;touch-action:pan-y}.pm-stock-row .pm-stock i{display:none}.pm-stock-grip{display:flex;align-items:center;justify-content:center;flex:none;width:38px;min-height:44px;padding:5px;border:0;border-left:1px solid #edf0f5;background:#fff;color:#9a5c3b;font-size:22px;cursor:grab;touch-action:none}
/* Keep the map near the controls; feedback overlays the board without shifting drag coordinates. */
.physical-map{position:relative}.pm-toolbar{padding:10px 14px;align-items:center}.pm-warehouse{display:flex;align-items:center;gap:8px;max-width:310px}.pm-warehouse>span{white-space:nowrap}.pm-spaces{padding:7px 14px}.pm-map-controls{padding:8px 14px}.pm-instruction{padding:7px 14px;gap:2px}.pm-instruction>strong{display:none}.pm-actionbar{padding:6px 14px;min-height:44px}.pm-feedback{position:absolute;left:8px;right:8px;z-index:8;height:auto;min-height:0;max-height:56px;border-radius:6px;box-shadow:0 2px 7px #17203312}.pm-feedback[aria-hidden=true]{display:none}.pm-tier-label,.pm-tier-label b,.pm-tier-label em,.pm-map-stock,.pm-map-stock b{font-size:11px}.pm-rack-title{font-size:12px;height:20px}.pm-rack-title b{font-size:10px}@media(max-width:760px){.pm-feedback{height:auto;min-height:0;max-height:76px}.pm-instruction>small{font-size:10px}.pm-warehouse{max-width:none}.pm-spaces{padding:7px 12px}.pm-actionbar{min-height:44px}}
/* The ruler length is calculated in physical units; CSS must never clamp it. */
.physical-map .pm-ruler i{flex:none;min-width:0;max-width:none}.pm-ruler b{font-size:inherit;font-weight:500;white-space:nowrap}
.physical-map .pm-feedback{position:fixed;bottom:18px;left:260px;right:24px;max-width:800px;margin:auto;pointer-events:none;box-shadow:0 4px 20px #17203325}@media(max-width:760px){.physical-map .pm-feedback{left:12px;right:12px;bottom:12px}}

/* v0.11 CBM heat scale on rack tiers */
.pm-tier-band[class*="heat-"]{background:linear-gradient(var(--heat),var(--heat)),#fff}
.pm-tier-band.heat-unknown{background:repeating-linear-gradient(135deg,rgba(23,35,61,.08) 0 5px,transparent 5px 10px),linear-gradient(var(--heat),var(--heat)),#fff!important}
.pm-tier-band.heat-over{box-shadow:inset 0 0 0 2px #d16a70}
