/* ═══ Modal de notificación push — js/14-admin.js (openPatientPush) ═══
   Las categorías se pasan deslizando con el listado siguiendo al dedo (el
   gesto vive en _pnInitCategorySwipe); los puntos dicen dónde estás; cada
   plantilla enseña cómo empieza su mensaje, en dos líneas. */
#m-patient-push .pn-template-viewport{overflow-x:hidden!important;touch-action:pan-y}
#m-patient-push .pn-template-grid{will-change:transform}
#m-patient-push .pn-template-grid.slide-l{animation:pn-in-l .3s cubic-bezier(.22,1,.36,1) both}
#m-patient-push .pn-template-grid.slide-r{animation:pn-in-r .3s cubic-bezier(.22,1,.36,1) both}
@keyframes pn-in-l{from{opacity:0;transform:translateX(42px)}to{opacity:1;transform:none}}
@keyframes pn-in-r{from{opacity:0;transform:translateX(-42px)}to{opacity:1;transform:none}}
#m-patient-push .pn-dots{display:flex;justify-content:center;gap:5px;margin:10px 0 2px}
#m-patient-push .pn-dots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.16);transition:width .25s,background .25s}
#m-patient-push .pn-dots i.on{width:18px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent))}
#m-patient-push .pn-template{align-items:start!important;min-height:64px}
#m-patient-push .pn-template-copy{gap:3px}
#m-patient-push .pn-template-copy small{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;
  font-size:10.5px!important;line-height:1.3!important;letter-spacing:0!important;text-transform:none!important}
@media (prefers-reduced-motion:reduce){#m-patient-push .pn-template-grid{animation:none!important}}
