.melody-v4 .lp-stagenav{flex-wrap:wrap;gap:6px;margin:0 0 20px;display:flex}.melody-v4 .lp-stagenav-item{border:1px solid var(--line);min-height:44px;color:var(--text-soft);background:var(--surface);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.melody-v4 .lp-stagenav-item:hover{color:var(--text);border-color:var(--line-strong)}.melody-v4 .lp-stagenav-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.melody-v4 .lp-stagenav-item i{width:20px;height:20px;font-family:var(--font-mono);color:var(--text);background:var(--surface-3);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:11px;font-style:normal;display:inline-flex}.melody-v4 .lp-stagenav-item i .msi{font-size:13px}.melody-v4 .lp-stagenav-item.is-done{color:var(--text)}.melody-v4 .lp-stagenav-item.is-done i{color:var(--success-ink);background:color-mix(in srgb,var(--success)22%,transparent)}.melody-v4 .lp-stagenav-item.is-current{color:var(--text);border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary)35%,transparent)}.melody-v4 .lp-stagenav-item.is-current i{color:var(--primary-ink);background:color-mix(in srgb,var(--primary)24%,transparent)}.melody-v4 .lp-stagenav-item.is-locked i{color:var(--text-soft)}.melody-v4 .lp-stagenav-hint{color:var(--text-soft);font-size:11px;font-weight:500}.melody-v4 .lp-media-wrap{border-top:1px solid var(--line);padding:14px 18px}.melody-v4 .lp-media{background:var(--surface-3);border-radius:999px;height:6px;position:relative}.melody-v4 .lp-media>i{background:var(--primary);border-radius:999px;position:absolute;inset:0 auto 0 0}.melody-v4 .lp-media>b{background:var(--text);width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.melody-v4 .lp-media-cap{color:var(--text-soft);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:12px}.melody-v4 .lp-gate-wrap{flex-direction:column;align-items:flex-end;gap:6px;min-width:0;max-width:100%;display:flex}.melody-v4 .lp-gate{white-space:normal;text-align:left;max-width:100%}.melody-v4.app-page .lp-gate[aria-disabled=true]{color:var(--text);border:1px solid var(--line-strong);background:var(--surface);box-shadow:none;cursor:not-allowed;transform:none}.melody-v4.app-page .lp-gate[aria-disabled=true] .msi{color:var(--text-soft)}.melody-v4.app-page .lp-gate.btn-primary[aria-disabled=true]{cursor:progress}.melody-v4 .lp-gate--done{border-radius:var(--radius-sm);color:var(--success-ink);background:color-mix(in srgb,var(--success)16%,transparent);align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:700;display:inline-flex}.melody-v4 .lp-gate-reasons{color:var(--text-soft);text-align:right;overflow-wrap:anywhere;margin:0;font-size:12px}.melody-v4 .lp-gate-failed{color:var(--danger-ink)}.melody-v4 .lp-gate-refusal{text-align:left;width:100%;margin-top:4px}.melody-v4 .lp-practice-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:1fr auto;align-items:center;gap:10px 16px;min-width:0;padding:14px 16px;display:grid}.melody-v4 .lp-practice-card+.lp-practice-card{margin-top:12px}.melody-v4 .lp-practice-card-body{min-width:0}.melody-v4 .lp-practice-card-reason{color:var(--secondary-ink);background:color-mix(in srgb,var(--secondary)14%,transparent);border-radius:999px;margin-bottom:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.melody-v4 .lp-practice-card-lesson{color:var(--muted);margin:0 0 2px;font-size:12px}.melody-v4 .lp-practice-card-title{color:var(--text);overflow-wrap:anywhere;margin:0 0 2px;font-size:15px;font-weight:700}.melody-v4 .lp-practice-card-instructions{color:var(--text-soft);overflow-wrap:anywhere;margin:0 0 6px;font-size:12px}.melody-v4 .lp-practice-card-skills{margin-bottom:6px}.melody-v4 .lp-practice-card-meta{color:var(--text-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 10px;margin:0;font-size:12px;display:flex}.melody-v4 .lp-practice-card-eval{color:var(--text-soft);align-items:center;gap:4px;font-size:11px;display:inline-flex}.melody-v4 .lp-practice-card-last{color:var(--text-soft);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:12px}.melody-v4 .lp-practice-card-action{flex-direction:column;align-items:flex-end;gap:6px;min-width:0;display:flex}.melody-v4 .lp-practice-card-reason-line{color:var(--text-soft);text-align:right;font-size:12px}.melody-v4.app-page .lp-practice-card-renew[aria-disabled=true]{color:var(--text);border-color:var(--line-strong);cursor:not-allowed}.melody-v4.app-page .btn.lp-practice-card-start--progress{--lp-fill:color-mix(in srgb,var(--warning)34%,var(--surface-2));color:var(--text);border:1px solid var(--line-strong);background:linear-gradient(to right,var(--lp-fill)0,var(--lp-fill)var(--lp-pct),var(--surface-2)var(--lp-pct),var(--surface-2)100%);position:relative;overflow:hidden}.melody-v4.app-page .btn.lp-practice-card-start--progress[data-band=mid]{--lp-fill:color-mix(in srgb,var(--primary)26%,var(--surface-2))}.melody-v4.app-page .btn.lp-practice-card-start--progress.is-done{--lp-fill:color-mix(in srgb,var(--success)36%,var(--surface-2));border-color:color-mix(in srgb,var(--success)60%,var(--line-strong))}.melody-v4.app-page .btn.lp-practice-card-start--progress:hover{border-color:var(--text-soft)}.melody-v4 .lp-practice-card-reached{color:var(--success-ink);background:color-mix(in srgb,var(--success)14%,transparent);border-radius:999px;align-self:flex-end;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.melody-v4 .lp-practice-card-start-mark{top:0;bottom:0;left:clamp(0px,calc(var(--lp-pct) - 1px),calc(100% - 3px));background:linear-gradient(var(--text)0 9px,transparent 9px calc(100% - 9px),var(--text)calc(100% - 9px));pointer-events:none;width:3px;position:absolute}.melody-v4 .lp-practice-card-start--progress.is-done .lp-practice-card-start-mark{display:none}.melody-v4 .lp-practice-card-start-pct{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.melody-v4 .lp-practice-card-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.melody-v4 .lp-practice-runs{border-top:1px solid var(--line);flex-direction:column;grid-column:1/-1;gap:6px;padding-top:10px;display:flex}.melody-v4 .lp-practice-runs-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);margin:0;font-size:12px;font-weight:700}.melody-v4 .lp-practice-runs-earlier{color:var(--text-soft);margin:0;font-size:12px}.melody-v4 .lp-practice-runs-rows{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.melody-v4 .lp-practice-run{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);font-variant-numeric:tabular-nums;grid-template-columns:5.5em 7.5em 1fr auto 8.5em;align-items:center;gap:10px;padding:6px 12px;font-size:13px;display:grid}.melody-v4 .lp-practice-run.is-best{border-color:color-mix(in srgb,var(--success)60%,var(--line))}.melody-v4 .lp-practice-run-no{color:var(--text-soft);font-weight:600}.melody-v4 .lp-practice-run-pill{white-space:nowrap;color:var(--text-soft);background:var(--surface);border:1px solid var(--line);border-radius:999px;justify-self:start;padding:1px 8px;font-size:11px;font-weight:600}.melody-v4 .lp-practice-run-pill.is-met{color:var(--success-ink);background:color-mix(in srgb,var(--success)14%,transparent);border-color:#0000}.melody-v4 .lp-practice-run-facts,.melody-v4 .lp-practice-run-date{color:var(--text-soft);white-space:nowrap}.melody-v4 .lp-practice-run-date{text-align:right}.melody-v4 .lp-practice-run-score{white-space:nowrap;font-family:var(--font-mono);color:var(--text);text-align:right;font-weight:700}.melody-v4 .lp-practice-runs-best{border-radius:var(--radius-sm);color:var(--success-ink);background:color-mix(in srgb,var(--success)12%,transparent);justify-content:space-between;align-items:baseline;gap:12px;margin:2px 0 0;padding:8px 12px;font-size:13px;display:flex}.melody-v4 .lp-practice-runs-best b{font-family:var(--font-mono);white-space:nowrap;font-size:15px}@media (max-width:560px){.melody-v4 .lp-practice-card{grid-template-columns:1fr}.melody-v4 .lp-practice-card-action{align-items:stretch}.melody-v4 .lp-practice-card-reason-line{text-align:left}.melody-v4 .lp-practice-card-reached{align-self:flex-start}.melody-v4 .lp-practice-run{grid-template-columns:auto 1fr auto}.melody-v4 .lp-practice-run-score{grid-area:1/3}.melody-v4 .lp-practice-run-facts{grid-area:2/1/auto/3}.melody-v4 .lp-practice-run-date{grid-area:2/3}}.melody-v4 .lp-finish-locked,.melody-v4 .lp-finish-done{color:var(--text-soft);align-items:flex-start;gap:8px;margin:0;font-size:14px;display:flex}.melody-v4 .lp-finish-locked .msi,.melody-v4 .lp-finish-done .msi{flex:none;margin-top:2px}.melody-v4 .lp-finish-done{color:var(--success-ink);font-weight:600}.melody-v4 .lp-finish-met{color:var(--text-soft);margin:0 0 12px;font-size:14px}.melody-v4 .lp-finish .lp-gate-wrap{align-items:flex-start}.melody-v4 .lp-finish .lp-gate-reasons{text-align:left}.melody-v4 .lp-finish-nodeltas{color:var(--muted);margin:10px 0 0;font-size:13px}.melody-v4 .lp-finish-next-link{color:var(--text);font-weight:600;text-decoration:none}.melody-v4 .lp-finish-next-link:hover{text-decoration:underline}.melody-v4 .lp-finish-next-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.melody-v4 .lp-lesson-head h1{overflow-wrap:anywhere}.melody-v4 .lp-lesson-tags{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;display:flex}.melody-v4 .lp-lesson-tags .lp-skill-prereqs{margin:0}.melody-v4.app-page .lp-lesson-head .ph-actions{min-width:0;max-width:100%}.melody-v4 .lp-lesson-stack{flex-direction:column;gap:20px;min-width:0;display:flex}.melody-v4 .lp-lesson-learn-body{padding:20px 18px}.melody-v4 .lp-lesson-empty{color:var(--muted);margin:0}.melody-v4 .lp-lesson-check-item+.lp-lesson-check-item{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.melody-v4 .lp-lesson-check-head{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 4px;display:flex}.melody-v4 .lp-lesson-check-title{color:var(--text);margin:0;font-size:15px;font-weight:700}.melody-v4 .lp-lesson-check-meta{color:var(--text-soft);margin:0 0 10px;font-size:12px}@media (max-width:767px){.melody-v4 .lp-gate-wrap{align-items:stretch}.melody-v4 .lp-gate-reasons{text-align:left}}.lp-finish-score{color:var(--text-soft);margin:0 0 12px}.lp-finish-score b{color:var(--text)}.melody-v4 .lp-score-sum{flex-direction:column;gap:4px;display:flex}.melody-v4 .lp-score-sum p{margin:0}.melody-v4 .lp-score-sum-part{color:var(--text-soft);font-size:13px}.melody-v4 .lp-score-sum-total b{color:var(--text)}.melody-v4 .lp-score-sum-items{color:var(--text-soft);flex-direction:column;gap:2px;margin:4px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.melody-v4 .lp-score-sum-item{grid-template-columns:4.5em 1fr;gap:8px;display:grid}.melody-v4 .lp-score-sum-value{color:var(--text);text-align:right;font-weight:700}.melody-v4 .lp-score-sum-note{color:var(--text-soft)}
