.dashboard-shell { display: grid; gap: 32px; }
.dashboard-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.dashboard-heading .page-title { margin-block: 10px; }
.dashboard-heading .page-copy { margin: 0; }
.practice-stats { display: grid; grid-template-columns: repeat(4, 1fr); padding: 26px 0; border-block: 1px solid var(--line-dark); }
.practice-stats > div { display: grid; gap: 4px; padding-inline: 30px; border-left: 1px solid var(--line-dark); }
.practice-stats > div:first-child { border-left: 0; padding-left: 0; }
.practice-stats strong { font-size: 2rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.practice-stats span { font-size: .75rem; color: var(--muted); }
.dashboard-grid-two { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 44px; }
.dashboard-side-stack { display: grid; gap: 28px; }
.dashboard-panel h2 { font-family: var(--font-display); font-size: 1.65rem; font-weight: 400; margin-block: 8px 20px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; }
.section-heading > svg { width: 26px; height: 26px; color: var(--accent); }
.profile-inline-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: end; }
.profile-inline-grid > button { grid-column: 1 / -1; }
.dashboard-profile-status { color: var(--muted); font-size: .8rem; margin-block: 10px 0; }
#grade-required-message { display: none; }
.session-row { display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line-dark); }
.session-row p { margin: 4px 0 0; }
.recent-work .empty-state { display: grid; align-content: center; min-height: 210px; text-align: center; }
.recent-work .empty-state p:first-child { color: var(--text-main); font-family: var(--font-display); font-size: 1.5rem; margin-bottom: 6px; }
.recent-work .empty-state p { font-size: .85rem; }
.recent-work > .text-link { margin-top: 12px; }
.skill-tracks { display: grid; gap: 12px; }
.skill-tracks p { font-size: .78rem; margin: 0; }
.skill-track-header { display: flex; justify-content: space-between; font-size: .78rem; margin-bottom: 8px; }
.progress-bar { height: 5px; overflow: hidden; border-radius: 2px; background: #e1e4d6; }
.progress-fill { height: 100%; background: var(--accent); }
.recommendation-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .8rem; margin-top: 12px; border-top: 1px solid var(--line-dark); }
@media(max-width: 850px) { .dashboard-grid-two { grid-template-columns: 1fr; gap: 32px; } .dashboard-side-stack { grid-template-columns: 1fr 1fr; gap: 28px; } }
@media(max-width: 600px) { .dashboard-heading { align-items: flex-start; flex-direction: column; gap: 18px; } .dashboard-shell { gap: 24px; } .practice-stats { grid-template-columns: 1fr 1fr; row-gap: 22px; padding: 22px 0; } .practice-stats > div { padding-inline: 20px; } .practice-stats > div:nth-child(3) { border: 0; padding-left: 0; } .dashboard-side-stack { grid-template-columns: 1fr; } .recent-work .empty-state { min-height: 175px; } }
.dashboard-heading {margin-bottom:24px;}
.practice-stats {margin-block:18px 12px;padding:12px 0 24px;background:transparent;border-bottom:1px solid var(--line-dark);}
.practice-stats > div {text-align:center;}
.practice-stats strong {font:400 2rem var(--font-display);}
.practice-stats > div + div {border-left:1px solid var(--line-dark);}
#dashboard-data-status {font-size:.75rem;}
.readiness-section {padding:18px 0 26px;border-bottom:1px solid var(--line-dark);}
.readiness-section h2,.activity-section h2 {font:400 2rem var(--font-display);margin:0;}
.readiness-section details {position:relative;max-width:470px;font-size:.85rem;}
.readiness-section summary {cursor:pointer;color:var(--action-dark);padding:12px;}
.readiness-row {display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:16px;border-bottom:1px solid var(--line-dark);padding:12px 4px;font-size:.85rem;color:var(--text-soft);}
.readiness-row strong {font:400 1.1rem var(--font-display);color:var(--text-main);}
#readiness-summary {font-size:.85rem;}
.activity-section {padding:24px 0 16px;}
.week-controls {display:flex;align-items:center;gap:8px;font-size:.8rem;}
.weekly-timeline {display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;margin:20px 0 14px;}
.week-bar {min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:10px;padding:8px 2px;background:transparent;border:1px solid transparent;color:var(--text-soft);font-size:.65rem;}
.week-bar[aria-pressed="true"] {border-color:var(--action-dark);}
.week-bar-fill {display:block;background:var(--action-dark);width:20px;}
.weekly-days {display:grid;grid-template-columns:repeat(7,1fr);gap:10px;}
.day-activity {border:1px solid var(--line-dark);background:transparent;padding:10px 2px;min-height:44px;font-size:.8rem;color:var(--text-soft);}
.day-activity.practiced {background:#f1dce2;border-color:#b8667f;color:#7d0929;}
.activity-detail {font-size:.8rem;min-height:24px;color:var(--text-soft);}
.dashboard-grid-two {grid-template-columns:1.1fr 1fr;gap:32px;border-top:1px solid var(--line-dark);padding-top:24px;}
.dashboard-side-stack {display:grid;grid-template-columns:1fr;gap:16px;}
.dashboard-panel {background:transparent;border:0;padding:0;}
.section-heading details p {background:#fffdf8;border:1px solid var(--line-dark);padding:16px;}
@media(max-width:760px) { .dashboard-grid-two {grid-template-columns:1fr;} .readiness-row {grid-template-columns:1fr 1fr;} .readiness-row > span:last-child {grid-column:1/-1;} .weekly-timeline {overflow:auto;grid-template-columns:repeat(12,minmax(45px,1fr));} .section-heading {flex-wrap:wrap;gap:10px;} .practice-stats strong {font-size:1.65rem;} .practice-stats > div:nth-child(3) {border-left:0;} }
.dashboard-shell {gap:16px;}
.dashboard-shell > * {min-width:0;}
.dashboard-heading {margin-bottom:0;}
.activity-section {padding-top:10px;}
.practice-stats {margin-top:0;}
@media(max-width:760px) { .weekly-timeline {max-width:100%;} .readiness-row {font-size:.8rem;} }
@media(min-width:1000px) {
 .dashboard-shell {grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px 32px;}
 .dashboard-heading,.practice-stats,#grade-required-message,#dashboard-data-status,.dashboard-grid-two {grid-column:1/-1;}
 .readiness-section {grid-column:1;border-bottom:0;padding:8px 0;}
 .activity-section {grid-column:2;border-left:1px solid var(--line-dark);padding:8px 0 0 28px;}
 .activity-section .section-heading {flex-wrap:wrap;}
 .activity-section .week-controls {width:100%;justify-content:space-between;}
 .weekly-timeline {grid-template-columns:repeat(12,minmax(33px,1fr));overflow:auto;gap:2px;margin-top:10px;}
 .week-bar {font-size:.57rem;min-height:78px;}
 .readiness-row {grid-template-columns:.8fr 1fr 1.1fr;gap:10px;}
}
.recent-work .empty-state {min-height:120px;background:transparent;border:1px solid var(--line-dark);}
.weekly-timeline {grid-template-columns:repeat(6,minmax(0,1fr));}
.week-bar {font-size:.7rem;min-width:44px;}
@media(min-width:1000px) { .weekly-timeline {grid-template-columns:repeat(6,minmax(44px,1fr));gap:8px;} .week-bar {font-size:.7rem;} }
@media(max-width:760px) { .weekly-timeline {grid-template-columns:repeat(6,minmax(44px,1fr));} }
