/*
 * Page Components Styles
 * Styling for page-level components
 */

/* Base page container */
.page-container {
  position: relative;
  min-height: 300px;
}

/* Default page content */
.page-default-content {
  padding: 1rem;
  text-align: center;
  color: #666;
}

/* Page transitions */
app-base-page,
[is="app-base-page"],
app-home-page,
app-not-found-page,
app-test-page {
  display: block;
  width: 100%;
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
  position: relative;
}

app-base-page.page-entering,
[is="app-base-page"].page-entering,
app-home-page.page-entering,
app-not-found-page.page-entering,
app-test-page.page-entering {
  opacity: 0;
  transform: translateY(20px);
}

app-base-page.page-active,
[is="app-base-page"].page-active,
app-home-page.page-active,
app-not-found-page.page-active,
app-test-page.page-active {
  opacity: 1;
  transform: translateY(0);
}

app-base-page.page-leaving,
[is="app-base-page"].page-leaving,
app-home-page.page-leaving,
app-not-found-page.page-leaving,
app-test-page.page-leaving {
  opacity: 0;
  transform: translateY(-20px);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

/* Loading indicator animation */
@keyframes spin {
  to { transform: rotate(360deg); }
}

.loading-spinner {
  animation: spin 1s linear infinite;
}

/* Page sections */
.page-section {
  margin-bottom: 1.5rem;
}

.page-section-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: #363B45;
}

/* Page header */
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.page-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #363B45;
}

.page-actions {
  display: flex;
  gap: 0.5rem;
}

/* Responsive adjustments */
@media (max-width: 640px) {
  .page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }

  .page-actions {
    width: 100%;
    justify-content: flex-end;
  }
}
