@charset "UTF-8";

/*
 * ConductingArchives BookStack theme
 * Extracted from the reviewed bookstack-overview.html source.
 * Functional behavior is implemented separately in the custom theme.
 */
/* =====================================================
   DESIGN TOKENS — 라이트 모드
   ===================================================== */
:root {
  --accent:       #0D4EA6;
  --accent-dark:  #0A3D82;
  --accent-pale:  #EBF2FC;
  --accent-mid:   #3A72C4;
  --accent-glow:  rgba(13, 78, 166, 0.08);

  --gray-50:  #F8F9FB;
  --gray-100: #F1F3F6;
  --gray-200: #E4E7ED;
  --gray-300: #CDD2DB;
  --gray-400: #98A0AE;
  --gray-600: #4A5568;
  --gray-700: #374151;
  --gray-800: #1E2A3A;
  --gray-900: #111827;

  --surface:      #FFFFFF;
  --surface-2:    #F8F9FB;
  --surface-3:    #F1F3F6;

  --radius-sm: 5px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 20px;

  /* 타이포그래피 스케일 */
  --text-xs:   11px;
  --text-sm:   13px;
  --text-base: 15px;
  --text-md:   17px;
  --text-lg:   20px;
  --text-xl:   26px;
  --text-2xl:  34px;

  /* 오선지 패턴용 — 5선 1세트 구조
     선 두께 0.6px, 선 간격 5px, 세트 간 여백 28px
     1세트 높이 = 0.6×5 + 5×4 = 23px
     전체 반복 주기 = 23 + 28 = 51px               */
  --staff-color-light: rgba(13, 78, 166, 0.07);
  --staff-line: 1px;
  --staff-gap:  5px;
  --staff-rest: 26px;
  --staff-cycle: 51px;

  color-scheme: light only;
}

/* =====================================================
   DESIGN TOKENS — 다크 모드
   ===================================================== */
html.dark-mode {
  --dk-bg:          #0F1117;
  --dk-bg-2:        #181C26;
  --dk-bg-3:        #1F2435;
  --dk-bg-4:        #263042;
  --dk-bg-5:        #2E3850;
  --dk-border:      #1E2840;
  --dk-border-2:    #2A3654;
  --dk-text:        #A8B4C8;
  --dk-text-bright: #C8D4E8;
  --dk-text-dim:    #5A6A84;
  --dk-text-faint:  #3D4F6A;
  --dk-accent:      #5b9fdf;
  --dk-accent-bg:   rgba(13, 50, 100, 0.6);

  --staff-color-light: rgba(91, 159, 223, 0.08);

  color-scheme: dark only;
}


/* =====================================================
   BASE
   ===================================================== */
*, *::before, *::after {
  font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 영문/숫자가 주인 요소는 Outfit으로 */
main.content-wrap h1.break-text,
.page-content.clearfix h2 {
  font-family: 'Outfit', 'Noto Sans KR', sans-serif !important;
}

body,
#header.primary-background,
.tri-layout-left,
.tri-layout-right,
main.content-wrap.card,
.card,
.dropdown-menu,
.tri-layout-mobile-tabs,
.tri-layout-mobile-tab {
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease !important;
}

html, body {
  min-height: 100vh;
}

html {
  background-color: var(--gray-50) !important;
}

body {
  background-color: var(--gray-50) !important;
  /* 페이지 로드 시 fade-in */
  animation: bodyFadeIn 0.35s ease forwards;
}

@keyframes bodyFadeIn {
  from { opacity: 0.6; }
  to   { opacity: 1; }
}


/* =====================================================
   FOCUS ACCESSIBILITY
   ===================================================== */
:focus-visible {
  outline: 2.5px solid var(--accent) !important;
  outline-offset: 2px !important;
  border-radius: var(--radius-sm) !important;
}
html.dark-mode :focus-visible {
  outline-color: var(--dk-accent) !important;
}
:focus:not(:focus-visible) {
  outline: none !important;
}


/* =====================================================
   오선지 유틸리티
   5선 1세트 구조: 선 0.6px × 5, 간격 5px, 세트 여백 28px
   전체 주기 51px
   ===================================================== */
.staff-bg {
  background-image: repeating-linear-gradient(
    to bottom,
    /* 1선 */ var(--staff-color-light) 0px,    var(--staff-color-light) 1px,
    transparent 1px,   transparent 6px,
    /* 2선 */ var(--staff-color-light) 6px,    var(--staff-color-light) 7px,
    transparent 7px,   transparent 12px,
    /* 3선 */ var(--staff-color-light) 12px,   var(--staff-color-light) 13px,
    transparent 13px,  transparent 18px,
    /* 4선 */ var(--staff-color-light) 18px,   var(--staff-color-light) 19px,
    transparent 19px,  transparent 24px,
    /* 5선 */ var(--staff-color-light) 24px,   var(--staff-color-light) 25px,
    /* 세트 사이 여백 → 다음 세트 시작 var(--staff-cycle) */
    transparent 25px,  transparent var(--staff-cycle)
  ) !important;
  background-repeat: repeat-y !important;
  background-position: center top !important;
  background-size: 800px var(--staff-cycle) !important;
}

@media screen and (max-width: 840px) {
  .staff-bg {
    background-size: calc(100% - 40px) var(--staff-cycle) !important;
  }
}


/* =====================================================
   HEADER
   v2.1: overflow: hidden 제거 → ::before를 clip으로 처리
         헤더가 아예 안 보이던 버그 수정
   ===================================================== */
#header.primary-background {
  background-color: rgba(255, 255, 255, 0.82) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-bottom: 2px solid var(--accent) !important;
  box-shadow: 0 4px 24px rgba(13, 78, 166, 0.04) !important;
  position: relative !important;
  z-index: 100 !important;
  /* overflow: hidden 제거 — 드롭다운 등이 잘리지 않도록 */
}

/* 헤더에 희미한 오선지 — 5선 1세트, clip-path로 경계 처리 */
#header.primary-background::before {
  content: '\1D11E' !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 58px !important;
  line-height: 1 !important;
  color: var(--staff-color-light) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-left: 16px !important;
  padding-bottom: 5px !important; /* 오선 0.8칸(약 4.8px) 위로 이동 */
  position: absolute !important;
  inset: 0 !important;
  animation: watermarkPulse 6s ease-in-out infinite alternate !important;
  background-image: repeating-linear-gradient(
    to bottom,
    var(--staff-color-light) 0px,    var(--staff-color-light) 1px,
    transparent 1px,   transparent 7px,
    var(--staff-color-light) 7px,    var(--staff-color-light) 8px,
    transparent 8px,   transparent 14px,
    var(--staff-color-light) 14px,   var(--staff-color-light) 15px,
    transparent 15px,  transparent 21px,
    var(--staff-color-light) 21px,   var(--staff-color-light) 22px,
    transparent 22px,  transparent 28px,
    var(--staff-color-light) 28px,   var(--staff-color-light) 29px
  ) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 100% 29px !important;
  pointer-events: none !important;
  z-index: 0 !important;
  clip-path: inset(0) !important;
}

@keyframes watermarkPulse {
  0% { opacity: 0.75; transform: scale(1.0); }
  100% { opacity: 1.0; transform: scale(1.02); }
}

#header > * {
  position: relative !important;
  z-index: 1 !important;
}

#header .logo-text {
  color: var(--accent) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: -0.5px !important;
  font-family: 'Outfit', 'Noto Sans KR', sans-serif !important;
}

#header .mobile-menu-toggle {
  color: var(--accent) !important;
}
#header .mobile-menu-toggle .svg-icon {
  fill: currentColor !important;
}
html.dark-mode #header .mobile-menu-toggle {
  color: var(--dk-text-bright) !important;
}

#header .logo-image {
  height: 36px !important;
  width: auto !important;
}

/* PC 화면에서 로고와 제목을 약간 오른쪽으로 이동 */
@media screen and (min-width: 840px) {
  #header a.logo {
    margin-left: 24px !important;
    transition: transform 0.2s ease !important;
  }
  #header a.logo:hover {
    transform: scale(1.02) !important;
  }
}

#header .header-links .links a {
  color: var(--gray-600) !important;
  font-size: var(--text-sm) !important;
  font-weight: 500 !important;
  transition: color 0.15s ease, transform 0.15s ease !important;
  letter-spacing: 0.1px !important;
}
#header .header-links .links a:hover {
  color: var(--accent) !important;
  transform: translateY(-1.5px) !important;
}
#header .header-links .links a .svg-icon {
  fill: var(--gray-400) !important;
  transition: fill 0.15s ease !important;
}
#header .header-links .links a:hover .svg-icon {
  fill: var(--accent) !important;
}

#header button.user-name {
  color: var(--gray-800) !important;
  font-size: var(--text-sm) !important;
  font-weight: 500 !important;
  transition: color 0.15s ease, transform 0.15s ease !important;
}
#header button.user-name:hover {
  color: var(--accent) !important;
  transform: translateY(-0.5px) !important;
}

#header hr.primary-background {
  background-color: var(--gray-200) !important;
  border: none !important;
  height: 1px !important;
}


/* =====================================================
   SEARCH BOX
   ===================================================== */
#header .search-box {
  background: var(--gray-100) !important;
  border: 1.5px solid var(--gray-200) !important;
  border-radius: 22px !important;
  transition: border-color 0.18s, background 0.18s, box-shadow 0.18s !important;
}
#header .search-box:focus-within {
  background: var(--surface) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3.5px rgba(13,78,166,0.10) !important;
}
#header .search-box input {
  font-size: var(--text-sm) !important;
  color: var(--gray-900) !important;
  background: transparent !important;
  letter-spacing: 0.1px !important;
}
#header .search-box .svg-icon {
  fill: var(--gray-400) !important;
}
#header .global-search-suggestions.card {
  border: 1px solid var(--gray-200) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 8px 24px rgba(13,78,166,0.08), 0 2px 8px rgba(0,0,0,0.06) !important;
}


/* =====================================================
   DROPDOWN MENU
   ===================================================== */
.dropdown-menu {
  border: 1px solid var(--gray-200) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 8px 24px rgba(13,78,166,0.08), 0 2px 8px rgba(0,0,0,0.06) !important;
  padding: 5px !important;
  animation: dropdownIn 0.18s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  transform-origin: top center !important;
}
@keyframes dropdownIn {
  from { opacity: 0; transform: translateY(-6px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.dropdown-menu .icon-item {
  border-radius: var(--radius-sm) !important;
  font-size: var(--text-sm) !important;
  color: var(--gray-800) !important;
  transition: background 0.12s, color 0.12s !important;
}
.dropdown-menu .icon-item:hover {
  background: var(--accent-pale) !important;
  color: var(--accent) !important;
}
.dropdown-menu .icon-item .svg-icon {
  fill: var(--gray-400) !important;
  transition: fill 0.12s !important;
}
.dropdown-menu .icon-item:hover .svg-icon {
  fill: var(--accent) !important;
}
.dropdown-menu hr {
  border-color: var(--gray-100) !important;
  margin: 4px 0 !important;
}


/* =====================================================
   TRI-LAYOUT 좌측 사이드바
   ===================================================== */
.tri-layout-left {
  background: var(--surface) !important;
  border-right: 1px solid var(--gray-200) !important;
}

.tri-layout-left-contents h5 {
  font-size: var(--text-xs) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  color: var(--gray-400) !important;
}

.tri-layout-left-contents .entity-meta-item {
  font-size: var(--text-sm) !important;
  color: var(--gray-600) !important;
}
.tri-layout-left-contents .entity-meta-item a {
  color: var(--accent-mid) !important;
}
.tri-layout-left-contents .entity-meta-item .svg-icon {
  fill: var(--gray-300) !important;
}

.activity-list-item {
  border-bottom: 1px solid var(--gray-100) !important;
  padding: 10px 0 !important;
  font-size: var(--text-sm) !important;
  color: var(--gray-600) !important;
}
.activity-list-item a {
  color: var(--accent-mid) !important;
}
.activity-list-item .text-muted {
  color: var(--gray-400) !important;
  font-size: var(--text-xs) !important;
}


/* =====================================================
   TRI-LAYOUT 우측 사이드바 (액션)
   ===================================================== */
.tri-layout-right {
  background: var(--gray-50) !important;
  border-left: 1px solid var(--gray-200) !important;
}

.tri-layout-right-contents h5 {
  font-size: var(--text-xs) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  color: var(--accent) !important;
}

#actions .icon-list-item {
  border-radius: var(--radius-sm) !important;
  font-size: var(--text-sm) !important;
  color: var(--gray-600) !important;
  padding: 7px 10px !important;
  transition: background 0.14s, color 0.14s, padding-left 0.14s !important;
}
#actions .icon-list-item:hover {
  background: var(--accent-pale) !important;
  color: var(--accent) !important;
  padding-left: 14px !important;
}
#actions .icon-list-item .svg-icon {
  fill: var(--gray-400) !important;
  transition: fill 0.14s !important;
}
#actions .icon-list-item:hover .svg-icon {
  fill: var(--accent) !important;
}
#actions hr.primary-background {
  background-color: var(--gray-200) !important;
  border: none !important;
  height: 1px !important;
  margin: 6px 0 !important;
}


/* =====================================================
   브레드크럼
   ===================================================== */
nav.breadcrumbs {
  font-size: var(--text-sm) !important;
}
nav.breadcrumbs .icon-list-item {
  color: var(--accent-mid) !important;
  font-size: var(--text-sm) !important;
  font-weight: 500 !important;
  transition: color 0.14s !important;
}
nav.breadcrumbs .icon-list-item:hover {
  color: var(--accent) !important;
}
nav.breadcrumbs .svg-icon {
  fill: var(--gray-300) !important;
}


/* =====================================================
   홈 그리드 카드
   ===================================================== */
a.grid-card {
  background: var(--surface) !important;
  border: 1px solid var(--gray-200) !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  transition:
    box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1),
    transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1),
    border-color 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.02) !important;

  /* 카드 등장 애니메이션 */
  animation: cardReveal 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both !important;
}

/* 그리드 내 카드들 순차 등장 */
.grid.third a.grid-card:nth-child(1) { animation-delay: 0.05s !important; }
.grid.third a.grid-card:nth-child(2) { animation-delay: 0.10s !important; }
.grid.third a.grid-card:nth-child(3) { animation-delay: 0.15s !important; }
.grid.third a.grid-card:nth-child(4) { animation-delay: 0.20s !important; }
.grid.third a.grid-card:nth-child(5) { animation-delay: 0.25s !important; }
.grid.third a.grid-card:nth-child(6) { animation-delay: 0.30s !important; }

@keyframes cardReveal {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}


a.grid-card:hover {
  box-shadow:
    0 16px 36px rgba(13, 78, 166, 0.12),
    0 4px 10px rgba(0,0,0,0.03) !important;
  transform: translateY(-6px) scale(1.005) !important;
  border-color: var(--accent) !important;
}

/* 카드 상단 컬러 영역 — 오선지 패턴 적용 */
a.grid-card .bg-book.featured-image-container-wrap {
  background: var(--accent) !important;
  position: relative !important;
  overflow: hidden !important;
}

/* 카드 상단에 오선지 패턴 */
a.grid-card .bg-book.featured-image-container-wrap::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 8px,
    rgba(255,255,255,0.12) 8px,
    rgba(255,255,255,0.12) 8.5px
  ) !important;
  pointer-events: none !important;
}

/* 카드 상단에 음표 장식 (after pseudo) */
a.grid-card .bg-book.featured-image-container-wrap::after {
  content: '𝄞' !important;
  position: absolute !important;
  bottom: 6px !important;
  right: 12px !important;
  font-size: 28px !important;
  color: rgba(255,255,255,0.18) !important;
  font-family: serif !important;
  pointer-events: none !important;
  line-height: 1 !important;
}

a.grid-card .bg-book .svg-icon {
  fill: rgba(255,255,255,0.6) !important;
  position: relative !important;
  z-index: 1 !important;
}

a.grid-card .grid-card-content {
  padding: 16px 18px 12px !important;
}

a.grid-card .grid-card-content h2 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--gray-900) !important;
  line-height: 1.45 !important;
  letter-spacing: -0.2px !important;
}

a.grid-card .grid-card-content p.text-muted {
  font-size: var(--text-sm) !important;
  color: var(--gray-400) !important;
  line-height: 1.55 !important;
  margin-top: 5px !important;
}

a.grid-card .grid-card-footer {
  border-top: 1px solid var(--gray-100) !important;
  font-size: 12px !important;
  color: var(--gray-400) !important;
  padding: 10px 18px !important;
}
a.grid-card .grid-card-footer .svg-icon {
  fill: var(--gray-300) !important;
}


/* =====================================================
   홈 카드 섹션 (최근 문서 등)
   ===================================================== */
.card {
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--gray-200) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04) !important;
  animation: cardReveal 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) both !important;
}

.card-title {
  font-size: var(--text-sm) !important;
  font-weight: 700 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  color: var(--gray-400) !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--gray-100) !important;
  /* 카드 제목 왼쪽에 음악 기호 포인트 */
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.card-title::before {
  content: '♩' !important;
  font-family: serif !important;
  font-size: 14px !important;
  color: var(--accent) !important;
  opacity: 0.5 !important;
  font-style: normal !important;
}

.card-footer-link,
button.card-footer-link {
  border-top: 1px solid var(--gray-100) !important;
  color: var(--accent-mid) !important;
  font-size: var(--text-sm) !important;
  font-weight: 500 !important;
  transition: background 0.14s, color 0.14s !important;
}
.card-footer-link:hover,
button.card-footer-link:hover {
  background: var(--accent-pale) !important;
  color: var(--accent) !important;
}

/* 엔티티 리스트 항목 */
.entity-list-item {
  transition: background 0.13s, padding-left 0.13s !important;
  border-radius: var(--radius-sm) !important;
}
.entity-list-item:not(.no-hover):hover {
  background: var(--accent-glow) !important;
  padding-left: 14px !important;
}

.entity-list-item-name {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--gray-900) !important;
  letter-spacing: -0.1px !important;
}

.entity-item-snippet {
  font-size: var(--text-sm) !important;
  color: var(--gray-400) !important;
  line-height: 1.5 !important;
}


/* =====================================================
   본문 카드
   ===================================================== */
main.content-wrap.card {
  border: 1px solid var(--gray-200) !important;
  border-radius: var(--radius-xl) !important;
  box-shadow: 0 2px 12px rgba(13,78,166,0.05), 0 1px 4px rgba(0,0,0,0.04) !important;
}

/* 페이지 제목 — Outfit으로 모던함 더함 */
main.content-wrap h1.break-text {
  font-size: 28px !important;
  font-weight: 600 !important;
  color: var(--gray-900) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.5px !important;
  font-style: normal !important;
  /* 제목 아래 미묘한 오선지 라인 장식 */
  padding-bottom: 18px !important;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent calc(100% - 12px),
    var(--staff-color-light) calc(100% - 12px),
    var(--staff-color-light) calc(100% - 11.4px),
    transparent calc(100% - 11.4px),
    transparent calc(100% - 7px),
    var(--staff-color-light) calc(100% - 7px),
    var(--staff-color-light) calc(100% - 6.4px),
    transparent calc(100% - 6.4px),
    transparent calc(100% - 2px),
    var(--staff-color-light) calc(100% - 2px),
    var(--staff-color-light) calc(100% - 1.4px)
  ) !important;
}


/* =====================================================
   본문 콘텐츠
   ===================================================== */
.page-content.clearfix {
  font-size: var(--text-base) !important;
  line-height: 1.85 !important;
  color: var(--gray-800) !important;
  letter-spacing: 0.05px !important;
}

.page-content.clearfix h1,
.page-content.clearfix h2,
.page-content.clearfix h3 {
  font-weight: 700 !important;
  color: var(--gray-900) !important;
  letter-spacing: -0.3px !important;
}

/* h2 — Outfit + 오선지 장식선 */
/* h2 — 미니멀 아카데믹 박스 스타일 */
.page-content.clearfix h2 {
  font-size: 20px !important;
  font-weight: 600 !important;
  font-style: normal !important; /* 이탤릭 해제 */
  margin-top: 2.2em !important;
  margin-bottom: 1.2em !important;
  padding: 10px 16px !important;
  position: relative !important;
  color: var(--gray-900) !important;
  background: rgba(13, 78, 166, 0.03) !important; /* 은은한 포인트 청색광 배경 */
  border-left: 4px solid var(--accent) !important; /* 왼쪽 굵은 파란색 바 */
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0 !important; /* 오른쪽 모서리만 둥글게 */
  border-bottom: none !important;
}

.page-content.clearfix h2::after {
  display: none !important;
}

.page-content.clearfix h3 {
  font-size: 17px !important;
  color: var(--accent) !important;
  font-weight: 600 !important;
  padding-left: 12px !important;
  border-left: 3px solid var(--accent) !important;
  margin-top: 1.8em !important;
}

.page-content.clearfix h4 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--gray-800) !important;
  padding-left: 8px !important;
  border-left: 2px solid var(--accent) !important;
  margin-top: 1.6em !important;
  margin-bottom: 0.8em !important;
}

.page-content.clearfix img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--gray-200) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
  transition: box-shadow 0.2s, transform 0.2s !important;
}
.page-content.clearfix img:hover {
  box-shadow: 0 6px 24px rgba(13,78,166,0.10) !important;
  transform: scale(1.005) !important;
}

/* 표 */
.page-content.clearfix table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05) !important;
}
.page-content.clearfix table th {
  background: var(--accent) !important;
  color: #fff !important;
  padding: 11px 16px !important;
  font-weight: 600 !important;
  text-align: left !important;
  font-size: 13px !important;
  letter-spacing: 0.2px !important;
}
.page-content.clearfix table td {
  padding: 10px 16px !important;
  border-bottom: 1px solid var(--gray-100) !important;
  color: var(--gray-800) !important;
  transition: background 0.12s !important;
}
.page-content.clearfix table tr:hover td {
  background: var(--accent-pale) !important;
}

/* 인용구 */
.page-content.clearfix blockquote {
  border-left: 3px solid var(--accent) !important;
  background: var(--accent-pale) !important;
  border-radius: 0 var(--radius-md) var(--radius-md) 0 !important;
  padding: 14px 20px !important;
  margin: 18px 0 !important;
  color: var(--gray-700) !important;
  font-style: normal !important;
  position: relative !important;
}
.page-content.clearfix blockquote::before {
  content: '"' !important;
  position: absolute !important;
  top: -4px !important;
  left: 14px !important;
  font-size: 42px !important;
  color: var(--accent) !important;
  opacity: 0.15 !important;
  font-family: 'Outfit', Georgia, serif !important;
  line-height: 1 !important;
}

/* 코드 */
.page-content.clearfix pre,
.page-content.clearfix code {
  background: var(--gray-100) !important;
  border: 1px solid var(--gray-200) !important;
  border-radius: var(--radius-sm) !important;
  font-size: var(--text-sm) !important;
}


/* =====================================================
   버튼
   ===================================================== */
.button.primary {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
  border-radius: var(--radius-md) !important;
  font-weight: 600 !important;
  font-size: var(--text-sm) !important;
  transition: background 0.15s, box-shadow 0.15s, transform 0.15s !important;
}
.button.primary:hover {
  background: var(--accent-dark) !important;
  border-color: var(--accent-dark) !important;
  box-shadow: 0 4px 14px rgba(13,78,166,0.25) !important;
  transform: translateY(-1px) !important;
}
.button.outline {
  border-radius: var(--radius-md) !important;
  border-color: var(--gray-200) !important;
  color: var(--gray-700) !important;
  font-size: var(--text-sm) !important;
  transition: border-color 0.15s, color 0.15s, box-shadow 0.15s !important;
}
.button.outline:hover {
  border-color: var(--accent) !important;
  color: var(--accent) !important;
  box-shadow: 0 0 0 3px var(--accent-pale) !important;
}


/* =====================================================
   목차 사이드바 (페이지 내비)
   ===================================================== */
.sidebar-page-nav::after {
  background-color: var(--gray-200) !important;
}
.sidebar-page-nav li:not(.current-heading) .sidebar-page-nav-bullet {
  background-color: var(--gray-300) !important;
}
.sidebar-page-nav .sidebar-page-nav-bullet {
  box-shadow: #fff 0px 0px 0px 5px !important;
  transition: background-color 0.2s, transform 0.2s !important;
}

/* 활성 목차 항목 */
.sidebar-page-nav li.current-heading > a,
.sidebar-page-nav li.current-heading > span {
  color: var(--accent) !important;
  font-weight: 600 !important;
}
.sidebar-page-nav li.current-heading .sidebar-page-nav-bullet {
  background-color: var(--accent) !important;
  box-shadow: #fff 0px 0px 0px 5px !important;
  transform: scale(1.3) !important;
}


/* =====================================================
   모바일 탭
   ===================================================== */
.tri-layout-mobile-tabs {
  background: var(--surface) !important;
  border-bottom: 1px solid var(--gray-200) !important;
}
.tri-layout-mobile-tab {
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: var(--gray-600) !important;
  transition: color 0.15s !important;
}
.tri-layout-mobile-tab.active {
  color: var(--accent) !important;
  border-bottom: 2.5px solid var(--accent) !important;
}


/* =====================================================
   태그
   ===================================================== */
.tag-item {
  border-radius: 20px !important;
  border: 1px solid var(--gray-200) !important;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease !important;
  font-size: 12px !important;
}
.tag-item:hover {
  border-color: var(--accent) !important;
  background: var(--accent-pale) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 6px rgba(13, 78, 166, 0.08) !important;
}


/* =====================================================
   페이지네이션
   ===================================================== */
ul.pagination a,
ul.pagination span {
  border-radius: var(--radius-sm) !important;
  transition: background 0.13s, color 0.13s !important;
}
ul.pagination li.active span {
  background-color: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}


/* =====================================================
   DARK MODE
   ===================================================== */

html.dark-mode {
  background-color: var(--dk-bg) !important;
}

html.dark-mode body {
  background-color: var(--dk-bg) !important;
  color: var(--dk-text) !important;
}

html.dark-mode h1,
html.dark-mode h2,
html.dark-mode h3,
html.dark-mode h4,
html.dark-mode h5,
html.dark-mode h6 {
  color: var(--dk-text-bright) !important;
}

html.dark-mode hr { background: var(--dk-border) !important; }
html.dark-mode hr.darker { background: var(--dk-border-2) !important; }

/* ── 헤더 ── */
html.dark-mode #header.primary-background {
  background-color: rgba(24, 28, 38, 0.82) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-bottom-color: var(--dk-accent) !important;
  box-shadow: 0 4px 30px rgba(0,0,0,0.3) !important;
}
html.dark-mode #header.primary-background::before {
  background-image: repeating-linear-gradient(
    to bottom,
    var(--staff-color-light) 0px,    var(--staff-color-light) 0.6px,
    transparent 0.6px,  transparent 5.6px,
    var(--staff-color-light) 5.6px,  var(--staff-color-light) 6.2px,
    transparent 6.2px,  transparent 11.2px,
    var(--staff-color-light) 11.2px, var(--staff-color-light) 11.8px,
    transparent 11.8px, transparent 16.8px,
    var(--staff-color-light) 16.8px, var(--staff-color-light) 17.4px,
    transparent 17.4px, transparent 22.4px,
    var(--staff-color-light) 22.4px, var(--staff-color-light) 23px,
    transparent 23px,   transparent var(--staff-cycle)
  ) !important;
}
html.dark-mode #header .logo-text {
  color: var(--dk-accent) !important;
}
html.dark-mode #header .header-links .links a {
  color: var(--dk-text) !important;
}
html.dark-mode #header .header-links .links a:hover {
  color: var(--dk-accent) !important;
  transform: translateY(-1.5px) !important;
}
html.dark-mode #header .header-links .links a .svg-icon {
  fill: var(--dk-text-dim) !important;
}
html.dark-mode #header .header-links .links a:hover .svg-icon {
  fill: var(--dk-accent) !important;
}
html.dark-mode #header button.user-name {
  color: var(--dk-text) !important;
  font-size: var(--text-sm) !important;
  font-weight: 500 !important;
}
html.dark-mode #header button.user-name:hover {
  color: var(--dk-accent) !important;
  transform: translateY(-0.5px) !important;
}
html.dark-mode #header hr.primary-background {
  background-color: var(--dk-border) !important;
}

/* ── 검색창 ── */
html.dark-mode #header .search-box {
  background: var(--dk-bg-4) !important;
  border-color: var(--dk-border-2) !important;
}
html.dark-mode #header .search-box:focus-within {
  background: var(--dk-bg-5) !important;
  border-color: var(--dk-accent) !important;
  box-shadow: 0 0 0 3.5px rgba(91,159,223,0.15) !important;
}
html.dark-mode #header .search-box input {
  color: var(--dk-text-bright) !important;
}
html.dark-mode #header .search-box .svg-icon {
  fill: var(--dk-text-dim) !important;
}
html.dark-mode header .search-box.search-active:focus-within input {
  background-color: var(--dk-bg-5) !important;
  border-color: rgb(17,17,17) !important;
  color: var(--dk-text) !important;
}
html.dark-mode #header .global-search-suggestions.card {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-border) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
}
html.dark-mode #header-search-box-button {
  color: var(--dk-text) !important;
}

/* ── 드롭다운 ── */
html.dark-mode .dropdown-menu {
  background-color: var(--dk-bg-5) !important;
  border-color: var(--dk-border-2) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.55) !important;
}
html.dark-mode .dropdown-menu .icon-item,
html.dark-mode .dropdown-menu .text-item,
html.dark-mode .dropdown-menu .label-item {
  color: var(--dk-text-bright) !important;
}
html.dark-mode .dropdown-menu .icon-item:hover {
  background: rgba(91,159,223,0.1) !important;
  color: var(--dk-accent) !important;
}
html.dark-mode .dropdown-menu .icon-item .svg-icon {
  fill: var(--dk-text-dim) !important;
}
html.dark-mode .dropdown-menu .icon-item:hover .svg-icon {
  fill: var(--dk-accent) !important;
}
html.dark-mode .dropdown-menu hr {
  border-color: var(--dk-border) !important;
}

/* ── 좌측 사이드바 ── */
html.dark-mode .tri-layout-left {
  background: var(--dk-bg-2) !important;
  border-right-color: var(--dk-border) !important;
}
html.dark-mode .tri-layout-left-contents h5 {
  color: var(--dk-text-dim) !important;
}
html.dark-mode .tri-layout-left-contents .entity-meta-item {
  color: var(--dk-text) !important;
}
html.dark-mode .tri-layout-left-contents .entity-meta-item a {
  color: var(--dk-accent) !important;
}
html.dark-mode .tri-layout-left-contents .entity-meta-item .svg-icon {
  fill: var(--dk-text-faint) !important;
}
html.dark-mode .activity-list-item {
  border-bottom-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
html.dark-mode .activity-list-item a {
  color: var(--dk-accent) !important;
}
html.dark-mode .activity-list-item .text-muted {
  color: var(--dk-text-dim) !important;
}

/* ── 우측 사이드바 ── */
html.dark-mode .tri-layout-right {
  background: var(--dk-bg-2) !important;
  border-left-color: var(--dk-border) !important;
}
html.dark-mode .tri-layout-right-contents h5 {
  color: var(--dk-accent) !important;
}
html.dark-mode #actions .icon-list-item {
  color: var(--dk-text) !important;
}
html.dark-mode #actions .icon-list-item:hover {
  background: rgba(91,159,223,0.08) !important;
  color: var(--dk-accent) !important;
}
html.dark-mode #actions .icon-list-item .svg-icon {
  fill: var(--dk-text-dim) !important;
}
html.dark-mode #actions .icon-list-item:hover .svg-icon {
  fill: var(--dk-accent) !important;
}
html.dark-mode #actions hr.primary-background {
  background-color: var(--dk-border) !important;
}

/* ── 사이드바 opacity ── */
@media screen and (min-width: 1001px) {
  html.dark-mode .tri-layout-left-contents > *,
  html.dark-mode .tri-layout-right-contents > * {
    opacity: 0.8;
    transition: opacity 0.2s;
  }
  html.dark-mode .tri-layout-left-contents:hover > *,
  html.dark-mode .tri-layout-right-contents:hover > * {
    opacity: 1;
  }
}

/* ── 브레드크럼 ── */
html.dark-mode nav.breadcrumbs .icon-list-item {
  color: var(--dk-accent) !important;
}
html.dark-mode nav.breadcrumbs .icon-list-item:hover {
  color: #90c4f0 !important;
}
html.dark-mode nav.breadcrumbs .svg-icon {
  fill: var(--dk-text-faint) !important;
}

/* ── 그리드 카드 ── */
html.dark-mode a.grid-card {
  background: var(--dk-bg-3) !important;
  border-color: var(--dk-border) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}
html.dark-mode a.grid-card:hover {
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.55), 0 2px 10px rgba(0, 0, 0, 0.3) !important;
  border-color: rgba(91, 159, 223, 0.3) !important;
}
html.dark-mode a.grid-card .bg-book.featured-image-container-wrap {
  background: var(--dk-accent-bg) !important;
}
html.dark-mode a.grid-card .bg-book .svg-icon,
html.dark-mode .featured-image-container-wrap .svg-icon {
  fill: rgba(255,255,255,0.55) !important;
}
html.dark-mode a.grid-card .grid-card-content h2 {
  color: var(--dk-text-bright) !important;
}
html.dark-mode a.grid-card .grid-card-content p.text-muted {
  color: var(--dk-text-dim) !important;
}
html.dark-mode a.grid-card .grid-card-footer {
  border-top-color: var(--dk-border) !important;
  color: var(--dk-text-dim) !important;
}
html.dark-mode a.grid-card .grid-card-footer .svg-icon {
  fill: var(--dk-text-faint) !important;
}

/* ── 카드 공통 ── */
html.dark-mode .card {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-border) !important;
}
html.dark-mode .card .card-title {
  color: var(--dk-text) !important;
  border-bottom-color: var(--dk-border) !important;
}
html.dark-mode .card .card-title::before {
  color: var(--dk-accent) !important;
}
html.dark-mode .card-footer-link,
html.dark-mode button.card-footer-link {
  border-color: var(--dk-border) !important;
  color: var(--dk-accent) !important;
}
html.dark-mode .card-footer-link:hover,
html.dark-mode button.card-footer-link:hover {
  background-color: rgba(91,159,223,0.08) !important;
}
html.dark-mode .card.border-card {
  border-color: var(--dk-border) !important;
}
html.dark-mode .card.drag-card {
  border-color: var(--dk-border) !important;
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .card.drag-card .handle:hover,
html.dark-mode .card.drag-card .drag-card-action:hover {
  background-color: rgb(45,45,45) !important;
}
html.dark-mode .card.drag-card .handle {
  background-color: rgb(45,45,45) !important;
}
html.dark-mode .grid-card {
  border-color: var(--dk-border) !important;
}
html.dark-mode .sub-card {
  border-color: var(--dk-border-2) !important;
}

/* ── 엔티티 리스트 ── */
html.dark-mode .entity-list-item-name {
  color: var(--dk-text-bright) !important;
}
html.dark-mode .entity-list-item:not(.no-hover):hover,
html.dark-mode .icon-list-item:not(.no-hover):hover {
  background-color: rgba(91,159,223,0.07) !important;
}
html.dark-mode .entity-list-item:focus,
html.dark-mode .icon-list-item:focus {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .split-icon-list-item:hover {
  background-color: rgba(255,255,255,0.06) !important;
}
html.dark-mode .icon-list-item-dropdown-toggle {
  color: rgb(153,153,153) !important;
}
html.dark-mode .icon-list-item-dropdown-toggle:hover {
  background-color: rgba(255,255,255,0.06) !important;
}
html.dark-mode .entity-list-item-image .svg-icon {
  color: rgba(255,255,255,0.55) !important;
}

/* ── 본문 카드 ── */
html.dark-mode main.content-wrap.card {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-border) !important;
  box-shadow: none !important;
}
html.dark-mode main.content-wrap h1.break-text {
  color: var(--dk-text-bright) !important;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent calc(100% - 12px),
    var(--staff-color-light) calc(100% - 12px),
    var(--staff-color-light) calc(100% - 11.4px),
    transparent calc(100% - 11.4px),
    transparent calc(100% - 7px),
    var(--staff-color-light) calc(100% - 7px),
    var(--staff-color-light) calc(100% - 6.4px),
    transparent calc(100% - 6.4px),
    transparent calc(100% - 2px),
    var(--staff-color-light) calc(100% - 2px),
    var(--staff-color-light) calc(100% - 1.4px)
  ) !important;
}

/* ── 본문 콘텐츠 ── */
html.dark-mode .page-content.clearfix {
  color: var(--dk-text) !important;
}
html.dark-mode .page-content.clearfix h1,
html.dark-mode .page-content.clearfix h3 {
  color: var(--dk-text-bright) !important;
}
html.dark-mode .page-content.clearfix h2 {
  color: var(--dk-text-bright) !important;
  background: var(--dk-bg-2) !important;
  border: 1px solid var(--dk-border) !important;
  border-left: 4px solid var(--dk-accent) !important;
}
html.dark-mode .page-content.clearfix h2::after {
  display: none !important;
}
html.dark-mode .page-content.clearfix h3 {
  color: var(--dk-accent) !important;
  border-left-color: var(--dk-accent) !important;
}
html.dark-mode .page-content.clearfix h4 {
  color: var(--dk-text-bright) !important;
  border-left-color: var(--dk-accent) !important;
}
html.dark-mode .page-content.clearfix img {
  border-color: var(--dk-border-2) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3) !important;
}
html.dark-mode .page-content.clearfix table th {
  background: var(--dk-accent-bg) !important;
  color: var(--dk-text-bright) !important;
}
html.dark-mode .page-content.clearfix table td {
  border-bottom-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
html.dark-mode .page-content.clearfix table tr:hover td {
  background: rgba(91,159,223,0.06) !important;
}
html.dark-mode table:not(:has(thead)) th,
html.dark-mode table thead {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode table.table tr:hover {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .page-content.clearfix blockquote {
  border-left-color: var(--dk-accent) !important;
  background: rgba(13,50,100,0.35) !important;
  color: var(--dk-text) !important;
}
html.dark-mode .page-content.clearfix blockquote::before {
  color: var(--dk-accent) !important;
}
html.dark-mode blockquote {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .page-content.clearfix pre,
html.dark-mode .page-content.clearfix code {
  background: var(--dk-bg-4) !important;
  border-color: var(--dk-border-2) !important;
  color: var(--dk-text) !important;
}
html.dark-mode pre {
  background-color: var(--dk-bg-4) !important;
  border-color: var(--dk-border) !important;
}
html.dark-mode pre::before {
  background-color: var(--dk-bg-5) !important;
  border-inline-end: none !important;
}
html.dark-mode .code-base,
html.dark-mode span.code,
html.dark-mode code {
  background-color: var(--dk-bg-4) !important;
  border-color: var(--dk-border-2) !important;
}

/* ── callout ── */
html.dark-mode .page-content details {
  border-color: var(--dk-text-faint) !important;
}
html.dark-mode .page-content details > summary {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .page-content details[open] > summary {
  border-color: var(--dk-text-faint) !important;
}
html.dark-mode .callout.success {
  border-color: rgb(74,168,80) !important;
  background-color: rgb(18,41,19) !important;
  color: rgb(74,168,80) !important;
}
html.dark-mode .callout.danger {
  border-color: rgb(232,92,91) !important;
  background-color: rgb(37,5,5) !important;
  color: rgb(232,92,91) !important;
}
html.dark-mode .callout.info {
  border-color: rgb(2,136,209) !important;
  background-color: rgb(0,24,37) !important;
  color: rgb(2,136,209) !important;
}
html.dark-mode .callout.warning {
  border-color: rgb(222,138,90) !important;
  background-color: rgb(48,23,10) !important;
  color: rgb(222,138,90) !important;
}

/* ── 버튼 ── */
html.dark-mode .button:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,0.45) !important;
}
html.dark-mode .button.outline {
  color: var(--dk-text) !important;
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .button.outline:hover,
html.dark-mode .button.outline:focus,
html.dark-mode .button.outline:active {
  color: var(--dk-accent) !important;
  background-color: rgba(91,159,223,0.08) !important;
  border-color: var(--dk-accent) !important;
}
html.dark-mode .icon-button:hover {
  border-color: var(--dk-border-2) !important;
}

/* ── 입력 폼 ── */
html.dark-mode .input-base,
html.dark-mode input[type="text"],
html.dark-mode input[type="number"],
html.dark-mode input[type="email"],
html.dark-mode input[type="date"],
html.dark-mode input[type="search"],
html.dark-mode input[type="url"],
html.dark-mode input[type="color"],
html.dark-mode input[type="password"],
html.dark-mode select,
html.dark-mode textarea,
html.dark-mode .fake-input {
  background-color: var(--dk-bg-5) !important;
  border-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
html.dark-mode label {
  color: var(--dk-text-bright) !important;
}
html.dark-mode .setting-list-label {
  color: var(--dk-text-bright) !important;
}
html.dark-mode .form-group.collapsible {
  border-color: var(--dk-border) !important;
}

/* ── 태그 ── */
html.dark-mode .tag-item {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .tag-item a,
html.dark-mode .tag-item span,
html.dark-mode .tag-item a:hover,
html.dark-mode .tag-item a:active {
  color: rgba(255,255,255,0.75) !important;
}
html.dark-mode .tag-item a:hover {
  background-color: rgba(255,255,255,0.3) !important;
}
html.dark-mode .tag-item:hover {
  background-color: rgba(91,159,223,0.12) !important;
  border-color: var(--dk-accent) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
}
html.dark-mode .tag-item svg {
  fill: rgba(255,255,255,0.45) !important;
}
html.dark-mode .tag-item .tag-value {
  border-color: var(--dk-border-2) !important;
  background-color: rgba(255,255,255,0.12) !important;
}

/* ── 알림 ── */
html.dark-mode .notification {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .notification .dismiss svg {
  color: var(--dk-text-dim) !important;
}
html.dark-mode .notification span {
  color: var(--dk-text) !important;
}

/* ── 팝업/오버레이 ── */
html.dark-mode [overlay],
html.dark-mode .popup-background {
  background-color: rgba(0,0,0,0.65) !important;
}
html.dark-mode .popup-body {
  background-color: var(--dk-bg-5) !important;
}

/* ── 모바일 탭 ── */
html.dark-mode .tri-layout-mobile-tabs {
  background: var(--dk-bg-3) !important;
  border-bottom-color: var(--dk-border) !important;
}
html.dark-mode .tri-layout-mobile-tab {
  background-color: var(--dk-bg-3) !important;
  color: var(--dk-text) !important;
  border-bottom-color: var(--dk-border) !important;
}
html.dark-mode .tri-layout-mobile-tab.active {
  color: var(--dk-accent) !important;
  border-bottom-color: var(--dk-accent) !important;
}
html.dark-mode .tri-layout-mobile-tab:first-child {
  border-inline-end-color: var(--dk-border) !important;
}

/* ── 목차 사이드바 ── */
html.dark-mode .sidebar-page-nav::after {
  background-color: rgba(255,255,255,0.15) !important;
}
html.dark-mode .sidebar-page-nav li:not(.current-heading) .sidebar-page-nav-bullet {
  background-color: var(--dk-text-dim) !important;
}
html.dark-mode .sidebar-page-nav .sidebar-page-nav-bullet {
  box-shadow: var(--dk-bg) 0px 0px 0px 5px !important;
}
html.dark-mode .sidebar-page-nav li.current-heading > a,
html.dark-mode .sidebar-page-nav li.current-heading > span {
  color: var(--dk-accent) !important;
}
html.dark-mode .sidebar-page-nav li.current-heading .sidebar-page-nav-bullet {
  background-color: var(--dk-accent) !important;
  box-shadow: var(--dk-bg) 0px 0px 0px 5px !important;
}

/* ── 북 트리 ── */
html.dark-mode .book-tree .sidebar-page-list .entity-list-item.selected {
  background-color: rgba(91,159,223,0.08) !important;
}
html.dark-mode .book-tree .sidebar-page-list .chapter-contents-toggle:hover {
  background-color: rgba(91,159,223,0.06) !important;
}
html.dark-mode .sortable-page-list li {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-border-2) !important;
}

/* ── 페이지네이션 ── */
html.dark-mode ul.pagination a,
html.dark-mode ul.pagination span {
  color: var(--dk-text-bright) !important;
  border-color: var(--dk-border-2) !important;
}
html.dark-mode ul.pagination li.active span {
  color: #fff !important;
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
}

/* ── 에디터 ── */
html.dark-mode .editor-container {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .editor-toolbar-main {
  border-color: var(--dk-border) !important;
}
html.dark-mode .comment-editor-container,
html.dark-mode .basic-editor-container {
  border-color: var(--dk-border) !important;
}
html.dark-mode .editor-toolbar {
  background-color: var(--dk-bg-5) !important;
  border-color: var(--dk-border) !important;
}
html.dark-mode .editor-toolbar button {
  color: var(--dk-text) !important;
}
html.dark-mode .editor-toolbar .buttons button {
  border-color: var(--dk-text-faint) !important;
}
html.dark-mode .editor-toolbar .buttons button:hover {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .editor-button {
  color: var(--dk-text-dim) !important;
}
html.dark-mode .editor-button:hover {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .editor-button-active,
html.dark-mode .editor-button-active:hover {
  background-color: var(--dk-border-2) !important;
}
html.dark-mode .editor-button-text {
  color: var(--dk-text) !important;
}
html.dark-mode .editor-dropdown-menu {
  background-color: var(--dk-bg-4) !important;
  border-color: var(--dk-bg-5) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark-mode .editor-separator {
  background-color: var(--dk-border) !important;
}
html.dark-mode .editor-context-toolbar {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-bg-5) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.4) !important;
}
html.dark-mode .editor-context-toolbar::before {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-bg-5) !important;
}
html.dark-mode .editor-modal {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .editor-form-field-input {
  border-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
html.dark-mode .editor-form-action-secondary {
  border-color: var(--dk-border-2) !important;
  color: var(--dk-text) !important;
}
html.dark-mode .editor-form-action-secondary:hover,
html.dark-mode .editor-form-action-secondary:focus,
html.dark-mode .editor-form-action-secondary:active {
  color: var(--dk-text-bright) !important;
  background-color: var(--dk-border-2) !important;
}
html.dark-mode .editor-form-tab-control {
  color: var(--dk-text-dim) !important;
}

/* ── 마크다운 에디터 ── */
html.dark-mode #markdown-editor #markdown-editor-input {
  color: var(--dk-text) !important;
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .markdown-editor-wrap {
  border-color: var(--dk-border) !important;
}
html.dark-mode .markdown-panel-divider {
  background-color: var(--dk-border) !important;
}
html.markdown-editor-display.dark-mode {
  background-color: var(--dk-bg-3) !important;
}
html.markdown-editor-display.dark-mode body {
  background-color: var(--dk-bg-3) !important;
}

/* ── CodeMirror ── */
html.dark-mode .cm-editor {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .cm-copy-button {
  background-color: var(--dk-bg-5) !important;
  border-color: var(--dk-border-2) !important;
  color: var(--dk-text-dim) !important;
}
html.dark-mode .code-editor .lang-options button {
  color: var(--dk-text) !important;
  border-bottom-color: var(--dk-border) !important;
}

/* ── 탭 컨테이너 ── */
html.dark-mode .tab-container [role="tablist"] {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .tab-container [role="tablist"] button[role="tab"] {
  color: rgba(255,255,255,0.45) !important;
}
html.dark-mode .tab-container [role="tablist"] button[role="tab"]:hover,
html.dark-mode .tab-container [role="tablist"] button[role="tab"]:focus {
  color: rgba(255,255,255,0.8) !important;
  border-bottom-color: rgba(255,255,255,0.2) !important;
}
html.dark-mode .tab-container.bordered [role="tablist"] button[role="tab"] {
  border-inline-end-color: var(--dk-border) !important;
}

/* ── 검색 ── */
html.dark-mode .contained-search-box.floating {
  border: 1px solid var(--dk-border) !important;
}
html.dark-mode .contained-search-box input,
html.dark-mode .contained-search-box button {
  border-color: var(--dk-border) !important;
}
html.dark-mode .contained-search-box button {
  background-color: var(--dk-bg-5) !important;
  color: var(--dk-text) !important;
}
html.dark-mode .search-box button[tabindex="-1"] {
  color: var(--dk-text) !important;
}

/* ── 엔티티 셀렉터 ── */
html.dark-mode .entity-selector {
  border-color: var(--dk-border) !important;
}
html.dark-mode .entity-selector .entity-list {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .entity-selector .entity-list-item {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .entity-selector .entity-list-item.selected {
  background-color: rgba(91,159,223,0.08) !important;
}

/* ── 스크롤 박스 ── */
html.dark-mode .scroll-box {
  border-color: var(--dk-border) !important;
  background-color: var(--dk-bg) !important;
}
html.dark-mode .scroll-box-item {
  border-color: var(--dk-border) !important;
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .scroll-box-item:hover {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode input.scroll-box-search,
html.dark-mode .scroll-box-header-item {
  border-color: var(--dk-border) !important;
  background-color: var(--dk-bg-3) !important;
}

/* ── 정렬 ── */
html.dark-mode .list-sort-container .list-sort {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .list-sort-container .list-sort-label,
html.dark-mode .list-sort-container .list-sort-toggle {
  color: var(--dk-text-dim) !important;
}
html.dark-mode .list-sort-container .list-sort-dir {
  border-color: var(--dk-border-2) !important;
}

/* ── 이미지 매니저 ── */
html.dark-mode .image-manager-filter-bar {
  background-color: rgba(60,70,90,0.9) !important;
}
html.dark-mode .image-manager-filters {
  border: 1px solid var(--dk-border) !important;
}
html.dark-mode .image-manager-filters button {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .image-manager-list .image {
  border-color: var(--dk-border) !important;
}
html.dark-mode .image-manager-warning {
  background: var(--dk-bg-5) !important;
}
html.dark-mode .image-manager-sidebar {
  border-color: var(--dk-border) !important;
}

/* ── 파일 업로드 ── */
html.dark-mode .dropzone-file-item {
  background: var(--dk-border-2) !important;
}
html.dark-mode .custom-simple-file-input {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .custom-simple-file-input::file-selector-button {
  color: var(--dk-text) !important;
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .custom-simple-file-input::file-selector-button:hover,
html.dark-mode .custom-simple-file-input::file-selector-button:focus,
html.dark-mode .custom-simple-file-input::file-selector-button:active {
  color: var(--dk-text-bright) !important;
  background-color: var(--dk-border-2) !important;
}

/* ── 포인터/댓글 ── */
html.dark-mode .pointer {
  border-color: var(--dk-border) !important;
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .pointer::before {
  background-color: var(--dk-bg-5) !important;
  border-color: var(--dk-border) !important;
}
html.dark-mode .pointer input {
  border-color: var(--dk-border) !important;
}
html.dark-mode .pointer .text-button {
  color: var(--dk-text) !important;
}
html.dark-mode .pointer .button {
  border-color: var(--dk-border) !important;
}
html.dark-mode .content-comment-window {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .comment-box {
  border-color: var(--dk-border) !important;
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .comment-box .header {
  border-color: var(--dk-border) !important;
}
html.dark-mode .comment-thread-indicator {
  border-color: var(--dk-border-2) !important;
}

/* ── 플로팅 툴박스 ── */
html.dark-mode .floating-toolbox {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .floating-toolbox .tabs {
  border-inline-end-color: var(--dk-border) !important;
}
html.dark-mode .floating-toolbox .tabs-inner {
  background-color: var(--dk-bg-3) !important;
}
html.dark-mode .floating-toolbox .tabs-inner > button {
  color: rgba(255,255,255,0.45) !important;
}

/* ── 페이지 에디터 ── */
html.dark-mode .page-editor-page-area {
  background-color: var(--dk-bg-5) !important;
}

/* ── 드롭다운 검색 ── */
html.dark-mode .dropdown-search-toggle-breadcrumb:hover {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .dropdown-search-dropdown .dropdown-search-item:hover,
html.dark-mode .dropdown-search-dropdown .dropdown-search-item:focus {
  background-color: var(--dk-border-2) !important;
}

/* ── 아이템 리스트 ── */
html.dark-mode .item-list-row {
  border-color: var(--dk-border-2) !important;
}
html.dark-mode .item-list-row:hover {
  background-color: var(--dk-bg-5) !important;
}

/* ── 섹션 확장 ── */
html.dark-mode details.section-expander summary {
  border-color: var(--dk-border) !important;
}
html.dark-mode details.section-expander {
  border-color: var(--dk-border) !important;
}

/* ── TinyMCE ── */
html.dark-mode .description-input > .tox-tinymce {
  border-color: var(--dk-bg) !important;
}
html.dark-mode .tox .tox-toolbar__primary,
html.dark-mode .tox .tox-menu,
html.dark-mode .tox .tox-dialog__header,
html.dark-mode .tox .tox-dialog,
html.dark-mode .tox .tox-dialog__footer,
html.dark-mode .tox .tox-pop__dialog,
html.dark-mode .tox.tox-tinymce-aux .tox-toolbar__overflow {
  background-color: var(--dk-bg-5) !important;
}
html.dark-mode .tox .tox-tbtn svg,
html.dark-mode .tox .tox-tbtn,
html.dark-mode .tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {
  color: var(--dk-text-bright) !important;
  fill: var(--dk-text-bright) !important;
}

/* ── 위지윅 ── */
html.dark-mode .wysiwyg-input.mce-content-body::before {
  color: rgba(155,155,155,0.45) !important;
}

/* ── 템플릿 ── */
html.dark-mode .template-item .template-item-actions {
  border-color: var(--dk-border) !important;
}
html.dark-mode .template-item .template-item-actions button {
  background-color: var(--dk-bg-3) !important;
  border-color: var(--dk-border) !important;
}

/* ── 에디터 오버플로우 ── */
html.dark-mode .editor-overflow-container {
  border-color: var(--dk-border) !important;
}
html.dark-mode .editor-with-menu-container:hover {
  outline-color: var(--dk-border) !important;
}
html.dark-mode .editor-node-resizer-handle {
  background-color: var(--dk-border) !important;
}
html.dark-mode .editor-table-creator-cell {
  border-color: var(--dk-border) !important;
}

/* ── 모바일 메뉴 ── */
@media screen and (max-width: 1000px) {
  html.dark-mode header .header-links {
    background-color: var(--dk-bg-5) !important;
  }
  html.dark-mode header .links a,
  html.dark-mode header .dropdown-container ul li a,
  html.dark-mode header .dropdown-container ul li button {
    color: var(--dk-text-bright) !important;
  }
  html.dark-mode header .links a:focus,
  html.dark-mode header .dropdown-container ul li a:focus,
  html.dark-mode header .dropdown-container ul li button:focus {
    background-color: var(--dk-bg-5) !important;
  }
}

/* ── 스크롤 페이드 ── */
html.dark-mode .scroll-away-from-top::before,
html.dark-mode .scroll-away-from-bottom::after {
  color: var(--dk-bg) !important;
}

/* ── 텍스트 유틸 ── */
html.dark-mode .text-muted {
  color: var(--dk-text-dim) !important;
}
html.dark-mode .text-dark {
  color: var(--dk-text-bright) !important;
}
html.dark-mode .primary-background-light {
  background: var(--dk-bg) !important;
}
html.dark-mode .primary-background-light .text-link {
  color: var(--dk-text) !important;
}

/* ── 아바타 ── */
html.dark-mode .avatar {
  background-color: var(--dk-bg) !important;
}
html.dark-mode .avatar[src$="user_avatar.png"] {
  filter: invert(0.8) !important;
}

/* ── 활성 링크 리스트 ── */
html.dark-mode .active-link-list a.active {
  color: var(--dk-accent) !important;
}
html.dark-mode .active-link-list a:not(.active) {
  color: var(--dk-text-dim) !important;
}
html.dark-mode .active-link-list a:hover {
  background-color: rgba(255,255,255,0.04) !important;
}
html.dark-mode .active-link-list.in-sidebar a.active {
  background-color: rgba(91,159,223,0.07) !important;
}

/* ── 스티키 사이드바 헤더 ── */
html.dark-mode .sticky-sidebar-header {
  background: linear-gradient(var(--dk-bg) 66%, rgba(15,17,23,0) 100%) !important;
}

/* ── fade-in 엘리먼트 ── */
html.dark-mode .fade-in-when-active {
  opacity: 0.75 !important;
}

/* ── 다크모드 색상 변수 오버라이드 ── */
html.dark-mode {
  --color-primary: #195785;
  --color-primary-light: rgba(32,110,167,0.15);
  --color-link: #5b9fdf;
  --color-bookshelf: #ff5454;
  --color-book: #389f60;
  --color-chapter: #ee7a2d;
  --color-page: #5b9fdf;
  --color-page-draft: #a66ce8;
}


/* =====================================================
   PRINT
   ===================================================== */
@media print {
  #header,
  .tri-layout-left,
  .tri-layout-right,
  .tri-layout-mobile-tabs,
  nav.breadcrumbs,
  .pointer-container,
  #actions { display: none !important; }

  body {
    background: #fff !important;
    color: #000 !important;
  }

  main.content-wrap.card {
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .page-content.clearfix {
    font-size: 13pt !important;
    line-height: 1.75 !important;
    color: #000 !important;
  }

  main.content-wrap h1.break-text {
    font-size: 20pt !important;
    color: #000 !important;
    margin-bottom: 12pt !important;
    font-style: normal !important;
    background-image: none !important;
  }
  .page-content.clearfix h2 {
    font-size: 15pt !important;
    border-bottom: 1.5pt solid #888 !important;
    color: #000 !important;
    font-style: normal !important;
    padding-bottom: 3pt !important;
  }
  .page-content.clearfix h2::after {
    display: none !important;
  }
  .page-content.clearfix h3 {
    font-size: 13pt !important;
    color: #222 !important;
    border-left: 2pt solid #888 !important;
    padding-left: 8pt !important;
  }
  .page-content.clearfix h4 {
    font-size: 11pt !important;
    color: #333 !important;
    border-left: 1.5pt solid #aaa !important;
    padding-left: 6pt !important;
  }

  .page-content.clearfix img {
    max-width: 100% !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: block !important;
    margin: 8pt auto !important;
  }

  .page-content.clearfix table {
    page-break-inside: auto !important;
    break-inside: auto !important;
    box-shadow: none !important;
  }
  .page-content.clearfix thead {
    display: table-header-group !important;
  }
  .page-content.clearfix tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .page-content.clearfix table th {
    background: #eee !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .page-content.clearfix table td {
    border-bottom: 0.5pt solid #ddd !important;
    color: #000 !important;
  }

  .page-content.clearfix blockquote {
    border-left: 3pt solid #999 !important;
    background: none !important;
    color: #333 !important;
    padding: 4pt 10pt !important;
    font-style: normal !important;
  }
  .page-content.clearfix blockquote::before {
    display: none !important;
  }

  .page-content.clearfix a[href]::after {
    content: " (" attr(href) ")";
    font-size: 10pt !important;
    color: #666 !important;
  }
  .page-content.clearfix a[href^="#"]::after {
    content: "" !important;
  }

  .page-content.clearfix h2,
  .page-content.clearfix h3 {
    page-break-after: avoid !important;
    break-after: avoid !important;
  }
}


/* =====================================================
   MOBILE
   ===================================================== */
@media (max-width: 768px) {
  a.grid-card:hover {
    transform: none !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  }

  .page-content.clearfix table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* 모바일에서 카드 애니메이션 간소화 */
  a.grid-card {
    animation-duration: 0.3s !important;
  }

  /* prefers-reduced-motion 준수 */
  @media (prefers-reduced-motion: reduce) {
    a.grid-card,
    .card,
    body {
      animation: none !important;
    }
    #actions .icon-list-item:hover {
      padding-left: 10px !important;
    }
    .entity-list-item:not(.no-hover):hover {
      padding-left: 0 !important;
    }
  }
}

/* =====================================================
   MOBILE MENU — 헤더 아래 풀 너비 슬라이드 다운 패널
   BookStack은 모바일에서 .header-links를 헤더 안에
   인라인으로 펼치는 방식을 사용함.
   이를 헤더 height 팽창 없이, 헤더 바로 아래
   position:fixed 패널로 분리해서 내려오게 처리.
   ===================================================== */
@media screen and (max-width: 1000px) {

  /* 헤더 자체는 고정 높이 유지 — 팽창 방지 */
  #header {
    overflow: visible !important;
    flex-wrap: nowrap !important;
  }

  /* 헤더 감싸는 레이아웃의 자름(clip) 현상 방지 */
  #header > div,
  #header [class*="container"],
  #header [class*="layout"] {
    overflow: visible !important;
  }

  /* 헤더 내용들만 레이어를 올려서 메뉴가 뒤로 숨겨지게 함 */
  #header a.logo,
  #header .logo-container,
  #header .search-box,
  #header .mobile-menu-toggle,
  #header .hide-over-l {
    position: relative !important;
    z-index: 2 !important;
  }

  /* 모바일 nav 플로팅 패널: 헤더 우측 아래 슬라이드 다운 */
  #header .header-links {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    left: auto !important;
    right: 16px !important;
    width: 144px !important;
    z-index: 1000 !important; /* 최상단 레이어 확보 */

    display: flex !important; /* 항상 flex를 유지하여 트랜지션 애니메이션 활성화 */
    flex-direction: column !important;
    align-items: stretch !important; /* 자식 요소들을 가로로 꽉 채움 */

    /* 닫힌 상태: 약간 위에서 페이드인 대기 */
    transform: translateY(-10px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;

    /* 열림 애니메이션 */
    transition:
      transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.16s ease,
      visibility 0s linear 0.22s !important;

    background-color: rgba(255, 255, 255, 0.88) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid var(--gray-200) !important;
    border-top: 3px solid var(--accent) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
    padding: 8px 0 !important; /* 패딩 축소 */
  }

  /* 열린 상태 — BookStack이 .header-links에 inline style display:flex를 추가하므로
     그 시점을 [style*="flex"] 또는 부모 클래스로 감지.
     BookStack 기본은 버튼 클릭 시 .header-links의 display를 토글함.
     display:flex가 붙었을 때 패널을 내림. */
  #header .header-links[style*="flex"],
  #header .header-links[style*="block"],
  #header .header-links.open,
  #header .header-links.show {
    transform: translateY(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transition:
      transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.16s ease,
      visibility 0s linear 0s !important;
  }

  /* 패널 내부 링크/버튼 레이아웃 */
  #header .header-links .links,
  #header .header-links .dropdown-container,
  #header .header-links .dropdown-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important; /* 자식 요소들을 가로로 꽉 차게 늘림 */
    justify-content: flex-start !important;
    width: 100% !important; /* 가로 너비 100% 강제 */
    align-self: stretch !important; /* 부모 flexbox 내부에서 stretch */
    padding: 0 !important;
    margin: 0 !important;
    gap: 1px !important;
    text-align: left !important;
  }

  /* links와 dropdown-container 간 간격을 위해 padding/margin 조정 */
  #header .header-links .links {
    padding: 0 8px !important;
  }
  #header .header-links .dropdown-container {
    padding: 0 8px !important;
    margin-top: 2px !important;
  }

  /* 모바일 메뉴 내부의 모든 링크 및 버튼들을 좌측 정렬형 flexbox로 변환 */
  #header .header-links a,
  #header .header-links button {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important; /* 좌측 정렬 강제 */
    width: 100% !important;
    box-sizing: border-box !important;
    gap: 8px !important;
    padding: 8px 10px !important; /* 콤팩트한 여백 */
    border-radius: var(--radius-sm) !important;
    font-size: var(--text-sm) !important; /* 13px */
    font-weight: 500 !important;
    color: var(--gray-700) !important;
    transition: background 0.12s, color 0.12s !important;
    text-align: left !important;
  }

  /* 호버 효과 */
  #header .header-links a:hover,
  #header .header-links button:hover {
    background: var(--accent-pale) !important;
    color: var(--accent) !important;
  }

  /* 아이콘 크기 제어 */
  #header .header-links a .svg-icon,
  #header .header-links button .svg-icon {
    fill: var(--gray-400) !important;
    width: 15px !important; /* 아이콘 크기 축소 */
    height: 15px !important;
    flex-shrink: 0 !important; /* 찌그러짐 방지 */
  }

  #header .header-links a:hover .svg-icon,
  #header .header-links button:hover .svg-icon {
    fill: var(--accent) !important;
  }

  /* 구분선 */
  #header .header-links hr {
    margin: 6px 8px !important;
    border: none !important;
    border-top: 1px solid var(--gray-200) !important;
    width: auto !important;
    display: block !important;
  }

  /* 다크모드 플로팅 메뉴 */
  html.dark-mode #header .header-links {
    background-color: rgba(46, 56, 80, 0.9) !important; /* --dk-bg-5 대응 */
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid var(--dk-border) !important;
    border-top: 3px solid var(--dk-accent) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.65) !important;
  }

  html.dark-mode #header .header-links a,
  html.dark-mode #header .header-links button {
    color: var(--dk-text-bright) !important;
  }

  html.dark-mode #header .header-links a:hover,
  html.dark-mode #header .header-links button:hover {
    background: rgba(91, 159, 223, 0.08) !important;
    color: var(--dk-accent) !important;
  }

  html.dark-mode #header .header-links a .svg-icon,
  html.dark-mode #header .header-links button .svg-icon {
    fill: var(--dk-text-dim) !important;
  }

  html.dark-mode #header .header-links a:hover .svg-icon,
  html.dark-mode #header .header-links button:hover .svg-icon {
    fill: var(--dk-accent) !important;
  }

  html.dark-mode #header .header-links hr {
    border-color: var(--dk-border) !important;
  }

}

@media (prefers-reduced-motion: reduce) {
  a.grid-card,
  .card,
  body,
  .dropdown-menu {
    animation: none !important;
  }
  a.grid-card:hover,
  .button.primary:hover {
    transform: none !important;
  }
}


/* =====================================================
   HIDE GOOGLE DRIVE FOLDER ID TAG
   ===================================================== */
.tag-item[data-name="googledrive_folder_id"],
.tag-item[data-tag-name="googledrive_folder_id"],
.tag-item[title*="googledrive_folder_id"] {
  display: none !important;
}
a[href*="googledrive_folder_id"],
a[href*="googledrive_folder_id"] + span,
span:has(> a[href*="googledrive_folder_id"]) {
  display: none !important;
}
.tag-item:has(a[href*="googledrive_folder_id"]),
tr:has(a[href*="googledrive_folder_id"]),
li:has(a[href*="googledrive_folder_id"]) {
  display: none !important;
}

/* =====================================================
   AUTO OVERVIEW BLOCK (라이트/다크 모드 대응)
   ===================================================== */
#auto-overview-block > div {
  background: rgba(13, 78, 166, 0.03) !important; /* 너무 파랗지 않게 아주 연한 파란 톤 */
  border: none !important; /* 외곽 테두리 제거 */
  border-left: 4px solid var(--accent) !important; /* 왼쪽은 굵고 선명한 파란색 테두리 */
  border-radius: 0 !important; /* 둥근 모서리 제거 (양옆 꽉 채움) */
  padding: 1.2rem 1.5rem 1rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 1.5rem !important;
  box-shadow: none !important; /* 카드 형태의 그림자 제거 */
  transition: background-color 0.25s ease !important;
}

#auto-overview-block .overview-title {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--accent) !important;
  margin-bottom: 0.7rem !important;
}

#auto-overview-block .overview-body {
  font-size: 0.96rem !important;
  line-height: 1.75 !important;
  color: var(--gray-800) !important;
}

#auto-overview-block .overview-footer {
  margin-top: 0.9rem !important;
  font-size: 0.82rem !important;
  border-top: 1px solid var(--gray-200) !important;
  padding-top: 0.6rem !important;
}

#auto-overview-block .overview-footer a {
  color: var(--accent) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
}

#auto-overview-block .overview-footer a:hover {
  text-decoration: underline !important;
}

/* 다크 모드 대응 */
html.dark-mode #auto-overview-block > div {
  background: var(--dk-bg-2) !important; /* 다크 모드 배경색 */
  border: none !important; /* 테두리 제거 */
  border-left: 4px solid var(--dk-accent) !important; /* 왼쪽은 굵고 선명한 다크 악센트 블루 테두리 */
  box-shadow: none !important; /* 그림자 제거 */
}

html.dark-mode #auto-overview-block .overview-title {
  color: var(--dk-accent) !important;
}

html.dark-mode #auto-overview-block .overview-body {
  color: var(--dk-text) !important;
}

html.dark-mode #auto-overview-block .overview-footer {
  border-top-color: var(--dk-border) !important;
}

html.dark-mode #auto-overview-block .overview-footer a {
  color: var(--dk-accent) !important;
}

/* =====================================================
   ARCHIVE HOME
   ===================================================== */
.archive-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.archive-home-shell {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 16px 0 72px;
}

.archive-home-utilities {
  min-height: 36px;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  color: var(--gray-400);
  font-size: var(--text-xs);
}

.archive-home-utilities-label {
  letter-spacing: 0.04em;
}

.archive-home-utilities .icon-list-item {
  padding: 5px 8px !important;
  border-radius: var(--radius-sm);
}

.archive-home-utilities .icon-list {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.archive-hero {
  position: relative;
  isolation: isolate;
  min-height: 410px;
  padding: clamp(36px, 5vw, 62px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 210px;
  align-items: end;
  gap: clamp(32px, 6vw, 72px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 85% 18%, rgba(124, 174, 236, 0.22), transparent 28%),
    linear-gradient(128deg, #082d63 0%, #0d4ea6 62%, #1c67bd 100%);
  border-radius: 24px;
  box-shadow: 0 22px 54px rgba(9, 48, 101, 0.18);
}

.archive-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.16;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 10px,
    rgba(255, 255, 255, 0.5) 10px,
    rgba(255, 255, 255, 0.5) 11px,
    transparent 11px,
    transparent 21px,
    rgba(255, 255, 255, 0.5) 21px,
    rgba(255, 255, 255, 0.5) 22px,
    transparent 22px,
    transparent 32px,
    rgba(255, 255, 255, 0.5) 32px,
    rgba(255, 255, 255, 0.5) 33px,
    transparent 33px,
    transparent 43px,
    rgba(255, 255, 255, 0.5) 43px,
    rgba(255, 255, 255, 0.5) 44px,
    transparent 44px,
    transparent 54px,
    rgba(255, 255, 255, 0.5) 54px,
    rgba(255, 255, 255, 0.5) 55px,
    transparent 55px,
    transparent 112px
  );
  background-position: 0 47px;
}

.archive-hero::after {
  content: "𝄞";
  position: absolute;
  z-index: -1;
  right: 40px;
  top: 8px;
  color: rgba(255, 255, 255, 0.08);
  font-family: serif !important;
  font-size: clamp(150px, 18vw, 245px);
  line-height: 1;
  transform: rotate(-5deg);
}

.archive-hero-copy {
  max-width: 720px;
}

.archive-kicker,
.archive-section-kicker {
  margin: 0 0 12px;
  color: inherit;
  font-family: "Outfit", "Noto Sans KR", sans-serif !important;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.archive-kicker {
  color: rgba(255, 255, 255, 0.68);
}

.archive-hero h1 {
  margin: 0;
  color: #fff !important;
  font-family: "Outfit", "Noto Sans KR", sans-serif !important;
  font-size: clamp(34px, 4.5vw, 58px) !important;
  font-weight: 600 !important;
  line-height: 1.14 !important;
  letter-spacing: -0.045em !important;
}

.archive-hero-description {
  max-width: 640px;
  margin: 22px 0 26px;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(14px, 1.7vw, 17px);
  line-height: 1.75;
  word-break: keep-all;
}

.archive-search {
  width: min(640px, 100%);
  min-height: 58px;
  padding: 6px 6px 6px 18px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 13px;
  box-shadow: 0 15px 35px rgba(2, 25, 60, 0.2);
}

.archive-search:focus-within {
  box-shadow:
    0 0 0 4px rgba(255, 255, 255, 0.2),
    0 15px 35px rgba(2, 25, 60, 0.24);
}

.archive-search-icon {
  width: 20px;
  height: 20px;
  color: var(--gray-400);
}

.archive-search-icon .svg-icon {
  width: 20px;
  height: 20px;
  fill: var(--gray-400) !important;
}

.archive-search input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 !important;
  color: var(--gray-900) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 15px;
}

.archive-search input::placeholder {
  color: var(--gray-400);
}

.archive-search button {
  align-self: stretch;
  min-width: 82px;
  padding: 0 20px;
  color: #fff;
  background: var(--accent);
  border: 0;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.18s ease, transform 0.18s ease;
}

.archive-search button:hover {
  background: var(--accent-dark);
  transform: translateY(-1px);
}

.archive-hero-links {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
}

.archive-hero-links a {
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.archive-hero-links a:hover {
  color: #fff !important;
}

.archive-stats {
  margin: 0;
  display: grid;
  gap: 10px;
}

.archive-stats > div {
  min-height: 94px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 14px;
  backdrop-filter: blur(8px);
}

.archive-stats dt {
  order: 2;
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.64);
  font-size: 12px;
  font-weight: 500;
}

.archive-stats dd {
  order: 1;
  margin: 0;
  color: #fff;
  font-family: "Outfit", "Noto Sans KR", sans-serif !important;
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
}

.archive-home-section {
  margin-top: 64px;
}

.archive-section-heading,
.archive-panel-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.archive-section-heading {
  margin-bottom: 24px;
}

.archive-section-kicker {
  margin-bottom: 7px;
  color: var(--accent-mid);
}

.archive-section-heading h2,
.archive-panel-heading h2 {
  margin: 0;
  color: var(--gray-900);
  font-family: "Outfit", "Noto Sans KR", sans-serif !important;
  font-weight: 600;
  letter-spacing: -0.025em;
}

.archive-section-heading h2 {
  font-size: clamp(24px, 3vw, 32px);
}

.archive-panel-heading h2 {
  font-size: 19px;
}

.archive-section-link,
.archive-panel-heading > a {
  color: var(--accent-mid) !important;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.archive-era-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.archive-era-card {
  --era-color: var(--accent);
  position: relative;
  min-height: 292px;
  padding: 24px 22px 21px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--gray-800) !important;
  background: var(--surface);
  border: 1px solid var(--gray-200);
  border-top: 4px solid var(--era-color);
  border-radius: 15px;
  box-shadow: 0 3px 14px rgba(17, 24, 39, 0.04);
  text-decoration: none !important;
  transition:
    transform 0.22s ease,
    border-color 0.22s ease,
    box-shadow 0.22s ease;
}

.archive-era-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--era-color) 48%, var(--gray-200));
  border-top-color: var(--era-color);
  box-shadow: 0 16px 34px rgba(17, 24, 39, 0.09);
}

.archive-era-baroque {
  --era-color: #9b5d42;
}

.archive-era-classical {
  --era-color: #b3872f;
}

.archive-era-romantic {
  --era-color: #7c4f78;
}

.archive-era-contemporary {
  --era-color: #247a76;
}

.archive-era-number {
  position: absolute;
  right: 18px;
  top: 14px;
  color: color-mix(in srgb, var(--era-color) 15%, transparent);
  font-family: "Outfit", sans-serif !important;
  font-size: 58px;
  font-weight: 700;
  line-height: 1;
}

.archive-era-range {
  min-height: 18px;
  margin-bottom: 25px;
  color: var(--era-color);
  font-family: "Outfit", sans-serif !important;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.archive-era-card strong {
  position: relative;
  color: var(--gray-900);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.archive-era-name {
  margin-top: 3px;
  color: var(--gray-400);
  font-family: "Outfit", sans-serif !important;
  font-size: 12px;
  font-weight: 500;
}

.archive-era-description {
  margin-top: 17px;
  color: var(--gray-600);
  font-size: 13px;
  line-height: 1.65;
  word-break: keep-all;
}

.archive-era-meta {
  margin-top: auto;
  padding-top: 20px;
  color: var(--gray-400);
  font-size: 11px;
  font-weight: 500;
}

.archive-era-arrow {
  position: absolute;
  right: 20px;
  bottom: 17px;
  color: var(--era-color);
  font-size: 16px;
}

.archive-home-lower {
  margin-top: 54px;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(220px, 0.8fr);
  gap: 16px;
  align-items: stretch;
}

.archive-home-panel {
  min-width: 0;
  min-height: 276px;
  padding: 23px 24px;
  background: var(--surface);
  border: 1px solid var(--gray-200);
  border-radius: 15px;
  box-shadow: 0 3px 14px rgba(17, 24, 39, 0.035);
}

.archive-panel-heading {
  min-height: 49px;
  padding-bottom: 15px;
  border-bottom: 1px solid var(--gray-100);
}

.archive-entity-list {
  padding-top: 7px;
}

#archive-home .archive-entity-list .entity-list-item {
  padding: 10px 3px !important;
  border-bottom: 1px solid var(--gray-100);
  border-radius: 0 !important;
}

#archive-home .archive-entity-list .entity-list-item:last-child {
  border-bottom: 0;
}

#archive-home .archive-entity-list .entity-list-item:hover {
  padding-left: 7px !important;
  background: transparent !important;
}

#archive-home .archive-entity-list .entity-list-item-name {
  font-size: 13px !important;
}

#archive-home .archive-entity-list .entity-item-snippet {
  font-size: 12px !important;
}

.archive-quick-panel {
  background:
    linear-gradient(145deg, rgba(13, 78, 166, 0.045), transparent 65%),
    var(--surface);
}

.archive-quick-links {
  margin-top: 8px;
  display: grid;
}

.archive-quick-links a {
  min-height: 45px;
  padding: 0 2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--gray-700) !important;
  border-bottom: 1px solid var(--gray-100);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.archive-quick-links a:last-child {
  border-bottom: 0;
}

.archive-quick-links a span:last-child {
  color: var(--accent-mid);
  transition: transform 0.15s ease;
}

.archive-quick-links a:hover {
  color: var(--accent) !important;
}

.archive-quick-links a:hover span:last-child {
  transform: translateX(3px);
}

/* =====================================================
   OVERVIEW TABLE OF CONTENTS
   ===================================================== */
#auto-overview-block .overview-content-layout {
  position: relative;
}

#auto-overview-block .overview-toc[hidden] {
  display: none !important;
}

#auto-overview-block .overview-toc {
  position: absolute;
  top: var(--overview-toc-top, 0);
  right: 0;
  bottom: auto;
  z-index: 80;
  width: max-content;
  max-width: 100%;
  min-height: 38px;
  margin: 0;
}

#auto-overview-block .overview-toc-toggle {
  min-height: 38px;
  max-width: min(280px, 100%);
  padding: 6px 10px 6px 12px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--gray-800);
  background: var(--surface);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  border: 1px solid var(--gray-200);
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(15, 34, 57, 0.1);
  font-family: inherit;
  cursor: pointer;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

#auto-overview-block .overview-toc-toggle-title {
  flex: 0 0 auto;
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
}

#auto-overview-block .overview-toc-current {
  min-width: 0;
  max-width: 170px;
  overflow: hidden;
  color: var(--gray-600);
  font-size: 11px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#auto-overview-block .overview-toc-current::before {
  margin-right: 7px;
  color: var(--gray-300);
  content: "·";
}

#auto-overview-block .overview-toc-toggle-icon {
  flex: 0 0 auto;
  color: var(--gray-400);
  font-size: 14px;
  line-height: 1;
  transition: transform 0.16s ease;
}

#auto-overview-block .overview-toc.is-open .overview-toc-toggle-icon {
  transform: rotate(180deg);
}

#auto-overview-block .overview-toc-panel {
  position: absolute;
  top: auto;
  right: 0;
  bottom: calc(100% + 8px);
  width: min(320px, calc(100vw - 40px));
  max-height: min(460px, calc(100vh - 96px));
  padding: 15px;
  overflow-y: auto;
  visibility: hidden;
  opacity: 0;
  background: var(--surface);
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(15, 34, 57, 0.18);
  pointer-events: none;
  transform: translateY(-5px);
  transition:
    opacity 0.16s ease,
    transform 0.16s ease,
    visibility 0.16s ease;
}

#auto-overview-block .overview-toc.is-open .overview-toc-panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

#auto-overview-block .overview-toc-label {
  margin: 0 4px 10px;
  color: var(--gray-900);
  font-size: 12px;
  font-weight: 700;
}

#auto-overview-block .overview-toc-list {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 2px;
  list-style: none;
}

#auto-overview-block .overview-toc-list li {
  margin: 0;
  padding: 0;
}

#auto-overview-block .overview-toc-list a {
  padding: 7px 9px;
  display: block;
  color: var(--gray-600) !important;
  border-left: 2px solid transparent;
  border-radius: 0 6px 6px 0;
  font-size: 11px;
  line-height: 1.45;
  text-decoration: none !important;
}

#auto-overview-block .overview-toc-list a:hover,
#auto-overview-block .overview-toc-list a:focus,
#auto-overview-block .overview-toc-list a.is-active {
  color: var(--accent) !important;
  background: var(--accent-pale);
  border-left-color: var(--accent);
}

#auto-overview-block .overview-toc-level-3 a {
  padding-left: 20px;
  color: var(--gray-400) !important;
  font-size: 10.5px;
}

#auto-overview-block .overview-body h2[id],
#auto-overview-block .overview-body h3[id] {
  scroll-margin-top: 88px;
}

html.dark-mode .archive-home-utilities {
  color: var(--dk-text-dim);
}

html.dark-mode .archive-section-heading h2,
html.dark-mode .archive-panel-heading h2,
html.dark-mode .archive-era-card strong {
  color: var(--dk-text-bright);
}

html.dark-mode .archive-section-kicker,
html.dark-mode .archive-section-link,
html.dark-mode .archive-panel-heading > a {
  color: var(--dk-accent) !important;
}

html.dark-mode .archive-era-card,
html.dark-mode .archive-home-panel {
  color: var(--dk-text) !important;
  background: var(--dk-bg-3);
  border-color: var(--dk-border-2);
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.18);
}

html.dark-mode .archive-era-card:hover {
  border-color: var(--era-color);
  box-shadow: 0 15px 34px rgba(0, 0, 0, 0.32);
}

html.dark-mode .archive-era-name,
html.dark-mode .archive-era-meta,
html.dark-mode .archive-era-description,
html.dark-mode .archive-quick-links a {
  color: var(--dk-text-dim) !important;
}

html.dark-mode .archive-panel-heading,
html.dark-mode #archive-home .archive-entity-list .entity-list-item,
html.dark-mode .archive-quick-links a {
  border-color: var(--dk-border);
}

html.dark-mode .archive-quick-panel {
  background:
    linear-gradient(145deg, rgba(91, 159, 223, 0.07), transparent 65%),
    var(--dk-bg-3);
}

html.dark-mode #auto-overview-block .overview-toc-toggle {
  color: var(--dk-text-bright);
  background: var(--dk-bg-3);
  background: color-mix(in srgb, var(--dk-bg-3) 94%, transparent);
  border-color: var(--dk-border);
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.3);
}

html.dark-mode #auto-overview-block .overview-toc-toggle-title {
  color: var(--dk-accent);
}

html.dark-mode #auto-overview-block .overview-toc-current {
  color: var(--dk-text);
}

html.dark-mode #auto-overview-block .overview-toc-current::before,
html.dark-mode #auto-overview-block .overview-toc-toggle-icon {
  color: var(--dk-text-muted);
}

html.dark-mode #auto-overview-block .overview-toc-panel {
  background: var(--dk-bg-3);
  border-color: var(--dk-border);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42);
}

html.dark-mode #auto-overview-block .overview-toc-label {
  color: var(--dk-text-bright);
}

html.dark-mode #auto-overview-block .overview-toc-list a {
  color: var(--dk-text) !important;
}

html.dark-mode #auto-overview-block .overview-toc-list a:hover,
html.dark-mode #auto-overview-block .overview-toc-list a:focus,
html.dark-mode #auto-overview-block .overview-toc-list a.is-active {
  color: var(--dk-accent) !important;
  background: rgba(91, 159, 223, 0.12);
  border-left-color: var(--dk-accent);
}

@media screen and (max-width: 980px) {
  .archive-hero {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .archive-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .archive-stats > div {
    min-height: 80px;
  }

  .archive-era-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .archive-home-lower {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .archive-quick-panel {
    grid-column: 1 / -1;
    min-height: auto;
  }

  .archive-quick-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 22px;
  }
}

@media screen and (max-width: 760px) {
  #header .header-links .dropdown-container,
  #header .header-links .dropdown-menu {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    left: auto !important;
    right: auto !important;
    box-sizing: border-box !important;
  }

  .archive-home-shell {
    width: min(100% - 24px, 600px);
    padding-top: 8px;
  }

  .archive-home-utilities {
    margin-bottom: 6px;
  }

  .archive-home-utilities-label {
    display: none;
  }

  .archive-hero {
    min-height: 0;
    padding: 31px 24px 26px;
    gap: 28px;
    border-radius: 18px;
  }

  .archive-hero::after {
    right: -18px;
    top: 8px;
    font-size: 150px;
  }

  .archive-hero h1 {
    font-size: clamp(31px, 10vw, 42px) !important;
  }

  .archive-hero-description {
    margin: 17px 0 21px;
  }

  .archive-search {
    min-height: 54px;
    padding-left: 14px;
    grid-template-columns: 21px minmax(0, 1fr) auto;
  }

  .archive-search input {
    font-size: 14px;
  }

  .archive-search button {
    min-width: 66px;
    padding: 0 15px;
  }

  .archive-stats {
    gap: 7px;
  }

  .archive-stats > div {
    min-height: 72px;
    padding: 13px 12px;
    text-align: center;
  }

  .archive-stats dd {
    font-size: 25px;
  }

  .archive-home-section {
    margin-top: 43px;
  }

  .archive-section-heading {
    align-items: flex-start;
  }

  .archive-era-card {
    min-height: 260px;
  }

  .archive-home-lower {
    margin-top: 38px;
    grid-template-columns: minmax(0, 1fr);
  }

  .archive-quick-panel {
    grid-column: auto;
  }

  .archive-quick-links {
    grid-template-columns: minmax(0, 1fr);
  }

  #auto-overview-block > div {
    padding: 1rem !important;
  }

  #auto-overview-block .overview-toc {
    right: 0;
  }

  #auto-overview-block .overview-toc-toggle {
    min-height: 36px;
    max-width: min(250px, 100%);
  }

  #auto-overview-block .overview-toc-current {
    max-width: 145px;
  }

  #auto-overview-block .overview-toc-panel {
    width: min(310px, calc(100vw - 48px));
    max-height: min(420px, calc(100vh - 82px));
  }
}

@media screen and (max-width: 540px) {
  .archive-era-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .archive-era-card {
    min-height: 238px;
  }

  .archive-section-link {
    display: none;
  }
}

@media print {
  .archive-home-utilities,
  .archive-search,
  .archive-hero-links,
  #auto-overview-block .overview-toc {
    display: none !important;
  }

  .archive-hero {
    min-height: 0;
    color: #000 !important;
    background: #fff !important;
    border: 1px solid #bbb;
    box-shadow: none;
  }

  .archive-hero h1,
  .archive-hero-description {
    color: #000 !important;
  }

  #auto-overview-block .overview-content-layout {
    display: block;
  }
}

@media (prefers-reduced-motion: reduce) {
  .archive-era-card,
  .archive-search button,
  .archive-quick-links a span,
  #auto-overview-block .overview-toc-panel,
  #auto-overview-block .overview-toc-toggle-icon {
    transition: none !important;
  }

  .archive-era-card:hover,
  .archive-search button:hover {
    transform: none !important;
  }
}
