:root{--red:#a92336;--ink:#292522;--muted:#88817a;--line:#e7e2da;--paper:#f5f3ef;--must:#f8e6d6;--new:#dceaf6;--other:#e6ebe2;--gold:#c39124}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.5 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}button,input,select{font:inherit}button{border:1px solid var(--line);border-radius:8px;padding:8px 13px;background:#fff;color:var(--ink);cursor:pointer}button:hover{border-color:#b9a79c;background:#fcfaf6}button:disabled{cursor:default;opacity:.45}.primary{background:var(--red);color:white;border-color:var(--red)}.primary:hover{background:#8e1b2b}.active{color:var(--red);background:#faece9!important;border-color:#d9a49f!important}.link{border:0;background:transparent;color:var(--red);font-size:12px;padding:4px 12px}input,select{border:1px solid var(--line);border-radius:7px;padding:8px;background:white;min-width:0;max-width:100%;color:var(--ink)}label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#746b63;margin-bottom:12px}label input,label select{font-size:13px;color:var(--ink)}.check{flex-direction:row;align-items:center;white-space:nowrap}.check input{accent-color:var(--red)}h1,h2,h3,p{margin:0}h1{font-size:18px}h2{font-size:27px;letter-spacing:-.04em}h3{font-size:14px}small,.muted{color:var(--muted);font-size:12px}[hidden]{display:none!important}.top{height:84px;padding:0 30px;background:#fffcf8;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:45px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{background:var(--red);color:#fff4ce;width:42px;height:44px;display:grid;place-items:center;border-radius:13px;font-size:25px;font-weight:700}.top nav{display:flex;gap:10px}.nav{border:0;background:transparent}.access{margin-left:auto;color:#8a7968;font-size:12px}main{max-width:1800px;margin:auto;padding:24px 28px 45px}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.intro p{color:var(--muted);margin-top:6px}.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--red);font-weight:800;display:block;margin-bottom:7px}.actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.toolbar{display:flex;gap:22px;align-items:center;background:#fff;padding:13px 18px;border:1px solid var(--line);border-radius:12px;margin-bottom:17px}.toolbar label{margin:0}.toolbar label:first-child{min-width:170px}.toolbar .check{margin-top:15px}.view-switch{display:flex;margin-left:auto}.view-switch button{border-radius:0}.view-switch button:first-child{border-radius:8px 0 0 8px}.view-switch button:last-child{border-radius:0 8px 8px 0}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr) 235px;gap:15px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 5px 18px #36250d05}.panel-title,.canvas-title{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid var(--line);gap:10px}.tabs{display:flex;gap:4px;padding:12px}.tabs button{flex:1;font-size:12px}.filters{display:grid;gap:8px;padding:0 12px}.hint{color:var(--muted);font-size:11px;line-height:1.7;margin:10px 12px}.library-items{padding:8px 10px;max-height:850px;overflow-y:auto}.asset-card{width:100%;display:flex;align-items:center;gap:10px;margin-bottom:7px;text-align:left;padding:9px;border-radius:9px;font-size:12px;touch-action:pan-y}.asset-card.chosen{outline:2px solid var(--red)}.asset-card .thumb{width:40px;height:54px;flex:none}.thumb{display:grid;place-items:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:contain}.placeholder{background:linear-gradient(130deg,#f5ce86,#d7a965);border-radius:4px 4px 9px 9px;color:#704a18;border-top:4px double #d0a454;border-bottom:4px double #d0a454;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.4;font-size:10px;padding:3px;width:100%;height:100%}.placeholder b{font-size:11px}.placeholder small{font-size:8px;color:#88652f}.asset-card span{display:block}.tag{font-size:10px;padding:2px 5px;border-radius:4px;display:inline-block}.m{background:var(--must)}.n{background:var(--new)}.o{background:var(--other)}.stats{display:flex;border-bottom:1px solid var(--line);padding:10px 18px;gap:25px;font-size:11px;color:var(--muted)}.stats b{font-size:17px;color:var(--ink);margin-right:5px}.canvas-scroll{overflow:auto;background:radial-gradient(ellipse at 50% 80%,#e9e5dd,#f8f7f4 70%);padding:20px 15px}.scene{position:relative;min-width:440px;padding:48px 30px 70px 55px}.scene[data-cols='6']{min-width:570px}.scene[data-cols='5']{min-width:520px}.rack{position:relative;border:9px solid #b7b8b5;border-bottom:16px solid #a8aaa6;border-radius:5px;background-color:#eceeeb;background-image:radial-gradient(#b9bcb6 .9px,transparent 1px);background-size:9px 9px;box-shadow:4px 10px 0 #949892,12px 18px 25px #393b3025;overflow:visible}.rack-row{position:relative;display:grid;border-bottom:5px solid #c1c4bd;grid-template-columns:repeat(var(--cols),minmax(0,1fr));min-height:130px}.rack-row:last-child{border-bottom:0}.rack-row.golden{outline:2px solid #d0a748;outline-offset:-2px}.row-label{position:absolute;left:-55px;width:43px;top:35%;text-align:right;font-size:12px;font-weight:700;color:#696860}.row-label small{display:block;font-size:9px}.golden .row-label{color:#a27317}.col-labels{display:grid;grid-template-columns:repeat(var(--cols),1fr);text-align:center;font-size:10px;margin-bottom:7px;color:#8d8981}.slot{position:relative;min-width:0;display:flex;align-items:center;flex-direction:column;padding:22px 6px 12px;min-height:130px;border:0;border-right:1px dashed #a8aaa640;border-radius:0;background:transparent;cursor:pointer;color:var(--ink)}.slot:hover{background:#ffffff88;border-color:#a8aaa640}.slot:before{content:'';position:absolute;top:8px;width:19px;height:12px;border-right:3px solid #838a82;border-bottom:3px solid #838a82;border-radius:0 0 5px 0;transform:skew(-12deg);box-shadow:1px 1px 1px #fff}.slot[data-kind='basket']:before,.slot[data-kind='shelf']:before,.slot[data-kind='stack']:before{display:none}.slot[data-kind='basket']{border-bottom:7px double #979b96;background:linear-gradient(0deg,#b8c0b44d,transparent 50%)}.slot.locked{background:#d3d5d166;color:#8b8d89;cursor:default;justify-content:center}.slot.locked:before{display:none}.slot .product-image{width:65%;height:76px;pointer-events:none}.slot .slot-type{position:absolute;top:6px;left:4px;font-size:9px;line-height:1.15;padding:2px 3px;border-radius:3px;max-width:80%;z-index:1}.slot .sku-caption{font-size:9px;line-height:1.3;text-align:center;margin-top:4px;max-width:100%;word-break:break-word;pointer-events:none}.slot .qty-label{position:absolute;bottom:2px;right:4px;font-size:9px;color:#817468}.slot.empty .empty-label{margin:auto;font-size:11px;max-width:80%;text-align:center;color:#968b7c}.slot .slot-id{position:absolute;bottom:2px;left:3px;font-size:8px;color:#929388}.slot.selected{box-shadow:inset 0 0 0 2px var(--red)}.slot.allowed{background:#d8f1d977!important;box-shadow:inset 0 0 0 2px #67a778}.slot.blocked{opacity:.4}.effect .slot-type,.effect .slot-id{display:none}.effect .slot.empty{opacity:.45}.scene.end .rack-row{min-height:290px}.scene.end .slot{justify-content:center;background:repeating-linear-gradient(to bottom,transparent 0,transparent 84px,#b8b7b1 85px,#b8b7b1 90px)}.scene.end .slot:before,.scene.floor .slot:before{display:none}.scene.end .product-image{height:155px}.scene.floor .rack{border:0;border-bottom:22px solid #a48358;background:#cbbd9c;box-shadow:9px 9px #8d7c63}.scene.floor .rack-row{min-height:220px;border-bottom:0}.scene.floor .slot{justify-content:center;background:linear-gradient(120deg,#ffffff66,#00000009)}.scene.floor .product-image{height:120px}.scene.floor .col-labels{margin-bottom:15px}.zone{position:relative;min-height:25px;border:1px dashed #cfc7bb;border-radius:4px;font-size:9px;color:#a19789;text-align:center;display:flex;align-items:center;justify-content:center}.zone.top-zone{height:32px;margin-bottom:8px}.zone.ground-zone{height:38px;margin-top:26px;background:#e4dcc977;transform:skew(-10deg)}.zone.side-zone{position:absolute;top:85px;bottom:115px;width:20px;writing-mode:vertical-rl}.zone.side-zone.left{left:20px}.zone.side-zone.right{right:0}.zone.front-zone{margin-top:10px;height:36px}.row-zone{position:absolute;left:0;right:0;bottom:-6px;height:12px;z-index:3;font-size:8px;background:#bcbdb88c;min-height:12px}.posm-mode .zone{border-color:var(--red);background:#faece988;color:var(--red)}.posm-item{position:absolute;width:80px;height:42px;display:flex;align-items:center;justify-content:center;z-index:6;cursor:move;border:1px solid transparent;touch-action:none;transform:translate(-50%,-50%)}.posm-item img{width:100%;height:100%;object-fit:contain;pointer-events:none}.posm-item .material-placeholder{background:#b32b3d;color:white;padding:4px 6px;font-size:10px;border-radius:4px;text-align:center;pointer-events:none}.posm-item.selected{outline:2px dashed var(--red)}.posm-item[data-type='side']{width:24px;height:100px}.posm-item[data-type='strip']{width:160px;height:20px}.posm-item[data-type='header']{width:155px;height:38px}.posm-item[data-type='surround']{width:160px;height:34px}.canvas-footer{display:flex;justify-content:space-between;gap:10px;padding:13px;font-size:10px;color:var(--muted)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:5px}.inspector{padding:16px}.inspector h3{margin-bottom:14px}.inspector h4{font-size:12px;margin:16px 0 8px}.inspector .hint{margin:10px 0}.inspector .notice{background:#fff6df;color:#8c6730;padding:9px;border-radius:6px;font-size:11px;margin:8px 0}.inspector .error-note{background:#fff0ed;color:#ad3340;padding:8px;font-size:11px;margin:5px 0}.pending-item{padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.pending-item button{font-size:11px;margin-top:4px}.asset-panel{padding:15px}.asset-panel>.tabs{width:350px}.asset-panel>input{width:340px;margin:4px 12px 20px}.asset-table{width:100%;border-collapse:collapse}.asset-table th,.asset-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:12px}.asset-table .thumb{width:40px;height:55px}.asset-table .disabled-row{opacity:.55}.asset-table .class-tags{display:flex;gap:5px;flex-wrap:wrap}dialog{border:1px solid var(--line);border-radius:15px;width:min(680px,95vw);max-height:90vh;overflow:auto;padding:24px;box-shadow:0 30px 100px #34241644}dialog::backdrop{background:#30251966}dialog h2{font-size:21px;margin-bottom:12px}dialog p{margin-bottom:15px}dialog .actions{margin-top:20px}.asset-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.upload-preview{height:140px;display:grid;place-items:center;background:#f5f2ec;border:1px dashed #d6cdbd;border-radius:7px;margin:10px 0;color:var(--muted)}.upload-preview img{max-height:130px;max-width:100%;object-fit:contain}.error{color:#b52236;font-size:12px}.plan-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.plan-item small{display:block}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:11px 20px;background:#312b26;color:#fff;border-radius:9px;box-shadow:0 8px 35px #0002;z-index:100;max-width:90vw;display:none}#toast.show{display:block}#toast.error{background:#922b36}.empty-message{padding:22px 10px;text-align:center;font-size:12px;color:var(--muted)}:focus-visible{outline:2px solid #b13d43;outline-offset:2px}@media(min-width:1500px){.workspace{grid-template-columns:250px minmax(0,1fr) 260px}.slot{min-height:150px}.slot .product-image{height:95px}}@media(max-width:1100px){main{padding:20px 16px}.workspace{grid-template-columns:190px minmax(0,1fr)}.inspector{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.inspector h3{grid-column:1/-1}.toolbar{gap:12px;flex-wrap:wrap}.toolbar #source{display:none}.access{display:none}}@media(max-width:650px){.top{padding:12px;height:auto;gap:12px;flex-wrap:wrap}.top h1{font-size:16px}.top nav{margin-left:auto;gap:3px}.nav{padding:6px}.brand-mark{width:34px;height:38px}.intro{align-items:flex-start;flex-direction:column}h2{font-size:23px}.workspace{grid-template-columns:1fr}.library-items{display:flex;max-height:160px;overflow-x:auto;gap:7px}.asset-card{min-width:150px;width:150px;flex-direction:column;margin:0}.asset-card .thumb{height:40px}.library .filters{grid-template-columns:1fr 1fr}.library .hint{margin:5px 12px}.library .tabs{padding:8px}.inspector{grid-template-columns:1fr}.inspector h3{grid-column:auto}.toolbar label:first-child{min-width:135px}.toolbar .view-switch{margin-left:0}.canvas-scroll{padding:12px 7px}.canvas-title{flex-wrap:wrap}.canvas-footer{flex-direction:column}.stats{gap:15px}.asset-form-grid{grid-template-columns:1fr}.asset-table th:nth-child(4),.asset-table td:nth-child(4){display:none}.asset-panel{padding:5px;overflow:auto}.asset-panel>.tabs,.asset-panel>input{width:90%}.scene{padding-left:48px}.row-label{left:-48px;width:37px}}
:root .product-image img{width:100%;height:100%;object-fit:contain}.drag-ghost{position:fixed;z-index:999;pointer-events:none;padding:9px 12px;background:#a92336;color:white;border-radius:8px;box-shadow:0 8px 20px #0003;font-size:12px}.asset-card,.slot{user-select:none}
/* Fixture appearance; shelf.css owns main-shelf geometry. */
:root{--must:#F3C49F;--new:#AFCFEF;--other:#BED8BA}
.main .rack{border-width:7px;border-bottom-width:18px;border-color:#9b9f9e;border-radius:2px;background:linear-gradient(90deg,#e8eae6,#f5f5ef 45%,#e3e6e0);box-shadow:5px 6px 0 #727975,9px 14px 20px #27322925}
.main .rack:before,.main .rack:after{content:'';position:absolute;top:0;bottom:0;width:4px;background:repeating-linear-gradient(#747e7a 0 3px,transparent 3px 13px);z-index:1;pointer-events:none}
.main .rack:before{left:-5px}.main .rack:after{right:-5px}
.main .rack-row{border-bottom:0;padding-bottom:5px;background:linear-gradient(to bottom,transparent 24px,#a4aeaa 24px,#e8ece9 28px,#899590 31px,transparent 31px)}
.main .rack-row:last-child{padding-bottom:0}
.main .slot{padding:40px 3px 16px;border-right:1px solid #ffffff66}
.main .slot:before{top:27px;width:12px;height:19px;border-color:#677570;border-width:3px;transform:skew(-22deg);z-index:2;box-shadow:2px 2px 1px #fff8}
.main .row-zone{background:transparent;border:0;color:transparent;height:10px;min-height:10px;bottom:0;pointer-events:none}
.main.posm-mode .row-zone{pointer-events:auto;background:#faece9aa;border:1px dashed var(--red);color:var(--red);height:14px}
.main .row-zone .posm-item{pointer-events:auto}
.main .slot{height:130px}.main .slot .product-image{width:85%;height:60px;flex-shrink:0}
.main .slot .sku-caption{font-size:10px;line-height:1.25;overflow:hidden;max-height:13px}
.main .slot .slot-type{top:4px;left:2px;max-width:96%;font-size:10px;background:transparent;padding:0}
.main .slot .slot-id{font-size:9px}.main .slot .qty-label{font-size:10px;background:#faf8f0;border:1px solid #c1c5bf;border-radius:2px;padding:0 2px}
.main .slot.empty .empty-label{color:#4e5046;font-size:11px;max-width:95%;line-height:1.5}
.slot.category-m{background-color:var(--must)}.slot.category-n{background-color:var(--new)}.slot.category-o{background-color:var(--other)}
.slot.category-mixed{background:linear-gradient(135deg,var(--new) 0 50%,var(--other) 50%)}
.slot.filled.category-m{background-color:#f3c49f55}.slot.filled.category-n{background-color:#afcfef55}.slot.filled.category-o{background-color:#bed8ba55}
.slot.filled.category-mixed{background:linear-gradient(135deg,#afcfef55 0 50%,#bed8ba55 50%)}
.slot.locked{background:#bdc5bd88;color:#5f685e;opacity:.7}
.rack-row.golden{outline:2px solid #ba8a1b;outline-offset:1px;z-index:1}
.golden .row-label small{background:#f1d991;border-radius:3px;color:#785416;padding:2px 0;font-size:10px}
.main[data-channel='ms'] .rack{background-color:#d8dfd6;background-image:linear-gradient(#869b8944 1px,transparent 1px),linear-gradient(90deg,#869b8944 1px,transparent 1px);background-size:12px 12px}
.main .slot[data-kind='basket']{border-bottom:8px double #89998d;box-shadow:inset 0 -24px 0 #a3b39a55}
.main[data-channel='ms'] .slot.locked{font-size:10px}
.scene.effect .slot{background:transparent!important}.scene.effect .slot.empty{opacity:1}.scene.effect .empty-label{visibility:hidden}
.scene .posm-item[data-type='header']{width:85%;max-width:155px}.scene .posm-item[data-type='strip']{width:90%;max-width:160px}
.canvas-title .actions{flex-wrap:wrap}.canvas-title button{padding:7px 9px;font-size:12px}
.bulk-dialog{width:min(1250px,96vw)}.bulk-dialog textarea{width:100%;font:13px/1.5 monospace;padding:10px;border:1px solid var(--line);border-radius:7px}
#assetAdvanced,.bulk-dialog details{margin:14px 0;padding:10px;border:1px solid var(--line);border-radius:8px}#assetAdvanced summary,.bulk-dialog summary{cursor:pointer;color:var(--muted);font-size:13px}#assetAdvanced[open] summary{margin-bottom:12px}.bulk-scroll details{margin:8px 0;padding:6px}.bulk-scroll select,.bulk-scroll input{max-width:100%}
.bulk-dialog .class-tags{display:flex;gap:12px;flex-wrap:wrap}.bulk-drop{padding:18px;text-align:center;border:2px dashed #b5b9ad;border-radius:8px;margin:15px 0;color:#747c69}
.bulk-scroll{overflow:auto;max-height:48vh}.bulk-scroll table{min-width:920px}.bulk-scroll td{vertical-align:top;min-width:130px}.bulk-scroll td:nth-child(2){min-width:180px}.bulk-scroll input:not([type=checkbox]),.bulk-scroll select{display:block;width:100%;margin-bottom:5px}
.bulk-scroll label{font-size:11px;margin-bottom:5px}.bulk-thumb{width:65px;height:75px;object-fit:contain;display:block;margin-bottom:5px}.bulk-status{color:#8f4733;max-width:180px}.file-button{margin:0}.file-button input{max-width:230px}.bulk-dialog .asset-table td:nth-child(4),.bulk-dialog .asset-table th:nth-child(4){display:table-cell}
@media(max-width:650px){.bulk-dialog{padding:14px}.bulk-dialog .actions{flex-wrap:wrap}.intro #bulkOpen{margin-bottom:5px}}
/* Document feedback: front elevation, quieter occupied slots and corner category badges. */
.product-card{position:relative;padding-top:28px;min-height:100px}
.library .tabs button{padding:8px 4px;white-space:nowrap;font-size:11px}
.asset-card .category-badge{position:absolute;right:0;top:0;padding:3px 7px;border-radius:0 8px 0 7px;font-size:10px;font-weight:600;line-height:1.5;color:#35392f}
.slot-filter{margin:10px 12px 0;padding:9px;background:#f6f3ec;border:1px solid #ddd5c5;border-radius:7px;font-size:11px;color:#62584c}
.slot-filter span{display:block}.slot-filter button{display:block;padding:4px 0 0;font-size:11px}
.main .rack{border-color:#a2aaa6;background-color:#edf0eb;background-image:radial-gradient(#aab3aa 1px,transparent 1.4px);background-size:10px 10px;box-shadow:0 5px 12px #28382e24;border-radius:2px}
.main .rack-row{background:linear-gradient(to bottom,transparent 21px,#a3ada7 21px,#e5eae5 24px,#8e9b93 27px,transparent 27px)}
.main .slot:before{top:20px;left:calc(50% - 7px);width:14px;height:9px;border:1px solid #818e85;border-radius:3px;background:linear-gradient(#f7f9f5,#9eaaa0);box-shadow:none;transform:none}
.main .slot:after{content:'';position:absolute;top:26px;left:calc(50% - 3px);width:6px;height:8px;border:1px solid #7f8b82;border-radius:3px;background:#c6d0c7;pointer-events:none}
.main .slot[data-kind='basket']:after,.main .slot.locked:after{display:none}
.main .slot.empty{padding:0;justify-content:center}
.main .slot.empty .empty-label{margin:0;line-height:1.6;max-width:94%;font-size:12px;color:#454b42;pointer-events:none}
.scene .slot.filled{background:transparent!important}
.scene .slot.allowed{background-color:transparent!important}
.scene .slot.empty.category-m.allowed{background-color:var(--must)!important}
.scene .slot.empty.category-n.allowed{background-color:var(--new)!important}
.scene .slot.empty.category-o.allowed{background-color:var(--other)!important}
.scene .slot.empty.category-mixed.allowed{background:linear-gradient(135deg,var(--new) 0 50%,var(--other) 50%)!important}
.scene.effect .slot.empty{background:transparent!important}
.main .slot .product-image{position:relative;z-index:2}
.main .slot .sku-caption{max-height:26px;font-size:10px}
.main .slot.filled{padding:33px 3px 16px}.main .slot.filled .product-image{height:64px}
.main .rack-row.golden{outline-offset:-1px}.main .rack-row:last-child{border-bottom:0}
.main .ground-zone{transform:none}.main .rack:before,.main .rack:after{width:3px;background:repeating-linear-gradient(#727e75 0 3px,transparent 3px 14px)}
@media(max-width:650px){.library-items .product-card{min-height:135px;padding-top:25px}.intro h2{font-size:21px}}
