*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#f5f7fb;color:#172033}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#111827,#243b55)}.login-card{width:min(430px,92vw);background:#fff;padding:32px;border-radius:20px;box-shadow:0 24px 70px #0005;text-align:center}.logo{display:grid;place-items:center;width:64px;height:64px;border-radius:17px;background:#111827;color:#fff;font-weight:900;font-size:24px;margin:0 auto 14px}.logo.sm{width:40px;height:40px;border-radius:11px;font-size:15px;margin:0}.login-card label,.dialog-card label{display:block;text-align:left;font-weight:650;margin:14px 0}.login-card input,.dialog-card input,.dialog-card select,.input{width:100%;padding:11px 12px;border:1px solid #d7ddea;border-radius:10px;background:#fff}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:750;cursor:pointer}.primary{background:#111827;color:#fff}.secondary{background:#eef1f6;color:#172033}.shell{display:grid;grid-template-columns:255px 1fr;min-height:100vh}aside{background:#111827;color:#fff;padding:20px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:0 8px 18px}.brand div{display:flex;flex-direction:column}.brand small{color:#9aa4b6}nav{display:grid;gap:4px}nav button,.aside-foot button{border:0;background:transparent;color:#c8d0dd;text-align:left;padding:11px 12px;border-radius:9px;font-size:14px;cursor:pointer}nav button.active,nav button:hover{background:#223049;color:#fff}.aside-foot{margin-top:auto;padding:14px 8px 0;border-top:1px solid #263247;display:grid;gap:3px}.aside-foot small{color:#97a2b4}.aside-foot button{padding-left:0;color:#ffb4b4}main{min-width:0}header{height:82px;background:#fff;border-bottom:1px solid #e5e9f1;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}header h1{margin:0;font-size:23px}header p{margin:4px 0 0;color:#697386}.header-actions{display:flex;gap:10px;align-items:center}.badge{padding:7px 10px;background:#e9f7ef;color:#177044;border-radius:999px;font-weight:750;font-size:12px}.content{padding:26px}.page{display:none}.page.active{display:block}.stats{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px;margin-bottom:18px}.stat,.card{background:#fff;border:1px solid #e6eaf1;border-radius:15px;box-shadow:0 3px 14px #11182708}.stat{padding:17px}.stat span{color:#788296;font-size:12px}.stat strong{display:block;font-size:24px;margin-top:7px}.card{padding:20px;margin-bottom:18px}.architecture{display:flex;gap:18px;align-items:center;justify-content:center;padding:22px;text-align:center}.architecture div{padding:15px;border:1px solid #e2e7ef;border-radius:12px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:15px}.toolbar h2,.toolbar p{margin:0}.toolbar p{margin-top:4px;color:#788296}.table-card{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:780px}th,td{padding:12px 14px;border-bottom:1px solid #edf0f5;text-align:left;font-size:13px}th{background:#f9fafc;color:#697386}.link{border:0;background:none;color:#165dcc;font-weight:700;cursor:pointer}.status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.ok{background:#e7f8ed;color:#177044}.off{background:#f3f4f6;color:#667085}.grid2{display:grid;grid-template-columns:1fr 1.5fr;gap:18px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f5}.list-item small{display:block;color:#788296;margin-top:3px}.search-row{display:grid;grid-template-columns:2fr 1fr auto;gap:10px}.results{display:grid;gap:9px;margin-top:14px}.result{padding:12px;border:1px solid #e3e8f0;border-radius:11px}.result small{display:block;color:#788296;margin-top:4px}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 20px 70px #0005}dialog::backdrop{background:#11182788}.dialog-card{width:min(530px,92vw);padding:22px}.dialog-card.wide{width:min(850px,94vw)}.dialog-card h2{margin-top:0}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.checks{display:flex;flex-wrap:wrap;gap:10px}.check{display:flex!important;align-items:center;gap:7px}.check input,.checks input{width:auto}.perm-row{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;padding:10px;border-bottom:1px solid #edf0f5}.perm-row small{color:#788296;display:block}.perm-row select{padding:8px;border:1px solid #d7ddea;border-radius:8px}fieldset{border:1px solid #e1e6ee;border-radius:11px;margin:15px 0;padding:12px}#toast{position:fixed;right:20px;bottom:20px;padding:12px 16px;background:#111827;color:#fff;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.msg{min-height:22px;color:#b42318;margin-top:10px}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{display:none}.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.architecture{flex-direction:column}.search-row{grid-template-columns:1fr}.content{padding:16px}header{padding:0 16px}}

.route-client-list{max-height:55vh;overflow:auto;margin-top:12px;border:1px solid #e1e6ee;border-radius:11px}.route-client-row{display:grid;grid-template-columns:28px 1fr 90px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf0f5}.route-client-row small{display:block;color:#788296}.route-client-row input[type=number]{width:80px;padding:8px;border:1px solid #d7ddea;border-radius:8px}

.toolbar-actions{display:flex;gap:10px;align-items:center}.toolbar-actions .input{min-width:260px}.denue-result{display:flex;justify-content:space-between;gap:14px;align-items:center}.denue-result>div{min-width:0}.denue-result .btn{flex:0 0 auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-grid label{margin:8px 0}.form-grid .span2{grid-column:1/-1}.dialog-card textarea{width:100%;padding:11px 12px;border:1px solid #d7ddea;border-radius:10px;background:#fff;font:inherit}.denue-note{background:#eef6ff;border:1px solid #cfe1fb;padding:11px 12px;border-radius:10px;margin:0 0 12px;color:#24476b}.denue-note.hidden{display:none}.result .secondary{background:#eef1f6;color:#172033}@media(max-width:700px){.toolbar-actions{width:100%;flex-direction:column;align-items:stretch}.toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions .input{min-width:0}.denue-result{align-items:stretch;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}}
.client-actions{white-space:nowrap}.btn.mini{padding:7px 10px;font-size:12px}.readonly-note{font-size:11px;color:#788296;margin-top:4px}

/* v2.0.5 · planificador de rutas por cliente/día */
.route-builder-card{width:min(1180px,96vw);padding:24px}.route-meta{margin-bottom:10px}.route-builder-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:18px 0 10px}.route-builder-title h3,.route-builder-title p{margin:0}.route-builder-title p{color:#788296;margin-top:4px}.route-builder-title strong{color:#177044;background:#e7f8ed;padding:7px 10px;border-radius:999px;white-space:nowrap}.route-picker-head,.route-picker-row{display:grid;grid-template-columns:38px minmax(260px,1fr) repeat(7,52px);gap:7px;align-items:center}.route-picker-head{padding:9px 11px;color:#788296;font-size:11px;font-weight:800;text-align:center}.route-picker-head span:nth-child(2){text-align:left}.route-picker-list{max-height:48vh;overflow:auto;border:1px solid #e1e6ee;border-radius:12px}.route-picker-row{padding:9px 11px;border-bottom:1px solid #edf0f5}.route-picker-row>input{width:auto}.route-picker-row small{display:block;color:#788296;margin-top:3px}.day-box{margin:0!important;text-align:center!important}.day-box input{position:absolute;opacity:0;pointer-events:none}.day-box span{display:block;padding:7px 3px;border:1px solid #d7ddea;border-radius:8px;font-size:11px;cursor:pointer;background:#fff}.day-box input:checked+span{background:#111827;color:#fff;border-color:#111827}.route-plan-card{width:min(900px,95vw);padding:24px}.route-plan-head,.route-plan-tools{display:flex;justify-content:space-between;align-items:center;gap:14px}.route-plan-head h2,.route-plan-head p{margin:0}.route-plan-head p{color:#788296;margin-top:4px}.route-day-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.route-day-tab{border:1px solid #d7ddea;background:#fff;padding:8px 11px;border-radius:9px;font-weight:750;cursor:pointer}.route-day-tab span{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:#eef1f6;margin-left:5px;font-size:11px}.route-day-tab.active{background:#111827;color:#fff;border-color:#111827}.route-day-tab.active span{background:#ffffff22}.route-plan-summary{color:#596579}.route-plan-stops{margin-top:14px;border:1px solid #e1e6ee;border-radius:12px;overflow:hidden;max-height:50vh;overflow-y:auto}.route-stop{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:12px;border-bottom:1px solid #edf0f5;background:#fff}.route-stop-order{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#111827;color:#fff;font-weight:800}.route-stop small{display:block;color:#788296;margin-top:3px}.route-stop-actions{display:flex;gap:5px}.route-algo-note{font-size:12px;color:#788296;background:#f7f9fc;padding:10px 12px;border-radius:9px;margin-top:12px}.route-list-item{gap:12px}@media(max-width:900px){.route-picker-head{display:none}.route-picker-row{grid-template-columns:30px 1fr repeat(4,44px);align-items:start}.route-picker-row .day-box:nth-of-type(n+5){margin-top:4px!important}.route-plan-head,.route-plan-tools,.route-builder-title{align-items:stretch;flex-direction:column}.route-stop{grid-template-columns:36px 1fr}.route-stop-actions{grid-column:2}}


/* v2.0.6 · mapas, estado y score de clientes */
.map{width:100%;border:1px solid #dfe5ee;border-radius:14px;background:#eef2f7;overflow:hidden}.route-map{height:360px;margin:14px 0 16px}.client-map{height:310px}.client-map-only{height:520px}.client-location-card{margin-top:16px;padding:16px;border:1px solid #e2e7ef;border-radius:14px;background:#fbfcfe}.client-location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.client-location-head h3{margin:0}.client-location-head p{margin:4px 0 0;color:#788296;font-size:12px}.coords{display:flex;gap:18px;margin-top:8px;color:#667085;font-size:12px}.client-score-card{display:grid;grid-template-columns:160px 180px 1fr;gap:14px;align-items:end;margin-top:16px;padding:14px;border:1px solid #e2e7ef;border-radius:14px;background:#fff}.client-score-card>div span{display:block;color:#788296;font-size:12px}.client-score-card>div strong{font-size:26px}.client-score-card>div small{display:block;color:#667085}.client-score-card label{margin:0}.score-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800;background:#eef1f6}.score-a{background:#e7f8ed;color:#177044}.score-b{background:#e8f1ff;color:#1f5ca8}.score-c{background:#fff3d6;color:#8b5b00}.score-d{background:#fdeaea;color:#a33a3a}.status-filter{width:145px!important}.route-number-marker{background:#111827;color:#fff;border:2px solid #fff;border-radius:50%;width:30px!important;height:30px!important;line-height:26px;text-align:center;font-weight:900;box-shadow:0 2px 8px #0005}.leaflet-popup-content b{font-size:14px}.client-actions{white-space:nowrap}.client-actions .btn{margin:2px}.route-map-empty{display:grid;place-items:center;height:100%;color:#788296}.status.bad{background:#fdeaea;color:#a33a3a}.status.warn{background:#fff3d6;color:#8b5b00}
@media(max-width:900px){.client-score-card{grid-template-columns:1fr}.client-location-head{flex-direction:column}.route-map{height:300px}.client-map-only{height:360px}}

.client-location-marker{background:#fff;border:3px solid #111827;border-radius:50%;width:28px!important;height:28px!important;line-height:18px;text-align:center;color:#111827;font-size:16px;box-shadow:0 2px 8px #0004}


/* v2.0.11 · contraseña confirmada + centro de notificaciones */
.password-input-wrap{position:relative}.password-input-wrap input{padding-right:52px}.password-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:34px;border:0;border-radius:9px;background:#eef1f6;color:#344054;display:grid;place-items:center;cursor:pointer;font-size:16px}.password-eye:hover{background:#e3e8ef}.notification-bell{position:relative;width:44px;height:42px;border:1px solid #dfe4ec;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:19px;cursor:pointer;box-shadow:0 2px 8px #1118270a}.notification-bell:hover{background:#f8fafc}.notification-count{position:absolute;right:-5px;top:-6px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff;border:2px solid #fff;font-size:10px;font-weight:900;display:grid;place-items:center}.notification-dialog{max-width:650px}.notification-modal-title{display:flex;gap:8px;align-items:center}.notification-list{display:grid;gap:9px}.notification-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid #e4e8ef;border-radius:13px;background:#fff}.notification-item.unread{background:#f8fbff;border-color:#bfdbfe}.notification-icon{width:34px;height:34px;border-radius:10px;background:#eef4ff;display:grid;place-items:center;font-size:16px}.notification-item.high .notification-icon{background:#fff1f2}.notification-copy{min-width:0}.notification-copy strong{display:block;font-size:13px}.notification-copy p{margin:3px 0 5px;color:#596579;font-size:12px;line-height:1.4}.notification-copy small{color:#8a94a5}.notification-actions{display:flex;gap:5px;align-items:center}.notification-empty{text-align:center;color:#788296;padding:30px 15px}.notification-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#2563eb;margin-right:6px}@media(max-width:700px){.header-actions{gap:6px}.notification-bell{width:40px;height:38px}.notification-item{grid-template-columns:34px 1fr}.notification-actions{grid-column:2;justify-content:flex-start}.notification-dialog{margin:10px}}

/* v2.0.13 · cierre terminal + evaluación de atención */
.inline-form-error{padding:11px 13px;border:1px solid #fda29b;background:#fff1f3;color:#b42318;border-radius:11px;font-weight:700;font-size:13px;line-height:1.45;margin:4px 0 8px}.inline-form-error.hidden{display:none!important}
.communication-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 14px}.communication-list{display:grid;gap:10px}.communication-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid #e4e8ef;border-radius:15px;padding:15px 17px;box-shadow:0 3px 12px #10182808}.communication-card.urgent{border-left:5px solid #d92d20}.communication-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.communication-main p{margin:7px 0 8px;color:#475467;line-height:1.45}.communication-main small{color:#7b8494}.communication-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;color:#667085;font-size:12px}.communication-thread-card{max-width:900px}.communication-thread{display:grid;gap:10px;max-height:48vh;overflow:auto;padding:12px;background:#f8fafc;border:1px solid #e4e8ef;border-radius:14px;margin:12px 0}.thread-message{max-width:82%;background:#fff;border:1px solid #e4e8ef;border-radius:13px;padding:11px 13px}.thread-message.mine{justify-self:end;background:#eef4ff;border-color:#c7d7fe}.thread-message strong{display:block;font-size:12px;margin-bottom:4px}.thread-message p{margin:0 0 5px;line-height:1.45}.thread-message small{color:#98a2b3}.communication-thread-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px}.thread-status-actions{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:760px){.communication-card{grid-template-columns:1fr}.communication-side{align-items:flex-start}.communication-head{align-items:flex-start;flex-direction:column}.communication-thread-actions{align-items:stretch;flex-direction:column}.thread-message{max-width:94%}}

/* v2.0.13 · cierre terminal y evaluación */
.communication-closed-notice{border:1px solid #cbd5e1;background:#f8fafc;border-radius:16px;padding:14px 16px;margin:12px 0}.communication-closed-notice strong{font-size:1.05rem}.communication-closed-notice p{margin:6px 0 10px;color:#64748b}.communication-evaluation-view{border:1px solid #fde68a;background:#fffbeb;border-radius:16px;padding:14px 16px;margin:12px 0}.communication-evaluation-view strong{color:#92400e}.communication-evaluation-view p{margin:6px 0}.related-hint{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:12px;padding:10px 12px;margin:10px 0 14px}


/* v2.0.14 · Evidencias y adjuntos seguros en comunicación */
.evidence-picker{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border:1px dashed #b9c5d6;border-radius:14px;background:#f8fafc;font-weight:800}.evidence-picker input[type=file]{font-weight:500;max-width:100%}.evidence-picker small{font-weight:500;color:#64748b;line-height:1.35}.evidence-selected{display:flex;flex-wrap:wrap;gap:8px;min-height:0}.evidence-selected:empty{display:none}.evidence-selected span{display:inline-flex;align-items:center;gap:6px;background:#eef2f7;border:1px solid #dbe3ee;border-radius:999px;padding:6px 10px;font-size:12px;color:#334155}.message-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.attachment-chip{display:flex;align-items:center;gap:9px;border:1px solid #d9e2ef;background:#fff;border-radius:12px;padding:8px 10px;max-width:100%;box-shadow:0 1px 2px rgba(15,23,42,.04)}.thread-message.mine .attachment-chip{background:#f8fbff}.attachment-chip .attachment-icon{font-size:20px}.attachment-chip .attachment-copy{min-width:0;display:flex;flex-direction:column}.attachment-chip .attachment-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.attachment-chip .attachment-copy small{font-size:11px}.attachment-chip button{white-space:nowrap}.evidence-uploading{display:inline-flex;align-items:center;gap:8px;color:#475569;font-size:12px;font-weight:700}

/* v2.0.15 · preparación previa y reporte visible de evidencias */


/* v2.0.18 · Seguimiento / ejecución de rutas */
.route-exec-filters{display:grid;grid-template-columns:160px minmax(190px,1fr) minmax(220px,1.3fr) minmax(180px,1fr);gap:12px;margin-bottom:14px}.route-exec-filters label{margin:0;color:#667085;font-size:12px;font-weight:800}.route-exec-routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:10px;margin-bottom:14px}.route-exec-route-card{appearance:none;border:1px solid #e2e8f0;background:#fff;border-radius:15px;padding:14px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;cursor:pointer;box-shadow:0 3px 12px #10182808;color:inherit}.route-exec-route-card.active{border-color:#94a3b8;box-shadow:0 0 0 2px #e2e8f0}.route-exec-route-card strong{display:block}.route-exec-route-card span{display:block;color:#64748b;font-size:12px;margin-top:3px}.route-exec-route-progress{text-align:right}.route-exec-route-progress b{display:block;font-size:18px}.route-exec-route-progress small{color:#64748b}.route-exec-route-badges{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.route-exec-route-card>.status{position:absolute;opacity:0;pointer-events:none}.route-exec-main{padding:16px}.route-exec-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.route-exec-heading h3{margin:0}.route-exec-heading p{margin:4px 0 0;color:#64748b}.route-exec-legend{display:flex;gap:8px 12px;flex-wrap:wrap;justify-content:flex-end;font-size:11px;color:#475569}.route-exec-legend span{display:inline-flex;align-items:center;gap:5px}.route-exec-legend i{width:11px;height:11px;border-radius:50%;display:inline-block;background:#94a3b8}.route-exec-legend i.en-cliente{background:#2563eb}.route-exec-legend i.venta{background:#16a34a}.route-exec-legend i.sin-venta{background:#f59e0b}.route-exec-legend i.no-visitado{background:#dc2626}.route-exec-legend i.cobranza{background:#7c3aed}.route-exec-legend i.venta-cobranza{background:linear-gradient(135deg,#16a34a 0 50%,#7c3aed 50%)}.route-exec-stats{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:8px;margin:14px 0}.route-exec-stat{padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.route-exec-stat span{display:block;color:#64748b;font-size:11px}.route-exec-stat strong{font-size:20px}.route-exec-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:16px;align-items:start}.route-exec-map{height:560px}.route-exec-visits{display:grid;gap:9px;max-height:560px;overflow:auto;padding-right:4px}.route-exec-visit{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;border:1px solid #e2e8f0;border-left:5px solid #94a3b8;border-radius:13px;padding:11px;background:#fff}.route-exec-visit.en-cliente{border-left-color:#2563eb}.route-exec-visit.venta{border-left-color:#16a34a}.route-exec-visit.sin-venta{border-left-color:#f59e0b}.route-exec-visit.no-visitado{border-left-color:#dc2626}.route-exec-visit.cobranza{border-left-color:#7c3aed}.route-exec-visit.venta-cobranza{border-left-color:#16a34a;box-shadow:inset 4px 0 #7c3aed}.route-exec-order{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#0f172a;color:#fff;font-weight:900}.route-exec-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.route-exec-copy>small{display:block;color:#64748b;margin:3px 0 7px}.route-exec-times{display:grid;gap:3px;font-size:12px;color:#475569}.route-exec-note{font-size:12px;color:#334155;margin-top:5px}.exec-commercial{font-size:12px;margin-top:7px;padding:7px 8px;border-radius:9px}.exec-commercial.venta{background:#ecfdf3;color:#166534}.exec-commercial.cobranza{background:#f3e8ff;color:#6b21a8}.exec-pill{display:inline-flex!important;align-items:center;padding:4px 7px;border-radius:999px;font-size:10px!important;font-weight:900!important;margin:0!important;background:#eef2f7;color:#475569!important}.exec-pill.venta{background:#dcfce7;color:#166534!important}.exec-pill.sin-venta{background:#fef3c7;color:#92400e!important}.exec-pill.no-visitado{background:#fee2e2;color:#991b1b!important}.exec-pill.en-cliente{background:#dbeafe;color:#1d4ed8!important}.exec-pill.cobranza{background:#ede9fe;color:#6d28d9!important}.exec-pill.venta-cobranza{background:linear-gradient(90deg,#dcfce7,#ede9fe);color:#334155!important}.route-exec-marker-wrap{background:transparent!important;border:0!important}.route-exec-marker{width:34px;height:34px;border-radius:50% 50% 50% 5px;transform:rotate(-45deg);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 2px 8px #0005;background:#94a3b8;color:#fff;font-weight:900}.route-exec-marker::after{content:attr(data-n)}.route-exec-marker.pending{background:#94a3b8}.route-exec-marker.en-cliente{background:#2563eb}.route-exec-marker.venta{background:#16a34a}.route-exec-marker.sin-venta{background:#f59e0b}.route-exec-marker.no-visitado{background:#dc2626}.route-exec-marker.cobranza{background:#7c3aed}.route-exec-marker.venta-cobranza{background:linear-gradient(135deg,#16a34a 0 50%,#7c3aed 50%)}.route-exec-marker{font-size:0}.route-exec-marker::before{content:inherit}.route-exec-marker{line-height:1}.route-exec-marker>*{transform:rotate(45deg);font-size:12px}.route-exec-marker{font-size:12px}.route-exec-marker{display:flex;align-items:center;justify-content:center}.route-exec-marker{color:transparent}.route-exec-marker::after{content:''}.route-exec-marker{position:relative}.route-exec-marker{color:#fff}.route-exec-marker{transform:rotate(-45deg)}.route-exec-marker{--n:''}.route-exec-marker{font-size:0}.route-exec-marker::before{content:var(--n);transform:rotate(45deg);font-size:12px;color:#fff}.route-exec-marker-wrap .route-exec-marker{--n:attr(data-order)}
@media(max-width:1100px){.route-exec-filters{grid-template-columns:1fr 1fr}.route-exec-stats{grid-template-columns:repeat(4,1fr)}.route-exec-grid{grid-template-columns:1fr}.route-exec-map{height:420px}.route-exec-visits{max-height:none}}
@media(max-width:700px){.route-exec-filters{grid-template-columns:1fr}.route-exec-heading{flex-direction:column}.route-exec-legend{justify-content:flex-start}.route-exec-stats{grid-template-columns:repeat(2,1fr)}.route-exec-map{height:330px}}

/* marker fix v2.0.18 */
.route-exec-marker{width:34px!important;height:34px!important;border-radius:50% 50% 50% 5px!important;transform:rotate(-45deg)!important;display:grid!important;place-items:center!important;border:3px solid #fff!important;box-shadow:0 2px 8px #0005!important;color:#fff!important;font-size:12px!important;line-height:1!important;position:relative!important}
.route-exec-marker b{transform:rotate(45deg)!important;color:#fff!important;font-size:12px!important;line-height:1!important}
.route-exec-marker::before,.route-exec-marker::after{content:none!important}

/* v2.0.20 · Justificación obligatoria y trazabilidad reforzada de calificación */
.route-rating-panel{border:1px solid #dbe3ef;border-radius:16px;background:#fff;margin:0 0 16px;padding:16px}.route-rating-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.route-rating-kicker{display:block;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.route-rating-head h3{margin:2px 0 4px}.route-rating-head p{margin:0;color:#64748b;font-size:12px;max-width:720px}.route-rating-scores{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.route-rating-score{min-width:135px;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px;background:#f8fafc}.route-rating-score small,.route-rating-score span{display:block;color:#64748b}.route-rating-score strong{font-size:28px;line-height:1}.route-rating-score.excellent{background:#ecfdf3;border-color:#bbf7d0}.route-rating-score.good{background:#eff6ff;border-color:#bfdbfe}.route-rating-score.attention{background:#fffbeb;border-color:#fde68a}.route-rating-score.review{background:#fff1f2;border-color:#fecdd3}.route-rating-score.current{box-shadow:inset 0 0 0 2px #11182712}.route-rating-breakdown{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;margin-top:14px}.route-rating-rule{border:1px solid #edf2f7;border-radius:11px;padding:9px 10px}.route-rating-rule>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#475569}.route-rating-rule b{white-space:nowrap;color:#0f172a}.route-rating-bar{height:6px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:7px}.route-rating-bar i{display:block;height:100%;background:linear-gradient(90deg,#10b981,#3b82f6);border-radius:999px}.route-rating-adjusted{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f8fafc;border-left:4px solid #0f172a}.route-rating-adjusted strong,.route-rating-adjusted span{display:block}.route-rating-adjusted span{font-size:11px;color:#64748b;margin-top:2px}.route-rating-adjusted p{margin:5px 0 0;font-size:12px;color:#334155}.route-rating-edit{display:grid;grid-template-columns:180px minmax(260px,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid #e5e7eb}.route-rating-edit label{font-size:11px;color:#64748b;font-weight:800;margin:0}.route-rating-edit textarea{min-height:72px;resize:vertical}.route-rating-actions{display:flex;gap:8px;flex-wrap:wrap;align-self:end;padding-bottom:1px}.route-rating-history{margin-top:12px;border-top:1px solid #e5e7eb;padding-top:10px}.route-rating-history summary{cursor:pointer;font-weight:800;color:#334155}.route-rating-history>div{display:grid;gap:7px;margin-top:8px}.route-rating-history article{padding:8px 10px;border-radius:10px;background:#f8fafc}.route-rating-history article strong,.route-rating-history article span{display:block}.route-rating-history article span{font-size:11px;color:#64748b}.route-rating-history article p{font-size:12px;margin:3px 0 0}.route-rating-warning{display:flex;gap:10px;flex-direction:column;padding:11px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa}.route-rating-warning span{color:#9a3412;font-size:12px}.route-rating-mini{display:inline-flex;margin-top:4px;padding:3px 6px;border-radius:999px;font-style:normal;font-size:10px;font-weight:900}.route-rating-mini.excellent{background:#dcfce7;color:#166534}.route-rating-mini.good{background:#dbeafe;color:#1d4ed8}.route-rating-mini.attention{background:#fef3c7;color:#92400e}.route-rating-mini.review{background:#fee2e2;color:#991b1b}
@media(max-width:1100px){.route-rating-breakdown{grid-template-columns:repeat(2,minmax(180px,1fr))}.route-rating-edit{grid-template-columns:160px 1fr}.route-rating-actions{grid-column:1/-1}}
@media(max-width:700px){.route-rating-panel{padding:12px}.route-rating-head{flex-direction:column}.route-rating-scores{justify-content:flex-start;width:100%}.route-rating-score{flex:1;min-width:125px}.route-rating-breakdown{grid-template-columns:1fr}.route-rating-edit{grid-template-columns:1fr}.route-rating-actions{grid-column:auto}.route-rating-actions .btn{width:100%}}

/* v2.0.22 · Zona horaria operativa Tepic + ruta por calles + calificaciones */
.route-exec-road-status{margin-top:8px;padding:8px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:12px;font-weight:750;min-height:34px}.route-exec-road-status.ok{background:#ecfdf3;border-color:#bbf7d0;color:#166534}.route-exec-road-status.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.route-exec-road-status.muted{color:#64748b}.visit-rating-box{margin-top:9px;padding:9px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:10px}.visit-rating-box>div{min-width:0}.visit-rating-box strong,.visit-rating-box span,.visit-rating-box small{display:block}.visit-rating-box strong{font-size:11px;color:#334155}.visit-rating-box span{font-size:11px;color:#64748b;margin-top:2px}.visit-rating-box small{font-size:11px;color:#475569;margin-top:3px}.visit-rating-box.unavailable{display:block;color:#9a3412;background:#fff7ed;border-color:#fed7aa}.visit-rating-stars{display:flex!important;gap:1px;margin:3px 0 0!important}.visit-rating-stars i{font-style:normal;color:#cbd5e1;font-size:15px}.visit-rating-stars i.on{color:#f59e0b}.visit-rating-open{flex:0 0 auto}.visit-rating-dialog{width:min(560px,92vw)}.visit-rating-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.visit-rating-dialog-head h2,.visit-rating-dialog-head p{margin:0}.visit-rating-dialog-head p{margin-top:4px;color:#64748b;font-size:12px}.visit-rating-picker{display:flex;gap:7px;margin:18px 0 8px}.visit-star{border:0;background:#eef2f7;color:#cbd5e1;width:46px;height:46px;border-radius:11px;font-size:27px;cursor:pointer}.visit-star.active{background:#fff7ed;color:#f59e0b}.visit-star:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.visit-rating-history{margin-top:10px}.visit-rating-history details{border-top:1px solid #e5e7eb;padding-top:8px}.visit-rating-history summary{cursor:pointer;font-weight:800;color:#334155}.visit-rating-history article{margin-top:7px;padding:8px 10px;border-radius:9px;background:#f8fafc}.visit-rating-history article strong,.visit-rating-history article span{display:block}.visit-rating-history article span{font-size:11px;color:#64748b}.visit-rating-history article p{margin:3px 0 0;font-size:12px;color:#334155}
@media(max-width:700px){.visit-rating-box{align-items:stretch;flex-direction:column}.visit-rating-open{width:100%}.visit-rating-picker{justify-content:center}.visit-star{width:44px;height:44px}}

/* v2.0.23 · Maestro central de artículos */
#page-articulos .table-card{overflow:auto}#adminArticleDialog small{display:block;color:#64748b;margin-top:4px}
/* v2.0.27 · Artículos V2 */
.article-dialog-card{max-width:920px}.article-dialog-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}.article-dialog-head h2,.article-dialog-head p{margin:0}.article-dialog-head p{margin-top:4px;color:#64748b;font-size:12px}.article-code-list{display:flex;gap:4px;align-items:center;flex-wrap:wrap;max-width:220px}.article-code-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#334155;font-size:10px;font-weight:800;max-width:140px;overflow:hidden;text-overflow:ellipsis}.article-source-note{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f;font-size:12px}.article-source-note.hidden{display:none}.public-catalog-dialog{max-width:920px}.public-catalog-search{display:grid;grid-template-columns:230px minmax(240px,1fr) auto;gap:9px;align-items:end}.public-catalog-search input,.public-catalog-search select{padding:11px 12px;border:1px solid #d7ddea;border-radius:10px;background:#fff;font:inherit}.public-catalog-license{margin:10px 0;padding:9px 11px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px}.public-catalog-results{display:grid;gap:8px;max-height:470px;overflow:auto}.public-catalog-item{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #e2e8f0;border-radius:12px;padding:9px;background:#fff}.public-catalog-item strong,.public-catalog-item span,.public-catalog-item small{display:block}.public-catalog-item span{color:#475569;font-size:12px;margin-top:2px}.public-catalog-item small{color:#64748b;margin-top:3px}.public-catalog-thumb{width:52px;height:52px;border-radius:9px;background:#f1f5f9;display:grid;place-items:center;overflow:hidden}.public-catalog-thumb img{width:100%;height:100%;object-fit:contain}.article-rule-card{border-left:4px solid #0f172a}@media(max-width:760px){.article-dialog-head{flex-direction:column}.public-catalog-search{grid-template-columns:1fr}.public-catalog-item{grid-template-columns:48px minmax(0,1fr)}.public-catalog-item .btn{grid-column:2;justify-self:start}}

.public-catalog-status{margin:-2px 0 10px;padding:8px 10px;border-radius:9px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f;font-size:12px}.public-catalog-status.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.public-catalog-status.hidden{display:none}
/* v2.0.28 final · filtros de catálogo público */
.public-catalog-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(150px,.8fr) auto;gap:9px;align-items:end;margin:10px 0}.public-catalog-filters label{margin:0;color:#475569;font-size:11px;font-weight:800}.public-catalog-filters select{width:100%;margin-top:5px;padding:9px 10px;border:1px solid #d7ddea;border-radius:10px;background:#fff;font:inherit}.public-catalog-clear{white-space:nowrap;height:39px}.public-catalog-filter-summary{margin:-1px 0 9px;color:#475569;font-size:11px;font-weight:750}.public-catalog-filter-summary.hidden{display:none}@media(max-width:900px){.public-catalog-filters{grid-template-columns:1fr 1fr}.public-catalog-clear{width:100%}}@media(max-width:600px){.public-catalog-filters{grid-template-columns:1fr}}

/* v2.0.29 · Importación pública segura: SKU interno, normalización y revisión */
.public-import-review-dialog{max-width:980px}.public-import-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start}.public-import-preview{display:grid;gap:12px}.public-import-image{height:190px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;display:grid;place-items:center;color:#94a3b8;font-size:52px;overflow:hidden}.public-import-image img{width:100%;height:100%;object-fit:contain}.public-import-origin{padding:10px 12px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc}.public-import-origin span,.public-import-origin strong,.public-import-origin small{display:block}.public-import-origin span{color:#64748b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.public-import-origin strong{margin-top:3px;font-size:12px}.public-import-origin small{margin-top:3px;color:#64748b;font-size:10px}.public-import-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.public-import-source-grid>div{padding:9px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;min-width:0}.public-import-source-grid span,.public-import-source-grid strong{display:block}.public-import-source-grid span{color:#64748b;font-size:10px;font-weight:800}.public-import-source-grid strong{font-size:12px;margin-top:3px;overflow-wrap:anywhere}.public-import-edit-grid{border-top:1px solid #e5e7eb;padding-top:6px}.public-import-sku-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.public-import-sku-row .btn{height:40px;white-space:nowrap}.public-import-inventory-note{align-self:end;padding:9px 10px;border-radius:10px;background:#ecfdf3;border:1px solid #bbf7d0;min-height:64px}.public-import-inventory-note b,.public-import-inventory-note span{display:block}.public-import-inventory-note b{color:#166534;font-size:12px}.public-import-inventory-note span{margin-top:3px;color:#475569;font-size:10px}.public-import-options{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0}.public-import-options label{margin:0;font-size:11px}.public-import-footnote{margin-top:12px;padding:9px 11px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f;font-size:11px}.public-import-warning{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px}.public-import-warning.hidden{display:none}@media(max-width:780px){.public-import-layout{grid-template-columns:1fr}.public-import-preview{grid-template-columns:120px 1fr;align-items:start}.public-import-image{height:120px}.public-import-source-grid{grid-template-columns:1fr}.public-import-options{flex-direction:column;gap:7px}}

/* v2.0.30 · normalización segura de artículos importados */
.article-dialog-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.field-warning{display:block;color:#b45309;font-weight:700;margin-top:6px}.article-normalize-warn{color:#b45309!important;font-weight:800}.article-dialog-card select#adminArticleCategory{width:100%}


/* v2.0.32 · Importación inicial asistida / lote seguro */
.public-catalog-bulkbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;margin:10px 0;border:1px solid #bfdbfe;background:#eff6ff;border-radius:14px}.public-catalog-bulkbar .check{margin:0}.public-catalog-bulkbar strong{margin-right:auto}.public-catalog-selectable{grid-template-columns:34px 64px minmax(0,1fr) auto!important}.public-catalog-check{display:flex;align-items:center;justify-content:center}.public-catalog-check input{width:20px;height:20px;accent-color:#0f766e}.public-catalog-item.existing{background:#f8fafc}.public-existing-chip{display:inline-flex;margin-top:6px;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-style:normal;font-weight:800;font-size:12px}.public-bulk-dialog{max-width:1120px}.public-bulk-settings{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr 1fr;gap:12px;margin:12px 0}.public-bulk-settings label{font-weight:800;color:#334155}.public-bulk-settings input,.public-bulk-settings select{width:100%;margin-top:6px}.public-bulk-options{display:flex;gap:18px;flex-wrap:wrap;padding:12px 14px;border:1px solid #dbe4ee;background:#f8fafc;border-radius:14px}.public-bulk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px}.public-bulk-head span{color:#64748b;font-size:13px}.public-bulk-list{display:flex;flex-direction:column;gap:10px;max-height:52vh;overflow:auto;padding-right:4px}.public-bulk-item{display:grid;grid-template-columns:54px minmax(0,1fr) 180px auto;gap:12px;align-items:center;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px;background:#fff}.public-bulk-thumb{width:50px;height:50px;border-radius:10px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;overflow:hidden}.public-bulk-thumb img{width:100%;height:100%;object-fit:contain}.public-bulk-main{min-width:0}.public-bulk-main strong,.public-bulk-main span,.public-bulk-main small{display:block}.public-bulk-main span,.public-bulk-main small{color:#64748b}.public-bulk-plan{text-align:right}.public-bulk-plan b,.public-bulk-plan span{display:block}.public-bulk-plan b{color:#0f172a}.public-bulk-plan span{color:#0f766e;font-size:13px;font-weight:700}.public-bulk-result{margin-top:12px;border-radius:12px;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:12px 14px}.public-bulk-result small{display:block;margin-top:6px;color:#9f1239}.public-bulk-result.hidden{display:none!important}@media(max-width:900px){.public-bulk-settings{grid-template-columns:1fr 1fr}.public-bulk-item{grid-template-columns:48px minmax(0,1fr);}.public-bulk-plan{text-align:left;grid-column:2}.public-bulk-item>button{grid-column:2;justify-self:start}}@media(max-width:600px){.public-bulk-settings{grid-template-columns:1fr}.public-catalog-selectable{grid-template-columns:28px 54px minmax(0,1fr)!important}.public-catalog-selectable>button{grid-column:3}.public-bulk-options{display:grid}.public-bulk-head{align-items:flex-start;flex-direction:column}}

/* v2.0.33 · selección masiva explícita y estable */
.public-catalog-bulkbar #publicCatalogSelectedCount{white-space:nowrap}


/* v2.0.34 · clasificación pública robusta y revisión masiva segura */
.public-bulk-category-summary{margin:.65rem 0 .35rem;padding:.65rem .8rem;border-radius:12px;background:#eef7ff;color:#24415f;font-weight:700}
.public-bulk-category-warning{margin:.35rem 0 .7rem;padding:.7rem .85rem;border:1px solid #f2c46d;border-radius:12px;background:#fff7e6;color:#7a4b00;font-weight:700}
.public-bulk-item.category-warning{border-color:#f2c46d;background:#fffaf0}

/* v2.0.35 · control de calidad previo a importación masiva */
.public-bulk-quality-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:.45rem 0 .6rem}.public-bulk-quality-summary.hidden{display:none}.public-quality-metric{border:1px solid #dbe4ee;border-radius:12px;padding:10px 12px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:10px}.public-quality-metric span{font-size:12px;color:#475569;font-weight:800}.public-quality-metric b{font-size:20px}.public-quality-metric.ready{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.public-quality-metric.review{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.public-quality-metric.score{background:#eff6ff;border-color:#bfdbfe;color:#1e3a5f}.public-bulk-quality-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.public-bulk-quality-toolbar .btn.active{background:#0f172a;color:#fff;border-color:#0f172a}.public-bulk-item.quality-review{border-left:5px solid #f59e0b}.public-bulk-item.quality-ready{border-left:5px solid #10b981}.public-quality-chip{display:inline-flex!important;margin-top:7px;padding:4px 8px;border-radius:999px;font-size:11px!important;font-style:normal;font-weight:900;width:max-content;margin-left:auto}.public-quality-chip.ready{background:#dcfce7;color:#166534}.public-quality-chip.review{background:#ffedd5;color:#9a3412}.public-quality-issues{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.public-quality-issues span{display:inline-flex!important;padding:3px 7px;border-radius:999px;background:#fff7ed;color:#9a3412!important;border:1px solid #fed7aa;font-size:10px!important;font-weight:800}.public-quality-issues span.critical{background:#fef2f2;color:#b91c1c!important;border-color:#fecaca}.hidden{display:none!important}@media(max-width:760px){.public-bulk-quality-summary{grid-template-columns:1fr}.public-bulk-quality-toolbar{display:grid}.public-bulk-quality-toolbar .btn{width:100%}.public-quality-chip{margin-left:0}}

/* v2.0.39 · Inventario operativo + Kardex */
.inventory-toolbar{align-items:flex-end}.inventory-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 16px}.inventory-stat{background:#fff;border:1px solid #dce3ee;border-radius:18px;padding:18px 20px;box-shadow:0 10px 26px #14213d0a}.inventory-stat span{display:block;color:#64748b;font-weight:700;margin-bottom:8px}.inventory-stat strong{font-size:28px;color:#101827}.inventory-stat.danger strong{color:#b42318}.inventory-stat.warn strong{color:#b76e00}.inventory-stat.value strong{color:#1769d2}.inventory-filters{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:12px;align-items:center;padding:14px;margin-bottom:16px}.inventory-table-card table{min-width:1050px}.inventory-qty{font-size:17px}.inventory-status{display:inline-flex;padding:6px 10px;border-radius:999px;font-weight:800;font-size:12px;white-space:nowrap}.inventory-status.available{background:#e8f8ee;color:#087443}.inventory-status.low{background:#fff5d9;color:#9a6200}.inventory-status.out{background:#ffe9e8;color:#b42318}.inventory-row-actions{white-space:nowrap}.inventory-row-actions .link{display:block;margin:3px 0}.inventory-rule-card{padding:18px 20px}.inventory-rule-card p{margin:0 0 6px}.inventory-rule-card small{color:#64748b}.inventory-movement-dialog{max-width:760px}.inventory-movement-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#f7f9fc;border:1px solid #dce3ee;border-radius:14px;padding:14px;margin-top:16px}.inventory-movement-preview div{display:flex;flex-direction:column;gap:4px}.inventory-movement-preview span{font-size:12px;color:#64748b;font-weight:700}.inventory-movement-preview b{font-size:20px}.inventory-movement-preview .invalid b,.inventory-movement-preview p{color:#b42318}.inventory-movement-preview p{grid-column:1/-1;margin:0;font-weight:700}.inventory-kardex-dialog{max-width:1180px}.inventory-kardex-filters{display:grid;grid-template-columns:150px 150px 210px 1fr auto;gap:10px;align-items:end;margin:8px 0 14px}.inventory-kardex-filters label{font-weight:700}.inventory-kardex-filters input,.inventory-kardex-filters select{width:100%;box-sizing:border-box;margin-top:5px}.inventory-kardex-summary{display:flex;gap:24px;flex-wrap:wrap;background:#eef6ff;border:1px solid #cfe1ff;border-radius:12px;padding:11px 14px;margin-bottom:12px}.inventory-kardex-table{max-height:460px;overflow:auto;border:1px solid #e3e8f0;border-radius:14px}.inventory-kardex-table table{min-width:1050px}.inventory-positive{color:#087443}.inventory-negative{color:#b42318}.inventory-move-type{display:inline-flex;border-radius:999px;padding:4px 8px;background:#eef2f7;font-size:11px;font-weight:800}.inventory-move-type.entrada_manual,.inventory-move-type.alta_inicial{background:#e8f8ee;color:#087443}.inventory-move-type.salida_manual,.inventory-move-type.venta{background:#ffe9e8;color:#b42318}.inventory-move-type.ajuste_manual{background:#fff5d9;color:#9a6200}@media(max-width:900px){.inventory-stats{grid-template-columns:repeat(2,1fr)}.inventory-filters{grid-template-columns:1fr}.inventory-kardex-filters{grid-template-columns:1fr 1fr}.inventory-kardex-filters label:nth-child(4),.inventory-kardex-filters button{grid-column:1/-1}}
