.page {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 20px;
  min-height: calc(100vh - 180px);
}

.page.page--wide {
  max-width: 1200px;
}

.page::before {
  content: '';
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--accent-color), transparent);
  pointer-events: none;
  z-index: 50;
}

.page__title {
  font-size: 32px;
  margin: 20px 0 10px 0;
  letter-spacing: -0.5px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.page__subtitle {
  font-size: 18px;
  color: var(--accent-color);
  margin: 0 0 30px 0;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Panel Component */
.page__panel {
  --page-panel-border: color-mix(in srgb, var(--primary-color) 32%, transparent);
  --page-panel-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);

  border: 1px solid var(--page-panel-border);
  border-radius: 0.875rem;
  background:
    radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--accent-color) 16%, transparent), transparent 45%),
    color-mix(in srgb, var(--bg-color) 88%, #1a1a1d 12%);
  box-shadow: var(--page-panel-shadow);
  padding: 1rem;
}

/* Compact - for visual panels (image frames, small boxes) */
.page__panel--compact {
  padding: 0.5rem;
}

/* Subtle - for dense data (metrics, info rows) */
.page__panel--subtle {
  padding: 0.65rem 0.75rem;
  border-radius: 0.75rem;
  background: color-mix(in srgb, var(--bg-color) 86%, #ffffff 14%);
}

/* Dense - reduced padding for structured content (tables, form filters) */
.page__panel--dense {
  padding: 0.9rem;
}

/* Divider for items within panels */
.page__divider {
  border-bottom: 1px dashed color-mix(in srgb, var(--primary-color) 32%, transparent);
}

.page__divider:last-child {
  border-bottom: none;
}