/* ── Natividad v5 · herramienta de trabajo: legible al sol, dedos grandes, cero adorno ── */
:root{
  --tinta:#1B2421; --tinta-2:#63716C; --fondo:#F2F4F3; --tarjeta:#FFFFFF; --linea:#E1E6E3;
  --verde:#1F6B4A; --verde-osc:#154A33; --verde-suave:#E4F1EA; --ambar:#B5760A; --ambar-suave:#FBF1DB;
  --azul:#2E63B3; --azul-suave:#E6EEFA; --rojo:#B23A2C; --rojo-suave:#FBE9E6; --morado:#6B4BB3; --morado-suave:#EEE9FA; --teal:#0F7C7C; --teal-suave:#E1F3F3;
  --sombra:0 1px 2px rgba(20,40,30,.06),0 4px 14px rgba(20,40,30,.05); --radio:12px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
body{background:var(--fondo);color:var(--tinta);font-size:16px;line-height:1.45;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
button{font:inherit;cursor:pointer}
a{color:var(--verde)}

#topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;
        background:linear-gradient(90deg,var(--verde-osc),var(--verde));color:#fff;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));box-shadow:0 2px 8px rgba(0,0,0,.12)}
.brand{font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.brand-mark{width:28px;height:28px;border-radius:7px;display:block;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.icon-btn{background:none;border:none;color:#fff;font-size:1.25rem;padding:6px 10px;border-radius:8px}
.icon-btn:active{background:rgba(255,255,255,.18)}

main{max-width:760px;margin:0 auto;padding:14px}
h1{font-size:1.25rem;font-weight:800;margin:6px 0 12px}
h2{font-size:.82rem;font-weight:800;margin:16px 0 8px;color:var(--tinta-2);text-transform:uppercase;letter-spacing:.08em}

.card{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:12px 14px;margin-bottom:10px;box-shadow:var(--sombra)}
.card .fila{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.cliente{font-weight:700}
.num{color:var(--tinta-2);font-size:.85rem}
.total{font-weight:800;font-variant-numeric:tabular-nums}
.sub{color:var(--tinta-2);font-size:.9rem;margin-top:2px}

.recorrido{display:flex;gap:4px;margin-top:10px}
.recorrido span{flex:1;height:6px;border-radius:3px;background:var(--linea)}
.recorrido span.hecho{background:var(--verde)}
.recorrido span.actual{background:var(--ambar)}

.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700;white-space:nowrap}
.chip.recepcion{background:var(--ambar-suave);color:var(--ambar)}
.chip.agendar{background:var(--verde-suave);color:var(--verde)}
.chip.agendado,.chip.ruta{background:var(--azul-suave);color:var(--azul)}
.chip.entregado{background:var(--verde-suave);color:var(--verde)}
.chip.factura{background:var(--verde);color:#fff}
.chip.aviso{background:var(--rojo-suave);color:var(--rojo)}
.chip.tag{background:color-mix(in srgb,var(--tag) 14%,#fff);color:var(--tag);border:1px solid color-mix(in srgb,var(--tag) 35%,#fff);font-size:.75rem}

.btn{display:block;width:100%;border:none;border-radius:var(--radio);padding:14px;font-weight:700;font-size:1rem;background:var(--verde);color:#fff;margin-top:10px;box-shadow:0 2px 6px rgba(31,107,74,.25)}
.btn:hover{background:var(--verde-osc)}
.btn.sec{background:var(--tarjeta);color:var(--verde);border:2px solid var(--verde)}
.btn:disabled{opacity:.45}
.btn-mini{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--linea);background:var(--tarjeta);border-radius:8px;padding:8px 12px;font-weight:600;text-decoration:none;color:var(--tinta);font-size:.9rem;box-shadow:0 1px 1px rgba(0,0,0,.03)}
.btn-mini:hover{border-color:var(--verde);color:var(--verde)}
input,select,textarea{width:100%;padding:12px;border:1px solid var(--linea);border-radius:8px;font:inherit;background:#fff;margin-top:4px}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--verde) 45%,#fff);border-color:var(--verde)}
textarea{resize:vertical}
label{font-size:.85rem;font-weight:600;color:var(--tinta-2);display:block;margin-top:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.grid3{display:grid;grid-template-columns:1fr 1.4fr 0.8fr;gap:8px}
.buscador{position:sticky;top:calc(48px + env(safe-area-inset-top));z-index:5;background:var(--fondo);padding:6px 0 8px}
.buscador input{font-size:1.05rem}

.filtros{display:flex;gap:6px;overflow-x:auto;padding:8px 0 2px;-webkit-overflow-scrolling:touch}
.filtros button{white-space:nowrap;border:1.5px solid var(--linea);background:var(--tarjeta);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--tinta-2)}
.filtros button.on{border-color:var(--verde);background:var(--verde-suave);color:var(--verde)}
.filtros button[style]{--tag:#5A6B63}
.filtros button[style].on{border-color:var(--tag);color:var(--tag);background:color-mix(in srgb,var(--tag) 12%,#fff)}

.tags-sel{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tags-sel button[data-id]{border:1.5px solid var(--linea);background:#fff;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--tinta-2)}
.tags-sel button[data-id].on{border-color:var(--tag);color:var(--tag);background:color-mix(in srgb,var(--tag) 12%,#fff)}

.linea-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--linea)}
.linea-item:last-of-type{border-bottom:none}
.linea-item .desc{flex:1}
.linea-item .cod{font-size:.8rem;color:var(--tinta-2)}
.check{width:26px;height:26px;min-width:26px;border-radius:6px;border:2px solid var(--linea);display:flex;align-items:center;justify-content:center;font-weight:800;background:#fff}
.check.on{background:var(--verde);border-color:var(--verde);color:#fff}
.check:disabled{opacity:.6;cursor:default}
.linea-edit{border:1px solid var(--linea);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:#fff}
.linea-edit .fila{display:flex;justify-content:space-between;align-items:center;margin-top:6px}

.resultados{max-height:260px;overflow:auto;border:1px solid var(--linea);border-radius:8px;background:#fff;margin-top:4px}
.resultados:empty{display:none}
.res{padding:10px 12px;border-bottom:1px solid var(--linea);cursor:pointer}
.res:last-child{border-bottom:none}
.res:active{background:var(--verde-suave)}
.sel-cliente{background:var(--verde-suave);border-color:var(--verde)}
.acciones-mini{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}

.obs{padding:8px 0;border-bottom:1px solid var(--linea)}
.obs:last-of-type{border-bottom:none}
.obs-meta{font-size:.78rem;color:var(--tinta-2);margin-bottom:2px}

.medios{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.medios button{padding:12px 4px;border-radius:8px;border:2px solid var(--linea);background:#fff;font-weight:700}
.medios button.on{border-color:var(--verde);background:var(--verde-suave);color:var(--verde)}

#tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;overflow-x:auto;background:var(--tarjeta);border-top:1px solid var(--linea);padding-bottom:env(safe-area-inset-bottom);z-index:10;-webkit-overflow-scrolling:touch}
#tabbar a{flex:1 0 20%;min-width:64px;text-align:center;padding:9px 2px 7px;text-decoration:none;color:var(--tinta-2);font-size:.68rem;font-weight:600;white-space:nowrap}
#tabbar a .ic{display:block;font-size:1.25rem;line-height:1.2}
#tabbar a.on{color:var(--verde)}

.login{max-width:340px;margin:12vh auto 0;text-align:center}
.login .brand-mark{width:76px;height:76px;border-radius:18px;margin:0 auto 10px;box-shadow:0 6px 18px rgba(21,74,51,.3)}
.login h1{margin-top:14px}
#toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;z-index:20;max-width:90vw;text-align:center}
.vacio{text-align:center;color:var(--tinta-2);padding:40px 10px}
.error-inline{color:var(--rojo);font-weight:600;margin-top:8px}
@media (prefers-reduced-motion: no-preference){ .card{animation:aparecer .18s ease-out} @keyframes aparecer{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}} }
@media (min-width:760px){ body{padding-bottom:80px} }

/* ── v5 ── */
.interno{background:#F4F6F3;border:1px dashed var(--linea);border-radius:8px;padding:6px 10px 10px;margin-top:8px}
.interno-txt{color:var(--tinta-2)}
.aviso-txt{color:var(--rojo);font-weight:600}
.ok-txt{color:var(--verde);font-weight:600}
.mini-acc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.mini-acc select{width:auto;padding:6px 8px;margin:0}
label.inline{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.85rem}
label.inline input[type=checkbox]{width:20px;height:20px;margin:0}
label.inline input[type=number]{margin:0;padding:6px}
.fab-sel{position:relative}
.fab-res{position:absolute;left:0;right:0;z-index:6;max-height:220px}
.res.nueva{color:var(--verde);font-weight:600}
.galeria{display:flex;flex-wrap:wrap;gap:8px}
.galeria img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--linea)}
#fi-canvas{width:100%;height:auto;border:2px dashed var(--linea);border-radius:8px;background:#fff;touch-action:none;margin-top:6px}
.firma-img{max-width:100%;max-height:140px;border:1px solid var(--linea);border-radius:8px;background:#fff;margin-top:6px}
.linea-ficha{align-items:flex-start}
.linea-ficha .check{margin-top:4px}
.card.linea-item{margin-bottom:8px;border-bottom:1px solid var(--linea)}
.card-inc{border-left:4px solid var(--rojo)}

/* ── v5.2 ── */
.check-r{display:flex;flex-direction:column;align-items:center;gap:2px}
.r-label{font-size:.7rem;font-weight:800;color:var(--tinta-2);line-height:1}
.acciones-ruta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 12px;padding:0 6px}
.acciones-ruta input,.acciones-ruta select{width:auto;margin:0;padding:8px}
.ruta-det{margin:8px 0} .ruta-det summary{cursor:pointer;font-weight:600;color:var(--verde)}
.ruta-det .acciones-ruta{margin:8px 0 0}
@media (min-width:760px){
  body{padding-bottom:20px;padding-top:0}
  #topbar{position:fixed;top:0;left:0;right:0;z-index:12;height:48px}
  #topbar:not([hidden]) ~ main{padding-top:104px}
  #tabbar{top:48px;bottom:auto;overflow:visible;flex-wrap:wrap;justify-content:center;border-top:none;border-bottom:1px solid var(--linea);box-shadow:0 1px 3px rgba(0,0,0,.06);z-index:11}
  #tabbar a{flex:0 0 auto;min-width:0;padding:9px 12px;font-size:.84rem;display:flex;align-items:center;gap:6px;border-radius:8px 8px 0 0}
  #tabbar a:hover{background:var(--verde-suave);color:var(--verde)}
  #tabbar a .ic{display:inline;font-size:1rem;line-height:1}
  #tabbar a.on{border-bottom:3px solid var(--verde)}
  .buscador{top:96px}
  #toast{bottom:auto;top:110px}
}

/* v6: clientes y análisis */
.fila-link{display:block;text-decoration:none;color:inherit}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:10px 0}
.kpi{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:10px 12px}
.kpi .v{font-size:1.3rem;font-weight:800;color:#1E5B43} .kpi .l{font-size:.8rem;color:#5A6B63}
table.tabla{width:100%;border-collapse:collapse;font-size:.9rem} table.tabla th{text-align:left;border-bottom:2px solid #1E5B43;padding:6px 8px} table.tabla td{padding:6px 8px;border-bottom:1px solid var(--linea)} table.tabla td.r{text-align:right;white-space:nowrap}

/* v7: retirada */
.ret-lista{display:grid;gap:4px;margin:4px 0 8px}
.ret-fila{display:flex;align-items:center;gap:8px;padding:4px 6px;border:1px solid var(--linea);border-radius:8px;background:#fff}
.ret-fila .ret-nom{flex:1} .ret-fila .ret-n{width:64px;margin:0;padding:4px 6px}

/* v8: rutas por día, mediciones, avisos */
.aviso-rojo{color:#fff;background:var(--rojo);border-radius:8px;padding:6px 10px;margin:6px 0;font-size:.88rem;font-weight:600}
.card-med{border-left:4px solid #1E5B43}
details.dia-ruta{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:8px 12px;margin:8px 0}
details.dia-ruta summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
details.dia-ruta summary::before{content:"▸ ";color:#1E5B43} details.dia-ruta[open] summary::before{content:"▾ "}
details.dia-ruta[open] summary{margin-bottom:8px;border-bottom:1px solid var(--linea);padding-bottom:6px}

/* v8-B: presupuestos */
.card-presu{border-left:4px solid #b8860b}

/* v8-C: avisos y geo */
#btn-avisos.con-avisos{background:var(--rojo);color:#fff;border-radius:14px;padding:0 8px;font-size:.85rem}
.geo-res{position:relative;z-index:5}

/* v8-C: recargar */
#btn-refrescar.con-cambios{color:#fff;background:var(--rojo);border-radius:14px}
#btn-refrescar.girando{animation:girar .8s linear infinite} @keyframes girar{to{transform:rotate(360deg)}}

/* v8-E: botón salir */
.btn-salir{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;border:1px solid rgba(255,255,255,.45)!important;padding:5px 10px!important}
.btn-salir svg{display:block} @media (max-width:560px){.btn-salir .txt{display:none}}

/* v9: selección múltiple */
.fila-sel{display:flex;align-items:flex-start;gap:8px} .fila-sel>input{margin-top:14px;width:20px;height:20px}

/* ── v9: inicio y móvil ─────────────────────────────────────────── */
.brand-link{color:#fff;text-decoration:none;display:flex;align-items:center;gap:8px}
.btn-atras{font-size:1.9rem;line-height:1;padding:0 10px 4px 4px!important}
.inicio-cab{margin:4px 0 10px} .inicio-cab h1{margin:0}
.inicio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:14px 12px 12px;text-decoration:none;color:var(--tinta);min-height:96px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.tile:active{background:var(--verde-suave);border-color:var(--verde)}
.tile-ic{font-size:1.7rem;line-height:1.1} .tile-tx{font-weight:800;margin-top:6px} .tile-d{font-size:.78rem;color:var(--tinta-2);line-height:1.25}
.tile-badge{position:absolute;top:10px;right:10px;background:var(--rojo);color:#fff;border-radius:999px;min-width:24px;height:24px;padding:0 7px;font-size:.8rem;font-weight:800;display:flex;align-items:center;justify-content:center}
@media (min-width:760px){ .inicio-grid{grid-template-columns:repeat(4,1fr)} }
@media (max-width:759px){
  #tabbar{display:grid;grid-template-columns:repeat(5,1fr);overflow:hidden}
  #tabbar a{flex:none;min-width:0;padding:8px 2px 6px;font-size:.66rem}
  #tabbar a.solo-pc{display:none}
  #tabbar a .ic{font-size:1.35rem}
  #tabbar a.on{background:var(--verde-suave);border-radius:10px 10px 0 0}
  main{padding:12px 10px}
  h1{font-size:1.2rem}
  .card{padding:12px}
  .btn-mini{padding:10px 12px;font-size:.92rem}
  .acciones-mini{gap:8px}
  input,select,textarea{font-size:16px;padding:12px 10px}   /* 16px evita que iOS haga zoom al escribir */
  .grid3{grid-template-columns:1fr}
  .acciones-ruta input,.acciones-ruta select{width:100%}
  table.tabla{display:block;overflow-x:auto;white-space:nowrap}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .inicio-grid{grid-template-columns:repeat(2,1fr)}
  .top-actions{gap:0} .icon-btn{padding:6px 7px}
  #btn-nuevo{display:none}   /* en el móvil, "Nuevo" está en Inicio */
  .buscador{top:calc(48px + env(safe-area-inset-top))}
}

/* ── v10: iconos ── */
.ico{width:1.15em;height:1.15em;vertical-align:-.22em;display:inline-block;flex:none}
.ico-w{display:inline-flex;align-items:center;margin-right:.15em}
#tabbar a .ic .ico{width:1.45em;height:1.45em;vertical-align:middle}
@media (min-width:760px){ #tabbar a .ic .ico{width:1.15em;height:1.15em} }
.tile-ic .ico{width:2em;height:2em;color:var(--verde)}
.icon-btn .ico{width:1.35em;height:1.35em;vertical-align:middle}
.btn .ico,.btn-mini .ico{vertical-align:-.25em}
.chip .ico{width:1em;height:1em;vertical-align:-.15em}
.check .ico{width:1.1em;height:1.1em;vertical-align:middle;stroke-width:3}

/* ── v10: calendario ── */
.cal-cab{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.75rem;font-weight:700;color:var(--tinta-2);margin-top:10px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:4px}
.cal-d{min-height:64px;border:1px solid var(--linea);border-radius:8px;padding:4px;background:#fff;cursor:pointer;overflow:hidden;font-size:.72rem}
.cal-d.vacia{border:none;background:transparent;cursor:default}
.cal-d.finde{background:#F4F6F3} .cal-d.cerrado{background:var(--rojo-suave)} .cal-d.sel{outline:2px solid var(--verde)} .cal-d.hoy .cal-n{background:var(--verde);color:#fff;border-radius:999px}
.cal-n{font-weight:800;font-size:.8rem;width:22px;height:22px;display:flex;align-items:center;justify-content:center}
.cal-ev{display:block;border-radius:4px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.ev-fest{background:var(--rojo-suave);color:var(--rojo)} .ev-cerr{background:#F1D9D5;color:var(--rojo)} .ev-ev{background:var(--ambar-suave);color:var(--ambar)} .ev-vac{background:var(--azul-suave);color:var(--azul)}
@media (max-width:759px){ .cal-d{min-height:52px;font-size:.62rem} .cal-ev{display:none} .cal-d.cerrado::after{content:"●";color:var(--rojo);font-size:.6rem} }

/* ── v10: tareas ── */
.card-tarea.hecha .cliente{text-decoration:line-through;color:var(--tinta-2)}
.card-tarea.vencida{border-color:var(--rojo)}

/* ── v10.1: rediseño limpio ─────────────────────────────────────── */
.tile{border:1px solid var(--linea);box-shadow:var(--sombra);gap:0;padding:14px 14px 12px}
.tile:hover{border-color:var(--verde);transform:translateY(-1px)}
.tile-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--verde-suave);color:var(--verde);margin-bottom:8px}
.tile-ic .ico{width:1.35em;height:1.35em;color:inherit}
.tile-tx{font-size:.98rem} .tile-d{margin-top:2px}
.tile-pedidos .tile-ic,.tile-clientes .tile-ic{background:var(--azul-suave);color:var(--azul)}
.tile-presupuestos .tile-ic,.tile-agendar .tile-ic,.tile-porpedir .tile-ic{background:var(--ambar-suave);color:var(--ambar)}
.tile-recepcion .tile-ic,.tile-recogida .tile-ic,.tile-mediciones .tile-ic{background:var(--teal-suave);color:var(--teal)}
.tile-incidencias .tile-ic,.tile-facturados .tile-ic{background:var(--rojo-suave);color:var(--rojo)}
.tile-resenas .tile-ic{background:#FFF4D6;color:#B8860B}
.tile-tareas .tile-ic,.tile-calendario .tile-ic,.tile-analisis .tile-ic{background:var(--morado-suave);color:var(--morado)}
.inicio-cab h1{font-size:1.5rem}
.chip.ausencia{background:var(--morado-suave);color:var(--morado)}
.ev-aus{background:var(--morado-suave);color:var(--morado)}
.chip.caja{background:var(--ambar-suave);color:var(--ambar)}
h1{color:var(--tinta)} .card .fila .cliente{font-size:1rem}
#toast{box-shadow:0 6px 20px rgba(0,0,0,.25)}
.icon-btn .ico{width:1.25em;height:1.25em}
@media (min-width:760px){ .inicio-grid{grid-template-columns:repeat(4,1fr)} main{max-width:900px} .tile{min-height:104px} }
@media (max-width:759px){ .tile-ic{width:38px;height:38px} .tile-ic .ico{width:1.25em;height:1.25em} #tabbar a .ic .ico{width:1.3em;height:1.3em} #tabbar{box-shadow:0 -2px 8px rgba(0,0,0,.06)} }

/* v10.2: iconos perfectamente centrados */
.ico-w{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.tile-ic .ico-w,#tabbar .ic .ico-w,.icon-btn .ico-w,.check .ico-w{margin:0}
.tile-ic{line-height:0} .tile-ic .ico{display:block;vertical-align:initial}
#tabbar a .ic{display:flex;justify-content:center} #tabbar a .ic .ico{display:block;vertical-align:initial}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;line-height:0;min-width:38px;min-height:38px}
.icon-btn .ico{display:block;vertical-align:initial}
.btn-mini .ico-w{margin-right:0}

/* v10.3: cabecera en una sola línea en móviles estrechos (iPhone 14: 390 px) */
#topbar{flex-wrap:nowrap;gap:6px} .brand{min-width:0;flex:none} .top-actions{display:flex;align-items:center;flex:none}
@media (max-width:759px){
  .brand-txt{display:none}                 /* solo el logo "N" */
  .brand-mark{width:32px;height:32px;border-radius:8px}
  #btn-config{display:none}                /* Configuración se abre desde Inicio */
  .icon-btn{min-width:34px;min-height:34px;padding:5px 6px}
  .top-actions{gap:2px}
  .btn-salir{padding:5px 8px!important}
}
@media (max-width:359px){ #btn-cuenta{display:none} }

/* ══ v13: Correo — cliente de tres paneles ══════════════════════════════════════ */
main:has(.correo){max-width:none;padding:10px 12px}
.correo{--co-alto:calc(100vh - 128px);display:grid;grid-template-columns:232px minmax(340px,430px) minmax(0,1fr);gap:10px;align-items:stretch;height:var(--co-alto);min-height:480px}
.correo>*{min-height:0}
.correo-nav{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:10px;display:flex;flex-direction:column;gap:8px;overflow:auto}
.co-redactar{margin:0;padding:11px 14px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;font-size:.95rem}
.correo-cuentas select{width:100%;margin:0;padding:8px 10px;font-size:.86rem;border-radius:8px}
.correo-carpetas{display:flex;flex-direction:column;gap:1px}
.co-carp{display:flex;justify-content:space-between;align-items:center;width:100%;border:none;background:none;text-align:left;padding:8px 10px;border-radius:8px;font-size:.9rem;color:var(--tinta)}
.co-carp span{display:inline-flex;align-items:center;gap:8px} .co-carp .ico{color:var(--tinta-2)} .co-carp:hover{background:#F1F5F3} .co-carp.on{background:var(--verde-suave);color:var(--verde);font-weight:700} .co-carp.on .ico{color:var(--verde)}
.co-carp b{background:var(--verde);color:#fff;border-radius:999px;font-size:.7rem;padding:1px 7px;min-width:20px;text-align:center}
.co-nav-pie{margin-top:auto;font-size:.78rem;display:flex;flex-direction:column;gap:6px} .co-nav-pie .acciones-mini{gap:4px} .co-nav-pie .btn-mini{padding:5px 8px;font-size:.78rem}
.co-sync-linea{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .co-punto{width:8px;height:8px;border-radius:50%;background:#9AA6A0;flex:none} .co-punto.ok{background:#2E9E5B} .co-punto.mal{background:var(--rojo)} .co-punto.sync{background:var(--ambar);animation:co-lat 1s infinite alternate}
@keyframes co-lat{from{opacity:.4}to{opacity:1}}
/* lista */
.correo-lista{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);display:flex;flex-direction:column;overflow:hidden}
.correo-barra{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--linea);align-items:center}
.co-busca{flex:1;display:flex;align-items:center;gap:6px;background:#F3F6F4;border-radius:999px;padding:0 10px;min-width:0} .co-busca .ico{color:var(--tinta-2);flex:none} .co-busca input{flex:1;min-width:0;margin:0;border:none;background:none;padding:9px 0;font-size:.9rem;outline:none} .co-q-x{border:none;background:none;font-size:1.2rem;color:var(--tinta-2);padding:0 2px}
.co-filtros{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--linea)} .co-todos{display:flex;align-items:center;padding:0 6px 0 4px} .co-todos input{width:16px;height:16px;margin:0}
.co-filtro{border:none;background:none;border-radius:999px;padding:4px 9px;font-size:.8rem;font-weight:600;color:var(--tinta-2);white-space:nowrap} .co-filtro.on{background:var(--verde-suave);color:var(--verde)} .co-total{margin-left:auto;font-size:.72rem;color:var(--tinta-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.correo-acciones{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:6px 8px;border-bottom:1px solid var(--linea);background:var(--verde-suave)} .correo-acciones .btn-mini{padding:5px 8px} .correo-acciones select{width:auto;margin:0;padding:5px;font-size:.82rem} #co-nsel{font-size:.8rem;font-weight:700;color:var(--verde);margin-right:4px}
.co-hilos{flex:1;overflow:auto;overscroll-behavior:contain}
.co-cargando{padding:16px;color:var(--tinta-2);text-align:center;font-size:.9rem}
.hilo{position:relative;display:grid;grid-template-columns:22px 34px 1fr;gap:8px;padding:9px 10px 9px 6px;border-bottom:1px solid var(--linea);cursor:pointer;align-items:center;outline:none}
.hilo:hover,.hilo:focus{background:#F5F8F6} .hilo.on{background:var(--verde-suave);box-shadow:inset 3px 0 0 var(--verde)} .hilo.sel{background:#EEF4F8}
.hilo.noleido .hilo-de,.hilo.noleido .hilo-asunto{font-weight:800;color:var(--tinta)} .hilo.noleido .co-avatar{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--verde)}
.hilo-check{display:flex;align-items:center;justify-content:center} .hilo-chk{width:16px;height:16px;margin:0;opacity:.35} .hilo:hover .hilo-chk,.hilo.sel .hilo-chk,.hilo-chk:checked{opacity:1}
.co-avatar{width:34px;height:34px;border-radius:50%;color:#fff;font-weight:800;font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;flex:none;letter-spacing:.02em} .co-avatar.mini{width:26px;height:26px;font-size:.66rem}
.hilo-cuerpo{min-width:0} .hilo-l1{display:flex;justify-content:space-between;gap:8px;align-items:baseline} .hilo-de{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem} .hilo-de .num{font-size:.75rem} .hilo-fecha{font-size:.74rem;color:var(--tinta-2);white-space:nowrap;display:inline-flex;align-items:center;gap:3px}
.hilo-asunto{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem;color:var(--tinta)} .hilo-resumen{font-size:.78rem;color:var(--tinta-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-chip-cuenta{font-size:.64rem;padding:1px 7px;color:#1B2421} .ico.mini{width:.95em;height:.95em}
.hilo-hover{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:none;gap:2px;background:#fff;border:1px solid var(--linea);border-radius:8px;padding:2px;box-shadow:var(--sombra)} .hilo:hover .hilo-hover,.hilo-hover.siempre{display:flex} .hilo-hover.siempre{position:static;transform:none;border:none;box-shadow:none;background:none}
.hilo-hover button{border:none;background:none;padding:5px;border-radius:6px;color:var(--tinta-2);display:flex} .hilo-hover button:hover{background:var(--verde-suave);color:var(--verde)} .hilo-star.on{color:#E0A800!important} .hilo-star.on svg{fill:#E0A800}
.hilo.borrador-local .hilo-de{color:var(--ambar)} .hilo.con-error{background:var(--rojo-suave)}
.co-pag{display:flex;justify-content:center;align-items:center;gap:8px;padding:6px;border-top:1px solid var(--linea)} .co-pag:empty{display:none}
.co-vacio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--tinta-2);padding:50px 20px;text-align:center;font-size:.92rem} .co-vacio .ico.grande,.co-vacio-total .ico.grande{width:52px;height:52px;color:#C5CFCA;stroke-width:1.4}
.co-vacio-total{text-align:center;padding:60px 20px;color:var(--tinta-2)}
/* lectura */
.correo-lectura{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);overflow:auto;display:flex;flex-direction:column}
.lect-cab{position:sticky;top:0;z-index:2;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--linea);padding:10px 14px 8px}
.lect-l1{display:flex;align-items:center;gap:10px} .lect-asunto{margin:0;text-transform:none;letter-spacing:0;font-size:1.12rem;color:var(--tinta);font-weight:800;line-height:1.25;flex:1;min-width:0;overflow-wrap:anywhere} .lect-n{font-size:.78rem;color:var(--tinta-2);white-space:nowrap}
.lect-tools{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:8px} .lect-tools .btn-mini{padding:6px 9px;font-size:.82rem;gap:4px} .lect-tools .btn-mini.on svg{fill:#E0A800;color:#E0A800} .lect-tools .sep,.rd-tools .sep{width:1px;height:20px;background:var(--linea);margin:0 4px}
.lect-tools .co-mover-sel{width:auto;margin:0;padding:6px 8px;font-size:.82rem;border-radius:8px} .btn-mini.rojo{color:var(--rojo)} .btn-mini.rojo:hover{border-color:var(--rojo)}
.lect-vinc{margin-top:8px;font-size:.82rem;display:flex;flex-wrap:wrap;gap:4px;align-items:center} .lect-vinc .chip{background:var(--azul-suave);color:var(--azul);text-decoration:none;display:inline-flex;align-items:center;gap:4px} .co-desv{border:none;background:none;color:var(--tinta-2);font-size:1rem;padding:0 4px}
#co-vinc-box{margin-top:8px} #co-vinc-box input{margin:0}
.lect-mensajes{padding:10px 14px 4px;display:flex;flex-direction:column;gap:10px}
.mensaje{border:1px solid var(--linea);border-radius:12px;overflow:hidden;background:#fff} .mensaje.enviado{border-color:#CFE3D8}
.msg-cab{display:grid;grid-template-columns:34px 1fr auto;gap:10px;padding:10px 12px;cursor:pointer;align-items:start} .mensaje.abierto>.msg-cab{border-bottom:1px solid var(--linea);background:#FAFBFA}
.msg-quien{min-width:0} .msg-l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap} .msg-de{font-size:.95rem} .msg-fecha{margin-left:auto;font-size:.78rem;color:var(--tinta-2);white-space:nowrap}
.msg-l2{display:flex;align-items:center;gap:4px;font-size:.8rem} .msg-l2 .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .msg-det-btn{border:none;background:none;color:var(--tinta-2);padding:0 2px;display:flex}
.msg-detalles{font-size:.8rem;color:var(--tinta-2);background:#F6F8F7;border-radius:8px;padding:8px 10px;margin-top:6px;overflow-wrap:anywhere;cursor:default} .msg-detalles b{color:var(--tinta)}
.msg-resumen{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .mensaje.abierto .msg-resumen{display:none} .mensaje:not(.abierto) .msg-l2{display:none}
.msg-menu{display:flex;gap:2px;opacity:0;transition:opacity .15s} .mensaje:hover .msg-menu,.mensaje.abierto .msg-menu{opacity:1} .msg-menu button{border:none;background:none;padding:5px;border-radius:6px;color:var(--tinta-2);display:flex} .msg-menu button:hover{background:var(--verde-suave);color:var(--verde)}
.mensaje:not(.abierto) .msg-cuerpo{display:none} .msg-cuerpo{padding:4px 12px 12px}
.msg-frame{width:100%;border:none;min-height:60px;background:#fff;display:block;color-scheme:light} .msg-texto{white-space:pre-wrap;font:inherit;margin:8px 0;overflow-wrap:anywhere}
.msg-img-aviso{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--ambar-suave);color:var(--ambar);padding:6px 10px;border-radius:8px;font-size:.8rem;margin:6px 0} .msg-img-aviso .btn-mini{padding:3px 8px;font-size:.76rem}
.msg-adj{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--linea);align-items:center}
.adj{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--linea);border-radius:10px;padding:6px 10px;text-decoration:none;color:var(--tinta);font-size:.82rem;max-width:260px;background:#fff;position:relative} .adj:hover{border-color:var(--verde);background:#F7FBF8} .adj .ico{width:1.4em;height:1.4em;color:var(--verde);flex:none}
.adj-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .adj-n i{color:var(--tinta-2);font-style:normal;font-size:.75rem} .adj-dl{display:none;position:absolute;right:6px;top:6px;background:#fff;border-radius:6px;padding:2px;color:var(--tinta-2)} .adj:hover .adj-dl{display:flex}
.adj-img{flex-direction:column;align-items:stretch;padding:0;overflow:hidden;width:160px;max-width:160px} .adj-img img{width:100%;height:110px;object-fit:cover;display:block;background:#EEF1EF} .adj-img .adj-n{padding:5px 8px}
.co-dl-todos{padding:5px 9px;font-size:.78rem}
.lect-pie{display:flex;gap:8px;padding:10px 14px 14px;flex-wrap:wrap} .lect-pie .btn{width:auto;margin:0;padding:10px 16px;display:inline-flex;align-items:center;gap:6px;font-size:.92rem}
.btn.sec{background:#fff;color:var(--verde);border:1.5px solid var(--verde);box-shadow:none}
/* redactor */
.rd{display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);border-radius:12px;box-shadow:0 8px 30px rgba(20,40,30,.18);overflow:hidden;font-size:.92rem}
.rd-flotante{position:fixed;right:24px;bottom:0;width:640px;max-width:calc(100vw - 32px);height:min(76vh,760px);z-index:60;border-radius:12px 12px 0 0}
.rd-flotante.rd-max{width:min(1100px,calc(100vw - 48px));height:calc(100vh - 80px);right:24px;bottom:16px;border-radius:12px}
.rd-flotante.rd-minimizado{height:auto;width:320px} .rd-minimizado>*:not(.rd-cab){display:none!important}
.rd-inline{margin:4px 14px 16px;box-shadow:var(--sombra);min-height:420px}
.rd.arrastrando{outline:3px dashed var(--verde);outline-offset:-3px}
.rd-cab{display:flex;justify-content:space-between;align-items:center;background:var(--verde-osc);color:#fff;padding:8px 12px;font-weight:700;cursor:default;flex:none} .rd-titulo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem;cursor:pointer}
.rd-cab-btns{display:flex;gap:2px} .rd-cab-btns button{border:none;background:none;color:#fff;padding:4px;border-radius:6px;display:flex;opacity:.85} .rd-cab-btns button:hover{background:rgba(255,255,255,.18);opacity:1}
.rd-campos{flex:none;border-bottom:1px solid var(--linea)} .rd-fila{display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid #EEF1EF;min-height:38px} .rd-fila:last-child{border-bottom:none}
.rd-fila>label{width:52px;flex:none;color:var(--tinta-2);font-size:.82rem} .rd-fila input,.rd-fila select{margin:0;border:none;padding:8px 0;flex:1;min-width:0;background:none;font-size:.92rem;outline:none} .rd-de-txt{color:var(--tinta);padding:8px 0}
.rd-ccs{display:flex;gap:8px;font-size:.8rem} .rd-ccs a{cursor:pointer;color:var(--tinta-2)} .rd-ccs a:hover{color:var(--verde)}
.dest{flex:1;display:flex;flex-wrap:wrap;gap:4px;align-items:center;position:relative;min-width:0;padding:4px 0;cursor:text} .dest-chips{display:contents}
.dest-chip{display:inline-flex;align-items:center;gap:2px;background:#EEF2F0;border:1px solid var(--linea);border-radius:999px;padding:2px 4px 2px 10px;font-size:.82rem;max-width:260px;white-space:nowrap;overflow:hidden} .dest-chip.mal{background:var(--rojo-suave);border-color:#E8B4AC;color:var(--rojo)} .dest-chip button{border:none;background:none;color:var(--tinta-2);font-size:1rem;line-height:1;padding:0 4px;border-radius:50%} .dest-chip button:hover{color:var(--rojo)}
.dest-in{flex:1;min-width:120px;border:none;outline:none;padding:5px 0;font-size:.92rem;background:none;margin:0}
.dest-sug{position:absolute;left:0;right:0;top:100%;z-index:70;background:#fff;border:1px solid var(--linea);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.14);max-height:260px;overflow:auto}
.sg{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:6px 10px;cursor:pointer;font-size:.86rem} .sg small{color:var(--tinta-2)} .sg:hover,.sg.on{background:var(--verde-suave)} .sg .num{font-size:.7rem}
.rd-tools{display:flex;align-items:center;gap:1px;padding:4px 8px;border-bottom:1px solid var(--linea);flex:none;flex-wrap:wrap} .rd-tools button{border:none;background:none;padding:6px;border-radius:6px;color:var(--tinta-2);display:flex} .rd-tools button:hover{background:var(--verde-suave);color:var(--verde)} .rd-estado{margin-left:auto;font-size:.74rem;color:var(--tinta-2);white-space:nowrap}
.rd-editor{flex:1;min-height:160px;overflow:auto;padding:12px 14px;outline:none;line-height:1.5;font-size:14px;font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#1b2421;overflow-wrap:anywhere}
.rd-editor img{max-width:100%;height:auto} .rd-editor blockquote{border-left:2px solid #c9d3ce;margin:6px 0 6px 4px;padding-left:10px;color:#444} .rd-editor a{color:var(--verde)} .rd-editor .nat-firma{color:#333}
.rd-editor .nat-cita,.rd-editor .nat-reenvio{opacity:.9} .fi-editor{min-height:120px;max-height:320px;border:1px solid var(--linea);border-radius:0 0 8px 8px}
.rd-adj{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px;flex:none} .rd-adj:not(:empty){padding:6px 12px;border-top:1px dashed var(--linea)}
.rd-adj-item{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--linea);border-radius:8px;padding:3px 6px 3px 8px;font-size:.8rem;max-width:240px;background:#F8FAF9} .rd-adj-item a{color:var(--tinta);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .rd-adj-item i{color:var(--tinta-2);font-style:normal;font-size:.72rem} .rd-adj-item button{border:none;background:none;color:var(--tinta-2);font-size:1rem;padding:0 2px} .rd-adj-item button:hover{color:var(--rojo)}
.rd-pie{display:flex;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid var(--linea);flex:none;position:relative;flex-wrap:wrap}
.rd-enviar-grupo{display:inline-flex} .rd-enviar{width:auto;margin:0;padding:9px 16px;border-radius:999px 0 0 999px;display:inline-flex;align-items:center;gap:6px;font-size:.92rem} .rd-prog{width:auto;margin:0;padding:9px 12px;border-radius:0 999px 999px 0;border-left:1px solid rgba(255,255,255,.35);font-size:.8rem}
.rd-pie .btn-mini{padding:7px 9px;font-size:.82rem} .rd-espacio{flex:1} .rd-adjuntar{cursor:pointer}
.rd-menu{position:absolute;z-index:80;background:#fff;border:1px solid var(--linea);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.16);min-width:230px;max-width:340px;padding:4px;max-height:60vh;overflow:auto}
.rd-menu button{display:flex;justify-content:space-between;gap:10px;width:100%;border:none;background:none;text-align:left;padding:8px 10px;border-radius:6px;font-size:.86rem} .rd-menu button:hover{background:var(--verde-suave)} .rd-menu hr{border:none;border-top:1px solid var(--linea);margin:4px 0} .rd-menu-t{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--tinta-2);padding:6px 10px 2px}
.rd-menu-fecha{display:flex;gap:6px;padding:6px 8px;align-items:center} .rd-menu-fecha input{margin:0;padding:6px;font-size:.84rem;flex:1;min-width:0} .rd-menu-fecha .btn-mini{width:auto;padding:6px 10px}
.co-toast-deshacer{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;background:#1B2421;color:#fff;border-radius:12px;padding:10px 12px 10px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:.9rem} .co-toast-deshacer .btn-mini{background:#fff;padding:5px 10px}
/* modales */
.co-modal-fondo{position:fixed;inset:0;background:rgba(20,30,25,.45);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.co-modal{background:#fff;border-radius:14px;padding:18px 20px;width:min(520px,100%);max-height:92vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)} .co-modal h2{margin-top:0;color:var(--tinta);text-transform:none;letter-spacing:0;font-size:1.05rem} .co-modal-ancha{width:min(760px,100%)} .co-modal .acciones-mini{margin-top:12px} .co-modal .acciones-mini .btn{width:auto;margin:0;padding:9px 16px}
.co-modal-visor{background:none;box-shadow:none;padding:0;width:auto;max-width:96vw} .co-visor img{max-width:96vw;max-height:80vh;display:block;margin:0 auto;border-radius:8px;background:#fff} .co-visor .acciones-mini{background:#fff;border-radius:10px;padding:8px 10px;justify-content:center;margin-top:8px}
.co-atajos{width:100%;font-size:.9rem;margin:8px 0} .co-atajos td{padding:4px 8px;border-bottom:1px solid var(--linea)} kbd{background:#EEF2F0;border:1px solid var(--linea);border-radius:5px;padding:1px 7px;font:inherit;font-size:.82rem}
.co-lista-gest{display:flex;flex-direction:column;gap:8px;margin:10px 0} .fila-gest{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--linea);border-radius:10px;padding:10px;align-items:flex-start} .fila-gest .acciones-mini{flex:none;margin:0} .co-firma-prev{font-size:.85rem;border-left:2px solid var(--linea);padding-left:8px;margin-top:6px;max-height:120px;overflow:auto;color:#333} .co-firma-prev img{max-height:60px}
.tab-badge{display:inline-block;background:var(--rojo);color:#fff;border-radius:999px;font-size:.62rem;font-weight:800;padding:1px 5px;margin-left:4px;vertical-align:middle;line-height:1.3}
@media (max-width:759px){ .tab-badge{position:absolute;top:4px;right:calc(50% - 22px);margin:0} #tabbar a{position:relative} }
/* portátil */
@media (max-width:1180px){ .correo{grid-template-columns:200px minmax(300px,360px) minmax(0,1fr)} .lect-tools .btn-mini span{display:none} }
@media (max-width:980px){ .correo{grid-template-columns:190px 1fr;grid-template-rows:auto 1fr;height:auto;min-height:calc(100vh - 128px)} .correo-nav{grid-row:1/3} .correo-lista{max-height:38vh} .correo-lectura{grid-column:2} }
/* móvil: un panel cada vez */
@media (max-width:759px){
  main:has(.correo){padding:0} .correo{display:block;height:auto;min-height:0;--co-alto:auto} .correo-nav{position:static;display:none;border-radius:0;border-left:none;border-right:none} .correo.ver-nav .correo-nav{display:flex} .correo.ver-nav .correo-lista{display:none}
  .correo-lista{border-radius:0;border-left:none;border-right:none;min-height:calc(100vh - 140px);max-height:none;overflow:visible} .co-hilos{overflow:visible} .hilo{padding:11px 10px 11px 6px} .hilo-hover{display:none!important} .hilo-chk{opacity:1}
  .correo-lectura{display:none;border-radius:0;border-left:none;border-right:none;overflow:visible} .correo.ver-lectura .correo-lectura{display:flex} .correo.ver-lectura .correo-lista{display:none}
  .lect-cab{top:56px;padding:8px 10px 6px} .lect-l1{gap:6px} .lect-asunto{font-size:1rem}
  .lect-tools{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:6px -10px 0;padding:0 10px 4px;gap:6px} .lect-tools::-webkit-scrollbar{display:none} .lect-tools .btn-mini{flex:none;padding:7px 10px;font-size:.84rem} .lect-tools .btn-mini span{display:inline} .lect-tools .co-mover-sel{flex:none;max-width:120px} .lect-tools .sep{flex:none}
  .co-filtros{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap} .co-filtros::-webkit-scrollbar{display:none} .co-total{display:none}
  .solo-movil{display:inline-flex} .lect-mensajes{padding:8px 8px 4px} .msg-cab{padding:9px 10px;grid-template-columns:32px 1fr auto} .msg-cuerpo{padding:2px 8px 10px} .lect-pie{padding:8px 10px 12px} .lect-pie .btn{flex:1;justify-content:center;padding:10px}
  .rd-flotante,.rd-flotante.rd-max{position:fixed;inset:0;width:auto;height:auto;max-width:none;border-radius:0;z-index:120} .rd-flotante.rd-minimizado{inset:auto 8px 70px auto;width:260px;border-radius:12px}
  .rd-inline{margin:0} .rd-fila>label{width:44px} .rd-pie .btn-mini .txt{display:none}
  .co-modal{padding:14px} .fila-gest{flex-direction:column}
}
/* v14: correo en fichas, reglas */
.co-mini{display:block;text-decoration:none;color:inherit;padding:8px 0;border-bottom:1px solid var(--linea)} .co-mini:last-of-type{border-bottom:none} .co-mini:hover .co-mini-asunto{color:var(--verde)}
.co-mini-l1{display:flex;justify-content:space-between;gap:8px;font-size:.88rem} .co-mini-asunto{display:block;font-size:.9rem} .co-mini-asunto.noleido{font-weight:800} .co-mini .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.fila-gest.apagada{opacity:.6} code{background:#EEF2F0;border-radius:5px;padding:1px 6px;font-size:.85em;word-break:break-all}
/* pedidos por día */
.dia-cab{display:flex;align-items:center;gap:8px;margin:18px 0 8px;text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--tinta)} .dia-cab .num{font-weight:600} .dia-cab.hoy{color:var(--verde)} .dia-cab.hoy::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--verde)}
.sep-dias{border:none;border-top:1px solid var(--linea);margin:14px 0 4px}
.vista-modo{display:flex;gap:6px;padding:6px 0 2px;overflow-x:auto} .vista-modo button{white-space:nowrap;border:1.5px solid var(--linea);background:var(--tarjeta);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--tinta-2)} .vista-modo button.on{border-color:var(--verde);background:var(--verde-suave);color:var(--verde)}
/* entorno de pruebas */
#banda-pruebas{position:fixed;top:0;left:0;right:0;height:24px;line-height:16px;z-index:20;background:#B23A2C;color:#fff;text-align:center;font-weight:800;font-size:.72rem;letter-spacing:.04em;padding:4px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.pruebas{padding-top:24px} body.pruebas #topbar{background:linear-gradient(90deg,#7A1F14,#B23A2C);top:24px} body.pruebas .brand-mark{filter:hue-rotate(-120deg) saturate(1.4)}
@media (min-width:760px){ body.pruebas #topbar{top:24px} body.pruebas #tabbar{top:72px} body.pruebas #topbar:not([hidden]) ~ main{padding-top:128px} }
/* ══ v15: Gestión ══ */
main:has(.ges){max-width:1400px}
.ges-nav{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px;border-bottom:1px solid var(--linea);padding-bottom:8px} .ges-nav a{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;text-decoration:none;color:var(--tinta-2);font-weight:600;font-size:.86rem} .ges-nav a.on{background:var(--verde-suave);color:var(--verde)} .ges-nav a:hover{background:#F1F5F3}
.ges-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px} .ges-cab h1{margin:0}
.ges-filtros{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0} .ges-filtros input,.ges-filtros select{margin:0;width:auto;flex:1;min-width:140px;padding:8px 10px} .ges-filtros input[type=date]{flex:0 0 auto} .ges-filtros label.inline{margin:0;align-self:center}
.ges-tot{display:flex;gap:16px;flex-wrap:wrap;font-size:.86rem;color:var(--tinta-2);margin:6px 0;align-items:baseline} .ges-tot b{color:var(--tinta)}
.tabla-scroll{overflow-x:auto} .ges-tabla{width:100%;font-size:.86rem;border-collapse:collapse} .ges-tabla th{position:sticky;top:0;background:#F6F8F7;text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-2);padding:8px 8px;border-bottom:1px solid var(--linea);white-space:nowrap} .ges-tabla td{padding:7px 8px;border-bottom:1px solid var(--linea);vertical-align:top} .ges-tabla .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ges-tabla tr:hover td{background:#FAFBFA} .ges-tabla tr.interna td{color:var(--tinta-2)} .ges-tabla tr.total td{font-weight:800;border-top:2px solid var(--tinta-2);background:#F6F8F7} .ges-tabla tr.mal td{background:var(--rojo-suave)} .ges-tabla tr.vencidos td{background:var(--rojo-suave)} .ges-tabla tr.hoy td{background:var(--verde-suave)}
.ges-tabla tr.nivel-1 td,.ges-tabla tr.nivel-2 td{font-weight:800;background:#F6F8F7} .ges-tabla tr.nivel-3 td{font-weight:600}
.ges-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px} @media (max-width:900px){ .ges-2col{grid-template-columns:1fr} }
.ges-datos{display:grid;grid-template-columns:1fr;gap:3px;margin-top:6px} .ges-datos>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--linea);padding:3px 0;font-size:.9rem} .ges-datos>div span:last-child{text-align:right}
.ges-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px} .ges-accesos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.kpi.mal .v{color:var(--rojo)} .ok-txt{color:var(--verde)} .asiento .tabla{margin-top:6px} .ges-prev th .num{font-weight:400;text-transform:none;letter-spacing:0}
/* menú superior en PC: cabe en una línea con Gestión */
@media (min-width:760px){ #tabbar a{padding:9px 8px;font-size:.8rem;gap:5px} }
@media (min-width:760px) and (max-width:1500px){ #tabbar a{padding:9px 6px;font-size:.76rem} #tabbar a .ic .ico{width:1.05em;height:1.05em} }
/* revisión de importados a3ERP */
.card.revision{border-left:4px solid var(--tinta-2)} .card.revision.pend{border-left-color:var(--ambar);background:#FFFDF6}
.ges-export{display:inline-flex;gap:4px;margin-left:auto} .ges-export .btn-mini{padding:6px 9px;font-size:.8rem}

/* ── Gestión v16: operaciones nativas ── */
.ges-drop{border:2px dashed var(--borde,#cfd8d3);border-radius:12px;padding:18px;text-align:center;color:var(--texto2,#5a6b63);transition:.15s}
.ges-drop.on{border-color:var(--verde,#1E5B43);background:rgba(30,91,67,.06)}
.ges-drop svg{width:28px;height:28px;display:block;margin:0 auto 6px}
.ges-drop .sub{margin-top:8px}
.ges-lineas input,.ges-lineas select{width:100%;margin:0;padding:6px 8px;font-size:13px}
.ges-lineas td{padding:4px 6px;vertical-align:middle}
.ges-ac{position:absolute;z-index:30;background:#fff;border:1px solid var(--borde,#cfd8d3);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:260px;overflow:auto;min-width:260px;max-width:520px}
.ges-ac:empty{display:none}
.ges-ac div{padding:7px 10px;cursor:pointer;font-size:13px;border-bottom:1px solid #f0f3f1}
.ges-ac div:hover{background:rgba(30,91,67,.08)}
.ges-ac .ges-ac-nuevo{color:var(--verde,#1E5B43);font-weight:600}
.ges-pre{white-space:pre-wrap;font-size:11px;max-height:320px;overflow:auto;background:#f6f8f7;padding:8px;border-radius:8px}
.co-modal.ancho{max-width:900px;width:min(900px,96vw)}
.ges-cab .btn-mini{margin-left:auto}
.btn-mini.rojo{color:var(--rojo,#b3261e)}
.adj-fra{margin-left:6px;vertical-align:middle}
.tabla tr.mal td{background:rgba(179,38,30,.06)}
.ges .kpis .kpi.mal .v{color:var(--rojo,#b3261e)}
@media (max-width:720px){ .ges-lineas{font-size:12px} .co-modal.ancho{width:98vw} }
.ges-tot a{color:var(--verde,#1E5B43);text-decoration:none;font-weight:600} .ges-tot a:hover{text-decoration:underline}
.aviso-rojo{background:#fdecea;border:1px solid #f3b4ae;color:#8a1c12;border-radius:10px;padding:8px 12px;margin:8px 0;font-size:13px}
#ci-t input,#ci-t select{min-width:70px}

/* Contabilidad: enlaces a asientos/cuentas, nombre de cuenta, autocompletar */
.ges-link{color:var(--verde,#1E5B43);font-weight:600;text-decoration:none;border-bottom:1px dotted currentColor}
.ges-link:hover{border-bottom-style:solid}
.ges-cta-nombre{color:var(--texto2,#5a6b63);font-size:.82em;margin-left:4px}
.ges-mayor td:nth-child(2){white-space:nowrap}
.ges-cta-box{position:relative;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
#gm-nom{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ges-ac div.on{background:rgba(30,91,67,.14)}
.ges-ac div.grupo{color:#6a7a74}
.ges-volver{margin:6px 0 0}
.ges-cab .btn-mini.volver{margin-left:0;margin-right:4px}
.ges-cab h1{flex:1 1 auto}

/* Recogida: fábricas plegables */
.rec-barra{display:flex;justify-content:space-between;align-items:center;margin:4px 0 8px}
.rec-fab{margin:0 0 8px;border:1px solid var(--borde,#d5ddd9);border-radius:12px;background:#fff;overflow:hidden}
.rec-fab>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;font-weight:700;color:var(--verde,#1E5B43);user-select:none}
.rec-fab>summary::-webkit-details-marker{display:none}
.rec-fab>summary::before{content:'▸';font-size:.9em;transition:transform .15s;color:var(--texto2,#5a6b63)}
.rec-fab[open]>summary::before{transform:rotate(90deg)}
.rec-fab>summary .rec-fab-nom{flex:1 1 auto;font-size:1.02rem}
.rec-fab>summary .rec-fab-acc a{margin-left:6px;text-decoration:none;font-size:1.05rem}
.rec-fab[open]>summary{border-bottom:1px solid var(--borde,#e3e9e6)}
.rec-fab .card.linea-item{margin:8px 10px;box-shadow:none;border:1px solid #edf1ef}
@media (max-width:720px){ .rec-fab>summary{padding:14px 12px} }
.push-aviso{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-left:4px solid var(--verde,#1E5B43)}

/* ── v18: almacén, artículos, rentabilidad, documentos, IA ── */
.art-box .resultados{position:absolute;left:0;right:0;z-index:30;box-shadow:0 8px 24px rgba(0,0,0,.12)} .art-info:empty{display:none} .art-info{margin-top:2px;color:var(--verde)}
.alm-tabla td .cod{font-size:.75rem;color:var(--tinta-2)} .alm-fila{cursor:pointer} .alm-fila:hover td{background:var(--verde-suave)} tr.inactivo td{opacity:.55}
.ges-tabla td.num,.ges-tabla th.num{text-align:right;white-space:nowrap}
.rent-tabla th,.rent-tabla td{padding:6px 8px} .rent-kpi b{font-size:1.25rem} .rent-neg{color:var(--rojo)} .rent-pos{color:var(--verde)}
.doc-card{border-left:4px solid var(--linea)} .doc-card.propuesto{border-left-color:var(--verde)} .doc-card.error{border-left-color:var(--rojo)}
.ia-btn{position:fixed;right:16px;bottom:78px;z-index:60;width:52px;height:52px;border-radius:50%;border:none;background:var(--verde);color:#fff;font-size:1.4rem;box-shadow:0 8px 24px rgba(0,0,0,.25);cursor:pointer}
@media(min-width:760px){.ia-btn{bottom:20px}}
.ia-panel{position:fixed;right:12px;bottom:12px;z-index:70;width:min(420px,calc(100vw - 24px));height:min(640px,calc(100vh - 24px));background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden}
.ia-cab{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--verde);color:#fff;font-weight:700} .ia-cab button{background:transparent;border:none;color:#fff;font-size:1.1rem;cursor:pointer}
.ia-msgs{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--fondo,#f6f7f5)}
.ia-m{max-width:88%;padding:8px 12px;border-radius:12px;font-size:.92rem;line-height:1.35;white-space:pre-wrap;word-break:break-word} .ia-m.user{align-self:flex-end;background:var(--verde);color:#fff;border-bottom-right-radius:4px} .ia-m.assistant{align-self:flex-start;background:#fff;border:1px solid var(--linea);border-bottom-left-radius:4px} .ia-m.tool{align-self:flex-start;font-size:.75rem;color:var(--tinta-2);background:transparent;padding:0 6px}
.ia-m a{color:var(--verde)} .ia-m table{border-collapse:collapse;font-size:.8rem} .ia-m td,.ia-m th{border:1px solid var(--linea);padding:2px 6px}
.ia-in{display:flex;gap:6px;padding:8px;border-top:1px solid var(--linea)} .ia-in textarea{flex:1;resize:none;border:1px solid var(--linea);border-radius:10px;padding:8px;font:inherit;max-height:120px} .ia-in button{border:none;background:var(--verde);color:#fff;border-radius:10px;padding:0 14px;font-weight:700;cursor:pointer}
.ia-sug{display:flex;gap:6px;flex-wrap:wrap;padding:0 8px 8px} .ia-sug button{border:1px solid var(--linea);background:#fff;border-radius:999px;padding:4px 10px;font-size:.78rem;cursor:pointer}

/* v19 */
.chip.ok{background:var(--verde-suave,#e3f3e6);color:var(--verde,#1e7a3a)}.chip.rojo{background:var(--rojo-suave);color:var(--rojo)}
.fin-campos{background:var(--fondo,#fafaf8)}

/* v19 lote C */
.chip.wt{font-weight:700;padding:0 6px;margin-right:2px}.chip.wt-T{background:var(--verde-suave);color:var(--verde)}.chip.wt-W{background:#E3ECFA;color:#2C5FA8}.chip.wt-ct{outline:1px dashed var(--verde)}
.ag-subs a.on{background:var(--verde);color:#fff}
.ag-dia.ag-finde{opacity:.85;background:#fafaf7}.ag-dia.ag-hoy{border:2px solid var(--verde)}.ag-dia.ag-cerr{background:#fbf3f2}
.ag-it{padding:6px 0;border-top:1px solid var(--linea,#eee)}.ag-it .desc{flex:1}
.ag-bloqueo{color:var(--rojo)}.ag-periodico .desc b{color:#6b4ea8}.ag-festivo b,.ag-evento b{color:var(--ambar)}
.ag-acc{margin-top:6px;opacity:.75}.ag-dia:hover .ag-acc{opacity:1}
