/* Admin area. Selector prefix: admin-. Spacing is multiples of .25rem (--spacing in tokens.css). */

/* ---------- Page shell ---------- */
.admin-page { width: 100%; }
.admin-page--2xl { max-width: var(--container-2xl); }
.admin-page--3xl { max-width: var(--container-3xl); margin-inline: auto; }

.admin-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.admin-header--lg { margin-bottom: 2rem; }
.admin-heading { margin-bottom: 1.5rem; }

.admin-title { font-weight: var(--font-weight-bold); font-size: var(--text-4xl); line-height: var(--text-4xl--line-height); }
.admin-title--sm { font-size: var(--text-3xl); line-height: var(--text-3xl--line-height); }

.admin-subtitle { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-500); }
.admin-subtitle--offset { margin-top: .25rem; }
.admin-subtitle--mb-1 { margin-bottom: .25rem; }

.admin-row { display: flex; gap: .5rem; }
.admin-row--mb-6 { margin-bottom: 1.5rem; }
.admin-row--mb-4 { margin-bottom: 1rem; }
.admin-actions { display: flex; align-items: center; gap: .75rem; }
.admin-inline { display: flex; align-items: center; gap: .5rem; }
.admin-inline--mb-2 { margin-bottom: .5rem; }
.admin-between { display: flex; align-items: center; justify-content: space-between; }
.admin-split { display: flex; align-items: center; justify-content: space-between; font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-split--mb-1 { margin-bottom: .25rem; }
.admin-split--faint { color: var(--color-gray-400); }
.admin-grow { flex-grow: 1; }
.admin-filter { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
.admin-scroll-x { overflow-x: auto; }
.admin-form-inline { display: inline; }

/* ---------- Text helpers ---------- */
.admin-faint { color: var(--color-gray-400); }
.admin-muted { color: var(--color-gray-500); }
.admin-subtle { color: var(--color-gray-600); }
.admin-sm { font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-xs { font-size: var(--text-xs); line-height: var(--text-xs--line-height); }
.admin-mono { font-family: var(--font-mono); }
.admin-medium { font-weight: var(--font-weight-medium); }
.admin-semibold { font-weight: var(--font-weight-semibold); }
.admin-nowrap { white-space: nowrap; }
.admin-tabular { font-variant-numeric: tabular-nums; }
.admin-noshrink { flex-shrink: 0; }
.admin-indent { margin-left: .25rem; }
.admin-truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.admin-truncate--gap { margin-right: .5rem; }
.admin-clamp-2 { -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }

.admin-meta { font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-gray-400); }
.admin-meta--mb-1 { margin-bottom: .25rem; }
.admin-meta--mb-3 { margin-bottom: .75rem; }
.admin-meta--mb-4 { margin-bottom: 1rem; }
.admin-meta--mt-1 { margin-top: .25rem; }
.admin-note { font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-gray-500); }
.admin-note--mt { margin-top: .25rem; }
.admin-empty { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-400); }
.admin-empty--mt-4 { margin-top: 1rem; }
.admin-body-text { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-700); }
.admin-feedback__text { color: var(--color-gray-700); margin-bottom: .75rem; }
.admin-subject { font-weight: var(--font-weight-medium); color: var(--color-gray-800); }
.admin-success-note { font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-green-600); }
.admin-placeholder { color: var(--color-gray-400); font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-placeholder--lg { font-size: var(--text-lg); line-height: var(--text-lg--line-height); }
.admin-placeholder--xl { font-size: 2.25rem; line-height: var(--text-4xl--line-height); }

/* ---------- Cards ---------- */
.admin-card { background-color: var(--color-white); border-radius: var(--radius-lg); border: 1px solid var(--color-green-800); padding: 1.5rem; }
.admin-card--compact { padding: 1rem; }
.admin-card--cozy { padding: 1.25rem; }
.admin-card--flush { padding: 0; overflow: hidden; }
.admin-card--center { text-align: center; }
.admin-card--mb-4 { margin-bottom: 1rem; }
.admin-card--mb-6 { margin-bottom: 1.5rem; }
.admin-card--mb-8 { margin-bottom: 2rem; }
.admin-card--mt-6 { margin-top: 1.5rem; }
.admin-card__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.admin-card__title { font-weight: var(--font-weight-semibold); font-size: var(--text-lg); line-height: var(--text-lg--line-height); margin-bottom: 1rem; }
.admin-card__title--mb-3 { margin-bottom: .75rem; }
.admin-card__title--mb-2 { margin-bottom: .5rem; }
.admin-card__title--flush { margin-bottom: 0; }
.admin-card__heading { font-weight: var(--font-weight-semibold); font-size: var(--text-sm); line-height: var(--text-sm--line-height); margin-bottom: .5rem; }
.admin-card__heading--mb-3 { margin-bottom: .75rem; }
.admin-card__heading--gray { color: var(--color-gray-700); }
.admin-card__section { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--color-gray-100); }
.admin-section-title { font-size: var(--text-sm); line-height: var(--text-sm--line-height); font-weight: var(--font-weight-medium); color: var(--color-gray-500); margin-bottom: .5rem; }
.admin-section-title--mb-3 { margin-bottom: .75rem; }

.admin-stat { background-color: var(--color-white); border-radius: var(--radius-lg); border: 1px solid var(--color-green-800); padding: 1rem; text-align: center; }
.admin-stat__value { font-size: var(--text-3xl); line-height: var(--text-3xl--line-height); font-weight: var(--font-weight-bold); color: var(--color-green-800); }
.admin-stat__value--sm { font-size: var(--text-2xl); line-height: var(--text-2xl--line-height); }
.admin-stat__value--not-plant { color: var(--color-red-700); }
.admin-stat__value--missing { color: var(--color-red-600); }
.admin-stat__value--url-only { color: var(--color-yellow-600); }
.admin-stat__label { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-500); }
.admin-stat__label--xs { font-size: var(--text-xs); line-height: var(--text-xs--line-height); }

.admin-callout { background-color: var(--color-green-50); border-radius: var(--radius-lg); border: 1px solid var(--color-green-200); padding: 1rem; }
.admin-callout__text { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-green-700); }
.admin-conversion { background-color: var(--color-green-50); border-radius: var(--radius-lg); padding: .75rem; text-align: center; }

.admin-flash { border: 1px solid; padding: .75rem 1rem; border-radius: var(--radius-lg); margin-bottom: 1rem; font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-flash--notice { background-color: var(--color-green-50); border-color: var(--color-green-200); color: var(--color-green-800); }
.admin-flash--alert { background-color: var(--color-red-50); border-color: var(--color-red-200); color: var(--color-red-800); }

/* ---------- Grids ---------- */
.admin-grid { display: grid; }
.admin-grid--stats, .admin-grid--stats-5, .admin-grid--pair { gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-grid--split-sm, .admin-grid--split-lg, .admin-grid--triple { gap: 1.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
.admin-grid--mb-6 { margin-bottom: 1.5rem; }
.admin-grid--mb-8 { margin-bottom: 2rem; }
.admin-grid--text-sm { font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
@media (min-width: 40rem) {
  .admin-grid--stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-grid--stats-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .admin-grid--split-sm { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 48rem) {
  .admin-grid--triple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 64rem) {
  .admin-grid--split-lg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Vertical stacks (space-y) ---------- */
.admin-stack > :not(:last-child) { margin-block-end: .75rem; }
.admin-stack--none > :not(:last-child) { margin-block-end: 0; }
.admin-stack--tight > :not(:last-child) { margin-block-end: .375rem; }
.admin-stack--sm > :not(:last-child) { margin-block-end: .5rem; }
.admin-stack--lg > :not(:last-child) { margin-block-end: 1rem; }

/* ---------- Tables ---------- */
.admin-table { width: 100%; font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-thead { font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-gray-500); border-bottom: 1px solid; }
.admin-thead--shaded { background-color: var(--color-gray-50); }
.admin-thead-panel { background-color: var(--color-gray-50); border-bottom: 1px solid var(--color-gray-200); }
.admin-thead-green { background-color: var(--color-green-50); }
.admin-subhead { text-align: left; color: var(--color-gray-500); border-bottom: 1px solid; }
.admin-cell-left { text-align: left; }
.admin-cell-right { text-align: right; }
.admin-th { text-align: left; padding-block: .5rem; }
.admin-th--indent { padding-inline: .75rem; }
.admin-th-lg { text-align: left; padding: .75rem 1rem; font-weight: var(--font-weight-medium); color: var(--color-gray-600); }
.admin-th-lg--right { text-align: right; }
.admin-th-lg--green { color: var(--color-green-800); }
.admin-th-compact { padding-bottom: .5rem; font-weight: var(--font-weight-medium); }
.admin-td { padding: .75rem 1rem; }
.admin-cell { padding-block: .5rem; }
.admin-cell-thin { padding-block: .25rem; }
.admin-cell-slim { padding-block: .375rem; }
.admin-cell-name { padding: .5rem .75rem; font-weight: var(--font-weight-medium); }
.admin-cell-actions { padding-right: .75rem; white-space: nowrap; }
.admin-total { font-weight: var(--font-weight-semibold); color: var(--color-green-800); }
.admin-row-line { border-bottom: 1px solid var(--color-gray-100); }
.admin-divided > :not(:last-child) { border-bottom: 1px solid var(--color-gray-100); }
.admin-clip { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.admin-clip--xs { max-width: var(--container-xs); }
.admin-clip--md { max-width: var(--container-md); }
.admin-clip--8rem { max-width: 8rem; }
.admin-clip--10rem { max-width: 10rem; }
.admin-clip--12rem { max-width: 12rem; }
.admin-sm-cell, .admin-md-cell { display: none; }
.admin-button-row { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
.admin-merge-panel { margin-top: .5rem; }
.admin-merge-form { display: flex; gap: .25rem; align-items: center; }
@media (min-width: 40rem) {
  .admin-sm-cell { display: table-cell; }
}
@media (min-width: 48rem) {
  .admin-md-cell { display: table-cell; }
}
@media (hover: hover) {
  .admin-row-line--hover:hover { background-color: color-mix(in oklab, var(--color-green-50) 50%, transparent); }
  .admin-row-hover:hover { background-color: var(--color-gray-50); }
}

/* ---------- Forms ---------- */
.admin-label { display: block; font-size: var(--text-sm); line-height: var(--text-sm--line-height); font-weight: var(--font-weight-medium); color: var(--color-gray-700); margin-bottom: .25rem; }
.admin-label--bold { font-weight: var(--font-weight-semibold); color: inherit; }
.admin-label--small { font-size: var(--text-xs); line-height: var(--text-xs--line-height); font-weight: inherit; color: var(--color-gray-500); }

.admin-input, .admin-field {
  width: 100%; border: 1px solid var(--color-gray-300); border-radius: var(--radius-lg);
  padding: .5rem .75rem; font-size: var(--text-sm); line-height: var(--text-sm--line-height);
}
.admin-input:focus, .admin-field:focus { outline-style: none; box-shadow: 0 0 0 2px var(--color-green-500); }
.admin-input--code { font-size: var(--text-xs); line-height: var(--text-xs--line-height); font-family: var(--font-mono); }
.admin-input--grow { width: auto; flex: 1 1 0%; }
.admin-field { border-radius: var(--radius-md); }
.admin-field:focus { border-color: var(--color-green-500); }
.admin-field--auto { width: auto; }
.admin-field--textarea { padding: .75rem; resize: vertical; }
.admin-textbox { width: 100%; border: 1px solid var(--color-gray-300); border-radius: var(--radius-md); padding: .5rem .75rem; font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-textbox--code { font-family: var(--font-mono); font-size: var(--text-xs); line-height: var(--text-xs--line-height); }
.admin-textbox--inline { width: auto; flex: 1 1 0%; padding-block: .375rem; }
.admin-select-sm { font-size: var(--text-xs); line-height: var(--text-xs--line-height); border: 1px solid var(--color-gray-300); border-radius: .25rem; padding: .25rem .5rem; max-width: 200px; }
.admin-rich-text { min-height: 200px; }
.admin-remove-photo { display: flex; align-items: center; gap: .5rem; font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-red-600); margin-bottom: .75rem; }
.admin-modal__actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1rem; }
.admin-form-group { margin-bottom: 1rem; }
.admin-form-actions { display: flex; justify-content: flex-end; gap: .5rem; padding-top: .5rem; }
.admin-form-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 1.5rem; }

/* ---------- Buttons, links, pills, badges ---------- */
.admin-button { padding: .5rem 1rem; border-radius: var(--radius-lg); font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-button--green { background-color: var(--color-green-600); color: var(--color-white); }
.admin-button--gray { background-color: var(--color-gray-100); color: var(--color-gray-700); }
.admin-button--lg { padding: .625rem 1.5rem; font-weight: var(--font-weight-medium); }

.admin-chip-btn { font-size: var(--text-xs); line-height: var(--text-xs--line-height); padding: .25rem .5rem; border-radius: .25rem; border: 1px solid; }
.admin-chip-btn--edit { background-color: var(--color-green-50); color: var(--color-green-700); border-color: var(--color-green-200); }
.admin-chip-btn--merge { background-color: var(--color-yellow-50); color: var(--color-yellow-700); border-color: var(--color-yellow-200); }
.admin-chip-btn--merge-confirm { background-color: var(--color-yellow-100); color: var(--color-yellow-800); border-color: var(--color-yellow-300); }
.admin-chip-btn--delete { background-color: var(--color-red-50); color: var(--color-red-700); border-color: var(--color-red-200); }

.admin-link { color: var(--color-green-700); }
.admin-link--mid { color: var(--color-green-600); }
.admin-link--sm { font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-link--xs { font-size: var(--text-xs); line-height: var(--text-xs--line-height); }
.admin-link--gap { margin-right: .5rem; }
.admin-link-underlined { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-green-600); text-decoration-line: underline; }
.admin-back-link { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-green-600); }
.admin-user-link { font-weight: var(--font-weight-medium); color: var(--color-green-800); }
.admin-user-link--sm { font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
.admin-cancel-link { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-500); }
.admin-cancel-link--underline { text-decoration-line: underline; }
.admin-cancel-btn { padding: .5rem 1rem; font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-600); }
.admin-danger-link { font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-red-600); }
.admin-reply-btn { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-green-600); font-weight: var(--font-weight-medium); cursor: pointer; }
@media (hover: hover) {
  .admin-button--green:hover { background-color: var(--color-green-500); }
  .admin-button--gray:hover { background-color: var(--color-gray-200); }
  .admin-chip-btn--edit:hover { background-color: var(--color-green-100); }
  .admin-chip-btn--merge:hover { background-color: var(--color-yellow-100); }
  .admin-chip-btn--merge-confirm:hover { background-color: var(--color-yellow-200); }
  .admin-chip-btn--delete:hover { background-color: var(--color-red-100); }
  .admin-link:hover, .admin-user-link:hover, .admin-danger-link:hover { text-decoration-line: underline; }
  .admin-link-underlined:hover { text-decoration-line: none; }
  .admin-back-link:hover { color: var(--color-green-800); }
  .admin-cancel-link:hover { color: var(--color-gray-700); }
  .admin-cancel-btn:hover { text-decoration-line: underline; }
  .admin-reply-btn:hover { color: var(--color-green-500); }
}

.admin-period { padding: .25rem .75rem; border-radius: var(--radius-md); font-size: var(--text-sm); line-height: var(--text-sm--line-height); border: 1px solid; background-color: var(--color-white); color: var(--color-green-800); border-color: var(--color-green-800); }
.admin-period--active { background-color: var(--color-green-600); color: var(--color-white); border-color: var(--color-green-600); }
.admin-pill { padding: .375rem .75rem; font-size: var(--text-sm); line-height: var(--text-sm--line-height); border-radius: 3.40282e38px; background-color: var(--color-white); border: 1px solid var(--color-gray-300); color: var(--color-gray-600); }
.admin-pill--active { background-color: var(--color-green-600); color: var(--color-white); border-width: 0; }
.admin-filter-pill { font-size: var(--text-sm); line-height: var(--text-sm--line-height); padding: .375rem .75rem; border-radius: 3.40282e38px; background-color: var(--color-gray-100); color: var(--color-gray-700); }
.admin-filter-pill--active { background-color: var(--color-green-600); color: var(--color-white); }
@media (hover: hover) {
  .admin-period:hover { background-color: var(--color-green-50); }
  .admin-period--active:hover { background-color: var(--color-green-600); }
  .admin-pill:hover { background-color: var(--color-gray-50); }
  .admin-pill--active:hover { background-color: var(--color-green-600); }
  .admin-filter-pill:hover { background-color: var(--color-gray-200); }
  .admin-filter-pill--active:hover { background-color: var(--color-green-600); }
}

.admin-pager { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.admin-pager__link { font-size: var(--text-sm); line-height: var(--text-sm--line-height); padding: .375rem .75rem; border-radius: .25rem; background-color: var(--color-gray-100); color: var(--color-gray-700); }
.admin-pager__status { font-size: var(--text-sm); line-height: var(--text-sm--line-height); padding: .375rem .75rem; color: var(--color-gray-500); }
@media (hover: hover) {
  .admin-pager__link:hover { background-color: var(--color-gray-200); }
}

.admin-badge { font-size: var(--text-xs); line-height: var(--text-xs--line-height); padding: .125rem .5rem; border-radius: 3.40282e38px; }
.admin-badge--inline-block { display: inline-block; }
.admin-badge--success { background-color: var(--color-green-100); color: var(--color-green-700); }
.admin-badge--danger { background-color: var(--color-red-100); color: var(--color-red-700); }
.admin-badge--warning { background-color: var(--color-yellow-100); color: var(--color-yellow-700); }
.admin-badge--neutral { background-color: var(--color-gray-100); color: var(--color-gray-600); }
.admin-badge--pro { background-color: var(--color-orange-100); color: var(--color-orange-700); }

/* ---------- Modal (feedback reply) ---------- */
.admin-modal { border-radius: var(--radius-lg); border: 1px solid var(--color-green-800); padding: 0; max-width: var(--container-md); width: 100%; position: fixed; inset: 0; margin: auto; height: fit-content; }
.admin-modal::backdrop { background-color: rgb(0 0 0 / .5); }
.admin-modal__body { padding: 1.5rem; }
.admin-modal__title { font-weight: var(--font-weight-semibold); font-size: var(--text-lg); line-height: var(--text-lg--line-height); color: var(--color-green-800); margin-bottom: .25rem; }
.admin-feedback__meta { display: flex; align-items: center; justify-content: space-between; font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-gray-400); margin-bottom: 1rem; }
.admin-feedback-item { border-bottom: 1px solid var(--color-gray-100); padding-bottom: .75rem; }
.admin-feedback-item:last-child { border-width: 0; padding-bottom: 0; }

/* ---------- User journey ---------- */
.admin-journey__item { display: flex; align-items: flex-start; gap: .75rem; padding-block: .5rem; border-bottom: 1px solid var(--color-gray-50); }
.admin-journey__item:last-child { border-width: 0; }
.admin-journey__icon-wrap { flex-shrink: 0; margin-top: .125rem; }
.admin-journey__icon { display: inline-block; width: 1.5rem; height: 1.5rem; border-radius: 3.40282e38px; font-size: var(--text-xs); line-height: var(--text-xs--line-height); background-color: var(--color-gray-100); color: var(--color-gray-400); }
.admin-journey__icon--gray { background-color: var(--color-gray-100); color: var(--color-gray-500); }
.admin-journey__icon--blue { background-color: var(--color-blue-100); color: var(--color-blue-600); }
.admin-journey__icon--green { background-color: var(--color-green-100); color: var(--color-green-600); }
.admin-journey__icon--purple { background-color: var(--color-purple-100); color: var(--color-purple-600); }
.admin-journey__icon--emerald { background-color: var(--color-emerald-100); color: var(--color-emerald-600); }
.admin-journey__icon--indigo { background-color: var(--color-indigo-100); color: var(--color-indigo-600); }
.admin-journey__icon--orange { background-color: var(--color-orange-100); color: var(--color-orange-600); }
.admin-journey__icon--solid { background-color: var(--color-green-500); color: var(--color-white); }
.admin-journey__body { min-width: 0; flex: 1 1 0%; }
.admin-journey__tag { font-size: var(--text-xs); line-height: var(--text-xs--line-height); font-weight: var(--font-weight-medium); padding: .125rem .375rem; border-radius: .25rem; background-color: var(--color-gray-100); color: var(--color-gray-600); }
.admin-journey__tag--blue { background-color: var(--color-blue-100); color: var(--color-blue-700); }
.admin-journey__tag--green { background-color: var(--color-green-100); color: var(--color-green-700); }
.admin-journey__tag--purple { background-color: var(--color-purple-100); color: var(--color-purple-700); }
.admin-journey__tag--emerald { background-color: var(--color-emerald-100); color: var(--color-emerald-700); }
.admin-journey__tag--indigo { background-color: var(--color-indigo-100); color: var(--color-indigo-700); }
.admin-journey__tag--orange { background-color: var(--color-orange-100); color: var(--color-orange-700); }
.admin-journey__tag--solid { background-color: var(--color-green-600); color: var(--color-white); }
.admin-journey__text { font-size: var(--text-sm); line-height: var(--text-sm--line-height); color: var(--color-gray-600); margin-top: .125rem; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }

/* ---------- Images, code, preview ---------- */
.admin-plant-image { width: 100%; height: 12rem; border-radius: var(--radius-lg); object-fit: cover; margin-bottom: .75rem; }
.admin-plant-image--empty { background-color: var(--color-gray-100); display: flex; align-items: center; justify-content: center; }
.admin-thumb { width: 2.5rem; height: 2.5rem; border-radius: .25rem; object-fit: cover; }
.admin-thumb--lg { width: 3rem; height: 3rem; }
.admin-thumb--empty { background-color: var(--color-gray-100); display: flex; align-items: center; justify-content: center; }
.admin-code { font-size: var(--text-xs); line-height: var(--text-xs--line-height); font-family: var(--font-mono); background-color: var(--color-gray-50); padding: .75rem; border-radius: .25rem; overflow-x: auto; }
.admin-preview { border: 1px solid var(--color-gray-200); border-radius: var(--radius-lg); overflow: hidden; }
.admin-preview__frame { width: 100%; height: 500px; border: none; }

/* ---------- Charts and meters ---------- */
.admin-chart { display: flex; align-items: flex-end; gap: .25rem; height: 8rem; }
.admin-chart__col { flex: 1 1 0%; display: flex; flex-direction: column; align-items: center; position: relative; }
.admin-chart__col--labeled { gap: .25rem; }
.admin-chart__bar { width: 100%; background-color: var(--color-green-600); border-top-left-radius: .25rem; border-top-right-radius: .25rem; }
.admin-chart__bar--daily { background-color: var(--color-green-500); transition: all .15s cubic-bezier(.4, 0, .2, 1); }
.admin-chart__label { font-size: 10px; color: var(--color-gray-400); }
.admin-chart__tip { position: absolute; top: -1.5rem; display: none; font-size: var(--text-xs); line-height: var(--text-xs--line-height); background-color: var(--color-gray-900); color: var(--color-white); padding: .125rem .375rem; border-radius: .25rem; white-space: nowrap; }
.admin-progress { width: 100%; background-color: var(--color-gray-200); border-radius: 3.40282e38px; height: .75rem; }
.admin-progress__bar { background-color: var(--color-green-600); height: .75rem; border-radius: 3.40282e38px; }
.admin-meter { height: .5rem; background-color: var(--color-gray-100); border-radius: 3.40282e38px; overflow: hidden; }
.admin-meter__fill { height: 100%; background-color: var(--color-green-500); border-radius: 3.40282e38px; }
@media (hover: hover) {
  .admin-chart__col:hover .admin-chart__tip { display: block; }
  .admin-chart__bar:hover { background-color: var(--color-green-700); }
  .admin-chart__bar--daily:hover { background-color: var(--color-green-600); }
}

/* Percentage steps (dynamic bar widths/heights without inline styles). */
.admin-w-0 { width: 0%; }
.admin-w-1 { width: 1%; }
.admin-w-2 { width: 2%; }
.admin-w-3 { width: 3%; }
.admin-w-4 { width: 4%; }
.admin-w-5 { width: 5%; }
.admin-w-6 { width: 6%; }
.admin-w-7 { width: 7%; }
.admin-w-8 { width: 8%; }
.admin-w-9 { width: 9%; }
.admin-w-10 { width: 10%; }
.admin-w-11 { width: 11%; }
.admin-w-12 { width: 12%; }
.admin-w-13 { width: 13%; }
.admin-w-14 { width: 14%; }
.admin-w-15 { width: 15%; }
.admin-w-16 { width: 16%; }
.admin-w-17 { width: 17%; }
.admin-w-18 { width: 18%; }
.admin-w-19 { width: 19%; }
.admin-w-20 { width: 20%; }
.admin-w-21 { width: 21%; }
.admin-w-22 { width: 22%; }
.admin-w-23 { width: 23%; }
.admin-w-24 { width: 24%; }
.admin-w-25 { width: 25%; }
.admin-w-26 { width: 26%; }
.admin-w-27 { width: 27%; }
.admin-w-28 { width: 28%; }
.admin-w-29 { width: 29%; }
.admin-w-30 { width: 30%; }
.admin-w-31 { width: 31%; }
.admin-w-32 { width: 32%; }
.admin-w-33 { width: 33%; }
.admin-w-34 { width: 34%; }
.admin-w-35 { width: 35%; }
.admin-w-36 { width: 36%; }
.admin-w-37 { width: 37%; }
.admin-w-38 { width: 38%; }
.admin-w-39 { width: 39%; }
.admin-w-40 { width: 40%; }
.admin-w-41 { width: 41%; }
.admin-w-42 { width: 42%; }
.admin-w-43 { width: 43%; }
.admin-w-44 { width: 44%; }
.admin-w-45 { width: 45%; }
.admin-w-46 { width: 46%; }
.admin-w-47 { width: 47%; }
.admin-w-48 { width: 48%; }
.admin-w-49 { width: 49%; }
.admin-w-50 { width: 50%; }
.admin-w-51 { width: 51%; }
.admin-w-52 { width: 52%; }
.admin-w-53 { width: 53%; }
.admin-w-54 { width: 54%; }
.admin-w-55 { width: 55%; }
.admin-w-56 { width: 56%; }
.admin-w-57 { width: 57%; }
.admin-w-58 { width: 58%; }
.admin-w-59 { width: 59%; }
.admin-w-60 { width: 60%; }
.admin-w-61 { width: 61%; }
.admin-w-62 { width: 62%; }
.admin-w-63 { width: 63%; }
.admin-w-64 { width: 64%; }
.admin-w-65 { width: 65%; }
.admin-w-66 { width: 66%; }
.admin-w-67 { width: 67%; }
.admin-w-68 { width: 68%; }
.admin-w-69 { width: 69%; }
.admin-w-70 { width: 70%; }
.admin-w-71 { width: 71%; }
.admin-w-72 { width: 72%; }
.admin-w-73 { width: 73%; }
.admin-w-74 { width: 74%; }
.admin-w-75 { width: 75%; }
.admin-w-76 { width: 76%; }
.admin-w-77 { width: 77%; }
.admin-w-78 { width: 78%; }
.admin-w-79 { width: 79%; }
.admin-w-80 { width: 80%; }
.admin-w-81 { width: 81%; }
.admin-w-82 { width: 82%; }
.admin-w-83 { width: 83%; }
.admin-w-84 { width: 84%; }
.admin-w-85 { width: 85%; }
.admin-w-86 { width: 86%; }
.admin-w-87 { width: 87%; }
.admin-w-88 { width: 88%; }
.admin-w-89 { width: 89%; }
.admin-w-90 { width: 90%; }
.admin-w-91 { width: 91%; }
.admin-w-92 { width: 92%; }
.admin-w-93 { width: 93%; }
.admin-w-94 { width: 94%; }
.admin-w-95 { width: 95%; }
.admin-w-96 { width: 96%; }
.admin-w-97 { width: 97%; }
.admin-w-98 { width: 98%; }
.admin-w-99 { width: 99%; }
.admin-w-100 { width: 100%; }
.admin-h-0 { height: 0%; }
.admin-h-1 { height: 1%; }
.admin-h-2 { height: 2%; }
.admin-h-3 { height: 3%; }
.admin-h-4 { height: 4%; }
.admin-h-5 { height: 5%; }
.admin-h-6 { height: 6%; }
.admin-h-7 { height: 7%; }
.admin-h-8 { height: 8%; }
.admin-h-9 { height: 9%; }
.admin-h-10 { height: 10%; }
.admin-h-11 { height: 11%; }
.admin-h-12 { height: 12%; }
.admin-h-13 { height: 13%; }
.admin-h-14 { height: 14%; }
.admin-h-15 { height: 15%; }
.admin-h-16 { height: 16%; }
.admin-h-17 { height: 17%; }
.admin-h-18 { height: 18%; }
.admin-h-19 { height: 19%; }
.admin-h-20 { height: 20%; }
.admin-h-21 { height: 21%; }
.admin-h-22 { height: 22%; }
.admin-h-23 { height: 23%; }
.admin-h-24 { height: 24%; }
.admin-h-25 { height: 25%; }
.admin-h-26 { height: 26%; }
.admin-h-27 { height: 27%; }
.admin-h-28 { height: 28%; }
.admin-h-29 { height: 29%; }
.admin-h-30 { height: 30%; }
.admin-h-31 { height: 31%; }
.admin-h-32 { height: 32%; }
.admin-h-33 { height: 33%; }
.admin-h-34 { height: 34%; }
.admin-h-35 { height: 35%; }
.admin-h-36 { height: 36%; }
.admin-h-37 { height: 37%; }
.admin-h-38 { height: 38%; }
.admin-h-39 { height: 39%; }
.admin-h-40 { height: 40%; }
.admin-h-41 { height: 41%; }
.admin-h-42 { height: 42%; }
.admin-h-43 { height: 43%; }
.admin-h-44 { height: 44%; }
.admin-h-45 { height: 45%; }
.admin-h-46 { height: 46%; }
.admin-h-47 { height: 47%; }
.admin-h-48 { height: 48%; }
.admin-h-49 { height: 49%; }
.admin-h-50 { height: 50%; }
.admin-h-51 { height: 51%; }
.admin-h-52 { height: 52%; }
.admin-h-53 { height: 53%; }
.admin-h-54 { height: 54%; }
.admin-h-55 { height: 55%; }
.admin-h-56 { height: 56%; }
.admin-h-57 { height: 57%; }
.admin-h-58 { height: 58%; }
.admin-h-59 { height: 59%; }
.admin-h-60 { height: 60%; }
.admin-h-61 { height: 61%; }
.admin-h-62 { height: 62%; }
.admin-h-63 { height: 63%; }
.admin-h-64 { height: 64%; }
.admin-h-65 { height: 65%; }
.admin-h-66 { height: 66%; }
.admin-h-67 { height: 67%; }
.admin-h-68 { height: 68%; }
.admin-h-69 { height: 69%; }
.admin-h-70 { height: 70%; }
.admin-h-71 { height: 71%; }
.admin-h-72 { height: 72%; }
.admin-h-73 { height: 73%; }
.admin-h-74 { height: 74%; }
.admin-h-75 { height: 75%; }
.admin-h-76 { height: 76%; }
.admin-h-77 { height: 77%; }
.admin-h-78 { height: 78%; }
.admin-h-79 { height: 79%; }
.admin-h-80 { height: 80%; }
.admin-h-81 { height: 81%; }
.admin-h-82 { height: 82%; }
.admin-h-83 { height: 83%; }
.admin-h-84 { height: 84%; }
.admin-h-85 { height: 85%; }
.admin-h-86 { height: 86%; }
.admin-h-87 { height: 87%; }
.admin-h-88 { height: 88%; }
.admin-h-89 { height: 89%; }
.admin-h-90 { height: 90%; }
.admin-h-91 { height: 91%; }
.admin-h-92 { height: 92%; }
.admin-h-93 { height: 93%; }
.admin-h-94 { height: 94%; }
.admin-h-95 { height: 95%; }
.admin-h-96 { height: 96%; }
.admin-h-97 { height: 97%; }
.admin-h-98 { height: 98%; }
.admin-h-99 { height: 99%; }
.admin-h-100 { height: 100%; }

/* Analytics: search gate funnel */
.admin-card__title--mb-1 { margin-bottom: .25rem; }
.admin-gate__note { font-size: var(--text-xs); line-height: var(--text-xs--line-height); color: var(--color-gray-500); margin-bottom: .75rem; }
.admin-gate__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; text-align: center; margin-bottom: 1rem; }
.admin-gate__subtitle { font-size: var(--text-sm); line-height: var(--text-sm--line-height); font-weight: var(--font-weight-medium); margin-bottom: .25rem; }
.admin-gate__queries > :not(:last-child) { margin-bottom: .375rem; }
.admin-gate__row { display: flex; align-items: center; justify-content: space-between; font-size: var(--text-sm); line-height: var(--text-sm--line-height); }
