* {
  box-sizing: border-box;
}

:root {
  --bg: #0d0d0d;
  --card: #151515;
  --card2: #1b1b1b;
  --text: #f5f5f5;
  --muted: #888;
  --border: rgba(255, 255, 255, 0.1);
  --accent: #d8b47a;
  --danger: #ef7777;
  --success: #78d89a;
}


/* ==========================================
   CATEGORY CONTENT
========================================== */

.category-panel {
  margin-top: 25px;
}

.category-search {
  width: 280px;
  padding: 12px 15px;

  background: var(--card);
  color: var(--text);

  border: 1px solid var(--border);
  border-radius: 5px;

  outline: none;
}

.category-search:focus {
  border-color: var(--accent);
}


/* ==========================================
   ADD CATEGORY CARD
========================================== */

.category-add-card {
  display: flex;
  align-items: center;
  justify-content: center;
}


/* ==========================================
   CATEGORY GRID
========================================== */

.category-grid {
  display: grid;

  grid-template-columns:
    repeat(auto-fill, minmax(280px, 1fr));

  gap: 20px;
}


/* ==========================================
   CATEGORY CARD
========================================== */

.category-card {
  overflow: hidden;

  background: var(--card);

  border: 1px solid var(--border);

  border-radius: 6px;

  transition:
    transform 0.25s ease,
    border-color 0.25s ease;
}

.category-card:hover {
  transform: translateY(-3px);

  border-color:
    rgba(216, 180, 122, 0.4);
}


/* ==========================================
   CATEGORY IMAGE
========================================== */

.category-image {
  display: block;

  width: 100%;
  height: 240px;

  object-fit: cover;

  background: #101010;
}


/* ==========================================
   CATEGORY CONTENT
========================================== */

.category-content {
  padding: 20px;
}

.category-title {
  margin: 0 0 6px;

  color: var(--text);

  font-family: Georgia, serif;

  font-size: 21px;
  font-weight: 500;
}

.category-slug {
  margin-bottom: 12px;

  color: var(--accent);

  font-size: 11px;

  letter-spacing: 0.5px;
}

.category-description {
  min-height: 42px;

  margin: 0;

  color: var(--muted);

  font-size: 13px;

  line-height: 1.6;
}


/* ==========================================
   CATEGORY META
========================================== */

.category-meta {
  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 15px;

  margin-top: 20px;
  padding-top: 15px;

  border-top:
    1px solid var(--border);
}

.status {
  font-size: 10px;

  letter-spacing: 1px;

  text-transform: uppercase;
}

.status.active {
  color: var(--success);
}

.status.inactive {
  color: var(--danger);
}


/* ==========================================
   CARD BUTTONS
========================================== */

.card-actions {
  display: flex;
  gap: 7px;
}

.small-btn {
  padding: 7px 11px;

  background: transparent;

  color: var(--text);

  border:
    1px solid var(--border);

  border-radius: 4px;

  font-size: 10px;

  letter-spacing: 0.5px;

  cursor: pointer;

  transition: 0.2s ease;
}

.small-btn:hover {
  color: var(--accent);

  border-color: var(--accent);
}

.small-btn.delete:hover {
  color: var(--danger);

  border-color: var(--danger);
}


/* ==========================================
   MODAL
========================================== */

.category-modal {
  position: fixed;

  inset: 0;

  z-index: 99999;

  display: flex;

  align-items: center;
  justify-content: center;

  padding: 25px;

  background:
    rgba(0, 0, 0, 0.82);

  backdrop-filter: blur(8px);

  opacity: 1;

  visibility: visible;

  transition:
    opacity 0.2s ease,
    visibility 0.2s ease;
}


/* THIS WAS MISSING */

.category-modal.hidden {
  display: none !important;
}


/* ==========================================
   MODAL CARD
========================================== */

.category-modal-card {
  width: min(620px, 100%);

  max-height: 90vh;

  overflow-y: auto;

  padding: 30px;

  background: #151515;

  border:
    1px solid rgba(255, 255, 255, 0.12);

  border-radius: 6px;

  box-shadow:
    0 30px 100px
    rgba(0, 0, 0, 0.7);
}


/* ==========================================
   MODAL HEADER
========================================== */

.category-modal-header {
  display: flex;

  align-items: flex-start;
  justify-content: space-between;

  gap: 20px;

  margin-bottom: 30px;

  padding-bottom: 20px;

  border-bottom:
    1px solid var(--border);
}

.category-modal-header h2 {
  margin: 0;

  color: var(--text);

  font-family: Georgia, serif;

  font-size: 28px;

  font-weight: 500;
}


/* ==========================================
   CLOSE BUTTON
========================================== */

.modal-close {
  width: 38px;
  height: 38px;

  flex-shrink: 0;

  display: flex;

  align-items: center;
  justify-content: center;

  background: transparent;

  color: var(--text);

  border:
    1px solid var(--border);

  border-radius: 4px;

  font-size: 25px;

  cursor: pointer;

  transition: 0.2s ease;
}

.modal-close:hover {
  color: var(--accent);

  border-color: var(--accent);
}


/* ==========================================
   FORM
========================================== */

#categoryForm {
  width: 100%;
}

.form-group {
  margin-bottom: 20px;
}

.form-group > label {
  display: block;

  margin-bottom: 8px;

  color: #aaa;

  font-size: 11px;

  letter-spacing: 0.5px;
}


/* INPUTS */

#categoryForm input[type="text"],
#categoryForm input[type="number"],
#categoryForm input[type="file"],
#categoryForm textarea {
  width: 100%;

  padding: 13px 14px;

  background: #101010;

  color: var(--text);

  border:
    1px solid var(--border);

  border-radius: 4px;

  outline: none;

  font-size: 13px;

  transition:
    border-color 0.2s ease;
}

#categoryForm input:focus,
#categoryForm textarea:focus {
  border-color: var(--accent);
}

#categoryForm textarea {
  resize: vertical;

  min-height: 110px;
}


/* ==========================================
   TWO COLUMN FORM
========================================== */

.category-form-row {
  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 20px;
}


/* ==========================================
   ACTIVE TOGGLE
========================================== */

.category-toggle {
  min-height: 45px;

  display: flex !important;

  align-items: center;

  gap: 12px;

  margin: 0 !important;

  padding: 13px 14px;

  background: #101010;

  border:
    1px solid var(--border);

  border-radius: 4px;

  cursor: pointer;
}

.category-toggle input {
  width: 17px !important;
  height: 17px !important;

  margin: 0 !important;

  accent-color: var(--accent);
}


/* ==========================================
   IMAGE PREVIEW
========================================== */

.category-image-preview {
  margin-top: -5px;

  margin-bottom: 20px;
}

.category-image-preview.hidden {
  display: none !important;
}

.category-image-preview img {
  display: block;

  width: 160px;
  height: 160px;

  object-fit: cover;

  border-radius: 5px;

  border:
    1px solid var(--border);
}


/* ==========================================
   FORM ACTIONS
========================================== */

.category-form-actions {
  display: flex;

  align-items: center;
  justify-content: flex-end;

  gap: 10px;

  margin-top: 30px;

  padding-top: 20px;

  border-top:
    1px solid var(--border);
}


/* ==========================================
   PRIMARY BUTTON
========================================== */

.primary-btn {
  padding: 12px 22px;

  background: var(--accent);

  color: #111;

  border:
    1px solid var(--accent);

  border-radius: 4px;

  font-size: 11px;

  letter-spacing: 0.5px;

  cursor: pointer;

  transition: 0.2s ease;
}

.primary-btn:hover {
  transform: translateY(-1px);

  background: #e2c28d;
}

.primary-btn:disabled {
  opacity: 0.6;

  cursor: not-allowed;

  transform: none;
}


/* ==========================================
   OUTLINE BUTTON
========================================== */

.outline-btn {
  padding: 11px 18px;

  background: transparent;

  color: var(--text);

  border:
    1px solid var(--border);

  border-radius: 4px;

  font-size: 11px;

  cursor: pointer;

  transition: 0.2s ease;
}

.outline-btn:hover {
  color: var(--accent);

  border-color: var(--accent);
}


/* ==========================================
   EMPTY / LOADING
========================================== */

.category-grid > .empty,
.category-grid > .loading {
  grid-column: 1 / -1;

  padding: 60px 20px;

  text-align: center;

  color: var(--muted);
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 700px) {

  .category-search {
    width: 100%;
  }

  .category-grid {
    grid-template-columns: 1fr;
  }

  .category-form-row {
    grid-template-columns: 1fr;
  }

  .category-modal {
    padding: 15px;
  }

  .category-modal-card {
    padding: 22px;

    max-height: 94vh;
  }

  .category-form-actions {
    flex-direction: column-reverse;
  }

  .category-form-actions button {
    width: 100%;
  }

}