.container {
  max-width: var(--container-max);
  padding-inline: var(--space-6);
  margin-inline: auto;
}

.container--narrow { max-width: 800px; }
.container--wide   { max-width: 1440px; }

/* Dashboard two-column layout */
.dashboard-layout {
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr;
  min-height: 100vh;
}

.page-main {
  padding: var(--space-8);
  overflow-x: hidden;
}

/* Grid helpers */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-6); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); }

/* Stack (vertical flex) */
.stack       { display: flex; flex-direction: column; }
.stack--sm   { gap: var(--space-2); }
.stack--md   { gap: var(--space-4); }
.stack--lg   { gap: var(--space-8); }

/* Row (horizontal flex) */
.row         { display: flex; align-items: center; }
.row--between { justify-content: space-between; }
.row--center  { justify-content: center; }
.row--gap-sm  { gap: var(--space-2); }
.row--gap-md  { gap: var(--space-4); }
.row--gap-lg  { gap: var(--space-6); }

/* Page header */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--color-border);
}

.page-header__title { font-size: var(--text-3xl); font-weight: 700; }
.page-header__sub {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-top: var(--space-1);
}

/* Section header */
.section-header { margin-bottom: var(--space-6); }
.section-header h2, .section-header h3 { margin-bottom: var(--space-2); }

/* Divider */
.divider { height: 1px; background: var(--color-border); margin-block: var(--space-6); }

/* Spacers */
.mt-auto { margin-top: auto; }
.mb-4  { margin-bottom: var(--space-4); }
.mb-6  { margin-bottom: var(--space-6); }
.mb-8  { margin-bottom: var(--space-8); }
.mt-4  { margin-top: var(--space-4); }
.mt-6  { margin-top: var(--space-6); }
.mt-8  { margin-top: var(--space-8); }
.gap-2 { gap: var(--space-2); }
.gap-4 { gap: var(--space-4); }
.gap-6 { gap: var(--space-6); }

/* Responsive */
@media (max-width: 1024px) {
  .dashboard-layout { grid-template-columns: 64px 1fr; }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .dashboard-layout { grid-template-columns: 1fr; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .page-main { padding: var(--space-4); }
  .page-header { flex-direction: column; align-items: flex-start; gap: var(--space-4); }
}
