/* 이벤트·챌린지 */
.challenge-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.challenge-card { display: flex; gap: var(--sp-3); align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); color: inherit; text-decoration: none; }
.challenge-img { flex: none; display: grid; place-items: center; width: 84px; height: 84px; border-radius: var(--radius); overflow: hidden; background: var(--brand-soft); color: var(--brand-text); }
.challenge-img img { width: 100%; height: 100%; object-fit: cover; }
.challenge-img .icon { width: 30px; height: 30px; }
.challenge-main { display: grid; gap: 4px; min-width: 0; }
.challenge-main .muted { font-size: var(--fs-xs); }
.challenge-state { justify-self: start; padding: 2px 8px; border-radius: 6px; font-size: var(--fs-xs); font-weight: 800; background: var(--surface-2); color: var(--text-sub); }
.challenge-state.state-ongoing { background: var(--brand); color: var(--on-brand); }
.challenge-state.state-soon { background: var(--brand-soft); color: var(--brand-text); }
.challenge-head h1 { margin: var(--sp-2) 0 4px; }
.challenge-desc { white-space: pre-wrap; line-height: 1.65; }
.challenge-head .btn-block { margin-block-start: var(--sp-3); }
.challenge-head .small { font-size: var(--fs-xs); margin: 6px 0 0; }
.challenge-form { margin-block-end: var(--sp-4); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.badge.solved { background: #E3F0E4; color: var(--ok); }
