*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{color:#202326;-webkit-font-smoothing:antialiased;background:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;overflow:hidden}button{color:inherit;font:inherit}.app-shell{background:#fff;grid-template-columns:minmax(0,65fr) minmax(360px,35fr);width:100%;height:100%;display:grid}.scene-panel,.scene-host{width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.scene-host canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.scene-tooltip{z-index:2;color:#252a2e;pointer-events:none;will-change:transform;background:#fffffff0;border:1px solid #97aec373;gap:6px;width:174px;padding:10px 12px;font-size:12px;display:grid;position:absolute;top:0;left:0;box-shadow:0 8px 22px #1e374b21}.scene-tooltip span{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.scene-tooltip strong,.scene-tooltip b{font-size:13px;font-weight:650}.scene-tooltip small{color:#596168;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.35;overflow:hidden}.detail-panel{scrollbar-width:thin;scrollbar-color:#cbd1d5 transparent;background:#fff;border-left:1px solid #dfe3e6;min-width:0;height:100%;padding:34px 28px 32px;overflow:auto}.panel-title{margin:0 0 26px}.panel-title h1{color:#202326;letter-spacing:-.04em;margin:0;font-size:clamp(32px,3.1vw,44px);font-weight:650;line-height:1.05}.hierarchy-up{color:#444a4f;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:30px;margin:0 0 15px;padding:0 8px 0 3px;font-size:14px;font-weight:540;line-height:1.4;display:inline-flex}.hierarchy-up svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:18px;height:18px}.hierarchy-up:hover,.hierarchy-up:focus-visible{color:#2474ee;outline:none}.warehouse-total{border-bottom:1px solid #dfe3e6;grid-template-columns:1fr 1fr;gap:28px;padding:0 0 19px;display:grid}.warehouse-total div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.warehouse-total span,.metric-head,.summary-head,.section-title,.table-head,.lane-head,.depth-line{color:#4a5055;font-size:13px;font-weight:500}.warehouse-total strong{letter-spacing:-.035em;font-size:24px;font-weight:620}.summary-head,.summary-row{grid-template-columns:54px minmax(110px,1fr) 48px 48px;align-items:center;gap:12px;display:grid}.summary-head{text-align:right;border-bottom:1px solid #dfe3e6;min-height:52px;padding:0 12px}.summary-head span:nth-child(2){text-align:left}.summary-row{text-align:right;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #eceff1;width:100%;min-height:86px;padding:14px 12px;transition:background-color .16s}.summary-row:hover,.summary-row:focus-visible,.summary-row.is-hovered,.slot-row:hover,.slot-row:focus-visible,.slot-row.is-hovered{background:#f1f7ff;outline:none}.summary-id{color:#262a2d;text-align:left;font-size:24px;font-weight:590}.summary-meter{text-align:left;gap:8px;display:grid}.summary-meter small{min-height:18px;font-size:13px}.occupancy-track{background:#e1e4e6;border-radius:999px;width:100%;height:9px;display:block;position:relative;overflow:hidden}.occupancy-fill{border-radius:inherit;min-width:0;transition:width .18s,background-color .18s;position:absolute;inset:0 auto 0 0}.metric-head{border-bottom:1px solid #dfe3e6;grid-template-columns:1fr auto;padding:0 14px 11px 72px;display:grid}.metric-line{grid-template-columns:78px minmax(110px,1fr) 62px;align-items:center;gap:14px;min-height:70px;display:grid}.metric-value{gap:4px;display:grid}.metric-value strong{letter-spacing:-.035em;font-size:26px;font-weight:620}.metric-value span{min-height:16px;font-size:13px;font-weight:600}.metric-remaining{text-align:right}.section-title{border-top:1px solid #dfe3e6;border-bottom:1px solid #dfe3e6;grid-template-columns:1fr 48px;align-items:center;min-height:43px;padding:0 12px;display:grid}.section-title span:last-child{text-align:right}.slot-list{margin-bottom:25px}.slot-row{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:64px minmax(110px,1fr) 54px;align-items:center;gap:14px;width:100%;min-height:38px;padding:0 12px;font-size:13px;transition:background-color .14s;display:grid}.slot-row>span:last-child{text-align:right}.product-table{width:100%;margin-top:20px}.table-head,.product-row{grid-template-columns:minmax(148px,1fr) 70px 78px;align-items:center;gap:10px;min-height:30px;padding:0 10px;display:grid}.table-head{border-bottom:1px solid #dfe3e6}.product-row{color:#353a3e;font-size:13px}.product-row>span:not(:first-child),.table-head>span:not(:first-child){text-align:right}.product-name{align-items:center;gap:9px;min-width:0;display:flex}.product-name i{flex:0 0 10px;width:10px;height:10px}.product-name strong{letter-spacing:.02em;font-size:13px;font-weight:650}.lane-list{border-top:1px solid #dfe3e6}.lane-section{border-bottom:1px solid #dfe3e6;padding:0 0 22px}.lane-head{background:#edf6ff;grid-template-columns:1fr 70px 64px;align-items:center;min-height:39px;padding:0 10px;display:grid}.lane-head strong{color:#2d3236;font-size:14px;font-weight:560}.lane-head span{text-align:right}.lane-section .metric-line{padding:0 10px}.lane-section .metric-value strong{font-size:22px}.lane-section .product-table{margin-top:12px}.depth-line{justify-content:space-between;padding:0 10px 10px 102px;display:flex}.overload-line{color:#f04438;text-align:right;margin:10px 10px 0;font-size:13px;font-weight:600}.empty-slot{color:#737b80;place-items:center;min-height:180px;font-size:20px;display:grid}@media (width<=1060px){.app-shell{grid-template-columns:minmax(0,60fr) minmax(340px,40fr)}.detail-panel{padding-inline:22px}.table-head,.product-row{grid-template-columns:minmax(132px,1fr) 64px 70px}}@media (width<=760px){body{overflow:auto}.app-shell{grid-template-rows:56svh auto;grid-template-columns:1fr;height:auto;min-height:100%;display:grid}.scene-panel{min-height:420px}.detail-panel{border-top:1px solid #dfe3e6;border-left:0;height:auto;min-height:44svh;padding:25px 20px 38px;overflow:visible}.panel-title{margin-bottom:20px}.panel-title h1{font-size:34px}}@media (prefers-reduced-motion:reduce){.summary-row,.slot-row,.occupancy-fill{transition:none}}
