/* Approved inventory Studio shell. All rules are scoped to printing surfaces. */
.inv-print{box-sizing:border-box;position:fixed;inset:0;margin:auto;padding:0;width:min(920px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 64px);border:1px solid #c9c3b4;border-top:3px solid #8a5a1a;background:#fefcf7;color:#0a0a0a;font:800 15px Assistant,Arial,sans-serif;box-shadow:0 22px 60px -18px #1c120873;overflow:hidden}
.inv-print[open]{display:flex;flex-direction:column}
.inv-print::backdrop{background:rgba(15,12,8,.55);backdrop-filter:blur(2px)}
.inv-print *,.ip-print-document *{box-sizing:border-box}
.inv-print [hidden]{display:none!important}
.inv-print button,.inv-print input{font-family:inherit}
.inv-print button{cursor:pointer}
.inv-print button:disabled{opacity:.4;cursor:default}
.inv-print h1,.inv-print h2,.inv-print h3{font-weight:900}
.inv-print p{margin:5px 0}
.inv-print input[type=checkbox],.inv-print input[type=radio]{accent-color:#8a5a1a}
.inv-print input[type=checkbox]{width:16px;height:16px;flex-shrink:0}
.inv-print button:focus-visible{outline:2px solid #b8960b;outline-offset:-2px}
.inv-print.ip-labels{width:min(1120px,calc(100vw - 48px));height:calc(100dvh - 100px)}
.ip-head{position:relative;padding:20px 28px 16px 64px;border-bottom:1px solid #c9c3b4;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:14px}
.ip-head h1{font-size:24px;margin:0}
.ip-head h2{font-size:18px;margin:0}
.ip-eyebrow{font:italic 400 11.5px Fraunces,serif;letter-spacing:.16em;color:#78716a;margin-bottom:5px}
.inv-print .ip-close{position:absolute;top:16px;left:16px;width:32px;height:32px;display:grid;place-items:center;background:transparent;border:1px solid #d8cdb8;color:#b8960b;border-radius:50%;font-size:20px;font-weight:900;padding:0}
.ip-nav{display:flex;gap:28px;padding:0 28px;background:#faf7ef;border-bottom:1px solid #c9c3b4;flex-shrink:0}
.ip-nav button{background:none;border:0;border-bottom:3px solid transparent;padding:12px 0 10px;font-size:15px;font-weight:800;color:#78716a}
.ip-nav button.active{border-bottom-color:#8a5a1a;color:#0a0a0a}
.ip-view{min-height:0;display:flex;flex-direction:column;flex:1}
#ip-history-view{min-height:460px}
.ip-search-strip{display:grid;grid-template-columns:1fr 180px;gap:18px;padding:18px 28px;border-bottom:1px solid #e2dcca}
.ip-field{display:flex;flex-direction:column;gap:6px;font-size:13px}
.ip-field input{width:100%;min-width:0;background:#fff;border:1px solid #c9c3b4;border-bottom-color:#4d463d;border-radius:0;padding:9px 12px;font-size:15px;font-weight:700;outline:none;color:#0a0a0a}
.ip-field input::placeholder{color:#a39d92;opacity:1}
.ip-field input:focus{border-color:#8a5a1a;box-shadow:0 0 0 1px #8a5a1a}
.ip-history-meta{padding:13px 28px 8px;display:flex;justify-content:space-between;font-size:13px;color:#78716a}
.ip-history-list{padding:0 28px 22px;overflow:auto;flex:1}
.ip-receipt-row{border:1px solid #d6d0c0;margin-top:9px;background:#fefcf7}
.ip-receipt-row.active{border-color:#8a5a1a}
.ip-receipt-head{display:grid;grid-template-columns:20px 105px minmax(170px,1fr) 110px 95px;gap:12px;align-items:center;text-align:right;padding:15px 14px;width:100%;border:0;background:transparent;font-size:14px;font-weight:800;color:inherit}
.ip-receipt-head:hover{background:#faf7ef}
.ip-receipt-row.active .ip-receipt-head{background:#f4efe2}
.ip-arrow{color:#8a5a1a;font-size:18px}
.ip-count{text-align:left}
.ip-mono{font:700 11px 'IBM Plex Mono',monospace;direction:ltr;color:#78716a;overflow-wrap:anywhere}
.ip-receipt-detail{border-top:1px solid #d6d0c0;background:#faf7ef;padding:12px 16px 16px}
.ip-receipt-detail table{width:100%;border-collapse:collapse}
.ip-receipt-detail th{font-size:12px;font-weight:800;color:#78716a;padding:5px 8px;text-align:right}
.ip-receipt-detail td{font-size:14px;padding:10px 8px;border-top:1px solid #e2dcca}
.ip-receipt-detail td:last-child,.ip-receipt-detail th:last-child{text-align:left}
.ip-receipt-note{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#78716a;border-top:1px solid #d6d0c0;padding-top:12px;margin-top:9px}
.ip-muted,.ip-hint{color:#78716a;font-size:13px;line-height:1.5}
.ip-empty{padding:48px 20px;text-align:center;color:#78716a;align-self:center}
.ip-foot{display:flex;justify-content:space-between;align-items:center;background:#faf7ef;border-top:1px solid #c9c3b4;flex-shrink:0;padding:16px 28px;gap:14px}
.ip-actions{display:flex;gap:10px;align-items:center}
.inv-print .ip-primary,.inv-print .ip-quiet{font-size:14px;font-weight:800;border-radius:0;padding:10px 20px;white-space:nowrap}
.inv-print .ip-primary{border:1px solid #0a0a0a;background:#0a0a0a;color:#efeadf}
.inv-print .ip-primary:hover{background:#000}
.inv-print .ip-quiet{border:1px solid #c9c3b4;color:#4d463d;background:#fefcf7}
.ip-footer-copy{display:flex;flex-direction:column;gap:3px;font-size:14px}
.ip-footer-copy small{font-size:12px;color:#78716a}
.ip-footer-copy strong{font-size:19px;font-weight:900;color:#0a0a0a}
.ip-labels-layout{display:grid;grid-template-columns:320px minmax(0,1fr);flex:1;min-height:0}
.ip-settings-rail{padding:20px 22px;background:#faf7ef;border-left:1px solid #c9c3b4;overflow:auto;min-height:0}
.ip-rail-section+.ip-rail-section{border-top:1px solid #d6d0c0;margin-top:20px;padding-top:18px}
.ip-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.ip-rail-section h3{font-size:15px;margin:0 0 12px}
.ip-section-head h3{margin:0}
.ip-step{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;margin-left:6px;border:1px solid #b8a075;color:#8a5a1a;font-size:12px}
.ip-tiny-action{border:0;border-bottom:1px solid #c9c3b4;padding:0;background:transparent;font-weight:800;font-size:12px;color:#78716a}
.ip-options{display:grid;grid-template-columns:1fr 1fr}
.ip-options label{display:flex;align-items:center;justify-content:center;gap:5px;min-height:39px;border:1px solid #c9c3b4;font-size:13px;cursor:pointer;background:#fefcf7}
.ip-options label+label{border-right:0}
.ip-options label:has(input:checked){background:#f1e6cf;color:#8a5a1a;border-color:#8a5a1a;box-shadow:inset 0 -2px #8a5a1a}
.ip-options input{width:13px;height:13px;margin:0}
.ip-stock-format{padding-top:10px;font-size:12px;color:#78716a}
.ip-stock-format b{color:#4d463d}
.ip-carton-group{border:1px solid #d6d0c0;background:#fefcf7;margin-top:8px}
.ip-carton-group summary{padding:10px 12px;cursor:pointer;font-size:14px;font-weight:800}
.ip-carton-group summary .ip-muted{padding-right:17px;font-size:12px}
.ip-carton-group>label{display:flex;gap:6px;align-items:center;font-size:12px;padding:8px 10px;border-top:1px solid #e2dcca}
.ip-cartons{max-height:104px;overflow:auto;direction:ltr;padding:0 11px 8px}
.ip-cartons label{display:flex;align-items:center;justify-content:space-between;font:700 11px 'IBM Plex Mono',monospace;padding:3px 0}
.ip-start-row{display:grid;grid-template-columns:1fr 72px;gap:12px;align-items:center}
.ip-start-row input{text-align:center;font-weight:900}
.ip-start-help{margin:10px 0!important;font-size:12px;color:#78716a;line-height:1.5}
.ip-start-link{width:100%;padding:8px;background:#fefcf7;border:1px solid #c9c3b4;color:#4d463d;font-weight:800;font-size:13px}
.ip-preview-zone{min-width:0;min-height:0;background:#e6e1d4;display:flex;flex-direction:column}
.ip-preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 20px;background:#f4efe2;border-bottom:1px solid #c9c3b4;flex-shrink:0;font-size:13px}
.ip-preview-toolbar .ip-hint{font-size:12px}
.ip-pager{display:flex;align-items:center;gap:10px;white-space:nowrap}
.ip-pager button{background:#fefcf7;border:1px solid #c9c3b4;width:29px;height:29px;font-size:16px}
.ip-paper-wrap{overflow:auto;padding:16px 20px;flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center}
.ip-sheet{box-sizing:border-box;width:210mm;height:297mm;min-width:210mm;background:#fff;padding-top:10.5mm;zoom:var(--ip-sheet-zoom,.5);box-shadow:0 5px 18px #33291220;flex-shrink:0;overflow:hidden}
.ip-grid{display:grid;grid-template-columns:repeat(4,52.5mm);grid-auto-rows:23mm;direction:rtl}
.ip-slot{position:relative;border:0;border-radius:0;background:white;outline:1px dashed #c9c3b4;outline-offset:-1px;padding:0;width:52.5mm;height:23mm;overflow:hidden;color:#78716a;font-size:14px}
.inv-print .ip-slot:disabled{opacity:1}
.ip-slot.used{background:repeating-linear-gradient(135deg,#f5f2eb,#f5f2eb 7px,#e8e2d5 7px,#e8e2d5 8px);color:#a39d92}
.ip-slot.start{outline:3px solid #b8960b;outline-offset:-3px}
.ip-slot-num{position:absolute;top:3px;right:5px;font-size:11px;color:#a29782}
.ip-sticker{width:46mm;height:21mm;margin:1mm 3.25mm;color:black;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;font-family:Assistant,Arial,sans-serif}
.ip-sticker .ip-cap{display:flex;justify-content:space-between;width:100%;font-size:11px;font-weight:900}
.ip-sticker svg{width:44mm;height:10mm;flex-shrink:0}
.ip-sticker .ip-code{font:900 12px monospace;direction:ltr}
.ip-sticker .ip-name{font-size:12px;font-weight:900;white-space:nowrap;max-width:46mm;overflow:hidden;text-overflow:ellipsis}
.ip-legend{display:flex;gap:18px;justify-content:center;padding:10px 16px 14px;font-size:12px;color:#78716a;flex-shrink:0}
.ip-legend span:before{content:'';display:inline-block;width:10px;height:10px;background:white;border:1px dashed #c7bda8;margin-left:5px}
.ip-legend .used:before{background:#e8e2d5}
.ip-legend .start:before{border:2px solid #b8960b}
.ip-print-hint{font-size:12px;color:#78716a;max-width:155px;line-height:1.4}
.inv-print.ip-document{width:min(860px,calc(100vw - 40px))}
.ip-document-body{overflow:auto;max-height:calc(100dvh - 160px)}
.ip-document iframe{display:block;width:100%;min-width:760px;height:820px;border:0}
.ip-print-document{display:block;margin:0;background:#e6e1d4;font-family:Assistant,Arial,sans-serif}
.ip-print-document .ip-sheet{zoom:1;margin:16px auto}
.ip-print-tools{padding:16px;text-align:center}
.ip-print-tools button{font:800 18px Assistant,Arial,sans-serif;padding:8px 20px}
@media(max-width:900px){.ip-labels-layout{grid-template-columns:290px minmax(0,1fr)}.ip-settings-rail{padding:16px}.ip-preview-toolbar{flex-wrap:wrap}.ip-print-hint{display:none}.ip-receipt-head{grid-template-columns:16px 90px minmax(130px,1fr) 75px 90px;gap:8px}.ip-mono{font-size:10px}}
@media(max-width:650px){.inv-print,.inv-print.ip-labels{width:calc(100vw - 16px);height:auto;max-height:calc(100dvh - 24px);overflow:auto}.ip-head{padding:18px 18px 14px 58px}.ip-head h1{font-size:21px}.ip-nav{padding:0 16px;gap:20px}.ip-nav button{font-size:13px}.ip-search-strip{padding:16px;grid-template-columns:1fr 126px;gap:10px}.ip-field{font-size:12px}.ip-field input{font-size:13px;padding:9px 8px}.ip-history-meta{padding:12px 16px 4px}.ip-history-list{padding:0 12px 16px;overflow:visible}.ip-receipt-head{grid-template-columns:16px 1fr 1fr;gap:6px;padding:12px}.ip-mono{grid-column:2/4;grid-row:2;text-align:right}.ip-count{display:none}.ip-receipt-detail{padding:10px}.ip-receipt-detail td{font-size:12px;padding:9px 3px}.ip-receipt-detail th{font-size:11px;padding:5px 3px}.ip-receipt-calc{display:none}#ip-history-view{min-height:430px}.ip-foot{padding:14px 16px;flex-wrap:wrap}.ip-actions{margin-right:auto}.ip-actions button{flex:1}.ip-footer-copy strong{font-size:18px}.ip-view{flex:none;min-height:auto}.ip-labels-layout{display:block}.ip-settings-rail{overflow:visible;border-left:0}.ip-rail-section+.ip-rail-section{margin-top:14px;padding-top:14px}.ip-preview-zone{height:590px;border-top:1px solid #c9c3b4}.ip-preview-toolbar{padding:12px 16px;flex-wrap:nowrap}.ip-preview-toolbar .ip-hint{max-width:160px}.ip-paper-wrap{padding:12px}.ip-legend{gap:12px;font-size:11px}#ip-labels-view>.ip-foot{position:sticky;bottom:0;z-index:2;box-shadow:0 -3px 12px #3329120d;flex-wrap:nowrap}.ip-actions button{padding:10px 12px!important}.ip-footer-copy small{font-size:11px}.ip-document .ip-head{padding:16px 16px 16px 56px}.ip-document .ip-head h2{font-size:16px}.ip-document-body{max-height:calc(100dvh - 115px)}}
@media print{@page{size:A4 portrait;margin:0}.ip-print-document{width:210mm;margin:0!important;padding:0!important;background:white}.ip-print-tools{display:none!important}.ip-print-document .ip-sheet{display:block;zoom:1;width:210mm;height:297mm;margin:0;box-shadow:none;break-after:page;page-break-after:always}.ip-print-document .ip-sheet:last-child{break-after:auto;page-break-after:auto}.ip-print-document .ip-slot{outline:0}.ip-print-document .ip-slot.used{background:white!important;color:transparent}.ip-print-document *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Product labels and large A4 sheets — approved inventory Studio mockup. */
.inv-print.ip-labels{width:min(1180px,calc(100vw - 48px));height:min(860px,calc(100dvh - 70px))}
.inv-print .ip-eyebrow{font:800 12px Assistant,Arial,sans-serif;letter-spacing:0}
.ip-labels-layout{grid-template-columns:370px minmax(0,1fr)}
.ip-settings-rail{padding:17px 22px}.ip-rail-section+.ip-rail-section{margin-top:12px;padding-top:12px}
.ip-product-filters{display:grid;grid-template-columns:1fr 112px;gap:7px}
.ip-product-filters input,.ip-product-filters select{width:100%;min-width:0;border:1px solid #c9c3b4;background:#fff;padding:8px;font:700 13px Assistant,Arial,sans-serif;color:#4d463d;border-radius:0}
.inv-print .ip-product-filters select{appearance:auto}
.ip-products{margin-top:9px;max-height:150px;overflow:auto;border-top:1px solid #d6d0c0}
.ip-product-row{display:flex;gap:9px;align-items:center;min-height:59px;border-bottom:1px solid #d6d0c0;padding:8px 0}
.ip-product-row>label:first-child{flex:1;min-width:0;display:flex;align-items:center;gap:8px;cursor:pointer}
.ip-product-row b{font-size:14px;display:block;font-weight:900}.ip-product-row small{display:block;font-size:11px;color:#78716a;margin-top:2px}
.ip-product-copies{display:flex;flex-direction:column;align-items:center;font-size:10px;color:#78716a;gap:2px}
.inv-print .ip-product-copies input{border-radius:0!important;width:55px;border:1px solid #c9c3b4;background:#fff;padding:5px 3px;text-align:center;font-size:14px;font-weight:700;color:#0a0a0a}
.ip-selection-count{color:#8a5a1a;font-size:12px}.ip-product-note{border-top:1px solid #d6d0c0;margin-top:7px!important;padding-top:6px;font-size:11px;color:#78716a;line-height:1.5}
.ip-format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ip-format{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#fefcf7;border:1px solid #c9c3b4;color:#4d463d;min-height:54px;padding:5px 3px;font-size:12px;font-weight:800}
.ip-format[aria-pressed=true]{border-color:#8a5a1a;background:#f1e6cf;color:#8a5a1a;box-shadow:inset 0 -2px #8a5a1a}
.ip-mini-page{display:grid;grid-template-columns:repeat(var(--c),1fr);grid-template-rows:repeat(var(--r),1fr);gap:1px;width:20px;height:25px;border:1px solid currentColor;padding:2px}.ip-mini-page i{background:currentColor;opacity:.7}
.ip-format-caption{font-size:11px;color:#78716a;line-height:1.5;margin-top:8px!important}
.ip-sheet.ip-label-sheet{padding:8mm;--label-title:37px;--label-meta:19px;--label-code:16px;--label-barcode:64px}
.ip-label-sheet .ip-grid{height:100%;grid-template-columns:repeat(var(--ip-cols),1fr);grid-template-rows:repeat(var(--ip-rows),1fr);grid-auto-rows:auto}
.ip-label-sheet .ip-slot{width:auto;height:auto;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:5mm 4mm;color:#000}
.ip-product-label{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;gap:10px;color:#000;font-family:Assistant,Arial,sans-serif}
.ip-label-name{font-size:var(--label-title);font-weight:900;line-height:1.14;max-width:100%;text-align:center;overflow-wrap:anywhere}
.ip-label-kind,.ip-label-detail,.ip-label-location{font-size:var(--label-meta);font-weight:800;text-align:center;line-height:1.2}.ip-label-kind{color:#555}
.ip-product-label svg{width:90%;height:var(--label-barcode);flex-shrink:0;max-width:450px}
.ip-label-code{font:800 var(--label-code) monospace;direction:ltr;white-space:nowrap}
.ip-sheet.ip-format-1{--label-title:82px;--label-meta:28px;--label-code:24px;--label-barcode:125px}
.ip-sheet.ip-format-2{--label-title:60px;--label-meta:24px;--label-code:20px;--label-barcode:90px}
.ip-sheet.ip-format-8{--label-title:29px;--label-meta:16px;--label-code:14px;--label-barcode:48px}
.ip-sheet.ip-format-16{--label-title:22px;--label-meta:13px;--label-code:11px;--label-barcode:40px}
.ip-sheet.ip-format-48{padding:10.5mm 0;--label-title:14px;--label-meta:11px;--label-code:9px;--label-barcode:25px}
.ip-format-48 .ip-grid{height:276mm}.ip-format-48 .ip-slot{padding:2mm 3.25mm}.ip-format-48 .ip-product-label{gap:2px}
.ip-format-48 .ip-label-name,.ip-format-48 .ip-label-detail{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;flex-shrink:0}
.ip-format-48 .ip-label-kind,.ip-format-48 .ip-label-location{display:none}.ip-format-48 .ip-product-label svg{width:100%}
.ip-thermal-preview{margin:auto;text-align:center;font-size:12px;color:#78716a}
.ip-thermal-label{width:50mm;height:25mm;padding:1mm 2mm;box-sizing:border-box;background:#fff;--label-title:12px;--label-meta:9px;--label-code:9px;--label-barcode:30px;break-inside:avoid;break-after:page}
.ip-thermal-label:last-child{break-after:auto}.ip-thermal-label .ip-product-label{gap:2px}.ip-thermal-label .ip-label-kind,.ip-thermal-label .ip-label-location{display:none}
.ip-thermal-label .ip-label-name,.ip-thermal-label .ip-label-detail{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;flex-shrink:0}
.ip-print-thermal{width:50mm!important;padding:0;margin:0;background:#fff}
@media(max-width:720px){.inv-print.ip-labels{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:none;overflow:hidden}.inv-print.ip-labels .ip-view{flex:1;min-height:0}.inv-print.ip-labels .ip-labels-layout{display:block;overflow:auto;flex:1;min-height:0}.inv-print.ip-labels .ip-settings-rail{overflow:visible;border-left:0;padding:16px 18px}.inv-print.ip-labels .ip-preview-zone{height:530px}.inv-print.ip-labels .ip-foot{position:static;flex-wrap:nowrap;padding:11px 14px;gap:8px}.inv-print.ip-labels .ip-footer-copy strong{font-size:17px}.inv-print.ip-labels .ip-footer-copy small{font-size:10px}.ip-nav{gap:18px;overflow-x:auto}.ip-nav button{white-space:nowrap}.ip-product-filters{grid-template-columns:1fr 108px}}
@media print{.ip-print-document .ip-label-sheet:not(.ip-format-48) .ip-slot{outline:.15mm dashed #bbb;outline-offset:-.15mm}.ip-print-document.ip-print-thermal{width:50mm!important}.ip-print-document .ip-slot-num{display:none}}
