.stock-page{max-width:1050px;margin:0 auto;padding-bottom:16px}
.stock-page .toolbar h1{margin-bottom:3px}
.stock-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.stock-destination-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.stock-destination-tabs button{border:1px solid #b8d1e4;border-radius:10px;background:#fff;color:var(--navy);padding:10px 16px;font:inherit;font-weight:800;cursor:pointer}
.stock-destination-tabs button.active,.stock-destination-tabs button[aria-selected="true"]{background:#07509a;border-color:#07509a;color:#fff}
.stock-search-card{padding:16px 18px;margin-bottom:16px}
.stock-search-card label,.stock-field>span{display:block;color:var(--navy);font-size:13px;font-weight:800;margin-bottom:7px}
.stock-search-row{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.stock-search-row input{flex:1 1 230px;min-width:0}
.stock-search-row .btn{white-space:nowrap}
.stock-search-card .stock-review-filter{display:flex;align-items:center;gap:8px;margin:12px 0;color:#673d06;cursor:pointer}
.stock-review-filter input{accent-color:#bd650b}
.stock-search-card .meta{margin-bottom:0}
.stock-list{display:grid;gap:10px}
.stock-list-more{display:flex;justify-content:center;margin-top:14px}
.stock-list-more:empty{display:none}
.stock-package{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 18px;box-shadow:0 5px 18px rgba(28,63,94,.05)}
.stock-package-main{min-width:0}
.stock-package-title{font-size:16px;font-weight:850;color:var(--navy);overflow-wrap:anywhere}
.stock-package-meta{color:var(--muted);font-size:13px;margin-top:4px;overflow-wrap:anywhere}
.stock-package-side{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:42%}
.stock-label-print{white-space:nowrap}
.stock-mini{font-size:12px;color:var(--muted);font-weight:700}
.stock-mini-warning{color:#a85111}
.stock-kind{display:inline-flex;border-radius:999px;padding:6px 10px;background:#e9f0fa;color:#164873;font-size:12px;font-weight:850;white-space:nowrap}
.stock-kind-small{background:#fff0d5;color:#835006}
.stock-review{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;white-space:nowrap}
.stock-review-pending{border:1px solid #e6ae53;background:#fff1d8;color:#7d4300}
.stock-review-done{border:1px solid #99d5aa;background:#e3f6e9;color:#145c34}
.stock-status{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;white-space:nowrap}
.stock-status-recu{background:#e4f6e9;color:#166138}
.stock-status-anomalie{background:#ffe9e7;color:#a32b21}
.stock-status-a_verifier{background:#fff2d9;color:#875300}
.stock-empty{text-align:center;color:var(--muted)}
.stock-form{padding:20px 22px}
.stock-step{display:flex;align-items:center;gap:9px;margin:2px 0 16px;color:var(--navy);font-size:16px}
.stock-step:not(:first-child){margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.stock-step>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:900}
.stock-photo-box{display:grid;gap:10px;max-width:100%;border:1px dashed #bdd1df;border-radius:15px;padding:14px;background:#f9fcfe}
.stock-photo-box img{display:block;max-width:min(100%,420px);max-height:270px;object-fit:contain;border-radius:9px}
.stock-photo-box img[hidden]{display:none}
.stock-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stock-recrop-button{justify-self:start}
.stock-recrop-button[hidden]{display:none}
.stock-crop-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(6,24,42,.78)}
.stock-crop-card{display:grid;justify-items:center;gap:12px;width:min(100%,620px);max-height:calc(100dvh - 24px);overflow:auto;padding:16px;border-radius:16px;background:#fff;color:#173b5b;box-shadow:0 18px 60px rgba(0,0,0,.32)}
.stock-crop-card h2{justify-self:start;margin:0;font-size:20px}
.stock-crop-card p{justify-self:start;margin:0;line-height:1.4;font-size:14px}
.stock-crop-stage{position:relative;max-width:100%;flex:none;overflow:hidden;border-radius:8px;background:#152d41}
.stock-crop-stage img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}
.stock-crop-frame{position:absolute;box-sizing:border-box;border:3px solid #ff3b30;border-radius:5px;box-shadow:0 0 0 1000px rgba(0,0,0,.48);cursor:move;touch-action:none;outline-offset:3px}
.stock-crop-frame:focus-visible{outline:3px solid #ffd43b}
.stock-crop-handle{position:absolute;right:-12px;bottom:-12px;width:29px;height:29px;border:3px solid #fff;border-radius:7px;background:#ff3b30;box-shadow:0 1px 5px rgba(0,0,0,.5);cursor:nwse-resize;touch-action:none}
.stock-crop-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%}
.stock-crop-actions .btn{min-height:44px}
.stock-photo-instruction{font-size:13px;color:#36536a;margin:0}
.stock-ocr-progress,.stock-ocr-result{display:grid;gap:6px;padding:12px 14px;border-radius:11px;border:1px solid #9cc6e2;background:#edf7ff;color:#153d60;font-size:13px}
.stock-ocr-progress strong,.stock-ocr-result strong{font-size:14px}
.stock-ocr-progress progress{display:block;width:100%;height:11px;accent-color:#096da8}
.stock-ocr-progress small,.stock-ocr-result small{font-size:12px;line-height:1.35}
.stock-ocr-result p{margin:0;line-height:1.4}
.stock-ocr-result-found{border-color:#89cda0;background:#e9f8ee;color:#155d36}
.stock-ocr-result-empty{border-color:#e1b576;background:#fff7e8;color:#754410}
.stock-ocr-preview{min-width:0;margin-top:8px;border:1px solid #c9dbe8;border-radius:10px;background:#fff;color:#26465e;font-size:13px}
.stock-ocr-preview summary{padding:11px 12px;font-weight:800;cursor:pointer;overflow-wrap:anywhere}
.stock-ocr-preview[open] summary{border-bottom:1px solid #dbe6ed}
.stock-ocr-preview p{margin:10px 12px 6px;line-height:1.4}
.stock-ocr-preview ul{max-height:170px;overflow:auto;margin:6px 12px 12px;padding-left:20px;line-height:1.45;overflow-wrap:anywhere}
.stock-ocr-preview li+li{margin-top:5px}
.stock-photo-confirm{display:flex;gap:8px;align-items:flex-start;font-size:13px;font-weight:700;color:var(--navy)}
.stock-photo-confirm[hidden]{display:none}
.stock-photo-confirm input{margin:3px 0 0;flex:none}
.stock-fallback-hint{border-radius:10px;background:#fff4dc;color:#765013;padding:10px 12px;font-size:13px;margin:13px 0}
.stock-fallback-hint[hidden]{display:none}
.stock-dossier-suggestion{border:1px solid #99c4e5;border-radius:12px;background:#edf7ff;padding:12px 14px;margin-top:12px}
.stock-dossier-suggestion strong{color:var(--navy)}
.stock-dossier-suggestion p{font-size:13px;margin:6px 0 10px;color:#36536a}
.stock-dossier-suggestion small{display:block;margin-top:7px;color:var(--muted)}
.stock-label-identity{border-color:#66a8d6;background:#f0f8fe}
.stock-label-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.stock-label-identity-grid p{display:grid;gap:4px;min-width:0;margin:0;padding:11px 12px;border:1px solid #c5dfed;border-radius:10px;background:#fff;overflow-wrap:anywhere}
.stock-label-identity-grid span{font-size:12px;font-weight:750;color:#426076}
.stock-label-identity-grid strong{font-size:20px;line-height:1.2;color:var(--navy)}
.stock-label-identity .btn{margin:0 8px 8px 0}
.stock-ocr-candidates{display:grid;gap:8px}
.stock-ocr-candidate{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid #c8dfea;border-radius:10px;background:#fff}
.stock-ocr-candidate>span{min-width:0;overflow-wrap:anywhere}
.stock-ocr-candidate .btn{flex:none}
.stock-suggestion-message{font-size:13px;color:var(--muted);margin:9px 0 0}
.stock-live-scan{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:rgba(8,23,38,.82);padding:16px}
.stock-live-scan-card{width:min(100%,600px);max-height:calc(100dvh - 32px);overflow:auto;border-radius:16px;background:#fff;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.3)}
.stock-live-scan-card h2{margin:0 0 6px;color:var(--navy)}
.stock-live-scan-card p{font-size:13px;color:var(--muted);margin:0 0 12px}
.stock-live-scan-viewport{position:relative;overflow:hidden;border-radius:11px;background:#111;margin-inline:auto;max-width:100%}
.stock-live-scan-card video{display:block;width:100%;height:100%;object-fit:fill;background:#111}
.stock-scan-aim{position:absolute;pointer-events:none;z-index:1;filter:drop-shadow(0 0 3px #111)}
.stock-live-scan-barcode .stock-scan-aim{left:7%;right:7%;top:50%;height:3px;transform:translateY(-50%);background:#ff263c;box-shadow:0 0 0 1px rgba(255,255,255,.75),0 0 12px #ff263c}
.stock-live-scan-qr .stock-scan-aim{aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);border:3px solid #ff263c;border-radius:12px;box-shadow:0 0 0 1px rgba(255,255,255,.75),0 0 12px #ff263c}
.stock-live-scan-status{margin:10px 0;font-size:13px;color:var(--navy)}
.stock-file-input{display:none}
.stock-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.stock-optional-label{margin-top:18px;border:1px solid #d2e1ec;border-radius:12px;background:#f8fbfe;padding:0 14px}
.stock-optional-label summary{padding:13px 0;color:var(--navy);font-size:13px;font-weight:800;cursor:pointer}
.stock-optional-label[open] summary{margin-bottom:12px;border-bottom:1px solid #d2e1ec}
.stock-optional-label .stock-form-grid{padding-bottom:14px}
.stock-optional-label #stock-duplicates:not(:empty){padding-bottom:14px}
.stock-optional-label .stock-notes{display:block;margin:0 0 14px}
.stock-form-primary{margin-bottom:4px}
.stock-field{display:block;min-width:0}
.stock-field input,.stock-field select,.stock-field textarea{display:block;width:100%}
.stock-notes{margin-top:16px}
.stock-notice{border-radius:10px;background:#e9f6ed;color:#176342;padding:10px;font-size:13px}
.stock-candidate-box{border:1px solid #e4c889;border-radius:12px;background:#fff8e9;padding:12px}
.stock-candidate-box p{margin:5px 0 10px;font-size:13px}
.stock-candidate-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.stock-duplicate-warning{background:#fff6e7;color:#624008;border:1px solid #f0d4a5;border-radius:12px;padding:12px 14px;margin-top:15px}
.stock-duplicate-warning p{margin:6px 0 8px;font-size:13px}
.stock-duplicate-link{display:block;width:100%;text-align:left;border:0;border-top:1px solid #f1dfc3;background:transparent;padding:8px 0;color:#164d79;font-weight:700;cursor:pointer}
.stock-selected-chantier{border-radius:10px;background:#f0f5f9;color:var(--navy);padding:10px 12px;font-weight:750}
.stock-selected-chantier small{display:block;color:var(--muted);font-weight:400;margin-top:5px}
.stock-chantier-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:12px}
.stock-chantier-controls .btn{margin-bottom:0}
.stock-chantier-results{display:grid;gap:5px;max-height:250px;overflow:auto;margin-top:8px}
.stock-chantier-result{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff;text-align:left;cursor:pointer}
.stock-chantier-result strong,.stock-chantier-result small{display:block}
.stock-chantier-result small{margin-top:3px;color:var(--muted)}
.stock-chantier-picker>small{display:block;color:var(--muted);margin-top:8px}
.stock-create-predossier{margin-top:10px}
.stock-predossier-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff;color:var(--navy);box-shadow:0 22px 60px #102b4d55}
.stock-predossier-dialog::backdrop{background:#102b4d99}
.stock-predossier-form{display:grid;gap:14px}
.stock-predossier-form h2{font-size:20px;margin:0}
.stock-predossier-form p{margin:0;color:var(--muted);line-height:1.45}
.stock-predossier-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.stock-predossier-message{color:#9d211c;font-weight:650}
.stock-predossier-message:empty{display:none}
.stock-label-page{max-width:850px}
.stock-label-form{display:grid;gap:18px}
.stock-label-destinations{display:flex;gap:12px;flex-wrap:wrap;margin:0;padding:0;border:0}
.stock-label-destinations legend{color:var(--navy);font-size:14px;font-weight:800;margin-bottom:10px}
.stock-label-destinations label{display:flex;align-items:center;gap:8px;min-height:46px;padding:9px 13px;border:1px solid #b8d1e4;border-radius:11px;background:#fff;color:var(--navy);font-weight:750;cursor:pointer}
.stock-label-destinations input{accent-color:#07509a}
.stock-label-form h2,.stock-created-title{margin:0 0 10px;color:var(--navy);font-size:17px}
#stock-label-dossier-fields{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:17px}
#stock-label-dossier-fields[hidden],.stock-label-predossier[hidden]{display:none}
.stock-label-predossier{padding:13px;border:1px solid #c5dfed;border-radius:12px;background:#f7fbfe}
.stock-label-predossier .meta{margin:0 0 12px}
.stock-label-extra{border-top:1px solid var(--line);padding-top:17px}
.stock-label-fields{display:grid;gap:17px}
.stock-label-party{display:grid;align-content:start;gap:9px;min-width:0}
.stock-label-new-party[hidden],#stock-label-remove-photo[hidden]{display:none}
.stock-label-photo{display:grid;gap:8px;min-width:0}
.stock-label-photo-title{color:var(--navy);font-size:14px;font-weight:800}
.stock-label-quantity{max-width:210px}
.stock-label-photo-link{display:inline-block;margin-top:12px}
.stock-label-photo-link img{display:block;max-width:min(100%,360px);max-height:240px;object-fit:contain;border-radius:9px}
.stock-label-form .stock-optional-label{margin-top:0}
.stock-label-form .stock-form-actions{margin-top:0}
#stock-label-form-message:empty{display:none}
.stock-label-created{padding:20px 22px}
.stock-label-code{font-size:25px;font-weight:900;letter-spacing:.04em;color:var(--navy);overflow-wrap:anywhere}
.stock-label-facts{display:flex;gap:6px 15px;flex-wrap:wrap;margin:10px 0;color:#36536a;font-size:13px}
.stock-label-created .meta{margin:9px 0 0}
.stock-created-title{margin:22px 0 10px}
.stock-label-detail{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 14px;padding:14px 18px}
.stock-label-detail strong,.stock-label-detail span{display:block}
.stock-label-detail strong{color:var(--navy);font-size:16px}
.stock-label-detail span{color:var(--muted);font-size:13px;margin-top:5px}
.stock-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.stock-small-products{display:grid;gap:12px;margin:12px 0}
.stock-product-row{border:1px solid #b8d1e4;border-radius:14px;padding:16px;background:#f8fbfe;min-width:0}
.stock-product-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}
.stock-product-row h3{margin:0;color:var(--navy);font-size:16px}
.stock-product-scan{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.stock-product-scan[hidden],.stock-product-photo[hidden]{display:none}
.stock-product-scan .meta{margin:0;font-size:12px}
.stock-product-photo{display:grid;justify-items:start;gap:9px;margin-top:12px;padding:12px;border:1px dashed #bdd1df;border-radius:12px;background:#fff}
.stock-product-photo p{font-size:13px;color:#765013;margin:0}
.stock-product-photo p[hidden],.stock-product-photo button[hidden],.stock-product-photo label[hidden]{display:none}
.stock-product-photo img{display:block;max-width:min(100%,320px);max-height:220px;object-fit:contain;border-radius:8px}
.stock-product-photo img[hidden]{display:none}
.stock-product-photo label{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--navy)}
.stock-product-photo label input{margin:3px 0 0;flex:none}
.stock-product-photo-link{display:inline-block;margin-top:10px;font-size:13px}
.stock-product-dossier{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.stock-product-dossier[hidden]{display:none}
.stock-product-details{margin-top:12px}
.stock-product-dossier>strong{display:block;color:var(--navy);margin-bottom:8px}
.stock-product-readonly{background:#fff}
.stock-product-summary{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.stock-add-product{margin-top:5px}
.stock-ack-list{display:grid;gap:12px;margin:14px 0}
.stock-ack-list .stock-field{padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff}
.stock-small-review{padding:2px 0 4px}
.stock-review-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.stock-review-summary p{margin:0;color:#36536a;font-size:13px}
.stock-small-review>.meta{margin:10px 0;color:#526b80;font-size:12px;line-height:1.45}
#stock-review-message:not(:empty){margin:11px 0}
#stock-ack-message:not(:empty){margin:12px 0}
#stock-form-message:not(:empty){margin-top:18px}
@media(max-width:850px){.mobile-nav{justify-content:flex-start;gap:5px;overflow-x:auto;scrollbar-width:none}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav button{flex:0 0 69px;white-space:nowrap}}
@media(max-width:700px){.stock-toolbar-actions{width:100%;justify-content:stretch}.stock-toolbar-actions .btn{flex:1 1 100%}.stock-destination-tabs{display:grid;grid-template-columns:1fr 1fr}.stock-destination-tabs button{font-size:13px;padding:10px 8px}.stock-form{padding:16px}.stock-form-grid{grid-template-columns:1fr;gap:12px}.stock-package{display:block;padding:14px}.stock-package-side{max-width:none;justify-content:flex-start;margin-top:12px}.stock-package-side .btn{margin-left:auto}.stock-photo-actions{align-items:stretch}.stock-photo-actions .btn{flex:1 1 155px;min-height:44px}.stock-photo-actions .stock-mini{flex-basis:100%}.stock-chantier-controls{grid-template-columns:1fr}.stock-form-actions .btn{width:100%;min-height:46px}.stock-product-scan .btn{width:100%;min-height:44px}.stock-add-product{width:100%;min-height:44px}}
.stock-field[hidden],.stock-product-dossier[hidden],.stock-photo-confirm[hidden]{display:none!important}
@media(max-width:700px){.stock-ocr-candidate{align-items:stretch;flex-direction:column}.stock-ocr-candidate .btn{width:100%}}
@media(max-width:700px){.stock-label-destinations{display:grid;grid-template-columns:1fr}.stock-label-detail{display:grid}.stock-label-detail .btn{width:100%;text-align:center}.stock-label-code{font-size:21px}}
@media(max-width:700px){.stock-label-quantity{max-width:none}}
@media(max-width:500px){.stock-label-identity-grid{grid-template-columns:1fr}}
@media(max-width:700px){.stock-crop-card{padding:12px}.stock-crop-actions{display:grid;grid-template-columns:1fr}.stock-recrop-button{width:100%;min-height:44px}}
