/* 강화된 코드 블록 스타일 */
.ql-editor pre.ql-syntax {
  background-color: #282a36 !important; /* Dracula 배경색 */
  color: #f8f8f2 !important; /* Dracula 기본 텍스트 색상 */
  padding: 0.75rem 1rem !important;
  border-radius: 6px !important;
  font-family: 'Pretendard Variable', 'Consolas', 'Monaco', 'Andale Mono', 'Ubuntu Mono', monospace !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  overflow-x: auto !important;
  tab-size: 2 !important;
  -moz-tab-size: 2 !important;
  -o-tab-size: 2 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  margin: 1em 0 !important;
  border: 1px solid rgba(128, 128, 128, 0.1) !important;
}

/* 주요 코드 구문 강조 색상 - VS Code 테마 */
.ql-editor pre.ql-syntax .hljs-keyword,
.ql-syntax .hljs-keyword {
  color: #569CD6 !important; /* 파란색 - 키워드 (class, public 등) - VS Code */
  font-weight: bold !important;
}

.ql-editor pre.ql-syntax .hljs-title,
.ql-syntax .hljs-title {
  color: #50fa7b !important; /* 연두색 - 클래스명 */
}

.ql-editor pre.ql-syntax .hljs-title.function_,
.ql-syntax .hljs-title.function_ {
  color: #50fa7b !important; /* 연두색 - 함수명 */
}

.ql-editor pre.ql-syntax .hljs-params,
.ql-syntax .hljs-params {
  color: #f8f8f2 !important; /* 기본 텍스트 색상 - 매개변수 */
}

.ql-editor pre.ql-syntax .hljs-built_in,
.ql-syntax .hljs-built_in {
  color: #8be9fd !important; /* 청록색 - 내장 객체/타입 */
}

.ql-editor pre.ql-syntax .hljs-type,
.ql-syntax .hljs-type {
  color: #8be9fd !important; /* 청록색 - 타입 */
  font-style: italic !important;
}

.ql-editor pre.ql-syntax .hljs-string,
.ql-syntax .hljs-string {
  color: #CE9178 !important; /* 주황색 - 문자열 - VS Code */
}

.ql-editor pre.ql-syntax .hljs-comment,
.ql-syntax .hljs-comment {
  color: #6A9955 !important; /* 녹색 - 주석 - VS Code */
}

.ql-editor pre.ql-syntax .hljs-number,
.ql-syntax .hljs-number {
  color: #B5CEA8 !important; /* 연녹색 - 숫자 - VS Code */
}

.ql-editor pre.ql-syntax .hljs-operator,
.ql-syntax .hljs-operator {
  color: #569CD6 !important; /* 분홍색 - 연산자 */
}

.ql-editor pre.ql-syntax .hljs-punctuation,
.ql-syntax .hljs-punctuation {
  color: #f8f8f2 !important; /* 기본 텍스트 색상 - 구두점 */
}

.ql-editor pre.ql-syntax .hljs-variable,
.ql-syntax .hljs-variable {
  color: #f8f8f2 !important; /* 기본 텍스트 색상 - 변수 */
}

.ql-editor pre.ql-syntax .hljs-literal,
.ql-syntax .hljs-literal {
  color: #bd93f9 !important; /* 보라색 - boolean 값 등 리터럴 */
}

/* 블로그 포스트의 코드 블록에도 적용 */
.blog-post-content pre.ql-syntax {
  background-color: #282a36 !important; /* Dracula 배경색 */
  color: #f8f8f2 !important; /* Dracula 기본 텍스트 색상 */
}

/* Python 구문 색상 일관성 설정 */
.blog-post-content pre.ql-syntax .hljs-keyword,
.blog-post-content .ql-syntax .hljs-keyword {
  color: #569CD6 !important; /* Python의 for, if, while 등 키워드 - VS Code */
}

.blog-post-content pre.ql-syntax .hljs-built_in,
.blog-post-content .ql-syntax .hljs-built_in {
  color: #DCDCAA !important; /* Python의 int, input 등 내장 함수 - VS Code */
}

.blog-post-content pre.ql-syntax .hljs-string,
.blog-post-content .ql-syntax .hljs-string {
  color: #CE9178 !important; /* Python의 문자열 - VS Code */
}

.blog-post-content pre.ql-syntax .hljs-comment,
.blog-post-content .ql-syntax .hljs-comment {
  color: #6A9955 !important; /* Python의 주석 - VS Code */
}

.blog-post-content pre.ql-syntax .hljs-number,
.blog-post-content .ql-syntax .hljs-number {
  color: #B5CEA8 !important; /* Python의 숫자 - VS Code */
}

.blog-post-content pre.ql-syntax .hljs-subst,
.blog-post-content .ql-syntax .hljs-subst {
  color: #f8f8f2 !important; /* f-string 내부 변수 */
}

/* C# 특화 스타일 */
.language-csharp .hljs-keyword,
.language-cs .hljs-keyword {
  color: #569CD6 !important; /* public, class 등 */
  font-weight: bold !important;
}

.language-csharp .hljs-title,
.language-cs .hljs-title {
  color: #50fa7b !important; /* 클래스명 */
}

/* 코드 블록 내 줄 번호 스타일 (옵션) */
.ql-editor pre.ql-syntax.line-numbers {
  counter-reset: line;
  position: relative;
  padding-left: 3.5em !important;
}

.ql-editor pre.ql-syntax.line-numbers > code {
  position: relative;
  display: block;
}

.ql-editor pre.ql-syntax.line-numbers > code::before {
  counter-increment: line;
  content: counter(line);
  position: absolute;
  left: -3em;
  width: 2.5em;
  text-align: right;
  color: #888;
  border-right: 1px solid rgba(128, 128, 128, 0.3);
  padding-right: 0.5em;
  margin-right: 1em;
}

/* Quill 에디터 코드 블록 강화 스타일 */
.quill-editor-instance .ql-code-block-container {
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  border-radius: 8px !important;
  padding: 20px 20px 12px 20px !important;
  overflow-x: auto !important;
  margin: 1rem 0 !important;
  position: relative !important;
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  line-height: 1.5 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  white-space: pre !important;
  /* 스크롤바가 border-radius를 가리지 않도록 처리 */
  mask-image: linear-gradient(to right, black 0%, black 100%) !important;
  -webkit-mask-image: linear-gradient(to right, black 0%, black 100%) !important;
}

/* Quill 에디터 pre.ql-syntax 스타일 강화 */
.quill-editor-instance pre.ql-syntax {
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  border-radius: 8px !important;
  padding: 20px 20px 12px 20px !important;
  margin: 1rem 0 !important;
  overflow-x: auto !important;
  white-space: pre !important;
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  position: relative !important;
  /* 스크롤바가 border-radius를 가리지 않도록 처리 */
  mask-image: linear-gradient(to right, black 0%, black 100%) !important;
  -webkit-mask-image: linear-gradient(to right, black 0%, black 100%) !important;
}

/* 코드 블록 내부 요소 */
.quill-editor-instance .ql-code-block {
  font-family: 'Pretendard Variable', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace !important;
  color: #f8f8f2 !important; /* Dracula 기본 텍스트 색상 */
  line-height: 1.6 !important;
  font-size: 14px !important;
  white-space: pre !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  overflow-x: visible !important;
}

/* 코드 블록 컨테이너 언어 표시 - 새로 추가 */
.ql-code-block-container[data-language]:before {
  content: none;
  display: none;
}

/* 언어별 라벨 수정 */
.ql-code-block-container[data-language="javascript"]:before {
  content: "JavaScript";
}

.ql-code-block-container[data-language="typescript"]:before {
  content: "TypeScript";
}

.ql-code-block-container[data-language="python"]:before {
  content: "Python";
}

.ql-code-block-container[data-language="html"]:before {
  content: "HTML";
}

.ql-code-block-container[data-language="css"]:before {
  content: "CSS";
}

.ql-code-block-container[data-language="json"]:before {
  content: "JSON";
}

.ql-code-block-container[data-language="bash"]:before {
  content: "Bash";
}

.ql-code-block-container[data-language="sql"]:before {
  content: "SQL";
}

.ql-code-block-container[data-language="dart"]:before {
  content: "Dart";
}

/* 강화된 코드 색상 - 직접 요소에 스타일 적용 */
.ql-code-block.hljs-keyword,
.ql-code-block .hljs-keyword {
  color: #569CD6 !important; /* 분홍색 - 키워드 */
}

.ql-code-block.hljs-string,
.ql-code-block .hljs-string {
  color: #f1fa8c !important; /* 노란색 - 문자열 */
}

.ql-code-block.hljs-comment,
.ql-code-block .hljs-comment {
  color: #6272a4 !important; /* 푸른 회색 - 주석 */
  font-style: italic !important;
}

.ql-code-block.hljs-number,
.ql-code-block .hljs-number {
  color: #bd93f9 !important; /* 보라색 - 숫자 */
}

.ql-code-block.hljs-function,
.ql-code-block .hljs-function {
  color: #50fa7b !important; /* 연두색 - 함수명 */
}

.ql-code-block.hljs-operator,
.ql-code-block .hljs-operator {
  color: #569CD6 !important; /* 분홍색 - 연산자 */
}

.ql-code-block.hljs-variable,
.ql-code-block .hljs-variable {
  color: #f8f8f2 !important; /* 기본 텍스트 색상 - 변수 */
}

/* JavaScript 키워드 직접 색상 지정 */
.ql-code-block-container[data-language="javascript"] .ql-code-block:contains("function"),
.ql-code-block-container[data-language="javascript"] .ql-code-block:contains("const"),
.ql-code-block-container[data-language="javascript"] .ql-code-block:contains("let"),
.ql-code-block-container[data-language="javascript"] .ql-code-block:contains("var"),
.ql-code-block-container[data-language="javascript"] .ql-code-block:contains("import"),
.ql-code-block-container[data-language="javascript"] .ql-code-block:contains("export") {
  color: #569CD6 !important;
}

/* 문자열 직접 색상 지정 */
.ql-code-block-container .ql-code-block:contains("\""),
.ql-code-block-container .ql-code-block:contains("'") {
  color: #f1fa8c !important;
}

/* // 주석 직접 색상 지정 */
.ql-code-block-container .ql-code-block:contains("//") {
  color: #6272a4 !important;
  font-style: italic !important;
}

/* # 주석 직접 색상 지정 (Python) */
.ql-code-block-container[data-language="python"] .ql-code-block:contains("#") {
  color: #6272a4 !important;
  font-style: italic !important;
}

/* 다크 모드 특화 스타일 */
@media (prefers-color-scheme: dark) {
  .ql-code-block-container {
    background-color: #21252b !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1) !important;
  }
  
  .ql-code-block {
    color: #abb2bf !important;
  }
}

/* 하이라이팅된 코드 블록 스타일 */
.ql-code-block.highlighted {
  background-color: transparent !important;
}

/* 코드 콘텐츠 기반 클래스 스타일 */
.ql-code-block.has-keywords {
  color: #569CD6 !important;
}

.ql-code-block.has-strings {
  color: #f1fa8c !important;
}

.ql-code-block.has-comments {
  color: #6272a4 !important;
  font-style: italic !important;
}

/* 코드 블록에 배경색 강화 */
.ql-code-block-container.hljs {
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
}

/* language 속성 기반 언어별 스타일 */
.ql-code-block-container[data-language="javascript"] {
  /* border-left: 3px solid #f0db4f !important; JavaScript 색상 - 제거 */
}

.ql-code-block-container[data-language="python"] {
  /* border-left: 3px solid #3572A5 !important; Python 색상 - 제거 */
}

.ql-code-block-container[data-language="typescript"] {
  /* border-left: 3px solid #007acc !important; TypeScript 색상 - 제거 */
}

.ql-code-block-container[data-language="html"] {
  /* border-left: 3px solid #e34c26 !important; HTML 색상 - 제거 */
}

.ql-code-block-container[data-language="css"] {
  /* border-left: 3px solid #563d7c !important; CSS 색상 - 제거 */
}

.ql-code-block-container[data-language="json"] {
  /* border-left: 3px solid #5b5b5b !important; JSON 색상 - 제거 */
}

.ql-code-block-container[data-language="bash"] {
  /* border-left: 3px solid #3e474a !important; Bash 색상 - 제거 */
}

.ql-code-block-container[data-language="sql"] {
  /* border-left: 3px solid #e38c00 !important; SQL 색상 - 제거 */
}

.ql-code-block-container[data-language="dart"] {
  /* border-left: 3px solid #00b4ab !important; Dart 색상 - 제거 */
}

/* 마우스 호버시 효과 추가 */
.ql-code-block-container:hover {
  box-shadow: none !important;
  transition: none !important;
}

/* 내부 코드 블록 간격 조정 */
.ql-code-block + .ql-code-block {
  margin-top: 0 !important;
}

/* 코드 블록 컨테이너에 패딩 추가 */
.ql-code-block-container {
  padding: 0.75rem 1rem !important;
  margin: 0 !important;
}

/* 키워드와 문자열 클래스 기반 스타일링 */
/* JavaScript/TypeScript 키워드 */
.ql-code-block-container[data-language="javascript"] .ql-code-block,
.ql-code-block-container[data-language="typescript"] .ql-code-block {
  white-space: pre !important;
  font-family: 'Pretendard Variable', monospace !important;
  overflow-x: visible !important;
}

/* 직접 코드 색상 - 키워드 클래스를 사용한 스타일링 */
.ql-code-block.has-keywords {
  color: #569CD6 !important;
}

/* 문자열 표시 */
.ql-code-block.has-strings {
  color: #f1fa8c !important;
}

/* 주석 표시 */
.ql-code-block.has-comments {
  color: #6272a4 !important;
  font-style: italic !important;
}

/* 숫자 표시 */
.ql-code-block.has-numbers {
  color: #bd93f9 !important;
}

/* JavaScript의 function 키워드 강조 */
.ql-code-block-container[data-language="javascript"] .ql-code-block.has-keywords,
.ql-code-block-container[data-language="typescript"] .ql-code-block.has-keywords {
  color: #569CD6 !important;
}

/* Python 키워드 */
.ql-code-block-container[data-language="python"] .ql-code-block.has-keywords {
  color: #569CD6 !important;
}

/* 강화된 코드 블록 스타일 */
.ql-code-block-container {
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  border-radius: 6px !important;
  padding: 1rem !important;
  overflow-x: auto !important;
  margin: 0 !important;
  position: relative !important;
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  line-height: 1.5 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  white-space: pre !important;
}

/* 언어 표시 레이블 - data-language 속성 기반 */
.ql-code-block-container:before {
  content: none !important;
  display: none !important;
}

/* 각 언어별 색상 표시 */
.ql-code-block-container[data-language="javascript"]:before {
  content: "JavaScript";
  background-color: rgba(240, 219, 79, 0.2) !important;
}

.ql-code-block-container[data-language="typescript"]:before {
  content: "TypeScript";
  background-color: rgba(0, 122, 204, 0.2) !important;
}

.ql-code-block-container[data-language="python"]:before {
  content: "Python";
  background-color: rgba(53, 114, 165, 0.2) !important;
}

.ql-code-block-container[data-language="html"]:before {
  content: "HTML";
  background-color: rgba(227, 76, 38, 0.2) !important;
}

.ql-code-block-container[data-language="css"]:before {
  content: "CSS";
  background-color: rgba(86, 61, 124, 0.2) !important;
}

.ql-code-block-container[data-language="json"]:before {
  content: "JSON";
  background-color: rgba(91, 91, 91, 0.2) !important;
}

.ql-code-block-container[data-language="bash"]:before {
  content: "Bash";
  background-color: rgba(62, 71, 74, 0.2) !important;
}

/* 코드 블록 내부 스타일 */
.ql-code-block {
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  color: #f8f8f2 !important;
  white-space: pre !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  line-height: 1.5 !important;
  font-size: 14px !important;
}

/* 하이라이트 구문 강화 스타일 */
.ql-code-block-container[data-highlighted="true"] {
  /* border-left: 3px solid #c678dd !important; - 제거 */
}

/* 코드 블록 언어별 테두리 색상 */
.ql-code-block-container[data-language="javascript"] {
  /* border-left: 3px solid #f0db4f !important; - 제거 */
}

.ql-code-block-container[data-language="typescript"] {
  /* border-left: 3px solid #007acc !important; - 제거 */
}

.ql-code-block-container[data-language="python"] {
  /* border-left: 3px solid #3572A5 !important; - 제거 */
}

.ql-code-block-container[data-language="html"] {
  /* border-left: 3px solid #e34c26 !important; - 제거 */
}

.ql-code-block-container[data-language="css"] {
  /* border-left: 3px solid #563d7c !important; - 제거 */
}

.ql-code-block-container[data-language="json"] {
  /* border-left: 3px solid #5b5b5b !important; - 제거 */
}

/* 코드 블록 행간 간격 조정 */
.ql-code-block + .ql-code-block {
  margin-top: 0 !important;
}

/* 스크롤바 스타일 조정 */
.ql-code-block-container::-webkit-scrollbar {
  height: 8px !important;
  background-color: #282a36 !important;
}

.ql-code-block-container::-webkit-scrollbar-thumb {
  background-color: #4b5263 !important;
  border-radius: 4px !important;
}

.ql-code-block-container::-webkit-scrollbar-thumb:hover {
  background-color: #5c6370 !important;
}

/* 블로그 상세 페이지 코드 블록 처리 (중복 요소 숨김) */
.blog-post-content .ql-code-block-container[data-immutable="true"] .ql-code-block {
  display: none !important;
}

/* 블로그 상세 페이지 기본 코드 블록 스타일 복원 - 패딩 값 수정 */
.blog-post-content .ql-code-block-container[data-immutable="true"] pre.ql-syntax {
  display: block !important;
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  padding: 0 !important;
  border-radius: 0px !important;
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  line-height: 1.5 !important;
  overflow-x: auto !important;
  box-shadow: none !important;
  margin: 0 !important;
  border: none !important;
  white-space: pre !important;
}

/* 블로그 상세 페이지 코드 블록 컨테이너 스타일 복원 */
.blog-post-content .ql-code-block-container {
  margin: 1rem 0 !important;
  position: relative !important;
  border-radius: 6px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  background-color: transparent !important;
  /* 스크롤바가 border-radius를 가리지 않도록 mask-image 추가 */
  mask-image: linear-gradient(to right, black 0%, black 100%) !important;
  -webkit-mask-image: linear-gradient(to right, black 0%, black 100%) !important;
}

/* 블로그 상세 페이지 코드 블록 중복 언어 레이블 제거 */
.blog-post-content .ql-code-block-container:before {
  display: none !important;
}

/* 숨겨진 코드 블록이 공간을 차지하지 않도록 */
.ql-code-block[style*="display: none"] {
  display: none !important;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  visibility: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Python 특화 스타일 */
.ql-code-block-container[data-language="python"] .ql-code-block.has-built_in,
.ql-code-block-container[data-language="python"] .hljs-built_in {
  color: #8be9fd !important;
}

.ql-code-block-container[data-language="python"] .ql-code-block:contains("def "),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("class ") {
  color: #569CD6 !important;
}

.ql-code-block-container[data-language="python"] .ql-code-block:contains("for "),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("in "),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("if "),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("else:"),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("elif "),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("while "),
.ql-code-block-container[data-language="python"] .ql-code-block:contains("return ") {
  color: #569CD6 !important;
}

/* 강화된 코드 색상 - 직접 요소에 스타일 적용 (원래 색상으로 복원) */
.ql-code-block.hljs-keyword,
.ql-code-block .hljs-keyword {
  color: #569CD6 !important;
}

.ql-code-block.hljs-string,
.ql-code-block .hljs-string {
  color: #f1fa8c !important;
}

.ql-code-block.hljs-comment,
.ql-code-block .hljs-comment {
  color: #6272a4 !important;
  font-style: italic !important;
}

.ql-code-block.hljs-number,
.ql-code-block .hljs-number {
  color: #bd93f9 !important;
}

.ql-code-block.hljs-function,
.ql-code-block .hljs-function {
  color: #50fa7b !important;
}

.ql-code-block.hljs-operator,
.ql-code-block .hljs-operator {
  color: #569CD6 !important;
}

.ql-code-block.hljs-variable,
.ql-code-block .hljs-variable {
  color: #f8f8f2 !important;
}

.ql-code-block.hljs-built_in,
.ql-code-block .hljs-built_in {
  color: #8be9fd !important;
}

/* 블로그 상세 페이지 코드 블록 스타일 */
.blog-post-content .ql-code-block-container[data-immutable="true"] pre.ql-syntax {
  display: block !important;
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  padding: 0 !important;
  border-radius: 0px !important;
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  line-height: 1.5 !important;
  overflow-x: auto !important;
  box-shadow: none !important;
  margin: 0 !important;
  border: none !important;
  white-space: pre !important;
}

/* 블로그 상세 페이지 줄바꿈 강제 표시 */
.blog-post-content .ql-code-block-container pre.ql-syntax br,
.blog-post-content .ql-code-block-container .ql-code-block br {
  display: block !important;
  content: "" !important;
  margin-top: 0 !important;
  line-height: 1.6 !important;
}

/* 코드블록 줄바꿈 정상 표시를 위한 스타일 추가 */
.blog-post-content .ql-code-block-container pre.ql-syntax > div,
.blog-post-content .ql-code-block-container .ql-code-block > div {
  display: block !important;
  white-space: pre !important;
  min-height: 1.6em !important;
}

/* 코드블록 내부 요소 스타일 - 렌더링 전환 시 일관성 유지 */
.blog-post-content .ql-code-block-container .ql-code-block,
.blog-post-content .ql-code-block-container pre,
.blog-post-content .ql-code-block {
  color: #f8f8f2 !important;
  background-color: transparent !important;
  white-space: pre !important;
  font-family: 'Pretendard Variable', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: max-content;
  display: block !important;
}

/* Quill 코드블록의 빈 줄 처리 - 블로그 포스팅용 */
.blog-post-content .ql-code-block-container pre.ql-syntax:empty,
.blog-post-content .ql-code-block-container .ql-code-block:empty {
  content: "​" !important; /* 제로-width 공백 */
  display: block !important;
  min-height: 1.6em !important;
  line-height: 1.6 !important;
}

/* 각 줄의 높이를 일정하게 유지 */
.blog-post-content .ql-code-block-container pre.ql-syntax,
.blog-post-content .ql-code-block-container .ql-code-block,
.blog-post-content .ql-code-block-container pre.ql-syntax > div,
.blog-post-content .ql-code-block-container .ql-code-block > div {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
}

/* <br> 태그 처리 */
.blog-post-content .ql-code-block-container br,
.blog-post-content .ql-code-block-container .ql-code-block br,
.blog-post-content .ql-code-block-container pre.ql-syntax br {
  content: "" !important;
  display: block !important;
  min-height: 1.6em !important;
  line-height: 1.6 !important;
}

/* 실제 줄바꿈 요소에 대한 스타일 */
.blog-post-content .ql-syntax .hljs-comment + br,
.blog-post-content .ql-syntax .hljs-built_in + br,
.blog-post-content .ql-syntax .hljs-keyword + br,
.blog-post-content .ql-syntax .hljs-string + br,
.blog-post-content .ql-syntax .hljs-number + br,
.blog-post-content .ql-syntax .hljs-subst + br,
.blog-post-content .ql-syntax span + br {
  content: "" !important;
  display: block !important;
  min-height: 1.6em !important;
}

/* 엔터키로 생성된 빈 줄에 대한 직접 스타일 */
.blog-post-content .ql-code-block-container pre.ql-syntax:has(> br),
.blog-post-content .ql-code-block-container pre.ql-syntax:has(> br:only-child) {
  min-height: 1.6em !important;
  display: block !important;
}

/* Quill에서 생성된 빈 줄 처리 (data-processed="true" 특성을 가진 요소) */
.blog-post-content .ql-code-block-container div[data-processed="true"]:empty,
.blog-post-content .ql-code-block-container pre[data-processed="true"]:empty {
  display: block !important;
  min-height: 1.6em !important;
  line-height: 1.6 !important;
}

/* 블로그 상세 페이지 스크롤바 스타일 */
.blog-post-content .ql-code-block-container::-webkit-scrollbar {
  height: 8px !important;
  background-color: #282a36 !important;
  border-bottom-left-radius: 6px !important;
  border-bottom-right-radius: 6px !important;
}

.blog-post-content .ql-code-block-container::-webkit-scrollbar-thumb {
  background-color: #4b5263 !important;
  border-radius: 4px !important;
  /* 스크롤바 thumb에 여백 추가해 둥근 모서리 효과 유지 */
  border: 2px solid #282a36 !important;
  background-clip: padding-box !important;
}

.blog-post-content .ql-code-block-container::-webkit-scrollbar-thumb:hover {
  background-color: #5c6370 !important;
}

/* Quill 코드블록의 빈 줄 표시 규칙 */
.blog-post-content .ql-code-block-container pre.ql-syntax[data-highlighted="yes"] {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
  white-space: pre !important;
}

/* 빈 줄 강제 높이 지정 */
.blog-post-content .ql-code-block-container pre.ql-syntax[data-highlighted="yes"]:empty {
  min-height: 1.6em !important;
  display: block !important;
  content: "\00a0" !important; /* 비표시 공백 문자 */
  line-height: 1.6 !important;
}

/* 코드블록 내 각 줄마다 적절한 높이 유지 */
.blog-post-content .ql-code-block-container pre.ql-syntax[data-highlighted="yes"] + pre.ql-syntax[data-highlighted="yes"] {
  margin-top: 0 !important;
}

/* 코드블록 내 빈 줄 처리를 위한 추가 규칙 */
.blog-post-content .ql-code-block-container pre.ql-syntax:empty,
.blog-post-content .ql-code-block-container div.ql-code-block:empty {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
  white-space: pre !important;
  display: block !important;
}

/* 스타일 강제 적용 */
.blog-post-content .ql-code-block-container pre.ql-syntax[data-highlighted="yes"] {
  display: block !important;
  margin-bottom: 0 !important;
}

/* 줄바꿈 후 빈 줄 처리 */
.blog-post-content .ql-code-block-container pre.ql-syntax + pre.ql-syntax,
.blog-post-content .ql-code-block-container div.ql-code-block + div.ql-code-block {
  margin-top: 0 !important;
}

/* 빈 content 강제 표시 */
.blog-post-content .ql-code-block-container pre.ql-syntax:empty::after,
.blog-post-content .ql-code-block-container div.ql-code-block:empty::after {
  content: "\00a0" !important; /* 비표시 공백 문자 */
  white-space: pre !important;
  display: inline-block !important;
  height: 1.6em !important;
  line-height: 1.6 !important;
}

/* <br> 태그가 있는 요소 처리 */
.blog-post-content .ql-code-block-container pre.ql-syntax:has(br),
.blog-post-content .ql-code-block-container div.ql-code-block:has(br) {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
}

/* 직접 빈 줄 처리 */
.blog-post-content .ql-code-block-container pre.ql-syntax:nth-child(4),
.blog-post-content .ql-code-block-container pre.ql-syntax:nth-child(8) {
  min-height: 1.6em !important;
  display: block !important;
}

/* 예제 HTML 구조에 맞춘 빈 줄 강제 표시 규칙 */
.blog-post-content .ql-code-block-container pre.ql-syntax[data-immutable="true"][data-highlighted="yes"] {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
  white-space: pre !important;
  display: block !important;
}

/* div가 숨겨진 곳에서 pre가 빈 내용을 가질 때 */
.blog-post-content .ql-code-block-container pre.ql-syntax[data-immutable="true"][data-highlighted="yes"]:empty {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
  display: block !important;
}

/* 특정 빈 줄 위치에 대한 강제 표시 (3번째와 7번째 pre 요소) */
.blog-post-content .ql-code-block-container pre.ql-syntax:nth-of-type(3),
.blog-post-content .ql-code-block-container pre.ql-syntax:nth-of-type(7) {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
  display: block !important;
}

/* div 요소를 사용한 빈 줄 표시 (display:none 상태의 내부 <br> 태그 처리) */
.blog-post-content .ql-code-block-container div.ql-code-block[style*="display: none"]:has(br) + pre.ql-syntax:empty {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
  white-space: pre !important;
  display: block !important;
}

/* 직접 모든 줄에 높이 적용 */
.blog-post-content .ql-code-block-container pre.ql-syntax {
  min-height: 1.6em !important;
  line-height: 1.6 !important;
}
