.system-announcement-banner {
  --announcement-accent: #02abff;
  --announcement-bg: #0d2030;
  --announcement-bg-end: #0b1d2b;
  --announcement-text: #f8fafc;
  --announcement-title: #ffffff;
  --announcement-msg: #dbeafe;
  --announcement-close-bg: rgba(255, 255, 255, .07);
  --announcement-close-text: #e2e8f0;
  --announcement-shadow: 0 20px 48px rgba(0, 0, 0, .38), 0 0 0 1px rgba(255, 255, 255, .03) inset;
  --announcement-link-text: #06131f;
  position: fixed;
  inset: 0;
  z-index: 30000;
  display: none;
  pointer-events: none;
  font-family: "Plus Jakarta Sans", "Prompt", system-ui, sans-serif;
}

/* Light theme: white surface with dark text so the banner matches the page. */
body.light-theme .system-announcement-banner,
body.phayak-saas-dashboard.light-theme .system-announcement-banner {
  --announcement-bg: #ffffff;
  --announcement-bg-end: #f0f6fb;
  --announcement-text: #102033;
  --announcement-title: #0b1d2a;
  --announcement-msg: #475569;
  --announcement-close-bg: rgba(2, 171, 255, .06);
  --announcement-close-text: #475569;
  --announcement-shadow: 0 20px 48px rgba(16, 32, 51, .14), 0 0 0 1px rgba(2, 171, 255, .04) inset;
  --announcement-link-text: #ffffff;
}

.system-announcement-banner.is-visible {
  display: block;
}

.system-announcement-banner[data-level="success"] { --announcement-accent: #34d399; }
.system-announcement-banner[data-level="warning"] { --announcement-accent: #fbbf24; }
.system-announcement-banner[data-level="maintenance"] { --announcement-accent: #a78bfa; }
.system-announcement-banner[data-level="critical"] { --announcement-accent: #fb7185; }

.system-announcement-inner {
  position: absolute;
  top: 12px;
  left: 50%;
  width: min(420px, calc(100vw - 48px));
  transform: translateX(-50%);
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 17px 18px;
  color: var(--announcement-text);
  pointer-events: auto;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--announcement-accent) 16%, var(--announcement-bg)), var(--announcement-bg-end) 65%),
    var(--announcement-bg);
  border: 1px solid color-mix(in srgb, var(--announcement-accent) 56%, rgba(148, 163, 184, .32));
  border-radius: 18px;
  box-shadow: var(--announcement-shadow);
  animation: system-announcement-enter .22s ease-out both;
}

.system-announcement-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: var(--announcement-accent);
  background: color-mix(in srgb, var(--announcement-accent) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--announcement-accent) 38%, transparent);
  font-size: 21px;
  font-weight: 900;
}

.system-announcement-copy {
  min-width: 0;
  flex: 1;
}

.system-announcement-title {
  margin: 0;
  color: var(--announcement-title);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
}

.system-announcement-message {
  margin: 4px 0 0;
  color: var(--announcement-msg);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.system-announcement-link,
.system-announcement-close {
  min-height: 38px;
  border-radius: 11px;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
}

.system-announcement-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  padding: 8px 13px;
  color: var(--announcement-link-text);
  background: var(--announcement-accent);
  text-decoration: none;
  white-space: nowrap;
}

.system-announcement-close {
  width: 38px;
  flex: 0 0 38px;
  padding: 0;
  color: var(--announcement-close-text);
  background: var(--announcement-close-bg);
  border: 1px solid rgba(148, 163, 184, .28);
  cursor: pointer;
}

.system-announcement-close:hover,
.system-announcement-close:focus-visible {
  color: var(--announcement-title);
  border-color: var(--announcement-accent);
  outline: none;
}

@keyframes system-announcement-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 700px) {
  .system-announcement-inner {
    top: max(14px, env(safe-area-inset-top));
    right: auto;
    bottom: auto;
    left: 16px;
    width: calc(100vw - 32px);
    transform: none;
    gap: 10px;
    padding: 14px;
    border-radius: 16px;
  }

  .system-announcement-icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    border-radius: 11px;
    font-size: 18px;
  }

  .system-announcement-title { font-size: 16px; }
  .system-announcement-message { font-size: 13px; }

  .system-announcement-link {
    align-self: flex-end;
    min-height: 34px;
    padding: 6px 9px;
  }

  .system-announcement-close {
    width: 34px;
    min-height: 34px;
    flex-basis: 34px;
  }
}
