:root{
  /* SP: màu chủ đạo app */
  --pink:#ff2d75;
  --app-bg:#ffffff;
  --card-bg:#ffffff;
  --text:#111111;
  --muted:rgba(0,0,0,.58);
  /* SP: chiều cao header trên */
  --header-height:58px;
  /* SP: chiều cao nút tab dưới */
  --bottom-nav-button-height:50px;
  /* SP: cỡ icon tab dưới */
  --bottom-nav-icon-size:22px;
  /* SP: cỡ nút đăng tin giữa */
  --bottom-nav-primary-size:46px;
  /* SP: cỡ chữ menu/tab */
  --menu-button-font-size:18px;
  --menu-button-font-weight:500;
  /* SP: cỡ tiêu đề mặc định */
  --title-font-size:20px;
  --title-font-weight:588;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;min-height:100%;background:#ffffff;color:var(--text);-webkit-text-size-adjust:100%;}
button,input,textarea,select{font:inherit;}
button{border:0;background:transparent;color:inherit;padding:0;}
button, input, textarea, select, a{-webkit-tap-highlight-color:rgba(255,45,117,.14);}
button:focus, input:focus, textarea:focus, select:focus{outline:none;}
button:focus-visible{outline:2px solid rgba(255,45,117,.65);outline-offset:2px;}
input:focus-visible, textarea:focus-visible, select:focus-visible{outline:none;} /* SP v195: bỏ viền hồng ngoài ô nhập, chỉ giữ viền chính của ô */
.app{min-height:100vh;background:#ffffff;}
.appHeader{position:sticky;top:0;z-index:200;height:calc(var(--header-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;background:#fff;display:grid;grid-template-columns:46px 1fr 46px;align-items:center;box-shadow:none;transform:translate3d(0,0,0);transition:transform .18s ease;will-change:transform;} /* SP v302: top bar tự ẩn khi vuốt lên, hiện ngay khi vuốt xuống */
body.is-topbar-hidden .appHeader{transform:translate3d(0,calc(-1 * (var(--header-height) + env(safe-area-inset-top) + 2px)),0);} /* SP v302: khoảng ẩn top bar */
.headerCategoryBtn{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--pink);background:linear-gradient(180deg,rgba(255,47,134,.13),rgba(255,47,134,.06));box-shadow:inset 0 0 0 1px rgba(255,47,134,.10);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .16s ease,background .16s ease,color .16s ease;}
.headerCategoryBtn:active{transform:scale(.94);}
.headerCategoryBtn.is-open{background:var(--pink);color:#fff;box-shadow:0 8px 20px rgba(255,47,134,.20);}
.headerCategoryBtn svg{width:28px;height:28px;display:block;}
.headerCategoryBtn.is-home-menu{visibility:hidden;pointer-events:none;}
.headerCenter{min-width:0;text-align:center;grid-column:2;}
/* SP v181: logo chữ dạng text giống ảnh minh hoạ, không dùng ảnh */
.headerLogo{display:inline-flex;align-items:flex-end;justify-content:center;gap:5px;max-width:100%;line-height:1;color:var(--pink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.headerLogo__number{font-size:36px;line-height:.88;font-weight:800;letter-spacing:-2.5px;color:var(--pink);display:inline-block;transform:translateY(8px);} /* SP có thể sửa size số 1 logo PC tại đây */
.headerLogo__text{font-size:23px;line-height:1;font-weight:800;letter-spacing:-.6px;color:var(--pink);} /* SP có thể sửa size chữ logo tại đây */
/* SP v416: Điện thoại copy đúng style logo PC; giữ cỡ chữ mobile, chỉ cho số 1 cao/to và chân kéo xuống qua chữ p. */
@media (max-width:767px){
  .headerLogo{
    gap:4px;
    overflow:visible;
  }
  .headerLogo__number{
    font-size:41px; /* SP chỉnh cỡ số 1 logo điện thoại tại đây */
    line-height:.88;
    font-weight:900;
    letter-spacing:-2.5px;
    transform:translateY(8px); /* SP chỉnh độ dài chân số 1 logo điện thoại tại đây */
  }
  .headerLogo__text{
    font-size:23px; /* SP giữ cỡ chữ logo điện thoại cũ tại đây */
    line-height:1;
    font-weight:900;
    letter-spacing:-.6px;
  }
}
.headerTitle{margin:4px 0 0;font-size:13px;font-weight:600;color:var(--muted);line-height:1.1;}
.pageShell{min-height:calc(100vh - var(--header-height));padding:0 14px calc(var(--bottom-nav-button-height) + 18px + env(safe-area-inset-bottom));overflow-x:hidden;background:#ffffff;}
.routePage{display:none;min-height:calc(100vh - var(--header-height) - var(--bottom-nav-button-height));padding:14px 0 24px;background:#ffffff;}
#page-home.routePage{padding-top:0;} /* SP v184: đưa ô tìm kiếm trang chủ sát chân top bar hơn */
#page-search-results.routePage{padding-top:0;} /* SP v184: trang kết quả tìm kiếm đi cùng khoảng cách mới */
.routePage.is-active{display:block;}
/* SP sửa v66: mở danh mục/trang mới phải sát đầu nội dung, không chừa khoảng hở 14px phía trên. */
.routePage[data-route-page="category"]{padding-top:0;}
.routeTitle{margin:0 0 8px;font-size:var(--title-font-size);font-weight:var(--title-font-weight);line-height:1.2;}
.bottomNav{position:fixed;left:0;right:0;bottom:0;z-index:300;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fff;border-top:none;padding:4px 6px calc(4px + env(safe-area-inset-bottom));pointer-events:auto;box-shadow:0 -1px 0 rgba(0,0,0,.06);}
.bottomNav__btn{min-width:0;height:var(--bottom-nav-button-height);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:rgba(0,0,0,.68);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.bottomNav__btn::after{content:"";position:absolute;left:50%;bottom:0;width:26px;height:3px;border-radius:999px;background:var(--pink);transform:translateX(-50%) scaleX(0);transform-origin:center;opacity:0;transition:transform .18s ease,opacity .18s ease;}
.bottomNav__btn.is-active{color:var(--pink);}
.bottomNav__btn.is-active::after{transform:translateX(-50%) scaleX(1);opacity:1;}
.bottomNav__icon{width:var(--bottom-nav-icon-size);height:var(--bottom-nav-icon-size);display:flex;align-items:center;justify-content:center;}
.bottomNav__icon svg{width:var(--bottom-nav-icon-size);height:var(--bottom-nav-icon-size);display:block;}
.bottomNav__label{font-size:11px;line-height:1;font-weight:var(--menu-button-font-weight);white-space:nowrap;}
.bottomNav__btn--primary .bottomNav__icon{width:var(--bottom-nav-primary-size);height:var(--bottom-nav-primary-size);border-radius:999px;background:#000;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.16);}
.bottomNav__btn--primary .bottomNav__label{margin-top:2px;}


/* SP: Lõi hiệu ứng vuốt về chung toàn app - chỉnh ở swipe-back.js */
.pageShell.is-swipe-dragging {
  transform: translate3d(var(--swipe-x, 0px), 0, 0);
  transition: none;
  box-shadow: -14px 0 28px rgba(0, 0, 0, var(--swipe-shadow-opacity, 0.16));
  will-change: transform;
}

.pageShell.is-swipe-resetting {
  transform: translate3d(var(--swipe-x, 0px), 0, 0);
  transition: transform 210ms ease-out, box-shadow 210ms ease-out;
}

.pageShell.is-swipe-completing {
  transform: translate3d(var(--swipe-x, 100vw), 0, 0);
  transition: transform 160ms ease-out;
}


/* Refresh chung toàn app - lấy kiểu từ app cũ, dùng chung cho app mới */
#appHeader.spRefreshStretching,
.pageShell.spRefreshStretching,
.app.spRefreshStretching{
  will-change:transform;
}

#appHeader.spRefreshTransition,
.pageShell.spRefreshTransition,
.app.spRefreshTransition{
  transition:transform .66s cubic-bezier(.16, .84, .22, 1);
}

/* SP: Icon kéo xuống thả ra làm mới - chỉ icon xoay, không chữ */
.spRefreshIndicator{
  position:fixed;
  left:50%;
  top:calc(env(safe-area-inset-top) + 2px);
  z-index:9999;
  width:34px;
  height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.94);
  box-shadow:0 6px 18px rgba(0,0,0,.13);
  opacity:0;
  pointer-events:none;
  transform:translate3d(-50%, -48px, 0);
  transition:opacity .2s ease, transform .58s cubic-bezier(.16, .84, .22, 1);
}

.spRefreshIndicator.is-visible{
  opacity:1;
}

.spRefreshIndicator__spinner{
  width:18px;
  height:18px;
  border-radius:999px;
  border:2px solid rgba(0,0,0,.14);
  border-top-color:#ff2f86;
  transform:rotate(0deg);
}

.spRefreshIndicator.is-ready .spRefreshIndicator__spinner,
.spRefreshIndicator.is-refreshing .spRefreshIndicator__spinner{
  animation:spRefreshSpin .72s linear infinite;
}

@keyframes spRefreshSpin{
  to{ transform:rotate(360deg); }
}


/* SP: Giao diện danh mục route chuẩn - chỉnh kích thước/khoảng cách tại đây */
.categoryGrid{
  display:grid;
  gap:14px;
  margin:16px 0 18px;
}

.categoryGroup{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  padding:14px;
  box-shadow:0 8px 22px rgba(0,0,0,.045);
}

.categoryGroup__title{
  width:100%;
  border:0;
  background:#fff;
  color:#ff2f86;
  font-size:20px; /* SP chỉnh cỡ chữ tiêu đề danh mục */
  font-weight:588; /* SP chỉnh độ đậm tiêu đề danh mục */
  text-align:left;
  padding:4px 0 12px;
}

.categoryGroup__children{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.categoryChip{
  border:1px solid rgba(255,47,134,.28);
  background:#fff;
  color:#252525;
  border-radius:999px;
  padding:10px 13px;
  font-size:16px; /* SP chỉnh cỡ chữ mục con */
  font-weight:500;
}

.categoryList{
  display:grid;
  gap:10px;
  margin:16px 0;
}

.categoryListItem{
  width:100%;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  border-radius:16px;
  min-height:62px; /* SP chỉnh chiều cao dòng danh mục con */
  padding:15px 14px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 18px; /* SP: icon | chữ | mũi tên, giữ chữ thẳng hàng */
  align-items:center;
  column-gap:14px; /* SP chỉnh khoảng cách icon với chữ */
  color:#252525;
  font-size:18px; /* SP chỉnh cỡ chữ dòng danh mục */
  font-weight:500;
  text-align:left;
}


.categoryBackLink{
  border:0;
  background:#fff;
  color:#ff2f86;
  font-size:18px; /* SP chỉnh cỡ chữ nút quay về danh mục cha */
  font-weight:588;
  padding:8px 4px 0;
  margin:0 0 8px;
}


/* SP: Danh mục trang chủ lấy giao diện app cũ - chỉnh kích thước/màu tại đây */
.homeCategorySection{
  padding:5px 0 0; /* SP v185: bộ lọc ngang cách nút danh mục 5px, danh mục con cách Tin mới/Menu 5px */
}
.homeCategoryParents{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:0 2px 8px; /* SP: mép trái/phải hàng danh mục cha */
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.homeCategoryParents::-webkit-scrollbar{display:none;}
.homeCategoryParentBtn,
.homeCategoryChildBtn{
  border:1.5px solid #d6d6d6; /* SP: màu viền nút danh mục cha */
  background:#eeeeee; /* SP: màu nền nút danh mục - đậm hơn nhẹ */
  color:#111;
  border-radius:18px;
  font-size:16px; /* SP: size chữ nút danh mục */
  font-weight:500; /* SP: độ đậm chữ nút danh mục */
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.025); /* SP: viền trong nhẹ để nút nổi rõ */
}
.homeCategoryParentBtn{
  flex:0 0 auto;
  min-height:42px; /* SP: chiều cao nút danh mục cha */
  padding:0 18px;
}
.homeCategoryParentBtn.is-active,
.homeCategoryChildBtn.is-active{
  border-color:#ff2f86; /* SP: viền nút danh mục khi đang chọn - đậm hơn nhẹ */
  background:#ff2f86; /* SP: màu hồng active - đậm hơn nhẹ */
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.homeCategoryChildren{
  display:flex;
  gap:12px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 2px 0; /* SP v185: giảm khoảng cách dưới danh mục con */
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  flex-wrap:nowrap; /* SP: danh mục con luôn nằm 1 hàng, trượt ngang */
}
.homeCategoryChildren::-webkit-scrollbar{display:none;}
.homeCategoryChildBtn{
  flex:0 0 108px; /* SP: chiều rộng mỗi ô danh mục con */
  width:108px; /* SP: chiều rộng mỗi ô danh mục con */
  min-height:104px; /* SP: chiều cao ô danh mục con */
  padding:14px 10px 12px;
  border:2px solid #d6d6d6; /* SP v297: viền danh mục con về màu xám bình thường */
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
}
.homeCategoryChildBtn__icon{
  width:26px; /* SP: size icon danh mục con */
  height:26px; /* SP: size icon danh mục con */
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:10px;
}
.homeCategoryChildBtn__icon svg{
  width:100%;
  height:100%;
  stroke:currentColor;
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.homeCategoryChildBtn__text{
  line-height:1.28;
}

/* SP: Trang danh mục route chuẩn vẫn dùng lõi app mới */
.categoryHome{
  display:grid;
  gap:14px;
  padding:4px 0 18px;
}
.categoryBlock{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(0,0,0,.045);
}
.categoryBlock__children{display:grid;}
.categoryBlock--accordion.is-collapsed .categoryBlock__children{display:none;}
.categoryBlock--accordion.is-collapsed .categoryRow--parent{border-bottom:0;}
.categoryBlock--accordion:not(.is-collapsed) .categoryRow--parent .categoryRow__arrow{transform:rotate(90deg);}
.categoryBlock--accordion .categoryRow--parent .categoryRow__arrow{transition:transform .16s ease;}
.categoryRow{
  width:100%;
  border:0;
  background:#fff;
  color:#252525;
  min-height:54px; /* SP chỉnh chiều cao dòng danh mục */
  padding:10px 14px;
  display:grid;
  grid-template-columns:34px 1fr 18px;
  align-items:center;
  gap:10px;
  text-align:left;
  font-size:16px; /* SP chỉnh cỡ chữ mục danh mục */
  font-weight:500;
}
.categoryRow--parent{
  color:#ff2f86;
  font-size:20px; /* SP chỉnh cỡ chữ loại giao dịch */
  font-weight:588;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.categoryRow--child + .categoryRow--child{border-top:1px solid rgba(0,0,0,.055);}
.categoryIcon{
  width:30px; /* SP chỉnh kích thước icon danh mục */
  height:30px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#ff2f86;
  background:rgba(255,47,134,.08);
  flex:0 0 auto;
}
.categoryIcon svg{
  width:20px; /* SP chỉnh kích thước nét icon bên trong */
  height:20px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.categoryRow__label,
.categoryListItem__label{
  min-width:0;
  display:block;
  text-align:left; /* SP: chữ danh mục luôn canh trái cùng một trục */
  justify-self:start;
}
.categoryRow__arrow{
  color:rgba(0,0,0,.36);
  font-size:24px;
  line-height:1;
  text-align:right;
}
.categoryPageHeader{
  margin:10px 0 14px; /* SP v163: chừa khoảng cách trên/dưới cho tiêu đề danh mục, không dính top bar và danh sách tin */
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  padding:16px 14px;
  display:flex;
  align-items:center;
  gap:12px;
  box-shadow:0 8px 22px rgba(0,0,0,.045);
}
.categoryPageTitle{
  margin:0;
  color:#252525;
  font-size:20px; /* SP chỉnh cỡ chữ tiêu đề trang danh mục */
  font-weight:588;
}
.emptyPostList{
  margin-top:14px;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  padding:22px 14px;
  color:rgba(0,0,0,.58);
  font-size:16px; /* SP chỉnh cỡ chữ trạng thái chưa có tin */
  font-weight:400;
  text-align:center;
}

@media (max-width:360px){
  .homeCategoryChildren{gap:10px;}
  .homeCategoryChildBtn{width:96px;flex-basis:96px;min-height:96px;}
  .homeCategoryChildBtn__icon{width:23px;height:23px;}
}

/* ===== SP: Trang Đăng bài route chuẩn - file riêng js/pages/create-post-page.js ===== */
.createPage--route{background:var(--app-bg);padding:0 0 10px;}
.createTopBar--route{display:flex;align-items:center;justify-content:space-between;gap:16px;background:transparent;padding:0 0 14px;border:0;}
.createTopBar__title{font-size:20px;font-weight:588;line-height:1.2;color:#111;}
.createFormBody{display:flex;flex-direction:column;gap:30px;padding:0;}
.field{margin:0;}.spGrid2{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:30px;}.spGrid1{display:grid;grid-template-columns:1fr;row-gap:30px;}.spField{position:relative;}.spField--span2{grid-column:1 / -1;}
.input,.textarea{width:100%;border:2px solid rgba(0,0,0,.12);background:#fff;border-radius:24px;color:#000;font-size:16px;font-weight:400;padding:0 22px;}.input{height:46px;}.textarea{min-height:140px;resize:none;overflow:hidden;padding-top:22px;padding-bottom:16px;}.input:focus,.textarea:focus{border-color:#ef5da8;box-shadow:none;} /* SP v195: focus chỉ đổi viền trong, không tạo viền ngoài */.spField__input::placeholder{color:transparent;}
.spField__ph{position:absolute;left:22px;top:50%;transform:translateY(-50%);color:rgba(0,0,0,.28);font-weight:500;font-size:18px;line-height:1.1;pointer-events:none;white-space:nowrap;}.spField__ph--textarea{top:22px;transform:none;}.spField__req,.field__required{color:#ef4444;}.spField__input:not(:placeholder-shown)+.spField__ph{display:none;}.spField--hasValue .spField__ph--select{display:none;}
.spField__meta{position:absolute;right:6px;top:calc(100% + 6px);display:flex;justify-content:flex-end;padding:0;pointer-events:none;}.spField__meta--textarea{padding-top:10px;}.spField__counter{font-size:12px;font-weight:500;line-height:1;color:rgba(0,0,0,.42);white-space:nowrap;}
.spField--select{display:flex;flex-direction:column;gap:10px;position:relative;}.spField__topLabel{display:block;padding:0 2px;font-size:18px;font-weight:500;line-height:1.1;color:#000;}.spField__ph--select{z-index:2;}
.spInlineRow{display:grid;grid-template-columns:minmax(0,1fr) 102px;gap:12px;position:relative;}.spInlineRow--price{gap:0;height:46px;border:2px solid rgba(0,0,0,.12);border-radius:24px;overflow:hidden;background:#fff;}.spField__input--inline{padding-right:10px;}.spPriceCombo__input,.spPriceCombo__unit{height:100%;border:0!important;border-radius:0!important;background-color:transparent;}.spInlineRow--price:focus-within{border-color:#ef5da8;box-shadow:none;} /* SP v195: bỏ viền ngoài ô giá khi focus */.spPriceCombo__input{padding-right:6px;}.spPriceCombo__unit{width:102px;min-width:102px;padding-left:2px;padding-right:26px;text-align:right;text-align-last:right;}.spPriceUnit{padding-left:2px;padding-right:26px;}
.spField--inlineSelect .spSelect{color:transparent;}.spField--inlineSelect .spSelect option{color:#000;background:#fff;} /* SP v427: sửa dropdown Vị trí PC/Cốc Cốc không bị trắng chữ trong khung chọn */.spField--inlineSelect.spField--hasValue .spSelect{color:#000;}.spSelect{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(0,0,0,.72) 50%),linear-gradient(135deg,rgba(0,0,0,.72) 50%,transparent 50%);background-position:calc(100% - 24px) calc(50% - 2px),calc(100% - 18px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px;}.spSelect:disabled{background-color:#f7f7f7;color:rgba(0,0,0,.42);}.spSelectNativeHidden{position:absolute;pointer-events:none;opacity:0;width:1px;height:1px;overflow:hidden;}
.spPickerTrigger{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;background:#fff;cursor:pointer;padding:0 44px 0 18px;position:relative;}.spPickerTrigger::after{content:"";position:absolute;right:18px;top:50%;width:10px;height:10px;border-right:2px solid rgba(0,0,0,.72);border-bottom:2px solid rgba(0,0,0,.72);transform:translateY(-65%) rotate(45deg);pointer-events:none;}.spPickerTrigger:disabled{background-color:#f7f7f7;color:rgba(0,0,0,.42);cursor:default;}.spPickerTrigger:disabled::after{border-color:rgba(0,0,0,.28);}
.spNoteHint{margin-top:-2px;}.hint{font-size:15px;font-weight:800;color:#111;}.fileInputHidden{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}.photosGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:6px;}.photoCell{position:relative;aspect-ratio:1/1;border-radius:22px;overflow:hidden;background:#ececec;border:2px solid transparent;}.photoCell.is-cover{border-color:#ff2f8f;}.photoCell img{width:100%;height:100%;object-fit:cover;display:block;}.photoCell__cover{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);height:26px;padding:0 9px;border:none;border-radius:999px;background:rgba(0,0,0,.58);color:#fff;font-size:12px;font-weight:700;line-height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.photoCell__remove{position:absolute;right:7px;top:7px;width:28px;height:28px;border:0;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:22px;font-weight:600;line-height:28px;display:flex;align-items:center;justify-content:center;padding:0;}
.saveRow{display:grid;grid-template-columns:1fr auto;align-items:start;gap:12px;margin-top:6px;padding-bottom:6px;}.fileRow--footer{display:flex;flex-direction:column;align-items:center;justify-self:start;min-width:0;}.filebtn{height:46px;padding:0 18px;border-radius:999px;background:#fff;color:#000;border:1.5px solid rgba(0,0,0,.12);font-size:18px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;}.filehint{margin-top:8px;font-size:15px;color:rgba(0,0,0,.58);font-weight:800;text-align:center;width:100%;}.saveBtn{height:46px;min-width:auto;padding:0 24px;border-radius:999px;background:#fff;color:#000;border:1.5px solid rgba(0,0,0,.12);font-size:18px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;justify-self:end;}
.spCreateCategorySummary{display:flex;align-items:center;min-height:46px;padding:12px 14px;border-radius:16px;border:1px solid rgba(255,45,117,.14);background:#fff4f8;color:#111;font-size:16px;line-height:1.35;font-weight:588;}.spCreateCategorySummary[hidden]{display:none!important;}.spCreateCategoryHiddenFields{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;pointer-events:none!important;}
@media (max-width:640px){.createFormBody{gap:22px;}.spGrid2{column-gap:14px;row-gap:22px;}.input{height:48px;font-size:16px;}.spInlineRow--price{height:48px;border-radius:24px;}.textarea{font-size:16px;min-height:132px;}.spField__ph{font-size:16px;}.photosGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}.saveBtn{min-width:auto;font-size:17px;padding:0 22px;height:44px;}.filebtn{font-size:16px;height:44px;padding:0 16px;}}

/* ===== SP: Trang chọn danh mục đăng bài - route chuẩn, copy kiểu app cũ ===== */
.createCategoryPicker--route{position:relative;inset:auto;z-index:auto;display:block;background:#fff;min-height:calc(100dvh - 150px);}
.createCategoryPicker--route .createCategoryPicker__page{width:100%;min-height:calc(100dvh - 150px);background:#fff;display:flex;flex-direction:column;overflow:hidden;}
.createCategoryPicker__head{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;column-gap:12px;padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.08);min-height:58px;}
.createCategoryPicker__back,.createCategoryPicker__close{appearance:none;-webkit-appearance:none;border:none;background:transparent;color:#111;font-size:26px;line-height:1;font-weight:600;padding:0;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.createCategoryPicker__back[hidden]{display:flex!important;visibility:hidden!important;pointer-events:none!important;}
.createCategoryPicker__titleWrap{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;}
.createCategoryPicker__title{font-size:20px;line-height:1.2;font-weight:588;color:#111;}
.createCategoryPicker__sub{font-size:15px;line-height:1.35;font-weight:400;color:#666;}
.createCategoryPicker__body{flex:1;overflow:auto;padding:18px 16px 24px;display:flex;flex-direction:column;gap:14px;}
.createCategoryPicker__list{display:grid;grid-template-columns:1fr;gap:12px;}
.createCategoryPicker__card{appearance:none;-webkit-appearance:none;width:100%;display:flex;align-items:center;gap:14px;padding:16px 16px;border-radius:18px;border:1px solid rgba(0,0,0,.08);background:#fff;color:#111;text-align:left;cursor:pointer;box-shadow:0 2px 10px rgba(15,23,42,.04);}
.createCategoryPicker__card.is-active{border-color:var(--pink,#ff2d75);background:rgba(255,45,117,.06);}
.createCategoryPicker__icon{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(255,45,117,.08);color:var(--pink,#ff2d75);}
.createCategoryPicker__icon svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.createCategoryPicker__text{min-width:0;display:flex;flex-direction:column;gap:4px;}
.createCategoryPicker__name{font-size:18px;line-height:1.3;font-weight:588;color:#111;}
.createCategoryPicker__meta{font-size:14px;line-height:1.35;font-weight:400;color:#666;}
.createCategoryPicker__arrow{margin-left:auto;flex:0 0 auto;color:#b2b2b2;font-size:24px;line-height:1;}
.createCategoryPicker__summary{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 14px;border-radius:16px;background:#fff4f8;border:1px solid rgba(255,45,117,.12);text-align:center;}
.createCategoryPicker__summaryLabel{font-size:14px;line-height:1.3;font-weight:500;color:#ff2d75;}
.createCategoryPicker__summaryValue{font-size:16px;line-height:1.35;font-weight:588;color:#111;}
@media (min-width:768px){.createCategoryPicker__body{padding-left:22px;padding-right:22px;}.createCategoryPicker__list{max-width:720px;}}

/* ===== SP v24: Trang Đăng tin ẩn top bar, dùng viền hồng/đen, nới full ngang ===== */

/* SP v314: Trang xem tin dùng header riêng trong nội dung, không hiện top bar app khi kéo xuống làm mới */
body.is-post-detail-route .appHeader{display:none;}
body.is-post-detail-route .pageShell{min-height:100dvh;padding-top:0;}
body.is-create-route .appHeader{display:none;}
body.is-create-route .pageShell{min-height:100dvh;padding-left:0;padding-right:0;padding-top:0;background:#fff;}
body.is-create-route .routePage{min-height:calc(100dvh - var(--bottom-nav-button-height));padding-top:0;}
body.is-create-route .createCategoryPicker--route{min-height:calc(100dvh - var(--bottom-nav-button-height) - env(safe-area-inset-bottom));}
body.is-create-route .createCategoryPicker--route .createCategoryPicker__page{min-height:calc(100dvh - var(--bottom-nav-button-height) - env(safe-area-inset-bottom));}
.createCategoryPicker__card,.createCategoryPicker__summary,.createCategoryPicker__back,.createCategoryPicker__close{ -webkit-tap-highlight-color:rgba(255,45,117,.14); }
.createCategoryPicker__card:focus,.createCategoryPicker__back:focus,.createCategoryPicker__close:focus{outline:none;}
.createCategoryPicker__card:focus-visible{outline:2px solid rgba(255,45,117,.62);outline-offset:2px;border-color:rgba(255,45,117,.42);}
.createCategoryPicker__back:focus-visible,.createCategoryPicker__close:focus-visible{outline:2px solid rgba(255,45,117,.62);outline-offset:2px;border-radius:10px;}
.createCategoryPicker__card:active{border-color:rgba(255,45,117,.52);background:rgba(255,45,117,.045);}
body.is-create-route .createCategoryPicker__body{padding-left:8px;padding-right:8px;}
@media (min-width:768px){body.is-create-route .createCategoryPicker__body{padding-left:12px;padding-right:12px;}body.is-create-route .createCategoryPicker__list{max-width:none;}}


/* ===== SP v25: Chỉ riêng trang Tạo bài thu lề lại như bản trước, không ảnh hưởng trang chọn danh mục ===== */
body.is-create-route .createPage--route{
  padding-left:14px;
  padding-right:14px;
}
@media (max-width:640px){
  body.is-create-route .createPage--route{
    padding-left:14px;
    padding-right:14px;
  }
}

/* Bộ chọn địa chỉ đăng tin: tìm kiếm + địa chỉ cũ/mới */
.spField--hiddenByLocationMode{display:none !important;}
.spPickerModal[hidden]{display:none !important;}
.spPickerModal{position:fixed;inset:0;z-index:2000;}
.spPickerModal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.24);}
.spPickerModal__sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:28px 28px 0 0;height:72vh;height:72dvh;max-height:72vh;max-height:72dvh;display:flex;flex-direction:column;padding-bottom:calc(10px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px rgba(0,0,0,.12);}
.spPickerModal__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 10px;border-bottom:1px solid rgba(0,0,0,.08);}
.spPickerModal__title{font-size:20px;font-weight:588;line-height:1.2;}
.spPickerModal__close{font-size:18px;font-weight:500;background:#fff;color:#000;padding:0;border:0;}
.spPickerModal__modeTabs[hidden]{display:none !important;}
.spPickerModal__modeTabs{display:flex;gap:10px;padding:12px 16px 10px;border-bottom:1px solid rgba(0,0,0,.06);}
.spPickerModal__modeTab{flex:1;height:44px;border-radius:999px;border:1.5px solid rgba(0,0,0,.1);background:#fff;font-size:16px;font-weight:500;color:#000;}
.spPickerModal__modeTab.is-active{font-weight:588;border-color:#ef5da8;color:#ef5da8;}
.spPickerModal__searchWrap{padding:12px 16px 10px;border-bottom:1px solid rgba(0,0,0,.06);}
.spPickerModal__search{width:100%;height:48px;border:1.5px solid rgba(0,0,0,.12);border-radius:999px;padding:0 18px;background:#fff;font-size:16px;font-weight:500;color:#000;outline:none;box-shadow:none;-webkit-appearance:none;appearance:none;}
.spPickerModal__search:focus{border-color:#ef5da8;box-shadow:none;}
.spPickerModal__search::placeholder{color:rgba(0,0,0,.36);font-weight:400;}
.spPickerModal__list{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:0 0 6px;}
.spPickerModal__item{width:100%;display:block;text-align:left;background:#fff;padding:14px 18px;border:0;border-bottom:1px solid rgba(0,0,0,.08);font-size:16px;font-weight:500;color:#000;}
.spPickerModal__item.is-selected{font-weight:588;color:#ef5da8;}
.spPickerModal__empty{padding:18px;color:rgba(0,0,0,.48);font-size:15px;font-weight:400;}
/* SP v491: Popup chọn Vị trí dùng mẫu app, bỏ dropdown native iOS để không bị co màn/cảm ứng loạn trong app thêm màn hình. */
.spPositionPickerTrigger{color:#000;}
.spPositionPickerTrigger.is-empty{color:transparent;}
.spPickerModal--position .spPickerModal__bar,.spPickerModal--position .spPickerModal__modeTabs,.spPickerModal--position .spPickerModal__searchWrap{display:none!important;}
/* SP v492: Popup Vị trí chỉ còn 1 khối liền, bỏ lớp trắng dư phía trên và cho danh sách nằm gọn trong sheet. */
.spPickerModal--position .spPickerModal__sheet{height:auto;max-height:72dvh;min-height:0;padding-top:0;padding-bottom:0;overflow:hidden;}
.spPickerModal--position .spPickerModal__list{flex:0 1 auto;max-height:72dvh;padding:0 0 calc(10px + env(safe-area-inset-bottom));overflow:auto;background:#fff;}
.spPickerModal--position .spPickerModal__item:first-child{border-top:0;}

/* SP v30: Popup đen + viền báo lỗi trường bắt buộc khi đăng tin */
.toastWrap{position:fixed;left:50%;top:calc(12px + env(safe-area-inset-top));bottom:auto;transform:translateX(-50%);z-index:99999;pointer-events:none;padding:0 12px;width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;visibility:hidden;transition:opacity .22s ease, visibility .22s ease;}
.toastWrap.is-visible{opacity:1;visibility:visible;}
.toastWrap.is-hiding{opacity:0;visibility:hidden;}
.toast{max-width:min(92vw,420px);padding:14px 18px;border-radius:16px;background:rgba(17,17,17,.92);color:#fff;font-size:15px;font-weight:800;box-shadow:0 12px 28px rgba(0,0,0,.22);}
.toast--status{width:min(92vw,420px);padding:14px 16px 15px;}
.toastStatus__text{font-size:15px;font-weight:800;line-height:1.25;text-align:center;}
.toastStatus__track{margin-top:10px;width:100%;height:7px;border-radius:999px;background:rgba(255,255,255,.26);overflow:hidden;}
.toastStatus__bar{height:100%;width:0%;border-radius:999px;background:#fff;transition:width .18s ease;}
.spField--error .input,
.spField--error .textarea,
.spField--error .spPickerTrigger,
.spField--error select,
.spField--error .spInlineRow--price,
.spPhotosField.spField--error .filebtn{
  border-color:#ef4444 !important;
  box-shadow:0 0 0 2px rgba(239,68,68,.12) !important;
}

/* ===== SP: Card tin đăng trang chủ - lấy khung theo app cũ, chỉnh thông số tại đây ===== */
:root{
  /* Tiêu đề bài viết - cỡ chữ */
  --post-title-size:16px;
  /* Tiêu đề bài viết - độ đậm */
  --post-title-weight:588;
  /* Giá bài viết - cỡ chữ */
  --post-price-size:30px;
  /* Diện tích bài viết - cỡ chữ */
  --post-area-size:14px;
  /* Dòng phụ bài viết - cỡ chữ */
  --post-meta-text-size:14px;
  /* Ảnh bài viết - bo góc */
  --post-image-radius:26px;
  /* Ảnh bài viết - tỉ lệ khung ảnh */
  --post-image-ratio:1/1;
}
#homePostList{margin-top:5px;} /* SP v185: danh mục con cách Tin mới/Menu 5px */
.postGrid--sections{display:block;gap:0;}
.homeSection{margin:0 0 22px;}
.homeSection__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;}
.homeSection__title{margin:0;font-size:20px;line-height:1.2;font-weight:588;color:#111;}
.homeSection__menuBtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;padding:0;border:none;background:transparent;box-shadow:none;color:var(--pink);font-size:14px;line-height:1;font-weight:588;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,45,117,.14);}
.homeSection__menuBtn svg{width:32px;height:32px;display:block;flex:0 0 32px;}
.homeSection__menuBtn:active{transform:scale(.96);}
.homePostsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;align-items:start;}
.homeSection__moreBtn{display:block;width:min(230px,72vw);height:44px;margin:20px auto 0;border:1px solid rgba(0,0,0,.24);border-radius:8px;background:#fff;font-size:18px;font-weight:588;color:#111;}
.postCard{text-decoration:none;color:inherit;display:block;}
.postCard--boxed{padding:10px 10px 12px;border:1px solid rgba(0,0,0,.12);border-radius:18px;background:#fff;box-sizing:border-box;display:flex;flex-direction:column;height:100%;}
.postCard--boxed .postCard__thumbWrap{border-radius:14px;}
.postCard__iconBtn{appearance:none;-webkit-appearance:none;pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;background:transparent;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));}
.postCard__iconBtn svg{display:block;width:100%;height:100%;}
.postCard__iconBtn .saveIcon__fill{opacity:0;transition:opacity .18s ease;}
.postCard__iconBtn.is-saved .saveIcon__fill{opacity:1;}
.postCard__iconBtn.is-saved{background:transparent;color:#ff4f93;border-radius:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));}
.postCard__title{margin-top:10px;}
.postCard__thumbWrap{position:relative;width:100%;aspect-ratio:var(--post-image-ratio);border-radius:var(--post-image-radius);overflow:hidden;background:#efefef;}
.postCard__thumb{width:100%;height:100%;object-fit:cover;display:block;}
.postCard__thumbTop{position:absolute;top:14px;left:14px;right:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none;z-index:2;}
.postCard__count{position:relative;top:auto;right:auto;min-width:auto;height:auto;padding:0;border-radius:0;background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;line-height:1;width:auto;box-shadow:none;text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 1px rgba(0,0,0,.95),0 0 6px rgba(255,255,255,.45);}
.postCard__title{margin:12px 0 8px;font-size:var(--post-title-size);line-height:1.18;font-weight:var(--post-title-weight);letter-spacing:-.02em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:calc(1.18em * 2);max-height:calc(1.18em * 2);}
.postCard__meta{display:flex;align-items:flex-end;gap:14px;margin-bottom:8px;flex-wrap:wrap;}
.postCard__area,.postCard__line,.postCard__place{display:flex;align-items:center;gap:4px;min-width:0;}
.postCard__miniIcon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border-radius:7px;background:#f3f4f6;color:#4b5563;box-shadow:inset 0 0 0 1px rgba(17,24,39,.06);}
.postCard__miniIcon svg{display:block;width:14px;height:14px;}
.postCard__area span:last-child,.postCard__line span:last-child,.postCard__place span:last-child{min-width:0;}
.postCard__price{color:var(--pink);font-size:var(--post-price-size);line-height:1;font-weight:900;}
.postCard__area{font-size:var(--post-area-size);line-height:1;font-weight:588;}
.postCard__line,.postCard__place{font-size:var(--post-meta-text-size);line-height:1.22;font-weight:588;}
.postCard__line{margin-bottom:4px;}
.postCard__place{color:rgba(0,0,0,.72);align-items:flex-start;}
.postCard__place .postCard__miniIcon{margin-top:1px;}
.postCard__place span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2;min-height:calc(1.2em * 2);}
.postCard__line span:last-child{line-height:1.2;min-height:1.2em;}
@media (max-width:640px){
  .homeSection__title{font-size:18px;}
  .homePostsGrid{gap:16px 12px;}
  .postCard__thumbWrap{border-radius:22px;}
  .postCard__count{min-width:auto;height:auto;font-size:15px;padding:0;}
  .postCard__title{font-size:16px;line-height:1.32;height:calc(1.32em * 2);max-height:calc(1.32em * 2);}
  .postCard__price{font-size:17px;}
  .postCard__area,.postCard__line,.postCard__place{font-size:14px;}
}

/* SP: Nút mở trang SEO khu vực trong danh mục quận/huyện */
.categorySeoOpen{
  display:block;
  margin:12px 0 0;
  text-align:center;
  border:1px solid rgba(255,47,134,.28);
  border-radius:14px;
  padding:12px;
  color:#ff2f86;
  background:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:588;
}

/* ===== TÀI KHOẢN - DỰNG NÚT TRƯỚC v78 ===== */
/* SP: trang Tài khoản hiện chỉ dựng nút trống, chức năng từng nút làm sau bằng route chuẩn */
.routePage[data-route-page="account"]{
  padding-top:18px;
}

.accountPage{
  min-height:calc(100vh - var(--header-height) - var(--bottom-nav-button-height));
  padding:0 0 18px;
}

.accountHero{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:18px 0 24px;
}

/* SP có thể sửa kích thước avatar tài khoản tại đây */
.accountAvatar{
  width:124px;
  height:124px;
  border-radius:999px;
  background:#e7dbc6;
  color:#252525;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:48px; /* SP có thể sửa cỡ chữ avatar tại đây */
  font-weight:700; /* SP có thể sửa độ đậm chữ avatar tại đây */
  overflow:hidden;
}

/* SP có thể sửa cỡ chữ tên tài khoản tại đây */
.accountHero__title{
  margin-top:18px;
  font-size:20px;
  line-height:1.15;
  font-weight:588;
  color:#000;
}

/* SP có thể sửa cỡ chữ trạng thái đăng nhập tại đây */
.accountHero__status{
  margin-top:8px;
  font-size:18px;
  line-height:1.35;
  font-weight:588;
  color:rgba(0,0,0,.56);
}

/* SP: Cảnh báo nhỏ khi tài khoản chưa thêm email khôi phục */
.accountRecoveryWarning{
  width:100%;
  min-height:46px;
  margin:0 0 12px;
  padding:0 16px;
  border:1px solid rgba(255,47,134,.22);
  border-radius:18px;
  background:#fff7fb;
  color:#ff2f86;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  touch-action:manipulation;
}
.accountRecoveryWarning__text{
  font-size:16px;
  line-height:1.2;
  font-weight:588;
  text-align:left;
}
.accountRecoveryWarning__arrow{
  width:24px;
  min-width:24px;
  font-size:28px;
  line-height:1;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transform:translateY(-1px);
}


.accountMenu{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:26px; /* SP có thể sửa bo góc khung nút tài khoản tại đây */
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}

.accountMenu__item{
  width:100%;
  min-height:56px; /* SP có thể sửa chiều cao mỗi nút tài khoản tại đây */
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 16px; /* SP có thể sửa khoảng cách trái phải nút tại đây */
  background:#fff;
  cursor:pointer;
  touch-action:manipulation;
}

.accountMenu__item + .accountMenu__item{
  border-top:1px solid rgba(0,0,0,.08);
}

.accountMenu__left{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.accountMenu__icon{
  width:22px; /* SP có thể sửa kích thước icon tài khoản tại đây */
  height:22px;
  color:rgba(0,0,0,.48);
  flex:0 0 auto;
}

.accountMenu__icon svg{
  width:22px;
  height:22px;
  display:block;
}

/* SP có thể sửa cỡ chữ nút tài khoản tại đây */
.accountMenu__label{
  font-size:16px;
  line-height:1.2;
  font-weight:588;
  color:#000;
  text-align:left;
}

.accountMenu__arrow{
  color:rgba(0,0,0,.42);
  width:28px;
  min-width:28px;
  height:28px;
  font-size:32px; /* SP có thể sửa size mũi tên > tại đây */
  font-weight:600;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 28px;
  transform:translateY(-2px);
}

.accountMenu__item--danger .accountMenu__label,
.accountMenu__item--danger .accountMenu__icon{
  color:#ef5350;
}

@media (max-width:390px){
  .accountAvatar{width:112px;height:112px;font-size:44px;}
  .accountMenu__item{min-height:56px;padding:0 16px;}
  .accountMenu__label{font-size:16px;}
}

/* ===== TÀI KHOẢN v79: Đăng nhập / Đăng ký route riêng ===== */
.accountAuthBox{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:0;
}

/* SP có thể sửa chiều cao nút đăng nhập/đăng ký tài khoản tại đây */
.accountAuthBtn{
  width:100%;
  min-height:44px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:12px;
  background:#fff;
  color:#000;
  font-size:16px; /* SP có thể sửa cỡ chữ nút đăng nhập/đăng ký tại đây */
  font-weight:588;
  cursor:pointer;
  touch-action:manipulation;
}

.accountAuthBtn--primary{
  border-color:#ff2f86;
  background:#ff2f86;
  color:#fff;
}

.routePage[data-route-page="login"],
.routePage[data-route-page="register"]{
  padding-top:18px;
}

.authPage{
  min-height:calc(100vh - var(--header-height) - var(--bottom-nav-button-height));
  padding:0 0 90px;
  position:relative;
}

.authCard{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:26px;
  padding:20px 16px 18px; /* SP có thể sửa khoảng cách trong form đăng nhập/đăng ký tại đây */
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}

.authTitle{
  margin:0;
  color:#000;
  font-size:22px; /* SP có thể sửa cỡ chữ tiêu đề đăng nhập/đăng ký tại đây */
  line-height:1.18;
  font-weight:588;
}

.authIntro{
  margin:8px 0 18px;
  color:rgba(0,0,0,.58);
  font-size:16px;
  line-height:1.4;
  font-weight:400;
}

.authForm{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.authField{
  display:flex;
  flex-direction:column;
  gap:6px;
  color:#000;
  font-size:16px;
  line-height:1.2;
  font-weight:588;
}

.authInput{
  width:100%;
  height:44px; /* SP có thể sửa chiều cao ô nhập đăng nhập/đăng ký tại đây */
  border:1px solid rgba(0,0,0,.14);
  border-radius:12px;
  background:#fff;
  color:#000;
  padding:0 12px;
  font-size:16px;
  font-weight:400;
  outline:none;
}

.authInput:focus{
  border-color:#ff2f86;
  box-shadow:none; /* SP v195: bỏ viền ngoài ô nhập đăng nhập/đăng ký */
}

.authSubmit{
  width:100%;
  min-height:44px;
  margin-top:4px;
  border:1px solid #ff2f86;
  border-radius:12px;
  background:#ff2f86;
  color:#fff;
  font-size:16px;
  font-weight:588;
  cursor:pointer;
  touch-action:manipulation;
}

.authSubmit:disabled{
  opacity:.55;
  cursor:default;
}

.authTextBtn,
.authLinkBtn{
  border:0;
  background:transparent;
  color:#ff2f86;
  font-size:16px;
  font-weight:588;
  cursor:pointer;
  padding:0;
}

.authTextBtn{
  margin-top:16px;
}

.authSwitch{
  margin-top:16px;
  color:rgba(0,0,0,.66);
  font-size:16px;
  font-weight:400;
  text-align:center;
}

/* SP có thể sửa vị trí nút hỗ trợ tài khoản tại đây */
.authSupportFab{
  position:fixed;
  right:14px;
  bottom:calc(var(--bottom-nav-button-height) + 16px + env(safe-area-inset-bottom));
  z-index:80;
  min-height:42px;
  padding:0 14px;
  border:1px solid rgba(255,47,134,.32);
  border-radius:999px;
  background:#fff;
  color:#ff2f86;
  font-size:15px;
  font-weight:588;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  cursor:pointer;
  touch-action:manipulation;
}

.authSupportOverlay{
  position:fixed;
  inset:0;
  z-index:1000;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}

.authSupportOverlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.authSupportBackdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.28);
}

.authSupportSheet{
  position:absolute;
  left:12px;
  right:12px;
  bottom:calc(12px + env(safe-area-inset-bottom));
  background:#fff;
  border-radius:24px;
  padding:20px 16px 16px;
  box-shadow:0 18px 44px rgba(0,0,0,.22);
}

.authSupportClose{
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:transparent;
  color:#000;
  font-size:26px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
}

.authSupportTitle{
  margin:0 34px 10px 0;
  color:#000;
  font-size:20px;
  line-height:1.2;
  font-weight:588;
}

.authSupportText{
  margin:0;
  color:#000;
  font-size:18px;
  font-weight:588;
}

.authSupportSub{
  margin:6px 0 14px;
  color:rgba(0,0,0,.58);
  font-size:16px;
  font-weight:400;
}

.authSupportActions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}

.authSupportAction{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,47,134,.28);
  border-radius:16px;
  background:#fff;
  color:#ff2f86;
  text-decoration:none;
  font-size:16px;
  font-weight:588;
}



/* ===== TÀI KHOẢN v82: Trang cài đặt tài khoản route riêng ===== */
/* SP: trang /cai-dat-tai-khoan dùng route chuẩn, không làm tab nổi */
.routePage[data-route-page="accountSettings"]{
  padding-top:18px;
}

.accountSettingsPage{
  min-height:calc(100vh - var(--header-height) - var(--bottom-nav-button-height));
  padding:0 0 90px; /* SP v506: mở rộng khung các trang cài đặt tài khoản ra sát chuẩn trang app */
}

.accountSettingsCard{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:26px;
  padding:20px 16px 18px; /* SP có thể sửa khoảng cách trong trang cài đặt tài khoản tại đây */
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}


.accountSettingsHead{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 32px;
  align-items:center;
  column-gap:12px;
  margin:0 0 8px;
}

.accountSettingsBackBtn{
  appearance:none;
  -webkit-appearance:none;
  border:none;
  background:transparent;
  color:#111;
  font-size:26px;
  line-height:1;
  font-weight:600;
  padding:0;
  width:32px;
  height:32px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  touch-action:manipulation;
}

.accountSettingsBackBtn svg{
  width:28px;
  height:28px;
  display:block;
}

.accountSettingsHead__space{
  width:32px;
  height:32px;
}

.accountSettingsHead .accountSettingsTitle{
  text-align:center;
}

.accountSettingsTitle{
  margin:0;
  color:#000;
  font-size:18px; /* SP có thể sửa cỡ chữ tiêu đề cài đặt tài khoản tại đây - mặc định 18px */
  line-height:1.18;
  font-weight:588;
}

.accountSettingsIntro{
  margin:8px 0 18px;
  color:rgba(0,0,0,.58);
  font-size:16px;
  line-height:1.4;
  font-weight:400;
}

.accountSettingsForm{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.accountSettingsSubmit{
  width:100%;
  min-height:54px; /* SP có thể sửa chiều cao nút lưu cài đặt tài khoản tại đây */
  margin-top:6px;
  border:1px solid #ff2f86;
  border-radius:18px;
  background:#ff2f86;
  color:#fff;
  font-size:18px;
  font-weight:588;
  cursor:pointer;
  touch-action:manipulation;
}

.accountSettingsSubmit:disabled{
  opacity:.55;
  cursor:default;
}

.accountSettingsSubmit--small{
  width:auto; /* SP v506: nút nhỏ không kéo full ngang như nút lớn */
  align-self:center;
  min-width:min(100%, 260px);
  min-height:46px; /* SP có thể sửa chiều cao nút nhỏ trong trang tài khoản tại đây */
  padding:0 24px;
  border-radius:16px;
  font-size:16px; /* SP có thể sửa cỡ chữ nút nhỏ trong trang tài khoản tại đây */
}

.accountPasswordInlineForm{
  gap:12px; /* SP có thể sửa khoảng cách ô nhập đổi mật khẩu tại đây */
}



/* ===== SP v506: Bảo mật tài khoản gọn, email xuống dòng, phần đổi email chỉ hiện khi bấm nút ===== */
.securityInfoBox{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 16px;
  padding:14px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:18px;
  background:#fafafa;
}
.securityInfoLine{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#000;
  font-size:16px;
  line-height:1.3;
  font-weight:588;
}
.securityInfoLine strong{
  min-width:0;
  text-align:right;
  font-size:16px;
  line-height:1.35;
  font-weight:588;
  overflow-wrap:anywhere;
}
.securityInfoLine--stack{
  align-items:flex-start;
  flex-direction:column;
  gap:6px;
}
.securityInfoLine--stack strong{
  width:100%;
  text-align:left;
}
.securityInfoLine .is-ok{color:#1fa34a;}
.securityInfoLine .is-warn{color:#ff8a00;}
.securityEmailForm.is-collapsed .securityEmailForm__fields{display:none;}
.securityEmailForm__fields{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.accountSettingsSubmit--ghost{
  background:#fff;
  color:#ff2f86;
}

.accountReadonlyBlock{
  margin-top:18px;
  padding:14px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:18px;
  background:#fafafa;
}

.accountReadonlyLabel{
  color:#000;
  font-size:16px;
  line-height:1.2;
  font-weight:588;
}

.accountReadonlyValue{
  margin-top:8px;
  color:rgba(0,0,0,.62);
  font-size:16px;
  line-height:1.35;
  font-weight:400;
  word-break:break-word;
}

.accountPasswordBlock{
  margin-top:18px;
}

.accountPasswordToggle{
  width:100%;
  min-height:54px; /* SP có thể sửa chiều cao nút đổi mật khẩu tại đây */
  border:1px solid rgba(255,47,134,.28);
  border-radius:18px;
  background:#fff;
  color:#ff2f86;
  font-size:18px;
  font-weight:588;
  cursor:pointer;
  touch-action:manipulation;
}

.accountPasswordForm{
  margin-top:14px;
}

/* SP v80: Popup chuẩn chung toàn app, lấy mẫu Hỗ trợ tài khoản làm chuẩn */
.appPopupOverlay{
  position:fixed;
  inset:0;
  z-index:100000;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}

.appPopupOverlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.appPopupBackdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.28);
}

.appPopupSheet{
  position:absolute;
  left:50%;
  top:50%;
  width:calc(100% - 24px);
  max-width:420px;
  transform:translate(-50%, -50%);
  background:#fff;
  border-radius:24px;
  padding:20px 16px 16px;
  box-shadow:0 18px 44px rgba(0,0,0,.22);
}
.appPopupClose{
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:transparent;
  color:#000;
  font-size:26px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
}

.appPopupTitle{
  margin:0 34px 10px 0;
  color:#000;
  font-size:20px;
  line-height:1.2;
  font-weight:588;
}

.appPopupText{
  margin:0;
  color:#000;
  font-size:18px;
  font-weight:588;
}

.appPopupSub{
  margin:6px 0 14px;
  color:rgba(0,0,0,.58);
  font-size:16px;
  font-weight:400;
}

.appPopupActions{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.appPopupActions--count2{
  grid-template-columns:repeat(2,1fr);
}

.appPopupActions--count3{
  grid-template-columns:repeat(3,1fr);
}

.appPopupAction{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,47,134,.28);
  border-radius:16px;
  background:#fff;
  color:#ff2f86;
  text-decoration:none;
  font-size:16px;
  font-weight:588;
  cursor:pointer;
}

.appPopupAction--primary,
.appPopupAction--danger{
  background:#ff2f86;
  color:#fff;
  border-color:#ff2f86;
}

/* ===== TÀI KHOẢN v83: Cài đặt dạng nút, tất cả thao tác là route riêng ===== */
/* SP: áp dụng chung cho /cai-dat-tai-khoan, /doi-ten-hien-thi, /doi-mat-khau và các trang nhập mật khẩu */
.routePage[data-route-page="changeDisplayName"],
.routePage[data-route-page="changePassword"],
.routePage[data-route-page="passwordCurrent"],
.routePage[data-route-page="passwordNew"],
.routePage[data-route-page="passwordConfirm"]{
  padding-top:18px;
}

.accountSettingsList{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.accountSettingsRow{
  width:100%;
  min-height:66px; /* SP có thể sửa chiều cao nút cài đặt tài khoản tại đây */
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:18px;
  background:#fff;
  color:#000;
  text-align:left;
  cursor:pointer;
  touch-action:manipulation;
}

.accountSettingsRow--static{
  cursor:default;
  background:#fafafa;
}

.accountSettingsRow__main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.accountSettingsRow__label{
  color:#000;
  font-size:18px; /* SP có thể sửa cỡ chữ tên nút cài đặt tài khoản tại đây */
  line-height:1.15;
  font-weight:588;
}

.accountSettingsRow__value{
  color:rgba(0,0,0,.58);
  font-size:15px; /* SP có thể sửa cỡ chữ dòng phụ cài đặt tài khoản tại đây */
  line-height:1.25;
  font-weight:400;
  word-break:break-word;
}

.accountSettingsRow__arrow{
  flex:0 0 auto;
  color:rgba(0,0,0,.34);
  font-size:30px;
  line-height:1;
  font-weight:400;
}
/* SP v107: Chỉ riêng khung Tạo bài ẩn bar dưới chân và thêm nút đóng */
body.is-create-form-route .bottomNav{display:none;}
body.is-create-form-route .routePage{min-height:100dvh;}
body.is-create-form-route .createPage--route{padding-bottom:calc(18px + env(safe-area-inset-bottom));}
.createTopBar__close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:#111;font-size:26px;font-weight:600;line-height:1;cursor:pointer;-webkit-tap-highlight-color:rgba(255,45,117,.14);}
.createTopBar__close:focus{outline:none;}
.createTopBar__close:focus-visible{outline:2px solid rgba(255,45,117,.62);outline-offset:2px;border-radius:10px;}


/* SP v133: nút báo có tin đăng mới realtime, không chiếm chỗ nên không đẩy trang/không nhảy scroll */
.homeNewPostsNotice{
  position:fixed;
  top:calc(78px + env(safe-area-inset-top)); /* SP có thể sửa vị trí nút Có tin đăng mới tại đây */
  left:50%;
  z-index:80;
  transform:translateX(-50%);
  min-height:38px; /* SP có thể sửa chiều cao nút Có tin đăng mới tại đây */
  padding:0 18px;
  border:0;
  border-radius:999px;
  background:var(--pink);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:16px; /* SP có thể sửa cỡ chữ nút Có tin đăng mới tại đây */
  line-height:1;
  font-weight:588;
  box-shadow:0 6px 18px rgba(255,47,134,.28);
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.homeNewPostsNotice__icon{
  font-size:18px; /* SP có thể sửa cỡ mũi tên nút Có tin đăng mới tại đây */
  line-height:1;
  transform:translateY(1px);
}

/* SP v198: Chuẩn chung nút X trong toàn bộ ô nhập ký tự - lấy mẫu nút X tìm kiếm v196 */
.appInputClearHost{position:relative;}
.appInputClearTarget{padding-right:44px !important;}
.appInputClear.appInputClear--auto{
  position:absolute;
  z-index:6;
  width:22px; /* SP sửa kích thước nút X xoá chữ dùng chung tại đây */
  height:22px;
  border:0;
  border-radius:50%;
  background:rgba(0,0,0,.12);
  color:rgba(0,0,0,.62);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:Arial, sans-serif;
  font-size:20px; /* SP sửa cỡ dấu X dùng chung tại đây */
  font-weight:500;
  line-height:22px;
  text-align:center;
  padding:0;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
}
.appInputClear.appInputClear--auto[hidden]{display:none !important;}
.appInputClear.appInputClear--auto:active{transform:translateY(-50%) scale(.94) !important;}
input.appInputClearTarget::-webkit-search-cancel-button,
input.appInputClearTarget::-webkit-search-decoration{display:none;-webkit-appearance:none;}

/* ===== AVATAR ĐỒNG BỘ TOÀN APP v222 ===== */
.appAvatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:999px;
  background:#e7dbc6;
  color:#252525;
  font-weight:700;
  line-height:1;
  flex:0 0 auto;
}
.appAvatar__img,
.appAvatar > img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.appAvatar--broken img{display:none;}
.publicProfilePage__avatarUploadBtn{
  display:block;
  border:0;
  padding:0;
  margin:0 auto;
  background:transparent;
  border-radius:999px;
  cursor:pointer;
  touch-action:manipulation;
}
.publicProfilePage__avatarUploadBtn:disabled{opacity:.72;cursor:default;}
.publicProfilePage__avatarHint{
  margin-top:6px;
  font-size:12px;
  line-height:1.2;
  font-weight:500;
  color:rgba(0,0,0,.48);
}
.accountAvatar .appAvatar__text,
.publicProfilePage__avatar .appAvatar__text,
.detailPage__creatorAvatar .appAvatar__text,
.contactListItem__avatar .appAvatar__text,
.contactChatSheet__avatar .appAvatar__text{line-height:1;}

/* SP v228: Ẩn số điện thoại trong nội dung tin đăng, lấy logic từ app cũ v384. */
.maskedPhoneText{
  display:inline;
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  line-height:inherit;
  padding:0;
  margin:0;
  cursor:pointer;
  text-align:left;
}
.maskedPhoneText__digits{font-weight:500;color:inherit;}
.maskedPhoneText__reveal{color:#e91e63;font-weight:588;white-space:nowrap;}

/* ===== SP v273: Trang riêng Quản lí video /quan-ly-video ===== */
.myVideosPage{
  min-height:100%;
  padding:14px 12px 90px;
  background:#fff;
  color:#111;
}
.myVideosHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 12px;
}
.myVideosHead h1{
  margin:0;
  font-size:20px; /* SP chỉnh cỡ tiêu đề trang quản lí video tại đây */
  font-weight:588; /* SP chỉnh độ đậm tiêu đề tại đây */
  line-height:1.2;
}
.myVideosHead__actions{
  display:flex;
  align-items:center;
  gap:8px; /* SP chỉnh khoảng cách nút Đăng video và nút X tại đây */
}
.myVideosUploadBtn{
  border:1px solid rgba(0,0,0,.14);
  border-radius:999px;
  background:#fff;
  color:#111;
  height:34px; /* SP chỉnh chiều cao nút Đăng video tại đây */
  padding:0 14px;
  font-size:14px;
  font-weight:500;
}
.myVideosClose{
  width:34px; /* SP chỉnh kích thước nút X quản lí video tại đây */
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  color:#444;
  padding:0;
  font-size:30px; /* SP chỉnh cỡ dấu X quản lí video tại đây */
  line-height:1;
  font-weight:600;
  cursor:pointer;
  touch-action:manipulation;
  transform:translateY(-1px); /* SP chỉnh nâng/hạ nút X quản lí video tại đây */
}
.myVideosList{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.myVideoItem{
  display:flex;
  gap:10px;
  padding:10px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:14px;
  background:#fff;
}
.myVideoItem__thumb{
  width:86px; /* SP chỉnh chiều rộng thumbnail video tại đây */
  height:116px; /* SP chỉnh chiều cao thumbnail video tại đây */
  border:0;
  padding:0;
  border-radius:10px;
  overflow:hidden;
  background:#111;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  font-size:13px;
  font-weight:500;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.myVideoItem__thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.myVideoItem__body{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
}
.myVideoItem__title{
  font-size:16px; /* SP chỉnh cỡ chữ tiêu đề video tại đây */
  font-weight:500;
  line-height:1.25;
  color:#111;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.myVideoItem__status{
  margin-top:6px;
  font-size:13px;
  font-weight:500;
  color:#777;
}
.myVideoItem__status.is-ready{color:#111;}
.myVideoItem__status.is-error{color:#e91e63;}
.myVideoItem__status--visibility{
  margin-top:3px;
  color:#444;
}
.myVideoItem__actions{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
  margin-top:auto;
  padding-top:12px;
}
.myVideoAction{
  height:32px; /* SP chỉnh chiều cao 3 nút Sửa/Ẩn/Xoá tại đây */
  border:1px solid rgba(0,0,0,.14);
  border-radius:10px;
  background:#fff;
  color:#111;
  font-size:14px;
  font-weight:500;
  padding:0 6px;
  -webkit-tap-highlight-color:transparent;
}
.myVideoAction:disabled{
  opacity:.45;
  color:#777;
}
.myVideoAction--danger{
  color:#e91e63;
  border-color:rgba(233,30,99,.28);
}
.myVideosEmpty{
  padding:26px 12px;
  text-align:center;
  color:#777;
  font-size:15px;
  font-weight:500;
}

/* SP v304: Địa chỉ trong đăng video + hiển thị dưới tiêu đề video. */
.videoUploadLocation{
  display:flex;
  flex-direction:column;
  gap:10px; /* SP chỉnh khoảng cách 3 trường địa chỉ video tại đây */
  margin:0 0 10px;
}
.videoCaption__location{
  display:flex;
  align-items:flex-start;
  gap:5px; /* SP chỉnh khoảng cách icon địa chỉ video tại đây */
  margin-top:4px; /* SP chỉnh khoảng cách tiêu đề video tới địa chỉ tại đây */
  font-size:14px; /* SP chỉnh cỡ chữ địa chỉ video tại đây */
  font-weight:500;
  line-height:1.28;
  color:rgba(255,255,255,.86);
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.videoCaption__locationIcon{
  width:15px; /* SP chỉnh kích thước icon địa chỉ video tại đây */
  height:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  margin-top:1px;
  color:currentColor;
}
.videoCaption__locationIcon svg{
  width:100%;
  height:100%;
  display:block;
}

/* SP v386: Điện thoại - Tin khác của người đăng trong trang xem tin, đặt trên Tin đăng tương tự. */
.detailPage__ownerOtherPostsMobile{display:none;}
@media (max-width:1023px){
  .detailPage__ownerOtherPostsMobile{
    display:block;
    margin:14px -8px 14px; /* SP v387: mobile cho khối Tin khác rộng ngang tương đồng các mục trong xem tin. */
    padding:12px;
    box-sizing:border-box;
    background:#fff;
    border:1px solid rgba(17,24,39,.14);
    border-radius:16px;
    box-shadow:0 8px 22px rgba(17,24,39,.035);
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherHead{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 10px;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherHeading{
    margin:0;
    font-size:16px;
    line-height:1.25;
    font-weight:588;
    color:#111;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherMore{
    border:0;
    background:transparent;
    color:var(--pink);
    font-size:14px;
    font-weight:588;
    padding:4px 0;
    white-space:nowrap;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherList{
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherCard{
    width:100%;
    display:grid;
    grid-template-columns:96px 1fr;
    gap:10px;
    align-items:stretch;
    padding:7px;
    border:1px solid rgba(17,24,39,.10);
    border-radius:13px;
    background:#fff;
    text-align:left;
    box-sizing:border-box;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherThumb{
    display:block;
    width:96px;
    height:78px;
    border-radius:11px;
    overflow:hidden;
    background:#f3f4f6;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherThumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherThumbEmpty{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    color:rgba(0,0,0,.45);
    text-align:center;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherInfo{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherTitle{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:14px;
    line-height:1.25;
    font-weight:588;
    color:#111;
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherPrice{
    font-size:14px;
    line-height:1.2;
    font-weight:700;
    color:var(--pink);
  }
  .detailPage__ownerOtherPostsMobile .detailPage__ownerOtherPlace{
    font-size:12px;
    line-height:1.25;
    font-weight:400;
    color:rgba(0,0,0,.62);
  }
}

/* SP sửa v405: ẩn nút qua lại nhỏ ở trình xem ảnh phiên bản điện thoại */
@media (max-width: 768px){
  .photoViewer__nav{
    display:none !important;
  }
}


/* SP sửa v406: mobile - ảnh trong trình xem ảnh bài đăng tràn viền như bản cũ, không ảnh hưởng PC/chat */
@media (max-width: 768px){
  .photoViewer:not(.photoViewer--chat) .photoViewer__slide,
  .photoViewer:not(.photoViewer--chat) .photoViewer__main,
  .photoViewer:not(.photoViewer--chat) .photoViewer__img{
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* SP v443: Nút cài app PWA */
.accountAuthBtn--install{
  border-color:rgba(255,47,134,.28);
  color:#ff2f86;
  background:#fff;
}

.authInstallMiniBtn{
  display:block;
  width:auto;
  min-height:34px; /* SP có thể sửa chiều cao nút Cài app nhỏ tại đây */
  margin:12px auto 0;
  padding:0 14px;
  border:1px solid rgba(255,47,134,.28);
  border-radius:999px;
  background:#fff;
  color:#ff2f86;
  font-size:14px; /* SP có thể sửa cỡ chữ nút Cài app nhỏ tại đây */
  font-weight:588;
  cursor:pointer;
  touch-action:manipulation;
}

.appInstallGuideOverlay{
  position:fixed;
  inset:0;
  z-index:100001;
}

.appInstallGuideBackdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.28);
}

.appInstallGuideSheet{
  position:absolute;
  left:50%;
  top:50%;
  width:calc(100% - 24px);
  max-width:420px;
  transform:translate(-50%, -50%);
  background:#fff;
  border-radius:24px;
  padding:20px 16px 16px;
  box-shadow:0 18px 44px rgba(0,0,0,.22);
}

.appInstallGuideClose{
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:transparent;
  color:#000;
  font-size:26px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
}

.appInstallGuideTitle{
  margin:0 34px 6px 0;
  color:#000;
  font-size:20px;
  line-height:1.2;
  font-weight:588;
}

.appInstallGuideIntro{
  margin:0 34px 14px 0;
  color:rgba(0,0,0,.58);
  font-size:16px;
  line-height:1.35;
  font-weight:400;
}

.appInstallSteps{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.appInstallStep{
  min-height:72px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  background:#fff;
}

.appInstallStep b,
.appInstallStep span{
  display:block;
}

.appInstallStep b{
  color:#000;
  font-size:16px;
  line-height:1.25;
  font-weight:588;
}

.appInstallStep span{
  margin-top:3px;
  color:rgba(0,0,0,.58);
  font-size:14px;
  line-height:1.3;
  font-weight:400;
}

.appInstallMock{
  width:54px;
  height:54px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,47,134,.22);
  border-radius:16px;
  background:rgba(255,47,134,.06);
  color:#ff2f86;
}

.appInstallShareIcon{
  width:24px;
  height:26px;
  position:relative;
  display:block;
  border:2px solid currentColor;
  border-top:0;
  border-radius:0 0 6px 6px;
}

.appInstallShareIcon::before{
  content:'';
  position:absolute;
  left:50%;
  top:-12px;
  width:2px;
  height:22px;
  background:currentColor;
  transform:translateX(-50%);
}

.appInstallShareIcon::after{
  content:'';
  position:absolute;
  left:50%;
  top:-12px;
  width:10px;
  height:10px;
  border-left:2px solid currentColor;
  border-top:2px solid currentColor;
  transform:translateX(-50%) rotate(45deg);
}

.appInstallPlusIcon{
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid currentColor;
  border-radius:8px;
  font-size:24px;
  line-height:1;
  font-weight:588;
}

.appInstallGuideOk{
  width:100%;
  min-height:44px;
  margin-top:14px;
  border:1px solid #ff2f86;
  border-radius:16px;
  background:#ff2f86;
  color:#fff;
  font-size:16px;
  font-weight:588;
  cursor:pointer;
}
