:root{
  --cream:#FBF6EF;
  --cream-2:#F3EBDD;
  --sage:#9CB89A;
  --sage-dark:#74936F;
  --salmon:#F3B6A0;
  --salmon-dark:#DE8E73;
  --cheese:#F3D98B;
  --crust:#5B4A3D;
  --ink:#3B372F;
  --line:#E7DCC9;
  --white:#FFFFFF;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--cream);
  font-family:'Work Sans',sans-serif;
  color:var(--ink);
}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:600;color:var(--crust);margin:0;}

/* ---------- layout mobile (cliente) ---------- */
.app-shell{max-width:480px;margin:0 auto;min-height:100vh;background:var(--cream);padding-bottom:90px;}

.app-header{
  padding:18px 18px 14px;
  background:var(--sage);
  color:var(--white);
  border-radius:0 0 20px 20px;
}
.app-header .brand{font-family:'Fraunces',serif;font-weight:700;font-size:20px;}
.app-header-top{display:flex;justify-content:space-between;margin-bottom:4px;}
.app-header-center{display:flex;flex-direction:column;align-items:center;text-align:center;}
.vendor-logo{width:96px;height:96px;border-radius:22px;object-fit:cover;border:2px solid rgba(255,255,255,.5);margin-bottom:8px;}
.vendor-logo-placeholder{width:96px;height:96px;border-radius:22px;background:conic-gradient(var(--salmon) 0deg 300deg, var(--cheese) 300deg 360deg);border:2px solid rgba(255,255,255,.5);margin-bottom:8px;}
.vendor-logo-mini{width:32px;height:32px;border-radius:9px;object-fit:cover;flex-shrink:0;}
.vendor-logo-placeholder-mini{width:32px;height:32px;border-radius:9px;background:conic-gradient(var(--salmon) 0deg 300deg, var(--cheese) 300deg 360deg);flex-shrink:0;}
.barrio-chip{
  margin-top:8px;display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.22);padding:6px 10px;border-radius:999px;font-size:12px;font-weight:500;
}
.barrio-chip select{
  background:transparent;border:none;color:var(--white);font-size:12px;font-weight:600;
}
.barrio-chip select option{color:var(--ink);}

.app-body{padding:16px 18px 0;}
.section-title{font-size:15px;margin:14px 0 10px;}

/* pizza card */
.pizza-card{
  display:flex;align-items:center;gap:12px;background:var(--white);
  border:1px solid var(--line);border-radius:16px;padding:10px;margin-bottom:10px;
}
.pizza-thumb{
  width:52px;height:52px;border-radius:50%;flex-shrink:0;position:relative;
  background:conic-gradient(var(--salmon) 0deg 300deg, var(--cheese) 300deg 360deg);
}
.pizza-thumb::after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--cream);border:1px dashed var(--salmon-dark);}
.pizza-thumb-img{object-fit:cover;}
.pizza-info{flex:1;min-width:0;}
.pizza-info .name{font-weight:600;font-size:13.5px;}
.pizza-info .price{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--sage-dark);margin-top:2px;}
.stock-tag{display:inline-block;margin-top:4px;font-size:10.5px;font-family:'IBM Plex Mono',monospace;padding:2px 6px;border-radius:6px;background:var(--cream-2);color:#8A7F6E;}
.stock-tag.low{background:#FBE3DC;color:var(--salmon-dark);}
.stock-tag.agotado{background:#F3D3D3;color:#A94444;}

.stepper{display:flex;align-items:center;gap:8px;background:var(--cream-2);border-radius:10px;padding:4px 6px;}
.stepper button{width:26px;height:26px;border-radius:6px;border:none;background:var(--white);color:var(--crust);font-size:15px;font-weight:700;cursor:pointer;}
.stepper input{width:26px;text-align:center;border:none;background:transparent;font-family:'IBM Plex Mono',monospace;font-size:13px;}

.float-cart{
  position:fixed;bottom:16px;left:50%;transform:translateX(-50%);
  width:calc(480px - 36px);max-width:calc(100% - 36px);
  background:var(--crust);color:var(--white);border-radius:14px;padding:12px 16px;
  display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;
  box-shadow:0 10px 20px -8px rgba(59,55,47,.5);border:none;cursor:pointer;
}
.float-cart .cta{background:var(--salmon);padding:6px 12px;border-radius:999px;font-size:12px;color:var(--crust);}

/* botón flotante secundario (ej. "Volver al catálogo" en Mis pedidos) --
   misma posición/tamaño que .float-cart. Antes era blanco ("ghost"), pero
   se perdía contra el fondo blanco de las tarjetas de pedido (reportado
   así) -- pasa al mismo sage pastel que el header (.app-header), que ya
   se ve claro y contrasta bien sin ser tan fuerte como .float-cart. */
.float-back{
  position:fixed;bottom:16px;left:50%;transform:translateX(-50%);
  width:calc(480px - 36px);max-width:calc(100% - 36px);
  background:var(--sage);color:var(--white);border:none;border-radius:14px;padding:12px 16px;
  display:flex;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;
  box-shadow:0 10px 20px -8px rgba(59,55,47,.3);cursor:pointer;text-decoration:none;
}

/* toast (aviso flotante) */
.toast{
  position:fixed;bottom:82px;left:50%;transform:translateX(-50%) translateY(16px);
  background:var(--crust);color:var(--white);padding:11px 18px;border-radius:12px;
  font-size:13px;font-weight:600;box-shadow:0 10px 20px -8px rgba(59,55,47,.55);
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200;
  max-width:calc(100% - 36px);text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* checkout */
.field{margin-bottom:14px;}
.field label{display:block;font-size:11.5px;font-weight:600;color:#8A7F6E;margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em;}
.input-box, select.input-box{
  width:100%;background:var(--white);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;font-size:13px;color:var(--ink);font-family:'Work Sans',sans-serif;
}
/* El texto de ejemplo (placeholder) sin esto queda casi tan oscuro como un
   valor real tipeado -- confunde, parece que el campo ya tiene algo cargado
   (reportado así en el de franjas horarias, pero aplica a cualquier input
   con placeholder). opacity:1 explícito porque Firefox aplica su propia
   opacidad default distinta a la de Chrome/Safari -- sin esto el tono queda
   inconsistente entre navegadores. */
.input-box::placeholder{color:#A79E8E;opacity:1;}
.tel-input{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--white);}
.tel-prefijo{display:flex;align-items:center;padding:10px 12px;background:var(--cream-2);color:var(--crust);font-size:13px;font-weight:700;white-space:nowrap;}
.tel-input input{flex:1;min-width:0;border:none;background:transparent;padding:10px 12px;font-size:13px;color:var(--ink);font-family:'Work Sans',sans-serif;}
.tel-input input:focus{outline:none;}

.chip-row{display:flex;gap:8px;flex-wrap:wrap;}
.day-chip{padding:8px 12px;border-radius:10px;font-size:12.5px;font-weight:600;background:var(--white);border:1px solid var(--line);color:var(--ink);cursor:pointer;}
.day-chip input{display:none;}
.day-chip.selected, .day-chip:has(input:checked){background:var(--sage);border-color:var(--sage);color:var(--white);}

/* filtro de categorías del directorio de comercios */
.filtro-chip{padding:7px 14px;border-radius:999px;font-size:12px;font-weight:600;background:var(--white);border:1px solid var(--line);color:var(--ink);cursor:pointer;font-family:'Work Sans',sans-serif;}
.filtro-chip.activo{background:var(--sage);border-color:var(--sage);color:var(--white);}
.oauth-btn.con-categoria{flex-direction:column;gap:2px;}
.categoria-tag-list{font-size:11px;font-weight:500;color:#8A7F6E;}

.summary-line{display:flex;justify-content:space-between;font-size:13px;padding:8px 0;border-bottom:1px dashed var(--line);}
.summary-line.total{font-weight:700;border-bottom:none;color:var(--crust);}
.verify-badge{display:flex;align-items:center;gap:8px;background:#EAF2E8;color:var(--sage-dark);border-radius:10px;padding:10px 12px;font-size:12px;font-weight:600;}
.dot{width:8px;height:8px;border-radius:50%;background:var(--sage-dark);}

/* Aviso de error del checkout (stock/cobertura/día no disponible) -- mismo
   fondo/color que ya usaban los banners de error sueltos del resto del
   sitio, pero con ícono + borde de acento para que se note más de entrada
   (antes era un bloque de texto plano, se perdía arriba de la página). */
.checkout-error{display:flex;align-items:flex-start;gap:8px;background:#F3D3D3;color:#A94444;border-left:3px solid var(--salmon-dark);border-radius:10px;padding:10px 12px;font-size:12.5px;margin-bottom:14px;}
.checkout-error .icon{flex-shrink:0;line-height:1.4;}

.btn-primary{display:block;width:100%;text-align:center;background:var(--sage);color:var(--white);border:none;border-radius:12px;padding:13px;font-weight:700;font-size:14px;font-family:'Work Sans',sans-serif;cursor:pointer;margin-top:6px;}
.btn-ghost{display:block;width:100%;text-align:center;background:transparent;color:var(--crust);border:1px solid var(--line);border-radius:12px;padding:11px;font-weight:600;font-size:13px;cursor:pointer;margin-top:8px;text-decoration:none;}

/* login */
.login-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 26px 40px;}
.login-logo{width:88px;height:88px;border-radius:20px;background:conic-gradient(var(--salmon) 0deg 300deg, var(--cheese) 300deg 360deg);position:relative;margin-bottom:18px;}
.login-logo::after{content:"";position:absolute;inset:8px;border-radius:14px;background:var(--cream);border:1px dashed var(--salmon-dark);}
/* Logo real de la plataforma (cuando el admin lo cargó) -- mismo tamaño que
   el placeholder de arriba, sin el recuadro punteado decorativo. */
.login-logo-img{width:88px;height:88px;border-radius:20px;object-fit:cover;margin-bottom:18px;}
.login-wrap h2{font-size:20px;margin-bottom:6px;}
.login-wrap .lead{font-size:13px;color:#8A7F6E;line-height:1.5;margin:0 0 28px;max-width:300px;}
.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:13px;font-weight:600;font-size:13.5px;color:var(--ink);text-decoration:none;margin-bottom:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.oauth-btn:hover{border-color:var(--sage);box-shadow:0 4px 12px -6px rgba(59,55,47,.25);}
.oauth-btn svg{width:20px;height:20px;flex-shrink:0;}
.login-fineprint{font-size:11px;color:#A79E8E;line-height:1.5;margin-top:14px;max-width:300px;}

/* confirmacion */
.confirm-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 24px;}
.check-circle{width:64px;height:64px;border-radius:50%;background:var(--sage);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px;}
.confirm-wrap h3{font-size:18px;margin:0 0 6px;}
.confirm-wrap p{font-size:13px;color:#8A7F6E;margin:0 0 18px;line-height:1.5;}
.confirm-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:14px;width:100%;text-align:left;font-size:12.5px;}

/* ---------- layout dashboard (vendedor) ---------- */
.dash-shell{display:flex;min-height:100vh;}
.dash-side{width:190px;background:var(--sage);color:var(--white);padding:22px 16px;flex-shrink:0;}
.dash-side .brand{font-family:'Fraunces',serif;font-weight:700;font-size:17px;display:flex;align-items:center;gap:8px;}
.dash-side-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.side-toggle-checkbox{display:none;}
.side-toggle-btn{display:none;color:var(--white);font-size:20px;cursor:pointer;line-height:1;padding:4px 6px;}
.side-item{display:block;padding:9px 10px;border-radius:9px;font-size:13px;font-weight:600;margin-bottom:4px;color:#D9D0C3;cursor:pointer;text-decoration:none;}
.side-item.active{background:rgba(255,255,255,.14);color:var(--white);}
.dash-main{flex:1;padding:26px 32px;}
.dash-main .sub{font-size:12.5px;color:#8A7F6E;margin:4px 0 18px;}

/* en mobile, el sidebar arranca colapsado (solo la marca + ☰) para que se
   vea el contenido directo -- Envíos se usa sobre todo desde el celu */
@media (max-width: 768px){
    .dash-shell{flex-direction:column;}
    .dash-side{width:100%;box-sizing:border-box;padding:14px 16px;}
    .dash-side .brand{font-size:15px;}
    .dash-side-top{margin-bottom:0;}
    .side-toggle-btn{display:block;}
    #side-nav-links{display:none;padding-top:14px;}
    .side-toggle-checkbox:checked ~ #side-nav-links{display:flex;flex-direction:column;}
    .dash-main{padding:18px 16px;}
    .stop{flex-wrap:wrap;}
}

.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:18px;}
.filtros input, .filtros select{border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:12.5px;font-family:'Work Sans',sans-serif;color:var(--ink);background:var(--cream);}

/* aviso de pedidos con fecha de entrega vencida -- rojo suave, no un error duro */
.aviso-vencidos{display:flex;align-items:flex-start;gap:10px;background:#F8E4E4;border:1px solid #EFC7C7;color:#A9605F;border-radius:12px;padding:12px 14px;font-size:12.5px;line-height:1.5;margin-bottom:16px;}
.aviso-vencidos-icono{font-size:15px;flex-shrink:0;}

textarea{width:100%;max-width:640px;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:12.5px;font-family:'IBM Plex Mono',monospace;color:var(--ink);background:var(--cream);box-sizing:border-box;resize:vertical;}
.btn-filtrar{background:var(--sage);color:var(--white);border:none;border-radius:9px;padding:9px 16px;font-weight:700;font-size:12.5px;cursor:pointer;}
.btn-limpiar{color:var(--crust);font-size:12px;text-decoration:none;padding:8px;}

.order-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(260px,1fr));gap:14px;}
.order-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:12px 14px;}
.order-card .row1{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;}
.order-card .cliente{font-weight:600;font-size:13px;}
.status-pill{font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;}
.status-pill.PENDIENTE{background:var(--cheese);color:#6B5A20;}
.status-pill.ENTREGADO{background:#D9ECD5;color:#4A7A46;}
.status-pill.CANCELADO{background:#F3D3D3;color:#A94444;}
.status-pill.NO_ENTREGADO{background:#F3D3C4;color:#A9633E;}
.status-pill.EN_CAMINO{background:#D6E4F0;color:#345F82;}
/* Reusa el mismo look que los estados de pedido, pero para el pill de
   "vendedor activo/inactivo" en /admin/vendedores -- clase propia para no
   depender de un estado de Pedido que ya no existe. */
.status-pill.ACTIVO{background:var(--sage);color:var(--white);}
.order-card .detail{font-size:12px;color:#8A7F6E;margin-bottom:2px;}
.order-card .items{font-family:'IBM Plex Mono',monospace;font-size:11.5px;margin-top:6px;}
/* Siempre visible (no solo al tildar), por eso más liviana que un panel:
   sin borde, fondo apenas distinto del de la página, todo un poco más chico. */
.repro-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:var(--cream-2);border-radius:10px;padding:7px 12px;margin-bottom:14px;font-size:11.5px;}
.repro-bar input[type=date], .repro-bar select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:11.5px;font-family:'Work Sans',sans-serif;background:var(--white);color:var(--ink);}
.repro-bar .btn-filtrar{padding:6px 12px;font-size:11px;}
.repro-check-all{display:flex;align-items:center;gap:6px;color:#8A7F6E;font-weight:600;cursor:pointer;}

.pedido-actions{display:flex;gap:8px;margin-top:10px;}
.pedido-actions form{margin:0;flex:1;}
.btn-accion{width:100%;border:none;border-radius:9px;padding:8px;font-size:11.5px;font-weight:700;cursor:pointer;}
.btn-accion.entregar{background:var(--sage);color:var(--white);}
.btn-accion.cancelar{background:#F3D3D3;color:#A94444;}
.btn-accion.reabrir{background:var(--cream-2);color:var(--crust);}
.btn-whatsapp{display:inline-flex;align-items:center;gap:5px;background:#25D366;color:var(--white);border-radius:999px;padding:3px 10px 3px 8px;font-size:10.5px;font-weight:700;text-decoration:none;white-space:nowrap;}
.btn-whatsapp::before{content:"💬";font-size:10px;}

/* modal de confirmación */
.modal-overlay{position:fixed;inset:0;background:rgba(59,55,47,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;}
.modal-card{background:var(--white);border-radius:16px;padding:24px 22px;max-width:340px;width:100%;text-align:center;box-shadow:0 20px 45px -12px rgba(59,55,47,.45);}
.modal-message{font-size:14.5px;color:var(--crust);margin:0 0 20px;line-height:1.5;}
.modal-actions{display:flex;gap:10px;}
.modal-btn{flex:1;border:none;border-radius:11px;padding:12px;font-weight:700;font-size:13px;cursor:pointer;font-family:'Work Sans',sans-serif;}
.modal-btn.confirmar{background:var(--sage);color:var(--white);}
.modal-btn.cancelar{background:var(--cream-2);color:var(--crust);}

/* mis productos */
.prod-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px;}
.prod-form input[type=text], .prod-form input[type=number]{border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:12.5px;font-family:'Work Sans',sans-serif;background:var(--cream);}
.prod-form input[type=text]{flex:1;min-width:160px;}
.prod-form input[type=file]{font-size:12px;}
.prod-thumb{width:56px;height:56px;border-radius:12px;object-fit:cover;flex-shrink:0;border:1px solid var(--line);}
.prod-thumb-empty{background:conic-gradient(var(--salmon) 0deg 300deg, var(--cheese) 300deg 360deg);}
.prod-card-edit input[type=text], .prod-card-edit input[type=number]{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:'Work Sans',sans-serif;background:var(--cream);color:var(--ink);}
.prod-card-edit input[type=number]{min-width:0;}
.prod-card-edit input[type=file]{font-size:11.5px;}

.stock-panel{margin-top:28px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px;max-width:420px;}
.stock-panel h3{font-size:14.5px;margin:0 0 12px;}
.stock-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line);}
.stock-row:last-child{border-bottom:none;}
.stock-left{display:flex;align-items:center;gap:10px;}
.mini-pizza{width:26px;height:26px;border-radius:50%;background:conic-gradient(var(--salmon) 0deg 300deg, var(--cheese) 300deg 360deg);}
.stock-num{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;}
.stock-num.low{color:var(--salmon-dark);}

/* logistica */
/* Envíos: una tarjeta por envío en camino (puede haber más de uno a la vez) */
.envio-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:24px;max-width:560px;}
.envio-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;}
.envio-card-titulo{font-family:'Fraunces',serif;font-weight:700;font-size:15px;}
.envio-card-hora{font-size:11px;color:#8A7F6E;}
.envio-completado-banner{display:flex;align-items:center;gap:8px;background:#D9ECD5;color:#4A7A46;border-radius:10px;font-size:13px;font-weight:600;opacity:0;max-height:0;padding:0 14px;margin-bottom:0;overflow:hidden;transition:opacity .3s ease,max-height .3s ease,padding .3s ease,margin-bottom .3s ease;}
.envio-completado-banner.show{opacity:1;max-height:60px;padding:10px 14px;margin-bottom:12px;}

.envio-historial-item{margin-top:10px;padding:10px 12px;background:var(--white);border:1px solid var(--line);border-radius:10px;max-width:560px;}
.envio-historial-item summary{cursor:pointer;font-size:12.5px;color:var(--ink);}

.route-summary{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;}
.route-stat{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:10px 16px;}
.route-stat .num{font-family:'IBM Plex Mono',monospace;font-size:17px;font-weight:600;color:var(--crust);}
.route-stat .lbl{font-size:10.5px;color:#8A7F6E;text-transform:uppercase;letter-spacing:.03em;}
.route-list{display:flex;flex-direction:column;max-width:520px;}
.stop{display:flex;align-items:flex-start;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px;position:relative;}
.stop-num{width:26px;height:26px;border-radius:50%;background:var(--sage);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-family:'IBM Plex Mono',monospace;flex-shrink:0;}
.stop-info{flex:1;}
.stop-info .name{font-weight:600;font-size:13px;}
.stop-info .detail{font-size:11.5px;color:#8A7F6E;margin-top:2px;}
.stop-info .eta{display:inline-block;margin-top:5px;font-size:10.5px;font-family:'IBM Plex Mono',monospace;background:var(--cream-2);padding:2px 7px;border-radius:6px;color:#8A7F6E;}
.maps-btn{background:var(--salmon);color:var(--crust);border:none;border-radius:9px;padding:8px 12px;font-size:11.5px;font-weight:700;cursor:pointer;flex-shrink:0;white-space:nowrap;text-decoration:none;}

/* acciones rápidas de entrega (envíos): parada "actual" arriba, resto en cola */
.stop-actions{display:flex;gap:8px;margin-top:8px;}
.btn-accion.no-entregado{background:#F3D3C4;color:#A9633E;}
.stop.current{border-color:var(--sage);box-shadow:0 0 0 2px rgba(122,155,116,.25);}
.stop:not(.current) .stop-actions{display:none;}
.order-card .stop-actions{display:flex;}
.stop-resuelto-badge{display:none;font-size:11.5px;font-weight:700;margin-top:6px;}
.resuelto{opacity:.55;}
.resuelto .stop-actions{display:none;}
.resuelto .stop-resuelto-badge{display:inline-block;}
.resuelto-ok .stop-resuelto-badge{color:#33627A;}
.resuelto-fail .stop-resuelto-badge{color:#A9633E;}
.stop-vuelta{background:var(--cream-2);border-style:dashed;}
.stop-vuelta .stop-num{background:#B9AF9E;}

/* aviso de notificaciones push, en el sidebar de vendedor */
.push-aviso{flex-direction:column;align-items:flex-start;gap:8px;background:var(--cream);color:var(--ink);border-radius:10px;padding:10px 12px;font-size:11.5px;line-height:1.4;margin-top:16px;}
.push-aviso button{background:var(--sage-dark);color:var(--white);border:none;border-radius:7px;padding:5px 10px;font-size:11px;font-weight:700;cursor:pointer;}

/* tabla de métricas */
.data-table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:12.5px;}
.data-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:#8A7F6E;background:var(--cream-2);padding:10px 12px;font-weight:700;}
.data-table td{padding:10px 12px;border-top:1px solid var(--line);}
.data-table tr.totales{font-weight:700;background:var(--cream-2);}
.data-table td.num, .data-table th.num{text-align:right;font-family:'IBM Plex Mono',monospace;}
