/* =========================================================
   POLISH MODULES
   Auto consolidated in Bản 8D.1
   ========================================================= */



/* ===== SOURCE: assets/css/home-polish.css ===== */
/* =========================================================
   Làng Ẩn Dật - BẢN 8B.4 HOME / MENU / TOP DONATE
   Polish mặt tiền: trang chủ, menu trái, Top Donate, CTA.
   Chỉ CSS, không đổi logic.
   ========================================================= */

/* Trang chủ thoáng hơn */
body[data-page="home"] .page-shell{
  pointer-events:none;
}

body[data-page="home"] .side-menu,
body[data-page="home"] .home-center,
body[data-page="home"] .home-donate-card,
.mobile-menu-btn,
.drawer-backdrop{
  pointer-events:auto;
}

/* Menu trái cân hơn */
@media(min-width:1101px){
  body[data-page="home"] .side-menu{
    width:170px!important;
    padding:14px 11px!important;
    gap:9px!important;
    border-radius:24px!important;
    background:linear-gradient(180deg,rgba(8,8,12,.38),rgba(30,18,16,.24))!important;
  }

  body[data-page="home"] .home-donate-card{
    width:286px!important;
    padding:16px!important;
    border-radius:24px!important;
  }

  body[data-page="home"] .home-center{
    width:min(430px,calc(100vw - 560px))!important;
    gap:16px!important;
  }
}

.side-logo{
  width:112px!important;
  margin-bottom:9px!important;
}

.side-logo img{
  width:112px!important;
  max-height:116px!important;
  object-fit:contain!important;
}

.side-links{
  gap:7px!important;
}

.menu-btn{
  position:relative!important;
  height:36px!important;
  border-radius:999px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  overflow:hidden!important;
}

.menu-btn::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  transform:translateX(-130%);
  transition:transform .38s ease;
}

.menu-btn:hover::after{
  transform:translateX(130%);
}

.menu-btn.active{
  box-shadow:0 0 0 1px rgba(255,238,170,.24),0 0 18px rgba(245,213,137,.20)!important;
}

/* User block trong menu */
.side-user,
.user-pill,
.account-box{
  border-radius:16px!important;
  background:rgba(0,0,0,.16)!important;
  border:1px solid rgba(245,213,137,.13)!important;
  padding:8px!important;
}

.account-name,
.user-name,
#currentUserName{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* CTA trung tâm */
.home-center{
  z-index:30!important;
}

.home-action{
  position:relative!important;
  min-height:62px!important;
  border-radius:20px!important;
  font-size:18px!important;
  font-weight:1000!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  overflow:hidden!important;
}

.home-action::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 48%,rgba(0,0,0,.10));
  pointer-events:none;
}

.home-action::after{
  content:"";
  position:absolute;
  inset:-45%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transform:rotate(18deg) translateX(-130%);
  transition:transform .5s ease;
  pointer-events:none;
}

.home-action:hover::after{
  transform:rotate(18deg) translateX(130%);
}

/* Top Donate gọn và rõ */
.home-donate-card{
  overflow:hidden!important;
}

.home-donate-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 0%,rgba(245,213,137,.11),transparent 36%);
}

.donate-head h2{
  margin:0!important;
  font-size:22px!important;
  letter-spacing:.035em!important;
}

.donate-main{
  margin-top:10px!important;
  grid-template-columns:112px minmax(0,1fr)!important;
  align-items:center!important;
}

.qr-img{
  width:112px!important;
  height:112px!important;
  padding:3px!important;
  border-radius:15px!important;
}

.bank-info,
.donate-info,
.donate-text{
  font-size:12px!important;
  line-height:1.45!important;
}

.donate-list,
.top-donate-list{
  margin-top:12px!important;
  display:grid!important;
  gap:8px!important;
}

.donate-row{
  min-height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  padding:8px 10px!important;
  border-radius:14px!important;
  background:rgba(0,0,0,.18)!important;
  border:1px solid rgba(245,213,137,.12)!important;
}

.donate-row b,
.donate-row span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Mobile trang chủ */
@media(max-width:1100px){
  .mobile-menu-btn{
    top:12px!important;
    left:12px!important;
    min-height:40px!important;
    padding:0 14px!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#ffeaa1,#d8a542)!important;
    color:#1b1005!important;
    border:1px solid rgba(255,238,170,.72)!important;
    box-shadow:0 10px 26px rgba(0,0,0,.28)!important;
    z-index:210!important;
  }

  body.drawer-open .side-menu{
    border-radius:0 24px 24px 0!important;
    background:linear-gradient(180deg,rgba(8,8,12,.86),rgba(32,20,18,.82))!important;
    backdrop-filter:blur(12px)!important;
    -webkit-backdrop-filter:blur(12px)!important;
  }

  body .home-center{
    top:38%!important;
    width:min(390px,calc(100vw - 28px))!important;
    gap:12px!important;
  }

  body .home-donate-card{
    left:12px!important;
    right:12px!important;
    bottom:12px!important;
    max-height:38vh!important;
    border-radius:22px!important;
  }
}

@media(max-width:620px){
  body .home-center{
    top:35%!important;
    grid-template-columns:1fr!important;
    width:min(310px,calc(100vw - 28px))!important;
  }

  .home-action{
    min-height:54px!important;
    font-size:16px!important;
  }

  body .home-donate-card{
    max-height:42vh!important;
    padding:12px!important;
  }

  .donate-main{
    grid-template-columns:86px minmax(0,1fr)!important;
    gap:10px!important;
  }

  .qr-img{
    width:86px!important;
    height:86px!important;
  }

  .donate-head h2{
    font-size:18px!important;
  }
}



/* ===== SOURCE: assets/css/bangchien-polish.css ===== */
/* =========================================================
   Làng Ẩn Dật - BẢN 8B.5 BANG CHIẾN POLISH
   Chỉ polish giao diện Bang Chiến, không đổi logic.
   ========================================================= */

.scrim-shell{
  border-radius:24px!important;
}

.scrim-head{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(0,0,0,.025))!important;
}

.scrim-head h1{
  letter-spacing:.035em!important;
}

.scrim-grid{
  align-items:start!important;
}

/* Card Bang Chiến rõ nhóm hơn */
.scrim-card{
  position:relative!important;
  overflow:hidden!important;
}

.scrim-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 0%,rgba(245,213,137,.075),transparent 42%);
}

.scrim-card > *{
  position:relative;
  z-index:1;
}

.scrim-card h2,
.scrim-card h3,
.bc-card-title,
.bc-section-title{
  color:#ffe9a8!important;
  margin-top:0!important;
  letter-spacing:.025em!important;
}

/* Form tạo lịch */
.bc-form-grid label,
.scrim-form-grid label{
  display:grid!important;
  gap:6px!important;
}

.bc-form-grid label span,
.scrim-form-grid label span,
.scrim-card label span{
  color:rgba(255,247,223,.74)!important;
  font-size:11px!important;
  font-weight:800!important;
}

#bcNote{
  min-height:78px!important;
  resize:vertical!important;
}

/* Các nút Bang Chiến đều hơn */
.bc-actions button,
.scrim-actions button,
#bcSaveSchedule,
#bcToggleOpen,
#bcResetSchedule,
#bcRegisterBtn,
#bcApprovePoint,
#bcMarkAbsent,
#bcClearSelection,
#bcAddX,
#bcRemoveX,
#bcRemoveTrack,
#bcRankX{
  min-height:38px!important;
  border-radius:14px!important;
  padding:0 14px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  white-space:nowrap!important;
}

/* Khu trạng thái lịch */
.bc-current,
.scrim-current,
.bc-schedule-box{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.18)!important;
  background:rgba(0,0,0,.16)!important;
  padding:12px!important;
}

/* Filter phái */
.bc-filter-btn{
  min-height:30px!important;
  padding:0 11px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  border:1px solid rgba(245,213,137,.24)!important;
  background:rgba(0,0,0,.20)!important;
  color:#fff5d8!important;
  font-size:10px!important;
  font-weight:900!important;
}

.bc-filter-btn img,
.bc-sect-chip img,
.bc-phai img,
.identity-sect img{
  width:16px!important;
  height:16px!important;
  object-fit:contain!important;
}

.bc-filter-btn.active{
  background:linear-gradient(180deg,#fff0aa,#d4a33c)!important;
  color:#1a1005!important;
  border-color:rgba(255,238,170,.72)!important;
  box-shadow:0 0 0 1px rgba(255,238,170,.22),0 0 14px rgba(245,213,137,.20)!important;
}

/* Tổng số phái */
#bcSectCounts{
  padding:10px!important;
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.12)!important;
  background:rgba(0,0,0,.12)!important;
}

.bc-sect-chip{
  min-height:30px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  padding:0 10px!important;
  border-radius:999px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:rgba(0,0,0,.18)!important;
}

.bc-count{
  min-width:20px!important;
  height:20px!important;
  display:inline-grid!important;
  place-items:center!important;
  border-radius:999px!important;
  background:rgba(245,213,137,.18)!important;
  color:#ffe9a8!important;
  font-size:10px!important;
}

/* Danh sách đăng ký / không tham gia */
#bcRegistrationList,
#bcAbsentList,
.bc-list{
  display:grid!important;
  gap:9px!important;
  min-height:90px!important;
}

.bc-row,
.bc-x-row,
.bc-reg-row{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:linear-gradient(90deg,rgba(255,255,255,.055),rgba(0,0,0,.18))!important;
  padding:10px!important;
  min-height:54px!important;
}

.bc-row{
  display:grid!important;
  grid-template-columns:34px minmax(120px,1fr) minmax(130px,.9fr) minmax(110px,.75fr) minmax(92px,.65fr)!important;
  gap:10px!important;
}

.bc-x-row{
  display:grid!important;
  grid-template-columns:34px minmax(120px,1fr) minmax(130px,.9fr) minmax(110px,.75fr) minmax(86px,.55fr) minmax(92px,.55fr)!important;
  gap:10px!important;
}

.bc-name{
  min-width:0!important;
  font-weight:950!important;
  color:#8ee8ff!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.bc-phai{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  overflow:hidden!important;
}

.bc-phai .identity-sect{
  max-width:100%!important;
}

.bc-team,
.bc-status,
.bc-x{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.bc-status{
  min-height:26px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  padding:0 9px!important;
  font-size:10px!important;
  font-weight:900!important;
}

.bc-status.pending{
  color:#ffe9a8!important;
  background:rgba(245,213,137,.13)!important;
  border:1px solid rgba(245,213,137,.20)!important;
}

.bc-status.absent{
  color:#ffb3bf!important;
  background:rgba(255,80,110,.13)!important;
  border:1px solid rgba(255,110,130,.22)!important;
}

/* Checkbox đẹp hơn */
.bc-check{
  display:grid!important;
  place-items:center!important;
}

.bc-check input{
  position:absolute!important;
  opacity:0!important;
  pointer-events:none!important;
}

.bc-check span{
  width:22px!important;
  height:22px!important;
  border-radius:8px!important;
  border:1px solid rgba(245,213,137,.38)!important;
  background:rgba(0,0,0,.22)!important;
  display:block!important;
  position:relative!important;
}

.bc-check input:checked + span{
  background:linear-gradient(180deg,#ffeaa1,#d8a542)!important;
  border-color:rgba(255,238,170,.72)!important;
}

.bc-check input:checked + span::after{
  content:"✓";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#1a1005;
  font-size:13px;
  font-weight:1000;
}

/* Empty box không chạm filter */
.bc-empty,
.scrim-empty{
  margin-top:12px!important;
  min-height:58px!important;
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  border-radius:16px!important;
  border:1px dashed rgba(245,213,137,.22)!important;
  background:rgba(0,0,0,.13)!important;
  color:rgba(255,247,223,.72)!important;
  font-weight:800!important;
}

/* Mobile Bang Chiến */
@media(max-width:900px){
  .bc-row,
  .bc-x-row{
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:8px!important;
  }

  .bc-phai,
  .bc-team,
  .bc-status,
  .bc-x{
    grid-column:2/-1!important;
    justify-content:flex-start!important;
  }

  .bc-actions,
  .scrim-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }

  .bc-actions button,
  .scrim-actions button{
    width:100%!important;
  }
}

@media(max-width:560px){
  .bc-actions,
  .scrim-actions{
    grid-template-columns:1fr!important;
  }

  .bc-filter-btn{
    min-height:32px!important;
    font-size:9px!important;
    padding:0 9px!important;
  }

  .bc-row,
  .bc-x-row{
    padding:9px!important;
  }
}



/* ===== SOURCE: assets/css/admin-polish.css ===== */
/* =========================================================
   Làng Ẩn Dật - BẢN 8B.6 ADMIN POLISH
   Chỉ polish giao diện Admin quản lý thành viên, không đổi logic.
   ========================================================= */

.admin-shell{
  border-radius:24px!important;
}

.admin-head{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(0,0,0,.025))!important;
}

.admin-head h1{
  letter-spacing:.035em!important;
}

/* Grid admin rõ trái/phải */
.admin-grid{
  align-items:start!important;
}

.admin-card{
  position:relative!important;
  overflow:hidden!important;
}

.admin-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 0%,rgba(245,213,137,.065),transparent 42%);
}

.admin-card > *{
  position:relative;
  z-index:1;
}

.admin-card h2,
.admin-card h3,
.admin-card-title{
  color:#ffe9a8!important;
  margin-top:0!important;
}

/* Form / tool cards */
.admin-form,
.admin-tools,
.admin-card form{
  display:grid!important;
  gap:10px!important;
}

.admin-field,
.admin-card label{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}

.admin-field span,
.admin-card label span{
  color:rgba(255,247,223,.74)!important;
  font-size:11px!important;
  font-weight:850!important;
}

.admin-card input,
.admin-card select,
.admin-card textarea{
  width:100%!important;
}

/* Nút admin đều */
.admin-actions,
.admin-row-actions,
.admin-toolbar,
.admin-avatar-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:center!important;
}

.admin-btn,
#adminCreateUser,
#adCreateUser,
#adAddPoint,
#adAddDonate,
#adSaveEdit,
#adDeleteUser,
#adResetPassword{
  min-height:38px!important;
  border-radius:14px!important;
  padding:0 14px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  white-space:nowrap!important;
}

/* Danh sách user */
.admin-list,
#adminUserList,
#adUserList,
.member-list{
  display:grid!important;
  gap:9px!important;
  min-height:100px!important;
  overflow:auto!important;
  padding-right:4px!important;
}

/* Header bảng nếu có */
.admin-list-head,
.admin-table-head{
  min-height:34px!important;
  border-radius:14px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:rgba(0,0,0,.18)!important;
  color:rgba(255,247,223,.72)!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.03em!important;
}

/* Row user */
.admin-user-row,
.admin-row{
  min-width:0!important;
  min-height:56px!important;
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:linear-gradient(90deg,rgba(255,255,255,.055),rgba(0,0,0,.18))!important;
  padding:10px!important;
  align-items:center!important;
  gap:9px!important;
}

/* Nếu row dùng grid cũ thì ép cân cột */
.admin-user-row{
  display:grid!important;
  grid-template-columns:minmax(95px,.8fr) minmax(120px,1fr) minmax(76px,.55fr) minmax(118px,.8fr) minmax(80px,.55fr) minmax(90px,.6fr) minmax(120px,.85fr)!important;
}

.admin-user-row > *{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.admin-user-row b{
  color:#fff5d8!important;
  font-weight:950!important;
}

.admin-user-row .identity-char-name{
  color:#8ee8ff!important;
}

.admin-user-row .identity-meta,
.admin-user-row .identity-sect{
  min-height:24px!important;
  width:max-content!important;
  max-width:100%!important;
}

/* Avatar trong admin nếu có */
.admin-avatar,
.admin-user-avatar,
#adEditAvatarPreview{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.20)!important;
  background:rgba(0,0,0,.18)!important;
  object-fit:cover!important;
}

#adEditAvatarPreview,
.admin-avatar-small{
  width:76px!important;
  height:76px!important;
}

/* Modal sửa user */
.admin-modal{
  padding:14px!important;
}

.admin-modal-card{
  border-radius:22px!important;
  overflow:auto!important;
}

.admin-modal-card h2,
.admin-modal-card h3{
  color:#ffe9a8!important;
}

.admin-edit-grid,
.admin-modal-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}

.admin-edit-grid label,
.admin-modal-grid label{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}

.admin-modal-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  justify-content:flex-end!important;
}

/* Avatar link trong Admin vẫn giữ vì admin cần sửa user bằng link/base64 nếu muốn,
   nhưng làm nó gọn hơn. */
.admin-avatar-edit,
.admin-avatar-box{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.14)!important;
  background:rgba(0,0,0,.12)!important;
  padding:10px!important;
}

/* Log */
.log-list,
.admin-log{
  display:grid!important;
  gap:8px!important;
}

.log-row,
.admin-log-row{
  border-radius:14px!important;
  border:1px solid rgba(245,213,137,.12)!important;
  background:rgba(0,0,0,.14)!important;
  padding:9px 10px!important;
  color:rgba(255,247,223,.78)!important;
}

/* Empty */
.admin-empty,
.member-empty{
  min-height:58px!important;
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  border-radius:16px!important;
  border:1px dashed rgba(245,213,137,.22)!important;
  background:rgba(0,0,0,.13)!important;
  color:rgba(255,247,223,.72)!important;
  font-weight:800!important;
}

/* Mobile Admin */
@media(max-width:1050px){
  .admin-user-row{
    grid-template-columns:1fr 1fr!important;
  }

  .admin-user-row > *{
    white-space:normal!important;
  }

  .admin-edit-grid,
  .admin-modal-grid{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:620px){
  .admin-user-row{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }

  .admin-user-row > *{
    width:100%!important;
  }

  .admin-user-row .identity-meta,
  .admin-user-row .identity-sect{
    width:100%!important;
    justify-content:flex-start!important;
  }

  .admin-actions,
  .admin-row-actions,
  .admin-toolbar,
  .admin-modal-actions,
  .admin-avatar-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .admin-actions button,
  .admin-row-actions button,
  .admin-toolbar button,
  .admin-modal-actions button,
  .admin-avatar-actions button,
  .admin-btn{
    width:100%!important;
  }

  .admin-modal{
    padding:9px!important;
  }
}



/* ===== SOURCE: assets/css/shop-polish.css ===== */
/* =========================================================
   Làng Ẩn Dật - BẢN 8B.7 SHOP / ĐỔI QUÀ POLISH
   Chỉ polish giao diện Đổi quà, không đổi logic.
   ========================================================= */

.shop-shell{
  border-radius:24px!important;
}

.shop-head{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(0,0,0,.025))!important;
}

.shop-head h1{
  letter-spacing:.035em!important;
}

.shop-grid{
  align-items:start!important;
}

.shop-card{
  position:relative!important;
  overflow:hidden!important;
}

.shop-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 0%,rgba(245,213,137,.07),transparent 42%);
}

.shop-card > *{
  position:relative;
  z-index:1;
}

.shop-card-title{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-bottom:12px!important;
}

.shop-card-title h2,
.shop-card h2,
.shop-card h3{
  color:#ffe9a8!important;
  margin:0!important;
}

.shop-card-title span{
  color:rgba(255,247,223,.68)!important;
}

/* Danh sách quà */
.shop-items{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(178px,1fr))!important;
  gap:13px!important;
  align-items:start!important;
}

.shop-item,
.gift-card{
  position:relative!important;
  border-radius:18px!important;
  border:1px solid rgba(245,213,137,.18)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.20))!important;
  box-shadow:0 12px 30px rgba(0,0,0,.22)!important;
  overflow:hidden!important;
  padding:10px!important;
  min-width:0!important;
  display:grid!important;
  gap:9px!important;
}

.shop-item::after,
.gift-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(245,213,137,.08),transparent 40%,rgba(255,255,255,.04));
}

.shop-item img,
.gift-card img{
  width:100%!important;
  height:154px!important;
  object-fit:contain!important;
  border-radius:14px!important;
  background:rgba(0,0,0,.20)!important;
  padding:5px!important;
}

.shop-item h3,
.gift-card h3,
.shop-item-title{
  margin:0!important;
  color:#fff7df!important;
  font-size:14px!important;
  font-weight:950!important;
  line-height:1.25!important;
  min-height:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.shop-price,
.gift-price,
.shop-item-price{
  min-height:32px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  border-radius:999px!important;
  border:1px solid rgba(245,213,137,.25)!important;
  background:rgba(245,213,137,.12)!important;
  color:#ffe9a8!important;
  font-size:13px!important;
  font-weight:1000!important;
}

.shop-item button,
.gift-card button,
.shop-request-btn{
  width:100%!important;
  min-height:38px!important;
  border-radius:14px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
}

/* Lịch sử / yêu cầu đổi */
.shop-history,
.shop-requests,
#shopHistory,
#shopRequests{
  display:grid!important;
  gap:9px!important;
  min-height:80px!important;
}

.shop-history-row,
.shop-request,
.shop-request-row{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:linear-gradient(90deg,rgba(255,255,255,.055),rgba(0,0,0,.18))!important;
  padding:10px!important;
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}

.shop-history-row b,
.shop-request b,
.shop-request-row b{
  color:#fff7df!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.shop-history-row span,
.shop-request span,
.shop-request-row span{
  color:rgba(255,247,223,.72)!important;
  font-size:12px!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Admin tạo/sửa quà */
.shop-field,
.shop-card label{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}

.shop-field span,
.shop-card label span{
  color:rgba(255,247,223,.74)!important;
  font-size:11px!important;
  font-weight:850!important;
}

.shop-card input,
.shop-card textarea,
.shop-card select{
  width:100%!important;
}

.shop-avatar-edit,
.shop-image-edit{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.14)!important;
  background:rgba(0,0,0,.12)!important;
  padding:10px!important;
}

.shop-avatar-actions,
.shop-image-actions,
.shop-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:center!important;
}

.shop-btn,
.shop-card button,
label.shop-btn{
  min-height:38px!important;
  border-radius:14px!important;
  padding:0 14px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
}

/* Empty */
.shop-empty{
  min-height:58px!important;
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  border-radius:16px!important;
  border:1px dashed rgba(245,213,137,.22)!important;
  background:rgba(0,0,0,.13)!important;
  color:rgba(255,247,223,.72)!important;
  font-weight:800!important;
}

/* Mobile Shop */
@media(max-width:900px){
  .shop-card-title{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .shop-items{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:560px){
  .shop-items{
    grid-template-columns:1fr!important;
  }

  .shop-item img,
  .gift-card img{
    height:140px!important;
  }

  .shop-avatar-actions,
  .shop-image-actions,
  .shop-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .shop-avatar-actions button,
  .shop-image-actions button,
  .shop-actions button,
  .shop-btn,
  label.shop-btn{
    width:100%!important;
  }
}

/* Profile avatar box */
.profile-avatar-box{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  min-width:0!important;
}

.profile-avatar,
#pfAvatarPreview{
  width:122px!important;
  height:122px!important;
  border-radius:24px!important;
  border:1px solid rgba(245,213,137,.25)!important;
  background:rgba(0,0,0,.18)!important;
  object-fit:cover!important;
  box-shadow:0 14px 34px rgba(0,0,0,.26)!important;
}

#pfDisplayName{
  color:#8ee8ff!important;
  font-weight:1000!important;
  letter-spacing:.025em!important;
  text-shadow:0 0 5px rgba(142,232,255,.34)!important;
  margin:0 0 4px!important;
}

#pfDisplayMeta{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  align-items:center!important;
  margin-top:7px!important;
}

.profile-meta-pill,
#pfDisplayMeta .identity-meta,
#pfDisplayMeta .identity-sect{
  min-height:25px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  padding:0 10px!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.22)!important;
  font-size:11px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}

/* Profile stats */
.profile-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:14px!important;
}

.profile-stats div{
  min-height:58px!important;
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:rgba(0,0,0,.17)!important;
  display:grid!important;
  place-items:center!important;
  padding:8px!important;
}

.profile-stats b{
  color:#ffe9a8!important;
  font-size:18px!important;
  line-height:1!important;
}

.profile-stats span{
  color:rgba(255,247,223,.68)!important;
  font-size:11px!important;
  font-weight:850!important;
}

/* Profile form */
.profile-form{
  display:grid!important;
  gap:10px!important;
}

.profile-form.two{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

.profile-field,
.profile-form label{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}

.profile-field span,
.profile-form label span{
  color:rgba(255,247,223,.74)!important;
  font-size:11px!important;
  font-weight:850!important;
}

.profile-form input,
.profile-form select,
.profile-form textarea{
  width:100%!important;
}

.profile-full{
  grid-column:1/-1!important;
}

/* Avatar edit */
.profile-avatar-edit{
  border-radius:17px!important;
  border:1px solid rgba(245,213,137,.14)!important;
  background:rgba(0,0,0,.13)!important;
  padding:11px!important;
  display:grid!important;
  gap:10px!important;
}

.profile-avatar-preview-wrap{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}

.profile-avatar-small,
#pfAvatarEditPreview{
  width:70px!important;
  height:70px!important;
  border-radius:18px!important;
  border:1px solid rgba(245,213,137,.22)!important;
  background:rgba(0,0,0,.18)!important;
  object-fit:cover!important;
}

.profile-avatar-preview-wrap b{
  color:#fff7df!important;
}

.profile-avatar-preview-wrap p{
  color:rgba(255,247,223,.68)!important;
  margin:4px 0 0!important;
  font-size:12px!important;
}

.profile-avatar-actions,
.profile-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:center!important;
}

.profile-btn,
label.profile-btn{
  min-height:38px!important;
  border-radius:14px!important;
  padding:0 14px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
}

/* Profile history */
.profile-history,
#pfRedeemHistory{
  display:grid!important;
  gap:9px!important;
  min-height:80px!important;
}

.profile-history-row{
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:linear-gradient(90deg,rgba(255,255,255,.055),rgba(0,0,0,.18))!important;
  padding:10px!important;
  display:grid!important;
  gap:6px!important;
}

.profile-history-row b{
  color:#fff7df!important;
}

.profile-history-row span{
  color:rgba(255,247,223,.72)!important;
  font-size:12px!important;
}

/* Mobile */
@media(max-width:900px){
  .profile-form.two{
    grid-template-columns:1fr!important;
  }

  .profile-avatar-box{
    align-items:flex-start!important;
  }
}

@media(max-width:620px){
  .profile-avatar-box{
    display:grid!important;
    grid-template-columns:82px minmax(0,1fr)!important;
    gap:12px!important;
  }

  .profile-avatar,
  #pfAvatarPreview{
    width:82px!important;
    height:82px!important;
    border-radius:18px!important;
  }

  .profile-stats{
    grid-template-columns:1fr!important;
  }
}



/* ===== SOURCE: assets/css/ranking-polish.css ===== */
/* =========================================================
   Làng Ẩn Dật - BẢN 8B.9 BXH / DONATE POLISH
   Chỉ polish giao diện BXH, không đổi logic.
   ========================================================= */

.ranking-shell{
  border-radius:24px!important;
}

.ranking-head{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(0,0,0,.025))!important;
  text-align:center!important;
}

.ranking-head h1{
  width:100%!important;
  text-align:center!important;
  letter-spacing:.045em!important;
}

.ranking-head p,
.ranking-head .rank-subtitle{
  text-align:center!important;
}

/* 2 khung top rõ ràng */
.ranking-content,
.rank-two-content{
  gap:16px!important;
  align-items:stretch!important;
}

.rank-panel{
  position:relative!important;
  overflow:hidden!important;
  padding:16px!important;
  border-radius:22px!important;
  border:1px solid rgba(245,213,137,.20)!important;
  background:linear-gradient(135deg,rgba(12,10,16,.50),rgba(43,28,20,.32))!important;
}

.rank-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 0%,rgba(245,213,137,.10),transparent 38%),
    linear-gradient(135deg,rgba(255,255,255,.035),transparent 40%);
}

.rank-panel > *{
  position:relative;
  z-index:1;
}

.rank-panel-title{
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  margin:-2px 0 12px!important;
  padding:0 12px!important;
  border-radius:16px!important;
  border:1px solid rgba(245,213,137,.18)!important;
  background:rgba(0,0,0,.18)!important;
  color:#ffe9a8!important;
  font-size:18px!important;
  font-weight:1000!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
}

.rank-panel-list{
  display:grid!important;
  gap:10px!important;
  min-height:360px!important;
  max-height:calc(100vh - 230px)!important;
  overflow:auto!important;
  padding-right:4px!important;
}

/* Card TOP */
.rank-card{
  min-height:66px!important;
  border-radius:18px!important;
  border:1px solid rgba(245,213,137,.16)!important;
  background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(0,0,0,.20))!important;
  display:grid!important;
  grid-template-columns:76px 46px minmax(0,1fr) minmax(112px,140px)!important;
  gap:10px!important;
  align-items:center!important;
  padding:10px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 26px rgba(0,0,0,.20)!important;
  overflow:hidden!important;
}

.rank-card:nth-child(1){
  border-color:rgba(255,226,128,.48)!important;
  background:linear-gradient(90deg,rgba(255,215,100,.16),rgba(0,0,0,.20))!important;
  box-shadow:0 0 0 1px rgba(255,226,128,.12),0 14px 34px rgba(0,0,0,.24)!important;
}

.rank-card:nth-child(2){
  border-color:rgba(220,230,255,.36)!important;
  background:linear-gradient(90deg,rgba(220,230,255,.10),rgba(0,0,0,.20))!important;
}

.rank-card:nth-child(3){
  border-color:rgba(255,160,100,.34)!important;
  background:linear-gradient(90deg,rgba(255,160,100,.10),rgba(0,0,0,.20))!important;
}

/* Badge TOP */
.rank-badge{
  min-height:34px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 10px!important;
  background:linear-gradient(180deg,#fff0aa,#d4a33c)!important;
  color:#1b1004!important;
  font-size:10px!important;
  font-weight:1000!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
  text-shadow:none!important;
  filter:none!important;
}

.rank-card:nth-child(1) .rank-badge{
  background:linear-gradient(180deg,#fff4ba,#f0b934)!important;
}

.rank-card:nth-child(2) .rank-badge{
  background:linear-gradient(180deg,#f5f7ff,#aeb7cc)!important;
  color:#151820!important;
}

.rank-card:nth-child(3) .rank-badge{
  background:linear-gradient(180deg,#ffc08a,#c76b34)!important;
  color:#1b1004!important;
}

/* Avatar BXH */
.rank-avatar,
.rank-card img{
  width:44px!important;
  height:44px!important;
  border-radius:14px!important;
  border:1px solid rgba(245,213,137,.20)!important;
  background:rgba(0,0,0,.22)!important;
  object-fit:cover!important;
}

/* Tên */
.rank-name,
.rank-name-only{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
}

.rank-name b,
.rank-name-only b,
.rank-name .identity-char-name{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:15px!important;
  font-weight:1000!important;
}

.rank-name span:not(.identity-char-name),
.rank-name-only span:not(.identity-char-name){
  display:none!important;
}

/* Giá trị Point/VND */
.rank-value{
  min-height:34px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 10px!important;
  border:1px solid rgba(245,213,137,.20)!important;
  background:rgba(245,213,137,.11)!important;
  color:#ffe9a8!important;
  font-size:12px!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  text-align:center!important;
}

.rank-card:nth-child(1) .rank-value{
  background:rgba(255,226,128,.16)!important;
  border-color:rgba(255,226,128,.30)!important;
}

/* Empty BXH */
.rank-empty,
.ranking-empty{
  min-height:78px!important;
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  border-radius:18px!important;
  border:1px dashed rgba(245,213,137,.22)!important;
  background:rgba(0,0,0,.13)!important;
  color:rgba(255,247,223,.72)!important;
  font-weight:850!important;
}

/* Mobile */
@media(max-width:900px){
  .ranking-content,
  .rank-two-content{
    grid-template-columns:1fr!important;
  }

  .rank-panel-list{
    min-height:220px!important;
    max-height:none!important;
  }
}

@media(max-width:560px){
  .rank-panel{
    padding:12px!important;
  }

  .rank-panel-title{
    min-height:38px!important;
    font-size:15px!important;
  }

  .rank-card{
    grid-template-columns:62px 42px minmax(0,1fr)!important;
    min-height:68px!important;
    gap:8px!important;
    padding:9px!important;
  }

  .rank-value{
    grid-column:1/-1!important;
    justify-self:stretch!important;
    width:100%!important;
  }

  .rank-badge{
    font-size:9px!important;
    padding:0 8px!important;
  }

  .rank-name b,
  .rank-name-only b,
  .rank-name .identity-char-name{
    font-size:14px!important;
  }
}