/* Scoped layout: keep global receipt form and button rules outside this dialog. */
dialog.goods-intake{box-sizing:border-box;width:min(1080px,96vw);max-width:96vw;max-height:94dvh;margin:auto;padding:0;border:1px solid #d5dfd7;border-radius:16px;color:#203d33;background:#f5f7f3;overflow:auto;font-size:13px;line-height:1.5;box-shadow:0 20px 70px #12282038}
.goods-intake::backdrop{background:#12282099}
dialog.goods-intake>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#edf2e8;min-height:0;border-bottom:1px solid #dce5dc}
dialog.goods-intake h2{margin:2px 0;font-size:19px;line-height:1.4}
dialog.goods-intake h3{margin:0 0 10px;font-size:15px;line-height:1.5}
dialog.goods-intake p{margin:8px 0}
dialog.goods-intake small{display:block;color:#6a7b70;font-size:11px}
dialog.goods-intake .gi-bar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:0;margin:0}
dialog.goods-intake>.gi-bar{padding:10px 16px 4px}
dialog.goods-intake>.gi-bar label{width:150px}
dialog.goods-intake nav{display:flex;gap:6px;flex-wrap:wrap;padding:8px 16px;margin:0}
dialog.goods-intake main{padding:0 16px 12px;min-height:0}
dialog.goods-intake section,dialog.goods-intake form[data-scan]{background:#fff;border:1px solid #dce3d9;border-radius:10px;padding:12px;margin:8px 0;min-height:0}
dialog.goods-intake section>.gi-bar select{flex:1 1 240px;width:auto}
dialog.goods-intake section>.gi-bar button{flex:0 0 auto}
dialog.goods-intake .gi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;align-items:end;margin-top:8px}
dialog.goods-intake label{display:grid;gap:3px;font-size:12px;min-width:0;margin:0;color:#52665a}
dialog.goods-intake input,dialog.goods-intake select{min-width:0;width:100%;height:36px;min-height:36px;margin:0;padding:6px 9px;border:1px solid #cbd7ca;border-radius:7px;box-sizing:border-box;background:#fff;color:#243e32;font:inherit;line-height:1.4;box-shadow:none}
dialog.goods-intake input[type=file]{padding:4px;font-size:11px}
dialog.goods-intake input::file-selector-button{border:0;border-radius:4px;padding:4px 7px;margin-right:6px;background:#eef3eb;color:#365340}
dialog.goods-intake button{width:auto;min-width:0;height:36px;min-height:36px;align-self:end;margin:0;padding:6px 11px;border-radius:7px;border:1px solid #cbd7ca!important;background:#fff;color:#315140;cursor:pointer;font:inherit;font-size:12px;line-height:1.4;box-shadow:none;white-space:normal}
dialog.goods-intake button:hover{background:#eef4eb;border-color:#7e9c82!important}
dialog.goods-intake button:disabled{opacity:.45;cursor:default}
dialog.goods-intake nav .active,dialog.goods-intake [data-scan] button:not([type=button]),dialog.goods-intake [data-submit],dialog.goods-intake [data-confirm-yes]{background:#2d5b42;border-color:#2d5b42!important;color:#fff;font-weight:600}
dialog.goods-intake [data-close]{align-self:center;width:32px;height:32px;min-height:32px;padding:0;background:transparent}
dialog.goods-intake input:focus-visible,dialog.goods-intake select:focus-visible,dialog.goods-intake button:focus-visible{outline:2px solid #a88634;outline-offset:2px}
dialog.goods-intake [data-scan] .gi-grid{grid-template-columns:minmax(220px,2.1fr) 126px 126px minmax(220px,1.4fr) minmax(100px,.72fr) minmax(100px,.72fr) minmax(230px,1.45fr) 132px}
dialog.goods-intake [data-scan] .gi-code-field{grid-column:1/2}
dialog.goods-intake [data-scan] .gi-product-field{grid-column:1/2}
dialog.goods-intake [data-scan] .gi-photo-field{grid-column:auto}
dialog.goods-intake .gi-compact-action{height:32px;min-height:32px;padding:4px 9px;font-size:11px;white-space:nowrap}
dialog.goods-intake .gi-table{overflow-x:auto;margin-top:8px}
dialog.goods-intake table{min-width:700px;width:100%;font-size:12px;border-collapse:collapse}
dialog.goods-intake th{position:static;background:#eef2e9}
dialog.goods-intake th,dialog.goods-intake td{padding:7px 8px;text-align:left;border-bottom:1px solid #e6ebe3}
dialog.goods-intake td{white-space:normal}
dialog.goods-intake td button{margin:3px 3px 0 0}
dialog.goods-intake .gi-warning{background:#fff3ce;padding:8px 10px;border-radius:7px}
dialog.goods-intake [data-message]{margin:4px 16px;padding:6px 9px;color:#80591f;background:#fff7e5;border-radius:6px;font-size:12px}
dialog.goods-intake [data-message]:empty{display:none}
dialog.goods-intake video{width:100%;max-height:240px}
dialog.goods-intake [data-confirm]{max-width:min(500px,90vw);border-radius:12px;border:1px solid #b7bea9;padding:18px}
dialog.goods-intake [data-editor]:not(:empty){margin-top:10px;padding:10px;background:#f1f5ef;border-radius:8px}
dialog.goods-intake [data-editor] form{display:grid;gap:8px}
@media(max-width:650px){
 dialog.goods-intake{width:98vw;max-width:98vw;max-height:96dvh;border-radius:12px;font-size:13px}
 dialog.goods-intake>header{padding:10px 12px}dialog.goods-intake h2{font-size:17px}
 dialog.goods-intake main{padding:0 10px 10px}dialog.goods-intake>.gi-bar{padding:8px 10px 4px}
 dialog.goods-intake nav{padding:6px 10px;gap:4px}dialog.goods-intake nav button{flex:1;font-size:11px;padding:5px}
 dialog.goods-intake [data-message]{margin:4px 10px;font-size:11px}
 dialog.goods-intake section,dialog.goods-intake form[data-scan]{padding:10px}
 dialog.goods-intake .gi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 dialog.goods-intake [data-scan] .gi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 dialog.goods-intake [data-scan] label:has([name=code]),dialog.goods-intake [data-scan] label:has([name=sku]),dialog.goods-intake [data-scan] label:has([name=photo]),dialog.goods-intake [data-scan] button:not([type=button]){grid-column:1/-1}
 dialog.goods-intake input,dialog.goods-intake select{height:42px;min-height:42px;font-size:16px}
 dialog.goods-intake button{height:auto;min-height:42px}dialog.goods-intake input[type=file]{font-size:12px}
 dialog.goods-intake section>.gi-bar select{flex-basis:100%}
 dialog.goods-intake form[data-bill-form]>label:first-child,dialog.goods-intake form[data-allocate]>label:first-child{grid-column:1/-1}
}
/* Physical intake capture, scoped to the existing receiving workspace. */
dialog.goods-intake input[hidden]{display:none!important}dialog.goods-intake .gi-steps{color:#68776a;font-size:13px;margin:0 0 14px}dialog.goods-intake .gi-capture-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}dialog.goods-intake .gi-capture-actions span,dialog.goods-intake .gi-capture-footer>span{color:#64766a;font-size:13px}dialog.goods-intake .gi-camera-primary{background:#214e3c!important;color:white!important;border-color:#214e3c!important;font-weight:600;height:auto;min-height:44px;padding:11px 17px}dialog.goods-intake .gi-capture-previews{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}dialog.goods-intake .gi-preview{position:relative;width:82px;height:76px}dialog.goods-intake .gi-preview img{width:82px;height:76px;object-fit:cover;border-radius:8px;border:1px solid #d5dfd7}dialog.goods-intake .gi-preview button{position:absolute;right:-5px;top:-7px;width:28px;height:28px;min-height:28px;padding:0;border-radius:50%;color:#8c3f34}dialog.goods-intake .gi-simple-fields{display:grid;grid-template-columns:minmax(0,1fr) 150px 130px;gap:12px}dialog.goods-intake .gi-simple-fields label{font-size:14px;color:#294936}dialog.goods-intake .gi-simple-fields input{font-size:16px;height:44px;min-height:44px}dialog.goods-intake .gi-capture-footer,dialog.goods-intake .gi-batch-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;flex-wrap:wrap}dialog.goods-intake .gi-optional{margin-bottom:15px}dialog.goods-intake summary{cursor:pointer;color:#315140;padding:6px 0}dialog.goods-intake .gi-search-row{display:flex;gap:8px;margin:7px 0}dialog.goods-intake .gi-search-row input{flex:1}dialog.goods-intake .gi-capture-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #e4e9df;font-size:15px}dialog.goods-intake .gi-row-thumb img{width:54px;height:54px;object-fit:cover;border-radius:7px}dialog.goods-intake .gi-row-name{overflow-wrap:anywhere}dialog.goods-intake .gi-small-link{height:auto;min-height:28px;font-size:12px;padding:3px 6px;border:0!important}dialog.goods-intake .gi-empty{text-align:center;padding:20px;color:#64766a}dialog.goods-intake .gi-evidence-large{display:block;max-width:100%;max-height:65vh;object-fit:contain;margin:12px auto}dialog.goods-intake [data-message]{padding:0 16px}dialog.goods-intake [data-body] [data-editor]:empty{display:none}dialog.goods-intake button{font-size:14px;min-height:40px;height:auto}dialog.goods-intake small{font-size:12px}@media(max-width:600px){dialog.goods-intake .gi-simple-fields{grid-template-columns:1fr 1fr}dialog.goods-intake .gi-simple-fields label:first-child{grid-column:1/-1}dialog.goods-intake .gi-camera-primary[data-capture-camera]{width:100%}dialog.goods-intake .gi-capture-footer>span{width:100%}dialog.goods-intake .gi-capture-row{grid-template-columns:45px minmax(0,1fr) auto;gap:9px}dialog.goods-intake .gi-row-thumb img{width:44px;height:48px}dialog.goods-intake .gi-capture-row>div:last-child{grid-column:2/-1}dialog.goods-intake .gi-search-row{flex-wrap:wrap}dialog.goods-intake .gi-search-row input{flex-basis:100%}dialog.goods-intake .gi-batch-footer{align-items:stretch;flex-direction:column}}
/* Compact capture form: name first, observed quantity/unit second, optional QSPD last. */
dialog.goods-intake .gi-photo-heading{font-size:14px;font-weight:600;margin:0 0 6px}dialog.goods-intake .gi-steps{margin:0 0 10px}dialog.goods-intake .gi-capture-actions{gap:8px}dialog.goods-intake .gi-capture-previews{margin:8px 0;gap:9px}dialog.goods-intake .gi-capture-previews:empty{display:none}dialog.goods-intake .gi-simple-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:10px}dialog.goods-intake .gi-simple-fields label:first-child{grid-column:1/-1}dialog.goods-intake .gi-optional{margin:8px 0 0;padding:0}dialog.goods-intake .gi-optional>summary{padding:5px 0;min-height:30px}dialog.goods-intake .gi-capture-footer{justify-content:flex-end;gap:9px;margin-top:10px}dialog.goods-intake .gi-capture-footer>span{flex-basis:100%;font-size:12px}dialog.goods-intake .gi-reset-secondary{font-size:13px;min-height:36px;padding:5px 10px;background:transparent}dialog.goods-intake .gi-empty{margin:4px 0;padding:3px 0;text-align:left;font-size:14px}dialog.goods-intake [data-scan]{padding:12px}dialog.goods-intake .gi-capture-footer .gi-camera-primary{min-height:44px;font-size:15px}@media(max-width:600px){dialog.goods-intake .gi-camera-primary[data-capture-camera]{width:auto;flex:1}dialog.goods-intake [data-capture-photo]:is(button){flex:1}dialog.goods-intake .gi-capture-footer .gi-camera-primary{flex:1}dialog.goods-intake .gi-simple-fields{gap:9px}}
/* Desktop: name, observed quantity and unit share one compact row. */
@media(min-width:601px){dialog.goods-intake .gi-simple-fields{grid-template-columns:minmax(0,1fr) 150px 160px}dialog.goods-intake .gi-simple-fields label:first-child{grid-column:auto}}
dialog.goods-intake select[name=sku][hidden]{display:none!important}dialog.goods-intake [data-qspd-results][hidden]{display:none!important}dialog.goods-intake [data-qspd-results]{border:1px solid #cbd7ca;border-radius:7px;max-height:210px;overflow:auto;margin:4px 0;background:white}dialog.goods-intake [data-qspd-results] button{display:block;width:100%;text-align:left;border:0!important;border-bottom:1px solid #e4e9df!important;border-radius:0;padding:9px 11px;min-height:42px}dialog.goods-intake [data-qspd-results] p{padding:7px 10px}dialog.goods-intake .gi-optional{margin-top:10px}dialog.goods-intake .gi-optional>label{font-size:14px}dialog.goods-intake .gi-search-row{margin:5px 0}
dialog.goods-intake .gi-original-barcodes{margin:5px 0}dialog.goods-intake .gi-original-barcodes p{margin:5px 0}dialog.goods-intake .gi-original-barcodes code{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:14px}dialog.goods-intake .gi-original-barcodes summary{font-size:13px}
/* Received items: one compact row, one gallery entry, modal editing. */
dialog.goods-intake .gi-capture-row{grid-template-columns:64px minmax(0,1fr) minmax(100px,auto);gap:12px;padding:11px 0;font-size:15px;align-items:start}dialog.goods-intake .gi-row-thumb{position:relative;width:64px;height:64px;min-height:64px;padding:0!important;overflow:hidden;border-radius:9px;background:#f1f3ea;border-color:#d5ddca!important;align-self:start}dialog.goods-intake .gi-row-thumb img{width:64px;height:64px;object-fit:cover;border-radius:8px}dialog.goods-intake .gi-photo-count{position:absolute;right:3px;bottom:3px;background:#214e3c;color:#fff;font-size:11px;border-radius:4px;padding:0 5px}dialog.goods-intake .gi-row-name>b{display:block;color:#214e3c;font-size:15px;line-height:1.45}dialog.goods-intake .gi-qspd-code{margin-top:2px;color:#526c5b}dialog.goods-intake .gi-unmatched{display:inline-block;font-size:12px;background:#f7f0dc;color:#785c25;padding:2px 7px;border-radius:5px;margin-top:4px}dialog.goods-intake .gi-barcode-summary{display:flex;align-items:baseline;gap:6px;margin-top:4px;min-width:0}dialog.goods-intake .gi-barcode-summary>span{font-size:12px;color:#566e5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}dialog.goods-intake .gi-barcode-summary small{flex:none;font-size:11px;color:#7a806b}dialog.goods-intake .gi-barcode-details{margin:0}dialog.goods-intake .gi-barcode-details summary{font-size:12px;min-height:28px;padding:3px 0;color:#7b693f}dialog.goods-intake .gi-barcode-details p{margin:5px 0}dialog.goods-intake .gi-barcode-details code{white-space:pre-wrap;overflow-wrap:anywhere}dialog.goods-intake .gi-row-end{display:flex;flex-direction:column;align-items:flex-end;gap:7px;align-self:center}dialog.goods-intake .gi-row-end>b{font-size:17px;color:#214e3c;white-space:nowrap}dialog.goods-intake .gi-row-end>b>span{font-size:14px;font-weight:normal}dialog.goods-intake .gi-row-end>button{min-height:36px;padding:5px 12px;background:#faf8f0;border-color:#dacba7!important;color:#685329;font-size:13px}dialog.goods-intake .gi-received-history{margin-top:7px;min-height:34px;font-size:12px;padding:5px 9px;background:transparent;color:#617265;border:0!important}dialog.goods-intake .gi-batch-documents{padding:9px 12px}dialog.goods-intake .gi-batch-footer{margin-top:12px;padding:5px 0}dialog.goods-intake .gi-batch-footer small{margin-top:3px;color:#6d785f}.goods-intake dialog.gi-photos-popup,.goods-intake dialog.gi-edit-popup{width:min(680px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:90dvh;box-sizing:border-box;overflow:auto;background:#fff;color:#214e3c;border:1px solid #c9d4c6;border-radius:13px;padding:16px;font:15px/1.5 Tahoma,sans-serif}.goods-intake dialog.gi-edit-popup{width:min(760px,calc(100vw - 24px))}.goods-intake dialog.gi-photos-popup::backdrop,.goods-intake dialog.gi-edit-popup::backdrop{background:#102d2380}.goods-intake .gi-photos-popup>header,.goods-intake .gi-edit-popup>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid #e6e9de}.goods-intake .gi-photos-popup h3,.goods-intake .gi-edit-popup h3{font-size:18px;margin:0}.goods-intake [data-gallery-image]{display:block;max-width:100%;width:100%;height:48dvh;object-fit:contain;background:#f7f7f0;border-radius:8px;margin-top:12px}.goods-intake .gi-gallery-navigation{display:flex;align-items:center;justify-content:center;gap:15px}.goods-intake [data-gallery-status]{font-size:13px;overflow-wrap:anywhere}.goods-intake [data-gallery-strip]{display:flex;gap:8px;overflow-x:auto;padding:9px 0}.goods-intake [data-gallery-strip] button{padding:0;width:58px;height:58px;min-height:58px;flex:none;overflow:hidden}.goods-intake [data-gallery-strip] img{width:56px;height:56px;object-fit:cover}.goods-intake [data-gallery-strip] button[aria-pressed=true]{outline:2px solid #ad8a42;outline-offset:1px}.goods-intake .gi-edit-popup [data-scan]{border:0;margin:0;padding:10px 0}.goods-intake .gi-edit-popup .gi-steps,.goods-intake .gi-edit-popup [data-cancel-capture-edit]{display:none}.goods-intake .gi-edit-popup footer{display:flex;justify-content:flex-end;margin-top:9px}.goods-intake [data-edit-error]:empty{display:none}.goods-intake [data-edit-error]{color:#9c302b;font-size:14px}.goods-intake [data-edit-content]>form:not([data-scan]){display:grid;gap:10px}.goods-intake [data-edit-content] input,.goods-intake [data-edit-content] select{font-size:16px;min-height:42px}.goods-intake dialog [hidden]{display:none!important}@media(max-width:600px){dialog.goods-intake .gi-capture-row{grid-template-columns:52px minmax(0,1fr);gap:9px;padding:10px 0}dialog.goods-intake .gi-row-thumb,dialog.goods-intake .gi-row-thumb img{width:52px;height:56px;min-height:56px}dialog.goods-intake .gi-capture-row>.gi-row-end{grid-column:2;display:flex;flex-direction:row;justify-content:space-between;align-items:center;align-self:auto;width:100%;margin-top:1px}dialog.goods-intake .gi-row-end>button{min-height:42px;padding:7px 14px}dialog.goods-intake .gi-barcode-summary{flex-wrap:wrap;gap:2px 5px}dialog.goods-intake .gi-barcode-summary>span{max-width:150px}dialog.goods-intake .gi-row-name>b{font-size:15px}.goods-intake dialog.gi-photos-popup,.goods-intake dialog.gi-edit-popup{padding:12px}.goods-intake [data-gallery-image]{height:42dvh}.goods-intake .gi-edit-popup .gi-search-row button{flex:1}}
/* Do not repeat the summary inside code details. Keep received rows compact. */
dialog.goods-intake .gi-capture-row{padding:8px 0;gap:10px}dialog.goods-intake .gi-barcode-summary{margin-top:3px;line-height:1.35}dialog.goods-intake .gi-barcode-details summary{min-height:24px;padding:2px 0}dialog.goods-intake .gi-barcode-details p{margin:3px 0}dialog.goods-intake .gi-barcode-details>small{margin:2px 0}dialog.goods-intake .gi-row-end{gap:5px}dialog.goods-intake .gi-received-history{margin-top:3px;padding:4px 8px}dialog.goods-intake .gi-received-list h3{margin-bottom:7px}@media(max-width:600px){dialog.goods-intake .gi-capture-row{padding:8px 0;gap:6px 9px}}
