:root{font-family:Arial,sans-serif;color:#24292d;background:#fff;font-size:14px;letter-spacing:0;--green:#12684e;--border:#e1e5e7;--muted:#6b7379}*{box-sizing:border-box}body{margin:0;display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:none;min-height:36px;color:inherit;border-radius:5px}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #a8cfe8;outline-offset:2px}svg{width:18px;height:18px;flex-shrink:0}input,select{border:1px solid #cbd2d6;border-radius:5px;background:#fff;padding:10px 12px;color:inherit;max-width:100%;min-width:0}input:focus,select:focus{outline:2px solid #b8d9cc;border-color:var(--green)}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}h1,h2,h3,p{margin:0}h1{font-size:22px;font-weight:600;margin-top:5px}h2{font-size:22px}h3{font-size:15px;font-weight:600}a{color:inherit}main{min-width:0}.sidebar{background:#f5f6f6;border-right:1px solid var(--border);padding:30px 16px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{text-decoration:none;font-size:26px;font-weight:700;padding:0 12px 30px;display:block;line-height:1.1}.brand span{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:8px;letter-spacing:0}.sidebar nav{display:grid;gap:6px}.nav{justify-content:flex-start;text-align:left;padding:11px 12px;min-height:43px;width:100%;font-size:13px}.nav.active{background:#e0eee7;color:var(--green);font-weight:600}.sidebar-bottom{margin-top:auto;padding:20px 12px 0}.eyebrow{font-size:10px;color:var(--muted);font-weight:600}.progress-line{display:flex;align-items:baseline;gap:8px;margin-top:10px}.progress-line strong{font-size:23px}.progress-line span{font-size:12px;color:var(--muted)}progress{width:100%;height:5px;appearance:none;border:0;margin:12px 0 16px}progress::-webkit-progress-bar{background:#e0e5e3;border-radius:3px}progress::-webkit-progress-value{background:var(--green);border-radius:3px}#catalog-status{font-size:11px;line-height:1.6}.topbar{min-height:98px;border-bottom:1px solid var(--border);padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.top-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.icon{width:36px;height:36px;min-width:36px;padding:8px;border:1px solid var(--border);background:#fff}.top-tools .icon{border:0}.connection{font-size:12px;color:var(--green);white-space:nowrap}.badge{display:inline-block;font-size:11px;font-weight:600;padding:5px 8px;border-radius:4px;white-space:nowrap}.badge.neutral{background:#edf0f1;color:#667078}.badge.pending{background:#eff1f3;color:#6b7379}.badge.working{background:#fff0cf;color:#886007}.badge.counted{background:#e1f0e7;color:#12684e}.badge.disabled{background:#eceef0;color:#888}.view{padding:28px 32px}.scan-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:30px}.scan-main{min-width:0}.scan-detail{border-left:1px solid var(--border);padding-left:28px;min-width:0}.active-band{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--border);gap:12px;min-height:110px}.active-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}.active-heading h2{font-size:24px;font-weight:600;overflow-wrap:anywhere}.code{font-family:Consolas,monospace;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.secondary{border:1px solid #d6dcdf;padding:8px 11px;background:#fff;font-size:12px;min-height:36px}.primary{background:var(--green);color:#fff;font-weight:600;padding:11px 15px;font-size:13px;min-height:40px}.scan-form{padding:26px 0 20px}.scanner{display:flex;align-items:center;border:2px solid #1d7658;border-radius:6px;padding:4px 8px 4px 16px;gap:12px;height:60px;background:#fff;box-shadow:0 0 0 3px #edf5f0}.scanner>svg{width:25px;height:25px;color:var(--green)}.scanner input{border:0;border-radius:0;flex:1;font-size:21px;padding:8px 0;width:100%;outline:0;background:none}.scanner .icon{border:0;color:var(--green)}.scan-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:12px;gap:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.contents-heading{padding:16px 0}.small-count{font-weight:400;font-size:12px;color:var(--muted);margin-left:10px}.table-wrap{max-width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;line-height:1.5}th{color:var(--muted);font-weight:500;font-size:11px;text-align:left;background:#f6f7f7;padding:11px 10px;white-space:nowrap;border-bottom:1px solid var(--border)}td{padding:14px 10px;border-bottom:1px solid #eceff0;vertical-align:top}td:first-child{font-family:Consolas,monospace;white-space:nowrap}td.number,th.number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.number strong{font-size:15px}.table-empty td{text-align:center!important;color:#81898e;font-family:Arial!important;padding:58px 12px;font-size:13px}.finish-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.muted{color:var(--muted);font-size:12px}.last-item{margin-top:22px;min-height:170px}.last-item h4{font-size:17px;line-height:1.45;margin:12px 0;font-weight:500;overflow-wrap:anywhere}.last-item .quantity{display:flex;gap:26px;margin-top:22px}.quantity strong{display:block;font-size:26px;margin-bottom:5px;font-weight:600}.quantity span{font-size:11px;color:var(--muted)}.accepted{color:var(--green);font-size:12px;display:flex;align-items:center;gap:6px;margin-bottom:14px}.empty{color:#81898e;font-size:13px;padding:26px 0}.detail-rule{height:1px;background:var(--border);margin:22px 0}.label-preview{display:block;width:100%;max-width:235px;aspect-ratio:58/40;object-fit:contain;margin:20px auto 8px;border:1px solid #eceff0}#label-caption{text-align:center;font-size:11px}.metric{display:flex;align-items:center;justify-content:space-between;margin:18px 0;gap:12px}.metric>span{font-size:12px;color:var(--muted)}.metric strong{font-size:20px;font-weight:600}.metric small{font-size:11px;font-weight:400}.notice{margin:16px 32px 0;padding:13px 16px;border-left:3px solid var(--green);background:#edf5ef;font-size:13px;line-height:1.5}.notice.error{border-color:#bf4c3c;background:#fff2ef;color:#963c30}.notice button{margin-left:10px}.error-text{color:#b24134;line-height:1.5;font-size:13px}.resolve{background:#fffbf1;border-left:3px solid #c49b3b;padding:16px 18px;margin:0 0 18px}.resolve .code{margin:8px 0 14px}.search{width:100%;min-height:40px}.search-results{max-height:260px;overflow:auto;margin-top:12px}.result-button{width:100%;border-bottom:1px solid var(--border);text-align:left;justify-content:space-between;padding:12px 4px;border-radius:0;gap:15px}.result-button strong{display:block;font-size:12px;margin-bottom:5px}.result-button span{font-size:12px;line-height:1.5}.result-button>span{min-width:0;overflow-wrap:anywhere}.section-toolbar{display:flex;align-items:center;gap:24px;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}.search-box{display:flex;align-items:center;gap:10px;width:min(520px,100%)}.search-box svg{color:var(--muted)}select{margin-left:8px;min-width:120px}.legend{display:flex;flex-wrap:wrap;gap:15px;font-size:11px;color:var(--muted)}.legend span{display:flex;gap:6px;align-items:center}.dot{display:inline-block;width:8px;height:8px;border-radius:50%}.dot.pending{background:#bbc4ca}.dot.working{background:#d2a94d}.dot.counted{background:#348867}.dot.disabled{background:#ddd}.shelf-row{display:grid;grid-template-columns:65px repeat(6,minmax(70px,1fr));gap:10px;margin-bottom:12px;align-items:stretch}.shelf-label{display:flex;align-items:center;font-size:12px;color:var(--muted)}.location-tile{position:relative;padding:14px 8px;display:flex;flex-direction:column;border:1px solid #dce2e5;min-height:94px;border-radius:5px;background:#fafbfb;gap:9px}.location-tile>strong{font-size:13px;font-weight:600}.location-tile small{font-size:11px;color:var(--muted)}.location-tile.working{background:#fff9e9;border-color:#ddc781}.location-tile.counted{background:#edf7f1;border-color:#9dc5b0}.location-tile.disabled{background:#f1f2f3;color:#999}.location-tile .dot{position:absolute;top:8px;right:8px}.location-results{max-height:430px;overflow:auto;margin-top:14px}.location-result{width:100%;justify-content:space-between;text-align:left;padding:12px 8px;border-bottom:1px solid var(--border);border-radius:0}.location-result .code{display:block;margin-top:5px}.location-result .muted{margin-left:auto;padding:0 12px}.product-detail{margin-top:28px;border-top:1px solid var(--border);padding-top:24px}.product-detail h2{font-size:18px;margin-bottom:10px}.product-detail .detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:20px}.chip{display:inline-block;padding:6px 9px;background:#f1f3f4;font-family:Consolas,monospace;font-size:12px;margin:4px 5px 4px 0;border-radius:4px}dialog{border:1px solid #dbe1e4;border-radius:8px;padding:24px;width:min(540px,calc(100% - 32px));max-height:85vh;overflow:auto;color:#24292d;box-shadow:0 20px 80px #0002}dialog::backdrop{background:#14201b66}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}dialog h2{font-size:20px}dialog p{margin-top:14px;line-height:1.6;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#login-dialog{max-width:370px}#login-dialog h2{margin:12px 0 24px}#login-form input{width:100%}#login-form button{width:100%;margin-top:20px}#login-form p{min-height:20px}#location-grid{overflow:auto}.reversed{color:#90979b;text-decoration:line-through}[hidden]{display:none!important}
.cell-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.barcode-line{margin:12px 0;line-height:1.5}#retry-panel{margin:10px 0 20px}#location-grid>.shelf-row{min-width:650px}
.last-item{overflow-wrap:anywhere}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shelf-summary{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding:12px 0;font-size:12px;color:var(--muted)}.shelf-summary strong{color:#24292d;white-space:nowrap}.shelf-link{font-size:12px;min-height:30px;padding:0;color:var(--green)}
#location-grid>.shelf-row{grid-template-columns:76px repeat(7,minmax(80px,1fr));min-width:760px}#location-grid>.shelf-row.containers{grid-template-columns:90px repeat(4,minmax(95px,1fr));min-width:540px}.shelf-label{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.shelf-label strong{font-size:12px}.shelf-label small{font-size:11px;line-height:1.5}.location-tile.shelf{border-left:3px solid #6e99ad}.location-tile{height:94px;min-height:94px}.location-tile strong{overflow-wrap:anywhere}
.move-product{font-weight:600;line-height:1.5;overflow-wrap:anywhere}#move-form label{margin-top:18px}#move-source{overflow-wrap:anywhere}#move-target{min-height:24px;font-size:12px;overflow-wrap:anywhere}#move-quantity{width:120px}.move-item{width:30px;min-width:30px;height:30px;min-height:30px;padding:5px}#scan-view th:last-child,#scan-view td:last-child{width:42px;padding-left:5px;padding-right:5px}#move-dialog .dialog-actions{flex-wrap:wrap}
@media(max-width:600px){header.topbar{flex-wrap:wrap}header.topbar>div:first-child{flex-basis:100%}header.topbar .top-tools{margin-left:auto}h1#view-title{max-width:100%;overflow-wrap:normal}#scan-view .table-wrap table{min-width:0;table-layout:fixed}#scan-view th:first-child,#scan-view td:first-child{width:74px;padding-left:6px;padding-right:6px;white-space:normal;overflow-wrap:anywhere}#scan-view th:nth-child(3),#scan-view td:nth-child(3){width:68px;padding-left:6px;padding-right:6px}#scan-view th:nth-child(4),#scan-view td:nth-child(4){display:none}#scan-view td:nth-child(2){overflow-wrap:anywhere}}
@media(min-width:1600px){.view,.topbar{padding-left:44px;padding-right:44px}.scan-layout{grid-template-columns:minmax(0,1fr) 310px;gap:38px}.scan-detail{padding-left:34px}}
@media(max-width:1150px){body{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.nav{font-size:12px}.view{padding:24px}.topbar{padding:22px 24px}.scan-layout{grid-template-columns:minmax(0,1fr) 225px;gap:20px}.scan-detail{padding-left:20px}.active-band{flex-wrap:wrap}.contents-heading{align-items:flex-start;flex-wrap:wrap}.connection{display:none}.notice{margin-left:24px;margin-right:24px}}
@media(max-width:900px){body{grid-template-columns:70px minmax(0,1fr)}.sidebar{padding:24px 10px}.brand{font-size:15px;padding:0 0 24px}.brand span{font-size:9px}.nav{justify-content:center;padding:10px}.nav span,.sidebar-bottom{display:none}.topbar{min-height:90px}.scan-layout{grid-template-columns:minmax(0,1fr)}.scan-detail{display:grid;grid-template-columns:1fr 1fr;border-left:0;border-top:1px solid var(--border);padding:20px 0;gap:14px}.scan-detail>.detail-rule,.scan-detail>#label-caption{display:none}.scan-detail>.section-heading{grid-column:1/-1}.last-item{grid-column:1/-1;margin-top:0;min-height:0}.last-item .empty{padding:10px 0}.label-preview{margin:0;max-width:210px;grid-row:4/7}.metric{margin:7px 0}.shelf-row{min-width:680px}}
@media(max-width:600px){body{display:block}.sidebar{position:static;height:auto;padding:14px 16px 0;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:22px;padding:0 0 12px;display:flex;align-items:baseline;gap:10px}.brand span{font-size:10px;margin:0}.sidebar nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding-bottom:10px}.nav span{display:none}.nav{min-height:36px}.topbar{padding:18px 16px;gap:8px;align-items:flex-start}.top-tools{gap:2px;justify-content:flex-end}.top-tools .badge{font-size:9px;padding:5px}.top-tools .icon{width:28px;min-width:28px;height:28px;min-height:28px;padding:5px}h1{font-size:20px}.eyebrow{font-size:9px}.view{padding:20px 16px}.notice{margin:12px 16px 0}.active-heading h2{font-size:22px}.active-band{min-height:100px;padding-bottom:18px}.active-band>.secondary{font-size:11px;min-height:32px}.scan-form{padding-top:20px}.scanner{height:55px;padding-left:10px;gap:8px}.scanner input{font-size:19px}.contents-heading h3{font-size:14px}.contents-heading>.secondary{font-size:11px}.table-wrap table{min-width:500px}.finish-row{align-items:flex-start;flex-wrap:wrap}.finish-row>.primary{margin-left:auto}.section-toolbar{gap:14px}.product-detail .detail-columns{grid-template-columns:1fr}.legend{gap:10px}.notice .secondary{margin:10px 8px 0 0}.active-heading{gap:8px}#view-title{max-width:200px;overflow-wrap:anywhere}}
