.network-reconnect-notice {
  position: absolute;
  z-index: 180;
  top: max(5.2rem, calc(env(safe-area-inset-top, 0px) + 4.5rem));
  left: 50%;
  display: grid;
  gap: 0.16rem;
  min-width: min(19rem, calc(100vw - 2rem));
  max-width: min(28rem, calc(100vw - 2rem));
  padding: 0.62rem 0.9rem;
  transform: translateX(-50%);
  border: 1px solid rgba(159, 226, 255, 0.62);
  border-radius: 0.8rem;
  background: rgba(8, 27, 42, 0.88);
  box-shadow: 0 0.45rem 1.3rem rgba(0, 0, 0, 0.24);
  color: #eefaff;
  text-align: center;
  pointer-events: none;
  backdrop-filter: blur(5px);
}

.network-reconnect-notice[hidden] { display: none; }
.network-reconnect-notice strong { font-size: 0.92rem; line-height: 1.15; }
.network-reconnect-notice span { color: #c9dce5; font-size: 0.73rem; line-height: 1.2; }
.network-reconnect-notice[data-state="waiting"] { border-color: rgba(255, 196, 92, 0.75); }
.network-reconnect-notice[data-state="success"] { border-color: rgba(108, 235, 173, 0.78); }
.network-reconnect-notice[data-state="error"] { border-color: rgba(255, 105, 105, 0.8); }

@media (max-width: 720px) {
  .network-reconnect-notice {
    top: calc(env(safe-area-inset-top, 0px) + 3.65rem);
    min-width: min(17rem, calc(100vw - 1.2rem));
    padding: 0.48rem 0.72rem;
  }
}
