.bm-output, .bm-output * { box-sizing: border-box; }
.bm-banner-output { width: 100%; }
.top-banner {
    display: flex; align-items: center; width: 100%; overflow: hidden;
    padding: 20px 0; border-bottom: 1px solid #e5e5e5; background: #0080ff; white-space: nowrap;
}
.top-banner-track { width: 100%; overflow: hidden; }
.top-banner-track-inner {
    display: inline-block; padding-left: 100%; animation: bm-scroll-banner 35s linear infinite;
    color: #fff; font-family: "Courier New", Courier, monospace; font-size: clamp(16px, 2vw, 18px);
}
.top-banner-track-inner span { padding: 0 24px; }
.top-banner-separator { font-weight: 700; opacity: .9; }
.banner-infobox {
    max-width: 100%; overflow-wrap: anywhere; text-align: center;
    font-family: "Courier New", Courier, monospace; font-size: clamp(1.25rem, 5vw, 1.875rem);
    font-weight: 700; line-height: 1.3;
}
.banner-infobox-red { color: #ff1744; }
.banner-infobox-orange { color: #ff6d00; }
.banner-infobox-green { color: #00a83b; }
@keyframes bm-scroll-banner { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (max-width: 600px) {
    .top-banner { padding: 15px 0; }
    .top-banner-track-inner { animation-duration: 20s; font-size: 16px; }
    .top-banner-track-inner span { padding: 0 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .top-banner { overflow-x: auto; white-space: normal; }
    .top-banner-track { overflow: visible; }
    .top-banner-track-inner { animation: none; transform: none; padding-left: 0; }
    .top-banner-track-inner span { display: inline-block; padding: 4px 12px; white-space: normal; }
}
