.ba-notice-bar {
  position: relative; z-index: 100000;
  background: var(--ba-bg, #102d49); color: var(--ba-fg, #fff);
  font: 500 15px/1.4 system-ui, -apple-system, "Segoe UI", sans-serif;
}
.ba-notice-bar.ba-urgent { background: var(--ba-bg, #9b332d); }
.ba-notice-inner {
  box-sizing: border-box; width: 100%; min-height: 48px;
  margin: auto; padding: 8px clamp(12px, 2vw, 32px);
  display: flex; align-items: center; gap: 18px;
}
.ba-notice-viewport { flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-align: center; }
.ba-notice-track { display: inline-flex; align-items: center; gap: 48px; width: max-content; }
.ba-notice-message { display: inline-block; white-space: nowrap; font-weight: 600; }
.ba-notice-viewport.ba-scrolling { text-align: left; }
.ba-notice-viewport:not(.ba-scrolling) { text-align: left; overflow-x: auto; scrollbar-width: thin; }
.ba-notice-viewport.ba-scrolling .ba-notice-track {
  animation: ba-notice-scroll var(--ba-duration, 16s) linear infinite;
}
.ba-notice-bar:hover .ba-notice-track, .ba-notice-bar:focus-within .ba-notice-track {
  animation-play-state: paused;
}
@keyframes ba-notice-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-1 * var(--ba-travel, 0px))); }
}
.ba-notice-link {
  display: inline-block; flex: 0 0 auto; max-width: 28vw; overflow: hidden;
  text-overflow: ellipsis; padding: 7px 13px; border-radius: 5px;
  background: #fff; color: #102d49 !important; text-decoration: none !important;
  font-weight: 700; white-space: nowrap;
}
.ba-notice-bar.ba-light-bg .ba-notice-link { background: #102d49; color: #fff !important; }
.ba-notice-close {
  flex: 0 0 auto; border: 0; background: transparent; color: inherit;
  font-size: 27px; line-height: 1; cursor: pointer; padding: 4px;
}
.ba-notice-link:focus-visible, .ba-notice-close:focus-visible, .ba-popup-close:focus-visible {
  outline: 3px solid #19b7c1; outline-offset: 2px;
}
.ba-popup-backdrop {
  position: fixed; inset: 0; z-index: 100001; background: rgba(9, 27, 45, .72);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.ba-popup {
  position: relative; box-sizing: border-box; width: min(100%, 600px);
  max-height: min(85vh, 720px); overflow: auto; padding: 36px;
  border-radius: 13px; background: var(--ba-bg, #fff); color: var(--ba-fg, #142f49);
  box-shadow: 0 16px 50px rgba(0, 0, 0, .25);
  font: 16px/1.55 system-ui, -apple-system, "Segoe UI", sans-serif;
}
.ba-popup h2 {
  font-size: clamp(25px, 4vw, 34px); line-height: 1.2;
  margin: 0 35px 15px 0; color: var(--ba-fg, #102d49);
}
.ba-popup-lead { font-size: 18px; font-weight: 600; }
.ba-popup-body { margin: 16px 0; }
.ba-popup-body * { color: inherit; }
.ba-popup-close {
  position: absolute; right: 15px; top: 10px; border: 0;
  background: transparent; font-size: 30px; cursor: pointer; color: var(--ba-fg, #142f49);
}
.ba-popup .ba-notice-link { max-width: none; background: #117c8c; color: #fff !important; }
.ba-popup.ba-dark-bg .ba-notice-link { background: #fff; color: #102d49 !important; }
@media (max-width: 640px) {
  .ba-notice-inner { gap: 8px; padding: 9px 12px; }
  .ba-notice-viewport { text-align: left; }
  .ba-notice-link { max-width: 30vw; font-size: 13px; padding: 6px 8px; }
  .ba-popup { padding: 26px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .ba-notice-viewport.ba-scrolling { overflow-x: auto; scrollbar-width: thin; }
  .ba-notice-viewport.ba-scrolling .ba-notice-track { animation: none; }
  .ba-notice-copy { display: none; }
}
