/* Maps semantic course blocks to the existing DESIGN.md roles. */
.atoms-app .ccv3 { font-family:var(--font-ui); color:#272722; font-size:16px; line-height:28px; overflow-wrap:anywhere; }
.atoms-app .ccv3 p { margin:0; font-size:16px; line-height:28px; }
.atoms-app .ccv3-block { margin:24px 0; }
.atoms-app .ccv3-kind-heading { margin-top:32px; margin-bottom:16px; }
.atoms-app .ccv3 h2 { margin:0; font:600 20px/28px var(--font-ui); letter-spacing:0; }
.atoms-app .ccv3 h3 { margin:0; font:600 16px/24px var(--font-ui); letter-spacing:0; }
.atoms-app .ccv3-format-label { display:block; margin-bottom:8px; color:#706d65; font:400 12px/18px var(--font-ui); }
.atoms-app .ccv3[data-annotated="false"] .ccv3-format-label { display:none; }
.atoms-app .ccv3-toolbar { padding-bottom:16px; border:0; }
.atoms-app .ccv3-toolbar p { font-size:14px; line-height:22px; color:#706d65; }
.atoms-app .ccv3-toolbar button { margin-top:8px; padding:10px 14px; min-height:44px; border:1px solid #e1ded6; border-radius:12px; background:#fffdf9; color:#272722; font:500 14px/20px var(--font-ui); }
.atoms-app .ccv3 ul,.atoms-app .ccv3 ol { margin:0; padding-left:24px; }
.atoms-app .ccv3 li { padding-left:4px; margin:8px 0; }
.atoms-app .ccv3 strong { font-weight:600; }
.atoms-app .ccv3 mark { color:inherit; background:#fff0d9; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.atoms-app .ccv3 code { font-size:14px; background:#eae8e5; padding:1px 4px; border-radius:4px; }
.atoms-app .ccv3-quote { margin:0; padding:0 0 0 16px; border-left:1px solid #706d65; }
.atoms-app .ccv3 blockquote { margin:0; font-style:normal; }
.atoms-app .ccv3 figcaption,.atoms-app .ccv3 small { display:block; margin-top:8px; font:400 12px/18px var(--font-ui); color:#706d65; }
.atoms-app .ccv3-callout { padding:16px; border-radius:12px; background:#eae8e5; }
.atoms-app .ccv3-callout > strong { display:block; font-size:14px; line-height:22px; margin-bottom:8px; }
.atoms-app .ccv3-callout.takeaway { background:#f7edf0; }
.atoms-app .ccv3-callout.trigger { background:#eef2ea; }
.atoms-app .ccv3-callout.caution { background:#fff0d9; }
.atoms-app .ccv3-table { max-width:100%; }
.atoms-app .ccv3 table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:14px; line-height:22px; }
.atoms-app .ccv3 caption { text-align:left; margin-bottom:8px; font-size:14px; font-weight:500; }
.atoms-app .ccv3 th,.atoms-app .ccv3 td { padding:10px 8px; text-align:left; vertical-align:top; border-bottom:1px solid #e1ded6; overflow-wrap:anywhere; }
.atoms-app .ccv3 th { background:#eae8e5; font-weight:500; }
.atoms-app .ccv3 hr { border:0; border-top:1px solid #e1ded6; margin:0; }
.atoms-app .ccv3 details { border:0; padding-bottom:8px; }
.atoms-app .ccv3 summary { min-height:44px; padding:12px 0; cursor:pointer; font-size:14px; line-height:22px; }
.atoms-app .ccv3 details p { font-size:14px; line-height:22px; padding-bottom:8px; }
.atoms-app .ccv3-media { margin:0; }
.atoms-app .ccv3-media :is(img,video) { display:block; width:100%; height:auto; border-radius:12px; }
.atoms-app .ccv3-media video { aspect-ratio:16/9; background:#272722; }
.atoms-app .ccv3-media audio { width:100%; display:block; }
.atoms-app .ccv3-media figcaption strong,.atoms-app .ccv3-media figcaption span { display:block; }
.atoms-app .ccv3-media figcaption strong { color:#272722; margin-bottom:4px; }
.atoms-app .ccv3-media-missing { padding:16px; border:1px dashed #e1ded6; border-radius:12px; }
.atoms-app .ccv3-media-missing strong { font-size:14px; line-height:22px; }
.atoms-app .ccv3-media-missing p,.atoms-app .ccv3-media-error { font-size:14px; line-height:22px; color:#706d65; margin-top:8px; }
.atoms-app .ccv3 details.ccv3-reference { padding:0; border:0; }.atoms-app .ccv3-reference summary{font-weight:600}.atoms-app .ccv3-reference summary span{float:right;font-weight:400;color:#706d65}
.atoms-app .ccv3-reference ul { list-style:none; padding:0; }
.atoms-app .ccv3-reference li { margin:16px 0 0; padding:0; }
.atoms-app .ccv3-reference li > strong { display:block; font-size:14px; line-height:22px; font-weight:500; }
.atoms-app .ccv3-reference li > span,.atoms-app .ccv3-reference li > p { display:block; font-size:12px; line-height:18px; color:#706d65; margin-top:4px; }
.atoms-app .ccv3 a { color:#272722; text-decoration:underline; text-underline-offset:3px; }
.atoms-app .ccv3 fieldset { min-width:0; margin:0; padding:0; border:0; }
.atoms-app .ccv3 legend { padding:0; margin-bottom:16px; font-size:16px; line-height:28px; font-weight:500; }
.atoms-app .ccv3 h3.ccv3-quiz-title { margin:0 0 16px; }
.atoms-app .ccv3-quiz button { display:flex; align-items:flex-start; gap:12px; width:100%; padding:12px; margin-bottom:8px; border:1px solid #e1ded6; border-radius:12px; background:#fffdf9; color:#272722; text-align:left; min-height:44px; font:400 14px/22px var(--font-ui); }
.atoms-app .ccv3-quiz button[aria-pressed="true"] { background:#252522; color:#fffdf9; border-color:#252522; }
.atoms-app .ccv3 [data-ccv3-feedback] { margin-top:16px; padding:16px; background:#eef2ea; border-radius:12px; font-size:14px; line-height:22px; }
.atoms-app .ccv3-checklist label { display:flex; gap:12px; align-items:flex-start; min-height:44px; padding:10px 0; }
.atoms-app .ccv3-checklist input { width:20px; height:20px; margin:4px 0 0; flex-shrink:0; accent-color:#252522; }
.atoms-app .ccv3-reflection { display:block; font-size:16px; line-height:28px; }
.atoms-app .ccv3 textarea { display:block; margin-top:12px; width:100%; padding:12px; min-height:112px; resize:vertical; background:#fffdf9; color:#272722; border:1px solid #e1ded6; border-radius:12px; font:400 16px/28px var(--font-ui); caret-color:#d70050; }
.atoms-app .ccv3 textarea::placeholder { color:#706d65; }
.atoms-app .ccv3 :is(button,input,textarea,summary,a):focus-visible { outline:2px solid #272722; outline-offset:3px; }
.atoms-app .ccv3 ::selection { background:#fff0d9; color:#272722; }
.atoms-app .ccv3-storage-status:empty { display:none; }
.atoms-app .task-detail-heading.immersive-course-heading #task-detail-title { font:600 24px/34px var(--font-ui); max-width:none; width:100%; }
@media (hover:hover) { .atoms-app .ccv3 button:hover { filter:brightness(.96); } }

/* Shared lesson heading and listening controls. */
.atoms-app .course-cover-meta { position:relative; z-index:1; display:flex; align-items:baseline; justify-content:space-between; gap:12px; width:100%; }
.atoms-app .course-cover-meta .breathing-task-time { flex:1; min-width:0; font:500 12px/18px var(--font-ui); }
.atoms-app .course-day { flex:none; color:#fff; font:500 14px/20px var(--font-ui); font-variant-numeric:tabular-nums; }
.atoms-app .task-detail-heading.has-cover.breathing-day-one-heading { padding-right:20px; }
.atoms-app .schedule-content-label { flex-wrap:wrap; gap:8px 12px; }
.atoms-app .course-label-title { display:flex; align-items:center; gap:4px; min-width:0; }
.atoms-app .course-listen { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:#272722; cursor:pointer; }
.atoms-app .course-listen svg { width:20px; height:20px; }
.atoms-app .course-listen[aria-pressed="true"] { background:#252522; color:#fff; }
.atoms-app [data-course-duration] { font:400 12px/18px var(--font-ui); color:#706d65; white-space:normal; }
.atoms-app .course-listen-status { font:400 12px/18px var(--font-ui); color:#706d65; }
.atoms-app .course-listen-status:empty { display:none; }
.atoms-app .course-listen:focus-visible { outline:2px solid #272722; outline-offset:2px; }

/* Different media and interactions are siblings, not one enclosing lesson card. */
.atoms-app .task-detail-surface.has-cover-heading .curated-task-content .atoms-course-content .schedule-content-module.detail-module.course-separated { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.atoms-app .course-separated > .schedule-content-label { padding:0 4px 16px; border:0; margin-bottom:0; }
.atoms-app .ccv3-module { padding:20px; margin:0 0 16px; border:1px solid #e1ded6; border-radius:20px; background:#fff; }
.atoms-app .ccv3-module > .ccv3-block:first-child { margin-top:0; }
.atoms-app .ccv3-module > .ccv3-block:last-child { margin-bottom:0; }
.atoms-app .ccv3-text-module .ccv3-kind-heading:has(h3) { padding-top:8px; margin-top:32px; margin-bottom:16px; }
.atoms-app .ccv3-toolbar { margin-bottom:20px; }
.atoms-app .ccv3-module-poster { padding:36px 24px; background:#f2eee5; border:0; }
.atoms-app .ccv3-quote-poster { border:0; padding:0; text-align:center; }
.atoms-app .ccv3-quote-poster blockquote { white-space:pre-line; text-wrap:balance; font:400 24px/40px 'Songti SC','STSong','SimSun',serif; color:#272722; }
.atoms-app .ccv3-quote-poster figcaption { margin-top:24px; font:400 12px/18px var(--font-ui); }

.atoms-app .ccv3-text-module > .ccv3-kind-divider:first-child,.atoms-app .ccv3-text-module > .ccv3-kind-divider:last-child { display:none; }
.atoms-app .course-completion-list { position:absolute; bottom:calc(100% + 12px); left:18px; right:18px; padding:20px; border:1px solid #e1ded6; border-radius:20px; background:#fffdf9; color:#272722; box-shadow:0 8px 24px #27272218; animation:course-todo-rise .2s ease-out; }
.atoms-app .course-completion-list strong{font:600 16px/24px var(--font-ui)}
.atoms-app .course-completion-list ul{list-style:none;padding:0;margin:12px 0 0}
.atoms-app .course-completion-list li{display:flex;gap:10px;align-items:flex-start;margin-top:10px;font:400 14px/22px var(--font-ui)}
.atoms-app .course-completion-list li span{flex:0 0 20px;height:20px;border:1px solid #a6aaa1;border-radius:6px;text-align:center;line-height:18px}
.atoms-app .course-completion-list li.checked span{background:#252522;color:#fff;border-color:#252522}
.course-confetti{position:fixed;inset:0;z-index:10000;pointer-events:none;overflow:hidden}
.course-confetti i{position:absolute;left:var(--x);top:-24px;width:7px;height:12px;border-radius:2px;animation:course-confetti-fall 1.65s var(--delay) ease-in both}
@keyframes course-confetti-fall{to{transform:translateY(100vh) rotate(var(--turn));opacity:0}}
@keyframes course-todo-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.atoms-app .course-completion-list{animation:none}.course-confetti{display:none}}
