/**
 * status-banner.css — P0-4
 * Tenky top banner s aktualnim stavem site. Nad hlavickou.
 * Izolovane tridy .vhv-status-banner-*, bez !important.
 */

.vhv-status-banner {
  position: relative;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.6rem 1rem;
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  color: #0f172a;
  border-bottom: 1px solid #e2e8f0;
  background: #f1f5f9;
  border-left: 4px solid transparent;
  transition: background 150ms ease;
}

.vhv-status-banner--ok {
  background: #dcfce7;
  border-left-color: #16a34a;
  color: #064e3b;
}

.vhv-status-banner--warn {
  background: #fef3c7;
  border-left-color: #f59e0b;
  color: #78350f;
}

.vhv-status-banner--fail {
  background: #fee2e2;
  border-left-color: #da251d;
  color: #7f1d1d;
}

.vhv-status-banner:hover {
  filter: brightness(0.97);
}

.vhv-status-banner-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #16a34a;
  flex-shrink: 0;
}

.vhv-status-banner--warn .vhv-status-banner-dot { background: #f59e0b; }
.vhv-status-banner--fail .vhv-status-banner-dot { background: #da251d; }

.vhv-status-banner--ok .vhv-status-banner-dot {
  animation: vhv-status-pulse 2s infinite;
}

@keyframes vhv-status-pulse {
  0% { box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.5); }
  70% { box-shadow: 0 0 0 8px rgba(22, 163, 74, 0); }
  100% { box-shadow: 0 0 0 0 rgba(22, 163, 74, 0); }
}

.vhv-status-banner-label {
  font-weight: 700;
}

.vhv-status-banner-sep {
  color: #94a3b8;
  margin: 0 0.25rem;
}

.vhv-status-banner-arrow {
  margin-left: 0.25rem;
  transition: transform 150ms ease;
}

.vhv-status-banner:hover .vhv-status-banner-arrow {
  transform: translateX(3px);
}

@media (max-width: 560px) {
  .vhv-status-banner {
    font-size: 0.82rem;
    padding: 0.5rem 0.75rem;
    gap: 0.5rem;
  }
  .vhv-status-banner-sep { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .vhv-status-banner--ok .vhv-status-banner-dot {
    animation: none;
  }
}
