html[data-season] body:not(.bonus-redirect) { background-image: var(--season-background) !important; }
.season-control { position: fixed; right: 18px; bottom: 18px; z-index: 50001; font-family: inherit; }
.season-toggle { display:flex; align-items:center; gap:6px; padding:10px 15px; min-height:44px; border:1px solid rgba(86,212,162,.3); border-radius:12px; background:#102924; color:#b7f2d6; font:600 12px/1.4 inherit; cursor:pointer; box-shadow:0 4px 18px #0005; }
.season-panel { position:absolute; bottom:56px; right:0; width:320px; max-width:calc(100vw - 24px); padding:20px; border:1px solid #396253; border-radius:16px; background:linear-gradient(130deg,#12342c,#112129); color:#dcece4; box-shadow:0 18px 50px #0008; }
.season-panel[hidden] { display:none !important; }
.season-panel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; font-size:14px; font-weight:700; }
.season-close { width:32px; height:32px; border:1px solid #ffffff1f; border-radius:8px; background:#ffffff08; color:#c3dacf; font-size:22px; cursor:pointer; }
.season-eyebrow { display:block; font-size:9px; letter-spacing:.1em; color:#7fb69d; }
.season-current { display:block; font-size:23px; margin:4px 0 14px; }
.season-next { margin:0 0 12px; font-size:13px; }
.season-meter { height:6px; overflow:hidden; border-radius:6px; background:#ffffff12; }
.season-meter span { display:block; height:100%; background:#36dda3; border-radius:inherit; transition:width .4s; }
.season-meta { display:flex; justify-content:space-between; gap:8px; margin-top:8px; font-size:10px; color:#b6d6c5; }
.season-schedule { margin:16px 0 10px; font-size:12px; color:#8de0b9; }
.season-panel small { display:block; font-size:10px; line-height:1.7; color:#8faf9e; }
.season-control button:focus-visible { outline:2px solid #65efb5; outline-offset:3px; }
@media(max-width:600px) { .season-control { right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); } .season-panel { padding:17px; } }
@media(prefers-reduced-motion:reduce) { .season-meter span { transition:none; } }
body .season-control { width:auto !important; max-width:calc(100vw - 24px) !important; left:auto !important; }
body .season-control .season-panel { box-sizing:border-box !important; width:320px !important; max-width:calc(100vw - 24px) !important; max-height:calc(100svh - 90px) !important; overflow-y:auto !important; left:auto !important; }
body .season-control .season-toggle { font-family:inherit; font-size:12px; font-weight:600; }

/* Keep the theme control above page overlays and reachable on touch devices. */
body .season-control {
  position:fixed !important;
  z-index:100000 !important;
  pointer-events:auto !important;
  isolation:isolate;
}
body .season-control .season-toggle,
body .season-control .season-close {
  pointer-events:auto !important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
body .season-control .season-close {
  width:44px !important;
  height:44px !important;
  flex:0 0 44px;
}
@media(max-width:960px) {
 body .season-control {
  right:12px !important;
  bottom:calc(14px + env(safe-area-inset-bottom)) !important;
 }
 body .season-control .season-panel {
  position:fixed !important;
  top:auto !important;
  left:auto !important;
  right:12px !important;
  bottom:calc(70px + env(safe-area-inset-bottom)) !important;
  width:320px !important;
  max-width:calc(100vw - 24px) !important;
  max-height:calc(100dvh - 90px - env(safe-area-inset-bottom)) !important;
  pointer-events:auto !important;
  -webkit-overflow-scrolling:touch;
 }
}

/* Keep automatic themes on mobile without displaying the theme control. */
@media (max-width:960px) {
  body .season-control {
    display:none !important;
  }
}
