.learner-dashboard{background:#f5f5f5;min-height:100vh}.dashboard-inner{max-width:960px;padding:var(--space-3xl) var(--page-gutter);margin:0 auto}.program-header{border:1px solid var(--clr-border-light);padding:var(--space-3xl);margin-bottom:var(--space-2xl);background:#fff}.program-badge{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-secondary);margin-bottom:var(--space-xs);font-size:10px;font-weight:700}.program-title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--clr-ink);font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-md)}.program-description{font-family:var(--font-body);font-size:var(--text-base);color:var(--clr-secondary);line-height:var(--leading-normal);max-width:52ch}.section-label{font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary);margin-bottom:var(--space-lg);font-weight:600}.section-description{font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary);line-height:var(--leading-normal);margin-bottom:var(--space-lg);max-width:52ch}.primary-version-section{margin-bottom:var(--space-3xl)}.primary-version-card{border:2px solid var(--clr-border-light);width:100%;padding:var(--space-3xl);cursor:pointer;text-align:left;background:#fff;transition:all .15s}.primary-version-card:hover{border-color:var(--clr-border)}.primary-version-card.selected{border-color:var(--clr-ink)}.primary-version-header{justify-content:space-between;align-items:flex-start;gap:var(--space-xl);margin-bottom:var(--space-md);display:flex}.primary-version-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--clr-ink);font-weight:700;line-height:var(--leading-tight);margin-bottom:4px}.primary-version-subtitle{font-family:var(--font-body);font-size:var(--text-base);color:var(--clr-secondary);font-weight:600}.primary-version-description{font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary);line-height:var(--leading-normal);max-width:60ch}.current-badge{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-ink);border:1px solid var(--clr-border);white-space:nowrap;background:#f9fafb;border-radius:3px;padding:6px 12px;font-size:10px;font-weight:700}.adapted-versions-section{margin-bottom:var(--space-3xl)}.adapted-versions-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.adapted-version-card{align-items:flex-start;gap:var(--space-xs);padding:var(--space-xl);border:1px solid var(--clr-border-light);cursor:pointer;text-align:left;background:#fafbfd;flex-direction:column;transition:all .15s;display:flex}.adapted-version-card:hover{border-color:var(--clr-border);background:#fff}.adapted-version-card.selected{border-color:var(--clr-ink);background:#fff}.adapted-version-header{justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;display:flex}.adapted-version-title{font-family:var(--font-display);font-size:var(--text-base);color:var(--clr-ink);font-weight:700;line-height:var(--leading-tight)}.adapted-version-meta{font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary);line-height:var(--leading-snug)}.viewing-indicator-dot{background:var(--clr-ink);border-radius:50%;flex-shrink:0;width:8px;height:8px}.viewing-indicator{align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border:1px solid var(--clr-border-light);margin-bottom:var(--space-md);background:#fff;display:flex}.viewing-label{font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary);font-weight:600}.viewing-version{font-family:var(--font-display);font-size:var(--text-base);color:var(--clr-ink);font-weight:700}.viewing-meta{align-items:center;gap:var(--space-lg);font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary);margin-left:auto;display:flex}.module-list{background:var(--clr-border-light);border:1px solid var(--clr-border-light);flex-direction:column;gap:1px;display:flex}.module-row{justify-content:space-between;align-items:center;gap:var(--space-xl);padding:var(--space-xl) var(--space-2xl);background:#fff;transition:background .15s;display:flex}.module-row:hover{background:#fafbfd}.module-row.completed{background:#f9fafb}.module-row.in-progress{border-left:3px solid var(--clr-accent);padding-left:calc(var(--space-2xl) - 3px);background:#fef9f5}.module-info{flex:1;min-width:0}.module-number{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-secondary);margin-bottom:2px;font-size:10px;font-weight:700}.module-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--clr-ink);font-weight:700;line-height:var(--leading-tight);margin-bottom:2px}.module-meta{font-family:var(--font-body);font-size:var(--text-sm);color:var(--clr-secondary)}.module-actions{align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.module-status-badge{font-family:var(--font-body);font-size:var(--text-sm);border-radius:3px;padding:8px 16px;font-weight:600}.module-status-badge.completed{color:#166534;background:#f0fdf4;border:1px solid #86efac}.module-action-btn{font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;padding:10px 24px;font-weight:600;transition:all .15s}.module-action-btn.primary{color:#fff;background:var(--clr-accent)}@media (hover:hover){.module-action-btn.primary:hover{background:var(--clr-accent-hover)}}.module-action-btn.secondary{color:var(--clr-ink);border:1px solid var(--clr-border);background:#fff}@media (hover:hover){.module-action-btn.secondary:hover{border-color:var(--clr-ink);background:#fafbfd}}@media (max-width:767px){.dashboard-inner{padding:var(--space-xl) var(--page-gutter)}.program-header,.primary-version-card{padding:var(--space-xl)}.primary-version-header{flex-direction:column;align-items:flex-start}.adapted-versions-grid{grid-template-columns:1fr}.viewing-indicator{flex-wrap:wrap}.viewing-meta{flex-wrap:wrap;width:100%;margin-left:0}.module-row{align-items:stretch;gap:var(--space-md);flex-direction:column}.module-actions{justify-content:stretch;width:100%}.module-action-btn{flex:1}}
