/* Shared refinements for the plant collection, brand profile and PDF archive. */
.garden-page {
  --garden-line: #e2eae5;
  --garden-ink: #173f32;
}

.garden-page .page-header {
  align-items: flex-start;
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

.garden-page .page-header-title-wrap {
  align-items: flex-start;
  min-width: 0;
}

.garden-page .page-title {
  color: var(--garden-ink);
  font-size: clamp(1.5rem, 2.3vw, 2rem);
  letter-spacing: -0.04em;
  line-height: 1.3;
}

.garden-page-subtitle {
  margin-top: 0.5rem;
  color: var(--slate-500);
  font-size: 0.875rem;
  line-height: 1.65;
}

.garden-section-step {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.375rem;
  color: var(--primary-700);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.garden-optional {
  display: inline-block;
  margin-left: 0.25rem;
  color: var(--slate-500);
  font-size: 0.6875rem;
  font-weight: 500;
  vertical-align: middle;
}

.garden-page :is(button, a, input):focus-visible {
  outline: 3px solid var(--primary-600);
  outline-offset: 4px;
}

/* Brand profile: compact status, paired settings and a clear save bar. */
.cprof-page .cprof-tier-banner {
  border-radius: 1.25rem;
  box-shadow: none;
}

.cprof-tier-content {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  min-width: 0;
}

.cprof-tier-title {
  font-size: 0.9375rem;
  font-weight: 800;
}

.cprof-tier-desc {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  line-height: 1.65;
}

.cprof-page .cprof-toggle-card {
  gap: 1rem;
  border-color: var(--garden-line);
  border-radius: 1.25rem;
  box-shadow: none;
}

.cprof-page .cprof-toggle-desc {
  margin-top: 0.375rem;
  color: var(--slate-500);
  line-height: 1.6;
}

.cprof-page .toggle-switch input:focus-visible + .toggle-slider {
  outline: 3px solid var(--primary-600);
  outline-offset: 4px;
}

.cprof-settings-grid,
.cprof-settings-column {
  display: grid;
  align-content: start;
  gap: 1.25rem;
  min-width: 0;
}

.cprof-page .cprof-card {
  min-width: 0;
  padding: 1.5rem;
  border-color: var(--garden-line);
  border-radius: 1.25rem;
  box-shadow: 0 3px 16px rgba(23, 63, 50, 0.025);
}

.cprof-page .cprof-card-header {
  align-items: flex-start;
  gap: 0.875rem;
  padding-bottom: 1rem;
  margin-bottom: 0;
  border-bottom: 1px solid var(--slate-100);
}

.cprof-page .cprof-card-header .icon-box-sm {
  background: #f0f7f2;
  color: var(--primary-700);
}

.cprof-page .cprof-card-sub {
  margin-top: 0.375rem;
  color: var(--slate-500);
  line-height: 1.65;
}

.cprof-brand-fields {
  display: grid;
  align-items: center;
  gap: 1.25rem;
}

.cprof-page .cprof-logo-picker {
  padding: 0.5rem 0;
}

.cprof-page .cprof-logo-squircle {
  border-width: 3px;
  border-radius: 1.5rem;
  box-shadow: 0 6px 18px rgba(23, 63, 50, 0.08);
}

.cprof-page .cprof-field-hint {
  color: var(--slate-500);
  font-size: 0.75rem;
  line-height: 1.6;
}

.cprof-page .cprof-colors-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
}

.cprof-page .color-chip {
  min-width: 0;
  padding: 0.875rem 0.75rem;
  gap: 0.625rem;
  border-width: 1px;
  border-radius: 0.875rem;
}

.cprof-page .color-chip.active {
  box-shadow: 0 0 0 2px var(--chip-color);
}

.cprof-page .cprof-actions-row {
  align-items: center;
  flex-direction: column;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--garden-line);
  border-radius: 1.25rem;
  background: #ffffff;
}

.cprof-save-hint {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  color: var(--slate-500);
  font-size: 0.8125rem;
}

.cprof-save-hint i { margin-top: 0.25rem; }

.cprof-action-buttons {
  display: flex;
  gap: 0.625rem;
  width: 100%;
}

.cprof-action-buttons .btn { flex: 1; }

/* PDF archive: a book cover, selectable tiles and an aligned action bar. */
.pdf-page .pdf-hero {
  display: grid;
  align-items: center;
  gap: 2rem;
  padding: 2rem;
  border-radius: 1.5rem;
  background: radial-gradient(ellipse at top right, #376b50, transparent 65%), #173f32;
  box-shadow: 0 8px 24px rgba(23, 63, 50, 0.1);
}

.pdf-archive-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  color: #d5e9cf;
  font-size: 0.75rem;
  font-weight: 700;
}

.pdf-page .pdf-hero-title {
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  letter-spacing: -0.035em;
  line-height: 1.45;
}

.pdf-page .pdf-hero-desc {
  color: #d2e2da;
  line-height: 1.8;
}

.pdf-hero-limits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 1.5rem;
}

.pdf-hero-limits span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4375rem 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 0.625rem;
  color: #edf5ef;
  font-size: 0.75rem;
}

.pdf-book-preview {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 11rem;
  min-height: 14rem;
  padding: 1.25rem;
  border-left: 0.5rem solid #d8dec7;
  border-radius: 0.25rem 0.875rem 0.875rem 0.25rem;
  background: #f7f7e9;
  color: #315a42;
  box-shadow: 8px 8px 0 #bcc8b6, 12px 16px 24px rgba(0, 0, 0, 0.2);
  transform: rotate(7deg);
  text-align: center;
}

.pdf-book-brand,
.pdf-book-caption {
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.pdf-book-preview > i {
  margin: 1.5rem 0 1rem;
  font-size: 2.75rem;
  color: #62866a;
}

.pdf-book-title { font-size: 1.125rem; font-weight: 800; line-height: 1.5; }
.pdf-book-caption { margin-top: 1.25rem; color: #687b63; }

.pdf-selection-panel {
  padding: 1.5rem;
  border: 1px solid var(--garden-line);
  border-radius: 1.5rem;
  background: #ffffff;
}

.pdf-page .pdf-controls-bar {
  padding: 0 0 1.25rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--slate-100);
}

.pdf-page .pdf-controls-title-row { flex-wrap: wrap; }
.pdf-page .pdf-controls-sub { color: var(--slate-500); line-height: 1.6; }

.pdf-page .pdf-plants-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
  padding-bottom: 0;
}

.pdf-page .plant-tile {
  gap: 0.5rem;
  padding: 0.875rem;
  border-width: 1px;
  border-color: var(--garden-line);
  border-radius: 1rem;
  box-shadow: none;
  text-align: left;
}

.pdf-page .plant-tile:hover { border-color: var(--primary-300); }
.pdf-page .plant-tile.selected { border-color: var(--primary-600); background: #f0faf3; }
.pdf-page .plant-tile-thumb { position: relative; width: 4rem; height: 4rem; border: 0; border-radius: 0.75rem; }
.pdf-page .plant-tile-thumb img { position: absolute; inset: 0; }
.pdf-page .plant-tile-name,
.pdf-page .plant-tile-sub { display: block; }
.pdf-page .plant-tile-sub { color: var(--slate-500); margin-top: 0.375rem; }
.pdf-page .plant-tile-check { width: 1.5rem; height: 1.5rem; margin-left: 0; }
.pdf-page .plant-tile:not(.selected) .plant-tile-check { color: transparent; border: 1px solid var(--slate-300); background: #ffffff; }
.pdf-page .plant-tile:disabled { cursor: wait; }

.pdf-page .bottom-action-bar {
  padding: 0.875rem 0 calc(0.875rem + env(safe-area-inset-bottom, 0px));
  border-color: var(--garden-line);
  box-shadow: 0 -4px 20px rgba(23, 63, 50, 0.04);
}

.pdf-page .bottom-action-bar-inner {
  max-width: 80rem;
  padding: 0 1rem;
}

.pdf-page .bottom-count-box { display: flex; align-items: center; gap: 0.75rem; }
.pdf-page .bottom-count-label { color: var(--slate-500); }
.pdf-page .bottom-count-value { color: var(--garden-ink); font-size: 1.0625rem; white-space: nowrap; }

.pdf-bottom-icon {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: var(--primary-50);
  color: var(--primary-700);
}

.pdf-selection-hint { display: none; color: var(--slate-500); font-size: 0.75rem; }

/* My plants: collection first, a compact membership summary and photo cards. */
.my-plants-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}

.my-plants-page .membership-summary-card {
  padding: 1.5rem;
  border-radius: 1.25rem;
  border-color: var(--member-light);
  background: linear-gradient(110deg, var(--member-surface), var(--member-surface-end));
  box-shadow: 0 4px 16px -10px var(--member-shadow);
}

.my-plants-page .membership-summary-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}

.my-plants-page .membership-tag { color: var(--member-accent); font-size: 0.6875rem; letter-spacing: 0; }
.my-plants-page .membership-tag-dot { background: var(--member-accent); }
.my-plants-page .membership-plan-title { font-size: 1.25rem; color: var(--member-ink); }
.my-plants-page .membership-plan-name { color: var(--member-accent); }
.my-plants-page .membership-icon-box { box-shadow: none; background: var(--member-icon-surface); color: var(--member-accent); }
.my-plants-page :is(.membership-stat-label, .membership-stat-unit, .membership-usage-info) { color: var(--member-muted); }
.my-plants-page :is(.membership-stat-val, .membership-stat-limit) { color: var(--member-ink); }
.my-plants-page .membership-usage-info i { color: var(--member-accent); }
.my-plants-page .membership-stats-box { margin-top: 0; padding: 0; background: transparent; backdrop-filter: none; }
.my-plants-page .membership-stat-val { font-size: 1.5rem; line-height: 1.2; }
.my-plants-page .membership-stat-limit { font-size: 1.125rem; line-height: 1.2; }
.my-plants-page .membership-bar-track { height: 0.375rem; padding: 0; background: var(--member-track); }
.my-plants-page .membership-bar-fill { background: var(--member-accent); }
.my-plants-page .membership-action-btn { padding: 0.625rem 1rem; font-size: 0.8125rem; background: #ffffff; }

.my-plants-page .plant-controls-card {
  padding: 1.5rem;
  border-color: var(--garden-line);
  border-radius: 1.25rem;
  box-shadow: none;
}

.my-plants-collection-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-bottom: 1.25rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--slate-100);
}

.my-plants-collection-header h2 { font-size: 1.0625rem; font-weight: 800; color: var(--garden-ink); }
.my-plants-page .controls-label { color: var(--slate-500); font-weight: 600; letter-spacing: 0; }
.my-plants-page .category-chip-btn { gap: 0.5rem; border-radius: 9999px; padding: 0.4375rem 0.75rem; }
.my-plants-page .category-chip-btn.btn-secondary { border-color: transparent; background: var(--slate-50); }
.category-chip-count { font-size: 0.6875rem; opacity: 0.8; }
.my-plants-page .view-mode-btn { min-height: 2rem; }

.my-plants-page .plant-grid--grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 1.25rem;
}

.my-plants-page .my-plant-card {
  position: relative;
  min-width: 0;
  border-color: var(--garden-line);
  border-radius: 1.25rem;
  box-shadow: 0 3px 16px rgba(23, 63, 50, 0.025);
}

.my-plants-page .my-plant-card:hover { border-color: #a9cbb4; box-shadow: 0 8px 24px rgba(23, 63, 50, 0.08); }
.my-plants-page .my-plant-card--grid .my-plant-thumb-box { height: auto; aspect-ratio: 4 / 3; }
.my-plants-page .my-plant-card--list .my-plant-thumb-box { width: 12rem; }
.my-plants-page .my-plant-thumb-img { position: absolute; inset: 0; }
.my-plants-page .my-plant-placeholder-img { position: absolute; inset: 0; background: linear-gradient(145deg, #edf4e9, #dcebdc); }
.my-plants-page .my-plant-dday-badge { top: auto; bottom: 0.875rem; left: 0.875rem; padding: 0.375rem 0.625rem; }
.my-plants-page .my-plant-header-row { gap: 0.75rem; }
.my-plants-page .my-plant-name { font-size: 1.1875rem; }
.my-plants-page .my-plant-species { color: var(--slate-500); font-weight: 500; }
.my-plants-page .my-plant-category-badge { font-size: 0.625rem; padding: 0.1875rem 0.5rem; }
.my-plant-open-icon { margin-top: 0.375rem; color: var(--slate-400); font-size: 0.75rem; }
.my-plant-detail-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.my-plant-detail-link:focus-visible::after { border: 3px solid var(--primary-600); border-radius: 1.25rem; }
.my-plant-visibility-row { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.875rem; }
.my-plant-visibility-row .badge { font-size: 0.625rem; }
.my-plants-page .my-plant-id-row { margin-top: 0.625rem; font-size: 0.6875rem; color: var(--slate-500); }
.my-plants-page .my-plant-actions-grid { position: relative; z-index: 2; margin-top: 1rem; padding-top: 1rem; }
.my-plants-page .my-plant-actions-grid .btn { padding: 0.625rem 0.375rem; font-size: 0.75rem; }
.my-plants-page .empty-box { border: 1px dashed #c9dcca; background: #f4f9f3; }

@media (min-width: 640px) {
  .cprof-page .cprof-actions-row { flex-direction: row; justify-content: space-between; flex-wrap: wrap; }
  .cprof-action-buttons { width: auto; }
  .cprof-action-buttons .btn { flex: initial; }
  .pdf-page .bottom-action-bar-inner { padding: 0 2rem; }
  .pdf-bottom-icon { display: flex; }
  .my-plants-page .membership-summary-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
  .my-plants-page .membership-actions-col { grid-column: 1 / -1; justify-self: start; }
}

@media (min-width: 1024px) {
  .pdf-page .bottom-action-bar-inner { padding: 0 3rem; }
  .pdf-selection-hint { display: block; max-width: 14rem; }
  .my-plants-page .membership-summary-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) auto; gap: 2rem; }
  .my-plants-page .membership-actions-col { grid-column: auto; }
}

@media (min-width: 1200px) {
  .cprof-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cprof-brand-fields { grid-template-columns: 8rem minmax(0, 1fr); }
  .cprof-brand-fields .cprof-field { margin-top: 0; }
  .pdf-page .pdf-hero { grid-template-columns: minmax(0, 1fr) 13rem; padding: 2.25rem 3rem; }
  .pdf-book-preview { display: flex; justify-self: center; }
}

@media (min-width: 1400px) {
  .cprof-page .cprof-colors-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .pdf-page .app-container { padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px)); }
  .pdf-page .bottom-action-bar { position: fixed; left: 0; right: 0; }
}

@media (max-width: 639px) {
  .garden-page .page-header { flex-wrap: wrap; gap: 0.875rem; }
  .garden-page .page-header-left { gap: 0.5rem; align-items: flex-start; }
  .garden-page .page-header-title-wrap > .icon-box { display: none; }
  .garden-page .page-header-left > .btn-icon { flex-shrink: 0; }
  .garden-page-subtitle { font-size: 0.8125rem; }
  .cprof-page :is(.cprof-card, .cprof-toggle-card, .cprof-tier-banner, .cprof-actions-row) { padding: 1.125rem; }
  .cprof-page .cprof-card-header > .icon-box-sm { display: none; }
  .cprof-page .color-chip { gap: 0.5rem; padding: 0.75rem 0.5rem; }
  .cprof-page .color-chip-name { font-size: 0.6875rem; }
  .pdf-page .pdf-hero { padding: 1.5rem; }
  .pdf-selection-panel { padding: 1rem; }
  .pdf-page .bottom-action-bar-inner { gap: 0.5rem; }
  .pdf-page .bottom-action-btns { gap: 0.375rem; }
  .pdf-page .bottom-action-btns .btn { padding: 0.625rem 0.75rem; font-size: 0.75rem; }
  .my-plants-page :is(.membership-summary-card, .plant-controls-card) { padding: 1.125rem; }
  .my-plants-page .plant-view-mode-switch { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
  .my-plants-page .view-mode-toggle-group { margin-top: 0; }
  .my-plants-page .my-plant-card--list .my-plant-thumb-box { width: 6rem; }
  .my-plants-page .my-plant-card--list .my-plant-content { padding: 0.875rem; }
  .my-plants-page .my-plant-card--list .my-plant-dday-badge { left: 0.375rem; bottom: 0.5rem; font-size: 0.625rem; padding: 0.25rem 0.375rem; }
  .my-plants-page .my-plant-card--list .my-plant-actions-grid { grid-template-columns: 1fr; gap: 0.375rem; }
}

@media (prefers-reduced-motion: reduce) {
  .garden-page :is(.my-plant-card, .my-plant-thumb-img, .plant-tile, .membership-bar-fill, .color-chip, .toggle-slider, .toggle-slider::after) { transition: none; }
  .garden-page :is(.my-plant-card:hover, .my-plant-card:hover .my-plant-thumb-img, .plant-tile:hover) { transform: none; }
}
