
:root{
  --bg:#151617;--panel:#222426;--panel2:#1b1d1f;--line:#3a3d40;
  --text:#f5f5f5;--muted:#a8aaad;--red:#c8202b;--green:#71b64a;--amber:#e2aa18;
}
*{box-sizing:border-box}
html,body{margin:0;background:radial-gradient(circle at 70% -15%,#2b2d2f 0,#171819 40%,#111213 100%);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;min-height:100%}
.topbar{min-height:82px;background:#0d0e0f;border-bottom:2px solid var(--red);display:flex;align-items:center;justify-content:space-between;padding:12px 30px;gap:20px}
.brand{display:flex;align-items:center;gap:22px}.brand img{width:360px;max-width:38vw}.brand .divider{height:44px;width:1px;background:#555}.brand strong{font-size:22px;white-space:nowrap}
.top-controls{display:flex;align-items:center;gap:18px;font-size:13px}.top-controls label{display:flex;align-items:center;gap:8px;color:#ddd}
select,input,button{font:inherit}.top-controls select,.top-controls input{background:#17191b;color:#fff;border:1px solid #555;border-radius:6px;padding:10px 12px;color-scheme:dark}
main{padding:18px 28px 36px;max-width:1800px;margin:0 auto}
.summary,.steps,.upload-panel,.review-panel{border:1px solid #35383b;border-radius:9px;background:linear-gradient(145deg,#242628,#1b1d1f);box-shadow:0 12px 30px #0004}
.summary{display:grid;grid-template-columns:1.5fr repeat(3,.7fr);min-height:105px;margin-bottom:14px}.total{display:flex;align-items:center;padding:18px 26px}.summary-icon{width:58px;height:58px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:34px;margin-right:18px}.total h2{margin:0;font-size:23px}.total h2 span{color:#ec323c}.total p{margin:8px 0 0;color:#b6b7b9;font-size:14px}.metric{display:flex;flex-direction:column;justify-content:center;align-items:center;border-left:1px solid #3a3d40}.metric b{font-size:30px}.metric span{font-size:14px;color:#ccc;margin-top:5px}.green{color:var(--green)}.amber{color:var(--amber)}.red{color:#ee3842}
.steps{display:grid;grid-template-columns:1fr 60px 1fr 60px 1fr;align-items:center;padding:0 20px;min-height:92px;margin-bottom:14px}.step{display:flex;align-items:center;gap:16px;padding:20px;position:relative}.step.active:before{content:"";height:4px;background:var(--red);position:absolute;top:-1px;left:0;right:0}.step i{font-style:normal;width:44px;height:44px;border:2px solid #777;border-radius:50%;display:grid;place-items:center;font-size:21px}.step.active i{border-color:#ed323c;color:#ed323c}.step div{display:flex;flex-direction:column;gap:6px}.step span{font-size:12px;color:#aaa}.arrow{font-size:50px;color:#666;text-align:center}
.upload-panel{padding:28px 34px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:26px}.eyebrow{font-size:11px;letter-spacing:1.6px;color:#e52d37;font-weight:800}.upload-panel h1{margin:7px 0;font-size:28px}.upload-panel p{max-width:850px;color:#b1b3b5;line-height:1.45;margin:0}.button-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.btn{border-radius:5px;padding:11px 17px;border:1px solid #505357;color:#fff;background:#2c2e31;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn.primary{background:linear-gradient(#d32a34,#b91d27);border-color:#df3f48}.btn.secondary{background:#303235}.btn.ghost{background:transparent;color:#aaa}.upload-meta{display:flex;gap:10px;align-items:center;margin-top:12px;color:#aaa;font-size:12px}.pill{border:1px solid #505357;border-radius:999px;padding:5px 9px}.pill.ok{border-color:#4a7539;color:#9bd376;background:#1e281c}.pill.no{border-color:#805425;color:#efbd70;background:#2a231b}.process-btn{min-width:235px;border:1px solid #5b5e62;background:transparent;color:#fff;border-radius:8px;padding:19px 22px;font-size:17px;font-weight:700;display:flex;justify-content:space-between;cursor:pointer}.process-btn b{font-size:27px;color:#e52d37}.process-btn:disabled{opacity:.3;cursor:not-allowed}
.review-panel{overflow:hidden}.panel-title{height:72px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-title h2{margin:4px 0 0;text-transform:uppercase;font-size:17px}.tools{display:flex;gap:11px}.tools input{width:360px;max-width:34vw;background:#101214;border:1px solid #45484b;color:#eee;border-radius:5px;padding:10px 12px}.small-btn{background:#2a2c2e;border:1px solid #44484b;color:#ddd;border-radius:5px;padding:9px 12px;cursor:pointer}.small-btn.active{border-color:#d82b35;color:#fff}
.table-wrap{overflow:auto;max-height:610px}table{border-collapse:collapse;width:100%;min-width:1350px}thead{position:sticky;top:0;z-index:3}th{background:#17191b;padding:13px 9px;text-align:left;font-size:12px;border-bottom:1px solid #414448;white-space:nowrap}.confirmed-head small{display:block;color:#aaa;font-weight:400;font-size:9px;margin-top:3px}td{padding:6px 8px;border-bottom:1px solid #34373a;background:#1b1d1fcc;vertical-align:middle}tr:hover td{background:#222527}.empty td{text-align:center;height:190px;color:#888}
.rowno{width:34px;height:34px;border:1px solid #51555a;border-radius:5px;display:grid;place-items:center}.thumb{width:76px;height:58px;background:#eee;border:1px solid #666;border-radius:4px;overflow:hidden;display:grid;place-items:center;cursor:zoom-in}.thumb img{max-width:100%;max-height:100%;object-fit:contain}
.field{min-width:140px}.field input,.field select{width:100%;background:#111315;color:#f2f2f2;border:1px solid #54585c;border-radius:5px;padding:9px 9px;outline:none}.field.required input,.field.required select{border-color:#d42b34;color:#ff646c;background:#251517}.field .carton{margin-top:4px;padding:5px 8px;font-size:11px;color:#e7c05b}.na{display:block;margin-top:3px;background:transparent;border:0;color:#888;text-decoration:underline;font-size:10px;cursor:pointer;padding:0}.carrier{min-width:190px}.details{min-width:260px}.status{min-width:150px;background:#111315;border-radius:5px;padding:9px;border:1px solid #555;color:#fff}.status.Confirmed{border-color:#4c7b38;color:#86cc60}.status.Damaged{border-color:#a47a0c;color:#efba28}.status.Missing{border-color:#a52a31;color:#ef4952}
.footer{min-height:82px;background:#1a1c1e;border-top:1px solid #3a3d40;display:flex;justify-content:space-between;align-items:center;padding:12px 18px;gap:20px}.legend{display:flex;gap:20px;font-size:12px}.g{color:#80bd5e}.a{color:#e4ad21}.r{color:#ea3b44}.footer-actions{display:flex;align-items:center;gap:16px}.footer-actions>span{font-size:11px;color:#aaa;max-width:330px;text-align:right}.report-btn{min-width:300px}.report-btn:disabled{opacity:.32;cursor:not-allowed}
.modal{position:fixed;inset:0;background:#000e;display:grid;place-items:center;z-index:40;padding:40px}.modal[hidden]{display:none}.modal img{max-width:92vw;max-height:90vh;object-fit:contain}.modal button{position:absolute;right:25px;top:18px;width:42px;height:42px;border-radius:50%;font-size:26px;color:#fff;background:#252729;border:1px solid #555}
.toast{position:fixed;bottom:22px;right:22px;background:#25282a;border:1px solid #555;padding:13px 16px;border-radius:7px;box-shadow:0 15px 40px #000;max-width:430px;z-index:60}.toast.bad{border-color:#b82b34;background:#2b1719}
@media(max-width:1050px){.brand img{width:260px}.brand strong,.brand .divider{display:none}.topbar{align-items:flex-start}.top-controls{flex-direction:column;align-items:flex-end}.summary{grid-template-columns:1fr 1fr}.total{grid-column:1/-1}.steps{grid-template-columns:1fr}.arrow{display:none}.upload-panel{flex-direction:column;align-items:stretch}.process-btn{width:100%}}


/* Batch reliability / retry update */
.processing-overlay{
  position:fixed;inset:0;z-index:100;background:rgba(5,6,7,.82);
  backdrop-filter:blur(5px);display:grid;place-items:center;padding:24px
}
.processing-overlay[hidden]{display:none}
.processing-card{
  width:min(520px,92vw);background:linear-gradient(145deg,#292b2e,#181a1c);
  border:1px solid #4a4d50;border-top:4px solid var(--red);
  border-radius:14px;padding:34px 36px;text-align:center;
  box-shadow:0 30px 90px rgba(0,0,0,.7)
}
.spinner{
  width:72px;height:72px;margin:0 auto 20px;border-radius:50%;
  border:7px solid #45484b;border-top-color:#ed323c;
  animation:modspin .85s linear infinite
}
@keyframes modspin{to{transform:rotate(360deg)}}
.processing-eyebrow{font-size:11px;letter-spacing:2px;color:#ed323c;font-weight:900}
.processing-card h2{font-size:28px;margin:7px 0 8px}
.processing-progress{font-size:18px;font-weight:700;color:#fff}
.processing-stats{font-size:13px;color:#b8babc;margin-top:12px}
.processing-card p{font-size:12px;color:#8f9295;margin:16px 0 0}
.progress-track{
  height:10px;background:#0e1011;border:1px solid #444;border-radius:999px;
  overflow:hidden;margin-top:18px
}
.progress-bar{height:100%;width:0;background:linear-gradient(90deg,#aa1822,#ed323c);transition:width .25s ease}
.retry-all:not(:disabled){border-color:#a12c32;color:#ff656d}
.retry-all:disabled{opacity:.35;cursor:not-allowed}
.retry-btn{
  white-space:nowrap;border:1px solid #a62a32;background:#2b1719;color:#ff646c;
  border-radius:5px;padding:8px 11px;font-weight:800;cursor:pointer;font-size:11px
}
.retry-btn:hover{background:#401b1f}
.retry-btn:disabled{opacity:.4;cursor:wait}
.ai-ok{color:#75b954;font-size:12px;font-weight:700}
.ai-error-note{
  max-width:150px;color:#ff6c73;font-size:9px;line-height:1.2;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}


/* Full-resolution lightbox zoom */
.modal{
  position:fixed;inset:0;background:rgba(0,0,0,.94);
  display:flex;flex-direction:column;z-index:120;padding:0
}
.modal[hidden]{display:none}
.modal-toolbar{
  height:58px;flex:0 0 58px;background:#151719;border-bottom:1px solid #444;
  display:flex;align-items:center;gap:16px;padding:0 18px;color:#c7c9cb;
  font-size:12px;z-index:2
}
.modal-toolbar #zoomLabel{
  min-width:54px;color:#fff;font-weight:800;border:1px solid #555;
  border-radius:999px;padding:5px 9px;text-align:center
}
.modal-toolbar span:nth-child(2){flex:1;color:#9da0a3}
.modal-toolbar button{
  position:static;width:auto;height:auto;border-radius:5px;font-size:13px;
  padding:8px 12px;color:#fff;background:#25282a;border:1px solid #555;cursor:pointer
}
.modal-toolbar #modalClose{font-size:22px;line-height:1;padding:5px 11px}
.modal-stage{
  flex:1;min-height:0;overflow:auto;position:relative;padding:26px;
  display:block;text-align:center
}
.modal-stage img{
  display:block;margin:auto;max-width:none;max-height:none;
  transform:none;cursor:zoom-in;user-select:none;-webkit-user-drag:none;
  box-shadow:0 18px 60px rgba(0,0,0,.65)
}
.modal-stage img.zoom-max{cursor:zoom-out}


/* Auto-orientation / manual rotate */
.label-image-cell{display:flex;flex-direction:column;align-items:center;gap:5px}
.rotate-label-btn{
  border:0;background:transparent;color:#9da0a3;font-size:10px;
  padding:1px 4px;cursor:pointer;text-decoration:underline
}
.rotate-label-btn:hover{color:#fff}
