/* BADDGES v11 — dynamic progress colors + gently stronger card borders; retains open-ended schedule. */
.badge-card,.global-card{border-width:2px;}
.timeline-undated-card{border-width:2px;}
/* Keep platform silhouettes visible without changing card layout. */
.badge-card.twitch{border-color:rgba(169,96,255,.64);}
.badge-card.kick{border-color:rgba(52,226,124,.55);}
/* Twitch expiration labels remain violet. The bar itself follows its original
   progress phase colors: green (normal), amber (warning), red (danger). */
.badge-card.twitch:not(.upcoming) .badge-expire-label,
.badge-card.twitch:not(.upcoming) .progress-summary{color:#b884ff;}
html[data-theme="light"] .badge-card.twitch:not(.upcoming) .badge-expire-label,
html[data-theme="light"] .badge-card.twitch:not(.upcoming) .progress-summary{color:#7837c6;}
/* This bar ends at the current calendar viewport, NOT at a made-up expiry. */
.timeline-row-inline .timeline-bar.open-ended{
  border-right:3px dashed rgba(255,255,255,.86);
  border-top-right-radius:3px;
  border-bottom-right-radius:3px;
  min-width:126px;
}
.timeline-row-inline .timeline-bar.open-ended.kick{background:linear-gradient(90deg,#28df74 0%,#36d978 80%,rgba(46,225,120,.57) 100%);color:#071b10;}
.timeline-row-inline .timeline-bar.open-ended.twitch{background:linear-gradient(90deg,#9650ed 0%,#9650ed 80%,rgba(157,85,238,.55) 100%);color:#fff;}
html[data-theme="light"] .timeline-row-inline .timeline-bar.open-ended.kick{color:#0b3119;}

/* BADDGES v11: keep Twitch's NORMAL progress phase violet.
   Warning and danger retain the existing amber/red dynamic colors.
   Kick remains unchanged. */
.badge-card.twitch:not(.upcoming) .progress-track .progress-bar.normal{background:#a25cff;}
