:root{--blue:#1684ca;--text:#333;--muted:#666;--border:#e4e7eb;--header:#f4f5f7;--nav:#283444}*{box-sizing:border-box}body{margin:0;background:#f1f3f5;color:var(--text);font:13px/1.55 Arial,"Microsoft YaHei","PingFang SC",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--blue);text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #1684ca;outline-offset:2px}[hidden]{display:none!important}.topbar{height:52px;padding:0 23px;background:white;border-bottom:1px solid #dfe3e7;display:flex;align-items:center;justify-content:space-between;color:#666;font-size:12px}.logo{font-size:19px;color:#283444;font-weight:bold;letter-spacing:-.3px}.logo span{font-size:13px;letter-spacing:0;color:#777;font-weight:normal;margin-left:19px}.layout{display:flex;min-height:calc(100vh - 52px)}.sidebar{width:166px;background:var(--nav);color:#b8c3d0;padding-top:18px;flex-shrink:0}.menu-label{padding:0 21px 12px;font-size:12px;color:#a8b5c5}nav{display:flex;flex-direction:column}nav button{border:0;background:transparent;text-align:left;color:#dae1e9;padding:13px 23px;min-height:44px;font-size:13px}nav button:hover{background:#344258}nav button.active{color:white;background:#1684ca;border-left:3px solid #8ed5ff;padding-left:20px}.scope-note{font-size:11px;line-height:1.8;color:#b0bfce;padding:22px 18px;border-top:1px solid #405069;margin-top:25px}main{flex:1;min-width:0;padding:16px 20px 26px}.breadcrumb{font-size:12px;color:#777;margin-bottom:14px}.breadcrumb span{color:#333}.page-card{background:#fff;border:1px solid #dfe3e7}.page-title{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--border);gap:10px}.page-title h1{font-size:16px;margin:0;font-weight:600}.page-title small{color:#666;font-size:12px;margin-left:12px;font-weight:normal}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.button{min-height:32px;border:1px solid #c5cbd2;background:#fff;border-radius:3px;color:#444;padding:5px 12px;font-size:12px;white-space:nowrap}.button:hover{background:#f1f6fa;border-color:#86b5d2}.button.primary{border-color:#1684ca;background:#1684ca;color:white}.button.primary:hover{background:#0871b2}.button.soft{color:#1684ca;background:#eef7fd;border-color:#c1e1f6}.filters{padding:15px 16px 10px;border-bottom:1px solid var(--border);background:#fff}.filter-grid{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap}.filter-field{display:flex;align-items:center;gap:8px;font-size:12px}.filter-field>span{color:#555;min-width:48px}.filter-field input,.filter-field select{height:32px;padding:4px 8px;border:1px solid #b8c0c9;border-radius:3px;background:#fff;color:#333;min-width:130px;max-width:235px}.filter-field input[type=search]{min-width:260px}.major-filters{margin-top:12px;padding-top:12px;border-top:1px dashed #ddd;display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px}.filter-note{font-size:12px;color:#777;margin:10px 0 3px}.library-grid{display:grid;grid-template-columns:208px minmax(0,1fr)}.category-panel{border-right:1px solid var(--border);padding:13px 10px;min-width:0}.category-heading{font-size:12px;font-weight:600;display:flex;justify-content:space-between;padding:0 8px 10px;border-bottom:1px solid #eee;margin-bottom:8px}.link{background:none;border:0;color:#1684ca;padding:3px 0;font-size:12px;min-height:28px}.link:hover{text-decoration:underline}.tree{display:flex;flex-direction:column;gap:2px}.tree button{display:flex;gap:6px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:7px 5px;color:#444;font-size:12px;min-height:32px;border-radius:2px}.tree button:hover{background:#f3f8fc}.tree button.selected{background:#e9f4fc;color:#1684ca}.tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.tree-count{color:#7a8793;font-size:11px}.tree-mark{color:#91a1ae;font-size:10px;width:12px}.table-area{min-width:0}.table-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 13px;background:#fff;border-bottom:1px solid var(--border);font-size:12px;color:#666}.selected-info{color:#1684ca;margin-left:12px}.table-wrap{overflow-x:auto;max-height:calc(100vh - 320px);overflow-y:auto;scrollbar-width:thin}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}th{background:#f5f6f8;color:#444;font-weight:600;padding:9px 10px;text-align:center;white-space:nowrap;border-bottom:1px solid #dfe3e7;border-right:1px solid #eceef0;position:sticky;top:0;z-index:2}td{padding:12px 10px;border-bottom:1px solid #eceef0;color:#444;vertical-align:top;line-height:1.7;text-align:center}tbody tr:hover{background:#fbfdff}tbody tr.selected-row{background:#f1f8fd}.product-table{min-width:1130px}.product-table th:nth-child(1){width:34px}.product-table th:nth-child(2){width:136px}.product-table th:nth-child(3){width:98px}.product-table th:nth-child(4){width:210px}.product-table th:nth-child(5){width:145px}.product-table th:nth-child(6){width:165px}.product-table th:nth-child(7){width:220px}.product-table th:last-child{width:94px}.product-table td:last-child,.product-table th:last-child{position:sticky;right:0;background:#fff;border-left:1px solid #e3e7ec;box-shadow:-3px 0 5px #e5e8ed45}.product-table th:last-child{background:#f5f6f8;z-index:3}.product-code{font-size:12px;word-break:break-all;display:block}.id-label{color:#8a8a8a;font-size:11px}.product-thumb{width:78px;height:78px;object-fit:contain;background:#fff;border:1px solid #eee;display:block;margin:auto}.image-empty{width:78px;height:78px;background:#fafafa;border:1px dashed #ddd;color:#999;display:grid;place-items:center;font-size:11px;margin:auto}.product-title{display:block;color:#1684ca;background:transparent;border:0;padding:0;text-align:left;font-size:12px;min-height:28px;line-height:1.7}.model{font-size:11px;color:#666;line-height:1.6;text-align:left;word-break:break-word;max-width:210px;margin-top:3px}.category-path{color:#666;text-align:left;line-height:1.8;font-size:12px;word-break:break-word}.attribute-lines{text-align:left;line-height:1.9;font-size:12px;max-width:240px;word-break:break-word}.attribute-lines>div{margin-bottom:1px}.attribute-lines b{font-weight:normal;color:#777}.muted{color:#888;font-size:11px}.tag{display:inline-block;padding:1px 6px;border:1px solid #d7e1eb;background:#eef5fb;color:#48718f;border-radius:2px;font-size:11px;white-space:nowrap}.tag.draft{background:#fff7eb;color:#8c6527;border-color:#ecddbf}.tag.archived{background:#f4f4f4;color:#777;border-color:#ddd}.row-links{display:flex;flex-direction:column;align-items:center;gap:2px}.row-links .link{min-height:28px}.pager{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;border-top:1px solid #ddd}.pager .actions{gap:7px}.pager select{height:30px;padding:3px 5px;border:1px solid #bbb;background:#fff}.empty-state{padding:55px 20px;text-align:center;color:#777;line-height:2;font-size:13px}.loading{padding:40px;background:#fff;color:#777}.manage-table{min-width:650px}.manage-table td{text-align:left;vertical-align:middle;padding:11px 14px}.manage-table th{text-align:left;padding:10px 14px}.manage-content{padding:0 16px 16px}.management-note{padding:12px 16px;font-size:12px;color:#666;background:#fafbfc;border-bottom:1px solid #eee}.tabs{display:flex;gap:20px;border-bottom:1px solid #ddd;padding:0 16px;margin-top:13px}.tabs button{min-height:38px;border:0;background:transparent;color:#555;padding:8px 5px}.tabs button.active{color:#1684ca;border-bottom:2px solid #1684ca}.check-mark{color:#1684ca}.inherited{color:#888;font-size:11px}.level-1{padding-left:5px!important}.level-2{padding-left:18px!important}.level-3{padding-left:31px!important}.level-4{padding-left:44px!important}.level-5{padding-left:57px!important}.level-6{padding-left:70px!important}dialog{width:min(1000px,calc(100vw - 40px));padding:0;border:1px solid #cbd0d6;border-radius:4px;box-shadow:0 12px 70px #0003;color:#333;max-height:90vh}dialog::backdrop{background:#0005}.modal-title{display:flex;align-items:center;justify-content:space-between;background:#f5f6f8;border-bottom:1px solid #ddd;padding:12px 18px}.modal-title h2{font-size:15px;font-weight:600;margin:0}.close{background:none;border:0;color:#666;font-size:24px;line-height:1;width:30px;height:30px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid #ddd;background:#fafafa}.modal-footer .button{min-width:70px}#editor-body{padding:15px 22px}.section-title{background:#f4f6f8;border-left:3px solid #1684ca;font-size:13px;font-weight:600;padding:7px 10px;margin:4px 0 14px;display:flex;gap:10px;align-items:center}.section-title small{color:#888;font-size:11px;font-weight:normal}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 25px;margin-bottom:22px}.form-row{display:flex;align-items:flex-start;gap:10px;min-width:0;font-size:12px}.form-label{width:105px;flex-shrink:0;text-align:right;color:#555;padding-top:7px;line-height:1.6}.required{color:#d64f41;padding-right:4px}.form-row input:not([type=checkbox]),.form-row select,.form-row textarea{width:100%;min-width:0;border:1px solid #b8c0c9;border-radius:2px;padding:6px 8px;min-height:32px;background:#fff;color:#333}.form-row textarea{resize:vertical;min-height:65px}.form-control{flex:1;min-width:0}.form-control small{display:block;font-size:11px;line-height:1.6;color:#777;margin-top:5px}.form-row.wide{grid-column:1/-1}.checkbox-label{display:inline-flex;align-items:center;gap:6px;min-height:32px;color:#444}.form-note{font-size:12px;color:#666;margin:10px 0 15px;line-height:1.8}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-bottom:20px}.detail-row{display:flex;border-bottom:1px solid #eee;padding:9px 0;gap:14px;font-size:12px}.detail-row>span:first-child{width:110px;flex-shrink:0;color:#777;text-align:right}.detail-row>span:last-child{flex:1;white-space:pre-wrap;overflow-wrap:anywhere}.detail-photo{float:right;margin:0 0 15px 25px;width:130px;height:130px;object-fit:contain;border:1px solid #ddd}.source-note{color:#777;font-size:11px;line-height:1.8;border-top:1px solid #ddd;padding-top:10px;margin-top:20px;clear:both}.details-section summary{cursor:pointer;color:#1684ca;font-size:12px;padding:9px 0}.info-banner{color:#785822;background:#fff9ee;border:1px solid #ebd9ba;font-size:12px;padding:9px 12px;margin-bottom:14px}.unit{color:#777;margin-left:4px}#connection-error,#save-error{background:#fff1f0;color:#a93e34;border:1px solid #efcbc7;padding:10px 13px;font-size:12px;margin:12px 16px}#toast{position:fixed;top:65px;left:50%;transform:translateX(-50%);z-index:20;background:#fff;border:1px solid #bdd9bf;box-shadow:0 3px 18px #0001;padding:9px 20px;color:#35673c;border-radius:3px;font-size:13px}
@media(max-width:1100px){.sidebar{width:140px}main{padding:14px}.library-grid{grid-template-columns:175px minmax(0,1fr)}.filter-field input[type=search]{min-width:200px}}
@media(max-width:760px){.topbar{height:46px;padding:0 14px}.logo{font-size:16px}.logo span{display:none}.layout{display:block}.sidebar{width:100%;padding:0}.menu-label,.scope-note{display:none}nav{flex-direction:row}nav button{padding:12px 16px;min-height:44px}nav button.active{border-left:0;border-bottom:3px solid #8ed5ff;padding:12px 16px 9px}main{padding:12px}.breadcrumb{margin-bottom:10px}.page-title{padding:12px;align-items:flex-start;flex-wrap:wrap}.page-title small{margin-left:5px;font-size:11px}.button{min-height:38px}.filters{padding:12px}.filter-grid,.major-filters{gap:10px}.filter-field{width:100%}.filter-field>span{width:62px;min-width:62px}.filter-field input,.filter-field select{flex:1;max-width:100%;min-width:0!important;min-height:38px}.library-grid{grid-template-columns:1fr}.category-panel{display:none}.table-wrap{max-height:none}.table-toolbar{padding:10px 12px}.product-thumb{width:64px;height:64px}.image-empty{width:64px;height:64px}.pager{flex-wrap:wrap}.pager .button{min-height:38px}.link{min-height:38px}.form-grid,.detail-grid{grid-template-columns:1fr}.form-row.wide{grid-column:auto}.form-label{width:86px}.form-row input:not([type=checkbox]),.form-row select{min-height:40px}.form-grid{gap:12px}.detail-photo{float:none;margin:0 0 15px;width:110px;height:110px}dialog{width:calc(100vw - 24px);max-height:92vh}#editor-body{padding:12px}.modal-footer{padding:12px}.manage-content{padding:0 8px 8px}.manage-table{min-width:750px}.product-table td:last-child,.product-table th:last-child{position:static;box-shadow:none}.detail-row>span:first-child{width:86px}}
.product-table{min-width:1824px;table-layout:fixed}.product-table th:nth-child(n){width:auto}.col-34{width:34px}.col-80{width:80px}.col-110{width:110px}.col-140{width:140px}.col-245{width:245px}.col-215{width:215px}.col-180{width:180px}.col-230{width:230px}.col-100{width:100px}.col-130{width:130px}.col-95{width:95px}.col-85{width:85px}.product-name-cell{display:flex;gap:10px;align-items:flex-start;text-align:left}.product-name-cell .product-thumb,.product-name-cell .image-empty{width:52px;height:52px;flex-shrink:0;margin:0}.product-name-cell .product-title{overflow-wrap:anywhere;min-width:0}.product-table .model{font-size:12px;margin:0;max-width:none;white-space:pre-wrap;line-height:1.75}.product-table td{overflow-wrap:anywhere}.product-table .time-cell{font-size:11px}.sku-cell{color:#555}.tag.active{background:#eef7f0;color:#3b7049;border-color:#c6dfcb}.tag.disabled{background:#f4f4f4;color:#666;border-color:#d7d7d7}.tag.clearance{background:#fff4e5;color:#956118;border-color:#ead3ab}.supplier-table{min-width:1100px}.supplier-table td{overflow-wrap:anywhere;max-width:230px}.form-row input[readonly]{background:#f5f6f8;color:#777}
.product-table{min-width:2164px}.col-120{width:120px}.col-220{width:220px}.sale-price{font-size:13px;font-variant-numeric:tabular-nums;color:#333}.price-tax{font-size:11px;color:#666}.selling-points{white-space:pre-wrap;text-align:left;line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;max-height:7.2em}
dialog{overflow:hidden}#edit-form{display:flex;flex-direction:column;max-height:calc(90vh - 2px)}#editor-body{overflow-y:auto;min-height:0;flex:1}.modal-title,.modal-footer,#save-error{flex-shrink:0}
@media(max-width:760px){#edit-form{max-height:calc(92vh - 2px)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
