@charset "utf-8";

/* ============================================
   DEV.BLOG — Terminal Dark Theme
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;700&family=Pretendard:wght@300;400;500;600&display=swap');

:root {
  --bg-base:      #0d1117;
  --bg-surface:   #161b22;
  --bg-elevated:  #1c2128;
  --bg-hover:     #21262d;

  --border:       #30363d;
  --border-light: #21262d;

  --text-primary:   #e6edf3;
  --text-secondary: #8b949e;
  --text-muted:     #484f58;

  --accent-green:  #3fb950;
  --accent-blue:   #58a6ff;
  --accent-purple: #bc8cff;
  --accent-orange: #ffa657;
  --accent-red:    #ff7b72;
  --accent-cyan:   #39d353;

  --mono: 'JetBrains Mono', 'Courier New', monospace;
  --sans: 'Pretendard', -apple-system, sans-serif;

  --radius: 6px;
  --sidebar-width: 280px;
}

/* ============================================
   PROFILE SECTION
   ============================================ */
.profile-section {
  padding: 24px 20px 20px;
  border-bottom: 1px solid var(--border);
  text-align: center;
}

.profile-avatar {
  position: relative;
  width: 72px;
  height: 72px;
  margin: 0 auto 12px;
}

.profile-img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--border);
  display: block;
}

.profile-initial {
  position: absolute;
  inset: 0;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--bg-elevated);
  border: 2px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 24px;
  font-weight: 700;
  color: var(--accent-green);
  z-index: -1;
}

.profile-img[src=""] + .profile-initial,
.profile-img:not([src]) + .profile-initial {
  z-index: 1;
}

.profile-name {
  font-family: var(--mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 6px;
}

.profile-name::before {
  content: '@';
  color: var(--accent-blue);
  font-size: 12px;
}

.profile-bio {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 14px;
  padding: 0 4px;
}

.profile-links {
  display: flex;
  justify-content: center;
  gap: 8px;
}

.profile-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  font-family: var(--mono);
  font-size: 11px;
  border-radius: 20px;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  background: var(--bg-elevated);
  transition: all 0.15s;
  text-decoration: none;
}

.profile-link:hover {
  border-color: var(--accent-green);
  color: var(--accent-green);
  background: rgba(63, 185, 80, 0.08);
}

.profile-link svg {
  flex-shrink: 0;
}

/* ── Reset ── */
html, body { margin: 0; padding: 0; overflow-x: hidden; }

html {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body {
  background-color: var(--bg-base);
  color: var(--text-primary);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.7;
}

*, *::before, *::after { box-sizing: border-box; }

img { border: 0; max-width: 100%; }
a { color: var(--accent-blue); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--text-primary); }

input, textarea {
  font-family: var(--sans);
  font-size: 14px;
  outline: none;
  background: var(--bg-elevated);
  color: var(--text-primary);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

input:focus, textarea:focus {
  border-color: var(--accent-blue);
  box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1);
}

.clear { clear: both; width: 100%; }
.text-center { text-align: center; }

/* ============================================
   SIDEBAR
   ============================================ */
#sidebar {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: var(--sidebar-width);
  height: 100%;
  background-color: var(--bg-surface);
  border-right: 1px solid var(--border);
  overflow-y: auto;
  z-index: 100;
  display: flex;
  flex-direction: column;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}

#sidebar::-webkit-scrollbar { width: 4px; }
#sidebar::-webkit-scrollbar-track { background: transparent; }
#sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* 블로그 제목 */
#sidebar h1 {
  margin: 0;
  padding: 28px 20px 20px;
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  border-bottom: 1px solid var(--border);
  letter-spacing: -0.3px;
}

#sidebar h1::before {
  content: '> ';
  color: var(--accent-green);
}

#sidebar h1 a {
  color: var(--text-primary);
}

#sidebar h1 a:hover {
  color: var(--accent-green);
}

/* 터미널 프롬프트 장식 */
#sidebar h1::after {
  content: '_';
  color: var(--accent-green);
  animation: blink 1.2s step-end infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

/* 사이드바 위젯 공통 */
#sidebar .widget {
  padding: 16px 0;
  border-bottom: 1px solid var(--border-light);
}

#sidebar .widget li {
  list-style: none;
  padding: 0;
  word-break: break-word;
}

/* 카테고리 */
#sidebar .category {
  padding: 0;
}

#sidebar .widget.category::before {
  content: '# CATEGORIES';
  display: block;
  padding: 16px 20px 8px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.12em;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 4px;
}

#sidebar .category > ul {
  margin: 0; padding: 0;
}

#sidebar .category ul li {
  list-style: none;
}

#sidebar .category > ul > li > a {
  display: none;
}

/* 1depth 카테고리 */
#sidebar .category ul li ul li a {
  display: block;
  padding: 6px 20px;
  font-size: 13px;
  color: var(--text-secondary);
  font-family: var(--mono);
  transition: all 0.15s;
  border-left: 2px solid transparent;
}

#sidebar .category ul li ul li a:hover {
  color: var(--accent-green);
  background: var(--bg-hover);
  border-left-color: var(--accent-blue);
}

/* 2depth 카테고리 */
#sidebar .category ul li ul li ul {
  margin: 0 0 0 12px;
  padding: 0;
}

#sidebar .category ul li ul li ul li::before {
  content: none;
}

#sidebar .category ul li ul li ul li a {
  font-size: 12px;
  padding: 4px 20px 4px 16px;
  color: var(--text-muted);
}

#sidebar .category ul li ul li ul li a::before {
  content: '├ ';
  color: var(--border);
}

#sidebar .category ul li ul li ul li:last-child a::before {
  content: '└ ';
}

#sidebar .category ul li ul li ul li a:hover {
  color: var(--accent-blue);
  background: var(--bg-hover);
}

/* 카운터 */
#sidebar .counter {
  padding: 12px 20px;
  font-family: var(--mono);
  font-size: 12px;
}

#sidebar .counter::before {
  content: '// VISITORS';
  display: block;
  font-size: 10px;
  color: var(--text-muted);
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}

#sidebar .counter .yesterday { color: var(--accent-purple); }
#sidebar .counter .yesterday::before { content: 'yst: '; color: var(--text-muted); }

#sidebar .counter .today { color: var(--accent-green); margin-left: 12px; }
#sidebar .counter .today::before { content: 'tdy: '; color: var(--text-muted); }

#sidebar .counter .total { color: var(--accent-orange); margin-left: 12px; }
#sidebar .counter .total::before { content: 'all: '; color: var(--text-muted); }

/* 검색 */
#sidebar .search {
  padding: 12px 20px;
}

#sidebar .search input {
  width: 100%;
  padding: 8px 12px;
  font-family: var(--mono);
  font-size: 13px;
  background: var(--bg-base);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-primary);
}

#sidebar .search input::placeholder { color: var(--text-muted); }

#sidebar .search input:focus {
  border-color: var(--accent-blue);
  box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1);
}

/* 최근 댓글 */
#sidebar #recentComments {
  margin: 0; padding: 0 20px;
}

#sidebar #recentComments li {
  padding: 5px 0;
  font-size: 12px;
  border-bottom: 1px solid var(--border-light);
  color: var(--text-secondary);
}

#sidebar #recentComments li a {
  color: var(--text-secondary);
  font-size: 12px;
}

#sidebar #recentComments li a:hover { color: var(--accent-blue); }

#sidebar .blank { height: 40px; }

/* ============================================
   CONTENT
   ============================================ */
#content {
  margin: 0 0 0 var(--sidebar-width);
  padding: 0;
  min-height: 100vh;
}

#content-inner {
  max-width: 860px;
  width: 100%;
  padding: 0 40px 60px;
}

/* ── 헤더 (글 제목 영역) ── */
#head {
  position: relative;
  padding-top: 60px;
  padding-bottom: 24px;
  width: 100%;
}

#head h2 {
  display: block;
  margin: 0 0 12px;
  padding: 0;
  font-family: var(--sans);
  font-size: 24px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.4;
  border: none;
  text-shadow: none;
  word-break: break-word;
}

#head h2 a {
  color: var(--text-primary);
  transition: color 0.15s;
}

#head h2 a:hover { color: var(--accent-blue); }

/* 목록 제목 (카테고리명 등) */
#head h2:only-child {
  font-family: var(--mono);
  font-size: 18px;
  color: var(--accent-green);
}

/* post-meta */
.post-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.post-meta .author { color: var(--accent-blue); }
.post-meta .author::before { content: '@'; }

.post-meta .meta-date::before { content: '📅 '; font-style: normal; }

/* 날짜 뱃지 (구 스타일 재활용) */
#head .date {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 4px 10px;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-muted);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 20px;
}

#head .date::before { content: ''; }
#head .date::after  { content: ''; }

/* ── 본문 ── */
#body {
  padding: 28px 32px;
  background-color: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  word-break: break-word;
}

/* ── 글 목록 ── */
.list ul {
  margin: 0; padding: 0;
  border-top: 1px solid var(--border);
}

.list ul li {
  padding: 14px 4px;
  list-style: none;
  font-size: 14px;
  border-bottom: 1px solid var(--border-light);
  transition: background 0.15s;
}

.list ul li:hover { background: var(--bg-elevated); padding-left: 10px; }

.list ul li a { color: var(--text-primary); font-size: 14px; }
.list ul li a:hover { color: var(--accent-blue); }

.list span { float: right; font-size: 12px; font-family: var(--mono); }
.list span.cnt   { color: var(--accent-green); margin-right: 10px; }
.list span.date  { color: var(--text-muted); }

/* ── 태그 목록 ── */
.tag { word-break: break-word; }

.tag a {
  display: inline-block;
  margin: 3px 4px;
  padding: 3px 10px;
  font-family: var(--mono);
  font-size: 12px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 20px;
  color: var(--accent-blue);
  transition: all 0.15s;
}

.tag a:hover {
  background: var(--accent-blue);
  color: var(--bg-base);
  border-color: var(--accent-blue);
}

.tag a::before { content: '#'; opacity: 0.5; }

.tag .cloud5 { font-size: 11px !important; color: var(--text-muted) !important; }
.tag .cloud4 { font-size: 12px !important; color: var(--accent-blue) !important; }
.tag .cloud3 { font-size: 13px !important; color: var(--accent-purple) !important; }
.tag .cloud2 { font-size: 15px !important; color: var(--accent-cyan) !important; }
.tag .cloud1 { font-size: 17px !important; color: var(--accent-orange) !important; }

/* ── 태그 라벨 ── */
.tag_label {
  padding: 0 0 16px 0;
  text-align: left;
  word-break: break-word;
}

.tag_label span { font-size: 0; }

.tag_label a {
  display: inline-block;
  margin: 0 4px 4px 0;
  padding: 2px 8px;
  font-family: var(--mono);
  font-size: 11px;
  background: rgba(88, 166, 255, 0.1);
  border: 1px solid rgba(88, 166, 255, 0.3);
  border-radius: 4px;
  color: var(--accent-blue);
  transition: all 0.15s;
}

.tag_label a::before { content: '#'; }
.tag_label a:hover {
  background: rgba(88, 166, 255, 0.2);
  border-color: var(--accent-blue);
  color: var(--text-primary);
}

/* ── 본문 글 스타일 ── */
.entry { font-size: 16px; color: var(--text-primary); }

/* 글 내부 링크 */
.entry a, #article-view a { color: var(--accent-blue); text-decoration: underline; text-underline-offset: 3px; }
.entry a:hover, #article-view a:hover { color: var(--text-primary); }

/* ── 코드 블럭 ── */
#article-view pre code.hljs {
  font-family: var(--mono);
  font-size: 13px;
  padding: 20px 24px;
  background: var(--bg-base) !important;
  border: 1px solid var(--border);
  border-radius: 8px;
  line-height: 1.65;
  overflow-x: auto;
  color: var(--text-primary);
}

/* inline code */
#article-view code:not(.hljs) {
  font-family: var(--mono);
  font-size: 0.88em;
  padding: 2px 6px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--accent-orange);
}

/* 인용문 */
#article-view blockquote[data-ke-style='style2'] {
  border-color: var(--accent-purple);
  border-width: 0 0 0 3px;
  border-style: solid;
  padding: 4px 0 4px 16px;
  color: var(--text-secondary);
  background: var(--bg-elevated);
  border-radius: 0 4px 4px 0;
  margin: 16px 0;
}

#article-view blockquote[data-ke-style='style3'] {
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  padding: 16px 20px;
  border-radius: 8px;
  color: var(--text-secondary);
}

/* 제목 */
#article-view h2, #article-view h3, #article-view h4 {
  color: var(--text-primary);
  font-weight: 600;
  letter-spacing: -0.3px;
  margin: 1.5em 0 0.5em;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-light);
}

#article-view h2[data-ke-size] { font-size: 1.5em; border-bottom-color: var(--border); }
#article-view h3[data-ke-size] { font-size: 1.28em; }
#article-view h4[data-ke-size] { font-size: 1.12em; border-bottom: none; color: var(--text-secondary); }

/* 리스트 */
#article-view ul li, #article-view ol li {
  margin: 0 0 4px 20px;
  line-height: 1.75;
  color: var(--text-primary);
}

#article-view ul li::marker { color: var(--accent-green); }
#article-view ol li::marker { color: var(--accent-blue); font-family: var(--mono); }

/* 테이블 */
#article-view table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
  font-size: 14px;
}

#article-view table td, #article-view table th {
  padding: 10px 14px;
  border: 1px solid var(--border);
  color: var(--text-primary);
}

#article-view table tr:first-child td {
  background: var(--bg-elevated);
  color: var(--text-secondary);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.05em;
}

#article-view table tr:nth-child(even) td {
  background: rgba(22, 27, 34, 0.5);
}

/* code color 유틸 */
code.red   { border: 1px solid rgba(255,123,114,0.3); background: rgba(255,123,114,0.08); color: var(--accent-red); }
code.blue  { border: 1px solid rgba(88,166,255,0.3);  background: rgba(88,166,255,0.08);  color: var(--accent-blue); }
code.green { border: 1px solid rgba(63,185,80,0.3);   background: rgba(63,185,80,0.08);   color: var(--accent-green); }

/* ── 관리자 버튼 ── */
.admin {
  margin-bottom: 12px;
  font-family: var(--mono);
  font-size: 11px;
  text-align: center;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.admin a { color: var(--text-muted); }
.admin a:hover { color: var(--accent-red); }
.admin .line { padding: 0 6px; color: var(--border); }

/* ── 비밀글 ── */
.protected p { text-align: center; color: var(--text-secondary); }
.protected i { font-size: 24px; color: var(--accent-orange); }

.protected input[type="password"] {
  margin-top: 10px;
  padding: 10px 14px;
  width: 280px;
  font-family: var(--mono);
  background: var(--bg-base);
}

.protected input[type="button"] {
  margin-top: 16px;
  padding: 8px 20px;
  font-size: 13px;
  font-family: var(--mono);
  background: var(--accent-green);
  color: var(--bg-base);
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  font-weight: 600;
}

/* ── 페이징 ── */
#paging {
  padding: 40px 0 20px;
  text-align: center;
  font-family: var(--mono);
  font-size: 13px;
}

#paging a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 3px;
  padding: 6px 12px;
  min-width: 36px;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-secondary);
  transition: all 0.15s;
}

#paging a:hover {
  background: var(--bg-hover);
  border-color: var(--accent-blue);
  color: var(--accent-blue);
}

#paging .selected {
  background: var(--accent-blue) !important;
  border-color: var(--accent-blue) !important;
  color: var(--bg-base) !important;
  cursor: default;
}

#paging .no-more-prev,
#paging .no-more-next {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

/* ── 최근 포스트 ── */
#recent-post {
  padding: 50px 0 30px;
}

#recent-post h4 {
  margin: 0 0 12px;
  padding: 0 0 8px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 400;
  color: var(--text-muted);
  letter-spacing: 0.1em;
  border-bottom: 1px solid var(--border);
}

#recent-post h4 a { color: var(--accent-green); }
#recent-post h4 a:hover { color: var(--text-primary); }

#recent-post ul {
  margin: 0; padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

#recent-post ul li {
  position: relative;
  width: 100%;
  height: 120px;
  overflow: hidden;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 6px;
}

#recent-post ul li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  transition: opacity 0.2s;
}

#recent-post ul li .title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 8px;
  background: linear-gradient(transparent 30%, rgba(0,0,0,0.8));
  font-size: 11px;
  color: var(--text-primary);
  line-height: 1.4;
  opacity: 0;
  transition: opacity 0.2s;
}

#recent-post ul li:hover .title { opacity: 1; }
#recent-post ul li:hover img { opacity: 0.4; }

/* ── 댓글 ── */
#communicate .communicateWrite .guest label {
  display: block;
  padding-top: 0;
  float: left;
  width: 90px;
  font-size: 13px;
  color: var(--text-muted);
  font-family: var(--mono);
}

#communicate .communicateWrite .guest input {
  padding: 8px 12px;
  width: 260px;
  background: var(--bg-base);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-primary);
}

#communicate .communicateWrite .textarea textarea {
  padding: 12px;
  width: 100%;
  height: 160px;
  line-height: 1.65;
  background: var(--bg-base);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-primary);
  resize: vertical;
}

#communicate .communicateWrite .submit input {
  padding: 10px 20px;
  color: var(--accent-green);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.1em;
  background: transparent;
  border: 1px solid var(--accent-green);
  border-radius: var(--radius);
  cursor: pointer;
  transition: all 0.15s;
}

#communicate .communicateWrite .submit input:hover {
  background: var(--accent-green);
  color: var(--bg-base);
}

#communicate .communicateList ol > li {
  border-top: 2px solid var(--accent-blue);
  border-bottom: 1px solid var(--border);
  padding: 14px 0 8px;
  margin-top: 16px;
  background: var(--bg-surface);
}

#communicate .communicateList ul li {
  border-top: 1px solid var(--border-light);
  margin-top: 8px;
  padding: 10px 0 0;
  background: var(--bg-elevated);
}

#communicate .communicateList .name {
  font-weight: 500;
  color: var(--accent-blue);
  font-family: var(--mono);
  font-size: 13px;
}

#communicate .communicateList .date {
  font-size: 12px;
  color: var(--text-muted);
  font-family: var(--mono);
}

#communicate .communicateList p {
  margin: 8px 0;
  color: var(--text-secondary);
  line-height: 1.7;
  font-size: 14px;
}

#communicate .communicateList .control a {
  color: var(--text-muted);
  font-size: 11px;
  font-family: var(--mono);
}

#communicate .communicateList .control a:hover { color: var(--accent-red); }

/* ── 푸터 ── */
#foot {
  position: relative;
  width: 100%;
  padding: 30px 0;
  border-top: 1px solid var(--border);
  margin-top: 40px;
}

#foot a {
  color: var(--text-muted);
  border-bottom: 1px dotted var(--border);
}

#foot a:hover { color: var(--accent-blue); }

#foot .powered, #foot .social {
  position: static;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.05em;
}

#foot .powered { text-align: right; }
#foot .social   { text-align: left; margin-top: 4px; }

/* ── 사이드바 토글 (모바일) ── */
#sidebar-toggle {
  display: none;
  position: fixed;
  right: 16px;
  bottom: 16px;
  width: 44px;
  height: 44px;
  line-height: 44px;
  text-align: center;
  color: var(--text-primary);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  z-index: 101;
  cursor: pointer;
}

/* ============================================
   ARTICLE-VIEW 공통
   ============================================ */
#article-view {
  margin: 0;
  padding: 8px 0 40px;
  word-wrap: break-word;
  color: var(--text-primary);
  min-height: 320px;
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.8;
}

#article-view p[data-ke-size] { margin-bottom: 20px; }
#article-view p+p, #article-view p { margin-bottom: 20px; }

#article-view hr[data-ke-style] {
  border: none;
  height: 1px;
  background: var(--border);
  margin: 28px 0;
  padding: 0;
}

/* ── 이미지 ── */
#article-view figure.imageblock { max-width: 100%; }
#article-view figure.imageblock.alignCenter { margin: 20px auto; }
#article-view figure img { border-radius: 6px; }
#article-view figure figcaption {
  font-size: 12px;
  color: var(--text-muted);
  font-family: var(--mono);
  text-align: center;
  padding-top: 8px;
}

/* moreLess */
#article-view div[data-ke-type='moreLess'] {
  background: var(--bg-elevated);
  border: 1px dashed var(--border);
  border-radius: 6px;
  padding: 16px 20px;
  margin: 16px 0;
  color: var(--text-secondary);
}

#article-view div[data-ke-type='moreLess'] .btn-toggle-moreless {
  color: var(--accent-blue);
  font-family: var(--mono);
  font-size: 13px;
}

/* TT 댓글 커스텀 */
.tt-comment-cont .tt-btn_register {
  background: transparent;
  color: var(--accent-green);
  border: 1px solid var(--accent-green);
  border-radius: var(--radius);
  font-family: var(--mono);
  font-size: 13px;
  height: 36px;
}

.tt-comment-cont .tt-btn_register:hover {
  background: var(--accent-green);
  color: var(--bg-base);
  border-color: var(--accent-green);
}

.tt-comment-cont .tt-wrap-cmt .tt_desc {
  font-size: 14px;
  color: var(--text-primary);
}

.tt-comment-cont .tt-wrap-cmt .tt-link-user {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--accent-blue);
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media all and (max-width: 959px) {
  #sidebar {
    transform: translate3d(calc(-1 * var(--sidebar-width)), 0, 0);
    transition: transform 0.22s ease;
  }

  html.open #sidebar {
    transform: translate3d(0, 0, 0);
  }

  html.open, html.open body { overflow: hidden; }

  #content {
    margin: 0;
    padding: 0 16px;
  }

  #content-inner { padding: 0; }

  #sidebar-toggle { display: block; }

  #head { padding-top: 40px; }
  #head .date { position: static; margin-top: 8px; }

  #recent-post ul { grid-template-columns: repeat(2, 1fr); }
  #recent-post ul li .title { opacity: 0.9; }

  .tag_label { padding: 0 0 12px; }
}

@media all and (max-width: 639px) {
  #content-inner { padding: 0; }

  .list ul li a { display: block; }

  #communicate .communicateWrite .guest label {
    float: none;
    width: 100%;
    padding-bottom: 4px;
  }

  #communicate .communicateWrite .guest input { width: 100%; }

  #recent-post ul { grid-template-columns: 1fr 1fr; }

  #foot .powered { right: 0; bottom: 45px; width: 100%; text-align: center; }
  #foot .social  { left: 0;  bottom: 20px; width: 100%; text-align: center; }
}

@media all and (min-width: 960px) {
  #sidebar-toggle { display: none; }
}

/* ============================================
   SCROLLBAR (전역)
   ============================================ */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-base); }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ============================================
   SELECTION
   ============================================ */
::selection {
  background: rgba(88, 166, 255, 0.25);
  color: var(--text-primary);
}