.challenge-card {
  --challenge-line: #3c452d;
  --challenge-highlight: #b6e57c;
  border: 1px solid var(--challenge-line);
  border-top: 3px solid #e1c539;
  border-radius: 0;
  padding: 18px;
  background: linear-gradient(115deg, #1b2816, #292711 48%, #14181d 90%);
  color: var(--color-text-primary);
}
:root[data-theme="light"] .challenge-card {
  --challenge-line: #d9dfc4;
  --challenge-highlight: #416c30;
  background: linear-gradient(115deg, #edf5df, #fff9d9 48%, #ffffff 90%);
}
.challenge-intro, .challenge-status, .challenge-verify { font-size: .8rem; color: var(--color-text-secondary); line-height: 1.5; }
.challenge-intro { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 14px; }
.challenge-kicker { padding: 3px 7px; background: #ffee58; color: #29260a; font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.challenge-week { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; font-size: .85rem; }
.challenge-week span { color: var(--color-text-secondary); }
.challenge-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 16px; margin-top: 14px; padding: 14px 0; border-top: 1px solid var(--challenge-line); }
.challenge-stats small, .challenge-stats strong { display: block; }
.challenge-stats small { font-size: .65rem; color: var(--color-text-secondary); margin-bottom: 5px; text-transform: uppercase; letter-spacing: .04em; }
.challenge-stats strong { font-size: 1rem; font-variant-numeric: tabular-nums; }
.challenge-stats .challenge-bankroll strong { font-size: 1.35rem; color: var(--challenge-highlight); line-height: 1.15; }
.challenge-progress { display: block; width: 100%; height: 4px; border: 0; border-radius: 0; overflow: hidden; accent-color: var(--color-primary); background: var(--color-divider); }
.challenge-progress::-webkit-progress-bar { background: var(--color-divider); }
.challenge-progress::-webkit-progress-value { background: linear-gradient(90deg, #91b65f, #e4ce39); }
.challenge-progress::-moz-progress-bar { background: linear-gradient(90deg, #91b65f, #e4ce39); }
.challenge-status { margin: 7px 0 0; }
.challenge-update { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--color-divider); overflow-wrap: anywhere; }
.challenge-update h4 { font-size: .85rem; margin-bottom: 6px; }
.challenge-update p { font-size: .85rem; line-height: 1.6; }
.challenge-unlock, .challenge-latest { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--color-divider); padding-top: 14px; margin-top: 14px; font-size: .8rem; }
.challenge-unlock p { margin: 3px 0 0; color: var(--color-text-secondary); font-size: .75rem; }
.challenge-plan-links { display: flex; flex-wrap: wrap; gap: 8px; }
.challenge-card .btn { border-radius: 0; }
.challenge-step { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 0; border-top: 1px solid var(--color-divider); }
.challenge-step strong, .challenge-step span { display: block; }
.challenge-step span, .challenge-step p { font-size: .8rem; margin: 4px 0 0; }
.challenge-footnote { font-size: .7rem; color: var(--color-text-secondary); margin: 18px 0 0; }
.challenge-verify { margin: 12px 0 0; }
.challenge-verify a { text-decoration: underline; text-underline-offset: 3px; }
.challenge-history { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.challenge-history a { border: 1px solid var(--color-divider); padding: 10px; font-size: .8rem; }
.challenge-carousel { min-width: 0; max-width: 100%; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--challenge-line); }
.challenge-carousel-heading, .challenge-carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.challenge-carousel-heading { margin-bottom: 10px; }
.challenge-carousel-heading strong { display: block; font-size: .85rem; }
.challenge-carousel-heading > div > span { display: block; font-size: .7rem; color: var(--color-text-secondary); margin-top: 3px; }
.challenge-carousel-controls { flex-shrink: 0; font-size: .75rem; font-variant-numeric: tabular-nums; }
.challenge-carousel-controls button { min-width: 44px; min-height: 44px; border: 1px solid var(--challenge-line); border-radius: 0; background: var(--color-bg-paper); color: var(--color-text-primary); font: inherit; font-size: 1rem; cursor: pointer; }
.challenge-carousel-controls button:disabled { opacity: .35; cursor: default; }
.challenge-carousel-controls button[hidden] { display: none; }
.challenge-slip-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 24px) / 3); align-items: start; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--challenge-highlight) transparent; padding-bottom: 10px; overflow-anchor: none; }
.challenge-slip-card { min-width: 0; padding: 12px; border: 1px solid var(--challenge-line); background: var(--color-bg-paper); scroll-snap-align: start; scroll-margin-inline: 0; }
.challenge-slip-card--current { border-top: 3px solid #e1c539; padding-top: 10px; }
.challenge-slip-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.challenge-slip-heading h3 { font-size: .9rem; margin: 0; }
.challenge-slip-result { font-size: .65rem; font-weight: 700; padding: 3px 6px; border: 1px solid var(--color-divider); }
.challenge-slip-result--W { color: var(--color-success); border-color: var(--color-success); }
.challenge-slip-result--L { color: var(--color-error); border-color: var(--color-error); }
.challenge-slip-result--P { background: #ffee58; border-color: #ffee58; color: #29260a; }
.challenge-slip-facts { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px 10px; padding: 10px 0; font-size: .68rem; color: var(--color-text-secondary); }
.challenge-slip-facts strong { color: var(--color-text-primary); margin-left: 3px; }
.challenge-slip-tip { padding: 10px 0; border-top: 1px solid var(--color-divider); font-size: .75rem; overflow-wrap: anywhere; }
.challenge-tip-teams { font-weight: 600; line-height: 1.5; }
.challenge-tip-teams > span { font-size: .65rem; color: var(--color-text-secondary); font-weight: 400; margin: 0 2px; }
.challenge-tip-pick { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 5px; font-size: .7rem; color: var(--color-text-secondary); }
.challenge-tip-pick strong { color: var(--color-text-primary); font-variant-numeric: tabular-nums; }
.challenge-tip-result { margin-left: auto; }
.challenge-slip-more summary { min-height: 44px; display: flex; align-items: center; border-top: 1px solid var(--color-divider); font-size: .72rem; font-weight: 600; cursor: pointer; list-style: none; }
.challenge-slip-more summary::-webkit-details-marker { display: none; }
.challenge-expand-label, .challenge-collapse-label { justify-content: space-between; align-items: center; width: 100%; }
.challenge-expand-label { display: flex; }
.challenge-collapse-label { display: none; }
.challenge-slip-more[open] > summary .challenge-expand-label { display: none; }
.challenge-slip-more[open] > summary .challenge-collapse-label { display: flex; }
.challenge-slip-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; border-top: 1px solid var(--color-divider); padding-top: 8px; font-size: .68rem; color: var(--color-text-secondary); }
.challenge-slip-footer a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-text-primary); font-weight: 600; white-space: nowrap; }
@media (max-width: 960px) { .challenge-slip-track { grid-auto-columns: calc((100% - 12px) / 2); } }
@media (max-width: 640px) {
  .challenge-card { padding: 14px; }
  .challenge-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
  .challenge-step { align-items: flex-start; flex-direction: column; }
  .challenge-plan-links, .challenge-plan-links a { width: 100%; }
  .challenge-plan-links a { text-align: center; }
  .challenge-slip-track { grid-auto-columns: calc(100% - 26px); }
  .challenge-carousel-heading { align-items: flex-end; }
  .challenge-carousel-controls { gap: 6px; }
  .challenge-carousel-controls button { min-width: 44px; }
}
