/* ── Components: Buttons, Pills, Search, Inline Edit, Form, Empty State ── */

/* ── Buttons ── */
.btn-whic {
  background: var(--whic-green);
  color: #fff;
  border: none;
  padding: 10px 24px;
  border-radius: var(--whic-radius);
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  transition: background .2s;
}
.btn-whic:hover { background: var(--whic-green-light); color: #fff; }
.btn-whic-outline {
  background: transparent;
  color: var(--whic-green);
  border: 1.5px solid var(--whic-green);
  padding: 10px 24px;
  border-radius: var(--whic-radius);
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  transition: all .2s;
}
.btn-whic-outline:hover { background: var(--whic-green); color: #fff; }

/* ── Category Filter Pills ── */
.cat-pills {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.cat-pills button {
  border: 1px solid var(--whic-border);
  background: #fff;
  color: var(--whic-text-light);
  padding: 4px 14px;
  border-radius: 16px;
  font-size: 13px;
  cursor: pointer;
  transition: all .2s;
}
.cat-pills button.active { background: var(--whic-green); color: #fff; border-color: var(--whic-green); }

/* ── Search Input ── */
.search-wrap {
  position: relative;
  margin-bottom: 14px;
}
.search-wrap input {
  width: 100%;
  padding: 10px 14px 10px 38px;
  border: 1px solid var(--whic-border);
  border-radius: var(--whic-radius);
  font-size: 14px;
  outline: none;
  transition: border-color .2s;
}
.search-wrap input:focus { border-color: var(--whic-green); }
.search-wrap .search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--whic-text-light);
}
.search-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--whic-border);
  border-radius: 0 0 var(--whic-radius) var(--whic-radius);
  max-height: 200px;
  overflow-y: auto;
  z-index: 100;
  display: none;
  box-shadow: var(--whic-card-shadow);
}
.search-dropdown.show { display: block; }
.search-dropdown .search-item {
  padding: 8px 14px;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.search-dropdown .search-item:hover { background: var(--whic-bg-alt); }
.search-dropdown .search-item .item-cat { font-size: 11px; color: var(--whic-text-light); }

/* ── Inline Edit Form ── */
.inline-edit-form {
  background: var(--whic-bg-alt);
  border: 1px solid var(--whic-border);
  border-radius: var(--whic-radius);
  padding: 16px;
  margin-bottom: 12px;
  animation: fadeIn .2s ease;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.inline-edit-form .form-whic { margin: 0; }
.inline-edit-actions { display: flex; gap: 8px; margin-top: 12px; }

/* ── Form Styles ── */
.form-whic label {
  font-size: 13px;
  font-weight: 500;
  color: var(--whic-text);
  margin-bottom: 4px;
}
.form-whic input, .form-whic select {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--whic-border);
  border-radius: var(--whic-radius);
  font-size: 14px;
  font-family: 'Lato', sans-serif;
  outline: none;
}
.form-whic input:focus, .form-whic select:focus { border-color: var(--whic-green); }

/* ── Empty States ── */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  color: var(--whic-text-light);
}
.empty-state .empty-icon { font-size: 48px; margin-bottom: 12px; opacity: 0.3; }
.empty-state p { font-size: 14px; margin-bottom: 16px; }

/* ── Toast ── */
.toast-container {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 5000;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.whic-toast {
  background: var(--whic-dark);
  color: #fff;
  padding: 12px 20px;
  border-radius: var(--whic-radius);
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  animation: toastIn .3s ease;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}
.whic-toast .toast-icon { color: var(--whic-green); }
@keyframes toastIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
