:root{--primary:#e40078;--primary-soft:#ffe3f5;--fucsia:#ff2ab7;--amarillo:#ffed00;--cielo:#3498db;--cielo-soft:#e3f2fc;--azul-enlace:#236fa1;--lila:#ae95d9;--accent:#e03e2d;--accent-soft:#fde8e6;--success:#90bc44;--success-soft:#eef6e2;--success-ink:#3f6b12;--text:#2c3e50;--ink:#2c3e50;--bg:#fdfbff;--surface:#fff;--line:#e7e2f0;--muted:#616161;--warn-soft:#e3f2fc;--warn:#236fa1;--c1:#28a4d8;--c2:#f09034;--c3:#e40078;--c4:#90bc44;--c5:#642480;--c6:#1c70b4;--c7:#f0bc0c}
*{box-sizing:border-box}
body{margin:0;font-family:"Josefin Sans",system-ui,sans-serif;color:var(--text);background:var(--bg);font-size:16px}
h1,h2,h3,.brand{font-family:"Sora","Josefin Sans",sans-serif;color:var(--ink);margin:0;font-weight:700}
h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}
a{color:var(--primary)}
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
aside{background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column}
.brand img{height:42px;display:block;margin:2px 8px 18px}
nav a{display:flex;justify-content:space-between;padding:10px 12px;border-radius:10px;color:var(--text);text-decoration:none;font-weight:700;margin-bottom:3px;cursor:pointer}
nav a.on,nav a:hover{background:var(--primary-soft);color:var(--primary)}
.salir{margin-top:auto;font-size:13px;color:var(--muted);padding:8px 12px;cursor:pointer}
main{padding:22px 26px;min-width:0}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}
.yo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;cursor:pointer;border-top:6px solid var(--c1)}
.card .l{font-size:13px;color:var(--muted)}.card .v{font-family:"Sora",sans-serif;font-weight:700;font-size:28px;color:var(--ink)}
.card.alerta{border-color:var(--accent)}.card.alerta .v{color:var(--accent)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;margin-bottom:16px}
.ph{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}
th{color:var(--muted);font-weight:700;font-size:12px}
tr.fila{cursor:pointer}tr.fila:hover{background:#f1f7fb}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.p-azul{background:var(--primary-soft);color:var(--primary)}.p-rojo{background:var(--accent-soft);color:var(--accent)}
.p-verde{background:var(--success-soft);color:var(--success-ink)}.p-ambar{background:var(--warn-soft);color:var(--warn)}.p-gris{background:#eef0f3;color:var(--text)}
.btn{border:0;border-radius:50px;padding:10px 20px;font:inherit;font-weight:700;cursor:pointer}
.btn:disabled{opacity:.5;cursor:default}
.b1{background:var(--primary);color:#fff}.b2{background:var(--accent);color:#fff}.b3{background:#fff;color:var(--primary);border:2px solid var(--primary)}.b4{background:var(--success-soft);color:var(--success-ink)}
.sm{padding:6px 11px;font-size:13px}
.fila-btn{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:10px;padding:9px 11px;width:100%;background:#fff;color:var(--ink)}
textarea{min-height:90px;resize:vertical}
label{font-size:13px;font-weight:700;color:var(--ink);display:block;margin:10px 0 4px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kv{display:grid;grid-template-columns:130px 1fr;gap:7px 10px;font-size:14px}.kv b{color:var(--ink)}
.stepper{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0 16px}
.step{flex:1;min-width:96px;padding:8px;border-radius:10px;background:#eef0f3;font-size:11px;font-weight:700;color:var(--muted);text-align:center}
.step.ok{background:var(--success-soft);color:var(--success-ink)}.step.now{background:var(--primary);color:#fff}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}
.tabs button{background:none;border:0;padding:10px 13px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}
.imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.imgs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:2px solid var(--primary-soft);cursor:pointer}
.nota{font-size:13px;color:var(--muted);margin-top:6px}
.aviso{background:var(--accent-soft);border-radius:12px;padding:12px;color:var(--ink);font-size:14px;margin-bottom:10px}
.aviso.azul{background:var(--primary-soft)}
.chat{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:7px;max-height:440px;overflow:auto;background:#fff}
.burbuja{padding:8px 12px;border-radius:12px;max-width:80%;font-size:14px;white-space:pre-wrap;word-wrap:break-word}
.burbuja.saliente{background:var(--primary-soft);align-self:flex-end}.burbuja.entrante{background:#f1f5f9}
.burbuja small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.burbuja.error{border:1px solid var(--accent)}
.componer{display:flex;gap:8px;margin-top:10px}
.linea{list-style:none;margin:0;padding:0}
.linea li{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.linea .f{font-size:12px;color:var(--muted)}.linea .d{color:var(--ink)}.linea small{color:var(--muted);display:block}
.conv{display:grid;grid-template-columns:280px 1fr;gap:16px}
.conv-lista div{padding:10px;border-radius:10px;cursor:pointer;border-bottom:1px solid var(--line)}
.conv-lista div.on,.conv-lista div:hover{background:var(--primary-soft)}
.conv-lista small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login .panel{width:100%;max-width:380px;padding:28px}
.login img{height:56px;display:block;margin:0 auto 18px}
.error{color:var(--accent);font-size:13px;margin-top:8px}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 18px;border-radius:12px;font-weight:700;z-index:50;max-width:90vw}
.hide{display:none!important}
.menu-movil{display:none}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  aside{position:sticky;top:0;z-index:10;flex-direction:row;align-items:center;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line)}
  .brand img{height:30px;margin:0}
  nav{display:none;position:absolute;top:48px;left:0;right:0;background:#fff;padding:10px;border-bottom:1px solid var(--line)}
  nav.abierto{display:block}
  .menu-movil{display:block;margin-left:auto;background:none;border:0;font-size:24px;color:var(--primary)}
  .salir{display:none}
  main{padding:16px}
  .g2,.conv{grid-template-columns:1fr}.g3{grid-template-columns:1fr}
  .kv{grid-template-columns:110px 1fr}
  .tabla-wrap{overflow-x:auto}
}
/* ===== Formularios (estilo general) ===== */
label{font-size:14px;font-weight:700;color:var(--ink);margin:12px 0 6px}
input,select,textarea{border:1.5px solid var(--line);padding:11px 13px;font-size:16px;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:#d3cbe2}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
input::placeholder,textarea::placeholder{color:#9aa3ad}
.btn:focus-visible,button:focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}
.error{font-weight:700}

/* ===== Nuevo pedido ===== */
.np{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.np-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.sec{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px}
.sec>header{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.sec>header h2{font-size:19px}
.sec>header p{margin:3px 0 0;color:var(--muted);font-size:14px}
.num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font:700 15px "Sora",sans-serif}
.campos{display:grid;gap:4px 16px}
.campos.c2{grid-template-columns:1fr 1fr}
.campo{display:flex;flex-direction:column;min-width:0}
.campo.ancho{grid-column:1/-1}
.campo label{margin:10px 0 6px}
.campo label i{color:var(--accent);font-style:normal}
.campo small{color:var(--muted);font-size:13px;margin-top:4px}
.pref{display:flex;align-items:stretch}
.pref span{display:grid;place-items:center;padding:0 12px;border:1.5px solid var(--line);border-right:0;border-radius:14px 0 0 14px;background:#f6f3fa;color:var(--muted);font-weight:700}
.pref input{border-radius:0 14px 14px 0}
.segmento{display:inline-flex;background:#f3eff8;border-radius:50px;padding:4px;gap:4px;margin-bottom:6px;flex-wrap:wrap}
.segmento button{border:0;background:none;border-radius:50px;padding:9px 16px;font:700 15px "Josefin Sans",sans-serif;color:var(--text);cursor:pointer}
.segmento button.on{background:#fff;color:var(--primary);box-shadow:0 1px 3px rgba(44,62,80,.15)}
.segmento.mini button{padding:5px 11px;font-size:14px}
.atenuado{opacity:.4;pointer-events:none}
.vacio{border:2px dashed var(--line);border-radius:16px;padding:22px;text-align:center;font-size:28px;margin-bottom:12px}
.vacio p{font-size:15px;color:var(--muted);margin:6px 0 0}
.linea{display:grid;grid-template-columns:84px 1fr;gap:14px;padding:14px;border:1px solid var(--line);border-radius:16px;margin-bottom:12px}
.linea img,.linea .sin-img{width:84px;height:84px;border-radius:12px;object-fit:cover;background:var(--primary-soft)}
.linea-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.linea-top b{font-family:"Sora",sans-serif;color:var(--ink);font-size:15px}
.quitar{border:1px solid var(--line);background:#fff;border-radius:50%;width:36px;height:36px;cursor:pointer;flex:none}
.quitar:hover{border-color:var(--accent);background:var(--accent-soft)}
.linea-campos{display:grid;grid-template-columns:minmax(0,1.4fr) 150px minmax(0,1fr);gap:12px}
.fijo{padding:11px 0;color:var(--ink)}
.stepper{display:flex;align-items:stretch}
.stepper button{width:38px;border:1.5px solid var(--line);background:#f6f3fa;font-size:18px;cursor:pointer;color:var(--ink)}
.stepper button:first-child{border-radius:14px 0 0 14px;border-right:0}.stepper button:last-child{border-radius:0 14px 14px 0;border-left:0}
.stepper input{border-radius:0;text-align:center;width:100%;min-width:0;-moz-appearance:textfield}
.enlace{background:none;border:0;color:var(--primary);font-weight:700;cursor:pointer;padding:10px 0 0;font-size:15px}
.np-resumen{position:sticky;top:16px}
.resumen{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;border-top:6px solid var(--fucsia)}
.resumen h2{font-size:19px;margin-bottom:12px}
.resumen .fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.resumen .fila.total{border-bottom:0;font:700 20px "Sora",sans-serif;color:var(--ink);padding-top:12px}
.resumen .desc{flex-wrap:wrap}
.desc-in{display:flex;gap:6px;align-items:center}
.desc-in .segmento{margin:0}
.desc-in input{width:90px;padding:7px 10px}
.faltan{list-style:none;margin:12px 0 0;padding:10px 12px;background:var(--accent-soft);border-radius:12px;font-size:14px;color:var(--ink)}
.faltan:empty{display:none}
.faltan li.titulo{font-weight:700;color:var(--accent)}
.faltan li:not(.titulo)::before{content:"• "}
.btn.bloque{width:100%;margin-top:14px;padding:13px}
/* Panel lateral de productos */
.drawer-fondo{position:fixed;inset:0;background:rgba(44,62,80,.35);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);background:var(--surface);z-index:41;display:flex;flex-direction:column;box-shadow:-8px 0 24px rgba(44,62,80,.15)}
.drawer>header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.drawer .cerrar{border:0;background:none;font-size:20px;cursor:pointer;color:var(--muted)}
.drawer-filtros{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.filtros{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.filtros select{padding:8px 10px;font-size:14px}
.drawer-lista{flex:1;overflow-y:auto}
.prod{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);cursor:pointer;margin:0;font-weight:400}
.prod:hover{background:#faf7fd}.prod.on{background:var(--primary-soft)}
.prod img,.prod .sin-img{width:64px;height:64px;border-radius:12px;object-fit:cover;background:var(--primary-soft)}
.prod-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.prod-info b{color:var(--ink);font-size:15px}
.prod-info small{color:var(--muted);font-size:13px}
.prod input{width:20px;height:20px;accent-color:var(--primary)}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{font-size:12px;font-weight:700;padding:2px 9px;border-radius:50px}
.badge.oculto{background:#fff4e0;color:#9a5b00}.badge.sinstock{background:var(--accent-soft);color:var(--accent)}
.drawer>footer{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--line)}
@media (max-width:1000px){.np{grid-template-columns:1fr}.np-resumen{position:static}}
@media (max-width:640px){.campos.c2,.linea-campos,.filtros{grid-template-columns:1fr}.linea{grid-template-columns:56px 1fr}.linea img,.linea .sin-img{width:56px;height:56px}}
.prod-linea{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.prod-linea img{width:44px;height:44px;border-radius:10px;object-fit:cover}
.prod-linea small{display:block;color:var(--muted)}
.segmento button:disabled{opacity:.4;cursor:not-allowed}
.check{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-weight:700;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--primary)}
/* Clientes */
.avatar-c{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-family:"Sora",sans-serif;font-weight:700;flex:none}
.chips-resumen{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.chips-resumen span{background:var(--surface);border:1px solid var(--line);border-radius:50px;padding:7px 14px;font-size:14px}
.chips-resumen b{font-family:"Sora",sans-serif;color:var(--primary)}
.buscador{display:flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid var(--line);border-radius:50px;padding:4px 16px;margin-bottom:16px}
.buscador input{border:0;box-shadow:none;padding:10px 0}
.buscador input:focus{box-shadow:none}
.cli-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.cli-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,transform .15s}
.cli-card:hover{border-color:var(--primary);transform:translateY(-2px)}
.cli-top{display:flex;gap:12px;align-items:center;min-width:0}
.cli-nombre{display:flex;flex-direction:column;min-width:0}
.cli-nombre b{font-family:"Sora",sans-serif;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-nombre small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-datos{display:flex;gap:12px;flex-wrap:wrap;font-size:14px}
.cli-stats{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;font-size:14px}
.cli-stats b{color:var(--ink)}
.cli-ultima{color:var(--muted)}
.cli-head{display:flex;align-items:center;gap:16px;margin:8px 0 18px;flex-wrap:wrap}
.cli-head h1{margin-bottom:2px}
.cli-acciones{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.cli-hist{display:flex;flex-direction:column;gap:6px}
.cli-orden{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;background:#faf7fd;border:1px solid var(--line);border-radius:12px;padding:9px 11px;font:inherit;color:inherit;text-align:left;cursor:pointer}
.cli-orden:hover{border-color:var(--primary)}
.cli-orden .pill{grid-column:1/-1;justify-self:start}
.busca-cli{display:flex;gap:8px}
.cli-encontrado{display:flex;gap:12px;align-items:center;background:var(--success-soft);border-radius:14px;padding:12px;margin:10px 0 4px;color:var(--ink)}
.cli-encontrado small{display:block;color:var(--success-ink)}
.cli-nuevo{background:#e3f2fc;border-radius:14px;padding:12px;margin:10px 0 4px;color:var(--ink)}
/* Formulario de cliente (estilo Agregar cliente de Tienda Nube) */
.tn-form{max-width:780px;margin:0 auto}
.tn-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px 22px;margin-bottom:16px}
.tn-card h2{font-size:20px;margin-bottom:6px}
.tn-card summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.tn-card summary::-webkit-details-marker{display:none}
.tn-card .chev{font-size:20px;color:var(--ink);transition:transform .2s}
.tn-card:not([open]) .chev{transform:rotate(180deg)}
.campos.c-num{display:grid;grid-template-columns:1fr 2fr;gap:4px 16px}
.opc{font-weight:400;color:var(--muted)}
.tn-acciones{justify-content:flex-end}
@media (max-width:640px){.campos.c-num{grid-template-columns:1fr}}

/* ===== Chat estilo WhatsApp ===== */
.wa{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
.wa-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f0f2f5;border-bottom:1px solid #e0e3e7}
.wa-quien{display:flex;flex-direction:column;min-width:0}
.wa-quien b{color:#111b21;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-quien small{color:#667781;font-size:13px}
.wa-head-acc{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.wa-modo{background:#fff;color:#111b21;border:1px solid #d1d7db;border-radius:50px;padding:7px 13px;font:600 13px -apple-system,"Segoe UI",sans-serif;cursor:pointer}
.wa-modo:hover{background:#f5f6f6}
.wa-atras{display:none;border:0;background:none;font-size:22px;cursor:pointer;color:#54656f}
.wa-aviso{background:#fff3cd;color:#111b21;font-size:13px;padding:7px 16px;text-align:center}
.wa-body{background-color:#efeae2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23d9d2c5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='26' r='7'/%3E%3Cpath d='M76 18l8 14h-16z'/%3E%3Cpath d='M124 22q10-10 20 0t-20 18'/%3E%3Cpath d='M20 84h18M29 75v18'/%3E%3Crect x='72' y='72' width='18' height='14' rx='3'/%3E%3Cpath d='M124 86l6 10 10-18'/%3E%3Cpath d='M30 132q8-12 16 0'/%3E%3Ccircle cx='86' cy='130' r='4'/%3E%3Cpath d='M126 128h20'/%3E%3C/g%3E%3C/svg%3E");padding:14px 7%;height:480px;overflow-y:auto;display:flex;flex-direction:column;gap:3px}
.wa-dia{text-align:center;margin:10px 0 6px}
.wa-dia span{background:#fff;color:#54656f;font-size:12.5px;padding:5px 12px;border-radius:8px;box-shadow:0 1px .5px rgba(11,20,26,.13);text-transform:capitalize}
.wa-msg{max-width:65%;padding:6px 8px 5px 9px;border-radius:8px;font-size:14.2px;line-height:1.4;color:#111b21;box-shadow:0 1px .5px rgba(11,20,26,.13);position:relative}
.wa-msg.entrante{background:#fff;align-self:flex-start;border-top-left-radius:0}
.wa-msg.saliente{background:#d9fdd3;align-self:flex-end;border-top-right-radius:0}
.wa-txt{white-space:pre-wrap;word-wrap:break-word}
.wa-meta{text-align:right;font-size:11px;color:#667781;margin-top:1px;float:right;margin-left:12px;position:relative;top:3px}
.wa-msg::after{content:"";display:block;clear:both}
.wa-check{color:#53bdeb;font-size:12px;letter-spacing:-3px;margin-left:3px}
.wa-err{margin-left:3px}
.wa-errtxt{clear:both;font-size:11px;color:var(--accent)}
.wa-autor{font-size:12.5px;font-weight:600;color:#06cf9c;margin-bottom:2px}
.wa-img{display:block;max-width:260px;max-height:260px;border-radius:6px;margin-bottom:3px}
.wa-doc{display:flex;align-items:center;gap:8px;background:rgba(11,20,26,.06);border-radius:6px;padding:9px 11px;margin-bottom:3px;color:#111b21;text-decoration:none}
.wa-doc span{font-size:22px}.wa-doc b{font-size:13px;word-break:break-all;font-weight:600}
.wa-audio{display:block;width:260px;max-width:100%;height:40px;margin-bottom:3px}
.wa-input{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#f0f2f5}
.wa-caja{flex:1;display:flex;align-items:flex-end;background:#fff;border-radius:50px;padding:2px 8px 2px 16px}
.wa-caja textarea{flex:1;border:0;box-shadow:none;border-radius:0;padding:11px 0;min-height:42px;max-height:120px;resize:none;font:15px -apple-system,"Segoe UI",sans-serif;background:transparent}
.wa-caja textarea:focus{box-shadow:none;border:0}
.wa-icon{background:none;border:0;font-size:22px;cursor:pointer;padding:6px;line-height:1;color:#54656f}
.wa-mas{font-size:26px;font-weight:300}
.wa-send{background:#00a884;color:#fff;border:0;border-radius:50%;width:44px;height:44px;font-size:19px;cursor:pointer;flex:none;display:grid;place-items:center}
.wa-send:hover{background:#008f72}
.wa-send:disabled{opacity:.5}
.wa-emojis{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px;padding:8px;background:#f0f2f5;border-top:1px solid #e0e3e7;max-height:170px;overflow-y:auto}
.wa-emojis button{background:none;border:0;font-size:22px;cursor:pointer;border-radius:8px;padding:4px}
.wa-emojis button:hover{background:#e2e5e9}
.wa-adj{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#e7f3ee;font-size:13px}
.wa-adj button{margin-left:auto;background:none;border:0;cursor:pointer;font-size:16px}
/* Dos paneles */
.cv{display:grid;grid-template-columns:380px minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:calc(100dvh - 150px);min-height:520px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.cv-izq{display:flex;flex-direction:column;border-right:1px solid #e9edef;min-width:0;min-height:0;overflow:hidden}
.cv-top{display:flex;align-items:baseline;justify-content:space-between;padding:16px 18px 6px}
.cv-top h1{font-size:22px}
.cv-buscar{margin:6px 14px 8px;background:#f0f2f5;border:0;padding:2px 14px}
.cv-chips{display:flex;gap:8px;padding:2px 14px 10px;flex-wrap:wrap}
.cv-chip{border:1px solid #e0e3e7;background:#fff;color:#54656f;border-radius:50px;padding:6px 13px;font:600 13.5px -apple-system,"Segoe UI",sans-serif;cursor:pointer}
.cv-chip.on{background:#d9fdd3;border-color:#d9fdd3;color:#0b6b4f}
.cv-n{font-size:12px;opacity:.85}
.cv-lista{flex:1;min-height:0;overflow-y:auto}
.cv-item{display:flex;gap:13px;align-items:center;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #f0f2f5;padding:11px 16px;cursor:pointer;font:inherit;color:inherit}
.cv-item:hover{background:#f5f6f6}.cv-item.on{background:#f0f2f5}
.cv-cuerpo{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cv-fila{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cv-fila b{color:#111b21;font:600 16px -apple-system,"Segoe UI",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-hora{font-size:12px;color:#667781;flex:none}.cv-hora.nuevo{color:#00a884;font-weight:700}
.cv-previa{color:#667781;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:-apple-system,"Segoe UI",sans-serif}
.cv-badge{background:#25d366;color:#fff;border-radius:50px;min-width:21px;height:21px;padding:0 6px;font:700 12px -apple-system,sans-serif;display:grid;place-items:center;flex:none}
.cv-der{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:#f0f2f5}
.cv-der .wa{flex:1;min-height:0;border:0;border-radius:0;height:auto}
.cv-der .wa-body{flex:1 1 0;min-height:0;height:auto;overflow-y:auto}
.cv-vacio{margin:auto;text-align:center;padding:30px;color:#667781;max-width:380px}
.cv-vacio img{height:60px;margin-bottom:12px}
.cv-vacio h2{color:#41525d;margin-bottom:6px}
@media (max-width:860px){
  .cv{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 130px)}
  .cv-der{display:none}.cv.abierto .cv-izq{display:none}.cv.abierto .cv-der{display:flex}
  .wa-atras{display:block}.wa-msg{max-width:85%}.wa-body{padding:12px 4%}
  .wa-head-acc .wa-modo{padding:6px 10px;font-size:12px}
}

/* Catálogo agrupado por producto */
.ct-barra{display:grid;grid-template-columns:1.6fr 1.2fr 1.1fr 1.2fr;gap:10px}
.ct-barra input,.ct-barra select{width:100%;margin:0}
.ct-resumen{margin:14px 2px 8px;color:var(--muted,#666);font-size:14px}.ct-resumen b{color:var(--text,#222)}
.ct-tabla{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ct-fila{display:grid;grid-template-columns:minmax(0,3fr) 110px 110px minmax(120px,1.3fr) 90px;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line)}
.ct-cab{border-top:0;background:#faf7f9;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#777;padding-top:12px;padding-bottom:12px}
.ct-prod>.ct-fila{cursor:pointer}.ct-prod>.ct-fila:hover{background:#fdf5f9}
.ct-nom{display:flex;align-items:center;gap:12px;min-width:0}
.ct-nom img,.ct-sin{width:48px;height:48px;border-radius:10px;object-fit:cover;flex:none;background:#f1ecef}
.ct-nom>span{display:flex;flex-direction:column;min-width:0}
.ct-nom b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-nom small,.ct-fila small{color:#888;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-precio{font-weight:700}
.ct-var{display:flex;align-items:center;gap:6px;font-weight:700}.ct-var i{font-style:normal;color:var(--primary);transition:transform .15s}
.ct-prod.abierto .ct-var i{transform:rotate(180deg)}
.badge.pub{background:#e6f6ec;color:#1b7a3e;font-style:normal}.badge{font-style:normal}
.ct-det{display:none;background:#faf7f9;border-top:1px solid var(--line);padding:6px 16px 10px 76px}
.ct-prod.abierto .ct-det{display:block}
.ct-v{display:grid;grid-template-columns:minmax(0,2fr) 1.2fr 1fr 1.2fr;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px}
.ct-v:last-child{border-bottom:0}.ct-v b{text-align:right}.ct-v s{color:#999;font-weight:400}
.ct-mas{display:block;margin:14px auto}
@media(max-width:800px){
  .ct-barra{grid-template-columns:1fr 1fr}.ct-barra input{grid-column:1/-1}
  .ct-cab{display:none}
  .ct-fila{grid-template-columns:1fr 1fr;gap:6px 12px}.ct-nom{grid-column:1/-1}
  .ct-fila>span[data-l]::before{content:attr(data-l)": ";color:#888;font-size:12px;font-weight:400}
  .ct-det{padding-left:16px}.ct-v{grid-template-columns:1fr 1fr}.ct-v b{text-align:left}
}
@media(max-width:520px){.ct-barra{grid-template-columns:1fr}}

/* Mensajes de WhatsApp editables */
.msg-grupo{margin:22px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--primary)}
.msg{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px;background:#fff}
.msg-cab{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}
.msg-cab b{display:block}.msg-cab small{display:block;color:#777;margin-top:2px}
.msg-sw{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;margin:0}
.msg-sw input{width:auto;margin:0}
.msg-cuerpo{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px}
.msg-edit textarea{width:100%;margin:0;min-height:96px;resize:vertical}
.msg-pie{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px;font-size:12px;color:#777}
.chip-var{border:1px solid var(--line);background:#faf7f9;border-radius:50px;padding:2px 9px;font-size:12px;margin-left:4px;cursor:pointer;color:var(--primary)}
.chip-var:hover{background:#fde3f0}
.enlace-btn{background:none;border:0;color:var(--primary);cursor:pointer;font-size:12px;text-decoration:underline;padding:0}
.msg-prev{background:#ECE5DD;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.msg-prev small{color:#6b6b6b;font-size:11px}
.wa-burbuja{background:#fff;border-radius:8px;padding:7px 10px;font-size:13px;line-height:1.4;color:#111;max-width:100%;overflow-wrap:anywhere}
@media(max-width:800px){.msg-cuerpo{grid-template-columns:1fr}.msg-cab{flex-direction:column}}
.prueba-chat{max-height:420px;overflow-y:auto;margin:8px 0}
.prueba-chat .wa-burbuja{align-self:flex-start;max-width:85%}
.prueba-chat .wa-burbuja.yo{align-self:flex-end;background:#DCF8C6}
.prueba-barra{display:flex;gap:8px}
.prueba-barra input{flex:1;margin:0}

/* Formulario público de personalización (personalizar.html) */
.fp{max-width:640px;margin:0 auto;padding:20px 16px 48px}
.fp-cab{text-align:center;margin-bottom:18px}
.fp-cab img{height:56px}
.fp-cab h1{font-family:Sora,sans-serif;font-size:24px;color:var(--primary);margin:10px 0 4px}
.fp-cab p{margin:0;color:var(--muted)}
.fp-aviso{text-align:center;line-height:1.5}
.fp-ok{background:var(--success-soft);color:var(--success-ink)}
.fp .panel p{line-height:1.5;margin:0 0 10px}
.fp a{color:var(--azul-enlace);font-weight:700}
.fp-kv{margin-top:6px}
.fp-bloque{border:1px solid var(--line);min-width:0}
.fp-prod{display:flex;gap:12px;align-items:center;margin-bottom:4px}
.fp-prod img{width:52px;height:52px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.fp-prod small{display:block;color:var(--muted);margin-top:2px}
.fp-copiar{margin:8px 0 2px}
.fp-acepto{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;line-height:1.45;margin:0}
.fp-acepto input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--primary)}
.pers-prod{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.pers-reg{margin-top:8px;padding:10px;border-radius:12px;background:var(--bg)}
a.btn{text-decoration:none;display:inline-block}
.g2>*{min-width:0}
.kv span{min-width:0;overflow-wrap:anywhere}

/* Etapas y atributos de la orden */
.p-lila{background:#efe8fa;color:var(--c5)}
.chips{display:inline-flex;gap:5px;flex-wrap:wrap;vertical-align:middle}
.chips-cab{margin:-6px 0 14px}
td .chips{margin-top:4px}

/* Bitácora de la orden */
.bit-filtros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 14px}
.bit-filtros .campo label{margin:8px 0 4px;font-size:13px}
.bit-filtros input,.bit-filtros select{padding:8px 10px;font-size:14px}
.bit-barra{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0 6px}
.bit-check{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;font-size:14px}
.bit-check input{width:18px;height:18px;accent-color:var(--primary)}
.bit-barra .nota{margin:0}
.bit-barra .enlace-btn{margin-left:auto}
.bit-tabla{table-layout:fixed}.bit-tabla td{line-height:1.4;overflow-wrap:anywhere}
.bit-tabla th:nth-child(1){width:150px}.bit-tabla th:nth-child(2){width:170px}
.bit-fecha b{display:block;font-size:13px;white-space:nowrap}.bit-fecha span{font-size:12px;color:var(--muted)}
.bit-evento b{display:block;color:var(--ink);margin-bottom:4px}
.bit-evento .pill{font-size:11px}
.bit-detalle ul{margin:0;padding-left:16px}.bit-detalle li{margin:1px 0}
.bit-quien{display:block;color:var(--muted);font-size:12px;font-style:normal;margin-top:3px}
.bit-alerta{background:var(--accent-soft)}
@media (max-width:900px){.bit-filtros{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .bit-filtros{grid-template-columns:1fr 1fr}
  .bit-tabla thead{display:none}
  .bit-tabla,.bit-tabla tbody,.bit-tabla tr,.bit-tabla td{display:block;width:100%}
  .bit-tabla tr{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:10px}
  .bit-tabla td{border:0;padding:3px 0}
  .bit-tabla{table-layout:auto}
  .bit-fecha b,.bit-fecha span,.bit-fecha .bit-quien{display:inline;margin-right:6px}
  .tabla-wrap:has(.bit-tabla){overflow:visible}
}

/* Configuración */
.medio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto auto;gap:4px 14px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.medio:last-child{border-bottom:0}
.medio-activo{margin-top:46px}.medio-quitar{margin-top:50px}
.medio-falta{color:var(--accent);font-weight:700;font-size:12px;margin-top:4px}
.msg-leyenda{margin:6px 0 10px;padding-left:18px;line-height:1.7}
.guardar-barra{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;background:var(--bg);border-top:1px solid var(--line);z-index:5}
.guardar-barra .nota{margin:0}
@media (max-width:640px){.medio{grid-template-columns:1fr 1fr}.medio .campo{grid-column:1/-1}.medio-activo,.medio-quitar{margin-top:4px}}
.modo-ayuda .nota{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:10px}
.horas-fila{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.horas-fila input{max-width:110px}

/* Aviso de chats esperando a una asesora */
.aviso-asesora{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:50px;padding:8px 16px;background:var(--accent);color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(224,62,45,.3)}
.aviso-asesora:hover{filter:brightness(1.05)}
.aviso-asesora b{font-size:16px}
.aviso-punto{width:9px;height:9px;border-radius:50%;background:#fff;animation:latido 1.4s ease-in-out infinite}
.aviso-asesora.nuevo{animation:sacudir .5s ease-in-out 3}
@keyframes latido{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@keyframes sacudir{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){.aviso-punto,.aviso-asesora.nuevo{animation:none}}
.aviso-asesora{white-space:nowrap}
@media (max-width:640px){.top{flex-wrap:wrap}#aviso-asesora{order:2;width:100%}#aviso-asesora:empty{display:none}.aviso-asesora{width:100%;justify-content:center;font-size:13px;padding:8px 12px}}

/* Editor del menú de WhatsApp */
.mn-editor{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:start}
.mn-prev{position:sticky;top:12px}
.mn-op{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:12px 0;background:var(--bg)}
.mn-op-cab{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mn-num{font-size:20px}
.mn-op-acc{display:flex;gap:12px}
.mn-op-acc .enlace-btn:disabled{opacity:.35;cursor:default;text-decoration:none}
@media (max-width:900px){.mn-editor{grid-template-columns:1fr}.mn-prev{position:static}}
.u-bloqueo{display:block;color:var(--muted);font-size:12px;margin-top:4px;max-width:260px}
.bit-evento .bit-detalle{display:block;color:var(--text);font-weight:400;margin-top:2px}

/* «Pendiente» en naranja */
.p-naranja{background:#fff1e0;color:#b85c00}

/* Inicio: tareas, embudo por etapa y resumen del mes */
.tarea{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;width:100%;text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-left:5px solid #f09034;border-radius:14px;padding:12px 14px;margin-bottom:10px;cursor:pointer}
.tarea:hover{border-color:#f09034;background:#fffaf4}
.tarea-n{font-family:Sora,sans-serif;font-size:26px;font-weight:700;color:#b85c00;text-align:center}
.tarea b{display:block;font-size:15px}
.tarea small{display:block;color:var(--muted);font-size:13px;margin-top:2px;line-height:1.35}
.tarea-ir{color:var(--primary);font-weight:700;font-size:13px;white-space:nowrap}
.tarea-chat{border-left-color:var(--accent)}.tarea-chat .tarea-n{color:var(--accent)}
.al-dia{margin-top:6px}
.embudo{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap}
.etapa-c{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;font:inherit;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;text-align:left}
.etapa-c:hover{border-color:var(--primary)}
.etapa-c b{font-family:Sora,sans-serif;font-size:26px;color:var(--ink)}
.embudo-flecha{align-self:center;color:var(--muted);font-size:22px}
.mes-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.mes-kpi div{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:12px}
.mes-kpi span{display:block;color:var(--muted);font-size:13px}
.mes-kpi b{display:block;font-family:Sora,sans-serif;font-size:20px;margin-top:4px;color:var(--ink)}
.filtros-ord{display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:4px 16px;margin-bottom:10px}
@media (max-width:760px){.mes-kpi{grid-template-columns:1fr 1fr}.embudo-flecha{display:none}.etapa-c{min-width:calc(50% - 6px)}.filtros-ord{grid-template-columns:1fr}.tarea{grid-template-columns:40px 1fr}.tarea-ir{display:none}}

/* ===== Dashboards (analítica de ventas y gestión de pedidos) ===== */
/* Colores de datos: paleta validada para daltonismo (azul #2a78d6, naranja #eb6834, rampa azul); el texto siempre en tinta. */
.viz-filtros{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 14px 12px;margin:10px 0 16px}
.viz-filtros .campo{min-width:150px}
.viz-filtros .campo label{margin:4px 0 4px;font-size:12px;color:var(--muted)}
.viz-filtros select,.viz-filtros input{padding:7px 10px;font-size:14px}
.viz-check{margin-bottom:8px}
#viz-cuerpo{transition:opacity .2s}
#viz-cuerpo.cargando{opacity:.45;pointer-events:none}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.kpi-alerta{border-color:#f0b3b3;background:#fff8f8}
.kpi-t{font-size:13px;color:var(--muted);font-weight:600}
.kpi-v{font-size:26px;font-weight:700;color:#0b0b0b;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.15}
.kpi-delta{font-size:12px;font-weight:600}
.kpi-delta.bueno{color:#006300}.kpi-delta.malo{color:#d03b3b}.kpi-delta.neutro{color:#898781;font-weight:500}
.kpi-n{font-size:12px;color:#52514e}
.viz-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.viz-card{background:#fcfcfb;border:1px solid var(--line);border-radius:18px;padding:16px;min-width:0}
.viz-card.ancho{grid-column:1/-1}
.viz-card header{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}
.viz-card h3{font-size:16px;margin:0}
.viz-card header .nota{margin-top:3px}
.viz-svg{width:100%;height:auto;display:block;overflow:visible}
.viz-grid{stroke:#e1e0d9;stroke-width:1}
.viz-base{stroke:#c3c2b7;stroke-width:1}
.viz-eje{font-size:11px;fill:#898781;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.col path{transition:opacity .12s}
.col:hover path,.col:focus path{opacity:.78}
.col:focus{outline:none}
.viz-cruz{stroke:#898781;stroke-width:1;stroke-dasharray:3 3;opacity:0}
.franja:hover .viz-cruz,.franja:focus .viz-cruz{opacity:1}
.franja:focus{outline:none}
.viz-punto{opacity:0;pointer-events:none}
.franja:hover .viz-punto,.franja:focus .viz-punto{opacity:1}
.viz-leyenda{display:flex;gap:16px;font-size:13px;color:#52514e;margin-bottom:6px}
.viz-leyenda i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.bh{display:flex;flex-direction:column;gap:6px}
.bh-fila{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr) auto;align-items:center;gap:10px;padding:3px 4px;border-radius:8px;cursor:default}
.bh-fila:hover,.bh-fila:focus{background:#f3f2ef;outline:none}
.bh-etq{font-size:13px;color:#0b0b0b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bh-pista{height:14px;display:flex;align-items:center}
.bh-barra{display:block;height:14px;border-radius:0 4px 4px 0;min-width:2px}
.bh-val{font-size:13px;font-weight:700;color:#0b0b0b;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.bh-val small{display:block;font-weight:500;color:#898781;font-size:11px}
.calor{display:grid;gap:3px;font-size:12px}
.calor-c{color:#898781;text-align:center;padding-bottom:2px}
.calor-f{color:#52514e;padding-right:8px;align-self:center}
.calor-celda{min-height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-weight:600;font-variant-numeric:tabular-nums}
.calor-celda:hover,.calor-celda:focus{outline:2px solid #0b0b0b;outline-offset:-2px}
.viz-tabla th,.viz-tabla td{font-size:13px}
.viz-tabla .dato-num{text-align:right;font-variant-numeric:tabular-nums}
.viz-tip{position:fixed;z-index:50;pointer-events:none;background:#0b0b0b;color:#f0efec;border-radius:10px;padding:8px 10px;font-size:12px;max-width:280px;box-shadow:0 6px 20px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:2px}
.viz-tip b{font-size:14px;color:#fff}
.viz-tip span{color:#c3c2b7}
.viz-tip.hide{display:none}
@media (max-width:900px){.viz-grid2{grid-template-columns:1fr}}
@media (max-width:640px){.kpis{grid-template-columns:1fr 1fr}.kpi-v{font-size:21px}.viz-filtros .campo{min-width:calc(50% - 8px)}.bh-fila{grid-template-columns:minmax(80px,40%) minmax(0,1fr) auto}}
.bh-nota{grid-column:1/-1;margin-top:-3px;color:#52514e;font-size:12px}

/* Órdenes de compra: filtros, columnas y páginas */
.ord-filtros .campo label{margin:4px 0 4px;font-size:12px;color:var(--muted)}
.ord-filtros select,.ord-filtros input{padding:8px 10px;font-size:14px}
.ord-fila{display:grid;grid-template-columns:minmax(220px,2.2fr) repeat(3,minmax(140px,1fr));gap:4px 14px}
.ord-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.ord-mas{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ord-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px}
.chip-filtro{border:1px solid #f0c9de;background:var(--primary-soft);color:var(--primary);border-radius:50px;padding:5px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.chip-filtro:hover{background:#ffd3ee}
.col-picker{position:relative}
.col-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.12);padding:10px 14px;min-width:230px;display:flex;flex-direction:column;gap:6px}
.col-menu .bit-check{font-weight:500}
.ord-tabla th{white-space:nowrap}
.ord-tabla .dato-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ord-tabla .col-productos{min-width:200px;max-width:300px}
.ord-tabla .col-fecha{white-space:nowrap}
.recorte{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.th-orden{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--primary);cursor:pointer}
.paginas{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.paginas .nota{margin:0}
.limpiar-barra{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.limpiar-barra select{max-width:300px;padding:7px 10px;font-size:14px}
@media (max-width:760px){.ord-fila{grid-template-columns:1fr 1fr}.ord-q{grid-column:1/-1}}

/* Campañas en el catálogo */
.ct-camps{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.ct-sel{margin-right:10px;flex:none;width:18px;height:18px}
.ct-camp-edit{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:8px 0 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.ct-masivo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0}
.ct-masivo select{min-width:200px}
.ct-alerta{color:#a15c00;font-weight:600}

/* Ver como */
.vc-aviso{position:sticky;top:0;z-index:30;background:var(--amarillo);color:var(--ink);border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.vc-menu{left:auto;right:0;min-width:240px}
.vc-menu .btn{text-align:left;width:100%}

/* Catálogo en PDF (ventana de opciones) */
.pdf-velo{position:fixed;inset:0;background:rgba(44,62,80,.5);z-index:90;display:grid;place-items:center;padding:16px;overflow:auto}
.pdf-caja{width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;margin:0}
.pdf-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:10px 0}
.pdf-fila{display:flex;flex-direction:column;gap:4px;margin:8px 0}
@media (max-width:560px){.pdf-checks{grid-template-columns:1fr}}

/* Foto de cada variante en el detalle del producto (Catálogo) */
.ct-vn{display:flex;align-items:center;gap:8px}
.ct-vimg{width:34px;height:34px;object-fit:cover;border-radius:6px;flex:none}

label.chk{display:flex;align-items:center;gap:8px;margin-top:14px}
label.chk input{width:auto}

/* Formulario de personalización: nombres de los chiquis, una sola vez */
.fp-h{margin:0 0 6px;font-size:1.05rem}
.fp-nino{display:flex;gap:8px;margin:8px 0}
.fp-nino input{flex:1;min-width:0}
[hidden]{display:none!important}

/* Bitácora de órdenes en el detalle del cliente */
.bit-lista{display:flex;flex-direction:column}
.bit-fila{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line)}
.bit-fila:last-child{border-bottom:0}
.bit-fila small{display:block;color:var(--muted)}
.bit-fila > div{min-width:0}
@media (max-width:640px){.bit-fila{grid-template-columns:auto 1fr}.bit-fila > span{grid-column:1/-1}}
