.cam-modal[data-v-8fb8ccb4]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.cam-panel[data-v-8fb8ccb4]{width:min(520px,92vw);background:#fff;border-radius:12px;padding:12px;box-shadow:0 10px 30px #0003}.cam-header[data-v-8fb8ccb4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cam-video-wrap[data-v-8fb8ccb4]{position:relative;background:#000;border-radius:10px;overflow:hidden}video[data-v-8fb8ccb4]{width:100%;height:auto;display:block}.hint[data-v-8fb8ccb4]{margin:8px 0 0;opacity:.8;font-size:14px}.warn[data-v-8fb8ccb4]{display:inline-block;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:2px 6px;margin-top:6px}.toaster{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast{padding:10px 12px;border-radius:8px;font-size:14px;color:#111;background:#fff;border:1px solid #e5e7eb;box-shadow:0 8px 24px #00000014}.toast.success{border-color:#16a34a33;background:#dcfce7}.toast.error{border-color:#ef444433;background:#fee2e2}.toast.info{border-color:#3b82f633;background:#dbeafe}:root{--fs-12: clamp(11px, 1.5vw, 12px);--fs-14: clamp(12px, 1.6vw, 14px);--fs-16: clamp(14px, 1.8vw, 16px);--fs-18: clamp(16px, 2vw, 18px);--fs-input: 15px;--fs-label: 15px;--radius: 10px;--gap: 12px;--pad: 12px;--table-max-h: 420px;--bg: #fafafa;--fg: #111827;--muted: #6b7280;--border: #E5E7EB;--brand: #111827;--brand-contrast: #fff}@media (max-width: 480px){:root{--table-max-h: 55vh}}html,body,#app{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--fs-16);color:var(--fg);background:var(--bg);-webkit-tap-highlight-color:transparent}.page{max-width:1100px;margin:0 auto;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}@media (max-width: 900px){.page{max-width:780px}}@media (max-width: 600px){.page{max-width:100%;padding:12px}}.header{position:relative;display:flex;align-items:center;gap:var(--gap);min-height:44px}.header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;width:max-content;max-width:calc(100% - 160px);text-align:center;font-size:18px;line-height:1.3}.header>.toolbar{margin-left:auto}.toolbar{display:flex;gap:var(--gap);align-items:center;flex-wrap:wrap}@media (max-width: 600px){.header{align-items:center}.toolbar{gap:8px}.input{min-width:0;width:min(320px,80vw)}}.input,input[type=text],input[type=number],input[type=file]{font-size:var(--fs-input);padding:10px 12px;border:1px solid #D1D5DB;border-radius:var(--radius);min-width:220px;background:#fff}label{display:inline-block;margin-bottom:6px;font-size:var(--fs-label);color:#374151}.input:focus,.btn:focus{outline:2px solid #93c5fd;outline-offset:2px}.page .input,.page input[type=text],.page input[type=number],.page input[type=file]{width:100%;max-width:100%;box-sizing:border-box}.btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;min-height:32px;border:none;border-radius:18px;background-color:#a0a0a0;color:#333;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap;transition:filter .15s ease,transform .05s ease}.btn:hover{filter:brightness(.95)}.btn:active{transform:translateY(1px)}.btn.block{width:100%}.scan-capture{position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;border:0;padding:0;margin:0;background:transparent}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;max-height:var(--table-max-h);overflow:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse}th,td{padding:10px;border-top:1px solid #F3F4F6;text-align:left}thead{position:sticky;top:0;background:#fff;box-shadow:0 1px 0 var(--border);z-index:1}@media (max-width: 480px){.table.cards thead{display:none}.table.cards tr{display:block;border-top:none;border-bottom:1px solid #eee;padding:8px 10px}.table.cards td{display:flex;justify-content:space-between;border:none;padding:6px 0}.table.cards td:before{content:attr(data-label);font-weight:600;margin-right:12px;color:#374151}}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--fs-12)}.badge.green{background:#dcfce7;color:#166534}.badge.red{background:#fee2e2;color:#991b1b}.shelf-picker{display:flex;gap:8px;flex-wrap:wrap}.shelf{padding:8px 12px;border:1px solid #D1D5DB;border-radius:var(--radius);min-width:44px;min-height:40px;justify-content:center;align-items:center;display:inline-flex;background:#fff}.shelf.active{background:var(--brand);color:#fff;border-color:var(--brand)}.hidden-input{position:absolute;left:-9999px;height:0;width:0}.hint-warn{margin:6px 0 0;font-size:var(--fs-14);color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;padding:6px 8px;display:inline-block}.mobile-footer{position:fixed;left:0;right:0;bottom:0;display:none;gap:10px;padding:10px env(safe-area-inset-right) calc(10px + env(safe-area-inset-bottom)) env(safe-area-inset-left);background:#fafafafa;border-top:1px solid var(--border);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);z-index:1000}@media (max-width: 640px){.mobile-footer{display:grid;grid-template-columns:1fr 1fr}}.mobile-footer .btn{width:100%;min-height:48px}.text-center{text-align:center}.text-right{text-align:right}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.mt-6{margin-top:6px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.ml-8{margin-left:8px}.w-80{width:80px}.clickable{cursor:pointer}.capitalize{text-transform:capitalize}.nowrap{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch}.w-100{width:100px;max-width:100px;flex:0 0 100px}.w-120{width:120px;max-width:120px;flex:0 0 120px}.w-140{width:140px;max-width:140px;flex:0 0 140px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page--identification .toolbar{gap:20px}@media (max-width: 600px){.page--identification .toolbar>div+div{margin-top:8px}}.page--identification input[type=file]{margin-top:8px}.page--identification .toolbar:last-of-type{justify-content:center}.page--identification .form-block{display:flex;flex-direction:column;gap:8px}.page--identification .select-row{display:flex;flex-direction:column;gap:6px}.page--identification .id-footer-logo{margin-top:180px;display:flex;justify-content:center;opacity:.9}.id-footer-logo img{height:50px;width:auto;opacity:.9}.page--identification .toolbar{justify-content:center}.page--mapharmacie .table-wrap{max-height:75vh}.page--mapharmacie .toolbar.center{justify-content:center}.page--mapharmacie .state-cell{border-left:none!important}.page--mapharmacie .state-dot{display:inline-block;width:12px;height:12px;min-width:12px;min-height:12px;border-radius:50%;background:#d1d5db;vertical-align:middle}.page--mapharmacie .state-dot.ok{background:#10b981}.page--mapharmacie .state-dot.ko{background:#ef4444}.page--implantation{height:95svh;display:flex;flex-direction:column;overflow:hidden}.page--implantation.page{padding-bottom:env(safe-area-inset-bottom)!important}.page--implantation .header{margin-top:8px}.page--implantation .toolbar.center{justify-content:center}.page--implantation .icon-lg{width:24px;height:24px;vertical-align:middle}.page--implantation .icon-lh{width:18px;height:18px;vertical-align:middle}.page--implantation .shelves-block{flex:1 1 100%;min-width:0}.page--implantation .shelf-strip{width:100%;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:4px;max-width:100%}.page--implantation .input-largeur{font-size:var(--fs-input);padding:10px 12px;border:1px solid #D1D5DB;border-radius:var(--radius);width:80px;background:#fff}.page--implantation .input-ean{width:80px}.page--implantation .reveal-row .btn{margin-left:8px}.page--implantation .table-zone{flex:1;min-height:0;display:flex;flex-direction:column}.page--implantation .table-wrap{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;max-height:100%;overflow:hidden}.page--implantation .table-head{table-layout:fixed;width:100%;border-bottom:1px solid var(--border)}.page--implantation .tbody-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.page--implantation .table-footer-fixed{border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);background:#fff;padding:8px 10px;text-align:right}.page--implantation .table.fixed-cols{table-layout:fixed;width:100%}.page--implantation .table.tight th,.page--implantation .table.tight td{padding:8px 10px}.page--implantation .table.tight thead th+th,.page--implantation .table.tight tbody td+td{border-left:1px solid var(--border)}.page--implantation .table.tight thead th+th{border-left-color:#d1d5db}.cell-scroll{display:block;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-overflow-scrolling:touch}.cell-scroll-padding{padding-right:6px}.page--implantation .table td .input-empil{width:48px!important;max-width:48px!important;min-width:0!important;padding:6px 8px;text-align:center;box-sizing:border-box;font-variant-numeric:tabular-nums}.page--implantation .btn-delete{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:6px;border:none;border-radius:50%;background:transparent;color:#991b1b;font-size:14px;cursor:pointer;line-height:1}.page--implantation .btn-delete:hover{background:#fee2e2}.page--implantation .shelf-strip{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.page--implantation .shelf-strip .shelf{flex:0 0 auto}.page--implantation .toolbar.nowrap .input.w-100,.page--implantation .toolbar.nowrap .input{width:auto;max-width:none;flex:0 0 auto}.page--implantation .form-row-grid{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.page--implantation .form-row-grid>label{margin:0;min-width:90px}.page--implantation .form-row-grid .w-grow{width:100%}.page--implantation .toolbar .form-row-grid,.page--implantation .toolbar .add-row{flex:1 1 100%}.page--exporter .toolbar.center{justify-content:center}.page--exporter p{font-size:18px;text-align:center}.page--exporter .toolbar+p{margin-top:40px}.page--exporter .toolbar{justify-content:center}.page--exporter .opacity-70{text-align:center}.page--exporter p+.toolbar{margin-top:40px}.page--exporter .opacity-70+.toolbar{margin-top:40px}
