/* ── pn_whatsapp widget — fully isolated, immune to theme styles ─────────── */

/* Widget root — reset wszelkich dziedziczonych styli z motywu */
#pn-wa-widget,
#pn-wa-widget * {
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: normal;
  letter-spacing: normal;
  text-transform: none;
  word-spacing: normal;
  -webkit-font-smoothing: antialiased;
}

#pn-wa-widget {
  position: fixed;
  bottom: 24px;
  z-index: 99999;
  /* reset potencjalnych dziedziczonych styli */
  color: #111111;
  font-size: 16px;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
}

#pn-wa-widget.pn-wa-right { right: 24px; }
#pn-wa-widget.pn-wa-left  { left:  24px; }

@media (max-width: 767px) {
  #pn-wa-widget.pn-wa-hide-mobile { display: none !important; }
}

/* ── Trigger button ── */

#pn-wa-trigger {
  position: relative;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #25d366 !important;
  border: none !important;
  cursor: pointer;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: #ffffff !important;
  box-shadow: 0 4px 16px rgba(37, 211, 102, .45) !important;
  transition: transform .2s ease, box-shadow .2s ease;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  text-decoration: none !important;
}

#pn-wa-trigger:hover,
#pn-wa-trigger:focus {
  transform: scale(1.08);
  box-shadow: 0 6px 22px rgba(37, 211, 102, .6) !important;
  background: #25d366 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

/* Pulse ring */
#pn-wa-widget .pn-wa-pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: rgba(37, 211, 102, .35);
  animation: pn-wa-pulse 2s ease-out infinite;
  pointer-events: none;
}

@keyframes pn-wa-pulse {
  0%   { transform: scale(1);    opacity: .7; }
  70%  { transform: scale(1.55); opacity: 0;  }
  100% { transform: scale(1.55); opacity: 0;  }
}

/* ── Panel ── */

#pn-wa-panel {
  position: absolute;
  bottom: 72px;
  width: 300px;
  background: #ffffff !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 40px rgba(0, 0, 0, .22) !important;
  overflow: hidden;
  display: none;
  flex-direction: column;
  opacity: 0;
  transform: translateY(10px) scale(.97);
  transition: opacity .2s ease, transform .2s ease;
  /* Zabezpieczenie przed stylami motywu */
  border: none !important;
  color: #111111 !important;
}

#pn-wa-widget.pn-wa-right #pn-wa-panel { right: 0; }
#pn-wa-widget.pn-wa-left  #pn-wa-panel { left:  0; }

#pn-wa-panel.pn-wa-open {
  display: flex;
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Panel header */
#pn-wa-panel .pn-wa-panel-header {
  background: #075e54 !important;
  color: #ffffff !important;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  font-size: 14px !important;
  font-weight: 600 !important;
  margin: 0;
  border: none !important;
  border-radius: 0 !important;
}

#pn-wa-panel .pn-wa-close {
  margin-left: auto;
  background: transparent !important;
  border: none !important;
  color: #ffffff !important;
  cursor: pointer;
  font-size: 16px !important;
  line-height: 1;
  padding: 0 2px !important;
  opacity: .8;
  transition: opacity .15s;
  box-shadow: none !important;
  text-shadow: none !important;
  text-decoration: none !important;
}

#pn-wa-panel .pn-wa-close:hover {
  opacity: 1;
  background: transparent !important;
  color: #ffffff !important;
}

/* Panel body */
#pn-wa-panel .pn-wa-panel-body {
  padding: 12px 12px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 320px;
  overflow-y: auto;
  background: #ffffff !important;
}

/* Agent row — wspólne */
#pn-wa-panel .pn-wa-agent {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 12px !important;
  text-decoration: none !important;
  color: #111111 !important;
  transition: background .15s;
  border: 1px solid #eeeeee !important;
  margin: 0;
}

/* Online */
#pn-wa-panel .pn-wa-agent--online {
  cursor: pointer;
  background: #f6fef8 !important;
}

#pn-wa-panel .pn-wa-agent--online:hover,
#pn-wa-panel .pn-wa-agent--online:focus {
  background: #e8faee !important;
  border-color: #a8d5ba !important;
  text-decoration: none !important;
  color: #111111 !important;
}

/* Offline */
#pn-wa-panel .pn-wa-agent--offline {
  opacity: .65;
  background: #f9f9f9 !important;
  cursor: default;
}

#pn-wa-panel .pn-wa-agent--offline-link {
  cursor: pointer;
  text-decoration: none !important;
  color: #111111 !important;
}

#pn-wa-panel .pn-wa-agent--offline-link:hover {
  opacity: .85;
  background: #f0f0f0 !important;
  text-decoration: none !important;
  color: #111111 !important;
}

/* Avatar */
#pn-wa-panel .pn-wa-agent-avatar {
  position: relative;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
}

#pn-wa-panel .pn-wa-avatar-initials {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #128c7e !important;
  color: #ffffff !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
}

#pn-wa-panel .pn-wa-status {
  position: absolute;
  bottom: 1px;
  right: 1px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #ffffff !important;
}

#pn-wa-panel .pn-wa-status--online  { background: #25d366 !important; }
#pn-wa-panel .pn-wa-status--offline { background: #bbbbbb !important; }

/* Agent info */
#pn-wa-panel .pn-wa-agent-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#pn-wa-panel .pn-wa-agent-info strong {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #111111 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

#pn-wa-panel .pn-wa-role {
  font-size: 12px !important;
  color: #666666 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

#pn-wa-panel .pn-wa-hours {
  font-size: 11px !important;
  color: #999999 !important;
  display: block;
}

/* Arrow */
#pn-wa-panel .pn-wa-arrow {
  color: #25d366 !important;
  font-size: 22px !important;
  line-height: 1;
  flex-shrink: 0;
}

/* Offline badge */
#pn-wa-panel .pn-wa-offline-badge {
  font-size: 11px !important;
  color: #ffffff !important;
  background: #bbbbbb !important;
  border-radius: 8px !important;
  padding: 2px 7px;
  flex-shrink: 0;
  white-space: nowrap;
}

/* All-offline message */
#pn-wa-panel .pn-wa-offline-msg {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: #fffbea !important;
  border: 1px solid #fde68a !important;
  border-radius: 10px !important;
  padding: 10px 12px;
  font-size: 12px !important;
  color: #5d4037 !important;
  line-height: 1.5;
}

#pn-wa-panel .pn-wa-offline-msg svg {
  flex-shrink: 0;
  margin-top: 1px;
  color: #f59e0b;
}

/* Panel footer */
#pn-wa-panel .pn-wa-panel-footer {
  background: #f5f5f5 !important;
  text-align: center;
  font-size: 11px !important;
  color: #aaaaaa !important;
  padding: 8px;
  border-top: 1px solid #eeeeee !important;
  border-radius: 0 !important;
}

#pn-wa-panel .pn-wa-panel-footer strong {
  color: #075e54 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  font-weight: 600 !important;
}
