<script setup lang="ts">
defineProps<{
  title: string
  description?: string
}>()
</script>

<template>
  <div class="page-header">
    <div>
      <h1>{{ title }}</h1>
      <p v-if="description">{{ description }}</p>
    </div>
    <div v-if="$slots.extra" class="header-extra">
      <slot name="extra" />
    </div>
  </div>
</template>

<style scoped>
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-3);
}

.page-header h1 {
  margin: 0;
  font-size: var(--text-3xl);
  color: var(--text-primary);
}

.page-header p {
  margin: var(--space-2) 0 0;
  color: var(--text-secondary);
}

.header-extra {
  display: flex;
  gap: var(--space-2);
  flex-shrink: 0;
  align-items: center;
  color: var(--text-secondary);
  font-size: var(--text-sm);
}

@media (max-width: 900px) {
  .page-header {
    flex-direction: column;
  }
}
</style>
