:root{--loc-blue:#2176ff;--loc-green:#1f9d63;--loc-red:#d64545;--loc-amber:#d58a16}.loc-page{max-width:1580px;margin:auto;padding:28px}.loc-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px;border:1px solid var(--wms-line);border-radius:24px;background:linear-gradient(135deg,var(--wms-surface),var(--wms-surface-2));box-shadow:var(--wms-shadow);margin-bottom:18px}.loc-hero h1{font-size:clamp(30px,4vw,50px);margin:4px 0 8px}.loc-hero p{margin:0;color:var(--wms-muted)}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--loc-blue);margin:0}.hero-actions,.export-row,.filters{display:flex;flex-wrap:wrap;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--wms-line);border-radius:12px;padding:11px 15px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--loc-blue),#1557c7);color:#fff;border-color:transparent}.btn.secondary{background:var(--wms-surface);color:var(--wms-text)}.btn.wide{width:100%}.btn.big{padding:15px;font-size:1.05rem}.notice{padding:14px 16px;border-radius:13px;margin-bottom:15px;background:#e8f8ef;color:#11663e}.notice.error{background:#fdecec;color:#a52222}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpis article{background:var(--wms-surface);border:1px solid var(--wms-line);border-radius:18px;padding:17px;box-shadow:var(--wms-shadow)}.kpis span{display:block;color:var(--wms-muted);font-size:.85rem}.kpis strong{display:block;font-size:1.7rem;margin-top:5px}.tabs{display:flex;gap:8px;overflow:auto;padding:5px;background:var(--wms-surface-2);border:1px solid var(--wms-line);border-radius:15px;margin-bottom:18px}.tabs button,.mode-switch button{border:0;background:transparent;color:var(--wms-muted);padding:11px 16px;border-radius:10px;font:inherit;font-weight:800;white-space:nowrap;cursor:pointer}.tabs button.active,.mode-switch button.active{background:var(--wms-surface);color:var(--loc-blue);box-shadow:0 4px 14px rgba(0,0,0,.08)}.tab-panel{display:none}.tab-panel.active{display:block}.layout{display:grid;gap:18px}.layout.two{grid-template-columns:minmax(350px,.8fr) minmax(520px,1.2fr)}.scanner-layout{grid-template-columns:minmax(420px,.9fr) minmax(420px,1.1fr)}.panel{background:var(--wms-surface);border:1px solid var(--wms-line);border-radius:22px;padding:22px;box-shadow:var(--wms-shadow)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.panel-head h2{margin:4px 0 0}.muted{color:var(--wms-muted)}.status{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}.status.ok{background:#e6f8ef;color:#127245}.status.info{background:#eaf2ff;color:#1f62cf}.status.pending_export{background:#fff3d6;color:#96620c}.status.exported{background:#e9f1ff;color:#245cba}.status.missing_in_biznisoft,.status.conflict{background:#fdeaea;color:#a82f2f}.status.confirmed{background:#e6f8ef;color:#147446}.dropzone{display:grid;place-items:center;text-align:center;gap:8px;border:2px dashed var(--wms-line);border-radius:18px;padding:32px;margin:18px 0;cursor:pointer;background:var(--wms-surface-2)}.dropzone.drag{border-color:var(--loc-blue);background:rgba(33,118,255,.08)}.dropzone input{display:none}.drop-icon{font-size:36px;color:var(--loc-blue)}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.result-grid div{padding:12px;border-radius:12px;background:var(--wms-surface-2);border:1px solid var(--wms-line)}.result-grid strong{display:block;font-size:1.2rem}.table-wrap{overflow:auto;max-height:440px;border:1px solid var(--wms-line);border-radius:14px}.table-wrap.large{max-height:620px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:12px;border-bottom:1px solid var(--wms-line);text-align:left;vertical-align:top;white-space:nowrap}th{position:sticky;top:0;background:var(--wms-surface-2);z-index:1;color:var(--wms-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--wms-surface-2);border:1px solid var(--wms-line);border-radius:13px;margin-bottom:20px}.scan-fields{display:grid;gap:16px}.scan-fields label>span{display:block;font-weight:800;margin-bottom:7px}.input-action{display:grid;grid-template-columns:1fr auto;gap:8px}.input-action input,.filters input,.filters select{min-width:0;border:1px solid var(--wms-line);border-radius:12px;padding:13px;background:var(--wms-input);color:var(--wms-text);font:inherit}.camera{border:1px solid var(--wms-line);border-radius:12px;background:var(--wms-surface-2);color:var(--wms-text);font-weight:800;padding:0 14px}.check-row{padding:14px 0}.scan-status{margin-top:14px;border-radius:12px;padding:13px;background:var(--wms-surface-2);color:var(--wms-muted)}.scan-status.success{background:#e6f8ef;color:#147446}.scan-status.error{background:#fdeaea;color:#a82f2f}.product-card{padding:17px;border:1px solid var(--wms-line);border-radius:15px;background:var(--wms-surface-2)}.product-card.empty{color:var(--wms-muted)}.product-card strong{font-size:1.2rem}.product-card span{display:block;color:var(--wms-muted);margin-top:5px}.location-list{display:grid;gap:9px;margin-top:14px}.location-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--wms-line);border-radius:13px}.location-item .meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}.location-item button{border:0;background:#fdeaea;color:#a82f2f;border-radius:9px;padding:8px 10px;cursor:pointer}.report-head{align-items:center}.filters input{min-width:240px}.export-row{margin-bottom:14px}.camera-modal{position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:9999;display:grid;place-items:center;padding:20px}.camera-card{width:min(600px,100%);background:var(--wms-surface);border-radius:20px;padding:18px}.camera-card video{width:100%;border-radius:14px;background:#000;max-height:65vh}.close{border:0;background:var(--wms-surface-2);color:var(--wms-text);border-radius:10px;font-size:24px;width:40px;height:40px}.empty-row{text-align:center;color:var(--wms-muted);padding:28px}@media(max-width:1050px){.layout.two,.scanner-layout{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.loc-hero{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.loc-page{padding:12px}.loc-hero,.panel{padding:17px;border-radius:17px}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpis article{padding:13px}.hero-actions,.hero-actions .btn{width:100%}.result-grid{grid-template-columns:1fr 1fr}.report-head{flex-direction:column}.filters,.filters input,.filters select,.filters button{width:100%}.input-action{grid-template-columns:1fr}.camera{padding:11px}.mode-switch{grid-template-columns:1fr}.location-item{grid-template-columns:1fr}}
html[data-theme="dark"] .status.ok,html[data-theme="dark"] .status.confirmed,html[data-theme="dark"] .scan-status.success{background:#123626;color:#7de3ac}html[data-theme="dark"] .status.info,html[data-theme="dark"] .status.exported{background:#122d55;color:#8db8ff}html[data-theme="dark"] .status.pending_export{background:#44320e;color:#ffd77b}html[data-theme="dark"] .status.missing_in_biznisoft,html[data-theme="dark"] .status.conflict,html[data-theme="dark"] .scan-status.error{background:#451b22;color:#ff9da8}

/* Correcto WMS 17.0 — non-blocking camera workspace */
.camera-panel{margin:18px auto 0;max-width:1100px;background:var(--wms-surface);border:1px solid var(--wms-line);border-radius:22px;padding:18px;box-shadow:var(--wms-shadow)}
.camera-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.camera-toolbar h2{margin:4px 0 0}.camera-stage{position:relative;min-height:320px;border:1px solid var(--wms-line);border-radius:18px;overflow:hidden;background:#02050a}.camera-stage video{display:block;width:100%;height:min(58vh,560px);object-fit:cover;background:#02050a}.scan-frame{position:absolute;left:12%;right:12%;top:30%;height:40%;border:2px solid rgba(74,144,255,.95);border-radius:18px;box-shadow:0 0 0 9999px rgba(0,0,0,.2),0 0 30px rgba(33,118,255,.35);pointer-events:none}.camera-fallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:28px;background:linear-gradient(135deg,#07101e,#101a2b);color:#fff}.camera-fallback[hidden]{display:none}.camera-fallback strong{font-size:1.35rem}.camera-fallback p{max-width:560px;color:#b9c5d7;line-height:1.55}.camera-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:10px}.camera-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--wms-muted);font-size:.9rem;padding-top:12px}.camera-secure{font-size:.8rem}.camera-modal{display:none!important}
@media(min-width:701px){body.camera-open{overflow:auto}.camera-panel{position:relative}}
@media(max-width:700px){body.camera-open{overflow:hidden}.camera-panel:not([hidden]){position:fixed;inset:0;z-index:10000;margin:0;max-width:none;border:0;border-radius:0;padding:14px;background:var(--wms-surface)}.camera-stage{height:calc(100vh - 150px);min-height:0}.camera-stage video{height:100%}.camera-footer{font-size:.82rem}.camera-secure{display:none}.scan-frame{left:8%;right:8%;top:34%;height:28%}}

/* 19.8.0 Warehouse Operations UX */
.rows-select{display:flex!important;align-items:center;gap:8px;color:var(--muted,#94a3b8);font-size:.82rem}.rows-select select{min-height:40px;padding:0 30px 0 10px}.history-table-wrap{max-height:none!important;overflow:visible!important}.history-table{table-layout:fixed;width:100%}.history-table th,.history-table td{font-size:12px!important;line-height:1.28!important;padding:9px 8px!important;vertical-align:top;overflow-wrap:anywhere}.history-table th:nth-child(1){width:12%}.history-table th:nth-child(2){width:12%}.history-table th:nth-child(3){width:20%}.history-table th:nth-child(4){width:8%}.history-table th:nth-child(5){width:9%}.history-table th:nth-child(6){width:9%}.history-table th:nth-child(7){width:10%}.history-table th:nth-child(8){width:8%}.history-table th:nth-child(9){width:12%}.history-pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px}.history-pagination span{color:var(--muted,#94a3b8);font-size:.85rem}.scan-workflow-hint{padding:12px 14px;border:1px solid var(--line,#263247);border-radius:12px;background:rgba(59,130,246,.06);display:grid;gap:4px}.scan-workflow-hint strong{font-size:.92rem}.scan-workflow-hint span{font-size:.84rem;color:var(--muted,#94a3b8);line-height:1.4}.active-scan-location{margin:12px 0;padding:16px;border:1px solid #2563eb;border-radius:14px;background:rgba(37,99,235,.12);display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:'label code btn' 'label small btn';gap:2px 14px;align-items:center}.active-scan-location>span{grid-area:label;font-size:.68rem;font-weight:900;letter-spacing:.12em;color:#60a5fa}.active-scan-location>strong{grid-area:code;font-size:1.55rem}.active-scan-location>small{grid-area:small;color:var(--muted,#94a3b8)}.active-scan-location>button{grid-area:btn}.last-scan{margin-top:10px;padding:11px 13px;border-radius:11px;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.3);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.last-scan span{font-size:.72rem;color:#86efac}.last-scan strong{font-size:.86rem}.last-scan small{margin-left:auto;color:var(--muted,#94a3b8)}
@media(max-width:900px){.history-table thead{display:none}.history-table,.history-table tbody,.history-table tr,.history-table td{display:block;width:100%!important}.history-table tr{border:1px solid var(--line,#263247);border-radius:12px;margin-bottom:10px;padding:8px;background:var(--surface,#101a2b)}.history-table td{display:grid;grid-template-columns:105px 1fr;border:0!important;padding:6px 8px!important}.history-table td:before{content:attr(data-label);font-weight:800;color:var(--muted,#94a3b8);font-size:11px}.history-pagination{justify-content:space-between}.active-scan-location{grid-template-columns:1fr auto;grid-template-areas:'label btn' 'code btn' 'small small'}}
@media(max-width:560px){.panel{padding:14px!important}.history-table td{grid-template-columns:82px minmax(0,1fr)}.filters{width:100%}.filters input{width:100%}.rows-select{flex:1}.active-scan-location{grid-template-columns:1fr;grid-template-areas:'label' 'code' 'small' 'btn'}.active-scan-location>button{width:100%;margin-top:8px}.mode-switch{grid-template-columns:1fr!important}.scanner-layout{grid-template-columns:1fr!important}}

.differences-table-wrap{max-height:none!important;overflow:visible!important;background:transparent!important}.differences-table{table-layout:fixed;background:transparent!important}.differences-table th,.differences-table td{white-space:normal!important;overflow-wrap:anywhere;padding:9px 8px!important;line-height:1.25;background:transparent!important}.differences-table th{position:static!important;font-size:10px!important}.differences-table td{font-size:12px!important}@media(max-width:900px){.differences-table thead{display:none}.differences-table,.differences-table tbody,.differences-table tr,.differences-table td{display:block;width:100%!important}.differences-table tr{border:1px solid var(--wms-line);border-radius:13px;margin-bottom:10px;padding:8px;background:transparent!important}.differences-table td{display:grid;grid-template-columns:125px minmax(0,1fr);border:0!important;padding:6px 8px!important}.differences-table td:before{content:attr(data-label);font-weight:800;color:var(--wms-muted);font-size:10px;text-transform:uppercase}}
