:root{
  --bg:#F4F2EC; --surface:#FFFFFF; --ink:#191B22; --ink-2:#22242E;
  --text:#23262E; --muted:#7A8090; --border:#E9E6DD;
  --accent:#FF5A3C; --accent-dark:#E8421F; --accent-soft:#FFE7E0;
  --green:#15924D; --green-soft:#DBF3E4;
  --amber:#C77A06; --amber-soft:#FBEFCF;
  --red:#D8362B;   --red-soft:#FBE0DD;
  --blue:#2563EB;  --blue-soft:#E3ECFE;
  --shadow:0 1px 2px rgba(20,22,30,.04), 0 8px 24px rgba(20,22,30,.06);
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Hanken Grotesk',system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
.hidden{display:none !important}

.brand-mark{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:28px;letter-spacing:-.02em;color:var(--ink)}
.brand-mark span{color:var(--accent)}
.brand-mark.small{font-size:22px;color:#fff;margin-bottom:24px}
.brand-mark.small span{color:var(--accent)}

/* LOGIN */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(1200px 600px at 80% -10%, var(--accent-soft), transparent 60%),
  radial-gradient(900px 500px at -10% 110%, #E6EEFE, transparent 55%), var(--bg);padding:24px}
.login-card{width:380px;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:38px 34px;box-shadow:var(--shadow)}
.login-sub{color:var(--muted);margin:6px 0 26px;font-size:14px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.field input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;font-size:15px;font-family:inherit;background:#FBFAF7;transition:.15s}
.field input:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}
.login-error{color:var(--red);font-size:13px;margin-top:12px;min-height:18px;font-weight:600}

.btn-primary{width:100%;padding:13px;border:none;border-radius:12px;cursor:pointer;background:var(--accent);color:#fff;font-weight:700;font-size:15px;font-family:inherit;transition:.15s;box-shadow:0 6px 16px rgba(255,90,60,.28)}
.btn-primary:hover{background:var(--accent-dark);transform:translateY(-1px)}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--muted);padding:9px 12px;border-radius:10px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;width:100%;transition:.15s}
.btn-ghost:hover{color:var(--ink);border-color:var(--muted)}

/* SHELL */
.app{display:flex;min-height:100vh}
.sidebar{width:264px;flex-shrink:0;background:var(--ink);color:#C9CCD6;padding:26px 18px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;overflow-y:auto}
.nav{display:flex;flex-direction:column;gap:4px}
.nav-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:none;color:#B7BBC6;font-family:inherit;font-size:14.5px;font-weight:600;padding:11px 13px;border-radius:11px;cursor:pointer;transition:.15s}
.nav-item .ni{font-size:16px;width:20px;text-align:center}
.nav-item:hover{background:#23262F;color:#fff}
.nav-item.active{background:var(--accent);color:#fff;box-shadow:0 6px 14px rgba(255,90,60,.25)}
.side-block{display:flex;flex-direction:column;gap:9px}
.side-title{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#6E7384;margin-bottom:2px}
.chk{display:flex;align-items:center;gap:9px;font-size:14px;color:#D6D9E1;cursor:pointer}
.chk input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.side-foot .btn-ghost{border-color:#33363F;color:#9CA1AE}
.side-foot .btn-ghost:hover{color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{padding:6px 13px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;background:#262932;color:#9CA1AE;border:1px solid #2F323C;transition:.15s}
.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}

/* MAIN */
.main{flex:1;padding:30px 38px 60px;max-width:1140px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}
.topbar h1{font-family:'Bricolage Grotesque',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.topbar .sub{color:var(--muted);font-size:14px;margin-top:2px}
.top-right{display:flex;align-items:center;gap:12px}
.search{padding:10px 14px;border:1px solid var(--border);border-radius:11px;font-family:inherit;font-size:14px;background:#fff;width:230px;transition:.15s}
.search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.badge-source{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--blue-soft);color:var(--blue);white-space:nowrap}
.badge-source.mock{background:var(--amber-soft);color:var(--amber)}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.kpi.k-green::after{background:var(--green)} .kpi.k-red::after{background:var(--red)} .kpi.k-blue::after{background:var(--blue)}
.kpi .v{font-family:'Bricolage Grotesque',sans-serif;font-size:27px;font-weight:800;color:var(--ink);line-height:1}
.kpi .l{font-size:12.5px;color:var(--muted);margin-top:6px;font-weight:600}

/* TIPS / cartelitos */
.tips{display:flex;flex-direction:column;gap:9px;margin-bottom:22px}
.tip{display:flex;align-items:flex-start;gap:10px;padding:12px 15px;border-radius:13px;font-size:14px;font-weight:500;line-height:1.4}
.tip .ti{font-size:16px;line-height:1.3}
.tip.t-red{background:var(--red-soft);color:#7e1a13}
.tip.t-amber{background:var(--amber-soft);color:#6e4503}
.tip.t-blue{background:var(--blue-soft);color:#14306e}
.tip.t-green{background:var(--green-soft);color:#0c4f29}
.tip b{font-weight:700}

/* SECTIONS */
.content{display:flex;flex-direction:column;gap:20px}
.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.section-head{display:flex;align-items:center;gap:10px;padding:17px 22px;border-bottom:1px solid var(--border)}
.section-head h2{font-family:'Bricolage Grotesque',sans-serif;font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.section-head .count{font-size:12px;font-weight:700;background:var(--accent-soft);color:var(--accent-dark);padding:3px 10px;border-radius:999px}
.section-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-dark);font-size:16px}
.section-body{padding:6px 22px 16px}
.empty{padding:26px;color:var(--muted);font-size:14px;text-align:center}

.row{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid #F1EFE9}
.row:last-child{border-bottom:none}
.row .grow{flex:1;min-width:0}
.name{font-weight:700;color:var(--ink);font-size:15px}
.meta{color:var(--muted);font-size:13px;margin-top:2px}
.amount{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;color:var(--ink);font-size:15px;white-space:nowrap}
.prod{font-size:12.5px;color:#55596a;margin-top:5px}
.prod b{color:var(--ink);font-weight:600}

.tag{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.tag.green{background:var(--green-soft);color:var(--green)}
.tag.amber{background:var(--amber-soft);color:var(--amber)}
.tag.red{background:var(--red-soft);color:var(--red)}
.tag.gray{background:#EEECE6;color:var(--muted)}
.tag.blue{background:var(--blue-soft);color:var(--blue)}
.tag.imp{background:#EAE4FB;color:#5B3FB0} .tag.nac{background:var(--green-soft);color:var(--green)} .tag.otro{background:#EEECE6;color:var(--muted)}
.tag.blanco{background:#EEF1F5;color:#3a4356;border:1px solid #DfE3EA}
.tag.negro{background:#2A2D36;color:#fff}

.days-pill{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.days-pill.hot{color:var(--red)}
.cont-badge{background:var(--ink);color:#fff;padding:2px 10px;border-radius:7px;font-size:12px;font-weight:700}

.obs-btn{background:none;border:1px solid var(--border);border-radius:9px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit;white-space:nowrap}
.obs-btn:hover{border-color:var(--accent);color:var(--accent)}
.obs-btn.has{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-dark)}
.obs-note{font-size:12.5px;color:var(--accent-dark);background:var(--accent-soft);padding:5px 10px;border-radius:8px;margin-top:6px;display:inline-block}

/* debt client card */
.client-debt{padding:14px 4px;border-bottom:1px solid #F1EFE9}
.client-debt:last-child{border-bottom:none}
.cd-head{display:flex;align-items:center;gap:12px}
.cd-totals{display:flex;gap:14px;margin:7px 0 4px;flex-wrap:wrap}
.cd-totals span{font-size:12.5px;color:var(--muted)}
.cd-totals b{font-family:'Bricolage Grotesque',sans-serif;color:var(--ink)}
.cd-docs{margin-top:8px;padding-left:4px;display:flex;flex-direction:column;gap:7px}
.cd-doc{display:flex;align-items:center;gap:10px;font-size:13px}
.cd-doc .di{flex:1;min-width:0}
.cd-doc .dn{font-weight:600;color:var(--ink-2)}
.cd-doc .dm{color:var(--muted);font-size:12px}

.cont-group{margin-bottom:6px}
.cont-group h3{font-size:14px;font-weight:700;color:var(--ink);margin:14px 0 6px;display:flex;align-items:center;gap:8px}

/* modal */
.modal-wrap{position:fixed;inset:0;background:rgba(20,22,30,.45);display:grid;place-items:center;z-index:50}
.modal{background:#fff;border-radius:18px;padding:26px;width:440px;max-width:92vw;box-shadow:var(--shadow)}
.modal h3{font-family:'Bricolage Grotesque',sans-serif;font-size:20px;color:var(--ink)}
.modal-client{color:var(--accent-dark);font-weight:700;margin:4px 0 14px}
.modal textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:12px;font-family:inherit;font-size:14px;resize:vertical;background:#FBFAF7}
.modal textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.modal-hint{font-size:12px;color:var(--muted);margin:8px 0 16px}
.modal-actions{display:flex;gap:10px;justify-content:flex-end}
.modal-actions .btn-primary,.modal-actions .btn-ghost{width:auto;padding:10px 18px}

@media(max-width:880px){.kpis{grid-template-columns:repeat(2,1fr)}.app{flex-direction:column}.sidebar{width:100%;height:auto;position:relative}.search{width:160px}}

/* v3: tipos, articulos colapsables, anomalia, resumen deuda */
.tag.nac{background:var(--green-soft);color:var(--green)}
.tag.imp{background:#EAE4FB;color:#5B3FB0}
.tag.mix{background:var(--amber-soft);color:var(--amber)}
.tag.otro{background:#EEECE6;color:var(--muted)}
.tag.warn{background:#FFE2C2;color:#B4540A}

.expand{cursor:pointer;display:flex;align-items:center;gap:7px}
.chev{font-size:11px;color:var(--muted);transition:transform .15s;flex-shrink:0}
.expand.open .chev{transform:rotate(90deg)}
.prod-wrap{display:none;margin-top:8px;padding:10px 12px;background:#FAF8F3;border:1px solid var(--border);border-radius:10px}
.prod-wrap.open{display:block}
.pl{display:flex;align-items:center;gap:9px;font-size:13px;padding:3px 0;color:#3a4356}
.pl b{color:var(--ink);font-weight:700;margin-left:auto}
.pcode{font-family:'Bricolage Grotesque',sans-serif;font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px}
.pcode.imp{background:#EAE4FB;color:#5B3FB0} .pcode.nac{background:var(--green-soft);color:var(--green)}
.inv-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}

.modal-wide{width:560px}
.debt-sheet{background:#fff;border-radius:14px;padding:22px;border:1px solid var(--border)}
.ds-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:14px}
.ds-head .dsb{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:18px;color:var(--ink)}
.ds-head .dst{font-size:18px;font-weight:800;color:var(--ink)}
.ds-client{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:2px}
.ds-date{font-size:12px;color:var(--muted)}
.ds-tot{display:flex;gap:16px;margin:12px 0;flex-wrap:wrap}
.ds-tot div{font-size:13px;color:var(--muted)}
.ds-tot b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:17px;color:var(--ink)}
.ds-tot .big b{color:var(--red);font-size:22px}
.ds-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:8px}
.ds-table th{text-align:left;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border)}
.ds-table td{padding:6px 8px;border-bottom:1px solid #F1EFE9}
.ds-table td.r,.ds-table th.r{text-align:right}
.ds-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}
.ds-dot.red{background:var(--red)} .ds-dot.yellow{background:var(--amber)} .ds-dot.green{background:var(--green)} .ds-dot.gray{background:var(--muted)}

/* v4: historico anual + prioridad + pagos */
.histo{font-size:12.5px;color:#2563EB;margin-top:5px;font-weight:600}
.star{margin-right:3px}

/* v5: ventanita rotativa de pagos */
.rotator{background:linear-gradient(135deg,#191B22,#2A2D38);border-radius:14px;padding:18px 20px;margin:6px 0 16px;color:#fff;box-shadow:var(--shadow)}
.rot-inner{display:flex;align-items:center;gap:16px;min-height:46px}
.rot-method{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px}
.rot-method.blue{background:var(--blue-soft);color:var(--blue)} .rot-method.nac{background:var(--green-soft);color:var(--green)}
.rot-main{flex:1;min-width:0}
.rot-client{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:17px}
.rot-sub{font-size:12.5px;color:#A9ADB8;margin-top:2px}
.rot-amt{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;text-align:right;white-space:nowrap}
.rot-saldo{font-size:11.5px;color:#9CA1AE;font-weight:600}
.rot-dots{display:flex;gap:6px;justify-content:center;margin-top:12px}
.rot-dots .dot{width:7px;height:7px;border-radius:50%;background:#44485422}
.rot-dots .dot{background:#4B4F5B} .rot-dots .dot.on{background:var(--accent)}

/* v6: badge sin conexion */
.badge-source.err{background:var(--red-soft);color:var(--red)}

/* v7: recorridos (acordeon) */
.deliv-day{border:1px solid var(--border);border-radius:13px;margin-bottom:12px;overflow:hidden}
.deliv-head{display:flex;align-items:center;gap:11px;padding:13px 16px;cursor:pointer;background:#FAF8F3}
.deliv-head:hover{background:#F3F0E8}
.deliv-head .chev{font-size:11px;color:var(--muted);transition:transform .15s}
.deliv-day:not(.closed) .deliv-head .chev{transform:rotate(90deg)}
.deliv-day.closed .deliv-body{display:none}
.dh-main{flex:1;min-width:0}
.dh-main b{font-family:'Bricolage Grotesque',sans-serif;font-size:15px;color:var(--ink);text-transform:capitalize}
.dh-sub{font-size:12.5px;color:var(--muted);margin-left:8px}
.cobrar-txt{color:var(--red);font-weight:700}
.dh-xls{width:auto !important;padding:6px 11px !important;font-size:12px}
.deliv-body{padding:4px 16px 10px}
.deliv-transp{margin:12px 0 4px}

/* v9: proximo a salir */
.up-wrap{background:#FBFAF7;border:1px solid var(--border);border-radius:13px;padding:14px 16px;margin-bottom:16px}
.up-title{font-weight:700;color:var(--ink);font-size:14px;margin-bottom:10px}
.up-route{margin-bottom:10px}
.up-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.up-stop{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2);padding:3px 0 3px 4px}
.up-stop.done{color:var(--muted)}
.up-dot{font-weight:700;color:var(--amber)}
.up-stop.done .up-dot{color:var(--green)}

/* v10: cliente con pedidos anidados en Recorridos */
.ord-list{padding-left:4px}
.ord-item{border-left:2px solid var(--border);margin:6px 0 6px 6px;padding-left:10px}
.ord-exp{display:flex;align-items:center;gap:8px;cursor:pointer;padding:3px 0}
.ord-line{font-size:13.5px;color:var(--ink-2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ord-amt{color:var(--muted);font-weight:600}
.ord-item .prod-wrap{margin-left:2px}

/* v12: histórico anual por año */
.histo-sub{font-size:12px;color:var(--muted);margin-top:2px}

/* v13: quién hizo el recorrido */
.doer{font-size:12.5px;font-weight:600;margin:2px 0 6px;padding:4px 8px;border-radius:8px;display:inline-block}
.doer-alert{background:#FDECEC;color:var(--red)}
.doer-ok{background:#EAF6EE;color:var(--green)}

/* v14: resumen deuda - vencido grande */
.ds-vto{background:#FDECEC;border-radius:12px;padding:14px 16px;margin:10px 0}
.ds-vto-lbl{font-size:12.5px;color:var(--red);font-weight:600}
.ds-vto-big{font-size:30px;font-weight:800;color:var(--red);line-height:1.1;margin-top:2px}
.cd-totals .vto b{color:var(--red)}

/* v15: chip de contenedor */
.tag.cont{background:#EEE9FF;color:#5B3FC4;font-weight:700}

/* v20: barra de tickers (siempre visible, compacta) */
.ticker-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}
.tk{background:var(--card,#fff);border:1px solid var(--border,#e7e7ee);border-radius:12px;padding:8px 12px;min-width:0;overflow:hidden}
.tk-h{display:block;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted,#8a8a99);margin-bottom:2px}
.tk-pay .tk-h{color:#1B9E5A}.tk-inv .tk-h{color:#2F6FED}.tk-del .tk-h{color:#7A57D1}
.tk-win{position:relative;height:34px}
.tk-item{position:absolute;inset:0;display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s;pointer-events:none}
.tk-item.on{opacity:1;transform:none}
.tk-cli{flex:1;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-amt{font-size:13px;font-weight:800}
.tk-dt{font-size:11px;color:var(--muted,#8a8a99)}
@media(max-width:720px){.ticker-bar{grid-template-columns:1fr}.tk-win{height:30px}}

/* chips recorridos */
.tag.exp{background:#E9F2FF;color:#2F6FED;font-weight:700}
.route-badge{display:inline-block;background:#1d1f27;color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:8px}
.deliv-transp{margin:12px 0 6px}

/* ===== Página armar recorrido (rol router / David) ===== */
.router-mode .nav, .router-mode #filter-block, .router-mode #seller-block,
.router-mode .kpis, .router-mode .tips, .router-mode .ticker-bar,
.router-mode #content, .router-mode .top-right { display:none !important; }
.route-builder{max-width:1100px}
.rb-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.rb-head h2{margin:0 0 6px;font-family:'Bricolage Grotesque',sans-serif}
.rb-meta{display:flex;gap:14px;flex-wrap:wrap}
.rb-meta label{font-size:12px;color:var(--muted,#8a8a99);display:flex;flex-direction:column;gap:3px}
.rb-meta input{padding:7px 9px;border:1px solid var(--border,#e7e7ee);border-radius:8px;font-size:14px}
.rb-actions{display:flex;gap:8px}
.rb-search{position:relative;margin-bottom:14px}
.rb-search>input{width:100%;padding:13px 15px;border:2px solid var(--accent,#2F6FED);border-radius:12px;font-size:15px}
.rb-suggest{position:absolute;z-index:20;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid var(--border,#e7e7ee);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.12);overflow:hidden;max-height:320px;overflow-y:auto}
.rb-sug-item{display:flex;gap:10px;align-items:center;padding:10px 14px;cursor:pointer}
.rb-sug-item:hover,.rb-sug-item:first-child{background:#F3F6FF}
.rb-sug-num{font-weight:700;color:var(--muted,#8a8a99);font-size:13px;min-width:54px}
.rb-sug-name{font-weight:600}.rb-sug-fant{color:var(--muted,#8a8a99);font-weight:400}
.rb-sug-empty{padding:12px 14px;color:var(--muted,#8a8a99)}
.rb-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.rb-sum-card{background:var(--card,#fff);border:1px solid var(--border,#e7e7ee);border-radius:12px;padding:8px 14px;display:flex;flex-direction:column;min-width:110px}
.rb-sum-card span{font-size:11px;color:var(--muted,#8a8a99);font-weight:600}
.rb-sum-card b{font-size:18px;font-weight:800}
.rb-sum-card.vto b{color:var(--red,#E0344B)}
.rb-list{display:flex;flex-direction:column;gap:12px}
.rb-card{background:var(--card,#fff);border:1px solid var(--border,#e7e7ee);border-radius:14px;padding:14px}
.rb-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.rb-pos{width:26px;height:26px;border-radius:50%;background:#1d1f27;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.rb-name{flex:1;min-width:180px;font-size:15px;font-weight:700;border:none;border-bottom:1px dashed transparent;padding:4px 2px}
.rb-name:focus{outline:none;border-bottom-color:var(--accent,#2F6FED)}
.rb-del{margin-left:auto;background:none;border:none;color:var(--muted,#8a8a99);font-size:16px;cursor:pointer;padding:4px 8px}
.rb-del:hover{color:var(--red,#E0344B)}
.rb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rb-f{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted,#8a8a99);font-weight:600}
.rb-f.rb-wide{grid-column:span 3}
.rb-f input,.rb-f select{padding:8px 10px;border:1px solid var(--border,#e7e7ee);border-radius:8px;font-size:14px;color:var(--text,#1d1f27);font-weight:500}
.rb-conts{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border,#e7e7ee);font-size:12px}
.rb-conts-h{color:var(--muted,#8a8a99);font-weight:600;margin-right:6px}
.rb-cont{display:inline-flex;align-items:center;gap:5px;margin-right:12px;cursor:pointer}
.rb-cont-amt{color:var(--muted,#8a8a99)}
.exporting .rb-del,.exporting .rb-actions{visibility:hidden}
@media(max-width:760px){.rb-grid{grid-template-columns:1fr}.rb-f.rb-wide{grid-column:span 1}}

/* ===== Mapa de clientes (route builder) ===== */
.rb-map-overlay{position:fixed;inset:0;z-index:200;background:#fff;display:flex;flex-direction:column}
.rb-map-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border,#e7e7ee)}
.rb-map-info{color:var(--muted,#8a8a99);font-size:13px;font-weight:500}
.rb-map-count{color:var(--muted,#8a8a99);font-size:13px;margin-right:10px}
.rb-map{flex:1;min-height:0}
.rb-map-preview{max-height:170px;overflow-y:auto;border-top:1px solid var(--border,#e7e7ee);padding:10px 18px;background:#fafafb}
.rb-prev-empty{color:var(--muted,#8a8a99);font-size:13px}
.rb-prev-h{font-weight:700;font-size:13px;margin-bottom:6px}
.rb-prev-item{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:3px 0}
.rb-prev-item button{background:none;border:none;color:var(--muted,#8a8a99);cursor:pointer}
.rb-prev-item button:hover{color:var(--red,#E0344B)}
.rb-pin{background:#2F6FED;color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.rb-pin.on{background:#1B9E5A}
.rb-pop{min-width:180px}.rb-pop-a{color:#666;font-size:12px;margin:2px 0}
.rb-pop-amt{font-weight:700;font-size:12px;margin:4px 0}
.rb-pop-btn{width:100%;padding:7px;border:none;border-radius:8px;background:#2F6FED;color:#fff;font-weight:700;cursor:pointer}

/* letra vendedor en route builder */
.rb-vletter{width:22px;height:22px;border-radius:6px;background:#1d1f27;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}
/* Cobranzas */
.rb-cob{margin-top:22px;border-top:2px solid var(--border,#e7e7ee);padding-top:14px}
.rb-cob.cob-off{opacity:.45}
.rb-cob-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.rb-cob-head h3{margin:0;font-family:'Bricolage Grotesque',sans-serif}
.rb-cob-grid{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.rb-cob-box{background:var(--card,#fff);border:1px solid var(--border,#e7e7ee);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;min-width:160px}
.rb-cob-box span{font-size:11px;color:var(--muted,#8a8a99);font-weight:600}
.rb-cob-box b{font-size:19px;font-weight:800}
.rb-cob-box.hi{background:#F3F6FF;border-color:#cdddff}
.rb-cob-box.hi.vto{background:#FDECEC;border-color:#f6c9cf}.rb-cob-box.hi.vto b{color:var(--red,#E0344B)}
.rb-cob-table{width:100%;border-collapse:collapse;font-size:13px;max-width:520px}
.rb-cob-table th,.rb-cob-table td{padding:6px 10px;border-bottom:1px solid var(--border,#eee);text-align:left}
.rb-cob-table .r{text-align:right}

/* ===== Impresión A4 horizontal para el chofer ===== */
.rb-print{display:none}
@media print{
  @page{size:A4 landscape;margin:8mm}
  /* Mostrar SOLO la hoja del recorrido. Usamos display:none (no visibility) para que el
     resto NO ocupe alto y no salgan hojas en blanco de más. */
  body.printing .sidebar{display:none !important}
  body.printing .main{padding:0 !important;max-width:none !important}
  body.printing .main > *:not(#rb-print){display:none !important}
  body.printing #rb-print{display:block;position:static;left:auto;top:auto;width:100%}
  body.printing{background:#fff}
  .rbp-table{width:100%;border-collapse:collapse;font-size:10.5px;font-family:sans-serif}
  .rbp-table th,.rbp-table td{border:1px solid #999;padding:3px 5px;text-align:left}
  .rbp-table th{background:#222;color:#fff}
  .rbp-table .r{text-align:right}.rbp-table .c{text-align:center}
  .rbp-table tfoot td{background:#eee}
  .rbp-cob{margin-top:10px;font-size:11px;font-family:sans-serif}
}

/* PNG del recorrido: misma tabla compacta que la impresión, renderizada fuera de pantalla */
.rb-print.png-render{display:block;position:fixed;left:-12000px;top:0;width:1400px;background:#fff;padding:22px}
.rb-print.png-render h2{font-family:sans-serif;margin:0 0 10px}
.rb-print.png-render .rbp-table{width:100%;border-collapse:collapse;font-size:12px;font-family:sans-serif}
.rb-print.png-render .rbp-table th,.rb-print.png-render .rbp-table td{border:1px solid #999;padding:4px 7px;text-align:left}
.rb-print.png-render .rbp-table th{background:#222;color:#fff}
.rb-print.png-render .rbp-table .r{text-align:right}.rb-print.png-render .rbp-table .c{text-align:center}
.rb-print.png-render .rbp-table tfoot td{background:#eee}
.rb-print.png-render .rbp-cob{margin-top:12px;font-size:12px;font-family:sans-serif}

/* ============ Exportación del recorrido (PNG / impresión) — estilos lindos ============ */
.rb-print{display:none}
.rb-print.png-render{display:block;position:fixed;left:-13000px;top:0;width:1300px}
.rbx-sheet{width:1300px;background:#fff;color:#15171e;padding:18px 20px;font-family:'Inter',system-ui,sans-serif;box-sizing:border-box}
.rbx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:3px solid #15171e;padding-bottom:9px;margin-bottom:11px}
.rbx-title{display:flex;flex-direction:column;gap:2px}
.rbx-route{font-size:30px;font-weight:800;letter-spacing:-.02em}
.rbx-date{font-size:15px;color:#6b7280;font-weight:600}
.rbx-kpis{display:flex;gap:10px}
.rbx-kpi{background:#f3f4f6;border-radius:12px;padding:8px 14px;display:flex;flex-direction:column;min-width:92px}
.rbx-kpi span{font-size:11px;color:#6b7280;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.rbx-kpi b{font-size:18px;font-weight:800}
.rbx-kpi.red{background:#fdeaec}.rbx-kpi.red b{color:#d92c43}
.vchip{display:inline-flex;width:20px;height:20px;border-radius:5px;background:#15171e;color:#fff;align-items:center;justify-content:center;font-weight:800;font-size:11px;vertical-align:middle}
.abadge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}
.abadge.ent{background:#e7f0ff;color:#2563eb}.abadge.cob{background:#fde9c8;color:#b45309}.abadge.exp{background:#ede9fe;color:#6d28d9}
.d30{background:#d92c43;color:#fff;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:800}
.rbx-sheet .red{color:#d92c43}
.rbx-cob{margin-top:18px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:12px 16px;font-size:14px}

/* Tabla pro (compacta: entran más clientes por hoja, con línea entre cliente y cliente) */
.rbx-table{width:100%;border-collapse:collapse;font-size:12px}
.rbx-table th{background:#15171e;color:#fff;padding:6px 9px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.02em;border:1px solid #15171e}
.rbx-table td{padding:5px 9px;border-bottom:1.5px solid #b9bec6;border-top:0;vertical-align:top;line-height:1.25}
.rbx-table tbody tr:nth-child(even){background:#fafbfc}
.rbx-table tr.warn{background:#fdeaec !important}
.rbx-table .sub{font-size:11px;color:#6b7280;margin-top:1px}
.rbx-table .c{text-align:center}.rbx-table .r{text-align:right;font-variant-numeric:tabular-nums}
.rbx-table .chk{width:24px}.rbx-table td.chk:before{content:"☐";font-size:16px;color:#9ca3af}
.rbx-table tfoot td{background:#15171e;color:#fff;font-weight:800;padding:6px 9px}

/* Tarjetas */
.rbx-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.rbx-card{border:1px solid #e5e7eb;border-left:6px solid #2563eb;border-radius:12px;padding:12px 14px}
.rbx-card.cob{border-left-color:#b45309}.rbx-card.exp{border-left-color:#6d28d9}
.rbx-card.warn{background:#fdeaec;border-color:#f5c2c9}
.rbx-cardtop{display:flex;align-items:center;gap:9px}
.rbx-pos{width:26px;height:26px;border-radius:50%;background:#15171e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:0 0 auto}
.rbx-cname{font-size:16px;font-weight:800;flex:1}
.rbx-cardsub{font-size:12.5px;color:#6b7280;margin:5px 0 8px}
.rbx-cardrow{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.rbx-tag{background:#f3f4f6;border-radius:20px;padding:2px 9px;font-size:12px;font-weight:600;color:#374151}
.rbx-cardamts{display:flex;gap:14px;font-size:13.5px;border-top:1px dashed #e5e7eb;padding-top:8px}
.rbx-cardamts b{font-weight:800}

/* Checklist chofer: hoja angosta tipo A4 VERTICAL, checks apilados a la derecha del cliente */
.rbx-sheet.rbx-checklist{width:820px;margin:0 auto}
.rbx-check{display:flex;flex-direction:column;gap:0}
.rbx-crow{display:flex;gap:10px;align-items:flex-start;padding:9px 4px;border-bottom:1.5px solid #b9bec6}
.rbx-crow.warn{background:#fdeaec}
.rbx-cnum{width:28px;height:28px;border-radius:8px;background:#15171e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}
.rbx-cmain{flex:1;min-width:0}
.rbx-cline{font-size:14.5px}.rbx-cid{color:#6b7280;font-weight:600}
.rbx-hora{background:#eef2ff;color:#4338ca;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:700}
.rbx-camt{font-size:13px;margin-top:2px;color:#374151}
/* checks VERTICALES (uno debajo del otro) a la derecha, con casilla grande para tildar */
.rbx-cboxes{display:flex;flex-direction:column;gap:4px;flex:0 0 auto;font-size:13px;color:#15171e;font-weight:700;white-space:nowrap;text-align:left}
.rbx-cboxes span{padding:1px 0}
/* impresión del checklist: usa todo el ancho del A4 vertical y oculta los KPIs del header */
@media print{
  body.printing-portrait .rbx-sheet.rbx-checklist{width:100% !important;margin:0}
  body.printing-portrait .rbx-checklist .rbx-kpis{display:none}
  body.printing-portrait .rbx-crow{page-break-inside:avoid}
}
.rb-style-sel{padding:8px 10px;border:1px solid var(--border,#e7e7ee);border-radius:8px;font-size:13px;background:#fff}

@media print{
  .rbx-sheet{width:100%;padding:0}
  .rbx-route{font-size:18px}
  .rbx-head{margin-bottom:8px;padding-bottom:7px}
  .rbx-kpi{padding:5px 9px;min-width:0}
  .rbx-kpi b{font-size:14px}
  .rbx-table{font-size:10px}
  .rbx-table th{padding:4px 6px}
  .rbx-table td{padding:3px 6px}
  .rbx-table tr{page-break-inside:avoid}      /* no cortar un cliente entre dos hojas */
  .rbx-cards{grid-template-columns:repeat(3,1fr)}
  .rbx-card,.rbx-crow{page-break-inside:avoid}
}
.rb-ver{font-size:12px;font-weight:700;color:#fff;background:#1B9E5A;border-radius:6px;padding:2px 8px;vertical-align:middle;margin-left:8px}
/* línea de transporte + dirección */
.rb-transp-note{margin-top:8px;font-size:13px;color:#374151;background:#f6f4ff;border:1px solid #e6e0ff;border-radius:8px;padding:6px 10px}
.rb-transp-miss{color:#9ca3af;font-style:italic}
.rbx-transp{margin:2px 0 8px;font-size:12.5px;color:#4b5563;background:#f6f4ff;border-radius:8px;padding:5px 9px}
/* reordenar paradas */
.rb-move{display:inline-flex;flex-direction:column;gap:2px;margin-right:4px}
.rb-move button{width:22px;height:16px;line-height:1;padding:0;border:1px solid var(--border,#e7e7ee);background:#fff;border-radius:5px;cursor:pointer;font-size:9px;color:#444}
.rb-move button:hover:not(:disabled){background:#f0f0f5}
.rb-move button:disabled{opacity:.3;cursor:default}
.rb-f-tag{background:#ede9fe;color:#6d28d9;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700;margin-left:4px}
/* direcciones en export */
.rbx-addr-ent{font-size:12.5px;color:#15171e;margin-top:2px}
.rbx-addr-fis{font-size:11.5px;color:#9ca3af;margin-top:1px}
.rbx-cardsub{margin-bottom:2px}

/* pines del mapa por tipo */
.rb-pin--entrega{background:#2F6FED}
.rb-pin--entrega_deuda{background:#E8820C}
.rb-pin--cobranza{background:#E0344B}
.rb-pin--transporte{background:#6d28d9}
.rb-pin.on{background:#1B9E5A !important}
/* leyenda */
.rb-legend{display:inline-flex;align-items:center;gap:6px;margin-left:12px;font-size:11px;color:#555;flex-wrap:wrap}
.rb-legend .lg{width:11px;height:11px;border-radius:3px;display:inline-block;margin-left:8px;border:1px solid #fff;box-shadow:0 0 0 1px #ccc}
.lg-entrega{background:#2F6FED}.lg-entrega_deuda{background:#E8820C}.lg-cobranza{background:#E0344B}.lg-transporte{background:#6d28d9}
/* popup */
.rb-pop-venc{color:#E0344B;font-weight:700;margin-top:3px}
.rb-pop-solo{color:#E8820C;font-weight:700;margin-top:3px}
.rb-pop-transp{color:#6d28d9;font-size:11px;margin-top:2px}
/* horario 2 rangos */
.rb-horas{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.rb-horas input[type=time]{width:auto;min-width:0;flex:0 1 95px}
.rb-h-sep{color:#9ca3af;font-size:12px}
/* pedidos en tarjeta */
.rb-pedidos{margin-top:8px;font-size:12.5px;color:#374151;background:#fef9ec;border:1px solid #f5e6bf;border-radius:8px;padding:6px 10px}
.rb-ped-d{color:#6b7280;font-size:11.5px}
.rb-ped-mod{margin-top:5px;padding-top:5px;border-top:1px dashed #e3d6ad;font-size:11.5px;color:#8a6d3b}
body.dark .rb-ped-mod{color:#c9b070;border-top-color:#5a4a25}

/* ===== CIE — vista "Hoy" (mobile-first) ===== */
.cie-brief{background:linear-gradient(135deg,#fff,#fdf2f8);border:1px solid #f3d3e6;border-radius:14px;padding:14px 16px;margin-bottom:14px}
body.dark .cie-brief{background:linear-gradient(135deg,#1a1d26,#241a22);border-color:#3a2733}
.cie-brief-hi{font-size:17px;font-weight:800;color:#1a1a1a}
body.dark .cie-brief-hi{color:#f0f2f6}
.cie-brief-money{font-size:14px;margin-top:3px;color:#374151}
body.dark .cie-brief-money{color:#c9cedb}
.cie-brief-money b{color:#e6007e;font-size:16px}
.cie-est{font-size:11px;color:#9ca3af;font-weight:500}
.cie-brief-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cie-brief-reco{margin-top:12px;border-top:1px solid #f0d8e6;padding-top:9px}
body.dark .cie-brief-reco{border-top-color:#3a2733}
.cie-brief-reco-h{font-size:12.5px;font-weight:700;color:#6b7280;margin-bottom:4px}
.cie-brief-reco ol{margin:0;padding-left:6px;list-style:none}
.cie-brief-reco li{font-size:13.5px;padding:3px 0;color:#1a1a1a}
body.dark .cie-brief-reco li{color:#e4e7ee}
.cie-chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:#eef0f4;color:#374151;white-space:nowrap}
.cie-chip.sm{font-size:10.5px;padding:1px 7px}
.cie-chip.red{background:#fde7ea;color:#c01933}.cie-chip.amber{background:#fef3cd;color:#8a6d18}
.cie-chip.blue{background:#e3eefe;color:#1d5bbf}.cie-chip.violet{background:#efe6fb;color:#6a35b8}
.cie-chip.green{background:#e2f6e9;color:#1f8a4c}.cie-chip.gray{background:#eef0f4;color:#5b6373}
.cie-chip.teal{background:#dff4f2;color:#0f766e}.cie-sigi.teal{background:#dff4f2}
body.dark .cie-chip.red{background:#3a1f25;color:#f3a6b2}body.dark .cie-chip.amber{background:#352c12;color:#e6cd7a}
body.dark .cie-chip.blue{background:#16263e;color:#94bbf0}body.dark .cie-chip.violet{background:#281a3b;color:#c2a3ee}
body.dark .cie-chip.green{background:#14301f;color:#8fd9aa}body.dark .cie-chip.gray{background:#23262e;color:#aab1bf}
body.dark .cie-chip.teal{background:#12302d;color:#7ad4c9}body.dark .cie-sigi.teal{background:#12302d}
/* P8: bloque "se vencen estos días" del briefing */
.cie-brief-prox{margin-top:10px;padding:9px 11px;border:1px dashed #7ad4c9;border-radius:10px;font-size:12.5px}
.cie-brief-prox-h{font-weight:800;color:#0f766e;margin-bottom:4px}
.cie-brief-prox ul{margin:0;padding-left:16px}
.cie-brief-prox li{margin:2px 0;cursor:pointer}
.cie-brief-prox li:hover{text-decoration:underline}
body.dark .cie-brief-prox{border-color:#2a5a54}
body.dark .cie-brief-prox-h{color:#7ad4c9}
.cie-list{display:flex;flex-direction:column;gap:9px}
.cie-row{border:1px solid #e9ebf0;border-radius:12px;background:#fff;overflow:hidden}
body.dark .cie-row{background:#1a1d24;border-color:#2a2e38}
.cie-row.exp{border-color:#e6007e;box-shadow:0 2px 10px rgba(230,0,126,.08)}
.cie-row-main{padding:12px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cie-row-top{display:flex;align-items:center;gap:8px}
.cie-name{font-weight:700;font-size:14.5px;color:#1a1a1a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.dark .cie-name{color:#eef0f5}
.cie-exp{color:#b9c0cc;font-size:16px;transition:transform .15s}
.cie-row.exp .cie-exp{transform:rotate(180deg)}
.cie-row-why{font-size:13px;color:#4b5563;margin-top:5px;line-height:1.3}
body.dark .cie-row-why{color:#aeb6c4}
.cie-row-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:8px}
.cie-opp{font-size:12.5px;color:#374151}.cie-opp b{color:#1f8a4c}
body.dark .cie-opp{color:#c2c8d4}body.dark .cie-opp b{color:#7fd3a0}
.cie-score{font-size:12px;font-weight:800;color:#fff;background:#e6007e;border-radius:8px;padding:2px 9px;min-width:30px;text-align:center}
.cie-row-det{max-height:0;overflow:hidden;transition:max-height .2s}
.cie-row-det.open{max-height:600px;border-top:1px solid #eef0f4}
body.dark .cie-row-det.open{border-top-color:#2a2e38}
.cie-det-in{padding:11px 14px 14px;background:#fbfbfd}
body.dark .cie-det-in{background:#15181f}
.cie-det-prod{font-size:13px;color:#1a1a1a;margin-bottom:8px}
body.dark .cie-det-prod{color:#e4e7ee}
.cie-det-h{font-size:11.5px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px}
.cie-sigs{margin:0;padding-left:16px}
.cie-sigs li{font-size:12.5px;color:#374151;padding:2px 0;line-height:1.35}
body.dark .cie-sigs li{color:#aeb6c4}
.cie-sig-t{font-weight:700;color:#e6007e}
.cie-det-meta{margin-top:9px;font-size:11.5px;color:#9ca3af}
/* v109: score con etiqueta, oportunidad con fundamento, mini-resumen, acciones rápidas */
.cie-scorebox{margin-left:auto;font-size:13px;font-weight:800;color:#fff;border-radius:9px;padding:3px 9px;min-width:34px;text-align:center}
.cie-scorebox.sc-hi{background:#1f8a4c}.cie-scorebox.sc-mid{background:#1d5bbf}.cie-scorebox.sc-lo{background:#c08a18}.cie-scorebox.sc-min{background:#8b93a3}
.cie-label{font-size:12px;font-weight:700;margin-top:3px}
.cie-label.sc-hi-t{color:#1f8a4c}.cie-label.sc-mid-t{color:#1d5bbf}.cie-label.sc-lo-t{color:#b07d12}.cie-label.sc-min-t{color:#8b93a3}
.cie-opp-line{margin-top:9px;background:#f3fbf6;border:1px solid #d5efe0;border-radius:9px;padding:7px 10px;font-size:12.5px;color:#1a1a1a}
body.dark .cie-opp-line{background:#14241c;border-color:#1f4030}
.cie-opp-t{color:#1f8a4c;font-weight:700}.cie-opp-line b{color:#1f8a4c;font-size:14px}
.cie-opp-basis{display:block;color:#6b7280;font-size:11.5px;margin-top:2px}
body.dark .cie-opp-basis{color:#9aa3b5}
.cie-mini{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:11.5px;color:#6b7280}
body.dark .cie-mini{color:#9aa3b5}
.cie-mini-debt{color:#c01933;font-weight:700}
.cie-actions{display:flex;gap:6px;padding:0 14px 12px;flex-wrap:wrap}
.cie-act{flex:1 1 auto;min-width:86px;font-size:12px;font-weight:600;padding:8px 6px;border-radius:9px;border:1px solid #e3e6ec;background:#fff;color:#374151;cursor:pointer}
.cie-act:hover{background:#f6f7f9}
.cie-act.wsp{border-color:#cdeede;color:#1f8a4c}
.cie-act:disabled{opacity:.4;cursor:not-allowed}
body.dark .cie-act{background:#21252e;border-color:#333845;color:#c9cedb}
body.dark .cie-act:hover{background:#272c37}
.cie-sigs{margin:0;padding:0;list-style:none}
.cie-sigs li{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:#374151;padding:4px 0;line-height:1.35}
body.dark .cie-sigs li{color:#aeb6c4}
.cie-sigi{flex:0 0 auto;width:22px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;background:#eef0f4}
.cie-sigi.red{background:#fde7ea}.cie-sigi.amber{background:#fef3cd}.cie-sigi.blue{background:#e3eefe}.cie-sigi.violet{background:#efe6fb}.cie-sigi.green{background:#e2f6e9}.cie-sigi.gray{background:#eef0f4}
body.dark .cie-sigi{background:#23262e}
.cie-sig-b b{color:#1a1a1a}
body.dark .cie-sig-b b{color:#e7eaf0}
.cie-prods{margin:0;padding:0;list-style:none}
.cie-prods li{font-size:12.5px;color:#374151;padding:3px 0}
body.dark .cie-prods li{color:#aeb6c4}
.cie-row.gate{opacity:.72}
/* v111: contexto del CIE en Vender Más */
.vm-cie{background:#fbfbfd;border:1px solid #eceef3;border-radius:10px;padding:9px 11px;margin:8px 0 12px}
body.dark .vm-cie{background:#181b22;border-color:#2a2e38}
.vm-cie-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vm-cie-opp{font-size:12px;color:#1f8a4c;font-weight:700;margin-left:auto}
.vm-cie-why{font-size:12.5px;color:#4b5563;margin-top:6px}
body.dark .vm-cie-why{color:#aeb6c4}
/* v113: Commercial Assistant (pestaña Recomendaciones) */
.reco-searchbar{position:relative;margin-bottom:10px}
.reco-search{width:100%;padding:11px 14px;border:1px solid #e3e6ec;border-radius:10px;font-size:14px}
body.dark .reco-search{background:#1a1d24;border-color:#2a2e38;color:#e7eaf0}
.reco-empty,.reco-loading{padding:22px 12px;text-align:center;color:#9ca3af;font-size:13.5px}
.reco-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.reco-cli{font-size:16px;font-weight:800;color:#1a1a1a}
body.dark .reco-cli{color:#eef0f5}
.reco-resumen{display:flex;gap:11px;align-items:flex-start;background:linear-gradient(135deg,#fff,#fdf2f8);border:1px solid #f3d3e6;border-radius:12px;padding:12px 14px;margin-bottom:12px}
body.dark .reco-resumen{background:linear-gradient(135deg,#1a1d26,#241a22);border-color:#3a2733}
.reco-resumen .cie-scorebox{font-size:18px;padding:6px 12px;min-width:44px}
.reco-res-nba{margin-top:4px;font-size:13px;color:#374151}
body.dark .reco-res-nba{color:#c9cedb}
.reco-res-nba b{color:#1f8a4c}
.reco-res-why{font-size:12.5px;color:#6b7280;margin-top:5px}
body.dark .reco-res-why{color:#9aa3b5}
.reco-cart{background:#f3fbf6;border:1px solid #cfe9da;border-radius:12px;padding:11px 13px;margin-bottom:14px}
body.dark .reco-cart{background:#13241b;border-color:#1f4030}
.reco-cart-h{font-weight:800;font-size:13.5px;color:#1a1a1a;margin-bottom:7px}
body.dark .reco-cart-h{color:#e7eaf0}
.reco-cart-n{font-weight:500;font-size:12px;color:#6b7280}
.reco-cart-empty{font-size:12.5px;color:#6b7280}
.reco-cart-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid #e0efe6}
body.dark .reco-cart-row{border-top-color:#234234}
.reco-cart-name{flex:1;font-size:12.5px;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.dark .reco-cart-name{color:#dfe3ea}
.reco-cart-qty{width:54px;padding:4px 6px;border:1px solid #cfe9da;border-radius:7px;font-size:12.5px;text-align:center}
body.dark .reco-cart-qty{background:#16251d;border-color:#2a4a39;color:#e7eaf0}
.reco-cart-val{font-size:12.5px;font-weight:700;color:#1f8a4c;min-width:66px;text-align:right}
.reco-cart-x{border:none;background:none;color:#b9c0cc;cursor:pointer;font-size:13px;padding:2px 5px}
.reco-cart-foot{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid #cfe9da;font-size:13px;color:#374151}
body.dark .reco-cart-foot{border-top-color:#234234;color:#c9cedb}
.reco-cart-foot b{color:#1f8a4c;font-size:16px;margin-left:auto}
.reco-cart-foot .cie-est{margin-left:0}
.reco-sec{margin-bottom:14px}
.reco-sec-h{font-size:14px;font-weight:800;color:#1a1a1a;margin-bottom:7px}
body.dark .reco-sec-h{color:#eef0f5}
.reco-sec-sub{font-weight:400;font-size:12px;color:#9ca3af}
.reco-tier{margin-bottom:8px}
.reco-tier-h{font-size:12px;font-weight:700;color:#6a35b8;margin:6px 0 4px}
body.dark .reco-tier-h{color:#c2a3ee}
.reco-prod{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid #ebedf2;border-radius:10px;margin-bottom:7px;background:#fff}
body.dark .reco-prod{background:#1a1d24;border-color:#2a2e38}
.reco-prod-l{flex:1;min-width:0}
.reco-prod-name{font-size:13.5px;font-weight:700;color:#1a1a1a}
body.dark .reco-prod-name{color:#e7eaf0}
.reco-cod{font-size:11px;color:#9ca3af;font-weight:600}
.reco-prod-meta{font-size:11.5px;color:#6b7280;margin-top:2px}
body.dark .reco-prod-meta{color:#9aa3b5}
.reco-prod-meta b{color:#1d5bbf}
.reco-prod-why{font-size:11.5px;color:#7a8194;margin-top:3px;line-height:1.3}
.reco-pri{font-size:10px;font-weight:700;padding:1px 6px;border-radius:6px;margin-left:6px;background:#eef0f4;color:#5b6373}
.reco-pri.alta{background:#fde7ea;color:#c01933}.reco-pri.media{background:#fef3cd;color:#8a6d18}.reco-pri.baja{background:#eef0f4;color:#5b6373}
.reco-add{flex:0 0 auto;font-size:12px;font-weight:700;padding:7px 11px;border-radius:9px;border:1px solid #cdeede;background:#fff;color:#1f8a4c;cursor:pointer;white-space:nowrap}
.reco-add.in{background:#1f8a4c;color:#fff;border-color:#1f8a4c}
body.dark .reco-add{background:#15251c;border-color:#2a4a39;color:#7fd3a0}
body.dark .reco-add.in{background:#1f8a4c;color:#fff}
.reco-more-note{font-size:11.5px;color:#9ca3af;padding:3px 2px}
/* v117: foto de producto + disponibilidad ENIN/preventa (v118: thumbs más grandes y anchos) */
.reco-prod-img{flex:0 0 auto;width:72px;height:56px;border-radius:8px;object-fit:contain;background:#f4f5f8;border:1px solid #ebedf2;padding:2px}
body.dark .reco-prod-img{background:#11141a;border-color:#2a2e38}
@media (max-width:600px){.reco-prod-img{width:60px;height:48px}}
.reco-disp{font-size:11px;font-weight:700;white-space:nowrap}
.reco-disp.inmediata{color:#1f8a4c}
.reco-disp.preventa{color:#a9791b}
body.dark .reco-disp.inmediata{color:#5fc98a}
body.dark .reco-disp.preventa{color:#e0b75a}
.reco-add.preventa{border-color:#f0dcae;color:#a9791b;background:#fffaf0}
body.dark .reco-add.preventa{background:#241d10;border-color:#4a3d1f;color:#e0b75a}
.reco-pv-chip{font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:5px;background:#fef3cd;color:#8a6d18;margin-left:5px}
body.dark .reco-pv-chip{background:#332a12;color:#e0b75a}
/* v115: 🎯 perfil + ⭐ estratégico (dos rankings separados) */
.reco-sec-hi{background:#fbf7ff;border:1px solid #ece0fb;border-radius:12px;padding:11px 12px}
body.dark .reco-sec-hi{background:#1a1526;border-color:#352a4a}
.reco-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:6px;white-space:nowrap}
.reco-tag.star{background:#fef3cd;color:#8a6d18}.reco-tag.fit{background:#efe6fb;color:#6a35b8}
body.dark .reco-tag.star{background:#352c12;color:#e6cd7a}body.dark .reco-tag.fit{background:#281a3b;color:#c2a3ee}
.reco-vermas{margin-top:6px;width:100%;padding:8px;border:1px dashed #d8c8f0;background:none;color:#6a35b8;font-weight:600;font-size:12.5px;border-radius:9px;cursor:pointer}
body.dark .reco-vermas{border-color:#3d2a59;color:#c2a3ee}
/* AI Commercial Coach */
.reco-coach-btn{width:100%;padding:11px;border-radius:11px;border:1px solid #d8c8f0;background:#f3eefc;color:#5b2a9e;font-weight:800;font-size:13.5px;cursor:pointer;margin-bottom:12px}
.reco-coach-btn.on{background:#5b2a9e;color:#fff;border-color:#5b2a9e}
body.dark .reco-coach-btn{background:#231a33;border-color:#3d2a59;color:#c2a3ee}
body.dark .reco-coach-btn.on{background:#5b2a9e;color:#fff}
.reco-plan{background:#faf8fe;border:1px solid #e6dcf7;border-radius:12px;padding:13px 14px;margin-bottom:14px}
body.dark .reco-plan{background:#1b1626;border-color:#352a4a}
.cp-top{font-weight:800;font-size:14px;color:#5b2a9e;margin-bottom:8px}
body.dark .cp-top{color:#c2a3ee}
.cp-src{font-weight:500;font-size:11px;color:#9ca3af;margin-left:6px}
.cp-sec{margin:9px 0;padding-top:9px;border-top:1px solid #ece4f8}
body.dark .cp-sec{border-top-color:#2e2440}
.cp-h{font-size:12.5px;font-weight:800;color:#1a1a1a;margin-bottom:4px}
body.dark .cp-h{color:#e7eaf0}
.cp-obj{font-size:14px;font-weight:700;color:#5b2a9e}
body.dark .cp-obj{color:#c2a3ee}
.cp-txt{font-size:12.5px;color:#374151;line-height:1.45}
body.dark .cp-txt{color:#bcc3d0}
.cp-ol,.cp-ul{margin:0;padding-left:18px}
.cp-ol li,.cp-ul li{font-size:12.5px;color:#374151;line-height:1.4;padding:2px 0}
body.dark .cp-ol li,body.dark .cp-ul li{color:#bcc3d0}
.cp-objc{font-size:12.5px;margin:5px 0;color:#374151}
.cp-objc b{color:#1a1a1a}
body.dark .cp-objc{color:#bcc3d0}body.dark .cp-objc b{color:#e7eaf0}
.cp-guion{font-size:12.5px;color:#1a1a1a;background:#fff;border:1px solid #e6dcf7;border-radius:9px;padding:9px 11px;line-height:1.45;font-style:italic}
body.dark .cp-guion{background:#15111e;border-color:#352a4a;color:#dfe3ea}
.cp-copy{font-style:normal;font-size:11px;font-weight:700;color:#5b2a9e;background:none;border:none;cursor:pointer;margin-left:4px}
.cp-ped{width:100%;border-collapse:collapse;font-size:12.5px}
.cp-ped td{padding:4px 0;border-bottom:1px solid #ece4f8;color:#374151}
body.dark .cp-ped td{border-bottom-color:#2e2440;color:#bcc3d0}
.cp-ped td:nth-child(2){text-align:center;color:#6b7280;width:60px}
.cp-ped td:nth-child(3){text-align:right;font-weight:700;color:#1f8a4c;width:90px}
.cp-ped-tot td{font-weight:800;border-bottom:none}
.cp-conf{margin-top:10px;font-size:12px;padding:7px 10px;border-radius:8px}
.cp-conf-hi{background:#e2f6e9;color:#1f7a44}.cp-conf-mid{background:#fef3cd;color:#8a6d18}.cp-conf-lo{background:#f1eff0;color:#6b6b6b}
body.dark .cp-conf-hi{background:#14301f;color:#8fd9aa}body.dark .cp-conf-mid{background:#352c12;color:#e6cd7a}body.dark .cp-conf-lo{background:#23262e;color:#aab1bf}
/* popup pedidos */
.rb-pop-ped{font-size:12px;color:#374151;margin-top:3px}
/* panel contenedores que llegaron */
.rb-cont-panel{margin-top:10px;background:#fff;border:1px solid var(--border,#e7e7ee);border-radius:12px;padding:12px 14px;max-width:640px}
.rb-cont-head{font-weight:800;font-size:14px;display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.rb-cont-sub{font-weight:500;font-size:11.5px;color:#8a8a99}
.rb-cont-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.rb-cont-item{display:inline-flex;align-items:center;gap:6px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:9px;padding:6px 10px;font-weight:700;cursor:pointer}
.rb-cont-item:has(input:checked){background:#E7F6EC;border-color:#9fdfb5}
.rb-cont-state{font-size:11px;font-weight:600;color:#8a8a99}
.rb-cont-item:has(input:checked) .rb-cont-state{color:#1B9E5A}
.rb-cont-add{display:flex;gap:8px}
.rb-cont-add input{flex:0 1 200px;padding:7px 10px;border:1px solid var(--border,#e7e7ee);border-radius:8px}
.rb-cont-empty{color:#8a8a99;font-size:12.5px;margin-bottom:8px}
/* control masivo "hasta qué contenedor llegó" */
.rb-cont-massive{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:#FFF7F1;border:1px solid var(--accent-soft,#FFE7E0);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.rb-cont-massive b{font-size:13px}
.rb-cont-massive select{padding:7px 10px;border:1px solid var(--border,#e7e7ee);border-radius:8px;font-family:inherit;font-size:13px;background:#fff}
.rb-cont-hint{flex-basis:100%;font-size:11.5px;color:#6b7280;margin-top:2px}
.rb-cont-fine{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px}
.rb-cont-state.ok{color:#1B9E5A}
/* panel administración */
.admin-panel{padding:4px 2px}
.admin-panel h2{font-family:'Bricolage Grotesque',sans-serif;margin:0 0 16px}
.adm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.adm-card{background:var(--card,#fff);border:1px solid var(--border,#e7e7ee);border-radius:14px;padding:16px}
.adm-card h3{margin:0 0 8px;font-size:15px}
.adm-muted{color:#8a8a99;font-size:12.5px;margin:0 0 10px}
.adm-card.adm-danger{border-color:#f6c9cf;background:#fef6f7}
.adm-switch{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.adm-update{background:#FFF3CD;border:1px solid #f5e6bf;border-radius:10px;padding:10px;font-weight:600;display:flex;flex-direction:column;gap:8px}
.adm-ok{color:#1B9E5A;font-weight:700}
.adm-msg{margin-top:14px;font-weight:600;color:#374151}
/* Historial de recorridos */
.rb-hist{margin-top:16px;border-top:2px solid var(--border,#e7e7ee);padding-top:12px}
.rb-hist-head{font-weight:800;margin-bottom:8px;display:flex;align-items:center;gap:10px}
.rb-hist-list{display:flex;flex-direction:column;gap:6px}
.rb-hist-item{display:flex;align-items:center;gap:8px;background:var(--card,#fff);border:1px solid var(--border,#eee);border-radius:10px;padding:8px 12px}
.rb-hist-lbl{flex:1;font-size:13px;font-weight:600}
.rb-hist-empty{color:#9ca3af;font-size:13px}
.btn-xs{padding:4px 8px;font-size:12px}
.rb-hist-compare{margin-top:10px;background:var(--card,#fff);border:1px solid var(--border,#eee);border-radius:12px;padding:12px}
.rb-hist-compare-head{font-weight:800;margin-bottom:8px}
.rb-hcrow{padding:4px 0;font-size:13px;border-bottom:1px solid #f0f0f5}
.rb-hc-ok{color:#1B9E5A;font-size:12px}.rb-hc-pend{color:#E8820C;font-size:12px}
/* tipo en resumen de deuda */
.ds-tipo{font-size:10px;font-weight:800;padding:1px 6px;border-radius:6px;background:#eef;color:#3b3b6b}
.ds-tipo.nac{background:#E7F6EC;color:#1B7A43}.ds-tipo.imp{background:#FDEFE3;color:#B5630C}
.ds-tipo.mix{background:#EEF1FE;color:#3A50C0}.ds-tipo.cont{background:#F0E9FB;color:#6B3FA0}
.rb-fail-link{color:#C0392B;font-weight:700;text-decoration:underline;cursor:pointer}
.pay-more{text-align:center;padding:14px 0 4px}
.pay-more .btn-ghost{font-weight:700}
.pay-allshown{color:#9ca3af;font-size:12.5px}
/* panel de direcciones sin ubicar */
.rb-fail-panel{position:absolute;left:12px;right:12px;bottom:140px;max-height:42vh;overflow:auto;background:#fff;border:1px solid #f0c9cf;border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.18);z-index:1200;padding:12px 14px}
.rb-fail-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;position:sticky;top:0;background:#fff}
.rb-fail-head b{color:#C0392B}
.rb-fail-search{flex:1;min-width:140px;padding:6px 10px;border:1px solid var(--border,#e7e7ee);border-radius:8px}
.rb-fail-list{display:flex;flex-direction:column;gap:6px}
.rb-fail-item{border:1px solid #eee;border-radius:9px;padding:8px 10px}
.rb-fail-cli{font-size:13px}
.rb-fail-addr{font-size:12px;color:#8a8a99;margin-top:2px}
.rb-fail-tag{font-size:10px;font-weight:700;background:#F0E9FB;color:#6B3FA0;padding:1px 6px;border-radius:6px}
.rb-fail-pager{text-align:center;padding-top:10px}
.rb-fail-total{color:#9ca3af;font-size:12.5px}
.rb-fail-empty{color:#9ca3af;font-size:13px;padding:8px}
.tag.red{background:#FDE7E7;color:#C0392B}
.row.pay-pending{background:#FFF8F0;border-left:3px solid #E8820C}
.meta-abona{color:#8a8a99;font-size:11.5px}
/* buscador y filtros del mapa */
.rb-map-bar{flex-wrap:wrap;gap:10px}
.rb-map-bar-l{flex:0 0 auto}
.rb-map-search-wrap{position:relative;flex:1;min-width:200px;max-width:340px}
.rb-map-search{width:100%;padding:7px 12px;border:1px solid var(--border,#e7e7ee);border-radius:9px}
.rb-map-results{position:absolute;top:110%;left:0;right:0;background:#fff;border:1px solid var(--border,#e7e7ee);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:1300;max-height:260px;overflow:auto}
.rb-mr-item{padding:8px 12px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;font-size:13px;border-bottom:1px solid #f2f2f5}
.rb-mr-item:hover{background:#F2F6FF}
.rb-mr-on{font-size:10px;font-weight:700;background:#E7F6EC;color:#1B7A43;padding:1px 6px;border-radius:6px}
.rb-mr-no{font-size:11px;color:#C0392B}
.rb-mr-empty{padding:10px 12px;color:#9ca3af;font-size:13px}
.rb-map-filters{display:flex;gap:6px}
.rb-mf{padding:6px 12px;border:1px solid var(--border,#e7e7ee);border-radius:9px;background:#fff;font-weight:700;font-size:12.5px;cursor:pointer}
.rb-mf.active{background:#2F6FED;color:#fff;border-color:#2F6FED}
/* pago en tarjeta de recorrido */
.rb-pago{margin-top:8px;background:#E7F6EC;border:1px solid #b6e3c6;border-radius:9px;padding:7px 11px;font-weight:800;color:#1B7A43;font-size:13px}
.rb-pago-hint{font-weight:500;color:#5a9b74;font-size:11px}
/* ventas empleados */
.empleados-panel{padding:4px 2px}
.emp-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.emp-head h2{margin:0;font-family:'Bricolage Grotesque',sans-serif}
.emp-search{flex:1;min-width:180px;max-width:300px;padding:8px 12px;border:1px solid var(--border,#e7e7ee);border-radius:9px}
.emp-total{font-weight:800;color:#374151}
.emp-list{display:flex;flex-direction:column;gap:14px}
.emp-card{background:var(--card,#fff);border:1px solid var(--border,#e7e7ee);border-radius:14px;padding:14px 16px}
.emp-card-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #f0f0f5;padding-bottom:8px;margin-bottom:10px;font-size:16px}
.emp-card-total{color:#1B7A43;font-weight:800}
.emp-mes{margin-bottom:12px}
.emp-mes-h{display:flex;justify-content:space-between;font-weight:800;color:#2F6FED;font-size:13px;margin-bottom:4px}
.emp-compra{display:flex;justify-content:space-between;font-size:12.5px;color:#555;padding:2px 0 2px 10px}
.emp-mes-tot{font-weight:800;font-size:12.5px;margin-top:4px;padding-top:4px;border-top:1px dashed #ddd}
.emp-empty{color:#9ca3af;padding:12px}
.rb-pago-ch{font-weight:600;color:#5a9b74;font-size:11px;background:#d8efe0;padding:1px 6px;border-radius:6px}
.tag.pay{background:#E7F6EC;color:#1B7A43}
/* ventas empleados (por mes) */
.emp-emp{margin-bottom:14px;padding-left:6px;border-left:3px solid #e3e3ee}
.emp-emp-name{font-weight:800;font-size:14px;margin-bottom:3px}
.emp-emp-tot{font-weight:800;font-size:12.5px;margin-top:4px;padding-top:4px;border-top:1px dashed #ddd;color:#1B7A43}
/* resumen de cuenta */
.ds-sub{margin:16px 0 6px;font-size:14px}
.ds-empty{color:#9ca3af;text-align:center;padding:8px}
/* ===== Resumen de cuenta (compacto, profesional, imprimible) ===== */
.cuenta-modal{max-width:640px;width:94vw;max-height:88vh;display:flex;flex-direction:column}
.cuenta-sheet{overflow:auto;padding:22px 24px;background:#fff;font-size:13px;color:#1f2430}
.cta-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #1f2430;padding-bottom:10px;margin-bottom:12px}
.cta-brand{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;letter-spacing:.5px}
.cta-sub{color:#6b7280;font-size:12px;margin-top:2px}
.cta-meta{color:#6b7280;font-size:12px}
.cta-cli{font-size:14px;margin-bottom:12px}
.cta-resumen{display:flex;gap:10px;margin-bottom:16px}
.cta-r{flex:1;background:#f6f7f9;border:1px solid #edeef1;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.cta-r span{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.4px}
.cta-r b{font-size:16px}
.cta-saldo{background:#1f2430;color:#fff;border-color:#1f2430}
.cta-saldo span{color:#c3c8d2}
.cta-table{width:100%;border-collapse:collapse;font-size:12.5px}
.cta-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:#8a909c;border-bottom:1px solid #e6e8ec;padding:6px 8px}
.cta-table td{padding:7px 8px;border-bottom:1px solid #f2f3f5;vertical-align:top}
.cta-table .r{text-align:right}
.cta-fch{white-space:nowrap;color:#4b5563}
.cta-doc{font-weight:600}
.cta-imp{text-align:right;white-space:nowrap}
.cta-pago{font-size:11.5px;color:#4b5563;white-space:nowrap}
.cta-ok{color:#1B9E5A;font-size:11.5px}
.cta-debe{color:#9ca3af}
.cta-badge{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.cta-badge.ok{background:#E7F6EC;color:#1B7A43}
.cta-badge.debe{background:#FDE7E7;color:#C0392B}
.cta-empty{text-align:center;color:#9ca3af;padding:14px}
.cta-foot{margin-top:14px;text-align:center;color:#9ca3af;font-size:11px;border-top:1px solid #eee;padding-top:8px}
@media print{
  body.printing-cuenta *{visibility:hidden!important}
  body.printing-cuenta #cuenta-sheet, body.printing-cuenta #cuenta-sheet *{visibility:visible!important}
  body.printing-cuenta #cuenta-sheet{position:fixed;inset:0;margin:0;width:100%;max-height:none;overflow:visible;box-shadow:none}
  body.printing-cuenta .modal-actions{display:none!important}
}
.brand-logo{height:34px;width:auto;display:block}
.brand-mark.small .brand-logo{height:26px}
.cta-logo{height:30px;width:auto;display:block;margin-bottom:2px}
.cta-tipo{font-size:10px;color:#8a909c;font-weight:600;margin-top:1px}
.brand-mark.small .brand-logo{height:40px}
.brand-mark .brand-logo{height:46px}
.ds-logo{height:30px;width:auto;display:inline-block}
/* Vender más: grupos de acción */
.resell-group{display:flex;align-items:center;gap:8px;font-weight:800;font-size:13px;margin:16px 0 6px;color:#374151;border-bottom:1px solid #eee;padding-bottom:5px}
.resell-group:first-child{margin-top:4px}
.rg-count{background:#eef0f4;color:#6b7280;font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px}
.resell-more{color:#9ca3af;font-size:12px;text-align:center;padding:12px 0 4px}
.meta .late{color:#C0392B}
/* histórico QuickSoft en Vender más */
.hist-prod{font-size:12px;color:#374151;margin:4px 0 0;line-height:1.5}
.hist-drop{font-size:12px;color:#9a4a00;background:#FFF6E9;border:1px solid #f3dcb8;border-radius:8px;padding:5px 8px;margin:5px 0 0;line-height:1.5}
.hp-x{color:#9ca3af;font-size:11px}
/* panel de contenedores reutilizable */
.cont-manager{background:#F7F8FA;border:1px solid #e7e9ee;border-radius:14px;padding:14px 16px;margin-bottom:16px}
.cont-mgr-loading,.cm-empty{color:#9ca3af;font-size:13px}
.cm-head{font-weight:800;font-size:14px;margin-bottom:10px}
.cm-hint{display:block;font-weight:500;font-size:12px;color:#8a909c;margin-top:2px}
.cm-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.cm-item{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #e3e3ee;border-radius:10px;padding:7px 12px;font-size:13px;cursor:pointer}
.cm-item.on{background:#E7F6EC;border-color:#b6e3c6}
.cm-item b{font-weight:800}
.cm-state{font-size:11.5px;color:#6b7280}
.cm-item.on .cm-state{color:#1B7A43}
.cm-add{display:flex;gap:8px;align-items:center}
.cm-add input{flex:0 0 90px;padding:8px 10px;border:1px solid #e3e3ee;border-radius:9px}
/* oportunidades por contenedor */
.op-prod{border-top:1px solid #f0f0f5;padding:8px 0}
.op-prod-head{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;margin-bottom:6px}
.op-stock{font-size:11.5px;color:#2F6FED;background:#eaf1ff;padding:2px 8px;border-radius:20px;white-space:nowrap}
.op-cli{display:flex;justify-content:space-between;align-items:center;padding:5px 0 5px 10px;border-bottom:1px dashed #eee;flex-wrap:wrap;gap:4px}
.op-cli-main{font-size:13px}
.op-phone{color:#2F6FED;font-size:12px;margin-left:6px}
.op-cli-meta{font-size:11.5px;color:#6b7280}
.op-cli-meta .late{color:#C0392B}
.op-cont{margin-bottom:18px}
.op-cont-head{font-weight:800;font-size:14px;color:#374151;border-bottom:1px solid #eee;padding-bottom:6px;margin-bottom:6px}
/* coordenadas manuales en panel de fallidos */
.rb-fail-coord{display:flex;gap:8px;margin-top:6px}
.rb-ovr-input{flex:1;padding:7px 10px;border:1px solid #e3e3ee;border-radius:8px;font-size:13px}
.rb-ovr-btn{white-space:nowrap}
.rb-ovr-help{font-size:11px;color:#8a909c;margin-top:4px}
.rb-pop-manual{color:#1B7A43;font-size:12px;font-weight:700;margin:2px 0}
/* Hoja de Caja */
.caja-search-wrap{max-width:480px}
.caja-suggest{background:#fff;border:1px solid #e3e3ee;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);z-index:20;max-height:300px;overflow:auto;margin-top:4px}
.caja-sg{padding:9px 12px;cursor:pointer;font-size:14px}
.caja-sg:hover{background:#f5f6fa}
.caja-sg-empty{padding:9px 12px;color:#9ca3af}
.caja-detail{margin-top:16px}
.caja-card{background:#fff;border:1px solid #e7e9ee;border-radius:14px;padding:18px;max-width:640px}
.caja-cli-name{font-weight:800;font-size:17px;margin-bottom:14px}
.caja-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px}
.caja-grid.hidden{display:none}
.caja-card label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:#6b7280;font-weight:600}
.caja-card label input{padding:8px 10px;border:1px solid #e3e3ee;border-radius:8px;font-size:14px;color:#1a1a1a;font-weight:400}
.caja-sec-title{font-weight:800;font-size:14px;margin:14px 0 8px;display:flex;align-items:center;gap:10px}
.caja-mini{font-weight:400;font-size:11.5px;color:#9ca3af}
.caja-switch{font-size:12px;font-weight:600;color:#374151;display:inline-flex;align-items:center;gap:5px}
.caja-gen{width:100%}
.caja-btns{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.caja-btns>button{flex:1 1 200px}
.caja-pdf{white-space:nowrap}
.caja-pdf-hint{margin-top:8px;font-size:12.5px;color:#7a8194;line-height:1.35}
body.dark .caja-pdf-hint{color:#9aa3b5}
.caja-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}
.caja-reset{white-space:nowrap}
.caja-transp-info{background:#f7f8fb;border:1px solid #ebedf2;border-radius:9px;padding:10px 12px;font-size:13.5px;margin-bottom:8px}
.caja-transp-info.retira{background:#f3edfb;border-color:#e0d0f5;color:#5b2a9e;font-weight:600}
.caja-transp-info.directa{color:#6b7280}
.caja-transp-info div{font-size:12.5px;color:#6b7280;margin-top:2px}
.caja-check{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#374151;margin-top:6px;cursor:pointer}
/* Cobranza */
.cob-cfg{background:#fff;border:1px solid #e7e9ee;border-radius:12px;padding:14px 16px;margin-bottom:14px}
.cob-cfg-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}
.cob-cfg-row label{font-size:13px;color:#374151}
.cob-cfg-row input{padding:5px 8px;border:1px solid #e3e3ee;border-radius:7px}
.cob-cfg-hint{font-size:12px;color:#8a909c;margin-top:8px}
.cob-summary{background:#eaf1ff;color:#2451b8;border-radius:9px;padding:9px 13px;font-size:13.5px;margin-bottom:12px}
.cob-row{display:flex;justify-content:space-between;gap:14px;background:#fff;border:1px solid #e7e9ee;border-radius:12px;padding:13px 15px;margin-bottom:10px;flex-wrap:wrap}
.cob-row.is-due{border-color:#f5b8c8;background:#fff7fa}
.cob-cli{font-size:14.5px;margin-bottom:3px}
.cob-meta{font-size:12px;color:#6b7280}
.cob-meta .late{color:#C0392B}
.cob-rules{margin-top:3px}
.cob-rules a{color:#2F6FED;margin-left:6px}
.cob-badge{font-size:11px;padding:2px 8px;border-radius:20px;margin-left:6px;font-weight:700}
.cob-badge.due{background:#fde8ef;color:#C0392B}
.cob-badge.wait{background:#eef0f3;color:#6b7280}
.cob-badge.pause{background:#f3edfb;color:#7a3cc0}
.cob-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
/* Reactivar */
.rx-block{margin-bottom:22px}
.rx-head{font-weight:800;font-size:15px;color:#1f2937;border-bottom:2px solid #f0f0f5;padding-bottom:7px;margin-bottom:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rx-count{font-size:12px;font-weight:700;background:#eaf1ff;color:#2451b8;padding:2px 9px;border-radius:20px}
.rx-sub,.rx-head .rx-sub{font-size:12px;font-weight:400;color:#9ca3af}
.rx-cli{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#fff;border:1px solid #e7e9ee;border-radius:12px;padding:12px 15px;margin-bottom:9px;flex-wrap:wrap}
.rx-cli.done{opacity:.6;background:#f7fbf8;border-color:#cde9d6}
.rx-cli-name{font-size:14.5px;margin-bottom:3px}
.rx-ok{color:#1B7A43;font-size:12px;font-weight:700;margin-left:6px}
.rx-msg{font-size:13px;color:#374151}
.rx-msg .late{color:#C0392B}
.rx-extra{font-size:12px;color:#6b7280;margin-top:3px}
.rx-btn{white-space:nowrap}
.rx-prods{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.rx-prod{display:flex;align-items:center;gap:9px;font-size:13px;padding:5px 0;border-bottom:1px dashed #eee}
.rx-rank{font-weight:800;color:#9ca3af;width:22px;text-align:right}
.rx-pname{flex:1}
.rx-imp{font-size:10px;background:#eef2ff;color:#4f46e5;padding:1px 5px;border-radius:4px;vertical-align:middle}
.rx-pcli{font-size:11.5px;color:#9ca3af;white-space:nowrap}
.rx-tr{font-size:11.5px;font-weight:700;white-space:nowrap;width:54px;text-align:right}
.rx-tr.up{color:#1B7A43}
.rx-tr.down{color:#C0392B}
.rx-tr.flat{color:#cbd5e1}
@media(max-width:700px){.rx-prods{grid-template-columns:1fr}}
.brand-skynet{font-weight:900;font-size:26px;letter-spacing:4px;color:#e6007e;text-align:center;margin-top:1px;text-transform:uppercase;line-height:1}
.brand-mark.small .brand-skynet{font-size:20px;letter-spacing:3px}
.vm-rebuild{margin:-6px 0 12px}
.vm-rebuild span{font-size:12px;color:#6b7280}
/* Vender más - recomendaciones por cliente */
.vm-search-wrap{max-width:480px;margin-bottom:14px}
.vm-loading{padding:20px;color:#6b7280}
.vm-cli-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.vm-cli-name{font-weight:800;font-size:17px}
.vm-cli-vend{font-size:12px;color:#9ca3af;margin-left:6px}
.vm-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;align-items:center}
.vm-chip{border:1px solid #e3e3ee;background:#fff;border-radius:20px;padding:5px 12px;font-size:12.5px;cursor:pointer;color:#374151}
.vm-chip.on{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
.vm-sep{width:1px;height:20px;background:#e3e3ee;margin:0 4px}
.vm-item{background:#fff;border:1px solid #e7e9ee;border-radius:12px;padding:12px 15px;margin-bottom:9px;border-left:4px solid #e7e9ee;display:flex;align-items:center;gap:12px}
.vm-item .reco-prod-img{align-self:flex-start;margin-top:2px}
.vm-item-l{flex:1;min-width:0}
.vm-item.pri-alta{border-left-color:#C0392B}
.vm-item.pri-media{border-left-color:#E8A317}
.vm-item.pri-baja{border-left-color:#cbd5e1}
.vm-item-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.vm-cat{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:20px}
.vm-dejo{background:#fde8ef;color:#C0392B}
.vm-reponer{background:#fff4e0;color:#b46f00}
.vm-cross{background:#e8f5ee;color:#1B7A43}
.vm-estrella{background:#eef2ff;color:#4f46e5}
.vm-pri{font-size:10.5px;text-transform:uppercase;font-weight:700;letter-spacing:.5px;margin-left:auto}
.vm-pri.alta{color:#C0392B}.vm-pri.media{color:#b46f00}.vm-pri.baja{color:#9ca3af}
.vm-pname{font-weight:700;font-size:14.5px;margin-bottom:2px}
.vm-motivo{font-size:13px;color:#374151}
.vm-meta{font-size:11.5px;color:#9ca3af;margin-top:3px}
.vm-expand{width:100%;padding:10px;background:#f5f6fa;border:1px solid #e7e9ee;border-radius:10px;cursor:pointer;font-size:13px;color:#374151;margin-top:4px}
/* Vender más - código y landing */
.vm-cod{font-weight:800;color:#4f46e5;font-size:12.5px;background:#eef2ff;padding:1px 6px;border-radius:5px;margin-right:4px}
.vm-land-intro{font-size:13.5px;color:#374151;margin-bottom:14px}
.vm-land-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.vm-land-h{font-weight:800;font-size:13.5px;margin-bottom:8px;color:#1f2937}
.vm-land-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-bottom:1px dashed #eee;cursor:pointer;border-radius:6px}
.vm-land-item:hover{background:#f7f7fb}
.vm-land-cod{font-weight:800;color:#4f46e5;font-size:12px;background:#eef2ff;padding:1px 6px;border-radius:5px;min-width:48px;text-align:center}
.vm-land-name{flex:1;font-size:13px}
/* Reactivar - seguimiento y código */
.rx-code{font-weight:800;color:#6b7280;font-size:12px;background:#f0f0f5;padding:1px 6px;border-radius:5px}
.rx-followup{background:#fff8e8;border:1px solid #f0d9a0;border-radius:12px;padding:13px 15px;margin-bottom:18px}
.rx-fu-head{font-weight:800;font-size:14px;color:#92670a;margin-bottom:8px}
.rx-fu-line{font-size:13px;color:#5b4a1e;margin-bottom:8px}
.rx-fu-clis{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.rx-fu-cli{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #ecdca8;border-radius:16px;padding:3px 6px 3px 10px;font-size:12px}
.rx-fu-ok{border:none;background:#e8f5ee;color:#1B7A43;border-radius:12px;padding:2px 8px;font-size:11px;cursor:pointer;font-weight:700}
@media(max-width:700px){.vm-land-cols{grid-template-columns:1fr}}
/* Reactivar v89: estados, expand, monto caído */
.rx-resumen{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;font-weight:700;margin-bottom:12px;padding:8px 12px;background:#fafafa;border-radius:10px}
.rx-resumen .st-cont{color:#b46f00}.rx-resumen .st-ped{color:#1B7A43}.rx-resumen .st-no{color:#C0392B}.rx-resumen .st-pend{color:#9ca3af}
.rx-cli{background:#fff;border:1px solid #e7e9ee;border-radius:12px;margin-bottom:10px;border-left:4px solid #e7e9ee;overflow:hidden}
.rx-cli.st-card-contactado{border-left-color:#E8A317}
.rx-cli.st-card-pedido{border-left-color:#1B7A43;background:#f7fbf8}
.rx-cli.st-card-no_interesado{border-left-color:#C0392B;opacity:.72}
.rx-cli-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 15px;cursor:pointer}
.rx-cli-head:hover{background:#fafbfc}
.rx-cli-name{font-size:14.5px;margin-bottom:3px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rx-badge{font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px}
.rx-badge.st-pend{background:#f0f0f5;color:#9ca3af}
.rx-badge.st-cont{background:#fff4e0;color:#b46f00}
.rx-badge.st-ped{background:#e8f5ee;color:#1B7A43}
.rx-badge.st-no{background:#fde8ef;color:#C0392B}
.rx-msg{font-size:13px;color:#374151}
.rx-msg .late{color:#C0392B}
.rx-caido{font-size:12.5px;color:#92670a;font-weight:700;margin-top:4px}
.rx-extra{font-size:12px;color:#6b7280;margin-top:3px}
.rx-chevron{color:#bbb;font-size:12px;padding-top:3px}
.rx-detail{padding:4px 15px 14px;border-top:1px dashed #eee;background:#fcfcfd}
.rx-detail-h{font-weight:700;font-size:12.5px;color:#555;margin:10px 0 6px}
.rx-drop-row{display:flex;align-items:center;gap:9px;padding:5px 0;border-bottom:1px dashed #f0f0f0;font-size:12.5px}
.rx-drop-cod{font-weight:800;color:#4f46e5;font-size:11.5px;background:#eef2ff;padding:1px 6px;border-radius:5px;min-width:46px;text-align:center}
.rx-drop-name{flex:1}
.rx-drop-meta{color:#9ca3af;font-size:11.5px;white-space:nowrap}
.rx-drop-meta b{color:#C0392B}
.rx-vermas{margin-top:10px;width:100%;padding:9px;background:#eef2ff;border:1px solid #dfe4ff;border-radius:9px;color:#4f46e5;font-weight:700;font-size:12.5px;cursor:pointer}
.rx-actions{display:flex;flex-wrap:wrap;gap:6px;padding:10px 15px;border-top:1px solid #f3f3f7;background:#fff}
.rx-st-btn{border:1px solid #e3e3ee;background:#fff;border-radius:8px;padding:6px 11px;font-size:12px;cursor:pointer;font-weight:600;color:#555}
.rx-st-btn.st-cont.on{background:#fff4e0;color:#b46f00;border-color:#f0d9a0}
.rx-st-btn.st-ped.on{background:#e8f5ee;color:#1B7A43;border-color:#bfe3cd}
.rx-st-btn.st-no.on{background:#fde8ef;color:#C0392B;border-color:#f3c2d4}
.rx-st-btn.st-clear{margin-left:auto;color:#9ca3af}

/* ============================================================================
 *  MÓDULO WHATSAPP (v91) — estética Skynet (coral acción · verde estado WA)
 * ========================================================================== */
.wa-panel{display:flex;flex-direction:column;gap:16px}
.wa-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.wa-head-l h2{font-family:'Bricolage Grotesque',sans-serif;font-size:26px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px}
.wa-sub{color:var(--muted);font-size:14px;margin-top:2px}
.wa-head-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wa-chip{font-size:12.5px;font-weight:700;padding:7px 13px;border-radius:999px;white-space:nowrap}
.wa-chip.sim{background:var(--green-soft);color:var(--green)}
.wa-chip.warn{background:var(--amber-soft);color:var(--amber)}
.wa-chip.ok{background:#D6F0E0;color:#0c7a3e}
.wa-sender-lbl{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.wa-sender-sel{padding:9px 12px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;background:#fff;font-weight:600;color:var(--ink)}
.wa-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.wa-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:2px}
.wa-tab{background:transparent;border:none;border-bottom:3px solid transparent;color:var(--muted);font-family:inherit;font-size:14px;font-weight:700;padding:9px 13px;cursor:pointer;border-radius:8px 8px 0 0;transition:.15s}
.wa-tab:hover{color:var(--ink);background:#fff}
.wa-tab.on{color:var(--accent-dark);border-bottom-color:var(--accent);background:#fff}
.wa-body{min-height:200px}

.wa-hint{background:#fff;border:1px solid var(--border);border-left:4px solid var(--green);border-radius:12px;padding:11px 15px;font-size:13.5px;color:#3a4356;margin-bottom:14px}
.wa-empty{padding:28px;text-align:center;color:var(--muted);font-size:14px}
.wa-loading{padding:22px;color:var(--muted)}
.wa-muted{color:var(--muted);font-size:12.5px}
.wa-mini-warn{font-size:12px;color:#6e4503;background:var(--amber-soft);border-radius:8px;padding:7px 10px;margin-top:8px}
.wa-late{color:var(--red)} .wa-ok{color:var(--green)}
.wa-warn-txt{color:var(--amber);font-weight:600}

/* botones inline dentro del módulo (anulan el width:100% global) */
.wa-panel .btn-xs,.modal .btn-xs{width:auto;padding:7px 12px;font-size:12.5px;border-radius:9px}

/* cards accionables */
.wa-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.wa-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px 17px;display:flex;flex-direction:column;gap:8px}
.wa-card.wa-due{border-color:#f5b8b2;background:#fff7f6}
.wa-card.wa-pri-critica{border-left:4px solid var(--red)}
.wa-card.wa-pri-alta{border-left:4px solid var(--amber)}
.wa-card.wa-pri-media{border-left:4px solid var(--blue)}
.wa-card.wa-pri-baja{border-left:4px solid var(--border)}
.wa-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.wa-card-name{font-size:15px;color:var(--ink)}
.wa-code{font-family:'Bricolage Grotesque',sans-serif;font-size:11px;font-weight:700;background:#EEF2FF;color:#4f46e5;padding:1px 7px;border-radius:6px}
.wa-card-owner{font-size:12px;color:var(--muted);white-space:nowrap}
.wa-card-meta{font-size:12.5px;color:#5a6072}
.wa-motivo{font-size:13.5px;color:#3a4356;line-height:1.45}
.wa-caido{font-size:13px;color:#92670a;font-weight:700}
.wa-pills{display:flex;flex-wrap:wrap;gap:5px}
.wa-pill{font-size:11.5px;background:#F4F2EC;border:1px solid var(--border);color:#5a6072;border-radius:999px;padding:2px 9px}
.wa-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.wa-timer{font-size:11.5px;font-weight:700;color:var(--amber);white-space:nowrap}
.wa-quote{font-size:13px;color:#3a4356;font-style:italic;background:#FAF8F3;border-radius:8px;padding:8px 11px}
.wa-sugg{font-size:12.5px;color:#0c4f29;background:var(--green-soft);border-radius:8px;padding:7px 10px}

/* badges + semáforo */
.wa-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}
.wa-badge.verde{background:var(--green-soft);color:var(--green)}
.wa-badge.rojo{background:var(--red-soft);color:#8a1a12}
.wa-badge.amber{background:var(--amber-soft);color:#6e4503}
.wa-badge.blue{background:var(--blue-soft);color:#14306e}
.wa-badge.gris{background:#EEECE6;color:var(--muted)}
.wa-sem{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}
.wa-sem.verde{background:var(--green)} .wa-sem.amarillo{background:var(--amber)}
.wa-sem.rojo{background:var(--red)} .wa-sem.gris{background:#c9ccd6}
.wa-sim{font-size:10px;font-weight:700;background:#EAE4FB;color:#5B3FB0;padding:1px 6px;border-radius:5px}

/* bandeja */
.wa-inbox{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}
.wa-conv-list{display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow-y:auto}
.wa-conv-row{background:#fff;border:1px solid var(--border);border-radius:12px;padding:11px 13px;cursor:pointer;transition:.12s}
.wa-conv-row:hover{border-color:var(--muted)}
.wa-conv-row.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.wa-conv-row.wait{border-left:4px solid var(--red)}
.wa-conv-row-top{display:flex;justify-content:space-between;gap:8px;font-size:14px}
.wa-conv-row-sub{font-size:12px;color:var(--muted);margin:3px 0}
.wa-tag{font-size:10.5px;background:#EEF2FF;color:#4f46e5;border-radius:5px;padding:1px 6px;margin-right:4px}
.wa-conv-detail{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:11px;min-height:300px}
.wa-conv-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding-bottom:10px}
.wa-back{display:none}
.wa-conv-tags{display:flex;flex-wrap:wrap;gap:5px}
.wa-tag-chip{font-size:11.5px;border:1px solid var(--border);border-radius:999px;padding:3px 10px;cursor:pointer;color:var(--muted);background:#fff}
.wa-tag-chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.wa-actions-bar{display:flex;flex-wrap:wrap;gap:6px}
.wa-thread{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto;padding:6px 2px;background:#FAF8F3;border-radius:12px;padding:12px}
.wa-bubble{max-width:78%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.4}
.wa-bubble.in{align-self:flex-start;background:#fff;border:1px solid var(--border);border-bottom-left-radius:4px}
.wa-bubble.out{align-self:flex-end;background:#DCF8C6;border-bottom-right-radius:4px}
.wa-bubble-meta{font-size:10.5px;color:#7a8a6a;margin-top:3px;text-align:right}
.wa-note{display:flex;gap:8px}
.wa-note input{flex:1;padding:8px 11px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:13px}
.wa-composer{display:flex;flex-direction:column;gap:7px}
.wa-composer-actions{display:flex;gap:7px;justify-content:flex-end}
.wa-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;background:#FBFAF7;resize:vertical}
.wa-textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}
.wa-debt-img{max-width:100%;border:1px solid var(--border);border-radius:10px;margin-top:10px}

/* campañas */
.wa-camp-new{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.wa-camp-new input,.wa-camp-new select{padding:9px 11px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:13px;background:#fff}
.wa-camp-new input{flex:1;min-width:180px}
.wa-camp-list{display:flex;flex-direction:column;gap:8px}
.wa-camp-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 15px;cursor:pointer}
.wa-camp-item:hover{border-color:var(--muted)}
.wa-camp-detail{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-top:14px;display:flex;flex-direction:column;gap:12px}
.wa-metrics{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--muted)}
.wa-metrics b{color:var(--ink);font-size:15px;margin-left:4px}
.wa-camp-actions{display:flex;flex-wrap:wrap;gap:6px}
.wa-rcpt-table{width:100%;border-collapse:collapse;font-size:13px}
.wa-rcpt-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:7px 8px;border-bottom:2px solid var(--border)}
.wa-rcpt-table td{padding:7px 8px;border-bottom:1px solid var(--border)}
.wa-rcpt-table tr.excl{opacity:.55}
.wa-prev-h{font-size:12.5px;font-weight:700;color:var(--ink);margin:8px 0}
.wa-prev-msg{background:#FAF8F3;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:7px}

/* mi agente */
.wa-agent-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.wa-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
.wa-form label,.wa-form-full{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2)}
.wa-form-full{margin-top:10px}
.wa-form input,.wa-form select,.wa-form-full input{padding:9px 11px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:13.5px;background:#fff;font-weight:500}
.wa-chk{flex-direction:row !important;align-items:center;gap:8px}
.wa-chk input{width:16px;height:16px;accent-color:var(--accent)}
.wa-ctrl-log{display:flex;flex-direction:column;gap:7px;max-height:220px;overflow-y:auto;background:#FAF8F3;border-radius:12px;padding:12px;margin:8px 0;min-height:80px}
.wa-ctrl-you{align-self:flex-end;background:var(--accent);color:#fff;border-radius:12px;border-bottom-right-radius:4px;padding:8px 12px;font-size:13px;max-width:85%}
.wa-ctrl-bot{align-self:flex-start;background:#fff;border:1px solid var(--border);border-radius:12px;border-bottom-left-radius:4px;padding:8px 12px;font-size:13px;max-width:90%}
.wa-ctrl-in{display:flex;gap:8px}
.wa-ctrl-in input{flex:1;padding:9px 12px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:13.5px}
.wa-rules-h{font-size:13px;font-weight:800;color:var(--ink);margin:12px 0 6px}
.wa-rules{list-style:none;display:flex;flex-direction:column;gap:6px}
.wa-rules li{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13px;background:#FAF8F3;border-radius:8px;padding:7px 10px}
.wa-rules li.off{opacity:.5;text-decoration:line-through}
.wa-rules label{display:flex;gap:8px;align-items:center;cursor:pointer}
.wa-sysrules{margin-top:12px;font-size:12px}
.wa-sysrules summary{cursor:pointer;color:var(--muted);font-weight:600}
.wa-sysrules pre{white-space:pre-wrap;background:#FAF8F3;border-radius:8px;padding:10px;margin-top:6px;font-size:11.5px;color:#5a6072;font-family:inherit}
.wa-test-card{background:#FAF8F3;border-radius:12px;padding:12px;margin-top:10px}
.wa-ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.wa-ficha-h{font-size:12px;font-weight:800;color:var(--ink);margin:10px 0 5px;text-transform:uppercase;letter-spacing:.03em}
.wa-ficha-grid ul{margin-left:16px;font-size:13px;color:#3a4356}
.wa-draft-meta{font-size:12px;color:var(--muted);margin:8px 0}

/* config */
.wa-cfg-grid{display:grid;grid-template-columns:1fr 2fr;gap:14px;align-items:start;margin-bottom:14px}
.wa-cfg-wide{grid-column:auto}
.wa-card h3{font-family:'Bricolage Grotesque',sans-serif;font-size:16px;font-weight:700;color:var(--ink);margin-bottom:8px}
.wa-card h4{font-size:13px}
.wa-kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6px 0;border-bottom:1px dashed var(--border)}
.wa-kv span{color:var(--muted)}

@media(max-width:880px){
  .wa-kpis{grid-template-columns:repeat(2,1fr)}
  .wa-agent-grid,.wa-cfg-grid,.wa-ficha-grid,.wa-form{grid-template-columns:1fr}
  .wa-inbox{grid-template-columns:1fr}
  .wa-inbox .wa-conv-detail{display:none}
  .wa-inbox.show-detail .wa-conv-list{display:none}
  .wa-inbox.show-detail .wa-conv-detail{display:flex}
  .wa-back{display:inline-block}
  .wa-cards{grid-template-columns:1fr}
}
.wa-greet{font-size:12.5px;color:#3a4356}
.wa-greet a{color:var(--blue);margin:0 6px;text-decoration:none;font-weight:600}
.wa-greet a:hover{text-decoration:underline}

/* ---- WhatsApp v93: refinamientos UX ---- */
.wa-section-h{font-family:'Bricolage Grotesque',sans-serif;font-size:15px;font-weight:700;color:var(--ink);margin:18px 0 10px}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}

/* Hero "próxima mejor acción" */
.wa-hero{background:linear-gradient(135deg,#fff,#FFF3EF);border:1px solid var(--accent-soft);border-left:5px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:8px}
.wa-hero-tag{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--accent-dark)}
.wa-hero-name{font-family:'Bricolage Grotesque',sans-serif;font-size:21px;font-weight:800;color:var(--ink);margin:4px 0}
.wa-hero-why{font-size:14px;color:#3a4356}
.wa-hero-monto{font-size:14px;color:#92670a;margin-top:4px}
.wa-hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.wa-hero-actions .btn-xs{padding:9px 15px;font-size:13.5px}

/* pills + ver todos */
.wa-pill.ghost{background:#fff;border-style:dashed;color:var(--blue);cursor:pointer}

/* menú "Más acciones" */
.wa-more{position:relative;display:inline-block}
.wa-more-menu{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);z-index:20;min-width:210px;overflow:hidden}
.wa-more-menu button{display:block;width:100%;text-align:left;background:#fff;border:none;padding:10px 13px;font-family:inherit;font-size:13px;cursor:pointer;color:var(--ink)}
.wa-more-menu button:hover{background:#FAF8F3}

/* banda de prioridad (esperando) */
.wa-pri-band{font-size:12px;font-weight:800;padding:6px 12px;border-radius:10px;margin-bottom:8px}
.wa-pri-band.rojo{background:var(--red-soft);color:#8a1a12}
.wa-pri-band.amber{background:var(--amber-soft);color:#6e4503}
.wa-pri-band.blue{background:var(--blue-soft);color:#14306e}
.wa-pri-band.gris{background:#EEECE6;color:var(--muted)}

/* bandeja: próxima acción + clasificar + quick replies */
.wa-nextaction{background:#FFF7F1;border:1px solid var(--accent-soft);border-radius:12px;padding:11px 13px}
.wa-na-txt{font-size:13.5px;color:#3a4356;margin-bottom:8px}
.wa-na-btns{display:flex;flex-wrap:wrap;gap:6px}
.wa-conv-classify{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wa-quickrow{display:flex;flex-wrap:wrap;gap:6px}
.wa-quick{background:#EAF7EE;border:1px solid #cdeed8;color:#0c7a3e;border-radius:999px;padding:6px 12px;font-size:12.5px;font-family:inherit;cursor:pointer}
.wa-quick:hover{background:#d8f0e0}
.wa-note-inline{flex:1;min-width:120px;padding:8px 11px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:12.5px}
.wa-testnote{font-size:11px;color:#5B3FB0;background:#F1ECFB;border-radius:6px;padding:4px 9px;align-self:flex-start}
.wa-conv-detail.sim{border-color:#cdbdf2;box-shadow:0 0 0 2px #efe9fb}
.wa-conv-row.sim{border-left:3px solid #cdbdf2}

/* wizard de campañas */
.wa-wiz{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}
.wa-wiz-step{font-size:14px;color:var(--ink);margin:14px 0 8px}
.wa-wiz-step b{color:var(--accent-dark)}
.wa-what{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:8px}
.wa-what-card{background:#FAF8F3;border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink);text-align:center;transition:.15s}
.wa-what-card:hover{border-color:var(--accent);background:#fff;transform:translateY(-1px)}
.wa-what-ico{font-size:26px;margin-bottom:6px}
.wa-aud{display:flex;flex-wrap:wrap;gap:12px;font-size:13.5px;margin:6px 0}
.wa-aud-ok{color:var(--green);font-weight:700}
.wa-aud-warn{color:var(--amber);font-weight:700}
.wa-aud-bad{color:var(--red);font-weight:700}

/* mi asistente: estilo con radios */
.wa-style{display:flex;flex-direction:column;gap:6px;margin:6px 0 12px}
.wa-style-lbl{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:6px}
.wa-radio-row{display:flex;flex-wrap:wrap;gap:8px}
.wa-radio{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;background:#fff;color:#3a4356}
.wa-radio input{display:none}
.wa-radio.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.wa-ex-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.wa-ex{background:#EEF2FF;border:1px solid #dfe4ff;color:#4f46e5;border-radius:999px;padding:6px 12px;font-size:12.5px;font-family:inherit;cursor:pointer}
.wa-ex:hover{background:#e3e9ff}

/* cobranza por grupos */
.wa-cob-group{margin-bottom:20px}
.wa-cob-gh{font-family:'Bricolage Grotesque',sans-serif;font-size:14px;font-weight:800;color:var(--ink);margin-bottom:9px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wa-cob-n{background:var(--ink);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:1px 9px}
.wa-cob-next{font-size:12.5px;color:#3a4356}

.wa-rel-optin{border-top:1px solid var(--border);margin-top:12px;padding-top:10px;display:flex;flex-direction:column;gap:7px}

/* WhatsApp v96: actividad/oportunidad, código de artículo, disponibilidad */
.wa-activity{font-size:12.5px;color:#3a4356}
.wa-oppline{font-size:12.5px;color:#3a4356;margin-top:2px}
.wa-pill.nac{border-left:3px solid var(--green)}
.wa-pill.imp{border-left:3px solid var(--amber)}
.wa-pill b{color:#4f46e5;font-weight:800}
.wa-prodcode{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:11.5px;background:#EEF2FF;color:#4f46e5;padding:1px 6px;border-radius:5px;margin-right:4px}
.wa-prodlist{list-style:none;display:flex;flex-direction:column;gap:5px;font-size:13px}
.wa-prodlist li{padding:5px 0;border-bottom:1px dashed #eceef1;line-height:1.4}
.wa-pchip{font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:5px;letter-spacing:.03em;margin-left:3px;vertical-align:middle}
.wa-pchip.rep{background:var(--amber-soft);color:#6e4503}
.wa-pchip.cross{background:var(--green-soft);color:var(--green)}
.wa-pchip.estrella{background:#EEF2FF;color:#4f46e5}
.wa-pchip.nuevo{background:#E3ECFE;color:#14306e}
.wa-disp{font-size:11px;color:var(--muted)}
.wa-disp.nac{color:var(--green)}
.wa-disp.imp{color:var(--amber)}
.wa-opp-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:6px}
.wa-note-ok{background:var(--green-soft);color:#0c4f29;border-radius:8px;padding:8px 11px;font-size:13px;margin:4px 0}
@media(max-width:880px){.wa-opp-cols{grid-template-columns:1fr}}

/* ===== WhatsApp v98: Central de Cobranzas ===== */
.wa-cob-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.wa-cob-title{font-family:'Bricolage Grotesque',sans-serif;font-size:24px;font-weight:800;color:var(--ink)}
.wa-cob-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.wa-cob-op{font-size:13.5px;color:#3a4356;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;padding:9px 13px;margin:8px 0 12px}
.wa-cob-kpis{grid-template-columns:repeat(7,1fr)}
.wa-kpi-click{cursor:pointer;transition:.12s}
.wa-kpi-click:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(20,22,30,.1)}
.wa-kpi-click.on{outline:2px solid var(--accent);outline-offset:1px}
.wa-cob-filterbar{font-size:13px;color:var(--muted);margin:6px 0 10px}
.wa-cob-filterbar a{color:var(--blue);margin-left:8px;text-decoration:none;font-weight:600}
.wa-tab-n{background:var(--muted);color:#fff;font-size:10.5px;font-weight:800;border-radius:999px;padding:0 6px;margin-left:3px}
.wa-tab-n.urg{background:var(--red)}
@media(max-width:1100px){.wa-cob-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.wa-cob-kpis{grid-template-columns:repeat(2,1fr)}}

/* ===== Modo oscuro (variables + superficies hardcodeadas más visibles) ===== */
body.dark{
  --bg:#16181d;--surface:#23262d;--ink:#eef0f4;--ink-2:#e2e4e9;--text:#dcdfe6;--muted:#9aa0ad;--border:#343843;
  --accent:#FF6A4D;--accent-dark:#E8421F;--accent-soft:#3a2620;
  --green:#3FBF77;--green-soft:#173026;--amber:#E0A93B;--amber-soft:#332a16;
  --red:#F2655B;--red-soft:#34201e;--blue:#5B8DEF;--blue-soft:#1d2840;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.4);
}
body.dark{background:var(--bg);color:var(--text)}
body.dark .topbar h1,body.dark .wa-head-l h2,body.dark .wa-card-name,body.dark .wa-cob-title{color:var(--ink)}
body.dark .wa-card,body.dark .kpi,body.dark .section,body.dark .wa-conv-row,body.dark .wa-conv-detail,
body.dark .wa-camp-item,body.dark .wa-camp-detail,body.dark .wa-wiz,body.dark .wa-hero,body.dark .wa-cob-op,
body.dark .modal,body.dark .empleados-panel,body.dark .admin-panel,body.dark .adm-card,body.dark .cob-cfg,
body.dark .rb-cont-panel,body.dark .wa-what-card{background:var(--surface);color:var(--text)}
body.dark .wa-thread,body.dark .wa-ctrl-log,body.dark .wa-quote,body.dark .wa-prev-msg,body.dark .wa-hint,
body.dark .wa-test-card,body.dark .wa-nextaction,body.dark .pill,body.dark .wa-more-menu,
body.dark .rbx-sheet{background:#2b2f37;color:var(--text)}
body.dark .wa-bubble.in{background:#2b2f37;color:var(--text)}
body.dark .wa-bubble.out{background:#1f4d33;color:#eafff1}
body.dark input,body.dark select,body.dark textarea,body.dark .search,body.dark .wa-textarea,
body.dark .wa-sender-sel{background:#2b2f37;color:var(--text);border-color:var(--border)}
body.dark .wa-tab{color:var(--muted)} body.dark .wa-tab:hover,body.dark .wa-tab.on{background:var(--surface)}
body.dark .wa-pill{background:#2b2f37;color:var(--text)}
body.dark .wa-more-menu button{background:transparent;color:var(--text)}
body.dark .wa-more-menu button:hover{background:#33373f}
body.dark .badge-source{background:var(--blue-soft);color:var(--blue)}
body.dark .ds-table th,body.dark .debt-sheet,body.dark .cuenta-sheet{background:var(--surface);color:var(--text)}

/* ===== v99: barra izquierda siempre oscura en modo oscuro + scroll resumen de deuda ===== */
/* La sidebar usa var(--ink) como fondo; en oscuro --ink es texto claro, así que la fijamos oscura. */
body.dark .sidebar{background:#0e1116}
body.dark .cont-badge,body.dark .wa-cob-n{background:#0e1116;color:#fff}
body.dark .side-foot .btn-ghost{border-color:#2a2e36;color:#aeb4c0}
body.dark .side-foot .btn-ghost:hover{color:#fff;border-color:#3a3f49}
/* Resumen de deuda largo (muchos comprobantes): el modal scrollea y los botones quedan visibles. */
#debt-modal .modal{max-height:92vh;width:660px;display:flex;flex-direction:column}
#debt-modal .debt-sheet{overflow-y:auto;flex:1 1 auto;min-height:0}
#debt-modal .modal-actions{flex-shrink:0;padding-top:12px;border-top:1px solid var(--border)}
/* Mismo trato para el modal de WhatsApp (Ver oportunidad / Revisar y enviar pueden ser largos). */
#wa-modal .modal{max-height:92vh;display:flex;flex-direction:column}
#wa-modal #wa-modal-body{overflow-y:auto;flex:1 1 auto;min-height:0}
#wa-modal #wa-modal-actions{flex-shrink:0;padding-top:12px;border-top:1px solid var(--border)}

/* ===== v100: métricas de Demian + línea de tiempo del cliente ===== */
.wa-cob-metrics{display:flex;flex-wrap:wrap;gap:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:12.5px;color:var(--muted)}
.wa-cob-metrics b{color:var(--ink);font-weight:800;margin-left:3px}
/* ===== v139: Mails para clientes ===== */
.cm-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.cm-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:900px){.cm-cols{grid-template-columns:1fr}}
.cm-col h3{margin:10px 0 8px;font-size:14.5px}
.cm-route{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:8px;cursor:pointer}
.cm-route:hover{border-color:var(--accent)}
.cm-chip{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:2px 9px;background:#eef0f4;color:#5b6373;white-space:nowrap}
.cm-chip.verde{background:#e2f6e9;color:#1f8a4c}.cm-chip.rojo{background:#fde7ea;color:#c01933}
.cm-chip.amarillo{background:#fef3cd;color:#8a6d18}.cm-chip.azul{background:#e3eefe;color:#1d5bbf}
.cm-chip.gris{background:#eef0f4;color:#5b6373}
body.dark .cm-chip.verde{background:#14301f;color:#8fd9aa}body.dark .cm-chip.rojo{background:#3a1f25;color:#f3a6b2}
body.dark .cm-chip.amarillo{background:#352c12;color:#e6cd7a}body.dark .cm-chip.azul{background:#16263e;color:#94bbf0}
body.dark .cm-chip.gris{background:#23262e;color:#aab1bf}
.cm-resumen{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:13px}
.cm-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}
.cm-actions .cm-on{outline:2px solid var(--accent)}
.cm-table{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--surface);border-radius:10px;overflow:hidden}
.cm-table th{background:var(--ink);color:#fff;text-align:left;padding:7px 10px;font-size:11.5px}
.cm-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.cm-table .r{text-align:right}
.cm-table tr.cm-dim{opacity:.62}
.cm-adv{font-size:11px;color:#8a6d18;max-width:260px}
.cm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:8px 0}
@media (max-width:900px){.cm-grid{grid-template-columns:1fr}}
.cm-grid label{display:flex;flex-direction:column;font-size:11.5px;color:var(--muted);gap:3px}
.cm-grid input,.cm-grid textarea{font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--ink)}
.cm-grid .cm-wide{grid-column:1/-1}
.cm-totales{font-size:13.5px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 14px;margin:8px 0}
.cm-preview{background:#ffffff;color:#1d1f27;border:1px solid var(--border);border-radius:10px;padding:18px 22px;max-width:760px;overflow-x:auto}
.cm-preview:focus{outline:2px solid var(--accent)}
.cm-adjunto{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 12px;margin-bottom:6px;font-size:12.5px}
#cm-search-res .cm-route{padding:7px 12px}

/* ===== v137: cargar recorrido desde foto ===== */
.rbf-up{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:13px}
.rbf-up-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.rbf-hint{font-size:11.5px;margin-top:6px}
.rbf-hint code{font-size:11px;background:var(--bg);padding:1px 5px;border-radius:4px}
.rbf-warn{font-size:12px;background:#fff3cd;border-radius:8px;padding:6px 10px;margin-top:8px;color:#6b5518}
body.dark .rbf-warn{background:#352c12;color:#e6cd7a}
.rbf-cola{font-size:12px;margin-top:8px;color:var(--muted)}
.rbf-dets{font-size:13px}
.rbf-item{display:flex;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px dashed var(--border)}
.rbf-route{font-weight:800;min-width:90px}
.rbf-date{color:var(--muted)}
.rbf-item .btn-primary{margin-left:auto}

/* ===== v136: notas de crédito en Ventas empleados ===== */
.emp-compra.nc span:last-child{color:#c01933;font-weight:700}
body.dark .emp-compra.nc span:last-child{color:#f3a6b2}
.emp-nc-tag{display:inline-block;font-size:10px;font-weight:800;background:#fde7ea;color:#c01933;border-radius:5px;padding:0 5px;margin-left:4px;vertical-align:1px}
body.dark .emp-nc-tag{background:#3a1f25;color:#f3a6b2}

/* ===== v133: FALTANTES por entregar en el armado de recorrido ===== */
.rb-faltantes{font-size:12.5px;background:#fff3cd;border:1px solid #e6cd7a;border-radius:8px;padding:6px 10px;margin-top:8px;color:#6b5518}
body.dark .rb-faltantes{background:#352c12;border-color:#5c4a1a;color:#e6cd7a}
.rb-falt-ref{font-weight:700}
.rb-faltantes .rb-ped-hint{color:inherit;opacity:.75;font-size:11px}
.rbx-falt{font-size:10.5px;font-weight:700;background:#fff3cd;border-radius:5px;padding:1px 6px;margin-top:2px;display:inline-block;color:#6b5518}
.rb-pop-falt{color:#8a6d18}

/* ===== P9 (v131): tablero "plata recuperada" ===== */
.wa-rec-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 16px;margin-bottom:10px}
.wa-rec-h{font-weight:800;font-size:14.5px;color:var(--ink);margin-bottom:8px}
.wa-rec-kpis{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:8px}
.wa-rec-kpi .v{font-weight:800;font-size:18px;color:var(--ink)}
.wa-rec-kpi .v.ok{color:#1f8a4c}
body.dark .wa-rec-kpi .v.ok{color:#8fd9aa}
.wa-rec-kpi .l{font-size:11.5px;color:var(--muted)}
.wa-rec-bars{display:flex;gap:7px;align-items:flex-end;margin:4px 0 2px}
.rec-bar{display:flex;flex-direction:column;align-items:center;gap:2px}
.rec-bar-cols{display:flex;flex-direction:column;justify-content:flex-end;height:48px;width:17px;gap:1px}
.rec-a{background:#22a55e;border-radius:3px;width:100%}
.rec-e{background:#cbd5e1;border-radius:3px;width:100%}
body.dark .rec-e{background:#3a4152}
.rec-bar-l{font-size:9.5px;color:var(--muted)}
.wa-rec-leg{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-bottom:8px}
.rec-dot{display:inline-block;width:9px;height:9px;border-radius:3px}
.rec-dot.a{background:#22a55e}.rec-dot.e{background:#cbd5e1}
body.dark .rec-dot.e{background:#3a4152}
.wa-rec-top-h{font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.wa-rec-top{margin:0 0 8px 20px;padding:0;font-size:12.5px;color:var(--ink)}
.wa-rec-top li{margin-bottom:3px}
.wa-rec-empty{font-size:12.5px;color:var(--muted);margin:4px 0 8px}
.wa-rec-nota{font-size:10.5px;color:var(--muted);border-top:1px dashed var(--border);padding-top:6px}
.wa-timeline{display:flex;flex-direction:column;gap:0;max-height:60vh;overflow-y:auto;padding-left:4px}
.wa-tl-item{display:flex;gap:12px;align-items:flex-start;padding:9px 2px;position:relative}
.wa-tl-item:not(:last-child)::before{content:"";position:absolute;left:6px;top:20px;bottom:-9px;width:2px;background:var(--border)}
.wa-tl-dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;margin-top:2px;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border);z-index:1}
.wa-tl-dot.odoo{background:#2563eb}.wa-tl-dot.skynet{background:var(--accent)}.wa-tl-dot.demian{background:#7a3cc0}
.wa-tl-dot.ia{background:#0c7a3e}.wa-tl-dot.wa{background:#15924D}.wa-tl-dot.meta{background:#1877f2}.wa-tl-dot.sim{background:#9ca3af}
.wa-tl-body{font-size:13px;color:var(--text)}
body.dark .wa-tl-dot{border-color:var(--surface)}

/* ===== v101: pulido de MODO OSCURO ===== */
/* Documentos que SIEMPRE deben verse como papel blanco (resumen de deuda, estado de cuenta,
   hoja de impresión del recorrido): re-declaramos las variables a los valores del modo claro,
   así todo lo de adentro queda idéntico al modo claro (sin "mitad negro mitad blanco"). */
body.dark .debt-sheet,body.dark .cuenta-sheet,body.dark .rbx-sheet{
  --bg:#F4F2EC;--surface:#fff;--ink:#191B22;--ink-2:#22242E;--text:#23262E;--muted:#7A8090;--border:#E9E6DD;
  --red:#D8362B;--green:#15924D;--amber:#C77A06;--blue:#2563EB;
  background:#fff;color:#23262E;box-shadow:0 0 0 1px #d6d6d6}
/* tickers (Pagos recibidos / Facturado / Entregado) */
body.dark .tk{background:#23262d;border-color:var(--border)}
body.dark .tk-cli,body.dark .tk-amt{color:var(--text)}
/* cartelitos / tips: texto legible en oscuro (el fondo ya es oscuro vía --*-soft) */
body.dark .tip.t-red{color:#f5a39a}
body.dark .tip.t-amber{color:#f0cd7e}
body.dark .tip.t-blue{color:#a9c4f7}
body.dark .tip.t-green{color:#8fdcab}
body.dark .wa-mini-warn{color:#f0cd7e}
body.dark .wa-note-ok{color:#9fe0b8}
body.dark .wa-quote,body.dark .wa-sugg{color:var(--text)}
/* Armar recorrido + overlay del MAPA (estaban en blanco) */
body.dark .rb-map-overlay{background:var(--bg)}
body.dark .rb-map-bar,body.dark .rb-map-preview,body.dark .rb-fail-panel,body.dark .rb-map-results,
body.dark .rb-suggest,body.dark .rb-cont-panel,body.dark .rb-cob-box,body.dark .deliv-head,
body.dark .deliv-day{background:#23262d;color:var(--text);border-color:var(--border)}
body.dark .deliv-head:hover{background:#2b2f37}
body.dark .rb-cont-item{background:#2b2f37;border-color:var(--border);color:var(--text)}
body.dark .rb-cont-item:has(input:checked){background:#1e3a2a;border-color:#2f6a4a}
body.dark .rb-mf,body.dark .rb-map-search,body.dark .rb-search>input,body.dark .rb-meta input,
body.dark .rb-f input,body.dark .rb-f select,body.dark .rb-cont-add input{background:#2b2f37;color:var(--text);border-color:var(--border)}
body.dark .rb-cob-box.hi{background:#1d2840;border-color:#2b3f63}
body.dark .rb-cob-box.hi.vto{background:#34201e;border-color:#5a3330}
/* líneas divisorias suaves en listas (deudas/pagos/recorrido) */
body.dark .row,body.dark .client-debt,body.dark .ds-table td,body.dark .rb-cob-table td,
body.dark .rb-cob-table th{border-color:#34373f}

/* "Demian ahora" — vista curada de lo urgente */
.wa-cob-ahora-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.wa-ahora-btn{background:var(--red);color:#fff;border:none;border-radius:999px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:800;cursor:pointer;box-shadow:0 6px 14px rgba(216,54,43,.28)}
.wa-ahora-btn:hover{filter:brightness(1.05)}
.wa-ahora-btn.on{outline:2px solid var(--ink);outline-offset:2px}

/* ===== v104: dark mode legible en TODOS los módulos ===== */
/* tarjetas / listas / paneles que estaban hardcodeados en blanco */
body.dark .caja-card,body.dark .caja-suggest,body.dark .emp-card,body.dark .rb-card,
body.dark .rb-sum-card,body.dark .rb-hist-item,body.dark .rb-hist-compare,body.dark .rb-fail-head,
body.dark .rx-cli,body.dark .vm-item,body.dark .cob-row,body.dark .cob-cfg,body.dark .cm-item,
body.dark .adm-card,body.dark .rb-mf,body.dark .rb-style-sel,body.dark .rb-suggest,
body.dark .rb-map-results{background:var(--surface);border-color:var(--border);color:var(--text)}
/* inputs / selects / chips */
body.dark .caja-card label input,body.dark .emp-search,body.dark .op-search,
body.dark .caja-search-wrap input,body.dark .vm-chip,body.dark .rx-st-btn{background:#2b2f37;border-color:var(--border);color:var(--text)}
/* títulos y nombres fuertes */
body.dark .caja-cli-name,body.dark .caja-sec-title,body.dark .emp-emp-name,
body.dark .vm-pname,body.dark .rx-cli-name,body.dark .emp-card-head{color:var(--ink)}
/* textos atenuados (labels, metas) */
body.dark .caja-card label,body.dark .caja-mini,body.dark .caja-transp-info.directa,
body.dark .op-cli-meta,body.dark .op-cont-head,body.dark .emp-compra,body.dark .adm-muted,
body.dark .adm-msg,body.dark .caja-sg-empty,body.dark .emp-empty,body.dark .vm-meta,
body.dark .rx-extra,body.dark .caja-sg-empty{color:var(--muted)}
/* texto normal */
body.dark .caja-check,body.dark .emp-total,body.dark .op-cli-main,body.dark .adm-switch,
body.dark .vm-motivo,body.dark .caja-sg{color:var(--text)}
body.dark .caja-sg:hover{background:#2b2f37}
/* info de transporte */
body.dark .caja-transp-info{background:#2b2f37;border-color:var(--border);color:var(--text)}
body.dark .caja-transp-info div{color:var(--muted)}
body.dark .caja-transp-info.retira{background:#2a1f3a;border-color:#3f2f5a;color:#cbb8ee}
/* cartelitos coloreados de fondo claro */
body.dark .adm-card.adm-danger,body.dark .rx-followup,body.dark .adm-update{background:#332a16;border-color:#4a3f20;color:var(--text)}
body.dark .rx-followup{background:#34201e;border-color:#5a3330}
body.dark .rx-fu-cli{background:#2b2f37;border-color:var(--border);color:var(--text)}
body.dark .op-stock{background:#1d2840;color:#9bbcff}
body.dark .vm-cod,body.dark .rx-code,body.dark .rx-drop-cod{background:#1d2840;color:#9bbcff}
/* divisores de listas */
body.dark .op-prod,body.dark .op-cli,body.dark .rx-drop-row,body.dark .vm-land-item,
body.dark .emp-mes-tot,body.dark .emp-emp-tot{border-color:#34373f}

/* ===== v122: Estrategia de contacto (modal/bottom-sheet) + chips 🤖/👤/⏳ ===== */
.cs-wrap{position:fixed;inset:0;z-index:300}
.cs-wrap.hidden{display:none}
.cs-back{position:absolute;inset:0;background:rgba(10,12,18,.55)}
.cs-panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow-y:auto;background:#fff;border-radius:18px 18px 0 0;padding:16px 16px 20px;box-shadow:0 -8px 30px rgba(0,0,0,.25)}
@media (min-width:700px){.cs-panel{left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:560px;max-height:86vh;border-radius:16px}}
body.dark .cs-panel{background:#171a21;color:#dfe3ea}
.cs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}
.cs-title{font-size:15.5px;font-weight:800}
.cs-x{border:none;background:transparent;font-size:16px;cursor:pointer;color:#8a90a0}
.cs-status{font-size:11.5px;color:#6b7280;margin-bottom:10px;display:flex;flex-wrap:wrap;gap:6px}
body.dark .cs-status{color:#9aa3b5}
.cs-bad{color:#c01933;font-weight:700}
.cs-mode{background:#eef0f4;border-radius:6px;padding:0 6px}
body.dark .cs-mode{background:#242a36}
.cs-lbl{display:block;font-size:12px;font-weight:700;margin:10px 0 4px}
.cs-hint{font-weight:400;color:#8a90a0;font-size:11px}
.cs-input{width:100%;box-sizing:border-box;border:1px solid #d9dde5;border-radius:10px;padding:9px 11px;font-size:13px;background:#fff;color:#1a1a1a}
body.dark .cs-input{background:#11141a;border-color:#2a2e38;color:#dfe3ea}
.cs-ta{min-height:64px;resize:vertical;font-family:inherit}
.cs-msg{min-height:96px}
.cs-opts{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cs-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid #e3e6ec;border-radius:12px;padding:11px 13px;background:#fafbfc;cursor:pointer}
.cs-opt:hover{border-color:#e6007e;background:#fff5fa}
body.dark .cs-opt{background:#1c2029;border-color:#2a2e38}
body.dark .cs-opt:hover{border-color:#e6007e;background:#251722}
.cs-opt-t{font-size:14px;font-weight:800}
.cs-opt-d{font-size:12px;color:#6b7280}
body.dark .cs-opt-d{color:#9aa3b5}
.cs-plan{border:1px solid #ece0fb;background:#fbf7ff;border-radius:12px;padding:12px;margin-top:12px}
body.dark .cs-plan{background:#1a1526;border-color:#352a4a}
.cs-plan-h{font-weight:800;font-size:13px;margin-bottom:6px}
.cs-plan-row{font-size:12.5px;margin:4px 0}
.cs-ul{margin:4px 0 0 18px;padding:0;font-size:12.5px}
.cs-note{font-size:11.5px;color:#6b7280;margin-top:8px}
body.dark .cs-note{color:#9aa3b5}
.cs-pre{white-space:pre-wrap;font-family:inherit;font-size:12.5px;background:#f4f5f8;border-radius:10px;padding:10px;margin:8px 0}
body.dark .cs-pre{background:#11141a}
.cs-confirm{width:100%;margin-top:10px}
.cs-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.cs-link{font-size:12px;color:#7a3cc0;text-decoration:none}
.cs-loading{padding:26px 8px;text-align:center;color:#6b7280}
.cs-done{font-size:13.5px;margin:8px 0}
.cs-chip{font-size:10px;font-weight:800;border-radius:7px;padding:1.5px 7px;margin-left:6px;white-space:nowrap;vertical-align:middle}
.cs-chip.auto{background:#e8f6ee;color:#1f8a4c}
.cs-chip.man{background:#e9f0fe;color:#2456c4}
.cs-chip.pend{background:#fef3cd;color:#8a6d18}
.cs-chip.ok{background:#e8f6ee;color:#1f8a4c}
.cs-chip.off{background:#fdeaea;color:#b13333}
body.dark .cs-chip.auto{background:#15251c;color:#5fc98a}
body.dark .cs-chip.man{background:#161e30;color:#8fb2f5}
body.dark .cs-chip.pend{background:#332a12;color:#e0b75a}
body.dark .cs-chip.ok{background:#15251c;color:#5fc98a}
body.dark .cs-chip.off{background:#301818;color:#e08a8a}
/* v126: Asistencia / Fichadas */
.as-diag{font-size:12.5px;color:#4b5563;display:flex;flex-direction:column;gap:3px;margin:4px 0 6px}
body.dark .as-diag{color:#aeb6c4}
.as-warn{color:#b45309;font-weight:600}
.as-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;
  border:1px solid #e9ebf0;border-radius:11px;background:#fff;margin-bottom:8px;cursor:pointer;
  flex-wrap:wrap}
body.dark .as-row{background:#1a1d24;border-color:#2a2e38}
.as-row-n{display:flex;gap:10px;font-size:12.5px;white-space:nowrap;flex-wrap:wrap}
.as-bad{color:#c01933;font-weight:700}
.as-warnn{color:#b45309;font-weight:700}
.as-ejemplos{margin-top:10px;font-size:12.5px}
.as-ej{padding:4px 0;border-bottom:1px dashed #e3e6ec}
body.dark .as-ej{border-bottom-color:#2a2e38}
.as-ej code,.as-raw{background:#f4f5f8;border-radius:6px;padding:1px 6px;font-size:11.5px}
body.dark .as-ej code,body.dark .as-raw{background:#11141a}
.as-days{max-height:60vh;overflow-y:auto}
.as-day{display:flex;align-items:center;gap:9px;padding:6px 4px;border-bottom:1px dashed #eef0f4;
  font-size:12.5px;flex-wrap:wrap}
body.dark .as-day{border-bottom-color:#2a2e38}
.as-day.finde{background:#fafbfd}
body.dark .as-day.finde{background:#161920}
.as-day-head{font-weight:800;border-bottom:1.5px solid #d7dbe3}
.as-d-f{width:56px}.as-d-h{width:86px}.as-d-es{width:120px}
.as-det{width:100%;padding-left:56px}
.as-filtros{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:10px;font-size:12.5px}
.as-filtros select{padding:4px 8px;border-radius:8px;border:1px solid #d7dbe3}
body.dark .as-filtros select{background:#1a1d24;color:#d6dbe4;border-color:#2a2e38}
.as-periodo{padding:7px 10px;border-radius:10px;border:1.5px solid #e6007e;color:#e6007e;
  font-weight:800;font-size:13px;background:transparent;align-self:center}
body.dark .as-periodo{border-color:#ff4fa3;color:#ff4fa3;background:#1a1d24}
.as-texto{white-space:pre-wrap;font-family:inherit;font-size:13px;background:#f4f5f8;
  border-radius:10px;padding:12px 14px;max-height:60vh;overflow:auto;line-height:1.45}
body.dark .as-texto{background:#11141a}
.as-chk{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:#5b6472;
  white-space:nowrap;align-self:center}
body.dark .as-chk{color:#9aa3b2}
.as-search{margin-left:auto;padding:7px 12px;border-radius:10px;border:1.5px solid #d7dbe3;
  font-size:13px;min-width:210px}
body.dark .as-search{background:#1a1d24;color:#d6dbe4;border-color:#2a2e38}
.as-errdet{white-space:pre-wrap;font-size:11px;background:#f4f5f8;border-radius:9px;
  padding:8px 10px;max-height:220px;overflow:auto}
body.dark .as-errdet{background:#11141a}
/* v173: cargar el archivo del reloj + plantel editable */
.as-drop{border:2px dashed #c7cdd8;border-radius:14px;padding:22px 16px;text-align:center;
  cursor:pointer;margin:12px 0;background:#fafbfc;transition:.15s}
.as-drop:hover,.as-drop.on{border-color:#2F6FED;background:#eef4ff}
body.dark .as-drop{background:#1a1d24;border-color:#39404e}
body.dark .as-drop:hover,body.dark .as-drop.on{border-color:#ff4fa3;background:#241a22}
.as-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.as-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#5b6472}
body.dark .as-form label{color:#9aa3b2}
.as-form label.as-chk{flex-direction:row;font-weight:500}
.as-form input,.as-form select{padding:8px 11px;border-radius:10px;border:1.5px solid #d7dbe3;
  font-size:13.5px;font-weight:500;color:#141821;background:#fff}
body.dark .as-form input,body.dark .as-form select{background:#1a1d24;color:#d6dbe4;border-color:#2a2e38}
.as-form input[readonly]{background:#f4f5f8;color:#5b6472}
body.dark .as-form input[readonly]{background:#11141a;color:#9aa3b2}
.as-form-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.as-form-2{grid-template-columns:1fr}}
/* v124: Control Comercial y Riesgo de Cobranza */
.cs-chip.warn{background:#fef3cd;color:#8a6d18}
.cs-chip.risk{background:#ffe8d6;color:#b45309}
.cs-chip.danger{background:#fde7ea;color:#c01933}
body.dark .cs-chip.warn{background:#352c12;color:#e6cd7a}
body.dark .cs-chip.risk{background:#3a2413;color:#f0a868}
body.dark .cs-chip.danger{background:#3a1f25;color:#f3a6b2}
.risk-card{border-radius:12px;padding:12px 14px;margin:0 0 12px;border:1.5px solid;font-size:13px}
.risk-card.rc-ok{border-color:#bfe8cd;background:#f2fbf5}
.risk-card.rc-warn{border-color:#ecd9a0;background:#fdf8e9}
.risk-card.rc-risk{border-color:#f0c39a;background:#fdf3e9}
.risk-card.rc-danger{border-color:#f0aab6;background:#fdeef1}
body.dark .risk-card.rc-ok{border-color:#2a4a39;background:#15251c}
body.dark .risk-card.rc-warn{border-color:#5a4a1e;background:#2a2410}
body.dark .risk-card.rc-risk{border-color:#5f3d1c;background:#2a1d10}
body.dark .risk-card.rc-danger{border-color:#5f2531;background:#2a151b}
.rc-head{font-size:14.5px}
.rc-text{margin-top:3px;font-weight:600}
.rc-rz{margin:6px 0 0;padding-left:18px}
.rc-rz li{margin:2px 0}
.rc-bits{margin-top:6px;color:#4b5563;font-size:12.5px}
body.dark .rc-bits{color:#aeb6c4}
.rc-estado{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(0,0,0,.12)}
body.dark .rc-estado{border-top-color:rgba(255,255,255,.12)}
.rc-ready{margin-top:8px;padding:8px 10px;border-radius:9px;background:#e2f6e9;color:#1f8a4c;font-weight:600}
body.dark .rc-ready{background:#14301f;color:#8fd9aa}
.rc-bad{color:#c01933}
.rc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.rc-cond{margin:8px 0 2px;padding:8px 10px;border-radius:9px;background:#fdf3e9;color:#b45309;
  border:1px dashed #f0c39a;font-size:12.5px;font-weight:600}
body.dark .rc-cond{background:#2a1d10;color:#f0a868;border-color:#5f3d1c}
.risk-badge-btn{display:inline-flex;align-items:center;gap:6px;margin:10px 0 2px;padding:8px 14px;
  border:1.5px solid #f0aab6;border-radius:11px;background:#fdeef1;color:#c01933;font-size:13px;
  font-weight:700;cursor:pointer}
.risk-badge-btn.has-ready{border-color:#7ad4c9}
body.dark .risk-badge-btn{background:#2a151b;border-color:#5f2531;color:#f3a6b2}
.rc-opts{display:flex;flex-direction:column;gap:7px;margin:12px 0}
.rc-radio{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1.5px solid #e3e6ec;
  border-radius:10px;cursor:pointer;font-size:13.5px}
.rc-radio.on{border-color:#e6007e}
body.dark .rc-radio{border-color:#2a2e38}
body.dark .rc-radio.on{border-color:#ff4fa3}
.rc-sec-h{font-weight:800;font-size:13px;margin:12px 0 6px;color:#2b3442}
body.dark .rc-sec-h{color:#d6dbe4}
.rc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 0;
  border-bottom:1px dashed #e3e6ec;font-size:13px}
body.dark .rc-row{border-bottom-color:#2a2e38}
.rc-row-btns{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
/* P12: feedback de 1 toque — "No aplica" + motivo de No interesado */
.reco-veto{border:none;background:transparent;font-size:14px;cursor:pointer;opacity:.45;
  padding:2px 4px;align-self:center;line-height:1}
.reco-veto:hover{opacity:1}
.wa-veto-row{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:7px 0;border-bottom:1px dashed #e3e6ec;font-size:13px}
body.dark .wa-veto-row{border-bottom-color:#2a2e38}
.rx-why{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.rx-why-btn{text-align:left;padding:10px 12px;font-size:13.5px}
/* P6: mini-estación de venta en la tarjeta de Hoy */
.cie-add{margin-left:8px;font-size:11px;font-weight:800;border:1.5px solid #e6007e;color:#e6007e;
  background:transparent;border-radius:9px;padding:2px 9px;cursor:pointer;white-space:nowrap}
.cie-add.in{background:#e6007e;color:#fff}
body.dark .cie-add{border-color:#ff4fa3;color:#ff4fa3}
body.dark .cie-add.in{background:#ff4fa3;color:#1a1d24}
.cie-cart-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin:10px 0 4px;padding:9px 10px;border:1px dashed #c9cdd6;border-radius:10px;font-size:12.5px;color:#4b5563}
.cie-cart-foot-btns{display:flex;gap:8px}
body.dark .cie-cart-foot{border-color:#3a4050;color:#aeb6c4}
/* P5: acciones del carrito sugerido */
.reco-cart-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed #e3e6ec}
body.dark .reco-cart-actions{border-top-color:#2a2e38}
/* P3: grupo colapsado "Gestionados / en pausa / al día" en Hoy */
.cie-group-toggle{display:flex;align-items:center;gap:8px;width:100%;margin:16px 0 8px;padding:10px 14px;
  border:1px dashed #c9cdd6;border-radius:12px;background:transparent;color:#5b6472;font-size:13px;
  font-weight:700;cursor:pointer;text-align:left}
.cie-group-toggle b{color:#2b3442}
body.dark .cie-group-toggle{border-color:#3a4050;color:#9aa3b2}
body.dark .cie-group-toggle b{color:#d6dbe4}
.rx-st-btn.st-wa{border-color:#cdeede;color:#1f8a4c}
body.dark .rx-st-btn.st-wa{border-color:#2a4a39;color:#7fd3a0}
.reco-topbar-btns{display:flex;gap:8px}

/* v145: loader con progreso (perrito 🐕) + X de cierre en modales + barra de fotos */
.modal{position:relative}
.modal-x{position:absolute;top:10px;right:12px;background:none;border:none;font-size:17px;
  line-height:1;cursor:pointer;color:#8a919e;padding:6px;border-radius:8px}
.modal-x:hover{background:#f0f1f5;color:#1d1f27}
body.dark .modal-x:hover{background:#232733;color:#e8ebf1}
#sk-loader{position:fixed;inset:0;background:rgba(20,22,30,.55);display:grid;
  place-items:center;z-index:80}
#sk-loader.hidden{display:none}
.skl-card{background:#fff;border-radius:16px;padding:22px 26px;width:380px;max-width:90vw;
  box-shadow:0 18px 50px rgba(0,0,0,.25);text-align:center}
body.dark .skl-card{background:#1a1d24;color:#d6dbe4}
.skl-title{font-weight:800;font-size:16px;margin-bottom:10px}
.skl-track{position:relative;height:44px;overflow:hidden;margin:2px 0 6px}
.skl-dog{position:absolute;top:2px;left:-70px;font-size:26px;white-space:nowrap;
  animation:skl-walk 2.6s linear infinite}
@keyframes skl-walk{0%{left:-70px}100%{left:105%}}
.skl-bar{height:12px;border-radius:99px;background:#e8eaf0;overflow:hidden}
body.dark .skl-bar{background:#232733}
.skl-fill{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,#e91e8c,#ff7a3d);
  transition:width .35s ease}
.skl-fill.indet{width:40%;animation:skl-indet 1.3s ease-in-out infinite}
@keyframes skl-indet{0%{margin-left:-40%}100%{margin-left:100%}}
.skl-pct{font-size:12.5px;font-weight:700;margin-top:6px;min-height:16px}
.skl-msg{font-size:12.5px;color:#5b6472;margin-top:2px;min-height:17px}
body.dark .skl-msg{color:#9aa3b2}
.rbf-prog{margin:8px 0}
.rbf-prog .skl-bar{height:10px}
.rbf-prog-label{font-size:12px;color:#5b6472;margin-bottom:3px}
body.dark .rbf-prog-label{color:#9aa3b2}
/* v146: Administracion -> Diagnostico Meta */
.adm-meta-diag{background:var(--surface,#fff);border:1px solid #d8dbe2;border-radius:14px;
  padding:16px 18px;margin:14px 0}
.adm-meta-diag h3{margin:0 0 8px}
.adm-meta-diag h4{margin:14px 0 6px;font-size:13.5px}
.adm-meta-diag code{font-size:11.5px;word-break:break-all}
body.dark .adm-meta-diag{background:#1a1d24;border-color:#2a2e38}

/* v156: Pedidos MIX (nacional vs importado) */
.mix-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:#e8eaf0;min-width:90px}
body.dark .mix-bar{background:#232733}
.mix-bar span{display:block;height:100%}
.mix-nac{background:#16a34a}
.mix-imp{background:#f97316}
.mix-otro{background:#9ca3af}
.mix-nac-txt{color:#15803d}
.mix-imp-txt{color:#c2410c}
body.dark .mix-nac-txt{color:#4ade80}
body.dark .mix-imp-txt{color:#fb923c}
.mix-chip{display:inline-block;font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:99px;
  background:#e91e8c;color:#fff;vertical-align:middle}
.mix-chip.nacional{background:#dcfce7;color:#15803d}
.mix-chip.importado{background:#ffedd5;color:#c2410c}
.mix-chip.otro{background:#e8eaf0;color:#5b6472}
.mix-row{cursor:pointer}
.mix-row:hover{background:#faf7fb}
body.dark .mix-row:hover{background:#20242e}
.mix-sub > td{background:#faf9fb;padding:4px 8px !important}
body.dark .mix-sub > td{background:#191c24}
.mix-lineas th,.mix-lineas td{font-size:11.5px;padding:3px 6px}
.mix-caret{display:inline-block;width:10px;color:#8a919e;font-size:10px}

/* v158: Clientes Estrella */
.rb-prio{background:none;border:none;cursor:pointer;font-size:15px;line-height:1;padding:2px 4px;
  border-radius:6px;color:#c3c8d2}
.rb-prio:hover{background:#f0f1f5}
body.dark .rb-prio:hover{background:#232733}
.rbprio-res{max-height:210px;overflow:auto;margin:8px 0}
.rbprio-listas{margin-top:10px;border-top:1px solid var(--border);padding-top:8px;
  max-height:260px;overflow:auto}
.rbprio-listas h4{margin:10px 0 4px;font-size:13.5px}
.rbprio-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px;font-size:13px}
.rbprio-row:hover{background:#faf7fb}
body.dark .rbprio-row:hover{background:#20242e}
.rbprio-nom{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* v159: casita de la base en el mapa del recorrido */
.rb-home-pin{font-size:28px;line-height:34px;text-align:center;background:none;border:none;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}

/* v161: cartel de "Actualizar datos" — la bruja se rie (foto o emoji) con glitch.
   v161.1: la foto 3-4x mas grande (260px; se ve la resolucion que tenga el archivo). */
.skl-card:has(.skl-track-bruja){width:460px}
.skl-track-bruja{display:flex;justify-content:center;align-items:flex-end;height:286px;overflow:visible;margin-top:8px}
.skl-bruja-wrap{position:relative;display:inline-block;width:260px;height:260px}
.skl-bruja{width:260px;height:260px;border-radius:50%;object-fit:cover;display:block;
  animation:sklCackle .42s ease-in-out infinite}
.skl-bruja-g{position:absolute;inset:0;opacity:0;pointer-events:none;
  animation:sklCackle .42s ease-in-out infinite,sklGlitch 1.7s steps(1) infinite}
.skl-bruja-emoji{font-size:190px;line-height:260px;display:block;text-align:center;
  animation:sklCackle .42s ease-in-out infinite,sklGlitchE 1.7s steps(1) infinite}
@keyframes sklCackle{
  0%,100%{transform:rotate(-5deg) translateY(0)}
  25%{transform:rotate(3deg) translateY(-5px) scale(1.05)}
  50%{transform:rotate(-2deg) translateY(1px) scale(.97)}
  75%{transform:rotate(5deg) translateY(-6px) scale(1.04)}}
@keyframes sklGlitch{
  0%,86%{opacity:0}
  88%{opacity:.9;clip-path:inset(8% 0 62% 0);transform:translate(-5px,2px) rotate(-4deg);filter:hue-rotate(120deg) saturate(4)}
  91%{opacity:.85;clip-path:inset(55% 0 10% 0);transform:translate(6px,-3px) rotate(4deg);filter:invert(1)}
  94%{opacity:.9;clip-path:inset(28% 0 34% 0);transform:translate(-7px,0) rotate(-2deg);filter:hue-rotate(-140deg) contrast(2)}
  97%,100%{opacity:0}}
@keyframes sklGlitchE{
  0%,86%,97%,100%{filter:none}
  88%{filter:hue-rotate(120deg);transform:translate(-4px,2px) skewX(8deg)}
  91%{filter:invert(1);transform:translate(5px,-2px)}
  94%{filter:hue-rotate(-140deg) contrast(2);transform:translate(-5px,0) skewX(-8deg)}}
.skl-ja{position:absolute;font-weight:900;font-size:34px;color:#7c3aed;opacity:0;
  text-shadow:0 2px 6px rgba(0,0,0,.25);animation:sklJa 1.35s ease-out infinite}
.skl-ja.j1{left:-52px;top:70px;animation-delay:0s}
.skl-ja.j2{right:-56px;top:34px;animation-delay:.45s;color:#16a34a}
.skl-ja.j3{left:-30px;top:-18px;animation-delay:.9s;color:#db2777;font-size:26px}
@keyframes sklJa{
  0%{opacity:0;transform:translateY(18px) scale(.6) rotate(-10deg)}
  25%{opacity:1}
  100%{opacity:0;transform:translateY(-72px) scale(1.25) rotate(10deg)}}
.adm-loader-btns{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.adm-loader-modo{display:block;margin:6px 0;font-size:13px}
.adm-loader-modo select{margin-left:6px}

/* v162: pagos informativos de Pedidos MIX */
.mix-restan{font-size:12px;margin-top:3px;white-space:nowrap}
.mix-pagado{color:#16a34a;font-weight:800;font-size:12.5px;margin-top:3px}
body.dark .mix-pagado{color:#4ade80}

/* v164: "Llevar tambien con el pedido" */
.rb-llevar{margin:4px 0 2px;padding:5px 10px;border-radius:8px;font-size:12.5px;cursor:pointer;
  background:#fff3cd;border:1px solid #e7c66a;color:#7a5200}
.rb-llevar:hover{filter:brightness(.97)}
body.dark .rb-llevar{background:#3a3117;border-color:#6b5a1f;color:#f5d67a}
.rb-pop-llevar{margin:4px 0;padding:4px 8px;border-radius:7px;font-size:12px;
  background:#fff3cd;border:1px solid #e7c66a;color:#7a5200}
.rb-pin.llevar span{box-shadow:0 0 0 2px #f59e0b}

/* v165: modulo Catalogos */
.cat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.tab-btn{padding:8px 14px;border:1px solid var(--border,#d8dbe2);background:transparent;border-radius:999px;
  font-weight:700;font-size:13px;cursor:pointer;color:inherit}
.tab-btn.on{background:#c2185b;border-color:#c2185b;color:#fff}
.cat-list{display:flex;flex-direction:column;gap:6px}
.cat-fila{display:flex;gap:12px;align-items:center;padding:8px;border:1px solid var(--border,#e3e3ea);
  border-radius:10px;background:var(--card,#fff)}
body.dark .cat-fila{background:#1a1d24;border-color:#2a2e3a}
.cat-fila img{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:8px;flex:none}
.cat-sinfoto{width:74px;height:74px;display:flex;align-items:center;justify-content:center;flex:none;
  color:#aaa;font-size:10.5px;background:#f2f2f5;border-radius:8px}
body.dark .cat-sinfoto{background:#232733}
.cat-info{flex:1;min-width:0}
.cat-acciones{flex:none}
.cm-chip.verde{background:#e5f7e9;color:#127a36}
.cm-chip.rojo{background:#fdecea;color:#b3261e}
body.dark .cm-chip.rojo{background:#3d1f1c;color:#f5a49c}

/* v167: vistas del modulo Catalogos (compacta / cuadros / mini) + historial */
.cat-modos{display:flex;gap:4px}
.cat-modo-on{background:#c2185b!important;border-color:#c2185b!important;color:#fff!important}
.cat-fila.compacta{padding:3px 8px;gap:8px}
.cat-fila.compacta img,.cat-fila.compacta .cat-sinfoto{width:34px;height:34px}
.cat-fila.compacta .cat-c-desc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:12.5px}
.cat-fila.compacta .cat-c-precio{font-size:12px;white-space:nowrap}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.cat-grid.mini{grid-template-columns:repeat(auto-fill,minmax(122px,1fr))}
.cat-cuadro{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;
  padding:8px;border:1px solid var(--border,#e3e3ea);border-radius:10px;background:var(--card,#fff)}
body.dark .cat-cuadro{background:#1a1d24;border-color:#2a2e3a}
.cat-cuadro img,.cat-cuadro .cat-sinfoto{width:120px;height:120px;object-fit:contain}
.cat-cuadro.mini img,.cat-cuadro.mini .cat-sinfoto{width:78px;height:78px}
.cat-cuadro .cat-q-desc{font-size:11.5px;line-height:1.25;max-height:29px;overflow:hidden}
.cat-cuadro .cat-q-precio{font-size:12px;font-weight:700}
.cat-cuadro.mini .cat-q-precio{font-size:11px}
.cat-cuadro .cat-q-est{font-size:10.5px}

/* v167.1: botonera de exports + contenedor en mini + panel por contenedor */
.cat-export-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0 10px;
  padding:7px 10px;border:1px dashed var(--border,#d8dbe2);border-radius:10px;font-size:12.5px}
.cat-exp{padding:4px 9px;border:1px solid #c2185b;background:transparent;color:#c2185b;
  border-radius:999px;font-size:11.5px;font-weight:700;cursor:pointer}
.cat-exp:hover{background:#c2185b;color:#fff}
.cat-exp.full{background:#c2185b;color:#fff}
.cat-q-cont{font-size:11px;font-weight:800;color:#0d6efd}
.cat-q-cont.rojo{color:#b3261e}
.cat-cont-card{border:1px solid var(--border,#e3e3ea);border-radius:10px;padding:8px 10px;margin:6px 0;
  background:var(--card,#fff)}
body.dark .cat-cont-card{background:#1a1d24;border-color:#2a2e3a}
.cat-cont-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13.5px}
.cat-cont-edit{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:12.5px}

/* v169: aviso de version nueva */
#sk-update{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;gap:12px;align-items:center;
  flex-wrap:wrap;justify-content:center;padding:9px 14px;font-size:13.5px;
  background:linear-gradient(90deg,#c2185b,#7b1fa2);color:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.28);animation:skUpIn .35s ease-out}
@keyframes skUpIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}
#sk-update .sk-up-btn{padding:6px 14px;border:none;border-radius:999px;font-weight:800;font-size:13px;
  cursor:pointer;background:#fff;color:#c2185b}
#sk-update .sk-up-btn:hover{background:#ffe9f2}
#sk-update .sk-up-alt{opacity:.9;font-size:12.5px}
body.con-update .app,body.con-update .login-wrap{padding-top:40px}
@media print{#sk-update{display:none!important}}

/* ==========================================================================
   v169.1 — MODO OSCURO: correcciones de contraste (auditoria completa).
   Se detectaron con un medidor de contraste real recorriendo todas las vistas:
   textos oscuros sobre fondo oscuro, fondos casi blancos que tapaban el texto
   claro, e inputs que al hacer foco se ponian blancos con letra clara.
   NO se toca nada de impresion (.rbp-, .rbx-, .rb-print, .cm-preview) ni los
   popups del mapa: esos van sobre papel/fondo blanco a proposito.
   ========================================================================== */

/* --- 1. CAMPOS: el bug del login (al hacer foco quedaba blanco con letra clara) --- */
body.dark .field input,
body.dark .field input:focus,
body.dark .modal textarea,
body.dark .rb-cont-massive select,
body.dark .wa-camp-new input, body.dark .wa-camp-new select,
body.dark .wa-form input, body.dark .wa-form select, body.dark .wa-form-full input,
body.dark .wa-radio, body.dark .wa-tag-chip, body.dark .wa-ctrl-bot{
  background:#2b2f37;color:var(--text);border-color:var(--border)}
body.dark .field input:focus{background:#31363f;box-shadow:0 0 0 3px rgba(255,106,77,.25)}
body.dark .field input::placeholder,body.dark input::placeholder,
body.dark textarea::placeholder{color:#7d8494}

/* --- 2. CONTENEDORES con fondo casi blanco que tapaban el texto --- */
body.dark .cont-manager,
body.dark .prod-wrap, body.dark .up-wrap, body.dark .cta-r,
body.dark .rx-resumen, body.dark .rx-detail, body.dark .rx-actions,
body.dark .rb-cont-massive, body.dark .row.pay-pending,
body.dark .wa-rules li, body.dark .wa-sysrules pre, body.dark .wa-quick,
body.dark .wa-testnote, body.dark .rb-move button{
  background:#22262e;border-color:#343843;color:var(--text)}
body.dark .row.pay-pending{border-left-color:#E8820C}
body.dark .rb-move button{color:#c9cedb}
body.dark .rb-move button:hover:not(:disabled){background:#2e3440}
body.dark .rb-sug-item:hover,body.dark .rb-sug-item:first-child,
body.dark .rb-mr-item:hover,body.dark .rx-cli-head:hover,
body.dark .cie-act:hover,body.dark .deliv-head:hover{background:#2a2f38}

/* --- 3. TEXTOS oscuros sueltos (quedaban invisibles sobre el fondo oscuro) --- */
body.dark .cm-head,body.dark .rx-head,body.dark .vm-land-h{color:var(--ink)}
body.dark .vm-land-intro,body.dark .rx-msg,body.dark .resell-group,
body.dark .hist-prod,body.dark .caja-switch,body.dark .cob-cfg-row label,
body.dark .rx-detail-h,body.dark .cta-fch,body.dark .cta-pago,body.dark .prod,
body.dark .wa-motivo,body.dark .wa-ficha-grid ul,body.dark .wa-greet,
body.dark .wa-hero-why,body.dark .wa-na-txt,body.dark .wa-cob-next,
body.dark .wa-oppline,body.dark .rb-legend{color:#c3c9d6}
/* rojos/azules oscuros -> versiones que se leen en oscuro */
body.dark .late,body.dark .meta .late,body.dark .cob-meta .late,
body.dark .rx-msg .late,body.dark .rx-drop-meta b,body.dark .cie-mini-debt,
body.dark .cs-bad,body.dark .as-bad,body.dark .rc-bad,body.dark .rx-tr.down,
body.dark .cta-badge.debe,body.dark .vm-dejo,body.dark .rb-fail-link,
body.dark .rb-mr-no,body.dark .rx-resumen .st-no{color:#f2857c}
body.dark .cie-label.sc-mid-t,body.dark .cob-summary,body.dark .rx-count{color:#7fa9f5}
body.dark .cie-label.sc-hi-t{color:#5cc98a}
body.dark .cie-label.sc-lo-t{color:#e0b455}
body.dark .rx-fu-line{color:#d9c489}
body.dark .hist-drop{background:#3a2f16;color:#e3b877;border-color:#5a4a25}

/* --- 4. CHIPS y etiquetas (fondo claro + texto oscuro -> par oscuro coherente) --- */
body.dark .tag.gray,body.dark .tag.otro,body.dark .wa-badge.gris,
body.dark .wa-pri-band.gris,body.dark .rg-count,body.dark .rx-badge.st-pend,
body.dark .reco-pri,body.dark .reco-pri.baja{background:#2f333c;color:#b6bcc9}
body.dark .tag.blanco{background:#2b3240;color:#b9c6dc}
body.dark .tag.imp,body.dark .pcode.imp,body.dark .tag.cont,body.dark .rb-f-tag,
body.dark .abadge.exp,body.dark .ds-tipo.cont,body.dark .rb-fail-tag,
body.dark .cp-copy,body.dark .wa-sim{background:#2a2140;color:#c4a9f0}
body.dark .tag.exp,body.dark .abadge.ent,body.dark .ds-tipo.mix,body.dark .rx-imp,
body.dark .wa-code,body.dark .wa-tag,body.dark .wa-ex,body.dark .wa-prodcode,
body.dark .vm-estrella,body.dark .vm-land-cod,body.dark .rx-vermas,
body.dark .wa-pchip.estrella,body.dark .wa-pchip.nuevo{background:#1b2b47;color:#8fb6f5}
body.dark .tag.red,body.dark .cta-badge.debe,body.dark .cob-badge.due,
body.dark .rx-badge.st-no,body.dark .vm-dejo,body.dark .reco-pri.alta,
body.dark .doer-alert,body.dark .ds-vto{background:#3a2020;color:#f3a6a0}
body.dark .tag.pay,body.dark .rb-pago,body.dark .cta-badge.ok,body.dark .ds-tipo.nac,
body.dark .rx-badge.st-ped,body.dark .rx-fu-ok,body.dark .vm-cross,
body.dark .doer-ok,body.dark .rb-mr-on,body.dark .mix-chip.nacional{background:#14301f;color:#8fd9aa}
body.dark .ds-tipo.imp,body.dark .rx-badge.st-cont,body.dark .vm-reponer,
body.dark .abadge.cob,body.dark .mix-chip.importado,body.dark .reco-pri.media{background:#3a2c14;color:#e6bd77}
body.dark .cob-badge.pause,body.dark .cs-link{background:#2a2140;color:#c4a9f0}
body.dark .cob-badge.wait,body.dark .ds-tipo{background:#2f333c;color:#b6bcc9}
body.dark .wa-tab-n{background:#4a5160;color:#eef0f4}
body.dark .rb-transp-note,body.dark .rbx-transp{background:#241f38;color:#c4a9f0;border-color:#3b3355}
body.dark .rb-pedidos{background:#33291a;color:#e8d5a8;border-color:#5a4a25}
body.dark .vm-expand{background:#2a2f38;color:#c3c9d6}
body.dark .cie-sig-t{color:#ff5fb0}
/* v169.1 (2da pasada): los que quedaron con fondo claro o poco contraste */
body.dark .cob-summary,body.dark .rx-count{background:#1b2b47;color:#8fb6f5}
body.dark .tab-btn.on .wa-muted{color:#ffd9e8}
body.dark .cat-exp{border-color:#ff5c9e;color:#ff8fbb}
body.dark .cat-exp:hover,body.dark .cat-exp.full{background:#ff5c9e;color:#fff}
/* v169.1 (3ra pasada): fondos que usan var(--ink) + texto blanco. En modo oscuro
   --ink se vuelve CLARO, asi que el texto blanco desaparecia (contraste 1.1). */
body.dark .cm-table th,body.dark .cont-badge,body.dark .wa-cob-n{background:#3a4150;color:#fff}
body.dark .sidebar{background:#101318;color:#C9CCD6}

/* v170: matriz de modulos por usuario (Administracion) */
.adm-modulos{margin-top:14px}
.admod-wrap{overflow-x:auto;max-width:100%}
.admod-table{min-width:520px}
.admod-table th{white-space:nowrap;text-align:center}
.admod-table th:first-child{text-align:left}
.admod-table td{text-align:center;padding:3px 6px}
.admod-mod{text-align:left!important;white-space:nowrap;font-size:12px}
.admod-grupo td{background:#f0f1f5;font-weight:800;font-size:11.5px;text-align:left!important;
  padding:4px 10px!important;letter-spacing:.02em}
body.dark .admod-grupo td{background:#2a2f38;color:#c9cedb}
.admod-c{width:30px;height:26px;border-radius:7px;border:1px solid var(--border,#d8dbe2);
  background:transparent;cursor:pointer;font-weight:800;font-size:12.5px;color:#9aa0ad}
.admod-c:hover:not(:disabled){filter:brightness(.94);transform:scale(1.08)}
.admod-c.on{background:#e5f7e9;color:#127a36;border-color:#9ad8b0}
.admod-c.off{background:#fdecea;color:#b3261e;border-color:#e8a49e}
.admod-c.def-on{color:#7a8090}
.admod-c.def-off{color:#c9ccd6;background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(0,0,0,.04) 3px,rgba(0,0,0,.04) 6px)}
.admod-c.blind{background:#eef0f4;color:#7a8090;cursor:not-allowed}
body.dark .admod-c.on{background:#14301f;color:#8fd9aa;border-color:#2c6b45}
body.dark .admod-c.off{background:#3a2020;color:#f3a6a0;border-color:#7a3b35}
body.dark .admod-c.blind{background:#2f333c;color:#9aa0ad}
body.dark .admod-c.def-off{background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,255,255,.05) 3px,rgba(255,255,255,.05) 6px)}
.admod-t.on{color:#127a36}.admod-t.off{color:#b3261e}
body.dark .admod-t.on{color:#8fd9aa}body.dark .admod-t.off{color:#f3a6a0}

/* v171: salida por Excel de importados + aviso de los que volvieron */
.cat-exp-fila2{flex-basis:100%;margin-top:4px}
.cat-exp.xls{border-color:#127a36;color:#127a36}
.cat-exp.xls:hover{background:#127a36;color:#fff}
body.dark .cat-exp.xls{border-color:#3fbf77;color:#5cc98a}
body.dark .cat-exp.xls:hover{background:#2c6b45;color:#fff}
.cat-volv{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cat-volv-i{font-size:11.5px;background:rgba(0,0,0,.05);border-radius:7px;padding:2px 8px}
body.dark .cat-volv-i{background:rgba(255,255,255,.08)}

/* v172: pedidos de clientes (cola del vendedor) */
.ped-lista{display:flex;flex-direction:column;gap:8px}
.ped-card{border:2px solid #e6e6ee;border-radius:12px;background:var(--card,#fff);overflow:hidden}
body.dark .ped-card{background:#1a1d24;border-color:#2a2e3a}
.ped-card.rojo{border-color:#d8362b;box-shadow:0 0 0 1px rgba(216,54,43,.12)}
.ped-card.verde{border-color:#15924D}
.ped-card.gris{border-color:#c9ccd6;opacity:.75}
.ped-card-h{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;cursor:pointer;flex-wrap:wrap}
.ped-card-h:hover{background:rgba(0,0,0,.02)}
body.dark .ped-card-h:hover{background:rgba(255,255,255,.03)}
.ped-cli{font-size:15px}
.ped-acc{margin-left:auto;display:flex;gap:5px;flex-wrap:wrap}
.ped-items{padding:0 12px 12px}
.cat-vend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:6px;
  border-top:1px dashed var(--border,#d8dbe2);margin-top:4px}
.cat-vend .chk{font-size:12.5px}
.wa-badge-n{background:#d8362b;color:#fff;border-radius:999px;padding:0 6px;font-size:11px;font-weight:800}
.ped-cliente{margin-top:5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12.5px}
.ped-cli-ok{color:#15924D;font-weight:700}
body.dark .ped-cli-ok{color:#5cc98a}
.ped-cli-falta{color:#b3261e;font-weight:800}
body.dark .ped-cli-falta{color:#f2857c}
