:root{--verde:#1f6f43;--verde-barra:#1f6f43;--sobre-verde:#fff;--verde-2:#2e8b57;--verde-claro:#e7f3ec;--texto:#1d2521;--gris:#5f6b66;--borde:#dfe5e2;--fondo:#f5f7f6;--blanco:#fff;--rojo:#b3261e;--ambar:#9a6700;--radio:10px}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texto);background:var(--fondo);font-size:15px;line-height:1.45}
a{color:var(--verde)}
h1{font-size:1.5rem;margin:0 0 .6rem}
h2{font-size:1.1rem;margin:0 0 .6rem}
.sub{color:var(--gris);margin:.2rem 0 1rem}
.barra{position:fixed;top:0;left:0;right:0;height:52px;background:var(--verde-barra);color:var(--sobre-verde);display:flex;align-items:center;gap:.8rem;padding:0 1rem;z-index:20}
.barra a{color:inherit;text-decoration:none}
.marca{font-weight:700}
.barra-der{margin-left:auto;display:flex;align-items:center;gap:.8rem}
.barra-der form{margin:0}
.btn-link{background:none;border:0;color:inherit;cursor:pointer;font:inherit;text-decoration:underline}
.menu-btn{display:none;background:none;border:0;color:inherit;font-size:1.4rem;cursor:pointer}
.lateral{position:fixed;top:52px;bottom:0;left:0;width:210px;background:#fff;border-right:1px solid var(--borde);padding:.6rem 0 0;display:flex;flex-direction:column;z-index:10;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.lateral a{display:block;padding:.5rem 1.2rem;color:var(--texto);text-decoration:none;border-left:3px solid transparent}
.lateral a:hover{background:var(--fondo)}
.lateral a.activo{border-left-color:var(--verde);background:var(--verde-claro);font-weight:600}
.lateral .version{margin-top:auto;padding:.8rem 1.2rem;flex-shrink:0;color:var(--gris);font-size:.8rem}
.contenido{margin:52px 0 0 210px;padding:1.4rem;max-width:1200px}
.tarjeta{background:var(--blanco);border:1px solid var(--borde);border-radius:var(--radio);padding:1.1rem;margin-bottom:1rem}
.tarjeta.sin-padding{padding:0}
.tarjeta-titulo{padding:1rem 1.1rem 0}
.desplazable{overflow-x:auto}
.cabecera{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;margin-bottom:1rem}
.kpi{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:.9rem 1rem;display:flex;flex-direction:column}
.kpi-valor{font-size:1.5rem;font-weight:700;color:var(--verde)}
.kpi-etq{color:var(--gris);font-size:.85rem}
.tabla{width:100%;border-collapse:collapse}
.tabla th,.tabla td{padding:.55rem .8rem;border-bottom:1px solid var(--borde);text-align:left;vertical-align:top}
.tabla th{font-size:.8rem;color:var(--gris);font-weight:600;background:#fafbfa}
.tabla tr.inactivo{opacity:.5}
.tabla-num td{text-align:right;white-space:nowrap}
.tabla-num td.txt,.tabla-num td:first-child{text-align:left;white-space:normal}
.tabla .vacio{text-align:center;color:var(--gris);padding:1.5rem}
.celda-valor input{width:110px}
.punto{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.4rem}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--gris)}
label small{color:var(--gris)}
input,select,textarea{font:inherit;color:var(--texto);padding:.55rem .65rem;border:1px solid var(--borde);border-radius:8px;background:#fff;min-width:0}
input:focus,select:focus{outline:2px solid var(--verde-2);outline-offset:0}
label.check{flex-direction:row;align-items:center;gap:.5rem;color:var(--texto)}
.form-rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem 1.1rem}
.form-rejilla .acciones,.ancho-total{grid-column:1/-1}
.form-estrecho{display:grid;gap:.8rem;max-width:420px}
.lectura small{color:var(--gris)}
.btn{display:inline-block;padding:.55rem 1rem;border-radius:8px;border:1px solid var(--borde);background:#fff;color:var(--texto);font:inherit;cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--verde-2)}
.btn-primario{background:var(--verde-barra);border-color:var(--verde-barra);color:var(--sobre-verde)}
.btn-primario:hover{background:var(--verde-2);border-color:var(--verde-2)}
.btn.ancho{width:100%}
.acciones{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.acciones form{margin:0}
.aviso{padding:.7rem 1rem;border-radius:8px;margin-bottom:.8rem;border:1px solid}
.aviso-ok{background:#e8f5ec;border-color:#b7dcc4;color:#185c37}
.aviso-error{background:#fdecea;border-color:#f3c2bd;color:var(--rojo)}
.aviso-aviso{background:#fff8e1;border-color:#f0d98c;color:var(--ambar)}
.filtros{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem;align-items:flex-end}
.pestanas{display:flex;gap:.3rem;margin-bottom:1rem;border-bottom:1px solid var(--borde)}
.pestanas a{padding:.5rem .9rem;text-decoration:none;color:var(--gris);border-bottom:2px solid transparent}
.pestanas a.activa{color:var(--verde);border-bottom-color:var(--verde);font-weight:600}
.oculto{display:none}
.rejilla-2{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:1rem}
.arbol{list-style:none;padding-left:1rem;margin:.3rem 0;border-left:1px dashed var(--borde)}
.arbol li{margin:.35rem 0}
.etq{display:inline-block;font-size:.7rem;padding:.05rem .4rem;border-radius:6px;background:var(--verde-claro);color:var(--verde);font-weight:700}
.lista-estado{list-style:none;padding:0;margin:0}
.lista-estado li{padding:.45rem 0 .45rem 1.6rem;position:relative}
.lista-estado li::before{position:absolute;left:0;font-weight:700}
.lista-estado li.ok::before{content:"✓";color:var(--verde)}
.lista-estado li.pendiente::before{content:"•";color:var(--ambar)}
.estado{font-size:.8rem;padding:.1rem .45rem;border-radius:6px}
.estado-ok{background:#e8f5ec;color:#185c37}.estado-error{background:#fdecea;color:var(--rojo)}.estado-en_curso{background:#fff8e1;color:var(--ambar)}
.notas{white-space:pre-wrap;background:var(--fondo);padding:.8rem;border-radius:8px;font-family:inherit}
body.simple{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}
.caja-central{width:100%;max-width:400px}
.login{text-align:center}
.login form{display:grid;gap:.8rem;text-align:left;margin-top:1rem}
@media (max-width:860px){
  .menu-btn{display:block}
  .lateral{transform:translateX(-100%);transition:transform .2s}
  body.menu-abierto .lateral{transform:none;box-shadow:0 0 30px rgba(0,0,0,.15)}
  .contenido{margin-left:0;padding:1rem}
  .rejilla-2{grid-template-columns:1fr}
  .usuario{display:none}
}

/* 0.1.1: resumen de volumen */
.ayuda{color:#5f6b66;font-size:.9rem}
.fila-form{display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-end;margin:.8rem 0}
.fila-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:#5f6b66}
.fila-form input{width:10rem}
.resumen-vol{max-width:520px;margin:.5rem 0}

/* 0.2.0: socios, recepción y evaluaciones */
h3{font-size:.95rem;margin:1rem 0 .4rem;color:var(--gris)}
.mt{margin-top:.8rem}
fieldset.grupo{border:1px solid var(--borde);border-radius:var(--radio);padding:.8rem 1rem 1rem;margin:0 0 1rem}
fieldset.grupo legend{padding:0 .4rem;font-weight:600;color:var(--texto)}
.casillas{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.35rem .8rem}
.form-rejilla.estrecha{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.rejilla-2.igual{grid-template-columns:1fr 1fr}
.lista-simple{padding-left:1.1rem;margin:.3rem 0 1rem}
.lista-simple li{margin:.25rem 0}
a.kpi{text-decoration:none;color:inherit}
a.kpi:hover{border-color:var(--verde-2)}
.buscador input[type=search]{font-size:1.15rem;padding:.8rem}
.resultados{list-style:none;padding:0;margin:.4rem 0 0}
.resultados li a{display:flex;justify-content:space-between;gap:1rem;padding:.75rem .8rem;border:1px solid var(--borde);border-radius:8px;margin-bottom:.35rem;text-decoration:none;color:var(--texto);background:#fff}
.resultados li a:hover,.resultados li a:focus{border-color:var(--verde);background:var(--verde-claro)}
.resultados small{color:var(--gris)}
.pasos{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.3rem .8rem}
.pasos label.check,.tarjeta label.check{padding:.3rem 0}
input[type=checkbox],input[type=radio]{width:1.15rem;height:1.15rem;accent-color:var(--verde)}
.btn-mini{font:inherit;font-size:.78rem;padding:.2rem .5rem;border:1px solid var(--borde);border-radius:6px;background:#fff;cursor:pointer}
.btn-mini:hover{border-color:var(--verde-2)}
.btn-link.oscuro{color:var(--gris)}
.en-linea{display:inline-flex;gap:.3rem;margin:0 0 0 .4rem;vertical-align:middle}
.cita{padding:.5rem 0;border-bottom:1px solid var(--borde)}
.cita:last-child{border-bottom:0}
.estado-cita-realizada,.estado-cita-cancelada,.estado-cita-no_vino{opacity:.55}
.enlace-wa{font-size:.8rem;margin-left:.4rem}
.tarjeta.hoy{border-color:var(--verde-2)}
.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem}
.fotos figure{margin:0}
.fotos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;border:1px solid var(--borde)}
.fotos figcaption{font-size:.8rem;color:var(--gris)}
.ancho-input{flex:1;min-width:0;width:100%}
details summary{cursor:pointer}
.pestanas{overflow-x:auto;white-space:nowrap}
body.publico{background:var(--fondo)}
.barra-publica{position:static}
.caja-publica{max-width:760px;margin:0 auto;padding:1.2rem 1rem 3rem}
@media (max-width:860px){.rejilla-2.igual{grid-template-columns:1fr}}
@media (max-width:600px){
  .cabecera{flex-wrap:wrap;align-items:flex-start}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi-valor{font-size:1.25rem}
}

/* Ventanas modales propias */
.modal{border:0;border-radius:var(--radio);padding:0;max-width:440px;width:calc(100% - 2rem);box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal::backdrop{background:rgba(20,30,25,.45)}
.modal-caja{padding:1.2rem 1.3rem;display:grid;gap:.6rem}
.modal-caja h2{margin:0}
.modal-caja p{margin:0}
.modal-acciones{justify-content:flex-end;margin-top:.4rem}
.modal-error{color:var(--rojo);font-size:.85rem}
.btn-peligro{background:var(--rojo);border-color:var(--rojo);color:#fff}
input.mini{width:4.5rem;padding:.3rem .4rem;text-align:right}
.cat-lista{max-height:420px;overflow:auto}
.rejilla-2.caja{grid-template-columns:1fr 1fr}
@media (max-width:860px){.rejilla-2.caja{grid-template-columns:1fr}}
.tabla tr.alerta td{background:#fff6f5}
.fila-form .crece{flex:1;min-width:180px}
.fila-form .crece select{width:100%}
.tarjeta-alerta{border-color:#f3c2bd;background:#fffafa}
.tabla tr.fila-total td{font-weight:700;background:#fafbfa}
.kpi-valor.negativo{color:var(--rojo)}

/* Gráfico de línea (una serie) */
.grafico{width:100%;height:auto;display:block}
.grafico .g-rejilla{stroke:#e7ece9;stroke-width:1}
.grafico .g-eje{fill:var(--gris);font-size:11px}
.grafico .g-linea{fill:none;stroke:var(--verde);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.grafico .g-marca{fill:var(--verde);stroke:#fff;stroke-width:2}
.grafico .g-zona{fill:transparent;cursor:pointer}
.grafico .g-punto:hover .g-marca{r:6}
.grafico .g-valor{fill:var(--texto);font-size:12px;font-weight:600}
.cuadrante td{min-width:150px}
.cuadrante th.hoy{color:var(--verde)}
.turno{padding:.3rem .4rem;border:1px solid var(--borde);border-radius:6px;margin-bottom:.3rem;font-size:.85rem;background:#fff}
.turno small{display:block;color:var(--gris)}
.turno-cedido{background:#fff8e1}
.turno-acciones,.turno-add{display:flex;gap:.25rem;flex-wrap:wrap;margin:.25rem 0 0}
.mini-select{padding:.2rem .3rem;font-size:.8rem;max-width:110px}
.check-item{margin:0}
.nowrap{white-space:nowrap}
.detalle-input{width:12rem;padding:.25rem .4rem;font-size:.85rem}
.tabla tr.pendiente-fila td:first-child{color:var(--ambar);font-weight:700}
input.mini.sugerido{color:var(--gris);background:#f7faf8}
.medidor{height:6px;background:#e7ece9;border-radius:3px;margin-top:.5rem;overflow:hidden}
.medidor span{display:block;height:100%;background:var(--verde-barra);border-radius:3px}
.escalera{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;flex-wrap:wrap}
.escalera span{width:2.4rem;height:2.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--borde);font-weight:700;color:var(--gris);background:#fff}
.escalera span.hecho{border-color:var(--verde-barra);background:var(--verde-barra);color:var(--sobre-verde)}
.escalera small{color:var(--gris);margin-left:.4rem}
.pasos-lista li{margin:.6rem 0}.pasos-lista li.hecho::marker{color:var(--verde)}
.menu-grupo{flex-shrink:0}
.menu-grupo>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#5f6f66;padding:.75rem 1.2rem .45rem;font-weight:700;user-select:none;min-height:44px;box-sizing:border-box}
.menu-grupo>summary::-webkit-details-marker{display:none}
.menu-grupo>summary::after{content:"";width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s;margin-right:.2rem}
.menu-grupo[open]>summary::after{transform:rotate(45deg)}
.menu-grupo>summary:hover{background:var(--fondo)}
.menu-grupo>summary:focus-visible{outline:2px solid var(--verde);outline-offset:-2px}
@media (max-width:600px){.grafico .g-eje{font-size:20px}.grafico .g-valor{font-size:22px}}
.marca{display:flex;align-items:center;gap:.6rem;min-width:0}
.marca-logo{height:34px;width:auto;max-width:160px;object-fit:contain;display:block}
.marca-nombre{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.login .logo-club{max-height:80px;max-width:220px;width:auto;height:auto;display:block;margin:0 auto .6rem}
.vista-previa{border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden}
.vp-barra{padding:.7rem 1rem;font-weight:700}
.vp-cuerpo{padding:.8rem 1rem;display:flex;gap:1rem;align-items:center;background:var(--fondo)}
.marca-subida{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}
.marca-subida label{flex:1;min-width:220px}
.marca-muestra{padding:.6rem 1rem;border-radius:var(--radio);border:1px solid var(--borde)}
.marca-muestra img{display:block;max-height:48px;max-width:200px}
.marca-muestra.fav{background:#fff}
.acciones-sueltas{display:flex;gap:.6rem;flex-wrap:wrap}
.acciones-sueltas form{margin:0}
h2.seccion{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gris);margin:1.4rem 0 .6rem}
.medidor-ritmo{position:relative;overflow:visible}
.medidor-ritmo i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--texto);opacity:.55;border-radius:1px}
.estado-obj{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;margin-top:.4rem;white-space:nowrap;align-self:flex-start}
.estado-cumplido{background:#e3f2e8;color:#185c37}
.estado-en_ritmo{background:#e8f0fb;color:#1f4f8f}
.estado-por_debajo{background:#fff4e0;color:#8a5300}
.estado-sin_objetivo{background:#eef1ef;color:var(--gris)}
.hoy-turnos{display:flex;flex-direction:column;gap:.4rem}
.turno-chip{display:inline-flex;align-items:center;gap:.35rem;margin:.2rem .6rem .2rem 0}
.tabla-objetivos td .medidor{min-width:70px}
.pendientes{border-left:4px solid var(--ambar)}
.tabla th.num,.tabla td.num{text-align:right;white-space:nowrap}
.tabla-objetivos td.txt{white-space:nowrap}
.tabla-objetivos td.num .estado-obj{display:flex;width:max-content;margin-left:auto}
.tabla-objetivos td.num .medidor{margin-left:auto;max-width:120px}
input[type=color]{width:72px;height:42px;padding:3px;cursor:pointer;background:#fff}
@media (max-width:600px){.marca-logo{height:28px;max-width:110px}}
/* ---------- TPV táctil ---------- */
body.modo-tpv{background:var(--fondo);overscroll-behavior:none}
.modo-tpv .barra .usuario{opacity:.85}
.tpv-main{margin-top:52px;height:calc(100dvh - 52px);display:flex;flex-direction:column}
.tpv-main>.aviso{margin:.6rem .8rem 0}
.tpv{flex:1;min-height:0;display:grid;grid-template-columns:1fr 380px}
.tpv-catalogo{min-height:0;overflow-y:auto;padding:.8rem .9rem 1.2rem;-webkit-overflow-scrolling:touch}
.tpv-quien{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem}
.tpv-chip{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;min-height:52px;padding:.45rem .9rem;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;font:inherit;cursor:pointer;text-align:left;flex:1;min-width:150px}
.tpv-chip-etq{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
.tpv-chip span:last-child{font-weight:600}
.tpv-cats{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.3rem;margin-bottom:.6rem;scrollbar-width:none}
.tpv-cats::-webkit-scrollbar{display:none}
.tpv-cats button{flex:0 0 auto;min-height:48px;padding:0 1.1rem;border:1px solid var(--borde);border-radius:999px;background:#fff;font:inherit;font-weight:600;cursor:pointer;color:var(--texto)}
.tpv-cats button.activa{background:var(--verde-barra);border-color:var(--verde-barra);color:var(--sobre-verde)}
.tpv-herr{display:flex;gap:.6rem;align-items:center;margin-bottom:.6rem}
.tpv-herr input{flex:1;min-height:48px;font-size:1rem}
.tpv-herr .btn{margin-left:auto}
.tpv-herr .btn[aria-pressed=true]{background:var(--verde-claro);border-color:var(--verde-barra)}
.tpv-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.tpv-art{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.35rem;min-height:104px;padding:.75rem .8rem;border:1px solid var(--borde);border-left:5px solid var(--verde-barra);border-radius:var(--radio);background:#fff;font:inherit;text-align:left;cursor:pointer;color:var(--texto);touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .06s}
.tpv-art:active{transform:scale(.97);background:var(--verde-claro)}
.tpv-art-bono{border-left-color:#b86e00}
.tpv-art-racion{border-left-color:var(--verde-barra)}
.tpv-art-producto{border-left-color:#4a6fa5}
.tpv-art-programa{border-left-color:#8a4fa0}
.tpv-art-nombre{font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tpv-art-precio{font-size:1.05rem;font-weight:700;color:var(--verde)}
.tpv-art-pv{font-size:.75rem;color:var(--gris)}
.tpv-art-cant{position:absolute;top:.4rem;right:.4rem;min-width:1.7rem;height:1.7rem;padding:0 .4rem;border-radius:999px;background:var(--verde-barra);color:var(--sobre-verde);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.tpv-art.editando{border-style:dashed}
.tpv-art.editando[aria-pressed=true]{border-style:solid;background:var(--verde-claro)}
.tpv-art-fijo{font-size:.75rem;font-weight:700;color:var(--gris)}
.tpv-art.editando[aria-pressed=true] .tpv-art-fijo{color:var(--verde)}
.tpv-importe{max-width:420px}
.tpv-importe label{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.6rem}
.tpv-importe input{min-height:48px;font-size:1rem}
.tpv-visor,.tpv-entregado strong{font-size:2rem;font-weight:700;text-align:right;padding:.4rem .6rem;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);margin-bottom:.5rem;font-variant-numeric:tabular-nums}
.tpv-teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-bottom:.6rem}
.tpv-teclado button{min-height:58px;font-size:1.4rem;font-weight:600;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;cursor:pointer;touch-action:manipulation;color:var(--texto)}
.tpv-teclado button:active{background:var(--verde-claro)}
.tpv-grande{min-height:58px;font-size:1.1rem;width:100%}
.tpv-ticket{display:flex;flex-direction:column;min-height:0;background:#fff;border-left:1px solid var(--borde)}
.tpv-ticket-cab{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border-bottom:1px solid var(--borde)}
.tpv-ticket-cab h2{margin:0;flex:1}
.tpv-ticket .btn-link{color:var(--gris)}
.tpv-lineas{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:0}
.tpv-vacio{padding:1rem;text-align:center}
.tpv-linea{padding:.6rem 1rem;border-bottom:1px solid var(--borde)}
.tpv-linea-info{display:flex;flex-direction:column;align-items:flex-start;width:100%;background:none;border:0;padding:0;font:inherit;text-align:left;cursor:pointer;color:var(--texto)}
.tpv-linea-nombre{font-weight:600}
.tpv-linea-precio{font-size:.78rem;color:var(--gris)}
.tpv-linea-ctl{display:flex;align-items:center;gap:.5rem;margin-top:.4rem}
.tpv-cant{width:48px;height:44px;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;font-size:1.4rem;line-height:1;cursor:pointer;touch-action:manipulation;color:var(--texto)}
.tpv-cant:disabled{opacity:.35}
.tpv-cant-n{min-width:2rem;text-align:center;font-weight:700;font-size:1.1rem}
.tpv-linea-total{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}
.tpv-ticket-pie{padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom));border-top:1px solid var(--borde)}
.tpv-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.2rem}
.tpv-total strong{font-size:1.8rem;font-variant-numeric:tabular-nums}
.tpv-ticket-pie .btn{margin-top:.6rem}
.tpv-barra-movil,.tpv-solo-movil{display:none}
.tpv-hecho{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin:.6rem .8rem 0;padding:.8rem 1rem;border-radius:var(--radio);background:#e3f2e8;color:#185c37;border:1px solid #b9dcc6}
.tpv-hecho strong{font-size:1.1rem}
.tpv-cambio{font-size:1.4rem;font-weight:800}
.tpv-hecho .btn-link{margin-left:auto;color:inherit}
.tpv-dlg .modal-caja{max-height:calc(100dvh - 2rem);overflow-y:auto}
.tpv-dlg input{min-height:48px;font-size:1rem;width:100%}
.tpv-lista{list-style:none;margin:.6rem 0;padding:0;max-height:45vh;overflow-y:auto}
.tpv-lista button{width:100%;min-height:50px;text-align:left;padding:.5rem .8rem;border:0;border-bottom:1px solid var(--borde);background:#fff;font:inherit;cursor:pointer;color:var(--texto)}
.tpv-lista button.activa{background:var(--verde-claro);font-weight:700}
.tpv-dlg-cobro .modal-caja{width:min(520px,calc(100vw - 1.5rem))}
.tpv-formas{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.7rem}
.tpv-formas button{min-height:60px;font:inherit;font-weight:700;border:2px solid var(--borde);border-radius:var(--radio);background:#fff;cursor:pointer;color:var(--texto)}
.tpv-formas button.activa{border-color:var(--verde-barra);background:var(--verde-claro)}
.tpv-formas button:disabled{opacity:.4;cursor:not-allowed}
.tpv-entregado{display:flex;align-items:center;gap:.8rem}
.tpv-entregado span{color:var(--gris)}
.tpv-entregado strong{flex:1;font-size:1.6rem}
.tpv-rapidos{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-bottom:.5rem}
.tpv-rapidos button{min-height:48px;font:inherit;font-weight:600;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;cursor:pointer;color:var(--texto)}
.tpv-cambio-grande{font-size:1.6rem;font-weight:800;text-align:center;min-height:2.2rem;color:#185c37}
.tpv-cambio-grande.falta{color:var(--rojo)}
.tpv-dlg-cobro .tpv-teclado button{min-height:50px}
@media (max-width:899px){
  .tpv{grid-template-columns:1fr}
  .tpv-catalogo{padding-bottom:6rem}
  .tpv-rejilla{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
  .tpv-art{min-height:96px}
  .tpv-ticket{position:fixed;left:0;right:0;bottom:0;top:52px;z-index:30;border-left:0;transform:translateY(100%);transition:transform .2s}
  body.tpv-ticket-abierto .tpv-ticket{transform:none}
  .tpv-solo-movil{display:inline}
  .tpv-barra-movil{display:flex;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:25;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--borde);box-shadow:0 -4px 16px rgba(0,0,0,.06)}
  .tpv-resumen{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;padding:.3rem .8rem;font:inherit;cursor:pointer;color:var(--texto);min-height:56px}
  .tpv-resumen span{font-size:.8rem;color:var(--gris)}
  .tpv-resumen strong{font-size:1.2rem}
  .tpv-barra-movil .btn{min-width:130px;min-height:56px;font-size:1.1rem}
  .modo-tpv .barra .usuario{display:none}
  .modo-tpv #tpv-completa{display:none}
}
.modal.tpv-dlg-cobro{max-width:560px;width:calc(100% - 1.5rem)}
.tpv-dlg-cobro .modal-caja{width:auto;gap:.5rem}
.tpv-dlg-cobro .modal-acciones{display:grid;grid-template-columns:1fr 2fr;gap:.5rem}
.tpv-dlg-cobro .modal-acciones .btn{min-height:56px;width:100%;margin:0}
.tpv-dlg-cobro .tpv-teclado button{min-height:48px;font-size:1.25rem}
.tpv-dlg-cobro .tpv-formas button{min-height:52px}
.modo-tpv .barra-der a{white-space:nowrap}
/* ---------- Agenda: vistas de calendario ---------- */
.agenda-barra{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.agenda-nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.agenda-titulo{font-size:1.1rem;margin-left:.4rem}
.agenda-vistas{display:inline-flex;border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden;background:#fff}
.agenda-vistas a{padding:.5rem .9rem;text-decoration:none;color:var(--texto);border-left:1px solid var(--borde);font-weight:600;font-size:.9rem;min-height:40px;display:flex;align-items:center}
.agenda-vistas a:first-child{border-left:0}
.agenda-vistas a.activa{background:var(--verde-barra);color:var(--sobre-verde)}
.cal-mes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--borde);gap:1px;border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden}
.cal-mes-cab{background:#fafbfa;padding:.4rem;text-align:center;font-size:.78rem;font-weight:600;color:var(--gris)}
.cal-mes-dia{background:#fff;min-height:108px;padding:.3rem;display:flex;flex-direction:column;gap:2px;position:relative;min-width:0}
.cal-mes-dia.fuera{background:#f7f8f7}
.cal-mes-dia.fuera .cal-mes-num{color:#a3aca7}
.cal-mes-num{font-weight:700;font-size:.85rem;color:var(--texto);text-decoration:none;width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;border-radius:50%}
.cal-mes-dia.hoy .cal-mes-num{background:var(--verde-barra);color:var(--sobre-verde)}
.cal-mes-cuenta{display:none}
.cal-chip{display:block;font-size:.75rem;line-height:1.3;padding:1px 4px 1px 6px;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);border-radius:3px;color:var(--texto);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-mas{font-size:.75rem;color:var(--gris)}
.cal-rejilla-envoltura{overflow-x:auto;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;margin-bottom:.6rem}
.cal-rejilla{display:grid;grid-template-columns:52px repeat(var(--cols),minmax(110px,1fr));min-width:calc(52px + var(--cols) * 110px)}
.cal-esquina,.cal-col-cab{position:sticky;top:0;background:#fafbfa;border-bottom:1px solid var(--borde);z-index:2}
.cal-col-cab{padding:.45rem;text-align:center;text-decoration:none;color:var(--texto);border-left:1px solid var(--borde);font-size:.85rem}
.cal-col-cab span{color:var(--gris)}
.cal-col-cab.hoy strong{background:var(--verde-barra);color:var(--sobre-verde);border-radius:999px;padding:0 .45rem}
.cal-horas{grid-column:1}
.cal-hora{height:var(--hora);font-size:.72rem;color:var(--gris);text-align:right;padding-right:.4rem;transform:translateY(-.5em)}
.cal-hora:first-child{transform:none}
.cal-col{position:relative;border-left:1px solid var(--borde);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hora) - 1px),var(--borde) calc(var(--hora) - 1px),var(--borde) var(--hora))}
.cal-col.hoy{background-color:color-mix(in srgb,var(--verde-claro) 45%,#fff)}
.cal-hueco{position:absolute;left:0;right:0;height:var(--hora);display:block}
.cal-hueco:hover{background:rgba(0,0,0,.03)}
.cal-ev{position:absolute;z-index:1;overflow:hidden;padding:2px 5px;margin-left:2px;border-radius:5px;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 15%,#fff);color:var(--texto);text-decoration:none;font-size:.78rem;line-height:1.25;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.cal-ev b{font-variant-numeric:tabular-nums}
.cal-ev span{font-weight:600}
.cal-ev small{display:block;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-ev.estado-cita-cancelada span{text-decoration:line-through}
.cal-ahora{position:absolute;left:0;right:0;height:2px;background:var(--rojo);z-index:1}
.cal-ahora::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--rojo)}
@media (max-width:700px){
  .agenda-barra{flex-direction:column;align-items:stretch}
  .agenda-vistas{display:grid;grid-template-columns:repeat(5,1fr)}
  .agenda-vistas a{justify-content:center;padding:.5rem .3rem}
  .cal-mes-dia{min-height:58px;align-items:center}
  .cal-chip,.cal-mas{display:none}
  .cal-mes-cuenta{display:flex;align-items:center;justify-content:center;min-width:1.3rem;height:1.3rem;padding:0 .3rem;border-radius:999px;background:var(--verde-claro);color:var(--verde);font-size:.72rem;font-weight:700}
  .cal-rejilla{grid-template-columns:44px repeat(var(--cols),minmax(96px,1fr));min-width:calc(44px + var(--cols) * 96px)}
}
.logo-club-fondo{background:var(--verde-barra);border-radius:var(--radio);padding:.8rem 1rem;margin:0 auto .6rem;width:max-content;max-width:100%}.logo-club-fondo .logo-club{margin:0}
.marca-bloque{border-top:1px solid var(--borde);padding-top:.8rem}
.marca-bloque h2{margin-bottom:.2rem}
.marca-muestra{min-width:120px;min-height:64px;display:flex;align-items:center;justify-content:center}
.marca-muestra.fav{min-width:80px}
.marca-muestra.fav img{width:64px;height:64px}
.marca-vacia{font-size:.8rem;opacity:.7}
.recorte-dlg{max-width:760px;width:calc(100% - 1.5rem)}
.recorte-area{position:relative;align-self:center;justify-self:center;line-height:0;background:repeating-conic-gradient(#e8ecea 0 25%,#fff 0 50%) 0 0/16px 16px;touch-action:none;user-select:none;-webkit-user-select:none}
.recorte-area img{display:block;max-width:min(700px,calc(100vw - 4rem));max-height:55vh;width:auto;height:auto;pointer-events:none}
.recorte-caja{position:absolute;box-shadow:0 0 0 9999px rgba(0,0,0,.45);outline:2px solid #fff;cursor:move;touch-action:none}
.recorte-area{overflow:hidden}
.recorte-asa{position:absolute;width:22px;height:22px;background:#fff;border:2px solid var(--verde-barra);border-radius:50%;touch-action:none}
.recorte-asa[data-asa=nw]{left:-11px;top:-11px;cursor:nwse-resize}.recorte-asa[data-asa=ne]{right:-11px;top:-11px;cursor:nesw-resize}
.recorte-asa[data-asa=sw]{left:-11px;bottom:-11px;cursor:nesw-resize}.recorte-asa[data-asa=se]{right:-11px;bottom:-11px;cursor:nwse-resize}
.recorte-info{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--gris)}
.recorte-prev-envoltura{display:flex;align-items:center;gap:.5rem}
.recorte-prev{display:inline-flex;padding:.4rem .6rem;border:1px solid var(--borde);border-radius:var(--radio);line-height:0}
.recorte-acciones{flex-wrap:wrap}
.marca-muestra img{object-fit:contain;height:auto;width:auto}
.marca-muestra.fav{width:96px;height:96px;min-width:0;min-height:0;padding:.5rem;flex:0 0 auto}
.marca-muestra.fav img{width:64px;height:64px;max-width:64px;max-height:64px;object-fit:contain}
.oculto{display:none!important}
.fotos-filtros{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.fotos-filtros input[type=search]{flex:1;min-width:200px}
.fotos-grupo summary{cursor:pointer;list-style:none}
.fotos-grupo summary::-webkit-details-marker{display:none}
.fotos-grupo summary h2{display:inline;margin:0}
.fotos-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;margin-top:.8rem}
.foto-item{border:1px solid var(--borde);border-radius:var(--radio);padding:.5rem;display:flex;flex-direction:column;gap:.4rem;background:#fff}
.foto-item.subiendo{opacity:.5}
.foto-marco{aspect-ratio:1;border-radius:6px;background:#f3f5f4;display:flex;align-items:center;justify-content:center;overflow:hidden}
.foto-marco img{width:100%;height:100%;object-fit:contain}
.foto-marco span{font-size:.8rem;color:var(--gris)}
.foto-nombre{font-size:.82rem;line-height:1.25;min-height:2.5em}
.foto-acciones{display:flex;align-items:center;justify-content:space-between;gap:.4rem}
.foto-acciones label.btn{cursor:pointer;margin:0}
.tpv-art-foto{width:100%;aspect-ratio:1;object-fit:contain;border-radius:6px;background:#fff;margin-bottom:.1rem}
.tpv-art.con-foto{padding-top:.5rem}
.tpv-art-desc{font-size:.8rem;color:var(--gris);line-height:1.3}
.tpv-art.con-desc{min-height:150px}
.tpv-art.con-desc .tpv-art-nombre{-webkit-line-clamp:2}
.tpv-seccion{grid-column:1/-1;margin:.6rem 0 0;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.tpv-seccion:first-child{margin-top:0}
.tpv-sabores{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem}
.tpv-sabores button{min-height:54px;font:inherit;font-weight:600;border:1px solid var(--borde);border-radius:var(--radio);background:#fff;cursor:pointer;color:var(--texto)}
.tpv-sabores button:active{background:var(--verde-claro)}
.modal.tpv-dlg-ventas{max-width:640px;width:calc(100% - 1.5rem)}
.tpv-ventas-cab{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between}
.tpv-ventas-cab h2{margin:0}
.tpv-ventas-dia{display:flex;gap:.4rem;align-items:center}
.tpv-ventas-dia input{min-height:44px}
.tpv-ventas-totales{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.9rem;color:var(--gris)}
.tpv-ventas-totales strong{color:var(--texto);width:100%;font-size:1.05rem}
.tpv-ventas-lista{list-style:none;margin:0;padding:0;max-height:55vh;overflow-y:auto;border-top:1px solid var(--borde)}
.tpv-venta{display:flex;gap:.8rem;align-items:center;width:100%;min-height:58px;padding:.5rem .3rem;border:0;border-bottom:1px solid var(--borde);background:#fff;font:inherit;text-align:left;cursor:pointer;color:var(--texto)}
.tpv-venta-info{flex:1;min-width:0;display:flex;flex-direction:column}
.tpv-venta-info small{color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpv-venta-total{font-weight:700;font-variant-numeric:tabular-nums}
.tpv-venta.estado-venta-anulada,.tpv-venta.estado-venta-fallida{opacity:.55}
.tpv-venta.estado-venta-anulada .tpv-venta-total{text-decoration:line-through}
.tpv-venta.estado-venta-pendiente .tpv-venta-total{color:var(--ambar)}
.tpv-venta-detalle h3{margin:.2rem 0}
.tpv-venta-lineas{list-style:none;margin:.4rem 0;padding:0}
.tpv-venta-lineas li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--borde)}
.tpv-venta-suma{font-weight:700;text-align:right}
.fotos-masiva{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:.6rem}.fotos-masiva label.btn{cursor:pointer;margin:0}
.tabla-carta td{vertical-align:top}.carta-comp .fila-form{margin-bottom:.3rem;flex-wrap:nowrap}.carta-comp select{max-width:260px}.aviso-texto{color:var(--ambar)}tr.sin-composicion td:first-child{box-shadow:inset 3px 0 0 var(--ambar)}
.tpv-art-foto{width:100%;height:92px;aspect-ratio:auto;object-fit:contain}

/* Productos (0.9.5) */
.prod-filtros{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.prod-filtros input[type=search]{flex:1 1 220px}
.prod-grupo{margin:1.2rem 0}
.prod-grupo-t{font-size:1.05rem;margin:0 0 .6rem}
.prod-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}
.prod-tarjeta{display:flex;flex-direction:column;background:var(--blanco,#fff);border:1px solid var(--borde,#e3e7e5);border-radius:12px;overflow:hidden;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}
.prod-tarjeta:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
.prod-tarjeta.inactivo{opacity:.6}
.prod-foto{aspect-ratio:1/1;background:#fff;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--borde,#e3e7e5)}
.prod-foto img{width:100%;height:100%;object-fit:contain}
.prod-foto span{color:var(--gris);font-size:.85rem}
.prod-info{padding:.6rem .7rem .7rem;display:flex;flex-direction:column;gap:.25rem;flex:1}
.prod-nombre{font-weight:600;font-size:.9rem;line-height:1.25}
.prod-meta{font-size:.75rem;color:var(--gris)}
.prod-pie{display:flex;justify-content:space-between;align-items:baseline;margin-top:auto;padding-top:.3rem}
.prod-precio{font-weight:700;color:var(--verde)}
.prod-pv{font-size:.75rem;color:var(--gris)}
.prod-etqs{display:flex;flex-wrap:wrap;gap:.25rem}
.etq-aviso{background:#fff3d6;color:#8a5a00}
.prod-foto-grande{aspect-ratio:1/1;max-width:360px;margin:0 auto;background:#fff}
.prod-foto-grande img{width:100%;height:100%;object-fit:contain}
.prod-ficha-foto .foto-acciones{justify-content:center;margin-top:.6rem}
.prod-ficha-foto.subiendo{opacity:.6;pointer-events:none}
.prod-datos{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0}
.prod-datos dt{color:var(--gris);font-size:.85rem}
.prod-datos dd{margin:0}
.prod-kpis{grid-template-columns:1fr 1fr}
.prod-resumen{font-size:1.05rem;font-weight:500}
.prod-texto h2{font-size:1rem;margin:1.1rem 0 .4rem}
.prod-texto ul{padding-left:1.2rem;margin:.3rem 0 .6rem}
.prod-texto p{margin:.4rem 0}
@media (max-width:560px){.prod-rejilla{grid-template-columns:repeat(2,1fr)}}

/* Redes y publicidad (1.0.0) */
.red-ico{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;height:1.25rem;padding:0 .25rem;border-radius:5px;font-size:.66rem;font-weight:800;color:#fff;vertical-align:middle;margin-right:2px;letter-spacing:.02em}
.red-instagram{background:#c13584}.red-facebook{background:#1877f2}.red-google{background:#34a853}.red-tiktok{background:#111}
.leyenda-estados{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.78rem;color:var(--gris)}
.leyenda-estados i{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin-right:.3rem;vertical-align:-1px}
.redes-dia-cab{display:flex;justify-content:space-between;align-items:center}
.redes-mas{opacity:0;text-decoration:none;font-weight:700;color:var(--verde);width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:opacity .15s}
.cal-mes-dia:hover .redes-mas,.redes-mas:focus{opacity:1;background:var(--verde-claro)}
.estado-pub,.estado-dest,.estado-anuncio{display:inline-block;font-size:.7rem;font-weight:700;padding:.05rem .45rem;border-radius:999px;background:#eef0ef;color:#555;white-space:nowrap}
.estado-pub.grande{font-size:.85rem;padding:.2rem .7rem}
.est-revision,.ed-manual{background:#fff3d6;color:#8a5a00}.est-programada,.ed-pendiente{background:#e3eefb;color:#1f5aa0}
.est-publicando,.ed-publicando{background:#efe7fb;color:#5b3aa8}.est-publicada,.ed-publicada,.ea-activo{background:#e1f3e8;color:#23704a}
.est-parcial{background:#fde9dc;color:#a4461a}.est-error,.ed-error,.ea-error{background:#fde2e2;color:#a82626}.est-cancelada,.ed-omitida,.ea-finalizado{background:#eee;color:#777}
.ea-en_pausa{background:#e3eefb;color:#1f5aa0}
.redes-lista li{display:flex;flex-wrap:wrap;gap:.3rem .5rem;align-items:center}
.barra-h{display:grid;grid-template-columns:9rem 1fr 2.5rem;gap:.5rem;align-items:center;margin:.35rem 0;font-size:.85rem}
.barra-h-pista{height:.7rem;background:#eef1ef;border-radius:999px;overflow:hidden}
.barra-h-pista span{display:block;height:100%;background:var(--verde);border-radius:999px}
.barra-h-val{text-align:right;font-weight:700}
.redes-editor{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1rem;align-items:start}
.redes-col-lado{position:sticky;top:1rem}
@media (max-width:1000px){.redes-editor{grid-template-columns:1fr}.redes-col-lado{position:static;order:-1}}
.redes-formatos{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.chip-radio input{position:absolute;opacity:0;pointer-events:none}
.chip-radio span{display:inline-block;padding:.4rem .8rem;border:1px solid var(--borde);border-radius:999px;cursor:pointer;font-size:.88rem;background:#fff}
.chip-radio input:checked+span{background:var(--verde-barra);color:var(--sobre-verde);border-color:var(--verde-barra)}
.chip-radio input:focus-visible+span{outline:2px solid var(--verde);outline-offset:2px}
.redes-sec-cab{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.redes-sec-cab h2{margin:0}
.redes-medios{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.6rem;min-height:1rem}
.redes-medio{position:relative;width:120px;height:120px;border-radius:10px;overflow:hidden;border:1px solid var(--borde);background:#f4f5f4}
.redes-medio img,.redes-medio video{width:100%;height:100%;object-fit:cover;display:block}
.redes-medio-tipo{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.65);color:#fff;font-size:.68rem;padding:1px 6px;border-radius:4px}
.redes-medio-ctl{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;background:linear-gradient(transparent,rgba(0,0,0,.55));padding:.2rem}
.redes-medio-ctl button{border:0;background:rgba(255,255,255,.9);border-radius:6px;width:1.9rem;height:1.7rem;cursor:pointer;font-size:1rem;line-height:1}
.redes-ia-barra{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.5rem 0}
.btn-ia{background:linear-gradient(135deg,#6b46c1,#2b6cb0);color:#fff;border-color:transparent}
.btn.cargando{opacity:.6;cursor:progress}
#f-texto,.redes-destino textarea{width:100%;font:inherit;line-height:1.45}
.contador{font-size:.78rem;color:var(--gris);font-weight:600}
.contador.pasado{color:#c53030}
.normas-panel{margin-top:.7rem;display:grid;gap:.5rem}
.normas-bloque{border-left:4px solid #2f855a;background:#eef8f1;padding:.5rem .7rem;border-radius:6px;font-size:.88rem}
.normas-bloque ul{margin:.3rem 0 0;padding-left:1.1rem}
.normas-bloque.nivel-revisar{border-color:#c98a00;background:#fff8e6}
.normas-bloque.nivel-no_publicar{border-color:#c53030;background:#fdeeee}
.redes-destinos{display:grid;gap:.6rem}
.redes-destino{border:1px solid var(--borde);border-radius:10px;padding:.6rem .8rem;background:#fafbfa}
.redes-destino.activa{background:#fff;border-color:color-mix(in srgb,var(--verde) 40%,var(--borde))}
.redes-destino-cab{display:flex;align-items:center;gap:.45rem;flex-direction:row;cursor:pointer;color:var(--texto)}
.redes-destino-cab .estado-dest{margin-left:auto}
.redes-destino-cuerpo{margin-top:.5rem}
.redes-destino:not(.activa) .redes-destino-cuerpo{display:none}
.error-campo{color:#c53030;font-size:.82rem;margin:.3rem 0 0}
.redes-botones .acciones{justify-content:flex-end}
.redes-previa-tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.6rem}
.redes-previa-tabs button{border:1px solid var(--borde);background:#fff;border-radius:999px;padding:.2rem .6rem;font-size:.78rem;cursor:pointer}
.redes-previa-tabs button.activa{background:var(--texto);color:#fff;border-color:var(--texto)}
.previa-movil{border:1px solid var(--borde);border-radius:14px;overflow:hidden;background:#fff;max-width:340px;margin:0 auto}
.previa-cab{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;font-size:.85rem}
.previa-avatar{width:28px;height:28px;border-radius:50%;background:var(--verde-claro);border:2px solid var(--verde)}
.previa-media{position:relative;aspect-ratio:1/1;background:#f1f2f1;display:flex;align-items:center;justify-content:center}
.previa-media.vertical{aspect-ratio:9/16}
.previa-media.sin{display:none}
.previa-media img,.previa-media video{width:100%;height:100%;object-fit:cover}
.previa-contador{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.6);color:#fff;font-size:.72rem;padding:2px 7px;border-radius:999px}
.previa-vacia{color:var(--gris);font-size:.82rem;padding:1rem;text-align:center}
.previa-texto{padding:.6rem .8rem;font-size:.84rem;white-space:pre-wrap;max-height:260px;overflow:auto;word-break:break-word}
.previa-movil[data-red="tiktok"]{background:#000;color:#fff}.previa-movil[data-red="tiktok"] .previa-media{aspect-ratio:9/16}
.redes-dlg .modal-caja{max-width:760px;width:calc(100vw - 2rem)}
.biblio-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;max-height:55vh;overflow:auto;margin:.5rem 0}
.biblio-rejilla.grande{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem;max-height:none}
.biblio-item{position:relative;aspect-ratio:1/1;border:2px solid transparent;border-radius:8px;overflow:hidden;padding:0;cursor:pointer;background:#f1f2f1}
.biblio-item img,.biblio-item video{width:100%;height:100%;object-fit:cover}
.biblio-item span{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.6);color:#fff;font-size:.66rem;padding:1px 5px;border-radius:4px}
.biblio-item.elegido{border-color:var(--verde)}
.biblio-item.elegido::after{content:"✓";position:absolute;right:6px;top:4px;background:var(--verde);color:#fff;border-radius:50%;width:1.3rem;height:1.3rem;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem}
.biblio-ficha{background:#fff;border:1px solid var(--borde);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.biblio-miniatura{position:relative;aspect-ratio:1/1;background:#f1f2f1;display:block}
.biblio-miniatura img,.biblio-miniatura video{width:100%;height:100%;object-fit:cover;display:block}
.biblio-info{padding:.5rem .7rem;display:flex;flex-direction:column;gap:.15rem;font-size:.88rem}
.biblio-acciones{display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center;padding:0 .7rem .7rem}
.manual-medios{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}
.manual-medios figure{margin:0;display:flex;flex-direction:column;gap:.35rem}
.manual-medios img,.manual-medios video{width:100%;border-radius:8px;border:1px solid var(--borde)}
#manual-texto{width:100%;font:inherit}
.acciones-fila>*{display:inline-block;margin:.15rem .3rem .15rem 0;vertical-align:middle}
.barras-dia{display:flex;align-items:flex-end;gap:3px;height:120px;border-bottom:1px solid var(--borde)}
.barras-dia span{flex:1;background:var(--verde);border-radius:3px 3px 0 0;min-width:4px}
.enlace-copiar{width:15rem;max-width:100%;font-size:.82rem}
tr.apagada td{opacity:.6}
.ia-proveedor{border:1px solid var(--borde);border-radius:10px;padding:.6rem .9rem}
.ia-proveedor legend{font-weight:700;padding:0 .3rem}
/* Diseñador */
.disenador{display:grid;grid-template-columns:260px minmax(0,1fr) 270px;gap:1rem;align-items:start}
@media (max-width:1150px){.disenador{grid-template-columns:230px minmax(0,1fr)}.dis-props{grid-column:1/-1}}
@media (max-width:760px){.disenador{grid-template-columns:1fr}.dis-centro{order:-1}}
.dis-panel{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:.8rem;max-height:calc(100vh - 120px);overflow:auto}
.dis-panel h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);margin:.9rem 0 .4rem}
.dis-panel h3:first-child{margin-top:0}
.dis-botones,.dis-plantillas{display:flex;flex-wrap:wrap;gap:.3rem}
.dis-botones button,.dis-plantillas button,.dis-boton-archivo{border:1px solid var(--borde);background:#fff;border-radius:8px;padding:.35rem .6rem;font:inherit;font-size:.82rem;cursor:pointer;display:inline-flex;align-items:center}
.dis-botones button.activo{background:var(--verde-barra);color:var(--sobre-verde);border-color:var(--verde-barra)}
.dis-botones button.peligro{color:#c53030;border-color:#f0c2c2}
.dis-plantillas button{width:100%;justify-content:flex-start;text-align:left}
.dis-fotos{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;margin-top:.4rem}
.dis-fotos button{padding:0;border:1px solid var(--borde);border-radius:6px;background:#fff;aspect-ratio:1/1;cursor:pointer;overflow:hidden}
.dis-fotos img{width:100%;height:100%;object-fit:contain}
#dis-buscar{width:100%}
.dis-lienzo-envoltura{background:repeating-conic-gradient(#eceeed 0 25%,#f7f8f7 0 50%) 0 0/24px 24px;border:1px solid var(--borde);border-radius:var(--radio);padding:1rem;display:flex;justify-content:center}
#dis-lienzo{max-width:100%;max-height:calc(100vh - 230px);width:auto;height:auto;box-shadow:0 6px 24px rgba(0,0,0,.12);touch-action:none;cursor:move;background:#fff}
.dis-pie{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}
.dis-pie input{flex:1;min-width:10rem}
#ia-proveedor{width:auto;min-width:10.5rem}
.cat-lista li.cat-seccion{list-style:none;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);padding:.7rem .2rem .2rem}
