/* Progress */
.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-bottom:var(--sp-6)}
.progress-stat{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-xl);padding:var(--sp-5);text-align:center}
.progress-stat__value{font-family:var(--ff-heading);font-size:var(--fs-2xl);font-weight:var(--fw-bold);margin-bottom:var(--sp-1)}
.progress-stat__label{font-size:var(--fs-xs);color:var(--clr-text-muted)}
.progress-stat__change{font-size:var(--fs-xs);font-weight:var(--fw-medium);margin-top:var(--sp-2)}
.progress-stat__change--up{color:var(--clr-success)}
.progress-stat__change--down{color:var(--clr-error)}
.progress-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--sp-6)}
.chart-container{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-xl);padding:var(--sp-6)}
.chart-container__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}
.chart-container__title{font-size:var(--fs-base);font-weight:var(--fw-semibold)}
.chart-canvas{width:100%;height:200px;position:relative}
.chart-bar{display:flex;align-items:flex-end;gap:var(--sp-2);height:100%;padding-top:var(--sp-4)}
.chart-bar__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}
.chart-bar__fill{width:100%;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:linear-gradient(180deg,var(--clr-accent),var(--clr-accent-light));transition:height var(--dur-slow) var(--ease-out);min-height:4px}
.chart-bar__label{font-size:0.65rem;color:var(--clr-text-muted)}
.chart-bar__value{font-size:var(--fs-xs);font-weight:var(--fw-semibold)}
/* Heatmap */
.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.heatmap__cell{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--clr-cream-dark);transition:background var(--dur-fast)}
.heatmap__cell--l1{background:rgba(232,168,56,0.2)}
.heatmap__cell--l2{background:rgba(232,168,56,0.4)}
.heatmap__cell--l3{background:rgba(232,168,56,0.65)}
.heatmap__cell--l4{background:var(--clr-accent)}
/* Goals */
.goal-item{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-3)}
.goal-item__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}
.goal-item__title{font-size:var(--fs-sm);font-weight:var(--fw-medium)}
.goal-item__progress{font-size:var(--fs-xs);color:var(--clr-text-muted)}
.goal-item.is-completed{opacity:.6}
.goal-item.is-completed .goal-item__title{text-decoration:line-through}
/* Log list */
.log-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--clr-border)}
.log-item:last-child{border-bottom:none}
.log-item__subject{font-size:var(--fs-sm);font-weight:var(--fw-medium);flex:1}
.log-item__duration{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--clr-accent-dark)}
.log-item__date{font-size:var(--fs-xs);color:var(--clr-text-muted)}
@media(max-width:991px){.progress-grid{grid-template-columns:1fr}.progress-stats{grid-template-columns:1fr}}
