.ipbar {
  position: sticky;
  top: 0;
  z-index: 31;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 34px;
  padding: 6px 14px;
  background: linear-gradient(rgba(245, 184, 92, 0.12), rgba(245, 184, 92, 0.12)), #0c1a12;
  border-bottom: 1px solid rgba(245, 184, 92, 0.22);
  color: #e9efe9;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 13px;
  line-height: 1.3;
  white-space: nowrap;
  animation: ipbar-in 0.45s ease both;
}
.ipbar[hidden] { display: none !important; }
html.has-ipbar header { top: var(--ipbar-h, 0px); }
.ipbar.is-safe {
  background: linear-gradient(rgba(111, 232, 154, 0.11), rgba(111, 232, 154, 0.11)), #0c1a12;
  border-bottom-color: rgba(111, 232, 154, 0.22);
}
@keyframes ipbar-in { from { opacity: 0; transform: translateY(-100%); } }

.ipbar-dot {
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f5b85c;
  box-shadow: 0 0 0 0 rgba(245, 184, 92, 0.55);
  animation: ipbar-pulse 1.6s ease-out infinite;
}
.ipbar.is-safe .ipbar-dot { background: #6fe89a; box-shadow: 0 0 0 0 rgba(111, 232, 154, 0.55); }
@keyframes ipbar-pulse { to { box-shadow: 0 0 0 7px rgba(245, 184, 92, 0); } }

.ipbar-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #b9c8bf;
}
.ipbar-text b { color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; }
.ipbar-text .ipbar-warn { color: #f5b85c; }
.ipbar-text .ipbar-ok { color: #6fe89a; }
.ipbar-sep { margin: 0 6px; opacity: 0.45; }

.ipbar-act {
  flex: 0 0 auto;
  margin-left: 4px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #f5b85c;
  color: #2a1a03;
  font-weight: 650;
  font-size: 12px;
  text-decoration: none;
}
.ipbar.is-safe .ipbar-act { background: transparent; color: #6fe89a; padding: 3px 0; }

@media (max-width: 520px) {
  .ipbar { justify-content: space-between; font-size: 12px; padding: 6px 12px; }
  .ipbar-isp, .ipbar-isp-sep, .ipbar-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ipbar, .ipbar-dot { animation: none; }
}
