:root{
	--tocbgr: #ffffffe8;
	--tocbor: #777;
	--toctit: #fff;
	--toctitback: #333;
	--toclin: #333;
	--tocsec: #9b9b9b73;
	--tocsize:16px;
	
	--tocnutbgr: #ffffffe8;
	--tocnutbor: #ccc;
	--tocnutico: #333;
	
	--tocradius: 10px;
	--tocnutradius: 10px;
	
	--toclight: #ff4444;
}
.ft-toc {
    scroll-behavior: smooth;
}
.ft-toc-light, .ft-toc-light a{
    color: var(--toclight) !important; 
    transition: color 0.5s ease; 
}
/* thanh scrool */
.ft-toc-scrol *{
    scrollbar-color: #eee #ffffff00;
    scrollbar-width: thin !important;
}
.ft-toc-scrol ::-webkit-scrollbar{
    width: 5px;
    height: 5px;
    background: none;
}
.ft-toc-scrol ::-webkit-scrollbar-thumb{
    background-color: #eee;
    border-radius: 2px;
}
.ft-toc-scrol ::-webkit-scrollbar-track{
    background-color: none;
}


.ft-toc-placeholder{
	margin-bottom:20px;
}
.ft-toc-main{
	width:100%;
	border: 1px dashed var(--tocbor);
	padding: 15px 12px;
	border-radius:var(--tocradius);
	background: var(--tocbgr);
	font-size:var(--tocsize);
	box-sizing: border-box;
}
.ft-toc-main li:not(:last-child) {
    margin-bottom:10px;
}
.ft-toc-tit-sp svg{
	margin-right:15px;
}
/* Backdrop overlay khi mở TOC */
.ft-toc-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    z-index: 999990;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.ft-toc-backdrop.ft-toc-backdrop-active {
    opacity: 1;
    visibility: visible;
}

@keyframes toczoomIn {
    from {
        transform: scale(0.3);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}
.ft-toc-close {
    background: var(--tocnutbgr);
    border: 1px solid var(--tocnutbor);
    width: 44px;
    height: 44px;
    position: absolute;
    justify-content: center;
    align-items: center;
    left: -54px;
    top: 30%;
    border-radius: var(--tocnutradius);
    box-shadow: -2px 4px 12px rgba(0, 0, 0, 0.12);
    opacity: 0;
    transform: scale(0.5);
    animation: toczoomIn 0.5s ease-out forwards;
    cursor: pointer;
    transition: transform 0.2s ease;
}
.ft-toc-close:hover {
    transform: scale(1.06);
}
.ft-toc-close svg {
	width: 24px;
	height: 24px;
}
.ft-toc-close svg path{fill:var(--tocnutico);}
.ft-toc-main-vuot{
	position: fixed;
    z-index: 999999;
    right: -380px;
    top: 15px;
	bottom: 15px;
    width: 360px;
    max-width: calc(100vw - 30px);
	border:none;
	box-shadow: -6px 0 24px rgba(0, 0, 0, 0.15);
	transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s ease;
	margin-bottom:0px;
	animation: tocopiti 0.5s ease-out forwards;
}
@keyframes tocopiti {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
.ft-toc-main-open {
    right: 15px; /* Khi mở ra */
}
.ft-toc-main-open .ft-toc-close{display:none !important}
.ft-toc-main-vuot .ft-toc-tit .ft-toc-close2{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    cursor: pointer;
    flex-shrink: 0;
    margin-right: 8px;
    transition: background 0.2s ease, transform 0.2s ease;
}
.ft-toc-main-vuot .ft-toc-tit .ft-toc-close2:hover,
.ft-toc-main-vuot .ft-toc-tit .ft-toc-close2:active {
    background: rgba(255, 255, 255, 0.35);
    transform: scale(1.06);
}
.ft-toc-main-vuot .ft-toc-tit .ft-toc-close2 svg {
    width: 16px;
    height: 16px;
}
.ft-toc-main-vuot .ft-toc-tit .ft-toc-tit-svg{display:none !important;}
.ft-toc-tit{
	display:flex;
	line-height: normal;
	font-weight:bold;
	font-size:var(--tocsize);
	justify-content: space-between;
    align-items: center;
	margin:0px 5px;
	background: var(--toctitback);
    padding: 12px 15px;
    border-radius: calc(var(--tocradius) - 3px);
	color:var(--toctit);
}
.ft-toc-tit svg{
	width:20px;
	height:20px;
	vertical-align: middle;
}
.ft-toc-tit svg path{
	fill:var(--toctit);
}
.ft-toc-tit span.ft-toc-tit-sp{
    display: inline-flex;
    align-items: center;
    flex: 1;
    min-width: 0;
}
.ft-toc-tit .ft-toc-close2{
	display:none;
}
.ft-toc-tit .ft-toc-tit-hi{
	width:20px;
}
.ft-toc-tit .ft-toc-tit-hi-active svg{
	animation: bounce 0.4s infinite;
}
@keyframes bounce {
    0%, 100% {
        transform: translateY(-3px);
    }
    50% {
        transform: translateY(3px);
    }
}
.ft-toc-main .ft-toc-scrol ol {
  padding-left: 0;
  margin:0px;
  padding: 10px 5px 0px 10px !important;
  list-style: none !important;
}
ol#ft-toc-list li{
	margin-left:0px;
}
.ft-toc-main ol {
    max-height: 500px;
    overflow-y: auto;
}
.ft-toc-main.ft-toc-main-vuot .ft-toc-scrol {
    height: calc(100vh - 107px);
}
.ft-toc-main.ft-toc-main-vuot ol{
	max-height:100%;
	height:100%;
}
.ft-toc-main a, .ft-toc-main a:visited, .ft-toc-main  a:focus, .ft-toc-main  a:active {
  text-decoration: none !important;
  color:var(--toclin) !important;
}
.ft-toc-main a:hover {
  color:var(--toclin) !important;
  opacity:0.8;
}
.active-toc-link {
    padding: 7px 10px;
    display: block;
    background: linear-gradient(90deg, rgba(2, 0, 36, 0) 0%, var(--tocsec) 100%);
    border-radius: calc(var(--tocradius) - 3px);
	margin-left: -10px;
}
.active-toc-link:hover {
    opacity:0.8;
}
/* Căn thẳng cho cấp 1 */
#ft-toc-list .ft-toc-level-1 {
  padding-left: 0;
  font-weight: bold;
}
/* Lùi vào 10px cho cấp 2 */
#ft-toc-list .ft-toc-level-2 {
  padding-left: 15px;
}
/* Lùi vào 20px cho cấp 3 */
#ft-toc-list .ft-toc-level-3 {
  padding-left: 30px;
}
/* Lùi vào 30px cho cấp 4 */
#ft-toc-list .ft-toc-level-4 {
  padding-left: 45px;
}
/* Lùi vào 40px cho cấp 5 */
#ft-toc-list .ft-toc-level-5 {
  padding-left: 60px;
}
/* Lùi vào 50px cho cấp 6 */
#ft-toc-list .ft-toc-level-6 {
  padding-left: 75px;
}
/* Mobile responsive */
@media (max-width: 768px) {
    .ft-toc-main-vuot {
        top: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 80vh !important;
        height: auto !important;
        border-radius: 20px 20px 0 0 !important;
        transform: translateY(105%) !important;
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
        box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.25) !important;
        margin: 0 !important;
        padding: 14px 14px 20px !important;
        z-index: 999999 !important;
    }
    .ft-toc-main-vuot.ft-toc-main-open {
        transform: translateY(0) !important;
        right: 0 !important;
        left: 0 !important;
    }
    .ft-toc-main-vuot .ft-toc-scrol {
        max-height: calc(80vh - 70px) !important;
        height: auto !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 20px !important;
    }
    .ft-toc-close {
        position: fixed !important;
        right: 12px !important;
        left: auto !important;
        top: 38% !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16) !important;
        z-index: 99998 !important;
    }
    .ft-toc-main-open .ft-toc-close {
        display: none !important;
    }
}	