.dash-page{max-width:1120px;margin:0 auto;padding:var(--spacing-12) var(--spacing-6)}.dash-header{margin-bottom:var(--spacing-8)}.dash-title{font-size:var(--typography-fontSize-4xl);font-weight:var(--typography-fontWeight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.dash-subtitle{font-size:var(--typography-fontSize-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-6)}.dash-back-link{display:inline-flex;align-items:center;gap:var(--spacing-2);font-size:var(--typography-fontSize-sm);color:var(--color-primary-base);text-decoration:none;margin-bottom:var(--spacing-6)}.dash-back-link:hover{color:var(--color-primary-hover)}.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--spacing-4);gap:var(--spacing-4);margin-bottom:var(--spacing-8)}.dash-stat-card{background:var(--color-background-card);border:1px solid var(--color-border-default);border-radius:var(--borderRadius-lg);padding:var(--spacing-5);text-align:center;box-shadow:var(--shadow-sm)}.dash-stat-value{font-size:var(--typography-fontSize-3xl);font-weight:var(--typography-fontWeight-bold);color:var(--color-primary-base);line-height:var(--typography-lineHeight-tight);margin-bottom:var(--spacing-1)}.dash-stat-label{font-size:var(--typography-fontSize-sm);color:var(--color-text-muted);font-weight:var(--typography-fontWeight-medium)}.dash-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-6)}.dash-filter-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--typography-fontFamily-body);font-size:var(--typography-fontSize-sm);font-weight:var(--typography-fontWeight-medium);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--borderRadius-md);border:1px solid var(--color-border-default);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.dash-filter-btn--active,.dash-filter-btn:hover{color:var(--color-text-primary);border-color:var(--color-primary-base)}.dash-filter-btn--active{background:var(--color-primary-base)}.dash-filter-btn--active:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:var(--spacing-5);gap:var(--spacing-5)}.dash-project-meta{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-4);flex-wrap:wrap}.dash-badge{display:inline-block;font-size:var(--typography-fontSize-xs);font-weight:var(--typography-fontWeight-semibold);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--borderRadius-full);line-height:var(--typography-lineHeight-tight)}.dash-badge--active{background:rgba(34,197,94,.15);color:var(--color-cta-green)}.dash-badge--completed{background:rgba(167,139,250,.15);color:var(--color-primary-base)}.dash-badge--planning{background:rgba(245,158,11,.15);color:var(--color-status-warning)}.dash-tag{display:inline-block;font-size:var(--typography-fontSize-xs);font-weight:var(--typography-fontWeight-medium);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--borderRadius-sm);background:var(--color-background-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle)}.dash-project-stats{display:flex;gap:var(--spacing-4);font-size:var(--typography-fontSize-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-4);font-family:var(--typography-fontFamily-mono)}.dash-project-stats span{display:flex;align-items:center;gap:var(--spacing-1)}.dash-project-updated{font-size:var(--typography-fontSize-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-4)}.dash-project-actions{display:flex;justify-content:flex-end}.dash-empty{grid-column:1/-1;text-align:center;padding:var(--spacing-12) var(--spacing-6);color:var(--color-text-muted);font-size:var(--typography-fontSize-lg)}@media (max-width:768px){.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.dash-title{font-size:var(--typography-fontSize-2xl)}}@media (max-width:480px){.dash-stats{grid-template-columns:1fr}.dash-page{padding:var(--spacing-6) var(--spacing-4)}}