/* v40.64 editor shell. Keep server validation and permissions in app.js. */
/* Migrated IP application: use an explicit white modal surface, independent of OS Canvas color. */
body dialog{background-color:#fff!important;color-scheme:light}
dialog#confirmation #confirm-error:empty{display:none}
dialog#confirmation .note{line-height:1.6}
dialog#confirmation table{font-size:14px}
dialog#editor{width:520px;max-width:95vw;max-height:calc(100% - 2em - 6px);padding:0;overflow:auto;box-shadow:0 25px 100px #132b3830}
dialog#editor form{padding:25px}
dialog#editor .modal-head{border:0;padding:0;margin-bottom:15px;gap:normal}
dialog#editor .modal-head h2{margin:0 0 15px}
dialog#editor #editor-maximize{margin-left:auto;margin-right:12px}
dialog#editor .close{border:0;font-size:26px;line-height:1.6;padding:0 8px}
dialog#editor #fields>.form-grid{display:block}
dialog#editor .field{display:block;margin:15px 0;font-size:inherit;color:inherit;line-height:inherit}
dialog#editor label.field{font-size:12px;color:var(--muted)}
dialog#editor .field input,dialog#editor .field select{display:inline-block;margin:0;font:inherit;color:var(--ink)}
dialog#editor label.field input,dialog#editor label.field select{display:block;margin-top:5px;font-size:14px}
dialog#editor .note{line-height:1.6}
dialog#editor table{font-size:14px}
dialog#editor #return-receipt-select{height:300px;min-height:300px;padding:6px}
dialog#editor .modal-foot{padding-top:17px;margin-top:20px;gap:10px}
dialog#editor .modal-foot button{min-height:0}
dialog#editor.wide-modal{width:min(1280px,96vw);max-width:96vw;max-height:92vh;overflow:hidden}
dialog#editor.wide-modal form{display:flex;flex-direction:column;max-height:92vh;padding:22px}
dialog#editor.wide-modal .field{margin:8px 0}
dialog#editor.wide-modal .modal-head,dialog#editor.wide-modal .modal-foot{flex-shrink:0}
dialog#editor.wide-modal #fields{overflow:auto;min-height:0;flex:1;padding-right:8px}
dialog#editor.editor-maximized{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:0}
dialog#editor.editor-maximized form{height:100dvh;max-height:100dvh}
dialog#editor.editor-maximized .dialog-head{position:static;background:transparent;z-index:auto}
dialog#editor #issue-header-blank:not([hidden]){min-width:40px;min-height:0}
dialog#editor .modal-head:has(#issue-header-blank:not([hidden])) #editor-maximize{margin-left:0}
@media(max-width:700px){dialog#editor.wide-modal form{padding:14px}}



#app main table .shipment-loading-view{margin:2px 6px 2px 0;padding:0;vertical-align:middle}#app main table .shipment-loading-view img{width:64px;height:48px;max-width:64px;max-height:48px;margin:0;object-fit:cover;border-radius:5px}dialog .error{line-height:1.6}

/* Original v40.64 second-confirmation geometry and scrolling. */
dialog#confirmation{width:min(1400px,96vw);max-width:96vw;height:min(900px,90dvh);max-height:90dvh;padding:28px 32px;overflow:hidden}
dialog#confirmation[open]{display:flex;flex-direction:column;gap:20px}
dialog#confirmation .modal-head{flex:none;margin:0;padding:0 0 14px;gap:14px;border-bottom:1px solid var(--line)}
dialog#confirmation .modal-head h2{margin:0}
#summary{flex:1;min-height:0;overflow:auto;padding:8px 12px 20px 0}
dialog#confirmation .modal-foot{flex:none;position:static;margin:0;padding:16px 0 0;border-top:1px solid var(--line)}
dialog#confirmation.confirmation-maximized{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:28px 32px}
.issue-confirm-skus{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 24px}.issue-confirm-skus span{padding:8px 14px;background:#edf5f4;border-radius:6px}
@media(max-width:700px){dialog#confirmation,dialog#confirmation.confirmation-maximized{padding:18px 16px}dialog#confirmation .modal-head{flex-wrap:wrap;gap:8px}}
.customer-list-filters #search{width:250px;flex:none}

/* Batch increase selected actual purchase quantities. */
.purchase-material-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:20px 0 10px}
.purchase-material-toolbar h3{margin:0;white-space:nowrap}
.purchase-bulk-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}
.purchase-bulk-controls>span{font-size:13px;color:var(--muted,#718598)}
.purchase-bulk-controls select{width:auto;min-width:130px}
.purchase-bulk-controls input{width:130px;min-width:0}
.purchase-bulk-controls button{white-space:nowrap}
@media(max-width:700px){.purchase-bulk-controls{justify-content:flex-start;margin-left:0}}

/* Explicit receipt selection avoids native listbox selection ambiguity. */
dialog#editor:has(#return-receipt-list){width:min(1100px,96vw);max-width:96vw}
#return-receipt-select[hidden]{display:none}
#return-receipt-list{max-height:420px;overflow:auto;margin:8px 0}
#return-receipt-list table{min-width:680px}
#return-receipt-list button[aria-pressed=true]{font-weight:700}
#return-receipt-list tr:has(button[aria-pressed=true]){background:#eaf6f3}
#return-receipt-selected{overflow-wrap:anywhere}

#purchase-browse{width:min(1400px,96vw);max-width:96vw;max-height:90dvh;padding:24px 28px;overflow:hidden}
#purchase-browse[open]{display:flex;flex-direction:column;gap:16px}
#purchase-browse .modal-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}
#purchase-browse .modal-head h2{margin:0}
#purchase-browse-content{flex:1;min-height:0;overflow:auto}
#purchase-browse-content .panel{margin:0}
#purchase-browse.purchase-browse-maximized{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}

.company-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.company-heading .header-sub{margin-left:0}
#show-workflow{color:#087f78;border-color:#9dc9c4;background:#eff8f6;white-space:nowrap}
#app>.shell>header{height:auto;min-height:78px;gap:14px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
#workflow-dialog{width:98vw;max-width:98vw;height:96dvh;max-height:96dvh;padding:0;overflow:hidden;border-radius:12px}
#workflow-dialog[open]{display:flex;flex-direction:column}
.workflow-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex:none;padding:14px 20px;border-bottom:1px solid var(--line)}
.workflow-dialog-head h2{margin:0;font-size:18px}
#workflow-frame{display:block;width:100%;min-height:0;flex:1;border:0;background:#eaf0f3}

.issue-purchase-products{display:flex;flex-direction:column;gap:10px;min-width:230px}
.issue-purchase-product{display:flex;align-items:center;gap:12px;padding:6px 0}
.issue-purchase-product-text{min-width:0;display:flex;flex-direction:column;gap:5px;white-space:normal;overflow-wrap:anywhere}
.issue-purchase-product-text strong{font-size:13px;font-weight:600;line-height:1.6}
.issue-purchase-product-text span,.issue-purchase-product-text small{font-size:12px;color:var(--muted);line-height:1.5}

/* These are record tables, so their first column is not a narrow checkbox column. */
dialog.wide-modal #fields #issue-purchase-table th:first-child,dialog.wide-modal #fields #issue-purchase-table td:first-child{width:160px;min-width:160px;overflow-wrap:anywhere}
dialog.wide-modal #fields #issue-purchases>table th:first-child,dialog.wide-modal #fields #issue-purchases>table td:first-child{width:auto;min-width:160px}

.issue-sku-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;border:1px solid #d5e7e3;border-radius:8px;background:#f1f8f6;color:#14665e}
.issue-sku-calculation{margin:14px 0;padding:14px;border:1px solid #dfe8e5;border-radius:10px;background:#fff}
.issue-sku-calculation h4{margin:0 0 12px;font-size:15px;line-height:1.6}
.issue-sku-calculation h4 span{color:#087f78}
#issue-product-list input[type=number],#issue-multi-table input[type=number]{width:110px;max-width:100%;min-width:76px}
#issue-product-list small,#issue-sku-materials small,#issue-multi-table small{display:block;margin-top:4px;color:var(--muted);line-height:1.6}
#issue-product-list td:nth-child(2){width:84px;min-width:84px}
#issue-product-list td:nth-child(3){min-width:110px}
#issue-product-list td:nth-child(4){min-width:200px}
#issue-multi-table td:nth-child(2){min-width:220px}
.issue-stock-shortage{color:#b44832;font-size:12px;line-height:1.6}
#issue-plan-error[hidden]{display:none}

.issue-product-picture{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e0e8ec;border-radius:8px;overflow:hidden;box-sizing:border-box}
.issue-product-picture img{display:block;width:100%;height:100%;object-fit:contain;padding:4px;box-sizing:border-box}
.issue-product-picture span{color:#8a9aa7;font-size:12px;text-align:center;line-height:1.5;padding:4px}

/* Product maintenance keeps its header and save buttons visible when maximized. */
dialog#editor.editor-maximized:has(#md-picture) form{display:flex;flex-direction:column;overflow:hidden}
dialog#editor.editor-maximized:has(#md-picture) .modal-head,dialog#editor.editor-maximized:has(#md-picture) .modal-foot{flex-shrink:0}
dialog#editor.editor-maximized:has(#md-picture) #fields{overflow:auto;min-height:0;flex:1;padding-right:8px}

.bom-copy-panel{margin:12px 0 18px;padding:14px;border:1px solid #d5e7e3;border-radius:8px;background:#f4faf8}
.bom-copy-panel h3{margin:0 0 10px;font-size:15px}
.bom-copy-toolbar{display:flex;align-items:flex-end;gap:12px}
.bom-copy-toolbar>.field{flex:1;min-width:0}
.bom-copy-toolbar>button{flex-shrink:0;margin-bottom:8px}
#bom-copy-products{max-height:360px;overflow:auto;z-index:5}
#bom-copy-products small{display:block;color:var(--muted);margin-top:3px}
#bom-copy-status:empty{display:none}
@media(max-width:700px){.bom-copy-toolbar{align-items:stretch;flex-direction:column;gap:4px}}

dialog#editor.editor-maximized:has(#common-material-units) form{display:flex;flex-direction:column;overflow:hidden}
dialog#editor.editor-maximized:has(#common-material-units) .modal-head,dialog#editor.editor-maximized:has(#common-material-units) .modal-foot{flex-shrink:0}
dialog#editor.editor-maximized:has(#common-material-units) #fields{overflow:auto;min-height:0;flex:1;padding-right:8px}

/* Product price inputs keep numeric validation without the browser stepper arrows. */
#editor input.sku-price-no-spinner[type="number"]{appearance:textfield;-moz-appearance:textfield;}
#editor input.sku-price-no-spinner::-webkit-inner-spin-button,
#editor input.sku-price-no-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}

.finished-selected-products{margin:22px 0 8px;padding:16px;border:1px solid #d5e7e2;border-radius:9px;background:#f8fbfa}
.finished-selected-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.finished-selected-heading h3{font-size:16px;margin:0;color:#203c47}
.finished-selected-heading span{font-size:12px;color:#087f78;white-space:nowrap}
.finished-selected-products table{background:white}
.finished-selected-products th:nth-child(1){width:96px}
.finished-selected-products th:nth-child(3),.finished-selected-products th:nth-child(4){width:95px}
.finished-selected-products .product-thumb,.finished-selected-products .product-thumb-empty{width:60px;height:60px}

.sku-parameter-copy{padding:18px 20px;margin:0 0 22px;border:1px solid #d4e7e1;border-radius:9px;background:#f5faf8}
.sku-parameter-copy h3{margin:0 0 12px;font-size:16px;color:#24504b}.sku-copy-controls{display:flex;gap:12px;align-items:flex-end}.sku-copy-controls .field{flex:1;min-width:0;margin:0}.sku-copy-controls>button{flex-shrink:0;min-height:42px}.sku-parameter-copy p{font-size:12px;color:#738392;margin:10px 0;line-height:1.8}.sku-copy-success{color:#087f78;font-size:13px;line-height:1.8}
@media(max-width:600px){.sku-copy-controls{align-items:stretch;flex-direction:column}.sku-copy-controls>button{align-self:flex-end}}
