.warehouse-page{display:grid;gap:14px;min-width:0}.warehouse-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.warehouse-search{position:relative;display:flex;align-items:center;min-width:280px;flex:1;max-width:560px;background:#fff;border:1px solid #dfe5dc;border-radius:12px;padding:0 13px;box-shadow:0 4px 16px rgba(48,69,30,.05)}.warehouse-search>span{font-size:22px;color:var(--green)}.warehouse-search input{width:100%;border:0;background:transparent;padding:12px 9px;outline:0}.warehouse-search-results{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 7px);max-height:360px;overflow:auto;padding:7px;background:#fff;border:1px solid #dfe5dc;border-radius:12px;box-shadow:0 16px 44px rgba(37,48,29,.18)}.warehouse-search-results button{width:100%;display:flex;justify-content:space-between;gap:14px;text-align:left;padding:10px;border:0;border-radius:9px;background:transparent}.warehouse-search-results button:hover{background:#f1f5ed}.warehouse-search-results span{display:grid;gap:3px}.warehouse-search-results code{font-size:11px;color:#778071}.warehouse-search-results small{max-width:55%;text-align:right;color:#596451}.warehouse-search-results p{padding:20px;text-align:center;color:#7e8878}.warehouse-mode{display:flex;padding:3px;background:#e8ede5;border-radius:11px}.warehouse-mode button{border:0;background:transparent;padding:8px 13px;border-radius:8px;color:#66715f}.warehouse-mode button.active{background:#fff;color:var(--green-dark);box-shadow:0 2px 8px rgba(35,50,25,.1)}
.warehouse-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 15px;background:linear-gradient(90deg,#30451e,#4f6930);border-radius:12px;color:#eef4e9}.warehouse-summary b{font-size:15px}.warehouse-summary span{font-size:12px;opacity:.86}.warehouse-layout{display:grid;grid-template-columns:232px minmax(480px,1fr) 300px;min-height:650px;border:1px solid #dce3d8;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 14px 40px rgba(40,57,29,.08)}.warehouse-palette,.warehouse-inspector{padding:16px;background:#f8faf6;overflow:auto}.warehouse-palette{border-right:1px solid #e2e7df}.warehouse-inspector{border-left:1px solid #e2e7df}.warehouse-palette h3,.warehouse-palette h4{margin:0 0 9px;color:#324329}.warehouse-palette>p{margin:0 0 12px;font-size:12px;color:#7b8476;line-height:1.5}.warehouse-component-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.warehouse-component-grid button{display:grid;place-items:center;gap:6px;min-height:65px;border:1px solid #dfe6db;border-radius:10px;background:#fff;color:#43523a}.warehouse-component-grid i,.warehouse-object-list i{width:24px;height:12px;border-radius:3px;background:var(--object-color)}.warehouse-setting-block{display:grid;gap:8px;margin-top:17px;padding-top:14px;border-top:1px solid #e0e6dd}.warehouse-setting-block label,.warehouse-property-grid label,.warehouse-assign-card label{display:grid;gap:5px;font-size:11px;color:#687363}.warehouse-setting-block input,.warehouse-property-grid input,.warehouse-assign-card input,.warehouse-assign-card select{width:100%;border:1px solid #d8e0d4;border-radius:8px;background:#fff;padding:8px;color:#293823}.warehouse-setting-block input[type=range]{padding:0}.warehouse-field-row,.warehouse-property-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.warehouse-blueprint-upload{display:block!important;padding:9px;text-align:center;border:1px dashed #93a487!important;border-radius:9px;color:var(--green)!important;cursor:pointer;background:#fff}.warehouse-setting-block small{line-height:1.5;color:#899083}.warehouse-history-button{width:100%;margin-top:14px;padding:10px;border:1px solid #cdd8c8;border-radius:9px;background:#fff;color:#52664a}.warehouse-object-list{margin-top:17px;padding-top:14px;border-top:1px solid #e0e6dd}.warehouse-object-list>div{display:grid;gap:5px}.warehouse-object-list button{display:flex;align-items:center;gap:9px;width:100%;padding:8px;border:1px solid transparent;border-radius:9px;background:transparent;text-align:left}.warehouse-object-list button.active{border-color:#aebea7;background:#fff}.warehouse-object-list span{display:grid;min-width:0}.warehouse-object-list b,.warehouse-object-list small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.warehouse-object-list small{font-size:10px;color:#7a8375}.warehouse-empty{font-size:12px;color:#899083}
.warehouse-stage-wrap{position:relative;min-width:0;background:#e6ebe3;overflow:hidden;touch-action:none}.warehouse-stage-wrap canvas{display:block;width:100%;height:650px;outline:0;cursor:grab;touch-action:none}.warehouse-stage-wrap canvas:active{cursor:grabbing}.warehouse-stage-help{position:absolute;left:12px;bottom:12px;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}.warehouse-stage-help span{padding:5px 8px;border-radius:20px;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);font-size:10px;color:#5f6c58}.warehouse-camera-controls{position:absolute;right:12px;bottom:12px;display:grid;grid-template-columns:repeat(2,38px);gap:5px}.warehouse-camera-controls button{width:38px;height:36px;border:1px solid rgba(73,91,62,.18);border-radius:9px;background:rgba(255,255,255,.9);font-size:17px;color:#405338;box-shadow:0 3px 12px rgba(35,48,27,.1)}.warehouse-locate-message{position:absolute;top:13px;left:50%;transform:translateX(-50%);display:grid;gap:2px;min-width:240px;padding:10px 14px;text-align:center;border:1px solid #9daf91;border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 8px 28px rgba(42,57,32,.18);color:#30451e}.warehouse-locate-message span{font-size:12px}.warehouse-inspector-empty{margin-top:40px;text-align:center;color:#798374}.warehouse-inspector-empty p{font-size:12px}.warehouse-inspector-head{display:flex;justify-content:space-between;align-items:start;padding-bottom:13px;border-bottom:1px solid #dde4d9}.warehouse-inspector-head small{color:#7c8777}.warehouse-inspector-head h3{margin:3px 0 0;color:#30451e}.warehouse-inspector-head>span{font:10px monospace;color:#8b9387}.warehouse-property-grid{margin-top:14px}.warehouse-property-grid .full{grid-column:1/-1}.warehouse-delete-object{width:100%;margin:12px 0;border:1px solid #e0bdb7;border-radius:8px;background:#fff4f1;color:#a24c3d;padding:8px}.warehouse-slot-map{margin-top:15px;padding-top:13px;border-top:1px solid #dfe5dc}.warehouse-slot-map h4{margin:0 0 9px}.warehouse-slot-row{display:grid;grid-template-columns:38px repeat(auto-fit,minmax(31px,1fr));gap:4px;margin-bottom:5px;align-items:stretch}.warehouse-slot-row>b{display:grid;place-items:center;font-size:10px;color:#7c8677}.warehouse-slot-row button{position:relative;min-height:34px;border:1px solid #d7ded3;border-radius:6px;background:#fff;font-size:11px;color:#687363}.warehouse-slot-row button.occupied{background:#e8f0e3;border-color:#93a886;color:#30451e;font-weight:700}.warehouse-slot-row button.active{outline:2px solid var(--honey);outline-offset:1px}.warehouse-slot-row button small{display:none;position:absolute;z-index:3;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);width:120px;padding:5px;border-radius:6px;background:#26361f;color:#fff}.warehouse-slot-row button:hover small{display:block}.warehouse-active-slot{margin-top:15px;padding:13px;border-radius:11px;background:#fff;border:1px solid #dfe5dc}.warehouse-active-slot>small{color:#818a7d}.warehouse-active-slot>strong{display:block;margin:3px 0 12px;color:#3e5135}.warehouse-placement-card,.warehouse-assign-card{display:grid;gap:8px}.warehouse-placement-card code{color:#778070}.warehouse-placement-card span{font-weight:700;color:#a4512e}.warehouse-placement-card p{margin:0;font-size:12px;color:#66715f}.warehouse-placement-card>div{display:flex;gap:5px;flex-wrap:wrap}.warehouse-placement-card input{width:68px;border:1px solid #d5ddd1;border-radius:7px;padding:7px}.warehouse-placement-card button{border:0;border-radius:7px;background:var(--green);color:#fff;padding:7px 9px}.warehouse-placement-card .secondary-button{background:#e8eee4;color:#3d5034}.warehouse-placement-card .text-button{background:transparent;color:#9a493d}.warehouse-placement-card button:disabled{opacity:.4}.warehouse-readonly-note{padding:12px;border-radius:9px;background:#eef2eb;font-size:12px;line-height:1.6;color:#6f796a}.warehouse-status{position:fixed;z-index:120;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:9px;background:#30451e;color:#fff;transition:.2s}.warehouse-status.show{transform:translate(-50%,0);opacity:1}.warehouse-status.error{background:#9c4236}
.warehouse-movement-note{display:grid;gap:5px;font-size:11px;color:#6c7667}.warehouse-movement-note input{width:100%!important;padding:8px!important;border:1px solid #d7ded3!important;border-radius:7px}.warehouse-movement-history{margin-top:15px;padding-top:13px;border-top:1px solid #e0e6dc}.warehouse-movement-history>div:first-child{display:flex;justify-content:space-between;align-items:center}.warehouse-movement-history h4{margin:0;color:#34452c}.warehouse-movement-history>div>small{color:#a4512e;font-weight:700}.warehouse-history-loading{padding:12px 0;color:#858d81;font-size:12px}.warehouse-movement-list{display:grid!important;gap:0;margin-top:10px}.warehouse-movement-list article{position:relative;display:grid;grid-template-columns:16px 1fr;gap:8px;padding-bottom:13px}.warehouse-movement-list article>i{position:relative;width:9px;height:9px;margin-top:4px;border-radius:50%;background:#718466}.warehouse-movement-list article>i:after{content:"";position:absolute;left:4px;top:10px;width:1px;height:calc(100% + 8px);background:#d9e0d5}.warehouse-movement-list article:last-child>i:after{display:none}.warehouse-movement-list article[data-movement-type=in]>i{background:#4b7e45}.warehouse-movement-list article[data-movement-type=out]>i{background:#b36342}.warehouse-movement-list article>div{display:grid;grid-template-columns:1fr auto;gap:3px 8px}.warehouse-movement-list b{font-size:12px;color:#394a32}.warehouse-movement-list time{font-size:9px;color:#90978d}.warehouse-movement-list p,.warehouse-movement-list em,.warehouse-movement-list small{grid-column:1/-1;margin:0;font-size:10px;line-height:1.5;color:#677162}.warehouse-movement-list em{padding:4px 6px;border-radius:5px;background:#f3f5f1;font-style:normal}.warehouse-movement-list small{color:#92998f}
@media(max-width:1280px){.warehouse-layout{grid-template-columns:210px minmax(430px,1fr) 270px}.warehouse-palette,.warehouse-inspector{padding:12px}.warehouse-stage-wrap canvas{height:610px}}
@media(max-width:980px){.warehouse-layout{grid-template-columns:190px minmax(420px,1fr)}.warehouse-inspector{grid-column:1/-1;border-left:0;border-top:1px solid #e2e7df}.warehouse-stage-wrap canvas{height:520px}.warehouse-toolbar{align-items:stretch}.warehouse-search{max-width:none}}
@media(max-width:720px){.warehouse-layout{display:flex;flex-direction:column}.warehouse-palette{border-right:0;border-bottom:1px solid #e2e7df}.warehouse-component-grid{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}.warehouse-setting-block,.warehouse-object-list{display:none}.warehouse-stage-wrap canvas{height:480px}.warehouse-stage-help span:nth-child(n+3){display:none}.warehouse-inspector{max-height:none}.warehouse-search{min-width:100%}.warehouse-summary{gap:9px}.warehouse-summary span{font-size:10px}}

/* 多仓库切换、自动行号与动画聚焦 */
.warehouse-switch{display:flex;align-items:center;gap:8px;padding:4px 5px 4px 11px;border:1px solid #d9e1d5;border-radius:11px;background:#fff;color:#6d7867;font-size:11px;white-space:nowrap}.warehouse-switch select{min-width:102px;border:0;border-radius:8px;background:#edf2e9;color:#30451e;padding:7px 28px 7px 9px;font-weight:700;outline:0}.warehouse-switch select:disabled{opacity:.55}.warehouse-row-nav{margin-top:17px;padding-top:14px;border-top:1px solid #e0e6dd}.warehouse-row-nav>p{margin:0 0 9px;color:#7b8476;font-size:10px;line-height:1.55}.warehouse-row-nav>div{display:grid;gap:6px;max-height:210px;overflow:auto}.warehouse-row-nav button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:8px 9px;border:1px solid #dfe6db;border-radius:9px;background:#fff;text-align:left;color:#3f5036;transition:transform .18s,border-color .18s,box-shadow .18s}.warehouse-row-nav button:hover,.warehouse-row-nav button.active{transform:translateX(2px);border-color:#93aa87;box-shadow:0 4px 13px rgba(48,69,30,.09)}.warehouse-row-nav button span{display:grid;gap:2px}.warehouse-row-nav button b{font-size:11px}.warehouse-row-nav button small{color:#879080;font-size:9px}.warehouse-row-nav button em{padding:3px 6px;border-radius:12px;background:#edf2e9;color:#607255;font-size:9px;font-style:normal}.warehouse-auto-address{display:grid;gap:3px;margin-top:12px;padding:10px 11px;border:1px solid #ccd9c6;border-radius:9px;background:linear-gradient(135deg,#f2f7ee,#fff)}.warehouse-auto-address small{color:#7b8875;font-size:10px}.warehouse-auto-address b{color:#30451e;font-size:13px}
.warehouse-row-focusing .warehouse-stage-wrap canvas{animation:warehouse-row-focus .58s cubic-bezier(.22,.75,.24,1)}.warehouse-row-focusing .warehouse-stage-wrap{box-shadow:inset 0 0 0 3px rgba(217,154,43,.3)}@keyframes warehouse-row-focus{0%{transform:scale(.965);filter:saturate(.8)}65%{transform:scale(1.012);filter:saturate(1.12)}100%{transform:scale(1);filter:none}}
@media(max-width:980px){.warehouse-switch{order:2}.warehouse-mode{order:3}.warehouse-row-nav>div{max-height:155px}}
@media(max-width:720px){.warehouse-toolbar{display:grid;grid-template-columns:1fr 1fr}.warehouse-search{grid-column:1/-1}.warehouse-switch{min-width:0}.warehouse-switch select{min-width:0;width:100%}.warehouse-row-nav{display:block}.warehouse-row-nav>div{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));max-height:128px}.warehouse-row-nav button:hover,.warehouse-row-nav button.active{transform:none}}

/* 精确层位、整行批量布置与门路组件 */
.warehouse-row-builder,.warehouse-row-editor,.warehouse-door-photo{display:grid;gap:8px;margin-top:15px;padding:12px;border:1px solid #dbe4d6;border-radius:11px;background:#fff}.warehouse-row-builder h4,.warehouse-row-editor h4,.warehouse-door-photo h4{margin:0;color:#34472b}.warehouse-row-builder label,.warehouse-row-editor label{display:grid;gap:5px;color:#687363;font-size:11px}.warehouse-row-builder input,.warehouse-row-editor input{width:100%;border:1px solid #d8e0d4;border-radius:8px;background:#fff;padding:8px;color:#293823}.warehouse-row-builder>small,.warehouse-row-editor>small{color:#858e80;font-size:10px;line-height:1.55}.warehouse-row-builder .primary-button,.warehouse-row-editor .secondary-button{width:100%;padding:9px}.warehouse-row-editor{background:#f4f7f1}.warehouse-door-photo img{width:100%;max-height:150px;object-fit:cover;border-radius:8px}.warehouse-camera-controls{grid-template-columns:repeat(2,38px);max-height:174px;overflow:auto}.warehouse-stage-help{right:104px}.warehouse-slot-map{overflow-x:auto}.warehouse-slot-row{min-width:max-content}.warehouse-slot-row button{min-width:34px}.warehouse-active-slot{box-shadow:0 5px 18px rgba(48,69,30,.06)}
@media(max-width:720px){.warehouse-row-builder{display:grid}.warehouse-camera-controls{right:8px;bottom:8px}.warehouse-stage-help{right:92px}.warehouse-row-editor .warehouse-field-row{grid-template-columns:1fr 1fr}}
.warehouse-selection-tools{position:absolute;z-index:5;left:10px;top:10px;right:10px;display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:6px;border:1px solid #d8e0d2;background:rgba(255,255,255,.95);border-radius:10px;width:max-content;max-width:calc(100% - 20px)}
.warehouse-selection-tools button{min-height:36px;border:0;border-radius:7px;padding:6px 9px;background:#edf2e9;color:#42563a;font-size:12px}.warehouse-selection-tools button.active{background:#4f6930;color:#fff}.warehouse-selection-tools span{font-size:11px;padding:0 5px;color:#7a6650}.warehouse-row-editor p{font-size:11px;margin:0;color:#72816b;line-height:1.5}
.client-warehouse-shell{--green:var(--primary);--green-dark:var(--dark);--honey:var(--accent);max-width:1600px;margin:auto;padding:24px 16px 100px}.client-warehouse-shell .warehouse-layout{grid-template-columns:180px minmax(320px,1fr) 300px}.client-warehouse-shell .warehouse-inspector-head>span{max-width:90px;overflow-wrap:anywhere}.client-warehouse-shell .warehouse-status{bottom:90px}.client-warehouse-shell .warehouse-palette h3{display:none}.client-warehouse-shell .warehouse-stage-wrap canvas{height:600px}
@media(max-width:1100px){.client-warehouse-shell .warehouse-layout{grid-template-columns:160px minmax(300px,1fr)}.client-warehouse-shell .warehouse-inspector{grid-column:1/-1}}
@media(max-width:720px){.warehouse-setting-block{display:grid}.warehouse-palette{max-height:320px;overflow-y:auto;touch-action:pan-y}.warehouse-selection-tools{gap:3px}.warehouse-selection-tools button{min-height:40px;padding:5px 7px}.warehouse-selection-tools span{width:100%}.warehouse-locate-message{top:85px;min-width:0;width:90%}.warehouse-inspector input,.warehouse-inspector select,.warehouse-palette input,.warehouse-search input{font-size:16px}.warehouse-slot-row button{min-width:44px;min-height:44px}.warehouse-placement-card button{min-height:44px}.warehouse-camera-controls button{width:42px;height:42px}.warehouse-camera-controls{grid-template-columns:repeat(2,42px);max-height:none}.client-warehouse-shell{padding:14px 10px 110px}.client-warehouse-shell .warehouse-layout{display:flex;flex-direction:column}.client-warehouse-shell .warehouse-palette{max-height:190px}.client-warehouse-shell .warehouse-stage-wrap canvas{height:440px}.client-warehouse-shell .warehouse-inspector{padding:14px}.client-warehouse-shell .warehouse-summary{gap:7px}.client-warehouse-shell .warehouse-readonly-note{margin:0}.client-warehouse-shell .warehouse-row-nav{margin-top:8px;padding-top:8px}}
.warehouse-page button{cursor:pointer}.warehouse-inspector-head>span{max-width:90px;overflow-wrap:anywhere}.warehouse-page [hidden]{display:none!important}
@media(max-width:720px){.warehouse-object-list{display:block}.client-warehouse-shell .warehouse-object-list{display:none}.warehouse-page{padding-bottom:env(safe-area-inset-bottom)}.warehouse-palette,.warehouse-inspector{overscroll-behavior:contain}}
@media(max-width:720px){.warehouse-mode button{white-space:nowrap}.warehouse-mode{grid-column:1/-1;width:max-content}.client-warehouse-shell .page-intro{margin-bottom:10px;gap:8px}.client-warehouse-shell .page-intro h1{font-size:24px;margin:4px 0}.client-warehouse-shell .page-intro p{font-size:12px;line-height:1.5;margin:0}.client-warehouse-shell .page-intro>div>span{display:none}.client-warehouse-shell .warehouse-toolbar{gap:6px}.client-warehouse-shell .warehouse-switch{order:1}.client-warehouse-shell .warehouse-mode{order:2;grid-column:auto;width:auto}.client-warehouse-shell .warehouse-mode button{padding:7px 8px;font-size:12px}.client-warehouse-shell #warehouseResetView{order:3;grid-column:1/-1;padding:7px}.client-warehouse-shell .warehouse-summary{padding:8px 10px}.client-warehouse-shell .warehouse-palette>.warehouse-readonly-note{display:none}.client-warehouse-shell .warehouse-row-nav>p{display:none}.client-warehouse-shell .warehouse-row-nav h4{font-size:12px}.client-warehouse-shell .warehouse-palette{padding:10px;max-height:120px}.client-warehouse-shell>.warehouse-readonly-note{font-size:11px;padding:8px}.client-warehouse-shell .warehouse-stage-wrap canvas{height:390px}}
.warehouse-drag-tools { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:8px 12px; background:#f8faf4; border-bottom:1px solid #dfe5d8; }
.warehouse-drag-tools span { font-size:12px; color:#617056; }
.warehouse-drag-tools button { min-height:44px; padding:0 20px; border:1px solid #ccd6bf; border-radius:8px; background:#fff; color:#405438; cursor:pointer; }
.warehouse-drag-tools button.active { background:#4f6930; color:#fff; border-color:#4f6930; }
.warehouse-level-editor { display:grid; gap:8px; padding:12px; margin:12px 0; border:1px solid #dce3d3; border-radius:10px; background:#f8faf4; }
.warehouse-level-editor h4,.warehouse-level-editor p { margin:0; }
.warehouse-level-editor p,.warehouse-level-editor small { font-size:11px; color:#6b7561; line-height:1.6; }
.warehouse-level-editor label { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; color:#405438; }
.warehouse-level-editor input { width:78px; min-height:44px; border:1px solid #ccd6bf; border-radius:7px; background:#fff; padding:8px; box-sizing:border-box; }
.warehouse-slot-row { grid-template-columns:repeat(auto-fit,minmax(44px,1fr)); min-width:0; }
.warehouse-slot-row > b { grid-column:1/-1; justify-items:start; padding:5px 0; font-size:11px; }
.warehouse-slot-map .warehouse-face-tabs{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}
.warehouse-face-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0 0 9px}.warehouse-face-tabs button{min-height:34px;border:1px solid #cfd9ca;border-radius:8px;background:#fff;color:#53644b;font-weight:700}.warehouse-face-tabs button.active{border-color:#4f6930;background:#4f6930;color:#fff;box-shadow:0 3px 10px rgba(48,69,30,.18)}.warehouse-face-setting{display:grid;gap:7px;margin-top:14px;padding:12px;border:1px solid #dbe4d6;border-radius:11px;background:linear-gradient(135deg,#fff,#f1f6ed)}.warehouse-face-setting label{display:grid;gap:5px;font-size:11px;color:#687363}.warehouse-face-setting select,.warehouse-row-builder select{width:100%;border:1px solid #d8e0d4;border-radius:8px;background:#fff;padding:8px;color:#293823}.warehouse-face-setting small{font-size:10px;line-height:1.55;color:#788372}

/* 集中工具侧栏、大画布、固定视角控制与受限相机 */
.warehouse-layout{grid-template-columns:minmax(280px,320px) minmax(0,1fr);height:clamp(680px,calc(100vh - 210px),940px);min-height:0}
.warehouse-tools-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:auto;background:#f8faf6;border-right:1px solid #e2e7df;overscroll-behavior:contain}
.warehouse-tools-panel .warehouse-palette,.warehouse-tools-panel .warehouse-inspector{overflow:visible;border:0;background:transparent}
.warehouse-tools-panel .warehouse-inspector{border-top:1px solid #dce4d8}
.warehouse-layout>.warehouse-stage-wrap{display:flex;flex-direction:column;height:100%;min-height:0}
.warehouse-layout>.warehouse-stage-wrap canvas{flex:1;height:0;min-height:0}
.warehouse-camera-controls{z-index:12;right:14px;top:50%;bottom:auto;transform:translateY(-50%);max-height:none;overflow:visible;padding:7px;border:1px solid rgba(73,91,62,.16);border-radius:13px;background:rgba(238,243,234,.82);box-shadow:0 10px 30px rgba(35,48,27,.16);backdrop-filter:blur(9px)}
.warehouse-stage-actions{position:absolute;z-index:13;right:14px;top:12px;display:flex;gap:6px}
.warehouse-stage-actions button{min-height:38px;padding:0 12px;border:1px solid rgba(73,91,62,.2);border-radius:9px;background:rgba(255,255,255,.94);color:#405338;font-weight:700;box-shadow:0 4px 15px rgba(35,48,27,.1)}
body.warehouse-view-fullscreen{overflow:hidden}
.warehouse-stage-wrap.warehouse-stage-fullscreen{position:fixed;z-index:1000;inset:10px;width:auto;height:auto!important;max-height:none;min-height:0;border:1px solid #cfd9ca;border-radius:16px;box-shadow:0 24px 80px rgba(20,30,15,.3)}
.warehouse-stage-wrap.warehouse-stage-fullscreen canvas{height:100%}
.warehouse-stage-fullscreen .warehouse-drag-tools{position:absolute;z-index:11;left:12px;top:12px;border:1px solid #d8e0d2;border-radius:10px;background:rgba(248,250,244,.94);box-shadow:0 4px 15px rgba(35,48,27,.1)}
.warehouse-stage-fullscreen .warehouse-selection-tools{top:76px;right:120px}
.warehouse-stage-fullscreen .warehouse-stage-help{bottom:14px}
@media(max-width:980px){.warehouse-layout{display:flex;flex-direction:column;height:auto}.warehouse-tools-panel{max-height:430px;border-right:0;border-bottom:1px solid #e2e7df}.warehouse-layout>.warehouse-stage-wrap{height:560px;min-height:560px}.warehouse-stage-wrap.warehouse-stage-fullscreen{min-height:0}}
@media(max-width:720px){.warehouse-tools-panel{max-height:420px}.warehouse-layout>.warehouse-stage-wrap{height:520px;min-height:520px}.warehouse-camera-controls{right:8px}.warehouse-stage-actions{right:8px;top:8px}.warehouse-stage-actions button{min-height:42px;padding:0 10px}.warehouse-stage-fullscreen .warehouse-drag-tools{top:58px;right:8px}.warehouse-stage-fullscreen .warehouse-selection-tools{top:118px;right:100px}.warehouse-stage-fullscreen .warehouse-stage-help{right:100px}}
.warehouse-layout>.warehouse-stage-wrap.warehouse-stage-fullscreen{height:auto!important;min-height:0}
.warehouse-stage-wrap>.warehouse-selection-tools{top:78px}
.client-warehouse-shell .warehouse-layout{grid-template-columns:minmax(280px,320px) minmax(0,1fr)}
.warehouse-stage-wrap.warehouse-stage-fullscreen>.warehouse-selection-tools{top:76px}
@media(max-width:720px){.warehouse-stage-wrap.warehouse-stage-fullscreen>.warehouse-selection-tools{top:118px}}
@media(min-width:981px){body.warehouse-workspace-active .app-view{grid-template-columns:92px minmax(0,1fr)}body.warehouse-workspace-active .sidebar{padding:14px 8px}body.warehouse-workspace-active .sidebar-brand,body.warehouse-workspace-active .sidebar-footer{display:none}body.warehouse-workspace-active .sidebar nav{margin-top:0;gap:4px}body.warehouse-workspace-active .sidebar nav button{height:64px;flex-direction:column;gap:4px;padding:6px 2px;font-size:10px}body.warehouse-workspace-active .content{padding:20px 18px 30px}body.warehouse-workspace-active .topbar{height:88px;padding:0 22px}}

/* Daily warehouse work: find row -> rack -> shelf slot -> stock action. */
.warehouse-tool-tabs{position:sticky;top:0;z-index:15;display:flex;gap:5px;padding:10px;background:#f8faf6;border-bottom:1px solid #dce4d8}
.warehouse-tool-tabs button{flex:1;min-height:44px;border:1px solid #d3decd;border-radius:9px;background:#fff;color:#506446;font-size:13px;font-weight:700}
.warehouse-tool-tabs button.active{background:#4f6930;color:#fff;border-color:#4f6930}
.warehouse-quick-rows{padding:10px 12px;border-bottom:1px solid #dce4d8}.warehouse-quick-rows>small{display:block;margin-bottom:7px;color:#74816b;font-size:11px}
.warehouse-quick-rows>div,.warehouse-rack-navigation>div{display:flex;flex-wrap:wrap;gap:5px}
.warehouse-quick-rows button,.warehouse-rack-navigation button{min-width:44px;min-height:44px;padding:6px 12px;border:1px solid #d1deca;border-radius:8px;background:#fff;color:#425938}
.warehouse-quick-rows button.active,.warehouse-rack-navigation button.active{background:#edf4e6;border-color:#7c9866;color:#30451e;font-weight:700}
.warehouse-tools-panel[data-tool-tab=operations] .warehouse-palette,.warehouse-tools-panel[data-tool-tab=operations] .warehouse-layout-only{display:none}
.warehouse-tools-panel[data-tool-tab=layout] .warehouse-quick-rows{display:none}
.warehouse-tools-panel[data-tool-tab=layout] .warehouse-slot-map,.warehouse-tools-panel[data-tool-tab=layout] .warehouse-active-slot,.warehouse-tools-panel[data-tool-tab=layout] .warehouse-rack-navigation{display:none}
.warehouse-tools-panel .warehouse-inspector{border-top:0}
.warehouse-rack-navigation{display:grid;gap:8px;margin-top:12px}.warehouse-rack-navigation>small{font-weight:700;color:#647659}.warehouse-rack-navigation p{margin:0;font-size:10px;line-height:1.6;color:#788570}
.warehouse-inspector-head>button{min-height:44px;padding:6px 10px;border:1px solid #cfdcc7;border-radius:8px;background:#fff;color:#4f6930;white-space:nowrap}
.warehouse-slot-map{margin-top:10px}.warehouse-slot-row button{min-height:44px}.warehouse-face-tabs button{min-height:44px}
.warehouse-layer-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.warehouse-layer-tabs button{flex:1;min-height:44px;border:1px solid #d3ddcc;border-radius:8px;background:#fff;color:#4f6930;font-weight:700}.warehouse-layer-tabs button.active{background:#f4ebd8;border-color:#d4ac64;color:#805629}
.warehouse-active-slot>strong{font-size:13px;line-height:1.65}.warehouse-placement-card>span{padding:10px;border-radius:8px;background:#f4ebd8;color:#805629;font-size:19px;font-weight:700}
.warehouse-placement-card>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.warehouse-placement-card>div>input{grid-column:1/-1;min-height:44px}.warehouse-placement-card button{min-height:44px}
.warehouse-placement-card>div>input{width:100%;max-width:none}.warehouse-placement-card [data-movement=out]{background:#f5e9d5;color:#805629;border-color:#dbc59e}
.warehouse-product-photo{width:72px;height:72px;object-fit:contain;background:#fff;border:1px solid #e1e7dc;border-radius:9px}
.warehouse-assign-card{display:grid;gap:10px}.warehouse-assign-card input,.warehouse-assign-card select{min-height:44px}.warehouse-assign-card small{font-size:10px;color:#7c8775;line-height:1.6}
.warehouse-moving-banner{display:grid;gap:6px;margin-top:10px;padding:12px;border:1px solid #d7b26e;border-radius:10px;background:#fff7e4;color:#7b5627;font-size:12px}.warehouse-moving-banner p{margin:0;line-height:1.6}.warehouse-moving-banner span{font-size:11px}.warehouse-moving-banner button{min-height:44px;border:1px solid #dfc89e;border-radius:7px;background:#fff;color:#7b5627}
.warehouse-focus-nav{position:absolute;z-index:9;left:12px;top:76px;right:112px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:max-content;max-width:calc(100% - 125px);padding:9px 12px;border:1px solid #9bb48d;border-radius:10px;background:rgba(255,255,255,.95);box-shadow:0 5px 20px rgba(48,69,30,.1);color:#405738;font-size:12px}.warehouse-focus-nav span{font-size:10px;color:#79866f}.warehouse-focus-nav button{min-height:36px;padding:5px 8px;border:1px solid #d3dfcc;border-radius:7px;background:#f2f6ed;color:#4f6930}
.warehouse-page:has(.warehouse-mode [data-mode="3d"].active) .warehouse-selection-tools{display:none}
.warehouse-locate-message{top:auto;bottom:58px;left:12px;right:110px;transform:none;width:auto;min-width:0;text-align:left;pointer-events:none}
.warehouse-row-focusing .warehouse-stage-wrap canvas{animation:none}
.warehouse-stage-fullscreen .warehouse-focus-nav{top:82px}
@media(max-width:980px){.warehouse-tools-panel{max-height:460px}.warehouse-layout>.warehouse-stage-wrap{height:540px;min-height:540px}}
@media(max-width:720px){.warehouse-layout{position:relative}.warehouse-layout>.warehouse-stage-wrap{order:-1;height:470px;min-height:470px}.warehouse-tools-panel{max-height:none;overflow:visible;touch-action:pan-y}.warehouse-layout>.warehouse-stage-wrap.warehouse-stage-fullscreen{min-height:0}.warehouse-focus-nav{left:8px;right:96px;max-width:calc(100% - 104px);top:70px;padding:7px;font-size:11px}.warehouse-focus-nav span{display:none}.warehouse-focus-nav button{min-height:44px}.warehouse-stage-fullscreen .warehouse-focus-nav{top:116px}.warehouse-locate-message{bottom:55px;left:8px;right:98px;width:auto}.warehouse-quick-rows>div{max-height:104px;overflow:auto}.warehouse-tool-tabs{top:0}.warehouse-stage-help{bottom:8px}.warehouse-rack-navigation button{flex:0 0 auto}.warehouse-inspector{scroll-margin-top:10px}.warehouse-search-results button{min-height:52px}.warehouse-search-results small{font-size:10px}.warehouse-stage-actions button{font-size:11px}}
@media(prefers-reduced-motion:reduce){.warehouse-row-focusing .warehouse-stage-wrap canvas{animation:none}.warehouse-row-nav button{transition:none}}

/* Floating work controls stay with the drawing, including fullscreen and WeChat. */
.warehouse-layout[data-work-mode=operations]{grid-template-columns:160px minmax(0,1fr);height:clamp(520px,calc(100dvh - 300px),850px)}
.warehouse-tools-panel[data-tool-tab=operations] .warehouse-inspector,.warehouse-tools-panel[data-tool-tab=operations] .warehouse-quick-rows{display:none}
.warehouse-tools-panel[data-tool-tab=operations] .warehouse-tool-tabs{flex-direction:column}
.warehouse-floating-locator{position:absolute;z-index:18;left:12px;right:12px;top:70px;display:flex;gap:8px;align-items:end;padding:9px;border:1px solid #cddbc4;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 6px 24px rgba(38,55,28,.12);touch-action:pan-y}
.warehouse-floating-location-fields{display:grid;grid-template-columns:minmax(58px,.7fr) minmax(72px,1fr) minmax(90px,1fr) minmax(120px,1.5fr);gap:7px;flex:1;min-width:0}
.warehouse-floating-locator label{display:grid;gap:3px;font-size:10px;color:#718065;min-width:0}.warehouse-floating-locator select{width:100%;min-width:0;min-height:40px;border:1px solid #d3ddcb;border-radius:8px;background:#f5f8f0;color:#3e5533;padding:4px 6px;font-size:12px;font-weight:700}
.warehouse-floating-locator>button{min-height:40px;padding:5px 12px;border:1px solid #b8caac;border-radius:8px;background:#4f6930;color:#fff;font-size:12px;white-space:nowrap}
.warehouse-dock-search{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #cddbc4;border-radius:10px;padding:8px;box-shadow:0 8px 24px rgba(38,55,28,.15)}.warehouse-dock-search input{width:100%;min-height:44px;border:1px solid #d5dfce;border-radius:8px;padding:8px 12px;font-size:14px}.warehouse-dock-search .warehouse-search-results{top:calc(100% + 3px);max-height:230px}
.warehouse-floating-actions{position:absolute;z-index:18;left:12px;right:110px;bottom:14px;padding:10px;border:1px solid #cbdac1;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 6px 28px rgba(38,55,28,.16);touch-action:pan-y}
.warehouse-floating-slot-summary{display:grid;gap:3px;margin-bottom:8px;min-width:0}.warehouse-floating-slot-summary b{color:#405738;font-size:13px}.warehouse-floating-slot-summary span{color:#8a6335;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.warehouse-floating-action-buttons{display:flex;flex-wrap:wrap;gap:6px}.warehouse-floating-action-buttons button{min-height:44px;flex:1;padding:6px 10px;white-space:nowrap;border:1px solid #d0dcc8;border-radius:8px;background:#f1f6eb;color:#49613c;font-size:12px;font-weight:700}.warehouse-floating-action-buttons [data-dock-action=in],.warehouse-floating-action-buttons [data-dock-action=assign]{background:#4f6930;color:#fff;border-color:#4f6930}.warehouse-floating-action-buttons .warehouse-out-action{background:#f8ebd7;color:#8a6335;border-color:#e1c79e}
.warehouse-floating-panel{position:absolute;z-index:25;left:12px;bottom:132px;width:min(350px,calc(100% - 124px));max-height:calc(100% - 212px);display:flex;flex-direction:column;border:1px solid #bdcdb1;border-radius:13px;background:#fff;box-shadow:0 15px 50px rgba(28,43,20,.24);overflow:hidden;touch-action:pan-y}
.warehouse-floating-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:#f4f8ef;border-bottom:1px solid #dde6d6}.warehouse-floating-panel header>div{display:grid;gap:3px}.warehouse-floating-panel header b{color:#405738;font-size:14px}.warehouse-floating-panel header small{color:#78866e;font-size:10px}.warehouse-floating-panel header button{width:44px;height:44px;border:1px solid #d4dfcd;border-radius:8px;background:#fff;color:#4f6930;font-size:22px;flex-shrink:0}
.warehouse-floating-panel-body{display:grid;gap:10px;padding:12px;overflow:auto;overscroll-behavior:contain;min-height:0}.warehouse-floating-panel-body>p{font-size:12px;color:#69785e;line-height:1.6;margin:0}.warehouse-floating-panel-body label{display:grid;gap:5px;color:#68785d;font-size:12px}.warehouse-floating-panel-body input,.warehouse-floating-panel-body select{width:100%;min-height:44px;border:1px solid #cedac5;border-radius:8px;background:#fff;padding:8px;color:#34462b}.warehouse-floating-panel-body>button{min-height:44px;border:1px solid #4f6930;border-radius:8px;background:#4f6930;color:#fff;font-weight:700}.warehouse-floating-panel-body>[data-movement=out]{background:#f8ebd7;border-color:#dfc69d;color:#8a6335}.warehouse-floating-panel-body .warehouse-movement-history{margin:0;padding:0;border:0}
.warehouse-stage-wrap:has(.warehouse-floating-actions:not([hidden])) .warehouse-stage-help{display:none}
.warehouse-focus-nav{top:146px}.warehouse-stage-fullscreen .warehouse-floating-locator{top:76px}.warehouse-stage-fullscreen .warehouse-focus-nav{top:154px}
@media(max-width:980px){.warehouse-layout[data-work-mode=operations]{height:auto}.warehouse-layout[data-work-mode=operations] .warehouse-tools-panel{max-height:none}.warehouse-layout[data-work-mode=operations] .warehouse-tool-tabs{flex-direction:row}.warehouse-layout[data-work-mode=operations] .warehouse-stage-wrap{height:540px;min-height:540px}}
@media(max-width:720px){.warehouse-layout[data-work-mode=operations] .warehouse-stage-wrap{height:580px;min-height:580px}.warehouse-layout[data-work-mode=operations] .warehouse-stage-fullscreen{height:auto!important;min-height:0}.warehouse-floating-locator{left:8px;right:8px;top:64px;gap:5px;padding:7px;align-items:center}.warehouse-floating-location-fields{grid-template-columns:minmax(50px,.8fr) minmax(65px,1fr);gap:5px}.warehouse-floating-locator select{min-height:38px;font-size:12px}.warehouse-floating-locator>button{padding:5px 7px;min-height:44px}.warehouse-floating-actions{left:8px;right:8px;bottom:8px;padding:8px}.warehouse-floating-action-buttons button{flex:1 1 calc(33% - 6px);padding:5px 7px;font-size:11px}.warehouse-floating-slot-summary b{font-size:12px}.warehouse-floating-slot-summary span{font-size:11px}.warehouse-floating-panel{left:8px;right:8px;width:auto;bottom:160px;max-height:calc(100% - 300px)}.warehouse-floating-panel-body{padding:10px}.warehouse-floating-panel-body .warehouse-assign-card{gap:7px}.warehouse-floating-panel input,.warehouse-floating-panel select,.warehouse-dock-search input{font-size:16px}.warehouse-camera-controls{top:57%;grid-template-columns:repeat(2,36px);padding:4px;gap:4px}.warehouse-camera-controls button{width:36px;height:38px}.warehouse-focus-nav{top:185px;left:8px;right:90px}.warehouse-stage-fullscreen .warehouse-floating-locator{top:116px}.warehouse-stage-fullscreen .warehouse-focus-nav{top:238px}.warehouse-stage-fullscreen .warehouse-floating-panel{max-height:calc(100% - 350px)}}
.warehouse-floating-panel-footer{padding:9px 12px;background:#f7faf3;border-top:1px solid #dce6d5;flex-shrink:0}.warehouse-floating-panel-footer button{width:100%;min-height:44px;border:1px solid #4f6930;border-radius:8px;background:#4f6930;color:#fff;font-weight:700}.warehouse-floating-panel-footer [data-movement=out]{background:#f8ebd7;border-color:#dfc69d;color:#8a6335}

/* Compact components and strict separation: maintenance layout / daily stock. */
#warehouseZoomLevel{grid-column:1/-1;text-align:center;color:#5e704f;font-size:10px;white-space:nowrap;padding:3px 0;min-width:0}
.warehouse-component-icon{width:23px;height:23px;flex:0 0 23px;color:#506741;display:block}
.warehouse-component-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.warehouse-component-grid button{min-height:56px;padding:6px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11px;border-radius:8px}.warehouse-component-grid button[data-add-object=pallet] .warehouse-component-icon{color:#b78330}
.warehouse-object-list button{min-height:42px;padding:6px 8px;gap:8px}.warehouse-object-list button small{font-size:10px}.warehouse-inspector-head{gap:8px}.warehouse-inspector-head>span{align-self:center}.warehouse-inspector-head h3{font-size:17px}
.warehouse-toolbar button{min-height:34px;padding:5px 10px;font-size:12px}.warehouse-mode button{padding:5px 10px}.warehouse-drag-tools button{min-height:34px;padding:0 12px}.warehouse-stage-actions button{min-height:34px;padding:0 9px;font-size:11px}.warehouse-tool-tabs{padding:7px}.warehouse-tool-tabs button{min-height:36px;font-size:12px}
.warehouse-preset-section{margin:7px 10px;border:1px solid #dce5d4;border-radius:8px;background:#fff;overflow:hidden}.warehouse-preset-section>summary{padding:10px;font-size:12px;font-weight:700;color:#536c40;cursor:pointer}.warehouse-preset-section .warehouse-row-builder,.warehouse-preset-section .warehouse-setting-block,.warehouse-preset-section .warehouse-row-editor{margin:0;padding:10px;border:0;border-top:1px solid #e4eadf;border-radius:0}.warehouse-preset-hint{display:block;font-size:10px;line-height:1.6;color:#7a876e;margin:8px 0}.warehouse-operations-link{font-size:12px;color:#4f6930;padding:7px 9px;border:1px solid #cfdbc4;border-radius:8px;background:#f5f8ef;text-decoration:none}
.warehouse-tools-panel[data-tool-tab=layout] .warehouse-inspector{display:none}.warehouse-tools-panel[data-tool-tab=properties] .warehouse-palette,.warehouse-tools-panel[data-tool-tab=properties] .warehouse-quick-rows{display:none}.warehouse-tools-panel[data-tool-tab=properties] .warehouse-slot-map,.warehouse-tools-panel[data-tool-tab=properties] .warehouse-active-slot,.warehouse-tools-panel[data-tool-tab=properties] .warehouse-rack-navigation{display:none}
.warehouse-layout[data-work-mode=operations]{grid-template-columns:minmax(0,1fr)}.warehouse-layout[data-work-mode=operations]>.warehouse-tools-panel{display:none}
.client-warehouse-shell .page-intro{margin:8px 0;gap:8px}.client-warehouse-shell .page-intro h1{font-size:23px;margin:3px 0}.client-warehouse-shell .page-intro span,.client-warehouse-shell .page-intro p{display:none}.client-warehouse-shell>.warehouse-readonly-note{font-size:11px;padding:7px 10px;margin:7px 0}.client-warehouse-shell .warehouse-toolbar{gap:7px;padding:7px 0}.client-warehouse-shell .warehouse-summary{margin:4px 0 8px;padding:9px 12px}
@media(min-width:981px){.client-warehouse-shell .warehouse-layout[data-work-mode=operations]{height:clamp(480px,calc(100dvh - 255px),850px)}}
.warehouse-field-row input,.warehouse-property-grid input,.warehouse-row-builder input{min-height:34px;padding:6px;font-size:12px}.warehouse-palette h3{font-size:14px;margin:0 0 10px}.warehouse-property-grid{margin-top:8px}.warehouse-inspector .warehouse-preset-section{margin:8px 0}
@media(max-width:720px){.warehouse-toolbar button,.warehouse-tool-tabs button,.warehouse-drag-tools button,.warehouse-stage-actions button,.warehouse-preset-section>summary,.warehouse-object-list button{min-height:44px}.warehouse-field-row input,.warehouse-property-grid input,.warehouse-row-builder input{min-height:44px;font-size:16px}.warehouse-component-grid button{min-height:58px}.warehouse-tools-panel{max-height:380px;overflow:auto}.warehouse-stage-actions{top:7px}.warehouse-stage-fullscreen .warehouse-drag-tools{top:55px}.warehouse-floating-action-buttons button{min-height:44px}.warehouse-preset-section{margin:6px}.warehouse-component-icon{width:22px;height:22px}}
@media(max-width:720px){.warehouse-drag-tools{padding:6px;gap:5px}.warehouse-drag-tools>span{display:none}.warehouse-drag-tools button{padding:0 11px;font-size:12px}.warehouse-floating-panel{max-height:calc(100% - 230px)}.warehouse-stage-fullscreen .warehouse-floating-panel{max-height:calc(100% - 285px)}}

/* Selected third concept: canvas first, one search, contextual bottom sheets. */
.warehouse-ui-icon{width:20px;height:20px;flex:0 0 20px;display:block}
.warehouse-workbench-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.warehouse-workbench-header h1{font-size:22px;line-height:1.3;margin:0;color:#273d29}.warehouse-workbench-header p{font-size:12px;color:#697466;margin:4px 0 0}.warehouse-workbench-header nav{display:flex;gap:8px}.warehouse-workbench-header nav>a,.warehouse-workbench-header nav>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:44px;min-height:44px;padding:2px 5px;border:0;background:transparent;color:#506741;text-decoration:none;font-size:11px;cursor:pointer}
.warehouse-workbench .warehouse-mode:empty{display:none}.warehouse-workbench .warehouse-search>svg{position:absolute;left:12px;top:12px;color:#667462}.warehouse-workbench .warehouse-search input{padding-left:40px}.warehouse-workbench .warehouse-focus-nav,.warehouse-workbench .warehouse-stage-help{display:none!important}
.warehouse-workbench .warehouse-workbench-path{position:absolute;z-index:8;left:12px;right:12px;top:8px;display:flex;gap:6px;pointer-events:none}.warehouse-workbench-path>button{pointer-events:auto;border:0;background:#fffffff0;color:#506741;min-height:44px;padding:0 10px;border-radius:10px;display:flex;gap:6px;align-items:center;font-size:13px;box-shadow:0 2px 8px #2535200a}.warehouse-workbench-path #warehouseLocatorToggle{margin-left:auto;max-width:76%;min-width:0}.warehouse-workbench-path #warehouseLocatorToggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warehouse-workbench:not(.warehouse-has-focus) #warehouseWorkbenchBack{visibility:hidden}
.warehouse-workbench .warehouse-stage-actions{top:auto;right:12px;bottom:200px;display:flex;flex-direction:column;gap:8px;z-index:9}.warehouse-workbench .warehouse-stage-actions>button{width:44px;height:44px;padding:0;display:grid;place-items:center;border-radius:12px;background:#fff;border:1px solid #e0e6dc;color:#506741;box-shadow:0 2px 8px #2535200a}
.warehouse-camera-options{display:none;position:absolute;right:64px;bottom:190px;z-index:15;width:218px;padding:10px;border:1px solid #d9e2d3;border-radius:14px;background:#fff;box-shadow:0 8px 24px #1c2d1a18}.warehouse-camera-open .warehouse-camera-options{display:block}.warehouse-workbench .warehouse-camera-options .warehouse-drag-tools,.warehouse-workbench .warehouse-camera-options .warehouse-camera-controls{position:static;transform:none;display:flex;flex-wrap:wrap;gap:4px;padding:0;border:0;background:none;box-shadow:none}.warehouse-workbench .warehouse-camera-controls button{width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:8px}.warehouse-camera-options .warehouse-drag-tools button{flex:1;min-height:44px}.warehouse-camera-options .warehouse-drag-tools>span{display:none}.warehouse-camera-options #warehouseZoomLevel{width:100%;font-size:12px;text-align:center}.warehouse-camera-options #warehouseStageFullscreen{width:100%;min-height:44px;margin:8px 0;border:1px solid #d9e2d3;border-radius:8px;background:#f7f9f3;color:#506741}.warehouse-camera-modes{display:flex;gap:4px}.warehouse-camera-modes button{flex:1;min-height:44px;border:0;background:#f5f7f1;color:#506741;border-radius:8px}.warehouse-camera-modes button.active{background:#506741;color:white}
.warehouse-workbench .warehouse-floating-locator{display:none;top:auto;bottom:185px;left:12px;right:12px;width:auto;max-width:480px;max-height:calc(100% - 245px);overflow:auto;padding:12px;background:#fff;border:1px solid #d9e2d3;border-radius:14px;box-shadow:0 8px 24px #1c2d1a18;z-index:16}.warehouse-locator-open .warehouse-floating-locator:not([hidden]){display:block}.warehouse-floating-locator select{min-height:44px;font-size:14px}.warehouse-floating-locator .warehouse-floating-locator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.warehouse-precision-slots{margin-top:10px}.warehouse-precision-slots .warehouse-slot-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.warehouse-precision-slots button{min-height:44px;font-size:12px}
.warehouse-workbench .warehouse-floating-actions{position:absolute;bottom:0;left:0;right:0;width:auto;max-width:none;padding:22px 16px 16px;border:0;border-top:1px solid #e3e8dd;border-radius:20px 20px 0 0;background:#fff;box-shadow:0 -4px 20px #23342009;z-index:10}.warehouse-sheet-handle{position:absolute;top:0;left:calc(50% - 22px);width:44px;height:24px;padding:0;border:0;background:none;display:grid;place-items:center;color:#aeb7a8}.warehouse-stock-overview{display:flex;gap:12px;align-items:center;margin-bottom:12px}.warehouse-stock-overview>img{width:58px;height:68px;object-fit:contain;border-radius:8px;background:#f6f7f2}.warehouse-workbench .warehouse-floating-slot-summary{display:block;flex:1;min-width:0;padding:0;border:0;background:none}.warehouse-floating-slot-summary>b{display:block;font-size:15px;color:#273d29;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warehouse-floating-slot-summary>span{display:block;font-size:12px;color:#74806c;margin-top:4px;line-height:1.4}.warehouse-stock-quantity{display:flex;align-items:baseline;gap:6px;margin-top:4px;color:#2e442c}.warehouse-stock-quantity small{font-size:12px}.warehouse-stock-quantity strong{font-size:25px;line-height:1.15;letter-spacing:-.5px}.warehouse-workbench .warehouse-floating-action-buttons{display:flex;gap:8px;flex-wrap:nowrap}.warehouse-workbench .warehouse-floating-action-buttons button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 8px;border-radius:9px;font-size:14px;flex:1}.warehouse-workbench .warehouse-floating-action-buttons #warehouseMoreToggle{flex:0 0 60px;flex-direction:column;gap:0;font-size:10px;background:#f4f7ef;color:#4f6930;border:0}.warehouse-more-menu{position:absolute;bottom:100%;right:12px;min-width:210px;padding:8px;background:#fff;border:1px solid #d9e2d3;border-radius:12px;box-shadow:0 8px 24px #1c2d1a18}.warehouse-more-menu button{display:block;text-align:left;width:100%;min-height:44px;padding:8px 12px;border:0;background:#fff;color:#506741;font-size:14px}.warehouse-more-menu p{max-width:240px;font-size:12px;line-height:1.6;color:#74806c;margin:6px 12px}
.warehouse-panel-backdrop{position:absolute;inset:0;z-index:19;border:0;background:#17221433}.warehouse-workbench .warehouse-floating-panel{position:absolute;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;height:55%;max-height:none;border:0;border-radius:20px 20px 0 0;z-index:20;display:flex;flex-direction:column;background:#fff;padding:0;box-shadow:0 -6px 24px #1c2d1a18}.warehouse-workbench .warehouse-floating-panel[hidden],.warehouse-workbench .warehouse-panel-backdrop[hidden]{display:none}.warehouse-workbench[data-sheet-snap=full] .warehouse-floating-panel,.warehouse-workbench:has(#warehousePanelSize[aria-expanded=true]) .warehouse-floating-panel{height:90%}.warehouse-workbench .warehouse-floating-panel>header{display:flex;align-items:center;gap:4px;padding:10px 12px;border-bottom:1px solid #e2e8dc;flex-shrink:0}.warehouse-floating-panel>header>div{flex:1;min-width:0}.warehouse-floating-panel>header b{font-size:16px}.warehouse-floating-panel>header small{font-size:12px;line-height:1.4}.warehouse-floating-panel>header button{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;background:none;color:#506741}.warehouse-workbench .warehouse-floating-panel-body{overflow:auto;flex:1;min-height:0;padding:14px 16px}.warehouse-workbench .warehouse-floating-panel-body input,.warehouse-workbench .warehouse-floating-panel-body select{min-height:44px;font-size:16px}.warehouse-workbench .warehouse-floating-panel-footer{position:static;padding:10px 16px;border-top:1px solid #e2e8dc;background:white;flex-shrink:0}.warehouse-floating-panel-footer button{min-height:44px;width:100%}.warehouse-layout-launcher{display:none}#warehouseToolsClose{display:none}
.client-warehouse-shell:has(.warehouse-workbench)>.page-intro,.client-warehouse-shell:has(.warehouse-workbench)>.warehouse-readonly-note{display:none}.warehouse-workspace-active .workspace>.topbar{display:none}
@media(max-width:720px){
body.warehouse-workspace-active{background:#f5f7f0}.warehouse-workspace-active .site-header{display:none}.warehouse-workspace-active .client-main,.warehouse-workspace-active .main-content,.warehouse-workspace-active .workspace{padding:0!important;min-height:0}.warehouse-workspace-active .client-warehouse-shell{padding:0!important;margin:0!important}.warehouse-workbench{height:calc(var(--warehouse-viewport-height,100dvh) - 68px - env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;overflow:hidden;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#f5f7f0}.warehouse-workbench-header{flex-shrink:0;min-height:62px;padding:8px 16px;box-sizing:border-box}.warehouse-workbench-header h1{font-size:18px;letter-spacing:.1px}.warehouse-workbench-header p{font-size:12px;margin-top:3px}.warehouse-workbench-header nav{gap:4px}.warehouse-workbench-header nav span{font-size:10px}.warehouse-workbench .warehouse-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px;padding:4px 16px 10px;margin:0;flex-shrink:0}.warehouse-workbench .warehouse-search{min-width:0;max-width:none;flex:auto;width:auto}.warehouse-workbench .warehouse-search input{width:100%;height:44px;min-height:44px;font-size:16px;border-radius:11px;border:1px solid #dce4d5;background:#fff;padding-right:8px}.warehouse-workbench .warehouse-switch{width:auto;min-width:0;display:block}.warehouse-workbench .warehouse-switch>span{display:none}.warehouse-workbench .warehouse-switch select{width:100%;height:44px;min-height:44px;padding:0 8px;font-size:14px;border-radius:11px;background:white;border:1px solid #dce4d5}.warehouse-workbench .warehouse-toolbar>#warehouseResetView{display:none}.warehouse-workbench .warehouse-summary{display:none}.warehouse-workbench .warehouse-layout,.client-warehouse-shell .warehouse-layout[data-work-mode=operations]{display:block;position:relative;flex:1;min-height:0;height:auto!important;margin:0;gap:0}.warehouse-workbench .warehouse-stage-wrap,.warehouse-workbench .warehouse-layout[data-work-mode=operations]>.warehouse-stage-wrap{height:100%!important;min-height:0!important;border:0;border-radius:0;overflow:hidden}.warehouse-workbench #warehouseCanvas{height:0!important;min-height:0!important}.warehouse-workbench .warehouse-stage-actions{bottom:205px}.warehouse-workbench .warehouse-workbench-path{top:8px}.warehouse-workbench .warehouse-search-results{position:fixed;top:118px;left:16px;right:16px;width:auto;max-height:calc(var(--warehouse-viewport-height,100dvh) - 210px);overflow:auto;z-index:30;font-size:14px;border-radius:12px}.warehouse-search-results button{min-height:44px}.warehouse-workbench .warehouse-locate-message{display:none}.warehouse-workbench .warehouse-floating-actions{padding-bottom:14px}.warehouse-workbench .warehouse-selection-tools{display:none}.warehouse-workbench .warehouse-tools-panel{display:none;position:absolute;left:0;right:0;bottom:0;top:auto;max-height:85%;width:auto;z-index:18;border:0;border-top:1px solid #d9e2d3;border-radius:18px 18px 0 0;padding-top:4px;background:white;box-shadow:0 -6px 24px #1c2d1a18}.warehouse-tools-open .warehouse-tools-panel{display:block}.warehouse-workbench #warehouseToolsClose{display:grid;place-items:center;width:44px;height:44px;position:sticky;top:0;margin-left:auto;border:0;background:#fff;color:#506741;z-index:3}.warehouse-workbench[data-workspace=layout] .warehouse-layout-launcher{display:flex;position:absolute;left:12px;bottom:12px;gap:8px;z-index:9}.warehouse-layout-launcher button{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid #d9e2d3;border-radius:10px;color:#506741;background:#fff;font-size:12px}.warehouse-workbench[data-workspace=layout] .warehouse-stage-actions{bottom:72px}.warehouse-workbench[data-workspace=layout] .warehouse-camera-options{bottom:72px}.warehouse-workbench[data-workspace=layout] .warehouse-toolbar>#warehouseUndo,.warehouse-workbench[data-workspace=layout] .warehouse-toolbar>#warehouseRedo{display:none}.warehouse-workbench[data-workspace=layout] .warehouse-toolbar>#warehouseSave{grid-column:2;min-height:36px;font-size:12px}.warehouse-workbench[data-workspace=layout] .warehouse-toolbar{padding-bottom:6px}.warehouse-workbench .warehouse-status{position:fixed;bottom:82px;left:16px;right:16px;z-index:40}.warehouse-workbench .warehouse-stage-fullscreen{height:100dvh!important}.warehouse-panel-open .warehouse-stage-actions,.warehouse-panel-open .warehouse-floating-actions{visibility:hidden}
}
@media(prefers-reduced-motion:reduce){.warehouse-workbench *{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:720px){.warehouse-workbench .warehouse-toolbar>.warehouse-search{grid-column:auto;display:block;padding:0;border:0;box-shadow:none;background:none;height:44px}.warehouse-workbench .warehouse-toolbar>.warehouse-switch{padding:0;border:0;background:none;box-shadow:none}.warehouse-workspace-active .app-shell{padding-bottom:0!important}.warehouse-workspace-active #app>main{padding:0!important}.warehouse-workbench-header{height:66px;min-height:66px;padding-top:8px;padding-bottom:8px}.warehouse-workbench-header h1{font-size:18px!important}.warehouse-workbench-header p{font-size:12px!important}}
.warehouse-workbench .warehouse-floating-location-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.warehouse-workbench .warehouse-floating-location-fields label{font-size:12px;min-width:0}.warehouse-workbench .warehouse-floating-location-fields select{width:100%;min-width:0}.warehouse-precision-slots .warehouse-slot-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.warehouse-precision-slots .warehouse-slot-row>b{grid-column:1/-1}.warehouse-precision-slots .warehouse-slot-row button{overflow:hidden;min-width:0}.warehouse-precision-slots .warehouse-slot-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:10px}.warehouse-camera-options>#warehouseUndo,.warehouse-camera-options>#warehouseRedo{min-height:44px;margin:4px;width:calc(50% - 8px);font-size:13px}.warehouse-workbench .warehouse-selection-tools{position:static;display:flex;flex-wrap:wrap;padding:8px;gap:4px;border-bottom:1px solid #d9e2d3;background:#fff}.warehouse-workbench .warehouse-selection-tools button{min-height:44px;font-size:12px}.warehouse-workbench .warehouse-workbench-header{margin:0}.warehouse-workbench .warehouse-toolbar{margin:0}.warehouse-workbench #warehousePanelSize{flex:0 0 44px}.warehouse-workbench .warehouse-floating-panel>header>div small{display:block}
@media(max-width:720px){.warehouse-workbench .warehouse-tools-panel .warehouse-selection-tools{display:flex!important}.warehouse-workbench .warehouse-workbench-header{margin:0!important}.warehouse-workbench .warehouse-toolbar{margin:0!important}.warehouse-workbench .warehouse-toolbar>.warehouse-search input{box-sizing:border-box}.warehouse-workbench .warehouse-toolbar>.warehouse-search{box-sizing:border-box}.warehouse-workbench-header nav>a,.warehouse-workbench-header nav>button{font-size:12px}.warehouse-workbench-header nav span{font-size:11px}}
.warehouse-stage-wrap>.warehouse-solid-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0!important;pointer-events:none;z-index:0}.warehouse-solid-canvas[hidden]{display:none!important}.warehouse-stage-wrap>#warehouseCanvas{position:relative;z-index:1;background:transparent}.warehouse-workbench .warehouse-workbench-path,.warehouse-workbench .warehouse-stage-actions{z-index:9}
.warehouse-workbench .warehouse-stock-overview #warehouseMoreToggle{width:56px;min-height:72px;flex:0 0 56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:0;border-left:1px solid #e5e7df;background:none;color:#697363;font-size:12px}.warehouse-stock-overview #warehouseMoreToggle .warehouse-ui-icon{color:#313d2e}.warehouse-workbench .warehouse-stock-overview>img{width:72px;height:80px;background:#f5f3ee}.warehouse-workbench .warehouse-stock-quantity strong{font-size:29px}.warehouse-workbench .warehouse-sheet-handle{width:36px;height:5px;left:calc(50% - 18px);top:8px;border-radius:9px;background:#cbd0c7;pointer-events:none}.warehouse-sheet-handle svg{display:none}.warehouse-workbench .warehouse-floating-action-buttons button{min-height:46px;font-weight:600}.warehouse-workbench .warehouse-floating-panel-footer[hidden]{display:none}
.warehouse-workbench .warehouse-toolbar>.warehouse-search input{font-size:16px!important}
.warehouse-view-hint{font-size:12px;line-height:1.5;color:#687360;max-width:220px}.warehouse-workbench .warehouse-stage-actions button{min-width:44px}
@media(max-width:720px){.warehouse-workbench{gap:0!important}.warehouse-workbench-header{height:60px;min-height:60px}.warehouse-workbench .warehouse-toolbar{margin-bottom:2px!important}.warehouse-workbench .warehouse-layout{border-radius:0;border-left:0;border-right:0;box-shadow:none}}
@media(max-width:720px){.warehouse-workbench{background:#f6f4ee}.warehouse-workbench-header{height:64px;min-height:64px;padding:8px 16px}.warehouse-workbench-header h1{font-size:20px!important}.warehouse-workbench-header nav span{display:none}.warehouse-workbench-header nav .warehouse-ui-icon{width:24px;height:24px;flex-basis:24px}.warehouse-workbench .warehouse-toolbar{grid-template-columns:minmax(0,1fr) 110px;gap:0;border:1px solid #dfe2d9;background:#fff;border-radius:12px;margin:0 16px 10px!important;padding:0!important;width:calc(100% - 32px);box-sizing:border-box}.warehouse-workbench .warehouse-toolbar>.warehouse-search input{border:0;background:none;border-radius:12px 0 0 12px;font-size:15px;padding-right:6px}.warehouse-workbench .warehouse-toolbar>.warehouse-switch{border-left:1px solid #e3e5dd;margin:5px 0;height:34px}.warehouse-workbench .warehouse-switch select{border:0;height:34px;min-height:34px;padding:0 8px;font-size:14px;background:none}.warehouse-workbench .warehouse-workbench-path{left:12px;right:112px;top:8px}.warehouse-workbench #warehouseWorkbenchBack{display:none}.warehouse-workbench .warehouse-workbench-path #warehouseLocatorToggle{margin-left:0;max-width:100%;background:none;padding:0 4px;box-shadow:none;font-weight:600;color:#2d3b28}.warehouse-workbench .warehouse-stage-actions{top:8px;right:12px;bottom:auto;flex-direction:row;gap:6px}.warehouse-workbench .warehouse-stage-actions button{width:42px;height:44px;border-radius:11px}.warehouse-workbench .warehouse-camera-options{top:60px;right:12px;bottom:auto}.warehouse-workbench .warehouse-floating-actions{padding:25px 16px 18px}.warehouse-workbench .warehouse-stock-overview{gap:12px}.warehouse-workbench .warehouse-floating-slot-summary>b{font-size:16px}.warehouse-workbench .warehouse-stock-quantity strong{font-size:30px}.warehouse-workbench .warehouse-search-results{top:114px}.warehouse-workbench[data-workspace=layout] .warehouse-toolbar>#warehouseSave{grid-column:1/-1;min-height:36px;border-radius:0 0 12px 12px}.warehouse-workbench .warehouse-precision-slots .warehouse-slot-row small{display:none}.warehouse-workbench .warehouse-stock-quantity{margin-top:6px}}

/* 桌面端：看货平台操作面板改为右下角小窗，不再全宽抽屉覆盖整个仓库画面 */
@media(min-width:721px){
.warehouse-workbench .warehouse-floating-panel{left:auto;right:12px;bottom:12px;top:auto;width:min(360px,calc(100vw - 24px));max-width:360px;height:auto;max-height:min(480px,calc(100% - 24px));border:1px solid #bdcdb1;border-radius:13px;box-shadow:0 15px 50px rgba(28,43,20,.24)}
.warehouse-workbench[data-sheet-snap=full] .warehouse-floating-panel,.warehouse-workbench:has(#warehousePanelSize[aria-expanded=true]) .warehouse-floating-panel{height:auto;max-height:min(640px,calc(100% - 24px))}
.warehouse-workbench .warehouse-panel-backdrop{background:transparent}
.warehouse-workbench .warehouse-floating-panel-body{max-height:none}
}

/* 右键菜单 */
.warehouse-context-menu{position:fixed;z-index:60;min-width:170px;background:#fff;border:1px solid #d9e2d3;border-radius:11px;box-shadow:0 12px 32px rgba(28,43,20,.24);padding:6px;display:flex;flex-direction:column;gap:2px}
.warehouse-context-menu button{display:block;width:100%;text-align:left;min-height:38px;padding:8px 12px;border:0;background:none;color:#405738;font-size:13px;border-radius:7px;cursor:pointer}
.warehouse-context-menu button:hover{background:#f2f6ec}
.warehouse-context-menu button.danger{color:#b0452f}
.warehouse-context-menu button.danger:hover{background:#fdf0ec}
