.challenges-panel { box-sizing: border-box; max-width: 640px; margin: 0 auto; color: #173d34; font-family: Pretendard, Arial, sans-serif; }
.challenges-panel *, .challenges-panel *::before, .challenges-panel *::after { box-sizing: border-box; }
.challenges-panel h2, .challenges-panel h3, .challenges-panel p { margin: 0; }
.challenges-head { padding: 5px 4px 13px; }.challenges-head p { color: #13946a; font-size: 12px; font-weight: 750; }.challenges-head h2 { margin-top: 3px; font-size: 25px; }
.challenges-nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 4px; border-radius: 14px; background: rgba(235,248,241,.9); }.challenges-nav button, .challenge-filters button { min-height: 36px; border: 0; border-radius: 10px; color: #527067; background: transparent; font: inherit; font-size: 12px; cursor: pointer; }.challenges-nav button.selected, .challenge-filters button.selected { color: #087b53; background: #fff; font-weight: 750; box-shadow: 0 2px 7px rgba(24,104,76,.12); }
.challenges-body { margin-top: 12px; }.challenges-copy, .challenges-muted { color: #5b766d; font-size: 13px; line-height: 1.5; }.challenge-recommendations, .challenge-catalog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
.challenge-mini { min-width: 0; min-height: 93px; padding: 11px 9px; border: 1px solid #cce8dc; border-radius: 15px; color: #365d50; background: rgba(255,255,255,.82); text-align: left; cursor: pointer; }.challenge-mini span, .challenge-mini small { display: block; overflow: hidden; color: #6a877c; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.challenge-mini strong { display: block; overflow: hidden; margin: 5px 0 7px; color: #1d5143; font-size: 13px; line-height: 1.25; text-overflow: ellipsis; }.challenge-mini.selected { border-color: #16a371; background: #e9faef; box-shadow: inset 0 0 0 1px #16a371; }
.challenge-detail, .challenge-active, .challenge-programs article, .challenge-import, .challenge-history article, .challenge-confirm { margin-top: 12px; padding: 16px; border: 1px solid rgba(39,137,104,.18); border-radius: 20px; background: rgba(255,255,255,.88); box-shadow: 0 10px 26px rgba(20,93,69,.08); }.challenge-detail-top { display: flex; gap: 12px; }.challenge-detail-top img { width: 91px; height: 102px; flex: 0 0 auto; object-fit: contain; }.challenge-detail-top > div { min-width: 0; }.challenge-detail-top p, .challenge-meta, .challenge-active p, .challenge-programs p, .challenge-import p, .challenge-history p, .challenge-confirm p { color: #5b766d; font-size: 12px; line-height: 1.5; }.challenge-detail h3, .challenge-active h3, .challenge-programs h3, .challenge-import h3, .challenge-history h3, .challenge-confirm h3 { margin: 3px 0 5px; font-size: 17px; }.challenge-meta { margin-top: 8px !important; }.challenge-steps { margin: 12px 0; padding-left: 19px; color: #365d50; font-size: 13px; line-height: 1.65; }
.challenge-record { margin-top: 13px; }.challenge-record fieldset { margin: 0; padding: 0; border: 0; }.challenge-record legend { margin-bottom: 9px; color: #254f43; font-size: 14px; font-weight: 750; }.challenge-choice { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }.challenge-choice label, .challenge-moods label { position: relative; display: grid; min-height: 42px; place-items: center; border: 1px solid #cce8dc; border-radius: 12px; color: #41645a; font-size: 12px; cursor: pointer; }.challenge-choice input, .challenge-moods input { position: absolute; opacity: 0; }.challenge-choice label:has(input:checked), .challenge-moods label:has(input:checked) { border-color: #14a36f; background: #e7f8ef; color: #087b53; font-weight: 750; box-shadow: inset 0 0 0 1px #14a36f; }.challenge-moods { display: grid; grid-template-columns: repeat(5,1fr); gap: 6px; margin-top: 8px; }.challenge-moods label { min-height: 47px; font-size: 16px; }.challenge-moods span { display: block; font-size: 8px; }
.challenges-primary { width: 100%; min-height: 45px; margin-top: 12px; border: 0; border-radius: 13px; background: #149c6a; color: #fff; font: inherit; font-size: 14px; font-weight: 750; cursor: pointer; box-shadow: 0 7px 14px rgba(9,129,85,.2); }.challenges-primary:disabled { cursor: not-allowed; opacity: .56; }.challenges-secondary { width: 100%; min-height: 38px; margin-top: 8px; border: 1px solid #9bcfb9; border-radius: 12px; background: #f1fff7; color: #0d8058; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }.challenges-error { margin-top: 9px !important; color: #c64040; font-size: 12px; line-height: 1.45; }.challenges-loading { padding: 28px 12px; color: #5b766d; text-align: center; }
.challenge-filters { display: flex; gap: 5px; overflow-x: auto; padding-bottom: 4px; }.challenge-filters button { flex: 0 0 auto; padding: 0 11px; border: 1px solid #d5e9df; background: #fff; }.challenge-catalog { grid-template-columns: repeat(2,1fr); }.challenge-active { border-color: #8fcfb6; background: #f0fff7; }.challenge-active strong { display: block; margin: 10px 0; color: #0c9562; font-size: 19px; }.challenge-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; }.challenge-days span { display: grid; min-height: 31px; place-items: center; border-radius: 9px; background: #dceee6; color: #658278; font-size: 10px; }.challenge-days span.done { background: #17a470; color: #fff; font-weight: 750; }.challenge-programs { display: grid; gap: 9px; }.challenge-programs article { margin-top: 9px; }.challenge-programs article > p:first-child { color: #149c6a; font-weight: 700; }.challenge-confirm { border-color: #6dbf9d; background: #f0fff7; }.challenge-confirm label, .challenge-import label { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; color: #355a4f; font-size: 12px; line-height: 1.4; }.challenge-confirm input, .challenge-import input { width: 16px; height: 16px; margin: 0; accent-color: #149c6a; }.challenge-history { display: grid; gap: 9px; }.challenge-history article { margin-top: 0; }.challenge-history ul { margin: 8px 0 0; padding-left: 17px; color: #496b60; font-size: 12px; line-height: 1.65; }
.challenge-days span.rested { background: #eaf1ed; color: #779087; }.challenge-slots { margin-top: 12px; padding: 12px; border-radius: 15px; background: #f0f9f4; }.challenge-slots p { margin-bottom: 7px; color: #527067; font-size: 12px; }.challenge-slots button { margin: 3px 4px 3px 0; padding: 7px 8px; border: 1px solid #cce8dc; border-radius: 9px; background: #fff; color: #41645a; font: inherit; font-size: 11px; cursor: pointer; }.challenge-slots button.selected { border-color: #14a36f; background: #e7f8ef; color: #087b53; font-weight: 750; }.challenge-slots button:disabled { cursor: not-allowed; opacity: .5; }
.challenges-panel :focus-visible, .challenge-choice label:focus-within, .challenge-moods label:focus-within { outline: 2px solid #087b53; outline-offset: 3px; }
@media (max-width: 360px) { .challenges-head h2 { font-size: 22px; }.challenge-recommendations { gap: 5px; }.challenge-mini { min-height: 88px; padding: 9px 7px; }.challenge-mini strong { font-size: 12px; }.challenge-detail, .challenge-active, .challenge-programs article, .challenge-import, .challenge-history article, .challenge-confirm { padding: 13px; }.challenge-detail-top img { width: 72px; }.challenge-choice { gap: 5px; }.challenge-choice label { font-size: 11px; }.challenge-moods { gap: 4px; } }
/* Character-led program interview and readable practice flow. */
.habit-interview,.program-feature{margin-top:20px;padding:24px 20px;border:1px solid #dce8e1;border-radius:26px;background:white}.habit-interview>p,.program-feature>p{font-size:16px;line-height:1.65;color:#52665d;margin:14px 0}.habit-interview h3,.program-feature h3{font-size:25px;line-height:1.45;color:#20232b}.interview-coach{display:block;width:180px;height:190px;object-fit:contain;margin:0 auto 18px}.habit-answers{display:grid;gap:12px;margin-top:24px}.habit-answers button{font:inherit;font-size:17px;font-weight:650;text-align:left;padding:17px 14px;border:1px solid #d5e7dd;border-radius:16px;color:#203b30;background:#f9fcfa;display:flex;justify-content:space-between;gap:8px;cursor:pointer}.habit-answers button:hover{background:#eaf8ef}.program-art{display:flex;justify-content:center;background:radial-gradient(ellipse,#eaf8ed,transparent 70%);margin-bottom:18px}.program-art img{width:280px;max-width:100%;height:260px;object-fit:contain}.program-answer{color:#00835d!important;font-weight:700}.program-progress{display:block;font-size:23px;color:#00835d;margin:18px 0}.program-feature .challenge-days span{font-size:13px;min-height:38px}.program-rules,.mission-instructions{margin-top:22px;padding:16px 0;border-top:1px solid #e2ebe6;color:#4c6156;font-size:15px;line-height:1.7}.program-rules summary,.mission-instructions summary{cursor:pointer;font-weight:650}.program-rules p{margin-top:12px}.challenges-panel .challenges-primary{font-size:17px;min-height:54px;margin-top:20px}.challenges-panel .challenges-secondary{font-size:15px;min-height:46px}.challenges-panel .challenge-detail{padding:24px 20px;border-radius:26px}.challenges-panel .challenge-detail-top{display:flex;flex-direction:column;align-items:center;text-align:left}.challenges-panel .challenge-detail-top>div{width:100%}.challenges-panel .challenge-detail-top img{width:260px;max-width:100%;height:260px;object-fit:contain}.challenges-panel .challenge-detail h3{font-size:26px;line-height:1.4;margin:10px 0}.challenges-panel .challenge-detail-top p{font-size:16px;line-height:1.7}.challenge-record{padding-top:22px;margin-top:24px;border-top:1px solid #e2ebe6}.challenges-panel .challenge-record legend{font-size:18px;margin-bottom:14px}.challenges-panel .challenge-choice label{font-size:15px;min-height:52px;padding:6px}.challenges-panel .condition-question{margin-top:24px}.challenges-panel .challenge-moods{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.challenges-panel .challenge-moods label{min-height:86px;gap:6px;padding:10px 4px}.challenges-panel .challenge-moods span{font-size:14px}.challenges-panel .challenge-moods .condition-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:34px;line-height:1.2}.challenges-panel .challenge-steps{font-size:16px;line-height:1.8}.mission-supplies h4{font-size:16px;margin:22px 0 12px}.mission-supplies>div{display:flex;flex-wrap:wrap;gap:12px}.mission-supplies span{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:16px;background:#eef8f1;color:#087857;font-size:16px}.mission-supplies svg,.water-story svg{width:40px;height:40px;flex-shrink:0;color:#00835d}.water-story{display:grid;gap:12px;margin:22px 0}.water-story>div{display:grid;grid-template-columns:48px 1fr;gap:4px 12px;border:1px solid #dfebe4;border-radius:16px;padding:16px}.water-story svg{grid-row:span 2}.water-story b{font-size:17px}.water-story p{font-size:15px;line-height:1.6}.challenges-panel .challenges-nav button{font-size:16px;min-height:46px}.mission-expanded .challenge-detail-top img{display:none}
.program-art{background:#fff;border-radius:20px;overflow:hidden;margin:16px 0 22px}.program-art img{width:100%;max-width:360px;height:auto;aspect-ratio:1;object-fit:contain}
/* Today uses one readable decision per card; the selected practice carries the detail. */
.route-today .account-heading-compact + [data-challenges-root],.route-today .account-heading-compact ~ [data-challenges-root]{margin-top:32px}.route-today .challenges-head-today{padding:0 4px 4px}.route-today .challenges-head-today h2{font-size:28px;line-height:1.3}.route-today .challenges-body{margin-top:16px}.route-today .today-selector{padding-bottom:24px;border-bottom:1px solid #e2ebe6}.route-today .today-selector .challenges-copy{font-size:15px;line-height:1.65}.route-today .challenge-recommendations{gap:10px;margin-top:14px}.route-today .challenge-mini{display:grid;min-height:84px;padding:10px 8px;place-items:center;border-radius:16px;text-align:center}.route-today .challenge-mini strong{display:block;overflow:visible;margin:0;color:#173d34;font-size:16px;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere}.route-today .challenge-detail{margin-top:28px}.route-today .challenge-detail-top{padding-bottom:4px}.route-today .mission-instructions{margin-top:26px}.route-today .challenge-record{margin-top:28px}.route-today .challenges-secondary{margin-top:24px}.mission-interest-note{margin-top:8px!important;color:#5b766d;font-size:12px;line-height:1.5}@media (min-width:431px){.route-today .account-heading-compact + [data-challenges-root],.route-today .account-heading-compact ~ [data-challenges-root]{margin-top:40px}}@media (max-width:360px){.route-today .challenge-recommendations{gap:6px}.route-today .challenge-mini{min-height:78px;padding:8px 5px}.route-today .challenge-mini strong{font-size:14px}.route-today .challenges-head-today h2{font-size:25px}}
