.mastery3d.svelte-111whjh{pointer-events:none;position:absolute;inset:0;overflow:hidden}.mastery3d.svelte-111whjh canvas{display:block}.mastery-center.svelte-111whjh{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.mastery-big.svelte-111whjh{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-ink);font-size:52px;font-weight:500;line-height:1}.mastery-label.svelte-111whjh{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-ink-3);font-size:11px}.heatmap.svelte-lfp9gm{flex-direction:column;gap:8px;display:flex}.heatmap-head.svelte-lfp9gm{color:var(--color-ink-2);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.heatmap-head.svelte-lfp9gm b:where(.svelte-lfp9gm){color:var(--color-ink);font-weight:500}.heatmap-scroll.svelte-lfp9gm{padding-bottom:4px;overflow-x:auto}.heatmap-months.svelte-lfp9gm{height:16px;margin-left:26px;position:relative}.heatmap-month.svelte-lfp9gm{font-family:var(--font-mono);color:var(--color-ink-3);font-size:10px;position:absolute;top:0}.heatmap-grid.svelte-lfp9gm{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;grid-auto-flow:column;gap:2.5px;width:max-content;display:grid}.heatmap-cell.svelte-lfp9gm{border-radius:2px;width:11px;height:11px}.heatmap-cell.today.svelte-lfp9gm{outline:1.5px solid var(--color-accent);outline-offset:1px}.heatmap-legend.svelte-lfp9gm{align-items:center;gap:3px;margin-left:auto;display:flex}.heatmap-legend-label.svelte-lfp9gm{font-family:var(--font-mono);color:var(--color-ink-3);margin:0 4px;font-size:10px}.heatmap-legend-cell.svelte-lfp9gm{border-radius:2px;width:11px;height:11px}.stat-row.svelte-tllgyw{align-items:baseline;gap:4px;display:flex}.progress-stats.svelte-tllgyw{grid-template-columns:repeat(4,1fr);display:grid}.progress-stat.svelte-tllgyw{padding:8px 24px}.progress-stat.svelte-tllgyw+.progress-stat:where(.svelte-tllgyw){border-left:1px solid var(--color-line-hair)}.progress-stat-label.svelte-tllgyw{font-family:var(--font-mono);letter-spacing:.18em;color:var(--color-ink-3);margin-bottom:14px;font-size:11px}.progress-stat-num.svelte-tllgyw{font-family:var(--font-display);letter-spacing:-.02em;font-size:42px;font-weight:500;line-height:1}.overview-head.svelte-tllgyw{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.overview-label.svelte-tllgyw{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-ink-3);font-size:11px}.overview-hint.svelte-tllgyw{color:var(--color-ink-3);font-size:11px}@media (width<=760px){.progress-stats.svelte-tllgyw{grid-template-columns:repeat(2,1fr);row-gap:28px}.progress-stat.svelte-tllgyw:nth-child(odd){border-left:none}.overview-hint.svelte-tllgyw{display:none}}.stat-num.svelte-tllgyw{font-family:var(--font-display);color:var(--color-ink);font-size:32px;font-weight:500;line-height:1}.stat-unit.svelte-tllgyw{color:var(--color-ink-3);font-size:13px}.stat-meta.svelte-tllgyw{margin-top:10px}.stat-count.svelte-tllgyw{font-family:var(--font-mono);color:var(--color-ink-3);font-size:11px}.chapter-head.svelte-tllgyw{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.chapter-count.svelte-tllgyw{font-family:var(--font-mono);color:var(--color-ink-3);flex-shrink:0;font-size:12px}.topic-list.svelte-tllgyw{border-top:1px solid var(--color-line-hair)}.topic-row.svelte-tllgyw{border-bottom:1px solid var(--color-line-hair);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);justify-content:space-between;align-items:center;gap:16px;margin:0 -12px;padding:14px 12px;display:flex}.topic-row.svelte-tllgyw:last-child{border-bottom:none}.topic-row.svelte-tllgyw:hover{background:var(--color-surface)}.topic-info.svelte-tllgyw{flex-direction:column;gap:2px;min-width:0;display:flex}.topic-name.svelte-tllgyw{color:var(--color-ink);transition:color var(--dur-fast) var(--ease-out);font-size:14px;font-weight:500}.topic-row.svelte-tllgyw:hover .topic-name:where(.svelte-tllgyw){color:var(--color-accent)}.topic-exercises.svelte-tllgyw{font-family:var(--font-mono);color:var(--color-ink-3);font-size:11px}.topic-right.svelte-tllgyw{flex-shrink:0;align-items:center;gap:12px;display:flex}.topic-bar.svelte-tllgyw{background:var(--color-subtle);border-radius:var(--radius-full);width:140px;height:4px;overflow:hidden}.topic-bar-fill.svelte-tllgyw{transition:width 1s var(--ease-out);background:var(--color-accent);border-radius:var(--radius-full);height:100%;transition:width var(--dur-base) var(--ease-out)}.topic-bar-fill.done.svelte-tllgyw{background:var(--color-success)}.topic-pct.svelte-tllgyw{font-family:var(--font-mono);color:var(--color-ink);text-align:right;min-width:36px;font-size:12px;font-weight:500}.mistake-list.svelte-tllgyw{border-top:1px solid var(--color-line-hair)}.mistake-row.svelte-tllgyw{border-bottom:1px solid var(--color-line-hair);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);margin:0 -12px;padding:16px 12px}.mistake-row.svelte-tllgyw:last-child{border-bottom:none}.mistake-row.svelte-tllgyw:hover{background:var(--color-surface)}.mistake-question.svelte-tllgyw{transition:color var(--dur-fast) var(--ease-out)}.mistake-row.svelte-tllgyw:hover .mistake-question:where(.svelte-tllgyw){color:var(--color-accent)}.mistake-head.svelte-tllgyw{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.mistake-question.svelte-tllgyw{color:var(--color-ink);font-size:14px;font-weight:500;line-height:1.5}.mistake-tags.svelte-tllgyw{flex-shrink:0;gap:6px;display:flex}.mistake-answers.svelte-tllgyw{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.answer-line.svelte-tllgyw{align-items:baseline;gap:10px;font-size:13px;display:flex}.answer-label.svelte-tllgyw{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;min-width:56px;font-size:10px}.answer-line.wrong.svelte-tllgyw .answer-label:where(.svelte-tllgyw){color:var(--color-danger)}.answer-line.wrong.svelte-tllgyw .answer-text:where(.svelte-tllgyw){color:var(--color-ink-2);text-decoration:line-through;-webkit-text-decoration-color:var(--color-danger);text-decoration-color:var(--color-danger);text-decoration-thickness:1px}.answer-line.right.svelte-tllgyw .answer-label:where(.svelte-tllgyw){color:var(--color-success)}.answer-line.right.svelte-tllgyw .answer-text:where(.svelte-tllgyw){color:var(--color-success);font-weight:500}.mistake-explanation.svelte-tllgyw{color:var(--color-ink-2);margin:0 0 10px;font-size:13px;line-height:1.6}.mistake-meta.svelte-tllgyw{font-family:var(--font-mono);color:var(--color-ink-3);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;font-size:11px;display:flex}.mistake-actions.svelte-tllgyw{gap:8px;margin-top:10px;display:flex}.btn-sm.svelte-tllgyw{border-radius:var(--radius-sm);padding:4px 10px;font-size:12px}.backup-panel.svelte-tllgyw{border-top:1px solid var(--color-line-hair)}.backup-desc.svelte-tllgyw{color:var(--color-ink-2);max-width:520px;margin:0 0 12px;font-size:13px;line-height:1.7}.backup-actions.svelte-tllgyw{align-items:center;gap:8px;display:flex}.hidden-file.svelte-tllgyw{display:none}.backup-msg.svelte-tllgyw{color:var(--color-success);margin:10px 0 0;font-size:13px}.backup-err.svelte-tllgyw{color:var(--color-danger);margin:10px 0 0;font-size:13px}.tag-blue.svelte-tllgyw{color:#1a3a8f;background:#e8f0fe;border-color:#c5d5f5}.daily-card.svelte-tllgyw{flex-direction:column;gap:10px;display:flex}.daily-head.svelte-tllgyw{align-items:center;gap:10px;display:flex}.daily-chapter.svelte-tllgyw{font-family:var(--font-mono);color:var(--color-ink-3);font-size:11px}.daily-done.svelte-tllgyw{color:var(--color-success);margin-left:auto;font-size:12px;font-weight:500}.daily-q.svelte-tllgyw{color:var(--color-ink);font-size:15px;font-weight:500}.daily-opts.svelte-tllgyw{flex-wrap:wrap;gap:8px;display:flex}.empty-panel.svelte-tllgyw{text-align:center;border:1px dashed var(--color-line-regular);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:14px;padding:56px 24px;display:flex}.empty-pct.svelte-tllgyw{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-ink);font-size:64px;font-weight:500;line-height:1}.empty-line.svelte-tllgyw{background:var(--color-line-regular);width:40px;height:1px}.empty-desc.svelte-tllgyw{color:var(--color-ink-2);margin:0;font-size:14px}
