.admin-body{ background:var(--teal-pale); }

/* ---- login ---- */
.admin-login{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.admin-login-card{
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-soft);
  padding:40px 36px; max-width:380px; width:100%; text-align:center;
}
.admin-logo{ width:72px; height:72px; border-radius:50%; margin:0 auto 16px; }
.admin-login-card h1{ font-size:1.5rem; color:var(--teal-deep); }
.admin-login-card p{ color:var(--brown-soft); font-size:.95rem; }
.admin-login-card form{ display:flex; flex-direction:column; gap:10px; margin-top:18px; }
.admin-login-card label{ text-align:left; font-weight:700; font-size:.85rem; color:var(--brown-soft); }
.admin-login-card input, .admin-modal-card input{
  padding:.7em .9em; border-radius:12px; border:2px solid var(--teal-light);
  font-family:var(--font-body); font-size:1rem;
}
.admin-login-card input:focus, .admin-modal-card input:focus{ outline:none; border-color:var(--teal-deep); }
.admin-login-card .btn{ margin-top:8px; justify-content:center; }
.admin-back{ display:inline-block; margin-top:18px; font-size:.85rem; color:var(--teal-deep); text-decoration:none; }
.admin-error{ color:#b5342c; background:#fdeceb; padding:.6em .8em; border-radius:10px; font-size:.85rem; margin:6px 0 0; }

/* ---- dashboard ---- */
.admin-header{ background:#fff; border-bottom:1px solid rgba(74,50,32,.08); }
.admin-header-row{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; flex-wrap:wrap; gap:10px; }
.admin-header-actions{ display:flex; gap:10px; flex-wrap:wrap; }
@media (max-width:480px){
  .admin-header-row{ justify-content:center; text-align:center; }
  .admin-header-actions{ justify-content:center; width:100%; }
}
.admin-main{ padding:36px 24px 80px; }
.admin-intro{ color:var(--brown-soft); max-width:60ch; margin-bottom:28px; }

.admin-categories{ display:flex; flex-direction:column; gap:28px; }
.admin-category{ background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); padding:22px; }
.admin-category h2{ font-size:1.15rem; color:var(--teal-deep); margin-bottom:4px; }
.admin-upload-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:14px 0 18px; }
.admin-upload-row input[type=file]{ font-size:.9rem; }
.upload-status{ font-size:.85rem; color:var(--brown-soft); }
.upload-status.error{ color:#b5342c; font-weight:700; }
.upload-status.success{ color:var(--teal-deep); font-weight:700; }

.admin-thumbs{ display:flex; flex-wrap:wrap; gap:12px; }
.admin-thumb{
  position:relative; width:110px; height:110px; border-radius:12px; overflow:hidden;
  background:var(--teal-pale); border:1px solid rgba(74,50,32,.1);
}
.admin-thumb img, .admin-thumb video{ width:100%; height:100%; object-fit:cover; cursor:pointer; }
.admin-thumb .video-badge{
  position:absolute; bottom:4px; left:4px; background:rgba(0,0,0,.55); color:#fff;
  font-size:.65rem; padding:2px 6px; border-radius:6px;
}
.admin-thumb .del-btn{
  position:absolute; top:4px; right:4px; width:24px; height:24px; border-radius:50%;
  background:rgba(74,50,32,.85); color:#fff; border:none; cursor:pointer; font-size:.9rem; line-height:1;
}
.admin-thumb .del-btn:hover{ background:#b5342c; }
.admin-empty{ color:var(--brown-soft); font-size:.85rem; font-style:italic; }

/* ---- modal ---- */
.admin-modal{
  position:fixed; inset:0; background:rgba(74,50,32,.45); display:flex;
  align-items:center; justify-content:center; z-index:100; padding:20px;
}
.admin-modal-card{ background:#fff; border-radius:var(--radius-md); padding:28px; max-width:360px; width:100%; }
.admin-modal-card h2{ color:var(--teal-deep); font-size:1.2rem; }
.admin-modal-card form{ display:flex; flex-direction:column; gap:10px; margin-top:10px; }
.admin-modal-card label{ font-weight:700; font-size:.85rem; color:var(--brown-soft); }
.admin-modal-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:8px; }

/* ---- lightbox ---- */
.admin-lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.85); z-index:200;
  display:flex; align-items:center; justify-content:center; padding:30px;
}
#lightbox-content img, #lightbox-content video{ max-width:100%; max-height:85vh; border-radius:10px; }
#lightbox-close{
  position:absolute; top:18px; right:24px; background:none; border:none; color:#fff;
  font-size:2rem; cursor:pointer; line-height:1;
}
