/* ============================================
   BAGICHA — Plants Page (plants.html)
   Plant cards, search/filter, modal
   ============================================ */

/* ---- PLANT GRID ---- */
.plant-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--sp-8); }
.plant-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-xl); overflow: hidden; transition: all var(--dur-base) var(--ease-out); cursor: pointer; display: flex; flex-direction: column; }
.plant-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

.plant-card__image { width: 100%; height: 220px; object-fit: cover; background: var(--clr-surface-alt); display: flex; align-items: center; justify-content: center; font-size: 5rem; transition: transform var(--dur-slow) var(--ease-out); }
.plant-card:hover .plant-card__image { transform: scale(1.05); }
.plant-card__image-wrapper { overflow: hidden; border-radius: var(--radius-xl) var(--radius-xl) 0 0; position: relative; }
.plant-card__badge { position: absolute; top: var(--sp-3); right: var(--sp-3); background: var(--clr-primary-500); color: #fff; font-size: var(--fs-xs); font-weight: var(--fw-semibold); padding: var(--sp-1) var(--sp-3); border-radius: var(--radius-pill); }
.plant-card__body { padding: var(--sp-5); flex: 1; display: flex; flex-direction: column; }
.plant-card__name { font-family: var(--ff-heading); font-size: var(--fs-lg); font-weight: var(--fw-semibold); margin-bottom: var(--sp-1); }
.plant-card__botanical { font-size: var(--fs-sm); color: var(--clr-text-muted); font-style: italic; margin-bottom: var(--sp-3); }
.plant-card__desc { font-size: var(--fs-sm); color: var(--clr-text-muted); line-height: var(--lh-normal); margin-bottom: var(--sp-4); flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.plant-card__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); }
.plant-card__tags { display: flex; flex-wrap: wrap; gap: var(--sp-1); }

.tag { display: inline-block; font-size: var(--fs-xs); font-weight: var(--fw-medium); padding: var(--sp-1) var(--sp-3); border-radius: var(--radius-pill); background: var(--clr-primary-50); color: var(--clr-primary-700); }
[data-theme="dark"] .tag { background: rgba(34, 197, 94, .1); color: var(--clr-primary-300); }

.plant-card__add-btn { width: 38px; height: 38px; border-radius: var(--radius-round); display: flex; align-items: center; justify-content: center; font-size: var(--fs-lg); background: var(--clr-primary-50); color: var(--clr-primary-600); border: 2px solid var(--clr-primary-200); transition: all var(--dur-fast) var(--ease-out); flex-shrink: 0; }
.plant-card__add-btn:hover { background: var(--clr-primary-500); color: #fff; border-color: var(--clr-primary-500); }
.plant-card__add-btn.added { background: var(--clr-primary-500); color: #fff; border-color: var(--clr-primary-500); }

/* ---- SEARCH & FILTER ---- */
.search-bar { display: flex; flex-wrap: wrap; gap: var(--sp-4); align-items: center; justify-content: center; margin-bottom: var(--sp-10); }
.search-bar__input-wrap { position: relative; flex: 1; min-width: 260px; max-width: 480px; }
.search-bar__icon { position: absolute; left: var(--sp-4); top: 50%; transform: translateY(-50%); font-size: var(--fs-lg); color: var(--clr-text-muted); pointer-events: none; }
.search-bar__input { width: 100%; padding: var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-10); background: var(--clr-surface); border: 2px solid var(--clr-border); border-radius: var(--radius-pill); font-size: var(--fs-base); transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.search-bar__input::placeholder { color: var(--clr-text-muted); }
.search-bar__input:focus { outline: none; border-color: var(--clr-primary-500); box-shadow: 0 0 0 4px rgba(34, 197, 94, .15); }
.search-bar__filters { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.filter-btn { padding: var(--sp-2) var(--sp-5); font-size: var(--fs-sm); font-weight: var(--fw-medium); border-radius: var(--radius-pill); border: 2px solid var(--clr-border); background: var(--clr-surface); color: var(--clr-text-muted); transition: all var(--dur-fast) var(--ease-out); }
.filter-btn:hover { border-color: var(--clr-primary-400); color: var(--clr-primary-600); }
.filter-btn.active { background: var(--clr-primary-500); border-color: var(--clr-primary-500); color: #fff; }

/* ---- MODAL ---- */
.modal-overlay { position: fixed; inset: 0; background: var(--clr-overlay); z-index: 2000; display: flex; align-items: center; justify-content: center; padding: var(--sp-6); opacity: 0; visibility: hidden; transition: all var(--dur-base) var(--ease-out); }
.modal-overlay.active { opacity: 1; visibility: visible; }
.modal { background: var(--clr-surface); border-radius: var(--radius-xl); max-width: 600px; width: 100%; max-height: 90vh; overflow-y: auto; transform: translateY(30px) scale(.96); transition: transform var(--dur-base) var(--ease-out); box-shadow: var(--shadow-xl); }
.modal-overlay.active .modal { transform: translateY(0) scale(1); }
.modal__header { position: relative; padding: 0; }
.modal__image { width: 100%; height: 250px; display: flex; align-items: center; justify-content: center; font-size: 6rem; background: var(--clr-surface-alt); border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
.modal__close { position: absolute; top: var(--sp-4); right: var(--sp-4); width: 36px; height: 36px; border-radius: var(--radius-round); background: rgba(255,255,255,.9); color: var(--clr-text); font-size: var(--fs-lg); display: flex; align-items: center; justify-content: center; transition: all var(--dur-fast) var(--ease-out); cursor: pointer; border: none; }
.modal__close:hover { background: #fff; transform: rotate(90deg); }
.modal__body { padding: var(--sp-6) var(--sp-8); }
.modal__title { font-family: var(--ff-heading); font-size: var(--fs-2xl); font-weight: var(--fw-bold); margin-bottom: var(--sp-1); }
.modal__botanical { font-size: var(--fs-sm); color: var(--clr-text-muted); font-style: italic; margin-bottom: var(--sp-4); }
.modal__desc { color: var(--clr-text-muted); line-height: var(--lh-loose); margin-bottom: var(--sp-6); }
.modal__details { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); margin-bottom: var(--sp-6); }
.modal__detail-item { background: var(--clr-surface-alt); padding: var(--sp-4); border-radius: var(--radius-lg); text-align: center; }
.modal__detail-label { font-size: var(--fs-xs); color: var(--clr-text-muted); text-transform: uppercase; letter-spacing: .08em; margin-bottom: var(--sp-1); }
.modal__detail-value { font-weight: var(--fw-semibold); font-size: var(--fs-md); }
.modal__actions { display: flex; gap: var(--sp-3); }

/* ---- NO RESULTS ---- */
.no-results { text-align: center; padding: var(--sp-16) var(--sp-4); color: var(--clr-text-muted); }
.no-results__icon { font-size: 4rem; margin-bottom: var(--sp-4); display: inline-block; }
.no-results__text { font-size: var(--fs-lg); }

/* ---- RESPONSIVE ---- */
@media (max-width: 768px) {
  .plant-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
  .modal__details { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .search-bar { flex-direction: column; align-items: stretch; }
  .search-bar__input-wrap { max-width: 100%; }
  .search-bar__filters { justify-content: center; }
  .plant-grid { grid-template-columns: 1fr; }
}
