/* =====================================================================
   Tema estilo shadcn/ui: neutro, prolijo, con el color del espacio solo en detalles.
   Se carga después de todo: pisa estilos anteriores sin tocar la lógica.
   ===================================================================== */
:root{
  --tinta:#09090B; --tinta-suave:#71717A; --muted:#F4F4F5; --muted-2:#FAFAFA;
  --fondo:#FAFAFA; --fondo-base:#FAFAFA; --superficie:#FFFFFF; --linea:#E4E4E7; --linea-fuerte:#D4D4D8;
  --mezcla-claro:#fff; --mezcla-oscuro:#000;
  --error:#DC2626;
  --r-chico:8px; --r-medio:12px; --r-grande:12px;
  --f-display:'Inter', 'Segoe UI', system-ui, sans-serif;
  --f-texto:'Inter', 'Segoe UI', system-ui, sans-serif;
  --sombra:0 1px 2px rgb(0 0 0 / .05);
  --sombra-md:0 4px 12px -2px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .05);
  --anillo:0 0 0 3px color-mix(in srgb,var(--acento) 22%,transparent);
}
body{background:var(--fondo);font:14px/1.55 var(--f-texto);color:var(--tinta);letter-spacing:-.005em}
.ico-svg{display:block;flex:none}

/* ---------- Estructura: menú + panel "inset" ---------- */
.app{grid-template-columns:256px minmax(0,1fr);background:var(--fondo)}
.side{background:var(--fondo);color:var(--tinta);padding:12px 10px}
.side-marca{padding:6px 8px 16px;gap:10px}
.side-marca .monograma{width:32px;height:32px;border-radius:8px;font-size:13px;box-shadow:none}
.side-marca img{height:30px}
.side-nombre{font:600 14px/1.2 var(--f-texto);letter-spacing:-.01em}
.nav{gap:2px}
.nav a{height:36px;padding:0 10px;gap:10px;border-radius:8px;opacity:1;font:500 14px var(--f-texto);color:var(--tinta);box-shadow:none !important}
.nav a:hover{background:var(--muted)}
.nav a[aria-current="page"]{background:var(--superficie);color:var(--tinta);font-weight:600;box-shadow:var(--sombra) !important;outline:1px solid var(--linea)}
.nav .ico{width:auto;height:auto;background:none !important;color:var(--tinta-suave);font-size:16px}
.nav a[aria-current="page"] .ico{color:var(--acento)}
.side-pie{border-top:0;padding-top:8px}
.usuario-btn{padding:8px;border-radius:8px}
.usuario-btn:hover,.usuario-btn[aria-expanded="true"]{background:var(--muted)}
.usuario-txt strong{font-weight:600}
.usuario-txt span{opacity:1;color:var(--tinta-suave)}
.usuario-mas{opacity:1;color:var(--tinta-suave)}
.menu-usuario{border:1px solid var(--linea);border-radius:10px;box-shadow:var(--sombra-md);padding:4px}
.menu-usuario a,.menu-usuario button{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:14px}
.menu-usuario a:hover,.menu-usuario button:hover{background:var(--muted)}
.menu-usuario .ico-svg{color:var(--tinta-suave)}
.menu-usuario .peligro .ico-svg{color:var(--error)}

.contenido{margin:8px 8px 8px 0;background:var(--superficie);border:1px solid var(--linea);border-radius:12px;box-shadow:var(--sombra);
  min-height:calc(100vh - 16px);display:flex;flex-direction:column;overflow:clip}
.topbar{display:flex;align-items:center;gap:8px;height:52px;padding:0 20px;flex:none;border-bottom:1px solid var(--linea);
  background:color-mix(in srgb,var(--superficie) 85%,transparent);backdrop-filter:blur(6px);color:var(--tinta);position:sticky;top:0;z-index:5;font:500 14px var(--f-texto)}
.topbar button{display:none}
#topNombre{color:var(--tinta-suave)}
.miga-sep{color:var(--linea-fuerte)}
#topSeccion{font-weight:600}
.main{padding:28px 32px;flex:1;min-width:0}
.main h1{font:600 24px/1.25 var(--f-texto);letter-spacing:-.025em;margin:0 0 4px}
.main .sub{font-size:14px;color:var(--tinta-suave);margin:0 0 24px}
.sub-corta{margin:4px 0 0 !important}
.cabecera{margin-bottom:24px;align-items:center}

/* ---------- Componentes base ---------- */
.btn{height:36px;padding:0 16px;border-radius:8px;font:500 14px var(--f-texto);box-shadow:var(--sombra);display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover{transform:none;filter:none;opacity:.9}
.btn-sec{height:36px;padding:0 14px;border:1px solid var(--linea);border-radius:8px;background:var(--superficie);font:500 14px var(--f-texto);
  box-shadow:var(--sombra);color:var(--tinta);gap:8px}
.btn-sec:hover{background:var(--muted);border-color:var(--linea);transform:none}
.btn-link{font-size:14px;font-weight:500;color:var(--tinta-suave)}
.btn-link:hover{color:var(--tinta)}
.btn-link.peligro:hover{color:var(--error)}
.btn-icono{width:36px;height:36px;border:1px solid var(--linea);border-radius:8px;background:var(--superficie);color:var(--tinta);font-size:16px}
.btn-icono:hover{background:var(--muted);border-color:var(--linea)}
.btn-fantasma{border-color:transparent;background:transparent;box-shadow:none;display:inline-grid;place-items:center;color:var(--tinta-suave);text-decoration:none}
.btn-fantasma:hover{background:var(--muted);color:var(--tinta)}
:focus-visible{outline:2px solid var(--acento);outline-offset:2px}

.campo label,fieldset.campo legend{font:500 14px var(--f-texto);margin-bottom:6px}
.campo input,.campo textarea,.campo select,.sel-filtro,.sel-estado,.chat-sel,.sub-campo input,.sub-campo textarea,.tabla-edicion input,
.form-comentario textarea,.form-correccion textarea,.ssh-abrir select{
  border:1px solid var(--linea);border-radius:8px;padding:8px 12px;font:14px var(--f-texto);color:var(--tinta);background:var(--superficie);box-shadow:var(--sombra)}
.campo input,.campo select,.sel-filtro,.sel-estado,.chat-sel{height:36px}
.campo input:focus,.campo textarea:focus,.campo select:focus,.sel-filtro:focus,.sel-estado:focus,.chat-sel:focus,.sub-campo input:focus,
.sub-campo textarea:focus,.tabla-edicion input:focus,.form-comentario textarea:focus{outline:none;border-color:var(--linea-fuerte);box-shadow:var(--anillo)}
.ayuda{font-size:13px}

.tarjeta{border:1px solid var(--linea);border-radius:12px;box-shadow:var(--sombra);padding:24px;background:var(--superficie)}
.tarjeta h2{font:600 16px/1.3 var(--f-texto);letter-spacing:-.01em;margin:0 0 16px}
.vacio{border:1px dashed var(--linea-fuerte);border-radius:12px;box-shadow:none;background:var(--muted-2)}
.nota{font-size:13px}

.tabs{display:inline-flex;gap:0;border:0;background:var(--muted);border-radius:10px;padding:4px;margin:0 0 20px;max-width:100%}
.tabs a{padding:6px 12px;border-radius:7px;border:0;margin:0;font:500 14px var(--f-texto);color:var(--tinta-suave)}
.tabs a:hover{color:var(--tinta)}
.tabs a[aria-current="page"]{background:var(--superficie);color:var(--tinta);box-shadow:var(--sombra)}

.tabla{border:1px solid var(--linea);border-radius:12px;box-shadow:none}
.tabla th{font:500 13px var(--f-texto);color:var(--tinta-suave);padding:10px 14px;border-bottom:1px solid var(--linea);background:var(--muted-2)}
.tabla td{font-size:14px;padding:10px 14px;border-bottom:1px solid var(--linea)}
.tabla tbody tr:hover td{background:var(--muted-2)}

.estado,.chip-mod{border-radius:6px;font:500 12px/1.6 var(--f-texto);padding:1px 8px}
.chip-mod{background:var(--muted);color:var(--tinta)}
.aviso{background:var(--superficie);color:var(--tinta);border:1px solid var(--linea);border-radius:10px;box-shadow:var(--sombra-md);font-size:14px;font-weight:500}
.aviso-error{background:#FEF2F2;border-color:#FECACA;color:#991B1B}
.dialogo,.visor{border:1px solid var(--linea);border-radius:12px}
.dialogo h1{font:600 18px var(--f-texto)}

/* ---------- Inicio ---------- */
.hero{background:var(--superficie);color:var(--tinta);border:1px solid var(--linea);border-radius:12px;box-shadow:var(--sombra);padding:24px 28px}
.hero h1{font-size:26px}
.hero .sub{color:var(--tinta-suave);opacity:1}
.hero-kicker{color:var(--acento);opacity:1;font-size:12px}
.hero .btn-sec{background:var(--superficie);border-color:var(--linea);color:var(--tinta)}
.hero-cifra{background:var(--muted);border:0;border-radius:10px}
.hero-cifra strong{font:700 26px/1 var(--f-texto)}
.hero-cifra span{color:var(--tinta-suave);opacity:1}
.acceso-mod{border:1px solid var(--linea);border-radius:12px;box-shadow:var(--sombra)}
.acceso-mod:hover{transform:none;background:var(--muted-2);border-color:var(--linea-fuerte)}
.acceso-mod strong{font:600 15px var(--f-texto)}

/* ---------- Login ---------- */
.form h1{font:600 24px/1.2 var(--f-texto);letter-spacing:-.02em}
.marca-nombre{font-family:var(--f-texto);font-weight:700;letter-spacing:-.045em}

/* =====================================================================
   Consultas en formato ChatGPT
   ===================================================================== */
.main.pagina-ws{padding:0;display:flex;flex-direction:column}
.chat.chat-ws{display:grid;grid-template-columns:272px minmax(0,1fr);height:calc(100vh - 70px);max-width:none;
  background:none;border:0;border-radius:0;box-shadow:none;padding:0}
.conv-panel{display:flex;flex-direction:column;gap:8px;padding:14px 12px;border-right:1px solid var(--linea);min-height:0;background:var(--muted-2)}
.conv-cab{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:0 4px}
.conv-cab strong{font:600 14px var(--f-texto)}
.conv-cab .btn-icono{width:32px;height:32px}
.btn-nueva{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--linea);border-radius:8px;background:var(--superficie);
  font:500 14px var(--f-texto);color:var(--tinta);cursor:pointer;box-shadow:var(--sombra)}
.btn-nueva:hover{background:var(--muted)}
.conv-buscar{height:34px;border:1px solid var(--linea);border-radius:8px;padding:0 10px;font:13px var(--f-texto);background:var(--superficie)}
.conv-buscar:focus{outline:none;box-shadow:var(--anillo)}
.conv-lista{flex:1;min-height:0;overflow:auto;margin:0 -4px;padding:0 4px}
.conv-grupo-tit{margin:12px 0 4px;padding:0 8px;font:500 12px var(--f-texto);color:var(--tinta-suave)}
.conv-item{display:flex;align-items:center;border-radius:8px}
.conv-item:hover{background:var(--muted)}
.conv-item.activa{background:var(--superficie);box-shadow:var(--sombra);outline:1px solid var(--linea)}
.conv-abrir{flex:1;min-width:0;border:0;background:none;text-align:left;padding:8px 10px;font:14px var(--f-texto);color:var(--tinta);cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-borrar{border:0;background:none;padding:6px 8px;color:var(--tinta-suave);cursor:pointer;opacity:0;border-radius:6px}
.conv-item:hover .conv-borrar,.conv-borrar:focus-visible{opacity:1}
.conv-borrar:hover{color:var(--error)}
.conv-vacia{padding:8px;color:var(--tinta-suave);font-size:13px}

.chat-col{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--superficie)}
.chat-ws .chat-mensajes{flex:1;min-height:0;overflow:auto;padding:28px 24px 12px;gap:22px}
.chat-ws .msg-fila{width:min(780px,100%);align-self:center;max-width:none}
.chat-ws .msg-fila.fila-user{flex-direction:row-reverse}
.chat-ws .msg{max-width:100%}
.chat-ws .msg-fila.fila-user .msg{max-width:85%}
.chat-ws .msg-assistant{background:none !important;border:0 !important;padding:2px 0 0 !important;border-radius:0 !important;font-size:15px;line-height:1.65}
.chat-ws .msg-user{background:var(--muted) !important;color:var(--tinta) !important;border:0 !important;box-shadow:none !important;
  border-radius:18px !important;padding:10px 16px !important;font-size:15px}
.chat-ws .msg-av{width:30px;height:30px;box-shadow:0 0 0 1px var(--linea)}
.chat-ws .msg-fila.fila-user .msg-av{display:none}
.chat-ws .msg-autor{color:var(--tinta);font:600 13px var(--f-texto);text-transform:none;letter-spacing:0;margin-bottom:4px}
.chat-ws .msg-assistant strong{font-weight:600}
.chat-ws .msg-assistant p{margin:0 0 10px}
.chat-ws .msg-assistant ol,.chat-ws .msg-assistant ul{padding-left:22px;margin:0 0 12px}
.chat-ws .msg-assistant li{margin:4px 0}
.chat-ws .msg-acciones{border-top:0;padding-top:0;margin-top:6px;gap:6px}
.chat-ws .msg-acciones .btn-link{font-size:13px;padding:4px 6px;border-radius:6px}
.chat-ws .msg-acciones .btn-link:hover{background:var(--muted);text-decoration:none}
.chat-ws .votos{margin-left:0}
.chat-ws .votos .nota{display:none}
.chat-ws .voto{padding:4px 6px;border-radius:6px;font-size:14px}
.chat-ws .voto:hover{background:var(--muted)}
.chat-ws .msg-assistant p.fuentes-chips{border-top:0;padding:0;margin:12px 0 4px}
.fuente-link{border-radius:8px;padding:4px 10px;font-weight:500;background:var(--superficie);border:1px solid var(--linea);box-shadow:var(--sombra)}
.fuente-link .ico-svg{color:var(--tinta-suave)}
button.fuente-link:hover{background:var(--muted);color:var(--tinta);border-color:var(--linea-fuerte)}
.fuentes-etq{font:500 12px var(--f-texto);text-transform:none;letter-spacing:0}
.chat-ws .puntos-pensando i{background:var(--tinta-suave)}

.chat-inicio{margin:auto;width:min(760px,100%);text-align:center;padding:32px 8px}
.chat-inicio h2{font:600 28px/1.2 var(--f-texto);letter-spacing:-.03em;margin:0 0 8px}
.chat-inicio p{color:var(--tinta-suave);margin:0 auto 28px;max-width:560px;font-size:15px}
.sugerencias{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}
.sugerencia{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--linea);border-radius:12px;background:var(--superficie);
  cursor:pointer;font:inherit;color:inherit;box-shadow:var(--sombra);text-align:left}
.sugerencia:hover{background:var(--muted-2);border-color:var(--linea-fuerte)}
.sugerencia strong{font:600 14px var(--f-texto)}
.sugerencia span{font-size:13px;color:var(--tinta-suave);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.chat-ws .chat-compositor{padding:8px 24px 14px;border:0}
.chat-ws .chat-chips{width:min(780px,100%);margin:0 auto}
.chat-ws .chat-fila{width:min(780px,100%);margin:0 auto;display:flex;align-items:flex-end;gap:6px;padding:8px;background:var(--superficie) !important;
  border:1px solid var(--linea) !important;border-radius:20px !important;box-shadow:var(--sombra-md)}
.chat-ws .chat-fila:focus-within{border-color:var(--linea-fuerte) !important;box-shadow:var(--sombra-md),var(--anillo) !important}
.chat-ws .chat-fila textarea{flex:1;border:0 !important;background:transparent !important;box-shadow:none !important;resize:none;padding:8px 10px;
  font:15px/1.5 var(--f-texto);min-height:40px;max-height:200px}
.chat-ws .chat-fila textarea:focus{outline:none}
.chat-ws .btn-icono{border:0;width:36px;height:36px;border-radius:50%}
.btn-enviar{width:36px;height:36px;flex:none;border:0;border-radius:50%;background:var(--tinta);color:#fff;display:grid;place-items:center;cursor:pointer}
.btn-enviar:hover{opacity:.85}
.btn-enviar[disabled]{opacity:.35;cursor:progress}
.chat-aclaracion{text-align:center;margin:8px 0 0;font-size:12px;color:var(--tinta-suave)}

/* Martinini chiquito al pie del historial */
.mascota.mascota-compacta{position:relative;flex-direction:column;align-items:center;gap:0;padding:10px 8px 6px;margin-top:4px;
  background:var(--superficie);border:1px solid var(--linea);border-radius:12px;box-shadow:var(--sombra)}
.mascota-compacta .mascota-boton{width:100%}
.mascota-compacta .mascota-escenario{height:118px}
.mascota-compacta .mascota-avatar{width:118px;height:118px}
.mascota-compacta .mascota-img{height:100%}
.mascota-compacta .mascota-halo{width:88px;height:88px;bottom:10px}
.mascota-compacta .mascota-sombra{width:80px;height:10px}
.mascota-compacta .mascota-globo{order:0;margin:0 0 8px;padding:8px 10px;font-size:12.5px;border-radius:10px;min-height:0;box-shadow:none;background:var(--muted)}
.mascota-compacta .mascota-globo::after{left:50%;top:auto;bottom:-6px;width:12px;height:12px;background:var(--muted);border:0;transform:translateX(-50%) rotate(45deg)}
.mascota-compacta .mascota-nombre{display:none}
.mascota-compacta .mascota-controles{display:flex;margin-top:4px}
.mascota-compacta .mascota-ctrl{font-size:12px;padding:4px 8px;box-shadow:none}
.mascota-compacta .mascota-ocultar{top:4px;right:4px;width:24px;height:24px;font-size:12px;background:var(--muted)}
.mascota-compacta .emote{font-size:20px}
.mascota.mascota-compacta.mascota-oculta{padding:0;border:0;background:none;box-shadow:none}
.mascota.mascota-compacta.mascota-oculta .mascota-mostrar{width:100%;justify-content:center}

/* ---------- Pantallas chicas ---------- */
@media (max-width:840px){
  .app{grid-template-columns:1fr}
  .side{background:var(--fondo);box-shadow:var(--sombra-md)}
  .contenido{margin:0;border:0;border-radius:0;min-height:100vh}
  .topbar button{display:inline-grid;place-items:center;background:none;border:0;color:inherit;padding:6px;border-radius:8px;cursor:pointer}
  .main{padding:20px 16px}
  .chat.chat-ws{grid-template-columns:1fr;height:calc(100vh - 53px)}
  .conv-panel{flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--linea);padding:8px 12px}
  .conv-panel .conv-cab,.conv-panel .conv-buscar,.conv-panel .conv-lista,.conv-panel .mascota{display:none}
  .sugerencias{grid-template-columns:1fr}
  .chat-ws .chat-mensajes{padding:18px 14px 8px}
  .chat-ws .chat-compositor{padding:6px 10px 10px}
}

/* =====================================================================
   Primario más presente (periwinkle en BPM): el color del espacio pasa a
   notarse en menú, chat, pestañas y tarjetas, sobre la base neutra.
   ===================================================================== */
:root{
  --acento-suave:color-mix(in srgb,var(--acento) 9%,var(--mezcla-claro));
  --acento-suave-2:color-mix(in srgb,var(--acento) 15%,var(--mezcla-claro));
  --acento-borde:color-mix(in srgb,var(--acento) 28%,var(--mezcla-claro));
  --acento-fuerte:color-mix(in srgb,var(--acento) 82%,var(--mezcla-oscuro));
  --acento-claro:color-mix(in srgb,var(--acento) 55%,var(--mezcla-claro));
}

/* Fondo y menú con un velo del primario */
body,.app{background:color-mix(in srgb,var(--acento) 4%,var(--fondo-base))}
.side{background:linear-gradient(180deg,color-mix(in srgb,var(--acento) 7%,var(--fondo-base)),color-mix(in srgb,var(--acento) 3%,var(--fondo-base)))}
.side-marca .monograma{background:linear-gradient(135deg,var(--acento-claro),var(--acento));box-shadow:0 4px 12px -4px color-mix(in srgb,var(--acento) 70%,transparent)}
.nav a:hover{background:var(--acento-suave)}
.nav a[aria-current="page"]{background:var(--acento-suave-2);color:var(--acento-fuerte);outline:0;box-shadow:inset 3px 0 0 var(--acento) !important}
.nav a[aria-current="page"] .ico{color:var(--acento)}
.usuario-btn:hover,.usuario-btn[aria-expanded="true"]{background:var(--acento-suave)}
#topSeccion{color:var(--acento-fuerte)}

/* Botones y controles */
.btn{background:var(--acento);color:var(--acento-txt);box-shadow:0 1px 2px color-mix(in srgb,var(--acento) 40%,transparent),0 4px 10px -4px color-mix(in srgb,var(--acento) 55%,transparent)}
.btn:hover{background:var(--acento-fuerte);opacity:1}
.btn-sec:hover,.btn-icono:hover{border-color:var(--acento-borde);background:var(--acento-suave)}
.btn-link:hover{color:var(--acento-fuerte)}
.tabs{background:var(--acento-suave)}
.tabs a[aria-current="page"]{color:var(--acento-fuerte)}
.check input,input[type=checkbox],input[type=radio]{accent-color:var(--acento)}
.chip-mod{background:var(--acento-suave);color:var(--acento-fuerte)}

/* Inicio y tarjetas */
.hero{background:linear-gradient(120deg,var(--acento-suave-2),var(--superficie) 65%);border-color:var(--acento-borde)}
.hero-kicker{color:var(--acento)}
.hero-cifra{background:var(--superficie);border:1px solid var(--acento-borde)}
.hero-cifra strong{color:var(--acento-fuerte)}
.acceso-mod:hover{background:var(--acento-suave);border-color:var(--acento-borde)}

/* Consultas */
.conv-panel{background:color-mix(in srgb,var(--acento) 4%,var(--fondo-base))}
.btn-nueva{background:var(--acento);color:var(--acento-txt);border-color:transparent}
.btn-nueva:hover{background:var(--acento-fuerte)}
.conv-item:hover{background:var(--acento-suave)}
.conv-item.activa{background:var(--acento-suave-2);outline:1px solid var(--acento-borde);box-shadow:none}
.conv-item.activa .conv-abrir{color:var(--acento-fuerte);font-weight:500}
.chat-inicio h2{background:linear-gradient(90deg,var(--acento-fuerte),var(--acento));-webkit-background-clip:text;background-clip:text;color:transparent}
.sugerencia:hover{background:var(--acento-suave);border-color:var(--acento-borde)}
.sugerencia strong{color:var(--acento-fuerte)}
.chat-ws .msg-user{background:var(--acento-suave-2) !important;color:var(--tinta) !important}
.chat-ws .msg-autor{color:var(--acento-fuerte)}
.chat-ws .msg-av{box-shadow:0 0 0 2px var(--acento-borde)}
.btn-enviar{background:var(--acento)}
.btn-enviar:hover{background:var(--acento-fuerte);opacity:1}
.chat-ws .chat-fila:focus-within{border-color:var(--acento-borde) !important}
.fuente-link .ico-svg{color:var(--acento)}
button.fuente-link:hover{background:var(--acento-suave);border-color:var(--acento-borde);color:var(--acento-fuerte)}
.chat-ws .puntos-pensando i{background:var(--acento)}
.mascota-compacta .mascota-globo,.mascota-compacta .mascota-globo::after{background:var(--acento-suave)}

/* Login: panel de marca con brillo del primario */
.marca{background:radial-gradient(900px 500px at 15% 0%,color-mix(in srgb,var(--acento) 70%,transparent),transparent 60%),var(--marca)}

/* =====================================================================
   Menú lateral achicable
   ===================================================================== */
.app{transition:grid-template-columns .22s ease}
.side{position:sticky}
.side-toggle{position:absolute;top:14px;right:10px;z-index:2;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;
  background:transparent;color:var(--tinta-suave);cursor:pointer}
.side-toggle:hover{background:var(--acento-suave);color:var(--acento-fuerte)}
.side-marca{padding-right:40px}
.app.side-colapsado{grid-template-columns:68px minmax(0,1fr)}
.side-colapsado .side{padding:12px 8px;overflow:visible}
.side-colapsado .side-toggle{right:auto;left:50%;transform:translateX(-50%)}
.side-colapsado .side-marca{justify-content:center;padding:48px 0 14px}
.side-colapsado .side-nombre,
.side-colapsado .nav a span:not(.ico),
.side-colapsado .usuario-txt,
.side-colapsado .usuario-mas{display:none}
.side-colapsado .nav a{justify-content:center;padding:0;gap:0}
.side-colapsado .nav a[aria-current="page"]{box-shadow:inset 0 0 0 1px var(--acento-borde) !important}
.side-colapsado .usuario-btn{justify-content:center;padding:6px}
.side-colapsado .menu-usuario{left:4px;right:auto;width:230px}
@media (max-width:840px){
  .side-toggle{display:none}
  .app.side-colapsado{grid-template-columns:1fr}
  .side-colapsado .side{padding:12px 10px}
  .side-colapsado .side-nombre,.side-colapsado .usuario-mas{display:inline}
  .side-colapsado .usuario-txt{display:flex}
  .side-colapsado .nav a span:not(.ico){display:inline}
  .side-colapsado .nav a{justify-content:flex-start;padding:0 10px;gap:10px}
  .side-colapsado .side-marca{justify-content:flex-start;padding:6px 8px 16px}
  .side-marca{padding-right:8px}
}
@media (prefers-reduced-motion:reduce){ .app{transition:none} }

/* ===== Interacciones de la mascota ===== */
.interacciones-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;align-items:start}
.interacciones-previa{position:sticky;top:72px;display:flex;flex-direction:column;gap:8px}
.mascota-previa .mascota-escenario{height:170px}
.mascota-previa .mascota-avatar{width:170px;height:170px}
.lista-interacciones{display:flex;flex-direction:column;gap:10px}
.interaccion{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px;border:1px solid var(--linea);border-radius:12px;background:var(--superficie);box-shadow:var(--sombra)}
.interaccion.inactiva{opacity:.55}
.int-emote{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;font-size:22px;background:var(--acento-suave)}
.int-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.int-texto{margin:6px 0 4px;font-weight:500}
.int-ramas{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.int-ramas li{padding:6px 10px;border-radius:8px;background:var(--muted-2);border:1px solid var(--linea)}
.int-acciones{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.int-acciones .check{margin:0;font-size:13px}
.form-interaccion{border-color:var(--acento-borde)}
.input-emote{max-width:90px;font-size:18px;text-align:center}
.ramas{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.ramas[hidden]{display:none}
.rama{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:10px;border:1px solid var(--linea)}
.rama-si{background:color-mix(in srgb,#16A34A 5%,var(--superficie));border-color:color-mix(in srgb,#16A34A 25%,var(--superficie))}
.rama-no{background:color-mix(in srgb,#DC2626 4%,var(--superficie));border-color:color-mix(in srgb,#DC2626 20%,var(--superficie))}
.sub-campo select{height:36px;border:1px solid var(--linea);border-radius:8px;padding:0 10px;font:14px var(--f-texto);background:var(--superficie)}
@media (max-width:1000px){ .interacciones-grid{grid-template-columns:1fr} .interacciones-previa{position:static} .ramas{grid-template-columns:1fr} .interaccion{grid-template-columns:44px 1fr} .int-acciones{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-end} }

/* =====================================================================
   RESPONSIVE: escritorio, notebook, tablet y celular
   Escritorio > 1100 · Tablet 841–1100 (menú solo íconos) · Celular ≤ 840 (menú desplegable)
   ===================================================================== */

/* Alturas reales de pantalla en móviles (sin la barra del navegador) */
@supports (height:100dvh){
  .side{height:100dvh}
  .contenido{min-height:calc(100dvh - 16px)}
  .chat.chat-ws{height:calc(100dvh - 70px)}
  .visor{height:calc(100dvh - 24px)}
}

/* Grillas que nunca desbordan en pantallas angostas */
.grilla-dos{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
.grilla-espacios{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
.grilla-elementos{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr))}
.grilla-herramientas{grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr))}
.grilla-medidores{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr))}
.fila-campos{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.grilla{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}
img,svg,canvas,video{max-width:100%}
.md,.msg,.tarjeta,.int-texto{overflow-wrap:anywhere}

/* Pestañas y barras que se deslizan en vez de romperse */
.tabs{overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tabs a{flex:none}
.barra-herramientas{align-items:center}

/* Consultas: el historial (escritorio) */
.conv-botones{display:flex;gap:8px}
.conv-botones .btn-nueva{flex:1}
.btn-historial{display:none;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--linea);border-radius:8px;background:var(--superficie);
  font:500 14px var(--f-texto);color:var(--tinta);cursor:pointer}
.btn-historial[aria-expanded="true"]{background:var(--acento-suave-2);border-color:var(--acento-borde);color:var(--acento-fuerte)}
.conv-desplegable{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0}

/* Pantallas táctiles: controles más cómodos y lo que era "al pasar el mouse" siempre visible */
@media (pointer:coarse){
  .btn,.btn-sec,.btn-icono,.btn-nueva,.btn-historial,.nav a{min-height:40px}
  .conv-borrar{opacity:1}
  .conv-abrir{padding:10px}
}

/* ---------- Notebook chica ---------- */
@media (max-width:1280px){
  .main{padding:24px}
  .chat.chat-ws{grid-template-columns:244px minmax(0,1fr)}
}

/* ---------- Tablet: menú de solo íconos ---------- */
@media (min-width:841px) and (max-width:1100px){
  .app,.app.side-colapsado{grid-template-columns:68px minmax(0,1fr)}
  .side{padding:12px 8px;overflow:visible}
  .side-toggle{display:none}
  .side-marca{justify-content:center;padding:6px 0 14px}
  .side-nombre,.nav a span:not(.ico),.usuario-txt,.usuario-mas{display:none}
  .nav a{justify-content:center;padding:0;gap:0}
  .nav a[aria-current="page"]{box-shadow:inset 0 0 0 1px var(--acento-borde) !important}
  .usuario-btn{justify-content:center;padding:6px}
  .menu-usuario{left:4px;right:auto;width:230px}
  .chat.chat-ws{grid-template-columns:230px minmax(0,1fr)}
  .mascota-compacta .mascota-escenario{height:96px}
  .mascota-compacta .mascota-avatar{width:96px;height:96px}
  .mascota-compacta .mascota-controles{display:none}
  .caso-grid,.proyecto-grid,.perfil-grid,.cabeza-top{grid-template-columns:1fr}
  .caso-lateral,.caso-revision,.proyecto-chat{position:static}
}

/* ---------- Celular ---------- */
@media (max-width:840px){
  html{-webkit-text-size-adjust:100%}
  /* Campos a 16px: evita que el celular haga zoom al tocarlos */
  input,select,textarea,.conv-buscar,.chat-ws .chat-fila textarea{font-size:16px !important}

  .app,.app.side-colapsado{grid-template-columns:1fr}
  .side{width:min(280px,86vw);height:100dvh}
  .contenido{margin:0;border:0;border-radius:0;min-height:100dvh}
  .topbar{padding:0 12px;height:52px}
  .topbar #topNombre{max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .main{padding:18px 14px calc(18px + env(safe-area-inset-bottom))}
  .main h1{font-size:21px}
  .cabecera{gap:10px;margin-bottom:18px}
  .cabecera > .btn,.cabecera > .btn-sec,.cabecera > a.btn{width:100%}
  .cabecera .acciones{width:100%}
  .tarjeta{padding:16px;border-radius:10px}
  .acciones{gap:10px}
  .barra-herramientas .sel-filtro,.buscador-grande{width:100%;min-width:0;max-width:none}

  /* Tablas: se deslizan de costado, con un ancho mínimo legible */
  .tabla{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabla table{min-width:620px}
  .tabla-edicion table{min-width:720px}

  /* Inicio */
  .hero{padding:18px}
  .hero h1{font-size:22px}
  .hero-cifras{width:100%}
  .hero-cifra{flex:1;min-width:0;padding:10px}
  .hero-cifra strong{font-size:22px}

  /* Consultas */
  .chat.chat-ws{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:calc(100dvh - 52px);position:relative}
  .conv-panel{flex-direction:column;align-items:stretch;border-right:0;border-bottom:1px solid var(--linea);padding:8px 10px;gap:0;background:var(--superficie)}
  .conv-panel .conv-cab{display:none}
  .conv-botones .btn-historial{display:inline-flex}
  .conv-desplegable{display:none;position:absolute;left:0;right:0;top:53px;z-index:20;max-height:70dvh;overflow:auto;padding:12px;
    background:var(--superficie);border-bottom:1px solid var(--linea);box-shadow:var(--sombra-md)}
  .chat-ws.conv-abierto .conv-desplegable{display:flex}
  .conv-panel .conv-buscar,.conv-panel .conv-lista{display:block}
  .conv-panel .conv-lista{max-height:none;overflow:visible}
  .conv-panel .mascota{display:flex}
  .chat-ws .chat-mensajes{padding:16px 12px 8px}
  .chat-ws .msg,.chat-ws .msg-assistant,.chat-ws .msg-user{font-size:15px}
  .chat-ws .msg-fila.fila-user .msg{max-width:92%}
  .chat-inicio{padding:20px 4px}
  .chat-inicio h2{font-size:22px}
  .sugerencias{grid-template-columns:1fr}
  .chat-ws .chat-compositor{padding:6px 10px calc(10px + env(safe-area-inset-bottom))}
  .chat-aclaracion{font-size:11px}
  .fuente-link span:last-child{max-width:62vw}

  /* Chat de asistente y proyectos (formato clásico) */
  .chat{height:calc(100dvh - 190px);min-height:380px}
  .chat-barra{gap:6px}
  .chat-barra .chat-sel{flex-basis:100%}

  /* Biblioteca y visor */
  .grilla-biblioteca{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .chips-categorias{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
  .chip-cat{flex:none}
  .menu-mas-lista{right:auto;left:0;max-width:calc(100vw - 28px)}
  .visor{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}
  .visor-cab{padding:10px 12px;gap:8px}
  .visor-cuerpo{grid-template-columns:1fr;grid-template-rows:minmax(0,1.3fr) minmax(0,1fr)}
  .visor-lectura{border-left:0;border-top:1px solid var(--linea);padding:14px}

  /* Casos, perfil, cabeza, martinini */
  .caso-cab{flex-direction:column}
  .caso-badges{justify-content:flex-start}
  .perfil-datos{flex-direction:column;align-items:flex-start}
  .perfil-foto{margin-top:-60px}
  .perfil-foto .av{width:104px !important;height:104px !important}
  .perfil-cifra{min-width:calc(50% - 5px)}
  .ranking-fila{grid-template-columns:34px minmax(0,1fr) 64px;padding:12px}
  .ranking-fila .ranking-dato:nth-child(n+4){display:none}
  .mm-hero{padding:18px;justify-content:center;text-align:center}
  .mm-avatar{width:160px;height:160px}
  .mm-cifras{justify-content:center}
  .cabeza-puntaje{flex-direction:column;align-items:flex-start}
  .barra-fila{grid-template-columns:minmax(0,110px) 1fr 32px}
  .interaccion{grid-template-columns:40px minmax(0,1fr)}
  .int-acciones{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start}
  .ramas{grid-template-columns:1fr}
  .interacciones-grid{grid-template-columns:1fr}
  .interacciones-previa{order:-1;position:static}

  /* Avisos y diálogos */
  .aviso{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:none}
  .dialogo{width:calc(100vw - 24px);padding:20px}
  .menu-usuario{width:auto}
}

/* ---------- Celular chico ---------- */
@media (max-width:380px){
  .main{padding-left:10px;padding-right:10px}
  .grilla-biblioteca{grid-template-columns:1fr 1fr}
  .btn-historial{padding:0 10px}
  .conv-botones .btn-nueva{font-size:13px;padding:0 10px}
}

/* ---------- Celular acostado ---------- */
@media (max-height:500px) and (orientation:landscape){
  .chat.chat-ws{height:auto;min-height:calc(100dvh - 52px)}
  .chat-ws .chat-mensajes{min-height:55dvh}
  .conv-panel .mascota,.mascota-compacta{display:none !important}
}

/* =====================================================================
   Login con la mascota
   ===================================================================== */
.login{min-height:100dvh;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--superficie)}
.marca{position:relative;overflow:hidden;justify-content:space-between;gap:24px}
.marca::before,.marca::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.marca::before{width:520px;height:520px;right:-180px;top:-160px;background:radial-gradient(circle,rgb(255 255 255 / .14),transparent 65%)}
.marca::after{width:380px;height:380px;left:-140px;bottom:-120px;background:radial-gradient(circle,rgb(255 255 255 / .10),transparent 65%)}
.marca > *{position:relative;z-index:1}
.login-mascota{display:flex;flex-direction:column;align-items:center;gap:14px;flex:1;justify-content:center}
.login-mascota[hidden]{display:none}
.login-globo{margin:0;max-width:360px;background:#fff;color:var(--tinta);border-radius:16px;padding:12px 16px;font:500 15px/1.45 var(--f-texto);
  text-align:center;box-shadow:0 12px 30px -12px rgb(0 0 0 / .45);position:relative}
.login-globo::after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.login-globo.nuevo{animation:globoPop .35s ease-out}
@keyframes globoPop{0%{transform:scale(.92);opacity:.4}100%{transform:none;opacity:1}}
.login-figura{position:relative;width:min(340px,72%);aspect-ratio:1}
.login-figura::before{content:"";position:absolute;inset:12% 10% 4%;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgb(255 255 255 / .35),transparent 68%)}
.login-avatar,.login-ojos{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 24px rgb(0 0 0 / .28));transition:opacity .15s}
.login-ojos{opacity:0}
.login-mascota.tapado .login-ojos{opacity:1}
.login-mascota.tapado .login-avatar{opacity:0}
.login-mascota.sacude .login-figura{animation:sacudida .55s ease-in-out}
.login-mascota.festeja .login-figura{animation:salto .7s cubic-bezier(.3,1.5,.5,1)}
.con-mascota .marca-nombre{font-size:clamp(28px,3.2vw,44px);max-width:none}
.con-mascota .marca-pie{margin-top:8px}

.acceso{background:var(--superficie);padding:40px 24px}
.form{max-width:380px}
.form-marca{display:flex;align-items:center;gap:10px;margin-bottom:28px;font:600 15px var(--f-texto)}
.form-marca .monograma{width:36px;height:36px;border-radius:10px;font-size:14px;background:linear-gradient(135deg,var(--acento-claro),var(--acento))}
.form-marca img{height:32px;width:auto}
.form h1{margin-bottom:6px}
.form .sub{margin-bottom:24px}
#vLogin .campo input{height:42px;font-size:15px}
#vLogin .campo input::placeholder{color:#A1A1AA}
.clave input{padding-right:84px}
.ver{height:32px;border-radius:6px;font:500 13px var(--f-texto);color:var(--tinta-suave)}
.ver:hover{background:var(--muted);color:var(--tinta)}
.aviso-mayus{margin:6px 0 0;font-size:12.5px;font-weight:500;color:#B45309}
#vLogin .error{background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;border-radius:8px;padding:8px 12px;font-size:14px}
#vLogin .btn{width:100%;height:42px;font-size:15px}
.login-ayuda{margin:18px 0 0;text-align:center;font-size:13px;color:var(--tinta-suave)}
@media (prefers-reduced-motion:reduce){ .login-mascota .login-figura,.login-globo{animation:none !important} }

@media (max-width:840px){
  .login{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .marca{min-height:0;padding:20px 20px 24px;gap:10px}
  .marca #loginLogo,.con-mascota .marca-textos{display:none}
  .login:not(.con-mascota) .marca{min-height:30vh}
  .login-figura{width:min(170px,46vw)}
  .login-globo{font-size:14px;padding:10px 14px}
  .acceso{padding:24px 18px calc(24px + env(safe-area-inset-bottom));align-items:start}
  .form-marca{margin-bottom:18px}
}
@media (max-height:620px) and (max-width:840px){ .login-figura{width:120px} }

/* =====================================================================
   Gestión comercial: mostrador, pedidos, productos, tablero
   ===================================================================== */
.der{text-align:right;white-space:nowrap}
.fila-click{cursor:pointer}
.tabla td small{display:block;color:var(--tinta-suave);font-size:12px}
.tabla tr.inactivo td{opacity:.5;text-decoration:line-through}
.tabla tr.alerta td{background:#FEF2F2}
.tabla td.neg{color:var(--error);font-weight:600}
.tabla td.pos{color:#15803D;font-weight:600}
.filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.filtros input,.filtros select{height:36px;border:1px solid var(--linea);border-radius:8px;padding:0 10px;font:14px var(--f-texto);background:var(--superficie)}
.filtros .buscador-grande{flex:1;min-width:220px}
.cabecera .acciones{display:flex;flex-wrap:wrap;gap:8px}
.campo-boton{display:flex;align-items:flex-end}
.dialogo-erp{width:min(560px,calc(100vw - 24px))}
.dlg-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.dlg-cab h1{margin:0}

/* Mostrador */
.caja-estado{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tinta-suave);margin:0 0 12px}
.punto-verde{width:8px;height:8px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 3px #DCFCE7}
.pos{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:18px;align-items:start}
.pos-buscador{display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border:1px solid var(--linea);border-radius:12px;background:var(--superficie);box-shadow:var(--sombra)}
.pos-buscador:focus-within{border-color:var(--acento-borde);box-shadow:var(--anillo)}
.pos-buscador .ico-svg{color:var(--tinta-suave)}
.pos-buscar{flex:1;border:0;outline:none;font:16px var(--f-texto);background:transparent;min-width:0}
.pos-resultados{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:10px;margin-top:14px}
.pos-prod{display:flex;flex-direction:column;gap:3px;text-align:left;padding:12px 14px;border:1px solid var(--linea);border-radius:12px;background:var(--superficie);cursor:pointer;font:inherit;color:inherit;box-shadow:var(--sombra)}
.pos-prod:hover{border-color:var(--acento-borde);background:var(--acento-suave)}
.pos-prod.sin-stock{opacity:.6}
.pos-prod-pie{display:flex;justify-content:space-between;margin-top:6px;font-size:13px}
.pos-prod-pie b{color:var(--acento-fuerte)}
.pos-der{position:sticky;top:72px;display:flex;flex-direction:column;gap:12px}
.pos-der h2{margin:0}
.pos-cliente{position:relative;display:flex;align-items:center;gap:8px}
.pos-cliente input{flex:1;height:36px;border:1px solid var(--linea);border-radius:8px;padding:0 10px;font:14px var(--f-texto)}
.sugerencias-cli{position:absolute;top:40px;left:0;right:0;z-index:5;display:flex;flex-direction:column;background:var(--superficie);border:1px solid var(--linea);border-radius:10px;box-shadow:var(--sombra-md);overflow:hidden}
.sugerencias-cli:empty{display:none}
.sugerencias-cli button{display:flex;justify-content:space-between;gap:8px;padding:9px 12px;border:0;background:none;text-align:left;font:14px var(--f-texto);cursor:pointer}
.sugerencias-cli button:hover{background:var(--acento-suave)}
.sugerencias-cli small{color:var(--tinta-suave)}
.sugerencias-cli .nuevo-cli{color:var(--acento-fuerte);font-weight:600;border-top:1px solid var(--linea)}
.pos-items{display:flex;flex-direction:column;max-height:40vh;overflow:auto;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.pos-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--linea)}
.pos-item:first-child{border-top:0}
.pos-item-nombre{display:flex;flex-direction:column;min-width:0}
.pos-item-nombre strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-item-nombre .nota{font-size:12px}
.pos-cant{display:flex;align-items:center;border:1px solid var(--linea);border-radius:8px;overflow:hidden}
.pos-cant button{width:28px;height:30px;border:0;background:var(--muted-2);display:grid;place-items:center;cursor:pointer}
.pos-cant button:hover{background:var(--acento-suave)}
.pos-cant input{width:40px;height:30px;border:0;text-align:center;font:600 14px var(--f-texto)}
.pos-item-total{font-size:14px;min-width:84px;text-align:right}
.pos-vacio{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 0;color:var(--tinta-suave);text-align:center}
.pos-vacio p{margin:0;font-size:13px}
.pos-totales{display:flex;flex-direction:column;gap:6px}
.pos-totales .fila{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.pos-totales .fila input{width:110px;height:32px;border:1px solid var(--linea);border-radius:8px;padding:0 8px;text-align:right;font:14px var(--f-texto)}
.pos-totales .total{font:700 24px var(--f-texto);letter-spacing:-.02em;color:var(--acento-fuerte);padding-top:6px;border-top:1px dashed var(--linea)}
.pos-pagos{display:flex;flex-direction:column;gap:8px}
.pos-pagos-cab{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.pos-pago{display:flex;gap:8px;align-items:center}
.pos-pago select{height:38px;border:1px solid var(--linea);border-radius:8px;padding:0 8px;font:14px var(--f-texto);background:var(--superficie)}
.pos-pago input{flex:1;min-width:0;height:38px;border:1px solid var(--linea);border-radius:8px;padding:0 10px;font:600 15px var(--f-texto);text-align:right}
.pos-pago-estado{font-weight:600;font-size:14px;text-align:right;min-height:20px}
.pos-pago-estado.vuelto{color:#15803D}
.pos-pago-estado.falta{color:var(--error)}
.pos-pago-estado.justo{color:#15803D}
.pos-extra .campo{margin-bottom:10px}
.pos-cobrar{height:48px !important;font-size:16px !important}
.abrir-caja{max-width:560px}
.venta-ok{display:flex;justify-content:center;color:#16A34A;margin:6px 0}
.venta-ok-total{text-align:center;font:700 32px var(--f-texto);margin:0}
.venta-ok-vuelto{text-align:center;font-size:18px;font-weight:600;color:#15803D}
.dialogo-erp .acciones{justify-content:center;margin-top:16px}
.fila-total{font-weight:700;text-align:right}

/* Pedidos */
.kanban{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.kanban-col{background:var(--muted-2);border:1px solid var(--linea);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:160px}
.kanban-col h3{display:flex;justify-content:space-between;align-items:center;margin:0 0 4px;font:600 14px var(--f-texto)}
.kanban-card{background:var(--superficie);border:1px solid var(--linea);border-radius:10px;padding:12px;box-shadow:var(--sombra)}
.kanban-card p{margin:4px 0;font-size:14px}
.kc-cab{display:flex;justify-content:space-between;align-items:center}
.kc-monto{font-weight:700}
.kanban-card .acciones{margin-top:8px;gap:6px}
.kanban-card .btn-sec{height:32px;font-size:13px}

/* Productos */
.producto-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}
.producto-grid > div{display:flex;flex-direction:column;gap:18px}
.stock-depositos{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.stock-dep{flex:1;min-width:120px;padding:12px 14px;border-radius:10px;background:var(--acento-suave);display:flex;flex-direction:column}
.stock-dep span{font-size:13px;color:var(--tinta-suave)}
.stock-dep strong{font:700 26px var(--f-texto)}
.stock-dep strong.bajo{color:var(--error)}
.form-stock .campo{margin-bottom:10px}

/* Tablero */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;margin-bottom:18px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border:1px solid var(--linea);border-radius:12px;background:var(--superficie);box-shadow:var(--sombra);color:inherit;text-decoration:none}
.kpi span{font-size:13px;color:var(--tinta-suave);font-weight:500}
.kpi strong{font:700 24px var(--f-texto);letter-spacing:-.02em}
.kpi small{font-size:12px;color:var(--tinta-suave)}
.kpi.sube small{color:#15803D;font-weight:600}
.kpi.baja small{color:var(--error);font-weight:600}
.kpi-link:hover{border-color:var(--acento-borde);background:var(--acento-suave)}
.grafico-dias{display:flex;align-items:flex-end;gap:3px;height:160px;padding-top:8px}
.gd-col{flex:1;height:100%;display:flex;align-items:flex-end}
.gd-barra{width:100%;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--acento-claro),var(--acento))}
.gd-col:hover .gd-barra{background:var(--acento-fuerte)}
.barras .barra-fila b{font-size:13px;white-space:nowrap}
.barras .barra-fila{grid-template-columns:110px 1fr auto}

/* Ticket impreso (80 mm) */
.ticket-impresion{display:none}
@media print{
  body.imprimir-ticket > *:not(.ticket-impresion){display:none !important}
  body.imprimir-ticket .ticket-impresion{display:block;width:72mm;font:12px/1.35 'Courier New',monospace;color:#000}
  .ticket-impresion h2{font-size:15px;text-align:center;margin:0 0 4px}
  .ticket-impresion p{margin:2px 0}
  .ticket-impresion table{width:100%;border-collapse:collapse}
  .ticket-impresion td{padding:1px 0;vertical-align:top}
  .ticket-impresion .der{text-align:right;padding-left:6px}
  .ticket-impresion .fila{display:flex;justify-content:space-between}
  .ticket-impresion .total{font-weight:700;font-size:14px}
  .ticket-impresion .centro{text-align:center}
  .ticket-impresion hr{border:0;border-top:1px dashed #000;margin:6px 0}
  @page{margin:4mm}
}

@media (max-width:1100px){
  .pos{grid-template-columns:1fr}
  .pos-der{position:static}
  .producto-grid{grid-template-columns:1fr}
}
@media (max-width:840px){
  .kanban{grid-template-columns:1fr}
  .pos-items{max-height:none}
  .pos-item{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"n n x" "c t t"}
  .pos-item-nombre{grid-area:n}.pos-cant{grid-area:c}.pos-item-total{grid-area:t}.pos-item > .btn-icono{grid-area:x}
  .grafico-dias{height:110px;gap:2px}
  .filtros > *{flex:1 1 140px}
}

/* Logos con fondo transparente: en el panel de marca del login van sobre una tarjeta blanca */
.marca img.marca-logo{background:#fff;padding:14px 20px;border-radius:16px;max-height:120px;height:auto;max-width:min(260px,70%);box-shadow:0 14px 30px -14px rgb(0 0 0 / .45)}
.side-marca img{max-width:150px;height:auto;max-height:40px;object-fit:contain}
.form-marca img{max-height:40px;height:auto;max-width:120px}

/* ===== Ingreso de mercadería ===== */
.zona-remito{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:28px 20px;margin-bottom:18px;border:2px dashed var(--acento-borde);border-radius:14px;background:var(--acento-suave);color:var(--tinta)}
.zona-remito .ico-svg{color:var(--acento)}
.zona-remito p{margin:0;max-width:52ch;color:var(--tinta-suave)}
.zona-remito p strong{color:var(--tinta)}
.zona-remito.sobre{background:var(--acento-suave-2);border-style:solid}
.zona-remito.cargando{opacity:.7;pointer-events:none}
.compra-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.compra-grid > div{display:flex;flex-direction:column;gap:18px}
.remito-original{position:sticky;top:72px}
.remito-img{width:100%;border-radius:8px;border:1px solid var(--linea)}
.tabla-compra td{vertical-align:top}
.tabla-compra .leido strong{display:block;font-size:14px}
.tabla-compra .leido small{color:var(--tinta-suave)}
.tabla-compra tr.sin-producto td{background:#FFFBEB}
.coinc{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;margin-bottom:4px}
.coinc-ok{background:#DCFCE7;color:#166534}
.coinc-media{background:#FEF3C7;color:#92400E}
.coinc-mal{background:#FEE2E2;color:#991B1B}
.asig strong{display:block;font-size:14px}
.asig small{color:var(--tinta-suave)}
.asig-acciones{display:flex;gap:4px;margin-top:2px}
.asig-acciones .btn-link{font-size:12px;padding:2px 4px}
.tabla-compra .pos-cliente{margin-top:6px}
.buscar-asig{width:100%;height:32px;font-size:13px}
.inp-num{width:92px;height:34px;border:1px solid var(--linea);border-radius:8px;padding:0 8px;text-align:right;font:14px var(--f-texto)}
.confirmar-compra .check{align-self:flex-end;margin-bottom:0}
@media (max-width:1000px){ .compra-grid{grid-template-columns:1fr} .remito-original{position:static} .tabla-compra table{min-width:720px} }

/* ===== Materiales (herrería) ===== */
.materiales-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.grilla-materiales{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:10px;margin-top:12px}
.mat-card{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--linea);border-radius:12px;background:var(--superficie);box-shadow:var(--sombra)}
.mat-card.en-carrito{border-color:var(--acento-borde);background:var(--acento-suave)}
.mat-cat{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--acento-fuerte)}
.mat-card strong{font-size:14px}
.mat-precio{display:flex;align-items:baseline;gap:8px;margin-top:4px}
.mat-precio b{font-size:17px}
.mat-var{font-size:12px;font-weight:600;padding:1px 6px;border-radius:999px}
.mat-var.sube{background:#FEE2E2;color:#991B1B}
.mat-var.baja{background:#DCFCE7;color:#166534}
.mat-agregar{margin-top:6px}
.mat-agregar .btn{height:34px;font-size:13px;width:100%}
.carrito{position:sticky;top:72px;display:flex;flex-direction:column;gap:12px}
.carrito h2{display:flex;align-items:center;gap:8px;margin:0}
.carrito-items{display:flex;flex-direction:column;max-height:42vh;overflow:auto;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.carrito-item{display:grid;grid-template-columns:minmax(0,1fr) 56px auto auto;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--linea)}
.carrito-item:first-child{border-top:0}
.carrito-item strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.carrito-item small{color:var(--tinta-suave);font-size:12px}
.carrito-item b{font-size:13px;white-space:nowrap}
.inp-cant{width:56px;height:32px;border:1px solid var(--linea);border-radius:8px;text-align:center;font:600 14px var(--f-texto)}
.carrito-totales{display:flex;flex-direction:column;gap:6px}
.carrito-totales .fila{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.carrito-totales .total{font-size:17px;padding-top:6px;border-top:1px dashed var(--linea);color:var(--acento-fuerte)}
.pedido-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.pedido-grid > div{display:flex;flex-direction:column;gap:18px}
.form-lista{margin-bottom:18px}
@media (max-width:1100px){ .materiales-grid,.pedido-grid{grid-template-columns:1fr} .carrito{position:static} .carrito-items{max-height:none} }

/* ===== Presupuesto con IA (Proyectos) ===== */
.pres-form{display:flex;flex-direction:column;gap:10px}
.pres-archivos{display:flex;flex-wrap:wrap;gap:8px}
.pres-arch{margin:0;padding:6px 10px;border:1px solid var(--linea);border-radius:8px;background:var(--muted-2);font-size:13px}
.pres-form .btn{align-self:flex-start}
.pres-resultado{margin-top:14px;padding:14px;border:1px solid var(--acento-borde);border-radius:12px;background:var(--acento-suave);display:flex;flex-direction:column;gap:10px}
.pres-resultado .tabla{background:var(--superficie)}
.pres-sub{font:600 14px var(--f-texto);margin:16px 0 8px;color:var(--tinta-suave)}
.pres-lista{display:flex;flex-direction:column;gap:8px}
.pres-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--linea);border-radius:10px;color:inherit;text-decoration:none;background:var(--superficie)}
.pres-item:hover{border-color:var(--acento-borde);background:var(--acento-suave)}
.pres-item small{display:block;color:var(--tinta-suave);font-size:12px}
.pres-montos{text-align:right}

/* ===== Bocetos (mini planos) ===== */
.boceto-dlg{width:min(1480px,calc(100vw - 24px));max-width:none;padding:12px 14px 10px}
.boceto-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.boceto-cab-der{display:flex;gap:8px;align-items:center}
.boceto-nombre{height:36px;border:1px solid var(--linea);border-radius:8px;padding:0 10px;font:600 15px var(--f-texto);min-width:240px}
.boceto-barra{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.boceto-herr{height:32px;padding:0 10px;border:1px solid var(--linea);border-radius:8px;background:var(--superficie);font:500 13px var(--f-texto);cursor:pointer}
.boceto-herr.activa{background:var(--acento);color:var(--acento-txt);border-color:var(--acento)}
.boceto-color{width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--linea);cursor:pointer}
.boceto-color.activa{box-shadow:0 0 0 2px var(--acento)}
.boceto-sep{width:1px;height:22px;background:var(--linea);margin:0 4px}
.boceto-barra select{height:32px;border:1px solid var(--linea);border-radius:8px;padding:0 8px;font:13px var(--f-texto)}
.boceto-barra .check{margin:0;font-size:13px}
.boceto-marco{border:1px solid var(--linea);border-radius:10px;overflow:hidden;background:var(--superficie)}
.boceto-lienzo{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}
.boceto-ayuda{margin:8px 0 0}
.bocetos-lista{display:flex;flex-direction:column;gap:8px}
.boceto-item{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;border:1px solid var(--linea);border-radius:10px}
.boceto-mini{width:96px;height:62px;object-fit:cover;border-radius:6px;border:1px solid var(--linea);background:#fff}
.boceto-item-txt small{display:block;color:var(--tinta-suave);font-size:12px}
.boceto-item-acc{display:flex;gap:6px;align-items:center}
@media (max-width:840px){ .boceto-dlg{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:10px} .boceto-nombre{min-width:0;flex:1} .boceto-item{grid-template-columns:72px 1fr} .boceto-item-acc{grid-column:1/-1} }
.pres-btn{height:46px !important;font-size:15px !important;padding:0 22px !important}
.pres-rapido{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.pres-medida{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}
.pres-medida input{width:84px;height:34px;border:1px solid var(--linea);border-radius:8px;padding:0 8px;font:14px var(--f-texto)}
.pres-trabajo{font-size:15px}
.pres-corr summary{cursor:pointer;font-weight:600;color:var(--acento-fuerte)}
.pres-corr .campo{margin:8px 0}

/* ===== Proyecto: etapas, pasos y pestañas ===== */
.etapas{display:flex;list-style:none;margin:0 0 16px;padding:0;gap:0;overflow-x:auto;scrollbar-width:none}
.etapas li{flex:1;min-width:120px;position:relative}
.etapas button{width:100%;height:40px;border:1px solid var(--linea);background:var(--superficie);font:500 13px var(--f-texto);color:var(--tinta-suave);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:6px}
.etapas li:first-child button{border-radius:10px 0 0 10px}
.etapas li:last-child button{border-radius:0 10px 10px 0}
.etapas li+li button{border-left:0}
.etapas li.hecha button{background:var(--acento-suave);color:var(--acento-fuerte)}
.etapas li.hecha button::before{content:"✓";font-weight:700}
.etapas li.actual button{background:var(--acento);color:var(--acento-txt);border-color:var(--acento);font-weight:600}
.etapas button:hover{filter:brightness(.97)}
.tabs-proy{margin-bottom:16px}
.tab-punto{display:inline-block;width:7px;height:7px;border-radius:50%;background:#F59E0B;margin-left:6px;vertical-align:middle}
.panel-proy{display:flex;flex-direction:column;gap:16px}
.paso-cab{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.paso-cab h2{margin:0 0 2px}
.paso-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--acento);color:var(--acento-txt);display:grid;place-items:center;font:700 14px var(--f-texto)}
.paso-ayuda{margin:0 0 12px;font-size:13.5px;color:var(--tinta-suave);max-width:70ch}
.paso .form-req{margin-top:4px}
.paso-presupuesto{border-color:var(--acento-borde);background:linear-gradient(180deg,var(--acento-suave),var(--superficie) 40%)}
.proyecto-chat .chat{height:calc(100dvh - 300px);min-height:420px}
@media (max-width:840px){ .etapas li{min-width:96px} .etapas button{font-size:12px;height:36px} .proyecto-chat .chat{height:calc(100dvh - 240px)} }

/* ===== Proyecto: diseño coherente (encargo → presupuesto → seguimiento) ===== */
.proyecto-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:18px;align-items:start}
.proyecto-principal{display:flex;flex-direction:column;gap:18px;min-width:0}
.proyecto-lateral{position:sticky;top:72px}
.proyecto-lateral .proyecto-chat .chat{height:calc(100dvh - 300px);min-height:420px}
.medidas .campo input{font-weight:600}
.grilla-archivos{margin-top:16px}
.archivo-nuevo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:140px;border:2px dashed var(--acento-borde);border-radius:12px;
  background:var(--acento-suave);color:var(--acento-fuerte);font:600 13px var(--f-texto);cursor:pointer;padding:12px}
.archivo-nuevo:hover{background:var(--acento-suave-2)}
.pres-vacio{display:flex;flex-direction:column;gap:12px}
.pres-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.pres-cab .pres-trabajo{display:block;font-size:17px}
.pres-diseno{padding:10px 12px;border-radius:10px;background:var(--superficie);border:1px solid var(--linea);font-size:14px;margin:0 0 12px}
.pres-totales-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;margin-top:14px}
.pres-totales-grid .acciones{margin-top:10px;justify-content:flex-end}
.form-nota{display:flex;gap:8px;align-items:flex-start;margin-bottom:12px}
.form-nota textarea{flex:1}
.nota-item{padding:12px 0;border-top:1px solid var(--linea)}
.nota-item:first-child{border-top:0;padding-top:0}
.nota-cab{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:4px}
.nota-cab small{color:var(--tinta-suave);flex:1}
@media (max-width:1100px){ .proyecto-layout{grid-template-columns:1fr} .proyecto-lateral{position:static} .pres-totales-grid{grid-template-columns:1fr} }

/* ===== Tienda en diálogo ===== */
.dialogo.tienda-dlg{width:min(1100px,calc(100vw - 24px));max-height:calc(100dvh - 24px);display:flex;flex-direction:column}
.tienda-dlg .filtros{margin-bottom:10px}
.tienda-dlg .tienda-buscar{flex:1;min-width:200px;height:38px}
.tienda-grilla{flex:1;overflow:auto;max-height:52dvh;padding:2px}
.tienda-agregar{display:flex;gap:6px;align-items:center}
.tienda-agregar .btn{flex:1;width:auto}
.tienda-pie{min-height:18px;margin:8px 0 0}
.tienda-dlg .acciones{justify-content:flex-end;margin-top:8px}
.pres-agregar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.pres-agregar .pos-cliente{flex:1;min-width:240px}
.acciones-fila{white-space:nowrap}

/* ===== Asistente del proyecto como panel lateral plegable ===== */
.proyecto-layout{grid-template-columns:1fr}
.proyecto-principal{max-width:1040px}
.panel-chat{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);z-index:40;display:flex;flex-direction:column;background:var(--superficie);
  border-left:1px solid var(--linea);box-shadow:-12px 0 32px -16px rgb(0 0 0 / .35);transform:translateX(105%);transition:transform .25s ease;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}
.panel-chat.abierto{transform:none}
.panel-chat-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.panel-chat-cab small{display:block;color:var(--tinta-suave);font-size:12px}
.panel-chat .chat{flex:1;min-height:0;height:auto;max-width:none}
.btn-chat-flotante{gap:8px}
@media (max-width:840px){ .btn-chat-flotante span{display:none} .panel-chat{width:100vw} }
@media (prefers-reduced-motion:reduce){ .panel-chat{transition:none} }

/* Tienda en diálogo: categorías en una sola línea deslizable y la grilla con el espacio que queda */
.dialogo.tienda-dlg{height:calc(100dvh - 24px);max-height:none}
.tienda-dlg .chips-categorias{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:2px 0 8px;margin-bottom:6px;scrollbar-width:thin;flex:none}
.tienda-dlg .chip-cat{flex:none;white-space:nowrap}
.tienda-dlg .filtros{flex:none}
.tienda-grilla{flex:1 1 auto;min-height:200px;max-height:none;overflow:auto;align-content:start}
.tienda-dlg .dlg-cab,.tienda-pie,.tienda-dlg .acciones{flex:none}
@media (max-width:840px){
  .dialogo.tienda-dlg{width:100vw;height:100dvh;border-radius:0;padding:12px}
  .tienda-grilla{grid-template-columns:1fr 1fr;gap:8px}
  .tienda-grilla .mat-card{padding:10px}
  .tienda-grilla .mat-card strong{font-size:13px}
}
@media (max-width:480px){ .tienda-grilla{grid-template-columns:1fr} }

/* ===== Dibujos de materiales ===== */
.ico-material{display:block;flex:none}
.mat-cab{display:flex;align-items:center;gap:10px}
.mat-cab .ico-material{width:48px;height:48px;padding:4px;border-radius:10px;background:var(--muted-2);border:1px solid var(--linea)}
.carrito-desc{display:flex;align-items:center;gap:8px;min-width:0}
.carrito-desc > div{min-width:0}
.td-material{display:flex;align-items:center;gap:10px;min-width:0}
.td-material .ico-material{width:30px;height:30px;padding:2px;border-radius:6px;background:var(--muted-2);border:1px solid var(--linea)}
.td-material-txt{display:flex;flex-direction:column;min-width:0}
.td-material-txt span{font-weight:500}
.td-material-txt small{font-size:11px}
.paso-presupuesto .tabla td{vertical-align:middle;padding:8px 10px}
.paso-presupuesto .tabla th{padding:8px 10px}
.paso-presupuesto .td-unidad{white-space:nowrap;color:var(--tinta-suave);font-size:13px}
.paso-presupuesto .inp-cant{width:60px}
.paso-presupuesto .inp-num{width:96px}
.paso-presupuesto .tabla td.der{font-weight:600}
.paso-presupuesto .acciones-fila{text-align:right}
.paso-presupuesto .acciones-fila .btn-link{font-size:13px}

/* ===== Imágenes elegidas para el PDF del presupuesto ===== */
.pres-imgs{display:flex;flex-wrap:wrap;gap:8px}
.pres-img{position:relative;width:92px;height:70px;border:2px solid var(--linea);border-radius:8px;overflow:hidden;cursor:pointer;background:var(--muted-2)}
.pres-img img{width:100%;height:100%;object-fit:cover;display:block}
.pres-img input{position:absolute;top:4px;left:4px;z-index:2;accent-color:var(--acento)}
.pres-img.elegida{border-color:var(--acento);box-shadow:0 0 0 2px var(--acento-borde)}
.pres-docs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.pres-docs:empty{display:none}
.pres-docs-tit{font-size:13px;color:var(--tinta-suave)}
.pres-doc{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--acento-borde);border-radius:8px;background:var(--superficie);color:var(--acento-fuerte);font-weight:500;font-size:13px;text-decoration:none}
.pres-doc:hover{background:var(--acento-suave)}
.texto-error{color:var(--error)}
.control-lista{margin-bottom:14px;border-color:var(--acento-borde)}
.multiplicadores{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.multiplicadores .chip-cat{font-weight:700;font-size:14px;padding:6px 14px}
.mult-otro{display:flex;align-items:center;gap:4px;font-weight:700;color:var(--tinta-suave)}
.mult-otro .inp-num{width:70px}
.chip-extra{border-color:var(--acento-borde);background:var(--acento-suave);color:var(--acento-fuerte);font-weight:600}
.panel-chat-accion{margin:0 0 10px}
.btn-plano{width:100%;height:44px !important;font-size:14px !important}

/* ===================== OFICINA (mapa pixel-art en vivo) ===================== */
.ofi-reloj{font-size:12px;color:var(--tinta-suave);align-self:center;white-space:nowrap}
.ofi-espacio{font-size:13px;padding:7px 10px;border:1px solid var(--linea-fuerte);border-radius:8px;background:var(--superficie);color:var(--tinta)}
.ofi-espacio[hidden]{display:none}
.ofi-envoltura{background:#1A0D0D;border:1px solid #3a1e1c;border-radius:12px;padding:6px;overflow:auto;box-shadow:var(--sombra);display:flex;justify-content:center}
.ofi-escena{position:relative;display:inline-block;vertical-align:top}
.ofi-mapa{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 210px);min-height:360px;image-rendering:pixelated;image-rendering:crisp-edges;cursor:pointer;border-radius:6px}
.ofi-capa{position:absolute;inset:0;pointer-events:none;overflow:visible}
.ofi-tag{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:3px;white-space:nowrap}
.ofi-nombre{display:inline-flex;align-items:center;gap:5px;background:rgba(17,17,17,.9);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;line-height:1.3}
.ofi-nombre i{font-style:normal;font-size:9px;font-weight:600;background:#2E7D32;padding:0 5px;border-radius:3px}
.ofi-nombre i.ia{background:var(--acento)}
.ofi-nombre i[hidden]{display:none}
.ofi-globo{background:#fff;color:#111;font-size:10.5px;padding:2px 7px;border-radius:7px;border:1px solid #D4D4D8;max-width:170px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ofi-globo[hidden]{display:none}
.ofi-cartel{position:absolute;transform:translateY(-50%);pointer-events:auto;background:#F5E6C8;color:#3B1F1F;font-size:11px;font-weight:700;letter-spacing:.3px;padding:2px 8px;border:2px solid #5B2A2A;border-radius:3px;text-decoration:none;box-shadow:0 1px 0 #3a1e1c}
.ofi-cartel:hover{background:#FFF3D6}
.ofi-cuerpo{display:flex;gap:16px;align-items:flex-start}
.ofi-editando .ofi-globo{display:none}
.ofi-cuerpo .ofi-envoltura{flex:1;min-width:0}
.ofi-panel{width:360px;flex:none;background:var(--superficie);border:1px solid var(--linea);border-radius:12px;padding:14px 16px;box-shadow:var(--sombra);max-height:calc(100vh - 200px);overflow:auto}
.ofi-panel[hidden]{display:none}
.ofi-panel-cab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ofi-panel h2{font-size:16px;margin:0}
.ofi-panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--tinta-suave);margin:16px 0 8px}
.ofi-ayuda{font-size:12px;color:var(--tinta-suave);margin:6px 0 0}
.ofi-ag-lista{display:flex;flex-direction:column;gap:6px}
.ofi-ag{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--linea);border-radius:8px;background:var(--muted-2)}
.ofi-ag b{display:block;font-size:13px}
.ofi-ag small{display:block;font-size:11px;color:var(--tinta-suave)}
.ofi-ag-sala{color:var(--acento)!important}
.ofi-mini{width:24px;height:48px;image-rendering:pixelated;flex:none}
.ofi-ed-filas{display:flex;flex-direction:column;gap:10px}
.ofi-ed-fila{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--linea);border-radius:10px;background:var(--muted-2)}
.ofi-ed-fila.oculta{opacity:.55}
.ofi-ed-cab{display:flex;align-items:center;justify-content:space-between}
.ofi-ed-cab b{font-size:13px}
.ofi-ed-btns button{border:1px solid var(--linea-fuerte);background:var(--superficie);border-radius:6px;padding:2px 7px;font-size:12px;cursor:pointer;margin-left:4px;color:var(--tinta)}
.ofi-ed-fila label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--tinta-suave)}
.ofi-ed-fila input[type=text],.ofi-ed-fila select{font-size:13px;padding:6px 8px;border:1px solid var(--linea-fuerte);border-radius:6px;background:var(--superficie);color:var(--tinta)}
.ofi-pisos{display:flex;gap:6px}
.ofi-muestra{width:36px;height:36px;image-rendering:pixelated;border:2px solid transparent;border-radius:6px;cursor:pointer}
.ofi-muestra.sel{border-color:var(--acento);box-shadow:0 0 0 2px color-mix(in srgb,var(--acento) 30%,transparent)}
.ofi-ed-agentes{display:flex;flex-wrap:wrap;gap:4px 10px}
.ofi-ed-agentes label{flex-direction:row;align-items:center;gap:5px;font-size:12px;color:var(--tinta);cursor:pointer}
.ofi-ed-agentes .ofi-mini{width:12px;height:24px}
.ofi-ed-vis{flex-direction:row!important;align-items:center!important;gap:4px!important;font-size:12px!important;color:var(--tinta)!important}
.ofi-panel-pie{display:flex;justify-content:space-between;gap:8px;margin-top:14px;position:sticky;bottom:-14px;background:var(--superficie);padding:10px 0 2px}
@media (max-width:900px){.ofi-cuerpo{flex-direction:column}.ofi-panel{width:auto;max-height:none}}
.ofi-cafe .ofi-globo{background:#FFF8E1;border-color:#FFE082}
.ofi-ausente{opacity:.7}
.ofi-tag.ofi-con{transform:translate(-50%,0);flex-direction:column-reverse}
.ofi-ausente .ofi-globo{background:#F3F4F6;color:#6B7280}
.ofi-trabajando .ofi-globo::after{content:"…"}
.ofi-leyenda{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:12px;color:var(--tinta-suave)}
.ofi-leyenda span{display:inline-flex;align-items:center;gap:6px}
.ofi-leyenda i{width:10px;height:10px;border-radius:2px;display:inline-block}
.ofi-ley-persona{background:#2E7D32}
.ofi-ley-agente{background:var(--acento)}
.ofi-ausentes{margin-top:10px;font-size:13px;color:var(--tinta-suave)}
.ofi-ausentes a{color:inherit}
@media (max-width:640px){.ofi-envoltura{margin:0 -16px;border-radius:0;border-left:0;border-right:0;justify-content:flex-start}.ofi-mapa{max-height:none;min-height:0;max-width:none;width:720px}}

/* ===================== TIENDA ONLINE (Tiendanube) ===================== */
.tn-link{color:var(--acento);text-decoration:none;display:inline-flex;align-items:center;gap:2px}
.tn-conectar{max-width:620px}
.tn-conectar p{color:var(--tinta-suave);margin:0 0 14px}
.tn-filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.tn-buscar{flex:1;min-width:220px;font-size:14px;padding:9px 12px;border:1px solid var(--linea-fuerte);border-radius:8px;background:var(--superficie);color:var(--tinta)}
.tn-filtros select{font-size:14px;padding:9px 10px;border:1px solid var(--linea-fuerte);border-radius:8px;background:var(--superficie);color:var(--tinta)}
.tn-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-f{border:1px solid var(--linea-fuerte);background:var(--superficie);color:var(--tinta);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}
.chip-f.sel{background:var(--acento);border-color:var(--acento);color:#fff}
.tn-pag{display:flex;align-items:center;justify-content:center;gap:14px;margin:14px 0;font-size:13px;color:var(--tinta-suave)}
.tn-img{width:52px}
.tn-img img{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--linea);display:block}
.tn-noimg{display:block;width:44px;height:44px;border-radius:8px;background:var(--muted)}
.tn-dos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tn-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tn-lista li{display:flex;align-items:center;gap:10px;font-size:14px}
.tn-lista img{width:32px;height:32px;object-fit:cover;border-radius:6px;border:1px solid var(--linea)}
.tn-lista span{flex:1}
.tn-det-cab{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.tn-totales{max-width:320px;margin:12px 0 12px auto}
.tn-totales p{display:flex;justify-content:space-between;margin:4px 0;font-size:14px}
.tn-totales .total{font-weight:700;font-size:16px;border-top:1px solid var(--linea);padding-top:6px}
.dialogo-erp h3{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--tinta-suave);margin:12px 0 4px}
.tabla tr.fila-link{cursor:pointer}
.tabla tr.fila-link:hover td{background:var(--muted-2)}
.tabla td.der,.tabla th.der{text-align:right}
.rojo{color:#B91C1C}.naranja{color:#B45309}
.aviso-inline{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px}
.aviso-error{background:#FBE9E7;color:#9B2C1A}
@media (max-width:760px){.tn-dos{grid-template-columns:1fr}}
.tn-dos .tabla td:first-child,.tn-dos .tabla td.der{white-space:nowrap}
.tn-pag,.tabla + .nota{margin-top:10px}
.tn-link .ico-svg{margin:0 2px 0 6px}
.tn-h3{font-size:14px;margin:22px 0 4px}
.tn-codigo{width:100%;font:12px/1.4 ui-monospace,monospace;padding:8px;border:1px solid var(--linea-fuerte);border-radius:8px;background:var(--superficie);color:var(--tinta);margin-bottom:8px}
.tn-campo{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--tinta-suave);margin:8px 0}
.tn-campo input,.tn-campo textarea{font-size:14px;padding:8px 10px;border:1px solid var(--linea-fuerte);border-radius:8px;background:var(--superficie);color:var(--tinta)}
.tn-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:end}
.tn-check{display:flex;align-items:center;gap:6px;font-size:13px;margin:8px 0}
.tn-acc{white-space:nowrap}
.tn-acciones{margin-top:14px;border-top:1px solid var(--linea);padding-top:10px}
.tn-botonera{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.tn-envio{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}
.tn-envio input,.dialogo-erp .tabla input{font-size:13px;padding:6px 8px;border:1px solid var(--linea-fuerte);border-radius:6px;background:var(--superficie);color:var(--tinta);width:100%;min-width:70px}
.tn-nota{display:flex;gap:8px;align-items:flex-start;margin-top:8px}
.tn-nota textarea{flex:1;margin:0}
.tn-peligro{color:#B91C1C;border-color:#FCA5A5}
.dialogo-erp .acciones{display:flex;gap:8px;align-items:center;margin-top:12px}
@media (max-width:640px){.tn-grid3,.tn-envio{grid-template-columns:1fr}}
.dialogo.tn-dlg-ancho{width:min(1040px,96vw);max-width:none;max-height:92vh;overflow:auto}
.tn-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.tn-checks{display:flex;gap:16px;flex-wrap:wrap;padding-bottom:10px}
.tn-sec{border:1px solid var(--linea);border-radius:10px;padding:8px 12px;margin:10px 0;background:var(--muted-2)}
.tn-sec summary{cursor:pointer;font-weight:600;font-size:13px;padding:4px 0}
.tn-galeria{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.tn-galeria figure{position:relative;margin:0;width:96px;height:96px}
.tn-galeria img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--linea)}
.tn-galeria button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:1px solid var(--linea-fuerte);background:var(--superficie);color:#B91C1C;cursor:pointer;font-size:12px;line-height:1}
.tn-tabla-var{overflow-x:auto}
.tn-tabla-var td{padding:6px 6px}
.tn-tabla-var input{min-width:64px;width:90px}
.tn-rich{min-height:120px;border:1px solid var(--linea-fuerte);border-radius:8px;padding:10px 12px;background:var(--superficie);font-size:14px;line-height:1.5;outline:none}
.tn-rich:focus{border-color:var(--acento)}
.tn-rich-barra{display:flex;gap:4px;margin:6px 0}
.tn-rich-barra button{border:1px solid var(--linea-fuerte);background:var(--superficie);border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer;color:var(--tinta)}
@media (max-width:640px){.tn-grid2{grid-template-columns:1fr}}
.tn-plano-ok{display:inline-block;margin-left:8px;font-size:11px;font-weight:600;color:var(--acento);background:color-mix(in srgb,var(--acento) 12%,transparent);padding:1px 7px;border-radius:999px;vertical-align:middle}
.tn-plano-estado{margin:8px 0 6px;font-size:13px}
.tn-plano .tn-lista li a{flex:1}
.tn-cost-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:18px;align-items:start}
.tn-cost-grid>div{min-width:0}
.tn-cost-res .tabla{overflow:auto}
.tn-cost-res .tabla td:first-child{white-space:normal}
.tn-cost-grid h3{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--tinta-suave);margin:14px 0 6px}
.tn-mat{display:flex;align-items:center;gap:6px;min-width:180px}
.tn-mat span{flex:1;font-size:13px}
.tn-mat .btn-sec{padding:3px 8px;font-size:12px}
.tn-cost-res .tabla td{padding:6px 10px;font-size:13px}
.tn-cost-res .tn-tot td{font-weight:700;border-top:2px solid var(--linea-fuerte)}
.tn-cost-res .tn-sug td{color:var(--acento);font-weight:600}
.tn-precio-final{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:12px;padding:12px 14px;border:1px solid var(--linea);border-radius:10px;background:var(--muted-2)}
.tn-precio-final span{display:block;font-size:11px;color:var(--tinta-suave)}
.tn-precio-final b{font-size:18px}
.tn-precio-final .btn{margin-left:auto;white-space:nowrap}
.tn-dos-sel{display:flex;gap:6px}
.tn-dos-sel select{font-size:13px;padding:6px 8px;border:1px solid var(--linea-fuerte);border-radius:6px;background:var(--superficie);color:var(--tinta)}
@media (max-width:900px){.tn-cost-grid{grid-template-columns:1fr}}
.dialogo.tn-dlg-medio{width:min(820px,96vw);max-width:none;max-height:92vh;overflow:auto}
.dialogo.tn-dlg-medio .tn-grid3 input{min-width:0;width:100%}
@media (max-width:640px){.dialogo.tn-dlg-medio .tn-grid3{grid-template-columns:1fr}}
.tn-ok{color:#1E6B45}
.tn-combo{padding:14px 16px}
.tn-combo-cab{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.tn-combo-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}
.tn-combo-puntaje{text-align:right;line-height:1}
.tn-combo-puntaje b{font-size:22px;display:block}
.tn-combo-puntaje small{font-size:11px;color:var(--tinta-suave)}
.tn-combo-det{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.tn-barra{font-size:13px}
.tn-barra small{display:block}
.tn-barras-vis{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0}
.tn-barra-vis{width:120px;height:8px;background:#E5E7EB;border-radius:3px;overflow:hidden}
.tn-barra-vis span{display:block;height:100%;background:var(--acento)}
.tn-combo-pie{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;color:var(--tinta-suave);border-top:1px solid var(--linea);padding-top:8px}
.tn-combo-pie b{color:var(--tinta)}
.tn-combo-nombre{font-weight:600;color:var(--tinta);font-size:13px}
.tn-armado{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 16px;margin-bottom:12px}
.tn-armado label{display:flex;align-items:center;gap:8px;font-size:13px}
.tn-armado input{width:64px;font-size:14px;padding:6px 8px;border:1px solid var(--linea-fuerte);border-radius:6px;background:var(--superficie);color:var(--tinta)}
.tn-tabla-var{overflow:visible}
.tn-tabla-var table{table-layout:auto;width:100%}
.tn-tabla-var td{padding:6px 5px;vertical-align:middle}
.tn-tabla-var input{min-width:0;width:100%}
.tn-tabla-var td:nth-child(1) input{width:120px}
.tn-tabla-var td:nth-child(3) input,.tn-tabla-var td:nth-child(4) input{width:70px}
.tn-mat{min-width:0}
.tn-mat span{white-space:normal}
.tn-mat .btn-sec{white-space:nowrap}
.tn-desc-man{font-size:13px;padding:5px 7px}
.tn-mat-man{display:flex;align-items:center;gap:6px;margin-top:3px}
.tn-mat-man input{width:110px!important;font-size:12px;padding:4px 6px}
.tn-x{border:0;background:none;color:var(--tinta-suave);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:6px}
.tn-x:hover{background:#FBE9E7;color:#9B2C1A}
.dialogo.tn-dlg-ancho{overflow-x:hidden}

/* Pendientes de confirmar (costeo) */
.tn-estado{display:inline-block;border-radius:999px;padding:1px 9px;font:600 11px/1.7 var(--f-texto);vertical-align:middle;white-space:nowrap}
.tn-estado-chequeado{background:#DCFCE7;color:#166534}
.tn-estado-pendiente{background:#FEF3C7;color:#92400E}
.tn-estado-sin_revisar{background:var(--muted);color:var(--tinta-suave,#6B7280)}
.tn-pend-cab{display:flex;align-items:center;gap:10px;margin-top:0}
.tn-pend-cab h3{margin:0}
.tn-pend{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.tn-pend-item{border:1px solid var(--linea);border-radius:8px;padding:6px 8px;background:var(--superficie)}
.tn-pend-item.ok{opacity:.65}
.tn-pend-item.ok .tn-pend-q span:nth-child(2){text-decoration:line-through}
.tn-pend-q{font-size:13px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.tn-pend-q small{color:var(--tinta-suave,#6B7280)}
.tn-pend-tick{font-weight:700;color:var(--acento)}
.tn-pend-item.ok .tn-pend-tick{color:#166534}
.tn-pend-r{display:flex;gap:6px;align-items:center;margin-top:4px}
.tn-pend-r input{flex:1;min-width:0}
.tn-pend-sug{display:flex;gap:6px;align-items:center;margin:4px 0 2px;padding:4px 8px;border-radius:6px;background:var(--acento-suave);font-size:12.5px}
.tn-pend-sug>span{flex:1}
.tn-sobrante{border:1px solid var(--linea);border-radius:8px;padding:8px 10px;margin:8px 0;background:var(--superficie)}
.tn-sobrante-cab{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.tn-sobrante .tn-lista li{display:flex;justify-content:space-between;gap:8px;font-size:12.5px}
.tn-armado{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-bottom:10px}
.tn-armado-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--linea);border-radius:8px;padding:6px 10px;background:var(--superficie)}
.tn-armado-item.sel{border-color:var(--acento);background:var(--acento-suave)}
.tn-armado-nombre{font-size:13px;font-weight:500}
.tn-armado-cant{display:flex;align-items:center;gap:6px}
.tn-armado-cant b{min-width:18px;text-align:center}
.tn-fabricar{border:1px solid var(--acento-borde);background:var(--acento-suave);border-radius:8px;padding:8px 12px;margin:10px 0}
.tn-fabricar h3{margin:0 0 6px}
.tn-fabricar .tn-lista li{display:flex;justify-content:space-between;gap:8px;font-size:13px}
