:root { color-scheme: light; font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; background: #f3f5f7; color: #10233f; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
.hidden { display: none !important; }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 14px max(20px, calc((100vw - 1160px) / 2)); color: white; background: linear-gradient(120deg, #06182d, #173f70); }
.eyebrow { margin: 0 0 3px; font-size: 11px; letter-spacing: .18em; opacity: .65; }
h1, h2, p { margin-top: 0; } h1 { margin-bottom: 0; font-size: clamp(26px, 5vw, 40px); } .topbar h1 { font-size: clamp(26px, 3vw, 34px); line-height: 1.1; } h2 { margin-bottom: 6px; font-size: 19px; }
main { width: min(1160px, calc(100% - 32px)); margin: 22px auto 50px; }
button, input { font: inherit; } button { border: 0; border-radius: 9px; padding: 10px 15px; cursor: pointer; } button:disabled { opacity: .55; cursor: wait; }
input { width: 100%; padding: 11px 12px; border: 1px solid #cbd5e1; border-radius: 9px; background: white; }
label { display: grid; gap: 6px; color: #526176; font-size: 13px; }
.primary { color: white; background: #b52230; } .ghost { color: white; background: rgba(255,255,255,.12); }
.account { display: flex; align-items: center; gap: 10px; }
.search-shell, .panel, .metric, .notice { background: white; border: 1px solid #dfe5ec; border-radius: 14px; }
.search-shell { padding: 18px; display: grid; grid-template-columns: 1fr minmax(320px,.9fr); gap: 24px; align-items: center; }
.search-shell p, .panel-title span, small, .muted { color: #68778b; font-size: 13px; }
.search-row { display: flex; gap: 8px; }
.search-tools{position:relative;min-width:0}.search-assist{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;padding:7px;background:white;border:1px solid #cfd9e3;border-radius:11px;box-shadow:0 12px 28px rgba(15,35,60,.16)}.assist-title{padding:4px 7px 7px;color:#68778b;font-size:12px;font-weight:700}.search-assist button{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;text-align:left;background:white;padding:9px 8px;border-radius:7px}.search-assist button:hover,.search-assist button:focus{background:#edf3f7}.search-assist button strong{color:#0b2850}.search-assist button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#526176;font-size:13px}.search-assist button small{font-size:10px;white-space:nowrap}
.tabs { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin: 16px 0; }
.tabs button { background: #e7ebef; color: #334155; } .tabs .active { background: #0b2850; color: white; }
.notice { padding: 13px 16px; border-left: 4px solid #238257; margin-bottom: 14px; }.notice.error { border-left-color: #b52230; color: #8d1b24; }
.metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin: 16px 0; }
.inventory-summary{grid-template-columns:repeat(3,1fr)}
.metric { padding: 17px; display: grid; gap: 6px; }.metric>span { color: #5b6b7f; font-size: 13px; }.metric strong { font-size: 27px; letter-spacing: -.03em; }
.compact-summary { gap: 8px; margin: 12px 0; }.compact-summary .metric { min-width: 0; min-height: 0; grid-template-columns: auto auto minmax(0,1fr); align-items: baseline; gap: 7px; padding: 10px 14px; }.compact-summary .metric>span { font-size: 12px; white-space: nowrap; }.compact-summary .metric strong { font-size: 22px; white-space: nowrap; }.compact-summary .metric small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; }
.panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.panel { padding: 20px; margin-top: 14px; }
.panel-title { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 11px; border-bottom: 1px solid #e8edf2; margin-bottom: 14px; }
.upload-form { display: grid; gap: 12px; }.preflight { margin-top: 16px; }.preview-card { padding: 15px; border: 1px solid #d9e3ea; border-left-width: 4px; border-radius: 10px; }.preview-card.ok { border-left-color: #238257; }.preview-card.bad { border-left-color: #b52230; }.preview-card.warn { border-left-color: #c58317; }
dl { display: grid; grid-template-columns: 90px 1fr; gap: 7px; }dt { color: #67768a; }dd { margin: 0; word-break: break-all; }.anomalies { color: #922630; max-height: 150px; overflow: auto; }
.version-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid #edf0f3; }.version-row div { display: grid; gap: 2px; }.active-version { color: #153c65; }
.badge { display: inline-block; width: fit-content; padding: 4px 9px; border-radius: 999px; background: #e5eef7; color: #19446f; font-size: 12px; }
.product-head { display: flex; justify-content: space-between; gap: 20px; }.product-head h2 { margin-top: 8px; font-size: 28px; }.totals { display: flex; gap: 10px; }.totals>div { min-width: 135px; padding: 12px; border-radius: 10px; background: #f1f4f7; display: grid; gap: 4px; }.totals span { font-size: 12px; color: #66758a; }.totals strong { font-size: 25px; }
.version-note { padding: 10px 12px; background: #f5f7f9; border-radius: 8px; color: #536277; font-size: 13px; }
.size-list { display: grid; gap: 10px; }.size-card { border: 1px solid #dde4ea; border-radius: 11px; padding: 14px; }.size-card.selected { border-color: #153c65; box-shadow: 0 0 0 2px #dbe8f4 inset; }
.size-title { display: flex; justify-content: space-between; gap: 10px; }.size-title>div:first-child { display: grid; gap: 3px; }.size-title>div:first-child strong { font-size: 21px; }.size-qty { text-align: right; }.size-qty span { display: block; font-size: 12px; color: #68778b; }.size-qty strong { font-size: 22px; }
.locations { display: flex; flex-wrap: wrap; gap: 8px; margin: 11px 0; }.location { display: grid; grid-template-columns: auto auto; column-gap: 10px; padding: 8px 10px; border-radius: 8px; background: #edf3f7; }.location small { grid-column: 1/-1; }.location.missing { background: #fff1d8; }
details { border-top: 1px solid #edf0f3; padding-top: 8px; font-size: 12px; color: #69788b; }details p { margin: 5px 0; word-break: break-all; }
.candidates { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }.candidates button { text-align: left; background: #edf2f6; }
.empty-state { padding: 36px; text-align: center; }.auth-screen { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: linear-gradient(130deg,#081a32,#183f6d); }.auth-card { width: min(420px,100%); background: white; border-radius: 16px; padding: 28px; display: grid; gap: 14px; }.auth-card .eyebrow { color: #153c65; }.error-text { color: #ad2230; margin: 0; font-size: 13px; }
.result-section { margin-top: 22px; }.section-heading { display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.section-heading h3,.section-heading p{margin:0}.section-heading p{color:#68778b;font-size:13px;margin-top:4px}.inventory-size-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px}.inventory-size{border:1px solid #dbe3ea;border-radius:10px;padding:11px;display:grid;gap:4px}.inventory-size>span{font-weight:700}.inventory-size>strong{font-size:22px}.inventory-size.selected{border:2px solid #153c65;background:#eef5fb}.secondary-size{display:none}.warehouse-table{border:1px solid #dbe3ea;border-radius:10px;overflow:hidden}.warehouse-row{display:grid;grid-template-columns:minmax(100px,.55fr) 2fr minmax(80px,.55fr);gap:12px;align-items:start;padding:12px;border-bottom:1px solid #e7ecf0}.warehouse-row:last-child{border-bottom:0}.warehouse-head{background:#edf2f6;font-size:12px}.warehouse-row.missing{background:#fff4df}.size-pill{display:inline-block;margin:0 6px 6px 0;padding:4px 7px;border-radius:7px;background:#edf3f7;font-weight:700}.warehouse-row details{margin-top:5px}.state-box,.success-box{padding:14px;border-radius:9px;background:#edf8f2}.excluded-card{border-left:5px solid #c58317}.excluded-badge{background:#fff0d2;color:#8a5b0b;margin-left:6px}
.warehouse-priority{margin-top:14px;padding:14px;border-radius:12px;background:#f4f8fc;border:1px solid #cfddea}.warehouse-priority h3{font-size:21px;color:#0b2850}.warehouse-priority .warehouse-table{background:white}.warehouse-priority .warehouse-row>strong:first-child{font-size:17px;color:#0b2850}
.product-head{scroll-margin-top:8px}.other-details{margin-top:18px;padding:12px;border:1px solid #dfe5ec;border-radius:10px;background:#fafbfc}.other-details>summary{font-weight:700;color:#334155;cursor:pointer}.other-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.other-detail-grid p{display:grid;gap:3px;margin:0;padding:9px;background:white;border-radius:8px}.other-detail-grid span{font-size:12px;color:#68778b}.other-detail-grid strong{font-size:14px}
.task-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.task-binding{display:grid;gap:3px;background:#edf3f7;border-radius:9px;padding:11px;margin-bottom:12px}.task-binding span{font-size:13px;color:#58687c}.task-upload{display:grid;gap:12px}.task-upload-result{margin-top:12px}.task-result-slot{margin-top:12px}.task-result-slot>.panel{margin:0;padding:0;border:0;border-radius:0;background:transparent}.task-history-panel{margin-top:14px}.task-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:white;border-bottom:1px solid #e8edf2;border-radius:0;padding:11px 2px}.task-row>span:first-child{display:grid;gap:4px}.task-state{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px;background:#e9eef2}.task-state.exportable{background:#dff3e8;color:#17633f}.task-state.review_required{background:#fff0d4;color:#85590b}.task-state.failed{background:#fde5e8;color:#9a1c2a}.progress{height:10px;background:#e7edf2;border-radius:999px;overflow:hidden}.progress i{height:100%;display:block;background:#b52230;transition:width .3s}.processing-card{overflow:hidden}.processing-title{display:flex;align-items:center;gap:9px;margin-bottom:10px}.processing-title h2{margin:0}.processing-spinner{width:19px;height:19px;flex:0 0 auto;border:3px solid #f0c9ce;border-top-color:#b52230;border-radius:50%;animation:processing-spin .8s linear infinite}.processing-live{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:4px 8px;border-radius:999px;background:#e8f5ee;color:#17633f;font-size:12px;font-weight:700}.processing-live i{width:7px;height:7px;border-radius:50%;background:#238257;animation:processing-pulse 1.15s ease-in-out infinite}.processing-progress i{position:relative;min-width:18px;overflow:hidden}.processing-progress i::after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:processing-sheen 1.2s linear infinite}.processing-message{margin:8px 0 3px;font-weight:600}.processing-elapsed{margin:0 0 12px;color:#68778b;font-size:12px}@keyframes processing-spin{to{transform:rotate(360deg)}}@keyframes processing-pulse{50%{opacity:.28;transform:scale(.72)}}@keyframes processing-sheen{from{transform:translateX(-130%)}to{transform:translateX(260%)}}.review-box{border-left:4px solid #c58317;padding:12px;background:#fffaf0}.anomaly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;max-height:520px;overflow:auto}.anomaly-grid article{border:1px solid #eadfca;background:white;border-radius:9px;padding:9px}.anomaly-grid img{display:block;width:100%;max-height:110px;object-fit:contain;background:#f5f5f5}.anomaly-grid p{font-size:12px;margin:5px 0}.task-actions{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.button-link{display:inline-block;text-decoration:none;color:#163b62;background:#e8eef4;border-radius:9px;padding:10px 15px}.button-link.primary{color:white}.row-results{margin-top:10px}.result-table{margin-top:10px;border:1px solid #dce3e9;border-radius:9px;overflow:auto}.result-row{display:grid;grid-template-columns:1.2fr .35fr 1.6fr .4fr;gap:10px;align-items:center;padding:9px;min-width:760px;border-bottom:1px solid #e8edf1}.result-row>span:first-child{display:grid;gap:2px}.result-row small{color:#68778b}.result-row em{font-style:normal;font-size:12px}.result-head{background:#edf2f6;font-size:12px}
.legacy-upload{margin-top:13px;padding-top:11px;border-top:1px solid #e7ecf0}.legacy-upload>summary{cursor:pointer;color:#526176;font-size:13px}.legacy-upload>p{margin:8px 0;color:#68778b;font-size:12px}.legacy-upload .task-upload{margin-top:10px}
/* 上传后只收紧信息展示，不改变版本绑定、上传或任务处理逻辑。 */
.task-binding{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 9px;padding:8px 11px;margin-bottom:10px}.task-binding strong{font-size:13px}.task-binding span{font-size:12px;min-width:0}.task-row{padding:8px 2px}.task-row>span:first-child{gap:2px}.task-row small{font-size:12px}
.review-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.review-actions input{grid-column:1/-1;min-width:0;padding:8px}.data-notes{margin:10px 0;padding:10px;background:#f3f6f8;border-radius:9px}.data-notes ul{margin-bottom:0;padding-left:20px}
.rfid-summary{grid-template-columns:repeat(3,1fr)}.rfid-options{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.rfid-options fieldset{display:flex;gap:12px;flex-wrap:wrap;min-width:190px;padding:10px 12px;border:1px solid #dce4ec;border-radius:9px}.rfid-options legend{font-size:13px;color:#526176;padding:0 4px}.rfid-options label{display:flex;align-items:center;gap:5px;color:#10233f}.rfid-options input{width:auto;padding:0}.rfid-result-table{margin-top:10px;border:1px solid #dce3e9;border-radius:9px;overflow:auto}.rfid-result-row{display:grid;grid-template-columns:1.15fr 1fr .45fr .65fr 1.2fr 1.6fr;gap:10px;align-items:center;padding:9px;min-width:720px;border-bottom:1px solid #e8edf1}.rfid-result-row.no-locations{grid-template-columns:1.15fr 1fr .45fr .65fr 1.8fr;min-width:600px}.rfid-result-row:last-child{border-bottom:0}
footer { text-align: center; color: #78869a; padding: 18px; font-size: 12px; }
@media(max-width:760px){
  .topbar{height:58px;padding:9px 12px;align-items:center;flex-direction:row;gap:8px}.topbar .eyebrow{display:none}.topbar h1{font-size:20px;white-space:nowrap}.account{gap:6px;font-size:13px}.account button{padding:7px 10px}
  main{width:calc(100% - 16px);margin:8px auto 28px}.search-shell,.panel-grid,.task-layout{grid-template-columns:minmax(0,1fr)}.search-shell{padding:10px;gap:7px;border-radius:11px;min-width:0}.search-intro{display:flex;align-items:baseline;gap:8px;min-width:0}.search-intro h2{font-size:15px;margin:0;white-space:nowrap}.search-intro p{min-width:0;font-size:11px;line-height:1.25;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-tools{width:100%}.search-row{gap:6px;min-width:0;width:100%}.search-row input{min-width:0;padding:10px}.search-row button{padding:9px 13px}.search-assist{max-height:310px;overflow:auto}.search-assist button{grid-template-columns:1fr auto;gap:2px 8px}.search-assist button span{grid-column:1/-1;grid-row:2}.search-assist button small{grid-column:2;grid-row:1}
  .tabs{grid-template-columns:repeat(4,1fr);gap:4px;margin:7px 0}.tabs button{padding:8px 1px;border-radius:7px;font-size:11px;white-space:nowrap}
  .metrics{grid-template-columns:repeat(4,1fr);gap:4px;margin:7px 0}.inventory-summary{grid-template-columns:repeat(3,1fr)}.metric{padding:8px 6px;gap:2px;border-radius:9px;min-width:0}.metric>span{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric strong{font-size:17px}.metric small{display:none}.compact-summary .metric{grid-template-columns:1fr;padding:8px 6px;gap:2px}.compact-summary .metric strong{font-size:17px}.compact-summary .metric small{display:none}
  .panel{padding:11px;margin-top:7px;border-radius:11px}.product-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.product-head h2{font-size:21px;margin:5px 0 2px;overflow-wrap:anywhere}.product-head p{font-size:13px;margin:0}.badge{font-size:10px;padding:3px 6px}.totals.primary-total{display:block}.totals.primary-total>div{min-width:94px;padding:8px 9px;gap:1px}.totals.primary-total span{font-size:10px}.totals.primary-total strong{font-size:22px}
  .result-section{margin-top:12px}.warehouse-priority{margin-top:9px;padding:9px}.warehouse-priority h3{font-size:18px}.section-heading{margin-bottom:7px}.section-heading p{font-size:11px;line-height:1.25}.warehouse-head{display:none}.warehouse-row{grid-template-columns:76px 1fr 36px;gap:6px;padding:9px 7px}.warehouse-row>strong:first-child{font-size:19px!important;line-height:1.1;word-break:break-all}.warehouse-row>strong:last-child{font-size:13px;text-align:right}.size-pill{font-size:14px;margin:0 4px 4px 0;padding:4px 6px}.warehouse-row details{margin-top:3px;padding-top:4px}
  .inventory-size-grid{grid-template-columns:repeat(3,1fr);gap:5px}.inventory-size{padding:8px;gap:2px}.inventory-size>strong{font-size:19px}.other-details{margin-top:12px}.other-detail-grid{grid-template-columns:1fr 1fr}.candidates{grid-template-columns:1fr}.location{flex:1;min-width:130px}.anomaly-grid{grid-template-columns:1fr}
  .rfid-summary{grid-template-columns:repeat(3,1fr)}.rfid-options{display:grid;grid-template-columns:1fr}.rfid-options fieldset{min-width:0}.rfid-options button{width:100%}.task-binding{display:grid;gap:3px;padding:9px 10px}.task-binding span{font-size:12px}
}
