@charset "UTF-8";
/* =====================================================================
   ACM BEVERAGE — FIXED TOC (#ftwp-contents)
   Style lại mục lục của plugin fixed-toc khi nó chạy ở chế độ widget
   trong sidebar bài viết (xem dsn_toc_styles() trong functions.php).

   LƯU Ý SPECIFICITY: plugin in một khối <style id="fixedtoc-style-inline-css">
   ngay trong body — tức là SAU file này trong document order — với selector
   dạng "#ftwp-container.ftwp-wrap #ftwp-header" (2 ID + 1 class). Nên mọi rule
   ở đây bám tiền tố ".ftwp-widget #ftwp-container.ftwp-wrap" (2 ID + 2 class)
   để thắng mà không phải rải !important.

   KHÔNG đụng vào height/top/left/width của #ftwp-contents: khi bật chế độ
   "fixed in widget", plugin set các giá trị đó bằng inline style qua JS.
   ===================================================================== */

.ftwp-widget {
  --toc-blue: var(--dsn-blue, #0f4fa8);
  --toc-blue-soft: #eaf2fd;
  --toc-ink: #0d2438;
  --toc-ink-mid: #4a6b85;
  --toc-line: #dce7f2;
  --toc-gutter: 6px;
  /* Chừa chỗ cho nút mở/đóng nằm absolute ở đầu dòng. Mọi dòng dùng chung một
     lề trái để chữ thẳng hàng, dù dòng đó có nút hay không. */
  --toc-row-pad-left: 26px;
  --toc-indent: 14px;
}

/* ------------------------------ Khung thẻ ------------------------------ */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-contents {
  background: #fff;
  border: 1px solid var(--toc-line);
  border-radius: 16px;
  box-shadow: 0 6px 24px rgba(15, 79, 168, .08);
  overflow: hidden;
  height: auto !important;
  position: relative;
  left: unset !important;
  width: unset !important;
}

/* ------------------------------- Header -------------------------------- */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-header {
  display: flex;
  align-items: center;
  padding: 13px 16px 12px;
  background: linear-gradient(180deg, var(--toc-blue-soft) 0%, #f6faff 100%);
  border-bottom: 1px solid var(--toc-line);
  transition: none;
}
/* Vạch nhấn dọc bên trái tiêu đề */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-header::before {
  content: "";
  flex: 0 0 3px;
  align-self: stretch;
  min-height: 16px;
  margin-right: 10px;
  border-radius: 3px;
  background: var(--toc-blue);
}
/* Header gốc dùng float + ::after clearfix; đã chuyển sang flex nên bỏ đi,
   không thì thừa một ô trống cuối hàng. */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-header::after { display: none; }

.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-header-title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--toc-blue);
}

/* Ở chế độ widget, nút trigger bị plugin đẩy ra ngoài màn hình (top:-9999px)
   nên bấm minimize sẽ thu mục lục lại mà không còn cách bung ra — ẩn luôn.
   #ftwp-header-control cũng rỗng (icon-none), chỉ chiếm chỗ. */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-header-minimize,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-header-control { display: none; }

/* ----------------------------- Danh sách ------------------------------- */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list {
  padding: 8px 0;
  background: #fff;
  color: var(--toc-ink-mid);
  font-size: 13px;
  line-height: 1.45;
  /* Mục lục dài hơn màn hình thì sticky column mất tác dụng — chặn chiều cao
     rồi cho cuộn trong khung. */
  max-height: min(62vh, 520px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c3d8ee transparent;
  transition: none;
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list::-webkit-scrollbar { width: 6px; }
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list::-webkit-scrollbar-thumb {
  background: #c3d8ee;
  border-radius: 3px;
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list::-webkit-scrollbar-thumb:hover { background: #9dbfe2; }

/* Mặc định plugin đổi nền cả khung khi hover — giữ nguyên nền cho đỡ nhấp nháy */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-contents:hover #ftwp-header {
  background: linear-gradient(180deg, var(--toc-blue-soft) 0%, #f6faff 100%);
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-contents:hover #ftwp-list { background: #fff; }

/* ------------------------------ Từng dòng ------------------------------ */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor {
  position: relative;
  margin: 3px var(--toc-gutter);
  padding: 7px 12px 7px var(--toc-row-pad-left);
  border-radius: 10px;
  color: var(--toc-ink-mid);
  transition: background-color .2s ease, color .2s ease;
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-text {
  font-size: 13px;
  font-weight: 400;
}
/* Cấp 1 đậm hơn một nấc để phân tầng rõ */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-strong-first > .ftwp-item > .ftwp-anchor .ftwp-text {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--toc-ink);
}

/* Hiệu ứng "bounce-to-right" vẽ thanh nền bên trong .ftwp-text, tức là chỉ phủ
   phần chữ (đã thụt 26px) nên trông lệch hẳn sang phải. Tắt, thay bằng nền đặt
   trên cả dòng .ftwp-anchor bên dưới. */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-text::before { display: none; }

.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:hover {
  background: var(--toc-blue-soft);
  color: var(--toc-blue);
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:focus-visible {
  outline: 2px solid var(--toc-blue);
  outline-offset: 1px;
}

/* Mục đang đọc */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor.ftwp-active,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor.ftwp-active:hover,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:focus {
  background: var(--toc-blue);
  color: #fff;
}
/* Cấp 1 được .ftwp-strong-first tô màu chữ riêng (specificity cao hơn), nên
   khối màu trắng khi active phải bám sâu ít nhất bằng nó mới thắng. */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-strong-first .ftwp-item > .ftwp-anchor.ftwp-active .ftwp-text,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-strong-first .ftwp-item > .ftwp-anchor:focus .ftwp-text,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor.ftwp-active .ftwp-text,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:focus .ftwp-text { color: #fff; }

/* ----------------------- Thụt lề các cấp con --------------------------- */
/* Plugin thụt lề bằng margin-left trên ::before (bullet ẩn) của từng cấp. Bỏ
   cơ chế đó, dùng margin-left trên chính <ol class="ftwp-sub"> để còn kẻ được
   đường dọc nối các mục con về mục cha. */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest .ftwp-sub .ftwp-anchor::before { margin-left: 0; }

.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-sub {
  /* margin-bottom để đường kẻ dọc không chạy sát mép dưới thẻ khi nhóm con
     nằm ở cuối mục lục */
  margin: 0 0 4px calc(var(--toc-row-pad-left) - 8px);
  border-left: 1px solid var(--toc-line);
}
/* Cấp 2 trở xuống thụt tiếp một nấc nhỏ, không lặp lại cả lề 26px */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list .ftwp-sub .ftwp-sub { margin-left: var(--toc-indent); }

/* --------------------------- Nút mở / đóng ----------------------------- */
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-icon-expand,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-icon-collapse {
  /* Nút absolute theo <li>; các cấp con đã được .ftwp-sub thụt sẵn nên trả
     left về một giá trị chung thay vì cộng dồn 20/40/60px như plugin. */
  left: var(--toc-gutter);
  top: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  box-sizing: border-box;
  border-radius: 6px;
  font-size: 10px;
  color: var(--toc-ink-mid);
  opacity: .6;
  transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-has-sub .ftwp-has-sub > .ftwp-icon-expand,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-has-sub .ftwp-has-sub > .ftwp-icon-collapse,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-has-sub .ftwp-has-sub .ftwp-has-sub > .ftwp-icon-expand,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-has-sub .ftwp-has-sub .ftwp-has-sub > .ftwp-icon-collapse {
  left: var(--toc-gutter);
}
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-icon-expand:hover,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-icon-collapse:hover,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-icon-expand:focus,
.ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list.ftwp-list-nest.ftwp-colexp .ftwp-icon-collapse:focus {
  /* plugin scale(1.3) làm icon nhảy khỏi ô 20px — đổi sang đổi nền cho êm */
  transform: none;
  cursor: pointer;
  opacity: 1;
  background: var(--toc-blue-soft);
  color: var(--toc-blue);
}

/* ------------------------------- Mobile -------------------------------- */
/* Dưới 850px Flatsome xếp sidebar xuống dưới bài viết, mục lục chiếm full width */
@media screen and (max-width: 849px) {
  .ftwp-widget #ftwp-container.ftwp-wrap #ftwp-list { max-height: 50vh; }
}
