/* =====================================================================
   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; --superficie:#FFFFFF; --linea:#E4E4E7; --linea-fuerte:#D4D4D8;
  --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:rgb(255 255 255 / .85);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%,#fff);
  --acento-suave-2:color-mix(in srgb,var(--acento) 15%,#fff);
  --acento-borde:color-mix(in srgb,var(--acento) 28%,#fff);
  --acento-fuerte:color-mix(in srgb,var(--acento) 82%,#000);
  --acento-claro:color-mix(in srgb,var(--acento) 55%,#fff);
}

/* Fondo y menú con un velo del primario */
body,.app{background:color-mix(in srgb,var(--acento) 4%,#FAFAFA)}
.side{background:linear-gradient(180deg,color-mix(in srgb,var(--acento) 7%,#FAFAFA),color-mix(in srgb,var(--acento) 3%,#FAFAFA))}
.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),#fff 65%);border-color:var(--acento-borde)}
.hero-kicker{color:var(--acento)}
.hero-cifra{background:#fff;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%,#FAFAFA)}
.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%,#fff);border-color:color-mix(in srgb,#16A34A 25%,#fff)}
.rama-no{background:color-mix(in srgb,#DC2626 4%,#fff);border-color:color-mix(in srgb,#DC2626 20%,#fff)}
.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}
