/* Diseño del panel: fondo blanco, Inter para texto, IBM Plex Mono para cifras y etiquetas,
   Instrument Serif para títulos, bloques separados por líneas de 1 px, sin esquinas redondeadas. */
:root{--whatsapp:#25d366;--rcs:#1a73e8;--tinta:#141414;--negro:#111111;--gris:#555555;--gris-claro:#6b6b6b;--linea:#e2e2e2;--borde:#cfcfcf;--fondo:#fafafa;
  --ok:#15803d;--aviso:#b45309;--mal:#b91c1c;--apagado:#6b6b6b;--aviso-fondo:#fff8e8;--aviso-linea:#f0d9a8;--mal-linea:#f3c1b8;
  --serif:'Instrument Serif',Georgia,serif;--mono:'IBM Plex Mono',monospace;--sans:'Inter','Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);color:var(--tinta);background:#ffffff;font-size:15px}
a{color:var(--tinta);text-decoration:none}a:hover{color:#000000}
input,select,textarea,button{font:inherit;border-radius:0}
.pagina{min-height:100vh;display:flex;flex-direction:column}
.cabecera{display:flex;align-items:center;gap:32px;padding:0 40px;height:64px;border-bottom:1px solid var(--linea)}
.marca{font-family:var(--serif);font-size:24px}
.navegacion{display:flex;gap:4px;margin-left:16px}
.navegacion a{padding:8px 14px;font-size:15px;color:var(--gris)}
.navegacion a.activa{font-weight:500;color:var(--tinta);border-bottom:2px solid var(--negro)}
.estado-flota{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--gris-claro)}
.estado-flota a{color:var(--gris-claro)}
.contenido{flex:1;padding:48px 40px 56px;max-width:1160px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:28px}
.contenido.estrecho{padding-top:40px}
.titulo{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px}
h1{margin:0;font-family:var(--serif);font-weight:400;font-size:44px;letter-spacing:-0.02em;line-height:1.05}
.volver{font-size:13px;color:var(--gris-claro)}
.volver + h1{margin-top:8px}
.explicacion{margin:12px 0 0;font-size:16px;color:var(--gris);max-width:64ch}
.explicacion.corta{font-size:15px;margin-top:10px}
.nota{margin:0;font-size:13px;color:var(--gris-claro);max-width:80ch}
.acciones{display:flex;gap:10px;flex-wrap:wrap}
.boton{display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;padding:0 18px;min-height:44px;border:1px solid var(--borde);background:#ffffff;color:var(--tinta);cursor:pointer}
.boton.principal{border-color:var(--negro);background:var(--negro);color:#ffffff;padding:0 20px}
.boton.grande{min-height:48px;padding:0 24px;font-size:15px}
.boton.peligro{border-color:var(--mal-linea);color:var(--mal)}
.boton.chico{font-size:13px;min-height:38px;padding:0 14px;font-weight:400}
.boton.mini{font-size:12px;min-height:32px;padding:0 10px;font-weight:400}
.boton:disabled{opacity:.5;cursor:default}
.rejilla{display:grid;gap:1px;background:var(--linea);border:1px solid var(--linea)}
.rejilla>*{background:#ffffff}
.rejilla.gris>*{background:var(--fondo)}
.columnas-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.columnas-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.columnas-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.columnas-5-7{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.cifra{padding:16px 20px}
.cifra .etiqueta{font-size:13px;color:var(--gris-claro)}
.cifra .valor{font-family:var(--serif);font-size:34px;line-height:1;margin-top:6px}
.cifra .valor small{font-size:16px;color:var(--gris-claro);font-family:var(--serif)}
.cifra .detalle{font-size:12px;color:var(--gris-claro);margin-top:6px}
.cifra .detalle.ok{color:var(--ok)}.cifra .detalle.aviso{color:var(--aviso)}.cifra .detalle.mal{color:var(--mal)}
.cifra .texto{font-size:16px;font-weight:500;margin-top:6px}
.cifra .sub{font-size:13px;color:var(--gris);margin-top:2px}
.cifra .sub.aviso{color:var(--aviso)}
.bloque{border:1px solid var(--linea);display:flex;flex-direction:column}
.bloque.relleno{background:var(--fondo)}
.bloque .encabezado{padding:16px 24px;border-bottom:1px solid var(--linea);display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px}
.bloque .encabezado .nombre{font-size:16px;font-weight:500}
.bloque .encabezado .aparte{font-size:13px;color:var(--gris-claro)}
.bloque .encabezado .aparte.mono{font-family:var(--mono)}
.fila{display:flex;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--linea);font-size:14px;color:var(--gris)}
.fila.destacada{color:var(--tinta)}
.fila .mono{font-family:var(--mono)}
.fila .mono.ok{color:var(--ok)}
.seccion-padding{padding:20px 24px;display:flex;flex-direction:column;gap:12px}
.pie-bloque{padding:14px 24px;display:flex;gap:10px;flex-wrap:wrap}
.pie-texto{padding:0 24px 16px;font-size:13px;color:var(--gris-claro)}
.mono{font-family:var(--mono)}
.ok{color:var(--ok)}.aviso{color:var(--aviso)}.mal{color:var(--mal)}.apagado{color:var(--apagado)}
.punto{display:inline-block;width:8px;height:8px;background:currentColor;margin-right:6px;vertical-align:0}
.etiqueta-estado{font-size:12px;text-align:center;padding:5px 10px;border:1px solid var(--linea);white-space:nowrap}
.etiqueta-estado.aviso{border-color:var(--aviso-linea)}
.campo{display:flex;flex-direction:column;gap:8px}
.campo label{font-size:14px;font-weight:500}
.campo label span{color:var(--gris-claro);font-weight:400}
.campo input,.campo select,.campo textarea{font-size:15px;padding:0 14px;border:1px solid var(--borde);min-height:46px;width:100%;background:#ffffff}
.campo textarea{padding:10px 14px;min-height:100px;line-height:1.5}
.campo input.mono{font-family:var(--mono)}
.campo input.grande{font-size:28px;padding:10px 14px;min-height:56px}
.campo input.mediano{font-size:20px;padding:10px 14px;min-height:48px}
.campo-chico{display:flex;flex-direction:column;gap:6px}
.campo-chico label{font-size:13px;color:var(--gris)}
.campo-chico input{font-family:var(--mono);font-size:16px;padding:0 12px;border:1px solid var(--borde);min-height:42px;width:90px;background:#ffffff}
.campo-chico input[type=time]{width:120px}
.campo-mini{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--gris)}
.campo-mini input{font-family:var(--mono);font-size:14px;padding:0 8px;border:1px solid var(--borde);min-height:36px;width:100%;background:#ffffff}
.formulario-entrar{width:100%;max-width:400px;display:flex;flex-direction:column;gap:20px;border:1px solid var(--linea);padding:36px;background:var(--fondo)}
.formulario-entrar h1{font-size:36px}
.formulario-entrar .sub{margin:6px 0 0;font-size:14px;color:var(--gris-claro)}
.centro{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 40px}
.pie{padding:16px 40px;border-top:1px solid var(--linea);font-size:12px;color:var(--gris-claro)}
.error{border:1px solid var(--mal-linea);background:#fff5f3;color:var(--mal);padding:12px 16px;font-size:14px}
.aviso-caja{border:1px solid var(--aviso-linea);background:var(--aviso-fondo);padding:18px 24px;display:flex;flex-direction:column;gap:12px}
.aviso-caja .cabeza{font-size:14px;font-weight:500;color:var(--aviso)}
.aviso-caja .elemento{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--aviso-linea)}
.aviso-caja .elemento .nombre{font-size:15px;font-weight:500}
.aviso-caja .elemento .detalle{font-size:13px;color:var(--gris);margin-top:2px}
.exito-caja{border:1px solid #bfe3c8;background:#f1fbf3;padding:18px 24px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.exito-caja .clave{font-family:var(--mono);font-size:16px;padding:10px 12px;border:1px solid var(--borde);background:#ffffff;word-break:break-all;user-select:all}
.lista-campanas{display:flex;flex-direction:column;gap:1px;background:var(--linea);border:1px solid var(--linea)}
.campana-fila{background:#ffffff;padding:20px 24px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,3fr) auto;gap:24px;align-items:center}
.campana-fila .cliente{font-size:16px;font-weight:500;border-bottom:1px solid var(--borde)}
.campana-fila .nombre{font-size:14px;color:var(--gris);margin-top:2px}
.campana-fila .meta{font-size:12px;color:var(--gris-claro);margin-top:6px;font-family:var(--mono)}
.campana-fila .termina{font-family:var(--serif);font-size:28px;line-height:1.1;margin-top:2px}
.campana-fila .lateral{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.barra{height:4px;background:#e6e6e6}.barra>div{height:4px;background:var(--negro)}
.barra.fina{height:2px}.barra.fina>div{height:2px}
.barra.gruesa{height:10px;display:flex}.barra.gruesa>div{height:10px;background:var(--whatsapp)}
.barra .rcs{background:var(--rcs)}
.tarjeta-telefono{background:#ffffff;padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.tarjeta-telefono .cabeza{display:flex;align-items:center;gap:8px}
.tarjeta-telefono .cabeza a{font-family:var(--mono);font-size:15px;font-weight:500;border-bottom:1px solid var(--borde)}
.tarjeta-telefono .cabeza .operadora{margin-left:auto;font-size:12px;color:var(--gris-claro)}
.tarjeta-telefono .estado{font-size:13px}
.tarjeta-telefono .hoy{display:flex;justify-content:space-between;align-items:baseline}
.tarjeta-telefono .hoy .n{font-family:var(--serif);font-size:34px;line-height:1}
.tarjeta-telefono .hoy .t{font-size:12px;color:var(--gris-claro)}
.tarjeta-telefono .ritmo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding-top:12px;border-top:1px solid var(--linea)}
.tarjeta-telefono .pie-tarjeta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--gris-claro)}
.cuadricula-barras{display:flex;align-items:flex-end;gap:6px;height:110px}
.cuadricula-barras>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:1px}
.cuadricula-barras .wa{background:var(--whatsapp)}.cuadricula-barras .rcs{background:var(--rcs)}.cuadricula-barras .finde{background:#c9c9c9}
.etiquetas-barras{display:flex;gap:6px;font-family:var(--mono);font-size:11px;color:var(--gris-claro)}
.etiquetas-barras>div{flex:1;text-align:center}
.linea-tiempo{position:relative;height:56px;background:#f3f3f3}
.linea-tiempo .ventana{position:absolute;top:0;bottom:0;background:#e9e9e9}
.linea-tiempo .ahora{position:absolute;top:0;bottom:0;border-left:1px dashed var(--ok)}
.linea-tiempo .ahora-texto{position:absolute;top:6px;font-family:var(--mono);font-size:11px;color:var(--ok)}
.linea-tiempo .marca{position:absolute;top:23px;width:10px;height:10px;border:1px solid var(--negro)}
.linea-tiempo .marca.enviado{background:var(--negro)}
.linea-tiempo .marca.programado{background:#ffffff}
.linea-tiempo .marca.pospuesto{background:var(--aviso);border-color:var(--aviso)}
.linea-tiempo .marca.fallido{background:var(--mal);border-color:var(--mal)}
.horas{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--gris-claro)}
.leyenda{display:flex;gap:16px;font-size:13px;color:var(--gris)}
.cuadro{display:inline-block;width:9px;height:9px;margin-right:6px;vertical-align:-1px;background:var(--negro)}
.cuadro.rcs{background:var(--rcs)}.cuadro.whatsapp{background:var(--whatsapp)}.cuadro.vacio{background:#ffffff;border:1px solid var(--negro)}.cuadro.aviso{background:var(--aviso)}
.reparto-fila{display:grid;grid-template-columns:110px 110px minmax(0,1fr) 170px;gap:16px;padding:10px 24px;border-bottom:1px solid var(--linea);align-items:center;font-size:14px}
.reparto-fila.cabeza{font-size:12px;color:var(--gris-claro)}
.reparto-fila a{font-family:var(--mono);border-bottom:1px solid var(--borde);width:fit-content}
.reparto-fila .barra-reparto{display:flex;height:12px;background:#f0f0f0}
.reparto-fila .barra-reparto .wa{background:var(--whatsapp)}.reparto-fila .barra-reparto .rcs{background:var(--rcs)}
.reparto-fila .cuenta{font-family:var(--mono);text-align:right;color:#333333}
.reparto-fila .cuenta span{color:var(--gris-claro);font-size:12px}
.evento-fila{display:grid;grid-template-columns:64px 220px minmax(0,1fr);gap:16px;padding:11px 24px;border-bottom:1px solid var(--linea);font-size:14px;align-items:baseline}
.evento-fila .hora{font-family:var(--mono);color:var(--gris-claro);font-size:13px}
.evento-fila .tipo{font-size:13px}
.evento-fila .detalle{color:#333333}
.burbuja{max-width:380px;background:#ffffff;border:1px solid var(--linea);padding:12px 14px;font-size:14px;line-height:1.5;border-radius:0 12px 12px 12px;white-space:pre-wrap}
.variante{display:flex;flex-direction:column;gap:6px}
.variante .etiqueta{font-family:var(--mono);font-size:11px;color:var(--gris-claro)}
.tarjeta-cliente{background:#ffffff;padding:22px 24px;display:flex;flex-direction:column;gap:16px}
.tarjeta-cliente .cabeza{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.tarjeta-cliente .nombre{font-size:18px;font-weight:500}
.tarjeta-cliente .sub{font-size:13px;color:var(--gris-claro);margin-top:2px}
.tarjeta-cliente .mini-cifra{background:var(--fondo);padding:10px 12px}
.tarjeta-cliente .mini-cifra .etiqueta{font-size:12px;color:var(--gris-claro)}
.tarjeta-cliente .mini-cifra .valor{font-family:var(--mono);font-size:20px;margin-top:4px}
.tarjeta-cliente .campo-linea{display:flex;flex-direction:column;gap:6px}
.tarjeta-cliente .campo-linea .etiqueta{font-size:13px;color:var(--gris)}
.tarjeta-cliente .campo-linea .etiqueta span{color:var(--gris-claro)}
.tarjeta-cliente .campo-linea .linea{display:flex;gap:8px}
.tarjeta-cliente .campo-linea input{flex:1;min-width:0;font-family:var(--mono);font-size:14px;padding:0 12px;border:1px solid var(--borde);min-height:40px}
.tarjeta-cliente .campo-linea input[readonly]{background:var(--fondo)}
.tarjeta-cliente .campo-linea .estado-hook{font-size:12px}
.tarjeta-cliente .campo-linea button{font-size:13px;padding:0 12px;min-height:40px;border:1px solid var(--borde);background:#ffffff;cursor:pointer}
.estimacion{padding:32px;display:flex;flex-direction:column;gap:24px}
.estimacion .rotulo{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-claro)}
.estimacion .dias{font-family:var(--serif);font-size:84px;line-height:1;margin-top:10px}
.estimacion .dias span{font-size:40px}
.estimacion .cuando{font-size:16px;margin-top:10px}
.estimacion .canal{padding:14px 16px}
.estimacion .canal .rotulo{font-size:11px}
.estimacion .canal .n{font-family:var(--mono);font-size:22px;margin-top:6px}
.estimacion .canal .d{font-size:12px;color:var(--gris-claro);margin-top:4px}
.semanas{display:flex;align-items:flex-end;gap:6px;height:90px}
.semanas>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:90px}
.semanas>div>div{background:var(--negro)}
.semanas .semana{flex-direction:row;align-items:flex-end;gap:2px}
.semanas .semana .wa{flex:1;background:var(--whatsapp)}.semanas .semana .rcs{flex:1;background:var(--rcs)}
.htmx-indicator{opacity:0;transition:opacity .2s}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}
.detalles{border:1px solid var(--linea);padding:16px 20px;background:var(--fondo)}
.detalles summary{font-size:14px;font-weight:500;cursor:pointer}
.detalles .parametros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px;font-size:13px;color:var(--gris)}
.detalles .parametros .mono{color:var(--tinta)}
.casilla{display:flex;align-items:center;gap:10px;font-size:14px}
.casilla input{width:18px;height:18px;margin:0}
.selector{font-size:14px;padding:0 10px;border:1px solid var(--borde);min-height:38px;background:#ffffff}
.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th{text-align:left;font-weight:400;font-size:12px;color:var(--gris-claro);padding:10px 24px;border-bottom:1px solid var(--linea)}
.tabla td{padding:10px 24px;border-bottom:1px solid var(--linea)}
.tabla td.mono{font-family:var(--mono)}
@media (max-width:900px){.columnas-4,.columnas-3,.columnas-2,.columnas-5-7{grid-template-columns:1fr}.campana-fila{grid-template-columns:1fr}.cabecera{padding:0 16px;gap:12px}.contenido{padding:24px 16px 40px}.navegacion{margin-left:0}.reparto-fila{grid-template-columns:1fr}}
.foto-perfil{width:72px;height:72px;object-fit:cover;border:1px solid var(--linea);display:block;flex:none}
.foto-perfil.grande{width:140px;height:140px}
.foto-perfil.mini{width:28px;height:28px}
.foto-perfil.vacia{display:flex;align-items:center;justify-content:center;background:var(--fondo);color:var(--gris-claro);font-size:12px}
