.progress-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px}.progress-controls label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.progress-controls select{min-height:44px;padding:10px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink)}.recognition-growth{margin-bottom:18px}.recognition-growth .section-head{align-items:flex-start;margin:0 0 8px}.recognition-growth h2,.progress-retention h2,.progress-milestones h2,.progress-evidence h2{margin-top:0}.progress-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted)}.progress-legend span{display:flex;align-items:center;gap:6px;white-space:nowrap}.progress-legend i{width:20px;height:4px;border-radius:4px}.character-key{background:#16835a}.word-key{background:#d87931}.progress-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.progress-highlights section{padding:15px;background:#eef6f0;border-radius:13px}.progress-highlights span{display:block;color:var(--ink);font-size:12px;font-weight:700}.progress-highlights strong{display:block;margin-top:7px;color:var(--green);font-size:34px;font-variant-numeric:tabular-nums}.progress-highlights small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.progress-chart-wrap{position:relative;width:100%;overflow:hidden;margin:8px 0 10px}.progress-chart{display:block;width:100%;height:auto;min-height:230px}.progress-grid line{stroke:#dfe7df;stroke-width:1}.progress-grid text,.progress-date,.progress-end-label{fill:#73817a;font:11px Inter,'Segoe UI',sans-serif}.progress-end-label{font-weight:700;fill:#253e37}.progress-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.character-line{stroke:#16835a}.word-line{stroke:#d87931}.progress-dot{stroke:#fffef9;stroke-width:3}.character-dot{fill:#16835a}.word-dot{fill:#d87931}.progress-point{position:absolute;z-index:2;width:34px;height:34px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;transform:translate(-50%,-50%)}.progress-point span{display:block;width:9px;height:9px;margin:auto;border:2px solid #fffef9;border-radius:50%}.progress-point.character-point span{background:#16835a;box-shadow:0 0 0 1px #16835a}.progress-point.word-point span{background:#d87931;box-shadow:0 0 0 1px #d87931}.progress-point:hover,.progress-point.active{background:#31584b18}.progress-point.active span{width:13px;height:13px;box-shadow:0 0 0 2px currentColor}.progress-day-detail{padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0 14px}.progress-day-detail h3{margin:0 0 12px}.progress-day-group{margin-top:14px}.progress-day-group>p{margin:0 0 9px}.progress-day-group.learned>p strong{color:#16835a}.progress-day-group.forgotten>p strong{color:#d87931}.progress-day-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:7px;max-height:260px;overflow:auto}.progress-day-items button{display:grid;gap:4px;min-height:70px;padding:8px;background:#fffef9}.progress-day-items strong{font-size:22px}.progress-day-items span{font-size:10px;color:var(--muted)}.progress-empty{padding:40px;text-align:center;color:var(--muted)}.progress-retention,.progress-milestones,.progress-evidence{margin-bottom:18px}.retention-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.retention-grid section{padding:14px;background:#f5f6f1;border-radius:12px}.retention-grid strong{display:block;font-size:28px;color:var(--green)}.retention-grid span{display:block;margin-top:4px;font-size:11px;color:var(--muted)}.milestone-panels{display:grid;grid-template-columns:1fr 1fr;gap:24px}.milestone-panels article>p{font-size:12px;color:var(--muted)}.milestone-row{margin:12px 0}.milestone-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px}.milestone-row span{color:var(--muted);white-space:nowrap}.milestone-track{height:7px;margin-top:6px;background:#e4ebe5;border-radius:8px;overflow:hidden}.milestone-track i{display:block;height:100%;background:#16835a}.milestone-panels details{margin-top:12px}.milestone-panels summary{font-size:12px;color:var(--green);cursor:pointer}.progress-evidence p{margin:8px 0}
@media(max-width:700px){.progress-controls{gap:8px}.progress-controls select{font-size:12px}.recognition-growth{padding:18px}.recognition-growth .section-head{display:grid}.progress-highlights{grid-template-columns:1fr 1fr}.progress-highlights section:last-child{grid-column:1/-1}.progress-highlights strong{font-size:27px}.progress-chart{min-height:190px}.progress-line{stroke-width:5}.progress-grid text,.progress-date,.progress-end-label{font-size:24px}.progress-point{width:44px;height:44px}.progress-day-items{grid-template-columns:repeat(3,minmax(0,1fr));max-height:300px}.retention-grid{grid-template-columns:1fr 1fr}.milestone-panels{grid-template-columns:1fr}.milestone-panels article+article{border-top:1px solid var(--line);padding-top:12px}}
.progress-highlights small{font-size:13px}.progress-value{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.progress-value .session-change{color:#56625d;font-size:12px;font-style:normal;font-weight:500;white-space:nowrap}.session-change b{font-weight:700}.session-change b.positive{color:#16835a}.session-change b.negative{color:#d33b2f}.session-change b.neutral{color:inherit}.progress-chart-title{margin:22px 0 0;font-size:16px}.progress-tooltip{position:absolute;z-index:10;min-width:190px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);box-shadow:0 8px 24px #233c3326;transform:translateX(-50%);pointer-events:none;font-size:12px;line-height:1.45}.progress-tooltip[hidden]{display:none}.progress-tooltip time{display:block;margin-bottom:5px;font-weight:700}.progress-tooltip .tooltip-gain b{color:#16835a;font-size:14px}.progress-tooltip .tooltip-loss b{color:#d33b2f;font-size:14px}.progress-tooltip .tooltip-total{margin-top:7px;padding-top:7px;border-top:1px solid var(--line);font-weight:700}
@media(max-width:700px){.progress-highlights small{font-size:12px}.progress-value{gap:8px}.progress-value .session-change{font-size:10px}.progress-tooltip{min-width:176px;font-size:11px}.progress-tooltip .tooltip-gain b,.progress-tooltip .tooltip-loss b{font-size:13px}}
