.app-shell { min-height: 100vh; }
.app-main { min-height: 100vh; margin-left: var(--sidebar-width); }
.app-content { width: min(100%, var(--content-max)); margin: 0 auto; padding: 40px; }
.page-heading { margin-bottom: 28px; }
.page-heading__eyebrow { margin-bottom: 8px; color: var(--color-accent); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.page-heading h2 { font-size: clamp(1.75rem, 3vw, 2.4rem); letter-spacing: -.04em; }
.page-heading p:last-child { max-width: 700px; margin-top: 10px; color: var(--color-text-muted); line-height: 1.65; }
.page-heading--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .8fr); gap: 20px; }
.dashboard-grid--spaced { margin-top: 20px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.knowledge-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; align-items: start; }
.free-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.app-overlay { display: none; }
