.activity-months{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:1.1rem 1.25rem;display:grid}.activity-month .month-name{margin-bottom:.35rem;font-size:.85rem;font-weight:700}.month-dots{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.month-dots .weekday{color:var(--muted);text-align:center;font-size:.62rem;font-weight:700}.month-dots .dot{aspect-ratio:1;background:var(--surface-3);border-radius:50%;position:relative}.dot-tip{z-index:5;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);white-space:nowrap;pointer-events:none;animation:pop-in var(--motion) ease both;border-radius:8px;flex-direction:column;padding:.35rem .55rem;font-size:.75rem;line-height:1.3;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;translate:-50%}html.dark .dot-tip{background:var(--surface-2)}.dot-tip[data-leaving=true]{animation:.1s ease-in both fade-out}.dot-tip.start{left:0;translate:none}.dot-tip.end{left:auto;right:0;translate:none}.month-dots .dot.blank{visibility:hidden}.month-dots .dot.future{opacity:.35}.month-dots .dot.l1{background:color-mix(in srgb, var(--accent) 35%, var(--surface-3))}.month-dots .dot.l2{background:color-mix(in srgb, var(--accent) 60%, var(--surface-3))}.month-dots .dot.l3{background:color-mix(in srgb, var(--accent) 80%, var(--surface-3))}.month-dots .dot.l4{background:var(--accent)}.month-dots .dot.shown{outline:2px solid var(--text);outline-offset:1px}@media (hover:hover){.month-dots .dot:not(:is(.future,.blank)):hover{outline:2px solid var(--text);outline-offset:1px}.month-dots .dot.shown:not(:hover){outline:none}}.stats-summary{gap:clamp(.6rem,2.6vw,1.5rem);display:flex}.summary-group{flex-shrink:1;flex-basis:0;min-width:max-content}.summary-group+.summary-group{border-left:1px solid var(--border);padding-left:clamp(.6rem,2.6vw,1.5rem)}.summary-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-size:.72rem;font-weight:800}.summary-items{grid-auto-columns:minmax(max-content,1fr);grid-auto-flow:column;gap:clamp(.45rem,2.2vw,1rem);display:grid}@media (width<=600px){.summary-items{grid-auto-columns:auto;justify-content:space-between}}.summary-item{white-space:nowrap;flex-direction:column;display:flex}.summary-item .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(1rem,4.4vw,1.6rem);font-weight:850;line-height:1.15}.summary-item .label{color:var(--muted);font-size:clamp(.66rem,2.5vw,.82rem);font-weight:700}.stat{flex-direction:column;display:flex}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:850;line-height:1.15}.stat .label{color:var(--muted);font-size:.84rem;font-weight:700}.bar-chart{align-items:flex-end;gap:3px;height:10rem;margin-top:1.2rem;margin-bottom:.4rem;display:flex;position:relative}.chart-max{border-top:1px dashed color-mix(in srgb, var(--muted) 60%, transparent);pointer-events:none;position:absolute;top:0;left:0;right:0}.chart-max>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:700;line-height:1;position:absolute;bottom:.2rem;right:0}.chart-wrap{position:relative}.bar-chart .bar{cursor:pointer;border-radius:5px 5px 2px 2px;flex:1 1 0;align-items:flex-end;height:100%;display:flex}.bar-chart .bar.active{background:var(--surface-2)}.bar-chart .bar-stack{transform-origin:bottom;animation:grow-up .2s var(--ease-out) both;transition:height var(--motion) var(--ease-out);border-radius:4px 4px 1px 1px;flex-direction:column-reverse;width:100%;min-height:2px;display:flex;overflow:hidden}.bar-chart .seg{flex-basis:0}.seg.new,.swatch.new{background:var(--accent-2)}.seg.remembered,.swatch.remembered{background:var(--success)}.seg.forgotten,.swatch.forgotten{background:var(--danger)}.day-link{color:var(--accent-text);margin-left:.6rem;font-weight:750;text-decoration:none}.month-dots .dot:not(:is(.blank,.future)){cursor:pointer}.day-nav{gap:.5rem;margin-top:.6rem;display:flex}.forecast-summary{margin-bottom:.8rem;font-size:.88rem}.forecast-rows{flex-direction:column;margin:0 -.5rem;display:flex}.forecast-row{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:7.5rem 1fr 2.75rem;align-items:center;gap:.75rem;padding:.4rem .5rem;font-size:.88rem;display:grid}.forecast-row.active{background:var(--surface-2)}@media (hover:hover){.forecast-row:hover{background:var(--surface-2)}}.forecast-row.empty{color:var(--muted)}.forecast-track{height:.7rem;display:flex}.forecast-bar{min-width:2px;transition:width var(--motion) var(--ease-out);border-radius:3px;display:flex;overflow:hidden}.forecast-bar .seg{flex-basis:0}.forecast-row.empty .forecast-bar{background:var(--surface-3)}.forecast-count{font-variant-numeric:tabular-nums;text-align:right;font-weight:750}@media (width<=600px){.forecast-row{grid-template-columns:6.5rem 1fr 2.5rem;gap:.6rem}}.seg.due-failed,.swatch.due-failed{background:var(--danger)}.seg.due-learning,.swatch.due-learning{background:var(--info)}.seg.due-known,.swatch.due-known{background:var(--success)}.chart-readout{min-height:5.6rem;margin-bottom:.9rem;font-size:.88rem}.chart-readout-head{justify-content:space-between;gap:1rem;margin-bottom:.35rem;display:flex}.chart-readout-counts{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:.3rem 1rem;display:flex}.chart-readout-counts>span{align-items:center;gap:.35rem;display:inline-flex}.chart-readout .day-grades{margin-top:.4rem}@media (width<=600px){.chart-readout{min-height:8.4rem}}.day-grades{border-top:1px solid var(--border);color:var(--text-2);flex-wrap:wrap;gap:.15rem .7rem;padding-top:.4rem;font-size:.8rem;display:flex}.chart-readout.short{min-height:3.4rem}.bar-labels{color:var(--muted);font-variant-numeric:tabular-nums;gap:3px;font-size:.75rem;display:flex}.bar-labels>span{text-align:center;flex:1 1 0}.bar-chart-axis{color:var(--muted);justify-content:space-between;font-size:.8rem;display:flex}.swatch{border-radius:3px;flex:none;width:.7rem;height:.7rem;display:inline-block}@keyframes grow-up{0%{transform:scaleY(0)}}