:root {
 --study-primary:#2b7f10;
 --study-action:#58cc02;
 --study-action-hover:#52be04;
 --study-action-depth:#399e05;
 --study-action-ink:#162900;
 --study-wash:#f7faf5;
 --study-tint:#eaf5e5;
 --study-track:#d6e8cf;
 --study-border:#d8e5d6;
 --study-ink:#192e23;
 --study-muted:#4e6255;
 --study-focus:#3b821e;
}
.study-flow {
 display:flex;
 flex-direction:column;
 min-height:100dvh;
 padding:0;
 background:var(--study-wash);
 color:var(--study-ink);
}
.study-header {padding:12px 18px 8px}
.study-header-row {display:flex;align-items:center;gap:12px}
.study-lesson-header .study-header-row {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px}
.study-lesson-header .study-back {justify-self:start}
.study-lesson-header .study-link {justify-self:end;white-space:nowrap}
.study-index {text-align:center;color:var(--study-muted);font-size:14px;font-variant-numeric:tabular-nums}
.study-back {display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 10px;background:#fff;color:var(--study-primary);border-color:var(--study-border);font-size:14px}
.study-back img {width:18px;height:18px}
.study-steps {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:11px 0 0;padding:0;list-style:none}
.study-steps li {border-top:4px solid var(--study-track);border-radius:4px 4px 0 0;padding:7px 0 3px;color:var(--study-muted);text-align:center;font-size:13px}
.study-steps .current {color:var(--study-primary);font-weight:750}
.study-steps .current {border-color:var(--study-action)}
.study-steps .done {border-color:#91ca75}
.study-speaker {
 display:inline-grid;
 place-items:center;
 width:44px;
 height:44px;
 min-width:44px;
 padding:0;
 border:0;
 border-radius:50%;
 background:var(--study-tint);
 color:#216817;
 font-size:26px;
}
.study-speaker img {width:21px;height:21px}
.study-body {flex:1;padding:12px 18px 20px;min-width:0}
.study-body>h1 {font-size:26px;margin:4px 0 8px}
.study-body>p {line-height:1.55}
.study-word-line {display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:7px}
.study-word-line h1 {grid-column:2;text-align:center;overflow-wrap:anywhere}
.study-flow .display-word {font-size:clamp(37px,11vw,48px);margin:4px 0 10px;line-height:1.14}
.study-flow .display-word.long {font-size:clamp(30px,8.6vw,40px)}
.study-flow .display-word .consonant {color:#0066ff}
.study-flow .display-word .vowel {color:#f26300}
.study-meaning {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;text-align:center;gap:3px 10px;font-size:19px;font-weight:700;margin:0 0 17px}
.study-meaning span {color:var(--study-muted);font-weight:500;font-size:16px}
.study-card {background:white;border:1px solid var(--study-border);border-radius:19px;padding:13px;margin-bottom:12px}
.study-card h2 {font-size:15px;margin:0 0 9px}
.study-card-heading {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:3px 10px;margin-bottom:9px}
.study-card-heading h2 {margin:0}
.study-card-heading span {color:var(--study-muted);font-size:12px}
.study-picture {padding:0;overflow:hidden}
.study-picture>img {display:block;width:100%;max-height:255px;object-fit:contain;background:#eef4fb}
.study-example {display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px}
.study-example p,.study-overview p {margin:5px 0 0;color:var(--study-muted);font-size:14px}
.study-chunks,.study-tiles,.study-feedback-phones {display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.study-chunk {min-height:50px;min-width:52px;padding:7px 10px;border:1px solid var(--study-border);border-radius:12px;background:white}
.study-chunk strong,.study-chunk small {display:block}
.study-chunk small {font-size:11px;color:var(--study-muted)}
.study-chunk[aria-pressed=true] {background:var(--study-tint);border-color:var(--study-primary);outline:1px solid var(--study-primary)}
.study-morphology {display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:9px 0}
.study-morphology span {font-size:14px;color:var(--study-muted)}
.study-morphology small {font-size:12px;color:var(--study-muted);font-weight:700}
.study-morphology button {display:inline-flex;align-items:center;gap:5px;padding:5px 9px}
.study-morphology img {width:16px;height:16px}
.study-tiles .phonics-tile {min-width:46px;min-height:67px;flex:1 1 46px;max-width:106px;padding:6px}
.study-tiles .phonics-tile:disabled {opacity:1}
.study-tiles .phonics-tile.has-exception {background:#ffe3ee;border:2px dashed #a3225e}
.study-tiles .has-exception strong span {color:#a3225e}
.study-note {padding:10px 12px;background:var(--study-tint);border-radius:12px;line-height:1.45;font-size:14px;margin:9px 0}
.study-note.success,.study-feedback-phones .clear {background:#ddf3e6;color:#14673e}
.study-note.needs-work,.study-feedback-phones .weak {background:#ffe4dc;color:#8f2d14}
.study-practice-actions {display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.study-practice-actions button {display:inline-flex;align-items:center;justify-content:center;gap:6px}
.study-practice-actions img {width:18px;height:18px}
.study-speaking {text-align:center;padding:22px 14px}
.study-speaking h2 {font-size:18px;margin:6px 0}
.practice-instruction {font-size:14px;color:var(--study-muted);margin:0}
.study-writing {margin-top:10px}
.study-feedback-phones {justify-content:center}
.study-feedback-phones span {border-radius:7px;padding:6px;font-size:13px}
.study-stars {display:inline-block;color:#b87708;font-size:23px;letter-spacing:2px}
.study-stars i {font-style:normal;color:#896c37}
.study-speaking .study-stars {font-size:42px;letter-spacing:4px}
#practice-status {min-height:22px;font-size:13px;color:var(--study-muted);margin:9px 0}
.study-write-meaning {font-size:24px;line-height:1.35}
#study-ink-result {text-align:center}
#study-ink {
 display:block;
 width:100%;
 height:auto;
 touch-action:none;
 cursor:crosshair;
 border:1px solid var(--study-border);
 border-radius:16px;
 background:linear-gradient(to bottom,transparent 27%,#badbb2 27%,#badbb2 28%,transparent 28%,
  transparent 44%,#d1e5cd 44%,#d1e5cd 45%,transparent 45%,transparent 61%,#83b577 61%,#83b577 62%,
  transparent 62%,transparent 78%,#badbb2 78%,#badbb2 79%,transparent 79%),white;
}
.study-footer {
 position:sticky;
 bottom:0;
 display:grid;
 gap:3px;
 z-index:2;
 padding:12px 18px max(14px,env(safe-area-inset-bottom));
 background:#fff;
 border-top:1px solid var(--study-border);
}
.study-flow .study-primary,.study-flow .study-accent {
 min-height:52px;
 border:1px solid;
 border-radius:15px;
 font-size:17px;
 font-weight:750;
}
@media (hover:hover) {
 .study-flow .study-link:hover,.study-flow .study-outline:hover,.study-flow .study-back:hover,.my-lists .study-outline:hover {background:var(--study-tint)}
}
.study-flow .study-link {min-height:44px;padding:5px 7px;border:0;background:transparent;color:var(--study-primary);font-weight:700}
.study-flow .study-outline,.my-lists .study-outline {min-height:44px;border:1px solid var(--study-border);border-radius:12px;background:white;color:var(--study-primary);font-weight:700}
.study-flow .study-accent {min-height:44px;font-size:15px;padding:7px 15px}
.study-flow .study-accent img {filter:brightness(0)}
.study-flow :focus-visible {outline-color:var(--study-focus)}
.study-footer-hint {margin:0 0 5px;color:var(--study-muted);font-size:13px;text-align:center}
.is-split .study-chunk-picker {margin-bottom:16px}
.is-split .study-chunks {display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:7px}
.is-split .study-chunk {
 position:relative;min-width:0;min-height:72px;padding:6px 6px 5px;
 border:2px solid #e1e3e4;border-bottom-width:4px;border-radius:14px;background:#fff;overflow-wrap:anywhere;
}
.is-split .study-chunk strong {color:#006e9f;font-size:clamp(18px,6vw,26px)}
.is-split .study-chunk small {margin-top:3px;font-size:12px}
.is-split .study-chunk img {width:17px;height:17px;margin-left:4px;vertical-align:middle}
.is-split .study-chunk[aria-pressed=true] {background:#dcffbd;border-color:#51b90a;outline:0}
.is-split .study-chunk[aria-pressed=true]::after {
 content:'';position:absolute;left:calc(50% - 5px);bottom:-8px;width:10px;height:10px;
 background:#dcffbd;border-right:2px solid #51b90a;border-bottom:2px solid #51b90a;transform:rotate(45deg);
}
.is-split .study-chunk:focus-visible {outline:3px solid var(--study-focus)}
.is-split .study-chunk.playing {background:#dcffbd;border-color:#51b90a;outline:2px solid #319300}
.is-split .study-card {border:2px solid #e2e4e5;border-bottom-width:4px;border-radius:15px;padding:12px;margin-bottom:11px}
.is-split .study-card-heading {margin-bottom:9px}
.is-split .study-tiles .phonics-tile {
 min-width:43px;min-height:76px;flex:1 1 43px;max-width:none;
 border:2px solid var(--tile-edge);border-bottom-width:4px;border-radius:13px;
 background:var(--tile-fill);color:var(--tile-ink);
 --tile-edge:#84d5fa;--tile-fill:#def3fc;--tile-ink:#00628f;
}
.is-split .study-tiles .phonics-tile.vowel {--tile-edge:#f0be87;--tile-fill:#fff0de;--tile-ink:#8e4100}
.is-split .study-tiles .phonics-tile.silent {--tile-edge:#d9dde1;--tile-fill:#f1f3f5;--tile-ink:#59636c}
.is-split .study-tiles .phonics-tile.has-exception {--tile-edge:#d096f4;--tile-fill:#f5e7fc;--tile-ink:#6b2399;border-style:dashed}
.is-split .study-tiles .phonics-tile.playing {outline:2px solid #319300;outline-offset:1px}
.is-split .phonics-tile strong {font-size:clamp(21px,6vw,27px)}
.is-split .phonics-tile strong span,.is-split .phonics-tile small {color:var(--tile-ink)}
.is-split .phonics-tile:not(.has-exception) strong .silent {color:#626e78}
.is-split .exception-dot {background:#742b9f}
.is-split .study-note.spelling {background:#f5e6fc;border:2px solid #d49bf5;color:#50216d;font-weight:700}
.study-mnemonic {
 display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;
 margin:11px 0;padding:12px 13px;border:1px solid var(--study-track);border-bottom-width:3px;
 border-radius:15px;background:var(--study-tint);color:var(--study-ink);
}
.study-mnemonic img {display:block;width:20px;height:20px;margin-top:1px}
.study-mnemonic h2 {margin:0 0 3px;color:var(--study-primary);font-size:14px;line-height:1.4}
.study-mnemonic p {margin:0;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
@media (prefers-reduced-motion:no-preference) {
 .study-mnemonic-enter img {animation:mnemonic-light-up 540ms ease-out}
}
@keyframes mnemonic-light-up {
 0%,100% {transform:none;filter:none}
 40% {transform:translateY(-2px) scale(1.15);filter:drop-shadow(0 0 4px #80c95099)}
}
@media (hover:hover) {
 .is-split .study-chunk[aria-pressed=false]:not(.playing):hover {background:#f7fbf4}
}
.overview-intro {display:flex;align-items:center;gap:12px;background:var(--study-tint);border-radius:16px;padding:14px;margin:0 0 17px}
.overview-intro img {width:35px;height:35px}
.overview-intro h1 {font-size:24px;margin:0}
.overview-intro p {font-size:14px;margin:4px 0 0;color:var(--study-muted)}
.study-overview {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.study-overview .study-card {margin:0;text-align:center;overflow-wrap:anywhere}
.study-overview .low-stars {border-color:#d97536}
.grade-list {padding:0 10px}
.grade-instruction {color:var(--study-muted);font-size:14px;margin:0 0 14px}
.grade-progress {display:flex;align-items:center;gap:9px;margin:0 0 14px;padding:9px 11px;background:var(--study-tint);border-radius:10px;font-size:13px}
.grade-progress progress {flex:1;min-width:0;height:7px;border:0;border-radius:12px;overflow:hidden;appearance:none;background:var(--study-track)}
.grade-progress progress::-webkit-progress-bar {background:var(--study-track)}
.grade-progress progress::-webkit-progress-value {background:var(--study-primary)}
.grade-progress progress::-moz-progress-bar {background:var(--study-primary)}
.grade-row {display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 0;border-bottom:1px solid var(--study-border)}
.grade-row:last-child {border-bottom:0}
.grade-word {text-align:center}
.grade-word strong,.grade-word small {display:block;overflow-wrap:anywhere}
.grade-word small {color:var(--study-muted)}
.grade-picks {display:flex;gap:3px}
.grade-pick {min-height:44px;min-width:44px;padding:5px;border:1px solid var(--study-border);border-radius:14px;background:var(--study-wash);font-size:13px}
.grade-pick.right[aria-pressed=true] {background:#1b744b;color:white;border-color:#1b744b}
.grade-pick.wrong[aria-pressed=true] {background:#a6311b;color:white;border-color:#a6311b}
.resume-grade {display:block;min-height:44px;margin:12px auto}
.due-card {display:flex;align-items:center;justify-content:space-between;gap:12px}
.due-card p {font-size:14px;color:var(--study-muted);margin:4px 0}
.my-lists .due-card {margin:0;border:0;border-radius:0}
.my-lists .due-card+.due-card {border-top:1px solid #e1e7ed}
.settlement .study-body {flex:0 auto;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:16px}
.result-hero {
 position:relative;isolation:isolate;overflow:hidden;padding:14px 12px 25px;
 border-radius:22px;background:radial-gradient(ellipse at 50% 0%,#387e1b 0,transparent 80%),#1c581c;
 text-align:center;color:#fff;
}
.result-context {width:fit-content;max-width:100%;margin:auto;padding:3px 9px;border:1px solid #e9ffdb66;border-radius:14px;background:#143b252b;color:#fff;font-size:12px;overflow-wrap:anywhere}
.result-hero h1 {font-size:clamp(24px,7vw,31px);margin:0 0 5px;line-height:1.25}
.result-hero p {font-size:14px;margin:0;color:#f4ffeb}
.settlement-award {position:relative;display:grid;place-items:center;height:106px}
.settlement-medal {
 z-index:1;
 display:grid;
 place-items:center;
 width:68px;
 height:68px;
 border-radius:50%;
 background:#fff7dc;
 border:4px solid #ffe3a1;
 box-shadow:0 0 0 7px #fff4d027,0 6px 15px #123c206b;
 animation:study-award .54s cubic-bezier(.16,.8,.35,1.24) both;
}
.settlement-medal img {width:41px;height:41px;filter:brightness(0) saturate(100%) invert(40%) sepia(52%) saturate(1550%) hue-rotate(4deg) brightness(94%)}
.settlement-award i {
 position:absolute;
 top:50%;
 left:50%;
 width:6px;
 height:8px;
 border-radius:2px;
 background:#ffe28a;
 transform:scaleX(1.55) rotate(var(--angle)) translateY(-45px) rotate(35deg);
 opacity:.72;
 animation:study-confetti .64s var(--delay) ease-out both;
}
.settlement-award i:nth-child(3n) {background:#c5ef86}
.settlement-award i:nth-child(3n + 1) {background:#e2f7d7}
.result-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:relative;margin:-10px 8px 16px;padding:11px 0;background:#fff;border:1px solid var(--study-border);border-radius:15px;box-shadow:0 4px 13px #243d2510;text-align:center;animation:result-rise .42s .13s ease-out both}
.result-metrics div {display:flex;flex-direction:column-reverse;gap:1px;min-width:0}
.result-metrics div+div {border-left:1px solid var(--study-border)}
.result-metrics dt {font-size:13px;color:var(--study-muted)}
.result-metrics dd {font-size:25px;font-weight:800;line-height:1.18;margin:0;font-variant-numeric:tabular-nums}
.result-metrics .right dd {color:#166846}
.result-metrics .wrong dd {color:#963f23}
.result-review {animation:result-rise .40s .25s ease-out both}
.result-review-head,.result-card-head {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 9px}
.result-review-head h2 {font-size:17px;margin:0}
.result-review-head .study-link {font-size:13px}
.settlement-card {padding:11px 12px;margin:0 0 8px;background:white;border:1px solid var(--study-border);border-left:3px solid #6db497;border-radius:13px;min-width:0}
.settlement-card.wrong {border-left-color:#df967c}
.settlement-card h3 {margin:0;font-size:15px}
.settlement-card h3 span {color:var(--study-muted);font-size:12px;font-weight:500;margin-left:3px}
.result-due {padding:4px 8px;border-radius:20px;background:#e2f5e9;color:#165c3c;font-size:12px;font-weight:700}
.settlement-card.wrong .result-due {background:#fff0e9;color:#8f3821}
.result-words {display:flex;flex-wrap:wrap;justify-content:center;gap:4px 7px;list-style:none;margin:7px 0 0;padding:0}
.result-words li {padding:3px 7px;border-radius:5px;background:var(--study-wash);text-align:center;font-size:14px;font-weight:650;overflow-wrap:anywhere;min-width:0}
.settlement-card summary {padding:7px 0 3px;min-height:36px;cursor:pointer;color:var(--study-primary);font-size:13px}
.result-footer {grid-template-columns:minmax(0,1fr);gap:8px;margin-top:auto}
.result-footer.with-retry {grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr)}
.result-footer .study-outline {min-height:52px;border-radius:15px;padding:8px 7px}
.result-footer .study-primary {padding:8px 7px}
.personal-empty {padding:24px 16px;text-align:center;color:#27394d}
.personal-empty img {display:block;width:32px;height:32px;margin:0 auto 6px}
.personal-empty p {margin:4px 0 0}
@keyframes study-award {from{transform:translateY(7px) scale(.54);opacity:0}to{transform:none;opacity:1}}
@keyframes study-confetti {
 from{transform:scaleX(1.55) rotate(var(--angle)) translateY(-12px);opacity:0}
 45%{opacity:1}
 to{transform:scaleX(1.55) rotate(var(--angle)) translateY(-45px) rotate(35deg);opacity:.72}
}
@keyframes result-rise {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce) {
 .study-flow button {transition:none}
 .settlement-medal,.settlement-award i,.result-metrics,.result-review {animation:none}
}

/* Shared mobile surfaces: keep the catalog's green and give each task one main action. */
.my-lists .my-list-tabs {grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:4px;border:1px solid #e3ece1;border-radius:14px;background:#f2f6f1}
.my-list-tabs button {min-width:0;min-height:44px;border-radius:10px;padding:6px 2px;font-size:14px;color:#425448}
.my-list-tabs button.selected {border:0;background:#fff;color:#236819;box-shadow:0 1px 4px #2e5f261d}
.personal-create {gap:9px}
.personal-create .primary .ui-icon,.dictation-bottom .dictation-pause img {filter:brightness(0)}
.unit-list-sheet .unit-summary {border:1px solid #e0eddc}
.unit-list-sheet .unit-selection label {min-height:44px;padding:4px 0}
.unit-list-sheet .unit-word-link {min-height:38px;text-align:center}
.unit-list-sheet .unit-word-row {grid-template-columns:52px minmax(0,1fr) 52px;column-gap:7px;padding-block:10px}
.unit-list-sheet .unit-word-row>div {text-align:center;overflow-wrap:anywhere}
.unit-list-sheet .unit-speaker {justify-self:end}
.unit-list-sheet .word-pending {text-align:center}
.unit-list-sheet .unit-word-row p {margin-top:0}
.dictation-setup-sheet .setup-content {padding-top:10px}
.setup-intro {display:flex;align-items:center;gap:10px;padding:11px 12px;margin:0 0 14px;border-radius:15px;background:#ebf6e7;text-align:left}
.setup-intro .setup-art {width:33px;height:33px;margin:0}
.setup-content .setup-intro h2 {text-align:left;font-size:18px;margin:0}
.setup-intro p {margin:2px 0 0;font-size:13px;color:#466049}
.setup-content fieldset {margin-bottom:15px}
.setup-content legend {margin-bottom:7px;font-size:16px}
.setup-content .scope-option {min-height:46px;padding-block:8px}
.setup-content .timing-settings {padding-top:9px}
.setup-content .timing-settings label {min-height:45px}
.setup-content .timing-settings p {margin:3px 0 0}
.setup-content .setup-order {padding-top:9px}
.setup-content .setup-order p {margin:6px 0 9px;padding:8px 10px}
.setup-content .muted {margin:6px 0 9px;color:#576779}
.setup-content .setup-start {margin-top:3px}
.dictation-content .question-count {margin:3px 0 8px;font-weight:700;color:#49596a}
.dictation-content .dictation-item-progress {height:6px;margin:0 0 15px}
.dictation-content .dictation-stage {min-height:260px;justify-content:center;background:#fff;border:1px solid #e1e9e0;border-radius:20px;padding:20px 12px}
.dictation-content .dictation-symbol {width:82px;height:82px;background:#e9f7e6}
.dictation-content .dictation-symbol img {width:49px;height:49px}
.dictation-content .dictation-stage h2 {font-size:23px;margin:13px 0 4px}
.dictation-content .dictation-stage>p {color:#586a70}
.dictation-stage .writing-timer {margin-top:15px}
.dictation-content .dictation-controls {margin-top:12px}
.dictation-content .dictation-controls button {box-shadow:none;border-color:#cadfc7}
.dictation-content .dictation-answer-note {color:#526474}
.directory-book-info h1 {max-width:calc(100% - 86px);text-wrap:balance}
.unit-path-copy {min-width:0;overflow-wrap:anywhere}
.catalog-results .catalog-empty {padding-block:23px 29px}
.catalog-results .catalog-empty h3 {margin-bottom:6px}
@media (min-width:700px) {
 .directory-book-info h1 {max-width:calc(100% - 175px)}
 .study-flow {border-inline:1px solid var(--study-border)}
}
:is([data-surface=student] button.primary,.study-flow .study-primary,.study-flow .study-accent,.dictation-bottom button.dictation-pause) {
 background:var(--study-action);border-color:var(--study-action);color:var(--study-action-ink);
 box-shadow:0 4px 0 var(--study-action-depth);
}
@media (hover:hover) {
 :is([data-surface=student] button.primary,.study-flow .study-primary,.study-flow .study-accent,.dictation-bottom button.dictation-pause):hover:enabled {background:var(--study-action-hover)}
}
:is([data-surface=student] button.primary,.study-flow .study-primary,.study-flow .study-accent,.dictation-bottom button.dictation-pause):active:enabled {box-shadow:0 2px 0 var(--study-action-depth)}
:is([data-surface=student] button.primary,.study-flow .study-primary,.study-flow .study-accent,.dictation-bottom button.dictation-pause):disabled {
 opacity:1;background:#edf1ea;color:var(--study-muted);border-color:var(--study-border);box-shadow:none;
}
