:root{--ink:#16283d;--muted:#64748b;--line:#dce4e9;--paper:#f5f8f9;--white:#fff;--nav:#173049;--blue:#176a92;--blue2:#e7f3f8;--green:#177457;--orange:#ad661e;--red:#b33939;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #75b7d5;outline-offset:2px}::selection{background:#b6dcec;color:#102437}.auth-screen{min-height:100vh;display:grid;place-items:center;background:#eaf1f4}.auth-card{background:white;width:min(420px,calc(100vw - 32px));padding:40px;border-radius:18px;box-shadow:0 18px 55px #16334b1a}.mark{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#65bad0;color:#092f46;font-weight:800;font-size:21px}.auth-card h1{font-size:28px;margin:24px 0 6px}.auth-card p{color:var(--muted);margin:0 0 28px}.auth-card form{display:grid;gap:18px}label{display:grid;gap:7px;font-weight:600}input,select{height:40px;border:1px solid #cbd7de;border-radius:9px;padding:0 12px;background:white;color:var(--ink);min-width:0}input[type=file]{padding:8px;height:auto}.primary{background:var(--blue);color:white;border:0;border-radius:9px;padding:11px 17px;font-weight:650}.primary:hover{background:#105475}.secondary{background:white;color:var(--ink);border:1px solid #cbd7de;border-radius:9px;padding:9px 14px}.secondary:hover{background:#f3f8fa}.auth-card .error,.error{color:var(--red);min-height:1em;margin:12px 0 0}#app{display:flex;min-height:100vh}.sidebar{width:232px;flex:none;background:var(--nav);color:#d9e7ee;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:28px 22px 34px}.brand strong{display:block;color:white;font-size:16px}.brand small{display:block;color:#a4bac8;margin-top:4px;font-size:11px;letter-spacing:.04em}.sidebar nav{display:grid;gap:5px;padding:0 12px}.sidebar nav button{border:0;text-align:left;background:transparent;color:#c5d5df;border-radius:9px;padding:12px 17px;font-weight:600}.sidebar nav button:hover,.sidebar nav button.active{background:#2c4e66;color:#fff}.sidebar-foot{margin-top:auto;padding:18px 22px 26px;border-top:1px solid #36556a;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px}.sidebar-foot button{border:0;background:none;color:#bdd5e1;padding:4px}.main{min-width:0;flex:1}.topbar{height:72px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;font-weight:650}.today{color:var(--muted);font-weight:400}.mobile-brand{display:none}#content{max-width:1380px;padding:34px 36px 80px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:26px}.page-head h1{font-size:27px;letter-spacing:-.025em;margin:0 0 7px}.page-head p{margin:0;color:var(--muted)}.page-actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:25px}.stat{background:white;border:1px solid var(--line);border-radius:13px;padding:22px}.stat .value{font-size:29px;font-weight:750;font-variant-numeric:tabular-nums;margin:12px 0 3px}.stat .label{color:var(--muted);font-weight:600}.stat small{color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:13px;margin-bottom:20px;overflow:hidden}.panel-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-head h2{font-size:17px;margin:0}.panel-body{padding:22px}.muted{color:var(--muted)}.notice{background:#e7f3f8;color:#24526b;border-radius:10px;padding:16px 18px;line-height:1.6;margin-bottom:22px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar input{min-width:230px}.toolbar select{min-width:170px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:740px}th,td{text-align:left;padding:14px 18px;border-bottom:1px solid #e9eef1;vertical-align:middle}th{color:#667a88;font-weight:650;background:#fbfcfd;font-size:12px}tr:last-child td{border-bottom:0}td a{color:var(--blue);font-weight:650;text-decoration:none}td a:hover{text-decoration:underline}.badge{display:inline-block;border-radius:7px;padding:5px 9px;background:#eef3f5;color:#4b6676;font-size:12px;font-weight:650}.badge.active{background:#e8f5ef;color:var(--green)}.badge.wait{background:#fff3e3;color:var(--orange)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:10px;align-items:center;margin-top:19px}.empty{text-align:center;color:var(--muted);padding:36px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.asset{background:#f3f7f9;border-radius:10px;overflow:hidden}.asset img,.asset video{width:100%;height:125px;object-fit:cover;background:#dce9ef}.asset div{padding:9px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-track{height:7px;background:#e7edf0;border-radius:20px;overflow:hidden;min-width:110px}.progress-track span{display:block;height:100%;background:#5baac4}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.pill{background:#eef4f6;border-radius:20px;padding:7px 11px;color:#3d6478}.back{border:0;background:transparent;color:var(--blue);padding:0;margin-bottom:20px;font-weight:650}#toast{position:fixed;right:24px;bottom:22px;background:#173049;color:white;padding:12px 18px;border-radius:9px;box-shadow:0 10px 30px #17304933;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:10}#toast.show{opacity:1;transform:none}@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.sidebar{width:190px}.topbar{padding:0 22px}#content{padding:26px 22px}}@media(max-width:640px){#app{display:block}.sidebar{position:fixed;top:auto;bottom:0;width:100%;height:62px;z-index:5}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;padding:6px;justify-content:space-around}.sidebar nav button{font-size:11px;padding:8px 9px;text-align:center}.topbar{height:55px;padding:0 16px}.mobile-brand{display:block}.today{display:none}#content{padding:22px 14px 90px}.page-head{align-items:start;flex-direction:column}.page-head h1{font-size:23px}.stats{gap:8px}.stat{padding:15px}.stat .value{font-size:23px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.toolbar input,.toolbar select{width:100%}.panel-head,.panel-body{padding:16px}table{min-width:660px}}
:where([hidden]){display:none!important}
.product-cell{display:flex;align-items:center;gap:12px;min-width:260px}.main-image-thumb,.product-cell .image-missing{width:60px;height:60px;flex:none;border-radius:9px;object-fit:cover;background:#edf2f4;border:1px solid var(--line)}.image-missing{display:grid;place-items:center;color:#78909d;font-size:11px;text-align:center;padding:5px}.reference-image{min-height:260px;background:#f4f7f8;border-radius:11px;display:grid;place-items:center;overflow:hidden}.main-image-large{display:block;width:100%;height:340px;object-fit:contain}.reference-image .image-missing{width:100%;height:260px;font-size:14px}

.product-toolbar input{flex:1;min-width:240px}.product-toolbar select{min-width:165px}.result-count{color:var(--muted);font-weight:650;margin-left:auto}.media-count{display:block;white-space:nowrap;font-size:12px;line-height:1.7}.pager{display:flex;align-items:center;justify-content:center;gap:16px;padding:20px 0;color:var(--muted)}
.detail-top{align-items:start}.assignment-line{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.quick-assign{display:flex;align-items:end;gap:10px;margin-top:14px;flex-wrap:wrap}.quick-assign label{min-width:180px}.panel-count{font-size:13px;color:var(--muted);font-weight:500;margin-left:8px}.media-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.media-columns .panel{height:100%}
.media-upload{margin-bottom:20px}.upload-zone{position:relative;border:1.5px dashed #a9c2ce;border-radius:12px;background:#f7fafb;padding:22px;display:grid;justify-items:center;text-align:center;gap:6px;cursor:pointer;transition:background .15s,border-color .15s}.upload-zone:hover,.upload-zone.dragover{background:#eaf5f9;border-color:var(--blue)}.upload-zone:focus-within{outline:3px solid #75b7d5;outline-offset:2px}.upload-zone strong{color:var(--blue);font-size:15px}.upload-zone span{font-size:12px;color:var(--muted);font-weight:400}.upload-zone input[type=file]{position:absolute;width:1px;height:1px;padding:0;opacity:0;overflow:hidden}.upload-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.upload-status{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-grid{margin-top:18px}.empty-media{padding:16px 0}.asset-caption{display:flex;align-items:center;gap:6px}.asset-caption span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-delete{border:0;background:transparent;color:var(--red);font-size:12px;padding:3px 0;flex:none}.asset-delete:hover{text-decoration:underline}
.asset-main{border:0;background:var(--blue2);color:var(--blue);border-radius:6px;font-size:12px;padding:4px 6px;white-space:nowrap;flex:none}.asset-main:hover{background:#d4ebf5}
@media(max-width:1100px){.media-columns{grid-template-columns:1fr}}@media(max-width:640px){.result-count{width:100%;margin-left:0}.product-toolbar input,.product-toolbar select{width:100%}.upload-actions{align-items:stretch;flex-direction:column}.media-columns{gap:0}}
.color-field{grid-column:1/-1;display:grid;gap:7px;min-width:0}.field-label{font-weight:600}.color-trigger{width:100%;min-height:42px;border:1px solid #cbd7de;border-radius:9px;background:#fff;color:var(--ink);padding:6px 12px;display:flex;align-items:center;text-align:left;justify-content:space-between}.color-trigger::after{content:"";width:7px;height:7px;border-right:1.5px solid #65798a;border-bottom:1.5px solid #65798a;transform:rotate(45deg);margin-left:12px;flex:none}.color-trigger:hover{border-color:#89acbd}.color-chip{display:inline-flex;align-items:center;gap:9px;min-width:0;line-height:1.3}.color-chip>span:last-child{overflow-wrap:anywhere}.color-swatch{width:21px;height:21px;flex:none;border:1px solid #0002;border-radius:5px;box-shadow:inset 0 0 0 1px #fff5}.color-placeholder{color:#526879}.color-menu{padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 8px 22px #17304916;display:grid;gap:9px}.color-search{width:100%}.color-options{max-height:220px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.color-option,.color-other-button{border:0;background:transparent;color:var(--ink);border-radius:7px;text-align:left;padding:8px 10px;min-height:38px}.color-option:hover,.color-option:focus-visible,.color-other-button:hover,.color-other-button:focus-visible{background:var(--blue2)}.color-other-button{color:var(--blue);font-weight:650;border-top:1px solid var(--line);border-radius:0;padding-top:12px}.color-empty{color:var(--muted);margin:6px 3px}.color-other-wrap{margin-top:3px}.product-color{margin-top:7px;font-size:12px;color:#43586b}.product-color .color-swatch{width:16px;height:16px;border-radius:4px}.unit-input{display:flex;align-items:center;border:1px solid #cbd7de;border-radius:9px;background:white;overflow:hidden}.unit-input:focus-within{outline:3px solid #75b7d5;outline-offset:2px}.unit-input input{border:0;min-width:0;flex:1;outline:0!important;box-shadow:none!important}.unit-input>span{padding:0 12px;color:#526879;font-size:12px;font-weight:750;letter-spacing:.04em;border-left:1px solid var(--line)}.size-hint,.legacy-size{margin:0;font-size:12px;line-height:1.5}.legacy-size{color:#805b33}@media(max-width:640px){.color-options{grid-template-columns:1fr}}
.size-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}.size-inputs[data-size-category="watch"] label{max-width:320px}@media(max-width:640px){.size-inputs{grid-template-columns:1fr}}
