/* =====================================================================
   실무 위키 v2 — 공통 스타일 (.wk 스코프)
   디자인 원천: design_handoff_실무위키 · 오빠두 디자인시스템 v2.1 Deep Jade
   헤더/푸터는 사이트 전역(.oppadu-nav sticky 60px) 재사용.
   테두리 없는 표면 · 제이드 포인트 · 크리스프 코너 · 그라디언트/이모지 금지.
   ===================================================================== */

/* ---- 풀폭 브레이크아웃 (GP 컨테이너 해제) — body.wk-page 게이트
   무료강의(page-lecture-home) 방식: #page·#content max-width 해제 + 좌우 패딩 0. ---- */
body.wk-page { overflow-x: clip; }
body.wk-page #page.grid-container { max-width: none; }
body.wk-page #page,
body.wk-page .site-content { max-width: none !important; width: 100%; padding-left: 0 !important; padding-right: 0 !important; }
body.wk-page .site-main { max-width: none !important; padding: 0; margin: 0; }
/* 커뮤니티(.oc-community)와 동일한 뷰포트 전각 브레이크아웃 — GP 컨테이너 캡을 확실히 탈출해
   .wk-grid(max 1300)가 실제 1300 까지 도달(예전 방식은 상위 캡이 새어 ~1235로 좁아짐) */
body.wk-page .site-content .wk {
  width: 100vw; max-width: 100vw;
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  min-width: 0;
}

.wk {
  /* 토큰 */
  --wk-jade-500: #059669;
  --wk-jade-600: #047E57;
  --wk-jade-700: #036546;
  --wk-jade-900: #064E3B;
  --wk-tint: #ECFDF5;
  --wk-tint-2: #A7F3D0;
  --wk-amber: #C5870F;
  --wk-amber-700: #95650A;
  --wk-amber-bg: #FAF2E1;
  --wk-ink: #1B1B18;
  --wk-body: #45453F;
  --wk-sub: #57606A;
  --wk-meta: #8B949E;
  --wk-icon: #8A8A85;
  --wk-faint: #B4B4AF;
  --wk-line: #E5E5E2;
  --wk-line-2: #E6E6E2;
  --wk-gray-300: #D4D4CF;
  --wk-gray-100: #F0F0ED;
  --wk-hover: #FBFBFA;
  --wk-hover-2: #F5F5F3;
  --wk-surface: #FFFFFF;
  --wk-err-bg: #FBE6E6;
  --wk-err-tx: #A82F2F;
  --wk-ring: 0 0 0 3px rgba(5, 150, 105, 0.14);
  --wk-mono: inherit;  /* 코드·구문·인수도 사이트 기본 폰트 유지 (모노폰트 미사용 — 한글 폴백 분리 방지) */
  --wk-latin: inherit; /* 함수명·라틴 뱃지도 사이트 기본 폰트 유지 (Inter 미사용) */

  font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
  color: #1F2937;
  background: var(--wk-surface);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  word-break: keep-all;
}
.wk *, .wk *::before, .wk *::after { box-sizing: border-box; }
.wk :where(h1, h2, h3, p, ul, ol, li) { margin: 0; }
.wk a { text-decoration: none; color: inherit; }
.wk button { font-family: inherit; }
.wk ::selection { background: #D2F1E7; }

/* ---- 그리드 셸 (풀폭 flex — 좌측 패널 고정 + 본문 flex:1) ----
   내부 콘텐츠는 .wk-inner 로 가독폭 캡·중앙정렬(무료강의 --lh-list-w 방식). */
.wk {
  --wk-content-w: min(92%, clamp(920px, 70vw, 1280px));
}
.wk-grid {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  /* 커뮤니티 .oc-grid 는 content-box(max-width=본문폭, padding 별도) → 총폭 1300+64=1364.
     위키는 전역 border-box 라 그대로면 1300 총폭(64px 좁음) → content-box 로 되돌려 총폭 일치. */
  box-sizing: content-box;
  max-width: 1300px;  /* 커뮤니티 --oc-max-feed 와 동일(본문폭 기준) */
  margin: 0 auto;     /* 중앙 정렬 */
  padding: 28px 32px 64px;
}
.wk-panelcol { flex: 0 0 200px; }
.wk-grid[data-collapsed="1"] .wk-panelcol { flex-basis: 48px; }
.wk-main { flex: 1 1 auto; min-width: 0; padding-right: 0; }
.wk-inner { max-width: none; margin: 0; } /* 본문이 중앙 컨테이너 안에서 열을 채움 (패널 뒤 flush) */

/* ---- 커스텀 스크롤바 ---- */
.wk-scroll { scrollbar-width: thin; scrollbar-color: var(--wk-gray-300) transparent; }
.wk-scroll::-webkit-scrollbar { width: 6px; }
.wk-scroll::-webkit-scrollbar-thumb { background: var(--wk-line-2); border-radius: 3px; }

/* ---- 좌측 탐색 패널 ---- */
.wk-panelcol { position: relative; }
.wk-panel {
  position: sticky; top: 76px;
  max-height: calc(100vh - 92px);
  overflow-y: auto;
  padding: 2px 10px 24px 0;
}
.admin-bar .wk-panel { top: 108px; }
.wk-phead { display: flex; align-items: center; justify-content: space-between; padding: 0 0 6px 10px; }
.wk-plabel { display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.05em; color: #8A8A85; padding: 16px 10px 5px; } /* 커뮤니티 .oc-nav-label 동일 (gray-500 · 700) */
.wk-plabel--top { padding: 0; }
.wk-ptoggle {
  width: 26px; height: 26px; border: none; background: transparent; border-radius: 6px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  color: var(--wk-icon); padding: 0; transition: background .15s ease, color .15s ease;
}
.wk-ptoggle:hover { background: var(--wk-hover-2); color: var(--wk-body); }
/* 좌측 패널 항목: 커뮤니티 .oc-board-item 과 동일 색 (실측값)
   텍스트·아이콘 #45453F · hover bg #F0F0ED(텍스트 유지) · 활성 bg #E6F5EF·텍스트/아이콘 #047857·700→600
   · 라벨 #8A8A85/700 · 구분선 #E6E6E2 */
.wk-pitem {
  display: flex; align-items: center; gap: 14px; margin-bottom: 2px;
  font-size: 14.5px; font-weight: 500; color: #45453F;
  padding: 9px 12px; border-radius: 10px;
  transition: background-color .15s ease, color .15s ease;
}
.wk-pico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; color: #45453F; }
.wk-pitem:hover { background: #F0F0ED; color: #45453F; }
.wk-pitem:hover .wk-pico { color: #45453F; }
.wk-pitem--on, .wk-pitem--on:hover { background: #E6F5EF; color: #047857; font-weight: 600; }
.wk-pitem--on .wk-pico, .wk-pitem--on:hover .wk-pico { color: #047857; } /* 커뮤니티 활성 = primary-700 */
.wk-pitem--soon { color: #B6B6B0; cursor: default; }
.wk-pitem--soon:hover { background: transparent; color: #B6B6B0; }
.wk-pitem--soon .wk-pico { color: #B6B6B0; }
.wk-pitem--util { font-size: 13px; font-weight: 500; color: #45453F; }
.wk-pitem--util .wk-pico-label { flex: 1 1 auto; }
.wk-pdivider { height: 1px; background: #E6E6E2; margin: 12px 8px; }
/* 패널 링크(<a>) 텍스트 색 — .wk a{color:inherit}(0,1,1)을 동일 명시도+후순위로 이김
   (rest/active 는 pseudo 가 없어 .wk a 에 지던 문제 해결. soon 은 <span>이라 무관) */
a.wk-pitem { color: #45453F; }
a.wk-pitem--on { color: #047857; }
a.wk-pitem--util { color: #45453F; }

/* 접힘 레일 */
.wk-rail { display: none; position: sticky; top: 76px; flex-direction: column; align-items: center; gap: 14px; padding-top: 2px; }
.admin-bar .wk-rail { top: 108px; }
.wk-rail-btn {
  width: 32px; height: 32px; border: 1px solid var(--wk-line); background: var(--wk-surface); border-radius: 6px;
  display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--wk-icon); padding: 0;
  transition: background .15s ease, color .15s ease;
}
.wk-rail-btn:hover { background: var(--wk-hover-2); color: var(--wk-body); }
.wk-rail-label { writing-mode: vertical-rl; font-size: 11px; letter-spacing: 0.14em; color: var(--wk-faint); }
.wk-grid[data-collapsed="1"] .wk-panel { display: none; }
.wk-grid[data-collapsed="1"] .wk-rail { display: flex; }

/* ---- 모바일 현재 위치 바 + 드로어 ---- */
.wk-mbar {
  display: none; align-items: center; gap: 8px;
  position: sticky; top: 60px; z-index: 40;
  background: var(--wk-surface); border-bottom: 1px solid var(--wk-line); padding: 8px 16px;
}
.wk-mbar-btn {
  display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px;
  background: var(--wk-surface); border: 1px solid var(--wk-line); border-radius: 6px;
  font-size: 12.5px; font-weight: 500; color: #1F2937; cursor: pointer;
}
.wk-drawer { position: fixed; inset: 0; z-index: 600; }
.wk-drawer[hidden] { display: none; }
.wk-drawer-bg { position: absolute; inset: 0; background: rgba(27, 27, 24, 0.34); animation: wkFade .2s ease; }
.wk-drawer-panel {
  position: absolute; top: 0; left: 0; bottom: 0; width: 280px; background: var(--wk-surface);
  box-shadow: 0 2px 8px rgba(17, 17, 16, 0.06), 0 18px 44px rgba(17, 17, 16, 0.09);
  animation: wkDrawer .24s cubic-bezier(0.2, 0.8, 0.2, 1);
  overflow-y: auto; padding: 14px 14px 24px;
}
.wk-drawer-panel .wk-pitem { padding: 8px 10px; }
@keyframes wkDrawer { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes wkFade { from { opacity: 0; } to { opacity: 1; } }

/* ---- 브레드크럼 · 타이틀 ---- */
.wk-crumb { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--wk-meta); padding: 4px 2px 14px; }
.wk-crumb a { color: var(--wk-meta); transition: color .15s ease; }
.wk-crumb a:hover { color: var(--wk-jade-600); }
.wk-crumb-cur { color: var(--wk-sub); }
.wk-titlerow { display: flex; align-items: flex-end; gap: 12px; margin-bottom: 14px; }
.wk-titlerow > .wk-titlebox { flex: 1; min-width: 0; }
.wk-h1 { font-size: 22px; font-weight: 700; color: var(--wk-ink); letter-spacing: -0.02em; margin: 0 0 4px; }
.wk-subline { font-size: 13px; color: var(--wk-meta); }
.wk-subline b { color: var(--wk-sub); font-weight: 600; }
.wk-sortsel {
  height: 36px; padding: 0 10px; border: 1px solid var(--wk-line); border-radius: 8px;
  font-size: 13px; font-family: inherit; color: var(--wk-body); background: var(--wk-surface); outline: none; flex: none;
}

/* ---- 검색 인풋 ---- */
.wk-search { position: relative; display: flex; align-items: center; margin-bottom: 6px; }
.wk-search > svg { position: absolute; left: 14px; pointer-events: none; }
/* input[type="text"] 로 특이도를 올려 GP core(background:#fafafa 등)·child(font-size:16px) 전역 규칙을 이김 */
.wk-search > input[type="text"] {
  width: 100%; height: 44px; border: 1px solid var(--wk-line); background: var(--wk-surface);
  border-radius: 10px; padding: 0 14px 0 40px; font-size: 14px; font-family: inherit; color: var(--wk-ink); outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.wk-search > input[type="text"]:focus { border-color: var(--wk-jade-500); background: var(--wk-surface); box-shadow: var(--wk-ring); }
.wk-search > input[type="text"]::placeholder { color: var(--wk-icon); }

/* ---- sticky 필터 바 (칩 + A–Z) ---- */
.wk-fstick { position: sticky; top: 60px; z-index: 30; background: var(--wk-surface); border-bottom: 1px solid var(--wk-line); margin-bottom: 4px; }
.admin-bar .wk-fstick { top: 92px; }
/* 필터 바: 좌측 분류 칩 + 우측 상시 검색란 (무료강의 .lh-chips/.lh-ssearch 패턴) */
.wk-fbar { display: flex; align-items: center; gap: 14px; padding: 10px 2px; }
.wk-fchips { display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px 9px; scrollbar-width: none; }
/* 세로 패딩 2px: overflow-x:auto 가 overflow-y 를 auto 로 계산 → 칩 1px 테두리가 잘리는 것 방지 */
.wk-fbar .wk-fchips { flex: 1 1 auto; min-width: 0; padding: 2px 0; }
.wk-fchips::-webkit-scrollbar { display: none; }
/* 검색란: 밑줄만 (무료강의 .lh-feed-search 패턴) */
.wk-fsearch {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px;
  width: 200px; max-width: 44%; height: 34px; padding: 0 2px; box-sizing: border-box;
  background: transparent; border: 0; border-bottom: 1px solid var(--wk-gray-300);
}
.wk-fsearch > svg { flex: 0 0 auto; }
/* input[type="text"] 로 특이도를 올려 GP core(background:#fafafa·border-color:#ccc)·child(font-size:16px) 이김 */
.wk-fsearch input[type="text"] {
  flex: 1 1 auto; min-width: 0; height: 34px; padding: 0; margin: 0;
  border: none; outline: none; background: transparent; box-shadow: none;
  font-family: inherit; font-size: 13.5px; color: var(--wk-ink);
}
.wk-fsearch input[type="text"]:focus, .wk-fsearch input[type="text"]:focus-visible {
  outline: none; box-shadow: none; background: transparent; border: none;
}
.wk-fsearch input[type="text"]::placeholder { color: var(--wk-icon); }
/* 분류 칩: 흰 배경 + 테두리(resting) · 작은 라운드 · 제이드 활성 */
.wk-fchip {
  flex: none; display: inline-flex; align-items: center; gap: 7px;
  appearance: none; -webkit-appearance: none; cursor: pointer;
  font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1;
  color: var(--wk-body); background: var(--wk-surface); border: 1px solid var(--wk-line); border-radius: 6px;
  padding: 9px 16px;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.wk-fchip:hover { background: var(--wk-hover-2); color: var(--wk-ink); }
.wk-fchip--on { background: var(--wk-jade-500); border-color: var(--wk-jade-500); color: #FFFFFF; }
.wk-fchip--on:hover { background: var(--wk-jade-500); border-color: var(--wk-jade-500); color: #FFFFFF; }

/* ---- 목록 컨테이너 · 행 ---- */
.wk-list { border: 1px solid var(--wk-line); border-radius: 10px; overflow: hidden; margin-top: 14px; }
.wk-row {
  display: flex; align-items: center; gap: 18px; padding: 13px 16px;
  border-top: 1px solid var(--wk-line); transition: background .15s ease;
}
.wk-row:first-child, .wk-row.wk-row--first { border-top: none; }
.wk-row:hover { background: var(--wk-hover); }
.wk-row[hidden] { display: none; }
.wk-rowmain { flex: 1; min-width: 0; display: block; }
.wk-rowhead { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; min-width: 0; }
.wk-rowname { font-family: var(--wk-latin); font-size: 14.5px; font-weight: 700; color: var(--wk-jade-600); white-space: nowrap; }
.wk-rowname--ko { font-family: inherit; letter-spacing: -0.01em; overflow: hidden; text-overflow: ellipsis; }
.wk-rowname--plain { color: var(--wk-ink); }
.wk-rowdesc { display: block; font-size: 13px; color: var(--wk-sub); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-catbadge { flex: none; font-size: 10.5px; font-weight: 600; padding: 2px 8px; border-radius: 3px; background: var(--wk-gray-100); color: var(--wk-sub); white-space: nowrap; }
.wk-rowbadges { flex: none; display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; max-width: 250px; }
/* 함수 목록: 인수 시그니처 =함수명(인수, [선택인수]) — 엑셀 함수 페이지 전용 */
body.page-template-page-functions .wk-rowhead { flex-wrap: wrap; row-gap: 3px; }
.wk-sig {
  display: inline-flex; align-items: baseline; flex-wrap: wrap; row-gap: 2px; min-width: 0;
  font-family: var(--wk-latin); font-size: 14px; letter-spacing: 0;
}
.wk-sig-eq { color: var(--wk-faint); font-weight: 600; margin-right: 1px; }
.wk-sig-name { color: var(--wk-jade-600); font-weight: 700; margin-right: 4px; }
.wk-sig-paren, .wk-sig-comma { color: var(--wk-meta); font-weight: 500; white-space: pre; }
.wk-sig-args { padding: 0 5px; }
.wk-sig-req { color: var(--wk-body); font-weight: 500; }
.wk-sig-opt { color: var(--wk-meta); font-weight: 500; }
/* 버전 뱃지: 엑셀 2016+ 도입 함수 (인수 우측) */
.wk-verbadge {
  flex: none; align-self: center; margin-left: 8px;
  font-family: var(--wk-latin); font-size: 10.5px; font-weight: 700; line-height: 1.2; letter-spacing: 0.01em;
  color: #FFFFFF; background: var(--wk-jade-700); border-radius: 3px; padding: 3px 7px; white-space: nowrap;
}
/* 함수 행: 시그니처(좌, 고정 600px) + [카테고리] 설명(우) 한 줄 */
body.page-template-page-functions .wk-row { align-items: baseline; gap: 16px; }
body.page-template-page-functions .wk-sig { flex: 0 0 600px; max-width: 100%; }
.wk-rowaside { flex: 1 1 auto; min-width: 0; display: flex; align-items: baseline; justify-content: flex-start; gap: 7px; }
.wk-rowaside .wk-rowdesc { flex: 1 1 auto; min-width: 0; }
.wk-fnc {
  display: inline-flex; align-items: center; font-family: var(--wk-latin); font-size: 11px; font-weight: 600;
  letter-spacing: 0.02em; color: var(--wk-body); background: var(--wk-gray-100); border-radius: 3px; padding: 2px 8px; white-space: nowrap;
}

/* 기능 사전 유형 배지 */
.wk-tbadge { flex: none; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 3px; white-space: nowrap; }
.wk-tbadge--howto { background: var(--wk-tint); color: var(--wk-jade-600); }
.wk-tbadge--error { background: var(--wk-err-bg); color: var(--wk-err-tx); }
.wk-tbadge--concept { background: var(--wk-gray-100); color: var(--wk-sub); }
.wk-tbadge--vba { background: var(--wk-amber-bg); color: var(--wk-amber-700); }
.wk-tbadge--etc { background: var(--wk-surface); border: 1px solid var(--wk-line); color: var(--wk-meta); }

/* VBA 행 */
.wk-vname { flex: none; font-family: var(--wk-mono); font-size: 14px; font-weight: 600; color: var(--wk-ink); white-space: nowrap; }
.wk-vsig { font-family: var(--wk-mono); font-size: 12px; color: var(--wk-meta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.wk-vtag-fn { flex: none; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 3px; background: var(--wk-tint); color: var(--wk-jade-600); }
.wk-vtag-sub { flex: none; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 3px; background: var(--wk-gray-100); color: var(--wk-sub); }
.wk-catpill { flex: none; font-size: 11px; color: var(--wk-meta); background: var(--wk-hover-2); border-radius: 3px; padding: 3px 8px; white-space: nowrap; }
@media (max-width: 480px) { .wk-catpill { display: none; } }

/* 범례 · 빈 상태 */
.wk-legend { display: flex; align-items: center; gap: 6px; margin-top: 12px; padding: 0 2px; }
.wk-legend > svg { flex: none; }
.wk-legend > span { font-size: 12px; color: var(--wk-meta); }
.wk-empty { padding: 44px 16px; text-align: center; }
.wk-empty-t { font-size: 14px; font-weight: 600; color: var(--wk-body); margin-bottom: 5px; }
.wk-empty-d { font-size: 12.5px; color: var(--wk-meta); }

/* =====================================================================
   위키 홈
   ===================================================================== */
.wk-hero { padding: 26px 2px 30px; }
.wk-eyebrow { font-family: var(--wk-latin); font-size: 12px; font-weight: 600; letter-spacing: 0.16em; color: var(--wk-jade-600); margin-bottom: 8px; }
.wk-hero-h1 { font-size: 28px; font-weight: 700; color: var(--wk-ink); letter-spacing: -0.02em; margin: 0 0 6px; }
.wk-hero-sub { font-size: 14px; color: var(--wk-sub); margin: 0 0 18px; }
.wk-hero .wk-search { margin-bottom: 0; }
.wk-hero .wk-search > svg { left: 16px; }
.wk-hero .wk-search > input {
  height: 50px; border-radius: 10px; padding: 0 16px 0 44px; font-size: 15px;
  box-shadow: 0 1px 3px rgba(17, 17, 16, 0.04);
}
.wk-seclabel { display: flex; align-items: baseline; gap: 8px; font-size: 11px; font-weight: 500; letter-spacing: 0.05em; color: var(--wk-meta); padding: 0 2px 10px; }
.wk-seclabel--pop { padding-top: 30px; }
.wk-top5tag { font-family: var(--wk-latin); font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em; color: var(--wk-amber); }
.wk-seccards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wk-seccard {
  display: flex; align-items: center; gap: 12px; padding: 14px 16px;
  background: var(--wk-surface); border: 1px solid var(--wk-line); border-radius: 8px; color: inherit;
  transition: background .15s ease, border-color .15s ease;
}
.wk-seccard:hover { border-color: var(--wk-gray-300); background: var(--wk-hover); }
.wk-seccard--soon { background: var(--wk-hover); border: 1px dashed var(--wk-gray-300); }
.wk-seccard--soon:hover { background: var(--wk-hover); border-color: var(--wk-gray-300); }
.wk-secico { flex: none; width: 36px; height: 36px; border-radius: 6px; background: var(--wk-tint); display: flex; align-items: center; justify-content: center; }
.wk-seccard--soon .wk-secico { background: var(--wk-gray-100); }
.wk-secbody { flex: 1; min-width: 0; }
.wk-sectitle { display: flex; align-items: center; gap: 7px; font-size: 14.5px; font-weight: 700; color: var(--wk-ink); }
.wk-seccard--soon .wk-sectitle { color: var(--wk-meta); }
.wk-soonbadge { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; padding: 2px 6px; border-radius: 2px; background: var(--wk-gray-100); color: var(--wk-meta); }
.wk-secdesc { display: block; font-size: 12px; color: var(--wk-meta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-seccard--soon .wk-secdesc { color: var(--wk-faint); }
.wk-pop { border: 1px solid var(--wk-line); border-radius: 10px; overflow: hidden; }
.wk-poprow { display: flex; align-items: center; gap: 14px; padding: 13px 16px; color: inherit; border-top: 1px solid var(--wk-line); transition: background .15s ease; }
.wk-poprow:first-child { border-top: none; }
.wk-poprow:hover { background: var(--wk-hover); }
.wk-poprank { flex: none; width: 22px; font-family: var(--wk-latin); font-size: 15px; font-weight: 700; color: var(--wk-jade-600); text-align: center; }
.wk-popbody { flex: 1; min-width: 0; }
.wk-poptitle { display: block; font-size: 14px; font-weight: 600; color: var(--wk-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-popdesc { display: block; font-size: 12px; color: var(--wk-meta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* =====================================================================
   단축키 문서
   ===================================================================== */
.wk-ktabbar {
  position: sticky; top: 60px; z-index: 30; background: var(--wk-surface);
  display: flex; gap: 15px; border-bottom: 1px solid var(--wk-line); margin-bottom: 20px;
  overflow-x: auto; padding-top: 8px; scrollbar-width: none;
}
.wk-ktabbar::-webkit-scrollbar { display: none; }
.admin-bar .wk-ktabbar { top: 92px; }
.wk-ktab {
  font-size: 13px; font-weight: 500; color: var(--wk-sub); padding: 10px 3px;
  border: none; border-bottom: 2px solid transparent; background: none; cursor: pointer; white-space: nowrap;
  transition: color .15s ease, border-color .15s ease;
}
.wk-ktab:hover { color: var(--wk-ink); }
.wk-ktab--on { color: var(--wk-jade-600); border-bottom-color: var(--wk-jade-500); font-weight: 600; }
.wk-ksec { scroll-margin-top: 118px; margin-bottom: 34px; }
.admin-bar .wk-ksec { scroll-margin-top: 150px; }
.wk-ksec-head { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
.wk-ksec-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; color: var(--wk-sub); }
.wk-ksec-h2 { font-size: 16px; font-weight: 700; color: var(--wk-ink); margin: 0; }
.wk-ksec-cnt { font-size: 12.5px; color: var(--wk-meta); }
.wk-ksec-intro { font-size: 13px; color: var(--wk-sub); line-height: 1.7; margin: 0 0 14px; }
.wk-ksec-intro b { font-weight: 600; color: var(--wk-jade-600); }
.wk-essbadge { font-size: 9.5px; font-weight: 700; color: var(--wk-gray-300); background: var(--wk-jade-700); border-radius: 3px; padding: 1px 5px; white-space: nowrap; }
.wk-ktable { border: 1px solid var(--wk-line); border-radius: 10px; overflow: hidden; }
.wk-krow { display: grid; grid-template-columns: 1fr 160px 160px; gap: 12px; padding: 11px 16px; border-top: 1px solid var(--wk-line); align-items: center; font-size: 13px; }
.wk-krow--head {
  padding: 10px 16px; background: var(--wk-hover-2); border-top: none;
  font-size: 11.5px; font-weight: 700; color: var(--wk-sub);
}
.wk-krow--head span { display: inline-flex; align-items: center; gap: 6px; }
.wk-kdesc { color: #1F2937; display: inline-flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.wk-kseq { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.wk-kc {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 30px; height: 30px; padding: 0 9px; border-radius: 6px;
  font-family: inherit; font-size: 12px; font-weight: 400;
}
.wk-kc--win { background: #28302d; color: #fff; }
.wk-kc--mac { background: #fff; border: 1px solid #d7d7d7; color: #1d1d1d; }
.wk-kplus { color: var(--wk-faint); font-size: 11px; }
/* 단축키 행 아코디언 (설명글 펼침) */
.wk-krow--acc { cursor: pointer; }
.wk-krow--acc:hover,
.wk-krow--acc[aria-expanded="true"] { background: var(--wk-hover); }
.wk-krow--acc:focus-visible { outline: 2px solid var(--wk-jade-500); outline-offset: -2px; }
.wk-kchev { display: inline-flex; align-items: center; color: var(--wk-icon); flex: none; transition: transform .15s ease; }
.wk-krow--acc[aria-expanded="true"] .wk-kchev { transform: rotate(90deg); color: var(--wk-jade-600); }
.wk-krow--acc[aria-expanded="true"] .wk-kdesc { font-weight: 700; } /* 설명 펼침 시 설명 굵게 */
.wk-kpanel {
  padding: 4px 16px 14px 37px; margin: 0;
  font-size: 13px; line-height: 1.75; color: var(--wk-sub);
  background: var(--wk-hover); word-break: keep-all;
}
.wk-printbtn {
  display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px;
  background: var(--wk-surface); border: 1px solid var(--wk-gray-300); border-radius: 8px;
  font-size: 13px; font-weight: 600; color: var(--wk-body); cursor: pointer; flex: none;
  transition: background .15s ease;
}
.wk-printbtn:hover { background: var(--wk-hover-2); }

/* 우측 목차 (단축키) */
.wk-toc { position: sticky; top: 76px; padding-top: 24px; max-height: calc(100vh - 92px); overflow-y: auto; }
.admin-bar .wk-toc { top: 108px; }
.wk-toc-label { font-size: 11px; font-weight: 500; letter-spacing: 0.05em; color: var(--wk-meta); margin-bottom: 10px; padding-left: 14px; }
.wk-tocnav { display: flex; flex-direction: column; }
.wk-tocitem {
  display: block; font-size: 12px; color: var(--wk-icon); padding: 5px 0 5px 12px;
  border-left: 2px solid var(--wk-line-2); line-height: 1.45;
  transition: color .15s ease, border-color .15s ease;
}
.wk-tocitem:hover { color: var(--wk-ink); }
.wk-tocitem--on { color: var(--wk-jade-600); border-left-color: var(--wk-jade-500); font-weight: 500; }
.wk-toc-ad {
  margin-top: 24px; border: 1px dashed var(--wk-line); border-radius: 8px; background: var(--wk-hover);
  min-height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  overflow: hidden;
}

/* =====================================================================
   단일 게시글 상세 (함수·공식·기능사전·VBA 공용 — .wk-grid--toc)
   디자인 원천: design_handoff_실무위키/실무위키-{ADDRESS,FILTER}-상세
   시안 1(정답 우선 미니멀)을 정본으로 — 틴트 콜아웃·SVG 아이콘·이모지/그라디언트 없음.
   ===================================================================== */

/* 3열 레이아웃 (커뮤니티 .oc-detail-grid 구조와 동일): 좌 패널 200 + 본문 flex(1fr) + 우 목차·광고 300
   · 중앙 정렬(margin:auto) · 컨테이너 최대폭 1300 (커뮤니티 --oc-max-detail 동일) · gap 32 */
.wk-grid--toc {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr) 300px;
  gap: 32px;
  max-width: 1300px;
  margin: 0 auto;
  align-items: stretch; /* 컬럼을 행 높이로 늘려 스티키 목차/패널이 이동할 공간 확보 */
  padding: 28px 32px 64px;
}
.wk-grid--toc[data-collapsed="1"] { grid-template-columns: 48px minmax(0, 1fr) 300px; }
.wk-grid--toc .wk-main { padding-right: 0; }
.wk-grid--toc .wk-inner { max-width: none; } /* 본문이 열을 채움 (커뮤니티 방식 — 캡 없음) */
.wk-grid--toc .wk-toccol { display: block; position: relative; }
.wk-toc .wk-ad { margin: 24px 0 0; } /* 목차열 광고: 좌우 여백 0 (300px 슬롯 정확히 수용) */
/* 상세 우측 목차: 내부 스크롤 해제 → 스크롤바가 300px 광고 폭을 잠식하지 않도록(목차 nav 는 항상 짧음) */
.wk-grid--toc .wk-toc { max-height: none; overflow: visible; }

/* 우측 목차: 단축키 목차(.wk-toc*) 클래스 재사용 (동일 사양) */

/* 레퍼런스 카드 (요약·구문·인수) */
.wk-dcard { background: var(--wk-surface); border: 1px solid var(--wk-line); border-radius: 12px; padding: 30px 32px 24px; }
.wk-dhead { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.wk-dtitle { font-size: 20px; font-weight: 700; color: var(--wk-ink); margin: 0; letter-spacing: -0.01em; }
/* 배지: 각진 사각(4px)·중립 헤어라인 — 틴트 필 금지(연두 배경은 AI 생성물 인상) */
.wk-dbadge { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 4px; border: 1px solid var(--wk-line); color: var(--wk-sub); white-space: nowrap; }
.wk-dactions { margin-left: auto; display: flex; align-items: center; gap: 6px; }
/* 예제파일 버튼: 진한 제이드 배경 + 흰 글씨 (a.wk-dbtn — `.wk a{color:inherit}` 와 명시도 동률로 이겨야 함) */
a.wk-dbtn, .wk-dbtn { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 13px; background: var(--wk-jade-600); border: 1px solid var(--wk-jade-600); border-radius: 6px; font-size: 12px; font-weight: 600; color: #FFFFFF; font-family: inherit; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
a.wk-dbtn:hover, .wk-dbtn:hover { background: var(--wk-jade-700); border-color: var(--wk-jade-700); color: #FFFFFF; }
.wk-dsummary { font-size: 14px; color: var(--wk-sub); margin: 0 0 16px; line-height: 1.65; }

/* 구문 카드 (밝은 회색) */
.wk-dsyntax { background: var(--wk-hover-2); border-radius: 8px; padding: 13px 15px; display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.wk-dsyntax code { font-family: var(--wk-mono); font-size: 13px; color: #1F2937; flex: 1; line-height: 1.5; word-break: break-all; }
.wk-dsyntax .wk-opt { color: var(--wk-meta); }
.wk-dcopy { width: 28px; height: 28px; border: none; background: transparent; border-radius: 6px; display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--wk-icon); flex: none; padding: 0; transition: background .15s ease, color .15s ease; }
.wk-dcopy:hover { background: var(--wk-line-2); color: var(--wk-body); }
.wk-dcopy--done { color: var(--wk-jade-600); }

/* 인수 표 */
.wk-dargs { margin-bottom: 16px; }
.wk-darg { display: grid; grid-template-columns: minmax(84px, auto) auto minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 9px 2px; border-top: 1px solid var(--wk-line); font-size: 12px; }
.wk-darg:last-child { border-bottom: 1px solid var(--wk-line); }
.wk-darg-name { font-family: var(--wk-mono); color: #1F2937; }
.wk-darg-req { font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 3px; border: 1px solid var(--wk-jade-600); color: var(--wk-jade-600); justify-self: start; white-space: nowrap; }
.wk-darg-opt { font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 3px; border: 1px solid var(--wk-line); color: var(--wk-meta); justify-self: start; white-space: nowrap; }
.wk-darg-desc { color: var(--wk-sub); line-height: 1.55; }
.wk-darg-detail { display: block; margin-top: 3px; font-size: 11.5px; color: var(--wk-meta); line-height: 1.6; }
/* 관리자 저작 서식 유지 (목록·문단·줄바꿈) */
.wk-darg-detail > *:first-child { margin-top: 0; }
.wk-darg-detail > *:last-child { margin-bottom: 0; }
.wk-darg-detail p { margin: 0 0 5px; }
.wk-darg-detail ul, .wk-darg-detail ol { margin: 0 0 5px; padding-left: 15px; }
.wk-darg-detail ul { list-style: disc; }
.wk-darg-detail ol { list-style: decimal; }
.wk-darg-detail li { margin: 0 0 2px; }
.wk-darg-detail strong, .wk-darg-detail b { font-weight: 600; color: var(--wk-sub); }
.wk-darg-detail code { font-family: var(--wk-mono); font-size: 11px; background: var(--wk-hover-2); border-radius: 3px; padding: 1px 4px; }

/* 하단 메타 (댓글수·수정일·MS 링크) */
.wk-dmeta { display: flex; align-items: center; gap: 14px; border-top: 1px solid var(--wk-line); padding-top: 12px; font-size: 12px; color: var(--wk-meta); flex-wrap: wrap; }
.wk-dmeta-item { display: inline-flex; align-items: center; gap: 5px; }
.wk-dmeta-ms { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; color: var(--wk-sub); }
.wk-dmeta-ms:hover { color: var(--wk-jade-600); }

/* 본문 광고 슬롯 */
.wk-ad { margin: 30px 2px 0; }

/* 학습 섹션 */
.wk-sec { margin: 36px 2px 0; }
.wk-sec-head { display: flex; align-items: baseline; gap: 9px; margin-bottom: 12px; }
.wk-sec-h2 { font-size: 17px; font-weight: 700; color: var(--wk-ink); margin: 0; letter-spacing: -0.01em; }
.wk-sec-sub { font-size: 15px; font-weight: 700; color: var(--wk-ink); margin: 22px 0 8px; }
.wk-sec-head + .wk-sec-sub { margin-top: 4px; } /* 섹션 첫 항목(헤드 직후) 간격 축소 */
.wk-sec-sub .wk-num { color: var(--wk-jade-600); margin-right: 5px; }

/* 자유 본문 프로즈 (ACF 서술 필드 — 관리자 저작 HTML) */
.wk-prose { font-size: 14px; color: var(--wk-body); line-height: 1.8; }
.wk-prose > *:last-child { margin-bottom: 0; }
.wk-prose p { margin: 0 0 14px; }
.wk-prose a { color: var(--wk-jade-600); text-decoration: underline; text-underline-offset: 2px; }
.wk-prose a:hover { color: var(--wk-jade-700); }
.wk-prose strong, .wk-prose b { font-weight: 700; color: var(--wk-ink); }
.wk-prose ul, .wk-prose ol { margin: 0 0 14px; padding-left: 22px; }
.wk-prose li { margin-bottom: 6px; }
.wk-prose img { max-width: 100%; height: auto; border-radius: 8px; border: 1px solid var(--wk-line); margin: 6px 0; cursor: zoom-in; }
.wk-prose hr { border: none; border-top: 1px solid var(--wk-line); margin: 22px 0; }
.wk-prose code { font-family: var(--wk-mono); font-size: 12.5px; background: var(--wk-hover-2); padding: 1px 5px; border-radius: 4px; }
.wk-prose pre { overflow-x: auto; margin: 0 0 14px; font-family: inherit; } /* 본문 코드블록도 기본 폰트 */
/* pre.excel-fx 는 사이트 전역 스타일(다크 코드블록·토큰 컬러·font:inherit) 그대로 사용 — 라이트 배경 override 금지(토큰색 대비 붕괴) */
/* 형광펜(.highlight-yellow)은 전역 style.css 정의(초록 그라데이션)를 그대로 사용 — 위키 override 없음 */
.wk-prose .wp-caption { max-width: 100% !important; }
.wk-prose .wp-caption-text, .wk-prose figcaption { font-size: 12px; color: var(--wk-meta); text-align: center; padding-top: 6px; }

/* 오빠두 팁 콜아웃 (SVG 전구 · 틴트 · 이모지 없음) */
.wk-tip { background: var(--wk-tint); border: 1px solid var(--wk-tint-2); border-radius: 8px; padding: 12px 15px; display: flex; gap: 10px; margin: 16px 0; }
.wk-tip > svg { flex: none; margin-top: 2px; }
.wk-tip-b { min-width: 0; }
.wk-tip-t { font-size: 12px; font-weight: 600; color: var(--wk-jade-900); margin-bottom: 3px; }
.wk-tip-d { font-size: 12.5px; color: var(--wk-jade-700); line-height: 1.6; }

/* 체크리스트 (그 외 주의사항) */
.wk-checks { display: flex; flex-direction: column; gap: 11px; }
.wk-check { display: flex; gap: 10px; font-size: 13.5px; color: var(--wk-body); line-height: 1.7; }
.wk-check > svg { flex: none; margin-top: 3px; color: var(--wk-jade-500); }
.wk-check-b { min-width: 0; }
.wk-check-b p { margin: 0 0 6px; }
.wk-check-b > *:last-child { margin-bottom: 0; }

/* 관련 자료 */
.wk-rel { margin: 44px 2px 0; border-top: 1px solid var(--wk-line); padding-top: 24px; }
.wk-rel-label { font-size: 11px; color: var(--wk-meta); margin-bottom: 10px; }
.wk-rel-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.wk-relchip { font-family: var(--wk-latin); font-size: 12px; font-weight: 600; color: var(--wk-jade-600); padding: 5px 11px; border: 1px solid var(--wk-line); border-radius: 6px; transition: background .15s ease, border-color .15s ease; }
.wk-relchip:hover { background: var(--wk-tint); border-color: var(--wk-tint-2); }
.wk-rel-form { display: flex; align-items: center; gap: 13px; border: 1px solid var(--wk-line); border-radius: 8px; padding: 11px 13px; }
.wk-rel-formico { width: 36px; height: 36px; background: var(--wk-tint); border-radius: 6px; display: flex; align-items: center; justify-content: center; flex: none; }
.wk-rel-formbody { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wk-rel-formt { font-size: 13px; font-weight: 600; color: #1F2937; }
.wk-rel-formd { font-size: 11px; color: var(--wk-meta); }
.wk-rel-more { display: inline-block; margin-top: 8px; font-size: 11.5px; color: var(--wk-sub); }
.wk-rel-more:hover { color: var(--wk-jade-600); }

/* 이전/다음 */
.wk-pn { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 28px 2px 0; }
.wk-pn-card { border: 1px solid var(--wk-line); border-radius: 8px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; transition: border-color .15s ease, background .15s ease; }
.wk-pn-card:hover { border-color: var(--wk-tint-2); background: var(--wk-hover); }
.wk-pn-card--next { align-items: flex-end; text-align: right; }
.wk-pn-label { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--wk-meta); }
.wk-pn-title { font-size: 13px; font-weight: 600; color: #1F2937; }

/* 댓글 섹션 (wpDiscuz 루트) */
.wk-cmt { margin: 40px 2px 0; border-top: 1px solid var(--wk-line); padding-top: 22px; }
.wk-cmt #wpdcom, .wk-cmt #comments, .wk-cmt #respond { max-width: 100%; }

/* =====================================================================
   반응형 · 인쇄
   ===================================================================== */
.wk-toccol { display: none; } /* 목록 페이지 기본: 우측 목차 숨김 (상세 --toc 에서만 노출) */
/* 상세 3열: 중간폭에서 우측 목차·광고 폭 축소 (커뮤니티 1120 브레이크포인트) */
@media (max-width: 1120px) {
  .wk-grid--toc { grid-template-columns: 200px minmax(0, 1fr) 260px; gap: 24px; padding: 24px 28px 48px; }
  .wk-grid--toc[data-collapsed="1"] { grid-template-columns: 48px minmax(0, 1fr) 260px; }
}
@media (max-width: 1023px) {
  .wk-grid, .wk-grid[data-collapsed="1"] { padding: 4px 16px 48px; gap: 0; }
  /* 상세 → 단일 컬럼 (좌 패널·우 목차 숨김, 드로어로 대체) */
  .wk-grid--toc, .wk-grid--toc[data-collapsed="1"] { grid-template-columns: minmax(0, 1fr); padding: 4px 16px 48px; gap: 0; margin: 0; }
  .wk-grid--toc .wk-toccol { display: none; }
  .wk-main { padding-right: 0; }
  .wk-inner { max-width: 100%; }
  .wk-grid--toc .wk-inner { max-width: 100%; }
  .wk-panelcol { display: none; }
  .wk-mbar { display: flex; }
  .wk-fstick { top: 108px; }
  .wk-ktabbar { top: 108px; }
  .wk-seccards { grid-template-columns: 1fr; }
  .wk-rowbadges { display: none; }
  .wk-krow { grid-template-columns: 1fr 120px 120px; gap: 8px; }
  /* 필터 바: 좁은 화면에서 검색란을 칩 아래 전체폭으로 */
  .wk-fbar { flex-wrap: wrap; }
  .wk-fsearch { width: 100%; max-width: 100%; }
  /* 함수 행: 좁은 화면에서 600px 시그니처가 넘치지 않게 세로 스택 */
  body.page-template-page-functions .wk-row { flex-wrap: wrap; gap: 4px; }
  body.page-template-page-functions .wk-sig { flex-basis: 100%; }
  /* 상세 레퍼런스 카드: 모바일 패딩 축소 */
  .wk-dcard { padding: 24px 18px 20px; }
  .wk-pn { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .wk-krow { grid-template-columns: minmax(0, 1fr) auto; }
  .wk-krow--head .wk-kh-mac, .wk-krow .wk-kseq--mac { display: none; }
}
@media print {
  .wk-np, .wk-mbar, .wk-panelcol, .wk-toccol, .oppadu-nav, .site-footer, #wpadminbar { display: none !important; }
  .wk-grid, .wk-grid[data-collapsed="1"] { display: block; padding: 0; }
  .wk-inner { max-width: 100%; }
  .wk-ktabbar { display: none; }
  body { background: #fff; }
}
