:root{font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;color:#1a1a1a;background:#f6f7f9}*{box-sizing:border-box}body{margin:0}.app{max-width:720px;margin:0 auto;padding:2rem 1.25rem 3rem}header h1{margin:0;font-size:1.75rem}.header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.nav{display:flex;gap:.5rem;flex-wrap:wrap}.nav-btn{background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.45rem .75rem;font-size:.9rem}.nav-btn.active{background:#e8eef8;border-color:#2f6fed;color:#1f4fad}.subtitle{margin:.25rem 0 0;color:#5c6570}.progress-wrap{margin:1.25rem 0 1.5rem}.progress-label{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .75rem;font-size:.9rem;color:#5c6570;margin-bottom:.35rem}.progress-legend{display:inline-flex;align-items:center;gap:.65rem;font-size:.78rem;color:#7a8490}.progress-legend-item{display:inline-flex;align-items:center;gap:.3rem}.legend-dot{width:.55rem;height:.55rem;border-radius:999px}.legend-dot.passed{background:#22c55e}.legend-dot.pending{background:#d8dde3}.phrase-number{margin:0 0 .75rem;font-size:.9rem;color:#5c6570;font-weight:600}.sentence-source{margin:.25rem 0 .75rem;font-size:.85rem}.practice-focus .sentence-source{margin-top:.35rem;margin-bottom:.85rem}.practice-focus .prompt+.sentence-source,.feedback-prompt+.sentence-source,.history-en+.sentence-source{margin-top:.35rem}.sentence-source a{color:#2f6fed;text-decoration:none}.sentence-source a:hover{text-decoration:underline}.sentence-source-note{display:block;margin-top:.2rem;color:#64748b;font-size:.78rem}.theme-content-note{margin:.35rem 0 0;color:#9a3412;font-size:.82rem}.topic-brief{margin:0 0 1rem;padding:.65rem .85rem;border-left:3px solid #2f6fed;background:#f7f9fc}.topic-brief-toggle{border:none;background:none;color:#2f6fed;padding:0;font:inherit;cursor:pointer;text-align:left}.topic-brief-title{color:#64748b}.topic-brief-loading{margin:0;color:#64748b;font-size:.9rem}.topic-brief-body{margin-top:.65rem;display:grid;gap:.75rem}.topic-brief-block h3{margin:0 0 .25rem;font-size:.8rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.03em}.topic-brief-block p{margin:0;font-size:.95rem;line-height:1.45;color:#1e293b;white-space:pre-wrap}.passage-panel{margin:0 0 1rem;padding:.75rem 1rem;border:1px solid #dbe3f0;border-radius:8px;background:#f7f9fc}.passage-header{margin:0 0 .5rem;font-size:.9rem;color:#334155}.passage-title{color:#64748b}.passage-progress{display:flex;gap:.35rem;margin-bottom:.5rem}.passage-dot{width:.65rem;height:.65rem;border-radius:999px;background:#cbd5e1}.passage-dot.completed{background:#22c55e}.passage-dot.current{background:#2f6fed;box-shadow:0 0 0 2px #2f6fed40}.passage-toggle{border:none;background:none;color:#2f6fed;font-size:.85rem;padding:0;cursor:pointer}.passage-toggle:hover{text-decoration:underline}.passage-assembly{margin:.75rem 0 0;padding-top:.75rem;border-top:1px solid #dbe3f0;font-size:.95rem;line-height:1.55;color:#1e293b}.passage-completion{margin:0 0 1rem;padding:1rem;border:1px solid #86efac;border-radius:8px;background:#f0fdf4}.passage-completion-title{margin:0 0 .75rem;font-size:1rem;color:#166534}.passage-completion-label{margin:.5rem 0 .25rem;font-size:.8rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.03em}.passage-completion-text{margin:0 0 .5rem;font-size:.95rem;line-height:1.55;color:#1e293b}.passage-completion-text.user{font-style:italic}.passage-completion-text.reference{color:#334155}.completed-badge{display:inline-block;margin-bottom:.75rem;padding:.35rem .65rem;border-radius:999px;background:#e8f5ee;color:#1a7f4b;font-size:.85rem;font-weight:600}.completed-review .prompt{margin-top:.75rem}.progress-controls{display:flex;align-items:center;gap:.45rem}.app-progress-block .progress-wrap{margin:1.25rem 0 .45rem}.theme-minimap{display:flex;flex-wrap:nowrap;gap:.2rem;margin:0 0 1rem;width:100%}.theme-minimap-square{flex:1 1 0;min-width:.55rem;height:1.05rem;border:none;border-radius:3px;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px #0f172a1f}.theme-minimap-square--active{box-shadow:inset 0 0 0 1px #0f172a2e,0 0 0 2px #2f6fed73}.theme-minimap-square:hover:not(:disabled){transform:scale(1.12)}.theme-minimap-square:disabled{cursor:default}.theme-minimap-tooltip{position:fixed;z-index:1000;transform:translate(-50%,calc(-100% - 8px));background:#24292f;color:#fff;font-size:.75rem;line-height:1.3;padding:.35rem .55rem;border-radius:6px;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #0000002e}.progress-skip{flex:0 0 auto;width:1.65rem;height:1.65rem;border:1px solid #d5dbe3;border-radius:6px;background:#fff;color:#5c6570;cursor:pointer;font-size:1rem;line-height:1;padding:0}.progress-skip:hover:not(:disabled){border-color:#2f6fed;color:#2f6fed}.progress-skip:disabled{opacity:.35;cursor:default}.progress-skip-unfinished{width:auto;min-width:2.1rem;padding:0 .35rem;font-size:.85rem;letter-spacing:-.04em}.progress-track{position:relative;flex:1;height:8px;background:#e2e6eb;border-radius:999px;overflow:hidden;cursor:pointer}.progress-track--segmented{height:10px;overflow:visible}.progress-thumb{position:absolute;top:50%;width:3px;height:16px;transform:translate(-50%,-50%);background:#fff;border:2px solid #1d4ed8;border-radius:2px;pointer-events:none;box-shadow:0 0 0 1px #1d4ed840}.progress-track[aria-disabled=true]{cursor:default;opacity:.6}.progress-fill{height:100%;background:#2f6fed;transition:width .3s ease}.tts-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.85rem}.tts-source-group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.tts-source-item{display:inline-flex;align-items:center;gap:.25rem}.speak-btn{display:inline-flex;align-items:center;gap:.35rem;background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.35rem .65rem;font-size:.85rem}.speak-btn--active{border-color:#2f6fed;background:#e8eef8;color:#1a4fbf}.speak-btn--active .btn-shortcut{color:#1a4fbf;border-color:#2f6fed59;background:#ffffffb3}.speak-btn--loading,.speak-btn:disabled{opacity:.45;cursor:default}.speak-btn--loading{background:#eceff3;border-color:#d5dbe3;color:#8a939e}.speak-btn:hover:not(:disabled){border-color:#2f6fed;background:#e8eef8}.tts-transport{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.2rem .45rem;border:1px solid #e2e6eb;border-radius:8px;background:#f8f9fb}.tts-transport-controls{display:inline-flex;align-items:center;gap:.25rem}.tts-ctrl-btn{display:inline-flex;align-items:center;justify-content:center;background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.35rem;min-width:2rem;min-height:2rem}.tts-ctrl-btn:hover:not(:disabled){border-color:#2f6fed;background:#e8eef8}.tts-ctrl-btn:disabled{opacity:.45}.tts-ctrl-icon{width:1rem;height:1rem}.tts-speed-group{display:inline-flex;flex-wrap:wrap;gap:.25rem;align-items:center}.tts-speed-option{display:inline-flex;align-items:center;justify-content:center;background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.3rem .45rem;min-width:2.35rem;font-size:.8rem}.tts-speed-option.is-active{border-color:#2f6fed;background:#e8eef8;color:#1a4fbf}.tts-speed-option:hover:not(:disabled){border-color:#2f6fed;background:#e8eef8}.tts-speed-option:disabled{opacity:.45}.tts-refresh-btn{display:inline-flex;align-items:center;justify-content:center;background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.35rem;font-size:.85rem;min-width:2rem;min-height:2rem}.tts-refresh-icon{width:1rem;height:1rem}.btn-shortcut-group{display:inline-flex;align-items:center;gap:.18rem}.btn-shortcut-group .btn-shortcut{margin-left:0}.tts-refresh-btn:hover:not(:disabled){border-color:#2f6fed;background:#e8eef8}.tts-refresh-btn:disabled{opacity:.45}.speak-icon{width:1rem;height:1rem}.tts-voice-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.tts-voice-select{border:1px solid #d5dbe3;border-radius:8px;padding:.35rem .5rem;font-size:.85rem;background:#fff}.prompt{font-size:1.15rem;line-height:1.6;margin:0 0 1rem;padding:1rem;background:#fff;border-radius:10px;border:1px solid #e2e6eb}.practice-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.reveal-btn,.aide-btn{display:inline-flex;align-items:center;background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.35rem .55rem .35rem .65rem;font-size:.85rem}.btn-shortcut{display:inline-flex;align-items:center;justify-content:center;margin-left:.45rem;min-width:1.55rem;height:1.25rem;padding:0 .32rem;border-radius:4px;border:1px solid rgba(26,26,26,.14);background:#ffffffc7;box-shadow:0 1px #1a1a1a0f;color:#4b5563;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;font-weight:600;line-height:1;letter-spacing:.01em}.reveal-btn-active .btn-shortcut,.aide-btn.active .btn-shortcut{color:#1f4fad;border-color:#2f6fed59;background:#ffffffb3}.reveal-btn{position:relative}.reveal-btn-active{background:#e8eef8;border-color:#2f6fed;color:#1f4fad}.reveal-ring{pointer-events:none}.reveal-btn .reveal-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;width:calc(100% + 6px);height:calc(100% + 6px);display:block;overflow:visible;z-index:0}.reveal-ring--inline{flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.15rem;display:block;overflow:visible}.reveal-ring-track{fill:none;stroke:#d5dbe3;stroke-width:2}.reveal-ring-track--inline,.reveal-ring-fill--inline{stroke-width:3;vector-effect:non-scaling-stroke}.reveal-ring-fill{fill:none;stroke:#2f6fed;stroke-width:2;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation-name:reveal-ring-fill;animation-timing-function:linear;animation-fill-mode:forwards}.reveal-ring-fill--inline{stroke-linecap:butt}@keyframes reveal-ring-fill{to{stroke-dashoffset:0}}.reveal-btn-label{position:relative;z-index:1;display:inline-flex;align-items:center}.aide-btn.active{background:#e8eef8;border-color:#2f6fed;color:#1f4fad}.reveal-btn:disabled,.aide-btn:disabled{opacity:.6;cursor:not-allowed}.solution-reveal{display:flex;align-items:flex-start;gap:.65rem;margin:0 0 1rem;padding:.85rem 1rem;background:#fff8e6;border:1px solid #f0d78c;border-radius:10px;color:#5c4a1a;font-size:1.05rem;line-height:1.5;animation:solution-flash .25s ease-out}.solution-reveal,.solution-reveal *{user-select:none;-webkit-user-select:none}.solution-reveal-text{flex:1;min-width:0}@keyframes solution-flash{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.hintable-sentence{line-height:1.6}.hint-word-wrap{position:relative;display:inline;white-space:pre-wrap;cursor:help}.hint-popover{position:absolute;left:50%;bottom:calc(100% + .35rem);transform:translate(-50%);padding:.35rem .55rem;font-size:.78rem;line-height:1.3;font-weight:500;color:#1f4fad;background:#fff;border:1px solid #b8c9ee;border-radius:8px;box-shadow:0 4px 12px #1a1a1a1a;white-space:nowrap;z-index:2;pointer-events:none}.hint-popover-fr{display:block}.hint-popover-note{display:block;margin-top:.2rem;font-size:.68rem;font-weight:400;color:#5c6570;white-space:normal;max-width:14rem}.hint-word{border-bottom:1px dashed rgba(47,111,237,.55);background:#2f6fed0a;border-radius:2px}.feedbackable-translation{line-height:1.6}.feedback-word-wrap{position:relative;display:inline;white-space:pre-wrap;cursor:help}.feedback-word{border-radius:2px}.feedback-word-issue{border-bottom:1px dashed rgba(198,40,40,.6);background:#c628280f}.feedback-word-register{border-bottom:1px dashed rgba(230,126,34,.65);background:#e67e220f}.feedback-word-strong{border-bottom:1px dashed rgba(39,174,96,.6);background:#27ae600f}.feedback-popover{position:absolute;left:50%;bottom:calc(100% + .35rem);transform:translate(-50%);padding:.35rem .55rem;font-size:.78rem;line-height:1.3;font-weight:500;background:#fff;border-radius:8px;box-shadow:0 4px 12px #1a1a1a1a;white-space:nowrap;width:max-content;max-width:none;z-index:2;pointer-events:none}.feedback-popover-issue{color:#a32020;border:1px solid #e8b4b4}.feedback-popover-register{color:#b35a00;border:1px solid #ecd0a8}.feedback-popover-strong{color:#1e8449;border:1px solid #b8dfc8}.feedback-popover-replacement{display:block;font-weight:600}.feedback-popover-note{display:block}.feedback-popover-suggestion{display:block;margin-top:.2rem;font-size:.72rem;font-weight:600}textarea{width:100%;padding:.85rem;border-radius:10px;border:1px solid #cfd6df;font:inherit;resize:vertical;margin-bottom:.75rem}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.1rem}button.primary{background:#2f6fed;color:#fff}button.primary:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:#eceff3;color:#1a1a1a}.feedback{background:#fff;border:1px solid #e2e6eb;border-radius:12px;padding:1.25rem}.score{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.75rem}.score-value{font-size:2rem;font-weight:700}.score.pass .score-value{color:#1a7f4b}.score.fail .score-value{color:#c0392b}.feedback-fr{font-size:1rem;margin:0 0 .75rem}.notes{margin:0 0 .75rem;padding-left:1.2rem;color:#333}.reference,.improved,.feedback-user{margin:.75rem 0;padding:.75rem;background:#f6f7f9;border-radius:8px}.error{color:#c0392b}.complete h2{margin-top:0}.loading{text-align:center;color:#5c6570}.spinner-wrap{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;color:#5c6570}.spinner{width:1.25rem;height:1.25rem;border:2px solid #d5dbe3;border-top-color:#2f6fed;border-radius:50%;animation:spin .7s linear infinite}.spinner-label{font-size:.95rem}@keyframes spin{to{transform:rotate(360deg)}}.feedback.streaming{min-height:6rem}.stream-cursor{color:#2f6fed;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.history{margin-top:1rem}.history-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.history-header h2{margin:0;font-size:1.25rem}.history-analyze-btn{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #2f6fed;background:#fff;color:#2f6fed;border-radius:6px;padding:.4rem .75rem;font:inherit;cursor:pointer;white-space:nowrap}.history-analyze-btn:disabled{opacity:.6;cursor:wait}.history-analyze-spinner{width:.9rem;height:.9rem;border-width:2px;flex-shrink:0}.history-analysis{margin:0 0 1rem;padding:.65rem .85rem;border-left:3px solid #2f6fed;background:#f7f9fc}.history-analysis-toggle{border:none;background:none;color:#2f6fed;padding:0;font:inherit;cursor:pointer;text-align:left}.history-analysis-meta{color:#64748b}.history-analysis-body{margin-top:.75rem}.history-analysis-summary{margin:0 0 .75rem;line-height:1.45;color:#1e293b}.history-analysis-patterns{margin:0;padding-left:1.1rem;display:grid;gap:.75rem}.history-analysis-patterns p{margin:.25rem 0 0;color:#334155}.history-analysis-freq{font-weight:500;color:#64748b}.history-analysis-examples{margin:.35rem 0 0;padding-left:1rem;color:#475569;font-size:.95rem}.history-analysis-drills{margin-top:.9rem}.history-analysis-drills h3{margin:0 0 .35rem;font-size:.95rem;color:#334155}.history-analysis-drills ul{margin:0;padding-left:1.1rem}.history-empty{color:#5c6570}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.history-item{background:#fff;border:1px solid #e2e6eb;border-radius:12px;padding:1rem}.history-item-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.75rem}.history-item-actions{display:flex;align-items:center;gap:.6rem}.history-delete,.hide-sentence-btn{background:#fdecea;color:#a93226;border:1px solid #f5c6cb;border-radius:8px;padding:.35rem .6rem;font-size:.8rem}.hide-sentence-btn:disabled{opacity:.6;cursor:not-allowed}.history-delete:disabled{opacity:.6;cursor:not-allowed}.history-id{font-size:.8rem;color:#5c6570;font-weight:600}.history-score{font-size:.85rem;color:#1a7f4b;font-weight:600}.history-en{margin:.5rem 0;font-size:1rem}.history-user,.history-ref,.history-feedback{margin:.5rem 0 0;padding:.65rem;background:#f6f7f9;border-radius:8px;font-size:.95rem}.history-toggle{margin-top:.75rem;background:#eceff3;color:#1a1a1a;font-size:.9rem}.history-attempts{margin-top:.85rem;display:flex;flex-direction:column;gap:.75rem}.history-attempt{padding:.85rem;border:1px solid #e2e6eb;border-radius:10px;background:#fafbfc}.history-attempt-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem}.history-attempt-actions{display:flex;align-items:center;gap:.5rem}.history-reevaluate{padding:.25rem .55rem;font-size:.78rem;border-radius:6px;border:1px solid #cfd6df;background:#fff;color:#4a5560}.history-reevaluate:disabled{opacity:.6;cursor:wait}.history-attempt-label{font-size:.85rem;font-weight:600;color:#4a5560}.history-attempt-score{font-size:.85rem;font-weight:600}.history-attempt-score.pass{color:#1a7f4b}.history-attempt-score.fail{color:#c0392b}.history-notes,.history-improved{margin:.5rem 0 0}.login-screen{margin-top:1.5rem;max-width:28rem}.login-screen h2{margin:0 0 .35rem}.login-screen-hint{margin:0 0 1.25rem;color:#5c6570;font-size:.95rem}.login-screen-loading,.login-screen-empty{color:#5c6570;margin:0}.login-form{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.75rem}.login-form label{font-size:.9rem;font-weight:600}.login-form input{padding:.55rem .75rem;border:1px solid #d5dbe3;border-radius:8px;font-size:1rem}.login-form button{margin-top:.35rem}.login-mode-toggle{border:none;background:transparent;color:#2f6fed;cursor:pointer;padding:0;font-size:.95rem;margin-bottom:1.5rem}.leaderboard h3{margin:0 0 .75rem;font-size:1.05rem}.leaderboard-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.leaderboard-item{display:grid;grid-template-columns:2rem 1fr auto;gap:.75rem;align-items:center;padding:.65rem .85rem;border-bottom:1px solid #e2e6eb}.leaderboard-rank{font-weight:700;color:#5c6570}.leaderboard-name{font-weight:600}.leaderboard-stats{font-size:.9rem;color:#5c6570}.theme-overview{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #e2e6eb}.exercise-search{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0 1rem}.exercise-search-label{font-size:.85rem;color:#5c6570;font-weight:600}.exercise-search-input{width:100%;padding:.55rem .75rem;border:1px solid #d5dbe3;border-radius:8px;font:inherit;background:#fff}.exercise-search-meta{margin:0;font-size:.85rem;color:#5c6570}.exercise-search-error{margin:0;font-size:.85rem;color:#b42318}.exercise-search-results-toggle{align-self:flex-start;background:none;border:none;padding:0;color:#5c6570;font-size:.9rem;cursor:pointer;text-decoration:underline}.exercise-search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.exercise-search-result{width:100%;text-align:left;border:1px solid #e2e6eb;border-radius:8px;background:#fff;padding:.55rem .7rem;cursor:pointer;display:flex;flex-direction:column;gap:.2rem}.exercise-search-result:hover:not(:disabled){border-color:#1d4ed8;background:#f8fbff}.exercise-search-result:disabled{opacity:.6;cursor:not-allowed}.exercise-search-result-text{font-size:.92rem;color:#1f2933}.exercise-search-result-meta{font-size:.78rem;color:#5c6570}.exercise-search-match-reason{color:#1d4ed8}.theme-selector-wrap{margin:.75rem 0 .35rem;display:flex;flex-direction:column;gap:.35rem}.theme-selector-label{font-size:.85rem;color:#5c6570;font-weight:600}.theme-selector{width:100%;padding:.55rem .75rem;border:1px solid #d5dbe3;border-radius:8px;font:inherit;background:#fff}.theme-group-active{border-color:#1d4ed8;background:#eef4ff}.theme-group-header-row{display:flex;align-items:center;gap:.5rem}.theme-group-header-row .theme-group-header{flex:1}.theme-practice-btn{background:#eceff3;color:#1a1a1a;border:1px solid #d5dbe3;border-radius:8px;padding:.3rem .55rem;font-size:.8rem;white-space:nowrap}.theme-practice-btn.active{background:#e8eef8;border-color:#2f6fed;color:#1f4fad}.theme-practice-btn:hover:not(:disabled){border-color:#2f6fed;background:#e8eef8}.theme-overview-toggle{background:none;border:none;padding:0;color:#5c6570;font-size:.9rem;cursor:pointer;text-decoration:underline}.theme-overview-body{margin-top:.85rem}.theme-overview-loading{margin:0;color:#5c6570;font-size:.9rem}.theme-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.theme-group{background:#fff;border:1px solid #e2e6eb;border-radius:10px;padding:.65rem .75rem}.theme-group-current{border-color:#2f6fed;background:#f8faff}.theme-group-header{width:100%;display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;background:none;border:none;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.theme-group-label{font-weight:600;font-size:.95rem}.theme-group-meta{font-size:.85rem;color:#5c6570;white-space:nowrap}.theme-group-bar{margin-top:.45rem;height:4px;background:#eceff3;border-radius:999px;overflow:hidden}.theme-group-fill{height:100%;background:#2f6fed;border-radius:999px}.theme-sentence-list{list-style:none;margin:.65rem 0 0;padding:0;max-height:240px;overflow-y:auto;border-top:1px solid #eceff3}.theme-sentence{width:100%;display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;padding:.55rem 0;border:none;border-bottom:1px solid #f0f2f5;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.theme-sentence:last-child{border-bottom:none}.theme-sentence:disabled{opacity:.55;cursor:not-allowed}.theme-sentence-current{background:#eef3fd}.theme-sentence-text{font-size:.9rem;line-height:1.45}.theme-status{flex-shrink:0;font-size:.75rem;font-weight:600;padding:.15rem .45rem;border-radius:999px}.theme-status-passed{background:#e8f5ee;color:#1a7f4b}.theme-status-current{background:#e8eef8;color:#1f4fad}.activity-graph{margin:.75rem 0 1rem}.activity-graph--full{padding:.75rem .85rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.activity-graph--compact{margin:0;flex-shrink:0}.activity-graph-desktop{display:block}.activity-graph-loading{margin:0;font-size:.85rem;color:#5c6570}.activity-graph-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.activity-graph-header-actions{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.activity-graph-compact-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.activity-hide-btn,.activity-show-btn{border:1px solid #d5dbe3;background:#f6f7f9;color:#5c6570;border-radius:6px;padding:.2rem .55rem;font-size:.72rem;cursor:pointer}.activity-hide-btn:hover,.activity-show-btn:hover{border-color:#2f6fed;color:#1f4fad}.activity-show-btn{display:block;width:100%;margin:.5rem 0 .75rem;padding:.45rem .75rem;font-size:.82rem}.activity-graph-title{font-size:.82rem;font-weight:600;color:#1a1a1a}.activity-graph-streak,.activity-graph-summary{margin:0;font-size:.78rem;color:#5c6570}.activity-graph-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.activity-graph--full .activity-graph-scroll{padding-bottom:.15rem}.activity-graph-track{min-width:min-content}.activity-graph--full .activity-graph-track{margin-left:0}.activity-graph--compact .activity-graph-scroll{max-height:none}.activity-month-labels{position:relative;height:16px;margin-bottom:2px}.activity-month-label{position:absolute;top:0;font-size:.68rem;color:#5c6570;text-transform:capitalize;white-space:nowrap}.activity-grid-row{display:flex;align-items:flex-start;gap:4px}.activity-day-labels{display:flex;flex-direction:column;width:24px;flex-shrink:0;padding-top:0}.activity-day-label{font-size:.65rem;color:#5c6570}.activity-grid{display:flex;flex-shrink:0}.activity-grid-column{display:flex;flex-direction:column}.activity-cell{border:none;border-radius:2px;padding:0;cursor:pointer;display:block}.activity-cell:focus-visible{outline:2px solid #2f6fed;outline-offset:1px}.activity-cell--future{opacity:.85}.activity-tooltip-float{position:fixed;z-index:1000;transform:translate(-50%,calc(-100% - 8px));background:#24292f;color:#fff;font-size:.75rem;line-height:1.3;padding:.4rem .65rem;border-radius:6px;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #0000002e}.activity-tooltip{margin:.35rem 0 0;font-size:.78rem;color:#5c6570;min-height:1.1rem}.activity-legend{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin-top:.45rem;font-size:.72rem;color:#5c6570}.activity-legend-cell{width:11px;height:11px;border-radius:2px}.profile-item .activity-graph--compact .activity-graph-summary{display:none}.profile-item .activity-graph--compact .activity-graph-scroll{max-height:36px}@media(max-width:640px){.app.app--activity-dock{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}.app--practice{padding:1rem 1rem 3rem}.app--practice header h1{font-size:1.25rem}.app--practice .app-flow{display:flex;flex-direction:column}.app--practice .practice{display:contents}.app--practice .error{order:0}.app--practice .practice-focus{order:1;display:flex;flex-direction:column}.app--practice .practice-focus .prompt{font-size:1.2rem}.app--practice .practice-focus textarea{flex:none;min-height:unset;max-height:calc(4lh + 1.7rem);resize:none}.app--practice .practice-focus button.primary{width:100%}.app--practice .theme-selector-wrap{order:2;margin:.75rem 0 .25rem}.app--practice .app-progress{order:3;margin:.5rem 0 .75rem}.app--practice .app-progress .progress-legend{display:none}.app--practice .practice-tools{order:4;margin-top:.5rem;padding-top:1rem;border-top:1px solid #e2e6eb}.app--practice .practice-tools .phrase-number{display:none}.app--practice .activity-show-btn{order:5}.activity-graph-desktop{display:none}.activity-dock{position:fixed;bottom:0;left:0;right:0;max-width:720px;margin:0 auto;padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom));background:#f6f7f9;border-top:1px solid #e2e8f0;z-index:20}.activity-dock .activity-graph-scroll{max-height:none}}@media(min-width:641px){.activity-dock{display:none}.app-flow{display:flex;flex-direction:column}.app-progress{order:10}.theme-selector-wrap{order:9}.activity-graph-desktop,.activity-show-btn{order:20}.error{order:25}.app-view,.practice{order:30}}
